Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q7EN0-0003ih-6J for pgsql-hackers@arkaria.postgresql.org; Thu, 08 Jun 2023 12:04:02 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1q7EMy-0003Oo-Af for pgsql-hackers@arkaria.postgresql.org; Thu, 08 Jun 2023 12:04:00 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q7EMx-0003Od-M1 for pgsql-hackers@lists.postgresql.org; Thu, 08 Jun 2023 12:03:59 +0000 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1q7EMo-00111x-Ve for pgsql-hackers@lists.postgresql.org; Thu, 08 Jun 2023 12:03:58 +0000 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-514859f3ffbso784689a12.1 for ; Thu, 08 Jun 2023 05:03:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; t=1686225829; x=1688817829; h=in-reply-to:references:to:from:content-language:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=7Elx0SSg00Ox1RDrRbkfgsetv6pQHBFALQ1PyH1j4RU=; b=KAeIkxKP/Pf8Plr4JhgXa0QsB931OIrBnDieoRBJeigGJP4iw3RgOmhs0EpW/pPxbe 6uCROIf2OnW/jGpcWIZVLqMibJ1BQv4KzbGBNk+M/gkpwnzDqnRYc/ZFePO1zU1aT42x 6WEU5cJE1TgM7gKTOPo9r5bW9wMLGE+YJtSYDrI72jb5oe/qOWuwOtgzD0AACaBGwnaW LSdJVSMELmuL0KpS+0QubAOXXYo6oUcq8y5xfapCEckI0x8MbNDViiTmvpqd7NLbFFm0 2iamPVLXjWMqufg8Y58sKHUSCoRJxyV6RRu9VryCULeLsJkIOtSlg3A1qAJCIPBjp5SM gq3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686225829; x=1688817829; h=in-reply-to:references:to:from:content-language:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=7Elx0SSg00Ox1RDrRbkfgsetv6pQHBFALQ1PyH1j4RU=; b=KZTnaiFwzLDJhIW2/ECIP8DOCCQSUZHOzWqq7tLM2/BUXF9VBvZvuox78rTxl/2SDd r9M5yzaowOUa2VAsXr9+Dn0+cJz+/Zio4pFd4ETScajHBcPfLFXNmM6p1m7fbWJTxwus tHjdUM4aDyXUrtHu7HjeXxeKvek1HpXDzgpeP2Jo2Yw8oHdNJNkpLoQ/CuVz2eqyV4Hi 0o/10KgBWmksjsLcEtVM8mnqvzfyjxVLD/mmErCQINN2tSdejwoTE+5OU4WcPTSiKREy SQlBSTErjcrj6T8NjjDA/kXZLqvhTOuLmcRqPuYfBdacfzv55JbdNBM1TdAvMv7kHxmG 5IQg== X-Gm-Message-State: AC+VfDwXm7QozHQeuuc1lixROEhOAazra0EWN7kbxLPwvXsRcrmYHGZo 8qJSOfhmAOT4xshtJvJNksam7w== X-Google-Smtp-Source: ACHHUZ7ysVSop3f/hpL5P/bvFAfT7aooHXpWO8ulwPWh4Jh3ZygPD6zOgxWzj180H/t3Kh10PBgy7w== X-Received: by 2002:a17:907:3da9:b0:94f:3b07:a708 with SMTP id he41-20020a1709073da900b0094f3b07a708mr8607183ejc.29.1686225828399; Thu, 08 Jun 2023 05:03:48 -0700 (PDT) Received: from [10.137.0.17] (static-84-42-175-93.bb.vodafone.cz. [84.42.175.93]) by smtp.gmail.com with ESMTPSA id kj6-20020a170907764600b009787b18c253sm607311ejc.181.2023.06.08.05.03.46 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Jun 2023 05:03:47 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------rWyDHUFaciQk1dJG0D8xK1UK" Message-ID: <1701e986-fa32-f3fa-0ac8-39fae8e5db35@enterprisedb.com> Date: Thu, 8 Jun 2023 14:03:47 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: BRIN indexes vs. SK_SEARCHARRAY (and preprocessing scan keys) Content-Language: en-US From: Tomas Vondra To: Heikki Linnakangas , PostgreSQL Hackers References: <0e1f3350-c9cf-ab62-43a5-5dae314de89c@enterprisedb.com> <57020b2e-d9c9-9bc7-4892-b36d9bb07563@enterprisedb.com> <327064f1-276e-cb45-88c2-1ff498037cf5@enterprisedb.com> <4fa33caf-b5d1-6887-65a9-82ce9d92765c@enterprisedb.com> In-Reply-To: <4fa33caf-b5d1-6887-65a9-82ce9d92765c@enterprisedb.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. --------------rWyDHUFaciQk1dJG0D8xK1UK Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Here's a rebased version of this patch series, no other changes. On 2/25/23 12:45, Tomas Vondra wrote: > On 2/24/23 22:07, Heikki Linnakangas wrote: >> I had a quick look at just the preliminary cleanup patches: >> >>> 0001-BRIN-bloom-cleanup-20230218.patch >> >> Looks good to me >> >>> 0002-BRIN-minmax-multi-cleanup-20230218.patch >> >> Looks good, although it would feel more natural to me to do it the other >> way round, and define 'matches' as 'bool matches', and use DatumGetBool. >> > > Yeah, probably. I was trying to only do the minimal change because of > (maybe) backpatching this. > I haven't changed this. Heikki, do you think these cleanup parts should be backpatched? If yes, do you still think it should be reworked to do it the other way, or like I did it do minimize the change? regards -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company --------------rWyDHUFaciQk1dJG0D8xK1UK Content-Type: text/x-patch; charset=UTF-8; name="0001-BRIN-bloom-cleanup-20230608.patch" Content-Disposition: attachment; filename="0001-BRIN-bloom-cleanup-20230608.patch" Content-Transfer-Encoding: base64 RnJvbSA2Y2IyODAxY2U2YjEyNzM1NTVhOGFjOTMwYTI3NjMxYTI0MmE0YzQ1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQDJuZHF1YWRyYW50 LmNvbT4KRGF0ZTogV2VkLCAxNSBGZWIgMjAyMyAxMjozOToyMyArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMS85XSBCUklOIGJsb29tIGNsZWFudXAKCk1pbm9yIGNsZWFudXAgb2YgdGhlIEJS SU4gYmxvb20gY29kZSAtIHVzZSB0aGUgcHJvcGVyIGRhdGEgdHlwZSBmb3IgdGhlCmJvb2xl YW4gdmFyaWFibGUsIGFuZCBjb3JyZWN0IGNvbW1lbnQgY29waWVkIGZyb20gbWlubWF4Lgot LS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fYmxvb20uYyB8IDEyICsrKysrKy0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX2Jsb29tLmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX2Jsb29tLmMKaW5kZXggZTQ5NTNhOWQzN2Iu LjZjNzE2OTI0ZmZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmlu X2Jsb29tLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9ibG9vbS5jCkBA IC01NzQsNyArNTc0LDcgQEAgYnJpbl9ibG9vbV9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FS R1MpCiAJT2lkCQkJY29sbG9pZCA9IFBHX0dFVF9DT0xMQVRJT04oKTsKIAlBdHRyTnVtYmVy CWF0dG5vOwogCURhdHVtCQl2YWx1ZTsKLQlEYXR1bQkJbWF0Y2hlczsKKwlib29sCQltYXRj aGVzOwogCUZtZ3JJbmZvICAgKmZpbmZvOwogCXVpbnQzMgkJaGFzaFZhbHVlOwogCUJsb29t RmlsdGVyICpmaWx0ZXI7CkBAIC01ODQsNiArNTg0LDcgQEAgYnJpbl9ibG9vbV9jb25zaXN0 ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlBc3NlcnQoZmlsdGVyKTsKIAorCS8qIGFzc3Vt ZSBhbGwgc2NhbiBrZXlzIG1hdGNoICovCiAJbWF0Y2hlcyA9IHRydWU7CiAKIAlmb3IgKGtl eW5vID0gMDsga2V5bm8gPCBua2V5czsga2V5bm8rKykKQEAgLTYwMSw5ICs2MDIsOCBAQCBi cmluX2Jsb29tX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCWNhc2UgQmxvb21F cXVhbFN0cmF0ZWd5TnVtYmVyOgogCiAJCQkJLyoKLQkJCQkgKiBJbiB0aGUgZXF1YWxpdHkg Y2FzZSAoV0hFUkUgY29sID0gc29tZXZhbCksIHdlIHdhbnQgdG8KLQkJCQkgKiByZXR1cm4g dGhlIGN1cnJlbnQgcGFnZSByYW5nZSBpZiB0aGUgbWluaW11bSB2YWx1ZSBpbiB0aGUKLQkJ CQkgKiByYW5nZSA8PSBzY2FuIGtleSwgYW5kIHRoZSBtYXhpbXVtIHZhbHVlID49IHNjYW4g a2V5LgorCQkJCSAqIFdlIHdhbnQgdG8gcmV0dXJuIHRoZSBjdXJyZW50IHBhZ2UgcmFuZ2Ug aWYgdGhlIGJsb29tIGZpbHRlcgorCQkJCSAqIHNlZW1zIHRvIGNvbnRhaW4gdGhlIHZhbHVl LgogCQkJCSAqLwogCQkJCWZpbmZvID0gYmxvb21fZ2V0X3Byb2NpbmZvKGJkZXNjLCBhdHRu bywgUFJPQ05VTV9IQVNIKTsKIApAQCAtNjE0LDcgKzYxNCw3IEBAIGJyaW5fYmxvb21fY29u c2lzdGVudChQR19GVU5DVElPTl9BUkdTKQogCQkJZGVmYXVsdDoKIAkJCQkvKiBzaG91bGRu J3QgaGFwcGVuICovCiAJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgc3RyYXRlZ3kgbnVtYmVy ICVkIiwga2V5LT5za19zdHJhdGVneSk7Ci0JCQkJbWF0Y2hlcyA9IDA7CisJCQkJbWF0Y2hl cyA9IGZhbHNlOwogCQkJCWJyZWFrOwogCQl9CiAKQEAgLTYyMiw3ICs2MjIsNyBAQCBicmlu X2Jsb29tX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCWJyZWFrOwogCX0KIAot CVBHX1JFVFVSTl9EQVRVTShtYXRjaGVzKTsKKwlQR19SRVRVUk5fQk9PTChtYXRjaGVzKTsK IH0KIAogLyoKLS0gCjIuNDAuMQoK --------------rWyDHUFaciQk1dJG0D8xK1UK Content-Type: text/x-patch; charset=UTF-8; name="0002-BRIN-minmax-multi-cleanup-20230608.patch" Content-Disposition: attachment; filename="0002-BRIN-minmax-multi-cleanup-20230608.patch" Content-Transfer-Encoding: base64 RnJvbSAxYWI3MDdjMWQxM2JkMTllODc0OGY2Nzg0NmVlNzhmYWI4ZTkzYTllIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQDJuZHF1YWRyYW50 LmNvbT4KRGF0ZTogV2VkLCAxNSBGZWIgMjAyMyAxMjo1Mzo0NyArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMi85XSBCUklOIG1pbm1heC1tdWx0aSBjbGVhbnVwCgpXaGVuIGFzc2lnbmluZyB0 byBhIERhdHVtIHZhcmlhYmxlLCB1c2UgQm9vbEdldERhdHVtKCkgY29uc2lzdGVudGx5LgpT aW1ucGxpZnkgdGhlIGNvZGUgYnkgdXNpbmcgUEdfUkVUVVJOX0JPT0woKS4KLS0tCiBzcmMv YmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX21pbm1heF9tdWx0aS5jIHwgMTQgKysrKysrKy0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9taW5tYXhfbXVs dGkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fbWlubWF4X211bHRpLmMKaW5k ZXggOGU0ZTZjMmZjOGEuLjFkNjY1MzgzYjJjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvYnJpbi9icmluX21pbm1heF9tdWx0aS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9icmluL2JyaW5fbWlubWF4X211bHRpLmMKQEAgLTI2MjcsNyArMjYyNyw3IEBAIGJyaW5f bWlubWF4X211bHRpX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJCUZtZ3JJ bmZvICAgKmNtcEZuOwogCiAJCQkJCQkvKiBieSBkZWZhdWx0IHRoaXMgcmFuZ2UgZG9lcyBu b3QgbWF0Y2ggKi8KLQkJCQkJCW1hdGNoZXMgPSBmYWxzZTsKKwkJCQkJCW1hdGNoZXMgPSBC b29sR2V0RGF0dW0oZmFsc2UpOwogCiAJCQkJCQkvKgogCQkJCQkJICogT3RoZXJ3aXNlLCBu ZWVkIHRvIGNvbXBhcmUgdGhlIG5ldyB2YWx1ZSB3aXRoCkBAIC0yNjU1LDcgKzI2NTUsNyBA QCBicmluX21pbm1heF9tdWx0aV9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJ CQkgKiBXZSBoYXZlbid0IG1hbmFnZWQgdG8gZWxpbWluYXRlIHRoaXMgcmFuZ2UsIHNvCiAJ CQkJCQkgKiBjb25zaWRlciBpdCBtYXRjaGluZy4KIAkJCQkJCSAqLwotCQkJCQkJbWF0Y2hl cyA9IHRydWU7CisJCQkJCQltYXRjaGVzID0gQm9vbEdldERhdHVtKHRydWUpOwogCiAJCQkJ CQlicmVhazsKIAkJCQkJfQpAQCAtMjY3MCw3ICsyNjcwLDcgQEAgYnJpbl9taW5tYXhfbXVs dGlfY29uc2lzdGVudChQR19GVU5DVElPTl9BUkdTKQogCQkJCWRlZmF1bHQ6CiAJCQkJCS8q IHNob3VsZG4ndCBoYXBwZW4gKi8KIAkJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgc3RyYXRl Z3kgbnVtYmVyICVkIiwga2V5LT5za19zdHJhdGVneSk7Ci0JCQkJCW1hdGNoZXMgPSAwOwor CQkJCQltYXRjaGVzID0gQm9vbEdldERhdHVtKGZhbHNlKTsKIAkJCQkJYnJlYWs7CiAJCQl9 CiAKQEAgLTI2ODYsNyArMjY4Niw3IEBAIGJyaW5fbWlubWF4X211bHRpX2NvbnNpc3RlbnQo UEdfRlVOQ1RJT05fQVJHUykKIAkJICogaGF2ZSB3ZSBmb3VuZCBhIHJhbmdlIG1hdGNoaW5n IGFsbCBzY2FuIGtleXM/IGlmIHllcywgd2UncmUgZG9uZQogCQkgKi8KIAkJaWYgKG1hdGNo aW5nKQotCQkJUEdfUkVUVVJOX0RBVFVNKEJvb2xHZXREYXR1bSh0cnVlKSk7CisJCQlQR19S RVRVUk5fQk9PTCh0cnVlKTsKIAl9CiAKIAkvKgpAQCAtMjcyOSw3ICsyNzI5LDcgQEAgYnJp bl9taW5tYXhfbXVsdGlfY29uc2lzdGVudChQR19GVU5DVElPTl9BUkdTKQogCQkJCWRlZmF1 bHQ6CiAJCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8KIAkJCQkJZWxvZyhFUlJPUiwgImlu dmFsaWQgc3RyYXRlZ3kgbnVtYmVyICVkIiwga2V5LT5za19zdHJhdGVneSk7Ci0JCQkJCW1h dGNoZXMgPSAwOworCQkJCQltYXRjaGVzID0gQm9vbEdldERhdHVtKGZhbHNlKTsKIAkJCQkJ YnJlYWs7CiAJCQl9CiAKQEAgLTI3NDMsMTAgKzI3NDMsMTAgQEAgYnJpbl9taW5tYXhfbXVs dGlfY29uc2lzdGVudChQR19GVU5DVElPTl9BUkdTKQogCiAJCS8qIGhhdmUgd2UgZm91bmQg YSByYW5nZSBtYXRjaGluZyBhbGwgc2NhbiBrZXlzPyBpZiB5ZXMsIHdlJ3JlIGRvbmUgKi8K IAkJaWYgKG1hdGNoaW5nKQotCQkJUEdfUkVUVVJOX0RBVFVNKEJvb2xHZXREYXR1bSh0cnVl KSk7CisJCQlQR19SRVRVUk5fQk9PTCh0cnVlKTsKIAl9CiAKLQlQR19SRVRVUk5fREFUVU0o Qm9vbEdldERhdHVtKGZhbHNlKSk7CisJUEdfUkVUVVJOX0JPT0woZmFsc2UpOwogfQogCiAv KgotLSAKMi40MC4xCgo= --------------rWyDHUFaciQk1dJG0D8xK1UK Content-Type: text/x-patch; charset=UTF-8; name="0003-Introduce-bloom_filter_size-20230608.patch" Content-Disposition: attachment; filename="0003-Introduce-bloom_filter_size-20230608.patch" Content-Transfer-Encoding: base64 RnJvbSA3NzhiZmE3OWYwNmY4YjZmZDY5MjNiNmUxNDljZDY0NjQ4NzcxZWI0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQDJuZHF1YWRyYW50 LmNvbT4KRGF0ZTogVHVlLCAxNCBGZWIgMjAyMyAyMDoyODowOCArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMy85XSBJbnRyb2R1Y2UgYmxvb21fZmlsdGVyX3NpemUKCldyYXAgY2FsY3VsYXRp b24gb2YgQmxvb20gZmlsdGVyIHBhcmFtZXRlcnMgKGZyb20gbmRpc3RpbmN0IGFuZCBmYWxz ZQpwb3NpdGl2ZSByYXRlKSBpbnRvIGEgZnVuY3Rpb24uIFdlJ2xsIG5lZWQgdG8gZG8gdGhp cyBjYWxjdWxhdGlvbiBpbgpvdGhlciBwbGFjZXMsIGFuZCB0aGlzIG1ha2VzIGl0IG1vcmUg Y29uc2lzdGVudC4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX2Jsb29tLmMg fCA2MyArKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDcg aW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2JyaW4vYnJpbl9ibG9vbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4v YnJpbl9ibG9vbS5jCmluZGV4IDZjNzE2OTI0ZmZmLi40ZmY4MGFlYjBjYyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9ibG9vbS5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9icmluL2JyaW5fYmxvb20uYwpAQCAtMjU5LDYgKzI1OSw0OCBAQCB0eXBl ZGVmIHN0cnVjdCBCbG9vbUZpbHRlcgogCWNoYXIJCWRhdGFbRkxFWElCTEVfQVJSQVlfTUVN QkVSXTsKIH0gQmxvb21GaWx0ZXI7CiAKKy8qCisgKiBibG9vbV9maWx0ZXJfc2l6ZQorICoJ CUNhbGN1bGF0ZSBCbG9vbSBmaWx0ZXIgcGFyYW1ldGVycyAobmJpdHMsIG5ieXRlcywgbmhh c2hlcykuCisgKgorICogR2l2ZW4gZXhwZWN0ZWQgbnVtYmVyIG9mIGRpc3RpbmN0IHZhbHVl cyBhbmQgZGVzaXJlZCBmYWxzZSBwb3NpdGl2ZSByYXRlLAorICogY2FsY3VsYXRlcyB0aGUg b3B0aW1hbCBwYXJhbWV0ZXJzIG9mIHRoZSBCbG9vbSBmaWx0ZXIuCisgKgorICogVGhlIHJl c3VsdGluZyBwYXJhbWV0ZXJzIGFyZSByZXR1cm5lZCB0aHJvdWdoIG5ieXRlc3AgKG51bWJl ciBvZiBieXRlcyksCisgKiBuYml0c3AgKG51bWJlciBvZiBiaXRzKSBhbmQgbmhhc2hlc3Ag KG51bWJlciBvZiBoYXNoIGZ1bmN0aW9ucykuIElmIGEKKyAqIHBvaW50ZXIgaXMgTlVMTCwg dGhlIHBhcmFtZXRlciBpcyBub3QgcmV0dXJuZWQuCisgKi8KK3N0YXRpYyB2b2lkCitibG9v bV9maWx0ZXJfc2l6ZShpbnQgbmRpc3RpbmN0LCBkb3VibGUgZmFsc2VfcG9zaXRpdmVfcmF0 ZSwKKwkJCQkgIGludCAqbmJ5dGVzcCwgaW50ICpuYml0c3AsIGludCAqbmhhc2hlc3ApCit7 CisJZG91YmxlCWs7CisJaW50CQluYml0cywKKwkJCW5ieXRlczsKKworCS8qIHNpemluZyBi bG9vbSBmaWx0ZXI6IC0obiAqIGxuKHApKSAvIChsbigyKSleMiAqLworCW5iaXRzID0gY2Vp bCgtKG5kaXN0aW5jdCAqIGxvZyhmYWxzZV9wb3NpdGl2ZV9yYXRlKSkgLyBwb3cobG9nKDIu MCksIDIpKTsKKworCS8qIHJvdW5kIG0gdG8gd2hvbGUgYnl0ZXMgKi8KKwluYnl0ZXMgPSAo KG5iaXRzICsgNykgLyA4KTsKKwluYml0cyA9IG5ieXRlcyAqIDg7CisKKwkvKgorCSAqIHJv dW5kKGxvZygyLjApICogbSAvIG5kaXN0aW5jdCksIGJ1dCBhc3N1bWUgcm91bmQoKSBtYXkg bm90IGJlCisJICogYXZhaWxhYmxlIG9uIFdpbmRvd3MKKwkgKi8KKwlrID0gbG9nKDIuMCkg KiBuYml0cyAvIG5kaXN0aW5jdDsKKwlrID0gKGsgLSBmbG9vcihrKSA+PSAwLjUpID8gY2Vp bChrKSA6IGZsb29yKGspOworCisJaWYgKG5ieXRlc3ApCisJCSpuYnl0ZXNwID0gbmJ5dGVz OworCisJaWYgKG5iaXRzcCkKKwkJKm5iaXRzcCA9IG5iaXRzOworCisJaWYgKG5oYXNoZXNw KQorCQkqbmhhc2hlc3AgPSAoaW50KSBrOworfQogCiAvKgogICogYmxvb21faW5pdApAQCAt Mjc1LDE5ICszMTcsMTUgQEAgYmxvb21faW5pdChpbnQgbmRpc3RpbmN0LCBkb3VibGUgZmFs c2VfcG9zaXRpdmVfcmF0ZSkKIAogCWludAkJCW5iaXRzOwkJCS8qIHNpemUgb2YgZmlsdGVy IC8gbnVtYmVyIG9mIGJpdHMgKi8KIAlpbnQJCQluYnl0ZXM7CQkJLyogc2l6ZSBvZiBmaWx0 ZXIgLyBudW1iZXIgb2YgYnl0ZXMgKi8KLQotCWRvdWJsZQkJazsJCQkJLyogbnVtYmVyIG9m IGhhc2ggZnVuY3Rpb25zICovCisJaW50CQkJbmhhc2hlczsJCS8qIG51bWJlciBvZiBoYXNo IGZ1bmN0aW9ucyAqLwogCiAJQXNzZXJ0KG5kaXN0aW5jdCA+IDApOwogCUFzc2VydCgoZmFs c2VfcG9zaXRpdmVfcmF0ZSA+PSBCTE9PTV9NSU5fRkFMU0VfUE9TSVRJVkVfUkFURSkgJiYK IAkJICAgKGZhbHNlX3Bvc2l0aXZlX3JhdGUgPCBCTE9PTV9NQVhfRkFMU0VfUE9TSVRJVkVf UkFURSkpOwogCi0JLyogc2l6aW5nIGJsb29tIGZpbHRlcjogLShuICogbG4ocCkpIC8gKGxu KDIpKV4yICovCi0JbmJpdHMgPSBjZWlsKC0obmRpc3RpbmN0ICogbG9nKGZhbHNlX3Bvc2l0 aXZlX3JhdGUpKSAvIHBvdyhsb2coMi4wKSwgMikpOwotCi0JLyogcm91bmQgbSB0byB3aG9s ZSBieXRlcyAqLwotCW5ieXRlcyA9ICgobmJpdHMgKyA3KSAvIDgpOwotCW5iaXRzID0gbmJ5 dGVzICogODsKKwkvKiBjYWxjdWxhdGUgYmxvb20gZmlsdGVyIHNpemUgLyBwYXJhbWV0ZXJz ICovCisJYmxvb21fZmlsdGVyX3NpemUobmRpc3RpbmN0LCBmYWxzZV9wb3NpdGl2ZV9yYXRl LAorCQkJCQkgICZuYnl0ZXMsICZuYml0cywgJm5oYXNoZXMpOwogCiAJLyoKIAkgKiBSZWpl Y3QgZmlsdGVycyB0aGF0IGFyZSBvYnZpb3VzbHkgdG9vIGxhcmdlIHRvIHN0b3JlIG9uIGEg cGFnZS4KQEAgLTMxMCwxMyArMzQ4LDYgQEAgYmxvb21faW5pdChpbnQgbmRpc3RpbmN0LCBk b3VibGUgZmFsc2VfcG9zaXRpdmVfcmF0ZSkKIAkJZWxvZyhFUlJPUiwgInRoZSBibG9vbSBm aWx0ZXIgaXMgdG9vIGxhcmdlICglZCA+ICV6dSkiLCBuYnl0ZXMsCiAJCQkgQmxvb21NYXhG aWx0ZXJTaXplKTsKIAotCS8qCi0JICogcm91bmQobG9nKDIuMCkgKiBtIC8gbmRpc3RpbmN0 KSwgYnV0IGFzc3VtZSByb3VuZCgpIG1heSBub3QgYmUKLQkgKiBhdmFpbGFibGUgb24gV2lu ZG93cwotCSAqLwotCWsgPSBsb2coMi4wKSAqIG5iaXRzIC8gbmRpc3RpbmN0OwotCWsgPSAo ayAtIGZsb29yKGspID49IDAuNSkgPyBjZWlsKGspIDogZmxvb3Ioayk7Ci0KIAkvKgogCSAq IFdlIGFsbG9jYXRlIHRoZSB3aG9sZSBmaWx0ZXIuIE1vc3Qgb2YgaXQgaXMgZ29pbmcgdG8g YmUgMCBiaXRzLCBzbyB0aGUKIAkgKiB2YXJsZW5hIGlzIGVhc3kgdG8gY29tcHJlc3MuCkBA IC0zMjYsNyArMzU3LDcgQEAgYmxvb21faW5pdChpbnQgbmRpc3RpbmN0LCBkb3VibGUgZmFs c2VfcG9zaXRpdmVfcmF0ZSkKIAlmaWx0ZXIgPSAoQmxvb21GaWx0ZXIgKikgcGFsbG9jMChs ZW4pOwogCiAJZmlsdGVyLT5mbGFncyA9IDA7Ci0JZmlsdGVyLT5uaGFzaGVzID0gKGludCkg azsKKwlmaWx0ZXItPm5oYXNoZXMgPSBuaGFzaGVzOwogCWZpbHRlci0+bmJpdHMgPSBuYml0 czsKIAogCVNFVF9WQVJTSVpFKGZpbHRlciwgbGVuKTsKLS0gCjIuNDAuMQoK --------------rWyDHUFaciQk1dJG0D8xK1UK Content-Type: text/x-patch; charset=UTF-8; name="0004-Add-minmax-multi-inequality-tests-20230608.patch" Content-Disposition: attachment; filename="0004-Add-minmax-multi-inequality-tests-20230608.patch" Content-Transfer-Encoding: base64 RnJvbSAwMmRmNjUzODdlZWE2ZmU2MTc0NjA5MDBkYTYyYjVjNTQ5MWQwNGYxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogRnJpLCAxNyBGZWIgMjAyMyAwMjoyNTo1MiArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggNC85XSBBZGQgbWlubWF4LW11bHRpIGluZXF1YWxpdHkgdGVzdHMKCkFk ZCB0ZXN0cyBleGVyY2lzaW5nIHRoZSBvdGhlciBzY2FuIGtleSBzdHJhdGVnaWVzLCB0byBp bXByb3ZlIHRlc3QKY292ZXJhZ2UuCi0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9i cmluX211bHRpLm91dCB8IDM2MyArKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvYnJpbl9tdWx0aS5zcWwgICAgICB8IDEzNiArKysrKysrKysKIDIgZmls ZXMgY2hhbmdlZCwgNDk5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2JyaW5fbXVsdGkub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9icmluX211bHRpLm91dAppbmRleCA4NjFhMDZlZjhjYS4uMzNjNDU2NmQ3YTEgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnJpbl9tdWx0aS5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9icmluX211bHRpLm91dApAQCAtNDY2LDMg KzQ2NiwzNjYgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGJyaW5fdGVz dF9tdWx0aSBXSEVSRSBiID0gMTsKICAgIEZpbHRlcjogKGIgPSAxKQogKDIgcm93cykKIAor LS0gZG8gc29tZSBpbmVxdWFsaXR5IHRlc3RzCitDUkVBVEUgVEFCTEUgYnJpbl90ZXN0X211 bHRpXzEgKGEgSU5ULCBiIEJJR0lOVCkgV0lUSCAoZmlsbGZhY3Rvcj0xMCk7CitJTlNFUlQg SU5UTyBicmluX3Rlc3RfbXVsdGlfMQorU0VMRUNUIGkvNSArIG1vZCg5MTEgKiBpICsgNDgz LCAyNSksCisgICAgICAgaS8xMCArIG1vZCg3NTEgKiBpICsgMjIxLCA0MSkKKyAgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKSBzKGkpOworQ1JFQVRFIElOREVYIGJyaW5fdGVzdF9t dWx0aV8xX2lkeF8xIE9OIGJyaW5fdGVzdF9tdWx0aV8xIFVTSU5HIGJyaW4gKGEgaW50NF9t aW5tYXhfbXVsdGlfb3BzKSBXSVRIIChwYWdlc19wZXJfcmFuZ2U9NSk7CitDUkVBVEUgSU5E RVggYnJpbl90ZXN0X211bHRpXzFfaWR4XzIgT04gYnJpbl90ZXN0X211bHRpXzEgVVNJTkcg YnJpbiAoYiBpbnQ4X21pbm1heF9tdWx0aV9vcHMpIFdJVEggKHBhZ2VzX3Blcl9yYW5nZT01 KTsKK1NFVCBlbmFibGVfc2Vxc2Nhbj1vZmY7CistLSBpbnQ6IGxlc3MgdGhhbgorRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEg V0hFUkUgYSA8IDM3OworICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBI ZWFwIFNjYW4gb24gYnJpbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDog KGEgPCAzNykKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX3Rlc3Rf bXVsdGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPCAzNykKKyg1 IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJF IGEgPCAzNzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDEyNAorKDEgcm93KQorCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBX SEVSRSBhIDwgMTEzOworICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBI ZWFwIFNjYW4gb24gYnJpbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDog KGEgPCAxMTMpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl90ZXN0 X211bHRpXzFfaWR4XzEKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhIDwgMTEzKQor KDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEgV0hF UkUgYSA8IDExMzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDUwNAorKDEgcm93KQorCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlf MSBXSEVSRSBhIDw9IDE3NzsKKyAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRt YXAgSGVhcCBTY2FuIG9uIGJyaW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENv bmQ6IChhIDw9IDE3NykKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmlu X3Rlc3RfbXVsdGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPD0g MTc3KQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRp XzEgV0hFUkUgYSA8PSAxNzc7CisgY291bnQgCistLS0tLS0tCisgICA4MjkKKygxIHJvdykK KworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0 X211bHRpXzEgV0hFUkUgYSA8PSAyNTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNo ZWNrIENvbmQ6IChhIDw9IDI1KQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9u IGJyaW5fdGVzdF9tdWx0aV8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo YSA8PSAyNSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9t dWx0aV8xIFdIRVJFIGEgPD0gMjU7CisgY291bnQgCistLS0tLS0tCisgICAgNjkKKygxIHJv dykKKworLS0gaW50OiBncmVhdGVyIHRoYW4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPiAxMjA7CisgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX3Rl c3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA+IDEyMCkKKyAgICAgICAg IC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMV9pZHhfMQorICAg ICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPiAxMjApCisoNSByb3dzKQorCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID4gMTIwOworIGNvdW50 IAorLS0tLS0tLQorICAgNDU2CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPj0gMTgwOwor ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJp bl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPj0gMTgwKQorICAg ICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5fdGVzdF9tdWx0aV8xX2lkeF8x CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA+PSAxODApCisoNSByb3dzKQorCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID49IDE4MDsK KyBjb3VudCAKKy0tLS0tLS0KKyAgIDE2MQorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBP RkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID4g NzE7CisgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBv biBicmluX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA+IDcxKQor ICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5fdGVzdF9tdWx0aV8xX2lk eF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA+IDcxKQorKDUgcm93cykKKwor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEgV0hFUkUgYSA+IDcxOwor IGNvdW50IAorLS0tLS0tLQorICAgNzAxCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9G RikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPj0g NjM7CisgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBv biBicmluX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA+PSA2MykK KyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMV9p ZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPj0gNjMpCisoNSByb3dzKQor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID49IDYz OworIGNvdW50IAorLS0tLS0tLQorICAgNzQ2CisoMSByb3cpCisKKy0tIGJpZ2ludDogbGVz cyB0aGFuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDwgNzM7CisgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMQorICAgICAgICAg UmVjaGVjayBDb25kOiAoYiA8IDczKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2Fu IG9uIGJyaW5fdGVzdF9tdWx0aV8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25k OiAoYiA8IDczKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0 X211bHRpXzEgV0hFUkUgYiA8IDczOworIGNvdW50IAorLS0tLS0tLQorICAgNTI5CisoMSBy b3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f dGVzdF9tdWx0aV8xIFdIRVJFIGIgPD0gNDc7CisgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMQorICAgICAgICAg UmVjaGVjayBDb25kOiAoYiA8PSA0NykKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2Nh biBvbiBicmluX3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29u ZDogKGIgPD0gNDcpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rl c3RfbXVsdGlfMSBXSEVSRSBiIDw9IDQ3OworIGNvdW50IAorLS0tLS0tLQorICAgMjc5Ciso MSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPCAxOTk7CisgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRl CisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMQorICAgICAg ICAgUmVjaGVjayBDb25kOiAoYiA8IDE5OSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXgg U2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXgg Q29uZDogKGIgPCAxOTkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDwgMTk5OworIGNvdW50IAorLS0tLS0tLQorICAxMDAw CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPD0gMTUwOworICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3Jl Z2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl90ZXN0X211bHRpXzEKKyAg ICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPD0gMTUwKQorICAgICAgICAgLT4gIEJpdG1hcCBJ bmRleCBTY2FuIG9uIGJyaW5fdGVzdF9tdWx0aV8xX2lkeF8yCisgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoYiA8PSAxNTApCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJP TSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDw9IDE1MDsKKyBjb3VudCAKKy0tLS0tLS0K KyAgMTAwMAorKDEgcm93KQorCistLSBiaWdpbnQ6IGdyZWF0ZXIgdGhhbgorRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEgV0hF UkUgYiA+IDkzOworICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFw IFNjYW4gb24gYnJpbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIg PiA5MykKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX3Rlc3RfbXVs dGlfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgPiA5MykKKyg1IHJv d3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIg PiA5MzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDI2MQorKDEgcm93KQorCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVS RSBiID4gMzc7CisgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAg U2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA+ IDM3KQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5fdGVzdF9tdWx0 aV8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA+IDM3KQorKDUgcm93 cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEgV0hFUkUgYiA+ IDM3OworIGNvdW50IAorLS0tLS0tLQorICAgODIxCisoMSByb3cpCisKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJF IGIgPj0gMjE1OworICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFw IFNjYW4gb24gYnJpbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIg Pj0gMjE1KQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5fdGVzdF9t dWx0aV8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA+PSAyMTUpCiso NSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVS RSBiID49IDIxNTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlf MSBXSEVSRSBiID4gMjAxOworICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1h cCBIZWFwIFNjYW4gb24gYnJpbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29u ZDogKGIgPiAyMDEpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl90 ZXN0X211bHRpXzFfaWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChiID4gMjAx KQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEg V0hFUkUgYiA+IDIwMTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitE Uk9QIFRBQkxFIGJyaW5fdGVzdF9tdWx0aV8xOworUkVTRVQgZW5hYmxlX3NlcXNjYW47Cist LSBkbyBzb21lIGluZXF1YWxpdHkgdGVzdHMgZm9yIHZhcmxlbmEgZGF0YSB0eXBlcworQ1JF QVRFIFRBQkxFIGJyaW5fdGVzdF9tdWx0aV8yIChhIFVVSUQpIFdJVEggKGZpbGxmYWN0b3I9 MTApOworSU5TRVJUIElOVE8gYnJpbl90ZXN0X211bHRpXzIKK1NFTEVDVCB2Ojp1dWlkIEZS T00gKFNFTEVDVCByb3dfbnVtYmVyKCkgT1ZFUiAoT1JERVIgQlkgdikgYywgdiBGUk9NIChT RUxFQ1QgbWQ1KChpLzEzKTo6dGV4dCkgQVMgdiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEw MDApIHMoaSkpIGZvbykgYmFyIE9SREVSIEJZIGMgKyAyNSAqIHJhbmRvbSgpOworQ1JFQVRF IElOREVYIGJyaW5fdGVzdF9tdWx0aV8yX2lkeCBPTiBicmluX3Rlc3RfbXVsdGlfMiBVU0lO RyBicmluIChhIHV1aWRfbWlubWF4X211bHRpX29wcykgV0lUSCAocGFnZXNfcGVyX3Jhbmdl PTUpOworU0VUIGVuYWJsZV9zZXFzY2FuPW9mZjsKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgPCAnMzNlNzVm ZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JzsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0 bWFwIEhlYXAgU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMgorICAgICAgICAgUmVjaGVjayBD b25kOiAoYSA8ICczM2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0zNTEwMzkxNTIxODknOjp1dWlk KQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5fdGVzdF9tdWx0aV8y X2lkeAorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPCAnMzNlNzVmZjAtOWRkNi0w MWJiLWU2OWYtMzUxMDM5MTUyMTg5Jzo6dXVpZCkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgPCAnMzNlNzVmZjAtOWRkNi0w MWJiLWU2OWYtMzUxMDM5MTUyMTg5JzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDE5NQorKDEg cm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X3Rlc3RfbXVsdGlfMiBXSEVSRSBhID4gJzMzZTc1ZmYwLTlkZDYtMDFiYi1lNjlmLTM1MTAz OTE1MjE4OSc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl90 ZXN0X211bHRpXzIKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPiAnMzNlNzVmZjAtOWRk Ni0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5Jzo6dXVpZCkKKyAgICAgICAgIC0+ICBCaXRtYXAg SW5kZXggU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMl9pZHgKKyAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6IChhID4gJzMzZTc1ZmYwLTlkZDYtMDFiYi1lNjlmLTM1MTAzOTE1MjE4OSc6 OnV1aWQpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVs dGlfMiBXSEVSRSBhID4gJzMzZTc1ZmYwLTlkZDYtMDFiYi1lNjlmLTM1MTAzOTE1MjE4OSc7 CisgY291bnQgCistLS0tLS0tCisgICA3OTIKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzIgV0hFUkUgYSA8 PSAnZjQ1N2M1NDUtYTlkZS1kODhmLTE4ZWMtZWU0NzE0NWE3MmMwJzsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUK KyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5fdGVzdF9tdWx0aV8yCisgICAgICAg ICBSZWNoZWNrIENvbmQ6IChhIDw9ICdmNDU3YzU0NS1hOWRlLWQ4OGYtMThlYy1lZTQ3MTQ1 YTcyYzAnOjp1dWlkKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5f dGVzdF9tdWx0aV8yX2lkeAorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPD0gJ2Y0 NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMCc6OnV1aWQpCisoNSByb3dzKQor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMiBXSEVSRSBhIDw9ICdm NDU3YzU0NS1hOWRlLWQ4OGYtMThlYy1lZTQ3MTQ1YTcyYzAnOworIGNvdW50IAorLS0tLS0t LQorICAgOTYxCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgPj0gJ2M1MWNlNDEwLWMxMjQt YTEwZS0wZGI1LWU0Yjk3ZmMyYWYzOSc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhl YXAgU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMgorICAgICAgICAgUmVjaGVjayBDb25kOiAo YSA+PSAnYzUxY2U0MTAtYzEyNC1hMTBlLTBkYjUtZTRiOTdmYzJhZjM5Jzo6dXVpZCkKKyAg ICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMl9pZHgK KyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID49ICdjNTFjZTQxMC1jMTI0LWExMGUt MGRiNS1lNGI5N2ZjMmFmMzknOjp1dWlkKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl90ZXN0X211bHRpXzIgV0hFUkUgYSA+PSAnYzUxY2U0MTAtYzEyNC1hMTBl LTBkYjUtZTRiOTdmYzJhZjM5JzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDI3MgorKDEgcm93 KQorCitEUk9QIFRBQkxFIGJyaW5fdGVzdF9tdWx0aV8yOworUkVTRVQgZW5hYmxlX3NlcXNj YW47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9icmluX211bHRpLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2JyaW5fbXVsdGkuc3FsCmluZGV4IDA3MDQ1NTI1N2Mw Li42OGJhOTQxMjFlMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYnJpbl9t dWx0aS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYnJpbl9tdWx0aS5zcWwKQEAg LTQyMSwzICs0MjEsMTM5IEBAIFZBQ1VVTSBBTkFMWVpFIGJyaW5fdGVzdF9tdWx0aTsKIEVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBicmluX3Rlc3RfbXVsdGkgV0hFUkUg YSA9IDE7CiAtLSBFbnN1cmUgYnJpbiBpbmRleCBpcyBub3QgdXNlZCB3aGVuIHZhbHVlcyBh cmUgbm90IGNvcnJlbGF0ZWQKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBi cmluX3Rlc3RfbXVsdGkgV0hFUkUgYiA9IDE7CisKKworLS0gZG8gc29tZSBpbmVxdWFsaXR5 IHRlc3RzCitDUkVBVEUgVEFCTEUgYnJpbl90ZXN0X211bHRpXzEgKGEgSU5ULCBiIEJJR0lO VCkgV0lUSCAoZmlsbGZhY3Rvcj0xMCk7CitJTlNFUlQgSU5UTyBicmluX3Rlc3RfbXVsdGlf MQorU0VMRUNUIGkvNSArIG1vZCg5MTEgKiBpICsgNDgzLCAyNSksCisgICAgICAgaS8xMCAr IG1vZCg3NTEgKiBpICsgMjIxLCA0MSkKKyAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAw KSBzKGkpOworCitDUkVBVEUgSU5ERVggYnJpbl90ZXN0X211bHRpXzFfaWR4XzEgT04gYnJp bl90ZXN0X211bHRpXzEgVVNJTkcgYnJpbiAoYSBpbnQ0X21pbm1heF9tdWx0aV9vcHMpIFdJ VEggKHBhZ2VzX3Blcl9yYW5nZT01KTsKK0NSRUFURSBJTkRFWCBicmluX3Rlc3RfbXVsdGlf MV9pZHhfMiBPTiBicmluX3Rlc3RfbXVsdGlfMSBVU0lORyBicmluIChiIGludDhfbWlubWF4 X211bHRpX29wcykgV0lUSCAocGFnZXNfcGVyX3JhbmdlPTUpOworCitTRVQgZW5hYmxlX3Nl cXNjYW49b2ZmOworCistLSBpbnQ6IGxlc3MgdGhhbgorRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEgV0hFUkUgYSA8IDM3Owor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDwgMzc7 CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVz dF9tdWx0aV8xIFdIRVJFIGEgPCAxMTM7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f dGVzdF9tdWx0aV8xIFdIRVJFIGEgPCAxMTM7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPD0gMTc3Owor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDw9IDE3 NzsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90 ZXN0X211bHRpXzEgV0hFUkUgYSA8PSAyNTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl90ZXN0X211bHRpXzEgV0hFUkUgYSA8PSAyNTsKKworLS0gaW50OiBncmVhdGVyIHRoYW4K K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9t dWx0aV8xIFdIRVJFIGEgPiAxMjA7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVz dF9tdWx0aV8xIFdIRVJFIGEgPiAxMjA7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPj0gMTgwOworCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID49IDE4MDsK KworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0 X211bHRpXzEgV0hFUkUgYSA+IDcxOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rl c3RfbXVsdGlfMSBXSEVSRSBhID4gNzE7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPj0gNjM7CisKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPj0gNjM7CisK Ky0tIGJpZ2ludDogbGVzcyB0aGFuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDwgNzM7CisKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPCA3MzsKKworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEg V0hFUkUgYiA8PSA0NzsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRp XzEgV0hFUkUgYiA8PSA0NzsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl90ZXN0X211bHRpXzEgV0hFUkUgYiA8IDE5OTsKKworU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEgV0hFUkUgYiA8IDE5OTsKKworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEg V0hFUkUgYiA8PSAxNTA7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0 aV8xIFdIRVJFIGIgPD0gMTUwOworCistLSBiaWdpbnQ6IGdyZWF0ZXIgdGhhbgorRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEg V0hFUkUgYiA+IDkzOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlf MSBXSEVSRSBiID4gOTM7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPiAzNzsKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl90ZXN0X211bHRpXzEgV0hFUkUgYiA+IDM3OworCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVS RSBiID49IDIxNTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEg V0hFUkUgYiA+PSAyMTU7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPiAyMDE7CisKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPiAyMDE7CisKK0RST1AgVEFC TEUgYnJpbl90ZXN0X211bHRpXzE7CitSRVNFVCBlbmFibGVfc2Vxc2NhbjsKKworCistLSBk byBzb21lIGluZXF1YWxpdHkgdGVzdHMgZm9yIHZhcmxlbmEgZGF0YSB0eXBlcworQ1JFQVRF IFRBQkxFIGJyaW5fdGVzdF9tdWx0aV8yIChhIFVVSUQpIFdJVEggKGZpbGxmYWN0b3I9MTAp OworSU5TRVJUIElOVE8gYnJpbl90ZXN0X211bHRpXzIKK1NFTEVDVCB2Ojp1dWlkIEZST00g KFNFTEVDVCByb3dfbnVtYmVyKCkgT1ZFUiAoT1JERVIgQlkgdikgYywgdiBGUk9NIChTRUxF Q1QgbWQ1KChpLzEzKTo6dGV4dCkgQVMgdiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDAp IHMoaSkpIGZvbykgYmFyIE9SREVSIEJZIGMgKyAyNSAqIHJhbmRvbSgpOworCitDUkVBVEUg SU5ERVggYnJpbl90ZXN0X211bHRpXzJfaWR4IE9OIGJyaW5fdGVzdF9tdWx0aV8yIFVTSU5H IGJyaW4gKGEgdXVpZF9taW5tYXhfbXVsdGlfb3BzKSBXSVRIIChwYWdlc19wZXJfcmFuZ2U9 NSk7CisKK1NFVCBlbmFibGVfc2Vxc2Nhbj1vZmY7CisKK0VYUExBSU4gKENPU1RTIE9GRikK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgPCAnMzNl NzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JzsKKworU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl90ZXN0X211bHRpXzIgV0hFUkUgYSA8ICczM2U3NWZmMC05ZGQ2LTAxYmIt ZTY5Zi0zNTEwMzkxNTIxODknOworCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgPiAnMzNlNzVmZjAtOWRk Ni0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JzsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl90ZXN0X211bHRpXzIgV0hFUkUgYSA+ICczM2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0zNTEw MzkxNTIxODknOworCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgPD0gJ2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0x OGVjLWVlNDcxNDVhNzJjMCc7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9t dWx0aV8yIFdIRVJFIGEgPD0gJ2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJj MCc7CisKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl90ZXN0X211bHRpXzIgV0hFUkUgYSA+PSAnYzUxY2U0MTAtYzEyNC1hMTBlLTBkYjUtZTRi OTdmYzJhZjM5JzsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzIg V0hFUkUgYSA+PSAnYzUxY2U0MTAtYzEyNC1hMTBlLTBkYjUtZTRiOTdmYzJhZjM5JzsKKwor RFJPUCBUQUJMRSBicmluX3Rlc3RfbXVsdGlfMjsKK1JFU0VUIGVuYWJsZV9zZXFzY2FuOwot LSAKMi40MC4xCgo= --------------rWyDHUFaciQk1dJG0D8xK1UK Content-Type: text/x-patch; charset=UTF-8; name="0005-Introduce-BRIN_PROCNUM_PREPROCESS-procedure-20230608.patch" Content-Disposition: attachment; filename*0="0005-Introduce-BRIN_PROCNUM_PREPROCESS-procedure-20230608.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBjOTZlZTcyNWZkNmEzMGE5MjgwMGFmOGZiMDViNDg3NTQ5ZjJmMzg2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQDJuZHF1YWRyYW50 LmNvbT4KRGF0ZTogVHVlLCAxNCBGZWIgMjAyMyAyMDoyOTozMyArMDEwMApTdWJqZWN0OiBb UEFUQ0ggNS85XSBJbnRyb2R1Y2UgQlJJTl9QUk9DTlVNX1BSRVBST0NFU1MgcHJvY2VkdXJl CgpBbGxvdyBCUklOIG9wY2xhc3NlcyB0byBkZWZpbmUgYW4gb3B0aW9uYWwgcHJvY2VkdXJl IHRvIHByZXByb2Nlc3Mgc2NhbgprZXlzLCBhbmQgY2FsbCBpdCBmcm9tIGJyaW5yZXNjYW4o KS4gVGhpcyBhbGxvd3MgdGhlIG9wY2xhc3MgdG8gbW9kaWZ5CnRoZSBrZXlzIGluIHZhcmlv dXMgd2F5cyAtIHNvcnQgYXJyYXlzLCBjYWxjdWxhdGUgaGFzaGVzLCAuLi4KCk5vdGU6IFRo ZSBwcm9jZWR1cmUgaXMgb3B0aW9uYWwsIHNvIGV4aXN0aW5nIG9wY2xhc3NlcyBkb24ndCBu ZWVkIHRvIGFkZAppdC4gQnV0IGlmIGl0IHVzZXMgdGhlIGV4aXN0aW5nIEJSSU5fUFJPQ05V TV9DT05TSVNURU5UIGZ1bmN0aW9uLCBpdCdsbApnZXQgYnJva2VuLiBJZiB3ZSB3YW50IHRv IG1ha2UgdGhpcyBiYWNrd2FyZHMtY29tcGF0aWJsZSwgd2UgbWlnaHQgY2hlY2sKaWYgQlJJ Tl9QUk9DTlVNX1BSRVBST0NFU1MgZXhpc3QgZnJvbSBCUklOX1BST0NOVU1fQ09OU0lTVEVO VCwgYW5kCmFkanVzdCBiZWhhdmlvciBiYXNlZCBvbiB0aGF0LgotLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9icmluL2JyaW4uYyAgICAgfCA4NiArKysrKysrKysrKysrKysrKysrKysrKysr KystLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9icmluX2ludGVybmFsLmggfCAgMSArCiAyIGZp bGVzIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2JyaW4vYnJpbi5jCmluZGV4IDNjNmE5NTZlYWEzLi5mN2ZhOWYzZjA2YiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9icmluL2JyaW4uYwpAQCAtNjYsNiArNjYsMTIgQEAgdHlwZWRlZiBzdHJ1Y3Qg QnJpbk9wYXF1ZQogCUJsb2NrTnVtYmVyIGJvX3BhZ2VzUGVyUmFuZ2U7CiAJQnJpblJldm1h cCAqYm9fcm1BY2Nlc3M7CiAJQnJpbkRlc2MgICAqYm9fYmRlc2M7CisKKwkvKiBwcmVwcm9j ZXNzZWQgc2NhbiBrZXlzICovCisJaW50CQkJYm9fbnVtU2NhbktleXM7CQkvKiBudW1iZXIg b2YgKHByZXByb2Nlc3NlZCkgc2NhbiBrZXlzICovCisJU2NhbktleQkgICAqYm9fc2Nhbktl eXM7CQkvKiBtb2RpZmllZCBjb3B5IG9mIHNjYW4tPmtleURhdGEgKi8KKwlNZW1vcnlDb250 ZXh0IGJvX3NjYW5LZXlzQ3h0OwkvKiBzY2FuLWxpZmVzcGFuIGNvbnRleHQgZm9yIGtleSBk YXRhICovCisKIH0gQnJpbk9wYXF1ZTsKIAogI2RlZmluZSBCUklOX0FMTF9CTE9DS1JBTkdF UwlJbnZhbGlkQmxvY2tOdW1iZXIKQEAgLTMzNSw2ICszNDEsMTEgQEAgYnJpbmJlZ2luc2Nh bihSZWxhdGlvbiByLCBpbnQgbmtleXMsIGludCBub3JkZXJieXMpCiAJb3BhcXVlLT5ib19y bUFjY2VzcyA9IGJyaW5SZXZtYXBJbml0aWFsaXplKHIsICZvcGFxdWUtPmJvX3BhZ2VzUGVy UmFuZ2UsCiAJCQkJCQkJCQkJCSAgIHNjYW4tPnhzX3NuYXBzaG90KTsKIAlvcGFxdWUtPmJv X2JkZXNjID0gYnJpbl9idWlsZF9kZXNjKHIpOworCisJb3BhcXVlLT5ib19udW1TY2FuS2V5 cyA9IDA7CisJb3BhcXVlLT5ib19zY2FuS2V5cyA9IE5VTEw7CisJb3BhcXVlLT5ib19zY2Fu S2V5c0N4dCA9IE5VTEw7CisKIAlzY2FuLT5vcGFxdWUgPSBvcGFxdWU7CiAKIAlyZXR1cm4g c2NhbjsKQEAgLTQ1Nyw3ICs0NjgsNyBAQCBicmluZ2V0Yml0bWFwKEluZGV4U2NhbkRlc2Mg c2NhbiwgVElEQml0bWFwICp0Ym0pCiAJLyogUHJlcHJvY2VzcyB0aGUgc2NhbiBrZXlzIC0g c3BsaXQgdGhlbSBpbnRvIHBlci1hdHRyaWJ1dGUgYXJyYXlzLiAqLwogCWZvciAoaW50IGtl eW5vID0gMDsga2V5bm8gPCBzY2FuLT5udW1iZXJPZktleXM7IGtleW5vKyspCiAJewotCQlT Y2FuS2V5CQlrZXkgPSAmc2Nhbi0+a2V5RGF0YVtrZXlub107CisJCVNjYW5LZXkJCWtleSA9 IG9wYXF1ZS0+Ym9fc2NhbktleXNba2V5bm9dOwogCQlBdHRyTnVtYmVyCWtleWF0dG5vID0g a2V5LT5za19hdHRubzsKIAogCQkvKgpAQCAtNzQ3LDE3ICs3NTgsNzYgQEAgdm9pZAogYnJp bnJlc2NhbihJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5LZXkgc2NhbmtleSwgaW50IG5zY2Fu a2V5cywKIAkJICAgU2NhbktleSBvcmRlcmJ5cywgaW50IG5vcmRlcmJ5cykKIHsKLQkvKgot CSAqIE90aGVyIGluZGV4IEFNcyBwcmVwcm9jZXNzIHRoZSBzY2FuIGtleXMgYXQgdGhpcyBw b2ludCwgb3Igc29tZXRpbWUKLQkgKiBlYXJseSBkdXJpbmcgdGhlIHNjYW47IHRoaXMgbGV0 cyB0aGVtIG9wdGltaXplIGJ5IHJlbW92aW5nIHJlZHVuZGFudAotCSAqIGtleXMsIG9yIGRv aW5nIGVhcmx5IHJldHVybnMgd2hlbiB0aGV5IGFyZSBpbXBvc3NpYmxlIHRvIHNhdGlzZnk7 IHNlZQotCSAqIF9idF9wcmVwcm9jZXNzX2tleXMgZm9yIGFuIGV4YW1wbGUuICBTb21ldGhp bmcgbGlrZSB0aGF0IGNvdWxkIGJlIGFkZGVkCi0JICogaGVyZSBzb21lZGF5LCB0b28uCi0J ICovCisJQnJpbk9wYXF1ZSAqYm8gPSAoQnJpbk9wYXF1ZSAqKSBzY2FuLT5vcGFxdWU7CisJ UmVsYXRpb24JaWR4UmVsID0gc2Nhbi0+aW5kZXhSZWxhdGlvbjsKKwlNZW1vcnlDb250ZXh0 CW9sZGN4dDsKIAogCWlmIChzY2Fua2V5ICYmIHNjYW4tPm51bWJlck9mS2V5cyA+IDApCiAJ CW1lbW1vdmUoc2Nhbi0+a2V5RGF0YSwgc2NhbmtleSwKIAkJCQlzY2FuLT5udW1iZXJPZktl eXMgKiBzaXplb2YoU2NhbktleURhdGEpKTsKKworCS8qCisJICogVXNlIHRoZSBCUklOX1BS T0NOVU1fUFJFUFJPQ0VTUyBwcm9jZWR1cmUgKGlmIGRlZmluZWQpIHRvIHByZXByb2Nlc3MK KwkgKiB0aGUgc2NhbiBrZXlzLiBUaGUgcHJvY2VkdXJlIG1heSBkbyBhbnl0aGluZywgYXMg bG9uZyBhcyB0aGUgcmVzdWx0CisJICogbG9va3MgbGlrZSBhIFNjYW5LZXkuIElmIHRoZXJl J3Mgbm8gcHJvY2VkdXJlLCB3ZSBrZWVwIHRoZSBvcmlnaW5hbAorCSAqIHNjYW4ga2V5Lgor CSAqCisJICogRklYTUUgUHJvYmFibHkgbmVlZCBmaXhlcyB0byBoYW5kbGUgTlVMTHMgY29y cmVjdGx5LgorCSAqLworCWlmIChiby0+Ym9fc2NhbktleXNDeHQgPT0gTlVMTCkKKwkJYm8t PmJvX3NjYW5LZXlzQ3h0ID0gQWxsb2NTZXRDb250ZXh0Q3JlYXRlKEN1cnJlbnRNZW1vcnlD b250ZXh0LAorCQkJCQkJCQkJCQkJICAgIkJSSU4gc2NhbiBrZXlzIGNvbnRleHQiLAorCQkJ CQkJCQkJCQkJICAgQUxMT0NTRVRfU01BTExfU0laRVMpOworCWVsc2UKKwkJTWVtb3J5Q29u dGV4dFJlc2V0KGJvLT5ib19zY2FuS2V5c0N4dCk7CisKKwlvbGRjeHQgPSBNZW1vcnlDb250 ZXh0U3dpdGNoVG8oYm8tPmJvX3NjYW5LZXlzQ3h0KTsKKworCWJvLT5ib19zY2FuS2V5cyA9 IHBhbGxvYzAoc2l6ZW9mKFNjYW5LZXkpICogbnNjYW5rZXlzKTsKKworCWZvciAoaW50IGkg PSAwOyBpIDwgbnNjYW5rZXlzOyBpKyspCisJeworCQlGbWdySW5mbyAgICpmaW5mbzsKKwkJ U2NhbktleQkJa2V5ID0gJnNjYW4tPmtleURhdGFbaV07CisJCU9pZAkJCXByb2NpZDsKKwkJ RGF0dW0JCXJldDsKKworCQkvKgorCQkgKiBJZiB0aGUgc2NhbiBhcmd1bWVudCBpcyBOVUxM LCBub3RoaW5nIHRvIHByZXByb2Nlc3MuCisJCSAqCisJCSAqIFhYWCBNYXliZSB3ZSBzaG91 bGQgbGVhdmUgdGhlc2UgY2hlY2tzIHVwIHRvIHRoZSBfcHJlcHJvY2VzcworCQkgKiBwcm9j ZWR1cmVzLCBpbiBjYXNlIHRoZXJlJ3Mgc29tZXRoaW5nIHNtYXJ0IHRoZXkgd2FuIHRvIGRv PworCQkgKiBCdXQgU0tfSVNOVUxMIGlzIGhhbmRsZWQgYnkgYnJpbmdldGJpdG1hcCgpIHNv IGRvaW5nIGl0IGhlcmUKKwkJICogc2VlbXMgcmVhc29uYWJsZS4KKwkJICovCisJCWlmIChr ZXktPnNrX2ZsYWdzICYgU0tfSVNOVUxMKQorCQl7CisJCQliby0+Ym9fc2NhbktleXNbaV0g PSBrZXk7CisJCQljb250aW51ZTsKKwkJfQorCisJCS8qIGZldGNoIGtleSBwcmVwcm9jZXNz IHN1cHBvcnQgcHJvY2VkdXJlIGlmIHNwZWNpZmllZCAqLworCQlwcm9jaWQgPSBpbmRleF9n ZXRwcm9jaWQoaWR4UmVsLCBrZXktPnNrX2F0dG5vLAorCQkJCQkJCQkgQlJJTl9QUk9DTlVN X1BSRVBST0NFU1MpOworCisJCS8qIG5vdCBzcGVjaWZpZWQsIGp1c3QgcG9pbnQgdG8gdGhl IG9yaWdpbmFsIGtleSAqLworCQlpZiAoIU9pZElzVmFsaWQocHJvY2lkKSkKKwkJeworCQkJ Ym8tPmJvX3NjYW5LZXlzW2ldID0ga2V5OworCQkJY29udGludWU7CisJCX0KKworCQlmaW5m byA9IGluZGV4X2dldHByb2NpbmZvKGlkeFJlbCwga2V5LT5za19hdHRubywKKwkJCQkJCQkJ ICBCUklOX1BST0NOVU1fUFJFUFJPQ0VTUyk7CisKKwkJcmV0ID0gRnVuY3Rpb25DYWxsMihm aW5mbywKKwkJCQkJCQlQb2ludGVyR2V0RGF0dW0oYm8tPmJvX2JkZXNjKSwKKwkJCQkJCQlQ b2ludGVyR2V0RGF0dW0oa2V5KSk7CisKKwkJYm8tPmJvX3NjYW5LZXlzW2ldID0gKFNjYW5L ZXkpIERhdHVtR2V0UG9pbnRlcihyZXQpOworCX0KKworCU1lbW9yeUNvbnRleHRTd2l0Y2hU byhvbGRjeHQpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2Jy aW5faW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9icmluX2ludGVybmFsLmgKaW5k ZXggOTdkZGM5MjViMjcuLmQ2YTUxZjJiYzQ5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9h Y2Nlc3MvYnJpbl9pbnRlcm5hbC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9icmluX2lu dGVybmFsLmgKQEAgLTczLDYgKzczLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQnJpbkRlc2MKICNk ZWZpbmUgQlJJTl9QUk9DTlVNX1VOSU9OCQkJNAogI2RlZmluZSBCUklOX01BTkRBVE9SWV9O UFJPQ1MJCTQKICNkZWZpbmUgQlJJTl9QUk9DTlVNX09QVElPTlMgCQk1CS8qIG9wdGlvbmFs ICovCisjZGVmaW5lIEJSSU5fUFJPQ05VTV9QUkVQUk9DRVNTCQk2CS8qIG9wdGlvbmFsICov CiAvKiBwcm9jZWR1cmUgbnVtYmVycyB1cCB0byAxMCBhcmUgcmVzZXJ2ZWQgZm9yIEJSSU4g ZnV0dXJlIGV4cGFuc2lvbiAqLwogI2RlZmluZSBCUklOX0ZJUlNUX09QVElPTkFMX1BST0NO VU0gMTEKICNkZWZpbmUgQlJJTl9MQVNUX09QVElPTkFMX1BST0NOVU0JMTUKLS0gCjIuNDAu MQoK --------------rWyDHUFaciQk1dJG0D8xK1UK Content-Type: text/x-patch; charset=UTF-8; name="0006-Support-SK_SEARCHARRAY-in-BRIN-minmax-20230608.patch" Content-Disposition: attachment; filename*0="0006-Support-SK_SEARCHARRAY-in-BRIN-minmax-20230608.patch" Content-Transfer-Encoding: base64 RnJvbSBjOTNjYTlhODM3Nzc4MDgzM2I0ODBhZDMwZWJmZmRmMzI0OTU5OGQyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogRnJpLCAxMCBGZWIgMjAyMyAxNjowNzo1NyArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggNi85XSBTdXBwb3J0IFNLX1NFQVJDSEFSUkFZIGluIEJSSU4gbWlubWF4 CgpTZXQgImFtc2VhcmNoYXJyYXk9dHJ1ZSIgZm9yIEJSSU4sIGFuZCBleHRlbmQgdGhlIG1p bm1heCBvcGNsYXNzIHRvCmhhbmRsZSBib3RoIHNjYWxhciB2YWx1ZXMgYW5kIGFycmF5cy4g VGhpcyBhbGxvd3MgaGFuZGxpbmcgY29uZGl0aW9ucwoKICAgIC4uLiBXSEVSRSBhIElOICgx LCAyLCA0MywgMjEzMiwgMTM0KQoKICAgIC4uLiBXSEVSRSBhID0gQU5ZKEFSUkFZWzM0LCA0 NSwgLTEsIDIzNF0pCgogICAgLi4uIFdIRVJFIGEgPD0gQU5ZKEFSUkFZWzQ5MzgsIDI4Miwg MjkzNF0pCgptb3JlIGVmZmljaWVudGx5IC0gdW50aWwgbm93IHdlIHNpbXBseSBidWlsdCB0 aGUgYml0bWFwIGZvciBlYWNoCnNjYWxhciB2YWx1ZSwgc28gd2Ugd2Fsa2VkIHRoZSBCUklO IGluZGV4IG1hbnkgdGltZXMuIFdoaWNoIG1heSBiZSBxdWl0ZQpleHBlbnNpdmUgZm9yIGlu ZGV4ZXMgd2l0aCBtYW55IHJhbmdlcyAobGFyZ2UgdGFibGVzIGFuZC9vciBsb3cKcGFnZXNf cGVyX3JhbmdlKS4KClRoZXJlJ3MgYSBjb3VwbGUgcHJvYmxlbXMgLyBvcGVuIHF1ZXN0aW9u cyAvIFRPRE8gaXRlbXM6CgotIFRoZSBvdGhlciBvcGNsYXNzZXMgZG9uJ3QgaGFuZGxlIFNL X1NFQVJDSEFSUkFZIHlldC4KCi0gVGhlIGFycmF5IGlzIGFsd2F5cyBzZWFyY2hlZCBsaW5l YXJseSwgc28gdGhpcyBtYXkgYmUgY29zdGx5IGZvciBsYXJnZQogIGFycmF5cyAod2l0aCBt YW55IGVsZW1lbnRzKS4KCi0gVGhlIGFycmF5IGlzIGRlY29uc3RydWN0ZWQgYWdhaW4gZm9y IGVhY2ggcmFuZ2UuIFdlIHNob3VsZCByZXVzZSB0aGlzLAogIHNvbWVob3cuCi0tLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jICAgICAgICAgIHwgICAzICstCiBzcmMvYmFj a2VuZC9hY2Nlc3MvYnJpbi9icmluX21pbm1heC5jICAgfCAzNzUgKysrKysrKysrLS0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdmFsaWRhdGUuYyB8ICAgNCArCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgICAgICAgfCAgNjQgKysKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICB8ICAgMyArCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2FtdXRpbHMub3V0ICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvYnJpbi5vdXQgICAgICB8IDg1OCArKysrKysrKysrKysrKysrKysrKysrKysKIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2JyaW4uc3FsICAgICAgICAgICB8IDI4MyArKysrKysrKwog OCBmaWxlcyBjaGFuZ2VkLCAxNTUyIGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9icmluL2JyaW4uYwppbmRleCBmN2ZhOWYzZjA2Yi4uNmI2Y2IyNTI0ZjAg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRl ICJ1dGlscy9kYXR1bS5oIgogI2luY2x1ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0 aWxzL2luZGV4X3NlbGZ1bmNzLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAj aW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKIApA QCAtMTA3LDcgKzEwOCw3IEBAIGJyaW5oYW5kbGVyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJYW1y b3V0aW5lLT5hbWNhbnVuaXF1ZSA9IGZhbHNlOwogCWFtcm91dGluZS0+YW1jYW5tdWx0aWNv bCA9IHRydWU7CiAJYW1yb3V0aW5lLT5hbW9wdGlvbmFsa2V5ID0gdHJ1ZTsKLQlhbXJvdXRp bmUtPmFtc2VhcmNoYXJyYXkgPSBmYWxzZTsKKwlhbXJvdXRpbmUtPmFtc2VhcmNoYXJyYXkg PSB0cnVlOwogCWFtcm91dGluZS0+YW1zZWFyY2hudWxscyA9IHRydWU7CiAJYW1yb3V0aW5l LT5hbXN0b3JhZ2UgPSB0cnVlOwogCWFtcm91dGluZS0+YW1jbHVzdGVyYWJsZSA9IGZhbHNl OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9taW5tYXguYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fbWlubWF4LmMKaW5kZXggODIyOTQ5M2M4 NGEuLmJhODE0ZjkxYzI3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9i cmluX21pbm1heC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fbWlubWF4 LmMKQEAgLTE2LDExICsxNiwyMSBAQAogI2luY2x1ZGUgImFjY2Vzcy9zdHJhdG51bS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfYW1vcC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlw ZS5oIgorI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRp bnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXR1bS5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNj YWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2Nh Y2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc29ydHN1cHBvcnQuaCIKKworLyoKKyAqIFdlIHVz ZSBzb21lIHByaXZhdGUgc2tfZmxhZ3MgYml0cyBpbiBwcmVwcm9jZXNzZWQgc2NhbiBrZXlz LiAgV2UncmUgYWxsb3dlZAorICogdG8gdXNlIGJpdHMgMTYtMzEgKHNlZSBza2V5LmgpLiAg VGhlIHVwcGVybW9zdCBiaXRzIGFyZSBjb3BpZWQgZnJvbSB0aGUKKyAqIGluZGV4J3MgaW5k b3B0aW9uW10gYXJyYXkgZW50cnkgZm9yIHRoZSBpbmRleCBhdHRyaWJ1dGUuCisgKi8KKyNk ZWZpbmUgU0tfQlJJTl9TT1JURUQJMHgwMDAxMDAwMAkvKiBkZWNvbnN0cnVjdGVkIGFuZCBz b3J0ZWQgYXJyYXkgKi8KKwogCiB0eXBlZGVmIHN0cnVjdCBNaW5tYXhPcGFxdWUKIHsKQEAg LTEyNiw2ICsxMzYsMTU4IEBAIGJyaW5fbWlubWF4X2FkZF92YWx1ZShQR19GVU5DVElPTl9B UkdTKQogCVBHX1JFVFVSTl9CT09MKHVwZGF0ZWQpOwogfQogCisKK3N0YXRpYyBpbnQKK2Nv bXBhcmVfYXJyYXlfdmFsdWVzKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIsIHZvaWQg KmFyZykKK3sKKwlEYXR1bQlkYSA9ICogKERhdHVtICopIGE7CisJRGF0dW0JZGIgPSAqIChE YXR1bSAqKSBiOworCVNvcnRTdXBwb3J0CXNzdXAgPSAoU29ydFN1cHBvcnQpIGFyZzsKKwor CXJldHVybiBBcHBseVNvcnRDb21wYXJhdG9yKGRhLCBmYWxzZSwgZGIsIGZhbHNlLCBzc3Vw KTsKK30KKworLyoKKyAqIGxvd2VyX2JvdW5kYXJ5CisgKgkJRGV0ZXJtaW5lIGxvd2VzdCBp bmRleCBzbyB0aGF0ICh2YWx1ZXNbaW5kZXhdID49IG1pbnZhbHVlKS4KKyAqCisgKiBUaGUg YXJyYXkgb2YgdmFsdWVzIGlzIGV4cGVjdGVkIHRvIGJlIHNvcnRlZCwgc28gdGhpcyBpcyB0 aGUgZmlyc3QgdmFsdWUKKyAqIHRoYXQgbWF5IGZhbGwgaW50byB0aGUgW21pbnZhbHVlLCBt YXh2YWx1ZV0gcmFuZ2UsIGFzIGl0IGV4Y2VlZHMgbWludmFsLgorICogSXQncyBub3QgZ3Vh cmFudGVlZCwgdGhvdWdoLCBhcyBpdCBtaWdodCBleGNlZWQgbWF4dmFsdWUgdG9vLgorICov CitzdGF0aWMgaW50Citsb3dlcl9ib3VuZGFyeShEYXR1bSAqdmFsdWVzLCBpbnQgbnZhbHVl cywgRGF0dW0gbWludmFsdWUsIFNvcnRTdXBwb3J0IHNzdXApCit7CisJaW50CQlzdGFydCA9 IDAsCisJCQllbmQgPSAobnZhbHVlcyAtIDEpOworCisJLyogZXZlcnl0aGluZyBleGNlZWRz IG1pbnZhbCBhbmQgbWlnaHQgbWF0Y2ggKi8KKwlpZiAoY29tcGFyZV9hcnJheV92YWx1ZXMo Jm1pbnZhbHVlLCAmdmFsdWVzW3N0YXJ0XSwgc3N1cCkgPD0gMCkKKwkJcmV0dXJuIDA7CisK KwkvKiBub3RoaW5nIGNvdWxkIG1hdGNoICovCisJaWYgKGNvbXBhcmVfYXJyYXlfdmFsdWVz KCZtaW52YWx1ZSwgJnZhbHVlc1tlbmRdLCBzc3VwKSA+IDApCisJCXJldHVybiBudmFsdWVz OworCisJd2hpbGUgKChlbmQgLSBzdGFydCkgPiAwKQorCXsKKwkJaW50IG1pZHBvaW50Owor CQlpbnQgcjsKKworCQltaWRwb2ludCA9IHN0YXJ0ICsgKGVuZCAtIHN0YXJ0KSAvIDI7CisK KwkJciA9IGNvbXBhcmVfYXJyYXlfdmFsdWVzKCZtaW52YWx1ZSwgJnZhbHVlc1ttaWRwb2lu dF0sIHNzdXApOworCisJCWlmIChyID4gMCkKKwkJCXN0YXJ0ID0gTWF4KG1pZHBvaW50LCBz dGFydCArIDEpOworCQllbHNlCisJCQllbmQgPSBtaWRwb2ludDsKKwl9CisKKwkvKiB0aGUg dmFsdWUgc2hvdWxkIG1lZXQgdGhlICh2ID49bWludmFsdWUpIHJlcXVpcmVtZW50ICovCisJ QXNzZXJ0KGNvbXBhcmVfYXJyYXlfdmFsdWVzKCZ2YWx1ZXNbc3RhcnRdLCAmbWludmFsdWUs IHNzdXApID49IDApOworCisJLyogd2Uga25vdyBzdGFydCBjYW4ndCBiZSAwLCBzbyBpdCdz IGxlZ2FsIHRvIHN1YnRyYWN0IDEgKi8KKwlBc3NlcnQoY29tcGFyZV9hcnJheV92YWx1ZXMo JnZhbHVlc1tzdGFydC0xXSwgJm1pbnZhbHVlLCBzc3VwKSA8IDApOworCisJcmV0dXJuIHN0 YXJ0OworfQorCit0eXBlZGVmIHN0cnVjdCBTY2FuS2V5QXJyYXkgeworCU9pZAkJdHlwZWlk OworCWludAkJbmVsZW1lbnRzOworCURhdHVtICAqZWxlbWVudHM7Cit9IFNjYW5LZXlBcnJh eTsKKworRGF0dW0KK2JyaW5fbWlubWF4X3ByZXByb2Nlc3MoUEdfRlVOQ1RJT05fQVJHUykK K3sKKwkvLyBCcmluRGVzYyAgICpiZGVzYyA9IChCcmluRGVzYyAqKSBQR19HRVRBUkdfUE9J TlRFUigwKTsKKwlTY2FuS2V5CQlrZXkgPSAoU2NhbktleSkgUEdfR0VUQVJHX1BPSU5URVIo MSk7CisJU2NhbktleQkJbmV3a2V5OworCVNjYW5LZXlBcnJheSAqc2NhbmFycmF5OworCisJ QXJyYXlUeXBlICAqYXJyYXl2YWw7CisJaW50MTYJCWVsbWxlbjsKKwlib29sCQllbG1ieXZh bDsKKwljaGFyCQllbG1hbGlnbjsKKwlpbnQJCQludW1fZWxlbXM7CisJRGF0dW0JICAgKmVs ZW1fdmFsdWVzOworCWJvb2wJICAgKmVsZW1fbnVsbHM7CisJVHlwZUNhY2hlRW50cnkgKnR5 cGU7CisJU29ydFN1cHBvcnREYXRhIHNzdXA7CisKKwkvKiBudW1iZXIgb2Ygbm9uLW51bGwg ZWxlbWVudHMgaW4gdGhlIGFycmF5ICovCisJaW50CQkJbnVtX25vbm51bGxzOworCisJLyoK KwkgKiBpZ25vcmUgc2NhbGFyIGtleXMKKwkgKgorCSAqIFhYWCBNYXliZSB3ZSBzaG91bGQg cHJlcHJvY2VzcyBzY2FsYXIga2V5cyB0b28uIEl0J2QgbWFrZSB0aGUgY29uc2lzdGVudAor CSAqIGZ1bmN0aW9uIHNpbXBsZXIgYnkgcmVtb3ZpbmcgdGhlIGJyYW5jaGluZy4KKwkgKi8K KwlpZiAoIShrZXktPnNrX2ZsYWdzICYgU0tfU0VBUkNIQVJSQVkpKQorCQlQR19SRVRVUk5f UE9JTlRFUihrZXkpOworCisJYXJyYXl2YWwgPSBEYXR1bUdldEFycmF5VHlwZVAoa2V5LT5z a19hcmd1bWVudCk7CisKKwlnZXRfdHlwbGVuYnl2YWxhbGlnbihBUlJfRUxFTVRZUEUoYXJy YXl2YWwpLAorCQkJCQkJICZlbG1sZW4sICZlbG1ieXZhbCwgJmVsbWFsaWduKTsKKworCWRl Y29uc3RydWN0X2FycmF5KGFycmF5dmFsLAorCQkJCQkgIEFSUl9FTEVNVFlQRShhcnJheXZh bCksCisJCQkJCSAgZWxtbGVuLCBlbG1ieXZhbCwgZWxtYWxpZ24sCisJCQkJCSAgJmVsZW1f dmFsdWVzLCAmZWxlbV9udWxscywgJm51bV9lbGVtcyk7CisKKwkvKiBlbGltaW5hdGUgTlVM TCBlbGVtZW50cyAqLworCW51bV9ub25udWxscyA9IDA7CisJZm9yIChpbnQgaSA9IDA7IGkg PCBudW1fZWxlbXM7IGkrKykKKwl7CisJCS8qIHNraXAgTlVMTCBlbGVtZW50cyAqLworCQlp ZiAoZWxlbV9udWxsc1tpXSkKKwkJCWNvbnRpbnVlOworCisJCS8qIGlmIG5lZWRlZCwgbW92 ZSB0aGUgbm9uLU5VTEwgb25lcyAqLworCQlpZiAobnVtX25vbm51bGxzICE9IGkpCisJCQll bGVtX3ZhbHVlc1tudW1fbm9ubnVsbHNdID0gZWxlbV92YWx1ZXNbaV07CisKKwkJbnVtX25v bm51bGxzKys7CisJfQorCisJbnVtX2VsZW1zID0gbnVtX25vbm51bGxzOworCisJdHlwZSA9 IGxvb2t1cF90eXBlX2NhY2hlKEFSUl9FTEVNVFlQRShhcnJheXZhbCksIFRZUEVDQUNIRV9M VF9PUFIpOworCisJbWVtc2V0KCZzc3VwLCAwLCBzaXplb2YoU29ydFN1cHBvcnREYXRhKSk7 CisKKwlzc3VwLnNzdXBfY29sbGF0aW9uID0ga2V5LT5za19jb2xsYXRpb247CisJc3N1cC5z c3VwX2N4dCA9IEN1cnJlbnRNZW1vcnlDb250ZXh0OworCisJUHJlcGFyZVNvcnRTdXBwb3J0 RnJvbU9yZGVyaW5nT3AodHlwZS0+bHRfb3ByLCAmc3N1cCk7CisKKwlxc29ydF9pbnRlcnJ1 cHRpYmxlKGVsZW1fdmFsdWVzLCBudW1fZWxlbXMsIHNpemVvZihEYXR1bSksCisJCQkJCQlj b21wYXJlX2FycmF5X3ZhbHVlcywgJnNzdXApOworCisJc2NhbmFycmF5ID0gcGFsbG9jMChz aXplb2YoU2NhbktleUFycmF5KSk7CisJc2NhbmFycmF5LT50eXBlaWQgPSBBUlJfRUxFTVRZ UEUoYXJyYXl2YWwpOworCXNjYW5hcnJheS0+bmVsZW1lbnRzID0gbnVtX2VsZW1zOworCXNj YW5hcnJheS0+ZWxlbWVudHMgPSBlbGVtX3ZhbHVlczsKKworCW5ld2tleSA9IHBhbGxvYzAo c2l6ZW9mKFNjYW5LZXlEYXRhKSk7CisKKwlTY2FuS2V5RW50cnlJbml0aWFsaXplV2l0aElu Zm8obmV3a2V5LAorCQkJCQkJCQkgICAoa2V5LT5za19mbGFncyB8IFNLX0JSSU5fU09SVEVE KSwKKwkJCQkJCQkJICAga2V5LT5za19hdHRubywKKwkJCQkJCQkJICAga2V5LT5za19zdHJh dGVneSwKKwkJCQkJCQkJICAga2V5LT5za19zdWJ0eXBlLAorCQkJCQkJCQkgICBrZXktPnNr X2NvbGxhdGlvbiwKKwkJCQkJCQkJICAgJmtleS0+c2tfZnVuYywKKwkJCQkJCQkJICAgUG9p bnRlckdldERhdHVtKHNjYW5hcnJheSkpOworCisJUEdfUkVUVVJOX1BPSU5URVIobmV3a2V5 KTsKK30KKworCiAvKgogICogR2l2ZW4gYW4gaW5kZXggdHVwbGUgY29ycmVzcG9uZGluZyB0 byBhIGNlcnRhaW4gcGFnZSByYW5nZSBhbmQgYSBzY2FuIGtleSwKICAqIHJldHVybiB3aGV0 aGVyIHRoZSBzY2FuIGtleSBpcyBjb25zaXN0ZW50IHdpdGggdGhlIGluZGV4IHR1cGxlJ3Mg bWluL21heApAQCAtMTU3LDQ2ICszMTksMTgzIEBAIGJyaW5fbWlubWF4X2NvbnNpc3RlbnQo UEdfRlVOQ1RJT05fQVJHUykKIAlhdHRubyA9IGtleS0+c2tfYXR0bm87CiAJc3VidHlwZSA9 IGtleS0+c2tfc3VidHlwZTsKIAl2YWx1ZSA9IGtleS0+c2tfYXJndW1lbnQ7Ci0Jc3dpdGNo IChrZXktPnNrX3N0cmF0ZWd5KQorCisJLyoKKwkgKiBGb3IgcmVndWxhciAoc2NhbGFyKSBz Y2FuIGtleXMsIHdlIHNpbXBseSBjb21wYXJlIHRoZSB2YWx1ZSB0byB0aGUKKwkgKiByYW5n ZSBtaW4vbWF4IHZhbHVlcywgYW5kIHdlJ3JlIGRvbmUuIEZvciBwcmVwcm9jZXNzZWQgU0tf U0VBUkNIQVJSQVkKKwkgKiBrZXlzIHdlIG5lZWQgdG8gbG9vcCB0aHJvdWdoIHRoZSBkZXBh cnNlZCB2YWx1ZXMuCisJICovCisJaWYgKGxpa2VseSghKGtleS0+c2tfZmxhZ3MgJiBTS19C UklOX1NPUlRFRCkpKQogCXsKLQkJY2FzZSBCVExlc3NTdHJhdGVneU51bWJlcjoKLQkJY2Fz ZSBCVExlc3NFcXVhbFN0cmF0ZWd5TnVtYmVyOgotCQkJZmluZm8gPSBtaW5tYXhfZ2V0X3N0 cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKLQkJCQkJCQkJCQkJCSBr ZXktPnNrX3N0cmF0ZWd5KTsKLQkJCW1hdGNoZXMgPSBGdW5jdGlvbkNhbGwyQ29sbChmaW5m bywgY29sbG9pZCwgY29sdW1uLT5idl92YWx1ZXNbMF0sCi0JCQkJCQkJCQkJdmFsdWUpOwot CQkJYnJlYWs7Ci0JCWNhc2UgQlRFcXVhbFN0cmF0ZWd5TnVtYmVyOgotCi0JCQkvKgotCQkJ ICogSW4gdGhlIGVxdWFsaXR5IGNhc2UgKFdIRVJFIGNvbCA9IHNvbWV2YWwpLCB3ZSB3YW50 IHRvIHJldHVybgotCQkJICogdGhlIGN1cnJlbnQgcGFnZSByYW5nZSBpZiB0aGUgbWluaW11 bSB2YWx1ZSBpbiB0aGUgcmFuZ2UgPD0KLQkJCSAqIHNjYW4ga2V5LCBhbmQgdGhlIG1heGlt dW0gdmFsdWUgPj0gc2NhbiBrZXkuCi0JCQkgKi8KLQkJCWZpbmZvID0gbWlubWF4X2dldF9z dHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUsCi0JCQkJCQkJCQkJCQkg QlRMZXNzRXF1YWxTdHJhdGVneU51bWJlcik7Ci0JCQltYXRjaGVzID0gRnVuY3Rpb25DYWxs MkNvbGwoZmluZm8sIGNvbGxvaWQsIGNvbHVtbi0+YnZfdmFsdWVzWzBdLAotCQkJCQkJCQkJ CXZhbHVlKTsKLQkJCWlmICghRGF0dW1HZXRCb29sKG1hdGNoZXMpKQorCQlzd2l0Y2ggKGtl eS0+c2tfc3RyYXRlZ3kpCisJCXsKKwkJCWNhc2UgQlRMZXNzU3RyYXRlZ3lOdW1iZXI6CisJ CQljYXNlIEJUTGVzc0VxdWFsU3RyYXRlZ3lOdW1iZXI6CisJCQkJZmluZm8gPSBtaW5tYXhf Z2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKKwkJCQkJCQkJ CQkJCQkga2V5LT5za19zdHJhdGVneSk7CisJCQkJbWF0Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJD b2xsKGZpbmZvLCBjb2xsb2lkLCBjb2x1bW4tPmJ2X3ZhbHVlc1swXSwKKwkJCQkJCQkJCQkJ dmFsdWUpOworCQkJCWJyZWFrOworCQkJY2FzZSBCVEVxdWFsU3RyYXRlZ3lOdW1iZXI6CisK KwkJCQkvKgorCQkJCSAqIEluIHRoZSBlcXVhbGl0eSBjYXNlIChXSEVSRSBjb2wgPSBzb21l dmFsKSwgd2Ugd2FudCB0byByZXR1cm4KKwkJCQkgKiB0aGUgY3VycmVudCBwYWdlIHJhbmdl IGlmIHRoZSBtaW5pbXVtIHZhbHVlIGluIHRoZSByYW5nZSA8PQorCQkJCSAqIHNjYW4ga2V5 LCBhbmQgdGhlIG1heGltdW0gdmFsdWUgPj0gc2NhbiBrZXkuCisJCQkJICovCisJCQkJZmlu Zm8gPSBtaW5tYXhfZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlw ZSwKKwkJCQkJCQkJCQkJCQkgQlRMZXNzRXF1YWxTdHJhdGVneU51bWJlcik7CisJCQkJbWF0 Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lkLCBjb2x1bW4tPmJ2X3Zh bHVlc1swXSwKKwkJCQkJCQkJCQkJdmFsdWUpOworCQkJCWlmICghRGF0dW1HZXRCb29sKG1h dGNoZXMpKQorCQkJCQlicmVhazsKKwkJCQkvKiBtYXgoKSA+PSBzY2Fua2V5ICovCisJCQkJ ZmluZm8gPSBtaW5tYXhfZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3Vi dHlwZSwKKwkJCQkJCQkJCQkJCQkgQlRHcmVhdGVyRXF1YWxTdHJhdGVneU51bWJlcik7CisJ CQkJbWF0Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lkLCBjb2x1bW4t PmJ2X3ZhbHVlc1sxXSwKKwkJCQkJCQkJCQkJdmFsdWUpOworCQkJCWJyZWFrOworCQkJY2Fz ZSBCVEdyZWF0ZXJFcXVhbFN0cmF0ZWd5TnVtYmVyOgorCQkJY2FzZSBCVEdyZWF0ZXJTdHJh dGVneU51bWJlcjoKKwkJCQlmaW5mbyA9IG1pbm1heF9nZXRfc3RyYXRlZ3lfcHJvY2luZm8o YmRlc2MsIGF0dG5vLCBzdWJ0eXBlLAorCQkJCQkJCQkJCQkJCSBrZXktPnNrX3N0cmF0ZWd5 KTsKKwkJCQltYXRjaGVzID0gRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIGNv bHVtbi0+YnZfdmFsdWVzWzFdLAorCQkJCQkJCQkJCQl2YWx1ZSk7CisJCQkJYnJlYWs7CisJ CQlkZWZhdWx0OgorCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8KKwkJCQllbG9nKEVSUk9S LCAiaW52YWxpZCBzdHJhdGVneSBudW1iZXIgJWQiLCBrZXktPnNrX3N0cmF0ZWd5KTsKKwkJ CQltYXRjaGVzID0gMDsKKwkJCQlicmVhazsKKwkJfQorCX0KKwllbHNlCisJeworCQlTY2Fu S2V5QXJyYXkgKmFycmF5ID0gKFNjYW5LZXlBcnJheSAqKSB2YWx1ZTsKKworCQkvKiBjYW4g aGFwcGVuIGlmIHRoZSBJTiBsaXN0IGNvbnRhaW5lZCBqdXN0IE5VTExzICovCisJCWlmIChh cnJheS0+bmVsZW1lbnRzID09IDApCisJCQlQR19SRVRVUk5fQk9PTChmYWxzZSk7CisKKwkJ c3dpdGNoIChrZXktPnNrX3N0cmF0ZWd5KQorCQl7CisJCQljYXNlIEJUTGVzc1N0cmF0ZWd5 TnVtYmVyOgorCQkJY2FzZSBCVExlc3NFcXVhbFN0cmF0ZWd5TnVtYmVyOgorCQkJCS8qCisJ CQkJICogQ2hlY2sgdGhlIGxhc3QgKGxhcmdlc3QpIHZhbHVlIGluIHRoZSBhcnJheSAtIGF0 IGxlYXN0IHRoaXMKKwkJCQkgKiB2YWx1ZSBoYXMgdG8gZXhjZWVkIHRoZSByYW5nZSBtaW52 YWwuCisJCQkJICovCisJCQkJZmluZm8gPSBtaW5tYXhfZ2V0X3N0cmF0ZWd5X3Byb2NpbmZv KGJkZXNjLCBhdHRubywgc3VidHlwZSwKKwkJCQkJCQkJCQkJCQkga2V5LT5za19zdHJhdGVn eSk7CisJCQkJbWF0Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lkLCBj b2x1bW4tPmJ2X3ZhbHVlc1swXSwKKwkJCQkJCQkJCQkJYXJyYXktPmVsZW1lbnRzW2FycmF5 LT5uZWxlbWVudHMtMV0pOworCQkJCWJyZWFrOworCQkJY2FzZSBCVEVxdWFsU3RyYXRlZ3lO dW1iZXI6CisKKwkJCQkvKgorCQkJCSAqIEluIHRoZSBlcXVhbGl0eSBjYXNlIChXSEVSRSBj b2wgPSBzb21ldmFsKSwgd2Ugd2FudCB0byByZXR1cm4KKwkJCQkgKiB0aGUgY3VycmVudCBw YWdlIHJhbmdlIGlmIHRoZSBtaW5pbXVtIHZhbHVlIGluIHRoZSByYW5nZSA8PQorCQkJCSAq IHNjYW4ga2V5LCBhbmQgdGhlIG1heGltdW0gdmFsdWUgPj0gc2NhbiBrZXkuCisJCQkJICoK KwkJCQkgKiBXZSBkbyB0aGlzIGluIHR3byBwaGFzZXMuIFdlIGNoZWNrIHRoZSBhcnJheSBt aW4vbWF4IHZhbHVlcyB0byBzZWUKKwkJCQkgKiBpZiB0aGVyZSBldmVuIGNhbiBiZSBhIG1h dGNoaW5nIHZhbHVlLCBhbmQgaWYgeWVzIHdlIGRvIGEgYmluYXJ5CisJCQkJICogc2VhcmNo IHRvIGZpbmQgdGhlIGZpcnN0IHZhbHVlIHRoYXQgZXhjZWVkcyByYW5nZSBtaW52YWwuIEFu ZCB0aGVuCisJCQkJICogd2UgY2hlY2sgaWYgaXQgYWN0dWFsbHkgbWF0Y2hlcyB0aGUgcmFu Z2UuCisJCQkJICoKKwkJCQkgKiBYWFggVGhlIGZpcnN0IHBoYXNlIGlzIHByb2JhYmx5IHVu bmVjZXNzYXJ5LCBiZWNhdXNlIGxvd2VyX2JvdW5kKCkKKwkJCQkgKiBkb2VzIHByZXR0eSBt dWNoIGV4YWN0bHkgdGhhdCB0b28uCisJCQkJICovCisJCQkJeworCQkJCQlEYXR1bSB2YWw7 CisJCQkJCVNvcnRTdXBwb3J0RGF0YSBzc3VwOworCQkJCQlpbnQJCQlsb3dlcjsKKwkJCQkJ VHlwZUNhY2hlRW50cnkgKnR5cGU7CisKKwkJCQkJLyogSXMgdGhlIGZpcnN0IChzbWFsbGVz dCkgdmFsdWUgYWZ0ZXIgdGhlIEJSSU4gcmFuZ2U/ICovCisJCQkJCXZhbCA9IGFycmF5LT5l bGVtZW50c1swXTsKKworCQkJCQlmaW5mbyA9IG1pbm1heF9nZXRfc3RyYXRlZ3lfcHJvY2lu Zm8oYmRlc2MsIGF0dG5vLCBzdWJ0eXBlLAorCQkJCQkJCQkJCQkJCQkgQlRMZXNzRXF1YWxT dHJhdGVneU51bWJlcik7CisJCQkJCW1hdGNoZXMgPSBGdW5jdGlvbkNhbGwyQ29sbChmaW5m bywgY29sbG9pZCwgdmFsLCBjb2x1bW4tPmJ2X3ZhbHVlc1sxXSk7CisKKwkJCQkJLyogbWlu dmFsID4gbWF4KHJhbmdlIHZhbHVlcykgKi8KKwkJCQkJaWYgKCFEYXR1bUdldEJvb2wobWF0 Y2hlcykpCisJCQkJCQlicmVhazsKKworCQkJCQkvKiBJcyB0aGUgbGFzdCAobGFyZ2VzdCkg dmFsdWUgYmVmb3JlIHRoZSBCUklOIHJhbmdlPyAqLworCQkJCQl2YWwgPSBhcnJheS0+ZWxl bWVudHNbYXJyYXktPm5lbGVtZW50cy0xXTsKKworCQkJCQlmaW5mbyA9IG1pbm1heF9nZXRf c3RyYXRlZ3lfcHJvY2luZm8oYmRlc2MsIGF0dG5vLCBzdWJ0eXBlLAorCQkJCQkJCQkJCQkJ CQkgQlRHcmVhdGVyRXF1YWxTdHJhdGVneU51bWJlcik7CisJCQkJCW1hdGNoZXMgPSBGdW5j dGlvbkNhbGwyQ29sbChmaW5mbywgY29sbG9pZCwgdmFsLCBjb2x1bW4tPmJ2X3ZhbHVlc1sw XSk7CisKKwkJCQkJLyogbWF4dmFsIDwgbWluKHJhbmdlIHZhbHVlcykgKi8KKwkJCQkJaWYg KCFEYXR1bUdldEJvb2wobWF0Y2hlcykpCisJCQkJCQlicmVhazsKKworCQkJCQkvKgorCQkJ CQkgKiBPSywgdGhlcmUgbWlnaHQgYmUgc29tZSB2YWx1ZXMgbWF0Y2hpbmcgdGhlIHJhbmdl LiBXZSBoYXZlCisJCQkJCSAqIHRvIHNlYXJjaCB0aGVtIG9uZSBieSBvbmUsIG9yIHBlcmhh cHMgdHJ5IGJpbnNlYXJjaC4KKwkJCQkJICovCisJCQkJCXR5cGUgPSBsb29rdXBfdHlwZV9j YWNoZShhcnJheS0+dHlwZWlkLCBUWVBFQ0FDSEVfTFRfT1BSKTsKKworCQkJCQltZW1zZXQo JnNzdXAsIDAsIHNpemVvZihTb3J0U3VwcG9ydERhdGEpKTsKKworCQkJCQlzc3VwLnNzdXBf Y29sbGF0aW9uID0ga2V5LT5za19jb2xsYXRpb247CisJCQkJCXNzdXAuc3N1cF9jeHQgPSBD dXJyZW50TWVtb3J5Q29udGV4dDsKKworCQkJCQlQcmVwYXJlU29ydFN1cHBvcnRGcm9tT3Jk ZXJpbmdPcCh0eXBlLT5sdF9vcHIsICZzc3VwKTsKKworCQkJCQlsb3dlciA9IGxvd2VyX2Jv dW5kYXJ5KGFycmF5LT5lbGVtZW50cywgYXJyYXktPm5lbGVtZW50cywgY29sdW1uLT5idl92 YWx1ZXNbMF0sICZzc3VwKTsKKworCQkJCQkvKiBubyBlbGVtZW50cyBjYW4gcG9zc2libHkg bWF0Y2ggKi8KKwkJCQkJaWYgKGxvd2VyID09IGFycmF5LT5uZWxlbWVudHMpCisJCQkJCXsK KwkJCQkJCW1hdGNoZXMgPSBCb29sR2V0RGF0dW0oZmFsc2UpOworCQkJCQkJYnJlYWs7CisJ CQkJCX0KKworCQkJCQkvKgorCQkJCQkgKiBPSywgdGhlIGZpcnN0IGVsZW1lbnQgbXVzdCBt YXRjaCB0aGUgdXBwZXIgYm91bmRhcnkgdG9vCisJCQkJCSAqIChpZiBpdCBkb2VzIG5vdCwg bm8gZm9sbG93aW5nIGVsZW1lbnRzIGNhbikuCisJCQkJCSAqLworCQkJCQl2YWwgPSBhcnJh eS0+ZWxlbWVudHNbbG93ZXJdOworCisJCQkJCS8qCisJCQkJCSAqIEluIHRoZSBlcXVhbGl0 eSBjYXNlIChXSEVSRSBjb2wgPSBzb21ldmFsKSwgd2Ugd2FudCB0byByZXR1cm4KKwkJCQkJ ICogdGhlIGN1cnJlbnQgcGFnZSByYW5nZSBpZiB0aGUgbWluaW11bSB2YWx1ZSBpbiB0aGUg cmFuZ2UgPD0KKwkJCQkJICogc2NhbiBrZXksIGFuZCB0aGUgbWF4aW11bSB2YWx1ZSA+PSBz Y2FuIGtleS4KKwkJCQkJICovCisJCQkJCWZpbmZvID0gbWlubWF4X2dldF9zdHJhdGVneV9w cm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUsCisJCQkJCQkJCQkJCQkJCSBCVExlc3NF cXVhbFN0cmF0ZWd5TnVtYmVyKTsKKwkJCQkJbWF0Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJDb2xs KGZpbmZvLCBjb2xsb2lkLCBjb2x1bW4tPmJ2X3ZhbHVlc1swXSwKKwkJCQkJCQkJCQkJCXZh bCk7CisJCQkJCWlmICghRGF0dW1HZXRCb29sKG1hdGNoZXMpKQorCQkJCQkJYnJlYWs7CisJ CQkJCS8qIG1heCgpID49IHNjYW5rZXkgKi8KKwkJCQkJZmluZm8gPSBtaW5tYXhfZ2V0X3N0 cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKKwkJCQkJCQkJCQkJCQkJ IEJUR3JlYXRlckVxdWFsU3RyYXRlZ3lOdW1iZXIpOworCQkJCQltYXRjaGVzID0gRnVuY3Rp b25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIGNvbHVtbi0+YnZfdmFsdWVzWzFdLAorCQkJ CQkJCQkJCQkJdmFsKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJY2FzZSBCVEdyZWF0ZXJF cXVhbFN0cmF0ZWd5TnVtYmVyOgorCQkJY2FzZSBCVEdyZWF0ZXJTdHJhdGVneU51bWJlcjoK KwkJCQkvKgorCQkJCSAqIENoZWNrIHRoZSBmaXJzdCAoc21hbGxlc3QpIHZhbHVlIGluIHRo ZSBhcnJheSAtIGF0IGxlYXN0IHRoaXMKKwkJCQkgKiB2YWx1ZSBoYXMgdG8gYmUgc21hbGxl ciB0aGFuIHRoZSByYW5nZSBtYXh2YWwuCisJCQkJICovCisJCQkJZmluZm8gPSBtaW5tYXhf Z2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKKwkJCQkJCQkJ CQkJCQkga2V5LT5za19zdHJhdGVneSk7CisJCQkJbWF0Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJD b2xsKGZpbmZvLCBjb2xsb2lkLCBjb2x1bW4tPmJ2X3ZhbHVlc1sxXSwKKwkJCQkJCQkJCQkJ YXJyYXktPmVsZW1lbnRzWzBdKTsKKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJLyog c2hvdWxkbid0IGhhcHBlbiAqLworCQkJCWVsb2coRVJST1IsICJpbnZhbGlkIHN0cmF0ZWd5 IG51bWJlciAlZCIsIGtleS0+c2tfc3RyYXRlZ3kpOworCQkJCW1hdGNoZXMgPSAwOwogCQkJ CWJyZWFrOwotCQkJLyogbWF4KCkgPj0gc2NhbmtleSAqLwotCQkJZmluZm8gPSBtaW5tYXhf Z2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKLQkJCQkJCQkJ CQkJCSBCVEdyZWF0ZXJFcXVhbFN0cmF0ZWd5TnVtYmVyKTsKLQkJCW1hdGNoZXMgPSBGdW5j dGlvbkNhbGwyQ29sbChmaW5mbywgY29sbG9pZCwgY29sdW1uLT5idl92YWx1ZXNbMV0sCi0J CQkJCQkJCQkJdmFsdWUpOwotCQkJYnJlYWs7Ci0JCWNhc2UgQlRHcmVhdGVyRXF1YWxTdHJh dGVneU51bWJlcjoKLQkJY2FzZSBCVEdyZWF0ZXJTdHJhdGVneU51bWJlcjoKLQkJCWZpbmZv ID0gbWlubWF4X2dldF9zdHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUs Ci0JCQkJCQkJCQkJCQkga2V5LT5za19zdHJhdGVneSk7Ci0JCQltYXRjaGVzID0gRnVuY3Rp b25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIGNvbHVtbi0+YnZfdmFsdWVzWzFdLAotCQkJ CQkJCQkJCXZhbHVlKTsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJLyogc2hvdWxkbid0 IGhhcHBlbiAqLwotCQkJZWxvZyhFUlJPUiwgImludmFsaWQgc3RyYXRlZ3kgbnVtYmVyICVk Iiwga2V5LT5za19zdHJhdGVneSk7Ci0JCQltYXRjaGVzID0gMDsKLQkJCWJyZWFrOworCQl9 CiAJfQogCiAJUEdfUkVUVVJOX0RBVFVNKG1hdGNoZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2JyaW4vYnJpbl92YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2JyaW4vYnJpbl92YWxpZGF0ZS5jCmluZGV4IGM4ZWRmYjM3NTkxLi4wODg5ZTI0YmMwMSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl92YWxpZGF0ZS5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdmFsaWRhdGUuYwpAQCAtMTA4LDYg KzEwOCwxMCBAQCBicmludmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCQljYXNlIEJSSU5f UFJPQ05VTV9PUFRJT05TOgogCQkJCW9rID0gY2hlY2tfYW1vcHRzcHJvY19zaWduYXR1cmUo cHJvY2Zvcm0tPmFtcHJvYyk7CiAJCQkJYnJlYWs7CisJCQljYXNlIEJSSU5fUFJPQ05VTV9Q UkVQUk9DRVNTOgorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+ YW1wcm9jLCBJTlRFUk5BTE9JRCwgdHJ1ZSwKKwkJCQkJCQkJCQkJMiwgMiwgSU5URVJOQUxP SUQsIElOVEVSTkFMT0lEKTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJLyogQ29t cGxhaW4gaWYgaXQncyBub3QgYSB2YWxpZCBvcHRpb25hbCBwcm9jIG51bWJlciAqLwogCQkJ CWlmIChwcm9jZm9ybS0+YW1wcm9jbnVtIDwgQlJJTl9GSVJTVF9PUFRJT05BTF9QUk9DTlVN IHx8CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKaW5kZXggNWI5NTAxMjlkZTAuLjE2 NjY4MWMzMWVmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5k YXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0CkBAIC04MDQsNiAr ODA0LDggQEAKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9jb25zaXN0ZW50JyB9LAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vYnl0ZWFfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBl ID0+ICdieXRlYScsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYnl0ZWEnLCBhbXByb2NudW0g PT4gJzQnLCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1p bHkgPT4gJ2JyaW4vYnl0ZWFfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdieXRl YScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYnl0ZWEnLCBhbXByb2NudW0gPT4gJzYnLCBh bXByb2MgPT4gJ2JyaW5fbWlubWF4X3ByZXByb2Nlc3MnIH0sCiAKICMgYmxvb20gYnl0ZWEK IHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2J5dGVhX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICdieXRlYScsCkBAIC04MzUsNiArODM3LDggQEAKICAgYW1wcm9jID0+ICdicmlu X21pbm1heF9jb25zaXN0ZW50JyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vY2hhcl9t aW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2NoYXInLAogICBhbXByb2NyaWdodHR5 cGUgPT4gJ2NoYXInLCBhbXByb2NudW0gPT4gJzQnLCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4 X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vY2hhcl9taW5tYXhfb3BzJywg YW1wcm9jbGVmdHR5cGUgPT4gJ2NoYXInLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2NoYXIn LCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3ByZXByb2Nlc3Mn IH0sCiAKICMgYmxvb20gImNoYXIiCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9jaGFyX2Js b29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdjaGFyJywKQEAgLTg2NCw2ICs4NjgsOCBA QAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X2NvbnNpc3RlbnQnIH0sCiB7IGFtcHJvY2Zh bWlseSA9PiAnYnJpbi9uYW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbmFt ZScsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbmFtZScsIGFtcHJvY251bSA9PiAnNCcsIGFt cHJvYyA9PiAnYnJpbl9taW5tYXhfdW5pb24nIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJp bi9uYW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbmFtZScsCisgIGFtcHJv Y3JpZ2h0dHlwZSA9PiAnbmFtZScsIGFtcHJvY251bSA9PiAnNicsIGFtcHJvYyA9PiAnYnJp bl9taW5tYXhfcHJlcHJvY2VzcycgfSwKIAogIyBibG9vbSBuYW1lCiB7IGFtcHJvY2ZhbWls eSA9PiAnYnJpbi9uYW1lX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICduYW1lJywK QEAgLTg5Myw2ICs4OTksOCBAQAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X2NvbnNpc3Rl bnQnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAnaW50OCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50OCcs IGFtcHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfdW5pb24nIH0sCit7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0 dHlwZSA9PiAnaW50OCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50OCcsIGFtcHJvY251 bSA9PiAnNicsIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfcHJlcHJvY2VzcycgfSwKIAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vaW50ZWdlcl9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5 cGUgPT4gJ2ludDInLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2ludDInLCBhbXByb2NudW0g PT4gJzEnLApAQCAtOTA1LDYgKzkxMyw4IEBACiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhf Y29uc2lzdGVudCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfbWlubWF4 X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdpbnQyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ ICdpbnQyJywgYW1wcm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX21pbm1heF91bmlv bicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfbWlubWF4X29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdpbnQyJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQyJywg YW1wcm9jbnVtID0+ICc2JywgYW1wcm9jID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9 LAogCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAnaW50NCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50NCcsIGFt cHJvY251bSA9PiAnMScsCkBAIC05MTcsNiArOTI3LDggQEAKICAgYW1wcm9jID0+ICdicmlu X21pbm1heF9jb25zaXN0ZW50JyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vaW50ZWdl cl9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDQnLAogICBhbXByb2NyaWdo dHR5cGUgPT4gJ2ludDQnLCBhbXByb2NudW0gPT4gJzQnLCBhbXByb2MgPT4gJ2JyaW5fbWlu bWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vaW50ZWdlcl9taW5tYXhf b3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDQnLAorICBhbXByb2NyaWdodHR5cGUgPT4g J2ludDQnLCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3ByZXBy b2Nlc3MnIH0sCiAKICMgbWlubWF4IG11bHRpIGludGVnZXI6IGludDIsIGludDQsIGludDgK IHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfbWlubWF4X211bHRpX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdpbnQyJywKQEAgLTEwMzQsNiArMTA0Niw4IEBACiAgIGFtcHJv YyA9PiAnYnJpbl9taW5tYXhfY29uc2lzdGVudCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdi cmluL3RleHRfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0ZXh0JywKICAgYW1w cm9jcmlnaHR0eXBlID0+ICd0ZXh0JywgYW1wcm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdi cmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL3RleHRfbWlu bWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0ZXh0JywKKyAgYW1wcm9jcmlnaHR0eXBl ID0+ICd0ZXh0JywgYW1wcm9jbnVtID0+ICc2JywgYW1wcm9jID0+ICdicmluX21pbm1heF9w cmVwcm9jZXNzJyB9LAogCiAjIGJsb29tIHRleHQKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmlu L3RleHRfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RleHQnLApAQCAtMTA2Miw2 ICsxMDc2LDggQEAKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9jb25zaXN0ZW50JyB9LAog eyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vb2lkX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlw ZSA9PiAnb2lkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdvaWQnLCBhbXByb2NudW0gPT4g JzQnLCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkg PT4gJ2JyaW4vb2lkX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnb2lkJywKKyAg YW1wcm9jcmlnaHR0eXBlID0+ICdvaWQnLCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4g J2JyaW5fbWlubWF4X3ByZXByb2Nlc3MnIH0sCiAKICMgbWlubWF4IG11bHRpIG9pZAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vb2lkX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0 dHlwZSA9PiAnb2lkJywKQEAgLTExMTAsNiArMTEyNiw4IEBACiAgIGFtcHJvYyA9PiAnYnJp bl9taW5tYXhfY29uc2lzdGVudCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3RpZF9t aW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpZCcsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAndGlkJywgYW1wcm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX21pbm1heF91 bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL3RpZF9taW5tYXhfb3BzJywgYW1w cm9jbGVmdHR5cGUgPT4gJ3RpZCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGlkJywgYW1w cm9jbnVtID0+ICc2JywgYW1wcm9jID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAog CiAjIGJsb29tIHRpZAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGlkX2Jsb29tX29wcycs IGFtcHJvY2xlZnR0eXBlID0+ICd0aWQnLApAQCAtMTE2MCw2ICsxMTc4LDkgQEAKIHsgYW1w cm9jZmFtaWx5ID0+ICdicmluL2Zsb2F0X21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9 PiAnZmxvYXQ0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdmbG9hdDQnLCBhbXByb2NudW0g PT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9LAoreyBhbXByb2Nm YW1pbHkgPT4gJ2JyaW4vZmxvYXRfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdm bG9hdDQnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2Zsb2F0NCcsIGFtcHJvY251bSA9PiAn NicsCisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfcHJlcHJvY2VzcycgfSwKIAogeyBhbXBy b2NmYW1pbHkgPT4gJ2JyaW4vZmxvYXRfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ ICdmbG9hdDgnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2Zsb2F0OCcsIGFtcHJvY251bSA9 PiAnMScsCkBAIC0xMTczLDYgKzExOTQsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4v ZmxvYXRfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdmbG9hdDgnLAogICBhbXBy b2NyaWdodHR5cGUgPT4gJ2Zsb2F0OCcsIGFtcHJvY251bSA9PiAnNCcsCiAgIGFtcHJvYyA9 PiAnYnJpbl9taW5tYXhfdW5pb24nIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9mbG9h dF9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2Zsb2F0OCcsCisgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAnZmxvYXQ4JywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdi cmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAogCiAjIG1pbm1heCBtdWx0aSBmbG9hdAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vZmxvYXRfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdmbG9hdDQnLApAQCAtMTI2MSw2ICsxMjg1LDkgQEAKIHsgYW1wcm9jZmFt aWx5ID0+ICdicmluL21hY2FkZHJfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdt YWNhZGRyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdtYWNhZGRyJywgYW1wcm9jbnVtID0+ ICc0JywKICAgYW1wcm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFt aWx5ID0+ICdicmluL21hY2FkZHJfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdt YWNhZGRyJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdtYWNhZGRyJywgYW1wcm9jbnVtID0+ ICc2JywKKyAgYW1wcm9jID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAogCiAjIG1p bm1heCBtdWx0aSBtYWNhZGRyCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9tYWNhZGRyX21p bm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbWFjYWRkcicsCkBAIC0xMzE0 LDYgKzEzNDEsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbWFjYWRkcjhfbWlubWF4 X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdtYWNhZGRyOCcsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnbWFjYWRkcjgnLCBhbXByb2NudW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5f bWlubWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbWFjYWRkcjhfbWlu bWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdtYWNhZGRyOCcsCisgIGFtcHJvY3JpZ2h0 dHlwZSA9PiAnbWFjYWRkcjgnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2Jy aW5fbWlubWF4X3ByZXByb2Nlc3MnIH0sCiAKICMgbWlubWF4IG11bHRpIG1hY2FkZHI4CiB7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9tYWNhZGRyOF9taW5tYXhfbXVsdGlfb3BzJywKQEAg LTEzNjYsNiArMTM5Niw4IEBACiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfY29uc2lzdGVu dCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL25ldHdvcmtfbWlubWF4X29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdpbmV0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0Jywg YW1wcm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sg YW1wcm9jZmFtaWx5ID0+ICdicmluL25ldHdvcmtfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICdpbmV0JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0JywgYW1wcm9jbnVt ID0+ICc2JywgYW1wcm9jID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAogCiAjIG1p bm1heCBtdWx0aSBpbmV0CiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9uZXR3b3JrX21pbm1h eF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW5ldCcsCkBAIC0xNDM2LDYgKzE0 NjgsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vYnBjaGFyX21pbm1heF9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAnYnBjaGFyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdicGNo YXInLCBhbXByb2NudW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9u JyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vYnBjaGFyX21pbm1heF9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAnYnBjaGFyJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdicGNoYXIn LCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3ByZXByb2Nl c3MnIH0sCiAKICMgYmxvb20gY2hhcmFjdGVyCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9i cGNoYXJfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2JwY2hhcicsCkBAIC0xNDY3 LDYgKzE1MDIsOCBAQAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X2NvbnNpc3RlbnQnIH0s CiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0 dHlwZSA9PiAndGltZScsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZScsIGFtcHJvY251 bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfdW5pb24nIH0sCit7IGFtcHJvY2Zh bWlseSA9PiAnYnJpbi90aW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGlt ZScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZScsIGFtcHJvY251bSA9PiAnNicsIGFt cHJvYyA9PiAnYnJpbl9taW5tYXhfcHJlcHJvY2VzcycgfSwKIAogIyBtaW5tYXggbXVsdGkg dGltZSB3aXRob3V0IHRpbWUgem9uZQogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGltZV9t aW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpbWUnLApAQCAtMTUxNyw2 ICsxNTU0LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX21pbm1heF9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXN0YW1wJywKICAgYW1wcm9jcmlnaHR0eXBl ID0+ICd0aW1lc3RhbXAnLCBhbXByb2NudW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5f bWlubWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfbWlu bWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lc3RhbXAnLAorICBhbXByb2NyaWdo dHR5cGUgPT4gJ3RpbWVzdGFtcCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAn YnJpbl9taW5tYXhfcHJlcHJvY2VzcycgfSwKIAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4v ZGF0ZXRpbWVfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lc3RhbXB0eics CiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXN0YW1wdHonLCBhbXByb2NudW0gPT4gJzEn LApAQCAtMTUzMCw2ICsxNTcwLDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0 aW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXN0YW1wdHonLAogICBh bXByb2NyaWdodHR5cGUgPT4gJ3RpbWVzdGFtcHR6JywgYW1wcm9jbnVtID0+ICc0JywKICAg YW1wcm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdi cmluL2RhdGV0aW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXN0YW1w dHonLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ3RpbWVzdGFtcHR6JywgYW1wcm9jbnVtID0+ ICc2JywKKyAgYW1wcm9jID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAogCiB7IGFt cHJvY2ZhbWlseSA9PiAnYnJpbi9kYXRldGltZV9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5 cGUgPT4gJ2RhdGUnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2RhdGUnLCBhbXByb2NudW0g PT4gJzEnLApAQCAtMTU0Miw2ICsxNTg1LDggQEAKICAgYW1wcm9jID0+ICdicmluX21pbm1h eF9jb25zaXN0ZW50JyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfbWlu bWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdkYXRlJywKICAgYW1wcm9jcmlnaHR0eXBl ID0+ICdkYXRlJywgYW1wcm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX21pbm1heF91 bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX21pbm1heF9vcHMn LCBhbXByb2NsZWZ0dHlwZSA9PiAnZGF0ZScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnZGF0 ZScsIGFtcHJvY251bSA9PiAnNicsIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfcHJlcHJvY2Vz cycgfSwKIAogIyBtaW5tYXggbXVsdGkgZGF0ZXRpbWUgKGRhdGUsIHRpbWVzdGFtcCwgdGlt ZXN0YW1wdHopCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9kYXRldGltZV9taW5tYXhfbXVs dGlfb3BzJywKQEAgLTE2NjgsNiArMTcxMyw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJp bi9pbnRlcnZhbF9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludGVydmFsJywK ICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnRlcnZhbCcsIGFtcHJvY251bSA9PiAnNCcsCiAg IGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfdW5pb24nIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAn YnJpbi9pbnRlcnZhbF9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludGVydmFs JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnRlcnZhbCcsIGFtcHJvY251bSA9PiAnNics CisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfcHJlcHJvY2VzcycgfSwKIAogIyBtaW5tYXgg bXVsdGkgaW50ZXJ2YWwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVydmFsX21pbm1h eF9tdWx0aV9vcHMnLApAQCAtMTcyMSw2ICsxNzY5LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ ICdicmluL3RpbWV0el9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpbWV0eics CiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXR6JywgYW1wcm9jbnVtID0+ICc0JywKICAg YW1wcm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdi cmluL3RpbWV0el9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpbWV0eicsCisg IGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXR6JywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1w cm9jID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAogCiAjIG1pbm1heCBtdWx0aSB0 aW1lIHdpdGggdGltZSB6b25lCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aW1ldHpfbWlu bWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1ldHonLApAQCAtMTc3MSw2 ICsxODIyLDggQEAKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9jb25zaXN0ZW50JyB9LAog eyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vYml0X21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlw ZSA9PiAnYml0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdiaXQnLCBhbXByb2NudW0gPT4g JzQnLCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkg PT4gJ2JyaW4vYml0X21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYml0JywKKyAg YW1wcm9jcmlnaHR0eXBlID0+ICdiaXQnLCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4g J2JyaW5fbWlubWF4X3ByZXByb2Nlc3MnIH0sCiAKICMgbWlubWF4IGJpdCB2YXJ5aW5nCiB7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi92YXJiaXRfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICd2YXJiaXQnLApAQCAtMTc4NSw2ICsxODM4LDkgQEAKIHsgYW1wcm9jZmFtaWx5 ID0+ICdicmluL3ZhcmJpdF9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3ZhcmJp dCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndmFyYml0JywgYW1wcm9jbnVtID0+ICc0JywK ICAgYW1wcm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ ICdicmluL3ZhcmJpdF9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3ZhcmJpdCcs CisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndmFyYml0JywgYW1wcm9jbnVtID0+ICc2JywKKyAg YW1wcm9jID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAogCiAjIG1pbm1heCBudW1l cmljCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9udW1lcmljX21pbm1heF9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAnbnVtZXJpYycsCkBAIC0xNzk5LDYgKzE4NTUsOSBAQAogeyBhbXBy b2NmYW1pbHkgPT4gJ2JyaW4vbnVtZXJpY19taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUg PT4gJ251bWVyaWMnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ251bWVyaWMnLCBhbXByb2Nu dW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9LAoreyBhbXBy b2NmYW1pbHkgPT4gJ2JyaW4vbnVtZXJpY19taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUg PT4gJ251bWVyaWMnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ251bWVyaWMnLCBhbXByb2Nu dW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3ByZXByb2Nlc3MnIH0sCiAK ICMgbWlubWF4IG11bHRpIG51bWVyaWMKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL251bWVy aWNfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdudW1lcmljJywKQEAg LTE4NTEsNiArMTkxMCw4IEBACiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfY29uc2lzdGVu dCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3V1aWRfbWlubWF4X29wcycsIGFtcHJv Y2xlZnR0eXBlID0+ICd1dWlkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd1dWlkJywgYW1w cm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1w cm9jZmFtaWx5ID0+ICdicmluL3V1aWRfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ ICd1dWlkJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICd1dWlkJywgYW1wcm9jbnVtID0+ICc2 JywgYW1wcm9jID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAogCiAjIG1pbm1heCBt dWx0aSB1dWlkCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi91dWlkX21pbm1heF9tdWx0aV9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndXVpZCcsCkBAIC0xOTI0LDYgKzE5ODUsOSBAQAog eyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vcGdfbHNuX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0 dHlwZSA9PiAncGdfbHNuJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdwZ19sc24nLCBhbXBy b2NudW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9LAoreyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vcGdfbHNuX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlw ZSA9PiAncGdfbHNuJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdwZ19sc24nLCBhbXByb2Nu dW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3ByZXByb2Nlc3MnIH0sCiAK ICMgbWlubWF4IG11bHRpIHBnX2xzbgogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vcGdfbHNu X21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncGdfbHNuJywKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDY5OTYwNzM5ODlhLi44ZjE3NTMyMDk0YiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC04NTI3LDYgKzg1MjcsOSBAQAogeyBvaWQg PT4gJzMzODYnLCBkZXNjciA9PiAnQlJJTiBtaW5tYXggc3VwcG9ydCcsCiAgIHByb25hbWUg PT4gJ2JyaW5fbWlubWF4X3VuaW9uJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCiAgIHByb2Fy Z3R5cGVzID0+ICdpbnRlcm5hbCBpbnRlcm5hbCBpbnRlcm5hbCcsIHByb3NyYyA9PiAnYnJp bl9taW5tYXhfdW5pb24nIH0sCit7IG9pZCA9PiAnOTMyNycsIGRlc2NyID0+ICdCUklOIG1p bm1heCBzdXBwb3J0JywKKyAgcHJvbmFtZSA9PiAnYnJpbl9taW5tYXhfcHJlcHJvY2Vzcycs IHByb3JldHR5cGUgPT4gJ2ludGVybmFsJywKKyAgcHJvYXJndHlwZXMgPT4gJ2ludGVybmFs IGludGVybmFsJywgcHJvc3JjID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAogCiAj IEJSSU4gbWlubWF4IG11bHRpCiB7IG9pZCA9PiAnNDYxNicsIGRlc2NyID0+ICdCUklOIG11 bHRpIG1pbm1heCBzdXBwb3J0JywKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvYW11dGlscy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FtdXRpbHMu b3V0CmluZGV4IDdhYjYxMTNjNjE5Li5mM2UxZmJkMmFlMyAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9hbXV0aWxzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2FtdXRpbHMub3V0CkBAIC0xMDIsNyArMTAyLDcgQEAgc2VsZWN0IHByb3As CiAgb3JkZXJhYmxlICAgICAgICAgIHwgdCAgICAgfCBmICAgIHwgZiAgICB8IGYgICAgICAg ICAgICB8IGYgICAgICAgICAgIHwgZiAgIHwgZgogIGRpc3RhbmNlX29yZGVyYWJsZSB8IGYg ICAgIHwgZiAgICB8IHQgICAgfCBmICAgICAgICAgICAgfCB0ICAgICAgICAgICB8IGYgICB8 IGYKICByZXR1cm5hYmxlICAgICAgICAgfCB0ICAgICB8IGYgICAgfCBmICAgIHwgdCAgICAg ICAgICAgIHwgdCAgICAgICAgICAgfCBmICAgfCBmCi0gc2VhcmNoX2FycmF5ICAgICAgIHwg dCAgICAgfCBmICAgIHwgZiAgICB8IGYgICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAg IHwgZgorIHNlYXJjaF9hcnJheSAgICAgICB8IHQgICAgIHwgZiAgICB8IGYgICAgfCBmICAg ICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICB8IHQKICBzZWFyY2hfbnVsbHMgICAgICAg fCB0ICAgICB8IGYgICAgfCB0ICAgIHwgdCAgICAgICAgICAgIHwgdCAgICAgICAgICAgfCBm ICAgfCB0CiAgYm9ndXMgICAgICAgICAgICAgIHwgICAgICAgfCAgICAgIHwgICAgICB8ICAg ICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAgIHwgCiAoMTAgcm93cykKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnJpbi5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2JyaW4ub3V0CmluZGV4IGYwYjdkZTViZjc2Li4yNDM2MWI5MGViMiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9icmluLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2JyaW4ub3V0CkBAIC01NzIsMyArNTcyLDg2MSBA QCBDUkVBVEUgVU5MT0dHRUQgVEFCTEUgYnJpbnRlc3RfdW5sb2dnZWQgKG4gbnVtcmFuZ2Up OwogQ1JFQVRFIElOREVYIGJyaW5pZHhfdW5sb2dnZWQgT04gYnJpbnRlc3RfdW5sb2dnZWQg VVNJTkcgYnJpbiAobik7CiBJTlNFUlQgSU5UTyBicmludGVzdF91bmxvZ2dlZCBWQUxVRVMg KG51bXJhbmdlKDAsIDJeMTAwMDo6bnVtZXJpYykpOwogRFJPUCBUQUJMRSBicmludGVzdF91 bmxvZ2dlZDsKKy0tIGRvIHNvbWUgdGVzdHMgb24gSU4gY2xhdXNlcyBmb3Igc2ltcGxlIGRh dGEgdHlwZXMKK0NSRUFURSBUQUJMRSBicmluX2luX3Rlc3RfMSAoYSBJTlQsIGIgQklHSU5U KSBXSVRIIChmaWxsZmFjdG9yPTEwKTsKK0lOU0VSVCBJTlRPIGJyaW5faW5fdGVzdF8xCitT RUxFQ1QgaS81ICsgbW9kKDk5MSAqIGkgKyA2MTcsIDIwKSwKKyAgICAgICBpLzEwICsgbW9k KDg1MyAqIGkgKyA0OTEsIDMwKQorICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApIHMo aSk7CitDUkVBVEUgSU5ERVggYnJpbl9pbl90ZXN0XzFfaWR4XzEgT04gYnJpbl9pbl90ZXN0 XzEgVVNJTkcgYnJpbiAoYSBpbnQ0X21pbm1heF9vcHMpIFdJVEggKHBhZ2VzX3Blcl9yYW5n ZT0xKTsKK0NSRUFURSBJTkRFWCBicmluX2luX3Rlc3RfMV9pZHhfMiBPTiBicmluX2luX3Rl c3RfMSBVU0lORyBicmluIChiIGludDhfbWlubWF4X29wcykgV0lUSCAocGFnZXNfcGVyX3Jh bmdlPTEpOworU0VUIGVuYWJsZV9zZXFzY2FuPW9mZjsKKy0tIGludDogZXF1YWxpdGllcwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 XzEgV0hFUkUgYSBJTiAoMTEzKTsKKyAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAg SGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChh ID0gMTEzKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVz dF8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDExMykKKyg1IHJv d3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgSU4g KDExMyk7CisgY291bnQgCistLS0tLS0tCisgICAgIDgKKygxIHJvdykKKworRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUg YSBJTiAoMTEzLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVj aGVjayBDb25kOiAoYSA9IEFOWSAoJ3sxMTMsTlVMTH0nOjppbnRlZ2VyW10pKQorICAgICAg ICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8xCisgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3sxMTMsTlVMTH0nOjppbnRlZ2Vy W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEg V0hFUkUgYSBJTiAoMTEzLCBOVUxMKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgOAorKDEg cm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfMSBXSEVSRSBhIElOIChOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5f dGVzdF8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgne05VTEwsTlVMTH0n OjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5f aW5fdGVzdF8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAo J3tOVUxMLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgSU4gKE5VTEwsIE5VTEwpOworIGNvdW50 IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgSU4gKDExMywgMTc3 KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFw IFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSBB TlkgKCd7MTEzLDE3N30nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRl eCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBD b25kOiAoYSA9IEFOWSAoJ3sxMTMsMTc3fSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIElOICgxMTMsIDE3 Nyk7CisgY291bnQgCistLS0tLS0tCisgICAgMTYKKygxIHJvdykKKworRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSBJ TiAoMTEzLCAxNzcsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFn Z3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAg ICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSBBTlkgKCd7MTEzLDE3NyxOVUxMfSc6OmludGVn ZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0 XzFfaWR4XzEKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgnezExMywx NzcsTlVMTH0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcsIE5VTEwpOworIGNvdW50 IAorLS0tLS0tLQorICAgIDE2CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgSU4gKDExMywgMTc3 LCAyNSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBC aXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xCisgICAgICAgICBSZWNoZWNrIENv bmQ6IChhID0gQU5ZICgnezExMywxNzcsMjV9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfMV9pZHhfMQorICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKGEgPSBBTlkgKCd7MTEzLDE3NywyNX0nOjppbnRlZ2VyW10p KQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hF UkUgYSBJTiAoMTEzLCAxNzcsIDI1KTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAyNAorKDEg cm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfMSBXSEVSRSBhIElOIChOVUxMLCAxMTMsIDE3NywgMjUpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBI ZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEg PSBBTlkgKCd7TlVMTCwxMTMsMTc3LDI1fSc6OmludGVnZXJbXSkpCisgICAgICAgICAtPiAg Qml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzFfaWR4XzEKKyAgICAgICAgICAg ICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgne05VTEwsMTEzLDE3NywyNX0nOjppbnRlZ2Vy W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEg V0hFUkUgYSBJTiAoTlVMTCwgMTEzLCAxNzcsIDI1KTsKKyBjb3VudCAKKy0tLS0tLS0KKyAg ICAyNAorKDEgcm93KQorCistLSBpbnQ6IGxlc3MgdGhhbgorRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA8IEFOWSAo QVJSQVlbMzBdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAg U2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA8IEFO WSAoJ3szMH0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2Fu IG9uIGJyaW5faW5fdGVzdF8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo YSA8IEFOWSAoJ3szMH0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA8IEFOWSAoQVJSQVlbMzBdKTsKKyBj b3VudCAKKy0tLS0tLS0KKyAgIDEwMworKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIDwgQU5ZIChB UlJBWVsyMCwgTlVMTF0pOworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAt PiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVj ayBDb25kOiAoYSA8IEFOWSAoJ3syMCxOVUxMfSc6OmludGVnZXJbXSkpCisgICAgICAgICAt PiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzFfaWR4XzEKKyAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6IChhIDwgQU5ZICgnezIwLE5VTEx9Jzo6aW50ZWdlcltdKSkK Kyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJF IGEgPCBBTlkgKEFSUkFZWzIwLCBOVUxMXSk7CisgY291bnQgCistLS0tLS0tCisgICAgNTEK KygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA8IEFOWSAoQVJSQVlbTlVMTCwgTlVMTF06OmludFtd KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAg SGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChh IDwgQU5ZICgne05VTEwsTlVMTH0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1h cCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8xCisgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoYSA8IEFOWSAoJ3tOVUxMLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1IHJv d3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPCBB TlkgKEFSUkFZW05VTEwsIE5VTExdOjppbnRbXSk7CisgY291bnQgCistLS0tLS0tCisgICAg IDAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA8IEFOWSAoQVJSQVlbMzUsIDI5XSk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJp bl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPCBBTlkgKCd7MzUsMjl9 Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmlu X2luX3Rlc3RfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPCBBTlkg KCd7MzUsMjl9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPCBBTlkgKEFSUkFZWzM1LCAyOV0pOworIGNv dW50IAorLS0tLS0tLQorICAgMTI3CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPD0gQU5ZIChB UlJBWVs0NSwgNjAsIE5VTExdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdn cmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAg ICAgICAgUmVjaGVjayBDb25kOiAoYSA8PSBBTlkgKCd7NDUsNjAsTlVMTH0nOjppbnRlZ2Vy W10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8x X2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA8PSBBTlkgKCd7NDUsNjAs TlVMTH0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA8PSBBTlkgKEFSUkFZWzQ1LCA2MCwgTlVMTF0pOwor IGNvdW50IAorLS0tLS0tLQorICAgMjU1CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9G RikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPCBBTlkg KEFSUkFZWzQxLCAzNywgNTVdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRl CisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAg UmVjaGVjayBDb25kOiAoYSA8IEFOWSAoJ3s0MSwzNyw1NX0nOjppbnRlZ2VyW10pKQorICAg ICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8xCisg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA8IEFOWSAoJ3s0MSwzNyw1NX0nOjppbnRl Z2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 XzEgV0hFUkUgYSA8IEFOWSAoQVJSQVlbNDEsIDM3LCA1NV0pOworIGNvdW50IAorLS0tLS0t LQorICAgMjI3CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPD0gQU5ZIChBUlJBWVtOVUxMLCA2 MCwgNDMsIDk0XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3Jl Z2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAg ICAgIFJlY2hlY2sgQ29uZDogKGEgPD0gQU5ZICgne05VTEwsNjAsNDMsOTR9Jzo6aW50ZWdl cltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3Rf MV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPD0gQU5ZICgne05VTEws NjAsNDMsOTR9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPD0gQU5ZIChBUlJBWVtOVUxMLCA2MCwgNDMs IDk0XSk7CisgY291bnQgCistLS0tLS0tCisgICA0MjcKKygxIHJvdykKKworLS0gaW50OiBn cmVhdGVyIHRoYW4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPiBBTlkgKEFSUkFZWzIwMF0pOworICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0 XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPiBBTlkgKCd7MjAwfSc6OmludGVnZXJb XSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzFf aWR4XzEKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID4gQU5ZICgnezIwMH0nOjpp bnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0XzEgV0hFUkUgYSA+IEFOWSAoQVJSQVlbMjAwXSk7CisgY291bnQgCistLS0tLS0tCisg ICAgNDUKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA+IEFOWSAoQVJSQVlbMTc3LCBOVUxMXSk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFw IFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPiBB TlkgKCd7MTc3LE5VTEx9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5k ZXggU2NhbiBvbiBicmluX2luX3Rlc3RfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXgg Q29uZDogKGEgPiBBTlkgKCd7MTc3LE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPiBBTlkgKEFS UkFZWzE3NywgTlVMTF0pOworIGNvdW50IAorLS0tLS0tLQorICAgMTU3CisoMSByb3cpCisK K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVz dF8xIFdIRVJFIGEgPiBBTlkgKEFSUkFZW05VTEwsIE5VTExdOjppbnRbXSk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBv biBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA+IEFOWSAoJ3tO VUxMLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2Nh biBvbiBicmluX2luX3Rlc3RfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGEgPiBBTlkgKCd7TlVMTCxOVUxMfSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhID4gQU5ZIChBUlJBWVtO VUxMLCBOVUxMXTo6aW50W10pOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cp CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF8xIFdIRVJFIGEgPiBBTlkgKEFSUkFZWzE1MywgMTQwXSk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5f dGVzdF8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID4gQU5ZICgnezE1MywxNDB9Jzo6 aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2lu X3Rlc3RfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPiBBTlkgKCd7 MTUzLDE0MH0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA+IEFOWSAoQVJSQVlbMTUzLCAxNDBdKTsKKyBj b3VudCAKKy0tLS0tLS0KKyAgIDM0NQorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhID49IEFOWSAo QVJSQVlbMTczLCAxOTEsIE5VTExdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0 XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPj0gQU5ZICgnezE3MywxOTEsTlVMTH0n OjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5f aW5fdGVzdF8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA+PSBBTlkg KCd7MTczLDE5MSxOVUxMfSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhID49IEFOWSAoQVJSQVlbMTczLCAx OTEsIE5VTExdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDE4NQorKDEgcm93KQorCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBX SEVSRSBhID4gQU5ZIChBUlJBWVsxMjAsIDE4NCwgMTY0XSk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJp bl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPiBBTlkgKCd7MTIwLDE4 NCwxNjR9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBv biBicmluX2luX3Rlc3RfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEg PiBBTlkgKCd7MTIwLDE4NCwxNjR9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPiBBTlkgKEFSUkFZWzEy MCwgMTg0LCAxNjRdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDQ0NQorKDEgcm93KQorCitF WFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3Rf MSBXSEVSRSBhID49IEFOWSAoQVJSQVlbTlVMTCwgMTMwLCAxODEsIDE2OV0pOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBC aXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xCisgICAgICAgICBSZWNoZWNrIENv bmQ6IChhID49IEFOWSAoJ3tOVUxMLDEzMCwxODEsMTY5fSc6OmludGVnZXJbXSkpCisgICAg ICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzFfaWR4XzEKKyAg ICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID49IEFOWSAoJ3tOVUxMLDEzMCwxODEsMTY5 fSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfMSBXSEVSRSBhID49IEFOWSAoQVJSQVlbTlVMTCwgMTMwLCAxODEsIDE2OV0p OworIGNvdW50IAorLS0tLS0tLQorICAgMzk3CisoMSByb3cpCisKKy0tIGJpZ2ludDogZXFh bGl0aWVzCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfMSBXSEVSRSBiIElOICg4Mik7CisgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAg Qml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVjayBD b25kOiAoYiA9IDgyKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5f aW5fdGVzdF8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IDgyKQor KDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUg YiBJTiAoODIpOworIGNvdW50IAorLS0tLS0tLQorICAgIDEwCisoMSByb3cpCisKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdI RVJFIGIgSU4gKDgyLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAg IC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xCisgICAgICAgICBSZWNo ZWNrIENvbmQ6IChiID0gQU5ZICgnezgyLE5VTEx9Jzo6YmlnaW50W10pKQorICAgICAgICAg LT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8yCisgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoYiA9IEFOWSAoJ3s4MixOVUxMfSc6OmJpZ2ludFtdKSkK Kyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJF IGIgSU4gKDgyLCBOVUxMKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAxMAorKDEgcm93KQor CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rl c3RfMSBXSEVSRSBiIElOIChOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg QWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQor ICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA9IEFOWSAoJ3tOVUxMLE5VTEx9Jzo6YmlnaW50 W10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8x X2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IEFOWSAoJ3tOVUxMLE5V TEx9Jzo6YmlnaW50W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0XzEgV0hFUkUgYiBJTiAoTlVMTCwgTlVMTCk7CisgY291bnQgCistLS0tLS0t CisgICAgIDAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiBJTiAoODIsIDQxKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90 ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPSBBTlkgKCd7ODIsNDF9Jzo6Ymln aW50W10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVz dF8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IEFOWSAoJ3s4Miw0 MX0nOjpiaWdpbnRbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfMSBXSEVSRSBiIElOICg4MiwgNDEpOworIGNvdW50IAorLS0tLS0tLQorICAg IDIwCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgTlVMTCk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBv biBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA9IEFOWSAoJ3s4 Miw0MSxOVUxMfSc6OmJpZ2ludFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2Nh biBvbiBicmluX2luX3Rlc3RfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGIgPSBBTlkgKCd7ODIsNDEsTlVMTH0nOjpiaWdpbnRbXSkpCisoNSByb3dzKQorCitTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBiIElOICg4MiwgNDEsIE5V TEwpOworIGNvdW50IAorLS0tLS0tLQorICAgIDIwCisoMSByb3cpCisKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIg SU4gKDgyLCA0MSwgMTUpOworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAt PiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVj ayBDb25kOiAoYiA9IEFOWSAoJ3s4Miw0MSwxNX0nOjpiaWdpbnRbXSkpCisgICAgICAgICAt PiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzFfaWR4XzIKKyAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6IChiID0gQU5ZICgnezgyLDQxLDE1fSc6OmJpZ2ludFtdKSkK Kyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJF IGIgSU4gKDgyLCA0MSwgMTUpOworIGNvdW50IAorLS0tLS0tLQorICAgIDI1CisoMSByb3cp CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF8xIFdIRVJFIGIgSU4gKE5VTEwsIDgyLCA0MSwgMTUpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24g YnJpbl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPSBBTlkgKCd7TlVM TCw4Miw0MSwxNX0nOjpiaWdpbnRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNj YW4gb24gYnJpbl9pbl90ZXN0XzFfaWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6 IChiID0gQU5ZICgne05VTEwsODIsNDEsMTV9Jzo6YmlnaW50W10pKQorKDUgcm93cykKKwor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiBJTiAoTlVMTCwg ODIsIDQxLCAxNSk7CisgY291bnQgCistLS0tLS0tCisgICAgMjUKKygxIHJvdykKKworLS0g YmlnaW50OiBsZXNzIHRoYW4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPCBBTlkgKEFSUkFZWzMxXSk7CisgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90 ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPCBBTlkgKCd7MzF9Jzo6aW50ZWdl cltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3Rf MV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgPCBBTlkgKCd7MzF9Jzo6 aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF8xIFdIRVJFIGIgPCBBTlkgKEFSUkFZWzMxXSk7CisgY291bnQgCistLS0tLS0tCisg ICAxNjQKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA8IEFOWSAoQVJSQVlbNTUsIE5VTExdKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNj YW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPCBBTlkg KCd7NTUsTlVMTH0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBT Y2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25k OiAoYiA8IEFOWSAoJ3s1NSxOVUxMfSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBiIDwgQU5ZIChBUlJBWVs1 NSwgTlVMTF0pOworIGNvdW50IAorLS0tLS0tLQorICAgNDA0CisoMSByb3cpCisKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdI RVJFIGIgPCBBTlkgKEFSUkFZW05VTEwsIE5VTExdOjpiaWdpbnRbXSk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJp bl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPCBBTlkgKCd7TlVMTCxO VUxMfSc6OmJpZ2ludFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBi cmluX2luX3Rlc3RfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgPCBB TlkgKCd7TlVMTCxOVUxMfSc6OmJpZ2ludFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPCBBTlkgKEFSUkFZW05VTEwsIE5V TExdOjpiaWdpbnRbXSk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 XzEgV0hFUkUgYiA8PSBBTlkgKEFSUkFZWzczLCA1MV0pOworICAgICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzEK KyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPD0gQU5ZICgnezczLDUxfSc6OmludGVnZXJb XSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzFf aWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChiIDw9IEFOWSAoJ3s3Myw1MX0n OjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0XzEgV0hFUkUgYiA8PSBBTlkgKEFSUkFZWzczLCA1MV0pOworIGNvdW50IAorLS0t LS0tLQorICAgNTk0CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPCBBTlkgKEFSUkFZWzY5LCA4 NywgTlVMTF0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAt PiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVj ayBDb25kOiAoYiA8IEFOWSAoJ3s2OSw4NyxOVUxMfSc6OmludGVnZXJbXSkpCisgICAgICAg ICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzFfaWR4XzIKKyAgICAg ICAgICAgICAgIEluZGV4IENvbmQ6IChiIDwgQU5ZICgnezY5LDg3LE5VTEx9Jzo6aW50ZWdl cltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8x IFdIRVJFIGIgPCBBTlkgKEFSUkFZWzY5LCA4NywgTlVMTF0pOworIGNvdW50IAorLS0tLS0t LQorICAgNzI0CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPD0gQU5ZIChBUlJBWVs4MiwgOTEs IDM1XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0 bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVjayBDb25k OiAoYiA8PSBBTlkgKCd7ODIsOTEsMzV9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBC aXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfMV9pZHhfMgorICAgICAgICAgICAg ICAgSW5kZXggQ29uZDogKGIgPD0gQU5ZICgnezgyLDkxLDM1fSc6OmludGVnZXJbXSkpCiso NSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBi IDw9IEFOWSAoQVJSQVlbODIsIDkxLCAzNV0pOworIGNvdW50IAorLS0tLS0tLQorICAgNzc0 CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPCBBTlkgKEFSUkFZW05VTEwsIDYzLCAyMSwgODVd KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4g IEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sg Q29uZDogKGIgPCBBTlkgKCd7TlVMTCw2MywyMSw4NX0nOjppbnRlZ2VyW10pKQorICAgICAg ICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8yCisgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoYiA8IEFOWSAoJ3tOVUxMLDYzLDIxLDg1fSc6Omlu dGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rl c3RfMSBXSEVSRSBiIDwgQU5ZIChBUlJBWVtOVUxMLCA2MywgMjEsIDg1XSk7CisgY291bnQg CistLS0tLS0tCisgICA3MDQKKygxIHJvdykKKworLS0gYmlnaW50OiBncmVhdGVyIHRoYW4K K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVz dF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZWzk0XSk7CisgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQor ICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAgICAgIFJl Y2hlY2sgQ29uZDogKGIgPiBBTlkgKCd7OTR9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfMV9pZHhfMgorICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKGIgPiBBTlkgKCd7OTR9Jzo6aW50ZWdlcltdKSkKKyg1IHJv d3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPiBB TlkgKEFSUkFZWzk0XSk7CisgY291bnQgCistLS0tLS0tCisgICAxOTYKKygxIHJvdykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 XzEgV0hFUkUgYiA+IEFOWSAoQVJSQVlbODAsIE5VTExdKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0 XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPiBBTlkgKCd7ODAsTlVMTH0nOjppbnRl Z2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVz dF8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA+IEFOWSAoJ3s4MCxO VUxMfSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBi cmluX2luX3Rlc3RfMSBXSEVSRSBiID4gQU5ZIChBUlJBWVs4MCwgTlVMTF0pOworIGNvdW50 IAorLS0tLS0tLQorICAgMzM2CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZ W05VTEwsIE5VTExdOjpiaWdpbnRbXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3Jl Z2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAg ICAgIFJlY2hlY2sgQ29uZDogKGIgPiBBTlkgKCd7TlVMTCxOVUxMfSc6OmJpZ2ludFtdKSkK KyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfMV9pZHhf MgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgPiBBTlkgKCd7TlVMTCxOVUxMfSc6 OmJpZ2ludFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZW05VTEwsIE5VTExdOjpiaWdpbnRbXSk7Cisg Y291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA+IEFOWSAo QVJSQVlbMTk5LCAxMDddKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAg LT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hl Y2sgQ29uZDogKGIgPiBBTlkgKCd7MTk5LDEwN30nOjppbnRlZ2VyW10pKQorICAgICAgICAg LT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8yCisgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoYiA+IEFOWSAoJ3sxOTksMTA3fSc6OmludGVnZXJbXSkp CisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVS RSBiID4gQU5ZIChBUlJBWVsxOTksIDEwN10pOworIGNvdW50IAorLS0tLS0tLQorICAgIDc4 CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPj0gQU5ZIChBUlJBWVsxODIsIDEwMSwgTlVMTF0p OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAg Qml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVjayBD b25kOiAoYiA+PSBBTlkgKCd7MTgyLDEwMSxOVUxMfSc6OmludGVnZXJbXSkpCisgICAgICAg ICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzFfaWR4XzIKKyAgICAg ICAgICAgICAgIEluZGV4IENvbmQ6IChiID49IEFOWSAoJ3sxODIsMTAxLE5VTEx9Jzo6aW50 ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVz dF8xIFdIRVJFIGIgPj0gQU5ZIChBUlJBWVsxODIsIDEwMSwgTlVMTF0pOworIGNvdW50IAor LS0tLS0tLQorICAgMTM3CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZWzMw MCwgMTA2LCAyNTFdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRl CisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAg UmVjaGVjayBDb25kOiAoYiA+IEFOWSAoJ3szMDAsMTA2LDI1MX0nOjppbnRlZ2VyW10pKQor ICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8y CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA+IEFOWSAoJ3szMDAsMTA2LDI1MX0n OjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0XzEgV0hFUkUgYiA+IEFOWSAoQVJSQVlbMzAwLCAxMDYsIDI1MV0pOworIGNvdW50 IAorLS0tLS0tLQorICAgIDg2CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZ W05VTEwsIDE4MiwgMTAxLCAxNTVdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9p bl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPiBBTlkgKCd7TlVMTCwxODIs MTAxLDE1NX0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2Fu IG9uIGJyaW5faW5fdGVzdF8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo YiA+IEFOWSAoJ3tOVUxMLDE4MiwxMDEsMTU1fSc6OmludGVnZXJbXSkpCisoNSByb3dzKQor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBiID4gQU5ZIChB UlJBWVtOVUxMLCAxODIsIDEwMSwgMTU1XSk7CisgY291bnQgCistLS0tLS0tCisgICAxMjcK KygxIHJvdykKKworRFJPUCBUQUJMRSBicmluX2luX3Rlc3RfMTsKK1JFU0VUIGVuYWJsZV9z ZXFzY2FuOworLS0gZG8gc29tZSB0ZXN0cyBvbiBJTiBjbGF1c2VzIGZvciB2YXJsZW5hIGRh dGEgdHlwZXMKK0NSRUFURSBUQUJMRSBicmluX2luX3Rlc3RfMiAoYSBURVhUKSBXSVRIIChm aWxsZmFjdG9yPTEwKTsKK0lOU0VSVCBJTlRPIGJyaW5faW5fdGVzdF8yCitTRUxFQ1QgdiBG Uk9NIChTRUxFQ1Qgcm93X251bWJlcigpIE9WRVIgKE9SREVSIEJZIHYpIGMsIHYgRlJPTSAo U0VMRUNUIG1kNSgoaS8xMyk6OnRleHQpIEFTIHYgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwx MDAwKSBzKGkpKSBmb28pIGJhciBPUkRFUiBCWSBjICsgMjUgKiByYW5kb20oKTsKK0NSRUFU RSBJTkRFWCBicmluX2luX3Rlc3RfMl9pZHggT04gYnJpbl9pbl90ZXN0XzIgVVNJTkcgYnJp biAoYSB0ZXh0X21pbm1heF9vcHMpIFdJVEggKHBhZ2VzX3Blcl9yYW5nZT0xKTsKK1NFVCBl bmFibGVfc2Vxc2Nhbj1vZmY7CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfMiBXSEVSRSBhIElOICgnMzNlNzVmZjA5ZGQ2MDFiYmU2 OWYzNTEwMzkxNTIxODknKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9p bl90ZXN0XzIKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSAnMzNlNzVmZjA5ZGQ2MDFi YmU2OWYzNTEwMzkxNTIxODknOjp0ZXh0KQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBT Y2FuIG9uIGJyaW5faW5fdGVzdF8yX2lkeAorICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGEgPSAnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODknOjp0ZXh0KQorKDUgcm93 cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzIgV0hFUkUgYSBJTiAo JzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5Jyk7CisgY291bnQgCistLS0tLS0t CisgICAgMTMKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0XzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJl NjlmMzUxMDM5MTUyMTg5JywgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdh dGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8yCisgICAgICAg ICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5 MTUyMTg5LE5VTEx9Jzo6dGV4dFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2Nh biBvbiBicmluX2luX3Rlc3RfMl9pZHgKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChh ID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5LE5VTEx9Jzo6dGV4 dFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8y IFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScsIE5VTEwp OworIGNvdW50IAorLS0tLS0tLQorICAgIDEzCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8yIFdIRVJFIGEgSU4g KE5VTEwsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJp dG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzIKKyAgICAgICAgIFJlY2hlY2sgQ29u ZDogKGEgPSBBTlkgKCd7TlVMTCxOVUxMfSc6OnRleHRbXSkpCisgICAgICAgICAtPiAgQml0 bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzJfaWR4CisgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoYSA9IEFOWSAoJ3tOVUxMLE5VTEx9Jzo6dGV4dFtdKSkKKyg1IHJvd3Mp CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8yIFdIRVJFIGEgSU4gKE5V TEwsIE5VTEwpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8yIFdI RVJFIGEgSU4gKCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScsICdmNDU3YzU0 NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMCcpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBB Z2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8yCisg ICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlm MzUxMDM5MTUyMTg5LGY0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwfSc6OnRleHRb XSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzJf aWR4CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3szM2U3NWZmMDlk ZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OSxmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJj MH0nOjp0ZXh0W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0XzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5 JywgJ2Y0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJyk7CisgY291bnQgCistLS0t LS0tCisgICAgMjYKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAx YmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMw JywgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUK KyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8yCisgICAgICAgICBS ZWNoZWNrIENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUy MTg5LGY0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwLE5VTEx9Jzo6dGV4dFtdKSkK KyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfMl9pZHgK KyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAx YmJlNjlmMzUxMDM5MTUyMTg5LGY0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwLE5V TEx9Jzo6dGV4dFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4 OScsICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMCcsIE5VTEwpOworIGNvdW50 IAorLS0tLS0tLQorICAgIDI2CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8yIFdIRVJFIGEgSU4gKCczM2U3NWZm MDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScsICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcx NDVhNzJjMCcsICdjNTFjZTQxMGMxMjRhMTBlMGRiNWU0Yjk3ZmMyYWYzOScpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAg SGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8yCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChh ID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5LGY0NTdjNTQ1YTlk ZWQ4OGYxOGVjZWU0NzE0NWE3MmMwLGM1MWNlNDEwYzEyNGExMGUwZGI1ZTRiOTdmYzJhZjM5 fSc6OnRleHRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9p bl90ZXN0XzJfaWR4CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3sz M2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OSxmNDU3YzU0NWE5ZGVkODhmMThlY2Vl NDcxNDVhNzJjMCxjNTFjZTQxMGMxMjRhMTBlMGRiNWU0Yjk3ZmMyYWYzOX0nOjp0ZXh0W10p KQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzIgV0hF UkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1 YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJywgJ2M1MWNlNDEwYzEyNGExMGUwZGI1ZTRiOTdm YzJhZjM5Jyk7CisgY291bnQgCistLS0tLS0tCisgICAgMzkKKygxIHJvdykKKworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzIgV0hF UkUgYSBJTiAoTlVMTCwgJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0 NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJywgJ2M1MWNlNDEwYzEyNGExMGUwZGI1 ZTRiOTdmYzJhZjM5Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5f dGVzdF8yCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgne05VTEwsMzNlNzVm ZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODksZjQ1N2M1NDVhOWRlZDg4ZjE4ZWNlZTQ3MTQ1 YTcyYzAsYzUxY2U0MTBjMTI0YTEwZTBkYjVlNGI5N2ZjMmFmMzl9Jzo6dGV4dFtdKSkKKyAg ICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfMl9pZHgKKyAg ICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgne05VTEwsMzNlNzVmZjA5ZGQ2 MDFiYmU2OWYzNTEwMzkxNTIxODksZjQ1N2M1NDVhOWRlZDg4ZjE4ZWNlZTQ3MTQ1YTcyYzAs YzUxY2U0MTBjMTI0YTEwZTBkYjVlNGI5N2ZjMmFmMzl9Jzo6dGV4dFtdKSkKKyg1IHJvd3Mp CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8yIFdIRVJFIGEgSU4gKE5V TEwsICczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScsICdmNDU3YzU0NWE5ZGVk ODhmMThlY2VlNDcxNDVhNzJjMCcsICdjNTFjZTQxMGMxMjRhMTBlMGRiNWU0Yjk3ZmMyYWYz OScpOworIGNvdW50IAorLS0tLS0tLQorICAgIDM5CisoMSByb3cpCisKK0RST1AgVEFCTEUg YnJpbl9pbl90ZXN0XzI7CitSRVNFVCBlbmFibGVfc2Vxc2NhbjsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2JyaW4uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYnJp bi5zcWwKaW5kZXggOTI5YTA4N2EyNWQuLjcxOTljOTEwOGIwIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9icmluLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9i cmluLnNxbApAQCAtNTE1LDMgKzUxNSwyODYgQEAgQ1JFQVRFIFVOTE9HR0VEIFRBQkxFIGJy aW50ZXN0X3VubG9nZ2VkIChuIG51bXJhbmdlKTsKIENSRUFURSBJTkRFWCBicmluaWR4X3Vu bG9nZ2VkIE9OIGJyaW50ZXN0X3VubG9nZ2VkIFVTSU5HIGJyaW4gKG4pOwogSU5TRVJUIElO VE8gYnJpbnRlc3RfdW5sb2dnZWQgVkFMVUVTIChudW1yYW5nZSgwLCAyXjEwMDA6Om51bWVy aWMpKTsKIERST1AgVEFCTEUgYnJpbnRlc3RfdW5sb2dnZWQ7CisKKy0tIGRvIHNvbWUgdGVz dHMgb24gSU4gY2xhdXNlcyBmb3Igc2ltcGxlIGRhdGEgdHlwZXMKK0NSRUFURSBUQUJMRSBi cmluX2luX3Rlc3RfMSAoYSBJTlQsIGIgQklHSU5UKSBXSVRIIChmaWxsZmFjdG9yPTEwKTsK K0lOU0VSVCBJTlRPIGJyaW5faW5fdGVzdF8xCitTRUxFQ1QgaS81ICsgbW9kKDk5MSAqIGkg KyA2MTcsIDIwKSwKKyAgICAgICBpLzEwICsgbW9kKDg1MyAqIGkgKyA0OTEsIDMwKQorICBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApIHMoaSk7CisKK0NSRUFURSBJTkRFWCBicmlu X2luX3Rlc3RfMV9pZHhfMSBPTiBicmluX2luX3Rlc3RfMSBVU0lORyBicmluIChhIGludDRf bWlubWF4X29wcykgV0lUSCAocGFnZXNfcGVyX3JhbmdlPTEpOworQ1JFQVRFIElOREVYIGJy aW5faW5fdGVzdF8xX2lkeF8yIE9OIGJyaW5faW5fdGVzdF8xIFVTSU5HIGJyaW4gKGIgaW50 OF9taW5tYXhfb3BzKSBXSVRIIChwYWdlc19wZXJfcmFuZ2U9MSk7CisKK1NFVCBlbmFibGVf c2Vxc2Nhbj1vZmY7CisKKy0tIGludDogZXF1YWxpdGllcworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSBJTiAoMTEz KTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSBJTiAo MTEzKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0XzEgV0hFUkUgYSBJTiAoMTEzLCBOVUxMKTsKKworU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSBJTiAoMTEzLCBOVUxMKTsKKworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hF UkUgYSBJTiAoTlVMTCwgTlVMTCk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF8xIFdIRVJFIGEgSU4gKE5VTEwsIE5VTEwpOworCitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIElOICgxMTMs IDE3Nyk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEg SU4gKDExMywgMTc3KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcsIE5VTEwpOworCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIElOICgxMTMsIDE3 NywgTlVMTCk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgSU4gKDExMywgMTc3LCAyNSk7CisKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgSU4gKDExMywgMTc3LCAyNSk7 CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF8xIFdIRVJFIGEgSU4gKE5VTEwsIDExMywgMTc3LCAyNSk7CisKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgSU4gKE5VTEwsIDExMywgMTc3LCAy NSk7CisKKy0tIGludDogbGVzcyB0aGFuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIDwgQU5ZIChBUlJBWVszMF0p OworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIDwgQU5Z IChBUlJBWVszMF0pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikg RlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIDwgQU5ZIChBUlJBWVsyMCwgTlVMTF0pOwor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIDwgQU5ZIChB UlJBWVsyMCwgTlVMTF0pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIDwgQU5ZIChBUlJBWVtOVUxMLCBOVUxM XTo6aW50W10pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVS RSBhIDwgQU5ZIChBUlJBWVtOVUxMLCBOVUxMXTo6aW50W10pOworCitFWFBMQUlOIChDT1NU UyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIDwg QU5ZIChBUlJBWVszNSwgMjldKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0XzEgV0hFUkUgYSA8IEFOWSAoQVJSQVlbMzUsIDI5XSk7CisKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPD0g QU5ZIChBUlJBWVs0NSwgNjAsIE5VTExdKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0XzEgV0hFUkUgYSA8PSBBTlkgKEFSUkFZWzQ1LCA2MCwgTlVMTF0pOworCitF WFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3Rf MSBXSEVSRSBhIDwgQU5ZIChBUlJBWVs0MSwgMzcsIDU1XSk7CisKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPCBBTlkgKEFSUkFZWzQxLCAzNywgNTVd KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0XzEgV0hFUkUgYSA8PSBBTlkgKEFSUkFZW05VTEwsIDYwLCA0MywgOTRdKTsKKwor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA8PSBBTlkgKEFS UkFZW05VTEwsIDYwLCA0MywgOTRdKTsKKworCistLSBpbnQ6IGdyZWF0ZXIgdGhhbgorRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEg V0hFUkUgYSA+IEFOWSAoQVJSQVlbMjAwXSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF8xIFdIRVJFIGEgPiBBTlkgKEFSUkFZWzIwMF0pOworCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBh ID4gQU5ZIChBUlJBWVsxNzcsIE5VTExdKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0XzEgV0hFUkUgYSA+IEFOWSAoQVJSQVlbMTc3LCBOVUxMXSk7CisKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdI RVJFIGEgPiBBTlkgKEFSUkFZW05VTEwsIE5VTExdOjppbnRbXSk7CisKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPiBBTlkgKEFSUkFZW05VTEwsIE5V TExdOjppbnRbXSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPiBBTlkgKEFSUkFZWzE1MywgMTQwXSk7CisK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPiBBTlkgKEFS UkFZWzE1MywgMTQwXSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPj0gQU5ZIChBUlJBWVsxNzMsIDE5MSwg TlVMTF0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBh ID49IEFOWSAoQVJSQVlbMTczLCAxOTEsIE5VTExdKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA+IEFOWSAo QVJSQVlbMTIwLCAxODQsIDE2NF0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfMSBXSEVSRSBhID4gQU5ZIChBUlJBWVsxMjAsIDE4NCwgMTY0XSk7CisKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdI RVJFIGEgPj0gQU5ZIChBUlJBWVtOVUxMLCAxMzAsIDE4MSwgMTY5XSk7CisKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPj0gQU5ZIChBUlJBWVtOVUxM LCAxMzAsIDE4MSwgMTY5XSk7CisKKworLS0gYmlnaW50OiBlcWFsaXRpZXMKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJF IGIgSU4gKDgyKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hF UkUgYiBJTiAoODIpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikg RlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBiIElOICg4MiwgTlVMTCk7CisKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgSU4gKDgyLCBOVUxMKTsKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 XzEgV0hFUkUgYiBJTiAoTlVMTCwgTlVMTCk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF8xIFdIRVJFIGIgSU4gKE5VTEwsIE5VTEwpOworCitFWFBMQUlOIChDT1NU UyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBiIElO ICg4MiwgNDEpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVS RSBiIElOICg4MiwgNDEpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBiIElOICg4MiwgNDEsIE5VTEwpOworCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBiIElOICg4MiwgNDEs IE5VTEwpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBi cmluX2luX3Rlc3RfMSBXSEVSRSBiIElOICg4MiwgNDEsIDE1KTsKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiBJTiAoODIsIDQxLCAxNSk7CisKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8x IFdIRVJFIGIgSU4gKE5VTEwsIDgyLCA0MSwgMTUpOworCitTRUxFQ1QgQ09VTlQoKikgRlJP TSBicmluX2luX3Rlc3RfMSBXSEVSRSBiIElOIChOVUxMLCA4MiwgNDEsIDE1KTsKKworCist LSBiaWdpbnQ6IGxlc3MgdGhhbgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA8IEFOWSAoQVJSQVlbMzFdKTsKKwor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA8IEFOWSAoQVJS QVlbMzFdKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA8IEFOWSAoQVJSQVlbNTUsIE5VTExdKTsKKworU0VM RUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA8IEFOWSAoQVJSQVlb NTUsIE5VTExdKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA8IEFOWSAoQVJSQVlbTlVMTCwgTlVMTF06OmJp Z2ludFtdKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUg YiA8IEFOWSAoQVJSQVlbTlVMTCwgTlVMTF06OmJpZ2ludFtdKTsKKworRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA8 PSBBTlkgKEFSUkFZWzczLCA1MV0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfMSBXSEVSRSBiIDw9IEFOWSAoQVJSQVlbNzMsIDUxXSk7CisKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIg PCBBTlkgKEFSUkFZWzY5LCA4NywgTlVMTF0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBi cmluX2luX3Rlc3RfMSBXSEVSRSBiIDwgQU5ZIChBUlJBWVs2OSwgODcsIE5VTExdKTsKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 XzEgV0hFUkUgYiA8PSBBTlkgKEFSUkFZWzgyLCA5MSwgMzVdKTsKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA8PSBBTlkgKEFSUkFZWzgyLCA5MSwg MzVdKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0XzEgV0hFUkUgYiA8IEFOWSAoQVJSQVlbTlVMTCwgNjMsIDIxLCA4NV0pOwor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBiIDwgQU5ZIChB UlJBWVtOVUxMLCA2MywgMjEsIDg1XSk7CisKKworLS0gYmlnaW50OiBncmVhdGVyIHRoYW4K K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVz dF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZWzk0XSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZWzk0XSk7CisKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJF IGIgPiBBTlkgKEFSUkFZWzgwLCBOVUxMXSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZWzgwLCBOVUxMXSk7CisKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdI RVJFIGIgPiBBTlkgKEFSUkFZW05VTEwsIE5VTExdOjpiaWdpbnRbXSk7CisKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZW05VTEws IE5VTExdOjpiaWdpbnRbXSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZWzE5OSwgMTA3 XSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPiBB TlkgKEFSUkFZWzE5OSwgMTA3XSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPj0gQU5ZIChBUlJBWVsxODIs IDEwMSwgTlVMTF0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBX SEVSRSBiID49IEFOWSAoQVJSQVlbMTgyLCAxMDEsIE5VTExdKTsKKworRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA+ IEFOWSAoQVJSQVlbMzAwLCAxMDYsIDI1MV0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBi cmluX2luX3Rlc3RfMSBXSEVSRSBiID4gQU5ZIChBUlJBWVszMDAsIDEwNiwgMjUxXSk7CisK K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVz dF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZW05VTEwsIDE4MiwgMTAxLCAxNTVdKTsKKworU0VM RUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA+IEFOWSAoQVJSQVlb TlVMTCwgMTgyLCAxMDEsIDE1NV0pOworCisKK0RST1AgVEFCTEUgYnJpbl9pbl90ZXN0XzE7 CitSRVNFVCBlbmFibGVfc2Vxc2NhbjsKKworLS0gZG8gc29tZSB0ZXN0cyBvbiBJTiBjbGF1 c2VzIGZvciB2YXJsZW5hIGRhdGEgdHlwZXMKK0NSRUFURSBUQUJMRSBicmluX2luX3Rlc3Rf MiAoYSBURVhUKSBXSVRIIChmaWxsZmFjdG9yPTEwKTsKK0lOU0VSVCBJTlRPIGJyaW5faW5f dGVzdF8yCitTRUxFQ1QgdiBGUk9NIChTRUxFQ1Qgcm93X251bWJlcigpIE9WRVIgKE9SREVS IEJZIHYpIGMsIHYgRlJPTSAoU0VMRUNUIG1kNSgoaS8xMyk6OnRleHQpIEFTIHYgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKSBzKGkpKSBmb28pIGJhciBPUkRFUiBCWSBjICsgMjUg KiByYW5kb20oKTsKKworQ1JFQVRFIElOREVYIGJyaW5faW5fdGVzdF8yX2lkeCBPTiBicmlu X2luX3Rlc3RfMiBVU0lORyBicmluIChhIHRleHRfbWlubWF4X29wcykgV0lUSCAocGFnZXNf cGVyX3JhbmdlPTEpOworCitTRVQgZW5hYmxlX3NlcXNjYW49b2ZmOworCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMiBXSEVSRSBh IElOICgnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODknKTsKKworU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAx YmJlNjlmMzUxMDM5MTUyMTg5Jyk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYw MWJiZTY5ZjM1MTAzOTE1MjE4OScsIE5VTEwpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBi cmluX2luX3Rlc3RfMiBXSEVSRSBhIElOICgnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkx NTIxODknLCBOVUxMKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl9pbl90ZXN0XzIgV0hFUkUgYSBJTiAoTlVMTCwgTlVMTCk7CisKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8yIFdIRVJFIGEgSU4gKE5VTEwsIE5VTEwp OworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfMiBXSEVSRSBhIElOICgnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODkn LCAnZjQ1N2M1NDVhOWRlZDg4ZjE4ZWNlZTQ3MTQ1YTcyYzAnKTsKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0XzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJl NjlmMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJyk7 CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScs ICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMCcsIE5VTEwpOworCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMiBXSEVSRSBhIElOICgnMzNlNzVmZjA5ZGQ2 MDFiYmU2OWYzNTEwMzkxNTIxODknLCAnZjQ1N2M1NDVhOWRlZDg4ZjE4ZWNlZTQ3MTQ1YTcy YzAnLCBOVUxMKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0XzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUx MDM5MTUyMTg5JywgJ2Y0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJywgJ2M1MWNl NDEwYzEyNGExMGUwZGI1ZTRiOTdmYzJhZjM5Jyk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAz OTE1MjE4OScsICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMCcsICdjNTFjZTQx MGMxMjRhMTBlMGRiNWU0Yjk3ZmMyYWYzOScpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMiBXSEVSRSBhIElOIChOVUxMLCAn MzNlNzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODknLCAnZjQ1N2M1NDVhOWRlZDg4ZjE4 ZWNlZTQ3MTQ1YTcyYzAnLCAnYzUxY2U0MTBjMTI0YTEwZTBkYjVlNGI5N2ZjMmFmMzknKTsK KworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzIgV0hFUkUgYSBJTiAoTlVM TCwgJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1YTlkZWQ4 OGYxOGVjZWU0NzE0NWE3MmMwJywgJ2M1MWNlNDEwYzEyNGExMGUwZGI1ZTRiOTdmYzJhZjM5 Jyk7CisKK0RST1AgVEFCTEUgYnJpbl9pbl90ZXN0XzI7CitSRVNFVCBlbmFibGVfc2Vxc2Nh bjsKLS0gCjIuNDAuMQoK --------------rWyDHUFaciQk1dJG0D8xK1UK Content-Type: text/x-patch; charset=UTF-8; name="0007-Support-SK_SEARCHARRAY-in-BRIN-minmax-multi-20230608.patch" Content-Disposition: attachment; filename*0="0007-Support-SK_SEARCHARRAY-in-BRIN-minmax-multi-20230608.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAwOWJlMTZjNGZiZWNlMmU0OTQ1ZWVlYWM5YTVmMzZhZTdiNjk3NTg4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogRnJpLCAxNyBGZWIgMjAyMyAwMjo0NToxNCArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggNy85XSBTdXBwb3J0IFNLX1NFQVJDSEFSUkFZIGluIEJSSU4gbWlubWF4 LW11bHRpCgpTaW1pbGFyIGFwcHJvYWNoIHRvIG1pbm1heCwgYnV0IHRoZSBpc3N1ZXMgd2l0 aCBkZWNvbnN0cnVjdGluZyB0aGUgYXJyYXkKb3ZlciBhbmQgb3ZlciBhcmUgZXZlbiBtb3Jl IHNlcmlvdXMuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9taW5tYXhfbXVs dGkuYyB8IDUwMiArKysrKysrKystLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2Mu ZGF0ICAgICAgICAgICB8ICA1NyArKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dCAgICAgICAgICAgICB8ICAgNCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2JyaW5f bXVsdGkub3V0ICAgIHwgOTI2ICsrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9icmluX211bHRpLnNxbCAgICAgICAgIHwgMzAxICsrKysrKysKIDUgZmlsZXMg Y2hhbmdlZCwgMTcyNSBpbnNlcnRpb25zKCspLCA2NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX21pbm1heF9tdWx0aS5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9taW5tYXhfbXVsdGkuYwppbmRleCAxZDY2NTM4 M2IyYy4uMThiNmRiOGJjOTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmlu L2JyaW5fbWlubWF4X211bHRpLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJp bl9taW5tYXhfbXVsdGkuYwpAQCAtMTA5LDYgKzEwOSwxNCBAQAogI2RlZmluZQkJTUlOTUFY X0JVRkZFUl9NQVgJCQkJODE5MgogI2RlZmluZQkJTUlOTUFYX0JVRkZFUl9MT0FEX0ZBQ1RP UgkJMC41CiAKKy8qCisgKiBXZSB1c2Ugc29tZSBwcml2YXRlIHNrX2ZsYWdzIGJpdHMgaW4g cHJlcHJvY2Vzc2VkIHNjYW4ga2V5cy4gIFdlJ3JlIGFsbG93ZWQKKyAqIHRvIHVzZSBiaXRz IDE2LTMxIChzZWUgc2tleS5oKS4gIFRoZSB1cHBlcm1vc3QgYml0cyBhcmUgY29waWVkIGZy b20gdGhlCisgKiBpbmRleCdzIGluZG9wdGlvbltdIGFycmF5IGVudHJ5IGZvciB0aGUgaW5k ZXggYXR0cmlidXRlLgorICovCisjZGVmaW5lIFNLX0JSSU5fU09SVEVECTB4MDAwMTAwMDAJ LyogZGVjb25zdHJ1Y3RlZCBhbmQgc29ydGVkIGFycmF5ICovCisKKwogdHlwZWRlZiBzdHJ1 Y3QgTWlubWF4TXVsdGlPcGFxdWUKIHsKIAlGbWdySW5mbwlleHRyYV9wcm9jaW5mb3NbTUlO TUFYX01BWF9QUk9DTlVNU107CkBAIC0yNTYyLDYgKzI1NzAsMTU3IEBAIGJyaW5fbWlubWF4 X211bHRpX2FkZF92YWx1ZShQR19GVU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9CT09MKG1v ZGlmaWVkKTsKIH0KIAorCitzdGF0aWMgaW50Citjb21wYXJlX2FycmF5X3ZhbHVlcyhjb25z dCB2b2lkICphLCBjb25zdCB2b2lkICpiLCB2b2lkICphcmcpCit7CisJRGF0dW0JZGEgPSAq IChEYXR1bSAqKSBhOworCURhdHVtCWRiID0gKiAoRGF0dW0gKikgYjsKKwlTb3J0U3VwcG9y dAlzc3VwID0gKFNvcnRTdXBwb3J0KSBhcmc7CisKKwlyZXR1cm4gQXBwbHlTb3J0Q29tcGFy YXRvcihkYSwgZmFsc2UsIGRiLCBmYWxzZSwgc3N1cCk7Cit9CisKKy8qCisgKiBsb3dlcl9i b3VuZGFyeQorICoJCURldGVybWluZSBsb3dlc3QgaW5kZXggc28gdGhhdCAodmFsdWVzW2lu ZGV4XSA+PSBtaW52YWx1ZSkuCisgKgorICogVGhlIGFycmF5IG9mIHZhbHVlcyBpcyBleHBl Y3RlZCB0byBiZSBzb3J0ZWQsIHNvIHRoaXMgaXMgdGhlIGZpcnN0IHZhbHVlCisgKiB0aGF0 IG1heSBmYWxsIGludG8gdGhlIFttaW52YWx1ZSwgbWF4dmFsdWVdIHJhbmdlLCBhcyBpdCBl eGNlZWRzIG1pbnZhbC4KKyAqIEl0J3Mgbm90IGd1YXJhbnRlZWQsIHRob3VnaCwgYXMgaXQg bWlnaHQgZXhjZWVkIG1heHZhbHVlIHRvby4KKyAqLworc3RhdGljIGludAorbG93ZXJfYm91 bmRhcnkoRGF0dW0gKnZhbHVlcywgaW50IG52YWx1ZXMsIERhdHVtIG1pbnZhbHVlLCBTb3J0 U3VwcG9ydCBzc3VwKQoreworCWludAkJc3RhcnQgPSAwLAorCQkJZW5kID0gKG52YWx1ZXMg LSAxKTsKKworCS8qIGV2ZXJ5dGhpbmcgZXhjZWVkcyBtaW52YWwgYW5kIG1pZ2h0IG1hdGNo ICovCisJaWYgKGNvbXBhcmVfYXJyYXlfdmFsdWVzKCZtaW52YWx1ZSwgJnZhbHVlc1tzdGFy dF0sIHNzdXApIDw9IDApCisJCXJldHVybiAwOworCisJLyogbm90aGluZyBjb3VsZCBtYXRj aCAqLworCWlmIChjb21wYXJlX2FycmF5X3ZhbHVlcygmbWludmFsdWUsICZ2YWx1ZXNbZW5k XSwgc3N1cCkgPiAwKQorCQlyZXR1cm4gbnZhbHVlczsKKworCXdoaWxlICgoZW5kIC0gc3Rh cnQpID4gMCkKKwl7CisJCWludCBtaWRwb2ludDsKKwkJaW50IHI7CisKKwkJbWlkcG9pbnQg PSBzdGFydCArIChlbmQgLSBzdGFydCkgLyAyOworCisJCXIgPSBjb21wYXJlX2FycmF5X3Zh bHVlcygmbWludmFsdWUsICZ2YWx1ZXNbbWlkcG9pbnRdLCBzc3VwKTsKKworCQlpZiAociA+ IDApCisJCQlzdGFydCA9IE1heChtaWRwb2ludCwgc3RhcnQgKyAxKTsKKwkJZWxzZQorCQkJ ZW5kID0gbWlkcG9pbnQ7CisJfQorCisJLyogdGhlIHZhbHVlIHNob3VsZCBtZWV0IHRoZSAo diA+PW1pbnZhbHVlKSByZXF1aXJlbWVudCAqLworCUFzc2VydChjb21wYXJlX2FycmF5X3Zh bHVlcygmdmFsdWVzW3N0YXJ0XSwgJm1pbnZhbHVlLCBzc3VwKSA+PSAwKTsKKworCS8qIHdl IGtub3cgc3RhcnQgY2FuJ3QgYmUgMCwgc28gaXQncyBsZWdhbCB0byBzdWJ0cmFjdCAxICov CisJQXNzZXJ0KGNvbXBhcmVfYXJyYXlfdmFsdWVzKCZ2YWx1ZXNbc3RhcnQtMV0sICZtaW52 YWx1ZSwgc3N1cCkgPCAwKTsKKworCXJldHVybiBzdGFydDsKK30KKwordHlwZWRlZiBzdHJ1 Y3QgU2NhbktleUFycmF5IHsKKwlPaWQJCXR5cGVpZDsKKwlpbnQJCW5lbGVtZW50czsKKwlE YXR1bSAgKmVsZW1lbnRzOworfSBTY2FuS2V5QXJyYXk7CisKK0RhdHVtCiticmluX21pbm1h eF9tdWx0aV9wcmVwcm9jZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJLy8gQnJpbkRlc2Mg ICAqYmRlc2MgPSAoQnJpbkRlc2MgKikgUEdfR0VUQVJHX1BPSU5URVIoMCk7CisJU2Nhbktl eQkJa2V5ID0gKFNjYW5LZXkpIFBHX0dFVEFSR19QT0lOVEVSKDEpOworCVNjYW5LZXkJCW5l d2tleTsKKwlTY2FuS2V5QXJyYXkgKnNjYW5hcnJheTsKKworCUFycmF5VHlwZSAgKmFycmF5 dmFsOworCWludDE2CQllbG1sZW47CisJYm9vbAkJZWxtYnl2YWw7CisJY2hhcgkJZWxtYWxp Z247CisJaW50CQkJbnVtX2VsZW1zOworCURhdHVtCSAgICplbGVtX3ZhbHVlczsKKwlib29s CSAgICplbGVtX251bGxzOworCVR5cGVDYWNoZUVudHJ5ICp0eXBlOworCVNvcnRTdXBwb3J0 RGF0YSBzc3VwOworCisJLyogbnVtYmVyIG9mIG5vbi1udWxsIGVsZW1lbnRzIGluIHRoZSBh cnJheSAqLworCWludAkJCW51bV9ub25udWxsczsKKworCS8qCisJICogaWdub3JlIHNjYWxh ciBrZXlzCisJICoKKwkgKiBYWFggTWF5YmUgd2Ugc2hvdWxkIHByZXByb2Nlc3Mgc2NhbGFy IGtleXMgdG9vLiBJdCdkIG1ha2UgdGhlIGNvbnNpc3RlbnQKKwkgKiBmdW5jdGlvbiBzaW1w bGVyIGJ5IHJlbW92aW5nIHRoZSBicmFuY2hpbmcuCisJICovCisJaWYgKCEoa2V5LT5za19m bGFncyAmIFNLX1NFQVJDSEFSUkFZKSkKKwkJUEdfUkVUVVJOX1BPSU5URVIoa2V5KTsKKwor CWFycmF5dmFsID0gRGF0dW1HZXRBcnJheVR5cGVQKGtleS0+c2tfYXJndW1lbnQpOworCisJ Z2V0X3R5cGxlbmJ5dmFsYWxpZ24oQVJSX0VMRU1UWVBFKGFycmF5dmFsKSwKKwkJCQkJCSAm ZWxtbGVuLCAmZWxtYnl2YWwsICZlbG1hbGlnbik7CisKKwlkZWNvbnN0cnVjdF9hcnJheShh cnJheXZhbCwKKwkJCQkJICBBUlJfRUxFTVRZUEUoYXJyYXl2YWwpLAorCQkJCQkgIGVsbWxl biwgZWxtYnl2YWwsIGVsbWFsaWduLAorCQkJCQkgICZlbGVtX3ZhbHVlcywgJmVsZW1fbnVs bHMsICZudW1fZWxlbXMpOworCisJLyogZWxpbWluYXRlIE5VTEwgZWxlbWVudHMgKi8KKwlu dW1fbm9ubnVsbHMgPSAwOworCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtX2VsZW1zOyBpKysp CisJeworCQkvKiBza2lwIE5VTEwgZWxlbWVudHMgKi8KKwkJaWYgKGVsZW1fbnVsbHNbaV0p CisJCQljb250aW51ZTsKKworCQkvKiBpZiBuZWVkZWQsIG1vdmUgdGhlIG5vbi1OVUxMIG9u ZXMgKi8KKwkJaWYgKG51bV9ub25udWxscyAhPSBpKQorCQkJZWxlbV92YWx1ZXNbbnVtX25v bm51bGxzXSA9IGVsZW1fdmFsdWVzW2ldOworCisJCW51bV9ub25udWxscysrOworCX0KKwor CW51bV9lbGVtcyA9IG51bV9ub25udWxsczsKKworCXR5cGUgPSBsb29rdXBfdHlwZV9jYWNo ZShBUlJfRUxFTVRZUEUoYXJyYXl2YWwpLCBUWVBFQ0FDSEVfTFRfT1BSKTsKKworCW1lbXNl dCgmc3N1cCwgMCwgc2l6ZW9mKFNvcnRTdXBwb3J0RGF0YSkpOworCisJc3N1cC5zc3VwX2Nv bGxhdGlvbiA9IGtleS0+c2tfY29sbGF0aW9uOworCXNzdXAuc3N1cF9jeHQgPSBDdXJyZW50 TWVtb3J5Q29udGV4dDsKKworCVByZXBhcmVTb3J0U3VwcG9ydEZyb21PcmRlcmluZ09wKHR5 cGUtPmx0X29wciwgJnNzdXApOworCisJcXNvcnRfaW50ZXJydXB0aWJsZShlbGVtX3ZhbHVl cywgbnVtX2VsZW1zLCBzaXplb2YoRGF0dW0pLAorCQkJCQkJY29tcGFyZV9hcnJheV92YWx1 ZXMsICZzc3VwKTsKKworCXNjYW5hcnJheSA9IHBhbGxvYzAoc2l6ZW9mKFNjYW5LZXlBcnJh eSkpOworCXNjYW5hcnJheS0+dHlwZWlkID0gQVJSX0VMRU1UWVBFKGFycmF5dmFsKTsKKwlz Y2FuYXJyYXktPm5lbGVtZW50cyA9IG51bV9lbGVtczsKKwlzY2FuYXJyYXktPmVsZW1lbnRz ID0gZWxlbV92YWx1ZXM7CisKKwluZXdrZXkgPSBwYWxsb2MwKHNpemVvZihTY2FuS2V5RGF0 YSkpOworCisJU2NhbktleUVudHJ5SW5pdGlhbGl6ZVdpdGhJbmZvKG5ld2tleSwKKwkJCQkJ CQkJICAgKGtleS0+c2tfZmxhZ3MgfCBTS19CUklOX1NPUlRFRCksCisJCQkJCQkJCSAgIGtl eS0+c2tfYXR0bm8sCisJCQkJCQkJCSAgIGtleS0+c2tfc3RyYXRlZ3ksCisJCQkJCQkJCSAg IGtleS0+c2tfc3VidHlwZSwKKwkJCQkJCQkJICAga2V5LT5za19jb2xsYXRpb24sCisJCQkJ CQkJCSAgICZrZXktPnNrX2Z1bmMsCisJCQkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bShzY2Fu YXJyYXkpKTsKKworCVBHX1JFVFVSTl9QT0lOVEVSKG5ld2tleSk7Cit9CisKIC8qCiAgKiBH aXZlbiBhbiBpbmRleCB0dXBsZSBjb3JyZXNwb25kaW5nIHRvIGEgY2VydGFpbiBwYWdlIHJh bmdlIGFuZCBhIHNjYW4ga2V5LAogICogcmV0dXJuIHdoZXRoZXIgdGhlIHNjYW4ga2V5IGlz IGNvbnNpc3RlbnQgd2l0aCB0aGUgaW5kZXggdHVwbGUncyBtaW4vbWF4CkBAIC0yNTkxLDYg KzI3NTAsMTUgQEAgYnJpbl9taW5tYXhfbXVsdGlfY29uc2lzdGVudChQR19GVU5DVElPTl9B UkdTKQogCXNlcmlhbGl6ZWQgPSAoU2VyaWFsaXplZFJhbmdlcyAqKSBQR19ERVRPQVNUX0RB VFVNKGNvbHVtbi0+YnZfdmFsdWVzWzBdKTsKIAlyYW5nZXMgPSBicmluX3JhbmdlX2Rlc2Vy aWFsaXplKHNlcmlhbGl6ZWQtPm1heHZhbHVlcywgc2VyaWFsaXplZCk7CiAKKwkvKgorCSAq IFhYWCBXb3VsZCBpdCBtYWtlIHNlbnNlIHRvIGhhdmUgYSBxdWljayBpbml0aWFsIGNoZWNr IG9uIHRoZSB3aG9sZQorCSAqIHN1bW1hcnk/IFdlIGtub3cgbW9zdCBwYWdlIHJhbmdlcyBh cmUgbm90IGV4cGVjdGVkIHRvIG1hdGNoLCBhbmQgd2UKKwkgKiBrbm93IHRoZSByYW5nZXMv dmFsdWVzIGFyZSBzb3J0ZWQgc28gd2UgY291bGQgY2hlY2sgZ2xvYmFsIG1pbi9tYXgKKwkg KiAoZXNzZW50aWFsbHkgd2hhdCByZWd1bGFyIG1pbm1heCBpcyBkb2luZykgYW5kIGJhaWwg aWYgbm8gbWF0Y2ggaXMKKwkgKiBwb3NzaWJsZS4gVGhhdCBzaG91bGQgYmUgY2hlYXAgYW5k IG1pZ2h0IHNhdmUgYSBsb3Qgb24gaW5zcGVjdGluZworCSAqIHRoZSBpbmRpdmlkdWFsIHJh bmdlcy92YWx1ZXMuCisJICovCisKIAkvKiBpbnNwZWN0IHRoZSByYW5nZXMsIGFuZCBmb3Ig ZWFjaCBvbmUgZXZhbHVhdGUgdGhlIHNjYW4ga2V5cyAqLwogCWZvciAocmFuZ2VubyA9IDA7 IHJhbmdlbm8gPCByYW5nZXMtPm5yYW5nZXM7IHJhbmdlbm8rKykKIAl7CkBAIC0yNjExLDY3 ICsyNzc5LDE4MyBAQCBicmluX21pbm1heF9tdWx0aV9jb25zaXN0ZW50KFBHX0ZVTkNUSU9O X0FSR1MpCiAJCQlhdHRubyA9IGtleS0+c2tfYXR0bm87CiAJCQlzdWJ0eXBlID0ga2V5LT5z a19zdWJ0eXBlOwogCQkJdmFsdWUgPSBrZXktPnNrX2FyZ3VtZW50OwotCQkJc3dpdGNoIChr ZXktPnNrX3N0cmF0ZWd5KQorCisJCQlpZiAobGlrZWx5KCEoa2V5LT5za19mbGFncyAmIFNL X0JSSU5fU09SVEVEKSkpCiAJCQl7Ci0JCQkJY2FzZSBCVExlc3NTdHJhdGVneU51bWJlcjoK LQkJCQljYXNlIEJUTGVzc0VxdWFsU3RyYXRlZ3lOdW1iZXI6Ci0JCQkJCWZpbmZvID0gbWlu bWF4X211bHRpX2dldF9zdHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUs Ci0JCQkJCQkJCQkJCQkJCQkgICBrZXktPnNrX3N0cmF0ZWd5KTsKLQkJCQkJLyogZmlyc3Qg dmFsdWUgZnJvbSB0aGUgYXJyYXkgKi8KLQkJCQkJbWF0Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJD b2xsKGZpbmZvLCBjb2xsb2lkLCBtaW52YWwsIHZhbHVlKTsKLQkJCQkJYnJlYWs7CisJCQkJ c3dpdGNoIChrZXktPnNrX3N0cmF0ZWd5KQorCQkJCXsKKwkJCQkJY2FzZSBCVExlc3NTdHJh dGVneU51bWJlcjoKKwkJCQkJY2FzZSBCVExlc3NFcXVhbFN0cmF0ZWd5TnVtYmVyOgorCQkJ CQkJZmluZm8gPSBtaW5tYXhfbXVsdGlfZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBh dHRubywgc3VidHlwZSwKKwkJCQkJCQkJCQkJCQkJCQkgICBrZXktPnNrX3N0cmF0ZWd5KTsK KwkJCQkJCS8qIGZpcnN0IHZhbHVlIGZyb20gdGhlIGFycmF5ICovCisJCQkJCQltYXRjaGVz ID0gRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIG1pbnZhbCwgdmFsdWUpOwor CQkJCQkJYnJlYWs7CiAKLQkJCQljYXNlIEJURXF1YWxTdHJhdGVneU51bWJlcjoKLQkJCQkJ ewotCQkJCQkJRGF0dW0JCWNvbXBhcjsKLQkJCQkJCUZtZ3JJbmZvICAgKmNtcEZuOworCQkJ CQljYXNlIEJURXF1YWxTdHJhdGVneU51bWJlcjoKKwkJCQkJCXsKKwkJCQkJCQlEYXR1bQkJ Y29tcGFyOworCQkJCQkJCUZtZ3JJbmZvICAgKmNtcEZuOworCisJCQkJCQkJLyogYnkgZGVm YXVsdCB0aGlzIHJhbmdlIGRvZXMgbm90IG1hdGNoICovCisJCQkJCQkJbWF0Y2hlcyA9IEJv b2xHZXREYXR1bShmYWxzZSk7CisKKwkJCQkJCQkvKgorCQkJCQkJCSAqIE90aGVyd2lzZSwg bmVlZCB0byBjb21wYXJlIHRoZSBuZXcgdmFsdWUgd2l0aAorCQkJCQkJCSAqIGJvdW5kYXJp ZXMgb2YgYWxsIHRoZSByYW5nZXMuIEZpcnN0IGNoZWNrIGlmIGl0J3MKKwkJCQkJCQkgKiBs ZXNzIHRoYW4gdGhlIGFic29sdXRlIG1pbmltdW0sIHdoaWNoIGlzIHRoZSBmaXJzdAorCQkJ CQkJCSAqIHZhbHVlIGluIHRoZSBhcnJheS4KKwkJCQkJCQkgKi8KKwkJCQkJCQljbXBGbiA9 IG1pbm1heF9tdWx0aV9nZXRfc3RyYXRlZ3lfcHJvY2luZm8oYmRlc2MsIGF0dG5vLCBzdWJ0 eXBlLAorCQkJCQkJCQkJCQkJCQkJCQkgICBCVEdyZWF0ZXJTdHJhdGVneU51bWJlcik7CisJ CQkJCQkJY29tcGFyID0gRnVuY3Rpb25DYWxsMkNvbGwoY21wRm4sIGNvbGxvaWQsIG1pbnZh bCwgdmFsdWUpOworCisJCQkJCQkJLyogc21hbGxlciB0aGFuIHRoZSBzbWFsbGVzdCB2YWx1 ZSBpbiB0aGlzIHJhbmdlICovCisJCQkJCQkJaWYgKERhdHVtR2V0Qm9vbChjb21wYXIpKQor CQkJCQkJCQlicmVhazsKKworCQkJCQkJCWNtcEZuID0gbWlubWF4X211bHRpX2dldF9zdHJh dGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUsCisJCQkJCQkJCQkJCQkJCQkJ CSAgIEJUTGVzc1N0cmF0ZWd5TnVtYmVyKTsKKwkJCQkJCQljb21wYXIgPSBGdW5jdGlvbkNh bGwyQ29sbChjbXBGbiwgY29sbG9pZCwgbWF4dmFsLCB2YWx1ZSk7CisKKwkJCQkJCQkvKiBs YXJnZXIgdGhhbiB0aGUgbGFyZ2VzdCB2YWx1ZSBpbiB0aGlzIHJhbmdlICovCisJCQkJCQkJ aWYgKERhdHVtR2V0Qm9vbChjb21wYXIpKQorCQkJCQkJCQlicmVhazsKKworCQkJCQkJCS8q CisJCQkJCQkJICogV2UgaGF2ZW4ndCBtYW5hZ2VkIHRvIGVsaW1pbmF0ZSB0aGlzIHJhbmdl LCBzbworCQkJCQkJCSAqIGNvbnNpZGVyIGl0IG1hdGNoaW5nLgorCQkJCQkJCSAqLworCQkJ CQkJCW1hdGNoZXMgPSBCb29sR2V0RGF0dW0odHJ1ZSk7CiAKLQkJCQkJCS8qIGJ5IGRlZmF1 bHQgdGhpcyByYW5nZSBkb2VzIG5vdCBtYXRjaCAqLwotCQkJCQkJbWF0Y2hlcyA9IEJvb2xH ZXREYXR1bShmYWxzZSk7CisJCQkJCQkJYnJlYWs7CisJCQkJCQl9CisJCQkJCWNhc2UgQlRH cmVhdGVyRXF1YWxTdHJhdGVneU51bWJlcjoKKwkJCQkJY2FzZSBCVEdyZWF0ZXJTdHJhdGVn eU51bWJlcjoKKwkJCQkJCWZpbmZvID0gbWlubWF4X211bHRpX2dldF9zdHJhdGVneV9wcm9j aW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUsCisJCQkJCQkJCQkJCQkJCQkJICAga2V5LT5z a19zdHJhdGVneSk7CisJCQkJCQkvKiBsYXN0IHZhbHVlIGZyb20gdGhlIGFycmF5ICovCisJ CQkJCQltYXRjaGVzID0gRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIG1heHZh bCwgdmFsdWUpOworCQkJCQkJYnJlYWs7CiAKLQkJCQkJCS8qCi0JCQkJCQkgKiBPdGhlcndp c2UsIG5lZWQgdG8gY29tcGFyZSB0aGUgbmV3IHZhbHVlIHdpdGgKLQkJCQkJCSAqIGJvdW5k YXJpZXMgb2YgYWxsIHRoZSByYW5nZXMuIEZpcnN0IGNoZWNrIGlmIGl0J3MKLQkJCQkJCSAq IGxlc3MgdGhhbiB0aGUgYWJzb2x1dGUgbWluaW11bSwgd2hpY2ggaXMgdGhlIGZpcnN0Ci0J CQkJCQkgKiB2YWx1ZSBpbiB0aGUgYXJyYXkuCi0JCQkJCQkgKi8KLQkJCQkJCWNtcEZuID0g bWlubWF4X211bHRpX2dldF9zdHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5 cGUsCi0JCQkJCQkJCQkJCQkJCQkJICAgQlRHcmVhdGVyU3RyYXRlZ3lOdW1iZXIpOwotCQkJ CQkJY29tcGFyID0gRnVuY3Rpb25DYWxsMkNvbGwoY21wRm4sIGNvbGxvaWQsIG1pbnZhbCwg dmFsdWUpOworCQkJCQlkZWZhdWx0OgorCQkJCQkJLyogc2hvdWxkbid0IGhhcHBlbiAqLwor CQkJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgc3RyYXRlZ3kgbnVtYmVyICVkIiwga2V5LT5z a19zdHJhdGVneSk7CisJCQkJCQltYXRjaGVzID0gQm9vbEdldERhdHVtKGZhbHNlKTsKKwkJ CQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlTY2FuS2V5QXJy YXkgKmFycmF5ID0gKFNjYW5LZXlBcnJheSAqKSB2YWx1ZTsKIAotCQkJCQkJLyogc21hbGxl ciB0aGFuIHRoZSBzbWFsbGVzdCB2YWx1ZSBpbiB0aGlzIHJhbmdlICovCi0JCQkJCQlpZiAo RGF0dW1HZXRCb29sKGNvbXBhcikpCi0JCQkJCQkJYnJlYWs7CisJCQkJLyogY2FuIGhhcHBl biBpZiB0aGUgSU4gbGlzdCBjb250YWluZWQganVzdCBOVUxMcyAqLworCQkJCWlmIChhcnJh eS0+bmVsZW1lbnRzID09IDApCisJCQkJCVBHX1JFVFVSTl9CT09MKGZhbHNlKTsKIAotCQkJ CQkJY21wRm4gPSBtaW5tYXhfbXVsdGlfZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBh dHRubywgc3VidHlwZSwKLQkJCQkJCQkJCQkJCQkJCQkgICBCVExlc3NTdHJhdGVneU51bWJl cik7Ci0JCQkJCQljb21wYXIgPSBGdW5jdGlvbkNhbGwyQ29sbChjbXBGbiwgY29sbG9pZCwg bWF4dmFsLCB2YWx1ZSk7CisJCQkJc3dpdGNoIChrZXktPnNrX3N0cmF0ZWd5KQorCQkJCXsK KwkJCQkJY2FzZSBCVExlc3NTdHJhdGVneU51bWJlcjoKKwkJCQkJY2FzZSBCVExlc3NFcXVh bFN0cmF0ZWd5TnVtYmVyOgorCQkJCQkJZmluZm8gPSBtaW5tYXhfbXVsdGlfZ2V0X3N0cmF0 ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKKwkJCQkJCQkJCQkJCQkJCQkg ICBrZXktPnNrX3N0cmF0ZWd5KTsKKwkJCQkJCS8qIGZpcnN0IHZhbHVlIGZyb20gdGhlIGFy cmF5ICovCisJCQkJCQltYXRjaGVzID0gRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxv aWQsIG1pbnZhbCwKKwkJCQkJCQkJCQkJCQlhcnJheS0+ZWxlbWVudHNbYXJyYXktPm5lbGVt ZW50cy0xXSk7CisJCQkJCQlicmVhazsKIAotCQkJCQkJLyogbGFyZ2VyIHRoYW4gdGhlIGxh cmdlc3QgdmFsdWUgaW4gdGhpcyByYW5nZSAqLwotCQkJCQkJaWYgKERhdHVtR2V0Qm9vbChj b21wYXIpKQotCQkJCQkJCWJyZWFrOworCQkJCQljYXNlIEJURXF1YWxTdHJhdGVneU51bWJl cjoKIAogCQkJCQkJLyoKLQkJCQkJCSAqIFdlIGhhdmVuJ3QgbWFuYWdlZCB0byBlbGltaW5h dGUgdGhpcyByYW5nZSwgc28KLQkJCQkJCSAqIGNvbnNpZGVyIGl0IG1hdGNoaW5nLgorCQkJ CQkJICogU2VlIGJyaW5fbWlubWF4LmMgZm9yIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhpcyBp cyBkb2luZy4KIAkJCQkJCSAqLwotCQkJCQkJbWF0Y2hlcyA9IEJvb2xHZXREYXR1bSh0cnVl KTsKLQorCQkJCQkJeworCQkJCQkJCURhdHVtIHZhbDsKKwkJCQkJCQlTb3J0U3VwcG9ydERh dGEgc3N1cDsKKwkJCQkJCQlpbnQJCQlsb3dlcjsKKwkJCQkJCQlUeXBlQ2FjaGVFbnRyeSAq dHlwZTsKKworCQkJCQkJCS8qIElzIHRoZSBmaXJzdCAoc21hbGxlc3QpIHZhbHVlIGFmdGVy IHRoZSBCUklOIHJhbmdlPyAqLworCQkJCQkJCXZhbCA9IGFycmF5LT5lbGVtZW50c1swXTsK KworCQkJCQkJCWZpbmZvID0gbWlubWF4X211bHRpX2dldF9zdHJhdGVneV9wcm9jaW5mbyhi ZGVzYywgYXR0bm8sIHN1YnR5cGUsCisJCQkJCQkJCQkJCQkJCQkJCSAgIEJUTGVzc0VxdWFs U3RyYXRlZ3lOdW1iZXIpOworCQkJCQkJCW1hdGNoZXMgPSBGdW5jdGlvbkNhbGwyQ29sbChm aW5mbywgY29sbG9pZCwgdmFsLCBtYXh2YWwpOworCisJCQkJCQkJLyogbWludmFsID4gbWF4 KHJhbmdlIHZhbHVlcykgKi8KKwkJCQkJCQlpZiAoIURhdHVtR2V0Qm9vbChtYXRjaGVzKSkK KwkJCQkJCQkJYnJlYWs7CisKKwkJCQkJCQkvKiBJcyB0aGUgbGFzdCAobGFyZ2VzdCkgdmFs dWUgYmVmb3JlIHRoZSBCUklOIHJhbmdlPyAqLworCQkJCQkJCXZhbCA9IGFycmF5LT5lbGVt ZW50c1thcnJheS0+bmVsZW1lbnRzLTFdOworCisJCQkJCQkJZmluZm8gPSBtaW5tYXhfbXVs dGlfZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKKwkJCQkJ CQkJCQkJCQkJCQkJICAgQlRHcmVhdGVyRXF1YWxTdHJhdGVneU51bWJlcik7CisJCQkJCQkJ bWF0Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lkLCB2YWwsIG1pbnZh bCk7CisKKwkJCQkJCQkvKiBtYXh2YWwgPCBtaW4ocmFuZ2UgdmFsdWVzKSAqLworCQkJCQkJ CWlmICghRGF0dW1HZXRCb29sKG1hdGNoZXMpKQorCQkJCQkJCQlicmVhazsKKworCQkJCQkJ CS8qCisJCQkJCQkJICogT0ssIHRoZXJlIG1pZ2h0IGJlIHNvbWUgdmFsdWVzIG1hdGNoaW5n IHRoZSByYW5nZS4gV2UgaGF2ZQorCQkJCQkJCSAqIHRvIHNlYXJjaCB0aGVtIG9uZSBieSBv bmUsIG9yIHBlcmhhcHMgdHJ5IGJpbnNlYXJjaC4KKwkJCQkJCQkgKi8KKwkJCQkJCQl0eXBl ID0gbG9va3VwX3R5cGVfY2FjaGUoYXJyYXktPnR5cGVpZCwgVFlQRUNBQ0hFX0xUX09QUik7 CisKKwkJCQkJCQltZW1zZXQoJnNzdXAsIDAsIHNpemVvZihTb3J0U3VwcG9ydERhdGEpKTsK KworCQkJCQkJCXNzdXAuc3N1cF9jb2xsYXRpb24gPSBrZXktPnNrX2NvbGxhdGlvbjsKKwkJ CQkJCQlzc3VwLnNzdXBfY3h0ID0gQ3VycmVudE1lbW9yeUNvbnRleHQ7CisKKwkJCQkJCQlQ cmVwYXJlU29ydFN1cHBvcnRGcm9tT3JkZXJpbmdPcCh0eXBlLT5sdF9vcHIsICZzc3VwKTsK KworCQkJCQkJCWxvd2VyID0gbG93ZXJfYm91bmRhcnkoYXJyYXktPmVsZW1lbnRzLCBhcnJh eS0+bmVsZW1lbnRzLCBtaW52YWwsICZzc3VwKTsKKworCQkJCQkJCS8qIG5vIGVsZW1lbnRz IGNhbiBwb3NzaWJseSBtYXRjaCAqLworCQkJCQkJCWlmIChsb3dlciA9PSBhcnJheS0+bmVs ZW1lbnRzKQorCQkJCQkJCXsKKwkJCQkJCQkJbWF0Y2hlcyA9IEJvb2xHZXREYXR1bShmYWxz ZSk7CisJCQkJCQkJCWJyZWFrOworCQkJCQkJCX0KKworCQkJCQkJCS8qCisJCQkJCQkJICog T0ssIHRoZSBmaXJzdCBlbGVtZW50IG11c3QgbWF0Y2ggdGhlIHVwcGVyIGJvdW5kYXJ5IHRv bworCQkJCQkJCSAqIChpZiBpdCBkb2VzIG5vdCwgbm8gZm9sbG93aW5nIGVsZW1lbnRzIGNh bikuCisJCQkJCQkJICovCisJCQkJCQkJdmFsID0gYXJyYXktPmVsZW1lbnRzW2xvd2VyXTsK KworCQkJCQkJCS8qCisJCQkJCQkJICogSW4gdGhlIGVxdWFsaXR5IGNhc2UgKFdIRVJFIGNv bCA9IHNvbWV2YWwpLCB3ZSB3YW50IHRvIHJldHVybgorCQkJCQkJCSAqIHRoZSBjdXJyZW50 IHBhZ2UgcmFuZ2UgaWYgdGhlIG1pbmltdW0gdmFsdWUgaW4gdGhlIHJhbmdlIDw9CisJCQkJ CQkJICogc2NhbiBrZXksIGFuZCB0aGUgbWF4aW11bSB2YWx1ZSA+PSBzY2FuIGtleS4KKwkJ CQkJCQkgKi8KKwkJCQkJCQlmaW5mbyA9IG1pbm1heF9tdWx0aV9nZXRfc3RyYXRlZ3lfcHJv Y2luZm8oYmRlc2MsIGF0dG5vLCBzdWJ0eXBlLAorCQkJCQkJCQkJCQkJCQkJCQkgICBCVExl c3NFcXVhbFN0cmF0ZWd5TnVtYmVyKTsKKwkJCQkJCQltYXRjaGVzID0gRnVuY3Rpb25DYWxs MkNvbGwoZmluZm8sIGNvbGxvaWQsIG1pbnZhbCwgdmFsKTsKKwkJCQkJCQlpZiAoIURhdHVt R2V0Qm9vbChtYXRjaGVzKSkKKwkJCQkJCQkJYnJlYWs7CisJCQkJCQkJLyogbWF4KCkgPj0g c2NhbmtleSAqLworCQkJCQkJCWZpbmZvID0gbWlubWF4X211bHRpX2dldF9zdHJhdGVneV9w cm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUsCisJCQkJCQkJCQkJCQkJCQkJCSAgIEJU R3JlYXRlckVxdWFsU3RyYXRlZ3lOdW1iZXIpOworCQkJCQkJCW1hdGNoZXMgPSBGdW5jdGlv bkNhbGwyQ29sbChmaW5mbywgY29sbG9pZCwgbWF4dmFsLCB2YWwpOworCQkJCQkJCWJyZWFr OworCQkJCQkJfQorCQkJCQljYXNlIEJUR3JlYXRlckVxdWFsU3RyYXRlZ3lOdW1iZXI6CisJ CQkJCWNhc2UgQlRHcmVhdGVyU3RyYXRlZ3lOdW1iZXI6CisJCQkJCQlmaW5mbyA9IG1pbm1h eF9tdWx0aV9nZXRfc3RyYXRlZ3lfcHJvY2luZm8oYmRlc2MsIGF0dG5vLCBzdWJ0eXBlLAor CQkJCQkJCQkJCQkJCQkJCSAgIGtleS0+c2tfc3RyYXRlZ3kpOworCQkJCQkJLyogbGFzdCB2 YWx1ZSBmcm9tIHRoZSBhcnJheSAqLworCQkJCQkJbWF0Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJD b2xsKGZpbmZvLCBjb2xsb2lkLCBtYXh2YWwsCisJCQkJCQkJCQkJCQkJYXJyYXktPmVsZW1l bnRzWzBdKTsKIAkJCQkJCWJyZWFrOwotCQkJCQl9Ci0JCQkJY2FzZSBCVEdyZWF0ZXJFcXVh bFN0cmF0ZWd5TnVtYmVyOgotCQkJCWNhc2UgQlRHcmVhdGVyU3RyYXRlZ3lOdW1iZXI6Ci0J CQkJCWZpbmZvID0gbWlubWF4X211bHRpX2dldF9zdHJhdGVneV9wcm9jaW5mbyhiZGVzYywg YXR0bm8sIHN1YnR5cGUsCi0JCQkJCQkJCQkJCQkJCQkgICBrZXktPnNrX3N0cmF0ZWd5KTsK LQkJCQkJLyogbGFzdCB2YWx1ZSBmcm9tIHRoZSBhcnJheSAqLwotCQkJCQltYXRjaGVzID0g RnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIG1heHZhbCwgdmFsdWUpOwotCQkJ CQlicmVhazsKIAotCQkJCWRlZmF1bHQ6Ci0JCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8K LQkJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgc3RyYXRlZ3kgbnVtYmVyICVkIiwga2V5LT5z a19zdHJhdGVneSk7Ci0JCQkJCW1hdGNoZXMgPSBCb29sR2V0RGF0dW0oZmFsc2UpOwotCQkJ CQlicmVhazsKKwkJCQkJZGVmYXVsdDoKKwkJCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8K KwkJCQkJCWVsb2coRVJST1IsICJpbnZhbGlkIHN0cmF0ZWd5IG51bWJlciAlZCIsIGtleS0+ c2tfc3RyYXRlZ3kpOworCQkJCQkJbWF0Y2hlcyA9IEJvb2xHZXREYXR1bShmYWxzZSk7CisJ CQkJCQlicmVhazsKKwkJCQl9CiAJCQl9CiAKIAkJCS8qIHRoZSByYW5nZSBoYXMgdG8gbWF0 Y2ggYWxsIHRoZSBzY2FuIGtleXMgKi8KQEAgLTI3MTMsMjQgKzI5OTcsMTEyIEBAIGJyaW5f bWlubWF4X211bHRpX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCWF0dG5vID0g a2V5LT5za19hdHRubzsKIAkJCXN1YnR5cGUgPSBrZXktPnNrX3N1YnR5cGU7CiAJCQl2YWx1 ZSA9IGtleS0+c2tfYXJndW1lbnQ7Ci0JCQlzd2l0Y2ggKGtleS0+c2tfc3RyYXRlZ3kpCisJ CQlpZiAobGlrZWx5KCEoa2V5LT5za19mbGFncyAmIFNLX1NFQVJDSEFSUkFZKSkpCiAJCQl7 Ci0JCQkJY2FzZSBCVExlc3NTdHJhdGVneU51bWJlcjoKLQkJCQljYXNlIEJUTGVzc0VxdWFs U3RyYXRlZ3lOdW1iZXI6Ci0JCQkJY2FzZSBCVEVxdWFsU3RyYXRlZ3lOdW1iZXI6Ci0JCQkJ Y2FzZSBCVEdyZWF0ZXJFcXVhbFN0cmF0ZWd5TnVtYmVyOgotCQkJCWNhc2UgQlRHcmVhdGVy U3RyYXRlZ3lOdW1iZXI6Ci0KLQkJCQkJZmluZm8gPSBtaW5tYXhfbXVsdGlfZ2V0X3N0cmF0 ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKLQkJCQkJCQkJCQkJCQkJCSAg IGtleS0+c2tfc3RyYXRlZ3kpOwotCQkJCQltYXRjaGVzID0gRnVuY3Rpb25DYWxsMkNvbGwo ZmluZm8sIGNvbGxvaWQsIHZhbCwgdmFsdWUpOwotCQkJCQlicmVhazsKKwkJCQlzd2l0Y2gg KGtleS0+c2tfc3RyYXRlZ3kpCisJCQkJeworCQkJCQljYXNlIEJUTGVzc1N0cmF0ZWd5TnVt YmVyOgorCQkJCQljYXNlIEJUTGVzc0VxdWFsU3RyYXRlZ3lOdW1iZXI6CisJCQkJCWNhc2Ug QlRFcXVhbFN0cmF0ZWd5TnVtYmVyOgorCQkJCQljYXNlIEJUR3JlYXRlckVxdWFsU3RyYXRl Z3lOdW1iZXI6CisJCQkJCWNhc2UgQlRHcmVhdGVyU3RyYXRlZ3lOdW1iZXI6CisKKwkJCQkJ CWZpbmZvID0gbWlubWF4X211bHRpX2dldF9zdHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0 bm8sIHN1YnR5cGUsCisJCQkJCQkJCQkJCQkJCQkJICAga2V5LT5za19zdHJhdGVneSk7CisJ CQkJCQltYXRjaGVzID0gRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIHZhbCwg dmFsdWUpOworCQkJCQkJYnJlYWs7CiAKLQkJCQlkZWZhdWx0OgotCQkJCQkvKiBzaG91bGRu J3QgaGFwcGVuICovCi0JCQkJCWVsb2coRVJST1IsICJpbnZhbGlkIHN0cmF0ZWd5IG51bWJl ciAlZCIsIGtleS0+c2tfc3RyYXRlZ3kpOwotCQkJCQltYXRjaGVzID0gQm9vbEdldERhdHVt KGZhbHNlKTsKLQkJCQkJYnJlYWs7CisJCQkJCWRlZmF1bHQ6CisJCQkJCQkvKiBzaG91bGRu J3QgaGFwcGVuICovCisJCQkJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBzdHJhdGVneSBudW1i ZXIgJWQiLCBrZXktPnNrX3N0cmF0ZWd5KTsKKwkJCQkJCW1hdGNoZXMgPSBCb29sR2V0RGF0 dW0oZmFsc2UpOworCQkJCQkJYnJlYWs7CisJCQkJfQorCQkJfQorCQkJZWxzZQorCQkJewor CQkJCVNjYW5LZXlBcnJheSAqYXJyYXkgPSAoU2NhbktleUFycmF5ICopIHZhbHVlOworCisJ CQkJLyogY2FuIGhhcHBlbiBpZiB0aGUgSU4gbGlzdCBjb250YWluZWQganVzdCBOVUxMcyAq LworCQkJCWlmIChhcnJheS0+bmVsZW1lbnRzID09IDApCisJCQkJCVBHX1JFVFVSTl9CT09M KGZhbHNlKTsKKworCQkJCS8qCisJCQkJICogWFhYIFdlIHNob3VsZCBiZSBhYmxlIHRvIGJl IHNtYXJ0ZXIgZm9yIHRoZSBzY2FsYXIgdmFsdWVzLCBhcworCQkJCSAqIHdlIGtlZXAgdGhl bSBzb3J0ZWQgdG9vLiBTbyB3ZSBzaG91bGQgYmUgYWJsZSB0byBxdWlja2x5IGNoZWNrCisJ CQkJICogaWYgYW55IG9mIHRoZSB2YWx1ZXMgY2FuIG1hdGNoIHRoZSBzb3J0ZWQga2V5IHZh bHVlcy4KKwkJCQkgKi8KKwkJCQlzd2l0Y2ggKGtleS0+c2tfc3RyYXRlZ3kpCisJCQkJewor CQkJCQljYXNlIEJUTGVzc1N0cmF0ZWd5TnVtYmVyOgorCQkJCQljYXNlIEJUTGVzc0VxdWFs U3RyYXRlZ3lOdW1iZXI6CisJCQkJCQlmaW5mbyA9IG1pbm1heF9tdWx0aV9nZXRfc3RyYXRl Z3lfcHJvY2luZm8oYmRlc2MsIGF0dG5vLCBzdWJ0eXBlLAorCQkJCQkJCQkJCQkJCQkJCSAg IGtleS0+c2tfc3RyYXRlZ3kpOworCQkJCQkJLyogZmlyc3QgdmFsdWUgZnJvbSB0aGUgYXJy YXkgKi8KKwkJCQkJCW1hdGNoZXMgPSBGdW5jdGlvbkNhbGwyQ29sbChmaW5mbywgY29sbG9p ZCwgdmFsLAorCQkJCQkJCQkJCQkJCWFycmF5LT5lbGVtZW50c1thcnJheS0+bmVsZW1lbnRz LTFdKTsKKwkJCQkJCWJyZWFrOworCisJCQkJCWNhc2UgQlRFcXVhbFN0cmF0ZWd5TnVtYmVy OgorCisJCQkJCQkvKgorCQkJCQkJICogU2VlIGJyaW5fbWlubWF4LmMgZm9yIGRlc2NyaXB0 aW9uIG9mIHdoYXQgdGhpcyBpcyBkb2luZy4KKwkJCQkJCSAqLworCQkJCQkJeworCQkJCQkJ CVNvcnRTdXBwb3J0RGF0YSBzc3VwOworCQkJCQkJCWludAkJCWxvd2VyOworCQkJCQkJCVR5 cGVDYWNoZUVudHJ5ICp0eXBlOworCisJCQkJCQkJLyoKKwkJCQkJCQkgKiBPSywgdGhlcmUg bWlnaHQgYmUgc29tZSB2YWx1ZXMgbWF0Y2hpbmcgdGhlIHJhbmdlLiBXZSBoYXZlCisJCQkJ CQkJICogdG8gc2VhcmNoIHRoZW0gb25lIGJ5IG9uZSwgb3IgcGVyaGFwcyB0cnkgYmluc2Vh cmNoLgorCQkJCQkJCSAqLworCQkJCQkJCXR5cGUgPSBsb29rdXBfdHlwZV9jYWNoZShhcnJh eS0+dHlwZWlkLCBUWVBFQ0FDSEVfTFRfT1BSKTsKKworCQkJCQkJCW1lbXNldCgmc3N1cCwg MCwgc2l6ZW9mKFNvcnRTdXBwb3J0RGF0YSkpOworCisJCQkJCQkJc3N1cC5zc3VwX2NvbGxh dGlvbiA9IGtleS0+c2tfY29sbGF0aW9uOworCQkJCQkJCXNzdXAuc3N1cF9jeHQgPSBDdXJy ZW50TWVtb3J5Q29udGV4dDsKKworCQkJCQkJCVByZXBhcmVTb3J0U3VwcG9ydEZyb21PcmRl cmluZ09wKHR5cGUtPmx0X29wciwgJnNzdXApOworCisJCQkJCQkJbG93ZXIgPSBsb3dlcl9i b3VuZGFyeShhcnJheS0+ZWxlbWVudHMsIGFycmF5LT5uZWxlbWVudHMsIHZhbCwgJnNzdXAp OworCisJCQkJCQkJLyogbm8gZWxlbWVudHMgY2FuIHBvc3NpYmx5IG1hdGNoICovCisJCQkJ CQkJaWYgKGxvd2VyID09IGFycmF5LT5uZWxlbWVudHMpCisJCQkJCQkJeworCQkJCQkJCQlt YXRjaGVzID0gQm9vbEdldERhdHVtKGZhbHNlKTsKKwkJCQkJCQkJYnJlYWs7CisJCQkJCQkJ fQorCisJCQkJCQkJLyoKKwkJCQkJCQkgKiBPSywgY2hlY2sgdGhlIGZpcnN0IGVsZW1lbnQg bXVzdCBtYXRjaCB0aGUgdXBwZXIgYm91bmRhcnkgdG9vCisJCQkJCQkJICogKGlmIGl0IGRv ZXMgbm90LCBubyBmb2xsb3dpbmcgZWxlbWVudHMgY2FuKS4KKwkJCQkJCQkgKgorCQkJCQkJ CSAqIEluIHRoZSBlcXVhbGl0eSBjYXNlIChXSEVSRSBjb2wgPSBzb21ldmFsKSwgd2Ugd2Fu dCB0byByZXR1cm4KKwkJCQkJCQkgKiB0aGUgY3VycmVudCBwYWdlIHJhbmdlIGlmIHRoZSBt aW5pbXVtIHZhbHVlIGluIHRoZSByYW5nZSA8PQorCQkJCQkJCSAqIHNjYW4ga2V5LCBhbmQg dGhlIG1heGltdW0gdmFsdWUgPj0gc2NhbiBrZXkuCisJCQkJCQkJICovCisJCQkJCQkJZmlu Zm8gPSBtaW5tYXhfbXVsdGlfZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywg c3VidHlwZSwKKwkJCQkJCQkJCQkJCQkJCQkJICAgQlRFcXVhbFN0cmF0ZWd5TnVtYmVyKTsK KwkJCQkJCQltYXRjaGVzID0gRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIHZh bCwgYXJyYXktPmVsZW1lbnRzW2xvd2VyXSk7CisJCQkJCQkJYnJlYWs7CisJCQkJCQl9CisJ CQkJCWNhc2UgQlRHcmVhdGVyRXF1YWxTdHJhdGVneU51bWJlcjoKKwkJCQkJY2FzZSBCVEdy ZWF0ZXJTdHJhdGVneU51bWJlcjoKKwkJCQkJCWZpbmZvID0gbWlubWF4X211bHRpX2dldF9z dHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUsCisJCQkJCQkJCQkJCQkJ CQkJICAga2V5LT5za19zdHJhdGVneSk7CisJCQkJCQkvKiBsYXN0IHZhbHVlIGZyb20gdGhl IGFycmF5ICovCisJCQkJCQltYXRjaGVzID0gRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNv bGxvaWQsIHZhbCwKKwkJCQkJCQkJCQkJCQlhcnJheS0+ZWxlbWVudHNbMF0pOworCQkJCQkJ YnJlYWs7CisKKwkJCQkJZGVmYXVsdDoKKwkJCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8K KwkJCQkJCWVsb2coRVJST1IsICJpbnZhbGlkIHN0cmF0ZWd5IG51bWJlciAlZCIsIGtleS0+ c2tfc3RyYXRlZ3kpOworCQkJCQkJbWF0Y2hlcyA9IEJvb2xHZXREYXR1bShmYWxzZSk7CisJ CQkJCQlicmVhazsKKwkJCQl9CiAJCQl9CiAKIAkJCS8qIHRoZSByYW5nZSBoYXMgdG8gbWF0 Y2ggYWxsIHRoZSBzY2FuIGtleXMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfYW1wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdApp bmRleCAxNjY2ODFjMzFlZi4uNGYxN2YwZDU4YzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfYW1wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Ft cHJvYy5kYXQKQEAgLTk0Niw2ICs5NDYsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4v aW50ZWdlcl9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDInLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ2ludDInLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXBy b2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9 PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAn aW50MicsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50MicsIGFtcHJvY251bSA9PiAnNics CisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfcHJlcHJvY2VzcycgfSwKIHsgYW1w cm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdpbnQyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQyJywgYW1wcm9j bnVtID0+ICcxMScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2Vf aW50MicgfSwKQEAgLTk2NSw2ICs5NjgsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4v aW50ZWdlcl9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDQnLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ2ludDQnLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXBy b2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9 PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAn aW50NCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50NCcsIGFtcHJvY251bSA9PiAnNics CisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfcHJlcHJvY2VzcycgfSwKIHsgYW1w cm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdpbnQ0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQ0JywgYW1wcm9j bnVtID0+ICcxMScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2Vf aW50NCcgfSwKQEAgLTk4NCw2ICs5OTAsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4v aW50ZWdlcl9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDgnLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ2ludDgnLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXBy b2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9 PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAn aW50OCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50OCcsIGFtcHJvY251bSA9PiAnNics CisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfcHJlcHJvY2VzcycgfSwKIHsgYW1w cm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdpbnQ4JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQ4JywgYW1wcm9j bnVtID0+ICcxMScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2Vf aW50OCcgfSwKQEAgLTEwOTUsNiArMTEwNCw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJp bi9vaWRfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdvaWQnLAogICBh bXByb2NyaWdodHR5cGUgPT4gJ29pZCcsIGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9 PiAnYnJpbl9taW5tYXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdi cmluL29pZF9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ29pZCcsCisg IGFtcHJvY3JpZ2h0dHlwZSA9PiAnb2lkJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9j ID0+ICdicmluX21pbm1heF9tdWx0aV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkg PT4gJ2JyaW4vb2lkX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnb2lk JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdvaWQnLCBhbXByb2NudW0gPT4gJzExJywKICAg YW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5jZV9pbnQ0JyB9LApAQCAtMTE2 MSw2ICsxMTczLDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3RpZF9taW5tYXhfbXVs dGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpZCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9 PiAndGlkJywgYW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9t dWx0aV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGlkX21pbm1heF9t dWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGlkJywKKyAgYW1wcm9jcmlnaHR0eXBl ID0+ICd0aWQnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4 X211bHRpX3ByZXByb2Nlc3MnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aWRfbWlu bWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aWQnLAogICBhbXByb2NyaWdo dHR5cGUgPT4gJ3RpZCcsIGFtcHJvY251bSA9PiAnMTEnLAogICBhbXByb2MgPT4gJ2JyaW5f bWlubWF4X211bHRpX2Rpc3RhbmNlX3RpZCcgfSwKQEAgLTEyMTQsNiArMTIyOSw5IEBACiB7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9mbG9hdF9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ2Zsb2F0NCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnZmxvYXQ0Jywg YW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9vcHRp b25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZmxvYXRfbWlubWF4X211bHRpX29w cycsIGFtcHJvY2xlZnR0eXBlID0+ICdmbG9hdDQnLAorICBhbXByb2NyaWdodHR5cGUgPT4g J2Zsb2F0NCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhf bXVsdGlfcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2Zsb2F0X21p bm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnZmxvYXQ0JywKICAgYW1wcm9j cmlnaHR0eXBlID0+ICdmbG9hdDQnLCBhbXByb2NudW0gPT4gJzExJywKICAgYW1wcm9jID0+ ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5jZV9mbG9hdDQnIH0sCkBAIC0xMjMzLDYgKzEy NTEsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZmxvYXRfbWlubWF4X211bHRpX29w cycsIGFtcHJvY2xlZnR0eXBlID0+ICdmbG9hdDgnLAogICBhbXByb2NyaWdodHR5cGUgPT4g J2Zsb2F0OCcsIGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhf bXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2Zsb2F0X21pbm1h eF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnZmxvYXQ4JywKKyAgYW1wcm9jcmln aHR0eXBlID0+ICdmbG9hdDgnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2Jy aW5fbWlubWF4X211bHRpX3ByZXByb2Nlc3MnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJp bi9mbG9hdF9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2Zsb2F0OCcs CiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnZmxvYXQ4JywgYW1wcm9jbnVtID0+ICcxMScsCiAg IGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2VfZmxvYXQ4JyB9LApAQCAt MTMwNSw2ICsxMzI2LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL21hY2FkZHJfbWlu bWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdtYWNhZGRyJywKICAgYW1wcm9j cmlnaHR0eXBlID0+ICdtYWNhZGRyJywgYW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ ICdicmluX21pbm1heF9tdWx0aV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2Jy aW4vbWFjYWRkcl9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ21hY2Fk ZHInLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ21hY2FkZHInLCBhbXByb2NudW0gPT4gJzYn LAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX3ByZXByb2Nlc3MnIH0sCiB7IGFt cHJvY2ZhbWlseSA9PiAnYnJpbi9tYWNhZGRyX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2Ns ZWZ0dHlwZSA9PiAnbWFjYWRkcicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbWFjYWRkcics IGFtcHJvY251bSA9PiAnMTEnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX2Rp c3RhbmNlX21hY2FkZHInIH0sCkBAIC0xMzYxLDYgKzEzODUsOSBAQAogeyBhbXByb2NmYW1p bHkgPT4gJ2JyaW4vbWFjYWRkcjhfbWlubWF4X211bHRpX29wcycsCiAgIGFtcHJvY2xlZnR0 eXBlID0+ICdtYWNhZGRyOCcsIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbWFjYWRkcjgnLCBhbXBy b2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMn IH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9tYWNhZGRyOF9taW5tYXhfbXVsdGlfb3Bz JywKKyAgYW1wcm9jbGVmdHR5cGUgPT4gJ21hY2FkZHI4JywgYW1wcm9jcmlnaHR0eXBlID0+ ICdtYWNhZGRyOCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9taW5t YXhfbXVsdGlfcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL21hY2Fk ZHI4X21pbm1heF9tdWx0aV9vcHMnLAogICBhbXByb2NsZWZ0dHlwZSA9PiAnbWFjYWRkcjgn LCBhbXByb2NyaWdodHR5cGUgPT4gJ21hY2FkZHI4JywKICAgYW1wcm9jbnVtID0+ICcxMScs IGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2VfbWFjYWRkcjgnIH0sCkBA IC0xNDE1LDYgKzE0NDIsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbmV0d29ya19t aW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLAogICBhbXByb2Ny aWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2Jy aW5fbWlubWF4X211bHRpX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9u ZXR3b3JrX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW5ldCcsCisg IGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW5ldCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJv YyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5 ID0+ICdicmluL25ldHdvcmtfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ ICdpbmV0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0JywgYW1wcm9jbnVtID0+ICcx MScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2VfaW5ldCcgfSwK QEAgLTE1MjEsNiArMTU1MSw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aW1lX21p bm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZScsCiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAndGltZScsIGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9PiAnYnJp bl9taW5tYXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL3Rp bWVfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lJywKKyAgYW1w cm9jcmlnaHR0eXBlID0+ICd0aW1lJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ ICdicmluX21pbm1heF9tdWx0aV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4g J2JyaW4vdGltZV9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpbWUn LAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3RpbWUnLCBhbXByb2NudW0gPT4gJzExJywKICAg YW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5jZV90aW1lJyB9LApAQCAtMTYw NCw2ICsxNjM3LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX21pbm1h eF9tdWx0aV9vcHMnLAogICBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXN0YW1wJywgYW1wcm9j cmlnaHR0eXBlID0+ICd0aW1lc3RhbXAnLAogICBhbXByb2NudW0gPT4gJzUnLCBhbXByb2Mg PT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAn YnJpbi9kYXRldGltZV9taW5tYXhfbXVsdGlfb3BzJywKKyAgYW1wcm9jbGVmdHR5cGUgPT4g J3RpbWVzdGFtcCcsIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXN0YW1wJywKKyAgYW1wcm9j bnVtID0+ICc2JywgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9wcmVwcm9jZXNzJyB9 LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfbWlubWF4X211bHRpX29wcycs CiAgIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lc3RhbXAnLCBhbXByb2NyaWdodHR5cGUgPT4g J3RpbWVzdGFtcCcsCiAgIGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4gJ2JyaW5fbWlu bWF4X211bHRpX2Rpc3RhbmNlX3RpbWVzdGFtcCcgfSwKQEAgLTE2MjMsNiArMTY1OSw5IEBA CiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9kYXRldGltZV9taW5tYXhfbXVsdGlfb3BzJywK ICAgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpbWVzdGFtcHR6JywgYW1wcm9jcmlnaHR0eXBlID0+ ICd0aW1lc3RhbXB0eicsCiAgIGFtcHJvY251bSA9PiAnNScsIGFtcHJvYyA9PiAnYnJpbl9t aW5tYXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0 aW1lX21pbm1heF9tdWx0aV9vcHMnLAorICBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXN0YW1w dHonLCBhbXByb2NyaWdodHR5cGUgPT4gJ3RpbWVzdGFtcHR6JywKKyAgYW1wcm9jbnVtID0+ ICc2JywgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9wcmVwcm9jZXNzJyB9LAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfbWlubWF4X211bHRpX29wcycsCiAgIGFt cHJvY2xlZnR0eXBlID0+ICd0aW1lc3RhbXB0eicsIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGlt ZXN0YW1wdHonLAogICBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdicmluX21pbm1h eF9tdWx0aV9kaXN0YW5jZV90aW1lc3RhbXAnIH0sCkBAIC0xNjQyLDYgKzE2ODEsOSBAQAog eyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfbWlubWF4X211bHRpX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdkYXRlJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdkYXRlJywg YW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9vcHRp b25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfbWlubWF4X211bHRp X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdkYXRlJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ ICdkYXRlJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX21pbm1heF9t dWx0aV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVf bWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdkYXRlJywKICAgYW1wcm9j cmlnaHR0eXBlID0+ICdkYXRlJywgYW1wcm9jbnVtID0+ICcxMScsCiAgIGFtcHJvYyA9PiAn YnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2VfZGF0ZScgfSwKQEAgLTE3MzMsNiArMTc3NSw5 IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlcnZhbF9taW5tYXhfbXVsdGlfb3Bz JywKICAgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludGVydmFsJywgYW1wcm9jcmlnaHR0eXBlID0+ ICdpbnRlcnZhbCcsIGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5t YXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVydmFs X21pbm1heF9tdWx0aV9vcHMnLAorICBhbXByb2NsZWZ0dHlwZSA9PiAnaW50ZXJ2YWwnLCBh bXByb2NyaWdodHR5cGUgPT4gJ2ludGVydmFsJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1w cm9jID0+ICdicmluX21pbm1heF9tdWx0aV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1p bHkgPT4gJ2JyaW4vaW50ZXJ2YWxfbWlubWF4X211bHRpX29wcycsCiAgIGFtcHJvY2xlZnR0 eXBlID0+ICdpbnRlcnZhbCcsIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50ZXJ2YWwnLAogICBh bXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5j ZV9pbnRlcnZhbCcgfSwKQEAgLTE3ODksNiArMTgzNCw5IEBACiB7IGFtcHJvY2ZhbWlseSA9 PiAnYnJpbi90aW1ldHpfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0 aW1ldHonLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3RpbWV0eicsIGFtcHJvY251bSA9PiAn NScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1w cm9jZmFtaWx5ID0+ICdicmluL3RpbWV0el9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVm dHR5cGUgPT4gJ3RpbWV0eicsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXR6JywgYW1w cm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9wcmVwcm9j ZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGltZXR6X21pbm1heF9tdWx0aV9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXR6JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ ICd0aW1ldHonLCBhbXByb2NudW0gPT4gJzExJywKICAgYW1wcm9jID0+ICdicmluX21pbm1h eF9tdWx0aV9kaXN0YW5jZV90aW1ldHonIH0sCkBAIC0xODc1LDYgKzE5MjMsOSBAQAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vbnVtZXJpY19taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ251bWVyaWMnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ251bWVyaWMn LCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX29w dGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9udW1lcmljX21pbm1heF9tdWx0 aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbnVtZXJpYycsCisgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnbnVtZXJpYycsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9t aW5tYXhfbXVsdGlfcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL251 bWVyaWNfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdudW1lcmljJywK ICAgYW1wcm9jcmlnaHR0eXBlID0+ICdudW1lcmljJywgYW1wcm9jbnVtID0+ICcxMScsCiAg IGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2VfbnVtZXJpYycgfSwKQEAg LTE5MjksNiArMTk4MCw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi91dWlkX21pbm1h eF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndXVpZCcsCiAgIGFtcHJvY3JpZ2h0 dHlwZSA9PiAndXVpZCcsIGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9PiAnYnJpbl9t aW5tYXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL3V1aWRf bWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd1dWlkJywKKyAgYW1wcm9j cmlnaHR0eXBlID0+ICd1dWlkJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdi cmluX21pbm1heF9tdWx0aV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2Jy aW4vdXVpZF9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3V1aWQnLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ3V1aWQnLCBhbXByb2NudW0gPT4gJzExJywKICAgYW1w cm9jID0+ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5jZV91dWlkJyB9LApAQCAtMjAwNSw2 ICsyMDU5LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3BnX2xzbl9taW5tYXhfbXVs dGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3BnX2xzbicsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAncGdfbHNuJywgYW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX21p bm1heF9tdWx0aV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vcGdfbHNu X21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncGdfbHNuJywKKyAgYW1w cm9jcmlnaHR0eXBlID0+ICdwZ19sc24nLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2Mg PT4gJ2JyaW5fbWlubWF4X211bHRpX3ByZXByb2Nlc3MnIH0sCiB7IGFtcHJvY2ZhbWlseSA9 PiAnYnJpbi9wZ19sc25fbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdw Z19sc24nLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3BnX2xzbicsIGFtcHJvY251bSA9PiAn MTEnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX2Rpc3RhbmNlX3BnX2xzbicg fSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDhmMTc1MzIwOTRiLi4wNDU1NTc0 NmU2MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC04NTUxLDYgKzg1NTEsMTAg QEAKICAgcHJvbmFtZSA9PiAnYnJpbl9taW5tYXhfbXVsdGlfb3B0aW9ucycsIHByb2lzc3Ry aWN0ID0+ICdmJywKICAgcHJvcmV0dHlwZSA9PiAndm9pZCcsIHByb2FyZ3R5cGVzID0+ICdp bnRlcm5hbCcsCiAgIHByb3NyYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfb3B0aW9ucycgfSwK K3sgb2lkID0+ICc5MzI2JywgZGVzY3IgPT4gJ0JSSU4gbXVsdGkgbWlubWF4IHN1cHBvcnQn LAorICBwcm9uYW1lID0+ICdicmluX21pbm1heF9tdWx0aV9wcmVwcm9jZXNzJywgcHJvaXNz dHJpY3QgPT4gJ2YnLAorICBwcm9yZXR0eXBlID0+ICdpbnRlcm5hbCcsIHByb2FyZ3R5cGVz ID0+ICdpbnRlcm5hbCBpbnRlcm5hbCcsCisgIHByb3NyYyA9PiAnYnJpbl9taW5tYXhfbXVs dGlfcHJlcHJvY2VzcycgfSwKIAogeyBvaWQgPT4gJzQ2MjEnLCBkZXNjciA9PiAnQlJJTiBt dWx0aSBtaW5tYXggaW50MiBkaXN0YW5jZScsCiAgIHByb25hbWUgPT4gJ2JyaW5fbWlubWF4 X211bHRpX2Rpc3RhbmNlX2ludDInLCBwcm9yZXR0eXBlID0+ICdmbG9hdDgnLApkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9icmluX211bHRpLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnJpbl9tdWx0aS5vdXQKaW5kZXggMzNjNDU2NmQ3YTEu LmNiYmNjMzA3NjlkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Jy aW5fbXVsdGkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnJpbl9tdWx0 aS5vdXQKQEAgLTgyOSwzICs4MjksOTI5IEBAIFNFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f dGVzdF9tdWx0aV8yIFdIRVJFIGEgPj0gJ2M1MWNlNDEwLWMxMjQtYTEwZS0wZGI1LWU0Yjk3 CiAKIERST1AgVEFCTEUgYnJpbl90ZXN0X211bHRpXzI7CiBSRVNFVCBlbmFibGVfc2Vxc2Nh bjsKKy0tIGRvIHNvbWUgdGVzdHMgb24gSU4gY2xhdXNlcyBmb3Igc2ltcGxlIGRhdGEgdHlw ZXMKK0NSRUFURSBUQUJMRSBicmluX2luX3Rlc3RfbXVsdGlfMSAoYSBJTlQsIGIgQklHSU5U KSBXSVRIIChmaWxsZmFjdG9yPTEwKTsKK0lOU0VSVCBJTlRPIGJyaW5faW5fdGVzdF9tdWx0 aV8xCitTRUxFQ1QgaS81ICsgbW9kKDk5MSAqIGkgKyA2MTcsIDIwKSwKKyAgICAgICBpLzEw ICsgbW9kKDg1MyAqIGkgKyA0OTEsIDMwKQorICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEw MDApIHMoaSk7CitDUkVBVEUgSU5ERVggYnJpbl9pbl90ZXN0X211bHRpXzFfaWR4XzEgT04g YnJpbl9pbl90ZXN0X211bHRpXzEgVVNJTkcgYnJpbiAoYSBpbnQ0X21pbm1heF9tdWx0aV9v cHMpIFdJVEggKHBhZ2VzX3Blcl9yYW5nZT0xKTsKK0NSRUFURSBJTkRFWCBicmluX2luX3Rl c3RfbXVsdGlfMV9pZHhfMiBPTiBicmluX2luX3Rlc3RfbXVsdGlfMSBVU0lORyBicmluIChi IGludDhfbWlubWF4X211bHRpX29wcykgV0lUSCAocGFnZXNfcGVyX3JhbmdlPTEpOworU0VU IGVuYWJsZV9zZXFzY2FuPW9mZjsKKy0tIGludDogZXF1YWxpdHkKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJF IGEgSU4gKDExMyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0 bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVj ayBDb25kOiAoYSA9IDExMykKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBi cmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGEgPSAxMTMpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rl c3RfbXVsdGlfMSBXSEVSRSBhIElOICgxMTMpOworIGNvdW50IAorLS0tLS0tLQorICAgICA4 CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgSU4gKDExMywgTlVMTCk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24g YnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSBBTlkg KCd7MTEzLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXgg U2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5k ZXggQ29uZDogKGEgPSBBTlkgKCd7MTEzLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3Mp CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEg SU4gKDExMywgTlVMTCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDgKKygxIHJvdykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X211bHRpXzEgV0hFUkUgYSBJTiAoTlVMTCwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rl c3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA9IEFOWSAoJ3tOVUxMLE5V TEx9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBi cmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGEgPSBBTlkgKCd7TlVMTCxOVUxMfSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIElOIChOVUxM LCBOVUxMKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlf MSBXSEVSRSBhIElOICgxMTMsIDE3Nyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdh dGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xCisg ICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgnezExMywxNzd9Jzo6aW50ZWdlcltd KSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVs dGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBBTlkgKCd7MTEz LDE3N30nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcpOworIGNvdW50IAor LS0tLS0tLQorICAgIDE2CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgSU4gKC0xMTMs IC0xNzcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJp dG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hl Y2sgQ29uZDogKGEgPSBBTlkgKCd7LTExMywtMTc3fSc6OmludGVnZXJbXSkpCisgICAgICAg ICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzFfaWR4XzEK KyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgney0xMTMsLTE3N30nOjpp bnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0X211bHRpXzEgV0hFUkUgYSBJTiAoLTExMywgLTE3Nyk7CisgY291bnQgCistLS0tLS0t CisgICAgIDAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSBJTiAoMzEzLCAzNzcpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2Nh biBvbiBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA9 IEFOWSAoJ3szMTMsMzc3fSc6OmludGVnZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIElu ZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzFfaWR4XzEKKyAgICAgICAgICAgICAg IEluZGV4IENvbmQ6IChhID0gQU5ZICgnezMxMywzNzd9Jzo6aW50ZWdlcltdKSkKKyg1IHJv d3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJF IGEgSU4gKDMxMywgMzc3KTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQor CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rl c3RfbXVsdGlfMSBXSEVSRSBhIElOICgxMTMsIDE3NywgTlVMTCk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBv biBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA9IEFO WSAoJ3sxMTMsMTc3LE5VTEx9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAg SW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMQorICAgICAgICAgICAg ICAgSW5kZXggQ29uZDogKGEgPSBBTlkgKCd7MTEzLDE3NyxOVUxMfSc6OmludGVnZXJbXSkp CisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlf MSBXSEVSRSBhIElOICgxMTMsIDE3NywgTlVMTCk7CisgY291bnQgCistLS0tLS0tCisgICAg MTYKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcsIDI1KTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFw IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDog KGEgPSBBTlkgKCd7MTEzLDE3NywyNX0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJp dG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8xCisgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3sxMTMsMTc3LDI1fSc6OmludGVnZXJb XSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVs dGlfMSBXSEVSRSBhIElOICgxMTMsIDE3NywgMjUpOworIGNvdW50IAorLS0tLS0tLQorICAg IDI0CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgSU4gKE5VTEwsIDExMywgMTc3LCAy NSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAg ICAgUmVjaGVjayBDb25kOiAoYSA9IEFOWSAoJ3tOVUxMLDExMywxNzcsMjV9Jzo6aW50ZWdl cltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3Rf bXVsdGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBBTlkgKCd7 TlVMTCwxMTMsMTc3LDI1fSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIElOIChOVUxMLCAxMTMs IDE3NywgMjUpOworIGNvdW50IAorLS0tLS0tLQorICAgIDI0CisoMSByb3cpCisKKy0tIGlu dDogbGVzcyB0aGFuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJP TSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDwgQU5ZKEFSUkFZWzExM10pOworICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24g YnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPCBBTlkg KCd7MTEzfSc6OmludGVnZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4g b24gYnJpbl9pbl90ZXN0X211bHRpXzFfaWR4XzEKKyAgICAgICAgICAgICAgIEluZGV4IENv bmQ6IChhIDwgQU5ZICgnezExM30nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNU IENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA8IEFOWShBUlJB WVsxMTNdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDUxNQorKDEgcm93KQorCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlf MSBXSEVSRSBhIDwgQU5ZKEFSUkFZWzExMywgTlVMTF0pOworICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVz dF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhIDwgQU5ZICgnezExMyxOVUxM fSc6OmludGVnZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJp bl9pbl90ZXN0X211bHRpXzFfaWR4XzEKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChh IDwgQU5ZICgnezExMyxOVUxMfSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDwgQU5ZKEFSUkFZ WzExMywgTlVMTF0pOworIGNvdW50IAorLS0tLS0tLQorICAgNTE1CisoMSByb3cpCisKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9t dWx0aV8xIFdIRVJFIGEgPCBBTlkoQVJSQVlbTlVMTCwgTlVMTF06OmludFtdKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2Fu IG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhIDwg QU5ZICgne05VTEwsTlVMTH0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJ bmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8xCisgICAgICAgICAgICAg ICBJbmRleCBDb25kOiAoYSA8IEFOWSAoJ3tOVUxMLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1 IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdI RVJFIGEgPCBBTlkoQVJSQVlbTlVMTCwgTlVMTF06OmludFtdKTsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDw9IEFOWShBUlJBWVsx MTMsIDE3N10pOworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBC aXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNo ZWNrIENvbmQ6IChhIDw9IEFOWSAoJ3sxMTMsMTc3fSc6OmludGVnZXJbXSkpCisgICAgICAg ICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzFfaWR4XzEK KyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhIDw9IEFOWSAoJ3sxMTMsMTc3fSc6Omlu dGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rl c3RfbXVsdGlfMSBXSEVSRSBhIDw9IEFOWShBUlJBWVsxMTMsIDE3N10pOworIGNvdW50IAor LS0tLS0tLQorICAgODQzCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPCBBTlkoQVJS QVlbMTEzLCAxNzcsIE5VTExdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBB Z2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0 aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhIDwgQU5ZICgnezExMywxNzcsTlVMTH0n OjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5f aW5fdGVzdF9tdWx0aV8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA8 IEFOWSAoJ3sxMTMsMTc3LE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPCBBTlkoQVJS QVlbMTEzLCAxNzcsIE5VTExdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDgzNQorKDEgcm93 KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDw9IEFOWShBUlJBWVsxMTMsIDE3NywgMjVdKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhl YXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25k OiAoYSA8PSBBTlkgKCd7MTEzLDE3NywyNX0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4g IEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8xCisgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoYSA8PSBBTlkgKCd7MTEzLDE3NywyNX0nOjppbnRl Z2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X211bHRpXzEgV0hFUkUgYSA8PSBBTlkoQVJSQVlbMTEzLCAxNzcsIDI1XSk7CisgY291bnQg CistLS0tLS0tCisgICA4NDMKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA8IEFOWShB UlJBWVtOVUxMLCAxMTMsIDE3NywgMjVdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5f aW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhIDwgQU5ZICgne05V TEwsMTEzLDE3NywyNX0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRl eCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8xCisgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoYSA8IEFOWSAoJ3tOVUxMLDExMywxNzcsMjV9Jzo6aW50ZWdlcltdKSkK Kyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8x IFdIRVJFIGEgPCBBTlkoQVJSQVlbTlVMTCwgMTEzLCAxNzcsIDI1XSk7CisgY291bnQgCist LS0tLS0tCisgICA4MzUKKygxIHJvdykKKworLS0gaW50OiBncmVhdGVyIHRoYW4KK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0 aV8xIFdIRVJFIGEgPiBBTlkoQVJSQVlbMTEzXSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdn cmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlf MQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA+IEFOWSAoJ3sxMTN9Jzo6aW50ZWdlcltd KSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVs dGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPiBBTlkgKCd7MTEz fSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID4gQU5ZKEFSUkFZWzExM10pOworIGNvdW50IAor LS0tLS0tLQorICAgNDc3CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPiBBTlkoQVJS QVlbMTEzLCBOVUxMXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAg LT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAg IFJlY2hlY2sgQ29uZDogKGEgPiBBTlkgKCd7MTEzLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyAg ICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMV9p ZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPiBBTlkgKCd7MTEzLE5VTEx9 Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPiBBTlkoQVJSQVlbMTEzLCBOVUxMXSk7CisgY291 bnQgCistLS0tLS0tCisgICA0NzcKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA+IEFO WShBUlJBWVtOVUxMLCBOVUxMXTo6aW50W10pOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211 bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPiBBTlkgKCd7TlVMTCxOVUxMfSc6 OmludGVnZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9p bl90ZXN0X211bHRpXzFfaWR4XzEKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID4g QU5ZICgne05VTEwsTlVMTH0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA+IEFOWShBUlJBWVtO VUxMLCBOVUxMXTo6aW50W10pOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cp CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9tdWx0aV8xIFdIRVJFIGEgPj0gQU5ZKEFSUkFZWzExMywgMTc3XSk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24g YnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPj0gQU5Z ICgnezExMywxNzd9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXgg U2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5k ZXggQ29uZDogKGEgPj0gQU5ZICgnezExMywxNzd9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3Mp CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEg Pj0gQU5ZKEFSUkFZWzExMywgMTc3XSk7CisgY291bnQgCistLS0tLS0tCisgICA0ODUKKygx IHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA+IEFOWShBUlJBWVsxMTMsIDE3NywgTlVMTF0p OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJp dG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hl Y2sgQ29uZDogKGEgPiBBTlkgKCd7MTEzLDE3NyxOVUxMfSc6OmludGVnZXJbXSkpCisgICAg ICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzFfaWR4 XzEKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID4gQU5ZICgnezExMywxNzcsTlVM TH0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA+IEFOWShBUlJBWVsxMTMsIDE3NywgTlVMTF0p OworIGNvdW50IAorLS0tLS0tLQorICAgNDc3CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJF IGEgPiBBTlkoQVJSQVlbMTEzLCAxNzcsIDI1XSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVz dF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID4gQU5ZICgnezExMywxNzcs MjV9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBi cmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGEgPiBBTlkgKCd7MTEzLDE3NywyNX0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VM RUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA+IEFOWShB UlJBWVsxMTMsIDE3NywgMjVdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDkxNworKDEgcm93 KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfbXVsdGlfMSBXSEVSRSBhID49IEFOWShBUlJBWVtOVUxMLCAxMTMsIDE3NywgMjVd KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQor ICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAg ICAgIFJlY2hlY2sgQ29uZDogKGEgPj0gQU5ZICgne05VTEwsMTEzLDE3NywyNX0nOjppbnRl Z2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVz dF9tdWx0aV8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA+PSBBTlkg KCd7TlVMTCwxMTMsMTc3LDI1fSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID49IEFOWShBUlJB WVtOVUxMLCAxMTMsIDE3NywgMjVdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDkyNQorKDEg cm93KQorCistLSBiaWdpbnQ6IGVxdWFsaXR5CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIElOICg4Mik7 CisgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2Nh biBvbiBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA9 IDgyKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9t dWx0aV8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IDgyKQorKDUg cm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hF UkUgYiBJTiAoODIpOworIGNvdW50IAorLS0tLS0tLQorICAgIDEwCisoMSByb3cpCisKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9t dWx0aV8xIFdIRVJFIGIgSU4gKDgyLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dy ZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8x CisgICAgICAgICBSZWNoZWNrIENvbmQ6IChiID0gQU5ZICgnezgyLE5VTEx9Jzo6YmlnaW50 W10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9t dWx0aV8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IEFOWSAoJ3s4 MixOVUxMfSc6OmJpZ2ludFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgSU4gKDgyLCBOVUxMKTsKKyBjb3VudCAK Ky0tLS0tLS0KKyAgICAxMAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIElOIChOVUxM LCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0 bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVj ayBDb25kOiAoYiA9IEFOWSAoJ3tOVUxMLE5VTEx9Jzo6YmlnaW50W10pKQorICAgICAgICAg LT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8yCisg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IEFOWSAoJ3tOVUxMLE5VTEx9Jzo6Ymln aW50W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X211bHRpXzEgV0hFUkUgYiBJTiAoTlVMTCwgTlVMTCk7CisgY291bnQgCistLS0tLS0tCisg ICAgIDAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiBJTiAoODIsIDQxKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJy aW5faW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChiID0gQU5ZICgn ezgyLDQxfSc6OmJpZ2ludFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBv biBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29u ZDogKGIgPSBBTlkgKCd7ODIsNDF9Jzo6YmlnaW50W10pKQorKDUgcm93cykKKworU0VMRUNU IENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiBJTiAoODIsIDQx KTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAyMAorKDEgcm93KQorCitFWFBMQUlOIChDT1NU UyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVS RSBiIElOICgtODIsIC0xNDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAg ICAgUmVjaGVjayBDb25kOiAoYiA9IEFOWSAoJ3stODIsLTE0MX0nOjpiaWdpbnRbXSkpCisg ICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzFf aWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChiID0gQU5ZICgney04MiwtMTQx fSc6OmJpZ2ludFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgSU4gKC04MiwgLTE0MSk7CisgY291bnQgCistLS0t LS0tCisgICAgIDAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiBJTiAoMzgyLCA0NDEp OworICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNj YW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIg PSBBTlkgKCd7MzgyLDQ0MX0nOjpiaWdpbnRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIElu ZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzFfaWR4XzIKKyAgICAgICAgICAgICAg IEluZGV4IENvbmQ6IChiID0gQU5ZICgnezM4Miw0NDF9Jzo6YmlnaW50W10pKQorKDUgcm93 cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUg YiBJTiAoMzgyLCA0NDEpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisK K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVz dF9tdWx0aV8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgTlVMTCk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2lu X3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA9IEFOWSAoJ3s4Miw0 MSxOVUxMfSc6OmJpZ2ludFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBv biBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29u ZDogKGIgPSBBTlkgKCd7ODIsNDEsTlVMTH0nOjpiaWdpbnRbXSkpCisoNSByb3dzKQorCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIElOICg4 MiwgNDEsIE5VTEwpOworIGNvdW50IAorLS0tLS0tLQorICAgIDIwCisoMSByb3cpCisKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9t dWx0aV8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgMTUpOworICAgICAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg QWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVs dGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA9IEFOWSAoJ3s4Miw0MSwxNX0nOjpi aWdpbnRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90 ZXN0X211bHRpXzFfaWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChiID0gQU5Z ICgnezgyLDQxLDE1fSc6OmJpZ2ludFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgMTUpOwor IGNvdW50IAorLS0tLS0tLQorICAgIDI1CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9G RikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIg SU4gKE5VTEwsIDgyLCA0MSwgMTUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211 bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPSBBTlkgKCd7TlVMTCw4Miw0MSwx NX0nOjpiaWdpbnRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJp bl9pbl90ZXN0X211bHRpXzFfaWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChi ID0gQU5ZICgne05VTEwsODIsNDEsMTV9Jzo6YmlnaW50W10pKQorKDUgcm93cykKKworU0VM RUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiBJTiAoTlVM TCwgODIsIDQxLCAxNSk7CisgY291bnQgCistLS0tLS0tCisgICAgMjUKKygxIHJvdykKKwor LS0gYmlnaW50OiBsZXNzIHRoYW4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPCBBTlkoQVJSQVlbODJd KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBT Y2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChi IDwgQU5ZICgnezgyfSc6OmludGVnZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4 IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzFfaWR4XzIKKyAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6IChiIDwgQU5ZICgnezgyfSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDwgQU5Z KEFSUkFZWzgyXSk7CisgY291bnQgCistLS0tLS0tCisgICA2NzQKKygxIHJvdykKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211 bHRpXzEgV0hFUkUgYiA8IEFOWShBUlJBWVs4MiwgTlVMTF0pOworICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rl c3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA8IEFOWSAoJ3s4MixOVUxM fSc6OmludGVnZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJp bl9pbl90ZXN0X211bHRpXzFfaWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChi IDwgQU5ZICgnezgyLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPCBBTlkoQVJSQVlb ODIsIE5VTExdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDY3NAorKDEgcm93KQorCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVs dGlfMSBXSEVSRSBiIDwgQU5ZKEFSUkFZW05VTEwsIE5VTExdOjpiaWdpbnRbXSk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4g b24gYnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPCBB TlkgKCd7TlVMTCxOVUxMfSc6OmJpZ2ludFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5k ZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKGIgPCBBTlkgKCd7TlVMTCxOVUxMfSc6OmJpZ2ludFtdKSkKKyg1IHJv d3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJF IGIgPCBBTlkoQVJSQVlbTlVMTCwgTlVMTF06OmJpZ2ludFtdKTsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDw9IEFOWShBUlJBWVs4 MiwgNDFdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAg SGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENv bmQ6IChiIDw9IEFOWSAoJ3s4Miw0MX0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJp dG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8yCisgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoYiA8PSBBTlkgKCd7ODIsNDF9Jzo6aW50ZWdlcltdKSkK Kyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8x IFdIRVJFIGIgPD0gQU5ZKEFSUkFZWzgyLCA0MV0pOworIGNvdW50IAorLS0tLS0tLQorICAg Njg0CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPCBBTlkoQVJSQVlbODIsIDQxLCBO VUxMXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBC aXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNo ZWNrIENvbmQ6IChiIDwgQU5ZICgnezgyLDQxLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyAgICAg ICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhf MgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgPCBBTlkgKCd7ODIsNDEsTlVMTH0n OjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0X211bHRpXzEgV0hFUkUgYiA8IEFOWShBUlJBWVs4MiwgNDEsIE5VTExdKTsKKyBj b3VudCAKKy0tLS0tLS0KKyAgIDY3NAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDw9 IEFOWShBUlJBWVs4MiwgNDEsIDE1XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdn cmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlf MQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA8PSBBTlkgKCd7ODIsNDEsMTV9Jzo6aW50 ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rl c3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgPD0gQU5Z ICgnezgyLDQxLDE1fSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDw9IEFOWShBUlJBWVs4Miwg NDEsIDE1XSk7CisgY291bnQgCistLS0tLS0tCisgICA2ODQKKygxIHJvdykKKworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRp XzEgV0hFUkUgYiA8IEFOWShBUlJBWVtOVUxMLCA4MiwgNDEsIDE1XSk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBT Y2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChi IDwgQU5ZICgne05VTEwsODIsNDEsMTV9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBC aXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKGIgPCBBTlkgKCd7TlVMTCw4Miw0MSwxNX0nOjppbnRl Z2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X211bHRpXzEgV0hFUkUgYiA8IEFOWShBUlJBWVtOVUxMLCA4MiwgNDEsIDE1XSk7CisgY291 bnQgCistLS0tLS0tCisgICA2NzQKKygxIHJvdykKKworLS0gYmlnaW50OiBncmVhdGVyIHRo YW4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9tdWx0aV8xIFdIRVJFIGIgPiBBTlkoQVJSQVlbODJdKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVz dF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChiID4gQU5ZICgnezgyfSc6Omlu dGVnZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90 ZXN0X211bHRpXzFfaWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChiID4gQU5Z ICgnezgyfSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJP TSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiID4gQU5ZKEFSUkFZWzgyXSk7CisgY291 bnQgCistLS0tLS0tCisgICAzMTYKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiA+IEFO WShBUlJBWVs4MiwgTlVMTF0pOworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAg ICAgUmVjaGVjayBDb25kOiAoYiA+IEFOWSAoJ3s4MixOVUxMfSc6OmludGVnZXJbXSkpCisg ICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzFf aWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChiID4gQU5ZICgnezgyLE5VTEx9 Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPiBBTlkoQVJSQVlbODIsIE5VTExdKTsKKyBjb3Vu dCAKKy0tLS0tLS0KKyAgIDMxNgorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiID4gQU5Z KEFSUkFZW05VTEwsIE5VTExdOjpiaWdpbnRbXSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211 bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPiBBTlkgKCd7TlVMTCxOVUxMfSc6 OmJpZ2ludFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2lu X3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgPiBB TlkgKCd7TlVMTCxOVUxMfSc6OmJpZ2ludFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPiBBTlkoQVJSQVlbTlVM TCwgTlVMTF06OmJpZ2ludFtdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93 KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfbXVsdGlfMSBXSEVSRSBiID4gQU5ZKEFSUkFZWzgyLCA0MV0pOworICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9p bl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPiBBTlkgKCd7ODIs NDF9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBi cmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGIgPiBBTlkgKCd7ODIsNDF9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPiBBTlkoQVJSQVlb ODIsIDQxXSk7CisgY291bnQgCistLS0tLS0tCisgICA3MjYKKygxIHJvdykKKworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRp XzEgV0hFUkUgYiA+PSBBTlkoQVJSQVlbODIsIDQxLCBOVUxMXSk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24g YnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPj0gQU5Z ICgnezgyLDQxLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5k ZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKGIgPj0gQU5ZICgnezgyLDQxLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1 IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdI RVJFIGIgPj0gQU5ZKEFSUkFZWzgyLCA0MSwgTlVMTF0pOworIGNvdW50IAorLS0tLS0tLQor ICAgNzM2CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPj0gQU5ZKEFSUkFZWzgyLCA0 MSwgMTVdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBC aXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNo ZWNrIENvbmQ6IChiID49IEFOWSAoJ3s4Miw0MSwxNX0nOjppbnRlZ2VyW10pKQorICAgICAg ICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8y CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA+PSBBTlkgKCd7ODIsNDEsMTV9Jzo6 aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9tdWx0aV8xIFdIRVJFIGIgPj0gQU5ZKEFSUkFZWzgyLCA0MSwgMTVdKTsKKyBjb3Vu dCAKKy0tLS0tLS0KKyAgIDk2MQorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiID4gQU5Z KEFSUkFZW05VTEwsIDgyLCA0MSwgMTVdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90 ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPiBBTlkgKCd7TlVMTCw4 Miw0MSwxNX0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2Fu IG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBD b25kOiAoYiA+IEFOWSAoJ3tOVUxMLDgyLDQxLDE1fSc6OmludGVnZXJbXSkpCisoNSByb3dz KQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBi ID4gQU5ZKEFSUkFZW05VTEwsIDgyLCA0MSwgMTVdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAg IDk1NgorKDEgcm93KQorCitEUk9QIFRBQkxFIGJyaW5faW5fdGVzdF9tdWx0aV8xOworUkVT RVQgZW5hYmxlX3NlcXNjYW47CistLSBkbyBzb21lIHRlc3RzIG9uIElOIGNsYXVzZXMgZm9y IHZhcmxlbmEgZGF0YSB0eXBlcworQ1JFQVRFIFRBQkxFIGJyaW5faW5fdGVzdF9tdWx0aV8y IChhIFVVSUQpIFdJVEggKGZpbGxmYWN0b3I9MTApOworSU5TRVJUIElOVE8gYnJpbl9pbl90 ZXN0X211bHRpXzIKK1NFTEVDVCB2Ojp1dWlkIEZST00gKFNFTEVDVCByb3dfbnVtYmVyKCkg T1ZFUiAoT1JERVIgQlkgdikgYywgdiBGUk9NIChTRUxFQ1QgbWQ1KChpLzEzKTo6dGV4dCkg QVMgdiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApIHMoaSkpIGZvbykgYmFyIE9SREVS IEJZIGMgKyAyNSAqIHJhbmRvbSgpOworQ1JFQVRFIElOREVYIGJyaW5faW5fdGVzdF9tdWx0 aV8yX2lkeCBPTiBicmluX2luX3Rlc3RfbXVsdGlfMiBVU0lORyBicmluIChhIHV1aWRfbWlu bWF4X211bHRpX29wcykgV0lUSCAocGFnZXNfcGVyX3JhbmdlPTEpOworU0VUIGVuYWJsZV9z ZXFzY2FuPW9mZjsKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMC05ZGQ2LTAxYmIt ZTY5Zi0zNTEwMzkxNTIxODknKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2Nh biBvbiBicmluX2luX3Rlc3RfbXVsdGlfMgorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA9 ICczM2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0zNTEwMzkxNTIxODknOjp1dWlkKQorICAgICAg ICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8yX2lkeAor ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSAnMzNlNzVmZjAtOWRkNi0wMWJiLWU2 OWYtMzUxMDM5MTUyMTg5Jzo6dXVpZCkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMC05ZGQ2LTAx YmItZTY5Zi0zNTEwMzkxNTIxODknKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAxMworKDEg cm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElOICgnMzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYt MzUxMDM5MTUyMTg5JywgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFn Z3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRp XzIKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSBBTlkgKCd7MzNlNzVmZjAtOWRkNi0w MWJiLWU2OWYtMzUxMDM5MTUyMTg5LE5VTEx9Jzo6dXVpZFtdKSkKKyAgICAgICAgIC0+ICBC aXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMl9pZHgKKyAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwLTlkZDYtMDFiYi1lNjlm LTM1MTAzOTE1MjE4OSxOVUxMfSc6OnV1aWRbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElOICgnMzNlNzVmZjAt OWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JywgTlVMTCk7CisgY291bnQgCistLS0tLS0t CisgICAgMTMKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzIgV0hFUkUgYSBJTiAoTlVMTCwgTlVMTCk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2Nh biBvbiBicmluX2luX3Rlc3RfbXVsdGlfMgorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA9 IEFOWSAoJ3tOVUxMLE5VTEx9Jzo6dXVpZFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5k ZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMl9pZHgKKyAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6IChhID0gQU5ZICgne05VTEwsTlVMTH0nOjp1dWlkW10pKQorKDUgcm93cykK KworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzIgV0hFUkUgYSBJ TiAoTlVMTCwgTlVMTCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X211bHRpXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwLTlkZDYtMDFiYi1lNjlmLTM1MTAzOTE1 MjE4OScsICdmNDU3YzU0NS1hOWRlLWQ4OGYtMThlYy1lZTQ3MTQ1YTcyYzAnKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJp dG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzIKKyAgICAgICAgIFJlY2hl Y2sgQ29uZDogKGEgPSBBTlkgKCd7MzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUy MTg5LGY0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMH0nOjp1dWlkW10pKQor ICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8y X2lkeAorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBBTlkgKCd7MzNlNzVmZjAt OWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5LGY0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVl NDcxNDVhNzJjMH0nOjp1dWlkW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0X211bHRpXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwLTlkZDYtMDFi Yi1lNjlmLTM1MTAzOTE1MjE4OScsICdmNDU3YzU0NS1hOWRlLWQ4OGYtMThlYy1lZTQ3MTQ1 YTcyYzAnKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAyNgorKDEgcm93KQorCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlf MiBXSEVSRSBhIElOICgnMzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5Jywg J2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMCcsIE5VTEwpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQor ICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzIKKyAgICAg ICAgIFJlY2hlY2sgQ29uZDogKGEgPSBBTlkgKCd7MzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYt MzUxMDM5MTUyMTg5LGY0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMCxOVUxM fSc6OnV1aWRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9p bl90ZXN0X211bHRpXzJfaWR4CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFO WSAoJ3szM2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0zNTEwMzkxNTIxODksZjQ1N2M1NDUtYTlk ZS1kODhmLTE4ZWMtZWU0NzE0NWE3MmMwLE5VTEx9Jzo6dXVpZFtdKSkKKyg1IHJvd3MpCisK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgSU4g KCczM2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0zNTEwMzkxNTIxODknLCAnZjQ1N2M1NDUtYTlk ZS1kODhmLTE4ZWMtZWU0NzE0NWE3MmMwJywgTlVMTCk7CisgY291bnQgCistLS0tLS0tCisg ICAgMjYKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl9pbl90ZXN0X211bHRpXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwLTlkZDYt MDFiYi1lNjlmLTM1MTAzOTE1MjE4OScsICdmNDU3YzU0NS1hOWRlLWQ4OGYtMThlYy1lZTQ3 MTQ1YTcyYzAnLCAnYzUxY2U0MTAtYzEyNC1hMTBlLTBkYjUtZTRiOTdmYzJhZjM5Jyk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0 X211bHRpXzIKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSBBTlkgKCd7MzNlNzVmZjAt OWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5LGY0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVl NDcxNDVhNzJjMCxjNTFjZTQxMC1jMTI0LWExMGUtMGRiNS1lNGI5N2ZjMmFmMzl9Jzo6dXVp ZFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3Rf bXVsdGlfMl9pZHgKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgnezMz ZTc1ZmYwLTlkZDYtMDFiYi1lNjlmLTM1MTAzOTE1MjE4OSxmNDU3YzU0NS1hOWRlLWQ4OGYt MThlYy1lZTQ3MTQ1YTcyYzAsYzUxY2U0MTAtYzEyNC1hMTBlLTBkYjUtZTRiOTdmYzJhZjM5 fSc6OnV1aWRbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElOICgnMzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUx MDM5MTUyMTg5JywgJ2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMCcsICdj NTFjZTQxMC1jMTI0LWExMGUtMGRiNS1lNGI5N2ZjMmFmMzknKTsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAzOQorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElOIChOVUxMLCAnMzNl NzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1LWE5ZGUtZDg4 Zi0xOGVjLWVlNDcxNDVhNzJjMCcsICdjNTFjZTQxMC1jMTI0LWExMGUtMGRiNS1lNGI5N2Zj MmFmMzknKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFw IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzIKKyAgICAgICAgIFJlY2hlY2sgQ29uZDog KGEgPSBBTlkgKCd7TlVMTCwzM2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0zNTEwMzkxNTIxODks ZjQ1N2M1NDUtYTlkZS1kODhmLTE4ZWMtZWU0NzE0NWE3MmMwLGM1MWNlNDEwLWMxMjQtYTEw ZS0wZGI1LWU0Yjk3ZmMyYWYzOX0nOjp1dWlkW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJ bmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8yX2lkeAorICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKGEgPSBBTlkgKCd7TlVMTCwzM2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0z NTEwMzkxNTIxODksZjQ1N2M1NDUtYTlkZS1kODhmLTE4ZWMtZWU0NzE0NWE3MmMwLGM1MWNl NDEwLWMxMjQtYTEwZS0wZGI1LWU0Yjk3ZmMyYWYzOX0nOjp1dWlkW10pKQorKDUgcm93cykK KworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzIgV0hFUkUgYSBJ TiAoTlVMTCwgJzMzZTc1ZmYwLTlkZDYtMDFiYi1lNjlmLTM1MTAzOTE1MjE4OScsICdmNDU3 YzU0NS1hOWRlLWQ4OGYtMThlYy1lZTQ3MTQ1YTcyYzAnLCAnYzUxY2U0MTAtYzEyNC1hMTBl LTBkYjUtZTRiOTdmYzJhZjM5Jyk7CisgY291bnQgCistLS0tLS0tCisgICAgMzkKKygxIHJv dykKKworRFJPUCBUQUJMRSBicmluX2luX3Rlc3RfbXVsdGlfMjsKK1JFU0VUIGVuYWJsZV9z ZXFzY2FuOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYnJpbl9tdWx0aS5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9icmluX211bHRpLnNxbAppbmRleCA2OGJhOTQx MjFlMy4uMDQzMjAwZWZlYmIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Jy aW5fbXVsdGkuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2JyaW5fbXVsdGkuc3Fs CkBAIC01NTcsMyArNTU3LDMwNCBAQCBTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3Rf bXVsdGlfMiBXSEVSRSBhID49ICdjNTFjZTQxMC1jMTI0LWExMGUtMGRiNS1lNGI5NwogCiBE Uk9QIFRBQkxFIGJyaW5fdGVzdF9tdWx0aV8yOwogUkVTRVQgZW5hYmxlX3NlcXNjYW47CisK KworLS0gZG8gc29tZSB0ZXN0cyBvbiBJTiBjbGF1c2VzIGZvciBzaW1wbGUgZGF0YSB0eXBl cworQ1JFQVRFIFRBQkxFIGJyaW5faW5fdGVzdF9tdWx0aV8xIChhIElOVCwgYiBCSUdJTlQp IFdJVEggKGZpbGxmYWN0b3I9MTApOworSU5TRVJUIElOVE8gYnJpbl9pbl90ZXN0X211bHRp XzEKK1NFTEVDVCBpLzUgKyBtb2QoOTkxICogaSArIDYxNywgMjApLAorICAgICAgIGkvMTAg KyBtb2QoODUzICogaSArIDQ5MSwgMzApCisgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAw MCkgcyhpKTsKKworQ1JFQVRFIElOREVYIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8xIE9O IGJyaW5faW5fdGVzdF9tdWx0aV8xIFVTSU5HIGJyaW4gKGEgaW50NF9taW5tYXhfbXVsdGlf b3BzKSBXSVRIIChwYWdlc19wZXJfcmFuZ2U9MSk7CitDUkVBVEUgSU5ERVggYnJpbl9pbl90 ZXN0X211bHRpXzFfaWR4XzIgT04gYnJpbl9pbl90ZXN0X211bHRpXzEgVVNJTkcgYnJpbiAo YiBpbnQ4X21pbm1heF9tdWx0aV9vcHMpIFdJVEggKHBhZ2VzX3Blcl9yYW5nZT0xKTsKKwor U0VUIGVuYWJsZV9zZXFzY2FuPW9mZjsKKworLS0gaW50OiBlcXVhbGl0eQorRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEg V0hFUkUgYSBJTiAoMTEzKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X211bHRpXzEgV0hFUkUgYSBJTiAoMTEzKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSBJTiAoMTEz LCBOVUxMKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEg V0hFUkUgYSBJTiAoMTEzLCBOVUxMKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNU IENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSBJTiAoTlVMTCwg TlVMTCk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdI RVJFIGEgSU4gKE5VTEwsIE5VTEwpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIElOICgxMTMsIDE3 Nyk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJF IGEgSU4gKDExMywgMTc3KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSBJTiAoLTExMywgLTE3Nyk7 CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEg SU4gKC0xMTMsIC0xNzcpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIElOICgzMTMsIDM3Nyk7CisK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgSU4g KDMxMywgMzc3KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcsIE5VTEwpOwor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIElO ICgxMTMsIDE3NywgTlVMTCk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgSU4gKDExMywgMTc3LCAy NSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJF IGEgSU4gKDExMywgMTc3LCAyNSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgSU4gKE5VTEwsIDEx MywgMTc3LCAyNSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0 aV8xIFdIRVJFIGEgSU4gKE5VTEwsIDExMywgMTc3LCAyNSk7CisKKy0tIGludDogbGVzcyB0 aGFuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDwgQU5ZKEFSUkFZWzExM10pOworCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDwgQU5ZKEFSUkFZWzEx M10pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDwgQU5ZKEFSUkFZWzExMywgTlVMTF0pOworCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDwgQU5Z KEFSUkFZWzExMywgTlVMTF0pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDwgQU5ZKEFSUkFZW05V TEwsIE5VTExdOjppbnRbXSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVz dF9tdWx0aV8xIFdIRVJFIGEgPCBBTlkoQVJSQVlbTlVMTCwgTlVMTF06OmludFtdKTsKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X211bHRpXzEgV0hFUkUgYSA8PSBBTlkoQVJSQVlbMTEzLCAxNzddKTsKKworU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA8PSBBTlkoQVJSQVlb MTEzLCAxNzddKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA8IEFOWShBUlJBWVsxMTMsIDE3Nywg TlVMTF0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBX SEVSRSBhIDwgQU5ZKEFSUkFZWzExMywgMTc3LCBOVUxMXSk7CisKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJF IGEgPD0gQU5ZKEFSUkFZWzExMywgMTc3LCAyNV0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJP TSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDw9IEFOWShBUlJBWVsxMTMsIDE3Nywg MjVdKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA8IEFOWShBUlJBWVtOVUxMLCAxMTMsIDE3Nywg MjVdKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hF UkUgYSA8IEFOWShBUlJBWVtOVUxMLCAxMTMsIDE3NywgMjVdKTsKKworLS0gaW50OiBncmVh dGVyIHRoYW4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPiBBTlkoQVJSQVlbMTEzXSk7CisKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPiBBTlkoQVJS QVlbMTEzXSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPiBBTlkoQVJSQVlbMTEzLCBOVUxMXSk7 CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEg PiBBTlkoQVJSQVlbMTEzLCBOVUxMXSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPiBBTlkoQVJS QVlbTlVMTCwgTlVMTF06OmludFtdKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0X211bHRpXzEgV0hFUkUgYSA+IEFOWShBUlJBWVtOVUxMLCBOVUxMXTo6aW50W10p OworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfbXVsdGlfMSBXSEVSRSBhID49IEFOWShBUlJBWVsxMTMsIDE3N10pOworCitTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID49IEFOWShB UlJBWVsxMTMsIDE3N10pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID4gQU5ZKEFSUkFZWzExMywg MTc3LCBOVUxMXSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0 aV8xIFdIRVJFIGEgPiBBTlkoQVJSQVlbMTEzLCAxNzcsIE5VTExdKTsKKworRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEg V0hFUkUgYSA+IEFOWShBUlJBWVsxMTMsIDE3NywgMjVdKTsKKworU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA+IEFOWShBUlJBWVsxMTMsIDE3 NywgMjVdKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA+PSBBTlkoQVJSQVlbTlVMTCwgMTEzLCAx NzcsIDI1XSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8x IFdIRVJFIGEgPj0gQU5ZKEFSUkFZW05VTEwsIDExMywgMTc3LCAyNV0pOworCistLSBiaWdp bnQ6IGVxdWFsaXR5CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJP TSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIElOICg4Mik7CisKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgSU4gKDgyKTsKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211 bHRpXzEgV0hFUkUgYiBJTiAoODIsIE5VTEwpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBi cmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIElOICg4MiwgTlVMTCk7CisKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8x IFdIRVJFIGIgSU4gKE5VTEwsIE5VTEwpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIElOIChOVUxMLCBOVUxMKTsKKworRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEg V0hFUkUgYiBJTiAoODIsIDQxKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0X211bHRpXzEgV0hFUkUgYiBJTiAoODIsIDQxKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiBJ TiAoLTgyLCAtMTQxKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211 bHRpXzEgV0hFUkUgYiBJTiAoLTgyLCAtMTQxKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiBJTiAo MzgyLCA0NDEpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlf MSBXSEVSRSBiIElOICgzODIsIDQ0MSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgSU4gKDgyLCA0 MSwgTlVMTCk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8x IFdIRVJFIGIgSU4gKDgyLCA0MSwgTlVMTCk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgSU4gKDgy LCA0MSwgMTUpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlf MSBXSEVSRSBiIElOICg4MiwgNDEsIDE1KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiBJTiAoTlVM TCwgODIsIDQxLCAxNSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9t dWx0aV8xIFdIRVJFIGIgSU4gKE5VTEwsIDgyLCA0MSwgMTUpOworCistLSBiaWdpbnQ6IGxl c3MgdGhhbgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiA8IEFOWShBUlJBWVs4Ml0pOworCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDwgQU5ZKEFSUkFZ WzgyXSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPCBBTlkoQVJSQVlbODIsIE5VTExdKTsKKwor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiA8IEFO WShBUlJBWVs4MiwgTlVMTF0pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDwgQU5ZKEFSUkFZW05V TEwsIE5VTExdOjpiaWdpbnRbXSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9tdWx0aV8xIFdIRVJFIGIgPCBBTlkoQVJSQVlbTlVMTCwgTlVMTF06OmJpZ2ludFtd KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0X211bHRpXzEgV0hFUkUgYiA8PSBBTlkoQVJSQVlbODIsIDQxXSk7CisKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPD0gQU5ZKEFS UkFZWzgyLCA0MV0pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikg RlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDwgQU5ZKEFSUkFZWzgyLCA0MSwg TlVMTF0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBX SEVSRSBiIDwgQU5ZKEFSUkFZWzgyLCA0MSwgTlVMTF0pOworCitFWFBMQUlOIChDT1NUUyBP RkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBi IDw9IEFOWShBUlJBWVs4MiwgNDEsIDE1XSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPD0gQU5ZKEFSUkFZWzgyLCA0MSwgMTVdKTsK KworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0X211bHRpXzEgV0hFUkUgYiA8IEFOWShBUlJBWVtOVUxMLCA4MiwgNDEsIDE1XSk7CisK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPCBB TlkoQVJSQVlbTlVMTCwgODIsIDQxLCAxNV0pOworCistLSBiaWdpbnQ6IGdyZWF0ZXIgdGhh bgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0X211bHRpXzEgV0hFUkUgYiA+IEFOWShBUlJBWVs4Ml0pOworCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiID4gQU5ZKEFSUkFZWzgyXSk7 CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9tdWx0aV8xIFdIRVJFIGIgPiBBTlkoQVJSQVlbODIsIE5VTExdKTsKKworU0VMRUNU IENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiA+IEFOWShBUlJB WVs4MiwgTlVMTF0pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikg RlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiID4gQU5ZKEFSUkFZW05VTEwsIE5V TExdOjpiaWdpbnRbXSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9t dWx0aV8xIFdIRVJFIGIgPiBBTlkoQVJSQVlbTlVMTCwgTlVMTF06OmJpZ2ludFtdKTsKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X211bHRpXzEgV0hFUkUgYiA+IEFOWShBUlJBWVs4MiwgNDFdKTsKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiA+IEFOWShBUlJBWVs4Miwg NDFdKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiA+PSBBTlkoQVJSQVlbODIsIDQxLCBOVUxMXSk7 CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIg Pj0gQU5ZKEFSUkFZWzgyLCA0MSwgTlVMTF0pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiID49IEFO WShBUlJBWVs4MiwgNDEsIDE1XSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9tdWx0aV8xIFdIRVJFIGIgPj0gQU5ZKEFSUkFZWzgyLCA0MSwgMTVdKTsKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211 bHRpXzEgV0hFUkUgYiA+IEFOWShBUlJBWVtOVUxMLCA4MiwgNDEsIDE1XSk7CisKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPiBBTlkoQVJS QVlbTlVMTCwgODIsIDQxLCAxNV0pOworCisKK0RST1AgVEFCTEUgYnJpbl9pbl90ZXN0X211 bHRpXzE7CitSRVNFVCBlbmFibGVfc2Vxc2NhbjsKKworCistLSBkbyBzb21lIHRlc3RzIG9u IElOIGNsYXVzZXMgZm9yIHZhcmxlbmEgZGF0YSB0eXBlcworQ1JFQVRFIFRBQkxFIGJyaW5f aW5fdGVzdF9tdWx0aV8yIChhIFVVSUQpIFdJVEggKGZpbGxmYWN0b3I9MTApOworSU5TRVJU IElOVE8gYnJpbl9pbl90ZXN0X211bHRpXzIKK1NFTEVDVCB2Ojp1dWlkIEZST00gKFNFTEVD VCByb3dfbnVtYmVyKCkgT1ZFUiAoT1JERVIgQlkgdikgYywgdiBGUk9NIChTRUxFQ1QgbWQ1 KChpLzEzKTo6dGV4dCkgQVMgdiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApIHMoaSkp IGZvbykgYmFyIE9SREVSIEJZIGMgKyAyNSAqIHJhbmRvbSgpOworCitDUkVBVEUgSU5ERVgg YnJpbl9pbl90ZXN0X211bHRpXzJfaWR4IE9OIGJyaW5faW5fdGVzdF9tdWx0aV8yIFVTSU5H IGJyaW4gKGEgdXVpZF9taW5tYXhfbXVsdGlfb3BzKSBXSVRIIChwYWdlc19wZXJfcmFuZ2U9 MSk7CisKK1NFVCBlbmFibGVfc2Vxc2Nhbj1vZmY7CisKK0VYUExBSU4gKENPU1RTIE9GRikK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgSU4g KCczM2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0zNTEwMzkxNTIxODknKTsKKworU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYw LTlkZDYtMDFiYi1lNjlmLTM1MTAzOTE1MjE4OScpOworCitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElO ICgnMzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JywgTlVMTCk7CisKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgSU4gKCcz M2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0zNTEwMzkxNTIxODknLCBOVUxMKTsKKworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRp XzIgV0hFUkUgYSBJTiAoTlVMTCwgTlVMTCk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgSU4gKE5VTEwsIE5VTEwpOworCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlf MiBXSEVSRSBhIElOICgnMzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5Jywg J2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMCcpOworCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElOICgnMzNlNzVmZjAt OWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVj LWVlNDcxNDVhNzJjMCcpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElOICgnMzNlNzVmZjAtOWRk Ni0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVl NDcxNDVhNzJjMCcsIE5VTEwpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rl c3RfbXVsdGlfMiBXSEVSRSBhIElOICgnMzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5 MTUyMTg5JywgJ2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMCcsIE5VTEwp OworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElOICgnMzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUx MDM5MTUyMTg5JywgJ2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMCcsICdj NTFjZTQxMC1jMTI0LWExMGUtMGRiNS1lNGI5N2ZjMmFmMzknKTsKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwLTlk ZDYtMDFiYi1lNjlmLTM1MTAzOTE1MjE4OScsICdmNDU3YzU0NS1hOWRlLWQ4OGYtMThlYy1l ZTQ3MTQ1YTcyYzAnLCAnYzUxY2U0MTAtYzEyNC1hMTBlLTBkYjUtZTRiOTdmYzJhZjM5Jyk7 CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9tdWx0aV8yIFdIRVJFIGEgSU4gKE5VTEwsICczM2U3NWZmMC05ZGQ2LTAxYmItZTY5 Zi0zNTEwMzkxNTIxODknLCAnZjQ1N2M1NDUtYTlkZS1kODhmLTE4ZWMtZWU0NzE0NWE3MmMw JywgJ2M1MWNlNDEwLWMxMjQtYTEwZS0wZGI1LWU0Yjk3ZmMyYWYzOScpOworCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElOIChOVUxMLCAn MzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1LWE5ZGUt ZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMCcsICdjNTFjZTQxMC1jMTI0LWExMGUtMGRiNS1lNGI5 N2ZjMmFmMzknKTsKKworRFJPUCBUQUJMRSBicmluX2luX3Rlc3RfbXVsdGlfMjsKK1JFU0VU IGVuYWJsZV9zZXFzY2FuOwotLSAKMi40MC4xCgo= --------------rWyDHUFaciQk1dJG0D8xK1UK Content-Type: text/x-patch; charset=UTF-8; name="0008-Support-SK_SEARCHARRAY-in-BRIN-inclusion-20230608.patch" Content-Disposition: attachment; filename*0="0008-Support-SK_SEARCHARRAY-in-BRIN-inclusion-20230608.patch" Content-Transfer-Encoding: base64 RnJvbSBhMTcxN2NjZDc2NjMyNTkyY2JkMWNiN2JlODk1M2M2YzgzYTQ0YWUyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogU2F0LCAxMSBGZWIgMjAyMyAxNToyMzoyNSArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggOC85XSBTdXBwb3J0IFNLX1NFQVJDSEFSUkFZIGluIEJSSU4gaW5jbHVz aW9uCgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5faW5jbHVzaW9uLmMgfCAy NDYgKysrKysrKysrKysrKysrKysrLS0tLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1w cm9jLmRhdCAgICAgICAgfCAgIDkgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dCAgICAgICAgICB8ICAgNCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2JyaW4ub3V0 ICAgICAgIHwgMTMyICsrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvYnJpbi5z cWwgICAgICAgICAgICB8ICA1MyArKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAzOTAgaW5zZXJ0 aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2JyaW4vYnJpbl9pbmNsdXNpb24uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2Jy aW5faW5jbHVzaW9uLmMKaW5kZXggMDJmNGQwYWU3NmUuLjcxMmE4ZmQzYzIyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX2luY2x1c2lvbi5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5faW5jbHVzaW9uLmMKQEAgLTMwLDYgKzMwLDcg QEAKICNpbmNsdWRlICJhY2Nlc3Mvc2tleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW1v cC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgInV0aWxzL2Fy cmF5LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9k YXR1bS5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgpAQCAtNzIsNiArNzMsMTMg QEAKICNkZWZpbmUgSU5DTFVTSU9OX1VOTUVSR0VBQkxFCQkxCiAjZGVmaW5lIElOQ0xVU0lP Tl9DT05UQUlOU19FTVBUWQkyCiAKKy8qCisgKiBXZSB1c2Ugc29tZSBwcml2YXRlIHNrX2Zs YWdzIGJpdHMgaW4gcHJlcHJvY2Vzc2VkIHNjYW4ga2V5cy4gIFdlJ3JlIGFsbG93ZWQKKyAq IHRvIHVzZSBiaXRzIDE2LTMxIChzZWUgc2tleS5oKS4gIFRoZSB1cHBlcm1vc3QgYml0cyBh cmUgY29waWVkIGZyb20gdGhlCisgKiBpbmRleCdzIGluZG9wdGlvbltdIGFycmF5IGVudHJ5 IGZvciB0aGUgaW5kZXggYXR0cmlidXRlLgorICovCisjZGVmaW5lIFNLX0JSSU5fQVJSQVkJ MHgwMDAxMDAwMAkvKiBkZWNvbnN0cnVjdGVkIGFycmF5ICovCisKIAogdHlwZWRlZiBzdHJ1 Y3QgSW5jbHVzaW9uT3BhcXVlCiB7CkBAIC0yMzgsNDQgKzI0Niw5NCBAQCBicmluX2luY2x1 c2lvbl9hZGRfdmFsdWUoUEdfRlVOQ1RJT05fQVJHUykKIAlQR19SRVRVUk5fQk9PTCh0cnVl KTsKIH0KIAordHlwZWRlZiBzdHJ1Y3QgU2NhbktleUFycmF5IHsKKwlpbnQJCW5lbGVtZW50 czsKKwlEYXR1bSAgKmVsZW1lbnRzOworfSBTY2FuS2V5QXJyYXk7CisKK0RhdHVtCiticmlu X2luY2x1c2lvbl9wcmVwcm9jZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJLy8gQnJpbkRl c2MgICAqYmRlc2MgPSAoQnJpbkRlc2MgKikgUEdfR0VUQVJHX1BPSU5URVIoMCk7CisJU2Nh bktleQkJa2V5ID0gKFNjYW5LZXkpIFBHX0dFVEFSR19QT0lOVEVSKDEpOworCVNjYW5LZXkJ CW5ld2tleTsKKwlTY2FuS2V5QXJyYXkgKnNjYW5hcnJheTsKKworCUFycmF5VHlwZSAgKmFy cmF5dmFsOworCWludDE2CQllbG1sZW47CisJYm9vbAkJZWxtYnl2YWw7CisJY2hhcgkJZWxt YWxpZ247CisJaW50CQkJbnVtX2VsZW1zOworCURhdHVtCSAgICplbGVtX3ZhbHVlczsKKwli b29sCSAgICplbGVtX251bGxzOworCisJLyogbnVtYmVyIG9mIG5vbi1udWxsIGVsZW1lbnRz IGluIHRoZSBhcnJheSAqLworCWludAkJCW51bV9ub25udWxsczsKKworCS8qIGlnbm9yZSBz Y2FsYXIga2V5cyAqLworCWlmICghKGtleS0+c2tfZmxhZ3MgJiBTS19TRUFSQ0hBUlJBWSkp CisJCVBHX1JFVFVSTl9QT0lOVEVSKGtleSk7CisKKwlhcnJheXZhbCA9IERhdHVtR2V0QXJy YXlUeXBlUChrZXktPnNrX2FyZ3VtZW50KTsKKworCWdldF90eXBsZW5ieXZhbGFsaWduKEFS Ul9FTEVNVFlQRShhcnJheXZhbCksCisJCQkJCQkgJmVsbWxlbiwgJmVsbWJ5dmFsLCAmZWxt YWxpZ24pOworCisJZGVjb25zdHJ1Y3RfYXJyYXkoYXJyYXl2YWwsCisJCQkJCSAgQVJSX0VM RU1UWVBFKGFycmF5dmFsKSwKKwkJCQkJICBlbG1sZW4sIGVsbWJ5dmFsLCBlbG1hbGlnbiwK KwkJCQkJICAmZWxlbV92YWx1ZXMsICZlbGVtX251bGxzLCAmbnVtX2VsZW1zKTsKKworCS8q IGVsaW1pbmF0ZSBOVUxMIGVsZW1lbnRzICovCisJbnVtX25vbm51bGxzID0gMDsKKwlmb3Ig KGludCBpID0gMDsgaSA8IG51bV9lbGVtczsgaSsrKQorCXsKKwkJLyogc2tpcCBOVUxMIGVs ZW1lbnRzICovCisJCWlmIChlbGVtX251bGxzW2ldKQorCQkJY29udGludWU7CisKKwkJLyog aWYgbmVlZGVkLCBtb3ZlIHRoZSBub24tTlVMTCBvbmVzICovCisJCWlmIChudW1fbm9ubnVs bHMgIT0gaSkKKwkJCWVsZW1fdmFsdWVzW251bV9ub25udWxsc10gPSBlbGVtX3ZhbHVlc1tp XTsKKworCQludW1fbm9ubnVsbHMrKzsKKwl9CisKKwludW1fZWxlbXMgPSBudW1fbm9ubnVs bHM7CisKKwlzY2FuYXJyYXkgPSBwYWxsb2MwKHNpemVvZihTY2FuS2V5QXJyYXkpKTsKKwlz Y2FuYXJyYXktPm5lbGVtZW50cyA9IG51bV9lbGVtczsKKwlzY2FuYXJyYXktPmVsZW1lbnRz ID0gZWxlbV92YWx1ZXM7CisKKwluZXdrZXkgPSBwYWxsb2MwKHNpemVvZihTY2FuS2V5RGF0 YSkpOworCisJU2NhbktleUVudHJ5SW5pdGlhbGl6ZVdpdGhJbmZvKG5ld2tleSwKKwkJCQkJ CQkJICAgKGtleS0+c2tfZmxhZ3MgfCBTS19CUklOX0FSUkFZKSwKKwkJCQkJCQkJICAga2V5 LT5za19hdHRubywKKwkJCQkJCQkJICAga2V5LT5za19zdHJhdGVneSwKKwkJCQkJCQkJICAg a2V5LT5za19zdWJ0eXBlLAorCQkJCQkJCQkgICBrZXktPnNrX2NvbGxhdGlvbiwKKwkJCQkJ CQkJICAgJmtleS0+c2tfZnVuYywKKwkJCQkJCQkJICAgUG9pbnRlckdldERhdHVtKHNjYW5h cnJheSkpOworCisJUEdfUkVUVVJOX1BPSU5URVIobmV3a2V5KTsKK30KKwogLyoKLSAqIEJS SU4gaW5jbHVzaW9uIGNvbnNpc3RlbnQgZnVuY3Rpb24KLSAqCi0gKiBXZSdyZSBubyBsb25n ZXIgZGVhbGluZyB3aXRoIE5VTEwga2V5cyBpbiB0aGUgY29uc2lzdGVudCBmdW5jdGlvbiwg dGhhdCBpcwotICogbm93IGhhbmRsZWQgYnkgdGhlIEFNIGNvZGUuIFRoYXQgbWVhbnMgd2Ug c2hvdWxkIG5vdCBnZXQgYW55IGFsbC1OVUxMIHJhbmdlcwotICogZWl0aGVyLCBiZWNhdXNl IHRob3NlIGNhbid0IGJlIGNvbnNpc3RlbnQgd2l0aCByZWd1bGFyIChub3QgW0lTXSBOVUxM KSBrZXlzLgorICogQ2hlY2sgY29uc2lzdGVuY3kgb2YgYSBzaW5nbGUgc2NhbGFyIHZhbHVl IHdpdGggdGhlIEJSSU4gcmFuZ2UuCiAgKgotICogQWxsIG9mIHRoZSBzdHJhdGVnaWVzIGFy ZSBvcHRpb25hbC4KKyAqIENhbGxlZCBmb3IgYm90aCBzY2FsYXIgc2NhbmtleXMgYW5kIGZv ciBlYWNoIHZhbHVlIGluIFNLX1NFQVJDSEFSUkFZLgogICovCi1EYXR1bQotYnJpbl9pbmNs dXNpb25fY29uc2lzdGVudChQR19GVU5DVElPTl9BUkdTKQorc3RhdGljIGJvb2wKK2JyaW5f aW5jbHVzaW9uX2NvbnNpc3RlbnRfdmFsdWUoQnJpbkRlc2MgKmJkZXNjLCBCcmluVmFsdWVz ICpjb2x1bW4sCisJCQkJCQkJCUF0dHJOdW1iZXIgYXR0bm8sCisJCQkJCQkJCVN0cmF0ZWd5 TnVtYmVyIHN0cmF0ZWd5LCBPaWQgc3VidHlwZSwKKwkJCQkJCQkJT2lkIGNvbGxvaWQsIERh dHVtIHVuaW9udmFsLCBEYXR1bSBxdWVyeSkKIHsKLQlCcmluRGVzYyAgICpiZGVzYyA9IChC cmluRGVzYyAqKSBQR19HRVRBUkdfUE9JTlRFUigwKTsKLQlCcmluVmFsdWVzICpjb2x1bW4g PSAoQnJpblZhbHVlcyAqKSBQR19HRVRBUkdfUE9JTlRFUigxKTsKLQlTY2FuS2V5CQlrZXkg PSAoU2NhbktleSkgUEdfR0VUQVJHX1BPSU5URVIoMik7Ci0JT2lkCQkJY29sbG9pZCA9IFBH X0dFVF9DT0xMQVRJT04oKSwKLQkJCQlzdWJ0eXBlOwotCURhdHVtCQl1bmlvbnZhbDsKLQlB dHRyTnVtYmVyCWF0dG5vOwotCURhdHVtCQlxdWVyeTsKIAlGbWdySW5mbyAgICpmaW5mbzsK IAlEYXR1bQkJcmVzdWx0OwogCi0JLyogVGhpcyBvcGNsYXNzIHVzZXMgdGhlIG9sZCBzaWdu YXR1cmUgd2l0aCBvbmx5IHRocmVlIGFyZ3VtZW50cy4gKi8KLQlBc3NlcnQoUEdfTkFSR1Mo KSA9PSAzKTsKLQotCS8qIFNob3VsZCBub3QgYmUgZGVhbGluZyB3aXRoIGFsbC1OVUxMIHJh bmdlcy4gKi8KLQlBc3NlcnQoIWNvbHVtbi0+YnZfYWxsbnVsbHMpOwotCi0JLyogSXQgaGFz IHRvIGJlIGNoZWNrZWQsIGlmIGl0IGNvbnRhaW5zIGVsZW1lbnRzIHRoYXQgYXJlIG5vdCBt ZXJnZWFibGUuICovCi0JaWYgKERhdHVtR2V0Qm9vbChjb2x1bW4tPmJ2X3ZhbHVlc1tJTkNM VVNJT05fVU5NRVJHRUFCTEVdKSkKLQkJUEdfUkVUVVJOX0JPT0wodHJ1ZSk7Ci0KLQlhdHRu byA9IGtleS0+c2tfYXR0bm87Ci0Jc3VidHlwZSA9IGtleS0+c2tfc3VidHlwZTsKLQlxdWVy eSA9IGtleS0+c2tfYXJndW1lbnQ7Ci0JdW5pb252YWwgPSBjb2x1bW4tPmJ2X3ZhbHVlc1tJ TkNMVVNJT05fVU5JT05dOwotCXN3aXRjaCAoa2V5LT5za19zdHJhdGVneSkKKwlzd2l0Y2gg KHN0cmF0ZWd5KQogCXsKIAkJCS8qCiAJCQkgKiBQbGFjZW1lbnQgc3RyYXRlZ2llcwpAQCAt Mjk0LDQ5ICszNTIsNDkgQEAgYnJpbl9pbmNsdXNpb25fY29uc2lzdGVudChQR19GVU5DVElP Tl9BUkdTKQogCQkJZmluZm8gPSBpbmNsdXNpb25fZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJk ZXNjLCBhdHRubywgc3VidHlwZSwKIAkJCQkJCQkJCQkJCQlSVE92ZXJSaWdodFN0cmF0ZWd5 TnVtYmVyKTsKIAkJCXJlc3VsdCA9IEZ1bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lk LCB1bmlvbnZhbCwgcXVlcnkpOwotCQkJUEdfUkVUVVJOX0JPT0woIURhdHVtR2V0Qm9vbChy ZXN1bHQpKTsKKwkJCXJldHVybiAoIURhdHVtR2V0Qm9vbChyZXN1bHQpKTsKIAogCQljYXNl IFJUT3ZlckxlZnRTdHJhdGVneU51bWJlcjoKIAkJCWZpbmZvID0gaW5jbHVzaW9uX2dldF9z dHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUsCiAJCQkJCQkJCQkJCQkJ UlRSaWdodFN0cmF0ZWd5TnVtYmVyKTsKIAkJCXJlc3VsdCA9IEZ1bmN0aW9uQ2FsbDJDb2xs KGZpbmZvLCBjb2xsb2lkLCB1bmlvbnZhbCwgcXVlcnkpOwotCQkJUEdfUkVUVVJOX0JPT0wo IURhdHVtR2V0Qm9vbChyZXN1bHQpKTsKKwkJCXJldHVybiAoIURhdHVtR2V0Qm9vbChyZXN1 bHQpKTsKIAogCQljYXNlIFJUT3ZlclJpZ2h0U3RyYXRlZ3lOdW1iZXI6CiAJCQlmaW5mbyA9 IGluY2x1c2lvbl9nZXRfc3RyYXRlZ3lfcHJvY2luZm8oYmRlc2MsIGF0dG5vLCBzdWJ0eXBl LAogCQkJCQkJCQkJCQkJCVJUTGVmdFN0cmF0ZWd5TnVtYmVyKTsKIAkJCXJlc3VsdCA9IEZ1 bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lkLCB1bmlvbnZhbCwgcXVlcnkpOwotCQkJ UEdfUkVUVVJOX0JPT0woIURhdHVtR2V0Qm9vbChyZXN1bHQpKTsKKwkJCXJldHVybiAoIURh dHVtR2V0Qm9vbChyZXN1bHQpKTsKIAogCQljYXNlIFJUUmlnaHRTdHJhdGVneU51bWJlcjoK IAkJCWZpbmZvID0gaW5jbHVzaW9uX2dldF9zdHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0 bm8sIHN1YnR5cGUsCiAJCQkJCQkJCQkJCQkJUlRPdmVyTGVmdFN0cmF0ZWd5TnVtYmVyKTsK IAkJCXJlc3VsdCA9IEZ1bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lkLCB1bmlvbnZh bCwgcXVlcnkpOwotCQkJUEdfUkVUVVJOX0JPT0woIURhdHVtR2V0Qm9vbChyZXN1bHQpKTsK KwkJCXJldHVybiAoIURhdHVtR2V0Qm9vbChyZXN1bHQpKTsKIAogCQljYXNlIFJUQmVsb3dT dHJhdGVneU51bWJlcjoKIAkJCWZpbmZvID0gaW5jbHVzaW9uX2dldF9zdHJhdGVneV9wcm9j aW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUsCiAJCQkJCQkJCQkJCQkJUlRPdmVyQWJvdmVT dHJhdGVneU51bWJlcik7CiAJCQlyZXN1bHQgPSBGdW5jdGlvbkNhbGwyQ29sbChmaW5mbywg Y29sbG9pZCwgdW5pb252YWwsIHF1ZXJ5KTsKLQkJCVBHX1JFVFVSTl9CT09MKCFEYXR1bUdl dEJvb2wocmVzdWx0KSk7CisJCQlyZXR1cm4gKCFEYXR1bUdldEJvb2wocmVzdWx0KSk7CiAK IAkJY2FzZSBSVE92ZXJCZWxvd1N0cmF0ZWd5TnVtYmVyOgogCQkJZmluZm8gPSBpbmNsdXNp b25fZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKIAkJCQkJ CQkJCQkJCQlSVEFib3ZlU3RyYXRlZ3lOdW1iZXIpOwogCQkJcmVzdWx0ID0gRnVuY3Rpb25D YWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIHVuaW9udmFsLCBxdWVyeSk7Ci0JCQlQR19SRVRV Uk5fQk9PTCghRGF0dW1HZXRCb29sKHJlc3VsdCkpOworCQkJcmV0dXJuICghRGF0dW1HZXRC b29sKHJlc3VsdCkpOwogCiAJCWNhc2UgUlRPdmVyQWJvdmVTdHJhdGVneU51bWJlcjoKIAkJ CWZpbmZvID0gaW5jbHVzaW9uX2dldF9zdHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8s IHN1YnR5cGUsCiAJCQkJCQkJCQkJCQkJUlRCZWxvd1N0cmF0ZWd5TnVtYmVyKTsKIAkJCXJl c3VsdCA9IEZ1bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lkLCB1bmlvbnZhbCwgcXVl cnkpOwotCQkJUEdfUkVUVVJOX0JPT0woIURhdHVtR2V0Qm9vbChyZXN1bHQpKTsKKwkJCXJl dHVybiAoIURhdHVtR2V0Qm9vbChyZXN1bHQpKTsKIAogCQljYXNlIFJUQWJvdmVTdHJhdGVn eU51bWJlcjoKIAkJCWZpbmZvID0gaW5jbHVzaW9uX2dldF9zdHJhdGVneV9wcm9jaW5mbyhi ZGVzYywgYXR0bm8sIHN1YnR5cGUsCiAJCQkJCQkJCQkJCQkJUlRPdmVyQmVsb3dTdHJhdGVn eU51bWJlcik7CiAJCQlyZXN1bHQgPSBGdW5jdGlvbkNhbGwyQ29sbChmaW5mbywgY29sbG9p ZCwgdW5pb252YWwsIHF1ZXJ5KTsKLQkJCVBHX1JFVFVSTl9CT09MKCFEYXR1bUdldEJvb2wo cmVzdWx0KSk7CisJCQlyZXR1cm4gKCFEYXR1bUdldEJvb2wocmVzdWx0KSk7CiAKIAkJCS8q CiAJCQkgKiBPdmVybGFwIGFuZCBjb250YWlucyBzdHJhdGVnaWVzCkBAIC0zNTIsOSArNDEw LDkgQEAgYnJpbl9pbmNsdXNpb25fY29uc2lzdGVudChQR19GVU5DVElPTl9BUkdTKQogCQlj YXNlIFJUU3ViU3RyYXRlZ3lOdW1iZXI6CiAJCWNhc2UgUlRTdWJFcXVhbFN0cmF0ZWd5TnVt YmVyOgogCQkJZmluZm8gPSBpbmNsdXNpb25fZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNj LCBhdHRubywgc3VidHlwZSwKLQkJCQkJCQkJCQkJCQlrZXktPnNrX3N0cmF0ZWd5KTsKKwkJ CQkJCQkJCQkJCQlzdHJhdGVneSk7CiAJCQlyZXN1bHQgPSBGdW5jdGlvbkNhbGwyQ29sbChm aW5mbywgY29sbG9pZCwgdW5pb252YWwsIHF1ZXJ5KTsKLQkJCVBHX1JFVFVSTl9EQVRVTShy ZXN1bHQpOworCQkJcmV0dXJuIChEYXR1bUdldEJvb2wocmVzdWx0KSk7CiAKIAkJCS8qCiAJ CQkgKiBDb250YWluZWQgYnkgc3RyYXRlZ2llcwpAQCAtMzc0LDkgKzQzMiw5IEBAIGJyaW5f aW5jbHVzaW9uX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJCQkJCQkJCQlS VE92ZXJsYXBTdHJhdGVneU51bWJlcik7CiAJCQlyZXN1bHQgPSBGdW5jdGlvbkNhbGwyQ29s bChmaW5mbywgY29sbG9pZCwgdW5pb252YWwsIHF1ZXJ5KTsKIAkJCWlmIChEYXR1bUdldEJv b2wocmVzdWx0KSkKLQkJCQlQR19SRVRVUk5fQk9PTCh0cnVlKTsKKwkJCQlyZXR1cm4gKHRy dWUpOwogCi0JCQlQR19SRVRVUk5fREFUVU0oY29sdW1uLT5idl92YWx1ZXNbSU5DTFVTSU9O X0NPTlRBSU5TX0VNUFRZXSk7CisJCQlyZXR1cm4gKGNvbHVtbi0+YnZfdmFsdWVzW0lOQ0xV U0lPTl9DT05UQUlOU19FTVBUWV0pOwogCiAJCQkvKgogCQkJICogQWRqYWNlbnQgc3RyYXRl Z3kKQEAgLTM5MywxMiArNDUxLDEyIEBAIGJyaW5faW5jbHVzaW9uX2NvbnNpc3RlbnQoUEdf RlVOQ1RJT05fQVJHUykKIAkJCQkJCQkJCQkJCQlSVE92ZXJsYXBTdHJhdGVneU51bWJlcik7 CiAJCQlyZXN1bHQgPSBGdW5jdGlvbkNhbGwyQ29sbChmaW5mbywgY29sbG9pZCwgdW5pb252 YWwsIHF1ZXJ5KTsKIAkJCWlmIChEYXR1bUdldEJvb2wocmVzdWx0KSkKLQkJCQlQR19SRVRV Uk5fQk9PTCh0cnVlKTsKKwkJCQlyZXR1cm4gKHRydWUpOwogCiAJCQlmaW5mbyA9IGluY2x1 c2lvbl9nZXRfc3RyYXRlZ3lfcHJvY2luZm8oYmRlc2MsIGF0dG5vLCBzdWJ0eXBlLAogCQkJ CQkJCQkJCQkJCVJUQWRqYWNlbnRTdHJhdGVneU51bWJlcik7CiAJCQlyZXN1bHQgPSBGdW5j dGlvbkNhbGwyQ29sbChmaW5mbywgY29sbG9pZCwgdW5pb252YWwsIHF1ZXJ5KTsKLQkJCVBH X1JFVFVSTl9EQVRVTShyZXN1bHQpOworCQkJcmV0dXJuIChEYXR1bUdldEJvb2wocmVzdWx0 KSk7CiAKIAkJCS8qCiAJCQkgKiBCYXNpYyBjb21wYXJpc29uIHN0cmF0ZWdpZXMKQEAgLTQy OCw5ICs0ODYsOSBAQCBicmluX2luY2x1c2lvbl9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FS R1MpCiAJCQkJCQkJCQkJCQkJUlRSaWdodFN0cmF0ZWd5TnVtYmVyKTsKIAkJCXJlc3VsdCA9 IEZ1bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lkLCB1bmlvbnZhbCwgcXVlcnkpOwog CQkJaWYgKCFEYXR1bUdldEJvb2wocmVzdWx0KSkKLQkJCQlQR19SRVRVUk5fQk9PTCh0cnVl KTsKKwkJCQlyZXR1cm4gKHRydWUpOwogCi0JCQlQR19SRVRVUk5fREFUVU0oY29sdW1uLT5i dl92YWx1ZXNbSU5DTFVTSU9OX0NPTlRBSU5TX0VNUFRZXSk7CisJCQlyZXR1cm4gKGNvbHVt bi0+YnZfdmFsdWVzW0lOQ0xVU0lPTl9DT05UQUlOU19FTVBUWV0pOwogCiAJCWNhc2UgUlRT YW1lU3RyYXRlZ3lOdW1iZXI6CiAJCWNhc2UgUlRFcXVhbFN0cmF0ZWd5TnVtYmVyOgpAQCAt NDM4LDMwICs0OTYsMTEwIEBAIGJyaW5faW5jbHVzaW9uX2NvbnNpc3RlbnQoUEdfRlVOQ1RJ T05fQVJHUykKIAkJCQkJCQkJCQkJCQlSVENvbnRhaW5zU3RyYXRlZ3lOdW1iZXIpOwogCQkJ cmVzdWx0ID0gRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIHVuaW9udmFsLCBx dWVyeSk7CiAJCQlpZiAoRGF0dW1HZXRCb29sKHJlc3VsdCkpCi0JCQkJUEdfUkVUVVJOX0JP T0wodHJ1ZSk7CisJCQkJcmV0dXJuICh0cnVlKTsKIAotCQkJUEdfUkVUVVJOX0RBVFVNKGNv bHVtbi0+YnZfdmFsdWVzW0lOQ0xVU0lPTl9DT05UQUlOU19FTVBUWV0pOworCQkJcmV0dXJu IChjb2x1bW4tPmJ2X3ZhbHVlc1tJTkNMVVNJT05fQ09OVEFJTlNfRU1QVFldKTsKIAogCQlj YXNlIFJUR3JlYXRlckVxdWFsU3RyYXRlZ3lOdW1iZXI6CiAJCQlmaW5mbyA9IGluY2x1c2lv bl9nZXRfc3RyYXRlZ3lfcHJvY2luZm8oYmRlc2MsIGF0dG5vLCBzdWJ0eXBlLAogCQkJCQkJ CQkJCQkJCVJUTGVmdFN0cmF0ZWd5TnVtYmVyKTsKIAkJCXJlc3VsdCA9IEZ1bmN0aW9uQ2Fs bDJDb2xsKGZpbmZvLCBjb2xsb2lkLCB1bmlvbnZhbCwgcXVlcnkpOwogCQkJaWYgKCFEYXR1 bUdldEJvb2wocmVzdWx0KSkKLQkJCQlQR19SRVRVUk5fQk9PTCh0cnVlKTsKKwkJCQlyZXR1 cm4gKHRydWUpOwogCi0JCQlQR19SRVRVUk5fREFUVU0oY29sdW1uLT5idl92YWx1ZXNbSU5D TFVTSU9OX0NPTlRBSU5TX0VNUFRZXSk7CisJCQlyZXR1cm4gKGNvbHVtbi0+YnZfdmFsdWVz W0lOQ0xVU0lPTl9DT05UQUlOU19FTVBUWV0pOwogCiAJCWNhc2UgUlRHcmVhdGVyU3RyYXRl Z3lOdW1iZXI6CiAJCQkvKiBubyBuZWVkIHRvIGNoZWNrIGZvciBlbXB0eSBlbGVtZW50cyAq LwogCQkJZmluZm8gPSBpbmNsdXNpb25fZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBh dHRubywgc3VidHlwZSwKIAkJCQkJCQkJCQkJCQlSVExlZnRTdHJhdGVneU51bWJlcik7CiAJ CQlyZXN1bHQgPSBGdW5jdGlvbkNhbGwyQ29sbChmaW5mbywgY29sbG9pZCwgdW5pb252YWws IHF1ZXJ5KTsKLQkJCVBHX1JFVFVSTl9CT09MKCFEYXR1bUdldEJvb2wocmVzdWx0KSk7CisJ CQlyZXR1cm4gKCFEYXR1bUdldEJvb2wocmVzdWx0KSk7CiAKIAkJZGVmYXVsdDoKIAkJCS8q IHNob3VsZG4ndCBoYXBwZW4gKi8KLQkJCWVsb2coRVJST1IsICJpbnZhbGlkIHN0cmF0ZWd5 IG51bWJlciAlZCIsIGtleS0+c2tfc3RyYXRlZ3kpOwotCQkJUEdfUkVUVVJOX0JPT0woZmFs c2UpOworCQkJZWxvZyhFUlJPUiwgImludmFsaWQgc3RyYXRlZ3kgbnVtYmVyICVkIiwgc3Ry YXRlZ3kpOworCQkJcmV0dXJuIChmYWxzZSk7CisJfQorfQorCisvKgorICogQlJJTiBpbmNs dXNpb24gY29uc2lzdGVudCBmdW5jdGlvbgorICoKKyAqIFdlJ3JlIG5vIGxvbmdlciBkZWFs aW5nIHdpdGggTlVMTCBrZXlzIGluIHRoZSBjb25zaXN0ZW50IGZ1bmN0aW9uLCB0aGF0IGlz CisgKiBub3cgaGFuZGxlZCBieSB0aGUgQU0gY29kZS4gVGhhdCBtZWFucyB3ZSBzaG91bGQg bm90IGdldCBhbnkgYWxsLU5VTEwgcmFuZ2VzCisgKiBlaXRoZXIsIGJlY2F1c2UgdGhvc2Ug Y2FuJ3QgYmUgY29uc2lzdGVudCB3aXRoIHJlZ3VsYXIgKG5vdCBbSVNdIE5VTEwpIGtleXMu CisgKgorICogQWxsIG9mIHRoZSBzdHJhdGVnaWVzIGFyZSBvcHRpb25hbC4KKyAqLworRGF0 dW0KK2JyaW5faW5jbHVzaW9uX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlC cmluRGVzYyAgICpiZGVzYyA9IChCcmluRGVzYyAqKSBQR19HRVRBUkdfUE9JTlRFUigwKTsK KwlCcmluVmFsdWVzICpjb2x1bW4gPSAoQnJpblZhbHVlcyAqKSBQR19HRVRBUkdfUE9JTlRF UigxKTsKKwlTY2FuS2V5CQlrZXkgPSAoU2NhbktleSkgUEdfR0VUQVJHX1BPSU5URVIoMik7 CisJT2lkCQkJY29sbG9pZCA9IFBHX0dFVF9DT0xMQVRJT04oKSwKKwkJCQlzdWJ0eXBlOwor CURhdHVtCQl1bmlvbnZhbDsKKwlBdHRyTnVtYmVyCWF0dG5vOworCURhdHVtCQlxdWVyeTsK KworCS8qIFRoaXMgb3BjbGFzcyB1c2VzIHRoZSBvbGQgc2lnbmF0dXJlIHdpdGggb25seSB0 aHJlZSBhcmd1bWVudHMuICovCisJQXNzZXJ0KFBHX05BUkdTKCkgPT0gMyk7CisKKwkvKiBT aG91bGQgbm90IGJlIGRlYWxpbmcgd2l0aCBhbGwtTlVMTCByYW5nZXMuICovCisJQXNzZXJ0 KCFjb2x1bW4tPmJ2X2FsbG51bGxzKTsKKworCS8qIEl0IGhhcyB0byBiZSBjaGVja2VkLCBp ZiBpdCBjb250YWlucyBlbGVtZW50cyB0aGF0IGFyZSBub3QgbWVyZ2VhYmxlLiAqLworCWlm IChEYXR1bUdldEJvb2woY29sdW1uLT5idl92YWx1ZXNbSU5DTFVTSU9OX1VOTUVSR0VBQkxF XSkpCisJCVBHX1JFVFVSTl9CT09MKHRydWUpOworCisJYXR0bm8gPSBrZXktPnNrX2F0dG5v OworCXN1YnR5cGUgPSBrZXktPnNrX3N1YnR5cGU7CisJcXVlcnkgPSBrZXktPnNrX2FyZ3Vt ZW50OworCXVuaW9udmFsID0gY29sdW1uLT5idl92YWx1ZXNbSU5DTFVTSU9OX1VOSU9OXTsK KworCS8qCisJICogRm9yIHJlZ3VsYXIgKHNjYWxhcikgc2NhbiBrZXlzLCB3ZSBzaW1wbHkg Y29tcGFyZSB0aGUgdmFsdWUgdG8gdGhlCisJICogcmFuZ2UgbWluL21heCB2YWx1ZXMsIGFu ZCB3ZSdyZSBkb25lLiBGb3IgU0tfU0VBUkNIQVJSQVkga2V5cyB3ZQorCSAqIG5lZWQgdG8g ZGVwYXJzZSB0aGUgYXJyYXkgYW5kIGxvb3AgdGhyb3VnaCB0aGUgdmFsdWVzLgorCSAqLwor CWlmIChsaWtlbHkoIShrZXktPnNrX2ZsYWdzICYgU0tfU0VBUkNIQVJSQVkpKSkKKwl7CisJ CWJvb2wgdG1wOworCisJCXRtcCA9IGJyaW5faW5jbHVzaW9uX2NvbnNpc3RlbnRfdmFsdWUo YmRlc2MsIGNvbHVtbiwgYXR0bm8sCisJCQkJCQkJCQkJCSAga2V5LT5za19zdHJhdGVneSwK KwkJCQkJCQkJCQkJICBzdWJ0eXBlLCBjb2xsb2lkLAorCQkJCQkJCQkJCQkgIHVuaW9udmFs LCBxdWVyeSk7CisJCVBHX1JFVFVSTl9CT09MKHRtcCk7CisJfQorCWVsc2UKKwl7CisJCVNj YW5LZXlBcnJheSAqYXJyYXkgPSAoU2NhbktleUFycmF5ICopIHF1ZXJ5OworCQlib29sCQlt YXRjaGVzID0gZmFsc2U7CisKKwkJLyoKKwkJICogTG9vcCB0aHJvdWdoIGFsbCBwcmUtY2Fs Y3VsYXRlZCBoYXNoZXMsIGNoZWNrIHRoZSBibG9vbSBmaWx0ZXIuCisJCSAqCisJCSAqIFhY WCBXaXRoIGVtcHR5IGNhY2hlICh3aGljaCBjYW4gaGFwcGVuIGZvciBJTiBjbGF1c2Ugd2l0 aCBvbmx5IE5VTEwKKwkJICogdmFsdWVzKSwgd2UgbGVhdmUgdGhlIG1hdGNoZXMgZmxhZyBz ZXQgdG8gZmFsc2UuCisJCSAqLworCQlmb3IgKGludCBpID0gMDsgaSA8IGFycmF5LT5uZWxl bWVudHM7IGkrKykKKwkJeworCQkJRGF0dW0gCXF1ZXJ5X2VsZW1lbnQgPSBhcnJheS0+ZWxl bWVudHNbaV07CisKKwkJCW1hdGNoZXMgPSBicmluX2luY2x1c2lvbl9jb25zaXN0ZW50X3Zh bHVlKGJkZXNjLCBjb2x1bW4sIGF0dG5vLAorCQkJCQkJCQkJCQkJCSAga2V5LT5za19zdHJh dGVneSwKKwkJCQkJCQkJCQkJCQkgIHN1YnR5cGUsIGNvbGxvaWQsCisJCQkJCQkJCQkJCQkJ ICB1bmlvbnZhbCwgcXVlcnlfZWxlbWVudCk7CisKKwkJCWlmIChtYXRjaGVzKQorCQkJCWJy ZWFrOworCQl9CisKKwkJLyogd2UgY291bGQgZ2V0IGhlcmUgZm9yIGVtcHR5IGFycmF5LCBl LmcuIHdpdGggIkA+ICd7fSc6OnBvaW50W10iICovCisJCVBHX1JFVFVSTl9CT09MKG1hdGNo ZXMpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXBy b2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0CmluZGV4IDRmMTdm MGQ1OGMxLi5lZDViMjFlN2Y5YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19hbXByb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdApA QCAtMTQ3OCw2ICsxNDc4LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL25ldHdvcmtf aW5jbHVzaW9uX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdpbmV0JywKICAgYW1wcm9jcmln aHR0eXBlID0+ICdpbmV0JywgYW1wcm9jbnVtID0+ICc0JywKICAgYW1wcm9jID0+ICdicmlu X2luY2x1c2lvbl91bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL25ldHdvcmtf aW5jbHVzaW9uX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdpbmV0JywKKyAgYW1wcm9jcmln aHR0eXBlID0+ICdpbmV0JywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmlu X2luY2x1c2lvbl9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbmV0 d29ya19pbmNsdXNpb25fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLAogICBhbXBy b2NyaWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdp bmV0X21lcmdlJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbmV0d29ya19pbmNsdXNp b25fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLApAQCAtMjAxNiw2ICsyMDE5LDkg QEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3JhbmdlX2luY2x1c2lvbl9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2UnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueXJh bmdlJywgYW1wcm9jbnVtID0+ICc0JywKICAgYW1wcm9jID0+ICdicmluX2luY2x1c2lvbl91 bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL3JhbmdlX2luY2x1c2lvbl9vcHMn LCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2UnLAorICBhbXByb2NyaWdodHR5cGUgPT4g J2FueXJhbmdlJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX2luY2x1 c2lvbl9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vcmFuZ2VfaW5j bHVzaW9uX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnlyYW5nZScsCiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAnYW55cmFuZ2UnLCBhbXByb2NudW0gPT4gJzExJywKICAgYW1wcm9jID0+ ICdyYW5nZV9tZXJnZShhbnlyYW5nZSxhbnlyYW5nZSknIH0sCkBAIC0yMDk3LDYgKzIxMDMs OSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vYm94X2luY2x1c2lvbl9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAnYm94JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdib3gnLCBhbXBy b2NudW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5faW5jbHVzaW9uX3VuaW9uJyB9LAor eyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vYm94X2luY2x1c2lvbl9vcHMnLCBhbXByb2NsZWZ0 dHlwZSA9PiAnYm94JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdib3gnLCBhbXByb2NudW0g PT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5faW5jbHVzaW9uX3ByZXByb2Nlc3MnIH0sCiB7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9ib3hfaW5jbHVzaW9uX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICdib3gnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2JveCcsIGFtcHJvY251bSA9 PiAnMTEnLCBhbXByb2MgPT4gJ2JvdW5kX2JveCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdi cmluL2JveF9pbmNsdXNpb25fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2JveCcsCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCAwNDU1NTc0NmU2MC4uZDgyMjUwODc1ZmMgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtODY0MSw2ICs4NjQxLDEwIEBACiAgIHBy b25hbWUgPT4gJ2JyaW5faW5jbHVzaW9uX3VuaW9uJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcs CiAgIHByb2FyZ3R5cGVzID0+ICdpbnRlcm5hbCBpbnRlcm5hbCBpbnRlcm5hbCcsCiAgIHBy b3NyYyA9PiAnYnJpbl9pbmNsdXNpb25fdW5pb24nIH0sCit7IG9pZCA9PiAnOTMyNCcsIGRl c2NyID0+ICdCUklOIGluY2x1c2lvbiBzdXBwb3J0JywKKyAgcHJvbmFtZSA9PiAnYnJpbl9p bmNsdXNpb25fcHJlcHJvY2VzcycsIHByb2lzc3RyaWN0ID0+ICdmJywKKyAgcHJvcmV0dHlw ZSA9PiAnaW50ZXJuYWwnLCBwcm9hcmd0eXBlcyA9PiAnaW50ZXJuYWwgaW50ZXJuYWwnLAor ICBwcm9zcmMgPT4gJ2JyaW5faW5jbHVzaW9uX3ByZXByb2Nlc3MnIH0sCiAKICMgQlJJTiBi bG9vbQogeyBvaWQgPT4gJzQ1OTEnLCBkZXNjciA9PiAnQlJJTiBibG9vbSBzdXBwb3J0JywK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnJpbi5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2JyaW4ub3V0CmluZGV4IDI0MzYxYjkwZWIyLi5iZWQy NWZiMTk4MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9icmluLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2JyaW4ub3V0CkBAIC0xNDMwLDMg KzE0MzAsMTM1IEBAIFNFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8yIFdIRVJF IGEgSU4gKE5VTEwsICczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzCiAKIERST1AgVEFCTEUg YnJpbl9pbl90ZXN0XzI7CiBSRVNFVCBlbmFibGVfc2Vxc2NhbjsKKy0tIGRvIHNvbWUgdGVz dHMgb24gSU4gY2xhdXNlcyBmb3IgYm94ZXMgYW5kIHBvaW50cworQ1JFQVRFIFRBQkxFIGJy aW5faW5fdGVzdF8zIChhIEJPWCkgV0lUSCAoZmlsbGZhY3Rvcj0xMCk7CitJTlNFUlQgSU5U TyBicmluX2luX3Rlc3RfMworU0VMRUNUIGZvcm1hdCgnKCglcywlcyksICglcywlcykpJywg eCAtIG1vZChpLDE3KSwgeSAtIG1vZChpLDEzKSwgeCArIG1vZChpLDE5KSwgeSArIG1vZChp LDExKSk6OmJveCBGUk9NICgKKyAgU0VMRUNUIGksCisgICAgICAgICBpLzEwICsgbW9kKDk5 MSAqIGkgKyA2MTcsIDIwKSBBUyB4LAorICAgICAgICAgaS8xMCArIG1vZCg4NTMgKiBpICsg NDkxLCAzMCkgQVMgeQorICAgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCkgcyhpKQor KSBmb287CitDUkVBVEUgSU5ERVggYnJpbl9pbl90ZXN0XzNfaWR4IE9OIGJyaW5faW5fdGVz dF8zIFVTSU5HIGJyaW4gKGEgYm94X2luY2x1c2lvbl9vcHMpIFdJVEggKHBhZ2VzX3Blcl9y YW5nZT0xKTsKK1NFVCBlbmFibGVfc2Vxc2Nhbj1vZmY7CitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMyBXSEVSRSBhIEA+IEFOWSAo QVJSQVlbJygxMCwxMCknOjpwb2ludF0pOworICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dy ZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8zCisgICAg ICAgICBSZWNoZWNrIENvbmQ6IChhIEA+IEFOWSAoJ3siKDEwLDEwKSJ9Jzo6cG9pbnRbXSkp CisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzNfaWR4 CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSBAPiBBTlkgKCd7IigxMCwxMCkifSc6 OnBvaW50W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0XzMgV0hFUkUgYSBAPiBBTlkgKEFSUkFZWycoMTAsMTApJzo6cG9pbnRdKTsKKyBjb3Vu dCAKKy0tLS0tLS0KKyAgICAyNgorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMyBXSEVSRSBhIEA+IEFOWSAoQVJS QVlbJygxMCwxMCknOjpwb2ludCwgTlVMTF0pOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2lu X3Rlc3RfMworICAgICAgICAgUmVjaGVjayBDb25kOiAoYSBAPiBBTlkgKCd7IigxMCwxMCki LE5VTEx9Jzo6cG9pbnRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24g YnJpbl9pbl90ZXN0XzNfaWR4CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSBAPiBB TlkgKCd7IigxMCwxMCkiLE5VTEx9Jzo6cG9pbnRbXSkpCisoNSByb3dzKQorCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMyBXSEVSRSBhIEA+IEFOWSAoQVJSQVlbJygx MCwxMCknOjpwb2ludCwgTlVMTF0pOworIGNvdW50IAorLS0tLS0tLQorICAgIDI2CisoMSBy b3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF8zIFdIRVJFIGEgQD4gQU5ZIChBUlJBWVtOVUxMOjpwb2ludCwgTlVMTDo6cG9p bnRdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFw IEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMworICAgICAgICAgUmVjaGVjayBDb25kOiAo YSBAPiBBTlkgKCd7TlVMTCxOVUxMfSc6OnBvaW50W10pKQorICAgICAgICAgLT4gIEJpdG1h cCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8zX2lkeAorICAgICAgICAgICAgICAgSW5k ZXggQ29uZDogKGEgQD4gQU5ZICgne05VTEwsTlVMTH0nOjpwb2ludFtdKSkKKyg1IHJvd3Mp CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJFIGEgQD4gQU5Z IChBUlJBWVtOVUxMOjpwb2ludCwgTlVMTDo6cG9pbnRdKTsKKyBjb3VudCAKKy0tLS0tLS0K KyAgICAgMAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfMyBXSEVSRSBhIEA+IEFOWSAoQVJSQVlbJygxMCwxMCkn Ojpwb2ludCwgJyg1MCw1MCknOjpwb2ludF0pOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4g b24gYnJpbl9pbl90ZXN0XzMKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgQD4gQU5ZICgn eyIoMTAsMTApIiwiKDUwLDUwKSJ9Jzo6cG9pbnRbXSkpCisgICAgICAgICAtPiAgQml0bWFw IEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzNfaWR4CisgICAgICAgICAgICAgICBJbmRl eCBDb25kOiAoYSBAPiBBTlkgKCd7IigxMCwxMCkiLCIoNTAsNTApIn0nOjpwb2ludFtdKSkK Kyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJF IGEgQD4gQU5ZIChBUlJBWVsnKDEwLDEwKSc6OnBvaW50LCAnKDUwLDUwKSc6OnBvaW50XSk7 CisgY291bnQgCistLS0tLS0tCisgICAgODAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzMgV0hFUkUgYSBAPiBB TlkgKEFSUkFZWycoMTAsMTApJzo6cG9pbnQsICcoNTAsNTApJzo6cG9pbnQsIE5VTExdKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg QWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMwor ICAgICAgICAgUmVjaGVjayBDb25kOiAoYSBAPiBBTlkgKCd7IigxMCwxMCkiLCIoNTAsNTAp IixOVUxMfSc6OnBvaW50W10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9u IGJyaW5faW5fdGVzdF8zX2lkeAorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgQD4g QU5ZICgneyIoMTAsMTApIiwiKDUwLDUwKSIsTlVMTH0nOjpwb2ludFtdKSkKKyg1IHJvd3Mp CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJFIGEgQD4gQU5Z IChBUlJBWVsnKDEwLDEwKSc6OnBvaW50LCAnKDUwLDUwKSc6OnBvaW50LCBOVUxMXSk7Cisg Y291bnQgCistLS0tLS0tCisgICAgODAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzMgV0hFUkUgYSBAPiBBTlkg KEFSUkFZWycoMTAsMTApJzo6cG9pbnQsICcoNTAsNTApJzo6cG9pbnQsICcoMjUsMjUpJzo6 cG9pbnRdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4g b24gYnJpbl9pbl90ZXN0XzMKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgQD4gQU5ZICgn eyIoMTAsMTApIiwiKDUwLDUwKSIsIigyNSwyNSkifSc6OnBvaW50W10pKQorICAgICAgICAg LT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8zX2lkeAorICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKGEgQD4gQU5ZICgneyIoMTAsMTApIiwiKDUwLDUwKSIsIigy NSwyNSkifSc6OnBvaW50W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0XzMgV0hFUkUgYSBAPiBBTlkgKEFSUkFZWycoMTAsMTApJzo6cG9pbnQs ICcoNTAsNTApJzo6cG9pbnQsICcoMjUsMjUpJzo6cG9pbnRdKTsKKyBjb3VudCAKKy0tLS0t LS0KKyAgIDEyOQorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfMyBXSEVSRSBhIEA+IEFOWSAoQVJSQVlbTlVMTCwg JygxMCwxMCknOjpwb2ludCwgJyg1MCw1MCknOjpwb2ludCwgJygyNSwyNSknOjpwb2ludF0p OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNj YW4gb24gYnJpbl9pbl90ZXN0XzMKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgQD4gQU5Z ICgne05VTEwsIigxMCwxMCkiLCIoNTAsNTApIiwiKDI1LDI1KSJ9Jzo6cG9pbnRbXSkpCisg ICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzNfaWR4Cisg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSBAPiBBTlkgKCd7TlVMTCwiKDEwLDEwKSIs Iig1MCw1MCkiLCIoMjUsMjUpIn0nOjpwb2ludFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJFIGEgQD4gQU5ZIChBUlJBWVtOVUxM LCAnKDEwLDEwKSc6OnBvaW50LCAnKDUwLDUwKSc6OnBvaW50LCAnKDI1LDI1KSc6OnBvaW50 XSk7CisgY291bnQgCistLS0tLS0tCisgICAxMjkKKygxIHJvdykKKworRFJPUCBUQUJMRSBi cmluX2luX3Rlc3RfMzsKK1JFU0VUIGVuYWJsZV9zZXFzY2FuOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvYnJpbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9icmlu LnNxbAppbmRleCA3MTk5YzkxMDhiMC4uODZjNzU0NWVkNWEgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2JyaW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Jy aW4uc3FsCkBAIC03OTgsMyArNzk4LDU2IEBAIFNFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF8yIFdIRVJFIGEgSU4gKE5VTEwsICczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAz CiAKIERST1AgVEFCTEUgYnJpbl9pbl90ZXN0XzI7CiBSRVNFVCBlbmFibGVfc2Vxc2NhbjsK KworCistLSBkbyBzb21lIHRlc3RzIG9uIElOIGNsYXVzZXMgZm9yIGJveGVzIGFuZCBwb2lu dHMKK0NSRUFURSBUQUJMRSBicmluX2luX3Rlc3RfMyAoYSBCT1gpIFdJVEggKGZpbGxmYWN0 b3I9MTApOworSU5TRVJUIElOVE8gYnJpbl9pbl90ZXN0XzMKK1NFTEVDVCBmb3JtYXQoJygo JXMsJXMpLCAoJXMsJXMpKScsIHggLSBtb2QoaSwxNyksIHkgLSBtb2QoaSwxMyksIHggKyBt b2QoaSwxOSksIHkgKyBtb2QoaSwxMSkpOjpib3ggRlJPTSAoCisgIFNFTEVDVCBpLAorICAg ICAgICAgaS8xMCArIG1vZCg5OTEgKiBpICsgNjE3LCAyMCkgQVMgeCwKKyAgICAgICAgIGkv MTAgKyBtb2QoODUzICogaSArIDQ5MSwgMzApIEFTIHkKKyAgICBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLDEwMDApIHMoaSkKKykgZm9vOworCitDUkVBVEUgSU5ERVggYnJpbl9pbl90ZXN0 XzNfaWR4IE9OIGJyaW5faW5fdGVzdF8zIFVTSU5HIGJyaW4gKGEgYm94X2luY2x1c2lvbl9v cHMpIFdJVEggKHBhZ2VzX3Blcl9yYW5nZT0xKTsKKworU0VUIGVuYWJsZV9zZXFzY2FuPW9m ZjsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0XzMgV0hFUkUgYSBAPiBBTlkgKEFSUkFZWycoMTAsMTApJzo6cG9pbnRdKTsKKwor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzMgV0hFUkUgYSBAPiBBTlkgKEFS UkFZWycoMTAsMTApJzo6cG9pbnRdKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNU IENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzMgV0hFUkUgYSBAPiBBTlkgKEFSUkFZWyco MTAsMTApJzo6cG9pbnQsIE5VTExdKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0XzMgV0hFUkUgYSBAPiBBTlkgKEFSUkFZWycoMTAsMTApJzo6cG9pbnQsIE5VTExd KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0XzMgV0hFUkUgYSBAPiBBTlkgKEFSUkFZW05VTEw6OnBvaW50LCBOVUxMOjpwb2lu dF0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMyBXSEVSRSBhIEA+ IEFOWSAoQVJSQVlbTlVMTDo6cG9pbnQsIE5VTEw6OnBvaW50XSk7CisKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJFIGEg QD4gQU5ZIChBUlJBWVsnKDEwLDEwKSc6OnBvaW50LCAnKDUwLDUwKSc6OnBvaW50XSk7CisK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJFIGEgQD4gQU5ZIChB UlJBWVsnKDEwLDEwKSc6OnBvaW50LCAnKDUwLDUwKSc6OnBvaW50XSk7CisKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJF IGEgQD4gQU5ZIChBUlJBWVsnKDEwLDEwKSc6OnBvaW50LCAnKDUwLDUwKSc6OnBvaW50LCBO VUxMXSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJFIGEg QD4gQU5ZIChBUlJBWVsnKDEwLDEwKSc6OnBvaW50LCAnKDUwLDUwKSc6OnBvaW50LCBOVUxM XSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF8zIFdIRVJFIGEgQD4gQU5ZIChBUlJBWVsnKDEwLDEwKSc6OnBvaW50LCAnKDUw LDUwKSc6OnBvaW50LCAnKDI1LDI1KSc6OnBvaW50XSk7CisKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF8zIFdIRVJFIGEgQD4gQU5ZIChBUlJBWVsnKDEwLDEwKSc6OnBv aW50LCAnKDUwLDUwKSc6OnBvaW50LCAnKDI1LDI1KSc6OnBvaW50XSk7CisKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJF IGEgQD4gQU5ZIChBUlJBWVtOVUxMLCAnKDEwLDEwKSc6OnBvaW50LCAnKDUwLDUwKSc6OnBv aW50LCAnKDI1LDI1KSc6OnBvaW50XSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF8zIFdIRVJFIGEgQD4gQU5ZIChBUlJBWVtOVUxMLCAnKDEwLDEwKSc6OnBvaW50 LCAnKDUwLDUwKSc6OnBvaW50LCAnKDI1LDI1KSc6OnBvaW50XSk7CisKK0RST1AgVEFCTEUg YnJpbl9pbl90ZXN0XzM7CitSRVNFVCBlbmFibGVfc2Vxc2NhbjsKLS0gCjIuNDAuMQoK --------------rWyDHUFaciQk1dJG0D8xK1UK Content-Type: text/x-patch; charset=UTF-8; name="0009-Support-SK_SEARCHARRAY-in-BRIN-bloom-20230608.patch" Content-Disposition: attachment; filename="0009-Support-SK_SEARCHARRAY-in-BRIN-bloom-20230608.patch" Content-Transfer-Encoding: base64 RnJvbSA4M2YxZWI0YTUwODMyYzA5NDU4NTAyYTgwYWU5OWFiODY4MzFmNTVlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogU2F0LCAxMSBGZWIgMjAyMyAyMDo1MDowMyArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggOS85XSBTdXBwb3J0IFNLX1NFQVJDSEFSUkFZIGluIEJSSU4gYmxvb20K Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9ibG9vbS5jICAgICB8IDE2NiAr KysrKysrKy0tCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgICAgICAgIHwg IDYwICsrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgfCAg IDMgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9icmluX2Jsb29tLm91dCB8IDM3NyAr KysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvYnJpbl9ibG9v bS5zcWwgICAgICB8IDEzNSArKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA3MTUgaW5zZXJ0 aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2JyaW4vYnJpbl9ibG9vbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9i bG9vbS5jCmluZGV4IDRmZjgwYWViMGNjLi41YzNiYTY1OWJhMiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9ibG9vbS5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9icmluL2JyaW5fYmxvb20uYwpAQCAtMTI1LDkgKzEyNSwxMSBAQAogI2luY2x1ZGUg ImFjY2Vzcy9zdHJhdG51bS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfYW1vcC5oIgorI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCiAj aW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXR1bS5oIgog I2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL21lbXV0aWxz LmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUu aCIKIApAQCAtMTUxLDYgKzE1MywxMyBAQAogICovCiAjZGVmaW5lCQlQUk9DTlVNX0JBU0UJ CQkxMQogCisvKgorICogV2UgdXNlIHNvbWUgcHJpdmF0ZSBza19mbGFncyBiaXRzIGluIHBy ZXByb2Nlc3NlZCBzY2FuIGtleXMuICBXZSdyZSBhbGxvd2VkCisgKiB0byB1c2UgYml0cyAx Ni0zMSAoc2VlIHNrZXkuaCkuICBUaGUgdXBwZXJtb3N0IGJpdHMgYXJlIGNvcGllZCBmcm9t IHRoZQorICogaW5kZXgncyBpbmRvcHRpb25bXSBhcnJheSBlbnRyeSBmb3IgdGhlIGluZGV4 IGF0dHJpYnV0ZS4KKyAqLworI2RlZmluZSBTS19CUklOX0hBU0hFUwkweDAwMDEwMDAwCS8q IGRlY29uc3RydWN0ZWQgYXJyYXksIGNhbGN1bGF0ZWQgaGFzaGVzICovCisKIC8qCiAgKiBT dG9yYWdlIHR5cGUgZm9yIEJSSU4ncyByZWxvcHRpb25zLgogICovCkBAIC00MDIsMjEgKzQx MSwxNCBAQCBibG9vbV9hZGRfdmFsdWUoQmxvb21GaWx0ZXIgKmZpbHRlciwgdWludDMyIHZh bHVlLCBib29sICp1cGRhdGVkKQogCXJldHVybiBmaWx0ZXI7CiB9CiAKLQogLyoKICAqIGJs b29tX2NvbnRhaW5zX3ZhbHVlCiAgKiAJCUNoZWNrIGlmIHRoZSBibG9vbSBmaWx0ZXIgY29u dGFpbnMgYSBwYXJ0aWN1bGFyIHZhbHVlLgogICovCiBzdGF0aWMgYm9vbAotYmxvb21fY29u dGFpbnNfdmFsdWUoQmxvb21GaWx0ZXIgKmZpbHRlciwgdWludDMyIHZhbHVlKQorYmxvb21f Y29udGFpbnNfaGFzaGVzKEJsb29tRmlsdGVyICpmaWx0ZXIsIHVpbnQ2NCBoMSwgdWludDY0 IGgyKQogewogCWludAkJCWk7Ci0JdWludDY0CQloMSwKLQkJCQloMjsKLQotCS8qIGNhbGN1 bGF0ZSB0aGUgdHdvIGhhc2hlcyAqLwotCWgxID0gaGFzaF9ieXRlc191aW50MzJfZXh0ZW5k ZWQodmFsdWUsIEJMT09NX1NFRURfMSkgJSBmaWx0ZXItPm5iaXRzOwotCWgyID0gaGFzaF9i eXRlc191aW50MzJfZXh0ZW5kZWQodmFsdWUsIEJMT09NX1NFRURfMikgJSBmaWx0ZXItPm5i aXRzOwogCiAJLyogY29tcHV0ZSB0aGUgcmVxdWVzdGVkIG51bWJlciBvZiBoYXNoZXMgKi8K IAlmb3IgKGkgPSAwOyBpIDwgZmlsdGVyLT5uaGFzaGVzOyBpKyspCkBAIC01OTAsNiArNTky LDEwNCBAQCBicmluX2Jsb29tX2FkZF92YWx1ZShQR19GVU5DVElPTl9BUkdTKQogCVBHX1JF VFVSTl9CT09MKHVwZGF0ZWQpOwogfQogCit0eXBlZGVmIHN0cnVjdCBIYXNoQ2FjaGUgewor CWludAkJbmVsZW1lbnRzOworCXVpbnQ2NCAqaDE7CisJdWludDY0ICpoMjsKK30gSGFzaENh Y2hlOworCitEYXR1bQorYnJpbl9ibG9vbV9wcmVwcm9jZXNzKFBHX0ZVTkNUSU9OX0FSR1Mp Cit7CisJQnJpbkRlc2MgICAqYmRlc2MgPSAoQnJpbkRlc2MgKikgUEdfR0VUQVJHX1BPSU5U RVIoMCk7CisJU2NhbktleQkJa2V5ID0gKFNjYW5LZXkpIFBHX0dFVEFSR19QT0lOVEVSKDEp OworCUJsb29tT3B0aW9ucyAqb3B0cyA9IChCbG9vbU9wdGlvbnMgKikgUEdfR0VUX09QQ0xB U1NfT1BUSU9OUygpOworCVNjYW5LZXkJCW5ld2tleTsKKwlIYXNoQ2FjaGUgICpjYWNoZSA9 IHBhbGxvYzAoc2l6ZW9mKEhhc2hDYWNoZSkpOworCisJaW50CQkJbmJpdHM7CisJRm1ncklu Zm8gICAqZmluZm87CisJdWludDMyCQloYXNoVmFsdWU7CisKKwkvKiB3ZSdsbCBuZWVkIHRv IGNhbGN1bGF0ZSBoYXNoZXMsIHNvIGdldCB0aGUgcHJvYyAqLworCWZpbmZvID0gYmxvb21f Z2V0X3Byb2NpbmZvKGJkZXNjLCBrZXktPnNrX2F0dG5vLCBQUk9DTlVNX0hBU0gpOworCisJ LyoKKwkgKiBXZSBkb24ndCBoYXZlIGEgZmlsdGVyIGZyb20gYW55IHJhbmdlIHlldCwgc28g d2UganVzdCByZS1jYWxjdWxhdGUKKwkgKiB0aGUgc2l6ZSAobnVtYmVyIG9mIGJpdHMpIGp1 c3QgbGlrZSBibG9vbV9pbml0LgorCSAqLworCWJsb29tX2ZpbHRlcl9zaXplKGJyaW5fYmxv b21fZ2V0X25kaXN0aW5jdChiZGVzYywgb3B0cyksCisJCQkJCSAgQmxvb21HZXRGYWxzZVBv c2l0aXZlUmF0ZShvcHRzKSwKKwkJCQkJICBOVUxMLCAmbmJpdHMsIE5VTEwpOworCisJLyog cHJlY2FsY3VsYXRlIHRoZSBoYXNoIGV2ZW4gZm9yIHNpbXBsZSBzY2FuIGtleXMgKi8KKwlp ZiAoIShrZXktPnNrX2ZsYWdzICYgU0tfU0VBUkNIQVJSQVkpKQorCXsKKwkJRGF0dW0gdmFs dWUgPSBrZXktPnNrX2FyZ3VtZW50OworCisJCWNhY2hlLT5uZWxlbWVudHMgPSAxOworCQlj YWNoZS0+aDEgPSAodWludDY0ICopIHBhbGxvYzAoc2l6ZW9mKHVpbnQ2NCkpOworCQljYWNo ZS0+aDIgPSAodWludDY0ICopIHBhbGxvYzAoc2l6ZW9mKHVpbnQ2NCkpOworCisJCWhhc2hW YWx1ZSA9IERhdHVtR2V0VUludDMyKEZ1bmN0aW9uQ2FsbDFDb2xsKGZpbmZvLCBrZXktPnNr X2NvbGxhdGlvbiwgdmFsdWUpKTsKKworCQljYWNoZS0+aDFbMF0gPSBoYXNoX2J5dGVzX3Vp bnQzMl9leHRlbmRlZChoYXNoVmFsdWUsIEJMT09NX1NFRURfMSkgJSBuYml0czsKKwkJY2Fj aGUtPmgyWzBdID0gaGFzaF9ieXRlc191aW50MzJfZXh0ZW5kZWQoaGFzaFZhbHVlLCBCTE9P TV9TRUVEXzIpICUgbmJpdHM7CisJfQorCWVsc2UKKwl7CisJCUFycmF5VHlwZSAgKmFycmF5 dmFsOworCQlpbnQxNgkJZWxtbGVuOworCQlib29sCQllbG1ieXZhbDsKKwkJY2hhcgkJZWxt YWxpZ247CisJCWludAkJCW51bV9lbGVtczsKKwkJRGF0dW0JICAgKmVsZW1fdmFsdWVzOwor CQlib29sCSAgICplbGVtX251bGxzOworCisJCWFycmF5dmFsID0gRGF0dW1HZXRBcnJheVR5 cGVQKGtleS0+c2tfYXJndW1lbnQpOworCisJCWdldF90eXBsZW5ieXZhbGFsaWduKEFSUl9F TEVNVFlQRShhcnJheXZhbCksCisJCQkJCQkJICZlbG1sZW4sICZlbG1ieXZhbCwgJmVsbWFs aWduKTsKKworCQlkZWNvbnN0cnVjdF9hcnJheShhcnJheXZhbCwKKwkJCQkJCSAgQVJSX0VM RU1UWVBFKGFycmF5dmFsKSwKKwkJCQkJCSAgZWxtbGVuLCBlbG1ieXZhbCwgZWxtYWxpZ24s CisJCQkJCQkgICZlbGVtX3ZhbHVlcywgJmVsZW1fbnVsbHMsICZudW1fZWxlbXMpOworCisJ CWNhY2hlLT5oMSA9ICh1aW50NjQgKikgcGFsbG9jMChzaXplb2YodWludDY0KSAqIG51bV9l bGVtcyk7CisJCWNhY2hlLT5oMiA9ICh1aW50NjQgKikgcGFsbG9jMChzaXplb2YodWludDY0 KSAqIG51bV9lbGVtcyk7CisKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fZWxlbXM7IGkr KykKKwkJeworCQkJRGF0dW0JZWxlbWVudCA9IGVsZW1fdmFsdWVzW2ldOworCisJCQkvKiBp Z25vcmUgTlVMTCBlbGVtZW50cyAqLworCQkJaWYgKGVsZW1fbnVsbHNbaV0pCisJCQkJY29u dGludWU7CisKKwkJCWhhc2hWYWx1ZSA9IERhdHVtR2V0VUludDMyKEZ1bmN0aW9uQ2FsbDFD b2xsKGZpbmZvLCBrZXktPnNrX2NvbGxhdGlvbiwgZWxlbWVudCkpOworCisJCQljYWNoZS0+ aDFbY2FjaGUtPm5lbGVtZW50c10gPSBoYXNoX2J5dGVzX3VpbnQzMl9leHRlbmRlZChoYXNo VmFsdWUsIEJMT09NX1NFRURfMSkgJSBuYml0czsKKwkJCWNhY2hlLT5oMltjYWNoZS0+bmVs ZW1lbnRzXSA9IGhhc2hfYnl0ZXNfdWludDMyX2V4dGVuZGVkKGhhc2hWYWx1ZSwgQkxPT01f U0VFRF8yKSAlIG5iaXRzOworCisJCQljYWNoZS0+bmVsZW1lbnRzKys7CisJCX0KKwl9CisK KwluZXdrZXkgPSBwYWxsb2MwKHNpemVvZihTY2FuS2V5RGF0YSkpOworCisJU2NhbktleUVu dHJ5SW5pdGlhbGl6ZVdpdGhJbmZvKG5ld2tleSwKKwkJCQkJCQkJICAgKGtleS0+c2tfZmxh Z3MgfCBTS19CUklOX0hBU0hFUyksCisJCQkJCQkJCSAgIGtleS0+c2tfYXR0bm8sCisJCQkJ CQkJCSAgIGtleS0+c2tfc3RyYXRlZ3ksCisJCQkJCQkJCSAgIGtleS0+c2tfc3VidHlwZSwK KwkJCQkJCQkJICAga2V5LT5za19jb2xsYXRpb24sCisJCQkJCQkJCSAgICZrZXktPnNrX2Z1 bmMsCisJCQkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bShjYWNoZSkpOworCisJUEdfUkVUVVJO X1BPSU5URVIobmV3a2V5KTsKK30KKwogLyoKICAqIEdpdmVuIGFuIGluZGV4IHR1cGxlIGNv cnJlc3BvbmRpbmcgdG8gYSBjZXJ0YWluIHBhZ2UgcmFuZ2UgYW5kIGEgc2NhbiBrZXksCiAg KiByZXR1cm4gd2hldGhlciB0aGUgc2NhbiBrZXkgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBp bmRleCB0dXBsZSdzIGJsb29tCkBAIC01OTgsMTYgKzY5OCwxMCBAQCBicmluX2Jsb29tX2Fk ZF92YWx1ZShQR19GVU5DVElPTl9BUkdTKQogRGF0dW0KIGJyaW5fYmxvb21fY29uc2lzdGVu dChQR19GVU5DVElPTl9BUkdTKQogewotCUJyaW5EZXNjICAgKmJkZXNjID0gKEJyaW5EZXNj ICopIFBHX0dFVEFSR19QT0lOVEVSKDApOwogCUJyaW5WYWx1ZXMgKmNvbHVtbiA9IChCcmlu VmFsdWVzICopIFBHX0dFVEFSR19QT0lOVEVSKDEpOwogCVNjYW5LZXkgICAgKmtleXMgPSAo U2NhbktleSAqKSBQR19HRVRBUkdfUE9JTlRFUigyKTsKIAlpbnQJCQlua2V5cyA9IFBHX0dF VEFSR19JTlQzMigzKTsKLQlPaWQJCQljb2xsb2lkID0gUEdfR0VUX0NPTExBVElPTigpOwot CUF0dHJOdW1iZXIJYXR0bm87Ci0JRGF0dW0JCXZhbHVlOwogCWJvb2wJCW1hdGNoZXM7Ci0J Rm1nckluZm8gICAqZmluZm87Ci0JdWludDMyCQloYXNoVmFsdWU7CiAJQmxvb21GaWx0ZXIg KmZpbHRlcjsKIAlpbnQJCQlrZXlubzsKIApAQCAtNjI1LDIyICs3MTksNDIgQEAgYnJpbl9i bG9vbV9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCS8qIE5VTEwga2V5cyBhcmUg aGFuZGxlZCBhbmQgZmlsdGVyZWQtb3V0IGluIGJyaW5nZXRiaXRtYXAgKi8KIAkJQXNzZXJ0 KCEoa2V5LT5za19mbGFncyAmIFNLX0lTTlVMTCkpOwogCi0JCWF0dG5vID0ga2V5LT5za19h dHRubzsKLQkJdmFsdWUgPSBrZXktPnNrX2FyZ3VtZW50OworCQkvKgorCQkgKiBLZXlzIHNo b3VsZCBiZSBwcmVwcm9jZXNzZWQgaW50byBhIGhhc2ggY2FjaGUgKGV2ZW4gYSBzaW5nbGUK KwkJICogdmFsdWUgc2NhbiBrZXlzLCBub3QganVzdCBTS19TRUFSQ0hBUlJBWSBvbmVzKS4K KwkJICovCisJCUFzc2VydChrZXktPnNrX2ZsYWdzICYgU0tfQlJJTl9IQVNIRVMpOwogCiAJ CXN3aXRjaCAoa2V5LT5za19zdHJhdGVneSkKIAkJewogCQkJY2FzZSBCbG9vbUVxdWFsU3Ry YXRlZ3lOdW1iZXI6Ci0KLQkJCQkvKgotCQkJCSAqIFdlIHdhbnQgdG8gcmV0dXJuIHRoZSBj dXJyZW50IHBhZ2UgcmFuZ2UgaWYgdGhlIGJsb29tIGZpbHRlcgotCQkJCSAqIHNlZW1zIHRv IGNvbnRhaW4gdGhlIHZhbHVlLgotCQkJCSAqLwotCQkJCWZpbmZvID0gYmxvb21fZ2V0X3By b2NpbmZvKGJkZXNjLCBhdHRubywgUFJPQ05VTV9IQVNIKTsKLQotCQkJCWhhc2hWYWx1ZSA9 IERhdHVtR2V0VUludDMyKEZ1bmN0aW9uQ2FsbDFDb2xsKGZpbmZvLCBjb2xsb2lkLCB2YWx1 ZSkpOwotCQkJCW1hdGNoZXMgJj0gYmxvb21fY29udGFpbnNfdmFsdWUoZmlsdGVyLCBoYXNo VmFsdWUpOwotCisJCQkJeworCQkJCQlIYXNoQ2FjaGUgICpjYWNoZSA9IChIYXNoQ2FjaGUg Kikga2V5LT5za19hcmd1bWVudDsKKworCQkJCQkvKiBhc3N1bWUgbm8gbWF0Y2ggKi8KKwkJ CQkJbWF0Y2hlcyA9IGZhbHNlOworCisJCQkJCS8qCisJCQkJCSAqIFdlIHdhbnQgdG8gcmV0 dXJuIHRoZSBjdXJyZW50IHBhZ2UgcmFuZ2UgaWYgdGhlIGJsb29tIGZpbHRlcgorCQkJCQkg KiBzZWVtcyB0byBjb250YWluIGFueSBvZiB0aGUgdmFsdWVzIChvciBhIHNpbmdsZSB2YWx1 ZSkuCisJCQkJCSAqCisJCQkJCSAqIFhYWCBXaXRoIGVtcHR5IGNhY2hlICh3aGljaCBjYW4g aGFwcGVuIGZvciBJTiBjbGF1c2Ugd2l0aAorCQkJCQkgKiBvbmx5IE5VTEwgdmFsdWVzKSwg d2UgbGVhdmUgdGhlIG1hdGNoZXMgZmxhZyBzZXQgdG8gZmFsc2UuCisJCQkJCSAqLworCQkJ CQlmb3IgKGludCBpID0gMDsgaSA8IGNhY2hlLT5uZWxlbWVudHM7IGkrKykKKwkJCQkJewor CQkJCQkJYm9vbAl0bXAgPSBmYWxzZTsKKworCQkJCQkJdG1wID0gYmxvb21fY29udGFpbnNf aGFzaGVzKGZpbHRlciwgY2FjaGUtPmgxW2ldLCBjYWNoZS0+aDJbaV0pOworCisJCQkJCQkv KiBpZiB3ZSBmb3VuZCBhIG1hdGNoaW5nIHZhbHVlLCB3ZSBoYXZlIGEgbWF0Y2ggKi8KKwkJ CQkJCWlmIChEYXR1bUdldEJvb2wodG1wKSkKKwkJCQkJCXsKKwkJCQkJCQltYXRjaGVzID0g Qm9vbEdldERhdHVtKHRydWUpOworCQkJCQkJCWJyZWFrOworCQkJCQkJfQorCQkJCQl9CisJ CQkJfQogCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBzaG91bGRuJ3QgaGFwcGVu ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKaW5kZXggZWQ1YjIxZTdmOWIuLmQ5 NTFmY2QxYTA2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5k YXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0CkBAIC04MjIsNiAr ODIyLDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2J5dGVhX2Jsb29tX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdieXRlYScsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYnl0ZWEn LCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycg fSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2J5dGVhX2Jsb29tX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdieXRlYScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYnl0ZWEnLCBhbXBy b2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fcHJlcHJvY2VzcycgfSwK IHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2J5dGVhX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICdieXRlYScsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYnl0ZWEnLCBhbXByb2Nu dW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNodmFybGVuYScgfSwKIApAQCAtODUzLDYgKzg1 Niw4IEBACiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnY2hhcicsIGFtcHJvY251bSA9PiAnNCcs IGFtcHJvYyA9PiAnYnJpbl9ibG9vbV91bmlvbicgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdi cmluL2NoYXJfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2NoYXInLAogICBhbXBy b2NyaWdodHR5cGUgPT4gJ2NoYXInLCBhbXByb2NudW0gPT4gJzUnLCBhbXByb2MgPT4gJ2Jy aW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2NoYXJfYmxv b21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2NoYXInLAorICBhbXByb2NyaWdodHR5cGUg PT4gJ2NoYXInLCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4gJ2JyaW5fYmxvb21fcHJl cHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2NoYXJfYmxvb21fb3BzJywg YW1wcm9jbGVmdHR5cGUgPT4gJ2NoYXInLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2NoYXIn LCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNoY2hhcicgfSwKIApAQCAtODg0 LDYgKzg4OSw4IEBACiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbmFtZScsIGFtcHJvY251bSA9 PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV91bmlvbicgfSwKIHsgYW1wcm9jZmFtaWx5 ID0+ICdicmluL25hbWVfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ25hbWUnLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ25hbWUnLCBhbXByb2NudW0gPT4gJzUnLCBhbXByb2Mg PT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL25h bWVfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ25hbWUnLAorICBhbXByb2NyaWdo dHR5cGUgPT4gJ25hbWUnLCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4gJ2JyaW5fYmxv b21fcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL25hbWVfYmxvb21f b3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ25hbWUnLAogICBhbXByb2NyaWdodHR5cGUgPT4g J25hbWUnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNobmFtZScgfSwKIApA QCAtMTAxMCw2ICsxMDE3LDggQEAKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQ4JywgYW1w cm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX2Jsb29tX3VuaW9uJyB9LAogeyBhbXBy b2NmYW1pbHkgPT4gJ2JyaW4vaW50ZWdlcl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9 PiAnaW50OCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50OCcsIGFtcHJvY251bSA9PiAn NScsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkg PT4gJ2JyaW4vaW50ZWdlcl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW50OCcs CisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50OCcsIGFtcHJvY251bSA9PiAnNicsIGFtcHJv YyA9PiAnYnJpbl9ibG9vbV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2Jy aW4vaW50ZWdlcl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW50OCcsCiAgIGFt cHJvY3JpZ2h0dHlwZSA9PiAnaW50OCcsIGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4g J2hhc2hpbnQ4JyB9LAogCkBAIC0xMDI1LDYgKzEwMzQsOCBAQAogICBhbXByb2NyaWdodHR5 cGUgPT4gJ2ludDInLCBhbXByb2NudW0gPT4gJzQnLCBhbXByb2MgPT4gJ2JyaW5fYmxvb21f dW5pb24nIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX2Jsb29tX29wcycs IGFtcHJvY2xlZnR0eXBlID0+ICdpbnQyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQy JywgYW1wcm9jbnVtID0+ICc1JywgYW1wcm9jID0+ICdicmluX2Jsb29tX29wdGlvbnMnIH0s Cit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX2Jsb29tX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdpbnQyJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQyJywgYW1wcm9j bnVtID0+ICc2JywgYW1wcm9jID0+ICdicmluX2Jsb29tX3ByZXByb2Nlc3MnIH0sCiB7IGFt cHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBl ID0+ICdpbnQyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQyJywgYW1wcm9jbnVtID0+ ICcxMScsIGFtcHJvYyA9PiAnaGFzaGludDInIH0sCiAKQEAgLTEwNDAsNiArMTA1MSw4IEBA CiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50NCcsIGFtcHJvY251bSA9PiAnNCcsIGFtcHJv YyA9PiAnYnJpbl9ibG9vbV91bmlvbicgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2lu dGVnZXJfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDQnLAogICBhbXByb2Ny aWdodHR5cGUgPT4gJ2ludDQnLCBhbXByb2NudW0gPT4gJzUnLCBhbXByb2MgPT4gJ2JyaW5f Ymxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfYmxv b21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDQnLAorICBhbXByb2NyaWdodHR5cGUg PT4gJ2ludDQnLCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4gJ2JyaW5fYmxvb21fcHJl cHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfYmxvb21fb3Bz JywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDQnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2lu dDQnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNoaW50NCcgfSwKIApAQCAt MTA3MSw2ICsxMDg0LDggQEAKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd0ZXh0JywgYW1wcm9j bnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX2Jsb29tX3VuaW9uJyB9LAogeyBhbXByb2Nm YW1pbHkgPT4gJ2JyaW4vdGV4dF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGV4 dCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGV4dCcsIGFtcHJvY251bSA9PiAnNScsIGFt cHJvYyA9PiAnYnJpbl9ibG9vbV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2Jy aW4vdGV4dF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGV4dCcsCisgIGFtcHJv Y3JpZ2h0dHlwZSA9PiAndGV4dCcsIGFtcHJvY251bSA9PiAnNicsIGFtcHJvYyA9PiAnYnJp bl9ibG9vbV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGV4dF9i bG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGV4dCcsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAndGV4dCcsIGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4gJ2hhc2h0ZXh0JyB9 LAogCkBAIC0xMTI0LDYgKzExMzksOCBAQAogICBhbXByb2NyaWdodHR5cGUgPT4gJ29pZCcs IGFtcHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV91bmlvbicgfSwKIHsg YW1wcm9jZmFtaWx5ID0+ICdicmluL29pZF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9 PiAnb2lkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdvaWQnLCBhbXByb2NudW0gPT4gJzUn LCBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ ICdicmluL29pZF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnb2lkJywKKyAgYW1w cm9jcmlnaHR0eXBlID0+ICdvaWQnLCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4gJ2Jy aW5fYmxvb21fcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL29pZF9i bG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnb2lkJywKICAgYW1wcm9jcmlnaHR0eXBl ID0+ICdvaWQnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNob2lkJyB9LAog CkBAIC0xMTU0LDYgKzExNzEsOCBAQAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3RpZCcsIGFt cHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV91bmlvbicgfSwKIHsgYW1w cm9jZmFtaWx5ID0+ICdicmluL3RpZF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAn dGlkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd0aWQnLCBhbXByb2NudW0gPT4gJzUnLCBh bXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdi cmluL3RpZF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGlkJywKKyAgYW1wcm9j cmlnaHR0eXBlID0+ICd0aWQnLCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4gJ2JyaW5f Ymxvb21fcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3RpZF9ibG9v bV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGlkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ ICd0aWQnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNodGlkJyB9LAogCkBA IC0xMjczLDYgKzEyOTIsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZmxvYXRfYmxv b21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2Zsb2F0NCcsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnZmxvYXQ0JywgYW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX2Js b29tX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9mbG9hdF9ibG9vbV9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnZmxvYXQ0JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ ICdmbG9hdDQnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21f cHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2Zsb2F0X2Jsb29tX29w cycsIGFtcHJvY2xlZnR0eXBlID0+ICdmbG9hdDQnLAogICBhbXByb2NyaWdodHR5cGUgPT4g J2Zsb2F0NCcsIGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4gJ2hhc2hmbG9hdDQnIH0s CiAKQEAgLTEyOTAsNiArMTMxMiw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9mbG9h dF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnZmxvYXQ4JywKICAgYW1wcm9jcmln aHR0eXBlID0+ICdmbG9hdDgnLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2Jy aW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2Zsb2F0X2Js b29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdmbG9hdDgnLAorICBhbXByb2NyaWdodHR5 cGUgPT4gJ2Zsb2F0OCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9i bG9vbV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZmxvYXRfYmxv b21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2Zsb2F0OCcsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnZmxvYXQ4JywgYW1wcm9jbnVtID0+ICcxMScsIGFtcHJvYyA9PiAnaGFzaGZsb2F0 OCcgfSwKIApAQCAtMTM0OSw2ICsxMzc0LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmlu L21hY2FkZHJfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ21hY2FkZHInLAogICBh bXByb2NyaWdodHR5cGUgPT4gJ21hY2FkZHInLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXBy b2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmlu L21hY2FkZHJfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ21hY2FkZHInLAorICBh bXByb2NyaWdodHR5cGUgPT4gJ21hY2FkZHInLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXBy b2MgPT4gJ2JyaW5fYmxvb21fcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdi cmluL21hY2FkZHJfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ21hY2FkZHInLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ21hY2FkZHInLCBhbXByb2NudW0gPT4gJzExJywgYW1w cm9jID0+ICdoYXNobWFjYWRkcicgfSwKIApAQCAtMTQwOCw2ICsxNDM2LDkgQEAKIHsgYW1w cm9jZmFtaWx5ID0+ICdicmluL21hY2FkZHI4X2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBl ID0+ICdtYWNhZGRyOCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbWFjYWRkcjgnLCBhbXBy b2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sg YW1wcm9jZmFtaWx5ID0+ICdicmluL21hY2FkZHI4X2Jsb29tX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICdtYWNhZGRyOCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbWFjYWRkcjgnLCBh bXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fcHJlcHJvY2Vzcycg fSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL21hY2FkZHI4X2Jsb29tX29wcycsIGFtcHJv Y2xlZnR0eXBlID0+ICdtYWNhZGRyOCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbWFjYWRk cjgnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNobWFjYWRkcjgnIH0sCiAK QEAgLTE0NjIsNiArMTQ5Myw4IEBACiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW5ldCcsIGFt cHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV91bmlvbicgfSwKIHsgYW1w cm9jZmFtaWx5ID0+ICdicmluL25ldHdvcmtfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUg PT4gJ2luZXQnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0gPT4g JzUnLCBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5 ID0+ICdicmluL25ldHdvcmtfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQn LAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0gPT4gJzYnLCBhbXBy b2MgPT4gJ2JyaW5fYmxvb21fcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdi cmluL25ldHdvcmtfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLAogICBh bXByb2NyaWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ ICdoYXNoaW5ldCcgfSwKIApAQCAtMTUyMCw2ICsxNTUzLDkgQEAKIHsgYW1wcm9jZmFtaWx5 ID0+ICdicmluL2JwY2hhcl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYnBjaGFy JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdicGNoYXInLCBhbXByb2NudW0gPT4gJzUnLAog ICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ ICdicmluL2JwY2hhcl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYnBjaGFyJywK KyAgYW1wcm9jcmlnaHR0eXBlID0+ICdicGNoYXInLCBhbXByb2NudW0gPT4gJzYnLAorICBh bXByb2MgPT4gJ2JyaW5fYmxvb21fcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ ICdicmluL2JwY2hhcl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYnBjaGFyJywK ICAgYW1wcm9jcmlnaHR0eXBlID0+ICdicGNoYXInLCBhbXByb2NudW0gPT4gJzExJywgYW1w cm9jID0+ICdoYXNoYnBjaGFyJyB9LAogCkBAIC0xNTc0LDYgKzE2MTAsOCBAQAogICBhbXBy b2NyaWdodHR5cGUgPT4gJ3RpbWUnLCBhbXByb2NudW0gPT4gJzQnLCBhbXByb2MgPT4gJ2Jy aW5fYmxvb21fdW5pb24nIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aW1lX2Jsb29t X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ ICd0aW1lJywgYW1wcm9jbnVtID0+ICc1JywgYW1wcm9jID0+ICdicmluX2Jsb29tX29wdGlv bnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aW1lX2Jsb29tX29wcycsIGFtcHJv Y2xlZnR0eXBlID0+ICd0aW1lJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICd0aW1lJywgYW1w cm9jbnVtID0+ICc2JywgYW1wcm9jID0+ICdicmluX2Jsb29tX3ByZXByb2Nlc3MnIH0sCiB7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aW1lX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBl ID0+ICd0aW1lJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd0aW1lJywgYW1wcm9jbnVtID0+ ICcxMScsIGFtcHJvYyA9PiAndGltZV9oYXNoJyB9LAogCkBAIC0xNzA3LDYgKzE3NDUsOSBA QAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfYmxvb21fb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ3RpbWVzdGFtcCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXN0 YW1wJywgYW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX2Jsb29tX29wdGlv bnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9kYXRldGltZV9ibG9vbV9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAndGltZXN0YW1wJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICd0 aW1lc3RhbXAnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21f cHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX2Jsb29t X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lc3RhbXAnLAogICBhbXByb2NyaWdodHR5 cGUgPT4gJ3RpbWVzdGFtcCcsIGFtcHJvY251bSA9PiAnMTEnLAogICBhbXByb2MgPT4gJ3Rp bWVzdGFtcF9oYXNoJyB9LApAQCAtMTcyNiw2ICsxNzY3LDkgQEAKIHsgYW1wcm9jZmFtaWx5 ID0+ICdicmluL2RhdGV0aW1lX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1l c3RhbXB0eicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXN0YW1wdHonLCBhbXByb2Nu dW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1w cm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBl ID0+ICd0aW1lc3RhbXB0eicsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXN0YW1wdHon LCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fcHJlcHJvY2Vz cycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX2Jsb29tX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICd0aW1lc3RhbXB0eicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAn dGltZXN0YW1wdHonLCBhbXByb2NudW0gPT4gJzExJywKICAgYW1wcm9jID0+ICd0aW1lc3Rh bXBfaGFzaCcgfSwKQEAgLTE3NDIsNiArMTc4Niw4IEBACiAgIGFtcHJvY3JpZ2h0dHlwZSA9 PiAnZGF0ZScsIGFtcHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV91bmlv bicgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX2Jsb29tX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdkYXRlJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdkYXRlJywg YW1wcm9jbnVtID0+ICc1JywgYW1wcm9jID0+ICdicmluX2Jsb29tX29wdGlvbnMnIH0sCit7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9kYXRldGltZV9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0 dHlwZSA9PiAnZGF0ZScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnZGF0ZScsIGFtcHJvY251 bSA9PiAnNicsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV9wcmVwcm9jZXNzJyB9LAogeyBhbXBy b2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUg PT4gJ2RhdGUnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2RhdGUnLCBhbXByb2NudW0gPT4g JzExJywgYW1wcm9jID0+ICdoYXNoaW50NCcgfSwKIApAQCAtMTgwMSw2ICsxODQ3LDkgQEAK IHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVydmFsX2Jsb29tX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdpbnRlcnZhbCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50ZXJ2YWwn LCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycg fSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVydmFsX2Jsb29tX29wcycsIGFtcHJv Y2xlZnR0eXBlID0+ICdpbnRlcnZhbCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50ZXJ2 YWwnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fcHJlcHJv Y2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVydmFsX2Jsb29tX29wcycs IGFtcHJvY2xlZnR0eXBlID0+ICdpbnRlcnZhbCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAn aW50ZXJ2YWwnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdpbnRlcnZhbF9oYXNo JyB9LAogCkBAIC0xODU5LDYgKzE5MDgsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4v dGltZXR6X2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1ldHonLAogICBhbXBy b2NyaWdodHR5cGUgPT4gJ3RpbWV0eicsIGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9 PiAnYnJpbl9ibG9vbV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGlt ZXR6X2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1ldHonLAorICBhbXByb2Ny aWdodHR5cGUgPT4gJ3RpbWV0eicsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAn YnJpbl9ibG9vbV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGlt ZXR6X2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1ldHonLAogICBhbXByb2Ny aWdodHR5cGUgPT4gJ3RpbWV0eicsIGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4gJ3Rp bWV0el9oYXNoJyB9LAogCkBAIC0xOTQ5LDYgKzIwMDEsOSBAQAogeyBhbXByb2NmYW1pbHkg PT4gJ2JyaW4vbnVtZXJpY19ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbnVtZXJp YycsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbnVtZXJpYycsIGFtcHJvY251bSA9PiAnNScs CiAgIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkg PT4gJ2JyaW4vbnVtZXJpY19ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbnVtZXJp YycsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbnVtZXJpYycsIGFtcHJvY251bSA9PiAnNics CisgIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1p bHkgPT4gJ2JyaW4vbnVtZXJpY19ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbnVt ZXJpYycsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbnVtZXJpYycsIGFtcHJvY251bSA9PiAn MTEnLCBhbXByb2MgPT4gJ2hhc2hfbnVtZXJpYycgfSwKIApAQCAtMjAwMyw2ICsyMDU4LDgg QEAKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd1dWlkJywgYW1wcm9jbnVtID0+ICc0JywgYW1w cm9jID0+ICdicmluX2Jsb29tX3VuaW9uJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4v dXVpZF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndXVpZCcsCiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAndXVpZCcsIGFtcHJvY251bSA9PiAnNScsIGFtcHJvYyA9PiAnYnJpbl9i bG9vbV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdXVpZF9ibG9vbV9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndXVpZCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAn dXVpZCcsIGFtcHJvY251bSA9PiAnNicsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV9wcmVwcm9j ZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdXVpZF9ibG9vbV9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAndXVpZCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndXVpZCcsIGFt cHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4gJ3V1aWRfaGFzaCcgfSwKIApAQCAtMjA4Nyw2 ICsyMTQ0LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3BnX2xzbl9ibG9vbV9vcHMn LCBhbXByb2NsZWZ0dHlwZSA9PiAncGdfbHNuJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdw Z19sc24nLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0 aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL3BnX2xzbl9ibG9vbV9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAncGdfbHNuJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdwZ19s c24nLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fcHJlcHJv Y2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3BnX2xzbl9ibG9vbV9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAncGdfbHNuJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdwZ19s c24nLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdwZ19sc25faGFzaCcgfSwKIApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggZDgyMjUwODc1ZmMuLmFlMTNkMDc2Nzgy IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTg2NjQsNiArODY2NCw5IEBACiB7 IG9pZCA9PiAnNDU5NScsIGRlc2NyID0+ICdCUklOIGJsb29tIHN1cHBvcnQnLAogICBwcm9u YW1lID0+ICdicmluX2Jsb29tX29wdGlvbnMnLCBwcm9pc3N0cmljdCA9PiAnZicsIHByb3Jl dHR5cGUgPT4gJ3ZvaWQnLAogICBwcm9hcmd0eXBlcyA9PiAnaW50ZXJuYWwnLCBwcm9zcmMg PT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgb2lkID0+ICc5MzI1JywgZGVzY3IgPT4g J0JSSU4gYmxvb20gc3VwcG9ydCcsCisgIHByb25hbWUgPT4gJ2JyaW5fYmxvb21fcHJlcHJv Y2VzcycsIHByb2lzc3RyaWN0ID0+ICdmJywgcHJvcmV0dHlwZSA9PiAnaW50ZXJuYWwnLAor ICBwcm9hcmd0eXBlcyA9PiAnaW50ZXJuYWwgaW50ZXJuYWwnLCBwcm9zcmMgPT4gJ2JyaW5f Ymxvb21fcHJlcHJvY2VzcycgfSwKIAogIyB1c2VybG9jayByZXBsYWNlbWVudHMKIHsgb2lk ID0+ICcyODgwJywgZGVzY3IgPT4gJ29idGFpbiBleGNsdXNpdmUgYWR2aXNvcnkgbG9jaycs CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2JyaW5fYmxvb20ub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9icmluX2Jsb29tLm91dAppbmRleCAzMmM1 NmE5OTZhMi4uYjgzYjJiYWUxNjIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvYnJpbl9ibG9vbS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9i cmluX2Jsb29tLm91dApAQCAtNDI2LDMgKzQyNiwzODAgQEAgRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIGJyaW5fdGVzdF9ibG9vbSBXSEVSRSBiID0gMTsKICAgIEZpbHRl cjogKGIgPSAxKQogKDIgcm93cykKIAorLS0gZG8gc29tZSB0ZXN0cyBvbiBJTiBjbGF1c2Vz IGZvciBzaW1wbGUgZGF0YSB0eXBlcworQ1JFQVRFIFRBQkxFIGJyaW5faW5fdGVzdF9ibG9v bV8xIChhIElOVCwgYiBCSUdJTlQpIFdJVEggKGZpbGxmYWN0b3I9MTApOworSU5TRVJUIElO VE8gYnJpbl9pbl90ZXN0X2Jsb29tXzEKK1NFTEVDVCBpLzUgKyBtb2QoOTkxICogaSArIDYx NywgMjApLAorICAgICAgIGkvMTAgKyBtb2QoODUzICogaSArIDQ5MSwgMzApCisgIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsMTAwMCkgcyhpKTsKK0NSRUFURSBJTkRFWCBicmluX2luX3Rl c3RfYmxvb21fMV9pZHhfMSBPTiBicmluX2luX3Rlc3RfYmxvb21fMSBVU0lORyBicmluIChh IGludDRfYmxvb21fb3BzKG5fZGlzdGluY3RfcGVyX3JhbmdlPTUwKSkgV0lUSCAocGFnZXNf cGVyX3JhbmdlPTEpOworQ1JFQVRFIElOREVYIGJyaW5faW5fdGVzdF9ibG9vbV8xX2lkeF8y IE9OIGJyaW5faW5fdGVzdF9ibG9vbV8xIFVTSU5HIGJyaW4gKGIgaW50OF9ibG9vbV9vcHMo bl9kaXN0aW5jdF9wZXJfcmFuZ2U9NTApKSBXSVRIIChwYWdlc19wZXJfcmFuZ2U9MSk7CitT RVQgZW5hYmxlX3NlcXNjYW49b2ZmOworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYSBJTiAoMTEzKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9u IGJyaW5faW5fdGVzdF9ibG9vbV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gMTEz KQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9v bV8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDExMykKKyg1IHJv d3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJF IGEgSU4gKDExMyk7CisgY291bnQgCistLS0tLS0tCisgICAgIDgKKygxIHJvdykKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Js b29tXzEgV0hFUkUgYSBJTiAoMTEzLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg QWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfYmxv b21fMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA9IEFOWSAoJ3sxMTMsTlVMTH0nOjpp bnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5f dGVzdF9ibG9vbV8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFO WSAoJ3sxMTMsTlVMTH0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYSBJTiAoMTEzLCBOVUxMKTsK KyBjb3VudCAKKy0tLS0tLS0KKyAgICAgOAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBP RkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVSRSBh IElOIChOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUK KyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9vbV8xCisgICAg ICAgICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgne05VTEwsTlVMTH0nOjppbnRlZ2VyW10p KQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9v bV8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3tOVUxM LE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGEgSU4gKE5VTEwsIE5VTEwpOworIGNvdW50 IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGEgSU4gKDEx MywgMTc3KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1h cCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzEKKyAgICAgICAgIFJlY2hlY2sg Q29uZDogKGEgPSBBTlkgKCd7MTEzLDE3N30nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4g IEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9vbV8xX2lkeF8xCisgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3sxMTMsMTc3fSc6OmludGVnZXJb XSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxv b21fMSBXSEVSRSBhIElOICgxMTMsIDE3Nyk7CisgY291bnQgCistLS0tLS0tCisgICAgMTYK KygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcsIE5VTEwpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBI ZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzEKKyAgICAgICAgIFJlY2hlY2sgQ29u ZDogKGEgPSBBTlkgKCd7MTEzLDE3NyxOVUxMfSc6OmludGVnZXJbXSkpCisgICAgICAgICAt PiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzFfaWR4XzEKKyAg ICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgnezExMywxNzcsTlVMTH0nOjpp bnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0X2Jsb29tXzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcsIE5VTEwpOworIGNvdW50IAorLS0t LS0tLQorICAgIDE2CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGEgSU4gKDExMywgMTc3 LCAyNSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBC aXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9vbV8xCisgICAgICAgICBSZWNo ZWNrIENvbmQ6IChhID0gQU5ZICgnezExMywxNzcsMjV9Jzo6aW50ZWdlcltdKSkKKyAgICAg ICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfYmxvb21fMV9pZHhf MQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBBTlkgKCd7MTEzLDE3NywyNX0n OjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0X2Jsb29tXzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcsIDI1KTsKKyBjb3VudCAKKy0t LS0tLS0KKyAgICAyNAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVSRSBhIElOIChOVUxMLCAx MTMsIDE3NywgMjUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFn Z3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29t XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSBBTlkgKCd7TlVMTCwxMTMsMTc3LDI1 fSc6OmludGVnZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJp bl9pbl90ZXN0X2Jsb29tXzFfaWR4XzEKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChh ID0gQU5ZICgne05VTEwsMTEzLDE3NywyNX0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKwor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYSBJTiAo TlVMTCwgMTEzLCAxNzcsIDI1KTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAyNAorKDEgcm93 KQorCistLSBhIGJpdCB3ZWlyZCB0aGlzIHJlcXVpcmVzIGEgY2FzdCB0byBiaWdpbnQsIHVu bGlrZSBtdWx0aS12YWx1ZSBJTiBjbGF1c2UKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKDgyOjpi aWdpbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBI ZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzEKKyAgICAgICAgIFJlY2hlY2sgQ29u ZDogKGIgPSAnODInOjpiaWdpbnQpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4g b24gYnJpbl9pbl90ZXN0X2Jsb29tXzFfaWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENv bmQ6IChiID0gJzgyJzo6YmlnaW50KQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYiBJTiAoODI6OmJpZ2ludCk7CisgY291 bnQgCistLS0tLS0tCisgICAgMTAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYiBJTiAo ODIsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1h cCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzEKKyAgICAgICAgIFJlY2hlY2sg Q29uZDogKGIgPSBBTlkgKCd7ODIsTlVMTH0nOjpiaWdpbnRbXSkpCisgICAgICAgICAtPiAg Qml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzFfaWR4XzIKKyAgICAg ICAgICAgICAgIEluZGV4IENvbmQ6IChiID0gQU5ZICgnezgyLE5VTEx9Jzo6YmlnaW50W10p KQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29t XzEgV0hFUkUgYiBJTiAoODIsIE5VTEwpOworIGNvdW50IAorLS0tLS0tLQorICAgIDEwCiso MSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKE5VTEwsIE5VTEwpOworICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJy aW5faW5fdGVzdF9ibG9vbV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChiID0gQU5ZICgn e05VTEwsTlVMTH0nOjpiaWdpbnRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNj YW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzFfaWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6IChiID0gQU5ZICgne05VTEwsTlVMTH0nOjpiaWdpbnRbXSkpCisoNSByb3dzKQor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVSRSBiIElO IChOVUxMLCBOVUxMKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitF WFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3Rf Ymxvb21fMSBXSEVSRSBiIElOICg4MiwgNDEpOworICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3Jl Z2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzEK KyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPSBBTlkgKCd7ODIsNDF9Jzo6YmlnaW50W10p KQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9v bV8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IEFOWSAoJ3s4Miw0 MX0nOjpiaWdpbnRbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfYmxvb21fMSBXSEVSRSBiIElOICg4MiwgNDEpOworIGNvdW50IAorLS0tLS0t LQorICAgIDIwCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgTlVM TCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFw IEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfYmxvb21fMQorICAgICAgICAgUmVjaGVjayBD b25kOiAoYiA9IEFOWSAoJ3s4Miw0MSxOVUxMfSc6OmJpZ2ludFtdKSkKKyAgICAgICAgIC0+ ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfYmxvb21fMV9pZHhfMgorICAg ICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgPSBBTlkgKCd7ODIsNDEsTlVMTH0nOjpiaWdp bnRbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3Rf Ymxvb21fMSBXSEVSRSBiIElOICg4MiwgNDEsIE5VTEwpOworIGNvdW50IAorLS0tLS0tLQor ICAgIDIwCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgMTUpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2Nh biBvbiBicmluX2luX3Rlc3RfYmxvb21fMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA9 IEFOWSAoJ3s4Miw0MSwxNX0nOjpiaWdpbnRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIElu ZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzFfaWR4XzIKKyAgICAgICAgICAgICAg IEluZGV4IENvbmQ6IChiID0gQU5ZICgnezgyLDQxLDE1fSc6OmJpZ2ludFtdKSkKKyg1IHJv d3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJF IGIgSU4gKDgyLCA0MSwgMTUpOworIGNvdW50IAorLS0tLS0tLQorICAgIDI1CisoMSByb3cp CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKE5VTEwsIDgyLCA0MSwgMTUpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNj YW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIg PSBBTlkgKCd7TlVMTCw4Miw0MSwxNX0nOjpiaWdpbnRbXSkpCisgICAgICAgICAtPiAgQml0 bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzFfaWR4XzIKKyAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6IChiID0gQU5ZICgne05VTEwsODIsNDEsMTV9Jzo6YmlnaW50 W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Js b29tXzEgV0hFUkUgYiBJTiAoTlVMTCwgODIsIDQxLCAxNSk7CisgY291bnQgCistLS0tLS0t CisgICAgMjUKKygxIHJvdykKKworRFJPUCBUQUJMRSBicmluX2luX3Rlc3RfYmxvb21fMTsK K1JFU0VUIGVuYWJsZV9zZXFzY2FuOworLS0gZG8gc29tZSB0ZXN0cyBvbiBJTiBjbGF1c2Vz IGZvciB2YXJsZW5hIGRhdGEgdHlwZXMKK0NSRUFURSBUQUJMRSBicmluX2luX3Rlc3RfYmxv b21fMiAoYSBURVhUKSBXSVRIIChmaWxsZmFjdG9yPTEwKTsKK0lOU0VSVCBJTlRPIGJyaW5f aW5fdGVzdF9ibG9vbV8yCitTRUxFQ1QgdiBGUk9NIChTRUxFQ1Qgcm93X251bWJlcigpIE9W RVIgKE9SREVSIEJZIHYpIGMsIHYgRlJPTSAoU0VMRUNUIG1kNSgoaS8xMyk6OnRleHQpIEFT IHYgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKSBzKGkpKSBmb28pIGJhciBPUkRFUiBC WSBjICsgMjUgKiByYW5kb20oKTsKK0NSRUFURSBJTkRFWCBicmluX2luX3Rlc3RfYmxvb21f Ml9pZHggT04gYnJpbl9pbl90ZXN0X2Jsb29tXzIgVVNJTkcgYnJpbiAoYSB0ZXh0X2Jsb29t X29wcyhuX2Rpc3RpbmN0X3Blcl9yYW5nZT01MCkpIFdJVEggKHBhZ2VzX3Blcl9yYW5nZT0x KTsKK1NFVCBlbmFibGVfc2Vxc2Nhbj1vZmY7CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMiBXSEVSRSBhIElOICgnMzNl NzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODknKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFw IFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzIKKyAgICAgICAgIFJlY2hlY2sgQ29uZDog KGEgPSAnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODknOjp0ZXh0KQorICAgICAg ICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9vbV8yX2lkeAor ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSAnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYz NTEwMzkxNTIxODknOjp0ZXh0KQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0X2Jsb29tXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlm MzUxMDM5MTUyMTg5Jyk7CisgY291bnQgCistLS0tLS0tCisgICAgMTMKKygxIHJvdykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X2Jsb29tXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5 JywgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRt YXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9vbV8yCisgICAgICAgICBSZWNoZWNr IENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5LE5V TEx9Jzo6dGV4dFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmlu X2luX3Rlc3RfYmxvb21fMl9pZHgKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0g QU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5LE5VTEx9Jzo6dGV4dFtd KSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9v bV8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScsIE5V TEwpOworIGNvdW50IAorLS0tLS0tLQorICAgIDEzCisoMSByb3cpCisKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8yIFdI RVJFIGEgSU4gKE5VTEwsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQor ICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzIKKyAgICAg ICAgIFJlY2hlY2sgQ29uZDogKGEgPSBBTlkgKCd7TlVMTCxOVUxMfSc6OnRleHRbXSkpCisg ICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzJf aWR4CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3tOVUxMLE5VTEx9 Jzo6dGV4dFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9ibG9vbV8yIFdIRVJFIGEgSU4gKE5VTEwsIE5VTEwpOworIGNvdW50IAorLS0tLS0t LQorICAgICAwCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlk ZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScsICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVh NzJjMCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRt YXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9vbV8yCisgICAgICAgICBSZWNoZWNr IENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5LGY0 NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwfSc6OnRleHRbXSkpCisgICAgICAgICAt PiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzJfaWR4CisgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3szM2U3NWZmMDlkZDYwMWJiZTY5 ZjM1MTAzOTE1MjE4OSxmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMH0nOjp0ZXh0 W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Js b29tXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5Jywg J2Y0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJyk7CisgY291bnQgCistLS0tLS0t CisgICAgMjYKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRk NjAxYmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3 MmMwJywgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdh dGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9vbV8yCisg ICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlm MzUxMDM5MTUyMTg5LGY0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwLE5VTEx9Jzo6 dGV4dFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rl c3RfYmxvb21fMl9pZHgKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgn ezMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5LGY0NTdjNTQ1YTlkZWQ4OGYxOGVj ZWU0NzE0NWE3MmMwLE5VTEx9Jzo6dGV4dFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlk ZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScsICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVh NzJjMCcsIE5VTEwpOworIGNvdW50IAorLS0tLS0tLQorICAgIDI2CisoMSByb3cpCisKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9i bG9vbV8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScs ICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMCcsICdjNTFjZTQxMGMxMjRhMTBl MGRiNWU0Yjk3ZmMyYWYzOScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9i bG9vbV8yCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwOWRk NjAxYmJlNjlmMzUxMDM5MTUyMTg5LGY0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMw LGM1MWNlNDEwYzEyNGExMGUwZGI1ZTRiOTdmYzJhZjM5fSc6OnRleHRbXSkpCisgICAgICAg ICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzJfaWR4Cisg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3szM2U3NWZmMDlkZDYwMWJi ZTY5ZjM1MTAzOTE1MjE4OSxmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMCxjNTFj ZTQxMGMxMjRhMTBlMGRiNWU0Yjk3ZmMyYWYzOX0nOjp0ZXh0W10pKQorKDUgcm93cykKKwor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzIgV0hFUkUgYSBJTiAo JzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1YTlkZWQ4OGYx OGVjZWU0NzE0NWE3MmMwJywgJ2M1MWNlNDEwYzEyNGExMGUwZGI1ZTRiOTdmYzJhZjM5Jyk7 CisgY291bnQgCistLS0tLS0tCisgICAgMzkKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzIgV0hFUkUg YSBJTiAoTlVMTCwgJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0NTdj NTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJywgJ2M1MWNlNDEwYzEyNGExMGUwZGI1ZTRi OTdmYzJhZjM5Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVz dF9ibG9vbV8yCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgne05VTEwsMzNl NzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODksZjQ1N2M1NDVhOWRlZDg4ZjE4ZWNlZTQ3 MTQ1YTcyYzAsYzUxY2U0MTBjMTI0YTEwZTBkYjVlNGI5N2ZjMmFmMzl9Jzo6dGV4dFtdKSkK KyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfYmxvb21f Ml9pZHgKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgne05VTEwsMzNl NzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODksZjQ1N2M1NDVhOWRlZDg4ZjE4ZWNlZTQ3 MTQ1YTcyYzAsYzUxY2U0MTBjMTI0YTEwZTBkYjVlNGI5N2ZjMmFmMzl9Jzo6dGV4dFtdKSkK Kyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8y IFdIRVJFIGEgSU4gKE5VTEwsICczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScs ICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMCcsICdjNTFjZTQxMGMxMjRhMTBl MGRiNWU0Yjk3ZmMyYWYzOScpOworIGNvdW50IAorLS0tLS0tLQorICAgIDM5CisoMSByb3cp CisKK0RST1AgVEFCTEUgYnJpbl9pbl90ZXN0X2Jsb29tXzI7CitSRVNFVCBlbmFibGVfc2Vx c2NhbjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2JyaW5fYmxvb20uc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYnJpbl9ibG9vbS5zcWwKaW5kZXggNWQ0OTkyMDhl MzguLmQxODdlODlhNjA5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9icmlu X2Jsb29tLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9icmluX2Jsb29tLnNxbApA QCAtMzc0LDMgKzM3NCwxMzggQEAgVkFDVVVNIEFOQUxZWkUgYnJpbl90ZXN0X2Jsb29tOwog RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGJyaW5fdGVzdF9ibG9vbSBXSEVS RSBhID0gMTsKIC0tIEVuc3VyZSBicmluIGluZGV4IGlzIG5vdCB1c2VkIHdoZW4gdmFsdWVz IGFyZSBub3QgY29ycmVsYXRlZAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IGJyaW5fdGVzdF9ibG9vbSBXSEVSRSBiID0gMTsKKworCistLSBkbyBzb21lIHRlc3RzIG9u IElOIGNsYXVzZXMgZm9yIHNpbXBsZSBkYXRhIHR5cGVzCitDUkVBVEUgVEFCTEUgYnJpbl9p bl90ZXN0X2Jsb29tXzEgKGEgSU5ULCBiIEJJR0lOVCkgV0lUSCAoZmlsbGZhY3Rvcj0xMCk7 CitJTlNFUlQgSU5UTyBicmluX2luX3Rlc3RfYmxvb21fMQorU0VMRUNUIGkvNSArIG1vZCg5 OTEgKiBpICsgNjE3LCAyMCksCisgICAgICAgaS8xMCArIG1vZCg4NTMgKiBpICsgNDkxLCAz MCkKKyAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKSBzKGkpOworCitDUkVBVEUgSU5E RVggYnJpbl9pbl90ZXN0X2Jsb29tXzFfaWR4XzEgT04gYnJpbl9pbl90ZXN0X2Jsb29tXzEg VVNJTkcgYnJpbiAoYSBpbnQ0X2Jsb29tX29wcyhuX2Rpc3RpbmN0X3Blcl9yYW5nZT01MCkp IFdJVEggKHBhZ2VzX3Blcl9yYW5nZT0xKTsKK0NSRUFURSBJTkRFWCBicmluX2luX3Rlc3Rf Ymxvb21fMV9pZHhfMiBPTiBicmluX2luX3Rlc3RfYmxvb21fMSBVU0lORyBicmluIChiIGlu dDhfYmxvb21fb3BzKG5fZGlzdGluY3RfcGVyX3JhbmdlPTUwKSkgV0lUSCAocGFnZXNfcGVy X3JhbmdlPTEpOworCitTRVQgZW5hYmxlX3NlcXNjYW49b2ZmOworCitFWFBMQUlOIChDT1NU UyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVS RSBhIElOICgxMTMpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxv b21fMSBXSEVSRSBhIElOICgxMTMpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVSRSBhIElOICgxMTMsIE5V TEwpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVS RSBhIElOICgxMTMsIE5VTEwpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVSRSBhIElOIChOVUxMLCBOVUxM KTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUg YSBJTiAoTlVMTCwgTlVMTCk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGEgSU4gKDExMywgMTc3KTsK KworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYSBJ TiAoMTEzLCAxNzcpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikg RlJPTSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVSRSBhIElOICgxMTMsIDE3NywgTlVMTCk7 CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGEg SU4gKDExMywgMTc3LCBOVUxMKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcs IDI1KTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hF UkUgYSBJTiAoMTEzLCAxNzcsIDI1KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNU IENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYSBJTiAoTlVMTCwg MTEzLCAxNzcsIDI1KTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Js b29tXzEgV0hFUkUgYSBJTiAoTlVMTCwgMTEzLCAxNzcsIDI1KTsKKworLS0gYSBiaXQgd2Vp cmQgdGhpcyByZXF1aXJlcyBhIGNhc3QgdG8gYmlnaW50LCB1bmxpa2UgbXVsdGktdmFsdWUg SU4gY2xhdXNlCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBi cmluX2luX3Rlc3RfYmxvb21fMSBXSEVSRSBiIElOICg4Mjo6YmlnaW50KTsKKworU0VMRUNU IENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYiBJTiAoODI6OmJp Z2ludCk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKDgyLCBOVUxMKTsKKworU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYiBJTiAoODIsIE5VTEwp OworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfYmxvb21fMSBXSEVSRSBiIElOIChOVUxMLCBOVUxMKTsKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYiBJTiAoTlVMTCwgTlVMTCk7 CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKDgyLCA0MSk7CisKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKDgyLCA0MSk7CisKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9v bV8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgTlVMTCk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgTlVMTCk7CisKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9i bG9vbV8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgMTUpOworCitTRUxFQ1QgQ09VTlQoKikgRlJP TSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVSRSBiIElOICg4MiwgNDEsIDE1KTsKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Js b29tXzEgV0hFUkUgYiBJTiAoTlVMTCwgODIsIDQxLCAxNSk7CisKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKE5VTEwsIDgyLCA0MSwg MTUpOworCitEUk9QIFRBQkxFIGJyaW5faW5fdGVzdF9ibG9vbV8xOworUkVTRVQgZW5hYmxl X3NlcXNjYW47CisKKworLS0gZG8gc29tZSB0ZXN0cyBvbiBJTiBjbGF1c2VzIGZvciB2YXJs ZW5hIGRhdGEgdHlwZXMKK0NSRUFURSBUQUJMRSBicmluX2luX3Rlc3RfYmxvb21fMiAoYSBU RVhUKSBXSVRIIChmaWxsZmFjdG9yPTEwKTsKK0lOU0VSVCBJTlRPIGJyaW5faW5fdGVzdF9i bG9vbV8yCitTRUxFQ1QgdiBGUk9NIChTRUxFQ1Qgcm93X251bWJlcigpIE9WRVIgKE9SREVS IEJZIHYpIGMsIHYgRlJPTSAoU0VMRUNUIG1kNSgoaS8xMyk6OnRleHQpIEFTIHYgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKSBzKGkpKSBmb28pIGJhciBPUkRFUiBCWSBjICsgMjUg KiByYW5kb20oKTsKKworQ1JFQVRFIElOREVYIGJyaW5faW5fdGVzdF9ibG9vbV8yX2lkeCBP TiBicmluX2luX3Rlc3RfYmxvb21fMiBVU0lORyBicmluIChhIHRleHRfYmxvb21fb3BzKG5f ZGlzdGluY3RfcGVyX3JhbmdlPTUwKSkgV0lUSCAocGFnZXNfcGVyX3JhbmdlPTEpOworCitT RVQgZW5hYmxlX3NlcXNjYW49b2ZmOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMiBXSEVSRSBhIElOICgnMzNlNzVm ZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODknKTsKKworU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0X2Jsb29tXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlm MzUxMDM5MTUyMTg5Jyk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYw MWJiZTY5ZjM1MTAzOTE1MjE4OScsIE5VTEwpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBi cmluX2luX3Rlc3RfYmxvb21fMiBXSEVSRSBhIElOICgnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYz NTEwMzkxNTIxODknLCBOVUxMKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzIgV0hFUkUgYSBJTiAoTlVMTCwgTlVM TCk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8yIFdIRVJF IGEgSU4gKE5VTEwsIE5VTEwpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMiBXSEVSRSBhIElOICgnMzNlNzVmZjA5 ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODknLCAnZjQ1N2M1NDVhOWRlZDg4ZjE4ZWNlZTQ3MTQ1 YTcyYzAnKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzIg V0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0NTdj NTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJyk7CisKK0VYUExBSU4gKENPU1RTIE9GRikK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8yIFdIRVJFIGEgSU4g KCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScsICdmNDU3YzU0NWE5ZGVkODhm MThlY2VlNDcxNDVhNzJjMCcsIE5VTEwpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfYmxvb21fMiBXSEVSRSBhIElOICgnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYzNTEw MzkxNTIxODknLCAnZjQ1N2M1NDVhOWRlZDg4ZjE4ZWNlZTQ3MTQ1YTcyYzAnLCBOVUxMKTsK KworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0X2Jsb29tXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUy MTg5JywgJ2Y0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJywgJ2M1MWNlNDEwYzEy NGExMGUwZGI1ZTRiOTdmYzJhZjM5Jyk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF9ibG9vbV8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAz OTE1MjE4OScsICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMCcsICdjNTFjZTQx MGMxMjRhMTBlMGRiNWU0Yjk3ZmMyYWYzOScpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMiBXSEVSRSBhIElOIChO VUxMLCAnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODknLCAnZjQ1N2M1NDVhOWRl ZDg4ZjE4ZWNlZTQ3MTQ1YTcyYzAnLCAnYzUxY2U0MTBjMTI0YTEwZTBkYjVlNGI5N2ZjMmFm MzknKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzIgV0hF UkUgYSBJTiAoTlVMTCwgJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0 NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJywgJ2M1MWNlNDEwYzEyNGExMGUwZGI1 ZTRiOTdmYzJhZjM5Jyk7CisKK0RST1AgVEFCTEUgYnJpbl9pbl90ZXN0X2Jsb29tXzI7CitS RVNFVCBlbmFibGVfc2Vxc2NhbjsKLS0gCjIuNDAuMQoK --------------rWyDHUFaciQk1dJG0D8xK1UK--