Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sX1jX-0013IH-Dk for pgsql-hackers@arkaria.postgresql.org; Thu, 25 Jul 2024 16:54:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1sX1jV-00H1Wk-Ly for pgsql-hackers@arkaria.postgresql.org; Thu, 25 Jul 2024 16:54:25 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sX0m8-00GUq7-JJ for pgsql-hackers@lists.postgresql.org; Thu, 25 Jul 2024 15:53:05 +0000 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sX0lu-001Q8n-No for pgsql-hackers@lists.postgresql.org; Thu, 25 Jul 2024 15:53:03 +0000 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-1fdd6d81812so9096895ad.1 for ; Thu, 25 Jul 2024 08:52:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=illuminatedcomputing-com.20230601.gappssmtp.com; s=20230601; t=1721922768; x=1722527568; darn=lists.postgresql.org; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=BfqpgO7Dk5Pwnw+Iqv2FJ5svpE29kAl/H389H0ouL8Q=; b=fkxqMtQ2QoXOVYzad8eHpLmsDVVxWbt8N1U4FRixWLdIDMIViIDFzG3pL+50XQoiyC YOwZYHZSXSrIu+s5Fjf1a+9bERQ6xbwI/73AQHKvQDnFKldiQJQd18MjCEQVJYSnh32N cHric+QPFY11dzRNLZlcjDDPVqPiKUTn6JbtXgQmiKAfEfXCIG3yQl1BKAPCjmxHiE8w pRd3xb7OBXvVVIWYJZcx1R9p1tSu3CrP8hzChAVeM/vNNgHT7kr6TwqZZDmBuh9l7LUs wF2Iq47WSzpuSDFyYkFATn4i/EgxiMvJtH2Wlwyy8emK5jPPvSd1IUDp/bLjz5ovEWmN G1jQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721922768; x=1722527568; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=BfqpgO7Dk5Pwnw+Iqv2FJ5svpE29kAl/H389H0ouL8Q=; b=qW8U7ewbwVMrX+efPLt+h2LrUqb+9mRjO55SaBkO6WAM3JNAbxDP49M2Y50qLkJPL2 auoT/O8d+NH4K+sC1+z4H7dP8rm4e74WKoejtHvnj75wM/BH4agQ8XU/2Ps5IP5YRWz4 3N4u1PVR8BGVSZ2aSo5hGMjwx99caY7kH7REboxPdjdAquqfqeTqXGPxNI12Ig54oKzt IdqDKdhSEA9cUBNQm4XG68I+XmuwylnP0kyDMvZi6M+qjECmELyqSK7CiJ/gwEkx3Xox 9S4GvjgQEyf9++nZQb+lkz21KWGf7fsMnbdo6pqadPG+CxEC1vdMnSJ2xMzyNiwjpG8j RWVA== X-Forwarded-Encrypted: i=1; AJvYcCWpTRUwrsaDWvNiE6reCggaWkFQgF2fyRlZ7qMV4D4n9xVwZTYy5Prr8qIrHzhbZE9kb8jMtL4UhEGbHYuup1JpvK1QcmolGEMdvSM37MpnjqLi X-Gm-Message-State: AOJu0YxYTI9RDn5uKCAgVH9qsTf9WEC8htWwLPyRN8j/lK8CVbPPmfBn 0buSEYRx7THui+r3j/yji6vobnFvJic1XAGBKB5+jLTxm6cWiu7WNnQrO2nbkQo= X-Google-Smtp-Source: AGHT+IGL71V9Oz0ANXopikCsSlqwWmEXsHB4/cJQTHxTybKCguXRQlBFYEIVM4LiBrmrUx/qZmBmqw== X-Received: by 2002:a17:903:41c9:b0:1fc:5a11:4ac7 with SMTP id d9443c01a7336-1fed93a9373mr28451865ad.64.1721922766825; Thu, 25 Jul 2024 08:52:46 -0700 (PDT) Received: from [192.168.2.139] ([50.39.255.79]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-1fed7d15e98sm15866215ad.99.2024.07.25.08.52.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 25 Jul 2024 08:52:45 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------GsheMzFFcGdccG4bvM4vwSCN" Message-ID: <73d09e24-b6b9-4c89-8c0a-8842ca0f81f9@illuminatedcomputing.com> Date: Thu, 25 Jul 2024 08:52:44 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: SQL:2011 application time From: Paul Jungwirth To: jian he Cc: Isaac Morland , Robert Haas , Jeff Davis , Peter Eisentraut , PostgreSQL Hackers References: <49c07eac-18ec-4aff-929c-e81b87df1092@eisentraut.org> <1edb3b79-a4bc-43b1-80aa-2e090472fe32@eisentraut.org> <47550967-260b-4180-9791-b224859fe63e@illuminatedcomputing.com> <64c2b2ab-7ce9-475e-ac59-3bfec528bada@eisentraut.org> <58b6687fe9de002e4c862a412719e4f918bad987.camel@j-davis.com> <30dc3561-d7ab-42be-a1c5-096643423590@illuminatedcomputing.com> Content-Language: en-US In-Reply-To: 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. --------------GsheMzFFcGdccG4bvM4vwSCN Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 7/23/24 09:08, Paul Jungwirth wrote: > One tempting alternative though is to let exclusion constraints do the not-empty check, instead of > putting it in the executor. It would be an extra check we do only when the constraint has > pg_constraint.conperiod. Then we don't need to add & maintain pg_class.relwithoutoverlaps, and we don't > need a relcache change, and we don't need so much extra code to check existing rows when you add the > constraint. It doesn't use the existing available exclusion constraint functionality, but if we're > willing to extend the executor to know about WITHOUT OVERLAPS, I guess we could teach exclusion > constraints about it instead. Doing the check there does seem to have better locality with the feature. > So I think I will try that out as well. Here is a patch moving the not-empty check into check_exclusion_or_unique_constraint. That is a more logical place for it than ExecConstraints, since WITHOUT OVERLAPS is part of the index constraint (not a CHECK constraint). At that point we've already looked up all the information we need. So there is no extra cost for non-temporal tables, and no need to change pg_class or add to the relcache. Also putting it there means we don't need any extra code to enforce non-empties when we build the index or do anything else with it. I think this is the nicest solution we can expect. It is even cleaner than the &&& ideas. So hopefully this gets us back to where we were when we decided to commit PKs & FKs to v17. As before, I've left the nonempty check as a separate patch to make reviewing easier, but when committing I would squash it with the PK patch. Rebased to 05faf06e9c. Yours, -- Paul ~{:-) pj@illuminatedcomputing.com --------------GsheMzFFcGdccG4bvM4vwSCN Content-Type: text/x-patch; charset=UTF-8; name="v37-0001-Add-stratnum-GiST-support-function.patch" Content-Disposition: attachment; filename="v37-0001-Add-stratnum-GiST-support-function.patch" Content-Transfer-Encoding: base64 RnJvbSA0ODJiY2NlN2FjNmJlZjI3YTc3NzFjNzg1YzY1MTZkNWMyNjczODBhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NDQgKzAx MDAKU3ViamVjdDogW1BBVENIIHYzNyAxLzhdIEFkZCBzdHJhdG51bSBHaVNUIHN1cHBvcnQg ZnVuY3Rpb24KClRoaXMgaXMgc3VwcG9ydCBmdW5jdGlvbiAxMiBmb3IgdGhlIEdpU1QgQU0g YW5kIHRyYW5zbGF0ZXMKIndlbGwta25vd24iIFJUKlN0cmF0ZWd5TnVtYmVyIHZhbHVlcyBp bnRvIHdoYXRldmVyIHN0cmF0ZWd5IG51bWJlciBpcwp1c2VkIGJ5IHRoZSBvcGNsYXNzIChz aW5jZSBubyBwYXJ0aWN1bGFyIG51bWJlcnMgYXJlIGFjdHVhbGx5CnJlcXVpcmVkKS4gIFdl IHdpbGwgdXNlIHRoaXMgdG8gc3VwcG9ydCB0ZW1wb3JhbCBQUklNQVJZCktFWS9VTklRVUUv Rk9SRUlHTiBLRVkvRk9SIFBPUlRJT04gT0YgZnVuY3Rpb25hbGl0eS4KClRoaXMgY29tbWl0 IGFkZHMgdHdvIGltcGxlbWVudGF0aW9ucywgb25lIGZvciBpbnRlcm5hbCBHaVNUIG9wY2xh c3NlcwooanVzdCBhbiBpZGVudGl0eSBmdW5jdGlvbikgYW5kIGFub3RoZXIgZm9yIGJ0cmVl X2dpc3Qgb3BjbGFzc2VzLiAgSXQKdXBkYXRlcyBidHJlZV9naXN0IGZyb20gMS43IHRvIDEu OCwgYWRkaW5nIHRoZSBzdXBwb3J0IGZ1bmN0aW9uIGZvcgphbGwgaXRzIG9wY2xhc3Nlcy4K LS0tCiBjb250cmliL2J0cmVlX2dpc3QvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICA2 ICstCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC0tMS43LS0xLjguc3FsICB8IDg3 ICsrKysrKysrKysrKysrKysrKysrCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5j ICAgICAgICAgICAgICB8IDI3ICsrKysrKwogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dp c3QuY29udHJvbCAgICAgICAgfCAgMiArLQogY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVk L3N0cmF0bnVtLm91dCAgICAgfCAxMyArKysKIGNvbnRyaWIvYnRyZWVfZ2lzdC9tZXNvbi5i dWlsZCAgICAgICAgICAgICAgIHwgIDIgKwogY29udHJpYi9idHJlZV9naXN0L3NxbC9zdHJh dG51bS5zcWwgICAgICAgICAgfCAgMyArCiBkb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sICAgICAg ICAgICAgICAgICAgICAgICB8IDY1ICsrKysrKysrKysrKysrLQogZG9jL3NyYy9zZ21sL3hp bmRleC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgOCArLQogc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvZ2lzdHV0aWwuYyAgICAgICAgICAgfCAxNCArKysrCiBzcmMvYmFja2VuZC9h Y2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYyAgICAgICB8ICA4ICstCiBzcmMvaW5jbHVkZS9h Y2Nlc3MvZ2lzdC5oICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2FtcHJvYy5kYXQgICAgICAgICAgICB8IDE4ICsrKysKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgIHwgIDYgKysKIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvbWlzY19mdW5jdGlvbnMub3V0IHwgMTMgKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9taXNjX2Z1bmN0aW9ucy5zcWwgICAgICB8ICA0ICsKIDE2IGZpbGVzIGNo YW5nZWQsIDI3MiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9naXN0LS0xLjctLTEuOC5zcWwKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvc3RyYXRudW0u b3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9idHJlZV9naXN0L3NxbC9zdHJhdG51 bS5zcWwKCmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvTWFrZWZpbGUgYi9jb250 cmliL2J0cmVlX2dpc3QvTWFrZWZpbGUKaW5kZXggMDczZGNjNzQ1YzQuLjlhYjg1NDhiYzBl IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvTWFrZWZpbGUKKysrIGIvY29udHJp Yi9idHJlZV9naXN0L01ha2VmaWxlCkBAIC0zMywxMiArMzMsMTQgQEAgRVhURU5TSU9OID0g YnRyZWVfZ2lzdAogREFUQSA9IGJ0cmVlX2dpc3QtLTEuMC0tMS4xLnNxbCBcCiAgICAgICAg YnRyZWVfZ2lzdC0tMS4xLS0xLjIuc3FsIGJ0cmVlX2dpc3QtLTEuMi5zcWwgYnRyZWVfZ2lz dC0tMS4yLS0xLjMuc3FsIFwKICAgICAgICBidHJlZV9naXN0LS0xLjMtLTEuNC5zcWwgYnRy ZWVfZ2lzdC0tMS40LS0xLjUuc3FsIFwKLSAgICAgICBidHJlZV9naXN0LS0xLjUtLTEuNi5z cWwgYnRyZWVfZ2lzdC0tMS42LS0xLjcuc3FsCisgICAgICAgYnRyZWVfZ2lzdC0tMS41LS0x LjYuc3FsIGJ0cmVlX2dpc3QtLTEuNi0tMS43LnNxbCBcCisgICAgICAgYnRyZWVfZ2lzdC0t MS43LS0xLjguc3FsCiBQR0ZJTEVERVNDID0gImJ0cmVlX2dpc3QgLSBCLXRyZWUgZXF1aXZh bGVudCBHaVNUIG9wZXJhdG9yIGNsYXNzZXMiCiAKIFJFR1JFU1MgPSBpbml0IGludDIgaW50 NCBpbnQ4IGZsb2F0NCBmbG9hdDggY2FzaCBvaWQgdGltZXN0YW1wIHRpbWVzdGFtcHR6IFwK ICAgICAgICAgdGltZSB0aW1ldHogZGF0ZSBpbnRlcnZhbCBtYWNhZGRyIG1hY2FkZHI4IGlu ZXQgY2lkciB0ZXh0IHZhcmNoYXIgY2hhciBcCi0gICAgICAgIGJ5dGVhIGJpdCB2YXJiaXQg bnVtZXJpYyB1dWlkIG5vdF9lcXVhbCBlbnVtIGJvb2wgcGFydGl0aW9ucworICAgICAgICBi eXRlYSBiaXQgdmFyYml0IG51bWVyaWMgdXVpZCBub3RfZXF1YWwgZW51bSBib29sIHBhcnRp dGlvbnMgXAorICAgICAgICBzdHJhdG51bQogCiBTSExJQl9MSU5LICs9ICQoZmlsdGVyIC1s bSwgJChMSUJTKSkKIApkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dp c3QtLTEuNy0tMS44LnNxbCBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9naXN0LS0xLjct LTEuOC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjMwN2Jm ZTU3NGIwCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dp c3QtLTEuNy0tMS44LnNxbApAQCAtMCwwICsxLDg3IEBACisvKiBjb250cmliL2J0cmVlX2dp c3QvYnRyZWVfZ2lzdC0tMS43LS0xLjguc3FsICovCisKKy0tIGNvbXBsYWluIGlmIHNjcmlw dCBpcyBzb3VyY2VkIGluIHBzcWwsIHJhdGhlciB0aGFuIHZpYSBDUkVBVEUgRVhURU5TSU9O CitcZWNobyBVc2UgIkFMVEVSIEVYVEVOU0lPTiBidHJlZV9naXN0IFVQREFURSBUTyAnMS44 JyIgdG8gbG9hZCB0aGlzIGZpbGUuIFxxdWl0CisKK0NSRUFURSBGVU5DVElPTiBnaXN0X3N0 cmF0bnVtX2J0cmVlKHNtYWxsaW50KQorUkVUVVJOUyBzbWFsbGludAorQVMgJ01PRFVMRV9Q QVRITkFNRScKK0xBTkdVQUdFIEMgSU1NVVRBQkxFIFBBUkFMTEVMIFNBRkUgU1RSSUNUOwor CitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9vaWRfb3BzIFVTSU5HIGdpc3QgQURECisJ RlVOQ1RJT04gMTIgKG9pZCwgb2lkKSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisK K0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2ludDJfb3BzIFVTSU5HIGdpc3QgQURECisJ RlVOQ1RJT04gMTIgKGludDIsIGludDIpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludDIpIDsK KworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfaW50NF9vcHMgVVNJTkcgZ2lzdCBBREQK KwlGVU5DVElPTiAxMiAoaW50NCwgaW50NCkgZ2lzdF9zdHJhdG51bV9idHJlZSAoaW50Mikg OworCitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9pbnQ4X29wcyBVU0lORyBnaXN0IEFE RAorCUZVTkNUSU9OIDEyIChpbnQ4LCBpbnQ4KSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQy KSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2Zsb2F0NF9vcHMgVVNJTkcgZ2lz dCBBREQKKwlGVU5DVElPTiAxMiAoZmxvYXQ0LCBmbG9hdDQpIGdpc3Rfc3RyYXRudW1fYnRy ZWUgKGludDIpIDsKKworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfZmxvYXQ4X29wcyBV U0lORyBnaXN0IEFERAorCUZVTkNUSU9OIDEyIChmbG9hdDgsIGZsb2F0OCkgZ2lzdF9zdHJh dG51bV9idHJlZSAoaW50MikgOworCitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF90aW1l c3RhbXBfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKHRpbWVzdGFtcCwgdGlt ZXN0YW1wKSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9S IEZBTUlMWSBnaXN0X3RpbWVzdGFtcHR6X29wcyBVU0lORyBnaXN0IEFERAorCUZVTkNUSU9O IDEyICh0aW1lc3RhbXB0eiwgdGltZXN0YW1wdHopIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGlu dDIpIDsKKworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfdGltZV9vcHMgVVNJTkcgZ2lz dCBBREQKKwlGVU5DVElPTiAxMiAodGltZSwgdGltZSkgZ2lzdF9zdHJhdG51bV9idHJlZSAo aW50MikgOworCitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9kYXRlX29wcyBVU0lORyBn aXN0IEFERAorCUZVTkNUSU9OIDEyIChkYXRlLCBkYXRlKSBnaXN0X3N0cmF0bnVtX2J0cmVl IChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2ludGVydmFsX29wcyBV U0lORyBnaXN0IEFERAorCUZVTkNUSU9OIDEyIChpbnRlcnZhbCwgaW50ZXJ2YWwpIGdpc3Rf c3RyYXRudW1fYnRyZWUgKGludDIpIDsKKworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3Rf Y2FzaF9vcHMgVVNJTkcgZ2lzdCBBREQKKwlGVU5DVElPTiAxMiAobW9uZXksIG1vbmV5KSBn aXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBn aXN0X21hY2FkZHJfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKG1hY2FkZHIs IG1hY2FkZHIpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludDIpIDsKKworQUxURVIgT1BFUkFU T1IgRkFNSUxZIGdpc3RfdGV4dF9vcHMgVVNJTkcgZ2lzdCBBREQKKwlGVU5DVElPTiAxMiAo dGV4dCwgdGV4dCkgZ2lzdF9zdHJhdG51bV9idHJlZSAoaW50MikgOworCitBTFRFUiBPUEVS QVRPUiBGQU1JTFkgZ2lzdF9icGNoYXJfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04g MTIgKGJwY2hhciwgYnBjaGFyKSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisKK0FM VEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2J5dGVhX29wcyBVU0lORyBnaXN0IEFERAorCUZV TkNUSU9OIDEyIChieXRlYSwgYnl0ZWEpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludDIpIDsK KworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfbnVtZXJpY19vcHMgVVNJTkcgZ2lzdCBB REQKKwlGVU5DVElPTiAxMiAobnVtZXJpYywgbnVtZXJpYykgZ2lzdF9zdHJhdG51bV9idHJl ZSAoaW50MikgOworCitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9iaXRfb3BzIFVTSU5H IGdpc3QgQURECisJRlVOQ1RJT04gMTIgKGJpdCwgYml0KSBnaXN0X3N0cmF0bnVtX2J0cmVl IChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X3ZiaXRfb3BzIFVTSU5H IGdpc3QgQURECisJRlVOQ1RJT04gMTIgKHZhcmJpdCwgdmFyYml0KSBnaXN0X3N0cmF0bnVt X2J0cmVlIChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2luZXRfb3Bz IFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKGluZXQsIGluZXQpIGdpc3Rfc3RyYXRu dW1fYnRyZWUgKGludDIpIDsKKworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfY2lkcl9v cHMgVVNJTkcgZ2lzdCBBREQKKwlGVU5DVElPTiAxMiAoY2lkciwgY2lkcikgZ2lzdF9zdHJh dG51bV9idHJlZSAoaW50MikgOworCitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF90aW1l dHpfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKHRpbWV0eiwgdGltZXR6KSBn aXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBn aXN0X3V1aWRfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKHV1aWQsIHV1aWQp IGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludDIpIDsKKworQUxURVIgT1BFUkFUT1IgRkFNSUxZ IGdpc3RfbWFjYWRkcjhfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKG1hY2Fk ZHI4LCBtYWNhZGRyOCkgZ2lzdF9zdHJhdG51bV9idHJlZSAoaW50MikgOworCitBTFRFUiBP UEVSQVRPUiBGQU1JTFkgZ2lzdF9lbnVtX29wcyBVU0lORyBnaXN0IEFERAorCUZVTkNUSU9O IDEyIChhbnllbnVtLCBhbnllbnVtKSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisK K0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2Jvb2xfb3BzIFVTSU5HIGdpc3QgQURECisJ RlVOQ1RJT04gMTIgKGJvb2wsIGJvb2wpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludDIpIDsK ZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9naXN0LmMgYi9jb250cmli L2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5jCmluZGV4IDkyNTIwYWVkYWUxLi41ZmQ0Y2NlMjdk MCAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dpc3QuYworKysgYi9j b250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5jCkBAIC0zLDYgKzMsNyBAQAogICovCiAj aW5jbHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImFjY2Vzcy9zdHJhdG51bS5oIgog I2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAKIFBHX01PRFVMRV9NQUdJQzsKQEAgLTEw LDYgKzExLDcgQEAgUEdfTU9EVUxFX01BR0lDOwogUEdfRlVOQ1RJT05fSU5GT19WMShnYnRf ZGVjb21wcmVzcyk7CiBQR19GVU5DVElPTl9JTkZPX1YxKGdidHJlZWtleV9pbik7CiBQR19G VU5DVElPTl9JTkZPX1YxKGdidHJlZWtleV9vdXQpOworUEdfRlVOQ1RJT05fSU5GT19WMShn aXN0X3N0cmF0bnVtX2J0cmVlKTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCiAgKiBJbi9PdXQgZm9yIGtleXMKQEAgLTUxLDMgKzUz LDI4IEBAIGdidF9kZWNvbXByZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJUEdfUkVUVVJO X1BPSU5URVIoUEdfR0VUQVJHX1BPSU5URVIoMCkpOwogfQorCisvKgorICogUmV0dXJucyB0 aGUgYnRyZWUgbnVtYmVyIGZvciBzdXBwb3J0ZWQgb3BlcmF0b3JzLCBvdGhlcndpc2UgaW52 YWxpZC4KKyAqLworRGF0dW0KK2dpc3Rfc3RyYXRudW1fYnRyZWUoUEdfRlVOQ1RJT05fQVJH UykKK3sKKwlTdHJhdGVneU51bWJlciBzdHJhdCA9IFBHX0dFVEFSR19VSU5UMTYoMCk7CisK Kwlzd2l0Y2ggKHN0cmF0KQorCXsKKwkJY2FzZSBSVEVxdWFsU3RyYXRlZ3lOdW1iZXI6CisJ CQlQR19SRVRVUk5fVUlOVDE2KEJURXF1YWxTdHJhdGVneU51bWJlcik7CisJCWNhc2UgUlRM ZXNzU3RyYXRlZ3lOdW1iZXI6CisJCQlQR19SRVRVUk5fVUlOVDE2KEJUTGVzc1N0cmF0ZWd5 TnVtYmVyKTsKKwkJY2FzZSBSVExlc3NFcXVhbFN0cmF0ZWd5TnVtYmVyOgorCQkJUEdfUkVU VVJOX1VJTlQxNihCVExlc3NFcXVhbFN0cmF0ZWd5TnVtYmVyKTsKKwkJY2FzZSBSVEdyZWF0 ZXJTdHJhdGVneU51bWJlcjoKKwkJCVBHX1JFVFVSTl9VSU5UMTYoQlRHcmVhdGVyU3RyYXRl Z3lOdW1iZXIpOworCQljYXNlIFJUR3JlYXRlckVxdWFsU3RyYXRlZ3lOdW1iZXI6CisJCQlQ R19SRVRVUk5fVUlOVDE2KEJUR3JlYXRlckVxdWFsU3RyYXRlZ3lOdW1iZXIpOworCQlkZWZh dWx0OgorCQkJUEdfUkVUVVJOX1VJTlQxNihJbnZhbGlkU3RyYXRlZ3kpOworCX0KK30KZGlm ZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9naXN0LmNvbnRyb2wgYi9jb250 cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5jb250cm9sCmluZGV4IGZhOTE3MWE4MGEyLi5h YmY2NjUzOGYzMiAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dpc3Qu Y29udHJvbAorKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5jb250cm9sCkBA IC0xLDYgKzEsNiBAQAogIyBidHJlZV9naXN0IGV4dGVuc2lvbgogY29tbWVudCA9ICdzdXBw b3J0IGZvciBpbmRleGluZyBjb21tb24gZGF0YXR5cGVzIGluIEdpU1QnCi1kZWZhdWx0X3Zl cnNpb24gPSAnMS43JworZGVmYXVsdF92ZXJzaW9uID0gJzEuOCcKIG1vZHVsZV9wYXRobmFt ZSA9ICckbGliZGlyL2J0cmVlX2dpc3QnCiByZWxvY2F0YWJsZSA9IHRydWUKIHRydXN0ZWQg PSB0cnVlCmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvc3RyYXRu dW0ub3V0IGIvY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVkL3N0cmF0bnVtLm91dApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWQ4MGM2NTkwZDkKLS0tIC9k ZXYvbnVsbAorKysgYi9jb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvc3RyYXRudW0ub3V0 CkBAIC0wLDAgKzEsMTMgQEAKKy0tIHRlc3Qgc3RyYXRudW0gc3VwcG9ydCBmdW5jCitTRUxF Q1QgZ2lzdF9zdHJhdG51bV9idHJlZSgzOjpzbWFsbGludCk7CisgZ2lzdF9zdHJhdG51bV9i dHJlZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgIDAKKygx IHJvdykKKworU0VMRUNUIGdpc3Rfc3RyYXRudW1fYnRyZWUoMTg6OnNtYWxsaW50KTsKKyBn aXN0X3N0cmF0bnVtX2J0cmVlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICAgICAgICAgMworKDEgcm93KQorCmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3Qv bWVzb24uYnVpbGQgYi9jb250cmliL2J0cmVlX2dpc3QvbWVzb24uYnVpbGQKaW5kZXggYzg4 YTZhYzg0YWUuLmE0NGNlOTA1ZTU5IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3Qv bWVzb24uYnVpbGQKKysrIGIvY29udHJpYi9idHJlZV9naXN0L21lc29uLmJ1aWxkCkBAIC01 MCw2ICs1MCw3IEBAIGluc3RhbGxfZGF0YSgKICAgJ2J0cmVlX2dpc3QtLTEuNC0tMS41LnNx bCcsCiAgICdidHJlZV9naXN0LS0xLjUtLTEuNi5zcWwnLAogICAnYnRyZWVfZ2lzdC0tMS42 LS0xLjcuc3FsJywKKyAgJ2J0cmVlX2dpc3QtLTEuNy0tMS44LnNxbCcsCiAgIGt3YXJnczog Y29udHJpYl9kYXRhX2FyZ3MsCiApCiAKQEAgLTg5LDYgKzkwLDcgQEAgdGVzdHMgKz0gewog ICAgICAgJ2VudW0nLAogICAgICAgJ2Jvb2wnLAogICAgICAgJ3BhcnRpdGlvbnMnLAorICAg ICAgJ3N0cmF0bnVtJywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9i dHJlZV9naXN0L3NxbC9zdHJhdG51bS5zcWwgYi9jb250cmliL2J0cmVlX2dpc3Qvc3FsL3N0 cmF0bnVtLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjU4 Y2RiZTkzZGEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2J0cmVlX2dpc3Qvc3FsL3N0 cmF0bnVtLnNxbApAQCAtMCwwICsxLDMgQEAKKy0tIHRlc3Qgc3RyYXRudW0gc3VwcG9ydCBm dW5jCitTRUxFQ1QgZ2lzdF9zdHJhdG51bV9idHJlZSgzOjpzbWFsbGludCk7CitTRUxFQ1Qg Z2lzdF9zdHJhdG51bV9idHJlZSgxODo6c21hbGxpbnQpOwpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2dpc3Quc2dtbCBiL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwKaW5kZXggMzljN2Jm MzcwZDYuLmY3ODk4MjRjODNiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwKQEAgLTI2Niw3ICsyNjYsNyBAQCBDUkVB VEUgSU5ERVggT04gbXlfdGFibGUgVVNJTkcgR0lTVCAobXlfaW5ldF9jb2x1bW4gaW5ldF9v cHMpOwogCiAgPHBhcmE+CiAgICBUaGVyZSBhcmUgZml2ZSBtZXRob2RzIHRoYXQgYW4gaW5k ZXggb3BlcmF0b3IgY2xhc3MgZm9yCi0gICA8YWNyb255bT5HaVNUPC9hY3JvbnltPiBtdXN0 IHByb3ZpZGUsIGFuZCBzaXggdGhhdCBhcmUgb3B0aW9uYWwuCisgICA8YWNyb255bT5HaVNU PC9hY3JvbnltPiBtdXN0IHByb3ZpZGUsIGFuZCBzZXZlbiB0aGF0IGFyZSBvcHRpb25hbC4K ICAgIENvcnJlY3RuZXNzIG9mIHRoZSBpbmRleCBpcyBlbnN1cmVkCiAgICBieSBwcm9wZXIg aW1wbGVtZW50YXRpb24gb2YgdGhlIDxmdW5jdGlvbj5zYW1lPC9mdW5jdGlvbj4sIDxmdW5j dGlvbj5jb25zaXN0ZW50PC9mdW5jdGlvbj4KICAgIGFuZCA8ZnVuY3Rpb24+dW5pb248L2Z1 bmN0aW9uPiBtZXRob2RzLCB3aGlsZSBlZmZpY2llbmN5IChzaXplIGFuZCBzcGVlZCkgb2Yg dGhlCkBAIC0yODksNiArMjg5LDEwIEBAIENSRUFURSBJTkRFWCBPTiBteV90YWJsZSBVU0lO RyBHSVNUIChteV9pbmV0X2NvbHVtbiBpbmV0X29wcyk7CiAgICB1c2VyLXNwZWNpZmllZCBw YXJhbWV0ZXJzLgogICAgVGhlIG9wdGlvbmFsIGVsZXZlbnRoIG1ldGhvZCA8ZnVuY3Rpb24+ c29ydHN1cHBvcnQ8L2Z1bmN0aW9uPiBpcyB1c2VkIHRvCiAgICBzcGVlZCB1cCBidWlsZGlu ZyBhIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+IGluZGV4LgorICAgVGhlIG9wdGlvbmFsIHR3 ZWxmdGggbWV0aG9kIDxmdW5jdGlvbj5zdHJhdG51bTwvZnVuY3Rpb24+IGlzIHVzZWQgdG8K KyAgIHRyYW5zbGF0ZSB3ZWxsLWtub3duIDxsaXRlcmFsPlJUKlN0cmF0ZWd5TnVtYmVyPC9s aXRlcmFsPnMgKGZyb20KKyAgIDxmaWxlbmFtZT5zcmMvaW5jbHVkZS9hY2Nlc3Mvc3RyYXRu dW0uaDwvZmlsZW5hbWU+KSBpbnRvIHN0cmF0ZWd5IG51bWJlcnMKKyAgIHVzZWQgYnkgdGhl IG9wZXJhdG9yIGNsYXNzLgogIDwvcGFyYT4KIAogIDx2YXJpYWJsZWxpc3Q+CkBAIC0xMTYz LDYgKzExNjcsNjUgQEAgbXlfc29ydHN1cHBvcnQoUEdfRlVOQ1RJT05fQVJHUykKICAgICAg IDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg IDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxmdW5jdGlvbj5zdHJhdG51bTwvZnVuY3Rp b24+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBHaXZl biBhbiA8bGl0ZXJhbD5SVCpTdHJhdGVneU51bWJlcjwvbGl0ZXJhbD4gdmFsdWUgZnJvbQor ICAgICAgIDxmaWxlbmFtZT5zcmMvaW5jbHVkZS9hY2Nlc3Mvc3RyYXRudW0uaDwvZmlsZW5h bWU+LCByZXR1cm5zIGEgc3RyYXRlZ3kKKyAgICAgICBudW1iZXIgdXNlZCBieSB0aGlzIG9w ZXJhdG9yIGNsYXNzIGZvciBtYXRjaGluZyBmdW5jdGlvbmFsaXR5LiAgVGhlCisgICAgICAg ZnVuY3Rpb24gc2hvdWxkIHJldHVybiA8bGl0ZXJhbD5JbnZhbGlkU3RyYXRlZ3k8L2xpdGVy YWw+IGlmIHRoZQorICAgICAgIG9wZXJhdG9yIGNsYXNzIGhhcyBubyBtYXRjaGluZyBzdHJh dGVneS4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAgICAgVGhlIDxhY3Jv bnltPlNRTDwvYWNyb255bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIG11c3QgbG9v ayBsaWtlCisgICAgICAgdGhpczoKKworPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gbXlfc3RyYXRudW0oaW50ZWdlcikKK1JFVFVSTlMgaW50ZWdlcgor QVMgJ01PRFVMRV9QQVRITkFNRScKK0xBTkdVQUdFIEMgU1RSSUNUOworPC9wcm9ncmFtbGlz dGluZz4KKyAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbWF0 Y2hpbmcgY29kZSBpbiB0aGUgQyBtb2R1bGUgY291bGQgdGhlbiBmb2xsb3cgdGhpcyBza2Vs ZXRvbjoKKworPHByb2dyYW1saXN0aW5nPgorUEdfRlVOQ1RJT05fSU5GT19WMShteV9zdHJh dG51bSk7CisKK0RhdHVtCitteV9zdHJhdG51bShQR19GVU5DVElPTl9BUkdTKQoreworICAg IFN0cmF0ZWd5TnVtYmVyIHN0cmF0ZWd5ID0gKFN0cmF0ZWd5TnVtYmVyKSBQR19HRVRBUkdf VUlOVDE2KDEpOworICAgIFN0cmF0ZWd5TnVtYmVyIHJldCA9IEludmFsaWRTdHJhdGVneTsK KworICAgIHN3aXRjaCAoc3RyYXRlZ3kpCisgICAgeworICAgICAgICBjYXNlIFJURXF1YWxT dHJhdGVneU51bWJlcjoKKyAgICAgICAgICAgIHJldCA9IEJURXF1YWxTdHJhdGVneU51bWJl cjsKKyAgICB9CisKKyAgICBQR19SRVRVUk5fVUlOVDE2KHJldCk7Cit9Cis8L3Byb2dyYW1s aXN0aW5nPgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICBPbmUgdHJh bnNsYXRpb24gZnVuY3Rpb24gaXMgcHJvdmlkZWQgYnkKKyAgICAgICA8cHJvZHVjdG5hbWU+ UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+OgorICAgICAgIDxsaXRlcmFsPmdpc3Rfc3RyYXRu dW1faWRlbnRpdHk8L2xpdGVyYWw+IGlzIGZvciBvcGVyYXRvciBjbGFzc2VzIHRoYXQKKyAg ICAgICBhbHJlYWR5IHVzZSB0aGUgPGxpdGVyYWw+UlQqU3RyYXRlZ3lOdW1iZXI8L2xpdGVy YWw+IGNvbnN0YW50cy4gIEl0CisgICAgICAgcmV0dXJucyB3aGF0ZXZlciBpcyBwYXNzZWQg dG8gaXQuICBUaGUgPGxpdGVyYWw+YnRyZWVfZ2lzdDwvbGl0ZXJhbD4KKyAgICAgICBleHRl bnNpb24gZGVmaW5lcyBhIHNlY29uZCB0cmFuc2xhdGlvbiBmdW5jdGlvbiwKKyAgICAgICA8 bGl0ZXJhbD5naXN0X3N0cmF0bnVtX2J0cmVlPC9saXRlcmFsPiwgZm9yIG9wZXJhdG9yIGNs YXNzZXMgdGhhdCB1c2UKKyAgICAgICB0aGUgPGxpdGVyYWw+QlQqU3RyYXRlZ3lOdW1iZXI8 L2xpdGVyYWw+IGNvbnN0YW50cy4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4K KyAgICA8L3Zhcmxpc3RlbnRyeT4KICAgPC92YXJpYWJsZWxpc3Q+CiAKICAgPHBhcmE+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwgYi9kb2Mvc3JjL3NnbWwveGlu ZGV4LnNnbWwKaW5kZXggMjJkOGFkMWFhYzQuLjNhMTlkYWIxNWUwIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwveGluZGV4LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3hpbmRleC5zZ21s CkBAIC01MDgsNyArNTA4LDcgQEAKICAgIDwvdGFibGU+CiAKICAgPHBhcmE+Ci0gICBHaVNU IGluZGV4ZXMgaGF2ZSBlbGV2ZW4gc3VwcG9ydCBmdW5jdGlvbnMsIHNpeCBvZiB3aGljaCBh cmUgb3B0aW9uYWwsCisgICBHaVNUIGluZGV4ZXMgaGF2ZSB0d2VsdmUgc3VwcG9ydCBmdW5j dGlvbnMsIHNldmVuIG9mIHdoaWNoIGFyZSBvcHRpb25hbCwKICAgIGFzIHNob3duIGluIDx4 cmVmIGxpbmtlbmQ9InhpbmRleC1naXN0LXN1cHBvcnQtdGFibGUiLz4uCiAgICAoRm9yIG1v cmUgaW5mb3JtYXRpb24gc2VlIDx4cmVmIGxpbmtlbmQ9Imdpc3QiLz4uKQogICA8L3BhcmE+ CkBAIC01OTAsNiArNTkwLDEyIEBACiAgICAgICAgIChvcHRpb25hbCk8L2VudHJ5PgogICAg ICAgIDxlbnRyeT4xMTwvZW50cnk+CiAgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAg ICAgPGVudHJ5PjxmdW5jdGlvbj5zdHJhdG51bTwvZnVuY3Rpb24+PC9lbnRyeT4KKyAgICAg ICA8ZW50cnk+dHJhbnNsYXRlIHdlbGwta25vd24gc3RyYXRlZ3kgbnVtYmVycyB0byBvbmVz CisgICAgICAgIHVzZWQgYnkgdGhlIG9wZXJhdG9yIGNsYXNzIChvcHRpb25hbCk8L2VudHJ5 PgorICAgICAgIDxlbnRyeT4xMjwvZW50cnk+CisgICAgICA8L3Jvdz4KICAgICAgPC90Ym9k eT4KICAgICA8L3Rncm91cD4KICAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lz dHV0aWwuYwppbmRleCA3OGU5OGQ2OGIxNS4uODY4NjczNWYyMzQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvZ2lzdHV0aWwuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbW1v bi9wZ19wcm5nLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pbmRleGZzbS5oIgogI2luY2x1ZGUg InV0aWxzL2Zsb2F0LmgiCisjaW5jbHVkZSAidXRpbHMvZm1ncnByb3Rvcy5oIgogI2luY2x1 ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1 ZGUgInV0aWxzL3NuYXBtZ3IuaCIKQEAgLTEwNTUsMyArMTA1NiwxNiBAQCBnaXN0R2V0RmFr ZUxTTihSZWxhdGlvbiByZWwpCiAJCXJldHVybiBHZXRGYWtlTFNORm9yVW5sb2dnZWRSZWwo KTsKIAl9CiB9CisKKy8qCisgKiBSZXR1cm5zIHRoZSBzYW1lIG51bWJlciB0aGF0IHdhcyBy ZWNlaXZlZC4KKyAqCisgKiBUaGlzIGlzIGZvciBHaVNUIG9wY2xhc3NlcyB0aGF0IHVzZSB0 aGUgUlQqU3RyYXRlZ3lOdW1iZXIgY29uc3RhbnRzLgorICovCitEYXR1bQorZ2lzdF9zdHJh dG51bV9pZGVudGl0eShQR19GVU5DVElPTl9BUkdTKQoreworCVN0cmF0ZWd5TnVtYmVyIHN0 cmF0ID0gUEdfR0VUQVJHX1VJTlQxNigwKTsKKworCVBHX1JFVFVSTl9VSU5UMTYoc3RyYXQp OworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRl LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYwppbmRleCAzNmI1 YTg1Y2YzMS4uMDkwMTU0M2E2MGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9n aXN0L2dpc3R2YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2 YWxpZGF0ZS5jCkBAIC0xNDYsNiArMTQ2LDEwIEBAIGdpc3R2YWxpZGF0ZShPaWQgb3BjbGFz c29pZCkKIAkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJv YywgVk9JRE9JRCwgdHJ1ZSwKIAkJCQkJCQkJCQkJMSwgMSwgSU5URVJOQUxPSUQpOwogCQkJ CWJyZWFrOworCQkJY2FzZSBHSVNUX1NUUkFUTlVNX1BST0M6CisJCQkJb2sgPSBjaGVja19h bXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDJPSUQsIHRydWUsCisJCQkJ CQkJCQkJCTEsIDEsIElOVDJPSUQpOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQll cmVwb3J0KElORk8sCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RF RklOSVRJT04pLApAQCAtMjY2LDcgKzI3MCw4IEBAIGdpc3R2YWxpZGF0ZShPaWQgb3BjbGFz c29pZCkKIAkJCWNvbnRpbnVlOwkJCS8qIGdvdCBpdCAqLwogCQlpZiAoaSA9PSBHSVNUX0RJ U1RBTkNFX1BST0MgfHwgaSA9PSBHSVNUX0ZFVENIX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9D T01QUkVTU19QUk9DIHx8IGkgPT0gR0lTVF9ERUNPTVBSRVNTX1BST0MgfHwKLQkJCWkgPT0g R0lTVF9PUFRJT05TX1BST0MgfHwgaSA9PSBHSVNUX1NPUlRTVVBQT1JUX1BST0MpCisJCQlp ID09IEdJU1RfT1BUSU9OU19QUk9DIHx8IGkgPT0gR0lTVF9TT1JUU1VQUE9SVF9QUk9DIHx8 CisJCQlpID09IEdJU1RfU1RSQVROVU1fUFJPQykKIAkJCWNvbnRpbnVlOwkJCS8qIG9wdGlv bmFsIG1ldGhvZHMgKi8KIAkJZXJlcG9ydChJTkZPLAogCQkJCShlcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCkBAIC0zMzgsNiArMzQzLDcgQEAgZ2lzdGFk anVzdG1lbWJlcnMoT2lkIG9wZmFtaWx5b2lkLAogCQkJY2FzZSBHSVNUX0ZFVENIX1BST0M6 CiAJCQljYXNlIEdJU1RfT1BUSU9OU19QUk9DOgogCQkJY2FzZSBHSVNUX1NPUlRTVVBQT1JU X1BST0M6CisJCQljYXNlIEdJU1RfU1RSQVROVU1fUFJPQzoKIAkJCQkvKiBPcHRpb25hbCwg c28gZm9yY2UgaXQgdG8gYmUgYSBzb2Z0IGZhbWlseSBkZXBlbmRlbmN5ICovCiAJCQkJb3At PnJlZl9pc19oYXJkID0gZmFsc2U7CiAJCQkJb3AtPnJlZl9pc19mYW1pbHkgPSB0cnVlOwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaCBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9naXN0LmgKaW5kZXggYzZkY2Q2YTkwZGQuLmU3Y2VkMThhNWJhIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9n aXN0LmgKQEAgLTM4LDcgKzM4LDggQEAKICNkZWZpbmUgR0lTVF9GRVRDSF9QUk9DCQkJCQk5 CiAjZGVmaW5lIEdJU1RfT1BUSU9OU19QUk9DCQkJCTEwCiAjZGVmaW5lIEdJU1RfU09SVFNV UFBPUlRfUFJPQwkJCTExCi0jZGVmaW5lIEdJU1ROUHJvY3MJCQkJCTExCisjZGVmaW5lIEdJ U1RfU1RSQVROVU1fUFJPQwkJCQkxMgorI2RlZmluZSBHSVNUTlByb2NzCQkJCQkxMgogCiAv KgogICogUGFnZSBvcGFxdWUgZGF0YSBpbiBhIEdpU1QgaW5kZXggcGFnZS4KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfYW1wcm9jLmRhdAppbmRleCBmNjM5YzNhNmE1MS4uMzUyNTU4YzFmMDYgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKQEAgLTUwNyw2ICs1MDcsOSBAQAogICBh bXByb2NyaWdodHR5cGUgPT4gJ2JveCcsIGFtcHJvY251bSA9PiAnNycsIGFtcHJvYyA9PiAn Z2lzdF9ib3hfc2FtZScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L2JveF9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAnYm94JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdib3gnLCBh bXByb2NudW0gPT4gJzgnLCBhbXByb2MgPT4gJ2dpc3RfYm94X2Rpc3RhbmNlJyB9LAoreyBh bXByb2NmYW1pbHkgPT4gJ2dpc3QvYm94X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdib3gn LAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2JveCcsIGFtcHJvY251bSA9PiAnMTInLAorICBh bXByb2MgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCiB7IGFtcHJvY2ZhbWlseSA9 PiAnZ2lzdC9wb2x5X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdwb2x5Z29uJywKICAgYW1w cm9jcmlnaHR0eXBlID0+ICdwb2x5Z29uJywgYW1wcm9jbnVtID0+ICcxJywKICAgYW1wcm9j ID0+ICdnaXN0X3BvbHlfY29uc2lzdGVudCcgfSwKQEAgLTUyNiw2ICs1MjksOSBAQAogeyBh bXByb2NmYW1pbHkgPT4gJ2dpc3QvcG9seV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncG9s eWdvbicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAncG9seWdvbicsIGFtcHJvY251bSA9PiAn OCcsCiAgIGFtcHJvYyA9PiAnZ2lzdF9wb2x5X2Rpc3RhbmNlJyB9LAoreyBhbXByb2NmYW1p bHkgPT4gJ2dpc3QvcG9seV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncG9seWdvbicsCisg IGFtcHJvY3JpZ2h0dHlwZSA9PiAncG9seWdvbicsIGFtcHJvY251bSA9PiAnMTInLAorICBh bXByb2MgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCiB7IGFtcHJvY2ZhbWlseSA9 PiAnZ2lzdC9jaXJjbGVfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2NpcmNsZScsCiAgIGFt cHJvY3JpZ2h0dHlwZSA9PiAnY2lyY2xlJywgYW1wcm9jbnVtID0+ICcxJywKICAgYW1wcm9j ID0+ICdnaXN0X2NpcmNsZV9jb25zaXN0ZW50JyB9LApAQCAtNTQ0LDYgKzU1MCw5IEBACiB7 IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9jaXJjbGVfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4g J2NpcmNsZScsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnY2lyY2xlJywgYW1wcm9jbnVtID0+ ICc4JywKICAgYW1wcm9jID0+ICdnaXN0X2NpcmNsZV9kaXN0YW5jZScgfSwKK3sgYW1wcm9j ZmFtaWx5ID0+ICdnaXN0L2NpcmNsZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnY2lyY2xl JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdjaXJjbGUnLCBhbXByb2NudW0gPT4gJzEyJywK KyAgYW1wcm9jID0+ICdnaXN0X3N0cmF0bnVtX2lkZW50aXR5JyB9LAogeyBhbXByb2NmYW1p bHkgPT4gJ2dpc3QvdHN2ZWN0b3Jfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RzdmVjdG9y JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd0c3ZlY3RvcicsIGFtcHJvY251bSA9PiAnMScs CiAgIGFtcHJvYyA9PiAnZ3RzdmVjdG9yX2NvbnNpc3RlbnQoaW50ZXJuYWwsdHN2ZWN0b3Is aW50MixvaWQsaW50ZXJuYWwpJyB9LApAQCAtNTk4LDYgKzYwNyw5IEBACiB7IGFtcHJvY2Zh bWlseSA9PiAnZ2lzdC9yYW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2Un LAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueXJhbmdlJywgYW1wcm9jbnVtID0+ICc3JywK ICAgYW1wcm9jID0+ICdyYW5nZV9naXN0X3NhbWUnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAn Z2lzdC9yYW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2UnLAorICBhbXBy b2NyaWdodHR5cGUgPT4gJ2FueXJhbmdlJywgYW1wcm9jbnVtID0+ICcxMicsCisgIGFtcHJv YyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdn aXN0L25ldHdvcmtfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLAogICBhbXByb2Ny aWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0gPT4gJzEnLAogICBhbXByb2MgPT4gJ2lu ZXRfZ2lzdF9jb25zaXN0ZW50JyB9LApAQCAtNjE0LDYgKzYyNiw5IEBACiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAnaW5ldCcsIGFtcHJvY251bSA9PiAnNycsIGFtcHJvYyA9PiAnaW5ldF9n aXN0X3NhbWUnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9uZXR3b3JrX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdpbmV0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0Jywg YW1wcm9jbnVtID0+ICc5JywgYW1wcm9jID0+ICdpbmV0X2dpc3RfZmV0Y2gnIH0sCit7IGFt cHJvY2ZhbWlseSA9PiAnZ2lzdC9uZXR3b3JrX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdp bmV0JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0JywgYW1wcm9jbnVtID0+ICcxMics CisgIGFtcHJvYyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScgfSwKIHsgYW1wcm9jZmFt aWx5ID0+ICdnaXN0L211bHRpcmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueW11 bHRpcmFuZ2UnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueW11bHRpcmFuZ2UnLCBhbXBy b2NudW0gPT4gJzEnLAogICBhbXByb2MgPT4gJ211bHRpcmFuZ2VfZ2lzdF9jb25zaXN0ZW50 JyB9LApAQCAtNjMyLDYgKzY0Nyw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9tdWx0 aXJhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKICAgYW1w cm9jcmlnaHR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywgYW1wcm9jbnVtID0+ICc3JywKICAg YW1wcm9jID0+ICdyYW5nZV9naXN0X3NhbWUnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnZ2lz dC9tdWx0aXJhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywK KyAgYW1wcm9jcmlnaHR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywgYW1wcm9jbnVtID0+ICcx MicsCisgIGFtcHJvYyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScgfSwKIAogIyBnaW4K IHsgYW1wcm9jZmFtaWx5ID0+ICdnaW4vYXJyYXlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4g J2FueWFycmF5JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IGQxNGE5NGI5ODcz Li5jZWU0MGMxZTRkYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMjIwOCw0 ICsxMjIwOCwxMCBAQAogICBwcm9hcmduYW1lcyA9PiAne3N1bW1hcml6ZWRfdGxpLHN1bW1h cml6ZWRfbHNuLHBlbmRpbmdfbHNuLHN1bW1hcml6ZXJfcGlkfScsCiAgIHByb3NyYyA9PiAn cGdfZ2V0X3dhbF9zdW1tYXJpemVyX3N0YXRlJyB9LAogCisjIEdpU1Qgc3RyYXRudW0gaW1w bGVtZW50YXRpb25zCit7IG9pZCA9PiAnODA0NycsIGRlc2NyID0+ICdHaVNUIHN1cHBvcnQn LAorICBwcm9uYW1lID0+ICdnaXN0X3N0cmF0bnVtX2lkZW50aXR5JywgcHJvcmV0dHlwZSA9 PiAnaW50MicsCisgIHByb2FyZ3R5cGVzID0+ICdpbnQyJywKKyAgcHJvc3JjID0+ICdnaXN0 X3N0cmF0bnVtX2lkZW50aXR5JyB9LAorCiBdCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL21pc2NfZnVuY3Rpb25zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvbWlzY19mdW5jdGlvbnMub3V0CmluZGV4IDM1ZmI3MmYzMDJiLi41ZjdiZjZiOGFm NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9taXNjX2Z1bmN0aW9u cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9taXNjX2Z1bmN0aW9ucy5v dXQKQEAgLTgxOSwzICs4MTksMTYgQEAgU0VMRUNUIHBnX2NvbHVtbl90b2FzdF9jaHVua19p ZChhKSBJUyBOVUxMLAogCiBEUk9QIFRBQkxFIHRlc3RfY2h1bmtfaWQ7CiBEUk9QIEZVTkNU SU9OIGV4cGxhaW5fbWFza19jb3N0cyh0ZXh0LCBib29sLCBib29sLCBib29sLCBib29sKTsK Ky0tIHRlc3Qgc3RyYXRudW0gc3VwcG9ydCBmdW5jdGlvbnMKK1NFTEVDVCBnaXN0X3N0cmF0 bnVtX2lkZW50aXR5KDM6OnNtYWxsaW50KTsKKyBnaXN0X3N0cmF0bnVtX2lkZW50aXR5IAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgMworKDEg cm93KQorCitTRUxFQ1QgZ2lzdF9zdHJhdG51bV9pZGVudGl0eSgxODo6c21hbGxpbnQpOwor IGdpc3Rfc3RyYXRudW1faWRlbnRpdHkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgICAgIDE4CisoMSByb3cpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL21pc2NfZnVuY3Rpb25zLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L21pc2NfZnVuY3Rpb25zLnNxbAppbmRleCBlNTcwNzgzNDUzYy4uMWU5MGQ2MGFmMzUgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21pc2NfZnVuY3Rpb25zLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9taXNjX2Z1bmN0aW9ucy5zcWwKQEAgLTM2MCwzICsz NjAsNyBAQCBTRUxFQ1QgcGdfY29sdW1uX3RvYXN0X2NodW5rX2lkKGEpIElTIE5VTEwsCiAg IEZST00gdGVzdF9jaHVua19pZDsKIERST1AgVEFCTEUgdGVzdF9jaHVua19pZDsKIERST1Ag RlVOQ1RJT04gZXhwbGFpbl9tYXNrX2Nvc3RzKHRleHQsIGJvb2wsIGJvb2wsIGJvb2wsIGJv b2wpOworCistLSB0ZXN0IHN0cmF0bnVtIHN1cHBvcnQgZnVuY3Rpb25zCitTRUxFQ1QgZ2lz dF9zdHJhdG51bV9pZGVudGl0eSgzOjpzbWFsbGludCk7CitTRUxFQ1QgZ2lzdF9zdHJhdG51 bV9pZGVudGl0eSgxODo6c21hbGxpbnQpOwotLSAKMi40Mi4wCgo= --------------GsheMzFFcGdccG4bvM4vwSCN Content-Type: text/x-patch; charset=UTF-8; name="v37-0002-Add-temporal-PRIMARY-KEY-and-UNIQUE-constraints.patch" Content-Disposition: attachment; filename*0="v37-0002-Add-temporal-PRIMARY-KEY-and-UNIQUE-constraints.pat"; filename*1="ch" Content-Transfer-Encoding: base64 RnJvbSA4Y2NiM2ZiODJiMTdiNzlhNzg4ZDQzNjkwYmMzNzY1Y2YyZmQ0NDU0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFdlZCwgMjQgSmFuIDIwMjQgMTU6NDM6NDEgKzAx MDAKU3ViamVjdDogW1BBVENIIHYzNyAyLzhdIEFkZCB0ZW1wb3JhbCBQUklNQVJZIEtFWSBh bmQgVU5JUVVFIGNvbnN0cmFpbnRzCgpBZGQgV0lUSE9VVCBPVkVSTEFQUyBjbGF1c2UgdG8g UFJJTUFSWSBLRVkgYW5kIFVOSVFVRSBjb25zdHJhaW50cy4KVGhlc2UgYXJlIGJhY2tlZCBi eSBHaVNUIGluZGV4ZXMgaW5zdGVhZCBvZiBCLXRyZWUgaW5kZXhlcywgc2luY2UgdGhleQph cmUgZXNzZW50aWFsbHkgZXhjbHVzaW9uIGNvbnN0cmFpbnRzIHdpdGggPSBmb3IgdGhlIHNj YWxhciBwYXJ0cyBvZgp0aGUga2V5IGFuZCAmJiBmb3IgdGhlIHRlbXBvcmFsIHBhcnQuCi0t LQogY29udHJpYi9idHJlZV9naXN0L01ha2VmaWxlICAgICAgICAgICAgICAgICAgIHwgICAg MiArLQogLi4uL2J0cmVlX2dpc3QvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQgIHwg ICA0NCArCiBjb250cmliL2J0cmVlX2dpc3QvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAg fCAgICAxICsKIGNvbnRyaWIvYnRyZWVfZ2lzdC9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwg ICB8ICAgMjUgKwogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAg ICAgIHwgICAxMCArCiBkb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDE0ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sICAg ICAgICAgICAgfCAgIDQyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5j ICAgICAgICAgICAgfCAgIDI5ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jICAgICAg ICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jICAg ICAgICAgICAgICAgICAgIHwgICAgNCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0 cmFpbnQuYyAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4 Y21kcy5jICAgICAgICAgICAgICB8ICAxNDMgKystCiBzcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgICA2ICstCiBzcmMvYmFja2VuZC9jb21tYW5k cy90cmlnZ2VyLmMgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3R5cGVjbWRzLmMgICAgICAgICAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0luZGV4aW5nLmMgICAgICAgICAgIHwgICAgMiArLQogc3JjL2JhY2tlbmQv b3B0aW1pemVyL3V0aWwvcGxhbmNhdC5jICAgICAgICAgIHwgICAgOSArLQogc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgICAyOSArLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyAgICAgICAgICAgIHwgICAyOCArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgICAgIHwgICAgMiArCiBz cmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAgICAgICAgfCAgIDE4ICst CiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAgIDE2 ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAg ICAxICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8 ICAgMzYgKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAg IHwgICAxMiArLQogc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaCAgICAgICAgICAgICAgICAg ICAgIHwgICAgMyArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL2luZGV4LmggICAgICAgICAgICAg ICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oICAg ICAgICAgICB8ICAgMTAgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5oICAgICAg ICAgICAgICAgICB8ICAgIDYgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAg ICAgICAgICAgICAgICB8ICAgIDIgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9v dmVybGFwcy5vdXQgICAgIHwgMTA4OCArKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAgMiArLQogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgICAgIHwgIDc1NCArKysrKysrKysr KysKIDMzIGZpbGVzIGNoYW5nZWQsIDIyOTMgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVkL3dp dGhvdXRfb3ZlcmxhcHMub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9idHJlZV9n aXN0L3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAoKZGlm ZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9NYWtlZmlsZSBiL2NvbnRyaWIvYnRyZWVf Z2lzdC9NYWtlZmlsZQppbmRleCA5YWI4NTQ4YmMwZS4uN2FjMmRmMjZjMTAgMTAwNjQ0Ci0t LSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9NYWtlZmlsZQorKysgYi9jb250cmliL2J0cmVlX2dp c3QvTWFrZWZpbGUKQEAgLTQwLDcgKzQwLDcgQEAgUEdGSUxFREVTQyA9ICJidHJlZV9naXN0 IC0gQi10cmVlIGVxdWl2YWxlbnQgR2lTVCBvcGVyYXRvciBjbGFzc2VzIgogUkVHUkVTUyA9 IGluaXQgaW50MiBpbnQ0IGludDggZmxvYXQ0IGZsb2F0OCBjYXNoIG9pZCB0aW1lc3RhbXAg dGltZXN0YW1wdHogXAogICAgICAgICB0aW1lIHRpbWV0eiBkYXRlIGludGVydmFsIG1hY2Fk ZHIgbWFjYWRkcjggaW5ldCBjaWRyIHRleHQgdmFyY2hhciBjaGFyIFwKICAgICAgICAgYnl0 ZWEgYml0IHZhcmJpdCBudW1lcmljIHV1aWQgbm90X2VxdWFsIGVudW0gYm9vbCBwYXJ0aXRp b25zIFwKLSAgICAgICAgc3RyYXRudW0KKyAgICAgICAgc3RyYXRudW0gd2l0aG91dF9vdmVy bGFwcwogCiBTSExJQl9MSU5LICs9ICQoZmlsdGVyIC1sbSwgJChMSUJTKSkKIApkaWZmIC0t Z2l0IGEvY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0 IGIvY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iZTUyYzUyMmU4OQotLS0g L2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9leHBlY3RlZC93aXRob3V0X292 ZXJsYXBzLm91dApAQCAtMCwwICsxLDQ0IEBACistLSBDb3JlIG11c3QgdGVzdCBXSVRIT1VU IE9WRVJMQVBTCistLSB3aXRoIGFuIGludDRyYW5nZSArIGRhdGVyYW5nZSwKKy0tIHNvIGhl cmUgd2UgZG8gc29tZSBzaW1wbGUgdGVzdHMKKy0tIHRvIG1ha2Ugc3VyZSBpbnQgKyBkYXRl cmFuZ2Ugd29ya3MgdG9vLAorLS0gc2luY2UgdGhhdCBpcyB0aGUgZXhwZWN0ZWQgdXNlLWNh c2UuCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nICgKKyAgaWQgaW50ZWdlciwKKyAgdmFs aWRfYXQgZGF0ZXJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxf cm5nCisgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfcm5nIgorICBDb2x1 bW4gIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQor IGlkICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxp ZF9hdCB8IGRhdGVyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCitJbmRleGVzOgor ICAgICJ0ZW1wb3JhbF9ybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUykKKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBw Z19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nX3BrJzsKKyAgICAg ICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKDEgcm93KQorCitTRUxFQ1QgcGdfZ2V0X2lu ZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29u bmFtZSA9ICd0ZW1wb3JhbF9ybmdfcGsnOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9y YWxfcm5nX3BrIE9OIHRlbXBvcmFsX3JuZyBVU0lORyBnaXN0IChpZCwgdmFsaWRfYXQpCiso MSByb3cpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyBWQUxVRVMKKyAgKDEsICdbMjAw MC0wMS0wMSwyMDAxLTAxLTAxKScpOworLS0gc2FtZSBrZXksIGRvZXNuJ3Qgb3ZlcmxhcDoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyBWQUxVRVMKKyAgKDEsICdbMjAwMS0wMS0wMSwy MDAyLTAxLTAxKScpOworLS0gb3ZlcmxhcHMgYnV0IGRpZmZlcmVudCBrZXk6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVTCisgICgyLCAnWzIwMDAtMDEtMDEsMjAwMS0wMS0w MSknKTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIFZBTFVF UworICAoMSwgJ1syMDAwLTA2LTAxLDIwMDEtMDEtMDEpJyk7CitFUlJPUjogIGNvbmZsaWN0 aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29uc3RyYWludCAidGVtcG9yYWxf cm5nX3BrIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPSgxLCBbMDYtMDEtMjAwMCww MS0wMS0yMDAxKSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQp PSgxLCBbMDEtMDEtMjAwMCwwMS0wMS0yMDAxKSkuCmRpZmYgLS1naXQgYS9jb250cmliL2J0 cmVlX2dpc3QvbWVzb24uYnVpbGQgYi9jb250cmliL2J0cmVlX2dpc3QvbWVzb24uYnVpbGQK aW5kZXggYTQ0Y2U5MDVlNTkuLjczYjFiYmY1MmE2IDEwMDY0NAotLS0gYS9jb250cmliL2J0 cmVlX2dpc3QvbWVzb24uYnVpbGQKKysrIGIvY29udHJpYi9idHJlZV9naXN0L21lc29uLmJ1 aWxkCkBAIC05MSw2ICs5MSw3IEBAIHRlc3RzICs9IHsKICAgICAgICdib29sJywKICAgICAg ICdwYXJ0aXRpb25zJywKICAgICAgICdzdHJhdG51bScsCisgICAgICAnd2l0aG91dF9vdmVy bGFwcycsCiAgICAgXSwKICAgfSwKIH0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lz dC9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgYi9jb250cmliL2J0cmVlX2dpc3Qvc3FsL3dp dGhvdXRfb3ZlcmxhcHMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi40MzNjNjA5YWIyMgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lz dC9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKQEAgLTAsMCArMSwyNSBAQAorLS0gQ29yZSBt dXN0IHRlc3QgV0lUSE9VVCBPVkVSTEFQUworLS0gd2l0aCBhbiBpbnQ0cmFuZ2UgKyBkYXRl cmFuZ2UsCistLSBzbyBoZXJlIHdlIGRvIHNvbWUgc2ltcGxlIHRlc3RzCistLSB0byBtYWtl IHN1cmUgaW50ICsgZGF0ZXJhbmdlIHdvcmtzIHRvbywKKy0tIHNpbmNlIHRoYXQgaXMgdGhl IGV4cGVjdGVkIHVzZS1jYXNlLgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCisgIGlk IGludGVnZXIsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQor KTsKK1xkIHRlbXBvcmFsX3JuZworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkg RlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nX3BrJzsK K1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29u c3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZ19wayc7CisKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyBWQUxVRVMKKyAgKDEsICdbMjAwMC0wMS0wMSwyMDAxLTAxLTAx KScpOworLS0gc2FtZSBrZXksIGRvZXNuJ3Qgb3ZlcmxhcDoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyBWQUxVRVMKKyAgKDEsICdbMjAwMS0wMS0wMSwyMDAyLTAxLTAxKScpOworLS0g b3ZlcmxhcHMgYnV0IGRpZmZlcmVudCBrZXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg VkFMVUVTCisgICgyLCAnWzIwMDAtMDEtMDEsMjAwMS0wMS0wMSknKTsKKy0tIHNob3VsZCBm YWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIFZBTFVFUworICAoMSwgJ1syMDAwLTA2 LTAxLDIwMDEtMDEtMDEpJyk7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGI2NTRmYWUxYjJmLi4x ZTU2ZWRhYTcwYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTI3MzAsNiArMjczMCwxNiBAQCBT Q1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVw bGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAg IDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5jb25wZXJpb2Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBjb25zdHJhaW50IGlzIGRl ZmluZWQgd2l0aCA8bGl0ZXJhbD5XSVRIT1VUIE9WRVJMQVBTPC9saXRlcmFsPgorICAgICAg IChmb3IgcHJpbWFyeSBrZXlzIGFuZCB1bmlxdWUgY29uc3RyYWludHMpLgorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD5jb25rZXk8L3N0cnVjdGZpZWxkPiA8dHlwZT5p bnQyW108L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sIGIvZG9j L3NyYy9zZ21sL2dpc3Quc2dtbAppbmRleCBmNzg5ODI0YzgzYi4uZGNmOTQzM2ZhNzggMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2dp c3Quc2dtbApAQCAtMjkyLDcgKzI5Miw4IEBAIENSRUFURSBJTkRFWCBPTiBteV90YWJsZSBV U0lORyBHSVNUIChteV9pbmV0X2NvbHVtbiBpbmV0X29wcyk7CiAgICBUaGUgb3B0aW9uYWwg dHdlbGZ0aCBtZXRob2QgPGZ1bmN0aW9uPnN0cmF0bnVtPC9mdW5jdGlvbj4gaXMgdXNlZCB0 bwogICAgdHJhbnNsYXRlIHdlbGwta25vd24gPGxpdGVyYWw+UlQqU3RyYXRlZ3lOdW1iZXI8 L2xpdGVyYWw+cyAoZnJvbQogICAgPGZpbGVuYW1lPnNyYy9pbmNsdWRlL2FjY2Vzcy9zdHJh dG51bS5oPC9maWxlbmFtZT4pIGludG8gc3RyYXRlZ3kgbnVtYmVycwotICAgdXNlZCBieSB0 aGUgb3BlcmF0b3IgY2xhc3MuCisgICB1c2VkIGJ5IHRoZSBvcGVyYXRvciBjbGFzcy4gIFRo aXMgbGV0cyB0aGUgY29yZSBjb2RlIGxvb2sgdXAgb3BlcmF0b3JzIGZvcgorICAgdGVtcG9y YWwgY29uc3RyYWludCBpbmRleGVzLgogIDwvcGFyYT4KIAogIDx2YXJpYWJsZWxpc3Q+CkBA IC0xMTc5LDYgKzExODAsMTcgQEAgbXlfc29ydHN1cHBvcnQoUEdfRlVOQ1RJT05fQVJHUykK ICAgICAgICBvcGVyYXRvciBjbGFzcyBoYXMgbm8gbWF0Y2hpbmcgc3RyYXRlZ3kuCiAgICAg ICA8L3BhcmE+CiAKKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMgaXMgdXNlZCBmb3IgdGVt cG9yYWwgaW5kZXggY29uc3RyYWludHMgKGkuZS4sIDxsaXRlcmFsPlBSSU1BUlkKKyAgICAg ICBLRVk8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5VTklRVUU8L2xpdGVyYWw+KS4gIElmIHRo ZSBvcGVyYXRvciBjbGFzcworICAgICAgIHByb3ZpZGVzIHRoaXMgZnVuY3Rpb24gYW5kIGl0 IHJldHVybnMgcmVzdWx0cyBmb3IKKyAgICAgICA8bGl0ZXJhbD5SVEVxdWFsU3RyYXRlZ3lO dW1iZXI8L2xpdGVyYWw+LCBpdCBjYW4gYmUgdXNlZCBpbiB0aGUKKyAgICAgICBub24tPGxp dGVyYWw+V0lUSE9VVCBPVkVSTEFQUzwvbGl0ZXJhbD4gcGFydChzKSBvZiBhbiBpbmRleCBj b25zdHJhaW50LgorICAgICAgIElmIGl0IHJldHVybnMgcmVzdWx0cyBmb3IgPGxpdGVyYWw+ UlRPdmVybGFwU3RyYXRlZ3lOdW1iZXI8L2xpdGVyYWw+LAorICAgICAgIHRoZSBvcGVyYXRv ciBjbGFzcyBjYW4gYmUgdXNlZCBpbiB0aGUgPGxpdGVyYWw+V0lUSE9VVAorICAgICAgIE9W RVJMQVBTPC9saXRlcmFsPiBwYXJ0IG9mIGFuIGluZGV4IGNvbnN0cmFpbnQuCisgICAgICA8 L3BhcmE+CisKICAgICAgIDxwYXJhPgogICAgICAgIFRoZSA8YWNyb255bT5TUUw8L2Fjcm9u eW0+IGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBtdXN0IGxvb2sgbGlrZQogICAgICAg IHRoaXM6CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAppbmRleCBmMTkzMDZlNzc2 MC4uZjJjZGEwYzBlOTQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Rh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApAQCAt NzcsOCArNzcsOCBAQCBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JBUlkg fCBURU1QIH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSQogCiBbIENPTlNUUkFJ TlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbnN0cmFpbnRfbmFtZTwvcmVw bGFjZWFibGU+IF0KIHsgQ0hFQ0sgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgWyBOTyBJTkhFUklUIF0gfAotICBVTklRVUUg WyBOVUxMUyBbIE5PVCBdIERJU1RJTkNUIF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gfAot ICBQUklNQVJZIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5f bmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2VhYmxlPiB8CisgIFVOSVFVRSBbIE5V TExTIFsgTk9UIF0gRElTVElOQ1QgXSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFdJVEhPVVQgT1ZF UkxBUFMgXSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0 ZXJzPC9yZXBsYWNlYWJsZT4gfAorICBQUklNQVJZIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IFdJVEhPVVQgT1ZFUkxBUFMgXSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5p bmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gfAogICBFWENMVURFIFsgVVNJTkcgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X21ldGhvZDwvcmVwbGFjZWFibGU+ IF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjbHVkZV9lbGVtZW50PC9y ZXBsYWNlYWJsZT4gV0lUSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3BlcmF0 b3I8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gWyBXSEVSRSAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wcmVkaWNhdGU8L3JlcGxhY2VhYmxlPiApIF0gfAog ICBGT1JFSUdOIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5f bmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgUkVGRVJFTkNFUyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cmVmdGFibGU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+IFssIC4uLiBd ICkgXQogICAgIFsgTUFUQ0ggRlVMTCB8IE1BVENIIFBBUlRJQUwgfCBNQVRDSCBTSU1QTEUg XSBbIE9OIERFTEVURSA8cmVwbGFjZWFibGUKQEAgLTk2NCw3ICs5NjQsNyBAQCBXSVRIICgg TU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFs PC9yZXBsYWNlYWJsZT4sIFJFTQogCiAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRl dGFibGUtcGFybXMtdW5pcXVlIj4KICAgICA8dGVybT48bGl0ZXJhbD5VTklRVUUgWyBOVUxM UyBbIE5PVCBdIERJU1RJTkNUIF08L2xpdGVyYWw+IChjb2x1bW4gY29uc3RyYWludCk8L3Rl cm0+Ci0gICAgPHRlcm0+PGxpdGVyYWw+VU5JUVVFIFsgTlVMTFMgWyBOT1QgXSBESVNUSU5D VCBdICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBs YWNlYWJsZT4gWywgLi4uIF0gKTwvbGl0ZXJhbD4KKyAgICA8dGVybT48bGl0ZXJhbD5VTklR VUUgWyBOVUxMUyBbIE5PVCBdIERJU1RJTkNUIF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBXSVRI T1VUIE9WRVJMQVBTIF0gKTwvbGl0ZXJhbD4KICAgICA8b3B0aW9uYWw+IDxsaXRlcmFsPklO Q0xVREUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3Jl cGxhY2VhYmxlPiBbLCAuLi5dKTwvbGl0ZXJhbD4gPC9vcHRpb25hbD4gKHRhYmxlIGNvbnN0 cmFpbnQpPC90ZXJtPgogCiAgICAgPGxpc3RpdGVtPgpAQCAtOTc4LDYgKzk3OCwzMCBAQCBX SVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19s aXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAgb2YgdGhlc2UgY29sdW1ucy4KICAg ICAgPC9wYXJhPgogCisgICAgIDxwYXJhPgorICAgICAgSWYgdGhlIDxsaXRlcmFsPldJVEhP VVQgT1ZFUkxBUFM8L2xpdGVyYWw+IG9wdGlvbiBpcyBzcGVjaWZpZWQgZm9yIHRoZQorICAg ICAgbGFzdCBjb2x1bW4sIHRoZW4gdGhhdCBjb2x1bW4gaXMgY2hlY2tlZCBmb3Igb3Zlcmxh cHMgaW5zdGVhZCBvZgorICAgICAgZXF1YWxpdHkuICBJbiB0aGF0IGNhc2UsIHRoZSBvdGhl ciBjb2x1bW5zIG9mIHRoZSBjb25zdHJhaW50IHdpbGwgYWxsb3cKKyAgICAgIGR1cGxpY2F0 ZXMgc28gbG9uZyBhcyB0aGUgZHVwbGljYXRlcyBkb24ndCBvdmVybGFwIGluIHRoZQorICAg ICAgPGxpdGVyYWw+V0lUSE9VVCBPVkVSTEFQUzwvbGl0ZXJhbD4gY29sdW1uLiAgKFRoaXMg aXMgc29tZXRpbWVzIGNhbGxlZCBhCisgICAgICB0ZW1wb3JhbCBrZXksIGlmIHRoZSBjb2x1 bW4gaXMgYSByYW5nZSBvZiBkYXRlcyBvciB0aW1lc3RhbXBzLCBidXQKKyAgICAgIFBvc3Rn cmVTUUwgYWxsb3dzIHJhbmdlcyBvdmVyIGFueSBiYXNlIHR5cGUuKSAgSW4gZWZmZWN0LCBz dWNoIGEKKyAgICAgIGNvbnN0cmFpbnQgaXMgZW5mb3JjZWQgd2l0aCBhbiA8bGl0ZXJhbD5F WENMVURFPC9saXRlcmFsPiBjb25zdHJhaW50CisgICAgICByYXRoZXIgdGhhbiBhIDxsaXRl cmFsPlVOSVFVRTwvbGl0ZXJhbD4gY29uc3RyYWludC4gIFNvIGZvciBleGFtcGxlCisgICAg ICA8bGl0ZXJhbD5VTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTwvbGl0 ZXJhbD4gYmVoYXZlcyBsaWtlCisgICAgICA8bGl0ZXJhbD5FWENMVURFIFVTSU5HIEdJU1Qg KGlkIFdJVEggPSwgdmFsaWRfYXQgV0lUSAorICAgICAgJmFtcDsmYW1wOyk8L2xpdGVyYWw+ LiAgVGhlIDxsaXRlcmFsPldJVEhPVVQgT1ZFUkxBUFM8L2xpdGVyYWw+IGNvbHVtbgorICAg ICAgbXVzdCBoYXZlIGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSB0eXBlLiAgKFRlY2huaWNhbGx5 LCBhbnkgdHlwZSBpcyBhbGxvd2VkCisgICAgICB3aG9zZSBkZWZhdWx0IEdpU1Qgb3BjbGFz cyBpbmNsdWRlcyBhbiBvdmVybGFwcyBvcGVyYXRvci4gIFNlZSB0aGUKKyAgICAgIDxsaXRl cmFsPnN0cmF0bnVtPC9saXRlcmFsPiBzdXBwb3J0IGZ1bmN0aW9uIHVuZGVyIDx4cmVmCisg ICAgICBsaW5rZW5kPSJnaXN0LWV4dGVuc2liaWxpdHkiLz4gZm9yIGRldGFpbHMuKSAgVGhl IG5vbi08bGl0ZXJhbD5XSVRIT1VUCisgICAgICBPVkVSTEFQUzwvbGl0ZXJhbD4gY29sdW1u cyBvZiB0aGUgY29uc3RyYWludCBjYW4gYmUgYW55IHR5cGUgdGhhdCBjYW4gYmUKKyAgICAg IGNvbXBhcmVkIGZvciBlcXVhbGl0eSBpbiBhIEdpU1QgaW5kZXguICBCeSBkZWZhdWx0LCBv bmx5IHJhbmdlIHR5cGVzIGFyZQorICAgICAgc3VwcG9ydGVkLCBidXQgeW91IGNhbiB1c2Ug b3RoZXIgdHlwZXMgYnkgYWRkaW5nIHRoZSA8eHJlZgorICAgICAgbGlua2VuZD0iYnRyZWUt Z2lzdCIvPiBleHRlbnNpb24gKHdoaWNoIGlzIHRoZSBleHBlY3RlZCB3YXkgdG8gdXNlIHRo aXMKKyAgICAgIGZlYXR1cmUpLgorICAgICA8L3BhcmE+CisKICAgICAgPHBhcmE+CiAgICAg ICBGb3IgdGhlIHB1cnBvc2Ugb2YgYSB1bmlxdWUgY29uc3RyYWludCwgbnVsbCB2YWx1ZXMg YXJlIG5vdAogICAgICAgY29uc2lkZXJlZCBlcXVhbCwgdW5sZXNzIDxsaXRlcmFsPk5VTExT IE5PVCBESVNUSU5DVDwvbGl0ZXJhbD4gaXMKQEAgLTEwMDAsOCArMTAyNCwxMCBAQCBXSVRI ICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRl cmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogCiAgICAgIDxwYXJhPgogICAgICAgQWRkaW5nIGEg dW5pcXVlIGNvbnN0cmFpbnQgd2lsbCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIHVuaXF1ZSBi dHJlZQotICAgICAgaW5kZXggb24gdGhlIGNvbHVtbiBvciBncm91cCBvZiBjb2x1bW5zIHVz ZWQgaW4gdGhlIGNvbnN0cmFpbnQuICBUaGUKLSAgICAgIGNyZWF0ZWQgaW5kZXggaGFzIHRo ZSBzYW1lIG5hbWUgYXMgdGhlIHVuaXF1ZSBjb25zdHJhaW50LgorICAgICAgaW5kZXggb24g dGhlIGNvbHVtbiBvciBncm91cCBvZiBjb2x1bW5zIHVzZWQgaW4gdGhlIGNvbnN0cmFpbnQu ICBCdXQgaWYKKyAgICAgIHRoZSBjb25zdHJhaW50IGluY2x1ZGVzIGEgPGxpdGVyYWw+V0lU SE9VVCBPVkVSTEFQUzwvbGl0ZXJhbD4gY2xhdXNlLCBpdAorICAgICAgd2lsbCB1c2UgYSBH aVNUIGluZGV4LiAgVGhlIGNyZWF0ZWQgaW5kZXggaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhl CisgICAgICB1bmlxdWUgY29uc3RyYWludC4KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJh PgpAQCAtMTAxOSw3ICsxMDQ1LDcgQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KIAog ICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXRhYmxlLXBhcm1zLXByaW1hcnkta2V5 Ij4KICAgICA8dGVybT48bGl0ZXJhbD5QUklNQVJZIEtFWTwvbGl0ZXJhbD4gKGNvbHVtbiBj b25zdHJhaW50KTwvdGVybT4KLSAgICA8dGVybT48bGl0ZXJhbD5QUklNQVJZIEtFWSAoIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IFssIC4uLiBdICk8L2xpdGVyYWw+CisgICAgPHRlcm0+PGxpdGVyYWw+UFJJTUFSWSBLRVkg KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2Vh YmxlPiBbLCAuLi4gXSBbLCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1u X25hbWU8L3JlcGxhY2VhYmxlPiBXSVRIT1VUIE9WRVJMQVBTIF0gKTwvbGl0ZXJhbD4KICAg ICA8b3B0aW9uYWw+IDxsaXRlcmFsPklOQ0xVREUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dKTwvbGl0ZXJhbD4g PC9vcHRpb25hbD4gKHRhYmxlIGNvbnN0cmFpbnQpPC90ZXJtPgogICAgIDxsaXN0aXRlbT4K ICAgICAgPHBhcmE+CkBAIC0xMDU0LDggKzEwODAsOCBAQCBXSVRIICggTU9EVUxVUyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJs ZT4sIFJFTQogICAgICA8cGFyYT4KICAgICAgIEFkZGluZyBhIDxsaXRlcmFsPlBSSU1BUlkg S0VZPC9saXRlcmFsPiBjb25zdHJhaW50IHdpbGwgYXV0b21hdGljYWxseQogICAgICAgY3Jl YXRlIGEgdW5pcXVlIGJ0cmVlIGluZGV4IG9uIHRoZSBjb2x1bW4gb3IgZ3JvdXAgb2YgY29s dW1ucyB1c2VkIGluCi0gICAgICB0aGUgY29uc3RyYWludC4gIFRoYXQgaW5kZXggaGFzIHRo ZSBzYW1lIG5hbWUgYXMgdGhlIHByaW1hcnkga2V5Ci0gICAgICBjb25zdHJhaW50LgorICAg ICAgdGhlIGNvbnN0cmFpbnQsIG9yIEdpU1QgaWYgPGxpdGVyYWw+V0lUSE9VVCBPVkVSTEFQ UzwvbGl0ZXJhbD4gd2FzCisgICAgICBzcGVjaWZpZWQuCiAgICAgIDwvcGFyYT4KIAogICAg ICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGls LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jCmluZGV4IDg2ODY3MzVm MjM0Li5kMmQwYjM2ZDRlYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3Qv Z2lzdHV0aWwuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jCkBA IC0xMDY5LDMgKzEwNjksMzIgQEAgZ2lzdF9zdHJhdG51bV9pZGVudGl0eShQR19GVU5DVElP Tl9BUkdTKQogCiAJUEdfUkVUVVJOX1VJTlQxNihzdHJhdCk7CiB9CisKKy8qCisgKiBSZXR1 cm5zIHRoZSBvcGNsYXNzJ3MgcHJpdmF0ZSBzdHJhdG51bSB1c2VkIGZvciB0aGUgZ2l2ZW4g c3RyYXRlZ3kuCisgKgorICogQ2FsbHMgdGhlIG9wY2xhc3MncyBHSVNUX1NUUkFUTlVNX1BS T0Mgc3VwcG9ydCBmdW5jdGlvbiwgaWYgYW55LAorICogYW5kIHJldHVybnMgdGhlIHJlc3Vs dC4KKyAqIFJldHVybnMgSW52YWxpZFN0cmF0ZWd5IGlmIHRoZSBmdW5jdGlvbiBpcyBub3Qg ZGVmaW5lZC4KKyAqLworU3RyYXRlZ3lOdW1iZXIKK0dpc3RUcmFuc2xhdGVTdHJhdG51bShP aWQgb3BjbGFzcywgU3RyYXRlZ3lOdW1iZXIgc3RyYXQpCit7CisJT2lkCQkJb3BmYW1pbHk7 CisJT2lkCQkJb3BjaW50eXBlOworCU9pZAkJCWZ1bmNpZDsKKwlEYXR1bQkJcmVzdWx0Owor CisJLyogTG9vayB1cCB0aGUgb3BjbGFzcyBmYW1pbHkgYW5kIGlucHV0IGRhdGF0eXBlLiAq LworCWlmICghZ2V0X29wY2xhc3Nfb3BmYW1pbHlfYW5kX2lucHV0X3R5cGUob3BjbGFzcywg Jm9wZmFtaWx5LCAmb3BjaW50eXBlKSkKKwkJcmV0dXJuIEludmFsaWRTdHJhdGVneTsKKwor CS8qIENoZWNrIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIGlzIHByb3ZpZGVkLiAqLworCWZ1bmNp ZCA9IGdldF9vcGZhbWlseV9wcm9jKG9wZmFtaWx5LCBvcGNpbnR5cGUsIG9wY2ludHlwZSwg R0lTVF9TVFJBVE5VTV9QUk9DKTsKKwlpZiAoIU9pZElzVmFsaWQoZnVuY2lkKSkKKwkJcmV0 dXJuIEludmFsaWRTdHJhdGVneTsKKworCS8qIEFzayB0aGUgdHJhbnNsYXRpb24gZnVuY3Rp b24gKi8KKwlyZXN1bHQgPSBPaWRGdW5jdGlvbkNhbGwxQ29sbChmdW5jaWQsIEludmFsaWRP aWQsIFVJbnQxNkdldERhdHVtKHN0cmF0KSk7CisJcmV0dXJuIERhdHVtR2V0VUludDE2KHJl c3VsdCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCmluZGV4IDAxYjQzY2M2YTg0Li43OGU1OTM4NGQx YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9oZWFwLmMKQEAgLTIxNjMsNiArMjE2Myw3IEBAIFN0b3JlUmVsQ2hl Y2soUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjY25hbWUsIE5vZGUgKmV4cHIsCiAJCQkJ CQkJICBpc19sb2NhbCwgLyogY29uaXNsb2NhbCAqLwogCQkJCQkJCSAgaW5oY291bnQsIC8q IGNvbmluaGNvdW50ICovCiAJCQkJCQkJICBpc19ub19pbmhlcml0LAkvKiBjb25ub2luaGVy aXQgKi8KKwkJCQkJCQkgIGZhbHNlLAkvKiBjb25wZXJpb2QgKi8KIAkJCQkJCQkgIGlzX2lu dGVybmFsKTsgLyogaW50ZXJuYWxseSBjb25zdHJ1Y3RlZD8gKi8KIAogCXBmcmVlKGNjYmlu KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvaW5kZXguYwppbmRleCBhODE5YjQxOTdjZS4uNWM0OGU1NzI4ZTkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYworKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL2luZGV4LmMKQEAgLTE4NzQsNiArMTg3NCw3IEBAIGluZGV4X2NvbmN1cnJl bnRseV9zZXRfZGVhZChPaWQgaGVhcElkLCBPaWQgaW5kZXhJZCkKICAqCQlJTkRFWF9DT05T VFJfQ1JFQVRFX1VQREFURV9JTkRFWDogdXBkYXRlIHRoZSBwZ19pbmRleCByb3cKICAqCQlJ TkRFWF9DT05TVFJfQ1JFQVRFX1JFTU9WRV9PTERfREVQUzogcmVtb3ZlIGV4aXN0aW5nIGRl cGVuZGVuY2llcwogICoJCQlvZiBpbmRleCBvbiB0YWJsZSdzIGNvbHVtbnMKKyAqCQlJTkRF WF9DT05TVFJfQ1JFQVRFX1dJVEhPVVRfT1ZFUkxBUFM6IGNvbnN0cmFpbnQgdXNlcyBXSVRI T1VUIE9WRVJMQVBTCiAgKiBhbGxvd19zeXN0ZW1fdGFibGVfbW9kczogYWxsb3cgdGFibGUg dG8gYmUgYSBzeXN0ZW0gY2F0YWxvZwogICogaXNfaW50ZXJuYWw6IGluZGV4IGlzIGNvbnN0 cnVjdGVkIGR1ZSB0byBpbnRlcm5hbCBwcm9jZXNzCiAgKi8KQEAgLTE4OTcsMTEgKzE4OTgs MTMgQEAgaW5kZXhfY29uc3RyYWludF9jcmVhdGUoUmVsYXRpb24gaGVhcFJlbGF0aW9uLAog CWJvb2wJCW1hcmtfYXNfcHJpbWFyeTsKIAlib29sCQlpc2xvY2FsOwogCWJvb2wJCW5vaW5o ZXJpdDsKKwlib29sCQlpc193aXRob3V0X292ZXJsYXBzOwogCWludAkJCWluaGNvdW50Owog CiAJZGVmZXJyYWJsZSA9IChjb25zdHJfZmxhZ3MgJiBJTkRFWF9DT05TVFJfQ1JFQVRFX0RF RkVSUkFCTEUpICE9IDA7CiAJaW5pdGRlZmVycmVkID0gKGNvbnN0cl9mbGFncyAmIElOREVY X0NPTlNUUl9DUkVBVEVfSU5JVF9ERUZFUlJFRCkgIT0gMDsKIAltYXJrX2FzX3ByaW1hcnkg PSAoY29uc3RyX2ZsYWdzICYgSU5ERVhfQ09OU1RSX0NSRUFURV9NQVJLX0FTX1BSSU1BUlkp ICE9IDA7CisJaXNfd2l0aG91dF9vdmVybGFwcyA9IChjb25zdHJfZmxhZ3MgJiBJTkRFWF9D T05TVFJfQ1JFQVRFX1dJVEhPVVRfT1ZFUkxBUFMpICE9IDA7CiAKIAkvKiBjb25zdHJhaW50 IGNyZWF0aW9uIHN1cHBvcnQgZG9lc24ndCB3b3JrIHdoaWxlIGJvb3RzdHJhcHBpbmcgKi8K IAlBc3NlcnQoIUlzQm9vdHN0cmFwUHJvY2Vzc2luZ01vZGUoKSk7CkBAIC0xOTc4LDYgKzE5 ODEsNyBAQCBpbmRleF9jb25zdHJhaW50X2NyZWF0ZShSZWxhdGlvbiBoZWFwUmVsYXRpb24s CiAJCQkJCQkJCSAgIGlzbG9jYWwsCiAJCQkJCQkJCSAgIGluaGNvdW50LAogCQkJCQkJCQkg ICBub2luaGVyaXQsCisJCQkJCQkJCSAgIGlzX3dpdGhvdXRfb3ZlcmxhcHMsCiAJCQkJCQkJ CSAgIGlzX2ludGVybmFsKTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRh bG9nL3BnX2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWlu dC5jCmluZGV4IDNiYWY5MjMxZWQwLi45YmUwNTBjY2VlOCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19jb25zdHJhaW50LmMKQEAgLTc1LDYgKzc1LDcgQEAgQ3JlYXRlQ29uc3RyYWludEVu dHJ5KGNvbnN0IGNoYXIgKmNvbnN0cmFpbnROYW1lLAogCQkJCQkgIGJvb2wgY29uSXNMb2Nh bCwKIAkJCQkJICBpbnQgY29uSW5oQ291bnQsCiAJCQkJCSAgYm9vbCBjb25Ob0luaGVyaXQs CisJCQkJCSAgYm9vbCBjb25QZXJpb2QsCiAJCQkJCSAgYm9vbCBpc19pbnRlcm5hbCkKIHsK IAlSZWxhdGlvbgljb25EZXNjOwpAQCAtMTkwLDYgKzE5MSw3IEBAIENyZWF0ZUNvbnN0cmFp bnRFbnRyeShjb25zdCBjaGFyICpjb25zdHJhaW50TmFtZSwKIAl2YWx1ZXNbQW51bV9wZ19j b25zdHJhaW50X2NvbmlzbG9jYWwgLSAxXSA9IEJvb2xHZXREYXR1bShjb25Jc0xvY2FsKTsK IAl2YWx1ZXNbQW51bV9wZ19jb25zdHJhaW50X2NvbmluaGNvdW50IC0gMV0gPSBJbnQxNkdl dERhdHVtKGNvbkluaENvdW50KTsKIAl2YWx1ZXNbQW51bV9wZ19jb25zdHJhaW50X2Nvbm5v aW5oZXJpdCAtIDFdID0gQm9vbEdldERhdHVtKGNvbk5vSW5oZXJpdCk7CisJdmFsdWVzW0Fu dW1fcGdfY29uc3RyYWludF9jb25wZXJpb2QgLSAxXSA9IEJvb2xHZXREYXR1bShjb25QZXJp b2QpOwogCiAJaWYgKGNvbmtleUFycmF5KQogCQl2YWx1ZXNbQW51bV9wZ19jb25zdHJhaW50 X2NvbmtleSAtIDFdID0gUG9pbnRlckdldERhdHVtKGNvbmtleUFycmF5KTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvaW5kZXhjbWRzLmMKaW5kZXggYzVhNTZjNzVmNjkuLjQ3ZTEzOWIzODI4IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwpAQCAtMTYsNiArMTYsNyBAQAogI2luY2x1ZGUg InBvc3RncmVzLmgiCiAKICNpbmNsdWRlICJhY2Nlc3MvYW1hcGkuaCIKKyNpbmNsdWRlICJh Y2Nlc3MvZ2lzdC5oIgogI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIKICNpbmNsdWRlICJh Y2Nlc3MvaHR1cF9kZXRhaWxzLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3JlbG9wdGlvbnMuaCIK QEAgLTg3LDYgKzg4LDcgQEAgc3RhdGljIHZvaWQgQ29tcHV0ZUluZGV4QXR0cnMoSW5kZXhJ bmZvICppbmRleEluZm8sCiAJCQkJCQkJICBPaWQgYWNjZXNzTWV0aG9kSWQsCiAJCQkJCQkJ ICBib29sIGFtY2Fub3JkZXIsCiAJCQkJCQkJICBib29sIGlzY29uc3RyYWludCwKKwkJCQkJ CQkgIGJvb2wgaXN3aXRob3V0b3ZlcmxhcHMsCiAJCQkJCQkJICBPaWQgZGRsX3VzZXJpZCwK IAkJCQkJCQkgIGludCBkZGxfc2VjX2NvbnRleHQsCiAJCQkJCQkJICBpbnQgKmRkbF9zYXZl X25lc3RsZXZlbCk7CkBAIC0xNDUsNiArMTQ3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVpbmRl eEVycm9ySW5mbwogICoJCXRvIGluZGV4IG9uLgogICogJ2V4Y2x1c2lvbk9wTmFtZXMnOiBs aXN0IG9mIG5hbWVzIG9mIGV4Y2x1c2lvbi1jb25zdHJhaW50IG9wZXJhdG9ycywKICAqCQlv ciBOSUwgaWYgbm90IGFuIGV4Y2x1c2lvbiBjb25zdHJhaW50LgorICogJ2lzV2l0aG91dE92 ZXJsYXBzJzogdHJ1ZSBpZmYgdGhpcyBpbmRleCBoYXMgYSBXSVRIT1VUIE9WRVJMQVBTIGNs YXVzZS4KICAqCiAgKiBUaGlzIGlzIHRhaWxvcmVkIHRvIHRoZSBuZWVkcyBvZiBBTFRFUiBU QUJMRSBBTFRFUiBUWVBFLCB3aGljaCByZWNyZWF0ZXMKICAqIGFueSBpbmRleGVzIHRoYXQg ZGVwZW5kZWQgb24gYSBjaGFuZ2luZyBjb2x1bW4gZnJvbSB0aGVpciBwZ19nZXRfaW5kZXhk ZWYKQEAgLTE3NCw3ICsxNzcsOCBAQCBib29sCiBDaGVja0luZGV4Q29tcGF0aWJsZShPaWQg b2xkSWQsCiAJCQkJCSBjb25zdCBjaGFyICphY2Nlc3NNZXRob2ROYW1lLAogCQkJCQkgY29u c3QgTGlzdCAqYXR0cmlidXRlTGlzdCwKLQkJCQkJIGNvbnN0IExpc3QgKmV4Y2x1c2lvbk9w TmFtZXMpCisJCQkJCSBjb25zdCBMaXN0ICpleGNsdXNpb25PcE5hbWVzLAorCQkJCQkgYm9v bCBpc1dpdGhvdXRPdmVybGFwcykKIHsKIAlib29sCQlpc2NvbnN0cmFpbnQ7CiAJT2lkCQkg ICAqdHlwZUlkczsKQEAgLTI0OSw4ICsyNTMsOCBAQCBDaGVja0luZGV4Q29tcGF0aWJsZShP aWQgb2xkSWQsCiAJCQkJCSAgY29sb3B0aW9ucywgYXR0cmlidXRlTGlzdCwKIAkJCQkJICBl eGNsdXNpb25PcE5hbWVzLCByZWxhdGlvbklkLAogCQkJCQkgIGFjY2Vzc01ldGhvZE5hbWUs IGFjY2Vzc01ldGhvZElkLAotCQkJCQkgIGFtY2Fub3JkZXIsIGlzY29uc3RyYWludCwgSW52 YWxpZE9pZCwgMCwgTlVMTCk7Ci0KKwkJCQkJICBhbWNhbm9yZGVyLCBpc2NvbnN0cmFpbnQs IGlzV2l0aG91dE92ZXJsYXBzLCBJbnZhbGlkT2lkLAorCQkJCQkgIDAsIE5VTEwpOwogCiAJ LyogR2V0IHRoZSBzb29uLW9ic29sZXRlIHBnX2luZGV4IHR1cGxlLiAqLwogCXR1cGxlID0g U2VhcmNoU3lzQ2FjaGUxKElOREVYUkVMSUQsIE9iamVjdElkR2V0RGF0dW0ob2xkSWQpKTsK QEAgLTU2MCw2ICs1NjQsNyBAQCBEZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAlib29sCQlh bWNhbm9yZGVyOwogCWJvb2wJCWFtaXNzdW1tYXJpemluZzsKIAlhbW9wdGlvbnNfZnVuY3Rp b24gYW1vcHRpb25zOworCWJvb2wJCWV4Y2x1c2lvbjsKIAlib29sCQlwYXJ0aXRpb25lZDsK IAlib29sCQlzYWZlX2luZGV4OwogCURhdHVtCQlyZWxvcHRpb25zOwpAQCAtNjgwLDYgKzY4 NSwxMiBAQCBEZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAogCW5hbWVzcGFjZUlkID0gUmVs YXRpb25HZXROYW1lc3BhY2UocmVsKTsKIAorCS8qCisJICogSXQgaGFzIGV4Y2x1c2lvbiBj b25zdHJhaW50IGJlaGF2aW9yIGlmIGl0J3MgYW4gRVhDTFVERSBjb25zdHJhaW50IG9yIGEK KwkgKiB0ZW1wb3JhbCBQUklNQVJZIEtFWS9VTklRVUUgY29uc3RyYWludAorCSAqLworCWV4 Y2x1c2lvbiA9IHN0bXQtPmV4Y2x1ZGVPcE5hbWVzIHx8IHN0bXQtPmlzd2l0aG91dG92ZXJs YXBzOworCiAJLyogRW5zdXJlIHRoYXQgaXQgbWFrZXMgc2Vuc2UgdG8gaW5kZXggdGhpcyBr aW5kIG9mIHJlbGF0aW9uICovCiAJc3dpdGNoIChyZWwtPnJkX3JlbC0+cmVsa2luZCkKIAl7 CkBAIC04NDgsNyArODU5LDcgQEAgRGVmaW5lSW5kZXgoT2lkIHRhYmxlSWQsCiAJcGdzdGF0 X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVTU19DUkVBVEVJRFhfQUNDRVNTX01FVEhP RF9PSUQsCiAJCQkJCQkJCSBhY2Nlc3NNZXRob2RJZCk7CiAKLQlpZiAoc3RtdC0+dW5pcXVl ICYmICFhbVJvdXRpbmUtPmFtY2FudW5pcXVlKQorCWlmIChzdG10LT51bmlxdWUgJiYgIXN0 bXQtPmlzd2l0aG91dG92ZXJsYXBzICYmICFhbVJvdXRpbmUtPmFtY2FudW5pcXVlKQogCQll cmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9S VEVEKSwKIAkJCQkgZXJybXNnKCJhY2Nlc3MgbWV0aG9kIFwiJXNcIiBkb2VzIG5vdCBzdXBw b3J0IHVuaXF1ZSBpbmRleGVzIiwKQEAgLTg2Myw3ICs4NzQsNyBAQCBEZWZpbmVJbmRleChP aWQgdGFibGVJZCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRF RCksCiAJCQkJIGVycm1zZygiYWNjZXNzIG1ldGhvZCBcIiVzXCIgZG9lcyBub3Qgc3VwcG9y dCBtdWx0aWNvbHVtbiBpbmRleGVzIiwKIAkJCQkJCWFjY2Vzc01ldGhvZE5hbWUpKSk7Ci0J aWYgKHN0bXQtPmV4Y2x1ZGVPcE5hbWVzICYmIGFtUm91dGluZS0+YW1nZXR0dXBsZSA9PSBO VUxMKQorCWlmIChleGNsdXNpb24gJiYgYW1Sb3V0aW5lLT5hbWdldHR1cGxlID09IE5VTEwp CiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAogCQkJCSBlcnJtc2coImFjY2VzcyBtZXRob2QgXCIlc1wiIGRvZXMgbm90 IHN1cHBvcnQgZXhjbHVzaW9uIGNvbnN0cmFpbnRzIiwKQEAgLTkxNiw4ICs5MjcsOSBAQCBE ZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAkJCQkJICBjb2xvcHRpb25zLCBhbGxJbmRleFBh cmFtcywKIAkJCQkJICBzdG10LT5leGNsdWRlT3BOYW1lcywgdGFibGVJZCwKIAkJCQkJICBh Y2Nlc3NNZXRob2ROYW1lLCBhY2Nlc3NNZXRob2RJZCwKLQkJCQkJICBhbWNhbm9yZGVyLCBz dG10LT5pc2NvbnN0cmFpbnQsIHJvb3Rfc2F2ZV91c2VyaWQsCi0JCQkJCSAgcm9vdF9zYXZl X3NlY19jb250ZXh0LCAmcm9vdF9zYXZlX25lc3RsZXZlbCk7CisJCQkJCSAgYW1jYW5vcmRl ciwgc3RtdC0+aXNjb25zdHJhaW50LCBzdG10LT5pc3dpdGhvdXRvdmVybGFwcywKKwkJCQkJ ICByb290X3NhdmVfdXNlcmlkLCByb290X3NhdmVfc2VjX2NvbnRleHQsCisJCQkJCSAgJnJv b3Rfc2F2ZV9uZXN0bGV2ZWwpOwogCiAJLyoKIAkgKiBFeHRyYSBjaGVja3Mgd2hlbiBjcmVh dGluZyBhIFBSSU1BUlkgS0VZIGluZGV4LgpAQCAtOTM1LDcgKzk0Nyw3IEBAIERlZmluZUlu ZGV4KE9pZCB0YWJsZUlkLAogCSAqIFdlIGNvdWxkIGxpZnQgdGhpcyBsaW1pdGF0aW9uIGlm IHdlIGhhZCBnbG9iYWwgaW5kZXhlcywgYnV0IHRob3NlIGhhdmUKIAkgKiB0aGVpciBvd24g cHJvYmxlbXMsIHNvIHRoaXMgaXMgYSB1c2VmdWwgZmVhdHVyZSBjb21iaW5hdGlvbi4KIAkg Ki8KLQlpZiAocGFydGl0aW9uZWQgJiYgKHN0bXQtPnVuaXF1ZSB8fCBzdG10LT5leGNsdWRl T3BOYW1lcykpCisJaWYgKHBhcnRpdGlvbmVkICYmIChzdG10LT51bmlxdWUgfHwgZXhjbHVz aW9uKSkKIAl7CiAJCVBhcnRpdGlvbktleSBrZXkgPSBSZWxhdGlvbkdldFBhcnRpdGlvbktl eShyZWwpOwogCQljb25zdCBjaGFyICpjb25zdHJhaW50X3R5cGU7CkBAIC05ODksMTAgKzEw MDEsMTAgQEAgRGVmaW5lSW5kZXgoT2lkIHRhYmxlSWQsCiAJCQkgKiBhc3NvY2lhdGVkIHdp dGggaW5kZXggY29sdW1ucywgdG9vLiAgV2Uga25vdyB3aGF0IHRvIGRvIHdpdGgKIAkJCSAq IGJ0cmVlIG9wY2xhc3NlczsgaWYgdGhlcmUgYXJlIGV2ZXIgYW55IG90aGVyIGluZGV4IHR5 cGVzIHRoYXQKIAkJCSAqIHN1cHBvcnQgdW5pcXVlIGluZGV4ZXMsIHRoaXMgbG9naWMgd2ls bCBuZWVkIGV4dGVuc2lvbi4gQnV0IGlmCi0JCQkgKiB3ZSBoYXZlIGFuIGV4Y2x1c2lvbiBj b25zdHJhaW50LCBpdCBhbHJlYWR5IGtub3dzIHRoZQotCQkJICogb3BlcmF0b3JzLCBzbyB3 ZSBkb24ndCBoYXZlIHRvIGluZmVyIHRoZW0uCisJCQkgKiB3ZSBoYXZlIGFuIGV4Y2x1c2lv biBjb25zdHJhaW50IChvciBhIHRlbXBvcmFsIFBLKSwgaXQgYWxyZWFkeQorCQkJICoga25v d3MgdGhlIG9wZXJhdG9ycywgc28gd2UgZG9uJ3QgaGF2ZSB0byBpbmZlciB0aGVtLgogCQkJ ICovCi0JCQlpZiAoc3RtdC0+dW5pcXVlICYmIGFjY2Vzc01ldGhvZElkICE9IEJUUkVFX0FN X09JRCkKKwkJCWlmIChzdG10LT51bmlxdWUgJiYgIXN0bXQtPmlzd2l0aG91dG92ZXJsYXBz ICYmIGFjY2Vzc01ldGhvZElkICE9IEJUUkVFX0FNX09JRCkKIAkJCQllcmVwb3J0KEVSUk9S LAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJ CQkJIGVycm1zZygiY2Fubm90IG1hdGNoIHBhcnRpdGlvbiBrZXkgdG8gYW4gaW5kZXggdXNp bmcgYWNjZXNzIG1ldGhvZCBcIiVzXCIiLApAQCAtMTAzMSwxMiArMTA0MywxMiBAQCBEZWZp bmVJbmRleChPaWQgdGFibGVJZCwKIAkJCQkJewogCQkJCQkJT2lkCQkJaWR4X2Vxb3AgPSBJ bnZhbGlkT2lkOwogCi0JCQkJCQlpZiAoc3RtdC0+dW5pcXVlKQorCQkJCQkJaWYgKHN0bXQt PnVuaXF1ZSAmJiAhc3RtdC0+aXN3aXRob3V0b3ZlcmxhcHMpCiAJCQkJCQkJaWR4X2Vxb3Ag PSBnZXRfb3BmYW1pbHlfbWVtYmVyKGlkeF9vcGZhbWlseSwKIAkJCQkJCQkJCQkJCQkJICAg aWR4X29wY2ludHlwZSwKIAkJCQkJCQkJCQkJCQkJICAgaWR4X29wY2ludHlwZSwKIAkJCQkJ CQkJCQkJCQkJICAgQlRFcXVhbFN0cmF0ZWd5TnVtYmVyKTsKLQkJCQkJCWVsc2UgaWYgKHN0 bXQtPmV4Y2x1ZGVPcE5hbWVzKQorCQkJCQkJZWxzZSBpZiAoZXhjbHVzaW9uKQogCQkJCQkJ CWlkeF9lcW9wID0gaW5kZXhJbmZvLT5paV9FeGNsdXNpb25PcHNbal07CiAJCQkJCQlBc3Nl cnQoaWR4X2Vxb3ApOwogCkBAIC0xMDQ1LDcgKzEwNTcsNyBAQCBEZWZpbmVJbmRleChPaWQg dGFibGVJZCwKIAkJCQkJCQlmb3VuZCA9IHRydWU7CiAJCQkJCQkJYnJlYWs7CiAJCQkJCQl9 Ci0JCQkJCQllbHNlIGlmIChzdG10LT5leGNsdWRlT3BOYW1lcykKKwkJCQkJCWVsc2UgaWYg KGV4Y2x1c2lvbikKIAkJCQkJCXsKIAkJCQkJCQkvKgogCQkJCQkJCSAqIFdlIGZvdW5kIGEg bWF0Y2gsIGJ1dCBpdCdzIG5vdCBhbiBlcXVhbGl0eQpAQCAtMTE4OSw2ICsxMjAxLDggQEAg RGVmaW5lSW5kZXgoT2lkIHRhYmxlSWQsCiAJCWNvbnN0cl9mbGFncyB8PSBJTkRFWF9DT05T VFJfQ1JFQVRFX0RFRkVSUkFCTEU7CiAJaWYgKHN0bXQtPmluaXRkZWZlcnJlZCkKIAkJY29u c3RyX2ZsYWdzIHw9IElOREVYX0NPTlNUUl9DUkVBVEVfSU5JVF9ERUZFUlJFRDsKKwlpZiAo c3RtdC0+aXN3aXRob3V0b3ZlcmxhcHMpCisJCWNvbnN0cl9mbGFncyB8PSBJTkRFWF9DT05T VFJfQ1JFQVRFX1dJVEhPVVRfT1ZFUkxBUFM7CiAKIAlpbmRleFJlbGF0aW9uSWQgPQogCQlp bmRleF9jcmVhdGUocmVsLCBpbmRleFJlbGF0aW9uTmFtZSwgaW5kZXhSZWxhdGlvbklkLCBw YXJlbnRJbmRleElkLApAQCAtMTg1NSw2ICsxODY5LDcgQEAgQ29tcHV0ZUluZGV4QXR0cnMo SW5kZXhJbmZvICppbmRleEluZm8sCiAJCQkJICBPaWQgYWNjZXNzTWV0aG9kSWQsCiAJCQkJ ICBib29sIGFtY2Fub3JkZXIsCiAJCQkJICBib29sIGlzY29uc3RyYWludCwKKwkJCQkgIGJv b2wgaXN3aXRob3V0b3ZlcmxhcHMsCiAJCQkJICBPaWQgZGRsX3VzZXJpZCwKIAkJCQkgIGlu dCBkZGxfc2VjX2NvbnRleHQsCiAJCQkJICBpbnQgKmRkbF9zYXZlX25lc3RsZXZlbCkKQEAg LTE4NzgsNiArMTg5MywxNCBAQCBDb21wdXRlSW5kZXhBdHRycyhJbmRleEluZm8gKmluZGV4 SW5mbywKIAllbHNlCiAJCW5leHRFeGNsT3AgPSBOVUxMOwogCisJLyogZXhjbHVzaW9uT3BO YW1lcyBjYW4gYmUgbm9uLU5JTCBpZiB3ZSBhcmUgY3JlYXRpbmcgYSBwYXJ0aXRpb24gKi8K KwlpZiAoaXN3aXRob3V0b3ZlcmxhcHMgJiYgZXhjbHVzaW9uT3BOYW1lcyA9PSBOSUwpCisJ eworCQlpbmRleEluZm8tPmlpX0V4Y2x1c2lvbk9wcyA9IHBhbGxvY19hcnJheShPaWQsIG5r ZXljb2xzKTsKKwkJaW5kZXhJbmZvLT5paV9FeGNsdXNpb25Qcm9jcyA9IHBhbGxvY19hcnJh eShPaWQsIG5rZXljb2xzKTsKKwkJaW5kZXhJbmZvLT5paV9FeGNsdXNpb25TdHJhdHMgPSBw YWxsb2NfYXJyYXkodWludDE2LCBua2V5Y29scyk7CisJfQorCiAJaWYgKE9pZElzVmFsaWQo ZGRsX3VzZXJpZCkpCiAJCUdldFVzZXJJZEFuZFNlY0NvbnRleHQoJnNhdmVfdXNlcmlkLCAm c2F2ZV9zZWNfY29udGV4dCk7CiAKQEAgLTIxNTcsNiArMjE4MCwyMSBAQCBDb21wdXRlSW5k ZXhBdHRycyhJbmRleEluZm8gKmluZGV4SW5mbywKIAkJCWluZGV4SW5mby0+aWlfRXhjbHVz aW9uU3RyYXRzW2F0dG5dID0gc3RyYXQ7CiAJCQluZXh0RXhjbE9wID0gbG5leHQoZXhjbHVz aW9uT3BOYW1lcywgbmV4dEV4Y2xPcCk7CiAJCX0KKwkJZWxzZSBpZiAoaXN3aXRob3V0b3Zl cmxhcHMpCisJCXsKKwkJCVN0cmF0ZWd5TnVtYmVyIHN0cmF0OworCQkJT2lkCQkJb3BpZDsK KworCQkJaWYgKGF0dG4gPT0gbmtleWNvbHMgLSAxKQorCQkJCXN0cmF0ID0gUlRPdmVybGFw U3RyYXRlZ3lOdW1iZXI7CisJCQllbHNlCisJCQkJc3RyYXQgPSBSVEVxdWFsU3RyYXRlZ3lO dW1iZXI7CisJCQlHZXRPcGVyYXRvckZyb21XZWxsS25vd25TdHJhdGVneShvcGNsYXNzT2lk c1thdHRuXSwgYXR0dHlwZSwKKwkJCQkJCQkJCQkJICZvcGlkLCAmc3RyYXQpOworCQkJaW5k ZXhJbmZvLT5paV9FeGNsdXNpb25PcHNbYXR0bl0gPSBvcGlkOworCQkJaW5kZXhJbmZvLT5p aV9FeGNsdXNpb25Qcm9jc1thdHRuXSA9IGdldF9vcGNvZGUob3BpZCk7CisJCQlpbmRleElu Zm8tPmlpX0V4Y2x1c2lvblN0cmF0c1thdHRuXSA9IHN0cmF0OworCQl9CiAKIAkJLyoKIAkJ ICogU2V0IHVwIHRoZSBwZXItY29sdW1uIG9wdGlvbnMgKGluZG9wdGlvbiBmaWVsZCkuICBG b3Igbm93LCB0aGlzIGlzCkBAIC0yMzg3LDYgKzI0MjUsODMgQEAgR2V0RGVmYXVsdE9wQ2xh c3MoT2lkIHR5cGVfaWQsIE9pZCBhbV9pZCkKIAlyZXR1cm4gSW52YWxpZE9pZDsKIH0KIAor LyoKKyAqIEdldE9wZXJhdG9yRnJvbVdlbGxLbm93blN0cmF0ZWd5CisgKgorICogb3BjbGFz cyAtIHRoZSBvcGNsYXNzIHRvIHVzZQorICogYXR0dHlwZSAtIHRoZSB0eXBlIHRvIGFzayBh Ym91dAorICogb3BpZCAtIGhvbGRzIHRoZSBvcGVyYXRvciB3ZSBmb3VuZAorICogc3RyYXQg LSBob2xkcyB0aGUgaW5wdXQgYW5kIG91dHB1dCBzdHJhdGVneSBudW1iZXIKKyAqCisgKiBG aW5kcyBhbiBvcGVyYXRvciBmcm9tIGEgIndlbGwta25vd24iIHN0cmF0ZWd5IG51bWJlci4g IFRoaXMgaXMgdXNlZCBmb3IKKyAqIHRlbXBvcmFsIGluZGV4IGNvbnN0cmFpbnRzIChhbmQg b3RoZXIgdGVtcG9yYWwgZmVhdHVyZXMpIHRvIGxvb2sgdXAKKyAqIGVxdWFsaXR5IGFuZCBv dmVybGFwcyBvcGVyYXRvcnMsIHNpbmNlIHRoZSBzdHJhdGVneSBudW1iZXJzIGZvciBub24t YnRyZWUKKyAqIGluZGV4YW1zIG5lZWQgbm90IGZvbGxvdyBhbnkgZml4ZWQgc2NoZW1lLiAg V2UgYXNrIGFuIG9wY2xhc3Mgc3VwcG9ydAorICogZnVuY3Rpb24gdG8gdHJhbnNsYXRlIGZy b20gdGhlIHdlbGwta25vd24gbnVtYmVyIHRvIHRoZSBpbnRlcm5hbCB2YWx1ZS4gIElmCisg KiB0aGUgZnVuY3Rpb24gaXNuJ3QgZGVmaW5lZCBvciBpdCBnaXZlcyBubyByZXN1bHQsIHdl IHJldHVybgorICogSW52YWxpZFN0cmF0ZWd5LgorICovCit2b2lkCitHZXRPcGVyYXRvckZy b21XZWxsS25vd25TdHJhdGVneShPaWQgb3BjbGFzcywgT2lkIGF0dHR5cGUsCisJCQkJCQkJ CSBPaWQgKm9waWQsIFN0cmF0ZWd5TnVtYmVyICpzdHJhdCkKK3sKKwlPaWQJCQlvcGZhbWls eTsKKwlPaWQJCQlvcGNpbnR5cGU7CisJU3RyYXRlZ3lOdW1iZXIgaW5zdHJhdCA9ICpzdHJh dDsKKworCUFzc2VydChpbnN0cmF0ID09IFJURXF1YWxTdHJhdGVneU51bWJlciB8fCBpbnN0 cmF0ID09IFJUT3ZlcmxhcFN0cmF0ZWd5TnVtYmVyKTsKKworCSpvcGlkID0gSW52YWxpZE9p ZDsKKworCWlmIChnZXRfb3BjbGFzc19vcGZhbWlseV9hbmRfaW5wdXRfdHlwZShvcGNsYXNz LCAmb3BmYW1pbHksICZvcGNpbnR5cGUpKQorCXsKKwkJLyoKKwkJICogQXNrIHRoZSBvcGNs YXNzIHRvIHRyYW5zbGF0ZSB0byBpdHMgaW50ZXJuYWwgc3RyYXRudW0KKwkJICoKKwkJICog Rm9yIG5vdyB3ZSBvbmx5IG5lZWQgR2lTVCBzdXBwb3J0LCBidXQgdGhpcyBjb3VsZCBzdXBw b3J0IG90aGVyCisJCSAqIGluZGV4YW1zIGlmIHdlIHdhbnRlZC4KKwkJICovCisJCSpzdHJh dCA9IEdpc3RUcmFuc2xhdGVTdHJhdG51bShvcGNsYXNzLCBpbnN0cmF0KTsKKwkJaWYgKCpz dHJhdCA9PSBJbnZhbGlkU3RyYXRlZ3kpCisJCXsKKwkJCUhlYXBUdXBsZQl0dXBsZTsKKwor CQkJdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTEoQ0xBT0lELCBPYmplY3RJZEdldERhdHVtKG9w Y2xhc3MpKTsKKwkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCQkJZWxvZyhF UlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIG9wZXJhdG9yIGNsYXNzICV1Iiwgb3Bj bGFzcyk7CisKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfT0JKRUNUKSwKKwkJCQkJaW5zdHJhdCA9PSBSVEVxdWFsU3RyYXRlZ3lOdW1iZXIg PworCQkJCQllcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBhbiBlcXVhbGl0eSBvcGVyYXRv ciBmb3IgdHlwZSAlcyIsIGZvcm1hdF90eXBlX2JlKGF0dHR5cGUpKSA6CisJCQkJCWVycm1z ZygiY291bGQgbm90IGlkZW50aWZ5IGFuIG92ZXJsYXBzIG9wZXJhdG9yIGZvciB0eXBlICVz IiwgZm9ybWF0X3R5cGVfYmUoYXR0dHlwZSkpLAorCQkJCQllcnJkZXRhaWwoIkNvdWxkIG5v dCB0cmFuc2xhdGUgc3RyYXRlZ3kgbnVtYmVyICVkIGZvciBvcGVyYXRvciBjbGFzcyBcIiVz XCIgZm9yIGFjY2VzcyBtZXRob2QgXCIlc1wiLiIsCisJCQkJCQkJICBpbnN0cmF0LCBOYW1l U3RyKCgoRm9ybV9wZ19vcGNsYXNzKSBHRVRTVFJVQ1QodHVwbGUpKS0+b3BjbmFtZSksICJn aXN0IikpOworCisJCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCQl9CisKKwkJKm9waWQg PSBnZXRfb3BmYW1pbHlfbWVtYmVyKG9wZmFtaWx5LCBvcGNpbnR5cGUsIG9wY2ludHlwZSwg KnN0cmF0KTsKKwl9CisKKwlpZiAoIU9pZElzVmFsaWQoKm9waWQpKQorCXsKKwkJSGVhcFR1 cGxlCXR1cGxlOworCisJCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKE9QRkFNSUxZT0lELCBP YmplY3RJZEdldERhdHVtKG9wZmFtaWx5KSk7CisJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0 dXBsZSkpCisJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igb3BlcmF0 b3IgZmFtaWx5ICV1Iiwgb3BmYW1pbHkpOworCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCWluc3RyYXQgPT0gUlRFcXVh bFN0cmF0ZWd5TnVtYmVyID8KKwkJCQllcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBhbiBl cXVhbGl0eSBvcGVyYXRvciBmb3IgdHlwZSAlcyIsIGZvcm1hdF90eXBlX2JlKGF0dHR5cGUp KSA6CisJCQkJZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYW4gb3ZlcmxhcHMgb3BlcmF0 b3IgZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9iZShhdHR0eXBlKSksCisJCQkJZXJyZGV0 YWlsKCJUaGVyZSBpcyBubyBzdWl0YWJsZSBvcGVyYXRvciBpbiBvcGVyYXRvciBmYW1pbHkg XCIlc1wiIGZvciBhY2Nlc3MgbWV0aG9kIFwiJXNcIi4iLAorCQkJCQkJICBOYW1lU3RyKCgo Rm9ybV9wZ19vcGZhbWlseSkgR0VUU1RSVUNUKHR1cGxlKSktPm9wZm5hbWUpLCAiZ2lzdCIp KTsKKwl9Cit9CisKIC8qCiAgKgltYWtlT2JqZWN0TmFtZSgpCiAgKgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYwppbmRleCA3MjFkMjQ3ODNiNC4uYzM5ZThiYzE2MWQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xMDE1Miw2ICsxMDE1Miw3IEBAIGFkZEZrUmVj dXJzZVJlZmVyZW5jZWQoTGlzdCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhaW50 LCBSZWxhdGlvbiByZWwsCiAJCQkJCQkJCQkgIGNvbmlzbG9jYWwsCS8qIGlzbG9jYWwgKi8K IAkJCQkJCQkJCSAgY29uaW5oY291bnQsCS8qIGluaGNvdW50ICovCiAJCQkJCQkJCQkgIGNv bm5vaW5oZXJpdCwgLyogY29uTm9Jbmhlcml0ICovCisJCQkJCQkJCQkgIGZhbHNlLAkvKiBj b25QZXJpb2QgKi8KIAkJCQkJCQkJCSAgZmFsc2UpOwkvKiBpc19pbnRlcm5hbCAqLwogCiAJ T2JqZWN0QWRkcmVzc1NldChhZGRyZXNzLCBDb25zdHJhaW50UmVsYXRpb25JZCwgY29uc3Ry T2lkKTsKQEAgLTEwNDUwLDYgKzEwNDUxLDcgQEAgYWRkRmtSZWN1cnNlUmVmZXJlbmNpbmco TGlzdCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhaW50LCBSZWxhdGlvbiByZWws CiAJCQkJCQkJCQkgIGZhbHNlLAogCQkJCQkJCQkJICAxLAogCQkJCQkJCQkJICBmYWxzZSwK KwkJCQkJCQkJCSAgZmFsc2UsCS8qIGNvblBlcmlvZCAqLwogCQkJCQkJCQkJICBmYWxzZSk7 CiAKIAkJCS8qCkBAIC0xMDk1NSw2ICsxMDk1Nyw3IEBAIENsb25lRmtSZWZlcmVuY2luZyhM aXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiBwYXJlbnRSZWwsIFJlbGF0aW9uIHBhcnRSZWwpCiAJ CQkJCQkJCSAgZmFsc2UsCS8qIGlzbG9jYWwgKi8KIAkJCQkJCQkJICAxLAkvKiBpbmhjb3Vu dCAqLwogCQkJCQkJCQkgIGZhbHNlLAkvKiBjb25Ob0luaGVyaXQgKi8KKwkJCQkJCQkJICBm YWxzZSwJLyogY29uUGVyaW9kICovCiAJCQkJCQkJCSAgdHJ1ZSk7CiAKIAkJLyogU2V0IHVw IHBhcnRpdGlvbiBkZXBlbmRlbmNpZXMgZm9yIHRoZSBuZXcgY29uc3RyYWludCAqLwpAQCAt MTQxMjQsNyArMTQxMjcsOCBAQCBUcnlSZXVzZUluZGV4KE9pZCBvbGRJZCwgSW5kZXhTdG10 ICpzdG10KQogCWlmIChDaGVja0luZGV4Q29tcGF0aWJsZShvbGRJZCwKIAkJCQkJCQkgc3Rt dC0+YWNjZXNzTWV0aG9kLAogCQkJCQkJCSBzdG10LT5pbmRleFBhcmFtcywKLQkJCQkJCQkg c3RtdC0+ZXhjbHVkZU9wTmFtZXMpKQorCQkJCQkJCSBzdG10LT5leGNsdWRlT3BOYW1lcywK KwkJCQkJCQkgc3RtdC0+aXN3aXRob3V0b3ZlcmxhcHMpKQogCXsKIAkJUmVsYXRpb24JaXJl bCA9IGluZGV4X29wZW4ob2xkSWQsIE5vTG9jayk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIu YwppbmRleCAxNzAzNjBlZGRhOC4uMjlkMzBiZmI2ZjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmln Z2VyLmMKQEAgLTgzNCw2ICs4MzQsNyBAQCBDcmVhdGVUcmlnZ2VyRmlyaW5nT24oQ3JlYXRl VHJpZ1N0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCQkJCQkJCQkJCQkg IHRydWUsIC8qIGlzbG9jYWwgKi8KIAkJCQkJCQkJCQkJICAwLAkvKiBpbmhjb3VudCAqLwog CQkJCQkJCQkJCQkgIHRydWUsIC8qIG5vaW5oZXJpdCAqLworCQkJCQkJCQkJCQkgIGZhbHNl LAkvKiBjb25wZXJpb2QgKi8KIAkJCQkJCQkJCQkJICBpc0ludGVybmFsKTsJLyogaXNfaW50 ZXJuYWwgKi8KIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVj bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmluZGV4IDJhMWU3MTMz MzU2Li4yYTY1NTBkZTkwNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlw ZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBAIC0zNjIx LDYgKzM2MjEsNyBAQCBkb21haW5BZGRDaGVja0NvbnN0cmFpbnQoT2lkIGRvbWFpbk9pZCwg T2lkIGRvbWFpbk5hbWVzcGFjZSwgT2lkIGJhc2VUeXBlT2lkLAogCQkJCQkJCSAgdHJ1ZSwg LyogaXMgbG9jYWwgKi8KIAkJCQkJCQkgIDAsCS8qIGluaGNvdW50ICovCiAJCQkJCQkJICBm YWxzZSwJLyogY29ubm9pbmhlcml0ICovCisJCQkJCQkJICBmYWxzZSwJLyogY29ucGVyaW9k ICovCiAJCQkJCQkJICBmYWxzZSk7CS8qIGlzX2ludGVybmFsICovCiAJaWYgKGNvbnN0ckFk ZHIpCiAJCU9iamVjdEFkZHJlc3NTZXQoKmNvbnN0ckFkZHIsIENvbnN0cmFpbnRSZWxhdGlv bklkLCBjY29pZCk7CkBAIC0zNzI3LDYgKzM3MjgsNyBAQCBkb21haW5BZGROb3ROdWxsQ29u c3RyYWludChPaWQgZG9tYWluT2lkLCBPaWQgZG9tYWluTmFtZXNwYWNlLCBPaWQgYmFzZVR5 cGVPaWQsCiAJCQkJCQkJICB0cnVlLCAvKiBpcyBsb2NhbCAqLwogCQkJCQkJCSAgMCwJLyog aW5oY291bnQgKi8KIAkJCQkJCQkgIGZhbHNlLAkvKiBjb25ub2luaGVyaXQgKi8KKwkJCQkJ CQkgIGZhbHNlLAkvKiBjb25wZXJpb2QgKi8KIAkJCQkJCQkgIGZhbHNlKTsJLyogaXNfaW50 ZXJuYWwgKi8KIAogCWlmIChjb25zdHJBZGRyKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5k ZXhpbmcuYwppbmRleCA5ZjA1YjM2NTRjMS4uNTlhY2Y2N2EzNmEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNJbmRleGluZy5jCkBAIC0yMTAsNyArMjEwLDcgQEAgRXhlY09wZW5JbmRp Y2VzKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sIGJvb2wgc3BlY3VsYXRpdmUpCiAJ CSAqIElmIHRoZSBpbmRleGVzIGFyZSB0byBiZSB1c2VkIGZvciBzcGVjdWxhdGl2ZSBpbnNl cnRpb24sIGFkZCBleHRyYQogCQkgKiBpbmZvcm1hdGlvbiByZXF1aXJlZCBieSB1bmlxdWUg aW5kZXggZW50cmllcy4KIAkJICovCi0JCWlmIChzcGVjdWxhdGl2ZSAmJiBpaS0+aWlfVW5p cXVlKQorCQlpZiAoc3BlY3VsYXRpdmUgJiYgaWktPmlpX1VuaXF1ZSAmJiAhaW5kZXhEZXNj LT5yZF9pbmRleC0+aW5kaXNleGNsdXNpb24pCiAJCQlCdWlsZFNwZWN1bGF0aXZlSW5kZXhJ bmZvKGluZGV4RGVzYywgaWkpOwogCiAJCXJlbGF0aW9uRGVzY3NbaV0gPSBpbmRleERlc2M7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wbGFuY2F0LmMgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wbGFuY2F0LmMKaW5kZXggOWVmZGQ4NDRhYWMu LmVlZTY5OTc2ZWM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9w bGFuY2F0LmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGxhbmNhdC5jCkBA IC04MTcsNyArODE3LDcgQEAgaW5mZXJfYXJiaXRlcl9pbmRleGVzKFBsYW5uZXJJbmZvICpy b290KQogCQkgKi8KIAkJaWYgKGluZGV4T2lkRnJvbUNvbnN0cmFpbnQgPT0gaWR4Rm9ybS0+ aW5kZXhyZWxpZCkKIAkJewotCQkJaWYgKCFpZHhGb3JtLT5pbmRpc3VuaXF1ZSAmJiBvbmNv bmZsaWN0LT5hY3Rpb24gPT0gT05DT05GTElDVF9VUERBVEUpCisJCQlpZiAoaWR4Rm9ybS0+ aW5kaXNleGNsdXNpb24gJiYgb25jb25mbGljdC0+YWN0aW9uID09IE9OQ09ORkxJQ1RfVVBE QVRFKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05H X09CSkVDVF9UWVBFKSwKIAkJCQkJCSBlcnJtc2coIk9OIENPTkZMSUNUIERPIFVQREFURSBu b3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9uIGNvbnN0cmFpbnRzIikpKTsKQEAgLTg0Miw2 ICs4NDIsMTMgQEAgaW5mZXJfYXJiaXRlcl9pbmRleGVzKFBsYW5uZXJJbmZvICpyb290KQog CQlpZiAoIWlkeEZvcm0tPmluZGlzdW5pcXVlKQogCQkJZ290byBuZXh0OwogCisJCS8qCisJ CSAqIFNvLWNhbGxlZCB1bmlxdWUgY29uc3RyYWludHMgd2l0aCBXSVRIT1VUIE9WRVJMQVBT IGFyZSByZWFsbHkKKwkJICogZXhjbHVzaW9uIGNvbnN0cmFpbnRzLCBzbyBza2lwIHRob3Nl IHRvby4KKwkJICovCisJCWlmIChpZHhGb3JtLT5pbmRpc2V4Y2x1c2lvbikKKwkJCWdvdG8g bmV4dDsKKwogCQkvKiBCdWlsZCBCTVMgcmVwcmVzZW50YXRpb24gb2YgcGxhaW4gKG5vbiBl eHByZXNzaW9uKSBpbmRleCBhdHRycyAqLwogCQlpbmRleGVkQXR0cnMgPSBOVUxMOwogCQlm b3IgKG5hdHQgPSAwOyBuYXR0IDwgaWR4Rm9ybS0+aW5kbmtleWF0dHM7IG5hdHQrKykKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CmluZGV4IGEwNDNmZDRjNjY5Li5lYWZhMjkwYjg4YiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC01MzIsNyArNTMyLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3 U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJ CQljb2x1bW5yZWYgaW5fZXhwciBoYXZpbmdfY2xhdXNlIGZ1bmNfdGFibGUgeG1sdGFibGUg YXJyYXlfZXhwcgogCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2RlZl9hcmcKICV0eXBl IDxsaXN0Pglyb3dzZnJvbV9pdGVtIHJvd3Nmcm9tX2xpc3Qgb3B0X2NvbF9kZWZfbGlzdAot JXR5cGUgPGJvb2xlYW4+IG9wdF9vcmRpbmFsaXR5CisldHlwZSA8Ym9vbGVhbj4gb3B0X29y ZGluYWxpdHkgb3B0X3dpdGhvdXRfb3ZlcmxhcHMKICV0eXBlIDxsaXN0PglFeGNsdXNpb25D b25zdHJhaW50TGlzdCBFeGNsdXNpb25Db25zdHJhaW50RWxlbQogJXR5cGUgPGxpc3Q+CWZ1 bmNfYXJnX2xpc3QgZnVuY19hcmdfbGlzdF9vcHQKICV0eXBlIDxub2RlPglmdW5jX2FyZ19l eHByCkBAIC00MTkzLDcgKzQxOTMsNyBAQCBDb25zdHJhaW50RWxlbToKIAkJCQkJbi0+aW5p dGlhbGx5X3ZhbGlkID0gIW4tPnNraXBfdmFsaWRhdGlvbjsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KLQkJCXwgVU5JUVVFIG9wdF91bmlxdWVfbnVsbF90cmVhdG1lbnQgJygn IGNvbHVtbkxpc3QgJyknIG9wdF9jX2luY2x1ZGUgb3B0X2RlZmluaXRpb24gT3B0Q29uc1Rh YmxlU3BhY2UKKwkJCXwgVU5JUVVFIG9wdF91bmlxdWVfbnVsbF90cmVhdG1lbnQgJygnIGNv bHVtbkxpc3Qgb3B0X3dpdGhvdXRfb3ZlcmxhcHMgJyknIG9wdF9jX2luY2x1ZGUgb3B0X2Rl ZmluaXRpb24gT3B0Q29uc1RhYmxlU3BhY2UKIAkJCQlDb25zdHJhaW50QXR0cmlidXRlU3Bl YwogCQkJCXsKIAkJCQkJQ29uc3RyYWludCAqbiA9IG1ha2VOb2RlKENvbnN0cmFpbnQpOwpA QCAtNDIwMiwxMSArNDIwMiwxMiBAQCBDb25zdHJhaW50RWxlbToKIAkJCQkJbi0+bG9jYXRp b24gPSBAMTsKIAkJCQkJbi0+bnVsbHNfbm90X2Rpc3RpbmN0ID0gISQyOwogCQkJCQluLT5r ZXlzID0gJDQ7Ci0JCQkJCW4tPmluY2x1ZGluZyA9ICQ2OwotCQkJCQluLT5vcHRpb25zID0g JDc7CisJCQkJCW4tPndpdGhvdXRfb3ZlcmxhcHMgPSAkNTsKKwkJCQkJbi0+aW5jbHVkaW5n ID0gJDc7CisJCQkJCW4tPm9wdGlvbnMgPSAkODsKIAkJCQkJbi0+aW5kZXhuYW1lID0gTlVM TDsKLQkJCQkJbi0+aW5kZXhzcGFjZSA9ICQ4OwotCQkJCQlwcm9jZXNzQ0FTYml0cygkOSwg QDksICJVTklRVUUiLAorCQkJCQluLT5pbmRleHNwYWNlID0gJDk7CisJCQkJCXByb2Nlc3ND QVNiaXRzKCQxMCwgQDEwLCAiVU5JUVVFIiwKIAkJCQkJCQkJICAgJm4tPmRlZmVycmFibGUs ICZuLT5pbml0ZGVmZXJyZWQsIE5VTEwsCiAJCQkJCQkJCSAgIE5VTEwsIHl5c2Nhbm5lcik7 CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKQEAgLTQyMjcsNyArNDIyOCw3IEBAIENvbnN0cmFp bnRFbGVtOgogCQkJCQkJCQkgICBOVUxMLCB5eXNjYW5uZXIpOwogCQkJCQkkJCA9IChOb2Rl ICopIG47CiAJCQkJfQotCQkJfCBQUklNQVJZIEtFWSAnKCcgY29sdW1uTGlzdCAnKScgb3B0 X2NfaW5jbHVkZSBvcHRfZGVmaW5pdGlvbiBPcHRDb25zVGFibGVTcGFjZQorCQkJfCBQUklN QVJZIEtFWSAnKCcgY29sdW1uTGlzdCBvcHRfd2l0aG91dF9vdmVybGFwcyAnKScgb3B0X2Nf aW5jbHVkZSBvcHRfZGVmaW5pdGlvbiBPcHRDb25zVGFibGVTcGFjZQogCQkJCUNvbnN0cmFp bnRBdHRyaWJ1dGVTcGVjCiAJCQkJewogCQkJCQlDb25zdHJhaW50ICpuID0gbWFrZU5vZGUo Q29uc3RyYWludCk7CkBAIC00MjM1LDExICs0MjM2LDEyIEBAIENvbnN0cmFpbnRFbGVtOgog CQkJCQluLT5jb250eXBlID0gQ09OU1RSX1BSSU1BUlk7CiAJCQkJCW4tPmxvY2F0aW9uID0g QDE7CiAJCQkJCW4tPmtleXMgPSAkNDsKLQkJCQkJbi0+aW5jbHVkaW5nID0gJDY7Ci0JCQkJ CW4tPm9wdGlvbnMgPSAkNzsKKwkJCQkJbi0+d2l0aG91dF9vdmVybGFwcyA9ICQ1OworCQkJ CQluLT5pbmNsdWRpbmcgPSAkNzsKKwkJCQkJbi0+b3B0aW9ucyA9ICQ4OwogCQkJCQluLT5p bmRleG5hbWUgPSBOVUxMOwotCQkJCQluLT5pbmRleHNwYWNlID0gJDg7Ci0JCQkJCXByb2Nl c3NDQVNiaXRzKCQ5LCBAOSwgIlBSSU1BUlkgS0VZIiwKKwkJCQkJbi0+aW5kZXhzcGFjZSA9 ICQ5OworCQkJCQlwcm9jZXNzQ0FTYml0cygkMTAsIEAxMCwgIlBSSU1BUlkgS0VZIiwKIAkJ CQkJCQkJICAgJm4tPmRlZmVycmFibGUsICZuLT5pbml0ZGVmZXJyZWQsIE5VTEwsCiAJCQkJ CQkJCSAgIE5VTEwsIHl5c2Nhbm5lcik7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKQEAgLTQz NjEsNiArNDM2MywxMSBAQCBvcHRfbm9faW5oZXJpdDoJTk8gSU5IRVJJVAkJCQkJCQl7ICAk JCA9IHRydWU7IH0KIAkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAgJCQgPSBmYWxzZTsgfQog CQk7CiAKK29wdF93aXRob3V0X292ZXJsYXBzOgorCQkJV0lUSE9VVCBPVkVSTEFQUwkJCQkJ CXsgJCQgPSB0cnVlOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IGZhbHNlOyB9 CisJOworCiBvcHRfY29sdW1uX2xpc3Q6CiAJCQknKCcgY29sdW1uTGlzdCAnKScJCQkJCQl7 ICQkID0gJDI7IH0KIAkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gTklMOyB9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCBkNWMyYjJmZjBiMC4uNTM0OTJjNjQ0 YTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtMTU1OCw2ICsxNTU4 LDcgQEAgZ2VuZXJhdGVDbG9uZWRJbmRleFN0bXQoUmFuZ2VWYXIgKmhlYXBSZWwsIFJlbGF0 aW9uIHNvdXJjZV9pZHgsCiAJaW5kZXgtPnVuaXF1ZSA9IGlkeHJlYy0+aW5kaXN1bmlxdWU7 CiAJaW5kZXgtPm51bGxzX25vdF9kaXN0aW5jdCA9IGlkeHJlYy0+aW5kbnVsbHNub3RkaXN0 aW5jdDsKIAlpbmRleC0+cHJpbWFyeSA9IGlkeHJlYy0+aW5kaXNwcmltYXJ5OworCWluZGV4 LT5pc3dpdGhvdXRvdmVybGFwcyA9IChpZHhyZWMtPmluZGlzcHJpbWFyeSB8fCBpZHhyZWMt PmluZGlzdW5pcXVlKSAmJiBpZHhyZWMtPmluZGlzZXhjbHVzaW9uOwogCWluZGV4LT50cmFu c2Zvcm1lZCA9IHRydWU7CS8qIGRvbid0IG5lZWQgdHJhbnNmb3JtSW5kZXhTdG10ICovCiAJ aW5kZXgtPmNvbmN1cnJlbnQgPSBmYWxzZTsKIAlpbmRleC0+aWZfbm90X2V4aXN0cyA9IGZh bHNlOwpAQCAtMTYwNyw3ICsxNjA4LDkgQEAgZ2VuZXJhdGVDbG9uZWRJbmRleFN0bXQoUmFu Z2VWYXIgKmhlYXBSZWwsIFJlbGF0aW9uIHNvdXJjZV9pZHgsCiAJCQkJaW50CQkJbkVsZW1z OwogCQkJCWludAkJCWk7CiAKLQkJCQlBc3NlcnQoY29ucmVjLT5jb250eXBlID09IENPTlNU UkFJTlRfRVhDTFVTSU9OKTsKKwkJCQlBc3NlcnQoY29ucmVjLT5jb250eXBlID09IENPTlNU UkFJTlRfRVhDTFVTSU9OIHx8CisJCQkJCSAgIChpbmRleC0+aXN3aXRob3V0b3ZlcmxhcHMg JiYKKwkJCQkJCShjb25yZWMtPmNvbnR5cGUgPT0gQ09OU1RSQUlOVF9QUklNQVJZIHx8IGNv bnJlYy0+Y29udHlwZSA9PSBDT05TVFJBSU5UX1VOSVFVRSkpKTsKIAkJCQkvKiBFeHRyYWN0 IG9wZXJhdG9yIE9JRHMgZnJvbSB0aGUgcGdfY29uc3RyYWludCB0dXBsZSAqLwogCQkJCWRh dHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChDT05TVFJPSUQsIGh0X2NvbnN0ciwKIAkJ CQkJCQkJCQkJICAgQW51bV9wZ19jb25zdHJhaW50X2NvbmV4Y2xvcCk7CkBAIC0yMTYwLDYg KzIxNjMsNyBAQCB0cmFuc2Zvcm1JbmRleENvbnN0cmFpbnQoQ29uc3RyYWludCAqY29uc3Ry YWludCwgQ3JlYXRlU3RtdENvbnRleHQgKmN4dCkKIAl9CiAJaW5kZXgtPm51bGxzX25vdF9k aXN0aW5jdCA9IGNvbnN0cmFpbnQtPm51bGxzX25vdF9kaXN0aW5jdDsKIAlpbmRleC0+aXNj b25zdHJhaW50ID0gdHJ1ZTsKKwlpbmRleC0+aXN3aXRob3V0b3ZlcmxhcHMgPSBjb25zdHJh aW50LT53aXRob3V0X292ZXJsYXBzOwogCWluZGV4LT5kZWZlcnJhYmxlID0gY29uc3RyYWlu dC0+ZGVmZXJyYWJsZTsKIAlpbmRleC0+aW5pdGRlZmVycmVkID0gY29uc3RyYWludC0+aW5p dGRlZmVycmVkOwogCkBAIC0yMjUyLDYgKzIyNTYsMTEgQEAgdHJhbnNmb3JtSW5kZXhDb25z dHJhaW50KENvbnN0cmFpbnQgKmNvbnN0cmFpbnQsIENyZWF0ZVN0bXRDb250ZXh0ICpjeHQp CiAJCQkJCSBlcnJtc2coImluZGV4IFwiJXNcIiBpcyBub3QgdmFsaWQiLCBpbmRleF9uYW1l KSwKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihjeHQtPnBzdGF0ZSwgY29uc3RyYWludC0+ bG9jYXRpb24pKSk7CiAKKwkJLyoKKwkJICogVG9kYXkgd2UgZm9yYmlkIG5vbi11bmlxdWUg aW5kZXhlcywgYnV0IHdlIGNvdWxkIHBlcm1pdCBHaVNUCisJCSAqIGluZGV4ZXMgd2hvc2Ug bGFzdCBlbnRyeSBpcyBhIHJhbmdlIHR5cGUgYW5kIHVzZSB0aGF0IHRvIGNyZWF0ZSBhCisJ CSAqIFdJVEhPVVQgT1ZFUkxBUFMgY29uc3RyYWludCAoaS5lLiBhIHRlbXBvcmFsIGNvbnN0 cmFpbnQpLgorCQkgKi8KIAkJaWYgKCFpbmRleF9mb3JtLT5pbmRpc3VuaXF1ZSkKIAkJCWVy ZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUp LApAQCAtMjU0MCw2ICsyNTQ5LDIzIEBAIHRyYW5zZm9ybUluZGV4Q29uc3RyYWludChDb25z dHJhaW50ICpjb25zdHJhaW50LCBDcmVhdGVTdG10Q29udGV4dCAqY3h0KQogCQkJCW5vdG51 bGxjbWRzID0gbGFwcGVuZChub3RudWxsY21kcywgbm90bnVsbGNtZCk7CiAJCQl9CiAJCX0K KworCQlpZiAoY29uc3RyYWludC0+d2l0aG91dF9vdmVybGFwcykKKwkJeworCQkJLyoKKwkJ CSAqIFRoaXMgZW5mb3JjZXMgdGhhdCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgZXF1YWxpdHkg Y29sdW1uCisJCQkgKiBiZXNpZGVzIHRoZSBXSVRIT1VUIE9WRVJMQVBTIGNvbHVtbnMuICBU aGlzIGlzIHBlciBTUUwKKwkJCSAqIHN0YW5kYXJkLiAgWFhYIERvIHdlIG5lZWQgdGhpcz8K KwkJCSAqLworCQkJaWYgKGxpc3RfbGVuZ3RoKGNvbnN0cmFpbnQtPmtleXMpIDwgMikKKwkJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiks CisJCQkJCQllcnJtc2coImNvbnN0cmFpbnQgdXNpbmcgV0lUSE9VVCBPVkVSTEFQUyBuZWVk cyBhdCBsZWFzdCB0d28gY29sdW1ucyIpKTsKKworCQkJLyogV0lUSE9VVCBPVkVSTEFQUyBy ZXF1aXJlcyBhIEdpU1QgaW5kZXggKi8KKwkJCWluZGV4LT5hY2Nlc3NNZXRob2QgPSAiZ2lz dCI7CisJCX0KKwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5k ZXggNjUzNjg1YmZmYzUuLjUwYzAyNDdjMzAwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1 dGlscy5jCkBAIC0yMzkzLDYgKzIzOTMsOCBAQCBwZ19nZXRfY29uc3RyYWludGRlZl93b3Jr ZXIoT2lkIGNvbnN0cmFpbnRJZCwgYm9vbCBmdWxsQ29tbWFuZCwKIAkJCQkJCQkJCQkJIEFu dW1fcGdfY29uc3RyYWludF9jb25rZXkpOwogCiAJCQkJa2V5YXR0cyA9IGRlY29tcGlsZV9j b2x1bW5faW5kZXhfYXJyYXkodmFsLCBjb25Gb3JtLT5jb25yZWxpZCwgJmJ1Zik7CisJCQkJ aWYgKGNvbkZvcm0tPmNvbnBlcmlvZCkKKwkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygm YnVmLCAiIFdJVEhPVVQgT1ZFUkxBUFMiKTsKIAogCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFy KCZidWYsICcpJyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3Jl bGNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCmluZGV4IDY2 ZWQyNGU0MDEyLi41ZTdhMTQ5OWUxZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvcmVsY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNo ZS5jCkBAIC01NTgxLDExICs1NTgxLDE0IEBAIFJlbGF0aW9uR2V0SWRlbnRpdHlLZXlCaXRt YXAoUmVsYXRpb24gcmVsYXRpb24pCiAvKgogICogUmVsYXRpb25HZXRFeGNsdXNpb25JbmZv IC0tIGdldCBpbmZvIGFib3V0IGluZGV4J3MgZXhjbHVzaW9uIGNvbnN0cmFpbnQKICAqCi0g KiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgb25seSBmb3IgYW4gaW5kZXggdGhhdCBpcyBrbm93 biB0byBoYXZlIGFuCi0gKiBhc3NvY2lhdGVkIGV4Y2x1c2lvbiBjb25zdHJhaW50LiAgSXQg cmV0dXJucyBhcnJheXMgKHBhbGxvYydkIGluIGNhbGxlcidzCi0gKiBjb250ZXh0KSBvZiB0 aGUgZXhjbHVzaW9uIG9wZXJhdG9yIE9JRHMsIHRoZWlyIHVuZGVybHlpbmcgZnVuY3Rpb25z JwotICogT0lEcywgYW5kIHRoZWlyIHN0cmF0ZWd5IG51bWJlcnMgaW4gdGhlIGluZGV4J3Mg b3BjbGFzc2VzLiAgV2UgY2FjaGUKLSAqIGFsbCB0aGlzIGluZm9ybWF0aW9uIHNpbmNlIGl0 IHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygd29yayB0byBnZXQuCisgKiBUaGlzIHNob3Vs ZCBiZSBjYWxsZWQgb25seSBmb3IgYW4gaW5kZXggdGhhdCBpcyBrbm93biB0byBoYXZlIGFu IGFzc29jaWF0ZWQKKyAqIGV4Y2x1c2lvbiBjb25zdHJhaW50IG9yIHByaW1hcnkga2V5L3Vu aXF1ZSBjb25zdHJhaW50IHVzaW5nIFdJVEhPVVQKKyAqIE9WRVJMQVBTLgorCisgKiBJdCBy ZXR1cm5zIGFycmF5cyAocGFsbG9jJ2QgaW4gY2FsbGVyJ3MgY29udGV4dCkgb2YgdGhlIGV4 Y2x1c2lvbiBvcGVyYXRvcgorICogT0lEcywgdGhlaXIgdW5kZXJseWluZyBmdW5jdGlvbnMn IE9JRHMsIGFuZCB0aGVpciBzdHJhdGVneSBudW1iZXJzIGluIHRoZQorICogaW5kZXgncyBv cGNsYXNzZXMuICBXZSBjYWNoZSBhbGwgdGhpcyBpbmZvcm1hdGlvbiBzaW5jZSBpdCByZXF1 aXJlcyBhIGZhaXIKKyAqIGFtb3VudCBvZiB3b3JrIHRvIGdldC4KICAqLwogdm9pZAogUmVs YXRpb25HZXRFeGNsdXNpb25JbmZvKFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCkBAIC01NjQ5 LDcgKzU2NTIsMTAgQEAgUmVsYXRpb25HZXRFeGNsdXNpb25JbmZvKFJlbGF0aW9uIGluZGV4 UmVsYXRpb24sCiAJCWludAkJCW5lbGVtOwogCiAJCS8qIFdlIHdhbnQgdGhlIGV4Y2x1c2lv biBjb25zdHJhaW50IG93bmluZyB0aGUgaW5kZXggKi8KLQkJaWYgKGNvbmZvcm0tPmNvbnR5 cGUgIT0gQ09OU1RSQUlOVF9FWENMVVNJT04gfHwKKwkJaWYgKChjb25mb3JtLT5jb250eXBl ICE9IENPTlNUUkFJTlRfRVhDTFVTSU9OICYmCisJCQkgIShjb25mb3JtLT5jb25wZXJpb2Qg JiYgKAorCQkJCQkJCQkJICBjb25mb3JtLT5jb250eXBlID09IENPTlNUUkFJTlRfUFJJTUFS WQorCQkJCQkJCQkJICB8fCBjb25mb3JtLT5jb250eXBlID09IENPTlNUUkFJTlRfVU5JUVVF KSkpIHx8CiAJCQljb25mb3JtLT5jb25pbmRpZCAhPSBSZWxhdGlvbkdldFJlbGlkKGluZGV4 UmVsYXRpb24pKQogCQkJY29udGludWU7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGI4YjE4ODhi ZDMzLi42NzEyN2RiZDlmZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu YworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC03MzI2LDYgKzczMjYsNyBA QCBnZXRJbmRleGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBu dW1UYWJsZXMpCiAJCQkJaV9jb25uYW1lLAogCQkJCWlfY29uZGVmZXJyYWJsZSwKIAkJCQlp X2NvbmRlZmVycmVkLAorCQkJCWlfY29ucGVyaW9kLAogCQkJCWlfY29udGFibGVvaWQsCiAJ CQkJaV9jb25vaWQsCiAJCQkJaV9jb25kZWYsCkBAIC03NDA3LDEwICs3NDA4LDE3IEBAIGdl dEluZGV4ZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRh YmxlcykKIAogCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE1MDAwMCkKIAkJYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksCi0JCQkJCQkJICJpLmluZG51bGxzbm90ZGlzdGluY3Qg Iik7CisJCQkJCQkJICJpLmluZG51bGxzbm90ZGlzdGluY3QsICIpOwogCWVsc2UKIAkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCi0JCQkJCQkJICJmYWxzZSBBUyBpbmRudWxsc25v dGRpc3RpbmN0ICIpOworCQkJCQkJCSAiZmFsc2UgQVMgaW5kbnVsbHNub3RkaXN0aW5jdCwg Iik7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNzAwMDApCisJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCSAiYy5jb25wZXJpb2QgIik7CisJZWxzZQor CQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJCQkJCQkgIk5VTEwgQVMgY29ucGVy aW9kICIpOwogCiAJLyoKIAkgKiBUaGUgcG9pbnQgb2YgdGhlIG1lc3N5LWxvb2tpbmcgb3V0 ZXIgam9pbiBpcyB0byBmaW5kIGEgY29uc3RyYWludCB0aGF0CkBAIC03NDc4LDYgKzc0ODYs NyBAQCBnZXRJbmRleGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGlu dCBudW1UYWJsZXMpCiAJaV9jb25uYW1lID0gUFFmbnVtYmVyKHJlcywgImNvbm5hbWUiKTsK IAlpX2NvbmRlZmVycmFibGUgPSBQUWZudW1iZXIocmVzLCAiY29uZGVmZXJyYWJsZSIpOwog CWlfY29uZGVmZXJyZWQgPSBQUWZudW1iZXIocmVzLCAiY29uZGVmZXJyZWQiKTsKKwlpX2Nv bnBlcmlvZCA9IFBRZm51bWJlcihyZXMsICJjb25wZXJpb2QiKTsKIAlpX2NvbnRhYmxlb2lk ID0gUFFmbnVtYmVyKHJlcywgImNvbnRhYmxlb2lkIik7CiAJaV9jb25vaWQgPSBQUWZudW1i ZXIocmVzLCAiY29ub2lkIik7CiAJaV9jb25kZWYgPSBQUWZudW1iZXIocmVzLCAiY29uZGVm Iik7CkBAIC03NTg1LDYgKzc1OTQsNyBAQCBnZXRJbmRleGVzKEFyY2hpdmUgKmZvdXQsIFRh YmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCQkJY29uc3RyaW5mby0+Y29u aW5kZXggPSBpbmR4aW5mb1tqXS5kb2JqLmR1bXBJZDsKIAkJCQljb25zdHJpbmZvLT5jb25k ZWZlcnJhYmxlID0gKihQUWdldHZhbHVlKHJlcywgaiwgaV9jb25kZWZlcnJhYmxlKSkgPT0g J3QnOwogCQkJCWNvbnN0cmluZm8tPmNvbmRlZmVycmVkID0gKihQUWdldHZhbHVlKHJlcywg aiwgaV9jb25kZWZlcnJlZCkpID09ICd0JzsKKwkJCQljb25zdHJpbmZvLT5jb25wZXJpb2Qg PSAqKFBRZ2V0dmFsdWUocmVzLCBqLCBpX2NvbnBlcmlvZCkpID09ICd0JzsKIAkJCQljb25z dHJpbmZvLT5jb25pc2xvY2FsID0gdHJ1ZTsKIAkJCQljb25zdHJpbmZvLT5zZXBhcmF0ZSA9 IHRydWU7CiAKQEAgLTE2OTU0LDYgKzE2OTY0LDggQEAgZHVtcENvbnN0cmFpbnQoQXJjaGl2 ZSAqZm91dCwgY29uc3QgQ29uc3RyYWludEluZm8gKmNvbmluZm8pCiAJCQkJCQkJCSAgKGsg PT0gMCkgPyAiIiA6ICIsICIsCiAJCQkJCQkJCSAgZm10SWQoYXR0bmFtZSkpOwogCQkJfQor CQkJaWYgKGNvbmluZm8tPmNvbnBlcmlvZCkKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx LCAiIFdJVEhPVVQgT1ZFUkxBUFMiKTsKIAogCQkJaWYgKGluZHhpbmZvLT5pbmRua2V5YXR0 cnMgPCBpbmR4aW5mby0+aW5kbmF0dHJzKQogCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEs ICIpIElOQ0xVREUgKCIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggNGIyZTU4NzBhOWMuLmIyNWI5 ZjkzMDRlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTQ3NCw2ICs0NzQsNyBAQCB0eXBlZGVmIHN0 cnVjdCBfY29uc3RyYWludEluZm8KIAlEdW1wSWQJCWNvbmluZGV4OwkJLyogaWRlbnRpZmll cyBhc3NvY2lhdGVkIGluZGV4IGlmIGFueSAqLwogCWJvb2wJCWNvbmRlZmVycmFibGU7CS8q IHRydWUgaWYgY29uc3RyYWludCBpcyBERUZFUlJBQkxFICovCiAJYm9vbAkJY29uZGVmZXJy ZWQ7CS8qIHRydWUgaWYgY29uc3RyYWludCBpcyBJTklUSUFMTFkgREVGRVJSRUQgKi8KKwli b29sCQljb25wZXJpb2Q7CQkvKiB0cnVlIGlmIHRoZSBjb25zdHJhaW50IGlzIFdJVEhPVVQg T1ZFUkxBUFMgKi8KIAlib29sCQljb25pc2xvY2FsOwkJLyogdHJ1ZSBpZiBjb25zdHJhaW50 IGhhcyBsb2NhbCBkZWZpbml0aW9uICovCiAJYm9vbAkJc2VwYXJhdGU7CQkvKiB0cnVlIGlm IG11c3QgZHVtcCBhcyBzZXBhcmF0ZSBpdGVtICovCiB9IENvbnN0cmFpbnRJbmZvOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3Bn X2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBkM2RkODc4NGQ2NC4uYmVlZDhkYjRkMTAg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC0xMDA0LDYgKzEwMDQsNDIgQEAg bXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ09OU1RSQUlOVCBQUklNQVJZIEtFWSAv IFdJVEhPVVQgT1ZFUkxBUFMnID0+IHsKKwkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFRBQkxF IGR1bXBfdGVzdC50ZXN0X3RhYmxlX3RwayAoCisJCQkJCQkJY29sMSBpbnQ0cmFuZ2UsCisJ CQkJCQkJY29sMiB0c3R6cmFuZ2UsCisJCQkJCQkJQ09OU1RSQUlOVCB0ZXN0X3RhYmxlX3Rw a19wa2V5IFBSSU1BUlkgS0VZIChjb2wxLCBjb2wyIFdJVEhPVVQgT1ZFUkxBUFMpKTsnLAor CQlyZWdleHAgPT4gcXIvXgorCQkJXFFBTFRFUiBUQUJMRSBPTkxZIGR1bXBfdGVzdC50ZXN0 X3RhYmxlX3Rwa1xFIFxuXlxzKworCQkJXFFBREQgQ09OU1RSQUlOVCB0ZXN0X3RhYmxlX3Rw a19wa2V5IFBSSU1BUlkgS0VZIChjb2wxLCBjb2wyIFdJVEhPVVQgT1ZFUkxBUFMpO1xFCisJ CQkveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywgJWR1bXBfdGVzdF9zY2hlbWFf cnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJ CWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVt ZW50ID0+IDEsCisJCX0sCisJfSwKKworCSdDT05TVFJBSU5UIFVOSVFVRSAvIFdJVEhPVVQg T1ZFUkxBUFMnID0+IHsKKwkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFRBQkxFIGR1bXBfdGVz dC50ZXN0X3RhYmxlX3R1cSAoCisJCQkJCQkJY29sMSBpbnQ0cmFuZ2UsCisJCQkJCQkJY29s MiB0c3R6cmFuZ2UsCisJCQkJCQkJQ09OU1RSQUlOVCB0ZXN0X3RhYmxlX3R1cV91cSBVTklR VUUgKGNvbDEsIGNvbDIgV0lUSE9VVCBPVkVSTEFQUykpOycsCisJCXJlZ2V4cCA9PiBxci9e CisJCQlcUUFMVEVSIFRBQkxFIE9OTFkgZHVtcF90ZXN0LnRlc3RfdGFibGVfdHVxXEUgXG5e XHMrCisJCQlcUUFERCBDT05TVFJBSU5UIHRlc3RfdGFibGVfdHVxX3VxIFVOSVFVRSAoY29s MSwgY29sMiBXSVRIT1VUIE9WRVJMQVBTKTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsKKwkJ CSVmdWxsX3J1bnMsICVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRh ID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hl bWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCA9PiAxLAorCQl9LAorCX0sCisK IAknQUxURVIgVEFCTEUgKHBhcnRpdGlvbmVkKSBBREQgQ09OU1RSQUlOVCAuLi4gRk9SRUlH TiBLRVknID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDQsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NS RUFURSBUQUJMRSBkdW1wX3Rlc3QudGVzdF90YWJsZV9mayAoCmRpZmYgLS1naXQgYS9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDdj OWExZjIzNGM2Li45MGIyZWRiNTUyZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTIzODMsNiArMjM4Mywx MCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAog CQkJZWxzZQogCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsIGZhbHNlIEFTIGlu ZGlzcmVwbGlkZW50Iik7CiAJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLCBjMi5y ZWx0YWJsZXNwYWNlIik7CisJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNzAwMDApCisJCQkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiwgY29uLmNvbnBlcmlvZCIpOworCQkJZWxz ZQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsIGZhbHNlIEFTIGNvbnBlcmlv ZCIpOwogCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCQkgICJcbkZST00gcGdf Y2F0YWxvZy5wZ19jbGFzcyBjLCBwZ19jYXRhbG9nLnBnX2NsYXNzIGMyLCBwZ19jYXRhbG9n LnBnX2luZGV4IGlcbiIKIAkJCQkJCQkgICIgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX2Nv bnN0cmFpbnQgY29uIE9OIChjb25yZWxpZCA9IGkuaW5kcmVsaWQgQU5EIGNvbmluZGlkID0g aS5pbmRleHJlbGlkIEFORCBjb250eXBlIElOICgncCcsJ3UnLCd4JykpXG4iCkBAIC0yNDA0 LDggKzI0MDgsMTIgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2No ZW1hbmFtZSwKIAkJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIiAgICBcIiVzXCIiLAog CQkJCQkJCQkJICBQUWdldHZhbHVlKHJlc3VsdCwgaSwgMCkpOwogCi0JCQkJCS8qIElmIGV4 Y2x1c2lvbiBjb25zdHJhaW50LCBwcmludCB0aGUgY29uc3RyYWludGRlZiAqLwotCQkJCQlp ZiAoc3RyY21wKFBRZ2V0dmFsdWUocmVzdWx0LCBpLCA3KSwgIngiKSA9PSAwKQorCQkJCQkv KgorCQkJCQkgKiBJZiBleGNsdXNpb24gY29uc3RyYWludCBvciBQSy9VTklRVUUgY29uc3Ry YWludCBXSVRIT1VUCisJCQkJCSAqIE9WRVJMQVBTLCBwcmludCB0aGUgY29uc3RyYWludGRl ZgorCQkJCQkgKi8KKwkJCQkJaWYgKHN0cmNtcChQUWdldHZhbHVlKHJlc3VsdCwgaSwgNyks ICJ4IikgPT0gMCB8fAorCQkJCQkJc3RyY21wKFBRZ2V0dmFsdWUocmVzdWx0LCBpLCAxMiks ICJ0IikgPT0gMCkKIAkJCQkJewogCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIiAl cyIsCiAJCQkJCQkJCQkJICBQUWdldHZhbHVlKHJlc3VsdCwgaSwgNikpOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0 LmgKaW5kZXggZTdjZWQxOGE1YmEuLjIyZGQwNGMxNDE4IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9hY2Nlc3MvZ2lzdC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0LmgKQEAg LTE3LDYgKzE3LDcgQEAKICNkZWZpbmUgR0lTVF9ICiAKICNpbmNsdWRlICJhY2Nlc3MvaXR1 cC5oIgorI2luY2x1ZGUgImFjY2Vzcy9zdHJhdG51bS5oIgogI2luY2x1ZGUgImFjY2Vzcy90 cmFuc2FtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2cuaCIKICNpbmNsdWRlICJhY2Nlc3Mv eGxvZ2RlZnMuaCIKQEAgLTI0Niw0ICsyNDcsNiBAQCB0eXBlZGVmIHN0cnVjdAogCWRvIHsg KGUpLmtleSA9IChrKTsgKGUpLnJlbCA9IChyKTsgKGUpLnBhZ2UgPSAocGcpOyBcCiAJCSAo ZSkub2Zmc2V0ID0gKG8pOyAoZSkubGVhZmtleSA9IChsKTsgfSB3aGlsZSAoMCkKIAorZXh0 ZXJuIFN0cmF0ZWd5TnVtYmVyIEdpc3RUcmFuc2xhdGVTdHJhdG51bShPaWQgb3BjbGFzcywg U3RyYXRlZ3lOdW1iZXIgc3RyYXQpOworCiAjZW5kaWYJCQkJCQkJLyogR0lTVF9IICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2luZGV4LmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL2luZGV4LmgKaW5kZXggN2Q0MzRmOGU2NTMuLjJkZWE5NmY0N2MzIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2luZGV4LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9pbmRleC5oCkBAIC05Myw2ICs5Myw3IEBAIGV4dGVybiBPaWQJaW5kZXhfY3JlYXRl KFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKICNkZWZpbmUJSU5ERVhfQ09OU1RSX0NSRUFURV9J TklUX0RFRkVSUkVECSgxIDw8IDIpCiAjZGVmaW5lCUlOREVYX0NPTlNUUl9DUkVBVEVfVVBE QVRFX0lOREVYCSgxIDw8IDMpCiAjZGVmaW5lCUlOREVYX0NPTlNUUl9DUkVBVEVfUkVNT1ZF X09MRF9ERVBTCSgxIDw8IDQpCisjZGVmaW5lCUlOREVYX0NPTlNUUl9DUkVBVEVfV0lUSE9V VF9PVkVSTEFQUyAoMSA8PCA1KQogCiBleHRlcm4gT2lkCWluZGV4X2NvbmN1cnJlbnRseV9j cmVhdGVfY29weShSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJCQkJCQkJCQkJICAgT2lkIG9s ZEluZGV4SWQsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFp bnQuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCmluZGV4IDdhODAx N2YxNWI1Li45NmMwMDYyNGIxNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19jb25zdHJhaW50LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJhaW50 LmgKQEAgLTEwNyw2ICsxMDcsMTIgQEAgQ0FUQUxPRyhwZ19jb25zdHJhaW50LDI2MDYsQ29u c3RyYWludFJlbGF0aW9uSWQpCiAJLyogSGFzIGEgbG9jYWwgZGVmaW5pdGlvbiBhbmQgY2Fu bm90IGJlIGluaGVyaXRlZCAqLwogCWJvb2wJCWNvbm5vaW5oZXJpdDsKIAorCS8qCisJICog Rm9yIHByaW1hcnkga2V5cyBhbmQgdW5pcXVlIGNvbnN0cmFpbnRzLCBzaWduaWZpZXMgdGhl IGxhc3QgY29sdW1uIHVzZXMKKwkgKiBvdmVybGFwcyBpbnN0ZWFkIG9mIGVxdWFscy4KKwkg Ki8KKwlib29sCQljb25wZXJpb2Q7CisKICNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZh cmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCiAJLyoKQEAgLTE0Niw3ICsx NTIsOCBAQCBDQVRBTE9HKHBnX2NvbnN0cmFpbnQsMjYwNixDb25zdHJhaW50UmVsYXRpb25J ZCkKIAogCS8qCiAJICogSWYgYW4gZXhjbHVzaW9uIGNvbnN0cmFpbnQsIHRoZSBPSURzIG9m IHRoZSBleGNsdXNpb24gb3BlcmF0b3JzIGZvcgotCSAqIGVhY2ggY29sdW1uIG9mIHRoZSBj b25zdHJhaW50CisJICogZWFjaCBjb2x1bW4gb2YgdGhlIGNvbnN0cmFpbnQuICBBbHNvIHNl dCBmb3IgdW5pcXVlIGNvbnN0cmFpbnRzL3ByaW1hcnkKKwkgKiBrZXlzIHVzaW5nIFdJVEhP VVQgT1ZFUkxBUFMuCiAJICovCiAJT2lkCQkJY29uZXhjbG9wWzFdIEJLSV9MT09LVVAocGdf b3BlcmF0b3IpOwogCkBAIC0yMzgsNiArMjQ1LDcgQEAgZXh0ZXJuIE9pZAlDcmVhdGVDb25z dHJhaW50RW50cnkoY29uc3QgY2hhciAqY29uc3RyYWludE5hbWUsCiAJCQkJCQkJCSAgYm9v bCBjb25Jc0xvY2FsLAogCQkJCQkJCQkgIGludCBjb25JbmhDb3VudCwKIAkJCQkJCQkJICBi b29sIGNvbk5vSW5oZXJpdCwKKwkJCQkJCQkJICBib29sIGNvblBlcmlvZCwKIAkJCQkJCQkJ ICBib29sIGlzX2ludGVybmFsKTsKIAogZXh0ZXJuIGJvb2wgQ29uc3RyYWludE5hbWVJc1Vz ZWQoQ29uc3RyYWludENhdGVnb3J5IGNvbkNhdCwgT2lkIG9iaklkLApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9k ZWZyZW0uaAppbmRleCAyOWM1MTFlMzE5Ni4uMGM1M2Q2N2QzZWUgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L2RlZnJlbS5oCkBAIC0xNCw2ICsxNCw3IEBACiAjaWZuZGVmIERFRlJFTV9ICiAjZGVmaW5l IERFRlJFTV9ICiAKKyNpbmNsdWRlICJhY2Nlc3Mvc3RyYXRudW0uaCIKICNpbmNsdWRlICJj YXRhbG9nL29iamVjdGFkZHJlc3MuaCIKICNpbmNsdWRlICJub2Rlcy9wYXJhbXMuaCIKICNp bmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgpAQCAtNDQsMTAgKzQ1LDEzIEBAIGV4dGVy biBjaGFyICpDaG9vc2VSZWxhdGlvbk5hbWUoY29uc3QgY2hhciAqbmFtZTEsIGNvbnN0IGNo YXIgKm5hbWUyLAogZXh0ZXJuIGJvb2wgQ2hlY2tJbmRleENvbXBhdGlibGUoT2lkIG9sZElk LAogCQkJCQkJCQkgY29uc3QgY2hhciAqYWNjZXNzTWV0aG9kTmFtZSwKIAkJCQkJCQkJIGNv bnN0IExpc3QgKmF0dHJpYnV0ZUxpc3QsCi0JCQkJCQkJCSBjb25zdCBMaXN0ICpleGNsdXNp b25PcE5hbWVzKTsKKwkJCQkJCQkJIGNvbnN0IExpc3QgKmV4Y2x1c2lvbk9wTmFtZXMsCisJ CQkJCQkJCSBib29sIGlzV2l0aG91dE92ZXJsYXBzKTsKIGV4dGVybiBPaWQJR2V0RGVmYXVs dE9wQ2xhc3MoT2lkIHR5cGVfaWQsIE9pZCBhbV9pZCk7CiBleHRlcm4gT2lkCVJlc29sdmVP cENsYXNzKGNvbnN0IExpc3QgKm9wY2xhc3MsIE9pZCBhdHRyVHlwZSwKIAkJCQkJCSAgIGNv bnN0IGNoYXIgKmFjY2Vzc01ldGhvZE5hbWUsIE9pZCBhY2Nlc3NNZXRob2RJZCk7CitleHRl cm4gdm9pZCBHZXRPcGVyYXRvckZyb21XZWxsS25vd25TdHJhdGVneShPaWQgb3BjbGFzcywg T2lkIGF0dHR5cGUsCisJCQkJCQkJCQkJCSBPaWQgKm9waWQsIFN0cmF0ZWd5TnVtYmVyICpz dHJhdCk7CiAKIC8qIGNvbW1hbmRzL2Z1bmN0aW9uY21kcy5jICovCiBleHRlcm4gT2JqZWN0 QWRkcmVzcyBDcmVhdGVGdW5jdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZUZ1bmN0 aW9uU3RtdCAqc3RtdCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggODVhNjJiNTM4 ZTUuLjlkYzQ2NjdkMmJkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yNzUwLDYg KzI3NTAsNyBAQCB0eXBlZGVmIHN0cnVjdCBDb25zdHJhaW50CiAJYm9vbAkJbnVsbHNfbm90 X2Rpc3RpbmN0OyAvKiBudWxsIHRyZWF0bWVudCBmb3IgVU5JUVVFIGNvbnN0cmFpbnRzICov CiAJTGlzdAkgICAqa2V5czsJCQkvKiBTdHJpbmcgbm9kZXMgbmFtaW5nIHJlZmVyZW5jZWQg a2V5CiAJCQkJCQkJCSAqIGNvbHVtbihzKTsgZm9yIFVOSVFVRS9QSy9OT1QgTlVMTCAqLwor CWJvb2wJCXdpdGhvdXRfb3ZlcmxhcHM7CS8qIFdJVEhPVVQgT1ZFUkxBUFMgc3BlY2lmaWVk ICovCiAJTGlzdAkgICAqaW5jbHVkaW5nOwkJLyogU3RyaW5nIG5vZGVzIG5hbWluZyByZWZl cmVuY2VkIG5vbmtleQogCQkJCQkJCQkgKiBjb2x1bW4ocyk7IGZvciBVTklRVUUvUEsgKi8K IAlMaXN0CSAgICpleGNsdXNpb25zOwkJLyogbGlzdCBvZiAoSW5kZXhFbGVtLCBvcGVyYXRv ciBuYW1lKSBwYWlyczsKQEAgLTMzNzMsNiArMzM3NCw3IEBAIHR5cGVkZWYgc3RydWN0IElu ZGV4U3RtdAogCWJvb2wJCW51bGxzX25vdF9kaXN0aW5jdDsgLyogbnVsbCB0cmVhdG1lbnQg Zm9yIFVOSVFVRSBjb25zdHJhaW50cyAqLwogCWJvb2wJCXByaW1hcnk7CQkvKiBpcyBpbmRl eCBhIHByaW1hcnkga2V5PyAqLwogCWJvb2wJCWlzY29uc3RyYWludDsJLyogaXMgaXQgZm9y IGEgcGtleS91bmlxdWUgY29uc3RyYWludD8gKi8KKwlib29sCQlpc3dpdGhvdXRvdmVybGFw czsJLyogaXMgdGhlIGNvbnN0cmFpbnQgV0lUSE9VVCBPVkVSTEFQUz8gKi8KIAlib29sCQlk ZWZlcnJhYmxlOwkJLyogaXMgdGhlIGNvbnN0cmFpbnQgREVGRVJSQUJMRT8gKi8KIAlib29s CQlpbml0ZGVmZXJyZWQ7CS8qIGlzIHRoZSBjb25zdHJhaW50IElOSVRJQUxMWSBERUZFUlJF RD8gKi8KIAlib29sCQl0cmFuc2Zvcm1lZDsJLyogdHJ1ZSB3aGVuIHRyYW5zZm9ybUluZGV4 U3RtdCBpcyBmaW5pc2hlZCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC93aXRob3V0X292ZXJsYXBzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv d2l0aG91dF9vdmVybGFwcy5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjk0MjM0NzU4NTk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dApAQCAtMCwwICsxLDEwODggQEAKKy0t IFRlc3RzIGZvciBXSVRIT1VUIE9WRVJMQVBTLgorLS0KKy0tIFdlIGxlYXZlIGJlaGluZCBz ZXZlcmFsIHRhYmxlcyB0byB0ZXN0IHBnX2R1bXAgZXRjOgorLS0gdGVtcG9yYWxfcm5nLCB0 ZW1wb3JhbF9ybmcyLAorLS0gdGVtcG9yYWxfZmtfcm5nMnJuZy4KK1NFVCBkYXRlc3R5bGUg VE8gSVNPLCBZTUQ7CistLQorLS0gdGVzdCBpbnB1dCBwYXJzZXIKKy0tCistLSBQSyB3aXRo IG5vIGNvbHVtbnMganVzdCBXSVRIT1VUIE9WRVJMQVBTOgorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX3JuZyAoCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxf cm5nX3BrIFBSSU1BUlkgS0VZICh2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0VS Uk9SOiAgY29uc3RyYWludCB1c2luZyBXSVRIT1VUIE9WRVJMQVBTIG5lZWRzIGF0IGxlYXN0 IHR3byBjb2x1bW5zCistLSBQSyB3aXRoIGEgcmFuZ2UgY29sdW1uL1BFUklPRCB0aGF0IGlz bid0IHRoZXJlOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCisJaWQgSU5URUdFUiwK KwlDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispOworRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiBuYW1l ZCBpbiBrZXkgZG9lcyBub3QgZXhpc3QKK0xJTkUgMzogIENPTlNUUkFJTlQgdGVtcG9yYWxf cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VLi4uCisgICAgICAgICBe CistLSBQSyB3aXRoIGEgbm9uLXJhbmdlIGNvbHVtbjoKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9ybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBURVhULAorCUNPTlNUUkFJTlQg dGVtcG9yYWxfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKKyk7CitFUlJPUjogIGRhdGEgdHlwZSB0ZXh0IGhhcyBubyBkZWZhdWx0IG9wZXJh dG9yIGNsYXNzIGZvciBhY2Nlc3MgbWV0aG9kICJnaXN0IgorSElOVDogIFlvdSBtdXN0IHNw ZWNpZnkgYW4gb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBpbmRleCBvciBkZWZpbmUgYSBkZWZh dWx0IG9wZXJhdG9yIGNsYXNzIGZvciB0aGUgZGF0YSB0eXBlLgorLS0gUEsgd2l0aCBvbmUg Y29sdW1uIHBsdXMgYSByYW5nZToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcgKAorCS0t IFNpbmNlIHdlIGNhbid0IGRlcGVuZCBvbiBoYXZpbmcgYnRyZWVfZ2lzdCBoZXJlLAorCS0t IHVzZSBhbiBpbnQ0cmFuZ2UgaW5zdGVhZCBvZiBhbiBpbnQuCisJLS0gKFRoZSByYW5nZXR5 cGVzIHJlZ3Jlc3Npb24gdGVzdCB1c2VzIHRoZSBzYW1lIHRyaWNrLikKKwlpZCBpbnQ0cmFu Z2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0 ZW1wb3JhbF9ybmcKKyAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9ybmci CisgIENvbHVtbiAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1 bHQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tCisgaWQgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8 IAorIHZhbGlkX2F0IHwgZGF0ZXJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKK0lu ZGV4ZXM6CisgICAgInRlbXBvcmFsX3JuZ19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKQorCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lk KSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ybmdfcGsn OworICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisoMSByb3cpCisKK1NFTEVDVCBw Z19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBX SEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZ19wayc7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBnX2dldF9pbmRleGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFVOSVFVRSBJTkRF WCB0ZW1wb3JhbF9ybmdfcGsgT04gdGVtcG9yYWxfcm5nIFVTSU5HIGdpc3QgKGlkLCB2YWxp ZF9hdCkKKygxIHJvdykKKworLS0gUEsgZnJvbSBMSUtFOgorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX3JuZzIgKExJS0UgdGVtcG9yYWxfcm5nIElOQ0xVRElORyBBTEwpOworXGQgdGVtcG9y YWxfcm5nMgorICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfcm5nMiIKKyAg Q29sdW1uICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAK Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0KKyBpZCAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisg dmFsaWRfYXQgfCBkYXRlcmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorSW5kZXhl czoKKyAgICAidGVtcG9yYWxfcm5nMl9wa2V5IiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nMjsKKy0tIG5v IFBLIGZyb20gSU5IRVJJVFM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMiAoKSBJTkhF UklUUyAodGVtcG9yYWxfcm5nKTsKK1xkIHRlbXBvcmFsX3JuZzIKKyAgICAgICAgICAgICBU YWJsZSAicHVibGljLnRlbXBvcmFsX3JuZzIiCisgIENvbHVtbiAgfCAgIFR5cGUgICAgfCBD b2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgfCBpbnQ0cmFu Z2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0IHwgZGF0ZXJhbmdlIHwg ICAgICAgICAgIHwgbm90IG51bGwgfCAKK0luaGVyaXRzOiB0ZW1wb3JhbF9ybmcKKworRFJP UCBUQUJMRSB0ZW1wb3JhbF9ybmcyOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmc7CistLSBQ SyBpbiBpbmhlcml0aW5nIHRhYmxlOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCisg IGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlCispOworQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX3JuZzIgKAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispIElOSEVSSVRTICh0ZW1w b3JhbF9ybmcpOworXGQgdGVtcG9yYWxfcm5nMgorICAgICAgICAgICAgIFRhYmxlICJwdWJs aWMudGVtcG9yYWxfcm5nMiIKKyAgQ29sdW1uICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8 IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICB8IGludDRyYW5nZSB8ICAgICAg ICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfYXQgfCBkYXRlcmFuZ2UgfCAgICAgICAgICAg fCBub3QgbnVsbCB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfcm5nX3BrIiBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitJbmhlcml0czogdGVtcG9y YWxfcm5nCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nIENBU0NBREU7CitOT1RJQ0U6ICBk cm9wIGNhc2NhZGVzIHRvIHRhYmxlIHRlbXBvcmFsX3JuZzIKKy0tIEFkZCBQSyB0byBhbHJl YWR5IGluaGVyaXRpbmcgdGFibGU6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nICgKKyAg aWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UKKyk7CitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfcm5nMiAoKSBJTkhFUklUUyAodGVtcG9yYWxfcm5nKTsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX3JuZzIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitcZCB0ZW1wb3JhbF9y bmcyCisgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9ybmcyIgorICBDb2x1 bW4gIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQor IGlkICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxp ZF9hdCB8IGRhdGVyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCitJbmRleGVzOgor ICAgICJ0ZW1wb3JhbF9ybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUykKK0luaGVyaXRzOiB0ZW1wb3JhbF9ybmcKKworRFJPUCBUQUJMRSB0ZW1w b3JhbF9ybmcyOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmc7CistLSBQSyB3aXRoIHR3byBj b2x1bW5zIHBsdXMgYSByYW5nZToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcyICgKKwlp ZDEgaW50NHJhbmdlLAorCWlkMiBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAor CUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5nMl9wayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfcm5nMgorICAgICAg ICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfcm5nMiIKKyAgQ29sdW1uICB8ICAgVHlw ZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZDEgICAgICB8 IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgaWQyICAgICAgfCBpbnQ0 cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0IHwgZGF0ZXJhbmdl IHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX3Ju ZzJfcGsiIFBSSU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UykKKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJh aW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nMl9wayc7CisgICAgICAgICAgICAg ICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFBSSU1BUlkgS0VZIChp ZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKygxIHJvdykKKworU0VMRUNU IHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50 IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nMl9wayc7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfcm5nMl9wayBPTiB0ZW1wb3JhbF9ybmcy IFVTSU5HIGdpc3QgKGlkMSwgaWQyLCB2YWxpZF9hdCkKKygxIHJvdykKKworLS0gUEsgd2l0 aCBhIGN1c3RvbSByYW5nZSB0eXBlOgorQ1JFQVRFIFRZUEUgdGV4dHJhbmdlMiBBUyByYW5n ZSAoc3VidHlwZT10ZXh0LCBjb2xsYXRpb249IkMiKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9ybmczICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgdGV4dHJhbmdlMiwKKwlDT05T VFJBSU5UIHRlbXBvcmFsX3JuZzNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZzMgRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX3JuZzNfcGs7CitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CitE Uk9QIFRZUEUgdGV4dHJhbmdlMjsKKy0tIFBLIHdpdGggb25lIGNvbHVtbiBwbHVzIGEgbXVs dGlyYW5nZToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9tbHRybmcgKAorICBpZCBpbnQ0cmFu Z2UsCisgIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFs X21sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CispOworXGQgdGVtcG9yYWxfbWx0cm5nCisgICAgICAgICAgICAgICBUYWJsZSAicHVibGlj LnRlbXBvcmFsX21sdHJuZyIKKyAgQ29sdW1uICB8ICAgICAgVHlwZSAgICAgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgfCBpbnQ0cmFu Z2UgICAgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfYXQgfCBkYXRlbXVs dGlyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCitJbmRleGVzOgorICAgICJ0ZW1w b3JhbF9tbHRybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25z dHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfbWx0cm5nX3BrJzsKKyAgICAgICAg ICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKDEgcm93KQorCitTRUxFQ1QgcGdfZ2V0X2luZGV4 ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFt ZSA9ICd0ZW1wb3JhbF9tbHRybmdfcGsnOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBVTklRVUUg SU5ERVggdGVtcG9yYWxfbWx0cm5nX3BrIE9OIHRlbXBvcmFsX21sdHJuZyBVU0lORyBnaXN0 IChpZCwgdmFsaWRfYXQpCisoMSByb3cpCisKKy0tIFBLIHdpdGggdHdvIGNvbHVtbnMgcGx1 cyBhIG11bHRpcmFuZ2U6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMiAoCisgIGlk MSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVtdWx0aXJh bmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZzJfcGsgUFJJTUFSWSBLRVkgKGlk MSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1xkIHRlbXBvcmFsX21s dHJuZzIKKyAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9tbHRybmcyIgor ICBDb2x1bW4gIHwgICAgICBUeXBlICAgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERl ZmF1bHQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0KKyBpZDEgICAgICB8IGludDRyYW5nZSAgICAgIHwgICAgICAgICAg IHwgbm90IG51bGwgfCAKKyBpZDIgICAgICB8IGludDRyYW5nZSAgICAgIHwgICAgICAgICAg IHwgbm90IG51bGwgfCAKKyB2YWxpZF9hdCB8IGRhdGVtdWx0aXJhbmdlIHwgICAgICAgICAg IHwgbm90IG51bGwgfCAKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX21sdHJuZzJfcGsiIFBS SU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKworU0VM RUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJF IGNvbm5hbWUgPSAndGVtcG9yYWxfbWx0cm5nMl9wayc7CisgICAgICAgICAgICAgICBwZ19n ZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFBSSU1BUlkgS0VZIChpZDEsIGlk MiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKygxIHJvdykKKworU0VMRUNUIHBnX2dl dF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJF IGNvbm5hbWUgPSAndGVtcG9yYWxfbWx0cm5nMl9wayc7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfbWx0cm5nMl9wayBPTiB0 ZW1wb3JhbF9tbHRybmcyIFVTSU5HIGdpc3QgKGlkMSwgaWQyLCB2YWxpZF9hdCkKKygxIHJv dykKKworLS0gVU5JUVVFIHdpdGggbm8gY29sdW1ucyBqdXN0IFdJVEhPVVQgT1ZFUkxBUFM6 CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAor CUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cSBVTklRVUUgKHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpCispOworRVJST1I6ICBjb25zdHJhaW50IHVzaW5nIFdJVEhPVVQgT1ZFUkxB UFMgbmVlZHMgYXQgbGVhc3QgdHdvIGNvbHVtbnMKKy0tIFVOSVFVRSB3aXRoIGEgcmFuZ2Ug Y29sdW1uL1BFUklPRCB0aGF0IGlzbid0IHRoZXJlOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X3JuZzMgKAorCWlkIElOVEVHRVIsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxIFVO SVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworRVJST1I6ICBjb2x1 bW4gInZhbGlkX2F0IiBuYW1lZCBpbiBrZXkgZG9lcyBub3QgZXhpc3QKK0xJTkUgMzogIENP TlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WLi4uCisgICAgICAgICBeCistLSBVTklRVUUgd2l0aCBhIG5vbi1yYW5nZSBjb2x1bW46 CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlk X2F0IFRFWFQsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxIFVOSVFVRSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworRVJST1I6ICBkYXRhIHR5cGUgdGV4dCBo YXMgbm8gZGVmYXVsdCBvcGVyYXRvciBjbGFzcyBmb3IgYWNjZXNzIG1ldGhvZCAiZ2lzdCIK K0hJTlQ6ICBZb3UgbXVzdCBzcGVjaWZ5IGFuIG9wZXJhdG9yIGNsYXNzIGZvciB0aGUgaW5k ZXggb3IgZGVmaW5lIGEgZGVmYXVsdCBvcGVyYXRvciBjbGFzcyBmb3IgdGhlIGRhdGEgdHlw ZS4KKy0tIFVOSVFVRSB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIHJhbmdlOgorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX3JuZzMgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFu Z2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfcm5nMworICAgICAgICAgICAg IFRhYmxlICJwdWJsaWMudGVtcG9yYWxfcm5nMyIKKyAgQ29sdW1uICB8ICAgVHlwZSAgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICB8IGludDRy YW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfYXQgfCBkYXRlcmFuZ2Ug fCAgICAgICAgICAgfCAgICAgICAgICB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfcm5n M191cSIgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKworU0VMRUNU IHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNv bm5hbWUgPSAndGVtcG9yYWxfcm5nM191cSc7CisgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFp bnRkZWYgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKygxIHJvdykK KworU0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19j b25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nM191cSc7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENS RUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfcm5nM191cSBPTiB0ZW1wb3JhbF9ybmczIFVT SU5HIGdpc3QgKGlkLCB2YWxpZF9hdCkKKygxIHJvdykKKworRFJPUCBUQUJMRSB0ZW1wb3Jh bF9ybmczOworLS0gVU5JUVVFIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIHJhbmdlOgorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAorCWlkMSBpbnQ0cmFuZ2UsCisJaWQyIGludDRy YW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmcz X3VxIFVOSVFVRSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOwor XGQgdGVtcG9yYWxfcm5nMworICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxf cm5nMyIKKyAgQ29sdW1uICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg RGVmYXVsdCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0KKyBpZDEgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCisgaWQyICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8 IAorIHZhbGlkX2F0IHwgZGF0ZXJhbmdlIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK0lu ZGV4ZXM6CisgICAgInRlbXBvcmFsX3JuZzNfdXEiIFVOSVFVRSAoaWQxLCBpZDIsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihv aWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZzNf dXEnOworICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFVOSVFV RSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisoMSByb3cpCisKK1NF TEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3Ry YWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZzNfdXEnOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2luZGV4ZGVmICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBDUkVBVEUgVU5JUVVFIElOREVYIHRlbXBvcmFsX3JuZzNfdXEgT04gdGVtcG9yYWxf cm5nMyBVU0lORyBnaXN0IChpZDEsIGlkMiwgdmFsaWRfYXQpCisoMSByb3cpCisKK0RST1Ag VEFCTEUgdGVtcG9yYWxfcm5nMzsKKy0tIFVOSVFVRSB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5 cGU6CitDUkVBVEUgVFlQRSB0ZXh0cmFuZ2UyIEFTIHJhbmdlIChzdWJ0eXBlPXRleHQsIGNv bGxhdGlvbj0iQyIpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAorCWlkIGludDRy YW5nZSwKKwl2YWxpZF9hdCB0ZXh0cmFuZ2UyLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5n M191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX3JuZzMgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXE7 CitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CitEUk9QIFRZUEUgdGV4dHJhbmdlMjsKKy0t CistLSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBDT05TVFJBSU5UCistLQorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX3JuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZQor KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFs X3JuZ19waworCVBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7 CistLSBQSyB3aXRoIFVTSU5HIElOREVYIChub3QgcG9zc2libGUpOgorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsMyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZQorKTsK K0NSRUFURSBJTkRFWCBpZHhfdGVtcG9yYWwzX3VxIE9OIHRlbXBvcmFsMyBVU0lORyBnaXN0 IChpZCwgdmFsaWRfYXQpOworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisJQUREIENPTlNUUkFJ TlQgdGVtcG9yYWwzX3BrCisJUFJJTUFSWSBLRVkgVVNJTkcgSU5ERVggaWR4X3RlbXBvcmFs M191cTsKK0VSUk9SOiAgImlkeF90ZW1wb3JhbDNfdXEiIGlzIG5vdCBhIHVuaXF1ZSBpbmRl eAorTElORSAyOiAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWwzX3BrCisgICAgICAgICAgICAg XgorREVUQUlMOiAgQ2Fubm90IGNyZWF0ZSBhIHByaW1hcnkga2V5IG9yIHVuaXF1ZSBjb25z dHJhaW50IHVzaW5nIHN1Y2ggYW4gaW5kZXguCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKy0t IFVOSVFVRSB3aXRoIFVTSU5HIElOREVYIChub3QgcG9zc2libGUpOgorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsMyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZQorKTsK K0NSRUFURSBJTkRFWCBpZHhfdGVtcG9yYWwzX3VxIE9OIHRlbXBvcmFsMyBVU0lORyBnaXN0 IChpZCwgdmFsaWRfYXQpOworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisJQUREIENPTlNUUkFJ TlQgdGVtcG9yYWwzX3VxCisJVU5JUVVFIFVTSU5HIElOREVYIGlkeF90ZW1wb3JhbDNfdXE7 CitFUlJPUjogICJpZHhfdGVtcG9yYWwzX3VxIiBpcyBub3QgYSB1bmlxdWUgaW5kZXgKK0xJ TkUgMjogIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsM191cQorICAgICAgICAgICAgIF4KK0RF VEFJTDogIENhbm5vdCBjcmVhdGUgYSBwcmltYXJ5IGtleSBvciB1bmlxdWUgY29uc3RyYWlu dCB1c2luZyBzdWNoIGFuIGluZGV4LgorRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CistLSBVTklR VUUgd2l0aCBVU0lORyBbVU5JUVVFXSBJTkRFWCAocG9zc2libGUgYnV0IG5vdCBhIHRlbXBv cmFsIGNvbnN0cmFpbnQpOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisJaWQgaW50NHJh bmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZQorKTsKK0NSRUFURSBVTklRVUUgSU5ERVggaWR4 X3RlbXBvcmFsM191cSBPTiB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCk7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbDMKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEKKwlVTklRVUUgVVNJ TkcgSU5ERVggaWR4X3RlbXBvcmFsM191cTsKK05PVElDRTogIEFMVEVSIFRBQkxFIC8gQURE IENPTlNUUkFJTlQgVVNJTkcgSU5ERVggd2lsbCByZW5hbWUgaW5kZXggImlkeF90ZW1wb3Jh bDNfdXEiIHRvICJ0ZW1wb3JhbDNfdXEiCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKy0tIEFk ZCByYW5nZSBjb2x1bW4gYW5kIHRoZSBQSyBhdCB0aGUgc2FtZSB0aW1lCitDUkVBVEUgVEFC TEUgdGVtcG9yYWwzICgKKwlpZCBpbnQ0cmFuZ2UKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bDMKKwlBREQgQ09MVU1OIHZhbGlkX2F0IGRhdGVyYW5nZSwKKwlBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbDNfcGsKKwlQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpOworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CistLSBBZGQgcmFuZ2UgY29sdW1uIGFuZCBV TklRVUUgY29uc3RyYWludCBhdCB0aGUgc2FtZSB0aW1lCitDUkVBVEUgVEFCTEUgdGVtcG9y YWwzICgKKwlpZCBpbnQ0cmFuZ2UKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKKwlBREQg Q09MVU1OIHZhbGlkX2F0IGRhdGVyYW5nZSwKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNf dXEKKwlVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0RST1AgVEFC TEUgdGVtcG9yYWwzOworLS0KKy0tIHJhbmdlIFBLOiB0ZXN0IHdpdGggZXhpc3Rpbmcgcm93 cworLS0KK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfcm5nX3BrOworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4 LTAyLTAzJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIs MyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsIE5VTEwpKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrOworLS0gc2hvdWxkIGZhaWw6CitCRUdJTjsKKyAg SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CisgIEFMVEVSIFRB QkxFIHRlbXBvcmFsX3JuZyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0VSUk9SOiAgY291bGQg bm90IGNyZWF0ZSBleGNsdXNpb24gY29uc3RyYWludCAidGVtcG9yYWxfcm5nX3BrIgorREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wMi0w MykpIGNvbmZsaWN0cyB3aXRoIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAx LTAxLDIwMTgtMDEtMDUpKS4KK1JPTExCQUNLOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5n IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nOworLS0K Ky0tIHJhbmdlIFBLOiB0ZXN0IGluc2VydHMKKy0tCistLSBva2F5OgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMt MDMnLCAnMjAxOC0wNC0wNCcpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAxLTA1JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVMTCkpOworLS0gc2hv dWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsK K0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25z dHJhaW50ICJ0ZW1wb3JhbF9ybmdfcGsiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9 KFsxLDIpLCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KSkgY29uZmxpY3RzIHdpdGggZXhpc3Rp bmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wMi0wMykp LgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVM TCwgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CitFUlJPUjogIG51 bGwgdmFsdWUgaW4gY29sdW1uICJpZCIgb2YgcmVsYXRpb24gInRlbXBvcmFsX3JuZyIgdmlv bGF0ZXMgbm90LW51bGwgY29uc3RyYWludAorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFp bnMgKG51bGwsIFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpKS4KK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIE5VTEwpOworRVJST1I6 ICBudWxsIHZhbHVlIGluIGNvbHVtbiAidmFsaWRfYXQiIG9mIHJlbGF0aW9uICJ0ZW1wb3Jh bF9ybmciIHZpb2xhdGVzIG5vdC1udWxsIGNvbnN0cmFpbnQKK0RFVEFJTDogIEZhaWxpbmcg cm93IGNvbnRhaW5zIChbMyw0KSwgbnVsbCkuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Ju ZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwgWzIw MTgtMDEtMDIsMjAxOC0wMi0wMykKKyBbMSwyKSB8IFsyMDE4LTAzLTAzLDIwMTgtMDQtMDQp CisgWzIsMykgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KQorIFszLDQpIHwgWzIwMTgtMDEt MDEsKQorKDQgcm93cykKKworLS0KKy0tIHJhbmdlIFBLOiB0ZXN0IHVwZGF0ZXMKKy0tCist LSB1cGRhdGUgdGhlIHNjYWxhciBwYXJ0CitVUERBVEUgIHRlbXBvcmFsX3JuZworU0VUICAg ICBpZCA9ICdbMTEsMTIpJworV0hFUkUgICBpZCA9ICdbMSwyKScKK0FORCAgICAgdmFsaWRf YXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIHRoZSByYW5nZSBwYXJ0CitV UERBVEUgIHRlbXBvcmFsX3JuZworU0VUICAgICB2YWxpZF9hdCA9ICdbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKScKK1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQg QD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIGJvdGggYXQgb25jZQorVVBEQVRF ICB0ZW1wb3JhbF9ybmcKK1NFVCAgICAgaWQgPSAnWzIxLDIyKScsCisgICAgICAgIHZhbGlk X2F0ID0gJ1syMDE4LTAxLTAyLDIwMTgtMDItMDMpJworV0hFUkUgICBpZCA9ICdbMTEsMTIp JworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAyMC0wMS0xNSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3JuZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICBpZCAgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBbMSwyKSAgIHwgWzIwMTgtMDMtMDMsMjAxOC0wNC0wNCkKKyBbMiwzKSAgIHwg WzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkKKyBbMyw0KSAgIHwgWzIwMTgtMDEtMDEsKQorIFsy MSwyMikgfCBbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKQorKDQgcm93cykKKworLS0gc2hvdWxk IGZhaWw6CitVUERBVEUgIHRlbXBvcmFsX3JuZworU0VUICAgICBpZCA9ICdbMSwyKScsCisg ICAgICAgIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAzLTA1JywgJzIwMTgtMDUtMDUn KQorV0hFUkUgICBpZCA9ICdbMjEsMjIpJzsKK0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZh bHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ybmdfcGsiCitE RVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMy0wNSwyMDE4LTA1 LTA1KSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwy KSwgWzIwMTgtMDMtMDMsMjAxOC0wNC0wNCkpLgorLS0gc2V0IHRoZSBzY2FsYXIgcGFydCB0 byBOVUxMCitVUERBVEUgIHRlbXBvcmFsX3JuZworU0VUICAgICBpZCA9IE5VTEwsCisgICAg ICAgIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAzLTA1JywgJzIwMTgtMDUtMDUnKQor V0hFUkUgICBpZCA9ICdbMjEsMjIpJzsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4g ImlkIiBvZiByZWxhdGlvbiAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBub3QtbnVsbCBjb25z dHJhaW50CitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwgWzIwMTgtMDMt MDUsMjAxOC0wNS0wNSkpLgorLS0gc2V0IHRoZSByYW5nZSBwYXJ0IHRvIE5VTEwKK1VQREFU RSAgdGVtcG9yYWxfcm5nCitTRVQgICAgIGlkID0gJ1sxLDIpJywKKyAgICAgICAgdmFsaWRf YXQgPSBOVUxMCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworRVJST1I6ICBudWxsIHZhbHVl IGluIGNvbHVtbiAidmFsaWRfYXQiIG9mIHJlbGF0aW9uICJ0ZW1wb3JhbF9ybmciIHZpb2xh dGVzIG5vdC1udWxsIGNvbnN0cmFpbnQKK0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5z IChbMSwyKSwgbnVsbCkuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICBpZCAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwyKSAgIHwgWzIwMTgtMDMt MDMsMjAxOC0wNC0wNCkKKyBbMiwzKSAgIHwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkKKyBb Myw0KSAgIHwgWzIwMTgtMDEtMDEsKQorIFsyMSwyMikgfCBbMjAxOC0wMS0wMiwyMDE4LTAy LTAzKQorKDQgcm93cykKKworLS0KKy0tIHJhbmdlIFVROiB0ZXN0IHdpdGggZXhpc3Rpbmcg cm93cworLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKKwlpZCBpbnQ0cmFuZ2Us CisJdmFsaWRfYXQgZGF0ZXJhbmdlCispOworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDInLCAnMjAxOC0wMi0wMycpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDMn LCAnMjAxOC0wNC0wNCcpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w MS0wNScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBOVUxMKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVMTCwgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ybmczIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5J UVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ybmczIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxOworLS0gc2hvdWxk IGZhaWw6CitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAx LTA1JykpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmczIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX3JuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7 CitFUlJPUjogIGNvdWxkIG5vdCBjcmVhdGUgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBv cmFsX3JuZzNfdXEiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAx OC0wMS0wMiwyMDE4LTAyLTAzKSkgY29uZmxpY3RzIHdpdGgga2V5IChpZCwgdmFsaWRfYXQp PShbMSwyKSwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkpLgorUk9MTEJBQ0s7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ybmczIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5J UVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmczOworLS0KKy0tIHJhbmdlIFVROiB0ZXN0IGluc2VydHMKKy0tCistLSBva2F5 OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsIE5VTEwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkg VkFMVUVTIChOVUxMLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMs NCknLCBOVUxMKTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAxLTA1JykpOworRVJST1I6ICBjb25mbGljdGluZyBrZXkgdmFsdWUgdmlv bGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX3JuZzNfdXEiCitERVRBSUw6 ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KSkg Y29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIw MTgtMDEtMDIsMjAxOC0wMi0wMykpLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmczIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBbMjAxOC0w MS0wMiwyMDE4LTAyLTAzKQorIFsxLDIpIHwgWzIwMTgtMDMtMDMsMjAxOC0wNC0wNCkKKyBb MiwzKSB8IFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpCisgWzMsNCkgfCBbMjAxOC0wMS0wMSwp CisgWzMsNCkgfCAKKyAgICAgICB8IFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpCisoNiByb3dz KQorCistLQorLS0gcmFuZ2UgVVE6IHRlc3QgdXBkYXRlcworLS0KKy0tIHVwZGF0ZSB0aGUg c2NhbGFyIHBhcnQKK1VQREFURSAgdGVtcG9yYWxfcm5nMworU0VUICAgICBpZCA9ICdbMTEs MTIpJworV0hFUkUgICBpZCA9ICdbMSwyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMTgt MDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIHRoZSByYW5nZSBwYXJ0CitVUERBVEUgIHRlbXBv cmFsX3JuZzMKK1NFVCAgICAgdmFsaWRfYXQgPSAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkn CitXSEVSRSAgIGlkID0gJ1sxMSwxMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDE4LTAx LTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSBib3RoIGF0IG9uY2UKK1VQREFURSAgdGVtcG9yYWxf cm5nMworU0VUICAgICBpZCA9ICdbMjEsMjIpJywKKyAgICAgICAgdmFsaWRfYXQgPSAnWzIw MTgtMDEtMDIsMjAxOC0wMi0wMyknCitXSEVSRSAgIGlkID0gJ1sxMSwxMiknCitBTkQgICAg IHZhbGlkX2F0IEA+ICcyMDIwLTAxLTE1Jzo6ZGF0ZTsKKy0tIHNldCB0aGUgc2NhbGFyIHBh cnQgdG8gTlVMTAorVVBEQVRFICB0ZW1wb3JhbF9ybmczCitTRVQgICAgIGlkID0gTlVMTCwK KyAgICAgICAgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0w MScpCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworLS0gc2V0IHRoZSByYW5nZSBwYXJ0IHRv IE5VTEwKK1VQREFURSAgdGVtcG9yYWxfcm5nMworU0VUICAgICBpZCA9ICdbMSwyKScsCisg ICAgICAgIHZhbGlkX2F0ID0gTlVMTAorV0hFUkUgICBpZCBJUyBOVUxMIEFORCB2YWxpZF9h dCBAPiAnMjAyMC0wNi0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZzMg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwyKSB8IFsyMDE4 LTAzLTAzLDIwMTgtMDQtMDQpCisgWzEsMikgfCAKKyBbMiwzKSB8IFsyMDE4LTAxLTAxLDIw MTgtMDEtMDUpCisgWzMsNCkgfCBbMjAxOC0wMS0wMSwpCisgWzMsNCkgfCAKKyAgICAgICB8 IFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpCisoNiByb3dzKQorCistLSBzaG91bGQgZmFpbDoK K1VQREFURSAgdGVtcG9yYWxfcm5nMworU0VUICAgICB2YWxpZF9hdCA9IGRhdGVyYW5nZSgn MjAxOC0wMy0wMScsICcyMDE4LTA1LTA1JykKK1dIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2 YWxpZF9hdCBJUyBOVUxMOworRVJST1I6ICBjb25mbGljdGluZyBrZXkgdmFsdWUgdmlvbGF0 ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX3JuZzNfdXEiCitERVRBSUw6ICBL ZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMy0wMSwyMDE4LTA1LTA1KSkgY29u ZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgt MDMtMDMsMjAxOC0wNC0wNCkpLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmczIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAor LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBbMjAxOC0wMy0w MywyMDE4LTA0LTA0KQorIFsxLDIpIHwgCisgWzIsMykgfCBbMjAxOC0wMS0wMSwyMDE4LTAx LTA1KQorIFszLDQpIHwgWzIwMTgtMDEtMDEsKQorIFszLDQpIHwgCisgICAgICAgfCBbMjAx OC0wMS0wMSwyMDE4LTAxLTA1KQorKDYgcm93cykKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9y bmczOworLS0KKy0tIG11bHRpcmFuZ2UgUEs6IHRlc3Qgd2l0aCBleGlzdGluZyByb3dzCist LQorQUxURVIgVEFCTEUgdGVtcG9yYWxfbWx0cm5nIERST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9tbHRybmdfcGs7CistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVMTCkpKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRy bmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZyBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0 cm5nX3BrOworLS0gc2hvdWxkIGZhaWw6CitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOworICBBTFRFUiBU QUJMRSB0ZW1wb3JhbF9tbHRybmcgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitFUlJPUjog IGNvdWxkIG5vdCBjcmVhdGUgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX21sdHJu Z19wayIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMS0w MiwyMDE4LTAyLTAzKX0pIGNvbmZsaWN0cyB3aXRoIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEs MiksIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KX0pLgorUk9MTEJBQ0s7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9tbHRybmcgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9tbHRybmc7CistLQorLS0gbXVsdGlyYW5nZSBQSzogdGVzdCBpbnNlcnRz CistLQorLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMicsICcyMDE4LTAyLTAzJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsIE5VTEwpKSk7CistLSBzaG91bGQg ZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAxLTA1JykpKTsKK0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVz IGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9tbHRybmdfcGsiCitERVRBSUw6ICBL ZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMS0wNSl9KSBj b25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCB7WzIw MTgtMDEtMDIsMjAxOC0wMi0wMyl9KS4KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKE5VTEwsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpbiBj b2x1bW4gImlkIiBvZiByZWxhdGlvbiAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBub3Qt bnVsbCBjb25zdHJhaW50CitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwg e1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpfSkuCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBOVUxMKTsKK0VSUk9SOiAgbnVs bCB2YWx1ZSBpbiBjb2x1bW4gInZhbGlkX2F0IiBvZiByZWxhdGlvbiAidGVtcG9yYWxfbWx0 cm5nIiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CitERVRBSUw6ICBGYWlsaW5nIHJv dyBjb250YWlucyAoWzMsNCksIG51bGwpLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRy bmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgICB2YWxpZF9hdCAg ICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikg fCB7WzIwMTgtMDEtMDIsMjAxOC0wMi0wMyl9CisgWzEsMikgfCB7WzIwMTgtMDMtMDMsMjAx OC0wNC0wNCl9CisgWzIsMykgfCB7WzIwMTgtMDEtMDEsMjAxOC0wMS0wNSl9CisgWzMsNCkg fCB7WzIwMTgtMDEtMDEsKX0KKyg0IHJvd3MpCisKKy0tCistLSBtdWx0aXJhbmdlIFBLOiB0 ZXN0IHVwZGF0ZXMKKy0tCistLSB1cGRhdGUgdGhlIHNjYWxhciBwYXJ0CitVUERBVEUgIHRl bXBvcmFsX21sdHJuZworU0VUICAgICBpZCA9ICdbMTEsMTIpJworV0hFUkUgICBpZCA9ICdb MSwyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBk YXRlIHRoZSBtdWx0aXJhbmdlIHBhcnQKK1VQREFURSAgdGVtcG9yYWxfbWx0cm5nCitTRVQg ICAgIHZhbGlkX2F0ID0gJ3tbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0nCitXSEVSRSAgIGlk ID0gJ1sxMSwxMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsK Ky0tIHVwZGF0ZSBib3RoIGF0IG9uY2UKK1VQREFURSAgdGVtcG9yYWxfbWx0cm5nCitTRVQg ICAgIGlkID0gJ1syMSwyMiknLAorICAgICAgICB2YWxpZF9hdCA9ICd7WzIwMTgtMDEtMDIs MjAxOC0wMi0wMyl9JworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9h dCBAPiAnMjAyMC0wMS0xNSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJu ZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICBpZCAgICB8ICAgICAgICAgdmFsaWRfYXQg ICAgICAgICAgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEs MikgICB8IHtbMjAxOC0wMy0wMywyMDE4LTA0LTA0KX0KKyBbMiwzKSAgIHwge1syMDE4LTAx LTAxLDIwMTgtMDEtMDUpfQorIFszLDQpICAgfCB7WzIwMTgtMDEtMDEsKX0KKyBbMjEsMjIp IHwge1syMDE4LTAxLTAyLDIwMTgtMDItMDMpfQorKDQgcm93cykKKworLS0gc2hvdWxkIGZh aWw6CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZworU0VUICAgICBpZCA9ICdbMSwyKScsCisg ICAgICAgIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTA1 JywgJzIwMTgtMDUtMDUnKSkKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CitFUlJPUjogIGNv bmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29uc3RyYWludCAidGVt cG9yYWxfbWx0cm5nX3BrIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwg e1syMDE4LTAzLTA1LDIwMTgtMDUtMDUpfSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5 IChpZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpfSkuCist LSBzZXQgdGhlIHNjYWxhciBwYXJ0IHRvIE5VTEwKK1VQREFURSAgdGVtcG9yYWxfbWx0cm5n CitTRVQgICAgIGlkID0gTlVMTCwKKyAgICAgICAgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDUnLCAnMjAxOC0wNS0wNScpKQorV0hFUkUgICBpZCA9 ICdbMjEsMjIpJzsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4gImlkIiBvZiByZWxh dGlvbiAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CitE RVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwge1syMDE4LTAzLTA1LDIwMTgt MDUtMDUpfSkuCistLSBzZXQgdGhlIG11bHRpcmFuZ2UgcGFydCB0byBOVUxMCitVUERBVEUg IHRlbXBvcmFsX21sdHJuZworU0VUICAgICBpZCA9ICdbMSwyKScsCisgICAgICAgIHZhbGlk X2F0ID0gTlVMTAorV0hFUkUgICBpZCA9ICdbMjEsMjIpJzsKK0VSUk9SOiAgbnVsbCB2YWx1 ZSBpbiBjb2x1bW4gInZhbGlkX2F0IiBvZiByZWxhdGlvbiAidGVtcG9yYWxfbWx0cm5nIiB2 aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250 YWlucyAoWzEsMiksIG51bGwpLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmcgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgaWQgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpICAg fCB7WzIwMTgtMDMtMDMsMjAxOC0wNC0wNCl9CisgWzIsMykgICB8IHtbMjAxOC0wMS0wMSwy MDE4LTAxLTA1KX0KKyBbMyw0KSAgIHwge1syMDE4LTAxLTAxLCl9CisgWzIxLDIyKSB8IHtb MjAxOC0wMS0wMiwyMDE4LTAyLTAzKX0KKyg0IHJvd3MpCisKKy0tCistLSBtdWx0aXJhbmdl IFVROiB0ZXN0IHdpdGggZXhpc3Rpbmcgcm93cworLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9tbHRybmczICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UK Kyk7CistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMicsICcyMDE4LTAyLTAzJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsIE5VTEwpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVMTCwgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb Myw0KScsIE5VTEwpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMyBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9tbHRybmczX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMyBEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfbWx0cm5nM191cTsKKy0tIHNob3VsZCBmYWlsOgorQkVHSU47CisgIElO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEs MiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0w NScpKSk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZzMgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfbWx0cm5nM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKTsKK0VSUk9SOiAgY291bGQgbm90IGNyZWF0ZSBleGNsdXNpb24gY29uc3RyYWludCAi dGVtcG9yYWxfbWx0cm5nM191cSIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEs MiksIHtbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKX0pIGNvbmZsaWN0cyB3aXRoIGtleSAoaWQs IHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KX0pLgorUk9MTEJB Q0s7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmczIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX21sdHJuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmczOworLS0KKy0tIG11bHRpcmFuZ2UgVVE6 IHRlc3QgaW5zZXJ0cworLS0KKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMykn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVM TCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFM VUVTIChOVUxMLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMS0wNScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7 CitFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29u c3RyYWludCAidGVtcG9yYWxfbWx0cm5nM191cSIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlk X2F0KT0oWzEsMiksIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KX0pIGNvbmZsaWN0cyB3aXRo IGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMS0wMiwyMDE4 LTAyLTAzKX0pLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmczIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgCistLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwge1syMDE4LTAxLTAy LDIwMTgtMDItMDMpfQorIFsxLDIpIHwge1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpfQorIFsy LDMpIHwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpfQorIFszLDQpIHwge1syMDE4LTAxLTAx LCl9CisgWzMsNCkgfCAKKyAgICAgICB8IHtbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KX0KKyg2 IHJvd3MpCisKKy0tCistLSBtdWx0aXJhbmdlIFVROiB0ZXN0IHVwZGF0ZXMKKy0tCistLSB1 cGRhdGUgdGhlIHNjYWxhciBwYXJ0CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMKK1NFVCAg ICAgaWQgPSAnWzExLDEyKScKK1dIRVJFICAgaWQgPSAnWzEsMiknCitBTkQgICAgIHZhbGlk X2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSB0aGUgbXVsdGlyYW5nZSBw YXJ0CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMKK1NFVCAgICAgdmFsaWRfYXQgPSAne1sy MDIwLTAxLTAxLDIwMjEtMDEtMDEpfScKK1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAg ICAgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIGJvdGggYXQg b25jZQorVVBEQVRFICB0ZW1wb3JhbF9tbHRybmczCitTRVQgICAgIGlkID0gJ1syMSwyMikn LAorICAgICAgICB2YWxpZF9hdCA9ICd7WzIwMTgtMDEtMDIsMjAxOC0wMi0wMyl9JworV0hF UkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAyMC0wMS0xNSc6 OmRhdGU7CistLSBzZXQgdGhlIHNjYWxhciBwYXJ0IHRvIE5VTEwKK1VQREFURSAgdGVtcG9y YWxfbWx0cm5nMworU0VUICAgICBpZCA9IE5VTEwsCisgICAgICAgIHZhbGlkX2F0ID0gZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkKK1dI RVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSBzZXQgdGhlIG11bHRpcmFuZ2UgcGFydCB0byBO VUxMCitVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMKK1NFVCAgICAgaWQgPSAnWzEsMiknLAor ICAgICAgICB2YWxpZF9hdCA9IE5VTEwKK1dIRVJFICAgaWQgSVMgTlVMTCBBTkQgdmFsaWRf YXQgQD4gJzIwMjAtMDYtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRy bmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgdmFsaWRfYXQg ICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIp IHwge1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpfQorIFsxLDIpIHwgCisgWzIsMykgfCB7WzIw MTgtMDEtMDEsMjAxOC0wMS0wNSl9CisgWzMsNCkgfCB7WzIwMTgtMDEtMDEsKX0KKyBbMyw0 KSB8IAorICAgICAgIHwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpfQorKDYgcm93cykKKwor LS0gc2hvdWxkIGZhaWw6CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMKK1NFVCAgICAgdmFs aWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDEnLCAnMjAxOC0w NS0wNScpKQorV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IElTIE5VTEw7CitF UlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29uc3Ry YWludCAidGVtcG9yYWxfbWx0cm5nM191cSIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0 KT0oWzEsMiksIHtbMjAxOC0wMy0wMSwyMDE4LTA1LTA1KX0pIGNvbmZsaWN0cyB3aXRoIGV4 aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMy0wMywyMDE4LTA0 LTA0KX0pLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmczIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgCistLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwge1syMDE4LTAzLTAzLDIw MTgtMDQtMDQpfQorIFsxLDIpIHwgCisgWzIsMykgfCB7WzIwMTgtMDEtMDEsMjAxOC0wMS0w NSl9CisgWzMsNCkgfCB7WzIwMTgtMDEtMDEsKX0KKyBbMyw0KSB8IAorICAgICAgIHwge1sy MDE4LTAxLTAxLDIwMTgtMDEtMDUpfQorKDYgcm93cykKKworRFJPUCBUQUJMRSB0ZW1wb3Jh bF9tbHRybmczOworLS0KKy0tIHRlc3QgYSByYW5nZSB3aXRoIGJvdGggYSBQSyBhbmQgYSBV TklRVUUgY29uc3RyYWludAorLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBp bnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgaWQyIGludDhyYW5nZSwKKyAg bmFtZSBURVhULAorICBDT05TVFJBSU5UIHRlbXBvcmFsM19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsM191 bmlxIFVOSVFVRSAoaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0LCBpZDIsIG5hbWUpCisgIFZBTFVFUwor ICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ1s3 LDgpJywgJ2ZvbycpLAorICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIw MTAtMDEtMDEnKSwgJ1s5LDEwKScsICdiYXInKQorOworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7 CistLQorLS0gdGVzdCBjaGFuZ2luZyB0aGUgUEsncyBkZXBlbmRlbmNpZXMKKy0tCitDUkVB VEUgVEFCTEUgdGVtcG9yYWwzICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJh bmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWwzX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMgQUxURVIg Q09MVU1OIHZhbGlkX2F0IERST1AgTk9UIE5VTEw7CitFUlJPUjogIGNvbHVtbiAidmFsaWRf YXQiIGlzIGluIGEgcHJpbWFyeSBrZXkKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMyBBTFRFUiBD T0xVTU4gdmFsaWRfYXQgVFlQRSB0c3R6cmFuZ2UgVVNJTkcgdHN0enJhbmdlKGxvd2VyKHZh bGlkX2F0KSwgdXBwZXIodmFsaWRfYXQpKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMyBSRU5B TUUgQ09MVU1OIHZhbGlkX2F0IFRPIHZhbGlkX3RocnU7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bDMgRFJPUCBDT0xVTU4gdmFsaWRfdGhydTsKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworLS0K Ky0tIHRlc3QgUEFSVElUSU9OIEJZIGZvciByYW5nZXMKKy0tCistLSB0ZW1wb3JhbCBQUklN QVJZIEtFWToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoCisJaWQgaW50 NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0ZXh0LAorCUNPTlNUUkFJ TlQgdGVtcG9yYWxfcGFyaXRpb25lZF9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFC TEUgdHAxIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElO ICgnWzEsMiknLCAnWzIsMyknKTsKK0NSRUFURSBUQUJMRSB0cDIgUEFSVElUSU9OIE9GIHRl bXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMyw0KScsICdbNCw1KScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2YWxpZF9hdCwgbmFtZSkg VkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0w MScpLCAnb25lJyksCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAw MC0wMy0wMScpLCAnb25lJyksCisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEn LCAnMjAxMC0wMS0wMScpLCAndGhyZWUnKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFy dGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDAwLTAyLTAxKSB8IG9uZQorIFsx LDIpIHwgWzIwMDAtMDItMDEsMjAwMC0wMy0wMSkgfCBvbmUKKyBbMyw0KSB8IFsyMDAwLTAx LTAxLDIwMTAtMDEtMDEpIHwgdGhyZWUKKygzIHJvd3MpCisKK1NFTEVDVCAqIEZST00gdHAx IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIHwgbmFtZSAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0K KyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDItMDEpIHwgb25lCisgWzEsMikgfCBbMjAw MC0wMi0wMSwyMDAwLTAzLTAxKSB8IG9uZQorKDIgcm93cykKKworU0VMRUNUICogRlJPTSB0 cDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tCisgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCisoMSByb3cp CisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQ7CistLSB0ZW1wb3JhbCBVTklR VUU6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgKAorCWlkIGludDRyYW5n ZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIG5hbWUgdGV4dCwKKwlDT05TVFJBSU5UIHRl bXBvcmFsX3Bhcml0aW9uZWRfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKKykgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKK0NSRUFURSBUQUJMRSB0cDEgUEFS VElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScs ICdbMiwzKScpOworQ1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFy dGl0aW9uZWQgRk9SIFZBTFVFUyBJTiAoJ1szLDQpJywgJ1s0LDUpJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoaWQsIHZhbGlkX2F0LCBuYW1lKSBWQUxVRVMKKyAg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTAxJyksICdvbmUn KSwKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScsICcyMDAwLTAzLTAxJyks ICdvbmUnKSwKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAx LTAxJyksICd0aHJlZScpOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICB8IG5hbWUgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0K KyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDItMDEpIHwgb25lCisgWzEsMikgfCBbMjAw MC0wMi0wMSwyMDAwLTAzLTAxKSB8IG9uZQorIFszLDQpIHwgWzIwMDAtMDEtMDEsMjAxMC0w MS0wMSkgfCB0aHJlZQorKDMgcm93cykKKworU0VMRUNUICogRlJPTSB0cDEgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBuYW1l IAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLQorIFsxLDIpIHwg WzIwMDAtMDEtMDEsMjAwMC0wMi0wMSkgfCBvbmUKKyBbMSwyKSB8IFsyMDAwLTAyLTAxLDIw MDAtMDMtMDEpIHwgb25lCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRwMiBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5h bWUgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBbMyw0 KSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpIHwgdGhyZWUKKygxIHJvdykKKworRFJPUCBU QUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKKy0tIEFMVEVSIFRBQkxFIFJFUExJQ0EgSURF TlRJVFkKKy0tIChzaG91bGQgZmFpbCkKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBSRVBM SUNBIElERU5USVRZIFVTSU5HIElOREVYIHRlbXBvcmFsX3JuZ19wazsKK0VSUk9SOiAgY2Fu bm90IHVzZSBub24tdW5pcXVlIGluZGV4ICJ0ZW1wb3JhbF9ybmdfcGsiIGFzIHJlcGxpY2Eg aWRlbnRpdHkKKy0tCistLSBPTiBDT05GTElDVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3Ju ZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0gd2l0 aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScp KSBPTiBDT05GTElDVCBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxp Y3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MSwyKScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENPTkZM SUNUIERPIE5PVEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBk YXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBETyBO T1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCistLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEp CisgWzEsMikgfCBbMjAxMC0wMS0wMSwyMDIwLTAxLTAxKQorIFsyLDMpIHwgWzIwMDUtMDEt MDEsMjAwNi0wMS0wMSkKKygzIHJvd3MpCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0gd2l0aCBhIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBD T05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworRVJST1I6ICB0aGVyZSBpcyBu byB1bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZM SUNUIHNwZWNpZmljYXRpb24KKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBk YXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQs IHZhbGlkX2F0KSBETyBOT1RISU5HOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3Ig ZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmlj YXRpb24KKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgn MjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQp IERPIE5PVEhJTkc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24g Y29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpCisoMSByb3cpCisK K1RSVU5DQVRFIHRlbXBvcmFsX3JuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcy MDEwLTAxLTAxJykpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUt MDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBv cmFsX3JuZ19wayBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwy KScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENPTkZMSUNU IE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIERPIE5PVEhJTkc7CistLSBkYXRlIG1h dGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAw Ni0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBE TyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCistLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEt MDEpCisgWzEsMikgfCBbMjAxMC0wMS0wMSwyMDIwLTAxLTAxKQorIFsyLDMpIHwgWzIwMDUt MDEtMDEsMjAwNi0wMS0wMSkKKygzIHJvd3MpCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwy KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0gd2l0aCBh IGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBP TiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQu aWQgKyAnWzIsMyknOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3IgZXhjbHVzaW9u IGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmljYXRpb24KKy0t IGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEn LCAnMjAyMC0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUg U0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzMsNCknOworRVJST1I6ICB0aGVyZSBpcyBubyB1 bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNU IHNwZWNpZmljYXRpb24KKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRh dGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwg dmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1KSc7CitF UlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBtYXRj aGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwy KSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpCisoMSByb3cpCisKK1RSVU5DQVRFIHRlbXBv cmFsX3JuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOwor LS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0w MS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBETyBV UERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzIsMyknOworRVJST1I6ICBPTiBDT05G TElDVCBETyBVUERBVEUgbm90IHN1cHBvcnRlZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50 cworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0w MS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9y YWxfcm5nX3BrIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0KSc7CitF UlJPUjogIE9OIENPTkZMSUNUIERPIFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVz aW9uIGNvbnN0cmFpbnRzCistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBk YXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBD T05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQu aWQgKyAnWzQsNSknOworRVJST1I6ICBPTiBDT05GTElDVCBETyBVUERBVEUgbm90IHN1cHBv cnRlZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50cworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwyKSB8 IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpCisoMSByb3cpCisKKy0tIHdpdGggYSBVTklRVUUg Y29uc3RyYWludDoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorCWlkIGludDRyYW5nZSwK Kwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEgVU5JUVVF IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitUUlVOQ0FURSB0ZW1wb3Jh bDM7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEs MiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGgg YSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04g Q09ORkxJQ1QgRE8gTk9USElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBk YXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBDT05GTElDVCBETyBO T1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8g dGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcy MDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8 ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKQorIFsxLDIpIHwgWzIw MTAtMDEtMDEsMjAyMC0wMS0wMSkKKyBbMiwzKSB8IFsyMDA1LTAxLTAxLDIwMDYtMDEtMDEp CisoMyByb3dzKQorCitUUlVOQ0FURSB0ZW1wb3JhbDM7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEt MDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8g dGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcy MDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkg RE8gTk9USElORzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBj b25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCistLSBp ZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIw MjAtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKK0VS Uk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNo aW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCistLSBkYXRlIG1hdGNoZXMgYnV0 IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBP TiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworRVJST1I6ICB0aGVyZSBp cyBubyB1bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENP TkZMSUNUIHNwZWNpZmljYXRpb24KK1NFTEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwy MDEwLTAxLTAxKQorKDEgcm93KQorCitUUlVOQ0FURSB0ZW1wb3JhbDM7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2Uo JzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5T RVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0 ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09O U1RSQUlOVCB0ZW1wb3JhbDNfdXEgRE8gTk9USElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5v IGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBD T05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsM191cSBETyBOT1RISU5HOworLS0gZGF0 ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIw MDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEgRE8g Tk9USElORzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKQor IFsxLDIpIHwgWzIwMTAtMDEtMDEsMjAyMC0wMS0wMSkKKyBbMiwzKSB8IFsyMDA1LTAxLTAx LDIwMDYtMDEtMDEpCisoMyByb3dzKQorCitUUlVOQ0FURSB0ZW1wb3JhbDM7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFu Z2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAor SU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywg ZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlk LCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1syLDMpJzsK K0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1h dGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCistLSBpZCBtYXRjaGVzIGJ1 dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSkg T04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVE LmlkICsgJ1szLDQpJzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lv biBjb25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCist LSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEn LCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUg U0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzQsNSknOworRVJST1I6ICB0aGVyZSBpcyBubyB1 bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNU IHNwZWNpZmljYXRpb24KK1NFTEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDEwLTAx LTAxKQorKDEgcm93KQorCitUUlVOQ0FURSB0ZW1wb3JhbDM7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAt MDEtMDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElO VE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlO VCB0ZW1wb3JhbDNfdXEgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1syLDMp JzsKK0VSUk9SOiAgT04gQ09ORkxJQ1QgRE8gVVBEQVRFIG5vdCBzdXBwb3J0ZWQgd2l0aCBl eGNsdXNpb24gY29uc3RyYWludHMKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBk YXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBD T05TVFJBSU5UIHRlbXBvcmFsM191cSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQg KyAnWzMsNCknOworRVJST1I6ICBPTiBDT05GTElDVCBETyBVUERBVEUgbm90IHN1cHBvcnRl ZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50cworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBj b25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1syLDMpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09O RkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEgRE8gVVBEQVRFIFNFVCBpZCA9IEVY Q0xVREVELmlkICsgJ1s0LDUpJzsKK0VSUk9SOiAgT04gQ09ORkxJQ1QgRE8gVVBEQVRFIG5v dCBzdXBwb3J0ZWQgd2l0aCBleGNsdXNpb24gY29uc3RyYWludHMKK1NFTEVDVCAqIEZST00g dGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEs MikgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKQorKDEgcm93KQorCitEUk9QIFRBQkxFIHRl bXBvcmFsMzsKK1JFU0VUIGRhdGVzdHlsZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlCmluZGV4IDI0MjllYzJiYmFhLi5kZGMxNTVjMTk1ZiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Bh cmFsbGVsX3NjaGVkdWxlCkBAIC03OCw3ICs3OCw3IEBAIHRlc3Q6IGJyaW5fYmxvb20gYnJp bl9tdWx0aQogIyBwc3FsIGRlcGVuZHMgb24gY3JlYXRlX2FtCiAjIGFtdXRpbHMgZGVwZW5k cyBvbiBnZW9tZXRyeSwgY3JlYXRlX2luZGV4X3NwZ2lzdCwgaGFzaF9pbmRleCwgYnJpbgog IyAtLS0tLS0tLS0tCi10ZXN0OiBjcmVhdGVfdGFibGVfbGlrZSBhbHRlcl9nZW5lcmljIGFs dGVyX29wZXJhdG9yIG1pc2MgYXN5bmMgZGJzaXplIG1lcmdlIG1pc2NfZnVuY3Rpb25zIHN5 c3ZpZXdzIHRzcmYgdGlkIHRpZHNjYW4gdGlkcmFuZ2VzY2FuIGNvbGxhdGUudXRmOCBjb2xs YXRlLmljdS51dGY4IGluY3JlbWVudGFsX3NvcnQgY3JlYXRlX3JvbGUKK3Rlc3Q6IGNyZWF0 ZV90YWJsZV9saWtlIGFsdGVyX2dlbmVyaWMgYWx0ZXJfb3BlcmF0b3IgbWlzYyBhc3luYyBk YnNpemUgbWVyZ2UgbWlzY19mdW5jdGlvbnMgc3lzdmlld3MgdHNyZiB0aWQgdGlkc2NhbiB0 aWRyYW5nZXNjYW4gY29sbGF0ZS51dGY4IGNvbGxhdGUuaWN1LnV0ZjggaW5jcmVtZW50YWxf c29ydCBjcmVhdGVfcm9sZSB3aXRob3V0X292ZXJsYXBzCiAKICMgY29sbGF0ZS5saW51eC51 dGY4IGFuZCBjb2xsYXRlLmljdS51dGY4IHRlc3RzIGNhbm5vdCBiZSBydW4gaW4gcGFyYWxs ZWwgd2l0aCBlYWNoIG90aGVyCiB0ZXN0OiBydWxlcyBwc3FsIHBzcWxfY3Jvc3N0YWIgYW11 dGlscyBzdGF0c19leHQgY29sbGF0ZS5saW51eC51dGY4IGNvbGxhdGUud2luZG93cy53aW4x MjUyCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zNmIzZTZkYzAyYQotLS0gL2Rl di9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3Fs CkBAIC0wLDAgKzEsNzU0IEBACistLSBUZXN0cyBmb3IgV0lUSE9VVCBPVkVSTEFQUy4KKy0t CistLSBXZSBsZWF2ZSBiZWhpbmQgc2V2ZXJhbCB0YWJsZXMgdG8gdGVzdCBwZ19kdW1wIGV0 YzoKKy0tIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfcm5nMiwKKy0tIHRlbXBvcmFsX2ZrX3Ju ZzJybmcuCisKK1NFVCBkYXRlc3R5bGUgVE8gSVNPLCBZTUQ7CisKKy0tCistLSB0ZXN0IGlu cHV0IHBhcnNlcgorLS0KKworLS0gUEsgd2l0aCBubyBjb2x1bW5zIGp1c3QgV0lUSE9VVCBP VkVSTEFQUzoKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCisJdmFsaWRfYXQgZGF0 ZXJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIFBSSU1BUlkgS0VZICh2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKKworLS0gUEsgd2l0aCBhIHJhbmdlIGNvbHVt bi9QRVJJT0QgdGhhdCBpc24ndCB0aGVyZToKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3Ju ZyAoCisJaWQgSU5URUdFUiwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworCistLSBQSyB3aXRo IGEgbm9uLXJhbmdlIGNvbHVtbjoKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCisJ aWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IFRFWFQsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9y bmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsK KworLS0gUEsgd2l0aCBvbmUgY29sdW1uIHBsdXMgYSByYW5nZToKKworQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX3JuZyAoCisJLS0gU2luY2Ugd2UgY2FuJ3QgZGVwZW5kIG9uIGhhdmluZyBi dHJlZV9naXN0IGhlcmUsCisJLS0gdXNlIGFuIGludDRyYW5nZSBpbnN0ZWFkIG9mIGFuIGlu dC4KKwktLSAoVGhlIHJhbmdldHlwZXMgcmVncmVzc2lvbiB0ZXN0IHVzZXMgdGhlIHNhbWUg dHJpY2suKQorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJQ09OU1RS QUlOVCB0ZW1wb3JhbF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKQorKTsKK1xkIHRlbXBvcmFsX3JuZworU0VMRUNUIHBnX2dldF9jb25zdHJh aW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9y YWxfcm5nX3BrJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUp IEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZ19wayc7 CisKKy0tIFBLIGZyb20gTElLRToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcyIChMSUtF IHRlbXBvcmFsX3JuZyBJTkNMVURJTkcgQUxMKTsKK1xkIHRlbXBvcmFsX3JuZzIKK0RST1Ag VEFCTEUgdGVtcG9yYWxfcm5nMjsKKworLS0gbm8gUEsgZnJvbSBJTkhFUklUUzoKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ybmcyICgpIElOSEVSSVRTICh0ZW1wb3JhbF9ybmcpOworXGQg dGVtcG9yYWxfcm5nMgorRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmcyOworRFJPUCBUQUJMRSB0 ZW1wb3JhbF9ybmc7CisKKy0tIFBLIGluIGluaGVyaXRpbmcgdGFibGU6CitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfcm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFu Z2UKKyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMiAoCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UykKKykgSU5IRVJJVFMgKHRlbXBvcmFsX3JuZyk7CitcZCB0ZW1wb3JhbF9ybmcyCitEUk9Q IFRBQkxFIHRlbXBvcmFsX3JuZyBDQVNDQURFOworCistLSBBZGQgUEsgdG8gYWxyZWFkeSBp bmhlcml0aW5nIHRhYmxlOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCisgIGlkIGlu dDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlCispOworQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX3JuZzIgKCkgSU5IRVJJVFMgKHRlbXBvcmFsX3JuZyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ybmcyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVtcG9yYWxfcm5nMgor RFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmcyOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmc7CisK Ky0tIFBLIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIHJhbmdlOgorQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX3JuZzIgKAorCWlkMSBpbnQ0cmFuZ2UsCisJaWQyIGludDRyYW5nZSwKKwl2YWxp ZF9hdCBkYXRlcmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmcyX3BrIFBSSU1BUlkg S0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1w b3JhbF9ybmcyCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2Nv bnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ybmcyX3BrJzsKK1NFTEVDVCBw Z19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBX SEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZzJfcGsnOworCistLSBQSyB3aXRoIGEgY3Vz dG9tIHJhbmdlIHR5cGU6CitDUkVBVEUgVFlQRSB0ZXh0cmFuZ2UyIEFTIHJhbmdlIChzdWJ0 eXBlPXRleHQsIGNvbGxhdGlvbj0iQyIpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMg KAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCB0ZXh0cmFuZ2UyLAorCUNPTlNUUkFJTlQg dGVtcG9yYWxfcm5nM19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5nMyBEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfcm5nM19wazsKK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nMzsKK0RST1AgVFlQ RSB0ZXh0cmFuZ2UyOworCistLSBQSyB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIG11bHRpcmFu Z2U6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfbWx0cm5nICgKKyAgaWQgaW50NHJhbmdlLAor ICB2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRy bmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsK K1xkIHRlbXBvcmFsX21sdHJuZworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkg RlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfbWx0cm5nX3Br JzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdf Y29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX21sdHJuZ19wayc7CisKKy0t IFBLIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIG11bHRpcmFuZ2U6CitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfbWx0cm5nMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2Us CisgIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX21s dHJuZzJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQorKTsKK1xkIHRlbXBvcmFsX21sdHJuZzIKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWlu dGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFs X21sdHJuZzJfcGsnOworU0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1 ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfbWx0cm5n Ml9wayc7CisKKy0tIFVOSVFVRSB3aXRoIG5vIGNvbHVtbnMganVzdCBXSVRIT1VUIE9WRVJM QVBTOgorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCisJdmFsaWRfYXQgZGF0ZXJh bmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cSBVTklRVUUgKHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpCispOworCistLSBVTklRVUUgd2l0aCBhIHJhbmdlIGNvbHVtbi9Q RVJJT0QgdGhhdCBpc24ndCB0aGVyZToKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMg KAorCWlkIElOVEVHRVIsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxIFVOSVFVRSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworCistLSBVTklRVUUgd2l0aCBh IG5vbi1yYW5nZSBjb2x1bW46CisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKKwlp ZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgVEVYVCwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX3Ju ZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CisKKy0t IFVOSVFVRSB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIHJhbmdlOgorCitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfcm5nMyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwK KwlDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9ybmczCitTRUxFQ1QgcGdfZ2V0X2Nv bnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0 ZW1wb3JhbF9ybmczX3VxJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAs IHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3Ju ZzNfdXEnOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOworCistLSBVTklRVUUgd2l0aCB0 d28gY29sdW1ucyBwbHVzIGEgcmFuZ2U6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAo CisJaWQxIGludDRyYW5nZSwKKwlpZDIgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5n ZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5JUVVFIChpZDEsIGlkMiwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9ybmczCitTRUxFQ1Qg cGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29u bmFtZSA9ICd0ZW1wb3JhbF9ybmczX3VxJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29u aW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3Rl bXBvcmFsX3JuZzNfdXEnOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOworCistLSBVTklR VUUgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlOgorQ1JFQVRFIFRZUEUgdGV4dHJhbmdlMiBB UyByYW5nZSAoc3VidHlwZT10ZXh0LCBjb2xsYXRpb249IkMiKTsKK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9ybmczICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgdGV4dHJhbmdlMiwK KwlDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmczIERST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOwor RFJPUCBUWVBFIHRleHRyYW5nZTI7CisKKy0tCistLSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBD T05TVFJBSU5UCistLQorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nICgKKwlpZCBpbnQ0 cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxf cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrCisJUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKKworLS0gUEsgd2l0aCBVU0lORyBJTkRF WCAobm90IHBvc3NpYmxlKToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorCWlkIGludDRy YW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UKKyk7CitDUkVBVEUgSU5ERVggaWR4X3RlbXBv cmFsM191cSBPTiB0ZW1wb3JhbDMgVVNJTkcgZ2lzdCAoaWQsIHZhbGlkX2F0KTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsMworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsM19waworCVBSSU1B UlkgS0VZIFVTSU5HIElOREVYIGlkeF90ZW1wb3JhbDNfdXE7CitEUk9QIFRBQkxFIHRlbXBv cmFsMzsKKworLS0gVU5JUVVFIHdpdGggVVNJTkcgSU5ERVggKG5vdCBwb3NzaWJsZSk6CitD UkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0 ZXJhbmdlCispOworQ1JFQVRFIElOREVYIGlkeF90ZW1wb3JhbDNfdXEgT04gdGVtcG9yYWwz IFVTSU5HIGdpc3QgKGlkLCB2YWxpZF9hdCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKKwlB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEKKwlVTklRVUUgVVNJTkcgSU5ERVggaWR4X3Rl bXBvcmFsM191cTsKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworCistLSBVTklRVUUgd2l0aCBV U0lORyBbVU5JUVVFXSBJTkRFWCAocG9zc2libGUgYnV0IG5vdCBhIHRlbXBvcmFsIGNvbnN0 cmFpbnQpOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisJaWQgaW50NHJhbmdlLAorCXZh bGlkX2F0IGRhdGVyYW5nZQorKTsKK0NSRUFURSBVTklRVUUgSU5ERVggaWR4X3RlbXBvcmFs M191cSBPTiB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bDMKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEKKwlVTklRVUUgVVNJTkcgSU5ERVgg aWR4X3RlbXBvcmFsM191cTsKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworCistLSBBZGQgcmFu Z2UgY29sdW1uIGFuZCB0aGUgUEsgYXQgdGhlIHNhbWUgdGltZQorQ1JFQVRFIFRBQkxFIHRl bXBvcmFsMyAoCisJaWQgaW50NHJhbmdlCispOworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisJ QUREIENPTFVNTiB2YWxpZF9hdCBkYXRlcmFuZ2UsCisJQUREIENPTlNUUkFJTlQgdGVtcG9y YWwzX3BrCisJUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsK K0RST1AgVEFCTEUgdGVtcG9yYWwzOworCistLSBBZGQgcmFuZ2UgY29sdW1uIGFuZCBVTklR VUUgY29uc3RyYWludCBhdCB0aGUgc2FtZSB0aW1lCitDUkVBVEUgVEFCTEUgdGVtcG9yYWwz ICgKKwlpZCBpbnQ0cmFuZ2UKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKKwlBREQgQ09M VU1OIHZhbGlkX2F0IGRhdGVyYW5nZSwKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEK KwlVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0RST1AgVEFCTEUg dGVtcG9yYWwzOworCistLQorLS0gcmFuZ2UgUEs6IHRlc3Qgd2l0aCBleGlzdGluZyByb3dz CistLQorCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmcgRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX3JuZ19wazsKKworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcy MDE4LTAyLTAzJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzIsMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsIE5VTEwpKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3Ju ZyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrOworCistLSBzaG91bGQgZmFpbDoKK0JFR0lO OworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKKyAgQUxU RVIgVEFCTEUgdGVtcG9yYWxfcm5nIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworUk9MTEJBQ0s7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmcgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5n X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmc7CisKKy0tCistLSByYW5nZSBQSzogdGVzdCBpbnNlcnRz CistLQorCistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDIt MDMnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgTlVMTCkpOworCistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVMTCwgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDEtMDUnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzMsNCknLCBOVUxMKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHJhbmdlIFBLOiB0ZXN0IHVw ZGF0ZXMKKy0tCisKKy0tIHVwZGF0ZSB0aGUgc2NhbGFyIHBhcnQKK1VQREFURSAgdGVtcG9y YWxfcm5nCitTRVQgICAgIGlkID0gJ1sxMSwxMiknCitXSEVSRSAgIGlkID0gJ1sxLDIpJwor QU5EICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgdGhl IHJhbmdlIHBhcnQKK1VQREFURSAgdGVtcG9yYWxfcm5nCitTRVQgICAgIHZhbGlkX2F0ID0g J1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpJworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5E ICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgYm90aCBh dCBvbmNlCitVUERBVEUgIHRlbXBvcmFsX3JuZworU0VUICAgICBpZCA9ICdbMjEsMjIpJywK KyAgICAgICAgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDIsMjAxOC0wMi0wMyknCitXSEVSRSAg IGlkID0gJ1sxMSwxMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDIwLTAxLTE1Jzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIHNob3VsZCBmYWlsOgorVVBEQVRFICB0ZW1wb3JhbF9ybmcKK1NFVCAgICAgaWQgPSAn WzEsMiknLAorICAgICAgICB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMy0wNScsICcy MDE4LTA1LTA1JykKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSBzZXQgdGhlIHNjYWxh ciBwYXJ0IHRvIE5VTEwKK1VQREFURSAgdGVtcG9yYWxfcm5nCitTRVQgICAgIGlkID0gTlVM TCwKKyAgICAgICAgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDMtMDUnLCAnMjAxOC0w NS0wNScpCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworLS0gc2V0IHRoZSByYW5nZSBwYXJ0 IHRvIE5VTEwKK1VQREFURSAgdGVtcG9yYWxfcm5nCitTRVQgICAgIGlkID0gJ1sxLDIpJywK KyAgICAgICAgdmFsaWRfYXQgPSBOVUxMCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gcmFuZ2UgVVE6IHRlc3Qgd2l0aCBleGlzdGluZyByb3dzCistLQorCitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfcm5nMyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5n ZQorKTsKKworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0w Mi0wMycpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIs MyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCBOVUxMKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcz IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVMTCwgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMTgtMDEtMDUnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmcz IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmczIERST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxOworCistLSBzaG91bGQgZmFpbDoKK0JFR0lOOwor ICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx LDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CisgIEFMVEVS IFRBQkxFIHRlbXBvcmFsX3JuZzMgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cSBV TklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1JPTExCQUNLOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfcm5nMyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3Vx IFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworREVMRVRFIEZST00g dGVtcG9yYWxfcm5nMzsKKworLS0KKy0tIHJhbmdlIFVROiB0ZXN0IGluc2VydHMKKy0tCisK Ky0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx LDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgTlVMTCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKE5VTEwsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAx LTA1JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMyw0KScsIE5VTEwpOworCistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cm5nMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSByYW5nZSBVUTogdGVzdCB1 cGRhdGVzCistLQorCistLSB1cGRhdGUgdGhlIHNjYWxhciBwYXJ0CitVUERBVEUgIHRlbXBv cmFsX3JuZzMKK1NFVCAgICAgaWQgPSAnWzExLDEyKScKK1dIRVJFICAgaWQgPSAnWzEsMikn CitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSB0 aGUgcmFuZ2UgcGFydAorVVBEQVRFICB0ZW1wb3JhbF9ybmczCitTRVQgICAgIHZhbGlkX2F0 ID0gJ1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpJworV0hFUkUgICBpZCA9ICdbMTEsMTIpJwor QU5EICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgYm90 aCBhdCBvbmNlCitVUERBVEUgIHRlbXBvcmFsX3JuZzMKK1NFVCAgICAgaWQgPSAnWzIxLDIy KScsCisgICAgICAgIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAyLDIwMTgtMDItMDMpJworV0hF UkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAyMC0wMS0xNSc6 OmRhdGU7CistLSBzZXQgdGhlIHNjYWxhciBwYXJ0IHRvIE5VTEwKK1VQREFURSAgdGVtcG9y YWxfcm5nMworU0VUICAgICBpZCA9IE5VTEwsCisgICAgICAgIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKQorV0hFUkUgICBpZCA9ICdbMjEsMjIp JzsKKy0tIHNldCB0aGUgcmFuZ2UgcGFydCB0byBOVUxMCitVUERBVEUgIHRlbXBvcmFsX3Ju ZzMKK1NFVCAgICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2YWxpZF9hdCA9IE5VTEwKK1dI RVJFICAgaWQgSVMgTlVMTCBBTkQgdmFsaWRfYXQgQD4gJzIwMjAtMDYtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IHNob3VsZCBmYWlsOgorVVBEQVRFICB0ZW1wb3JhbF9ybmczCitTRVQgICAgIHZhbGlkX2F0 ID0gZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgtMDUtMDUnKQorV0hFUkUgICBpZCA9 ICdbMSwyKScgQU5EIHZhbGlkX2F0IElTIE5VTEw7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3JuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmcz OworCistLQorLS0gbXVsdGlyYW5nZSBQSzogdGVzdCB3aXRoIGV4aXN0aW5nIHJvd3MKKy0t CisKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZyBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfbWx0cm5nX3BrOworCistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSkpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sz LDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVMTCkpKTsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9t bHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZyBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf bWx0cm5nX3BrOworCistLSBzaG91bGQgZmFpbDoKK0JFR0lOOworICBJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CisgIEFM VEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRy bmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1JP TExCQUNLOworQUxURVIgVEFCTEUgdGVtcG9yYWxfbWx0cm5nIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX21sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nOworCistLQorLS0gbXVsdGly YW5nZSBQSzogdGVzdCBpbnNlcnRzCistLQorCistLSBva2F5OgorSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgt MDEtMDUnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgTlVMTCkpKTsKKworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTIChOVUxMLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBO VUxMKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfbWx0cm5nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKworLS0KKy0tIG11bHRpcmFuZ2UgUEs6IHRlc3QgdXBkYXRlcworLS0KKworLS0g dXBkYXRlIHRoZSBzY2FsYXIgcGFydAorVVBEQVRFICB0ZW1wb3JhbF9tbHRybmcKK1NFVCAg ICAgaWQgPSAnWzExLDEyKScKK1dIRVJFICAgaWQgPSAnWzEsMiknCitBTkQgICAgIHZhbGlk X2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSB0aGUgbXVsdGlyYW5nZSBw YXJ0CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZworU0VUICAgICB2YWxpZF9hdCA9ICd7WzIw MjAtMDEtMDEsMjAyMS0wMS0wMSl9JworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAg ICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgYm90aCBhdCBv bmNlCitVUERBVEUgIHRlbXBvcmFsX21sdHJuZworU0VUICAgICBpZCA9ICdbMjEsMjIpJywK KyAgICAgICAgdmFsaWRfYXQgPSAne1syMDE4LTAxLTAyLDIwMTgtMDItMDMpfScKK1dIRVJF ICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMjAtMDEtMTUnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmcgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZworU0VUICAg ICBpZCA9ICdbMSwyKScsCisgICAgICAgIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAzLTA1JywgJzIwMTgtMDUtMDUnKSkKK1dIRVJFICAgaWQgPSAnWzIx LDIyKSc7CistLSBzZXQgdGhlIHNjYWxhciBwYXJ0IHRvIE5VTEwKK1VQREFURSAgdGVtcG9y YWxfbWx0cm5nCitTRVQgICAgIGlkID0gTlVMTCwKKyAgICAgICAgdmFsaWRfYXQgPSBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDUnLCAnMjAxOC0wNS0wNScpKQorV0hF UkUgICBpZCA9ICdbMjEsMjIpJzsKKy0tIHNldCB0aGUgbXVsdGlyYW5nZSBwYXJ0IHRvIE5V TEwKK1VQREFURSAgdGVtcG9yYWxfbWx0cm5nCitTRVQgICAgIGlkID0gJ1sxLDIpJywKKyAg ICAgICAgdmFsaWRfYXQgPSBOVUxMCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9tbHRybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gbXVsdGlyYW5nZSBVUTogdGVzdCB3aXRoIGV4aXN0aW5nIHJvd3MKKy0tCisKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9tbHRybmczICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQg ZGF0ZW11bHRpcmFuZ2UKKyk7CisKKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIs MyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0w NScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg TlVMTCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkg VkFMVUVTIChOVUxMLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMS0wNScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9t bHRybmczIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZzNfdXEgVU5JUVVFIChpZCwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRy bmczIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmczX3VxOworCistLSBzaG91bGQg ZmFpbDoKK0JFR0lOOworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRy bmczIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZzNfdXEgVU5JUVVFIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitST0xMQkFDSzsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX21sdHJuZzMgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nM191cSBVTklRVUUg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZzM7CisKKy0tCistLSBtdWx0aXJhbmdlIFVROiB0ZXN0IGluc2VydHMKKy0tCisK Ky0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAy JywgJzIwMTgtMDItMDMnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVMTCkpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTIChOVUxMLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQp JywgTlVMTCk7CisKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfbWx0cm5nMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSBtdWx0 aXJhbmdlIFVROiB0ZXN0IHVwZGF0ZXMKKy0tCisKKy0tIHVwZGF0ZSB0aGUgc2NhbGFyIHBh cnQKK1VQREFURSAgdGVtcG9yYWxfbWx0cm5nMworU0VUICAgICBpZCA9ICdbMTEsMTIpJwor V0hFUkUgICBpZCA9ICdbMSwyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUn OjpkYXRlOworLS0gdXBkYXRlIHRoZSBtdWx0aXJhbmdlIHBhcnQKK1VQREFURSAgdGVtcG9y YWxfbWx0cm5nMworU0VUICAgICB2YWxpZF9hdCA9ICd7WzIwMjAtMDEtMDEsMjAyMS0wMS0w MSl9JworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAx OC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgYm90aCBhdCBvbmNlCitVUERBVEUgIHRlbXBv cmFsX21sdHJuZzMKK1NFVCAgICAgaWQgPSAnWzIxLDIyKScsCisgICAgICAgIHZhbGlkX2F0 ID0gJ3tbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKX0nCitXSEVSRSAgIGlkID0gJ1sxMSwxMikn CitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDIwLTAxLTE1Jzo6ZGF0ZTsKKy0tIHNldCB0aGUg c2NhbGFyIHBhcnQgdG8gTlVMTAorVVBEQVRFICB0ZW1wb3JhbF9tbHRybmczCitTRVQgICAg IGlkID0gTlVMTCwKKyAgICAgICAgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKQorV0hFUkUgICBpZCA9ICdbMjEsMjIp JzsKKy0tIHNldCB0aGUgbXVsdGlyYW5nZSBwYXJ0IHRvIE5VTEwKK1VQREFURSAgdGVtcG9y YWxfbWx0cm5nMworU0VUICAgICBpZCA9ICdbMSwyKScsCisgICAgICAgIHZhbGlkX2F0ID0g TlVMTAorV0hFUkUgICBpZCBJUyBOVUxMIEFORCB2YWxpZF9hdCBAPiAnMjAyMC0wNi0wMSc6 OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJuZzMgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMKK1NF VCAgICAgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDEn LCAnMjAxOC0wNS0wNScpKQorV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IElT IE5VTEw7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJuZzMgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworRFJPUCBUQUJMRSB0ZW1wb3JhbF9tbHRybmczOworCistLQorLS0gdGVzdCBh IHJhbmdlIHdpdGggYm90aCBhIFBLIGFuZCBhIFVOSVFVRSBjb25zdHJhaW50CistLQorCitD UkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBk YXRlcmFuZ2UsCisgIGlkMiBpbnQ4cmFuZ2UsCisgIG5hbWUgVEVYVCwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbDNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdW5pcSBVTklRVUUgKGlkMiwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2 YWxpZF9hdCwgaWQyLCBuYW1lKQorICBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgn MjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbNyw4KScsICdmb28nKSwKKyAgKCdbMiwz KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbOSwxMCknLCAn YmFyJykKKzsKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworCistLQorLS0gdGVzdCBjaGFuZ2lu ZyB0aGUgUEsncyBkZXBlbmRlbmNpZXMKKy0tCisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMg KAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJQ09OU1RSQUlOVCB0 ZW1wb3JhbDNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KQorKTsKKworQUxURVIgVEFCTEUgdGVtcG9yYWwzIEFMVEVSIENPTFVNTiB2YWxpZF9hdCBE Uk9QIE5PVCBOVUxMOworQUxURVIgVEFCTEUgdGVtcG9yYWwzIEFMVEVSIENPTFVNTiB2YWxp ZF9hdCBUWVBFIHRzdHpyYW5nZSBVU0lORyB0c3R6cmFuZ2UobG93ZXIodmFsaWRfYXQpLCB1 cHBlcih2YWxpZF9hdCkpOworQUxURVIgVEFCTEUgdGVtcG9yYWwzIFJFTkFNRSBDT0xVTU4g dmFsaWRfYXQgVE8gdmFsaWRfdGhydTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMyBEUk9QIENP TFVNTiB2YWxpZF90aHJ1OworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CisKKy0tCistLSB0ZXN0 IFBBUlRJVElPTiBCWSBmb3IgcmFuZ2VzCistLQorCistLSB0ZW1wb3JhbCBQUklNQVJZIEtF WToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoCisJaWQgaW50NHJhbmdl LAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0ZXh0LAorCUNPTlNUUkFJTlQgdGVt cG9yYWxfcGFyaXRpb25lZF9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFCTEUgdHAx IFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzEs MiknLCAnWzIsMyknKTsKK0NSRUFURSBUQUJMRSB0cDIgUEFSVElUSU9OIE9GIHRlbXBvcmFs X3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMyw0KScsICdbNCw1KScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVT CisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0wMScpLCAn b25lJyksCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAwMC0wMy0w MScpLCAnb25lJyksCisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAx MC0wMS0wMScpLCAndGhyZWUnKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0cDEgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0cDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKKworLS0gdGVtcG9yYWwgVU5J UVVFOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkICgKKwlpZCBpbnQ0cmFu Z2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQsCisJQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wYXJpdGlvbmVkX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFCTEUgdHAxIFBB UlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzEsMikn LCAnWzIsMyknKTsKK0NSRUFURSBUQUJMRSB0cDIgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3Bh cnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMyw0KScsICdbNCw1KScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVTCisg ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0wMScpLCAnb25l JyksCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAwMC0wMy0wMScp LCAnb25lJyksCisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0w MS0wMScpLCAndGhyZWUnKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0cDEgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0cDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor RFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKKworLS0gQUxURVIgVEFCTEUgUkVQ TElDQSBJREVOVElUWQorLS0gKHNob3VsZCBmYWlsKQorQUxURVIgVEFCTEUgdGVtcG9yYWxf cm5nIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggdGVtcG9yYWxfcm5nX3BrOworCist LQorLS0gT04gQ09ORkxJQ1QKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0gd2l0aCBhIGNvbmZs aWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05G TElDVCBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENPTkZMSUNUIERPIE5P VEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2Uo JzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBETyBOT1RISU5HOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCitU UlVOQ0FURSB0ZW1wb3JhbF9ybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAx MC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAx LTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9U SElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIw MTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBE TyBOT1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJh bmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxp ZF9hdCkgRE8gTk9USElORzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIE9O IENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIERPIE5PVEhJTkc7CistLSBpZCBtYXRjaGVz IGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEt MDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgRE8gTk9U SElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgn MjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQg dGVtcG9yYWxfcm5nX3BrIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Ju ZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0gd2l0aCBhIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBD T05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQg KyAnWzIsMyknOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5n ZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRf YXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0KSc7CistLSBkYXRl IG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAn MjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VU IGlkID0gRVhDTFVERUQuaWQgKyAnWzQsNSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9y bmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMikn LCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBj b25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04g Q09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgRE8gVVBEQVRFIFNFVCBp ZCA9IEVYQ0xVREVELmlkICsgJ1syLDMpJzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZs aWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzEsMiknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBDT05G TElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBETyBVUERBVEUgU0VUIGlkID0g RVhDTFVERUQuaWQgKyAnWzMsNCknOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGlj dAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sy LDMpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJ Q1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgRE8gVVBEQVRFIFNFVCBpZCA9IEVY Q0xVREVELmlkICsgJ1s0LDUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKworLS0gd2l0aCBhIFVOSVFVRSBjb25zdHJhaW50OgorCitD UkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0 ZXJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWwzX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispOworVFJVTkNBVEUgdGVtcG9yYWwzOworSU5TRVJUIElO VE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lO U0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIERPIE5P VEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVt cG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEw LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKKy0tIGRh dGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcy MDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKK1RSVU5DQVRFIHRlbXBvcmFsMzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0gd2l0aCBhIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05G TElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8g Y29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENP TkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0 IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBP TiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbDMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCitUUlVOQ0FURSB0ZW1wb3JhbDM7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMikn LCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBj b25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09O RkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEgRE8gTk9USElORzsKKy0tIGlkIG1h dGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0w MS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsM191cSBETyBOT1RI SU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVt cG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDA1 LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1w b3JhbDNfdXEgRE8gTk9USElORzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKworVFJVTkNBVEUgdGVtcG9yYWwzOworSU5TRVJUIElOVE8gdGVt cG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAw LTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5n ZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRf YXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMiwzKSc7CistLSBpZCBt YXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAt MDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9 IEVYQ0xVREVELmlkICsgJ1szLDQpJzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxp Y3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwz KScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNU IChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisK K1RSVU5DQVRFIHRlbXBvcmFsMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAx LTAxJykpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAn MjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsM191cSBE TyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzIsMyknOworLS0gaWQgbWF0Y2hl cyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAx JykpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWwzX3VxIERPIFVQREFURSBT RVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0KSc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5v IGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBD T05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsM191cSBETyBVUERBVEUgU0VUIGlkID0g RVhDTFVERUQuaWQgKyAnWzQsNSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbDMgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKworUkVTRVQgZGF0 ZXN0eWxlOwotLSAKMi40Mi4wCgo= --------------GsheMzFFcGdccG4bvM4vwSCN Content-Type: text/x-patch; charset=UTF-8; name="v37-0003-Forbid-empty-ranges-multiranges-in-WITHOUT-OVERL.patch" Content-Disposition: attachment; filename*0="v37-0003-Forbid-empty-ranges-multiranges-in-WITHOUT-OVERL.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1ZGE5MTg0ZmE4MmFkZmNiMWVlNDNiNDRhYTlhODlhNDZkYWUxZDY0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMSBKdW4gMjAyNCAxNToyNDo1NiAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggdjM3IDMvOF0gRm9yYmlkIGVtcHR5IHJhbmdlcy9tdWx0aXJh bmdlcyBpbiBXSVRIT1VUIE9WRVJMQVBTCiBjb2x1bW5zCgpCZWNhdXNlICdlbXB0eScgJiYg J2VtcHR5JyBpcyBmYWxzZSwgdGhlIHRlbXBvcmFsIFBLL1VRIGNvbnN0cmFpbnQgYWxsb3dz CmR1cGxpY2F0ZXMsIHdoaWNoIGlzIGNvbmZ1c2luZyB0byB1c2VycyBhbmQgYnJlYWtzIGlu dGVybmFsCmV4cGVjdGF0aW9ucy4gRm9yIGluc3RhbmNlIHdoZW4gR1JPVVAgQlkgY2hlY2tz IGZ1bmN0aW9uYWwgZGVwZW5kZW5jaWVzCm9uIHRoZSBQSywgaXQgYWxsb3dzIHNlbGVjdGlu ZyBvdGhlciBjb2x1bW5zIGZyb20gdGhlIHRhYmxlLCBidXQgaW4gdGhlCnByZXNlbmNlIG9m IGR1cGxpY2F0ZSBrZXlzIHlvdSBjb3VsZCBnZXQgdGhlIHZhbHVlIGZyb20gYW55IG9mIHRo ZWlyCnJvd3MuIFNvIHdlIG5lZWQgdG8gZm9yYmlkIGVtcHRpZXMuCgpUaGlzIGFsbCBtZWFu cyB3ZSBjYW4gb25seSBzdXBwb3J0IHJhbmdlcyBhbmQgbXVsdGlyYW5nZXMgZm9yIHRlbXBv cmFsClBLL1VRcy4gU28gSSBhZGRlZCBhIGNoZWNrIGFuZCB1cGRhdGVkIHRoZSBkb2NzIGFu ZCB0ZXN0cy4KLS0tCiBkb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMyAtCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sICAgICAg ICAgICAgfCAxNSArKy0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMgICAgICAgICAg ICAgICAgICAgfCAxMCArKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jICAg ICAgICAgICAgICB8ICA1ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcu YyAgICAgICAgICAgfCA2MCArKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvbm9kZXMvbWFr ZWZ1bmNzLmMgICAgICAgICAgICAgICAgIHwgIDQgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV91dGlsY21kLmMgICAgICAgICAgICB8IDQ3ICsrKysrKysrKystCiBzcmMvaW5jbHVk ZS9leGVjdXRvci9leGVjdXRvci5oICAgICAgICAgICAgICAgfCAgMiArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9leGVjbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9tYWtlZnVuY3MuaCAgICAgICAgICAgICAgICAgfCAgMiArLQogLi4uL3JlZ3Jl c3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQgICAgIHwgODAgKysrKysrKysrKysr KysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgICAg IHwgNTYgKysrKysrKysrKysrKwogMTIgZmlsZXMgY2hhbmdlZCwgMjYwIGluc2VydGlvbnMo KyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9naXN0LnNn bWwgYi9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sCmluZGV4IGRjZjk0MzNmYTc4Li42MzhkOTEy ZGMyZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2dpc3Quc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvZ2lzdC5zZ21sCkBAIC0xMTg2LDkgKzExODYsNiBAQCBteV9zb3J0c3VwcG9ydChQ R19GVU5DVElPTl9BUkdTKQogICAgICAgIHByb3ZpZGVzIHRoaXMgZnVuY3Rpb24gYW5kIGl0 IHJldHVybnMgcmVzdWx0cyBmb3IKICAgICAgICA8bGl0ZXJhbD5SVEVxdWFsU3RyYXRlZ3lO dW1iZXI8L2xpdGVyYWw+LCBpdCBjYW4gYmUgdXNlZCBpbiB0aGUKICAgICAgICBub24tPGxp dGVyYWw+V0lUSE9VVCBPVkVSTEFQUzwvbGl0ZXJhbD4gcGFydChzKSBvZiBhbiBpbmRleCBj b25zdHJhaW50LgotICAgICAgIElmIGl0IHJldHVybnMgcmVzdWx0cyBmb3IgPGxpdGVyYWw+ UlRPdmVybGFwU3RyYXRlZ3lOdW1iZXI8L2xpdGVyYWw+LAotICAgICAgIHRoZSBvcGVyYXRv ciBjbGFzcyBjYW4gYmUgdXNlZCBpbiB0aGUgPGxpdGVyYWw+V0lUSE9VVAotICAgICAgIE9W RVJMQVBTPC9saXRlcmFsPiBwYXJ0IG9mIGFuIGluZGV4IGNvbnN0cmFpbnQuCiAgICAgICA8 L3BhcmE+CiAKICAgICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwK aW5kZXggZjJjZGEwYzBlOTQuLjk4NDRkMjNiZTQwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3RhYmxlLnNnbWwKQEAgLTk5MSwxNSArOTkxLDEyIEBAIFdJVEggKCBNT0RVTFVTIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxl PiwgUkVNCiAgICAgICA8bGl0ZXJhbD5VTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKTwvbGl0ZXJhbD4gYmVoYXZlcyBsaWtlCiAgICAgICA8bGl0ZXJhbD5FWENMVURF IFVTSU5HIEdJU1QgKGlkIFdJVEggPSwgdmFsaWRfYXQgV0lUSAogICAgICAgJmFtcDsmYW1w Oyk8L2xpdGVyYWw+LiAgVGhlIDxsaXRlcmFsPldJVEhPVVQgT1ZFUkxBUFM8L2xpdGVyYWw+ IGNvbHVtbgotICAgICAgbXVzdCBoYXZlIGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSB0eXBlLiAg KFRlY2huaWNhbGx5LCBhbnkgdHlwZSBpcyBhbGxvd2VkCi0gICAgICB3aG9zZSBkZWZhdWx0 IEdpU1Qgb3BjbGFzcyBpbmNsdWRlcyBhbiBvdmVybGFwcyBvcGVyYXRvci4gIFNlZSB0aGUK LSAgICAgIDxsaXRlcmFsPnN0cmF0bnVtPC9saXRlcmFsPiBzdXBwb3J0IGZ1bmN0aW9uIHVu ZGVyIDx4cmVmCi0gICAgICBsaW5rZW5kPSJnaXN0LWV4dGVuc2liaWxpdHkiLz4gZm9yIGRl dGFpbHMuKSAgVGhlIG5vbi08bGl0ZXJhbD5XSVRIT1VUCi0gICAgICBPVkVSTEFQUzwvbGl0 ZXJhbD4gY29sdW1ucyBvZiB0aGUgY29uc3RyYWludCBjYW4gYmUgYW55IHR5cGUgdGhhdCBj YW4gYmUKLSAgICAgIGNvbXBhcmVkIGZvciBlcXVhbGl0eSBpbiBhIEdpU1QgaW5kZXguICBC eSBkZWZhdWx0LCBvbmx5IHJhbmdlIHR5cGVzIGFyZQotICAgICAgc3VwcG9ydGVkLCBidXQg eW91IGNhbiB1c2Ugb3RoZXIgdHlwZXMgYnkgYWRkaW5nIHRoZSA8eHJlZgotICAgICAgbGlu a2VuZD0iYnRyZWUtZ2lzdCIvPiBleHRlbnNpb24gKHdoaWNoIGlzIHRoZSBleHBlY3RlZCB3 YXkgdG8gdXNlIHRoaXMKLSAgICAgIGZlYXR1cmUpLgorICAgICAgbXVzdCBoYXZlIGEgcmFu Z2Ugb3IgbXVsdGlyYW5nZSB0eXBlLiAgRW1wdHkgcmFuZ2VzL211bHRpcmFuZ2VzIGFyZQor ICAgICAgbm90IHBlcm1pdHRlZC4gIFRoZSBub24tPGxpdGVyYWw+V0lUSE9VVCBPVkVSTEFQ UzwvbGl0ZXJhbD4gY29sdW1ucyBvZgorICAgICAgdGhlIGNvbnN0cmFpbnQgY2FuIGJlIGFu eSB0eXBlIHRoYXQgY2FuIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eSBpbiBhCisgICAgICBH aVNUIGluZGV4LiAgQnkgZGVmYXVsdCwgb25seSByYW5nZSB0eXBlcyBhcmUgc3VwcG9ydGVk LCBidXQgeW91IGNhbiB1c2UKKyAgICAgIG90aGVyIHR5cGVzIGJ5IGFkZGluZyB0aGUgPHhy ZWYgbGlua2VuZD0iYnRyZWUtZ2lzdCIvPiBleHRlbnNpb24gKHdoaWNoCisgICAgICBpcyB0 aGUgZXhwZWN0ZWQgd2F5IHRvIHVzZSB0aGlzIGZlYXR1cmUpLgogICAgICA8L3BhcmE+CiAK ICAgICAgPHBhcmE+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKaW5kZXggNWM0OGU1NzI4ZTkuLjJmZmRk N2EzY2NjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCkBAIC0xMzk0LDcgKzEzOTQsOCBAQCBpbmRl eF9jb25jdXJyZW50bHlfY3JlYXRlX2NvcHkoUmVsYXRpb24gaGVhcFJlbGF0aW9uLCBPaWQg b2xkSW5kZXhJZCwKIAkJCQkJCQlvbGRJbmZvLT5paV9OdWxsc05vdERpc3RpbmN0LAogCQkJ CQkJCWZhbHNlLAkvKiBub3QgcmVhZHkgZm9yIGluc2VydHMgKi8KIAkJCQkJCQl0cnVlLAot CQkJCQkJCWluZGV4UmVsYXRpb24tPnJkX2luZGFtLT5hbXN1bW1hcml6aW5nKTsKKwkJCQkJ CQlpbmRleFJlbGF0aW9uLT5yZF9pbmRhbS0+YW1zdW1tYXJpemluZywKKwkJCQkJCQlvbGRJ bmZvLT5paV9XaXRob3V0T3ZlcmxhcHMpOwogCiAJLyoKIAkgKiBFeHRyYWN0IHRoZSBsaXN0 IG9mIGNvbHVtbiBuYW1lcyBhbmQgdGhlIGNvbHVtbiBudW1iZXJzIGZvciB0aGUgbmV3CkBA IC0yNDMxLDcgKzI0MzIsOCBAQCBCdWlsZEluZGV4SW5mbyhSZWxhdGlvbiBpbmRleCkKIAkJ CQkJICAgaW5kZXhTdHJ1Y3QtPmluZG51bGxzbm90ZGlzdGluY3QsCiAJCQkJCSAgIGluZGV4 U3RydWN0LT5pbmRpc3JlYWR5LAogCQkJCQkgICBmYWxzZSwKLQkJCQkJICAgaW5kZXgtPnJk X2luZGFtLT5hbXN1bW1hcml6aW5nKTsKKwkJCQkJICAgaW5kZXgtPnJkX2luZGFtLT5hbXN1 bW1hcml6aW5nLAorCQkJCQkgICBpbmRleFN0cnVjdC0+aW5kaXNleGNsdXNpb24gJiYgaW5k ZXhTdHJ1Y3QtPmluZGlzdW5pcXVlKTsKIAogCS8qIGZpbGwgaW4gYXR0cmlidXRlIG51bWJl cnMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgbnVtQXR0czsgaSsrKQpAQCAtMjQ5MCw3ICsyNDky LDggQEAgQnVpbGREdW1teUluZGV4SW5mbyhSZWxhdGlvbiBpbmRleCkKIAkJCQkJICAgaW5k ZXhTdHJ1Y3QtPmluZG51bGxzbm90ZGlzdGluY3QsCiAJCQkJCSAgIGluZGV4U3RydWN0LT5p bmRpc3JlYWR5LAogCQkJCQkgICBmYWxzZSwKLQkJCQkJICAgaW5kZXgtPnJkX2luZGFtLT5h bXN1bW1hcml6aW5nKTsKKwkJCQkJICAgaW5kZXgtPnJkX2luZGFtLT5hbXN1bW1hcml6aW5n LAorCQkJCQkgICBpbmRleFN0cnVjdC0+aW5kaXNleGNsdXNpb24gJiYgaW5kZXhTdHJ1Y3Qt PmluZGlzdW5pcXVlKTsKIAogCS8qIGZpbGwgaW4gYXR0cmlidXRlIG51bWJlcnMgKi8KIAlm b3IgKGkgPSAwOyBpIDwgbnVtQXR0czsgaSsrKQpAQCAtMzIyNyw3ICszMjMwLDYgQEAgSW5k ZXhDaGVja0V4Y2x1c2lvbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJaW5kZXhJbmZvLT5p aV9QcmVkaWNhdGVTdGF0ZSA9IE5VTEw7CiB9CiAKLQogLyoKICAqIHZhbGlkYXRlX2luZGV4 IC0gc3VwcG9ydCBjb2RlIGZvciBjb25jdXJyZW50IGluZGV4IGJ1aWxkcwogICoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvaW5kZXhjbWRzLmMKaW5kZXggNDdlMTM5YjM4MjguLjI2MmE3NTEwNDg1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwpAQCAtMjQyLDcgKzI0Miw3IEBAIENoZWNr SW5kZXhDb21wYXRpYmxlKE9pZCBvbGRJZCwKIAkgKi8KIAlpbmRleEluZm8gPSBtYWtlSW5k ZXhJbmZvKG51bWJlck9mQXR0cmlidXRlcywgbnVtYmVyT2ZBdHRyaWJ1dGVzLAogCQkJCQkJ CSAgYWNjZXNzTWV0aG9kSWQsIE5JTCwgTklMLCBmYWxzZSwgZmFsc2UsCi0JCQkJCQkJICBm YWxzZSwgZmFsc2UsIGFtc3VtbWFyaXppbmcpOworCQkJCQkJCSAgZmFsc2UsIGZhbHNlLCBh bXN1bW1hcml6aW5nLCBpc1dpdGhvdXRPdmVybGFwcyk7CiAJdHlwZUlkcyA9IHBhbGxvY19h cnJheShPaWQsIG51bWJlck9mQXR0cmlidXRlcyk7CiAJY29sbGF0aW9uSWRzID0gcGFsbG9j X2FycmF5KE9pZCwgbnVtYmVyT2ZBdHRyaWJ1dGVzKTsKIAlvcGNsYXNzSWRzID0gcGFsbG9j X2FycmF5KE9pZCwgbnVtYmVyT2ZBdHRyaWJ1dGVzKTsKQEAgLTkxNSw3ICs5MTUsOCBAQCBE ZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAkJCQkJCQkgIHN0bXQtPm51bGxzX25vdF9kaXN0 aW5jdCwKIAkJCQkJCQkgICFjb25jdXJyZW50LAogCQkJCQkJCSAgY29uY3VycmVudCwKLQkJ CQkJCQkgIGFtaXNzdW1tYXJpemluZyk7CisJCQkJCQkJICBhbWlzc3VtbWFyaXppbmcsCisJ CQkJCQkJICBzdG10LT5pc3dpdGhvdXRvdmVybGFwcyk7CiAKIAl0eXBlSWRzID0gcGFsbG9j X2FycmF5KE9pZCwgbnVtYmVyT2ZBdHRyaWJ1dGVzKTsKIAljb2xsYXRpb25JZHMgPSBwYWxs b2NfYXJyYXkoT2lkLCBudW1iZXJPZkF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjSW5kZXhpbmcuYwppbmRleCA1OWFjZjY3YTM2YS4uNDMwNzc3N2Q2MmEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCisrKyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCkBAIC0xMTQsNiArMTE0LDggQEAKICNpbmNs dWRlICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5o IgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInV0aWxzL211bHRpcmFu Z2V0eXBlcy5oIgorI2luY2x1ZGUgInV0aWxzL3JhbmdldHlwZXMuaCIKICNpbmNsdWRlICJ1 dGlscy9zbmFwbWdyLmgiCiAKIC8qIHdhaXRNb2RlIGFyZ3VtZW50IHRvIGNoZWNrX2V4Y2x1 c2lvbl9vcl91bmlxdWVfY29uc3RyYWludCgpICovCkBAIC03MjAsNiArNzIyLDMxIEBAIGNo ZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludChSZWxhdGlvbiBoZWFwLCBSZWxh dGlvbiBpbmRleCwKIAkJY29uc3RyX3N0cmF0cyA9IGluZGV4SW5mby0+aWlfVW5pcXVlU3Ry YXRzOwogCX0KIAorCS8qCisJICogSWYgdGhpcyBpcyBhIFdJVEhPVVQgT1ZFUkxBUFMgY29u c3RyYWludCwKKwkgKiB3ZSBtdXN0IGFsc28gZm9yYmlkIGVtcHR5IHJhbmdlcy9tdWx0aXJh bmdlcy4KKwkgKiBUaGlzIG11c3QgaGFwcGVuIGJlZm9yZSB3ZSBsb29rIGZvciBOVUxMcyBi ZWxvdywKKwkgKiBvciBhIFVOSVFVRSBjb25zdHJhaW50IGNvdWxkIGluc2VydCBhbiBlbXB0 eQorCSAqIHJhbmdlIGFsb25nIHdpdGggYSBOVUxMIHNjYWxhciBwYXJ0LgorCSAqLworCWlm IChpbmRleEluZm8tPmlpX1dpdGhvdXRPdmVybGFwcykKKwl7CisJCS8qCisJCSAqIExvb2sg dXAgdGhlIHR5cGUgZnJvbSB0aGUgaGVhcCB0dXBsZSwKKwkJICogYnV0IGNoZWNrIHRoZSBE YXR1bSBmcm9tIHRoZSBpbmRleCB0dXBsZS4KKwkJICovCisJCUF0dHJOdW1iZXIgYXR0bm8g PSBpbmRleEluZm8tPmlpX0luZGV4QXR0ck51bWJlcnNbaW5kbmtleWF0dHMgLSAxXTsKKwor CQlpZiAoIWlzbnVsbFtpbmRua2V5YXR0cyAtIDFdKQorCQl7CisJCQlUdXBsZURlc2MgdHVw ZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IoaGVhcCk7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBh dHQgPSBUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGF0dG5vIC0gMSk7CisJCQlUeXBlQ2FjaGVF bnRyeSAqdHlwY2FjaGUgPSBsb29rdXBfdHlwZV9jYWNoZShhdHQtPmF0dHR5cGlkLCAwKTsK KwkJCUV4ZWNXaXRob3V0T3ZlcmxhcHNOb3RFbXB0eShoZWFwLCB2YWx1ZXNbaW5kbmtleWF0 dHMgLSAxXSwKKwkJCQkJCQkJCQl0eXBjYWNoZS0+dHlwdHlwZSwgYXR0LT5hdHR0eXBpZCk7 CisJCX0KKwl9CisKIAkvKgogCSAqIElmIGFueSBvZiB0aGUgaW5wdXQgdmFsdWVzIGFyZSBO VUxMLCBhbmQgdGhlIGluZGV4IHVzZXMgdGhlIGRlZmF1bHQKIAkgKiBudWxscy1hcmUtZGlz dGluY3QgbW9kZSwgdGhlIGNvbnN0cmFpbnQgY2hlY2sgaXMgYXNzdW1lZCB0byBwYXNzIChp LmUuLApAQCAtMTA5NywzICsxMTI0LDM2IEBAIGluZGV4X2V4cHJlc3Npb25fY2hhbmdlZF93 YWxrZXIoTm9kZSAqbm9kZSwgQml0bWFwc2V0ICphbGxVcGRhdGVkQ29scykKIAlyZXR1cm4g ZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBpbmRleF9leHByZXNzaW9uX2NoYW5nZWRf d2Fsa2VyLAogCQkJCQkJCQkgICh2b2lkICopIGFsbFVwZGF0ZWRDb2xzKTsKIH0KKworLyoK KyAqIEV4ZWNXaXRob3V0T3ZlcmxhcHNOb3RFbXB0eSAtIHJhaXNlIGFuIGVycm9yIGlmIHRo ZSB0dXBsZSBoYXMgYW4gZW1wdHkKKyAqIHJhbmdlIG9yIG11bHRpcmFuZ2UgaW4gdGhlIGdp dmVuIGF0dHJpYnV0ZS4KKyAqLwordm9pZAorRXhlY1dpdGhvdXRPdmVybGFwc05vdEVtcHR5 KFJlbGF0aW9uIHJlbCwgRGF0dW0gYXR0dmFsLCBPaWQgdHlwdHlwZSwgT2lkIGF0dHR5cGlk KQoreworCWJvb2wgaXNlbXB0eTsKKwlSYW5nZVR5cGUgKnI7CisJTXVsdGlyYW5nZVR5cGUg Km1yOworCisJc3dpdGNoICh0eXB0eXBlKQorCXsKKwkJY2FzZSBUWVBUWVBFX1JBTkdFOgor CQkJciA9IERhdHVtR2V0UmFuZ2VUeXBlUChhdHR2YWwpOworCQkJaXNlbXB0eSA9IFJhbmdl SXNFbXB0eShyKTsKKwkJCWJyZWFrOworCQljYXNlIFRZUFRZUEVfTVVMVElSQU5HRToKKwkJ CW1yID0gRGF0dW1HZXRNdWx0aXJhbmdlVHlwZVAoYXR0dmFsKTsKKwkJCWlzZW1wdHkgPSBN dWx0aXJhbmdlSXNFbXB0eShtcik7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWVsb2co RVJST1IsICJHb3QgdW5rbm93biB0eXBlIGZvciBXSVRIT1VUIE9WRVJMQVBTIGNvbHVtbjog JWQiLCBhdHR0eXBpZCk7CisJfQorCisJLyogUmVwb3J0IGEgQ0hFQ0tfVklPTEFUSU9OICov CisJaWYgKGlzZW1wdHkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9DSEVDS19WSU9MQVRJT04pLAorCQkJCSBlcnJtc2coIm5ldyByb3cgZm9yIHJlbGF0aW9u IFwiJXNcIiBjb250YWlucyBlbXB0eSBXSVRIT1VUIE9WRVJMQVBTIHZhbHVlIiwKKwkJCQkJ CVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7Cit9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9ub2Rlcy9tYWtlZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL21ha2VmdW5j cy5jCmluZGV4IDYxYWMxNzJhODU3Li45Y2FjM2MxYzI3YiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvbm9kZXMvbWFrZWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1 bmNzLmMKQEAgLTc2MCw3ICs3NjAsOCBAQCBtYWtlX2FuZHNfaW1wbGljaXQoRXhwciAqY2xh dXNlKQogSW5kZXhJbmZvICoKIG1ha2VJbmRleEluZm8oaW50IG51bWF0dHJzLCBpbnQgbnVt a2V5YXR0cnMsIE9pZCBhbW9pZCwgTGlzdCAqZXhwcmVzc2lvbnMsCiAJCQkgIExpc3QgKnBy ZWRpY2F0ZXMsIGJvb2wgdW5pcXVlLCBib29sIG51bGxzX25vdF9kaXN0aW5jdCwKLQkJCSAg Ym9vbCBpc3JlYWR5LCBib29sIGNvbmN1cnJlbnQsIGJvb2wgc3VtbWFyaXppbmcpCisJCQkg IGJvb2wgaXNyZWFkeSwgYm9vbCBjb25jdXJyZW50LCBib29sIHN1bW1hcml6aW5nLAorCQkJ ICBib29sIHdpdGhvdXRvdmVybGFwcykKIHsKIAlJbmRleEluZm8gICpuID0gbWFrZU5vZGUo SW5kZXhJbmZvKTsKIApAQCAtNzc1LDYgKzc3Niw3IEBAIG1ha2VJbmRleEluZm8oaW50IG51 bWF0dHJzLCBpbnQgbnVta2V5YXR0cnMsIE9pZCBhbW9pZCwgTGlzdCAqZXhwcmVzc2lvbnMs CiAJbi0+aWlfSW5kZXhVbmNoYW5nZWQgPSBmYWxzZTsKIAluLT5paV9Db25jdXJyZW50ID0g Y29uY3VycmVudDsKIAluLT5paV9TdW1tYXJpemluZyA9IHN1bW1hcml6aW5nOworCW4tPmlp X1dpdGhvdXRPdmVybGFwcyA9IHdpdGhvdXRvdmVybGFwczsKIAogCS8qIHN1bW1hcml6aW5n IGluZGV4ZXMgY2Fubm90IGNvbnRhaW4gbm9uLWtleSBhdHRyaWJ1dGVzICovCiAJQXNzZXJ0 KCFzdW1tYXJpemluZyB8fCAobnVta2V5YXR0cnMgPT0gbnVtYXR0cnMpKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4IDUzNDkyYzY0NGE5Li45MDVjOTg2ZGM2YSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC0yMzk3LDcgKzIzOTcsOCBA QCB0cmFuc2Zvcm1JbmRleENvbnN0cmFpbnQoQ29uc3RyYWludCAqY29uc3RyYWludCwgQ3Jl YXRlU3RtdENvbnRleHQgKmN4dCkKIAkgKiBGb3IgVU5JUVVFIGFuZCBQUklNQVJZIEtFWSwg d2UganVzdCBoYXZlIGEgbGlzdCBvZiBjb2x1bW4gbmFtZXMuCiAJICoKIAkgKiBNYWtlIHN1 cmUgcmVmZXJlbmNlZCBrZXlzIGV4aXN0LiAgSWYgd2UgYXJlIG1ha2luZyBhIFBSSU1BUlkg S0VZIGluZGV4LAotCSAqIGFsc28gbWFrZSBzdXJlIHRoZXkgYXJlIE5PVCBOVUxMLgorCSAq IGFsc28gbWFrZSBzdXJlIHRoZXkgYXJlIE5PVCBOVUxMLiAgRm9yIFdJVEhPVVQgT1ZFUkxB UFMgY29uc3RyYWludHMsCisJICogd2UgbWFrZSBzdXJlIHRoZSBsYXN0IHBhcnQgaXMgYSBy YW5nZSBvciBtdWx0aXJhbmdlLgogCSAqLwogCWVsc2UKIAl7CkBAIC0yNDA5LDYgKzI0MTAs NyBAQCB0cmFuc2Zvcm1JbmRleENvbnN0cmFpbnQoQ29uc3RyYWludCAqY29uc3RyYWludCwg Q3JlYXRlU3RtdENvbnRleHQgKmN4dCkKIAkJCUNvbHVtbkRlZiAgKmNvbHVtbiA9IE5VTEw7 CiAJCQlMaXN0Q2VsbCAgICpjb2x1bW5zOwogCQkJSW5kZXhFbGVtICAqaXBhcmFtOworCQkJ T2lkCQkJdHlwaWQgPSBJbnZhbGlkT2lkOwogCiAJCQkvKiBNYWtlIHN1cmUgcmVmZXJlbmNl ZCBjb2x1bW4gZXhpc3RzLiAqLwogCQkJZm9yZWFjaChjb2x1bW5zLCBjeHQtPmNvbHVtbnMp CkBAIC0yNDIwLDYgKzI0MjIsOSBAQCB0cmFuc2Zvcm1JbmRleENvbnN0cmFpbnQoQ29uc3Ry YWludCAqY29uc3RyYWludCwgQ3JlYXRlU3RtdENvbnRleHQgKmN4dCkKIAkJCQkJYnJlYWs7 CiAJCQkJfQogCQkJfQorCQkJaWYgKCFmb3VuZCkKKwkJCQljb2x1bW4gPSBOVUxMOworCiAJ CQlpZiAoZm91bmQpCiAJCQl7CiAJCQkJLyoKQEAgLTI0NzUsNiArMjQ4MCw3IEBAIHRyYW5z Zm9ybUluZGV4Q29uc3RyYWludChDb25zdHJhaW50ICpjb25zdHJhaW50LCBDcmVhdGVTdG10 Q29udGV4dCAqY3h0KQogCQkJCQkJaWYgKHN0cmNtcChrZXksIGluaG5hbWUpID09IDApCiAJ CQkJCQl7CiAJCQkJCQkJZm91bmQgPSB0cnVlOworCQkJCQkJCXR5cGlkID0gaW5oYXR0ci0+ YXR0dHlwaWQ7CiAKIAkJCQkJCQkvKgogCQkJCQkJCSAqIEl0J3MgdGVtcHRpbmcgdG8gc2V0 IGZvcmNlZF9ub3RfbnVsbCBpZiB0aGUKQEAgLTI1MjQsNiArMjUzMCw0NSBAQCB0cmFuc2Zv cm1JbmRleENvbnN0cmFpbnQoQ29uc3RyYWludCAqY29uc3RyYWludCwgQ3JlYXRlU3RtdENv bnRleHQgKmN4dCkKIAkJCQl9CiAJCQl9CiAKKwkJCS8qIFRoZSBXSVRIT1VUIE9WRVJMQVBT IHBhcnQgKGlmIGFueSkgbXVzdCBiZSBhIHJhbmdlIG9yIG11bHRpcmFuZ2UgdHlwZS4gKi8K KwkJCWlmIChjb25zdHJhaW50LT53aXRob3V0X292ZXJsYXBzICYmIGxjID09IGxpc3RfbGFz dF9jZWxsKGNvbnN0cmFpbnQtPmtleXMpKQorCQkJeworCQkJCWlmICghZm91bmQgJiYgY3h0 LT5pc2FsdGVyKQorCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogTG9vayB1cCB0aGUgY29sdW1u IHR5cGUgb24gZXhpc3RpbmcgdGFibGUuCisJCQkJCSAqIElmIHdlIGNhbid0IGZpbmQgaXQs IGxldCB0aGluZ3MgZmFpbCBpbiBEZWZpbmVJbmRleC4KKwkJCQkJICovCisJCQkJCVJlbGF0 aW9uIHJlbCA9IGN4dC0+cmVsOworCQkJCQlmb3IgKGludCBpID0gMDsgaSA8IHJlbC0+cmRf YXR0LT5uYXR0czsgaSsrKQorCQkJCQl7CisJCQkJCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRy ID0gVHVwbGVEZXNjQXR0cihyZWwtPnJkX2F0dCwgaSk7CisJCQkJCQljb25zdCBjaGFyICph dHRuYW1lOworCisJCQkJCQlpZiAoYXR0ci0+YXR0aXNkcm9wcGVkKQorCQkJCQkJCWJyZWFr OworCisJCQkJCQlhdHRuYW1lID0gTmFtZVN0cihhdHRyLT5hdHRuYW1lKTsKKwkJCQkJCWlm IChzdHJjbXAoYXR0bmFtZSwga2V5KSA9PSAwKQorCQkJCQkJeworCQkJCQkJCXR5cGlkID0g YXR0ci0+YXR0dHlwaWQ7CisJCQkJCQkJYnJlYWs7CisJCQkJCQl9CisJCQkJCX0KKwkJCQl9 CisJCQkJaWYgKGZvdW5kKQorCQkJCXsKKwkJCQkJaWYgKCFPaWRJc1ZhbGlkKHR5cGlkKSAm JiBjb2x1bW4pCisJCQkJCQl0eXBpZCA9IHR5cGVuYW1lVHlwZUlkKE5VTEwsIGNvbHVtbi0+ dHlwZU5hbWUpOworCisJCQkJCWlmICghT2lkSXNWYWxpZCh0eXBpZCkgfHwgISh0eXBlX2lz X3JhbmdlKHR5cGlkKSB8fCB0eXBlX2lzX211bHRpcmFuZ2UodHlwaWQpKSkKKwkJCQkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFU Q0gpLAorCQkJCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIGluIFdJVEhPVVQgT1ZFUkxB UFMgaXMgbm90IGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSB0eXBlIiwga2V5KSwKKwkJCQkJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihjeHQtPnBzdGF0ZSwgY29uc3RyYWludC0+bG9jYXRpb24p KSk7CisJCQkJfQorCQkJfQorCiAJCQkvKiBPSywgYWRkIGl0IHRvIHRoZSBpbmRleCBkZWZp bml0aW9uICovCiAJCQlpcGFyYW0gPSBtYWtlTm9kZShJbmRleEVsZW0pOwogCQkJaXBhcmFt LT5uYW1lID0gcHN0cmR1cChrZXkpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0 b3IvZXhlY3V0b3IuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKaW5kZXgg OTc3MDc1MmVhM2MuLjMxNWRkMjI1ZWZjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVj dXRvci9leGVjdXRvci5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgK QEAgLTY0Miw2ICs2NDIsOCBAQCBleHRlcm4gdm9pZCBjaGVja19leGNsdXNpb25fY29uc3Ry YWludChSZWxhdGlvbiBoZWFwLCBSZWxhdGlvbiBpbmRleCwKIAkJCQkJCQkJCSAgIEl0ZW1Q b2ludGVyIHR1cGxlaWQsCiAJCQkJCQkJCQkgICBjb25zdCBEYXR1bSAqdmFsdWVzLCBjb25z dCBib29sICppc251bGwsCiAJCQkJCQkJCQkgICBFU3RhdGUgKmVzdGF0ZSwgYm9vbCBuZXdJ bmRleCk7CitleHRlcm4gdm9pZCBFeGVjV2l0aG91dE92ZXJsYXBzTm90RW1wdHkoUmVsYXRp b24gcmVsLCBEYXR1bSBhdHR2YWwsCisJCQkJCQkJCQkJT2lkIHR5cHR5cGUsIE9pZCB0eXB0 eXBpZCk7CiAKIC8qCiAgKiBwcm90b3R5cGVzIGZyb20gZnVuY3Rpb25zIGluIGV4ZWNSZXBs aWNhdGlvbi5jCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IGNhYzY4NGQ5YjNhLi4xNWE0 MmQ0N2RmZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKKysr IGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTIwMiw2ICsyMDIsNyBAQCB0 eXBlZGVmIHN0cnVjdCBJbmRleEluZm8KIAlib29sCQlpaV9Db25jdXJyZW50OwogCWJvb2wJ CWlpX0Jyb2tlbkhvdENoYWluOwogCWJvb2wJCWlpX1N1bW1hcml6aW5nOworCWJvb2wJCWlp X1dpdGhvdXRPdmVybGFwczsKIAlpbnQJCQlpaV9QYXJhbGxlbFdvcmtlcnM7CiAJT2lkCQkJ aWlfQW07CiAJdm9pZAkgICAqaWlfQW1DYWNoZTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L25vZGVzL21ha2VmdW5jcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvbWFrZWZ1bmNzLmgKaW5k ZXggNTIwOWQzZGU4OWMuLjA3NjVlNWM1N2I0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9u b2Rlcy9tYWtlZnVuY3MuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9tYWtlZnVuY3MuaApA QCAtOTgsNyArOTgsNyBAQCBleHRlcm4gSW5kZXhJbmZvICptYWtlSW5kZXhJbmZvKGludCBu dW1hdHRycywgaW50IG51bWtleWF0dHJzLCBPaWQgYW1vaWQsCiAJCQkJCQkJCUxpc3QgKmV4 cHJlc3Npb25zLCBMaXN0ICpwcmVkaWNhdGVzLAogCQkJCQkJCQlib29sIHVuaXF1ZSwgYm9v bCBudWxsc19ub3RfZGlzdGluY3QsCiAJCQkJCQkJCWJvb2wgaXNyZWFkeSwgYm9vbCBjb25j dXJyZW50LAotCQkJCQkJCQlib29sIHN1bW1hcml6aW5nKTsKKwkJCQkJCQkJYm9vbCBzdW1t YXJpemluZywgYm9vbCB3aXRob3V0b3ZlcmxhcHMpOwogCiBleHRlcm4gTm9kZSAqbWFrZVN0 cmluZ0NvbnN0KGNoYXIgKnN0ciwgaW50IGxvY2F0aW9uKTsKIGV4dGVybiBEZWZFbGVtICpt YWtlRGVmRWxlbShjaGFyICpuYW1lLCBOb2RlICphcmcsIGludCBsb2NhdGlvbik7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAppbmRl eCA5NDIzNDc1ODU5OC4uOTNiN2MxNDAxNTggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dApAQCAtMjcsOCArMjcsOSBAQCBDUkVB VEUgVEFCTEUgdGVtcG9yYWxfcm5nICgKIAl2YWxpZF9hdCBURVhULAogCUNPTlNUUkFJTlQg dGVtcG9yYWxfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKICk7Ci1FUlJPUjogIGRhdGEgdHlwZSB0ZXh0IGhhcyBubyBkZWZhdWx0IG9wZXJh dG9yIGNsYXNzIGZvciBhY2Nlc3MgbWV0aG9kICJnaXN0IgotSElOVDogIFlvdSBtdXN0IHNw ZWNpZnkgYW4gb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBpbmRleCBvciBkZWZpbmUgYSBkZWZh dWx0IG9wZXJhdG9yIGNsYXNzIGZvciB0aGUgZGF0YSB0eXBlLgorRVJST1I6ICBjb2x1bW4g InZhbGlkX2F0IiBpbiBXSVRIT1VUIE9WRVJMQVBTIGlzIG5vdCBhIHJhbmdlIG9yIG11bHRp cmFuZ2UgdHlwZQorTElORSA0OiAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1UuLi4KKyAgICAgICAgIF4KIC0tIFBLIHdpdGgg b25lIGNvbHVtbiBwbHVzIGEgcmFuZ2U6CiBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nICgK IAktLSBTaW5jZSB3ZSBjYW4ndCBkZXBlbmQgb24gaGF2aW5nIGJ0cmVlX2dpc3QgaGVyZSwK QEAgLTIzOCw4ICsyMzksOSBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCiAJdmFs aWRfYXQgVEVYVCwKIAlDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5JUVVFIChpZCwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKICk7Ci1FUlJPUjogIGRhdGEgdHlwZSB0ZXh0 IGhhcyBubyBkZWZhdWx0IG9wZXJhdG9yIGNsYXNzIGZvciBhY2Nlc3MgbWV0aG9kICJnaXN0 IgotSElOVDogIFlvdSBtdXN0IHNwZWNpZnkgYW4gb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBp bmRleCBvciBkZWZpbmUgYSBkZWZhdWx0IG9wZXJhdG9yIGNsYXNzIGZvciB0aGUgZGF0YSB0 eXBlLgorRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiBpbiBXSVRIT1VUIE9WRVJMQVBTIGlz IG5vdCBhIHJhbmdlIG9yIG11bHRpcmFuZ2UgdHlwZQorTElORSA0OiAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ybmczX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1YuLi4KKyAg ICAgICAgIF4KIC0tIFVOSVFVRSB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIHJhbmdlOgogQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAogCWlkIGludDRyYW5nZSwKQEAgLTM5Myw2ICsz OTUsMTIgQEAgQkVHSU47CiBFUlJPUjogIGNvdWxkIG5vdCBjcmVhdGUgZXhjbHVzaW9uIGNv bnN0cmFpbnQgInRlbXBvcmFsX3JuZ19wayIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0 KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDItMDMpKSBjb25mbGljdHMgd2l0aCBrZXkg KGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KSkuCiBST0xM QkFDSzsKKy0tIHJlamVjdHMgZW1wdHk6CitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgJ2VtcHR5Jyk7CisgIEFM VEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsg UFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0VSUk9SOiAg bmV3IHJvdyBmb3IgcmVsYXRpb24gInRlbXBvcmFsX3JuZyIgY29udGFpbnMgZW1wdHkgV0lU SE9VVCBPVkVSTEFQUyB2YWx1ZQorUk9MTEJBQ0s7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9y bmcgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmc7CiAt LQpAQCAtNDEzLDYgKzQyMSw5IEBAIERFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChu dWxsLCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KSkuCiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBOVUxMKTsKIEVSUk9SOiAgbnVs bCB2YWx1ZSBpbiBjb2x1bW4gInZhbGlkX2F0IiBvZiByZWxhdGlvbiAidGVtcG9yYWxfcm5n IiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CiBERVRBSUw6ICBGYWlsaW5nIHJvdyBj b250YWlucyAoWzMsNCksIG51bGwpLgorLS0gcmVqZWN0cyBlbXB0eToKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsICdlbXB0eScp OworRVJST1I6ICBuZXcgcm93IGZvciByZWxhdGlvbiAidGVtcG9yYWxfcm5nIiBjb250YWlu cyBlbXB0eSBXSVRIT1VUIE9WRVJMQVBTIHZhbHVlCiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3JuZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAgIGlkICAgfCAgICAgICAgdmFsaWRfYXQg ICAgICAgICAKIC0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDcxLDYg KzQ4MiwxMiBAQCBTRVQgICAgIGlkID0gJ1sxLDIpJywKIFdIRVJFICAgaWQgPSAnWzIxLDIy KSc7CiBFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJ2YWxpZF9hdCIgb2YgcmVsYXRp b24gInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWludAogREVUQUlM OiAgRmFpbGluZyByb3cgY29udGFpbnMgKFsxLDIpLCBudWxsKS4KKy0tIHJlamVjdHMgZW1w dHk6CitVUERBVEUgIHRlbXBvcmFsX3JuZworU0VUICAgICBpZCA9ICdbMSwyKScsCisgICAg ICAgIHZhbGlkX2F0ID0gJ2VtcHR5JworV0hFUkUgICBpZCA9ICdbMjEsMjIpJzsKK0VSUk9S OiAgbmV3IHJvdyBmb3IgcmVsYXRpb24gInRlbXBvcmFsX3JuZyIgY29udGFpbnMgZW1wdHkg V0lUSE9VVCBPVkVSTEFQUyB2YWx1ZQogU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OwogICAgaWQgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICAKIC0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC01MDMsNiArNTIw LDEyIEBAIEJFR0lOOwogRVJST1I6ICBjb3VsZCBub3QgY3JlYXRlIGV4Y2x1c2lvbiBjb25z dHJhaW50ICJ0ZW1wb3JhbF9ybmczX3VxIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wMi0wMykpIGNvbmZsaWN0cyB3aXRoIGtleSAo aWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpKS4KIFJPTExC QUNLOworLS0gcmVqZWN0cyBlbXB0eToKK0JFR0lOOworICBJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgJ2VtcHR5Jyk7CisgIEFM VEVSIFRBQkxFIHRlbXBvcmFsX3JuZzMgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM191 cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0VSUk9SOiAgbmV3 IHJvdyBmb3IgcmVsYXRpb24gInRlbXBvcmFsX3JuZzMiIGNvbnRhaW5zIGVtcHR5IFdJVEhP VVQgT1ZFUkxBUFMgdmFsdWUKK1JPTExCQUNLOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5n MyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMzsKIC0tCkBA IC01MTksNiArNTQyLDkgQEAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMyw0KScsIE5VTEwpOwogSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAxLTA1JykpOwogRVJST1I6ICBjb25mbGljdGluZyBrZXkgdmFsdWUgdmlv bGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX3JuZzNfdXEiCiBERVRBSUw6 ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KSkg Y29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIw MTgtMDEtMDIsMjAxOC0wMi0wMykpLgorLS0gcmVqZWN0cyBlbXB0eToKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCAnZW1wdHkn KTsKK0VSUk9SOiAgbmV3IHJvdyBmb3IgcmVsYXRpb24gInRlbXBvcmFsX3JuZzMiIGNvbnRh aW5zIGVtcHR5IFdJVEhPVVQgT1ZFUkxBUFMgdmFsdWUKIFNFTEVDVCAqIEZST00gdGVtcG9y YWxfcm5nMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAgIGlkICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICAKIC0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTc2 LDYgKzYwMiwxNyBAQCBTRVQgICAgIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAzLTAx JywgJzIwMTgtMDUtMDUnKQogV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IElT IE5VTEw7CiBFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNp b24gY29uc3RyYWludCAidGVtcG9yYWxfcm5nM191cSIKIERFVEFJTDogIEtleSAoaWQsIHZh bGlkX2F0KT0oWzEsMiksIFsyMDE4LTAzLTAxLDIwMTgtMDUtMDUpKSBjb25mbGljdHMgd2l0 aCBleGlzdGluZyBrZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMy0wMywyMDE4 LTA0LTA0KSkuCistLSByZWplY3RzIGVtcHR5OgorVVBEQVRFICB0ZW1wb3JhbF9ybmczCitT RVQgICAgIHZhbGlkX2F0ID0gJ2VtcHR5JworV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZh bGlkX2F0IElTIE5VTEw7CitFUlJPUjogIG5ldyByb3cgZm9yIHJlbGF0aW9uICJ0ZW1wb3Jh bF9ybmczIiBjb250YWlucyBlbXB0eSBXSVRIT1VUIE9WRVJMQVBTIHZhbHVlCistLSBzdGls bCByZWplY3RzIGVtcHR5IHdoZW4gc2NhbGFyIHBhcnQgaXMgTlVMTDoKK1VQREFURSAgdGVt cG9yYWxfcm5nMworU0VUICAgICBpZCA9IE5VTEwsCisgICAgICAgIHZhbGlkX2F0ID0gJ2Vt cHR5JworV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IElTIE5VTEw7CitFUlJP UjogIG5ldyByb3cgZm9yIHJlbGF0aW9uICJ0ZW1wb3JhbF9ybmczIiBjb250YWlucyBlbXB0 eSBXSVRIT1VUIE9WRVJMQVBTIHZhbHVlCiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZzMg T1JERVIgQlkgaWQsIHZhbGlkX2F0OwogICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgCiAtLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTYwNiw2ICs2NDMs MTIgQEAgQkVHSU47CiBFUlJPUjogIGNvdWxkIG5vdCBjcmVhdGUgZXhjbHVzaW9uIGNvbnN0 cmFpbnQgInRlbXBvcmFsX21sdHJuZ19wayIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0 KT0oWzEsMiksIHtbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKX0pIGNvbmZsaWN0cyB3aXRoIGtl eSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KX0pLgog Uk9MTEJBQ0s7CistLSByZWplY3RzIGVtcHR5OgorQkVHSU47CisgIElOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsICd7fScpOwor ICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmcgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf bWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7 CitFUlJPUjogIG5ldyByb3cgZm9yIHJlbGF0aW9uICJ0ZW1wb3JhbF9tbHRybmciIGNvbnRh aW5zIGVtcHR5IFdJVEhPVVQgT1ZFUkxBUFMgdmFsdWUKK1JPTExCQUNLOwogQUxURVIgVEFC TEUgdGVtcG9yYWxfbWx0cm5nIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZ19wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOwogREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nOwogLS0KQEAgLTYyNiw2ICs2NjksOSBAQCBERVRBSUw6ICBG YWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpfSku CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzMsNCknLCBOVUxMKTsKIEVSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4gInZhbGlkX2F0 IiBvZiByZWxhdGlvbiAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBub3QtbnVsbCBjb25z dHJhaW50CiBERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoWzMsNCksIG51bGwpLgor LS0gcmVqZWN0cyBlbXB0eToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsICd7fScpOworRVJST1I6ICBuZXcgcm93IGZvciBy ZWxhdGlvbiAidGVtcG9yYWxfbWx0cm5nIiBjb250YWlucyBlbXB0eSBXSVRIT1VUIE9WRVJM QVBTIHZhbHVlCiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJuZyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CiAgIGlkICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIAogLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTY4NCw2ICs3MzAsMTIgQEAgU0VU ICAgICBpZCA9ICdbMSwyKScsCiBXSEVSRSAgIGlkID0gJ1syMSwyMiknOwogRVJST1I6ICBu dWxsIHZhbHVlIGluIGNvbHVtbiAidmFsaWRfYXQiIG9mIHJlbGF0aW9uICJ0ZW1wb3JhbF9t bHRybmciIHZpb2xhdGVzIG5vdC1udWxsIGNvbnN0cmFpbnQKIERFVEFJTDogIEZhaWxpbmcg cm93IGNvbnRhaW5zIChbMSwyKSwgbnVsbCkuCistLSByZWplY3RzIGVtcHR5OgorVVBEQVRF ICB0ZW1wb3JhbF9tbHRybmcKK1NFVCAgICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2YWxp ZF9hdCA9ICd7fScKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CitFUlJPUjogIG5ldyByb3cg Zm9yIHJlbGF0aW9uICJ0ZW1wb3JhbF9tbHRybmciIGNvbnRhaW5zIGVtcHR5IFdJVEhPVVQg T1ZFUkxBUFMgdmFsdWUKIFNFTEVDVCAqIEZST00gdGVtcG9yYWxfbWx0cm5nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKICAgIGlkICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAK IC0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTcxNiw2ICs3Njgs MTIgQEAgQkVHSU47CiBFUlJPUjogIGNvdWxkIG5vdCBjcmVhdGUgZXhjbHVzaW9uIGNvbnN0 cmFpbnQgInRlbXBvcmFsX21sdHJuZzNfdXEiCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9h dCk9KFsxLDIpLCB7WzIwMTgtMDEtMDIsMjAxOC0wMi0wMyl9KSBjb25mbGljdHMgd2l0aCBr ZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMS0wNSl9KS4K IFJPTExCQUNLOworLS0gcmVqZWN0cyBlbXB0eToKK0JFR0lOOworICBJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgJ3t9Jyk7 CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZzMgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfbWx0cm5nM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsK K0VSUk9SOiAgbmV3IHJvdyBmb3IgcmVsYXRpb24gInRlbXBvcmFsX21sdHJuZzMiIGNvbnRh aW5zIGVtcHR5IFdJVEhPVVQgT1ZFUkxBUFMgdmFsdWUKK1JPTExCQUNLOwogQUxURVIgVEFC TEUgdGVtcG9yYWxfbWx0cm5nMyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmczX3Vx IFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOwogREVMRVRFIEZST00g dGVtcG9yYWxfbWx0cm5nMzsKIC0tCkBAIC03MzIsNiArNzkwLDkgQEAgSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIE5VTEwp OwogSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAxLTA1JykpKTsKIEVSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4 Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9tbHRybmczX3VxIgogREVUQUlMOiAgS2V5 IChpZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpfSkgY29u ZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4 LTAxLTAyLDIwMTgtMDItMDMpfSkuCistLSByZWplY3RzIGVtcHR5OgorSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsICd7fScp OworRVJST1I6ICBuZXcgcm93IGZvciByZWxhdGlvbiAidGVtcG9yYWxfbWx0cm5nMyIgY29u dGFpbnMgZW1wdHkgV0lUSE9VVCBPVkVSTEFQUyB2YWx1ZQogU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9tbHRybmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKICAgaWQgICB8ICAgICAgICAg dmFsaWRfYXQgICAgICAgICAgCiAtLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpAQCAtNzg5LDYgKzg1MCwxNyBAQCBTRVQgICAgIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgtMDUtMDUnKSkKIFdIRVJFICAgaWQg PSAnWzEsMiknIEFORCB2YWxpZF9hdCBJUyBOVUxMOwogRVJST1I6ICBjb25mbGljdGluZyBr ZXkgdmFsdWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX21sdHJu ZzNfdXEiCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCB7WzIwMTgtMDMt MDEsMjAxOC0wNS0wNSl9KSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkgKGlkLCB2YWxp ZF9hdCk9KFsxLDIpLCB7WzIwMTgtMDMtMDMsMjAxOC0wNC0wNCl9KS4KKy0tIHJlamVjdHMg ZW1wdHk6CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMKK1NFVCAgICAgdmFsaWRfYXQgPSAn e30nCitXSEVSRSAgIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgSVMgTlVMTDsKK0VSUk9S OiAgbmV3IHJvdyBmb3IgcmVsYXRpb24gInRlbXBvcmFsX21sdHJuZzMiIGNvbnRhaW5zIGVt cHR5IFdJVEhPVVQgT1ZFUkxBUFMgdmFsdWUKKy0tIHN0aWxsIHJlamVjdHMgZW1wdHkgd2hl biBzY2FsYXIgcGFydCBpcyBOVUxMOgorVVBEQVRFICB0ZW1wb3JhbF9tbHRybmczCitTRVQg ICAgIGlkID0gTlVMTCwKKyAgICAgICAgdmFsaWRfYXQgPSAne30nCitXSEVSRSAgIGlkID0g J1sxLDIpJyBBTkQgdmFsaWRfYXQgSVMgTlVMTDsKK0VSUk9SOiAgbmV3IHJvdyBmb3IgcmVs YXRpb24gInRlbXBvcmFsX21sdHJuZzMiIGNvbnRhaW5zIGVtcHR5IFdJVEhPVVQgT1ZFUkxB UFMgdmFsdWUKIFNFTEVDVCAqIEZST00gdGVtcG9yYWxfbWx0cm5nMyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CiAgIGlkICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIAogLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv d2l0aG91dF9vdmVybGFwcy5zcWwKaW5kZXggMzZiM2U2ZGMwMmEuLmFlZjEzMGVlNjU1IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbApAQCAtMjY0 LDYgKzI2NCwxMSBAQCBCRUdJTjsKICAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDEtMDUnKSk7CiAgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKTsKIFJPTExCQUNLOworLS0gcmVqZWN0cyBlbXB0eToKK0JFR0lOOworICBJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCAn ZW1wdHknKTsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5nIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpOworUk9MTEJBQ0s7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmcgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUyk7CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmc7CiAKQEAgLTI4MSw2ICsyODYs OCBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLAogSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDEtMDUnKSk7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTIChOVUxMLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w MS0wNScpKTsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMyw0KScsIE5VTEwpOworLS0gcmVqZWN0cyBlbXB0eToKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsICdlbXB0eScpOwog U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCiAt LQpAQCAtMzE5LDYgKzMyNiwxMSBAQCBVUERBVEUgIHRlbXBvcmFsX3JuZwogU0VUICAgICBp ZCA9ICdbMSwyKScsCiAgICAgICAgIHZhbGlkX2F0ID0gTlVMTAogV0hFUkUgICBpZCA9ICdb MjEsMjIpJzsKKy0tIHJlamVjdHMgZW1wdHk6CitVUERBVEUgIHRlbXBvcmFsX3JuZworU0VU ICAgICBpZCA9ICdbMSwyKScsCisgICAgICAgIHZhbGlkX2F0ID0gJ2VtcHR5JworV0hFUkUg ICBpZCA9ICdbMjEsMjIpJzsKIFNFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKIAogLS0KQEAgLTM0NSw2ICszNTcsMTEgQEAgQkVHSU47CiAgIElO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMikn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKICAgQUxURVIgVEFC TEUgdGVtcG9yYWxfcm5nMyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxIFVOSVFV RSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOwogUk9MTEJBQ0s7CistLSByZWpl Y3RzIGVtcHR5OgorQkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCAnZW1wdHknKTsKKyAgQUxURVIgVEFCTEUgdGVt cG9yYWxfcm5nMyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxIFVOSVFVRSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworUk9MTEJBQ0s7CiBBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ybmczIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5JUVVFIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmczOwogCkBAIC0zNjIsNiArMzc5LDggQEAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIE5VTEwpOwogCiAtLSBzaG91bGQgZmFp bDoKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKKy0tIHJl amVjdHMgZW1wdHk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1szLDQpJywgJ2VtcHR5Jyk7CiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Ju ZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCiAtLQpAQCAtMzk5LDYgKzQxOCwxNSBAQCBT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogVVBE QVRFICB0ZW1wb3JhbF9ybmczCiBTRVQgICAgIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4 LTAzLTAxJywgJzIwMTgtMDUtMDUnKQogV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlk X2F0IElTIE5VTEw7CistLSByZWplY3RzIGVtcHR5OgorVVBEQVRFICB0ZW1wb3JhbF9ybmcz CitTRVQgICAgIHZhbGlkX2F0ID0gJ2VtcHR5JworV0hFUkUgICBpZCA9ICdbMSwyKScgQU5E IHZhbGlkX2F0IElTIE5VTEw7CistLSBzdGlsbCByZWplY3RzIGVtcHR5IHdoZW4gc2NhbGFy IHBhcnQgaXMgTlVMTDoKK1VQREFURSAgdGVtcG9yYWxfcm5nMworU0VUICAgICBpZCA9IE5V TEwsCisgICAgICAgIHZhbGlkX2F0ID0gJ2VtcHR5JworV0hFUkUgICBpZCA9ICdbMSwyKScg QU5EIHZhbGlkX2F0IElTIE5VTEw7CiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZzMgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOwogCkBAIC00 MjEsNiArNDQ5LDExIEBAIEJFR0lOOwogICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CiAgIEFMVEVSIFRBQkxFIHRlbXBv cmFsX21sdHJuZyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmdfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKIFJPTExCQUNLOworLS0gcmVq ZWN0cyBlbXB0eToKK0JFR0lOOworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCAne30nKTsKKyAgQUxURVIgVEFCTEUgdGVt cG9yYWxfbWx0cm5nIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZ19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworUk9MTEJBQ0s7CiBBTFRF UiBUQUJMRSB0ZW1wb3JhbF9tbHRybmcgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5n X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CiBERUxF VEUgRlJPTSB0ZW1wb3JhbF9tbHRybmc7CiAKQEAgLTQzOCw2ICs0NzEsOCBAQCBJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBk YXRlbXVsdGlyYW5nZShkYXRlcgogSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOwogSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVMTCwgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOwogSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CistLSBy ZWplY3RzIGVtcHR5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1szLDQpJywgJ3t9Jyk7CiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21s dHJuZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAKIC0tCkBAIC00NzYsNiArNTExLDExIEBA IFVQREFURSAgdGVtcG9yYWxfbWx0cm5nCiBTRVQgICAgIGlkID0gJ1sxLDIpJywKICAgICAg ICAgdmFsaWRfYXQgPSBOVUxMCiBXSEVSRSAgIGlkID0gJ1syMSwyMiknOworLS0gcmVqZWN0 cyBlbXB0eToKK1VQREFURSAgdGVtcG9yYWxfbWx0cm5nCitTRVQgICAgIGlkID0gJ1sxLDIp JywKKyAgICAgICAgdmFsaWRfYXQgPSAne30nCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOwog U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owog CiAtLQpAQCAtNTAyLDYgKzU0MiwxMSBAQCBCRUdJTjsKICAgSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKICAgQUxURVIg VEFCTEUgdGVtcG9yYWxfbWx0cm5nMyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmcz X3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOwogUk9MTEJBQ0s7 CistLSByZWplY3RzIGVtcHR5OgorQkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCAne30nKTsKKyAgQUxURVIg VEFCTEUgdGVtcG9yYWxfbWx0cm5nMyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmcz X3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworUk9MTEJBQ0s7 CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmczIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X21sdHJuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CiBE RUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmczOwogCkBAIC01MTksNiArNTY0LDggQEAgSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0 KScsIE5VTEwpOwogCiAtLSBzaG91bGQgZmFpbDoKIElOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CistLSByZWplY3RzIGVt cHR5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMyw0KScsICd7fScpOwogU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmczIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKIAogLS0KQEAgLTU1Niw2ICs2MDMsMTUgQEAgU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9tbHRybmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIFVQREFU RSAgdGVtcG9yYWxfbWx0cm5nMwogU0VUICAgICB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMy0wMScsICcyMDE4LTA1LTA1JykpCiBXSEVSRSAgIGlkID0g J1sxLDIpJyBBTkQgdmFsaWRfYXQgSVMgTlVMTDsKKy0tIHJlamVjdHMgZW1wdHk6CitVUERB VEUgIHRlbXBvcmFsX21sdHJuZzMKK1NFVCAgICAgdmFsaWRfYXQgPSAne30nCitXSEVSRSAg IGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgSVMgTlVMTDsKKy0tIHN0aWxsIHJlamVjdHMg ZW1wdHkgd2hlbiBzY2FsYXIgcGFydCBpcyBOVUxMOgorVVBEQVRFICB0ZW1wb3JhbF9tbHRy bmczCitTRVQgICAgIGlkID0gTlVMTCwKKyAgICAgICAgdmFsaWRfYXQgPSAne30nCitXSEVS RSAgIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgSVMgTlVMTDsKIFNFTEVDVCAqIEZST00g dGVtcG9yYWxfbWx0cm5nMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBEUk9QIFRBQkxFIHRl bXBvcmFsX21sdHJuZzM7CiAKLS0gCjIuNDIuMAoK --------------GsheMzFFcGdccG4bvM4vwSCN Content-Type: text/x-patch; charset=UTF-8; name="v37-0004-Add-temporal-FOREIGN-KEY-contraints.patch" Content-Disposition: attachment; filename="v37-0004-Add-temporal-FOREIGN-KEY-contraints.patch" Content-Transfer-Encoding: base64 RnJvbSA5YjU3ZGZjNzk0ODBiZTQwZDhjMzMxMDMxZDAzNjZhODVjNjc3NDE0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFN1biwgMjQgTWFyIDIwMjQgMDc6Mzc6MTMgKzAx MDAKU3ViamVjdDogW1BBVENIIHYzNyA0LzhdIEFkZCB0ZW1wb3JhbCBGT1JFSUdOIEtFWSBj b250cmFpbnRzCgpBZGQgUEVSSU9EIGNsYXVzZSB0byBmb3JlaWduIGtleSBjb25zdHJhaW50 IGRlZmluaXRpb25zLiAgVGhpcyBpcwpzdXBwb3J0ZWQgZm9yIHJhbmdlIGFuZCBtdWx0aXJh bmdlIHR5cGVzLiAgVGVtcG9yYWwgZm9yZWlnbiBrZXlzIGNoZWNrCmZvciByYW5nZSBjb250 YWlubWVudCBpbnN0ZWFkIG9mIGVxdWFsaXR5LgoKVGhpcyBmZWF0dXJlIG1hdGNoZXMgdGhl IGJlaGF2aW9yIG9mIHRoZSBTUUwgc3RhbmRhcmQgdGVtcG9yYWwgZm9yZWlnbgprZXlzLCBi dXQgaXQgd29ya3Mgb24gUG9zdGdyZVNRTCdzIG5hdGl2ZSByYW5nZXMgaW5zdGVhZCBvZiBT UUwncwoicGVyaW9kcyIsIHdoaWNoIGRvbid0IGV4aXN0IGluIFBvc3RncmVTUUwgKHlldCku CgpSZWZlcmVuY2UgYWN0aW9ucyBPTiB7VVBEQVRFLERFTEVURX0ge0NBU0NBREUsU0VUIE5V TEwsU0VUIERFRkFVTFR9CmFyZSBub3Qgc3VwcG9ydGVkIHlldC4KLS0tCiAuLi4vYnRyZWVf Z2lzdC9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dCAgfCAgIDQ4ICsKIGNvbnRyaWIv YnRyZWVfZ2lzdC9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgICB8ICAgMjggKwogZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgMyArLQogZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwgICA0NSArLQog c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMgICAgICAgICAgIHwgICA1OCAr CiBzcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyAgICAgICAgICAgICAgfCAgIDMx ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAg MjI2ICsrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAg ICB8ICAgNDUgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jICAgICAg ICAgICB8ICAxNjggKystCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgICAg ICAgICAgICAgfCAgIDE3ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQu aCAgICAgICAgICAgfCAgIDIxICstCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9kZWZyZW0uaCAg ICAgICAgICAgICAgICAgfCAgICAyICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmggICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aCAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0 aG91dF9vdmVybGFwcy5vdXQgICAgIHwgMTA4OSArKysrKysrKysrKysrKysrLQogc3JjL3Rl c3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgICAgIHwgMTAzNiArKysrKysr KysrKysrKystCiAxNiBmaWxlcyBjaGFuZ2VkLCAyNzA0IGluc2VydGlvbnMoKyksIDExNiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQv d2l0aG91dF9vdmVybGFwcy5vdXQgYi9jb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvd2l0 aG91dF9vdmVybGFwcy5vdXQKaW5kZXggYmU1MmM1MjJlODkuLjE4ODU2OTAwZGVkIDEwMDY0 NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5v dXQKKysrIGIvY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMu b3V0CkBAIC00MiwzICs0Miw1MSBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVT CiAgICgxLCAnWzIwMDAtMDYtMDEsMjAwMS0wMS0wMSknKTsKIEVSUk9SOiAgY29uZmxpY3Rp bmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9y bmdfcGsiCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KDEsIFswNi0wMS0yMDAwLDAx LTAxLTIwMDEpKSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkgKGlkLCB2YWxpZF9hdCk9 KDEsIFswMS0wMS0yMDAwLDAxLTAxLTIwMDEpKS4KKy0tIEZvcmVpZ24ga2V5CitDUkVBVEUg VEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisgIGlkIGludGVnZXIsCisgIHZhbGlkX2F0 IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludGVnZXIsCisgIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK1xkIHRlbXBvcmFsX2ZrX3JuZzJy bmcKKyAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9ma19ybmcycm5nIgorICBD b2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tCisgaWQgICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAK KyB2YWxpZF9hdCAgfCBkYXRlcmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHBh cmVudF9pZCB8IGludGVnZXIgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitJbmRleGVz OgorICAgICJ0ZW1wb3JhbF9ma19ybmcycm5nX3BrIiBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitGb3JlaWduLWtleSBjb25zdHJhaW50czoKKyAgICAi dGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyhpZCwgUEVSSU9EIHZhbGlkX2F0 KQorCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFp bnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ma19ybmcycm5nX2ZrJzsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZF UkVOQ0VTIHRlbXBvcmFsX3JuZyhpZCwgUEVSSU9EIHZhbGlkX2F0KQorKDEgcm93KQorCist LSBva2F5CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIFZBTFVFUworICAoMSwg J1syMDAwLTAxLTAxLDIwMDEtMDEtMDEpJywgMSk7CistLSBva2F5IHNwYW5uaW5nIHR3byBw YXJlbnQgcmVjb3JkczoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgVkFMVUVT CisgICgyLCAnWzIwMDAtMDEtMDEsMjAwMi0wMS0wMSknLCAxKTsKKy0tIGtleSBpcyBtaXNz aW5nCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIFZBTFVFUworICAoMywgJ1sy MDAwLTAxLTAxLDIwMDEtMDEtMDEpJywgMyk7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUg b24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVu dF9pZCwgdmFsaWRfYXQpPSgzLCBbMDEtMDEtMjAwMCwwMS0wMS0yMDAxKSkgaXMgbm90IHBy ZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3JuZyIuCistLSBrZXkgZXhpc3QgYnV0IGlzIG91 dHNpZGUgcmFuZ2UKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgVkFMVUVTCisg ICg0LCAnWzIwMDEtMDEtMDEsMjAwMi0wMS0wMSknLCAyKTsKK0VSUk9SOiAgaW5zZXJ0IG9y IHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIgdmlvbGF0ZXMgZm9yZWln biBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIKK0RFVEFJTDogIEtl eSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KDIsIFswMS0wMS0yMDAxLDAxLTAxLTIwMDIpKSBp cyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcm5nIi4KKy0tIGtleSBleGlzdCBi dXQgaXMgcGFydGx5IG91dHNpZGUgcmFuZ2UKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgVkFMVUVTCisgICg1LCAnWzIwMDAtMDEtMDEsMjAwMi0wMS0wMSknLCAyKTsKK0VS Uk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19m ayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KDIsIFswMS0wMS0yMDAw LDAxLTAxLTIwMDIpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcm5nIi4K ZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9zcWwvd2l0aG91dF9vdmVybGFwcy5z cWwgYi9jb250cmliL2J0cmVlX2dpc3Qvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmluZGV4 IDQzM2M2MDlhYjIyLi5iMWI1ODFmY2FiYyAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9n aXN0L3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAorKysgYi9jb250cmliL2J0cmVlX2dpc3Qv c3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCkBAIC0yMywzICsyMywzMSBAQCBJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcgVkFMVUVTCiAtLSBzaG91bGQgZmFpbDoKIElOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyBWQUxVRVMKICAgKDEsICdbMjAwMC0wNi0wMSwyMDAxLTAxLTAxKScpOwor CistLSBGb3JlaWduIGtleQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAor ICBpZCBpbnRlZ2VyLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnRl Z2VyLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9h dCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkK Kyk7CitcZCB0ZW1wb3JhbF9ma19ybmcycm5nCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRk ZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9m a19ybmcycm5nX2ZrJzsKKworLS0gb2theQorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5n MnJuZyBWQUxVRVMKKyAgKDEsICdbMjAwMC0wMS0wMSwyMDAxLTAxLTAxKScsIDEpOworLS0g b2theSBzcGFubmluZyB0d28gcGFyZW50IHJlY29yZHM6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19ybmcycm5nIFZBTFVFUworICAoMiwgJ1syMDAwLTAxLTAxLDIwMDItMDEtMDEpJywg MSk7CistLSBrZXkgaXMgbWlzc2luZworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJu ZyBWQUxVRVMKKyAgKDMsICdbMjAwMC0wMS0wMSwyMDAxLTAxLTAxKScsIDMpOworLS0ga2V5 IGV4aXN0IGJ1dCBpcyBvdXRzaWRlIHJhbmdlCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19y bmcycm5nIFZBTFVFUworICAoNCwgJ1syMDAxLTAxLTAxLDIwMDItMDEtMDEpJywgMik7Cist LSBrZXkgZXhpc3QgYnV0IGlzIHBhcnRseSBvdXRzaWRlIHJhbmdlCitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19ybmcycm5nIFZBTFVFUworICAoNSwgJ1syMDAwLTAxLTAxLDIwMDItMDEt MDEpJywgMik7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDFlNTZlZGFhNzBiLi5iZmI5Nzg2NWUx OCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTI3MzYsNyArMjczNiw4IEBAIFNDUkFNLVNIQS0y NTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46 PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KICAgICAgICBU aGlzIGNvbnN0cmFpbnQgaXMgZGVmaW5lZCB3aXRoIDxsaXRlcmFsPldJVEhPVVQgT1ZFUkxB UFM8L2xpdGVyYWw+Ci0gICAgICAgKGZvciBwcmltYXJ5IGtleXMgYW5kIHVuaXF1ZSBjb25z dHJhaW50cykuCisgICAgICAgKGZvciBwcmltYXJ5IGtleXMgYW5kIHVuaXF1ZSBjb25zdHJh aW50cykgb3IgPGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPgorICAgICAgIChmb3IgZm9yZWln biBrZXlzKS4KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5kZXggOTg0NGQyM2JlNDAuLjMwMTUwZWViZmEw IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKQEAgLTgwLDcgKzgwLDcgQEAg Q1JFQVRFIFsgWyBHTE9CQUwgfCBMT0NBTCBdIHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5M T0dHRUQgXSBUQUJMRSBbIElGIE5PVCBFWEkKICAgVU5JUVVFIFsgTlVMTFMgWyBOT1QgXSBE SVNUSU5DVCBdICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1l PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gV0lUSE9VVCBPVkVSTEFQUyBdICkgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2Vh YmxlPiB8CiAgIFBSSU1BUlkgS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gV0lUSE9VVCBPVkVS TEFQUyBdICkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRl cnM8L3JlcGxhY2VhYmxlPiB8CiAgIEVYQ0xVREUgWyBVU0lORyA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+aW5kZXhfbWV0aG9kPC9yZXBsYWNlYWJsZT4gXSAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leGNsdWRlX2VsZW1lbnQ8L3JlcGxhY2VhYmxlPiBX SVRIIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcGVyYXRvcjwvcmVwbGFjZWFi bGU+IFssIC4uLiBdICkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3Bh cmFtZXRlcnM8L3JlcGxhY2VhYmxlPiBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnByZWRpY2F0ZTwvcmVwbGFjZWFibGU+ICkgXSB8Ci0gIEZPUkVJR04gS0VZ ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNl YWJsZT4gWywgLi4uIF0gKSBSRUZFUkVOQ0VTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yZWZ0YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdCisgIEZPUkVJ R04gS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9y ZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9EIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IF0gKSBSRUZFUkVOQ0VTIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZ0YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4g WywgLi4uIF0gWywgUEVSSU9EIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1 bW5fbmFtZTwvcmVwbGFjZWFibGU+IF0gKSBdCiAgICAgWyBNQVRDSCBGVUxMIHwgTUFUQ0gg UEFSVElBTCB8IE1BVENIIFNJTVBMRSBdIFsgT04gREVMRVRFIDxyZXBsYWNlYWJsZQogY2xh c3M9InBhcmFtZXRlciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4gXSBbIE9O IFVQREFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmZXJlbnRpYWxfYWN0 aW9uPC9yZXBsYWNlYWJsZT4gXSB9CiBbIERFRkVSUkFCTEUgfCBOT1QgREVGRVJSQUJMRSBd IFsgSU5JVElBTExZIERFRkVSUkVEIHwgSU5JVElBTExZIElNTUVESUFURSBdCkBAIC0xMTQ3 LDggKzExNDcsOCBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgPHZhcmxpc3Rl bnRyeSBpZD0ic3FsLWNyZWF0ZXRhYmxlLXBhcm1zLXJlZmVyZW5jZXMiPgogICAgIDx0ZXJt PjxsaXRlcmFsPlJFRkVSRU5DRVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJl ZnRhYmxlPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yZWZjb2x1bW48L3JlcGxhY2VhYmxlPiApIF0gWyBNQVRDSCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bWF0Y2h0eXBlPC9yZXBsYWNlYWJsZT4gXSBbIE9OIERFTEVURSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBs YWNlYWJsZT4gXSBbIE9OIFVQREFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4gXTwvbGl0ZXJhbD4gKGNvbHVtbiBj b25zdHJhaW50KTwvdGVybT4KIAotICAgPHRlcm0+PGxpdGVyYWw+Rk9SRUlHTiBLRVkgKCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxl PiBbLCAuLi4gXSApCi0gICAgUkVGRVJFTkNFUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cmVmdGFibGU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXQorICAgPHRl cm0+PGxpdGVyYWw+Rk9SRUlHTiBLRVkgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCBQRVJJT0QgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gXSAp CisgICAgUkVGRVJFTkNFUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmdGFi bGU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJl ZmNvbHVtbjwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBdICkgXQogICAg IFsgTUFUQ0ggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm1hdGNodHlwZTwvcmVw bGFjZWFibGU+IF0KICAgICBbIE9OIERFTEVURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4gXQogICAgIFsgT04gVVBE QVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZlcmVudGlhbF9hY3Rpb248 L3JlcGxhY2VhYmxlPiBdPC9saXRlcmFsPgpAQCAtMTE2NCw3ICsxMTY0LDMyIEBAIFdJVEgg KCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVy YWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgICBwcmltYXJ5IGtleSBvZiB0aGUgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZnRhYmxlPC9yZXBsYWNlYWJsZT4KICAgICAg IGlzIHVzZWQuICBPdGhlcndpc2UsIHRoZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4KICAgICAgIGxpc3QgbXVzdCByZWZlciB0byB0 aGUgY29sdW1ucyBvZiBhIG5vbi1kZWZlcnJhYmxlIHVuaXF1ZSBvciBwcmltYXJ5IGtleQot ICAgICAgY29uc3RyYWludCBvciBiZSB0aGUgY29sdW1ucyBvZiBhIG5vbi1wYXJ0aWFsIHVu aXF1ZSBpbmRleC4gIFRoZSB1c2VyCisgICAgICBjb25zdHJhaW50IG9yIGJlIHRoZSBjb2x1 bW5zIG9mIGEgbm9uLXBhcnRpYWwgdW5pcXVlIGluZGV4LgorICAgICA8L3BhcmE+CisKKyAg ICAgPHBhcmE+CisgICAgICBJZiB0aGUgbGFzdCBjb2x1bW4gaXMgbWFya2VkIHdpdGggPGxp dGVyYWw+UEVSSU9EPC9saXRlcmFsPiwgaXQgaXMKKyAgICAgIHRyZWF0ZWQgaW4gYSBzcGVj aWFsIHdheS4gIFdoaWxlIHRoZSBub24tPGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPgorICAg ICAgY29sdW1ucyBhcmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5IChhbmQgdGhlcmUgbXVzdCBi ZSBhdCBsZWFzdCBvbmUgb2YKKyAgICAgIHRoZW0pLCB0aGUgPGxpdGVyYWw+UEVSSU9EPC9s aXRlcmFsPiBjb2x1bW4gaXMgbm90LiAgSW5zdGVhZCwgdGhlCisgICAgICBjb25zdHJhaW50 IGlzIGNvbnNpZGVyZWQgc2F0aXNmaWVkIGlmIHRoZSByZWZlcmVuY2VkIHRhYmxlIGhhcyBt YXRjaGluZworICAgICAgcmVjb3JkcyAoYmFzZWQgb24gdGhlIG5vbi08bGl0ZXJhbD5QRVJJ T0Q8L2xpdGVyYWw+IHBhcnRzIG9mIHRoZSBrZXkpCisgICAgICB3aG9zZSBjb21iaW5lZCA8 bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+IHZhbHVlcyBjb21wbGV0ZWx5IGNvdmVyIHRoZQor ICAgICAgcmVmZXJlbmNpbmcgcmVjb3JkJ3MuICBJbiBvdGhlciB3b3JkcywgdGhlIHJlZmVy ZW5jZSBtdXN0IGhhdmUgYQorICAgICAgcmVmZXJlbnQgZm9yIGl0cyBlbnRpcmUgZHVyYXRp b24uICBUaGlzIGNvbHVtbiBtdXN0IGJlIGEgcmFuZ2Ugb3IKKyAgICAgIG11bHRpcmFuZ2Ug dHlwZS4gIEluIGFkZGl0aW9uLCB0aGUgcmVmZXJlbmNlZCB0YWJsZSBtdXN0IGhhdmUgYSBw cmltYXJ5CisgICAgICBrZXkgb3IgdW5pcXVlIGNvbnN0cmFpbnQgZGVjbGFyZWQgd2l0aCA8 bGl0ZXJhbD5XSVRIT1VUCisgICAgICBPVkVSTEFQUzwvbGl0ZXJhbD4uIEZpbmFsbHksIGlm IHRoZSBmb3JlaWduIGtleSBoYXMgYSBQRVJJT0QKKyAgICAgIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IHNwZWNpZmljYXRpb24K KyAgICAgIHRoZSBjb3JyZXNwb25kaW5nIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yZWZjb2x1bW48L3JlcGxhY2VhYmxlPiwKKyAgICAgIGlmIHByZXNlbnQsIG11c3QgYWxz byBiZSBtYXJrZWQgPGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPi4gIElmIHRoZQorICAgICAg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+ IGNsYXVzZSBpcyBvbWl0dGVkLAorICAgICAgYW5kIHRodXMgdGhlIHJlZnRhYmxlJ3MgcHJp bWFyeSBrZXkgY29uc3RyYWludCBjaG9zZW4sIHRoZSBwcmltYXJ5IGtleQorICAgICAgbXVz dCBoYXZlIGl0cyBmaW5hbCBjb2x1bW4gbWFya2VkIDxsaXRlcmFsPldJVEhPVVQgT1ZFUkxB UFM8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBUaGUg dXNlcgogICAgICAgbXVzdCBoYXZlIDxsaXRlcmFsPlJFRkVSRU5DRVM8L2xpdGVyYWw+IHBl cm1pc3Npb24gb24gdGhlIHJlZmVyZW5jZWQKICAgICAgIHRhYmxlIChlaXRoZXIgdGhlIHdo b2xlIHRhYmxlLCBvciB0aGUgc3BlY2lmaWMgcmVmZXJlbmNlZCBjb2x1bW5zKS4gIFRoZQog ICAgICAgYWRkaXRpb24gb2YgYSBmb3JlaWduIGtleSBjb25zdHJhaW50IHJlcXVpcmVzIGEK QEAgLTEyMzgsNiArMTI2MywxMCBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAg ICAgICAgIHZhbHVlcyBvZiB0aGUgcmVmZXJlbmNpbmcgY29sdW1uKHMpIHRvIHRoZSBuZXcg dmFsdWVzIG9mIHRoZQogICAgICAgICAgIHJlZmVyZW5jZWQgY29sdW1ucywgcmVzcGVjdGl2 ZWx5LgogICAgICAgICAgPC9wYXJhPgorCisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBJ biBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LCB0aGlzIG9wdGlvbiBpcyBub3Qgc3VwcG9ydGVk LgorICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFy bGlzdGVudHJ5PgogCkBAIC0xMjQ5LDYgKzEyNzgsMTAgQEAgV0lUSCAoIE1PRFVMVVMgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFi bGU+LCBSRU0KICAgICAgICAgICByZWZlcmVuY2luZyBjb2x1bW5zLCB0byBudWxsLiBBIHN1 YnNldCBvZiBjb2x1bW5zIGNhbiBvbmx5IGJlCiAgICAgICAgICAgc3BlY2lmaWVkIGZvciA8 bGl0ZXJhbD5PTiBERUxFVEU8L2xpdGVyYWw+IGFjdGlvbnMuCiAgICAgICAgICA8L3BhcmE+ CisKKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWlnbiBr ZXksIHRoaXMgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgICA8L3BhcmE+CiAg ICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAKQEAgLTEyNjIs NiArMTI5NSwxMCBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAgICAgIChU aGVyZSBtdXN0IGJlIGEgcm93IGluIHRoZSByZWZlcmVuY2VkIHRhYmxlIG1hdGNoaW5nIHRo ZSBkZWZhdWx0CiAgICAgICAgICAgdmFsdWVzLCBpZiB0aGV5IGFyZSBub3QgbnVsbCwgb3Ig dGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwuKQogICAgICAgICAgPC9wYXJhPgorCisgICAgICAg ICA8cGFyYT4KKyAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LCB0aGlzIG9w dGlvbiBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xp c3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgogICAgICAgPC92YXJpYWJsZWxpc3Q+ CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jCmluZGV4IDliZTA1MGNjZWU4Li4x ZTJkZjAzMWE4NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJh aW50LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKQEAgLTE1 LDYgKzE1LDcgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYWNjZXNz L2dlbmFtLmgiCisjaW5jbHVkZSAiYWNjZXNzL2dpc3QuaCIKICNpbmNsdWRlICJhY2Nlc3Mv aHR1cF9kZXRhaWxzLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3N5c2F0dHIuaCIKICNpbmNsdWRl ICJhY2Nlc3MvdGFibGUuaCIKQEAgLTEzNDksNiArMTM1MCw2MyBAQCBEZWNvbnN0cnVjdEZr Q29uc3RyYWludFJvdyhIZWFwVHVwbGUgdHVwbGUsIGludCAqbnVtZmtzLAogCSpudW1ma3Mg PSBudW1rZXlzOwogfQogCisvKgorICogRmluZEZrUGVyaW9kT3BlcnMgLQorICoKKyAqIExv b2tzIHVwIHRoZSBvcGVyYXRvciBvaWRzIHVzZWQgZm9yIHRoZSBQRVJJT0QgcGFydCBvZiBh IHRlbXBvcmFsIGZvcmVpZ24ga2V5LgorICogVGhlIG9wY2xhc3Mgc2hvdWxkIGJlIHRoZSBv cGNsYXNzIG9mIHRoYXQgUEVSSU9EIGVsZW1lbnQuCisgKiBFdmVyeXRoaW5nIGVsc2UgaXMg YW4gb3V0cHV0OiBjb250YWluZWRieW9wZXJvaWQgaXMgdGhlIENvbnRhaW5lZEJ5IG9wZXJh dG9yIGZvcgorICogdHlwZXMgbWF0Y2hpbmcgdGhlIFBFUklPRCBlbGVtZW50LgorICogYWdn ZWRjb250YWluZWRieW9wZXJvaWQgaXMgYWxzbyBhIENvbnRhaW5lZEJ5IG9wZXJhdG9yLAor ICogYnV0IG9uZSB3aG9zZSByaHMgaXMgYSBtdWx0aXJhbmdlLgorICogVGhhdCB3YXkgZm9y ZWlnbiBrZXlzIGNhbiBjb21wYXJlIGZrYXR0ciA8QCByYW5nZV9hZ2cocGthdHRyKS4KKyAq Lwordm9pZAorRmluZEZLUGVyaW9kT3BlcnMoT2lkIG9wY2xhc3MsCisJCQkJICBPaWQgKmNv bnRhaW5lZGJ5b3Blcm9pZCwKKwkJCQkgIE9pZCAqYWdnZWRjb250YWluZWRieW9wZXJvaWQp Cit7CisJT2lkCQkJb3BmYW1pbHkgPSBJbnZhbGlkT2lkOworCU9pZAkJCW9wY2ludHlwZSA9 IEludmFsaWRPaWQ7CisJU3RyYXRlZ3lOdW1iZXIgc3RyYXQ7CisKKwkvKiBNYWtlIHN1cmUg d2UgaGF2ZSBhIHJhbmdlIG9yIG11bHRpcmFuZ2UuICovCisJaWYgKGdldF9vcGNsYXNzX29w ZmFtaWx5X2FuZF9pbnB1dF90eXBlKG9wY2xhc3MsICZvcGZhbWlseSwgJm9wY2ludHlwZSkp CisJeworCQlpZiAob3BjaW50eXBlICE9IEFOWVJBTkdFT0lEICYmIG9wY2ludHlwZSAhPSBB TllNVUxUSVJBTkdFT0lEKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiaW52YWxpZCB0eXBl IGZvciBQRVJJT0QgcGFydCBvZiBmb3JlaWduIGtleSIpLAorCQkJCQllcnJkZXRhaWwoIk9u bHkgcmFuZ2UgYW5kIG11bHRpcmFuZ2UgYXJlIHN1cHBvcnRlZC4iKSk7CisKKwl9CisJZWxz ZQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igb3BjbGFzcyAldSIs IG9wY2xhc3MpOworCisJLyoKKwkgKiBMb29rIHVwIHRoZSBDb250YWluZWRCeSBvcGVyYXRv ciB3aG9zZSBsaHMgYW5kIHJocyBhcmUgdGhlIG9wY2xhc3MncworCSAqIHR5cGUuIFdlIHVz ZSB0aGlzIHRvIG9wdGltaXplIFJJIGNoZWNrczogaWYgdGhlIG5ldyB2YWx1ZSBpbmNsdWRl cyBhbGwKKwkgKiBvZiB0aGUgb2xkIHZhbHVlLCB0aGVuIHdlIGNhbiB0cmVhdCB0aGUgYXR0 cmlidXRlIGFzIGlmIGl0IGRpZG4ndAorCSAqIGNoYW5nZSwgYW5kIHNraXAgdGhlIFJJIGNo ZWNrLgorCSAqLworCXN0cmF0ID0gUlRDb250YWluZWRCeVN0cmF0ZWd5TnVtYmVyOworCUdl dE9wZXJhdG9yRnJvbVdlbGxLbm93blN0cmF0ZWd5KG9wY2xhc3MsCisJCQkJCQkJCQkgSW52 YWxpZE9pZCwKKwkJCQkJCQkJCSBjb250YWluZWRieW9wZXJvaWQsCisJCQkJCQkJCQkgJnN0 cmF0KTsKKworCS8qCisJICogTm93IGxvb2sgdXAgdGhlIENvbnRhaW5lZEJ5IG9wZXJhdG9y LiBJdHMgbGVmdCBhcmcgbXVzdCBiZSB0aGUgdHlwZSBvZgorCSAqIHRoZSBjb2x1bW4gKG9y IHJhdGhlciBvZiB0aGUgb3BjbGFzcykuIEl0cyByaWdodCBhcmcgbXVzdCBtYXRjaCB0aGUK KwkgKiByZXR1cm4gdHlwZSBvZiB0aGUgc3VwcG9ydCBwcm9jLgorCSAqLworCXN0cmF0ID0g UlRDb250YWluZWRCeVN0cmF0ZWd5TnVtYmVyOworCUdldE9wZXJhdG9yRnJvbVdlbGxLbm93 blN0cmF0ZWd5KG9wY2xhc3MsCisJCQkJCQkJCQkgQU5ZTVVMVElSQU5HRU9JRCwKKwkJCQkJ CQkJCSBhZ2dlZGNvbnRhaW5lZGJ5b3Blcm9pZCwKKwkJCQkJCQkJCSAmc3RyYXQpOworfQor CiAvKgogICogRGV0ZXJtaW5lIHdoZXRoZXIgYSByZWxhdGlvbiBjYW4gYmUgcHJvdmVuIGZ1 bmN0aW9uYWxseSBkZXBlbmRlbnQgb24KICAqIGEgc2V0IG9mIGdyb3VwaW5nIGNvbHVtbnMu ICBJZiBzbywgcmV0dXJuIHRydWUgYW5kIGFkZCB0aGUgcGdfY29uc3RyYWludApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9pbmRleGNtZHMuYwppbmRleCAyNjJhNzUxMDQ4NS4uMjljMmEwZWRmNzkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCkBAIC0yMTkwLDcgKzIxOTAsNyBAQCBDb21w dXRlSW5kZXhBdHRycyhJbmRleEluZm8gKmluZGV4SW5mbywKIAkJCQlzdHJhdCA9IFJUT3Zl cmxhcFN0cmF0ZWd5TnVtYmVyOwogCQkJZWxzZQogCQkJCXN0cmF0ID0gUlRFcXVhbFN0cmF0 ZWd5TnVtYmVyOwotCQkJR2V0T3BlcmF0b3JGcm9tV2VsbEtub3duU3RyYXRlZ3kob3BjbGFz c09pZHNbYXR0bl0sIGF0dHR5cGUsCisJCQlHZXRPcGVyYXRvckZyb21XZWxsS25vd25TdHJh dGVneShvcGNsYXNzT2lkc1thdHRuXSwgSW52YWxpZE9pZCwKIAkJCQkJCQkJCQkJICZvcGlk LCAmc3RyYXQpOwogCQkJaW5kZXhJbmZvLT5paV9FeGNsdXNpb25PcHNbYXR0bl0gPSBvcGlk OwogCQkJaW5kZXhJbmZvLT5paV9FeGNsdXNpb25Qcm9jc1thdHRuXSA9IGdldF9vcGNvZGUo b3BpZCk7CkBAIC0yNDMwLDcgKzI0MzAsNyBAQCBHZXREZWZhdWx0T3BDbGFzcyhPaWQgdHlw ZV9pZCwgT2lkIGFtX2lkKQogICogR2V0T3BlcmF0b3JGcm9tV2VsbEtub3duU3RyYXRlZ3kK ICAqCiAgKiBvcGNsYXNzIC0gdGhlIG9wY2xhc3MgdG8gdXNlCi0gKiBhdHR0eXBlIC0gdGhl IHR5cGUgdG8gYXNrIGFib3V0CisgKiByaHN0eXBlIC0gdGhlIHR5cGUgZm9yIHRoZSByaWdo dC1oYW5kIHNpZGUsIG9yIEludmFsaWRPaWQgdG8gdXNlIHRoZSB0eXBlIG9mIHRoZSBnaXZl biBvcGNsYXNzLgogICogb3BpZCAtIGhvbGRzIHRoZSBvcGVyYXRvciB3ZSBmb3VuZAogICog c3RyYXQgLSBob2xkcyB0aGUgaW5wdXQgYW5kIG91dHB1dCBzdHJhdGVneSBudW1iZXIKICAq CkBAIC0yNDQzLDE0ICsyNDQzLDE0IEBAIEdldERlZmF1bHRPcENsYXNzKE9pZCB0eXBlX2lk LCBPaWQgYW1faWQpCiAgKiBJbnZhbGlkU3RyYXRlZ3kuCiAgKi8KIHZvaWQKLUdldE9wZXJh dG9yRnJvbVdlbGxLbm93blN0cmF0ZWd5KE9pZCBvcGNsYXNzLCBPaWQgYXR0dHlwZSwKK0dl dE9wZXJhdG9yRnJvbVdlbGxLbm93blN0cmF0ZWd5KE9pZCBvcGNsYXNzLCBPaWQgcmhzdHlw ZSwKIAkJCQkJCQkJIE9pZCAqb3BpZCwgU3RyYXRlZ3lOdW1iZXIgKnN0cmF0KQogewogCU9p ZAkJCW9wZmFtaWx5OwogCU9pZAkJCW9wY2ludHlwZTsKIAlTdHJhdGVneU51bWJlciBpbnN0 cmF0ID0gKnN0cmF0OwogCi0JQXNzZXJ0KGluc3RyYXQgPT0gUlRFcXVhbFN0cmF0ZWd5TnVt YmVyIHx8IGluc3RyYXQgPT0gUlRPdmVybGFwU3RyYXRlZ3lOdW1iZXIpOworCUFzc2VydChp bnN0cmF0ID09IFJURXF1YWxTdHJhdGVneU51bWJlciB8fCBpbnN0cmF0ID09IFJUT3Zlcmxh cFN0cmF0ZWd5TnVtYmVyIHx8IGluc3RyYXQgPT0gUlRDb250YWluZWRCeVN0cmF0ZWd5TnVt YmVyKTsKIAogCSpvcGlkID0gSW52YWxpZE9pZDsKIApAQCAtMjQ3MywxNiArMjQ3MywyMSBA QCBHZXRPcGVyYXRvckZyb21XZWxsS25vd25TdHJhdGVneShPaWQgb3BjbGFzcywgT2lkIGF0 dHR5cGUsCiAKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfT0JKRUNUKSwKLQkJCQkJaW5zdHJhdCA9PSBSVEVxdWFsU3RyYXRlZ3lOdW1iZXIg PwotCQkJCQllcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBhbiBlcXVhbGl0eSBvcGVyYXRv ciBmb3IgdHlwZSAlcyIsIGZvcm1hdF90eXBlX2JlKGF0dHR5cGUpKSA6Ci0JCQkJCWVycm1z ZygiY291bGQgbm90IGlkZW50aWZ5IGFuIG92ZXJsYXBzIG9wZXJhdG9yIGZvciB0eXBlICVz IiwgZm9ybWF0X3R5cGVfYmUoYXR0dHlwZSkpLAorCQkJCQlpbnN0cmF0ID09IFJURXF1YWxT dHJhdGVneU51bWJlciA/IGVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGFuIGVxdWFsaXR5 IG9wZXJhdG9yIGZvciB0eXBlICVzIiwgZm9ybWF0X3R5cGVfYmUob3BjaW50eXBlKSkgOgor CQkJCQlpbnN0cmF0ID09IFJUT3ZlcmxhcFN0cmF0ZWd5TnVtYmVyID8gZXJybXNnKCJjb3Vs ZCBub3QgaWRlbnRpZnkgYW4gb3ZlcmxhcHMgb3BlcmF0b3IgZm9yIHR5cGUgJXMiLCBmb3Jt YXRfdHlwZV9iZShvcGNpbnR5cGUpKSA6CisJCQkJCWluc3RyYXQgPT0gUlRDb250YWluZWRC eVN0cmF0ZWd5TnVtYmVyID8gZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYSBjb250YWlu ZWQtYnkgb3BlcmF0b3IgZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9iZShvcGNpbnR5cGUp KSA6IDAsCiAJCQkJCWVycmRldGFpbCgiQ291bGQgbm90IHRyYW5zbGF0ZSBzdHJhdGVneSBu dW1iZXIgJWQgZm9yIG9wZXJhdG9yIGNsYXNzIFwiJXNcIiBmb3IgYWNjZXNzIG1ldGhvZCBc IiVzXCIuIiwKIAkJCQkJCQkgIGluc3RyYXQsIE5hbWVTdHIoKChGb3JtX3BnX29wY2xhc3Mp IEdFVFNUUlVDVCh0dXBsZSkpLT5vcGNuYW1lKSwgImdpc3QiKSk7Ci0KLQkJCVJlbGVhc2VT eXNDYWNoZSh0dXBsZSk7CiAJCX0KIAotCQkqb3BpZCA9IGdldF9vcGZhbWlseV9tZW1iZXIo b3BmYW1pbHksIG9wY2ludHlwZSwgb3BjaW50eXBlLCAqc3RyYXQpOworCQkvKgorCQkgKiBX ZSBwYXJhbWV0ZXJpemUgcmhzdHlwZSBzbyBmb3JlaWduIGtleXMgY2FuIGFzayBmb3IgYSA8 QCBvcGVyYXRvcgorCQkgKiB3aG9zZSByaHMgbWF0Y2hlcyB0aGUgYWdncmVnYXRlIGZ1bmN0 aW9uLiBGb3IgZXhhbXBsZSByYW5nZV9hZ2cKKwkJICogcmV0dXJucyBhbnltdWx0aXJhbmdl LgorCQkgKi8KKwkJaWYgKCFPaWRJc1ZhbGlkKHJoc3R5cGUpKQorCQkJcmhzdHlwZSA9IG9w Y2ludHlwZTsKKwkJKm9waWQgPSBnZXRfb3BmYW1pbHlfbWVtYmVyKG9wZmFtaWx5LCBvcGNp bnR5cGUsIHJoc3R5cGUsICpzdHJhdCk7CiAJfQogCiAJaWYgKCFPaWRJc1ZhbGlkKCpvcGlk KSkKQEAgLTI0OTUsOSArMjUwMCw5IEBAIEdldE9wZXJhdG9yRnJvbVdlbGxLbm93blN0cmF0 ZWd5KE9pZCBvcGNsYXNzLCBPaWQgYXR0dHlwZSwKIAogCQllcmVwb3J0KEVSUk9SLAogCQkJ CWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKLQkJCQlpbnN0cmF0ID09IFJU RXF1YWxTdHJhdGVneU51bWJlciA/Ci0JCQkJZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkg YW4gZXF1YWxpdHkgb3BlcmF0b3IgZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9iZShhdHR0 eXBlKSkgOgotCQkJCWVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGFuIG92ZXJsYXBzIG9w ZXJhdG9yIGZvciB0eXBlICVzIiwgZm9ybWF0X3R5cGVfYmUoYXR0dHlwZSkpLAorCQkJCWlu c3RyYXQgPT0gUlRFcXVhbFN0cmF0ZWd5TnVtYmVyID8gZXJybXNnKCJjb3VsZCBub3QgaWRl bnRpZnkgYW4gZXF1YWxpdHkgb3BlcmF0b3IgZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9i ZShvcGNpbnR5cGUpKSA6CisJCQkJaW5zdHJhdCA9PSBSVE92ZXJsYXBTdHJhdGVneU51bWJl ciA/IGVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGFuIG92ZXJsYXBzIG9wZXJhdG9yIGZv ciB0eXBlICVzIiwgZm9ybWF0X3R5cGVfYmUob3BjaW50eXBlKSkgOgorCQkJCWluc3RyYXQg PT0gUlRDb250YWluZWRCeVN0cmF0ZWd5TnVtYmVyID8gZXJybXNnKCJjb3VsZCBub3QgaWRl bnRpZnkgYSBjb250YWluZWQtYnkgb3BlcmF0b3IgZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlw ZV9iZShvcGNpbnR5cGUpKSA6IDAsCiAJCQkJZXJyZGV0YWlsKCJUaGVyZSBpcyBubyBzdWl0 YWJsZSBvcGVyYXRvciBpbiBvcGVyYXRvciBmYW1pbHkgXCIlc1wiIGZvciBhY2Nlc3MgbWV0 aG9kIFwiJXNcIi4iLAogCQkJCQkJICBOYW1lU3RyKCgoRm9ybV9wZ19vcGZhbWlseSkgR0VU U1RSVUNUKHR1cGxlKSktPm9wZm5hbWUpLCAiZ2lzdCIpKTsKIAl9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3RhYmxlY21kcy5jCmluZGV4IGMzOWU4YmMxNjFkLi5iMTcxNmNkYmNlMSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTE2LDYgKzE2LDcgQEAKIAogI2luY2x1ZGUgImFj Y2Vzcy9hdHRtYXAuaCIKICNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKKyNpbmNsdWRlICJh Y2Nlc3MvZ2lzdC5oIgogI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIKICNpbmNsdWRlICJh Y2Nlc3MvaGVhcGFtX3hsb2cuaCIKICNpbmNsdWRlICJhY2Nlc3MvbXVsdGl4YWN0LmgiCkBA IC0yMTUsNiArMjE2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgTmV3Q29uc3RyYWludAogCUNvbnN0 clR5cGUJY29udHlwZTsJCS8qIENIRUNLIG9yIEZPUkVJR04gKi8KIAlPaWQJCQlyZWZyZWxp ZDsJCS8qIFBLIHJlbCwgaWYgRk9SRUlHTiAqLwogCU9pZAkJCXJlZmluZGlkOwkJLyogT0lE IG9mIFBLJ3MgaW5kZXgsIGlmIEZPUkVJR04gKi8KKwlib29sCQljb253aXRocGVyaW9kOwkv KiBXaGV0aGVyIHRoZSBuZXcgRk9SRUlHTiBLRVkgdXNlcyBQRVJJT0QgKi8KIAlPaWQJCQlj b25pZDsJCQkvKiBPSUQgb2YgcGdfY29uc3RyYWludCBlbnRyeSwgaWYgRk9SRUlHTiAqLwog CU5vZGUJICAgKnF1YWw7CQkJLyogQ2hlY2sgZXhwciBvciBDT05TVFJfRk9SRUlHTiBDb25z dHJhaW50ICovCiAJRXhwclN0YXRlICAqcXVhbHN0YXRlOwkJLyogRXhlY3V0aW9uIHN0YXRl IGZvciBDSEVDSyBleHByICovCkBAIC0zODksMTYgKzM5MSwxNyBAQCBzdGF0aWMgaW50CXRy YW5zZm9ybUNvbHVtbk5hbWVMaXN0KE9pZCByZWxJZCwgTGlzdCAqY29sTGlzdCwKIHN0YXRp YyBpbnQJdHJhbnNmb3JtRmtleUdldFByaW1hcnlLZXkoUmVsYXRpb24gcGtyZWwsIE9pZCAq aW5kZXhPaWQsCiAJCQkJCQkJCQkgICBMaXN0ICoqYXR0bmFtZWxpc3QsCiAJCQkJCQkJCQkg ICBpbnQxNiAqYXR0bnVtcywgT2lkICphdHR0eXBpZHMsCi0JCQkJCQkJCQkgICBPaWQgKm9w Y2xhc3Nlcyk7CisJCQkJCQkJCQkgICBPaWQgKm9wY2xhc3NlcywgYm9vbCAqcGtfaGFzX3dp dGhvdXRfb3ZlcmxhcHMpOwogc3RhdGljIE9pZAl0cmFuc2Zvcm1Ga2V5Q2hlY2tBdHRycyhS ZWxhdGlvbiBwa3JlbCwKIAkJCQkJCQkJCWludCBudW1hdHRycywgaW50MTYgKmF0dG51bXMs Ci0JCQkJCQkJCQlPaWQgKm9wY2xhc3Nlcyk7CisJCQkJCQkJCQlib29sIHdpdGhfcGVyaW9k LCBPaWQgKm9wY2xhc3NlcywKKwkJCQkJCQkJCWJvb2wgKnBrX2hhc193aXRob3V0X292ZXJs YXBzKTsKIHN0YXRpYyB2b2lkIGNoZWNrRmtleVBlcm1pc3Npb25zKFJlbGF0aW9uIHJlbCwg aW50MTYgKmF0dG51bXMsIGludCBuYXR0cyk7CiBzdGF0aWMgQ29lcmNpb25QYXRoVHlwZSBm aW5kRmtleUNhc3QoT2lkIHRhcmdldFR5cGVJZCwgT2lkIHNvdXJjZVR5cGVJZCwKIAkJCQkJ CQkJCSBPaWQgKmZ1bmNpZCk7CiBzdGF0aWMgdm9pZCB2YWxpZGF0ZUZvcmVpZ25LZXlDb25z dHJhaW50KGNoYXIgKmNvbm5hbWUsCiAJCQkJCQkJCQkJIFJlbGF0aW9uIHJlbCwgUmVsYXRp b24gcGtyZWwsCi0JCQkJCQkJCQkJIE9pZCBwa2luZE9pZCwgT2lkIGNvbnN0cmFpbnRPaWQp OworCQkJCQkJCQkJCSBPaWQgcGtpbmRPaWQsIE9pZCBjb25zdHJhaW50T2lkLCBib29sIGhh c3BlcmlvZCk7CiBzdGF0aWMgdm9pZCBDaGVja0FsdGVyVGFibGVJc1NhZmUoUmVsYXRpb24g cmVsKTsKIHN0YXRpYyB2b2lkIEFUQ29udHJvbGxlcihBbHRlclRhYmxlU3RtdCAqcGFyc2V0 cmVlLAogCQkJCQkJIFJlbGF0aW9uIHJlbCwgTGlzdCAqY21kcywgYm9vbCByZWN1cnNlLCBM T0NLTU9ERSBsb2NrbW9kZSwKQEAgLTUxMCw3ICs1MTMsOCBAQCBzdGF0aWMgT2JqZWN0QWRk cmVzcyBhZGRGa1JlY3Vyc2VSZWZlcmVuY2VkKExpc3QgKip3cXVldWUsIENvbnN0cmFpbnQg KmZrY29uc3RyYQogCQkJCQkJCQkJCQlPaWQgKnBmZXFvcGVyYXRvcnMsIE9pZCAqcHBlcW9w ZXJhdG9ycywgT2lkICpmZmVxb3BlcmF0b3JzLAogCQkJCQkJCQkJCQlpbnQgbnVtZmtkZWxz ZXRjb2xzLCBpbnQxNiAqZmtkZWxzZXRjb2xzLAogCQkJCQkJCQkJCQlib29sIG9sZF9jaGVj a19vaywKLQkJCQkJCQkJCQkJT2lkIHBhcmVudERlbFRyaWdnZXIsIE9pZCBwYXJlbnRVcGRU cmlnZ2VyKTsKKwkJCQkJCQkJCQkJT2lkIHBhcmVudERlbFRyaWdnZXIsIE9pZCBwYXJlbnRV cGRUcmlnZ2VyLAorCQkJCQkJCQkJCQlib29sIHdpdGhfcGVyaW9kKTsKIHN0YXRpYyB2b2lk IHZhbGlkYXRlRmtPbkRlbGV0ZVNldENvbHVtbnMoaW50IG51bWZrcywgY29uc3QgaW50MTYg KmZrYXR0bnVtcywKIAkJCQkJCQkJCQkgaW50IG51bWZrc2V0Y29scywgY29uc3QgaW50MTYg KmZrc2V0Y29sc2F0dG51bXMsCiAJCQkJCQkJCQkJIExpc3QgKmZrc2V0Y29scyk7CkBAIC01 MjAsNyArNTI0LDkgQEAgc3RhdGljIHZvaWQgYWRkRmtSZWN1cnNlUmVmZXJlbmNpbmcoTGlz dCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhaW50LAogCQkJCQkJCQkJT2lkICpw ZmVxb3BlcmF0b3JzLCBPaWQgKnBwZXFvcGVyYXRvcnMsIE9pZCAqZmZlcW9wZXJhdG9ycywK IAkJCQkJCQkJCWludCBudW1ma2RlbHNldGNvbHMsIGludDE2ICpma2RlbHNldGNvbHMsCiAJ CQkJCQkJCQlib29sIG9sZF9jaGVja19vaywgTE9DS01PREUgbG9ja21vZGUsCi0JCQkJCQkJ CQlPaWQgcGFyZW50SW5zVHJpZ2dlciwgT2lkIHBhcmVudFVwZFRyaWdnZXIpOworCQkJCQkJ CQkJT2lkIHBhcmVudEluc1RyaWdnZXIsIE9pZCBwYXJlbnRVcGRUcmlnZ2VyLAorCQkJCQkJ CQkJYm9vbCB3aXRoX3BlcmlvZCk7CisKIHN0YXRpYyB2b2lkIENsb25lRm9yZWlnbktleUNv bnN0cmFpbnRzKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHBhcmVudFJlbCwKIAkJCQkJCQkJ CSAgIFJlbGF0aW9uIHBhcnRpdGlvblJlbCk7CiBzdGF0aWMgdm9pZCBDbG9uZUZrUmVmZXJl bmNlZChSZWxhdGlvbiBwYXJlbnRSZWwsIFJlbGF0aW9uIHBhcnRpdGlvblJlbCk7CkBAIC01 OTQ1LDcgKzU5NTEsOCBAQCBBVFJld3JpdGVUYWJsZXMoQWx0ZXJUYWJsZVN0bXQgKnBhcnNl dHJlZSwgTGlzdCAqKndxdWV1ZSwgTE9DS01PREUgbG9ja21vZGUsCiAKIAkJCQl2YWxpZGF0 ZUZvcmVpZ25LZXlDb25zdHJhaW50KGZrY29uc3RyYWludC0+Y29ubmFtZSwgcmVsLCByZWZy ZWwsCiAJCQkJCQkJCQkJCSBjb24tPnJlZmluZGlkLAotCQkJCQkJCQkJCQkgY29uLT5jb25p ZCk7CisJCQkJCQkJCQkJCSBjb24tPmNvbmlkLAorCQkJCQkJCQkJCQkgY29uLT5jb253aXRo cGVyaW9kKTsKIAogCQkJCS8qCiAJCQkJICogTm8gbmVlZCB0byBtYXJrIHRoZSBjb25zdHJh aW50IHJvdyBhcyB2YWxpZGF0ZWQsIHdlIGRpZApAQCAtOTU4Niw2ICs5NTkzLDggQEAgQVRB ZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZv ICp0YWIsIFJlbGF0aW9uIHJlbCwKIAlPaWQJCQlwcGVxb3BlcmF0b3JzW0lOREVYX01BWF9L RVlTXSA9IHswfTsKIAlPaWQJCQlmZmVxb3BlcmF0b3JzW0lOREVYX01BWF9LRVlTXSA9IHsw fTsKIAlpbnQxNgkJZmtkZWxzZXRjb2xzW0lOREVYX01BWF9LRVlTXSA9IHswfTsKKwlib29s CQl3aXRoX3BlcmlvZDsKKwlib29sCQlwa19oYXNfd2l0aG91dF9vdmVybGFwczsKIAlpbnQJ CQlpOwogCWludAkJCW51bWZrcywKIAkJCQludW1wa3MsCkBAIC05NjgwLDYgKzk2ODksMTEg QEAgQVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFi bGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAludW1ma3MgPSB0cmFuc2Zvcm1Db2x1bW5O YW1lTGlzdChSZWxhdGlvbkdldFJlbGlkKHJlbCksCiAJCQkJCQkJCQkgZmtjb25zdHJhaW50 LT5ma19hdHRycywKIAkJCQkJCQkJCSBma2F0dG51bSwgZmt0eXBvaWQpOworCXdpdGhfcGVy aW9kID0gZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCB8fCBma2NvbnN0cmFpbnQtPnBr X3dpdGhfcGVyaW9kOworCWlmICh3aXRoX3BlcmlvZCAmJiAhZmtjb25zdHJhaW50LT5ma193 aXRoX3BlcmlvZCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5W QUxJRF9GT1JFSUdOX0tFWSksCisJCQkJZXJybXNnKCJmb3JlaWduIGtleSB1c2VzIFBFUklP RCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJs ZSIpKTsKIAogCW51bWZrZGVsc2V0Y29scyA9IHRyYW5zZm9ybUNvbHVtbk5hbWVMaXN0KFJl bGF0aW9uR2V0UmVsaWQocmVsKSwKIAkJCQkJCQkJCQkJICBma2NvbnN0cmFpbnQtPmZrX2Rl bF9zZXRfY29scywKQEAgLTk2OTksMTggKzk3MTMsNDAgQEAgQVRBZGRGb3JlaWduS2V5Q29u c3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9u IHJlbCwKIAkJbnVtcGtzID0gdHJhbnNmb3JtRmtleUdldFByaW1hcnlLZXkocGtyZWwsICZp bmRleE9pZCwKIAkJCQkJCQkJCQkJJmZrY29uc3RyYWludC0+cGtfYXR0cnMsCiAJCQkJCQkJ CQkJCXBrYXR0bnVtLCBwa3R5cG9pZCwKLQkJCQkJCQkJCQkJb3BjbGFzc2VzKTsKKwkJCQkJ CQkJCQkJb3BjbGFzc2VzLCAmcGtfaGFzX3dpdGhvdXRfb3ZlcmxhcHMpOworCisJCS8qIElm IHRoZSBwcmltYXJ5IGtleSB1c2VzIFdJVEhPVVQgT1ZFUkxBUFMsIHRoZSBmayBtdXN0IHVz ZSBQRVJJT0QgKi8KKwkJaWYgKHBrX2hhc193aXRob3V0X292ZXJsYXBzICYmICFma2NvbnN0 cmFpbnQtPmZrX3dpdGhfcGVyaW9kKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfRk9SRUlHTl9LRVkpLAorCQkJCQllcnJtc2coImZvcmVpZ24g a2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJl ZmVyZW5jaW5nIHRhYmxlIikpOwogCX0KIAllbHNlCiAJewogCQludW1wa3MgPSB0cmFuc2Zv cm1Db2x1bW5OYW1lTGlzdChSZWxhdGlvbkdldFJlbGlkKHBrcmVsKSwKIAkJCQkJCQkJCQkg Zmtjb25zdHJhaW50LT5wa19hdHRycywKIAkJCQkJCQkJCQkgcGthdHRudW0sIHBrdHlwb2lk KTsKKworCQkvKiBTaW5jZSB3ZSBnb3QgcGtfYXR0cnMsIG9uZSBzaG91bGQgYmUgYSBwZXJp b2QuICovCisJCWlmICh3aXRoX3BlcmlvZCAmJiAhZmtjb25zdHJhaW50LT5wa193aXRoX3Bl cmlvZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElE X0ZPUkVJR05fS0VZKSwKKwkJCQkJZXJybXNnKCJmb3JlaWduIGtleSB1c2VzIFBFUklPRCBv biB0aGUgcmVmZXJlbmNpbmcgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNlZCB0YWJsZSIp KTsKKwogCQkvKiBMb29rIGZvciBhbiBpbmRleCBtYXRjaGluZyB0aGUgY29sdW1uIGxpc3Qg Ki8KIAkJaW5kZXhPaWQgPSB0cmFuc2Zvcm1Ga2V5Q2hlY2tBdHRycyhwa3JlbCwgbnVtcGtz LCBwa2F0dG51bSwKLQkJCQkJCQkJCQkgICBvcGNsYXNzZXMpOworCQkJCQkJCQkJCSAgIHdp dGhfcGVyaW9kLCBvcGNsYXNzZXMsICZwa19oYXNfd2l0aG91dF9vdmVybGFwcyk7CiAJfQog CisJLyoKKwkgKiBJZiB0aGUgcmVmZXJlbmNlZCBwcmltYXJ5IGtleSBoYXMgV0lUSE9VVCBP VkVSTEFQUywgdGhlIGZvcmVpZ24ga2V5CisJICogbXVzdCB1c2UgUEVSSU9ELgorCSAqLwor CWlmIChwa19oYXNfd2l0aG91dF9vdmVybGFwcyAmJiAhd2l0aF9wZXJpb2QpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfRk9SRUlHTl9LRVkpLAor CQkJCWVycm1zZygiZm9yZWlnbiBrZXkgbXVzdCB1c2UgUEVSSU9EIHdoZW4gcmVmZXJlbmNp bmcgYSBwcmltYXJ5IHVzaW5nIFdJVEhPVVQgT1ZFUkxBUFMiKSk7CisKIAkvKgogCSAqIE5v dyB3ZSBjYW4gY2hlY2sgcGVybWlzc2lvbnMuCiAJICovCkBAIC05NzQ0LDYgKzk3ODAsMjgg QEAgQVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFi bGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJfQogCX0KIAorCS8qCisJICogU29tZSBh Y3Rpb25zIGFyZSBjdXJyZW50bHkgdW5zdXBwb3J0ZWQgZm9yIGZvcmVpZ24ga2V5cyB1c2lu ZyBQRVJJT0QuCisJICovCisJaWYgKGZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJ eworCQlpZiAoZmtjb25zdHJhaW50LT5ma191cGRfYWN0aW9uID09IEZLQ09OU1RSX0FDVElP Tl9DQVNDQURFIHx8CisJCQlma2NvbnN0cmFpbnQtPmZrX3VwZF9hY3Rpb24gPT0gRktDT05T VFJfQUNUSU9OX1NFVE5VTEwgfHwKKwkJCWZrY29uc3RyYWludC0+ZmtfdXBkX2FjdGlvbiA9 PSBGS0NPTlNUUl9BQ1RJT05fU0VUREVGQVVMVCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQllcnJtc2co InVuc3VwcG9ydGVkICVzIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2lu ZyBQRVJJT0QiLAorCQkJCQkJICAgIk9OIFVQREFURSIpKTsKKworCQlpZiAoZmtjb25zdHJh aW50LT5ma19kZWxfYWN0aW9uID09IEZLQ09OU1RSX0FDVElPTl9DQVNDQURFIHx8CisJCQlm a2NvbnN0cmFpbnQtPmZrX2RlbF9hY3Rpb24gPT0gRktDT05TVFJfQUNUSU9OX1NFVE5VTEwg fHwKKwkJCWZrY29uc3RyYWludC0+ZmtfZGVsX2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJT05f U0VUREVGQVVMVCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQllcnJtc2coInVuc3VwcG9ydGVkICVzIGFj dGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QiLAorCQkJCQkJ ICAgIk9OIERFTEVURSIpKTsKKwl9CisKIAkvKgogCSAqIExvb2sgdXAgdGhlIGVxdWFsaXR5 IG9wZXJhdG9ycyB0byB1c2UgaW4gdGhlIGNvbnN0cmFpbnQuCiAJICoKQEAgLTk3OTAsMTYg Kzk4NDgsNTYgQEAgQVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBB bHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJb3BjaW50eXBlID0gY2xh X3R1cC0+b3BjaW50eXBlOwogCQlSZWxlYXNlU3lzQ2FjaGUoY2xhX2h0KTsKIAotCQkvKgot CQkgKiBDaGVjayBpdCdzIGEgYnRyZWU7IGN1cnJlbnRseSB0aGlzIGNhbiBuZXZlciBmYWls IHNpbmNlIG5vIG90aGVyCi0JCSAqIGluZGV4IEFNcyBzdXBwb3J0IHVuaXF1ZSBpbmRleGVz LiAgSWYgd2UgZXZlciBkaWQgaGF2ZSBvdGhlciB0eXBlcwotCQkgKiBvZiB1bmlxdWUgaW5k ZXhlcywgd2UnZCBuZWVkIGEgd2F5IHRvIGRldGVybWluZSB3aGljaCBvcGVyYXRvcgotCQkg KiBzdHJhdGVneSBudW1iZXIgaXMgZXF1YWxpdHkuICAoSXMgaXQgcmVhc29uYWJsZSB0byBp bnNpc3QgdGhhdAotCQkgKiBldmVyeSBzdWNoIGluZGV4IEFNIHVzZSBidHJlZSdzIG51bWJl ciBmb3IgZXF1YWxpdHk/KQotCQkgKi8KLQkJaWYgKGFtaWQgIT0gQlRSRUVfQU1fT0lEKQot CQkJZWxvZyhFUlJPUiwgIm9ubHkgYi10cmVlIGluZGV4ZXMgYXJlIHN1cHBvcnRlZCBmb3Ig Zm9yZWlnbiBrZXlzIik7Ci0JCWVxc3RyYXRlZ3kgPSBCVEVxdWFsU3RyYXRlZ3lOdW1iZXI7 CisJCWlmICh3aXRoX3BlcmlvZCkKKwkJeworCQkJU3RyYXRlZ3lOdW1iZXIgcnRzdHJhdGVn eTsKKwkJCWJvb2wJCWZvcl9vdmVybGFwcyA9IHdpdGhfcGVyaW9kICYmIGkgPT0gbnVtcGtz IC0gMTsKKworCQkJLyoKKwkJCSAqIEdpU1QgaW5kZXhlcyBhcmUgcmVxdWlyZWQgdG8gc3Vw cG9ydCB0ZW1wb3JhbCBmb3JlaWduIGtleXMKKwkJCSAqIGJlY2F1c2UgdGhleSBjb21iaW5l IGVxdWFscyBhbmQgb3ZlcmxhcHMuCisJCQkgKi8KKwkJCWlmIChhbWlkICE9IEdJU1RfQU1f T0lEKQorCQkJCWVsb2coRVJST1IsICJvbmx5IEdpU1QgaW5kZXhlcyBhcmUgc3VwcG9ydGVk IGZvciB0ZW1wb3JhbCBmb3JlaWduIGtleXMiKTsKKworCQkJcnRzdHJhdGVneSA9IGZvcl9v dmVybGFwcyA/IFJUT3ZlcmxhcFN0cmF0ZWd5TnVtYmVyIDogUlRFcXVhbFN0cmF0ZWd5TnVt YmVyOworCisJCQkvKgorCQkJICogQW4gb3BjbGFzcyBjYW4gdXNlIHdoYXRldmVyIHN0cmF0 ZWd5IG51bWJlcnMgaXQgd2FudHMsIHNvIHdlCisJCQkgKiBhc2sgdGhlIG9wY2xhc3Mgd2hh dCBudW1iZXIgaXQgYWN0dWFsbHkgdXNlcyBpbnN0ZWFkIG9mIG91ciBSVCoKKwkJCSAqIGNv bnN0YW50cy4KKwkJCSAqLworCQkJZXFzdHJhdGVneSA9IEdpc3RUcmFuc2xhdGVTdHJhdG51 bShvcGNsYXNzZXNbaV0sIHJ0c3RyYXRlZ3kpOworCQkJaWYgKGVxc3RyYXRlZ3kgPT0gSW52 YWxpZFN0cmF0ZWd5KQorCQkJeworCQkJCUhlYXBUdXBsZQl0dXBsZTsKKworCQkJCXR1cGxl ID0gU2VhcmNoU3lzQ2FjaGUxKENMQU9JRCwgT2JqZWN0SWRHZXREYXR1bShvcGNsYXNzZXNb aV0pKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwbGUpKQorCQkJCQllbG9nKEVS Uk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igb3BlcmF0b3IgY2xhc3MgJXUiLCBvcGNs YXNzZXNbaV0pOworCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09E RV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJCWZvcl9vdmVybGFwcworCQkJCQkJPyBlcnJt c2coImNvdWxkIG5vdCBpZGVudGlmeSBhbiBvdmVybGFwcyBvcGVyYXRvciBmb3IgZm9yZWln biBrZXkiKQorCQkJCQkJOiBlcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBhbiBlcXVhbGl0 eSBvcGVyYXRvciBmb3IgZm9yZWlnbiBrZXkiKSwKKwkJCQkJCWVycmRldGFpbCgiQ291bGQg bm90IHRyYW5zbGF0ZSBzdHJhdGVneSBudW1iZXIgJWQgZm9yIG9wZXJhdG9yIGNsYXNzIFwi JXNcIiBmb3IgYWNjZXNzIG1ldGhvZCBcIiVzXCIuIiwKKwkJCQkJCQkJICBydHN0cmF0ZWd5 LCBOYW1lU3RyKCgoRm9ybV9wZ19vcGNsYXNzKSBHRVRTVFJVQ1QodHVwbGUpKS0+b3BjbmFt ZSksICJnaXN0IikpOworCQkJfQorCQl9CisJCWVsc2UKKwkJeworCQkJLyoKKwkJCSAqIENo ZWNrIGl0J3MgYSBidHJlZTsgY3VycmVudGx5IHRoaXMgY2FuIG5ldmVyIGZhaWwgc2luY2Ug bm8KKwkJCSAqIG90aGVyIGluZGV4IEFNcyBzdXBwb3J0IHVuaXF1ZSBpbmRleGVzLiAgSWYg d2UgZXZlciBkaWQgaGF2ZQorCQkJICogb3RoZXIgdHlwZXMgb2YgdW5pcXVlIGluZGV4ZXMs IHdlJ2QgbmVlZCBhIHdheSB0byBkZXRlcm1pbmUKKwkJCSAqIHdoaWNoIG9wZXJhdG9yIHN0 cmF0ZWd5IG51bWJlciBpcyBlcXVhbGl0eS4gIChXZSBjb3VsZCB1c2UKKwkJCSAqIHNvbWV0 aGluZyBsaWtlIEdpc3RUcmFuc2xhdGVTdHJhdG51bS4pCisJCQkgKi8KKwkJCWlmIChhbWlk ICE9IEJUUkVFX0FNX09JRCkKKwkJCQllbG9nKEVSUk9SLCAib25seSBiLXRyZWUgaW5kZXhl cyBhcmUgc3VwcG9ydGVkIGZvciBmb3JlaWduIGtleXMiKTsKKwkJCWVxc3RyYXRlZ3kgPSBC VEVxdWFsU3RyYXRlZ3lOdW1iZXI7CisJCX0KIAogCQkvKgogCQkgKiBUaGVyZSBoYWQgYmV0 dGVyIGJlIGEgcHJpbWFyeSBlcXVhbGl0eSBvcGVyYXRvciBmb3IgdGhlIGluZGV4LgpAQCAt OTk0OSw2ICsxMDA0NywyMiBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3 cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQlmZmVxb3Bl cmF0b3JzW2ldID0gZmZlcW9wOwogCX0KIAorCS8qCisJICogRm9yIEZLcyB3aXRoIFBFUklP RCB3ZSBuZWVkIGFkZGl0aW9uYWwgb3BlcmF0b3JzIHRvIGNoZWNrIHdoZXRoZXIgdGhlCisJ ICogcmVmZXJlbmNpbmcgcm93J3MgcmFuZ2UgaXMgY29udGFpbmVkIGJ5IHRoZSBhZ2dyZWdh dGVkIHJhbmdlcyBvZiB0aGUKKwkgKiByZWZlcmVuY2VkIHJvdyhzKS4gRm9yIHJhbmdldHlw ZXMgYW5kIG11bHRpcmFuZ2V0eXBlcyB0aGlzIGlzCisJICogZmsucGVyaW9kYXR0IDxAIHJh bmdlX2FnZyhway5wZXJpb2RhdHQpLiBUaG9zZSBhcmUgdGhlIG9ubHkgdHlwZXMgd2UKKwkg KiBzdXBwb3J0IGZvciBub3cuIEZLcyB3aWxsIGxvb2sgdGhlc2UgdXAgYXQgInJ1bnRpbWUi LCBidXQgd2Ugc2hvdWxkCisJICogbWFrZSBzdXJlIHRoZSBsb29rdXAgd29ya3MgaGVyZSwg ZXZlbiBpZiB3ZSBkb24ndCB1c2UgdGhlIHZhbHVlcy4KKwkgKi8KKwlpZiAod2l0aF9wZXJp b2QpCisJeworCQlPaWQJCQlwZXJpb2RvcGVyb2lkOworCQlPaWQJCQlhZ2dlZHBlcmlvZG9w ZXJvaWQ7CisKKwkJRmluZEZLUGVyaW9kT3BlcnMob3BjbGFzc2VzW251bXBrcyAtIDFdLCAm cGVyaW9kb3Blcm9pZCwgJmFnZ2VkcGVyaW9kb3Blcm9pZCk7CisJfQorCiAJLyoKIAkgKiBD cmVhdGUgYWxsIHRoZSBjb25zdHJhaW50IGFuZCB0cmlnZ2VyIG9iamVjdHMsIHJlY3Vyc2lu ZyB0byBwYXJ0aXRpb25zCiAJICogYXMgbmVjZXNzYXJ5LiAgRmlyc3QgaGFuZGxlIHRoZSBy ZWZlcmVuY2VkIHNpZGUuCkBAIC05OTY1LDcgKzEwMDc5LDggQEAgQVRBZGRGb3JlaWduS2V5 Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0 aW9uIHJlbCwKIAkJCQkJCQkJCSBudW1ma2RlbHNldGNvbHMsCiAJCQkJCQkJCQkgZmtkZWxz ZXRjb2xzLAogCQkJCQkJCQkJIG9sZF9jaGVja19vaywKLQkJCQkJCQkJCSBJbnZhbGlkT2lk LCBJbnZhbGlkT2lkKTsKKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLAorCQkJ CQkJCQkJIHdpdGhfcGVyaW9kKTsKIAogCS8qIE5vdyBoYW5kbGUgdGhlIHJlZmVyZW5jaW5n IHNpZGUuICovCiAJYWRkRmtSZWN1cnNlUmVmZXJlbmNpbmcod3F1ZXVlLCBma2NvbnN0cmFp bnQsIHJlbCwgcGtyZWwsCkBAIC05OTgxLDcgKzEwMDk2LDggQEAgQVRBZGRGb3JlaWduS2V5 Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0 aW9uIHJlbCwKIAkJCQkJCQlma2RlbHNldGNvbHMsCiAJCQkJCQkJb2xkX2NoZWNrX29rLAog CQkJCQkJCWxvY2ttb2RlLAotCQkJCQkJCUludmFsaWRPaWQsIEludmFsaWRPaWQpOworCQkJ CQkJCUludmFsaWRPaWQsIEludmFsaWRPaWQsCisJCQkJCQkJd2l0aF9wZXJpb2QpOwogCiAJ LyoKIAkgKiBEb25lLiAgQ2xvc2UgcGsgdGFibGUsIGJ1dCBrZWVwIGxvY2sgdW50aWwgd2Un dmUgY29tbWl0dGVkLgpAQCAtMTAwNjYsNyArMTAxODIsOCBAQCBhZGRGa1JlY3Vyc2VSZWZl cmVuY2VkKExpc3QgKip3cXVldWUsIENvbnN0cmFpbnQgKmZrY29uc3RyYWludCwgUmVsYXRp b24gcmVsLAogCQkJCQkgICBPaWQgKnBwZXFvcGVyYXRvcnMsIE9pZCAqZmZlcW9wZXJhdG9y cywKIAkJCQkJICAgaW50IG51bWZrZGVsc2V0Y29scywgaW50MTYgKmZrZGVsc2V0Y29scywK IAkJCQkJICAgYm9vbCBvbGRfY2hlY2tfb2ssCi0JCQkJCSAgIE9pZCBwYXJlbnREZWxUcmln Z2VyLCBPaWQgcGFyZW50VXBkVHJpZ2dlcikKKwkJCQkJICAgT2lkIHBhcmVudERlbFRyaWdn ZXIsIE9pZCBwYXJlbnRVcGRUcmlnZ2VyLAorCQkJCQkgICBib29sIHdpdGhfcGVyaW9kKQog ewogCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKIAlPaWQJCQljb25zdHJPaWQ7CkBAIC0xMDE1 Miw3ICsxMDI2OSw3IEBAIGFkZEZrUmVjdXJzZVJlZmVyZW5jZWQoTGlzdCAqKndxdWV1ZSwg Q29uc3RyYWludCAqZmtjb25zdHJhaW50LCBSZWxhdGlvbiByZWwsCiAJCQkJCQkJCQkgIGNv bmlzbG9jYWwsCS8qIGlzbG9jYWwgKi8KIAkJCQkJCQkJCSAgY29uaW5oY291bnQsCS8qIGlu aGNvdW50ICovCiAJCQkJCQkJCQkgIGNvbm5vaW5oZXJpdCwgLyogY29uTm9Jbmhlcml0ICov Ci0JCQkJCQkJCQkgIGZhbHNlLAkvKiBjb25QZXJpb2QgKi8KKwkJCQkJCQkJCSAgd2l0aF9w ZXJpb2QsCS8qIGNvblBlcmlvZCAqLwogCQkJCQkJCQkJICBmYWxzZSk7CS8qIGlzX2ludGVy bmFsICovCiAKIAlPYmplY3RBZGRyZXNzU2V0KGFkZHJlc3MsIENvbnN0cmFpbnRSZWxhdGlv bklkLCBjb25zdHJPaWQpOwpAQCAtMTAyMjgsNyArMTAzNDUsOCBAQCBhZGRGa1JlY3Vyc2VS ZWZlcmVuY2VkKExpc3QgKip3cXVldWUsIENvbnN0cmFpbnQgKmZrY29uc3RyYWludCwgUmVs YXRpb24gcmVsLAogCQkJCQkJCQkgICBwZmVxb3BlcmF0b3JzLCBwcGVxb3BlcmF0b3JzLCBm ZmVxb3BlcmF0b3JzLAogCQkJCQkJCQkgICBudW1ma2RlbHNldGNvbHMsIGZrZGVsc2V0Y29s cywKIAkJCQkJCQkJICAgb2xkX2NoZWNrX29rLAotCQkJCQkJCQkgICBkZWxldGVUcmlnZ2Vy T2lkLCB1cGRhdGVUcmlnZ2VyT2lkKTsKKwkJCQkJCQkJICAgZGVsZXRlVHJpZ2dlck9pZCwg dXBkYXRlVHJpZ2dlck9pZCwKKwkJCQkJCQkJICAgd2l0aF9wZXJpb2QpOwogCiAJCQkvKiBE b25lIC0tIGNsZWFuIHVwIChidXQga2VlcCB0aGUgbG9jaykgKi8KIAkJCXRhYmxlX2Nsb3Nl KHBhcnRSZWwsIE5vTG9jayk7CkBAIC0xMDI4Niw3ICsxMDQwNCw4IEBAIGFkZEZrUmVjdXJz ZVJlZmVyZW5jaW5nKExpc3QgKip3cXVldWUsIENvbnN0cmFpbnQgKmZrY29uc3RyYWludCwg UmVsYXRpb24gcmVsLAogCQkJCQkJT2lkICpwZmVxb3BlcmF0b3JzLCBPaWQgKnBwZXFvcGVy YXRvcnMsIE9pZCAqZmZlcW9wZXJhdG9ycywKIAkJCQkJCWludCBudW1ma2RlbHNldGNvbHMs IGludDE2ICpma2RlbHNldGNvbHMsCiAJCQkJCQlib29sIG9sZF9jaGVja19vaywgTE9DS01P REUgbG9ja21vZGUsCi0JCQkJCQlPaWQgcGFyZW50SW5zVHJpZ2dlciwgT2lkIHBhcmVudFVw ZFRyaWdnZXIpCisJCQkJCQlPaWQgcGFyZW50SW5zVHJpZ2dlciwgT2lkIHBhcmVudFVwZFRy aWdnZXIsCisJCQkJCQlib29sIHdpdGhfcGVyaW9kKQogewogCU9pZAkJCWluc2VydFRyaWdn ZXJPaWQsCiAJCQkJdXBkYXRlVHJpZ2dlck9pZDsKQEAgLTEwMzM0LDYgKzEwNDUzLDcgQEAg YWRkRmtSZWN1cnNlUmVmZXJlbmNpbmcoTGlzdCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtj b25zdHJhaW50LCBSZWxhdGlvbiByZWwsCiAJCQluZXdjb24tPnJlZnJlbGlkID0gUmVsYXRp b25HZXRSZWxpZChwa3JlbCk7CiAJCQluZXdjb24tPnJlZmluZGlkID0gaW5kZXhPaWQ7CiAJ CQluZXdjb24tPmNvbmlkID0gcGFyZW50Q29uc3RyOworCQkJbmV3Y29uLT5jb253aXRocGVy aW9kID0gZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZDsKIAkJCW5ld2Nvbi0+cXVhbCA9 IChOb2RlICopIGZrY29uc3RyYWludDsKIAogCQkJdGFiLT5jb25zdHJhaW50cyA9IGxhcHBl bmQodGFiLT5jb25zdHJhaW50cywgbmV3Y29uKTsKQEAgLTEwNDUxLDcgKzEwNTcxLDcgQEAg YWRkRmtSZWN1cnNlUmVmZXJlbmNpbmcoTGlzdCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtj b25zdHJhaW50LCBSZWxhdGlvbiByZWwsCiAJCQkJCQkJCQkgIGZhbHNlLAogCQkJCQkJCQkJ ICAxLAogCQkJCQkJCQkJICBmYWxzZSwKLQkJCQkJCQkJCSAgZmFsc2UsCS8qIGNvblBlcmlv ZCAqLworCQkJCQkJCQkJICB3aXRoX3BlcmlvZCwJLyogY29uUGVyaW9kICovCiAJCQkJCQkJ CQkgIGZhbHNlKTsKIAogCQkJLyoKQEAgLTEwNDgyLDcgKzEwNjAyLDggQEAgYWRkRmtSZWN1 cnNlUmVmZXJlbmNpbmcoTGlzdCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhaW50 LCBSZWxhdGlvbiByZWwsCiAJCQkJCQkJCQlvbGRfY2hlY2tfb2ssCiAJCQkJCQkJCQlsb2Nr bW9kZSwKIAkJCQkJCQkJCWluc2VydFRyaWdnZXJPaWQsCi0JCQkJCQkJCQl1cGRhdGVUcmln Z2VyT2lkKTsKKwkJCQkJCQkJCXVwZGF0ZVRyaWdnZXJPaWQsCisJCQkJCQkJCQl3aXRoX3Bl cmlvZCk7CiAKIAkJCXRhYmxlX2Nsb3NlKHBhcnRpdGlvbiwgTm9Mb2NrKTsKIAkJfQpAQCAt MTA3MTgsNyArMTA4MzksOCBAQCBDbG9uZUZrUmVmZXJlbmNlZChSZWxhdGlvbiBwYXJlbnRS ZWwsIFJlbGF0aW9uIHBhcnRpdGlvblJlbCkKIAkJCQkJCQkgICBjb25mZGVsc2V0Y29scywK IAkJCQkJCQkgICB0cnVlLAogCQkJCQkJCSAgIGRlbGV0ZVRyaWdnZXJPaWQsCi0JCQkJCQkJ ICAgdXBkYXRlVHJpZ2dlck9pZCk7CisJCQkJCQkJICAgdXBkYXRlVHJpZ2dlck9pZCwKKwkJ CQkJCQkgICBjb25zdHJGb3JtLT5jb25wZXJpb2QpOwogCiAJCXRhYmxlX2Nsb3NlKGZrUmVs LCBOb0xvY2spOwogCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOwpAQCAtMTA4MTEsNiArMTA5 MzMsNyBAQCBDbG9uZUZrUmVmZXJlbmNpbmcoTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcGFy ZW50UmVsLCBSZWxhdGlvbiBwYXJ0UmVsKQogCQlMaXN0Q2VsbCAgICpsYzsKIAkJT2lkCQkJ aW5zZXJ0VHJpZ2dlck9pZCwKIAkJCQkJdXBkYXRlVHJpZ2dlck9pZDsKKwkJYm9vbAkJd2l0 aF9wZXJpb2Q7CiAKIAkJdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTEoQ09OU1RST0lELCBPYmpl Y3RJZEdldERhdHVtKHBhcmVudENvbnN0ck9pZCkpOwogCQlpZiAoIUhlYXBUdXBsZUlzVmFs aWQodHVwbGUpKQpAQCAtMTA5MjYsNiArMTEwNDksNyBAQCBDbG9uZUZrUmVmZXJlbmNpbmco TGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcGFyZW50UmVsLCBSZWxhdGlvbiBwYXJ0UmVsKQog CQkJZmtjb25zdHJhaW50LT5jb25uYW1lID0gcHN0cmR1cChOYW1lU3RyKGNvbnN0ckZvcm0t PmNvbm5hbWUpKTsKIAogCQlpbmRleE9pZCA9IGNvbnN0ckZvcm0tPmNvbmluZGlkOworCQl3 aXRoX3BlcmlvZCA9IGNvbnN0ckZvcm0tPmNvbnBlcmlvZDsKIAkJY29uc3RyT2lkID0KIAkJ CUNyZWF0ZUNvbnN0cmFpbnRFbnRyeShma2NvbnN0cmFpbnQtPmNvbm5hbWUsCiAJCQkJCQkJ CSAgY29uc3RyRm9ybS0+Y29ubmFtZXNwYWNlLApAQCAtMTA5NTcsNyArMTEwODEsNyBAQCBD bG9uZUZrUmVmZXJlbmNpbmcoTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcGFyZW50UmVsLCBS ZWxhdGlvbiBwYXJ0UmVsKQogCQkJCQkJCQkgIGZhbHNlLAkvKiBpc2xvY2FsICovCiAJCQkJ CQkJCSAgMSwJLyogaW5oY291bnQgKi8KIAkJCQkJCQkJICBmYWxzZSwJLyogY29uTm9Jbmhl cml0ICovCi0JCQkJCQkJCSAgZmFsc2UsCS8qIGNvblBlcmlvZCAqLworCQkJCQkJCQkgIHdp dGhfcGVyaW9kLAkvKiBjb25QZXJpb2QgKi8KIAkJCQkJCQkJICB0cnVlKTsKIAogCQkvKiBT ZXQgdXAgcGFydGl0aW9uIGRlcGVuZGVuY2llcyBmb3IgdGhlIG5ldyBjb25zdHJhaW50ICov CkBAIC0xMDk5MSw3ICsxMTExNSw4IEBAIENsb25lRmtSZWZlcmVuY2luZyhMaXN0ICoqd3F1 ZXVlLCBSZWxhdGlvbiBwYXJlbnRSZWwsIFJlbGF0aW9uIHBhcnRSZWwpCiAJCQkJCQkJCWZh bHNlLAkvKiBubyBvbGQgY2hlY2sgZXhpc3RzICovCiAJCQkJCQkJCUFjY2Vzc0V4Y2x1c2l2 ZUxvY2ssCiAJCQkJCQkJCWluc2VydFRyaWdnZXJPaWQsCi0JCQkJCQkJCXVwZGF0ZVRyaWdn ZXJPaWQpOworCQkJCQkJCQl1cGRhdGVUcmlnZ2VyT2lkLAorCQkJCQkJCQl3aXRoX3Blcmlv ZCk7CiAJCXRhYmxlX2Nsb3NlKHBrcmVsLCBOb0xvY2spOwogCX0KIApAQCAtMTE4MDIsNyAr MTE5MjcsOCBAQCB0cmFuc2Zvcm1Db2x1bW5OYW1lTGlzdChPaWQgcmVsSWQsIExpc3QgKmNv bExpc3QsCiAgKgogICoJTG9vayB1cCB0aGUgbmFtZXMsIGF0dG51bXMsIGFuZCB0eXBlcyBv ZiB0aGUgcHJpbWFyeSBrZXkgYXR0cmlidXRlcwogICoJZm9yIHRoZSBwa3JlbC4gIEFsc28g cmV0dXJuIHRoZSBpbmRleCBPSUQgYW5kIGluZGV4IG9wY2xhc3NlcyBvZiB0aGUKLSAqCWlu ZGV4IHN1cHBvcnRpbmcgdGhlIHByaW1hcnkga2V5LgorICoJaW5kZXggc3VwcG9ydGluZyB0 aGUgcHJpbWFyeSBrZXkuICBBbHNvIHJldHVybiB3aGV0aGVyIHRoZSBpbmRleCBoYXMKKyAq CVdJVEhPVVQgT1ZFUkxBUFMuCiAgKgogICoJQWxsIHBhcmFtZXRlcnMgZXhjZXB0IHBrcmVs IGFyZSBvdXRwdXQgcGFyYW1ldGVycy4gIEFsc28sIHRoZSBmdW5jdGlvbgogICoJcmV0dXJu IHZhbHVlIGlzIHRoZSBudW1iZXIgb2YgYXR0cmlidXRlcyBpbiB0aGUgcHJpbWFyeSBrZXku CkBAIC0xMTgxMyw3ICsxMTkzOSw3IEBAIHN0YXRpYyBpbnQKIHRyYW5zZm9ybUZrZXlHZXRQ cmltYXJ5S2V5KFJlbGF0aW9uIHBrcmVsLCBPaWQgKmluZGV4T2lkLAogCQkJCQkJICAgTGlz dCAqKmF0dG5hbWVsaXN0LAogCQkJCQkJICAgaW50MTYgKmF0dG51bXMsIE9pZCAqYXR0dHlw aWRzLAotCQkJCQkJICAgT2lkICpvcGNsYXNzZXMpCisJCQkJCQkgICBPaWQgKm9wY2xhc3Nl cywgYm9vbCAqcGtfaGFzX3dpdGhvdXRfb3ZlcmxhcHMpCiB7CiAJTGlzdAkgICAqaW5kZXhv aWRsaXN0OwogCUxpc3RDZWxsICAgKmluZGV4b2lkc2NhbjsKQEAgLTExODkxLDYgKzEyMDE3 LDggQEAgdHJhbnNmb3JtRmtleUdldFByaW1hcnlLZXkoUmVsYXRpb24gcGtyZWwsIE9pZCAq aW5kZXhPaWQsCiAJCQkJCQkJICAgbWFrZVN0cmluZyhwc3RyZHVwKE5hbWVTdHIoKmF0dG51 bUF0dE5hbWUocGtyZWwsIHBrYXR0bm8pKSkpKTsKIAl9CiAKKwkqcGtfaGFzX3dpdGhvdXRf b3ZlcmxhcHMgPSBpbmRleFN0cnVjdC0+aW5kaXNleGNsdXNpb247CisKIAlSZWxlYXNlU3lz Q2FjaGUoaW5kZXhUdXBsZSk7CiAKIAlyZXR1cm4gaTsKQEAgLTExOTA0LDE0ICsxMjAzMiwx NiBAQCB0cmFuc2Zvcm1Ga2V5R2V0UHJpbWFyeUtleShSZWxhdGlvbiBwa3JlbCwgT2lkICpp bmRleE9pZCwKICAqCiAgKglSZXR1cm5zIHRoZSBPSUQgb2YgdGhlIHVuaXF1ZSBpbmRleCBz dXBwb3J0aW5nIHRoZSBjb25zdHJhaW50IGFuZAogICoJcG9wdWxhdGVzIHRoZSBjYWxsZXIt cHJvdmlkZWQgJ29wY2xhc3NlcycgYXJyYXkgd2l0aCB0aGUgb3BjbGFzc2VzCi0gKglhc3Nv Y2lhdGVkIHdpdGggdGhlIGluZGV4IGNvbHVtbnMuCisgKglhc3NvY2lhdGVkIHdpdGggdGhl IGluZGV4IGNvbHVtbnMuICBBbHNvIHNldHMgd2hldGhlciB0aGUgaW5kZXgKKyAqCXVzZXMg V0lUSE9VVCBPVkVSTEFQUy4KICAqCiAgKglSYWlzZXMgYW4gRVJST1Igb24gdmFsaWRhdGlv biBmYWlsdXJlLgogICovCiBzdGF0aWMgT2lkCiB0cmFuc2Zvcm1Ga2V5Q2hlY2tBdHRycyhS ZWxhdGlvbiBwa3JlbCwKIAkJCQkJCWludCBudW1hdHRycywgaW50MTYgKmF0dG51bXMsCi0J CQkJCQlPaWQgKm9wY2xhc3NlcykKKwkJCQkJCWJvb2wgd2l0aF9wZXJpb2QsIE9pZCAqb3Bj bGFzc2VzLAorCQkJCQkJYm9vbCAqcGtfaGFzX3dpdGhvdXRfb3ZlcmxhcHMpCiB7CiAJT2lk CQkJaW5kZXhvaWQgPSBJbnZhbGlkT2lkOwogCWJvb2wJCWZvdW5kID0gZmFsc2U7CkBAIC0x MTk1OCwxMiArMTIwODgsMTIgQEAgdHJhbnNmb3JtRmtleUNoZWNrQXR0cnMoUmVsYXRpb24g cGtyZWwsCiAJCWluZGV4U3RydWN0ID0gKEZvcm1fcGdfaW5kZXgpIEdFVFNUUlVDVChpbmRl eFR1cGxlKTsKIAogCQkvKgotCQkgKiBNdXN0IGhhdmUgdGhlIHJpZ2h0IG51bWJlciBvZiBj b2x1bW5zOyBtdXN0IGJlIHVuaXF1ZSBhbmQgbm90IGEKLQkJICogcGFydGlhbCBpbmRleDsg Zm9yZ2V0IGl0IGlmIHRoZXJlIGFyZSBhbnkgZXhwcmVzc2lvbnMsIHRvby4gSW52YWxpZAot CQkgKiBpbmRleGVzIGFyZSBvdXQgYXMgd2VsbC4KKwkJICogTXVzdCBoYXZlIHRoZSByaWdo dCBudW1iZXIgb2YgY29sdW1uczsgbXVzdCBiZSB1bmlxdWUgKG9yIGlmCisJCSAqIHRlbXBv cmFsIHRoZW4gZXhjbHVzaW9uIGluc3RlYWQpIGFuZCBub3QgYSBwYXJ0aWFsIGluZGV4OyBm b3JnZXQgaXQKKwkJICogaWYgdGhlcmUgYXJlIGFueSBleHByZXNzaW9ucywgdG9vLiBJbnZh bGlkIGluZGV4ZXMgYXJlIG91dCBhcyB3ZWxsLgogCQkgKi8KIAkJaWYgKGluZGV4U3RydWN0 LT5pbmRua2V5YXR0cyA9PSBudW1hdHRycyAmJgotCQkJaW5kZXhTdHJ1Y3QtPmluZGlzdW5p cXVlICYmCisJCQkod2l0aF9wZXJpb2QgPyBpbmRleFN0cnVjdC0+aW5kaXNleGNsdXNpb24g OiBpbmRleFN0cnVjdC0+aW5kaXN1bmlxdWUpICYmCiAJCQlpbmRleFN0cnVjdC0+aW5kaXN2 YWxpZCAmJgogCQkJaGVhcF9hdHRpc251bGwoaW5kZXhUdXBsZSwgQW51bV9wZ19pbmRleF9p bmRwcmVkLCBOVUxMKSAmJgogCQkJaGVhcF9hdHRpc251bGwoaW5kZXhUdXBsZSwgQW51bV9w Z19pbmRleF9pbmRleHBycywgTlVMTCkpCkBAIC0xMjAwMSw2ICsxMjEzMSwxMyBAQCB0cmFu c2Zvcm1Ga2V5Q2hlY2tBdHRycyhSZWxhdGlvbiBwa3JlbCwKIAkJCQlpZiAoIWZvdW5kKQog CQkJCQlicmVhazsKIAkJCX0KKwkJCS8qIFRoZSBsYXN0IGF0dHJpYnV0ZSBpbiB0aGUgaW5k ZXggbXVzdCBiZSB0aGUgUEVSSU9EIEZLIHBhcnQgKi8KKwkJCWlmIChmb3VuZCAmJiB3aXRo X3BlcmlvZCkKKwkJCXsKKwkJCQlpbnQxNgkJcGVyaW9kYXR0bnVtID0gYXR0bnVtc1tudW1h dHRycyAtIDFdOworCisJCQkJZm91bmQgPSAocGVyaW9kYXR0bnVtID09IGluZGV4U3RydWN0 LT5pbmRrZXkudmFsdWVzW251bWF0dHJzIC0gMV0pOworCQkJfQogCiAJCQkvKgogCQkJICog UmVmdXNlIHRvIHVzZSBhIGRlZmVycmFibGUgdW5pcXVlL3ByaW1hcnkga2V5LiAgVGhpcyBp cyBwZXIgU1FMCkBAIC0xMjAxNiw2ICsxMjE1MywxMCBAQCB0cmFuc2Zvcm1Ga2V5Q2hlY2tB dHRycyhSZWxhdGlvbiBwa3JlbCwKIAkJCQlmb3VuZF9kZWZlcnJhYmxlID0gdHJ1ZTsKIAkJ CQlmb3VuZCA9IGZhbHNlOwogCQkJfQorCisJCQkvKiBXZSBuZWVkIHRvIGtub3cgd2hldGhl ciB0aGUgaW5kZXggaGFzIFdJVEhPVVQgT1ZFUkxBUFMgKi8KKwkJCWlmIChmb3VuZCkKKwkJ CQkqcGtfaGFzX3dpdGhvdXRfb3ZlcmxhcHMgPSBpbmRleFN0cnVjdC0+aW5kaXNleGNsdXNp b247CiAJCX0KIAkJUmVsZWFzZVN5c0NhY2hlKGluZGV4VHVwbGUpOwogCQlpZiAoZm91bmQp CkBAIC0xMjExMCw3ICsxMjI1MSw4IEBAIHZhbGlkYXRlRm9yZWlnbktleUNvbnN0cmFpbnQo Y2hhciAqY29ubmFtZSwKIAkJCQkJCQkgUmVsYXRpb24gcmVsLAogCQkJCQkJCSBSZWxhdGlv biBwa3JlbCwKIAkJCQkJCQkgT2lkIHBraW5kT2lkLAotCQkJCQkJCSBPaWQgY29uc3RyYWlu dE9pZCkKKwkJCQkJCQkgT2lkIGNvbnN0cmFpbnRPaWQsCisJCQkJCQkJIGJvb2wgaGFzcGVy aW9kKQogewogCVR1cGxlVGFibGVTbG90ICpzbG90OwogCVRhYmxlU2NhbkRlc2Mgc2NhbjsK QEAgLTEyMTM4LDkgKzEyMjgwLDExIEBAIHZhbGlkYXRlRm9yZWlnbktleUNvbnN0cmFpbnQo Y2hhciAqY29ubmFtZSwKIAogCS8qCiAJICogU2VlIGlmIHdlIGNhbiBkbyBpdCB3aXRoIGEg c2luZ2xlIExFRlQgSk9JTiBxdWVyeS4gIEEgZmFsc2UgcmVzdWx0Ci0JICogaW5kaWNhdGVz IHdlIG11c3QgcHJvY2VlZCB3aXRoIHRoZSBmaXJlLXRoZS10cmlnZ2VyIG1ldGhvZC4KKwkg KiBpbmRpY2F0ZXMgd2UgbXVzdCBwcm9jZWVkIHdpdGggdGhlIGZpcmUtdGhlLXRyaWdnZXIg bWV0aG9kLiBXZSBjYW4ndCBkbworCSAqIGEgTEVGVCBKT0lOIGZvciB0ZW1wb3JhbCBGS3Mg eWV0LCBidXQgd2UgY2FuIG9uY2Ugd2Ugc3VwcG9ydCB0ZW1wb3JhbAorCSAqIGxlZnQgam9p bnMuCiAJICovCi0JaWYgKFJJX0luaXRpYWxfQ2hlY2soJnRyaWcsIHJlbCwgcGtyZWwpKQor CWlmICghaGFzcGVyaW9kICYmIFJJX0luaXRpYWxfQ2hlY2soJnRyaWcsIHJlbCwgcGtyZWwp KQogCQlyZXR1cm47CiAKIAkvKgpAQCAtMTIyOTEsNiArMTI0MzUsNyBAQCBjcmVhdGVGb3Jl aWduS2V5QWN0aW9uVHJpZ2dlcnMoUmVsYXRpb24gcmVsLCBPaWQgcmVmUmVsT2lkLCBDb25z dHJhaW50ICpma2NvbnN0cgogCWZrX3RyaWdnZXItPndoZW5DbGF1c2UgPSBOVUxMOwogCWZr X3RyaWdnZXItPnRyYW5zaXRpb25SZWxzID0gTklMOwogCWZrX3RyaWdnZXItPmNvbnN0cnJl bCA9IE5VTEw7CisKIAlzd2l0Y2ggKGZrY29uc3RyYWludC0+ZmtfZGVsX2FjdGlvbikKIAl7 CiAJCWNhc2UgRktDT05TVFJfQUNUSU9OX05PQUNUSU9OOgpAQCAtMTIzNTEsNiArMTI0OTYs NyBAQCBjcmVhdGVGb3JlaWduS2V5QWN0aW9uVHJpZ2dlcnMoUmVsYXRpb24gcmVsLCBPaWQg cmVmUmVsT2lkLCBDb25zdHJhaW50ICpma2NvbnN0cgogCWZrX3RyaWdnZXItPndoZW5DbGF1 c2UgPSBOVUxMOwogCWZrX3RyaWdnZXItPnRyYW5zaXRpb25SZWxzID0gTklMOwogCWZrX3Ry aWdnZXItPmNvbnN0cnJlbCA9IE5VTEw7CisKIAlzd2l0Y2ggKGZrY29uc3RyYWludC0+Zmtf dXBkX2FjdGlvbikKIAl7CiAJCWNhc2UgRktDT05TVFJfQUNUSU9OX05PQUNUSU9OOgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKaW5kZXggZWFmYTI5MGI4OGIuLjRhZGRmNGQ1MzNlIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKQEAgLTUyNSwxMiArNTI1LDEzIEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmll d1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJ CQkJIFNldFJlc2V0Q2xhdXNlIEZ1bmN0aW9uU2V0UmVzZXRDbGF1c2UKIAogJXR5cGUgPG5v ZGU+CVRhYmxlRWxlbWVudCBUeXBlZFRhYmxlRWxlbWVudCBDb25zdHJhaW50RWxlbSBEb21h aW5Db25zdHJhaW50RWxlbSBUYWJsZUZ1bmNFbGVtZW50Ci0ldHlwZSA8bm9kZT4JY29sdW1u RGVmIGNvbHVtbk9wdGlvbnMKKyV0eXBlIDxub2RlPgljb2x1bW5EZWYgY29sdW1uT3B0aW9u cyBvcHRpb25hbFBlcmlvZE5hbWUKICV0eXBlIDxkZWZlbHQ+CWRlZl9lbGVtIHJlbG9wdGlv bl9lbGVtIG9sZF9hZ2dyX2VsZW0gb3BlcmF0b3JfZGVmX2VsZW0KICV0eXBlIDxub2RlPglk ZWZfYXJnIGNvbHVtbkVsZW0gd2hlcmVfY2xhdXNlIHdoZXJlX29yX2N1cnJlbnRfY2xhdXNl CiAJCQkJYV9leHByIGJfZXhwciBjX2V4cHIgQWV4cHJDb25zdCBpbmRpcmVjdGlvbl9lbCBv cHRfc2xpY2VfYm91bmQKIAkJCQljb2x1bW5yZWYgaW5fZXhwciBoYXZpbmdfY2xhdXNlIGZ1 bmNfdGFibGUgeG1sdGFibGUgYXJyYXlfZXhwcgogCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJh dG9yX2RlZl9hcmcKKyV0eXBlIDxsaXN0PglvcHRfY29sdW1uX2FuZF9wZXJpb2RfbGlzdAog JXR5cGUgPGxpc3Q+CXJvd3Nmcm9tX2l0ZW0gcm93c2Zyb21fbGlzdCBvcHRfY29sX2RlZl9s aXN0CiAldHlwZSA8Ym9vbGVhbj4gb3B0X29yZGluYWxpdHkgb3B0X3dpdGhvdXRfb3Zlcmxh cHMKICV0eXBlIDxsaXN0PglFeGNsdXNpb25Db25zdHJhaW50TGlzdCBFeGNsdXNpb25Db25z dHJhaW50RWxlbQpAQCAtNzY0LDcgKzc2NSw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJz aXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVy eSk7CiAJT1ZFUiBPVkVSTEFQUyBPVkVSTEFZIE9WRVJSSURJTkcgT1dORUQgT1dORVIKIAog CVBBUkFMTEVMIFBBUkFNRVRFUiBQQVJTRVIgUEFSVElBTCBQQVJUSVRJT04gUEFSVElUSU9O UyBQQVNTSU5HIFBBU1NXT1JEIFBBVEgKLQlQTEFDSU5HIFBMQU4gUExBTlMgUE9MSUNZCisJ UEVSSU9EIFBMQUNJTkcgUExBTiBQTEFOUyBQT0xJQ1kKIAlQT1NJVElPTiBQUkVDRURJTkcg UFJFQ0lTSU9OIFBSRVNFUlZFIFBSRVBBUkUgUFJFUEFSRUQgUFJJTUFSWQogCVBSSU9SIFBS SVZJTEVHRVMgUFJPQ0VEVVJBTCBQUk9DRURVUkUgUFJPQ0VEVVJFUyBQUk9HUkFNIFBVQkxJ Q0FUSU9OCiAKQEAgLTQyODIsMjEgKzQyODMsMzEgQEAgQ29uc3RyYWludEVsZW06CiAJCQkJ CQkJCSAgIE5VTEwsIHl5c2Nhbm5lcik7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9 Ci0JCQl8IEZPUkVJR04gS0VZICcoJyBjb2x1bW5MaXN0ICcpJyBSRUZFUkVOQ0VTIHF1YWxp ZmllZF9uYW1lCi0JCQkJb3B0X2NvbHVtbl9saXN0IGtleV9tYXRjaCBrZXlfYWN0aW9ucyBD b25zdHJhaW50QXR0cmlidXRlU3BlYworCQkJfCBGT1JFSUdOIEtFWSAnKCcgY29sdW1uTGlz dCBvcHRpb25hbFBlcmlvZE5hbWUgJyknIFJFRkVSRU5DRVMgcXVhbGlmaWVkX25hbWUKKwkJ CQlvcHRfY29sdW1uX2FuZF9wZXJpb2RfbGlzdCBrZXlfbWF0Y2gga2V5X2FjdGlvbnMgQ29u c3RyYWludEF0dHJpYnV0ZVNwZWMKIAkJCQl7CiAJCQkJCUNvbnN0cmFpbnQgKm4gPSBtYWtl Tm9kZShDb25zdHJhaW50KTsKIAogCQkJCQluLT5jb250eXBlID0gQ09OU1RSX0ZPUkVJR047 CiAJCQkJCW4tPmxvY2F0aW9uID0gQDE7Ci0JCQkJCW4tPnBrdGFibGUgPSAkNzsKKwkJCQkJ bi0+cGt0YWJsZSA9ICQ4OwogCQkJCQluLT5ma19hdHRycyA9ICQ0OwotCQkJCQluLT5wa19h dHRycyA9ICQ4OwotCQkJCQluLT5ma19tYXRjaHR5cGUgPSAkOTsKLQkJCQkJbi0+ZmtfdXBk X2FjdGlvbiA9ICgkMTApLT51cGRhdGVBY3Rpb24tPmFjdGlvbjsKLQkJCQkJbi0+ZmtfZGVs X2FjdGlvbiA9ICgkMTApLT5kZWxldGVBY3Rpb24tPmFjdGlvbjsKLQkJCQkJbi0+ZmtfZGVs X3NldF9jb2xzID0gKCQxMCktPmRlbGV0ZUFjdGlvbi0+Y29sczsKLQkJCQkJcHJvY2Vzc0NB U2JpdHMoJDExLCBAMTEsICJGT1JFSUdOIEtFWSIsCisJCQkJCWlmICgkNSkKKwkJCQkJewor CQkJCQkJbi0+ZmtfYXR0cnMgPSBsYXBwZW5kKG4tPmZrX2F0dHJzLCAkNSk7CisJCQkJCQlu LT5ma193aXRoX3BlcmlvZCA9IHRydWU7CisJCQkJCX0KKwkJCQkJbi0+cGtfYXR0cnMgPSBs aW5pdGlhbCgkOSk7CisJCQkJCWlmIChsc2Vjb25kKCQ5KSkKKwkJCQkJeworCQkJCQkJbi0+ cGtfYXR0cnMgPSBsYXBwZW5kKG4tPnBrX2F0dHJzLCBsc2Vjb25kKCQ5KSk7CisJCQkJCQlu LT5wa193aXRoX3BlcmlvZCA9IHRydWU7CisJCQkJCX0KKwkJCQkJbi0+ZmtfbWF0Y2h0eXBl ID0gJDEwOworCQkJCQluLT5ma191cGRfYWN0aW9uID0gKCQxMSktPnVwZGF0ZUFjdGlvbi0+ YWN0aW9uOworCQkJCQluLT5ma19kZWxfYWN0aW9uID0gKCQxMSktPmRlbGV0ZUFjdGlvbi0+ YWN0aW9uOworCQkJCQluLT5ma19kZWxfc2V0X2NvbHMgPSAoJDExKS0+ZGVsZXRlQWN0aW9u LT5jb2xzOworCQkJCQlwcm9jZXNzQ0FTYml0cygkMTIsIEAxMiwgIkZPUkVJR04gS0VZIiwK IAkJCQkJCQkJICAgJm4tPmRlZmVycmFibGUsICZuLT5pbml0ZGVmZXJyZWQsCiAJCQkJCQkJ CSAgICZuLT5za2lwX3ZhbGlkYXRpb24sIE5VTEwsCiAJCQkJCQkJCSAgIHl5c2Nhbm5lcik7 CkBAIC00Mzc4LDYgKzQzODksMTYgQEAgY29sdW1uTGlzdDoKIAkJCXwgY29sdW1uTGlzdCAn LCcgY29sdW1uRWxlbQkJCQl7ICQkID0gbGFwcGVuZCgkMSwgJDMpOyB9CiAJCTsKIAorb3B0 aW9uYWxQZXJpb2ROYW1lOgorCQkJJywnIFBFUklPRCBjb2x1bW5FbGVtIHsgJCQgPSAkMzsg fQorCQkJfCAvKkVNUFRZKi8gICAgICAgICAgICAgICB7ICQkID0gTlVMTDsgfQorCTsKKwor b3B0X2NvbHVtbl9hbmRfcGVyaW9kX2xpc3Q6CisJCQknKCcgY29sdW1uTGlzdCBvcHRpb25h bFBlcmlvZE5hbWUgJyknCQkJeyAkJCA9IGxpc3RfbWFrZTIoJDIsICQzKTsgfQorCQkJfCAv KkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBsaXN0X21ha2UyKE5JTCwgTlVMTCk7IH0KKwkJOwor CiBjb2x1bW5FbGVtOiBDb2xJZAogCQkJCXsKIAkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlU3Ry aW5nKCQxKTsKQEAgLTE3NzcyLDYgKzE3NzkzLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgog CQkJfCBQQVNTSU5HCiAJCQl8IFBBU1NXT1JECiAJCQl8IFBBVEgKKwkJCXwgUEVSSU9ECiAJ CQl8IFBMQU4KIAkJCXwgUExBTlMKIAkJCXwgUE9MSUNZCkBAIC0xODM5OCw2ICsxODQyMCw3 IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgUEFTU0lORwogCQkJfCBQQVNTV09SRAog CQkJfCBQQVRICisJCQl8IFBFUklPRAogCQkJfCBQTEFDSU5HCiAJCQl8IFBMQU4KIAkJCXwg UExBTlMKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMKaW5kZXggNjI2MDFhNmQ4 MGMuLmEyY2M4MzdlYmY5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlf dHJpZ2dlcnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwpA QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnN0cmFp bnQuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjb21tYW5k cy90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRl ICJleGVjdXRvci9zcGkuaCIKQEAgLTQ1LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJ1dGlscy9p bnZhbC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxz L21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvcmFuZ2V0eXBlcy5oIgogI2luY2x1ZGUg InV0aWxzL3JlbC5oIgogI2luY2x1ZGUgInV0aWxzL3Jscy5oIgogI2luY2x1ZGUgInV0aWxz L3J1bGV1dGlscy5oIgpAQCAtOTYsNiArOTgsOSBAQAogICoKICAqIEluZm9ybWF0aW9uIGV4 dHJhY3RlZCBmcm9tIGFuIEZLIHBnX2NvbnN0cmFpbnQgZW50cnkuICBUaGlzIGlzIGNhY2hl ZCBpbgogICogcmlfY29uc3RyYWludF9jYWNoZS4KKyAqCisgKiBOb3RlIHRoYXQgcGYvcHAv ZmZfZXFfb3BycyBtYXkgaG9sZCB0aGUgb3ZlcmxhcHMgb3BlcmF0b3IgaW5zdGVhZCBvZiBl cXVhbHMKKyAqIGZvciB0aGUgUEVSSU9EIHBhcnQgb2YgYSB0ZW1wb3JhbCBmb3JlaWduIGtl eS4KICAqLwogdHlwZWRlZiBzdHJ1Y3QgUklfQ29uc3RyYWludEluZm8KIHsKQEAgLTExNSwx MiArMTIwLDE1IEBAIHR5cGVkZWYgc3RydWN0IFJJX0NvbnN0cmFpbnRJbmZvCiAJaW50MTYJ CWNvbmZkZWxzZXRjb2xzW1JJX01BWF9OVU1LRVlTXTsgLyogYXR0bnVtcyBvZiBjb2xzIHRv IHNldCBvbgogCQkJCQkJCQkJCQkJICogZGVsZXRlICovCiAJY2hhcgkJY29uZm1hdGNodHlw ZTsJLyogZm9yZWlnbiBrZXkncyBtYXRjaCB0eXBlICovCisJYm9vbAkJaGFzcGVyaW9kOwkJ LyogaWYgdGhlIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EICovCiAJaW50CQkJbmtleXM7CQkJ LyogbnVtYmVyIG9mIGtleSBjb2x1bW5zICovCiAJaW50MTYJCXBrX2F0dG51bXNbUklfTUFY X05VTUtFWVNdOyAvKiBhdHRudW1zIG9mIHJlZmVyZW5jZWQgY29scyAqLwogCWludDE2CQlm a19hdHRudW1zW1JJX01BWF9OVU1LRVlTXTsgLyogYXR0bnVtcyBvZiByZWZlcmVuY2luZyBj b2xzICovCiAJT2lkCQkJcGZfZXFfb3Byc1tSSV9NQVhfTlVNS0VZU107IC8qIGVxdWFsaXR5 IG9wZXJhdG9ycyAoUEsgPSBGSykgKi8KIAlPaWQJCQlwcF9lcV9vcHJzW1JJX01BWF9OVU1L RVlTXTsgLyogZXF1YWxpdHkgb3BlcmF0b3JzIChQSyA9IFBLKSAqLwogCU9pZAkJCWZmX2Vx X29wcnNbUklfTUFYX05VTUtFWVNdOyAvKiBlcXVhbGl0eSBvcGVyYXRvcnMgKEZLID0gRksp ICovCisJT2lkCQkJcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyOwkvKiBhbnlyYW5nZSA8QCBh bnlyYW5nZSAqLworCU9pZAkJCWFnZ2VkX3BlcmlvZF9jb250YWluZWRfYnlfb3BlcjsgLyog ZmthdHRyIDxAIHJhbmdlX2FnZyhwa2F0dHIpICovCiAJZGxpc3Rfbm9kZQl2YWxpZF9saW5r OwkJLyogTGluayBpbiBsaXN0IG9mIHZhbGlkIGVudHJpZXMgKi8KIH0gUklfQ29uc3RyYWlu dEluZm87CiAKQEAgLTE5OSw4ICsyMDcsOCBAQCBzdGF0aWMgdm9pZCByaV9CdWlsZFF1ZXJ5 S2V5KFJJX1F1ZXJ5S2V5ICprZXksCiAJCQkJCQkJIGludDMyIGNvbnN0cl9xdWVyeW5vKTsK IHN0YXRpYyBib29sIHJpX0tleXNFcXVhbChSZWxhdGlvbiByZWwsIFR1cGxlVGFibGVTbG90 ICpvbGRzbG90LCBUdXBsZVRhYmxlU2xvdCAqbmV3c2xvdCwKIAkJCQkJCSBjb25zdCBSSV9D b25zdHJhaW50SW5mbyAqcmlpbmZvLCBib29sIHJlbF9pc19wayk7Ci1zdGF0aWMgYm9vbCBy aV9BdHRyaWJ1dGVzRXF1YWwoT2lkIGVxX29wciwgT2lkIHR5cGVpZCwKLQkJCQkJCQkgICBE YXR1bSBvbGR2YWx1ZSwgRGF0dW0gbmV3dmFsdWUpOworc3RhdGljIGJvb2wgcmlfQ29tcGFy ZVdpdGhDYXN0KE9pZCBlcV9vcHIsIE9pZCB0eXBlaWQsCisJCQkJCQkJICAgRGF0dW0gbGhz LCBEYXR1bSByaHMpOwogCiBzdGF0aWMgdm9pZCByaV9Jbml0SGFzaFRhYmxlcyh2b2lkKTsK IHN0YXRpYyB2b2lkIEludmFsaWRhdGVDb25zdHJhaW50Q2FjaGVDYWxsQmFjayhEYXR1bSBh cmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKTsKQEAgLTM2MiwxNCArMzcwLDQx IEBAIFJJX0ZLZXlfY2hlY2soVHJpZ2dlckRhdGEgKnRyaWdkYXRhKQogCQkgKgkJICAgRk9S IEtFWSBTSEFSRSBPRiB4CiAJCSAqIFRoZSB0eXBlIGlkJ3MgZm9yIHRoZSAkIHBhcmFtZXRl cnMgYXJlIHRob3NlIG9mIHRoZQogCQkgKiBjb3JyZXNwb25kaW5nIEZLIGF0dHJpYnV0ZXMu CisJCSAqCisJCSAqIEJ1dCBmb3IgdGVtcG9yYWwgRktzIHdlIG5lZWQgdG8gbWFrZSBzdXJl CisJCSAqIHRoZSBGSydzIHJhbmdlIGlzIGNvbXBsZXRlbHkgY292ZXJlZC4KKwkJICogU28g d2UgdXNlIHRoaXMgcXVlcnkgaW5zdGVhZDoKKwkJICogIFNFTEVDVCAxCisJCSAqCUZST00J KAorCQkgKgkJU0VMRUNUIHBrcGVyaW9kYXR0IEFTIHIKKwkJICoJCUZST00gICBbT05MWV0g cGt0YWJsZSB4CisJCSAqCQlXSEVSRSAgcGthdHQxID0gJDEgW0FORCAuLi5dCisJCSAqCQlB TkQgICAgcGtwZXJpb2RhdHQgJiYgJG4KKwkJICoJCUZPUiBLRVkgU0hBUkUgT0YgeAorCQkg KgkpIHgxCisJCSAqICBIQVZJTkcgJG4gPEAgcmFuZ2VfYWdnKHgxLnIpCisJCSAqIE5vdGUg aWYgRk9SIEtFWSBTSEFSRSBldmVyIGFsbG93cyBHUk9VUCBCWSBhbmQgSEFWSU5HCisJCSAq IHdlIGNhbiBtYWtlIHRoaXMgYSBiaXQgc2ltcGxlci4KIAkJICogLS0tLS0tLS0tLQogCQkg Ki8KIAkJaW5pdFN0cmluZ0luZm8oJnF1ZXJ5YnVmKTsKIAkJcGtfb25seSA9IHBrX3JlbC0+ cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUgPwogCQkJIiIg OiAiT05MWSAiOwogCQlxdW90ZVJlbGF0aW9uTmFtZShwa3JlbG5hbWUsIHBrX3JlbCk7Ci0J CWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLCAiU0VMRUNUIDEgRlJPTSAlcyVzIHgiLAot CQkJCQkJIHBrX29ubHksIHBrcmVsbmFtZSk7CisJCWlmIChyaWluZm8tPmhhc3BlcmlvZCkK KwkJeworCQkJcXVvdGVPbmVOYW1lKGF0dG5hbWUsCisJCQkJCQkgUklBdHROYW1lKHBrX3Jl bCwgcmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXSkpOworCisJCQlhcHBl bmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwKKwkJCQkJCQkgIlNFTEVDVCAxIEZST00gKFNFTEVD VCAlcyBBUyByIEZST00gJXMlcyB4IiwKKwkJCQkJCQkgYXR0bmFtZSwgcGtfb25seSwgcGty ZWxuYW1lKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5 YnVmLCAiU0VMRUNUIDEgRlJPTSAlcyVzIHgiLAorCQkJCQkJCSBwa19vbmx5LCBwa3JlbG5h bWUpOworCQl9CiAJCXF1ZXJ5c2VwID0gIldIRVJFIjsKIAkJZm9yIChpbnQgaSA9IDA7IGkg PCByaWluZm8tPm5rZXlzOyBpKyspCiAJCXsKQEAgLTM4Nyw2ICs0MjIsMTggQEAgUklfRktl eV9jaGVjayhUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEpCiAJCQlxdWVyeW9pZHNbaV0gPSBma190 eXBlOwogCQl9CiAJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJnF1ZXJ5YnVmLCAiIEZPUiBL RVkgU0hBUkUgT0YgeCIpOworCQlpZiAocmlpbmZvLT5oYXNwZXJpb2QpCisJCXsKKwkJCU9p ZAkJCWZrX3R5cGUgPSBSSUF0dFR5cGUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbcmlp bmZvLT5ua2V5cyAtIDFdKTsKKworCQkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICIp IHgxIEhBVklORyAiKTsKKwkJCXNwcmludGYocGFyYW1uYW1lLCAiJCVkIiwgcmlpbmZvLT5u a2V5cyk7CisJCQlyaV9HZW5lcmF0ZVF1YWwoJnF1ZXJ5YnVmLCAiIiwKKwkJCQkJCQlwYXJh bW5hbWUsIGZrX3R5cGUsCisJCQkJCQkJcmlpbmZvLT5hZ2dlZF9wZXJpb2RfY29udGFpbmVk X2J5X29wZXIsCisJCQkJCQkJInBnX2NhdGFsb2cucmFuZ2VfYWdnIiwgQU5ZTVVMVElSQU5H RU9JRCk7CisJCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwgIih4MS5yKSIpOworCQl9 CiAKIAkJLyogUHJlcGFyZSBhbmQgc2F2ZSB0aGUgcGxhbiAqLwogCQlxcGxhbiA9IHJpX1Bs YW5DaGVjayhxdWVyeWJ1Zi5kYXRhLCByaWluZm8tPm5rZXlzLCBxdWVyeW9pZHMsCkBAIC00 OTQsMTQgKzU0MSwzOSBAQCByaV9DaGVja19Qa19NYXRjaChSZWxhdGlvbiBwa19yZWwsIFJl bGF0aW9uIGZrX3JlbCwKIAkJICoJCSAgIEZPUiBLRVkgU0hBUkUgT0YgeAogCQkgKiBUaGUg dHlwZSBpZCdzIGZvciB0aGUgJCBwYXJhbWV0ZXJzIGFyZSB0aG9zZSBvZiB0aGUKIAkJICog UEsgYXR0cmlidXRlcyB0aGVtc2VsdmVzLgorCQkgKiBCdXQgZm9yIHRlbXBvcmFsIEZLcyB3 ZSBuZWVkIHRvIG1ha2Ugc3VyZQorCQkgKiB0aGUgRksncyByYW5nZSBpcyBjb21wbGV0ZWx5 IGNvdmVyZWQuCisJCSAqIFNvIHdlIHVzZSB0aGlzIHF1ZXJ5IGluc3RlYWQ6CisJCSAqICBT RUxFQ1QgMQorCQkgKiAgRlJPTSAgICAoCisJCSAqCSAgU0VMRUNUIHBrcGVyaW9kYXR0IEFT IHIKKwkJICoJICBGUk9NICAgW09OTFldIHBrdGFibGUgeAorCQkgKgkgIFdIRVJFICBwa2F0 dDEgPSAkMSBbQU5EIC4uLl0KKwkJICoJICBBTkQgICAgcGtwZXJpb2RhdHQgJiYgJG4KKwkJ ICoJICBGT1IgS0VZIFNIQVJFIE9GIHgKKwkJICogICkgeDEKKwkJICogIEhBVklORyAkbiA8 QCByYW5nZV9hZ2coeDEucikKKwkJICogTm90ZSBpZiBGT1IgS0VZIFNIQVJFIGV2ZXIgYWxs b3dzIEdST1VQIEJZIGFuZCBIQVZJTkcKKwkJICogd2UgY2FuIG1ha2UgdGhpcyBhIGJpdCBz aW1wbGVyLgogCQkgKiAtLS0tLS0tLS0tCiAJCSAqLwogCQlpbml0U3RyaW5nSW5mbygmcXVl cnlidWYpOwogCQlwa19vbmx5ID0gcGtfcmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lO RF9QQVJUSVRJT05FRF9UQUJMRSA/CiAJCQkiIiA6ICJPTkxZICI7CiAJCXF1b3RlUmVsYXRp b25OYW1lKHBrcmVsbmFtZSwgcGtfcmVsKTsKLQkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnli dWYsICJTRUxFQ1QgMSBGUk9NICVzJXMgeCIsCi0JCQkJCQkgcGtfb25seSwgcGtyZWxuYW1l KTsKKwkJaWYgKHJpaW5mby0+aGFzcGVyaW9kKQorCQl7CisJCQlxdW90ZU9uZU5hbWUoYXR0 bmFtZSwgUklBdHROYW1lKHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtl eXMgLSAxXSkpOworCisJCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwKKwkJCQkJCQkg IlNFTEVDVCAxIEZST00gKFNFTEVDVCAlcyBBUyByIEZST00gJXMlcyB4IiwKKwkJCQkJCQkg YXR0bmFtZSwgcGtfb25seSwgcGtyZWxuYW1lKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCWFw cGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLCAiU0VMRUNUIDEgRlJPTSAlcyVzIHgiLAorCQkJ CQkJCSBwa19vbmx5LCBwa3JlbG5hbWUpOworCQl9CiAJCXF1ZXJ5c2VwID0gIldIRVJFIjsK IAkJZm9yIChpbnQgaSA9IDA7IGkgPCByaWluZm8tPm5rZXlzOyBpKyspCiAJCXsKQEAgLTUx OCw2ICs1OTAsMTggQEAgcmlfQ2hlY2tfUGtfTWF0Y2goUmVsYXRpb24gcGtfcmVsLCBSZWxh dGlvbiBma19yZWwsCiAJCQlxdWVyeW9pZHNbaV0gPSBwa190eXBlOwogCQl9CiAJCWFwcGVu ZFN0cmluZ0luZm9TdHJpbmcoJnF1ZXJ5YnVmLCAiIEZPUiBLRVkgU0hBUkUgT0YgeCIpOwor CQlpZiAocmlpbmZvLT5oYXNwZXJpb2QpCisJCXsKKwkJCU9pZAkJCWZrX3R5cGUgPSBSSUF0 dFR5cGUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKTsK KworCQkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICIpIHgxIEhBVklORyAiKTsKKwkJ CXNwcmludGYocGFyYW1uYW1lLCAiJCVkIiwgcmlpbmZvLT5ua2V5cyk7CisJCQlyaV9HZW5l cmF0ZVF1YWwoJnF1ZXJ5YnVmLCAiIiwKKwkJCQkJCQlwYXJhbW5hbWUsIGZrX3R5cGUsCisJ CQkJCQkJcmlpbmZvLT5hZ2dlZF9wZXJpb2RfY29udGFpbmVkX2J5X29wZXIsCisJCQkJCQkJ InBnX2NhdGFsb2cucmFuZ2VfYWdnIiwgQU5ZTVVMVElSQU5HRU9JRCk7CisJCQlhcHBlbmRT dHJpbmdJbmZvKCZxdWVyeWJ1ZiwgIih4MS5yKSIpOworCQl9CiAKIAkJLyogUHJlcGFyZSBh bmQgc2F2ZSB0aGUgcGxhbiAqLwogCQlxcGxhbiA9IHJpX1BsYW5DaGVjayhxdWVyeWJ1Zi5k YXRhLCByaWluZm8tPm5rZXlzLCBxdWVyeW9pZHMsCkBAIC0yMTYyLDYgKzIyNDYsNyBAQCBy aV9Mb2FkQ29uc3RyYWludEluZm8oT2lkIGNvbnN0cmFpbnRPaWQpCiAJcmlpbmZvLT5jb25m dXBkdHlwZSA9IGNvbkZvcm0tPmNvbmZ1cGR0eXBlOwogCXJpaW5mby0+Y29uZmRlbHR5cGUg PSBjb25Gb3JtLT5jb25mZGVsdHlwZTsKIAlyaWluZm8tPmNvbmZtYXRjaHR5cGUgPSBjb25G b3JtLT5jb25mbWF0Y2h0eXBlOworCXJpaW5mby0+aGFzcGVyaW9kID0gY29uRm9ybS0+Y29u cGVyaW9kOwogCiAJRGVjb25zdHJ1Y3RGa0NvbnN0cmFpbnRSb3codHVwLAogCQkJCQkJCSAg ICZyaWluZm8tPm5rZXlzLApAQCAtMjE3Myw2ICsyMjU4LDIwIEBAIHJpX0xvYWRDb25zdHJh aW50SW5mbyhPaWQgY29uc3RyYWludE9pZCkKIAkJCQkJCQkgICAmcmlpbmZvLT5uZGVsc2V0 Y29scywKIAkJCQkJCQkgICByaWluZm8tPmNvbmZkZWxzZXRjb2xzKTsKIAorCS8qCisJICog Rm9yIHRlbXBvcmFsIEZLcywgZ2V0IHRoZSBvcGVyYXRvcnMgYW5kIGZ1bmN0aW9ucyB3ZSBu ZWVkLiBXZSBhc2sgdGhlCisJICogb3BjbGFzcyBvZiB0aGUgUEsgZWxlbWVudCBmb3IgdGhl c2UuIFRoaXMgYWxsIGdldHMgY2FjaGVkIChhcyBkb2VzIHRoZQorCSAqIGdlbmVyYXRlZCBw bGFuKSwgc28gdGhlcmUncyBubyBwZXJmb3JtYW5jZSBpc3N1ZS4KKwkgKi8KKwlpZiAocmlp bmZvLT5oYXNwZXJpb2QpCisJeworCQlPaWQJCQlvcGNsYXNzID0gZ2V0X2luZGV4X2NvbHVt bl9vcGNsYXNzKGNvbkZvcm0tPmNvbmluZGlkLCByaWluZm8tPm5rZXlzKTsKKworCQlGaW5k RktQZXJpb2RPcGVycyhvcGNsYXNzLAorCQkJCQkJICAmcmlpbmZvLT5wZXJpb2RfY29udGFp bmVkX2J5X29wZXIsCisJCQkJCQkgICZyaWluZm8tPmFnZ2VkX3BlcmlvZF9jb250YWluZWRf Ynlfb3Blcik7CisJfQorCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CiAKIAkvKgpAQCAtMjc4 NCw3ICsyODgzLDEwIEBAIHJpX0hhc2hQcmVwYXJlZFBsYW4oUklfUXVlcnlLZXkgKmtleSwg U1BJUGxhblB0ciBwbGFuKQogLyoKICAqIHJpX0tleXNFcXVhbCAtCiAgKgotICogQ2hlY2sg aWYgYWxsIGtleSB2YWx1ZXMgaW4gT0xEIGFuZCBORVcgYXJlIGVxdWFsLgorICogQ2hlY2sg aWYgYWxsIGtleSB2YWx1ZXMgaW4gT0xEIGFuZCBORVcgYXJlICJlcXVpdmFsZW50IjoKKyAq IEZvciBub3JtYWwgRktzIHdlIGNoZWNrIGZvciBlcXVhbGl0eS4KKyAqIEZvciB0ZW1wb3Jh bCBGS3Mgd2UgY2hlY2sgdGhhdCB0aGUgUEsgc2lkZSBpcyBhIHN1cGVyc2V0IG9mIGl0cyBv bGQgdmFsdWUsCisgKiBvciB0aGUgRksgc2lkZSBpcyBhIHN1YnNldCBvZiBpdHMgb2xkIHZh bHVlLgogICoKICAqIE5vdGU6IGF0IHNvbWUgcG9pbnQgd2UgbWlnaHQgd2lzaCB0byByZWRl ZmluZSB0aGlzIGFzIGNoZWNraW5nIGZvcgogICogIklTIE5PVCBESVNUSU5DVCIgcmF0aGVy IHRoYW4gIj0iLCB0aGF0IGlzLCBhbGxvdyB0d28gbnVsbHMgdG8gYmUKQEAgLTI4NDAsMTMg KzI5NDIsMjUgQEAgcmlfS2V5c0VxdWFsKFJlbGF0aW9uIHJlbCwgVHVwbGVUYWJsZVNsb3Qg Km9sZHNsb3QsIFR1cGxlVGFibGVTbG90ICpuZXdzbG90LAogCQl9CiAJCWVsc2UKIAkJewor CQkJT2lkCQkJZXFfb3ByOworCisJCQkvKgorCQkJICogV2hlbiBjb21wYXJpbmcgdGhlIFBF UklPRCBjb2x1bW5zIHdlIGNhbiBza2lwIHRoZSBjaGVjaworCQkJICogd2hlbmV2ZXIgdGhl IHJlZmVyZW5jaW5nIGNvbHVtbiBzdGF5ZWQgZXF1YWwgb3Igc2hyYW5rLCBzbyB0ZXN0CisJ CQkgKiB3aXRoIHRoZSBjb250YWluZWQtYnkgb3BlcmF0b3IgaW5zdGVhZC4KKwkJCSAqLwor CQkJaWYgKHJpaW5mby0+aGFzcGVyaW9kICYmIGkgPT0gcmlpbmZvLT5ua2V5cyAtIDEpCisJ CQkJZXFfb3ByID0gcmlpbmZvLT5wZXJpb2RfY29udGFpbmVkX2J5X29wZXI7CisJCQllbHNl CisJCQkJZXFfb3ByID0gcmlpbmZvLT5mZl9lcV9vcHJzW2ldOworCiAJCQkvKgogCQkJICog Rm9yIHRoZSBGSyB0YWJsZSwgY29tcGFyZSB3aXRoIHRoZSBhcHByb3ByaWF0ZSBlcXVhbGl0 eQogCQkJICogb3BlcmF0b3IuICBDaGFuZ2VzIHRoYXQgY29tcGFyZSBlcXVhbCB3aWxsIHN0 aWxsIHNhdGlzZnkgdGhlCiAJCQkgKiBjb25zdHJhaW50IGFmdGVyIHRoZSB1cGRhdGUuCiAJ CQkgKi8KLQkJCWlmICghcmlfQXR0cmlidXRlc0VxdWFsKHJpaW5mby0+ZmZfZXFfb3Byc1tp XSwgUklBdHRUeXBlKHJlbCwgYXR0bnVtc1tpXSksCi0JCQkJCQkJCQlvbGR2YWx1ZSwgbmV3 dmFsdWUpKQorCQkJaWYgKCFyaV9Db21wYXJlV2l0aENhc3QoZXFfb3ByLCBSSUF0dFR5cGUo cmVsLCBhdHRudW1zW2ldKSwKKwkJCQkJCQkJCW5ld3ZhbHVlLCBvbGR2YWx1ZSkpCiAJCQkJ cmV0dXJuIGZhbHNlOwogCQl9CiAJfQpAQCAtMjg1NiwyOSArMjk3MCwzMSBAQCByaV9LZXlz RXF1YWwoUmVsYXRpb24gcmVsLCBUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdCwgVHVwbGVUYWJs ZVNsb3QgKm5ld3Nsb3QsCiAKIAogLyoKLSAqIHJpX0F0dHJpYnV0ZXNFcXVhbCAtCisgKiBy aV9Db21wYXJlV2l0aENhc3QgLQogICoKLSAqIENhbGwgdGhlIGFwcHJvcHJpYXRlIGVxdWFs aXR5IGNvbXBhcmlzb24gb3BlcmF0b3IgZm9yIHR3byB2YWx1ZXMuCisgKiBDYWxsIHRoZSBh cHByb3ByaWF0ZSBjb21wYXJpc29uIG9wZXJhdG9yIGZvciB0d28gdmFsdWVzLgorICogTm9y bWFsbHkgdGhpcyBpcyBlcXVhbGl0eSwgYnV0IGZvciB0aGUgUEVSSU9EIHBhcnQgb2YgZm9y ZWlnbiBrZXlzCisgKiBpdCBpcyBDb250YWluZWRCeSwgc28gdGhlIG9yZGVyIG9mIGxocyB2 cyByaHMgaXMgc2lnbmlmaWNhbnQuCiAgKgogICogTkI6IHdlIGhhdmUgYWxyZWFkeSBjaGVj a2VkIHRoYXQgbmVpdGhlciB2YWx1ZSBpcyBudWxsLgogICovCiBzdGF0aWMgYm9vbAotcmlf QXR0cmlidXRlc0VxdWFsKE9pZCBlcV9vcHIsIE9pZCB0eXBlaWQsCi0JCQkJICAgRGF0dW0g b2xkdmFsdWUsIERhdHVtIG5ld3ZhbHVlKQorcmlfQ29tcGFyZVdpdGhDYXN0KE9pZCBlcV9v cHIsIE9pZCB0eXBlaWQsCisJCQkJICAgRGF0dW0gbGhzLCBEYXR1bSByaHMpCiB7CiAJUklf Q29tcGFyZUhhc2hFbnRyeSAqZW50cnkgPSByaV9IYXNoQ29tcGFyZU9wKGVxX29wciwgdHlw ZWlkKTsKIAogCS8qIERvIHdlIG5lZWQgdG8gY2FzdCB0aGUgdmFsdWVzPyAqLwogCWlmIChP aWRJc1ZhbGlkKGVudHJ5LT5jYXN0X2Z1bmNfZmluZm8uZm5fb2lkKSkKIAl7Ci0JCW9sZHZh bHVlID0gRnVuY3Rpb25DYWxsMygmZW50cnktPmNhc3RfZnVuY19maW5mbywKLQkJCQkJCQkJ IG9sZHZhbHVlLAotCQkJCQkJCQkgSW50MzJHZXREYXR1bSgtMSksIC8qIHR5cG1vZCAqLwot CQkJCQkJCQkgQm9vbEdldERhdHVtKGZhbHNlKSk7CS8qIGltcGxpY2l0IGNvZXJjaW9uICov Ci0JCW5ld3ZhbHVlID0gRnVuY3Rpb25DYWxsMygmZW50cnktPmNhc3RfZnVuY19maW5mbywK LQkJCQkJCQkJIG5ld3ZhbHVlLAotCQkJCQkJCQkgSW50MzJHZXREYXR1bSgtMSksIC8qIHR5 cG1vZCAqLwotCQkJCQkJCQkgQm9vbEdldERhdHVtKGZhbHNlKSk7CS8qIGltcGxpY2l0IGNv ZXJjaW9uICovCisJCWxocyA9IEZ1bmN0aW9uQ2FsbDMoJmVudHJ5LT5jYXN0X2Z1bmNfZmlu Zm8sCisJCQkJCQkJbGhzLAorCQkJCQkJCUludDMyR2V0RGF0dW0oLTEpLAkvKiB0eXBtb2Qg Ki8KKwkJCQkJCQlCb29sR2V0RGF0dW0oZmFsc2UpKTsJLyogaW1wbGljaXQgY29lcmNpb24g Ki8KKwkJcmhzID0gRnVuY3Rpb25DYWxsMygmZW50cnktPmNhc3RfZnVuY19maW5mbywKKwkJ CQkJCQlyaHMsCisJCQkJCQkJSW50MzJHZXREYXR1bSgtMSksCS8qIHR5cG1vZCAqLworCQkJ CQkJCUJvb2xHZXREYXR1bShmYWxzZSkpOwkvKiBpbXBsaWNpdCBjb2VyY2lvbiAqLwogCX0K IAogCS8qCkBAIC0yODkyLDEwICszMDA4LDE2IEBAIHJpX0F0dHJpYnV0ZXNFcXVhbChPaWQg ZXFfb3ByLCBPaWQgdHlwZWlkLAogCSAqIG9wZW4pLCB3ZSdsbCBqdXN0IHVzZSB0aGUgZGVm YXVsdCBjb2xsYXRpb24gaGVyZSwgd2hpY2ggY291bGQgbGVhZCB0bwogCSAqIHNvbWUgZmFs c2UgbmVnYXRpdmVzLiAgQWxsIHRoaXMgd291bGQgYnJlYWsgaWYgd2UgZXZlciBhbGxvdwog CSAqIGRhdGFiYXNlLXdpZGUgY29sbGF0aW9ucyB0byBiZSBub25kZXRlcm1pbmlzdGljLgor CSAqCisJICogV2l0aCByYW5nZS9tdWx0aXJhbmdldHlwZXMsIHRoZSBjb2xsYXRpb24gb2Yg dGhlIGJhc2UgdHlwZSBpcyBzdG9yZWQgYXMKKwkgKiBwYXJ0IG9mIHRoZSByYW5nZXR5cGUg KHBnX3JhbmdlLnJuZ2NvbGxhdGlvbiksIGFuZCBhbHdheXMgdXNlZCwgc28KKwkgKiB0aGVy ZSBpcyBubyBkYW5nZXIgb2YgaW5jb25zaXN0ZW5jeSBldmVuIHVzaW5nIGEgbm9uLWVxdWFs cyBvcGVyYXRvci4KKwkgKiBCdXQgaWYgd2Ugc3VwcG9ydCBhcmJpdHJhcnkgdHlwZXMgd2l0 aCBQRVJJT0QsIHdlIHNob3VsZCBwZXJoYXBzIGp1c3QKKwkgKiBhbHdheXMgZm9yY2UgYSBy ZS1jaGVjay4KIAkgKi8KIAlyZXR1cm4gRGF0dW1HZXRCb29sKEZ1bmN0aW9uQ2FsbDJDb2xs KCZlbnRyeS0+ZXFfb3ByX2ZpbmZvLAogCQkJCQkJCQkJCSAgREVGQVVMVF9DT0xMQVRJT05f T0lELAotCQkJCQkJCQkJCSAgb2xkdmFsdWUsIG5ld3ZhbHVlKSk7CisJCQkJCQkJCQkJICBs aHMsIHJocykpOwogfQogCiAvKgpAQCAtMjk1MCw3ICszMDcyLDcgQEAgcmlfSGFzaENvbXBh cmVPcChPaWQgZXFfb3ByLCBPaWQgdHlwZWlkKQogCQkgKiB0aGUgY2FzdCBmdW5jdGlvbiB0 byBnZXQgdG8gdGhlIG9wZXJhdG9yJ3MgaW5wdXQgdHlwZS4KIAkJICoKIAkJICogWFhYIGV2 ZW50dWFsbHkgaXQgd291bGQgYmUgZ29vZCB0byBzdXBwb3J0IGFycmF5LWNvZXJjaW9uIGNh c2VzCi0JCSAqIGhlcmUgYW5kIGluIHJpX0F0dHJpYnV0ZXNFcXVhbCgpLiAgQXQgdGhlIG1v bWVudCB0aGVyZSBpcyBubyBwb2ludAorCQkgKiBoZXJlIGFuZCBpbiByaV9Db21wYXJlV2l0 aENhc3QoKS4gIEF0IHRoZSBtb21lbnQgdGhlcmUgaXMgbm8gcG9pbnQKIAkJICogYmVjYXVz ZSBjYXNlcyBpbnZvbHZpbmcgbm9uaWRlbnRpY2FsIGFycmF5IHR5cGVzIHdpbGwgYmUgcmVq ZWN0ZWQKIAkJICogYXQgY29uc3RyYWludCBjcmVhdGlvbiB0aW1lLgogCQkgKgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDUwYzAyNDdjMzAwLi5iMGQ3ZjUxYmU2MiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMzM4LDcgKzMzOCw3IEBAIHN0 YXRpYyBjaGFyICpwZ19nZXRfdmlld2RlZl93b3JrZXIoT2lkIHZpZXdvaWQsCiAJCQkJCQkJ CSAgIGludCBwcmV0dHlGbGFncywgaW50IHdyYXBDb2x1bW4pOwogc3RhdGljIGNoYXIgKnBn X2dldF90cmlnZ2VyZGVmX3dvcmtlcihPaWQgdHJpZ2lkLCBib29sIHByZXR0eSk7CiBzdGF0 aWMgaW50CWRlY29tcGlsZV9jb2x1bW5faW5kZXhfYXJyYXkoRGF0dW0gY29sdW1uX2luZGV4 X2FycmF5LCBPaWQgcmVsSWQsCi0JCQkJCQkJCQkJIFN0cmluZ0luZm8gYnVmKTsKKwkJCQkJ CQkJCQkgYm9vbCB3aXRoUGVyaW9kLCBTdHJpbmdJbmZvIGJ1Zik7CiBzdGF0aWMgY2hhciAq cGdfZ2V0X3J1bGVkZWZfd29ya2VyKE9pZCBydWxlb2lkLCBpbnQgcHJldHR5RmxhZ3MpOwog c3RhdGljIGNoYXIgKnBnX2dldF9pbmRleGRlZl93b3JrZXIoT2lkIGluZGV4cmVsaWQsIGlu dCBjb2xubywKIAkJCQkJCQkJCWNvbnN0IE9pZCAqZXhjbHVkZU9wcywKQEAgLTIyNjAsNyAr MjI2MCw4IEBAIHBnX2dldF9jb25zdHJhaW50ZGVmX3dvcmtlcihPaWQgY29uc3RyYWludElk LCBib29sIGZ1bGxDb21tYW5kLAogCQkJCXZhbCA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwo Q09OU1RST0lELCB0dXAsCiAJCQkJCQkJCQkJCSBBbnVtX3BnX2NvbnN0cmFpbnRfY29ua2V5 KTsKIAotCQkJCWRlY29tcGlsZV9jb2x1bW5faW5kZXhfYXJyYXkodmFsLCBjb25Gb3JtLT5j b25yZWxpZCwgJmJ1Zik7CisJCQkJLyogSWYgaXQgaXMgYSB0ZW1wb3JhbCBmb3JlaWduIGtl eSB0aGVuIGl0IHVzZXMgUEVSSU9ELiAqLworCQkJCWRlY29tcGlsZV9jb2x1bW5faW5kZXhf YXJyYXkodmFsLCBjb25Gb3JtLT5jb25yZWxpZCwgY29uRm9ybS0+Y29ucGVyaW9kLCAmYnVm KTsKIAogCQkJCS8qIGFkZCBmb3JlaWduIHJlbGF0aW9uIG5hbWUgKi8KIAkJCQlhcHBlbmRT dHJpbmdJbmZvKCZidWYsICIpIFJFRkVSRU5DRVMgJXMoIiwKQEAgLTIyNzEsNyArMjI3Miw3 IEBAIHBnX2dldF9jb25zdHJhaW50ZGVmX3dvcmtlcihPaWQgY29uc3RyYWludElkLCBib29s IGZ1bGxDb21tYW5kLAogCQkJCXZhbCA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoQ09OU1RS T0lELCB0dXAsCiAJCQkJCQkJCQkJCSBBbnVtX3BnX2NvbnN0cmFpbnRfY29uZmtleSk7CiAK LQkJCQlkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KHZhbCwgY29uRm9ybS0+Y29uZnJl bGlkLCAmYnVmKTsKKwkJCQlkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KHZhbCwgY29u Rm9ybS0+Y29uZnJlbGlkLCBjb25Gb3JtLT5jb25wZXJpb2QsICZidWYpOwogCiAJCQkJYXBw ZW5kU3RyaW5nSW5mb0NoYXIoJmJ1ZiwgJyknKTsKIApAQCAtMjM1Nyw3ICsyMzU4LDcgQEAg cGdfZ2V0X2NvbnN0cmFpbnRkZWZfd29ya2VyKE9pZCBjb25zdHJhaW50SWQsIGJvb2wgZnVs bENvbW1hbmQsCiAJCQkJaWYgKCFpc251bGwpCiAJCQkJewogCQkJCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKCZidWYsICIgKCIpOwotCQkJCQlkZWNvbXBpbGVfY29sdW1uX2luZGV4X2Fy cmF5KHZhbCwgY29uRm9ybS0+Y29ucmVsaWQsICZidWYpOworCQkJCQlkZWNvbXBpbGVfY29s dW1uX2luZGV4X2FycmF5KHZhbCwgY29uRm9ybS0+Y29ucmVsaWQsIGZhbHNlLCAmYnVmKTsK IAkJCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoJmJ1ZiwgJyknKTsKIAkJCQl9CiAKQEAgLTIz OTIsNyArMjM5Myw3IEBAIHBnX2dldF9jb25zdHJhaW50ZGVmX3dvcmtlcihPaWQgY29uc3Ry YWludElkLCBib29sIGZ1bGxDb21tYW5kLAogCQkJCXZhbCA9IFN5c0NhY2hlR2V0QXR0ck5v dE51bGwoQ09OU1RST0lELCB0dXAsCiAJCQkJCQkJCQkJCSBBbnVtX3BnX2NvbnN0cmFpbnRf Y29ua2V5KTsKIAotCQkJCWtleWF0dHMgPSBkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5 KHZhbCwgY29uRm9ybS0+Y29ucmVsaWQsICZidWYpOworCQkJCWtleWF0dHMgPSBkZWNvbXBp bGVfY29sdW1uX2luZGV4X2FycmF5KHZhbCwgY29uRm9ybS0+Y29ucmVsaWQsIGZhbHNlLCAm YnVmKTsKIAkJCQlpZiAoY29uRm9ybS0+Y29ucGVyaW9kKQogCQkJCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKCZidWYsICIgV0lUSE9VVCBPVkVSTEFQUyIpOwogCkBAIC0yNTc2LDcgKzI1 NzcsNyBAQCBwZ19nZXRfY29uc3RyYWludGRlZl93b3JrZXIoT2lkIGNvbnN0cmFpbnRJZCwg Ym9vbCBmdWxsQ29tbWFuZCwKICAqLwogc3RhdGljIGludAogZGVjb21waWxlX2NvbHVtbl9p bmRleF9hcnJheShEYXR1bSBjb2x1bW5faW5kZXhfYXJyYXksIE9pZCByZWxJZCwKLQkJCQkJ CQkgU3RyaW5nSW5mbyBidWYpCisJCQkJCQkJIGJvb2wgd2l0aFBlcmlvZCwgU3RyaW5nSW5m byBidWYpCiB7CiAJRGF0dW0JICAgKmtleXM7CiAJaW50CQkJbktleXM7CkBAIC0yNTk1LDcg KzI1OTYsOSBAQCBkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KERhdHVtIGNvbHVtbl9p bmRleF9hcnJheSwgT2lkIHJlbElkLAogCQlpZiAoaiA9PSAwKQogCQkJYXBwZW5kU3RyaW5n SW5mb1N0cmluZyhidWYsIHF1b3RlX2lkZW50aWZpZXIoY29sTmFtZSkpOwogCQllbHNlCi0J CQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiwgJXMiLCBxdW90ZV9pZGVudGlmaWVyKGNvbE5h bWUpKTsKKwkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiLCAlcyVzIiwKKwkJCQkJCQkgKHdp dGhQZXJpb2QgJiYgaiA9PSBuS2V5cyAtIDEpID8gIlBFUklPRCAiIDogIiIsCisJCQkJCQkJ IHF1b3RlX2lkZW50aWZpZXIoY29sTmFtZSkpOwogCX0KIAogCXJldHVybiBuS2V5czsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJhaW50LmgKaW5kZXggOTZjMDA2MjRiMTUuLjExNTIx N2E2MTYyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQu aAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaApAQCAtMTA4LDgg KzEwOCw4IEBAIENBVEFMT0cocGdfY29uc3RyYWludCwyNjA2LENvbnN0cmFpbnRSZWxhdGlv bklkKQogCWJvb2wJCWNvbm5vaW5oZXJpdDsKIAogCS8qCi0JICogRm9yIHByaW1hcnkga2V5 cyBhbmQgdW5pcXVlIGNvbnN0cmFpbnRzLCBzaWduaWZpZXMgdGhlIGxhc3QgY29sdW1uIHVz ZXMKLQkgKiBvdmVybGFwcyBpbnN0ZWFkIG9mIGVxdWFscy4KKwkgKiBGb3IgcHJpbWFyeSBr ZXlzLCB1bmlxdWUgY29uc3RyYWludHMsIGFuZCBmb3JlaWduIGtleXMsIHNpZ25pZmllcyB0 aGUKKwkgKiBsYXN0IGNvbHVtbiB1c2VzIG92ZXJsYXBzIGluc3RlYWQgb2YgZXF1YWxzLgog CSAqLwogCWJvb2wJCWNvbnBlcmlvZDsKIApAQCAtMTI3LDIwICsxMjcsMjIgQEAgQ0FUQUxP RyhwZ19jb25zdHJhaW50LDI2MDYsQ29uc3RyYWludFJlbGF0aW9uSWQpCiAJaW50MTYJCWNv bmZrZXlbMV07CiAKIAkvKgotCSAqIElmIGEgZm9yZWlnbiBrZXksIHRoZSBPSURzIG9mIHRo ZSBQSyA9IEZLIGVxdWFsaXR5IG9wZXJhdG9ycyBmb3IgZWFjaAotCSAqIGNvbHVtbiBvZiB0 aGUgY29uc3RyYWludAorCSAqIElmIGEgZm9yZWlnbiBrZXksIHRoZSBPSURzIG9mIHRoZSBQ SyA9IEZLIGVxdWFsaXR5L292ZXJsYXAgb3BlcmF0b3JzCisJICogZm9yIGVhY2ggY29sdW1u IG9mIHRoZSBjb25zdHJhaW50CiAJICovCiAJT2lkCQkJY29ucGZlcW9wWzFdIEJLSV9MT09L VVAocGdfb3BlcmF0b3IpOwogCiAJLyoKLQkgKiBJZiBhIGZvcmVpZ24ga2V5LCB0aGUgT0lE cyBvZiB0aGUgUEsgPSBQSyBlcXVhbGl0eSBvcGVyYXRvcnMgZm9yIGVhY2gKLQkgKiBjb2x1 bW4gb2YgdGhlIGNvbnN0cmFpbnQgKGkuZS4sIGVxdWFsaXR5IGZvciB0aGUgcmVmZXJlbmNl ZCBjb2x1bW5zKQorCSAqIElmIGEgZm9yZWlnbiBrZXksIHRoZSBPSURzIG9mIHRoZSBQSyA9 IFBLIGVxdWFsaXR5L292ZXJsYXAgb3BlcmF0b3JzCisJICogZm9yIGVhY2ggY29sdW1uIG9m IHRoZSBjb25zdHJhaW50IChpLmUuLCBlcXVhbGl0eSBmb3IgdGhlIHJlZmVyZW5jZWQKKwkg KiBjb2x1bW5zKQogCSAqLwogCU9pZAkJCWNvbnBwZXFvcFsxXSBCS0lfTE9PS1VQKHBnX29w ZXJhdG9yKTsKIAogCS8qCi0JICogSWYgYSBmb3JlaWduIGtleSwgdGhlIE9JRHMgb2YgdGhl IEZLID0gRksgZXF1YWxpdHkgb3BlcmF0b3JzIGZvciBlYWNoCi0JICogY29sdW1uIG9mIHRo ZSBjb25zdHJhaW50IChpLmUuLCBlcXVhbGl0eSBmb3IgdGhlIHJlZmVyZW5jaW5nIGNvbHVt bnMpCisJICogSWYgYSBmb3JlaWduIGtleSwgdGhlIE9JRHMgb2YgdGhlIEZLID0gRksgZXF1 YWxpdHkvb3ZlcmxhcCBvcGVyYXRvcnMKKwkgKiBmb3IgZWFjaCBjb2x1bW4gb2YgdGhlIGNv bnN0cmFpbnQgKGkuZS4sIGVxdWFsaXR5IGZvciB0aGUgcmVmZXJlbmNpbmcKKwkgKiBjb2x1 bW5zKQogCSAqLwogCU9pZAkJCWNvbmZmZXFvcFsxXSBCS0lfTE9PS1VQKHBnX29wZXJhdG9y KTsKIApAQCAtMjc3LDYgKzI3OSw5IEBAIGV4dGVybiB2b2lkIERlY29uc3RydWN0RmtDb25z dHJhaW50Um93KEhlYXBUdXBsZSB0dXBsZSwgaW50ICpudW1ma3MsCiAJCQkJCQkJCQkgICBB dHRyTnVtYmVyICpjb25rZXksIEF0dHJOdW1iZXIgKmNvbmZrZXksCiAJCQkJCQkJCQkgICBP aWQgKnBmX2VxX29wcnMsIE9pZCAqcHBfZXFfb3BycywgT2lkICpmZl9lcV9vcHJzLAogCQkJ CQkJCQkJICAgaW50ICpudW1fZmtfZGVsX3NldF9jb2xzLCBBdHRyTnVtYmVyICpma19kZWxf c2V0X2NvbHMpOworZXh0ZXJuIHZvaWQgRmluZEZLUGVyaW9kT3BlcnMoT2lkIG9wY2xhc3Ms CisJCQkJCQkJICBPaWQgKmNvbnRhaW5lZGJ5b3Blcm9pZCwKKwkJCQkJCQkgIE9pZCAqYWdn ZWRjb250YWluZWRieW9wZXJvaWQpOwogCiBleHRlcm4gYm9vbCBjaGVja19mdW5jdGlvbmFs X2dyb3VwaW5nKE9pZCByZWxpZCwKIAkJCQkJCQkJCSAgSW5kZXggdmFybm8sIEluZGV4IHZh cmxldmVsc3VwLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmgg Yi9zcmMvaW5jbHVkZS9jb21tYW5kcy9kZWZyZW0uaAppbmRleCAwYzUzZDY3ZDNlZS4uNWZk MDk1ZWExNzcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5oCisr KyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5oCkBAIC01MCw3ICs1MCw3IEBAIGV4 dGVybiBib29sIENoZWNrSW5kZXhDb21wYXRpYmxlKE9pZCBvbGRJZCwKIGV4dGVybiBPaWQJ R2V0RGVmYXVsdE9wQ2xhc3MoT2lkIHR5cGVfaWQsIE9pZCBhbV9pZCk7CiBleHRlcm4gT2lk CVJlc29sdmVPcENsYXNzKGNvbnN0IExpc3QgKm9wY2xhc3MsIE9pZCBhdHRyVHlwZSwKIAkJ CQkJCSAgIGNvbnN0IGNoYXIgKmFjY2Vzc01ldGhvZE5hbWUsIE9pZCBhY2Nlc3NNZXRob2RJ ZCk7Ci1leHRlcm4gdm9pZCBHZXRPcGVyYXRvckZyb21XZWxsS25vd25TdHJhdGVneShPaWQg b3BjbGFzcywgT2lkIGF0dHR5cGUsCitleHRlcm4gdm9pZCBHZXRPcGVyYXRvckZyb21XZWxs S25vd25TdHJhdGVneShPaWQgb3BjbGFzcywgT2lkIHJoc3R5cGUsCiAJCQkJCQkJCQkJCSBP aWQgKm9waWQsIFN0cmF0ZWd5TnVtYmVyICpzdHJhdCk7CiAKIC8qIGNvbW1hbmRzL2Z1bmN0 aW9uY21kcy5jICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggOWRjNDY2N2QyYmQu LjFjYjdiMDJjNWMyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yNzY3LDYgKzI3 NjcsOCBAQCB0eXBlZGVmIHN0cnVjdCBDb25zdHJhaW50CiAJUmFuZ2VWYXIgICAqcGt0YWJs ZTsJCS8qIFByaW1hcnkga2V5IHRhYmxlICovCiAJTGlzdAkgICAqZmtfYXR0cnM7CQkvKiBB dHRyaWJ1dGVzIG9mIGZvcmVpZ24ga2V5ICovCiAJTGlzdAkgICAqcGtfYXR0cnM7CQkvKiBD b3JyZXNwb25kaW5nIGF0dHJzIGluIFBLIHRhYmxlICovCisJYm9vbAkJZmtfd2l0aF9wZXJp b2Q7IC8qIExhc3QgYXR0cmlidXRlIG9mIEZLIHVzZXMgUEVSSU9EICovCisJYm9vbAkJcGtf d2l0aF9wZXJpb2Q7IC8qIExhc3QgYXR0cmlidXRlIG9mIFBLIHVzZXMgUEVSSU9EICovCiAJ Y2hhcgkJZmtfbWF0Y2h0eXBlOwkvKiBGVUxMLCBQQVJUSUFMLCBTSU1QTEUgKi8KIAljaGFy CQlma191cGRfYWN0aW9uOwkvKiBPTiBVUERBVEUgYWN0aW9uICovCiAJY2hhcgkJZmtfZGVs X2FjdGlvbjsJLyogT04gREVMRVRFIGFjdGlvbiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4 IGY3ZmU4MzRjZjQ1Li5mOWE0YWZkNDcyMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFy c2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtMzM5 LDYgKzMzOSw3IEBAIFBHX0tFWVdPUkQoInBhcnRpdGlvbnMiLCBQQVJUSVRJT05TLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXNzaW5nIiwgUEFT U0lORywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGFz c3dvcmQiLCBQQVNTV09SRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgicGF0aCIsIFBBVEgsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK K1BHX0tFWVdPUkQoInBlcmlvZCIsIFBFUklPRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgicGxhY2luZyIsIFBMQUNJTkcsIFJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwbGFuIiwgUExBTiwgVU5SRVNFUlZFRF9L RVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGxhbnMiLCBQTEFOUywgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKaW5kZXggOTNiN2MxNDAxNTguLjI5MGU3NzE5 OGFlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3Zl cmxhcHMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVy bGFwcy5vdXQKQEAgLTE5MiwxMCArMTkyLDEwIEBAIFNFTEVDVCBwZ19nZXRfaW5kZXhkZWYo Y29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0g J3RlCiAKIC0tIFBLIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIG11bHRpcmFuZ2U6CiBDUkVB VEUgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMiAoCi0gIGlkMSBpbnQ0cmFuZ2UsCi0gIGlkMiBp bnQ0cmFuZ2UsCi0gIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAotICBDT05TVFJBSU5UIHRl bXBvcmFsX21sdHJuZzJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKQorCWlkMSBpbnQ0cmFuZ2UsCisJaWQyIGludDRyYW5nZSwKKwl2YWxp ZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZzJfcGsg UFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQogKTsK IFxkIHRlbXBvcmFsX21sdHJuZzIKICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1w b3JhbF9tbHRybmcyIgpAQCAtMTE1Nyw0ICsxMTU3LDEwODUgQEAgU0VMRUNUICogRlJPTSB0 ZW1wb3JhbDMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogKDEgcm93KQogCiBEUk9QIFRBQkxF IHRlbXBvcmFsMzsKKy0tCistLSB0ZXN0IEZLIGRlcGVuZGVuY2llcworLS0KKy0tIGNhbid0 IGRyb3AgYSByYW5nZSByZWZlcmVuY2VkIGJ5IGFuIEZLLCB1bmxlc3Mgd2l0aCBDQVNDQURF CitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQg ZGF0ZXJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWwzX3BrIFBSSU1BUlkgS0VZIChpZCwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxf Zmtfcm5nMnJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlw YXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWwzIChpZCwgUEVSSU9EIHZh bGlkX2F0KQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMyBEUk9QIENPTFVNTiB2YWxpZF9h dDsKK0VSUk9SOiAgY2Fubm90IGRyb3AgY29sdW1uIHZhbGlkX2F0IG9mIHRhYmxlIHRlbXBv cmFsMyBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBjb25z dHJhaW50IHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgb24gdGFibGUgdGVtcG9yYWxfZmtfcm5n MnJuZyBkZXBlbmRzIG9uIGNvbHVtbiB2YWxpZF9hdCBvZiB0YWJsZSB0ZW1wb3JhbDMKK0hJ TlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0 cyB0b28uCitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMgRFJPUCBDT0xVTU4gdmFsaWRfYXQgQ0FT Q0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gY29uc3RyYWludCB0ZW1wb3JhbF9m a19ybmcycm5nX2ZrIG9uIHRhYmxlIHRlbXBvcmFsX2ZrX3JuZzJybmcKK0RST1AgVEFCTEUg dGVtcG9yYWxfZmtfcm5nMnJuZzsKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworLS0KKy0tIHRl c3QgRk9SRUlHTiBLRVksIHJhbmdlIHJlZmVyZW5jZXMgcmFuZ2UKKy0tCistLSB0ZXN0IHRh YmxlIHNldHVwCitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzsKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9ybmcgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlKTsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX3JuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsKKyAg UFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKKy0tIENhbid0 IGNyZWF0ZSBhIEZLIHdpdGggYSBtaXNtYXRjaGVkIHJhbmdlIHR5cGUKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgaW50 NHJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19ybmcycm5nX3BrMiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mazIgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3Ju ZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsyIiBjYW5ub3QgYmUgaW1wbGVtZW50ZWQK K0RFVEFJTDogIEtleSBjb2x1bW5zICJ2YWxpZF9hdCIgYW5kICJ2YWxpZF9hdCIgYXJlIG9m IGluY29tcGF0aWJsZSB0eXBlczogaW50NHJhbmdlIGFuZCBkYXRlcmFuZ2UuCistLSB3b3Jr czogUEVSSU9EIGZvciBib3RoIHJlZmVyZW5jZWQgYW5kIHJlZmVyZW5jaW5nCitDUkVBVEUg VEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0 IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtf cm5nMnJuZzsKKy0tIHdpdGggbWlzbWF0Y2hlZCBQRVJJT0QgY29sdW1uczoKKy0tIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlkX2F0KQorLS0g UkVGRVJFTkNFUyBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFu Z2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Ju ZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwK KwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhl IHJlZmVyZW5jaW5nIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jZWQgdGFibGUKKy0tIChw YXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgdmFsaWRfYXQpCistLSBib3Ro IHNob3VsZCBzcGVjaWZ5IFBFUklPRDoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9p ZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0 KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KQorKTsKK0VSUk9S OiAgZm9yZWlnbiBrZXkgbXVzdCB1c2UgUEVSSU9EIHdoZW4gcmVmZXJlbmNpbmcgYSBwcmlt YXJ5IHVzaW5nIFdJVEhPVVQgT1ZFUkxBUFMKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBS RUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorLS0gRk9SRUlHTiBLRVkgcGFydCBz aG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5n ICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBp bnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQor CQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitF UlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxl IGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSAocGFyZW50X2lkLCB2YWxpZF9h dCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCistLSBGT1JFSUdOIEtFWSBwYXJ0IHNob3VsZCBz cGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorCWlk IGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5n ZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisJCVJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklP RCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJs ZQorLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCkKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFs aWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1w b3JhbF9ybmcgKGlkKQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24g dGhlIHJlZmVyZW5jaW5nIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jZWQgdGFibGUKKy0t IChwYXJlbnRfaWQpIFJFRkVSRU5DRVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCitDUkVBVEUg VEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0 IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtF WSAocGFyZW50X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2 YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSBy ZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSB3aXRo IGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgorLS0gKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9ma19ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJh bmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19y bmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyks CisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyk7 CitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmc7CistLSAocGFyZW50X2lkKSBSRUZF UkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgK KwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0 cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQpCisJCVJFRkVSRU5DRVMg dGVtcG9yYWxfcm5nCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0 aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0g c2hvdWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2 YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkKKwkJUkVGRVJFTkNFUyB0 ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0QgaWQpCispOworRVJST1I6ICBmb3JlaWduIGtleSBy ZWZlcmVuY2VkLWNvbHVtbnMgbGlzdCBtdXN0IG5vdCBjb250YWluIGR1cGxpY2F0ZXMKKy0t IFR3byBzY2FsYXIgY29sdW1ucworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmcyOworQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX3JuZzIgKAorICBpZDEgaW50NHJhbmdlLAorICBpZDIgaW50NHJh bmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5n Ml9wayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CispOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nICgKKwlpZCBpbnQ0cmFu Z2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZDEgaW50NHJhbmdlLAorCXBh cmVudF9pZDIgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdf cGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQx LCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9mazJf cm5nMnJuZworICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsX2ZrMl9ybmcycm5n IgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERl ZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90 IG51bGwgfCAKKyB2YWxpZF9hdCAgIHwgZGF0ZXJhbmdlIHwgICAgICAgICAgIHwgbm90IG51 bGwgfCAKKyBwYXJlbnRfaWQxIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgICAgICAgICAg fCAKKyBwYXJlbnRfaWQyIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK K0luZGV4ZXM6CisgICAgInRlbXBvcmFsX2ZrMl9ybmcycm5nX3BrIiBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitGb3JlaWduLWtleSBjb25zdHJhaW50 czoKKyAgICAidGVtcG9yYWxfZmsyX3JuZzJybmdfZmsiIEZPUkVJR04gS0VZIChwYXJlbnRf aWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nMihpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorCitEUk9QIFRBQkxFIHRlbXBvcmFs X2ZrMl9ybmcycm5nOworLS0KKy0tIHRlc3QgQUxURVIgVEFCTEUgQUREIENPTlNUUkFJTlQK Ky0tCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQgaW50NHJhbmdl LAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJu ZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKwlGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9y bmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOworLS0gVHdvIHNjYWxhciBjb2x1bW5zOgorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFs aWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZDEgaW50NHJhbmdlLAorCXBhcmVudF9pZDIg aW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrMl9ybmcycm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3Ju ZzJybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9E IHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIFBFUklP RCB2YWxpZF9hdCk7CitcZCB0ZW1wb3JhbF9mazJfcm5nMnJuZworICAgICAgICAgICBUYWJs ZSAicHVibGljLnRlbXBvcmFsX2ZrMl9ybmcycm5nIgorICAgQ29sdW1uICAgfCAgIFR5cGUg ICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAg IHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9hdCAgIHwg ZGF0ZXJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyBwYXJlbnRfaWQxIHwgaW50 NHJhbmdlIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQyIHwgaW50NHJh bmdlIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK0luZGV4ZXM6CisgICAgInRlbXBvcmFs X2ZrMl9ybmcycm5nX3BrIiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpCitGb3JlaWduLWtleSBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmsyX3Ju ZzJybmdfZmsiIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0Qg dmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMihpZDEsIGlkMiwgUEVSSU9EIHZh bGlkX2F0KQorCistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxl LCBhbmQgd3JvbmcgY29sdW1uIHR5cGU6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCisJQUxURVIg Q09MVU1OIHZhbGlkX2F0IFRZUEUgdHNyYW5nZSBVU0lORyB0c3JhbmdlKGxvd2VyKHZhbGlk X2F0KSwgdXBwZXIodmFsaWRfYXQpKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJy bmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisJRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nOworRVJST1I6ICBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcy cm5nX2ZrIiBjYW5ub3QgYmUgaW1wbGVtZW50ZWQKK0RFVEFJTDogIEtleSBjb2x1bW5zICJ2 YWxpZF9hdCIgYW5kICJ2YWxpZF9hdCIgYXJlIG9mIGluY29tcGF0aWJsZSB0eXBlczogdHNy YW5nZSBhbmQgZGF0ZXJhbmdlLgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwor CUFMVEVSIENPTFVNTiB2YWxpZF9hdCBUWVBFIGRhdGVyYW5nZSBVU0lORyBkYXRlcmFuZ2Uo bG93ZXIodmFsaWRfYXQpOjpkYXRlLCB1cHBlcih2YWxpZF9hdCk6OmRhdGUpOworLS0gd2l0 aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZToKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5n X2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nOworLS0gc2hvdWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNh dGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJu ZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsyCisJRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFs X3JuZyAoaWQsIFBFUklPRCBpZCk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHJlZmVyZW5jZWQt Y29sdW1ucyBsaXN0IG11c3Qgbm90IGNvbnRhaW4gZHVwbGljYXRlcworLS0KKy0tIHRlc3Qg d2l0aCByb3dzIGFscmVhZHkKKy0tCitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5n OworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAyJywgJzIwMTgtMDItMDMnKSksCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMt MDMnLCAnMjAxOC0wNC0wNCcpKSwKKyAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAxLTA1JykpLAorICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgTlVMTCkpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCURST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxf Zmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDIpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDEnKSwgJ1sxLDIpJyk7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf Zmtfcm5nMnJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9h dCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3JuZzJybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mazsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAx JyksICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19ybmcycm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCUZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRl bXBvcmFsX3JuZzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9y YWxfZmtfcm5nMnJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9y YWxfZmtfcm5nMnJuZ19mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9 KFsxLDIpLCBbMjAxOC0wMS0wMiwyMDE4LTA0LTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFi bGUgInRlbXBvcmFsX3JuZyIuCistLSBva2F5IGFnYWluOgorREVMRVRFIEZST00gdGVtcG9y YWxfZmtfcm5nMnJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOworLS0K Ky0tIHRlc3QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYKKy0tCitTRUxFQ1QgcGdfZ2V0X2NvbnN0 cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1w b3JhbF9ma19ybmcycm5nX2ZrJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyhpZCwg UEVSSU9EIHZhbGlkX2F0KQorKDEgcm93KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2lu ZyBpbnNlcnRzCistLQorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAyJywgJzIwMTgtMDItMDEnKSwgJ1sxLDIpJyk7CistLSBzaG91bGQgZmFpbDoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJyks ICdbMSwyKScpOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ma19ybmcycm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3Jh bF9ma19ybmcycm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0o WzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDQtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJs ZSAidGVtcG9yYWxfcm5nIi4KKy0tIG5vdyBpdCBzaG91bGQgd29yazoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5n ZSgnMjAxOC0wMi0wMycsICcyMDE4LTAzLTAzJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf Zmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDMpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnKSwgJ1sxLDIpJyk7CistLQor LS0gdGVzdCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCistLQorVVBEQVRFIHRlbXBvcmFsX2Zr X3JuZzJybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgt MDMtMDEnKSBXSEVSRSBpZCA9ICdbMSwyKSc7CistLSBzaG91bGQgZmFpbDoKK1VQREFURSB0 ZW1wb3JhbF9ma19ybmcycm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0w MicsICcyMDE4LTA1LTAxJykgV0hFUkUgaWQgPSAnWzEsMiknOworRVJST1I6ICBpbnNlcnQg b3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIiB2aW9sYXRlcyBmb3Jl aWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIgorREVUQUlMOiAg S2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDUt MDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcm5nIi4KK1VQREFURSB0 ZW1wb3JhbF9ma19ybmcycm5nIFNFVCBwYXJlbnRfaWQgPSAnWzgsOSknIFdIRVJFIGlkID0g J1sxLDIpJzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxf Zmtfcm5nMnJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxf Zmtfcm5nMnJuZ19mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFs4 LDkpLCBbMjAxOC0wMS0wMiwyMDE4LTAzLTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUg InRlbXBvcmFsX3JuZyIuCistLSBBTFRFUiBGSyBERUZFUlJBQkxFCitCRUdJTjsKKyAgSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAgICgnWzUs NiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSwKKyAgICAoJ1s1 LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CisgIElOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMKKyAgICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEt MTAnKSwgJ1s1LDYpJyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAg ICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKyAgICBERUZFUlJB QkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdI RVJFIGlkID0gJ1s1LDYpJzsgLS1zaG91bGQgbm90IGZhaWwgeWV0LgorQ09NTUlUOyAtLSBz aG91bGQgZmFpbCBoZXJlLgorRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0 ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFs X2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgorREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkp IGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIu CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgTk8gQUNUSU9OCistLQorVFJV TkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcy cm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCUFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKwlPTiBVUERBVEUg Tk8gQUNUSU9OOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBu dW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMi0wMScpKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0g ZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSBXSEVSRSBpZCA9ICdbNSw2 KSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1l cmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDYpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSksCisgICgnWzUsNiknLCBkYXRlcmFuZ2Uo JzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOworVVBEQVRF IHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAn MjAxNi0wMy0wMScpCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKy0tIGEgUEsgdXBkYXRlIHRoYXQg ZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgorVVBEQVRFIHRlbXBvcmFsX3Ju ZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScp CitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJs ZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1w b3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RF VEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDIt MDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJy bmciLgorLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVy ZW5jZWQsIGJ1dCBub3QgJ3RpbCBjb21taXQ6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcm5nMnJuZworICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnJuZ19maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworICBVUERBVEUg dGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcy MDE2LTAyLTAxJykKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitDT01NSVQ7CitFUlJPUjogIHVw ZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWln biBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRl bXBvcmFsX2ZrX3JuZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYp LCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRh YmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KKy0tIGNoYW5naW5nIHRoZSBzY2FsYXIgcGFy dCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJworV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJyk7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBv cmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtf cm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCitERVRBSUw6ICBL ZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMg c3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KKy0t IHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1 cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1szLDQpJzsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQorV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7 CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgUkVTVFJJQ1QKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19ybmcycm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJy bmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworCU9OIFVQREFURSBS RVNUUklDVDsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVt ZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMTgtMDItMDEnKSk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRh dGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykgV0hFUkUgaWQgPSAnWzUsNikn OworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJp YyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZS T00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNSw2KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpLAorICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcy MDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKK1VQREFURSB0 ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIw MTYtMDMtMDEnKQorV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5n ZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZh aWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAoZXZlbiBiZWZvcmUgY29tbWl0KToK K0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisgICAgQUxURVIg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisgICAgREVGRVJSQUJMRSBJTklU SUFMTFkgREVGRVJSRUQ7CisgIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0g ZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQorICBXSEVSRSBpZCA9ICdb NSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDIt MDEnKTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5n IiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5n X2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQs IHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCBy ZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgorUk9MTEJBQ0s7 CistLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxf cm5nIFNFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworRVJST1I6ICB1cGRh dGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1w b3JhbF9ma19ybmcycm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwg WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJs ZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5n IEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitVUERBVEUgdGVt cG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2 LTAyLTAxJykKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCBkZWxldGVzIE5PIEFDVElPTgorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9y YWxfZmtfcm5nMnJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3JuZzJybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2Zr CisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNl IHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVS RSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhv dWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNu J3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisg ICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSwKKyAg KCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAn KSwgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUs NiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAx Jyk7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJl bmNlZDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5E IHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0VS Uk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRl cyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0 YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0 KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2Vk IGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgorLS0gYSBQSyBkZWxldGUgdGhh dCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQsIGJ1dCBub3QgJ3RpbCBjb21t aXQ6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworICAgIEFM VEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworICAgIERFRkVSUkFCTEUg SU5JVElBTExZIERFRkVSUkVEOworICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJyk7CitDT01NSVQ7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFi bGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVt cG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCitE RVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAy LTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcy cm5nIi4KKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUg c2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcy cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVS RSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMTgtMDItMDEnKTsKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNU UklDVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcK KwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisJRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5n CisJT04gREVMRVRFIFJFU1RSSUNUOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUs NiknOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVt ZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDYpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSksCisgICgnWzUsNiknLCBk YXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb Myw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2KScp OworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFs aWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworLS0gYSBQ SyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQgKGV2ZW4g YmVmb3JlIGNvbW1pdCk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5n MnJuZworICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworICAg IERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworICBERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24g dGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAi dGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmci CitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4 LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19y bmcycm5nIi4KK1JPTExCQUNLOworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyBy ZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRl bXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOworREVMRVRFIEZST00gdGVt cG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0KKy0tIHRlc3QgT04gVVBEQVRFL0RF TEVURSBvcHRpb25zCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FE RQorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2 LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzQsNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAn WzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlEUk9QIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19ybmcycm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKwkJT04gREVMRVRFIENBU0NBREUg T04gVVBEQVRFIENBU0NBREU7CitFUlJPUjogIHVuc3VwcG9ydGVkIE9OIFVQREFURSBhY3Rp b24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s5LDEwKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s5LDEwKScpOworQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5n X2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKwkJRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZworCQlPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworRVJS T1I6ICB1bnN1cHBvcnRlZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25z dHJhaW50IHVzaW5nIFBFUklPRAorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VU IERFRkFVTFQKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTIsMTMpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzgsOSknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzEyLDEzKScpOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lk IFNFVCBERUZBVUxUICdbLTEsLTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cm5nMnJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisJ CUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNF UyB0ZW1wb3JhbF9ybmcKKwkJT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQg REVGQVVMVDsKK0VSUk9SOiAgdW5zdXBwb3J0ZWQgT04gVVBEQVRFIGFjdGlvbiBmb3IgZm9y ZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKKy0tCistLSB0ZXN0IEZPUkVJR04g S0VZLCBtdWx0aXJhbmdlIHJlZmVyZW5jZXMgbXVsdGlyYW5nZQorLS0KKy0tIHRlc3QgdGFi bGUgc2V0dXAKK0RST1AgVEFCTEUgdGVtcG9yYWxfbWx0cm5nOworQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX21sdHJuZyAoIGlkIGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2Up OworQUxURVIgVEFCTEUgdGVtcG9yYWxfbWx0cm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX21sdHJuZ19waworICBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpOworLS0gQ2FuJ3QgY3JlYXRlIGEgRksgd2l0aCBhIG1pc21hdGNoZWQgbXVsdGly YW5nZSB0eXBlCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoCisJ aWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGludDRtdWx0aXJhbmdlLAorCXBhcmVudF9pZCBp bnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX3BrMiBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mazIgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQs IFBFUklPRCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg InRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsyIiBjYW5ub3QgYmUgaW1wbGVtZW50ZWQK K0RFVEFJTDogIEtleSBjb2x1bW5zICJ2YWxpZF9hdCIgYW5kICJ2YWxpZF9hdCIgYXJlIG9m IGluY29tcGF0aWJsZSB0eXBlczogaW50NG11bHRpcmFuZ2UgYW5kIGRhdGVtdWx0aXJhbmdl LgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRy YW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdl LAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZh bGlkX2F0KQorKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKKy0t IHdpdGggbWlzbWF0Y2hlZCBQRVJJT0QgY29sdW1uczoKKy0tIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlkX2F0KQorLS0gUkVGRVJFTkNFUyBw YXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5n ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9y YWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2Vz IFBFUklPRCBvbiB0aGUgcmVmZXJlbmNpbmcgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNl ZCB0YWJsZQorLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxp ZF9hdCkKKy0tIGJvdGggc2hvdWxkIHNwZWNpZnkgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBk YXRlbXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu Z19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0 ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5 IG11c3QgdXNlIFBFUklPRCB3aGVuIHJlZmVyZW5jaW5nIGEgcHJpbWFyeSB1c2luZyBXSVRI T1VUIE9WRVJMQVBTCistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQs IFBFUklPRCB2YWxpZF9hdCkKKy0tIEZPUkVJR04gS0VZIHBhcnQgc2hvdWxkIHNwZWNpZnkg UEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoCisJaWQg aW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0 cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZh bGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZl cmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSAocGFyZW50 X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCistLSBGT1JFSUdOIEtFWSBw YXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5n ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRy bmcKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVu Y2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSAocGFyZW50X2lk LCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkKQorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRl bXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19m ayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5D RVMgdGVtcG9yYWxfbWx0cm5nIChpZCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMg UEVSSU9EIG9uIHRoZSByZWZlcmVuY2luZyB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2Vk IHRhYmxlCistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0 KQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRy YW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdl LAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorCQlSRUZF UkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitFUlJP UjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1 dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRo ZSByZWZlcmVuY2VkIHRhYmxlOgorLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBS RUZFUkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisJ cGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwK KwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21s dHJuZworKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKKy0tIChw YXJlbnRfaWQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVs dGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBG T1JFSUdOIEtFWSAocGFyZW50X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZwor KTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQg dGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNpbmcgdGFibGUKKy0tIHNob3VsZCBmYWlsIGJl Y2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQg ZGF0ZW11bHRpcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkKKwkJUkVG RVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgaWQpCispOworRVJST1I6ICBm b3JlaWduIGtleSByZWZlcmVuY2VkLWNvbHVtbnMgbGlzdCBtdXN0IG5vdCBjb250YWluIGR1 cGxpY2F0ZXMKKy0tIFR3byBzY2FsYXIgY29sdW1ucworRFJPUCBUQUJMRSB0ZW1wb3JhbF9t bHRybmcyOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX21sdHJuZzIgKAorCWlkMSBpbnQ0cmFu Z2UsCisJaWQyIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlDT05T VFJBSU5UIHRlbXBvcmFsX21sdHJuZzJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVtdWx0aXJh bmdlLAorCXBhcmVudF9pZDEgaW50NHJhbmdlLAorCXBhcmVudF9pZDIgaW50NHJhbmdlLAor CUNPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRf aWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMiAo aWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZworICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmciCisgICBDb2x1bW4gICB8ICAgICAgVHlwZSAgICAgIHwgQ29sbGF0aW9uIHwgTnVs bGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJhbmdlICAg ICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0ICAgfCBkYXRlbXVsdGly YW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgcGFyZW50X2lkMSB8IGludDRyYW5n ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQyIHwgaW50NHJh bmdlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorSW5kZXhlczoKKyAgICAidGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUykKK0ZvcmVpZ24ta2V5IGNvbnN0cmFpbnRzOgorICAgICJ0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZ19mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBh cmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcy KGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmc7CistLQorLS0gdGVzdCBBTFRFUiBUQUJMRSBBREQgQ09OU1RSQUlO VAorLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nICgKKwlpZCBp bnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisJcGFyZW50X2lkIGludDRy YW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlk X2F0KTsKKy0tIFR3byBzY2FsYXIgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVtdWx0 aXJhbmdlLAorCXBhcmVudF9pZDEgaW50NHJhbmdlLAorCXBhcmVudF9pZDIgaW50NHJhbmdl LAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lk MiwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMiAoaWQx LCBpZDIsIFBFUklPRCB2YWxpZF9hdCk7CitcZCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu ZworICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmci CisgICBDb2x1bW4gICB8ICAgICAgVHlwZSAgICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUg fCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJhbmdlICAgICAgfCAg ICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0ICAgfCBkYXRlbXVsdGlyYW5nZSB8 ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgcGFyZW50X2lkMSB8IGludDRyYW5nZSAgICAg IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQyIHwgaW50NHJhbmdlICAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUykKK0ZvcmVpZ24ta2V5IGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZ19mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyKGlkMSwg aWQyLCBQRVJJT0QgdmFsaWRfYXQpCisKKy0tIHNob3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVw bGljYXRlIHJlZmVyZW5jZWQgY29sdW1uczoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n X2ZrMgorCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCBwYXJlbnRfaWQpCisJUkVG RVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgaWQpOworRVJST1I6ICBmb3Jl aWduIGtleSByZWZlcmVuY2VkLWNvbHVtbnMgbGlzdCBtdXN0IG5vdCBjb250YWluIGR1cGxp Y2F0ZXMKKy0tCistLSB0ZXN0IHdpdGggcm93cyBhbHJlYWR5CistLQorREVMRVRFIEZST00g dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJykpKSwKKyAgKCdbMSwyKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpKSwK KyAgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAxLTA1JykpKSwKKyAgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsIE5VTEwpKSk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZms7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScpKSwgJ1sxLDIpJyk7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9h dCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZms7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAx OC0wNC0wMScpKSwgJ1sxLDIpJyk7CistLSBzaG91bGQgZmFpbDoKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0 KTsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9h dCk9KFsxLDIpLCB7WzIwMTgtMDEtMDIsMjAxOC0wNC0wMSl9KSBpcyBub3QgcHJlc2VudCBp biB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIi4KKy0tIG9rYXkgYWdhaW46CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVG RVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOworLS0KKy0t IHRlc3QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYKKy0tCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFp bnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nX2ZrJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFs X21sdHJuZyhpZCwgUEVSSU9EIHZhbGlkX2F0KQorKDEgcm93KQorCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2luZyBpbnNlcnRzCistLQorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDIpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDEnKSks ICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMykn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScp KSwgJ1sxLDIpJyk7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg InRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9p ZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4LTAxLTAyLDIwMTgtMDQtMDEpfSkgaXMgbm90 IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX21sdHJuZyIuCistLSBub3cgaXQgc2hvdWxk IHdvcms6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDMnLCAn MjAxOC0wMy0wMycpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMyknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScpKSwgJ1sxLDIpJyk7 CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCistLQorVVBEQVRFIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDMtMDEnKSkgV0hFUkUgaWQgPSAnWzEsMikn OworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBT RVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAn MjAxOC0wNS0wMScpKSBXSEVSRSBpZCA9ICdbMSwyKSc7CitFUlJPUjogIGluc2VydCBvciB1 cGRhdGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciIHZpb2xhdGVzIGZv cmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiCitE RVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4LTAxLTAy LDIwMTgtMDUtMDEpfSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX21sdHJu ZyIuCitVUERBVEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBTRVQgcGFyZW50X2lkID0g J1s4LDkpJyBXSEVSRSBpZCA9ICdbMSwyKSc7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUg b24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiCitERVRBSUw6 ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbOCw5KSwge1syMDE4LTAxLTAyLDIwMTgt MDMtMDEpfSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX21sdHJuZyIuCist LSBBTFRFUiBGSyBERUZFUlJBQkxFCitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAgICgnWzUsNiknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSksCisgICAgKCdb NSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAz LTAxJykpKTsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAgICgnWzMsNCknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSwgJ1s1LDYpJyk7 CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgICBBTFRFUiBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKyAgICBERUZFUlJBQkxF IElOSVRJQUxMWSBERUZFUlJFRDsKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdI RVJFIGlkID0gJ1s1LDYpJzsgLS1zaG91bGQgbm90IGZhaWwgeWV0LgorQ09NTUlUOyAtLSBz aG91bGQgZmFpbCBoZXJlLgorRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0 ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAx LTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBk YXRlcyBOTyBBQ1RJT04KKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZms7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBF UklPRCB2YWxpZF9hdCkKKwlPTiBVUERBVEUgTk8gQUNUSU9OOworLS0gYSBQSyB1cGRhdGUg dGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpKSk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykpIFdIRVJF IGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91 Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24n dDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgn WzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpKSksCisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDItMDEnLCAnMjAxOC0wMy0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSwg J1s1LDYpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxNi0wMi0wMScsICcyMDE2LTAzLTAxJykpCitXSEVS RSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZh aWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK1VQREFURSB0ZW1wb3JhbF9tbHRy bmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAx JywgJzIwMTYtMDItMDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsK K0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKK0RFVEFJTDog IEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKX0p IGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZyIuCistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVm ZXJlbmNlZCwgYnV0IG5vdCAndGlsIGNvbW1pdDoKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJS RUQ7CisgIFVQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSkKKyAgV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworQ09NTUlUOworRVJST1I6ICB1cGRhdGUg b3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxl ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRf YXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJl bmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIGNoYW5n aW5nIHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VU IGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworRVJS T1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xh dGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdf ZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5 IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMg c3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n Ii4KKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBSRVNUUklDVAorLS0KK1RS VU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKwlEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJF RkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorCU9OIFVQ REFURSBSRVNUUklDVDsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0 aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSkpOworVVBEQVRFIHRlbXBv cmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpKSBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBL IHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJl ZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSkpLAorICAoJ1s1LDYpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSksICdbNSw2KScpOworVVBEQVRFIHRlbXBv cmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTYtMDItMDEnLCAnMjAxNi0wMy0wMScpKQorV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAz LTAxJykpOworLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJl ZmVyZW5jZWQgKGV2ZW4gYmVmb3JlIGNvbW1pdCk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZ19maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVS UkVEOworICBVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykpCisgIFdIRVJF IGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0 ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25z dHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUs NiksIHtbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJv bSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCitST0xMQkFDSzsKKy0tIGNo YW5naW5nIHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcg U0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwor RVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkg aXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nIi4KKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBOTyBBQ1RJT04KKy0t CitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK KwlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7Cist LSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNu J3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJykpKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBX SEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4g dGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2Ug aXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTCisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMi0wMScpKSksCisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgn WzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0w MS0xMCcpKSwgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWls cyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9t bHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworRVJST1I6ICB1cGRh dGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRh YmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFs aWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVm ZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIGEg UEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkLCBidXQg bm90ICd0aWwgY29tbWl0OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmdfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgREVMRVRF IEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQg PSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScp KTsKK0NPTU1JVDsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9y YWxfbWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwy MDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZyIuCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMg UkVTVFJJQ1QKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJ RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZms7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2 YWxpZF9hdCkKKwlPTiBERUxFVEUgUkVTVFJJQ1Q7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSk7CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gYSBQSyBkZWxldGUgdGhh dCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJl Y2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSkpLAorICAoJ1s1LDYpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTA1JywgJzIwMTgtMDEtMTAnKSksICdbNSw2KScpOworREVMRVRFIEZST00gdGVtcG9y YWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKKy0tIGEgUEsg ZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkIChldmVuIGJl Zm9yZSBjb21taXQpOgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsK K0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKK0RFVEFJTDog IEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKX0p IGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZyIuCitST0xMQkFDSzsKKy0tCistLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxl cworLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKAorCWlkIGlu dDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIG5hbWUgdGV4dCwKKwlDT05TVFJB SU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKKykgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKK0NSRUFU RSBUQUJMRSB0cDEgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1Ig VkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTAp JywgJ1sxMSwxMiknKTsKK0NSRUFURSBUQUJMRSB0cDIgcGFydGl0aW9uIE9GIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyBGT1IgVkFMVUVTIElOICgnWzIsMyknLCAnWzQsNSknLCAnWzYs NyknLCAnWzgsOSknLCAnWzEwLDExKScsICdbMTIsMTMpJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVTCisgICgn WzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0wMScpLCAnb25lJyks CisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAwMC0wMy0wMScpLCAn b25lJyksCisgICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0w MScpLCAndHdvJyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRf aWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAor CUNPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mayBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKSBQQVJUSVRJT04g QlkgTElTVCAoaWQpOworQ1JFQVRFIFRBQkxFIHRma3AxIHBhcnRpdGlvbiBPRiB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMyw0 KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScpOworQ1JFQVRFIFRB QkxFIHRma3AyIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n IEZPUiBWQUxVRVMgSU4gKCdbMiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdb MTAsMTEpJywgJ1sxMiwxMyknKTsKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2lu ZyBpbnNlcnRzCistLQorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0 ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSwgJ1sxLDIpJyksCisgICgnWzEs MiknLCBkYXRlcmFuZ2UoJzIwMDEtMDEtMDEnLCAnMjAwMi0wMS0wMScpLCAnWzIsMyknKSwK KyAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTE1JyksICdb MSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgn WzMsNCknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAxMC0wMi0xNScpLCAnWzEsMikn KTsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGZrcDEiIHZpb2xhdGVz IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIw MTAtMDEtMDEsMjAxMC0wMi0xNSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmciLgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1szLDQp JywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSwgJ1szLDQpJyk7CitF UlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRma3AxIiB2aW9sYXRlcyBmb3Jl aWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2Zr IgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzMsNCksIFsyMDAwLTAx LTAxLDIwMDAtMDItMTUpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIi4KKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2luZyB1cGRh dGVzCistLQorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgU0VUIHZh bGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTMnKSBXSEVSRSBp ZCA9ICdbMiwzKSc7CistLSBtb3ZlIGEgcm93IGZyb20gdGhlIGZpcnN0IHBhcnRpdGlvbiB0 byB0aGUgc2Vjb25kCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBT RVQgaWQgPSAnWzQsNSknIFdIRVJFIGlkID0gJ1sxLDIpJzsKKy0tIG1vdmUgYSByb3cgZnJv bSB0aGUgc2Vjb25kIHBhcnRpdGlvbiB0byB0aGUgZmlyc3QKK1VQREFURSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIFNFVCBpZCA9ICdbMSwyKScgV0hFUkUgaWQgPSAnWzQs NSknOworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0w NC0wMScpIFdIRVJFIGlkID0gJ1sxLDIpJzsKK0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZh bHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZmtwMV9wa2V5IgorREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMDAtMDEtMDEsMjAwMC0wNC0wMSkp IGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsy MDAwLTAxLTAxLDIwMDAtMDQtMDEpKS4KKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVu Y2VkIHVwZGF0ZXMgTk8gQUNUSU9OCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYp JywgZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSk7CitVUERBVEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJykgV0hFUkUgaWQgPSAnWzUsNiknOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYp JywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0w MS0xMCcpLCAnWzUsNiknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VU IHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtMDEnKQorICBX SEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAx JywgJzIwMTgtMDMtMDEnKTsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAn MjAxNi0wMi0wMScpCisgIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworRVJST1I6ICB1cGRhdGUgb3Ig ZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg InRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0X2Zr ZXkiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgorREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkp IGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyIuCistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVz IE5PIEFDVElPTgorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJh bmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAn WzUsNiknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBp ZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIw MTgtMDMtMDEnKTsKKy0tIHNob3VsZCBmYWlsOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworRVJST1I6ICB1cGRhdGUgb3IgZGVs ZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0X2ZrZXki IG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgorREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZyIuCistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFJF U1RSSUNUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVG RVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcKKwlPTiBERUxFVEUgUkVTVFJJQ1Q7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScp KTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSBXSEVSRSBpZCA9ICdbNSw2KSc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAx Ni0wMy0wMScpCisgIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFu Z2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworLS0gc2hvdWxkIGZhaWw6CitVUERB VEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgn MjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2 YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitFUlJP UjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBr ZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRf aWRfdmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0w MSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIi4KKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZl cmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUs NiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb NSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIw MTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx OC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBzaG91bGQgZmFpbDoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0VSUk9SOiAg dXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidHAxIiB2aW9sYXRlcyBmb3JlaWduIGtleSBj b25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX3BhcmVudF9pZF92 YWxpZF9hdF9ma2V5IiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIw MTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmciLgorLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5j ZWQgdXBkYXRlcyBDQVNDQURFCistLQorQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZworCQlPTiBERUxFVEUg Q0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKK0VSUk9SOiAgdW5zdXBwb3J0ZWQgT04gVVBE QVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKKy0t CistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0KKy0t CistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tCitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCisJRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmssCisJQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maworCQlGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nCisJCU9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5V TEw7CitFUlJPUjogIHVuc3VwcG9ydGVkIE9OIFVQREFURSBhY3Rpb24gZm9yIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECistLQorLS0gcGFydGl0aW9uZWQgRksgcmVm ZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLQorLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0KK0FMVEVSIFRBQkxFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQg REVGQVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCisJCU9OIERF TEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CitFUlJPUjogIHVuc3Vw cG9ydGVkIE9OIFVQREFURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNp bmcgUEVSSU9ECistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNF VCBERUZBVUxUCistLQorRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmc7CiBSRVNFVCBkYXRl c3R5bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJs YXBzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmlu ZGV4IGFlZjEzMGVlNjU1Li4zNTk2MTNjMDExOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvd2l0aG91dF9vdmVybGFwcy5zcWwKQEAgLTExNCwxMCArMTE0LDEwIEBAIFNFTEVDVCBw Z19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBX SEVSRSBjb25uYW1lID0gJ3RlCiAKIC0tIFBLIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIG11 bHRpcmFuZ2U6CiBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMiAoCi0gIGlkMSBpbnQ0 cmFuZ2UsCi0gIGlkMiBpbnQ0cmFuZ2UsCi0gIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAot ICBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZzJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQy LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorCWlkMSBpbnQ0cmFuZ2UsCisJaWQyIGlu dDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBv cmFsX21sdHJuZzJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKQogKTsKIFxkIHRlbXBvcmFsX21sdHJuZzIKIFNFTEVDVCBwZ19nZXRfY29u c3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3Rl bXBvcmFsX21sdHJuZzJfcGsnOwpAQCAtODA3LDQgKzgwNywxMDMyIEBAIFNFTEVDVCAqIEZS T00gdGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIAogRFJPUCBUQUJMRSB0ZW1w b3JhbDM7CiAKKy0tCistLSB0ZXN0IEZLIGRlcGVuZGVuY2llcworLS0KKworLS0gY2FuJ3Qg ZHJvcCBhIHJhbmdlIHJlZmVyZW5jZWQgYnkgYW4gRkssIHVubGVzcyB3aXRoIENBU0NBREUK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBk YXRlcmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9m a19ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBh cmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbDMgKGlkLCBQRVJJT0QgdmFs aWRfYXQpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWwzIERST1AgQ09MVU1OIHZhbGlkX2F0 OworQUxURVIgVEFCTEUgdGVtcG9yYWwzIERST1AgQ09MVU1OIHZhbGlkX2F0IENBU0NBREU7 CitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitEUk9QIFRBQkxFIHRlbXBvcmFs MzsKKworLS0KKy0tIHRlc3QgRk9SRUlHTiBLRVksIHJhbmdlIHJlZmVyZW5jZXMgcmFuZ2UK Ky0tCisKKy0tIHRlc3QgdGFibGUgc2V0dXAKK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nOwor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoaWQgaW50NHJhbmdlLCB2YWxpZF9hdCBkYXRl cmFuZ2UpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5nCisgIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX3JuZ19waworICBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpOworCistLSBDYW4ndCBjcmVhdGUgYSBGSyB3aXRoIGEgbWlzbWF0Y2hlZCByYW5n ZSB0eXBlCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQgaW50NHJh bmdlLAorCXZhbGlkX2F0IGludDRyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wazIgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJy bmdfZmsyIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVG RVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworCistLSB3 b3JrczogUEVSSU9EIGZvciBib3RoIHJlZmVyZW5jZWQgYW5kIHJlZmVyZW5jaW5nCitDUkVB VEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlk X2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9y YWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxf Zmtfcm5nMnJuZzsKKworLS0gd2l0aCBtaXNtYXRjaGVkIFBFUklPRCBjb2x1bW5zOgorCist LSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9h dCkKKy0tIFJFRkVSRU5DRVMgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQg ZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkKKyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJF TkNFUyAoaWQsIHZhbGlkX2F0KQorLS0gYm90aCBzaG91bGQgc3BlY2lmeSBQRVJJT0Q6CitD UkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZh bGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkKKyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJF TkNFUyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKy0tIEZPUkVJR04gS0VZIHBhcnQgc2hvdWxk IHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJ aWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJh bmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxf Zmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKwkJUkVG RVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworLS0gKHBh cmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorLS0gRk9SRUlHTiBL RVkgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9m a19ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBh cmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZh bGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworKTsKKy0tIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQpCitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfZmtfcm5nMnJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwK KwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJu Z19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lk LCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCkKKyk7 CistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxp ZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJ T0QgdmFsaWRfYXQpCispOworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNl ZCB0YWJsZToKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBb aW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQgaW50 NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAor CUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJF RkVSRU5DRVMgdGVtcG9yYWxfcm5nCispOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nOworLS0gKHBhcmVudF9pZCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRh dGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxf Zmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAo cGFyZW50X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworKTsKKworLS0gc2hvdWxk IGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9h dCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmcgKGlkLCBQRVJJT0QgaWQpCispOworCistLSBUd28gc2NhbGFyIGNvbHVtbnMKK0RS T1AgVEFCTEUgdGVtcG9yYWxfcm5nMjsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcyICgK KyAgaWQxIGludDRyYW5nZSwKKyAgaWQyIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJh bmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzJfcGsgUFJJTUFSWSBLRVkgKGlkMSwg aWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKKworQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2ZrMl9ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJh bmdlLAorCXBhcmVudF9pZDEgaW50NHJhbmdlLAorCXBhcmVudF9pZDIgaW50NHJhbmdlLAor CUNPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9y bmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0Qg dmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIFBFUklP RCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9mazJfcm5nMnJuZworRFJPUCBUQUJMRSB0 ZW1wb3JhbF9mazJfcm5nMnJuZzsKKworLS0KKy0tIHRlc3QgQUxURVIgVEFCTEUgQUREIENP TlNUUkFJTlQKKy0tCisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKwlp ZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFu Z2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19ybmcycm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mawor CUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VT IHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CistLSBUd28gc2NhbGFyIGNv bHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcgKAorCWlkIGludDRy YW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisJ cGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJu Z19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9mazJfcm5nMnJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRf aWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyIChpZDEs IGlkMiwgUEVSSU9EIHZhbGlkX2F0KTsKK1xkIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisKKy0t IHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUsIGFuZCB3cm9uZyBj b2x1bW4gdHlwZToKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywKKwlBTFRFUiBDT0xVTU4gdmFsaWRf YXQgVFlQRSB0c3JhbmdlIFVTSU5HIHRzcmFuZ2UobG93ZXIodmFsaWRfYXQpLCB1cHBlcih2 YWxpZF9hdCkpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCUFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lk LCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmc7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJQUxURVIgQ09MVU1OIHZhbGlkX2F0IFRZUEUg ZGF0ZXJhbmdlIFVTSU5HIGRhdGVyYW5nZShsb3dlcih2YWxpZF9hdCk6OmRhdGUsIHVwcGVy KHZhbGlkX2F0KTo6ZGF0ZSk7CisKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVy ZW5jZWQgdGFibGU6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKKworLS0g c2hvdWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCUFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJybmdfZmsyCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHBh cmVudF9pZCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCBpZCk7CisK Ky0tCistLSB0ZXN0IHdpdGggcm93cyBhbHJlYWR5CistLQorCitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ma19ybmcycm5nOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSksCisgICgnWzEsMiknLCBkYXRl cmFuZ2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpKSwKKyAgKCdbMiwzKScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpLAorICAoJ1szLDQpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgTlVMTCkpOworCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZms7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScp LCAnWzEsMiknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19ybmcycm5nX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAyJywgJzIwMTgtMDQtMDEnKSwgJ1sxLDIpJyk7CistLSBzaG91bGQgZmFpbDoKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19ybmcycm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOworLS0gb2theSBhZ2FpbjoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCUZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFs X3JuZzsKKworLS0KKy0tIHRlc3QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYKKy0tCisKK1NFTEVD VCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBj b25uYW1lID0gJ3RlbXBvcmFsX2ZrX3JuZzJybmdfZmsnOworCistLQorLS0gdGVzdCBGSyBy ZWZlcmVuY2luZyBpbnNlcnRzCistLQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScpLCAnWzEsMiknKTsKKy0tIHNob3VsZCBm YWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIw MTgtMDQtMDEnKSwgJ1sxLDIpJyk7CistLSBub3cgaXQgc2hvdWxkIHdvcms6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRl cmFuZ2UoJzIwMTgtMDItMDMnLCAnMjAxOC0wMy0wMycpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwz KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJyksICdbMSwyKScpOwor CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCistLQorCitVUERBVEUgdGVt cG9yYWxfZmtfcm5nMnJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDIn LCAnMjAxOC0wMy0wMScpIFdIRVJFIGlkID0gJ1sxLDIpJzsKKy0tIHNob3VsZCBmYWlsOgor VVBEQVRFIHRlbXBvcmFsX2ZrX3JuZzJybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcy MDE4LTAxLTAyJywgJzIwMTgtMDUtMDEnKSBXSEVSRSBpZCA9ICdbMSwyKSc7CitVUERBVEUg dGVtcG9yYWxfZmtfcm5nMnJuZyBTRVQgcGFyZW50X2lkID0gJ1s4LDkpJyBXSEVSRSBpZCA9 ICdbMSwyKSc7CisKKy0tIEFMVEVSIEZLIERFRkVSUkFCTEUKKworQkVHSU47CisgIElOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgICAoJ1s1LDYp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSksCisgICAgKCdbNSw2 KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworICBJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTCisgICAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEw JyksICdbNSw2KScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisgICAg QUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisgICAgREVGRVJSQUJM RSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdI RVJFIGlkID0gJ1s1LDYpJzsgLS1zaG91bGQgbm90IGZhaWwgeWV0LgorQ09NTUlUOyAtLSBz aG91bGQgZmFpbCBoZXJlLgorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMg Tk8gQUNUSU9OCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3Ju ZzJybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJRFJPUCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCUZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZworCU9OIFVQREFURSBOTyBBQ1RJT047CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1 Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworVVBEQVRFIHRlbXBvcmFs X3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0w MScpIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMg ZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSBy YW5nZSBpc24ndDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2 KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisg ICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSwKKyAg KCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAn KSwgJ1s1LDYpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxNi0wMi0wMScsICcyMDE2LTAzLTAxJykKK1dIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwor LS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6 CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0w MS0wMScsICcyMDE2LTAyLTAxJykKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0gYSBQSyB1cGRh dGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQsIGJ1dCBub3QgJ3Rp bCBjb21taXQ6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwor ICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworICAgIERFRkVS UkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworCisgIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VU IHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQorICBX SEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKTsKK0NPTU1JVDsKKy0tIGNoYW5naW5nIHRoZSBzY2FsYXIgcGFy dCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJworV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJyk7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBh bmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxf Zmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNF VCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKK1dI RVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMi0wMScpOworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMg UkVTVFJJQ1QKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5n MnJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3Ju ZzJybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisJRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9y YWxfcm5nCisJT04gVVBEQVRFIFJFU1RSSUNUOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNj ZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK1VQREFURSB0ZW1wb3JhbF9y bmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEn KSBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2 ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFu Z2UgaXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNikn OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAo J1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSksCisgICgn WzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyks ICdbNSw2KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFu Z2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScpCitXSEVSRSBpZCA9ICdbNSw2KScgQU5E IHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKy0t IGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkIChl dmVuIGJlZm9yZSBjb21taXQpOgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3JuZzJybmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsK KyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgVVBEQVRFIHRlbXBvcmFs X3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0w MScpCisgIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworUk9MTEJBQ0s7CistLSBjaGFuZ2luZyB0aGUg c2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4 KScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBG SyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOworVVBEQVRFIHRlbXBv cmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0w Mi0wMScpCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCBkZWxldGVzIE5PIEFDVElPTgorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1w b3JhbF9ma19ybmcycm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCURS T1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrOworQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcm5nMnJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdf ZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1 c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdI RVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0 aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBp c24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMK KyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpLAor ICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0x MCcpLCAnWzUsNiknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdb NSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMt MDEnKTsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZl cmVuY2VkOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwor LS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQs IGJ1dCBub3QgJ3RpbCBjb21taXQ6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxf Zmtfcm5nMnJuZworICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19m aworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworCisgIERFTEVURSBGUk9N IHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0NPTU1JVDsKKy0tIHRoZW4gZGVs ZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3Vj Y2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sz LDQpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5E IHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCistLQorCitUUlVO Q0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19ybmcycm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJy bmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworCU9OIERFTEVURSBS RVNUUklDVDsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwor REVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsg ZGVsZXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVm ZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJykpLAorICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4 LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKy0tIGEgUEsgZGVsZXRlIHRoYXQg ZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkIChldmVuIGJlZm9yZSBjb21taXQp OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAgICBBTFRF UiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKyAgICBERUZFUlJBQkxFIElO SVRJQUxMWSBERUZFUlJFRDsKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlk ID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpOworUk9MTEJBQ0s7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZL IHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00g dGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CisKKy0tCistLSB0ZXN0IE9OIFVQREFU RS9ERUxFVEUgb3B0aW9ucworLS0KKworLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMg Q0FTQ0FERQorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzQsNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKwkJT04gREVMRVRFIENB U0NBREUgT04gVVBEQVRFIENBU0NBREU7CisKKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRh dGVzIFNFVCBOVUxMCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpLCAnWzksMTApJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5n CisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCisJQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lk LCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCisJCU9OIERF TEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CisKKy0tIHRlc3QgRksgcmVmZXJl bmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEy LDEzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1sxMiwxMyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAgQUxURVIg Q09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf Zmtfcm5nMnJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCisJCU9OIERFTEVURSBTRVQgREVGQVVM VCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CisKKy0tCistLSB0ZXN0IEZPUkVJR04gS0VZLCBt dWx0aXJhbmdlIHJlZmVyZW5jZXMgbXVsdGlyYW5nZQorLS0KKworLS0gdGVzdCB0YWJsZSBz ZXR1cAorRFJPUCBUQUJMRSB0ZW1wb3JhbF9tbHRybmc7CitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfbWx0cm5nICggaWQgaW50NHJhbmdlLCB2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSk7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf bWx0cm5nX3BrCisgIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ Uyk7CisKKy0tIENhbid0IGNyZWF0ZSBhIEZLIHdpdGggYSBtaXNtYXRjaGVkIG11bHRpcmFu Z2UgdHlwZQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlk IGludDRyYW5nZSwKKwl2YWxpZF9hdCBpbnQ0bXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50 NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wazIgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsyIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQ RVJJT0QgdmFsaWRfYXQpCispOworCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAor CXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyks CisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9t bHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nOworCistLSB3aXRoIG1pc21hdGNoZWQgUEVSSU9EIGNvbHVtbnM6 CisKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZh bGlkX2F0KQorLS0gUkVGRVJFTkNFUyBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwK Kwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNP TlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpCispOwor LS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9hdCkKKy0t IGJvdGggc2hvdWxkIHNwZWNpZnkgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGly YW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkKKyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVG RVJFTkNFUyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKy0tIEZPUkVJR04gS0VZIHBhcnQgc2hv dWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorCXBh cmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJ Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQs IFBFUklPRCB2YWxpZF9hdCkKKyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJF TkNFUyBbaW1wbGljaXRdCistLSBGT1JFSUdOIEtFWSBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBF UklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGlu dDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJh bmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxp ZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcKKyk7CistLSAocGFyZW50X2lk LCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkKQorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRl bXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19m ayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5D RVMgdGVtcG9yYWxfbWx0cm5nIChpZCkKKyk7CistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VT IChpZCwgUEVSSU9EIHZhbGlkX2F0KQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwK KwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp LAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtF WSAocGFyZW50X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklP RCB2YWxpZF9hdCkKKyk7CistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2Vk IHRhYmxlOgorLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIFtp bXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nICgKKwlp ZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisJcGFyZW50X2lkIGlu dDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZworKTsKK0RS T1AgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKKy0tIChwYXJlbnRfaWQpIFJF RkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlw YXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAor CUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAo cGFyZW50X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZworKTsKKworLS0gc2hv dWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwK Kwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNP TlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50 X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCBpZCkKKyk7 CisKKy0tIFR3byBzY2FsYXIgY29sdW1ucworRFJPUCBUQUJMRSB0ZW1wb3JhbF9tbHRybmcy OworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX21sdHJuZzIgKAorCWlkMSBpbnQ0cmFuZ2UsCisJ aWQyIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlDT05TVFJBSU5U IHRlbXBvcmFsX21sdHJuZzJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKQorKTsKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2Us CisJcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisJcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisJQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIs IFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyIChpZDEs IGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK1xkIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nCitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworCistLQorLS0g dGVzdCBBTFRFUiBUQUJMRSBBREQgQ09OU1RSQUlOVAorLS0KKworQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBk YXRlbXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKwlG T1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0 ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOworCistLSBUd28gc2NhbGFy IGNvbHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKAor CWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQx IGludDRyYW5nZSwKKwlwYXJlbnRfaWQyIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKKyk7CisKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsK KwlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0 KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxp ZF9hdCk7CitcZCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworCistLSBzaG91bGQgZmFp bCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19mazIKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg cGFyZW50X2lkKQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIGlk KTsKKworLS0KKy0tIHRlc3Qgd2l0aCByb3dzIGFscmVhZHkKKy0tCisKK0RFTEVURSBGUk9N IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpKSksCisgICgnWzEsMiknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpKSks CisgICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMS0wNScpKSksCisgICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCBOVUxMKSkpOworCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdf Zms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScpKSwgJ1sxLDIpJyk7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxp ZF9hdCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZms7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAn MjAxOC0wNC0wMScpKSwgJ1sxLDIpJyk7CistLSBzaG91bGQgZmFpbDoKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlk X2F0KTsKKy0tIG9rYXkgYWdhaW46CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworCUFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKwlGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOworCistLQorLS0gdGVzdCBwZ19nZXRfY29uc3Ry YWludGRlZgorLS0KKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBw Z19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu Z19mayc7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jaW5nIGluc2VydHMKKy0tCisKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMicsICcyMDE4LTAyLTAxJykpLCAnWzEsMiknKTsKKy0tIHNob3VsZCBmYWlsOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnKSksICdbMSwyKScpOworLS0gbm93IGl0IHNob3Vs ZCB3b3JrOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAzJywg JzIwMTgtMDMtMDMnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnKSksICdbMSwyKScp OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCistLQorCitVUERBVEUg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMy0wMScpKSBXSEVSRSBpZCA9ICdb MSwyKSc7CistLSBzaG91bGQgZmFpbDoKK1VQREFURSB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MicsICcyMDE4LTA1LTAxJykpIFdIRVJFIGlkID0gJ1sxLDIpJzsKK1VQREFURSB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nIFNFVCBwYXJlbnRfaWQgPSAnWzgsOSknIFdIRVJFIGlkID0g J1sxLDIpJzsKKworLS0gQUxURVIgRksgREVGRVJSQUJMRQorCitCRUdJTjsKKyAgSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAgICgnWzUs NiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpKSksCisgICAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w Mi0wMScsICcyMDE4LTAzLTAxJykpKTsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAgICgnWzMs NCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0x MCcpKSwgJ1s1LDYpJyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsK KyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKworICBERUxFVEUgRlJPTSB0 ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknOyAtLXNob3VsZCBub3QgZmFpbCB5 ZXQuCitDT01NSVQ7IC0tIHNob3VsZCBmYWlsIGhlcmUuCisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBOTyBBQ1RJT04KKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21s dHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKwlB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrCisJRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxf bWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorCU9OIFVQREFURSBOTyBBQ1RJT047Cist LSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNu J3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJykpKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZh bGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYt MDItMDEnKSkgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNj ZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2Ug dGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlk ID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMKKyAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJykpKSwKKyAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcy MDE4LTAxLTEwJykpLCAnWzUsNiknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZh bGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIwMTYt MDMtMDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKKy0tIGEgUEsg dXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgorVVBEQVRF IHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpKQorV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJykpOworLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGgg YXJlIHJlZmVyZW5jZWQsIGJ1dCBub3QgJ3RpbCBjb21taXQ6CitCRUdJTjsKKyAgQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworICAgIEFMVEVSIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZ IERFRkVSUkVEOworCisgIFVQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0g ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSkK KyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworQ09NTUlUOworLS0gY2hh bmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBT RVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CisK Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBSRVNUUklDVAorLS0KKworVFJV TkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworCURST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVG RVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisJT04gVVBE QVRFIFJFU1RSSUNUOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRo ZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSk7CitVUERBVEUgdGVtcG9y YWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx Ni0wMS0wMScsICcyMDE2LTAyLTAxJykpIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsg dXBkYXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVm ZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0RFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSksCisgICgnWzUsNiknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSwgJ1s1LDYpJyk7CitVUERBVEUgdGVtcG9y YWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx Ni0wMi0wMScsICcyMDE2LTAzLTAxJykpCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMt MDEnKSk7CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVm ZXJlbmNlZCAoZXZlbiBiZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJS RUQ7CisKKyAgVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpKQorICBXSEVS RSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CitST0xMQkFDSzsKKy0tIGNoYW5naW5n IHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlk ID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCistLQorCitUUlVOQ0FU RSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19m aworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVO Q0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CistLSBhIFBLIGRl bGV0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJl bmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJykpKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9 ICdbNSw2KSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRo ZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgn WzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpKSksCisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDItMDEnLCAnMjAxOC0wMy0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSwg J1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUs NiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0w MScsICcyMDE4LTAzLTAxJykpOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNl IGJvdGggYXJlIHJlZmVyZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworLS0gYSBQSyBkZWxldGUgdGhhdCBm YWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQsIGJ1dCBub3QgJ3RpbCBjb21taXQ6 CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworICAg IEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maworICAgIERF RkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworCisgIERFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CitDT01NSVQ7CisK Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVAorLS0KKworVFJV TkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworCURST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVG RVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisJT04gREVM RVRFIFJFU1RSSUNUOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKSkpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdI RVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0 aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBp c24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMKKyAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJykpKSwKKyAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb Myw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAx LTEwJykpLCAnWzUsNiknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBp ZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxz IGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAoZXZlbiBiZWZvcmUgY29tbWl0KToKK0JF R0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgICAgQUxU RVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrCisgICAgREVGRVJS QUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfbWx0 cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK1JPTExCQUNLOworCist LQorLS0gRksgYmV0d2VlbiBwYXJ0aXRpb25lZCB0YWJsZXMKKy0tCisKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9h dCBkYXRlcmFuZ2UsCisgIG5hbWUgdGV4dCwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX3Bhcml0 aW9uZWRfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UykKKykgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKK0NSRUFURSBUQUJMRSB0cDEgcGFydGl0 aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgVkFMVUVTIElOICgnWzEsMikn LCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknKTsKK0NS RUFURSBUQUJMRSB0cDIgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBG T1IgVkFMVUVTIElOICgnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAnWzEw LDExKScsICdbMTIsMTMpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2Uo JzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0wMScpLCAnb25lJyksCisgICgnWzEsMiknLCBkYXRl cmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAwMC0wMy0wMScpLCAnb25lJyksCisgICgnWzIsMykn LCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAndHdvJyk7CisKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nICgKKwlpZCBpbnQ0 cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJ Q09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX3BrIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitD UkVBVEUgVEFCTEUgdGZrcDEgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3 LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJyk7CitDUkVBVEUgVEFCTEUgdGZrcDIgcGFydGl0 aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAo J1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEz KScpOworCistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cworLS0K KworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAw LTAxLTAxJywgJzIwMDAtMDItMTUnKSwgJ1sxLDIpJyksCisgICgnWzEsMiknLCBkYXRlcmFu Z2UoJzIwMDEtMDEtMDEnLCAnMjAwMi0wMS0wMScpLCAnWzIsMyknKSwKKyAgKCdbMiwzKScs IGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTE1JyksICdbMSwyKScpOworLS0g c2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzMsNCknLCBkYXRl cmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAxMC0wMi0xNScpLCAnWzEsMiknKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcy MDAwLTAyLTE1JyksICdbMyw0KScpOworCistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJl bmNpbmcgdXBkYXRlcworLS0KKworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDIt MTMnKSBXSEVSRSBpZCA9ICdbMiwzKSc7CistLSBtb3ZlIGEgcm93IGZyb20gdGhlIGZpcnN0 IHBhcnRpdGlvbiB0byB0aGUgc2Vjb25kCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyBTRVQgaWQgPSAnWzQsNSknIFdIRVJFIGlkID0gJ1sxLDIpJzsKKy0tIG1v dmUgYSByb3cgZnJvbSB0aGUgc2Vjb25kIHBhcnRpdGlvbiB0byB0aGUgZmlyc3QKK1VQREFU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFNFVCBpZCA9ICdbMSwyKScgV0hF UkUgaWQgPSAnWzQsNSknOworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMDAtMDEt MDEnLCAnMjAwMC0wNC0wMScpIFdIRVJFIGlkID0gJ1sxLDIpJzsKKworLS0KKy0tIHBhcnRp dGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBOTyBBQ1RJT04KKy0tCisKK1RSVU5DQVRF IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAy LTAxJykpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpIFdIRVJFIGlkID0gJ1s1 LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAz LTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitVUERBVEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMi0wMScs ICcyMDE2LTAzLTAxJykKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRh dGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBzaG91bGQgZmFpbDoK K1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQorICBXSEVSRSBpZCA9ICdbNSw2KScg QU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsK KworLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBOTyBBQ1RJT04K Ky0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4 LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMs NCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbNSw2 KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEn KTsKKy0tIHNob3VsZCBmYWlsOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOC0wMi0wMScpOworCistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJl bmNlZCB1cGRhdGVzIFJFU1RSSUNUCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCisJRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZworCU9O IERFTEVURSBSRVNUUklDVDsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxNi0wMS0w MScsICcyMDE2LTAyLTAxJykpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBT RVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpIFdI RVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0w MScsICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitVUERB VEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgn MjAxNi0wMi0wMScsICcyMDE2LTAzLTAxJykKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2 YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBz aG91bGQgZmFpbDoKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlk X2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQorICBXSEVSRSBp ZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKTsKKworLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRl cyBSRVNUUklDVAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRl cmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyks ICdbNSw2KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJF IGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAn MjAxOC0wMy0wMScpOworLS0gc2hvdWxkIGZhaWw6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CisKKy0tCistLSBwYXJ0aXRpb25l ZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0KKworQUxURVIgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZworCQlPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKworLS0KKy0tIHBh cnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLQorCistLQorLS0g cGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLQorCitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCisJRFJPUCBDT05TVFJB SU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmssCisJQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maworCQlGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nCisJCU9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7 CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwK Ky0tCisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERF RkFVTFQKKy0tCisKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisJ RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmssCisJ QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maworCQlG T1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMg dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCisJCU9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBV UERBVEUgU0VUIERFRkFVTFQ7CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZzsKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n OworCiBSRVNFVCBkYXRlc3R5bGU7Ci0tIAoyLjQyLjAKCg== --------------GsheMzFFcGdccG4bvM4vwSCN Content-Type: text/x-patch; charset=UTF-8; name="v37-0005-Add-support-funcs-for-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename="v37-0005-Add-support-funcs-for-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 RnJvbSAxZTA1MjY2ZDllNzkzZWFkZDQ5YjllMDU2MjM5MGM5MzUzZjYyNzI4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMzAgRGVjIDIwMjMgMjM6MTA6NTkgLTA4 MDAKU3ViamVjdDogW1BBVENIIHYzNyA1LzhdIEFkZCBzdXBwb3J0IGZ1bmNzIGZvciBGT1Ig UE9SVElPTiBPRgoKLSBBZGRzIGludGVyc2VjdCBzdXBwb3J0IHByb2NzLgoKICBUaGVzZSBq dXN0IGNhbGwgdGhlIGV4aXN0aW5nIGludGVyc2VjdCBmdW5jdGlvbnMsCiAgYnV0IHRoZXkg bGV0IHVzIGNvbXB1dGUgdGhlIHBvcnRpb24gb2YgYSByb3cgdGhhdCBpcyB1cGRhdGVkL2Rl bGV0ZWQKICBpbiBhIEZPUiBQT1JUSU9OIGNvbW1hbmQuCgotIEFkZHMge211bHRpLH1yYW5n ZV93aXRob3V0X3BvcnRpb24gc3VwcG9ydCBwcm9jcwoKICBUaGVzZSByZXR1cm4gU0VUT0Yg dGhlaXIgaW5wdXQgdHlwZSBhbmQgd29yayBsaWtlIG1pbnVzIGJ1dCBkb24ndAogIGZhaWwg b24gc3BsaXRzLiBUaGV5IG5ldmVyIGNvbnRhaW4gZW1wdHkgZWxlbWVudHMuIFdlIHdpbGwg dXNlIHRoaXMgdG8KICBjb21wdXRlIEZPUiBQT1JUSU9OIE9GIGxlZnRvdmVycy4KLS0tCiBj b250cmliL2Jsb29tL2JsdmFsaWRhdGUuYyAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQogZG9jL3NyYy9zZ21sL2dpc3Quc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgMTU1 ICsrKysrKysrKysrKysrKystCiBkb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwgICAgICAgICAg ICAgICAgICAgICAgfCAgMTQgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdmFs aWRhdGUuYyAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW52YWxp ZGF0ZS5jICAgICAgICAgIHwgIDEyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0 dmFsaWRhdGUuYyAgICAgICAgfCAgMjkgKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4 L2FtdmFsaWRhdGUuYyAgICAgICAgIHwgICA5ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL25idHZhbGlkYXRlLmMgICAgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9z cGdpc3Qvc3BndmFsaWRhdGUuYyAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L211bHRpcmFuZ2V0eXBlcy5jICAgICAgIHwgIDcxICsrKysrKysrCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jICAgICAgICAgICAgfCAxNjMgKysrKysrKysrKysr KysrKysrCiBzcmMvaW5jbHVkZS9hY2Nlc3MvYW12YWxpZGF0ZS5oICAgICAgICAgICAgICAg fCAgIDQgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9naXN0LmggICAgICAgICAgICAgICAgICAg ICB8ICAgNCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0ICAgICAgICAg ICAgIHwgIDE1ICsrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAg ICAgICAgfCAgIDggKwogc3JjL2luY2x1ZGUvdXRpbHMvcmFuZ2V0eXBlcy5oICAgICAgICAg ICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5 cGVzLm91dCB8IDExNiArKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3JhbmdldHlwZXMub3V0ICAgICAgfCAgNTQgKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9tdWx0aXJhbmdldHlwZXMuc3FsICAgICAgfCAgMjIgKysrCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9yYW5nZXR5cGVzLnNxbCAgICAgICAgICAgfCAgMTAgKysKIDIxIGZpbGVzIGNoYW5n ZWQsIDY3NyBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9j b250cmliL2Jsb29tL2JsdmFsaWRhdGUuYyBiL2NvbnRyaWIvYmxvb20vYmx2YWxpZGF0ZS5j CmluZGV4IDg4YzVhNzkxOTc1Li45ZTM5ZTM5ZTE3NCAxMDA2NDQKLS0tIGEvY29udHJpYi9i bG9vbS9ibHZhbGlkYXRlLmMKKysrIGIvY29udHJpYi9ibG9vbS9ibHZhbGlkYXRlLmMKQEAg LTEwNSw3ICsxMDUsNyBAQCBibHZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQlzd2l0Y2gg KHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJCWNhc2UgQkxPT01fSEFTSF9QUk9DOgot CQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0 T0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0t PmFtcHJvYywgSU5UNE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQkxLCAxLCBvcGNr ZXl0eXBlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQkxPT01fT1BUSU9OU19QUk9DOgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCBiZmI5Nzg2NWUxOC4uYTVmZjVjOGRhNTUgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCkBAIC04NjUsNyArODY1LDcgQEAKICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJh PgogICAgICAgIFRoZSBCLXRyZWUgb3BlcmF0b3IgZmFtaWx5IHRoaXMgZW50cnkgc29ydHMg YWNjb3JkaW5nIHRvLCBpZiBhbgotICAgICAgIG9yZGVyaW5nIG9wZXJhdG9yOyB6ZXJvIGlm IGEgc2VhcmNoIG9wZXJhdG9yCisgICAgICAgb3JkZXJpbmcgb3BlcmF0b3I7IHplcm8gaWYg YSBzZWFyY2ggb3BlcmF0b3Igb3IgcG9ydGlvbiBvcGVyYXRvcgogICAgICAgPC9wYXJhPjwv ZW50cnk+CiAgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvZ2lzdC5zZ21sIGIvZG9jL3NyYy9zZ21sL2dpc3Quc2dtbAppbmRleCA2MzhkOTEy ZGMyZC4uOWU3YTdmNTc1YjQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL2dpc3Quc2dtbApAQCAtMjY2LDcgKzI2Niw3IEBAIENSRUFU RSBJTkRFWCBPTiBteV90YWJsZSBVU0lORyBHSVNUIChteV9pbmV0X2NvbHVtbiBpbmV0X29w cyk7CiAKICA8cGFyYT4KICAgIFRoZXJlIGFyZSBmaXZlIG1ldGhvZHMgdGhhdCBhbiBpbmRl eCBvcGVyYXRvciBjbGFzcyBmb3IKLSAgIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+IG11c3Qg cHJvdmlkZSwgYW5kIHNldmVuIHRoYXQgYXJlIG9wdGlvbmFsLgorICAgPGFjcm9ueW0+R2lT VDwvYWNyb255bT4gbXVzdCBwcm92aWRlLCBhbmQgbmluZSB0aGF0IGFyZSBvcHRpb25hbC4K ICAgIENvcnJlY3RuZXNzIG9mIHRoZSBpbmRleCBpcyBlbnN1cmVkCiAgICBieSBwcm9wZXIg aW1wbGVtZW50YXRpb24gb2YgdGhlIDxmdW5jdGlvbj5zYW1lPC9mdW5jdGlvbj4sIDxmdW5j dGlvbj5jb25zaXN0ZW50PC9mdW5jdGlvbj4KICAgIGFuZCA8ZnVuY3Rpb24+dW5pb248L2Z1 bmN0aW9uPiBtZXRob2RzLCB3aGlsZSBlZmZpY2llbmN5IChzaXplIGFuZCBzcGVlZCkgb2Yg dGhlCkBAIC0yOTQsNiArMjk0LDEyIEBAIENSRUFURSBJTkRFWCBPTiBteV90YWJsZSBVU0lO RyBHSVNUIChteV9pbmV0X2NvbHVtbiBpbmV0X29wcyk7CiAgICA8ZmlsZW5hbWU+c3JjL2lu Y2x1ZGUvYWNjZXNzL3N0cmF0bnVtLmg8L2ZpbGVuYW1lPikgaW50byBzdHJhdGVneSBudW1i ZXJzCiAgICB1c2VkIGJ5IHRoZSBvcGVyYXRvciBjbGFzcy4gIFRoaXMgbGV0cyB0aGUgY29y ZSBjb2RlIGxvb2sgdXAgb3BlcmF0b3JzIGZvcgogICAgdGVtcG9yYWwgY29uc3RyYWludCBp bmRleGVzLgorICAgVGhlIG9wdGlvbmFsIHRoaXJ0ZWVudGggbWV0aG9kIDxmdW5jdGlvbj5p bnRlcnNlY3Q8L2Z1bmN0aW9uPiBpcyB1c2VkIGJ5CisgICA8bGl0ZXJhbD5GT1IgUE9SVElP TiBPRjwvbGl0ZXJhbD4gdG8gY29tcHV0ZSB0aGUgbmV3IGJvdW5kcyBvZiB0aGUgdXBkYXRl ZC8KKyAgIGRlbGV0ZWQgcmVjb3JkLgorICAgVGhlIG9wdGlvbmFsIGZvdXJ0ZWVudGggbWV0 aG9kIDxmdW5jdGlvbj53aXRob3V0X3BvcnRpb248L2Z1bmN0aW9uPiBpcyB1c2VkIGJ5Cisg ICA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gdG8gY29tcHV0ZSB0aGUgbGVm dG92ZXIgcmVjb3JkcyBvdXRzaWRlIHRoZQorICAgdGFyZ2V0ZWQgYm91bmRzLgogIDwvcGFy YT4KIAogIDx2YXJpYWJsZWxpc3Q+CkBAIC0xMjM1LDYgKzEyNDEsMTUzIEBAIG15X3N0cmF0 bnVtKFBHX0ZVTkNUSU9OX0FSR1MpCiAgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+ PGZ1bmN0aW9uPmludGVyc2VjdDwvZnVuY3Rpb24+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+ CisgICAgICA8cGFyYT4KKyAgICAgICBHaXZlbiB0d28gdmFsdWVzIG9mIHRoaXMgb3BjbGFz cywgaXQgcmV0dXJucyB0aGVpciBpbnRlcnNlY3Rpb24uCisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBUaGlzIGlzIHVzZWQgZm9yIHRlbXBvcmFsIHVwZGF0ZSBjb21t YW5kcyB0byBjb21wdXRlIHRoZQorICAgICAgIG5ldyBib3VuZHMgb2YgdGhlIGNoYW5nZWQg cm93LgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgPGFjcm9u eW0+U1FMPC9hY3JvbnltPiBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rpb24gbXVzdCBsb29r IGxpa2UKKyAgICAgICB0aGlzICh1c2luZyA8bGl0ZXJhbD5teV9pbnRlcnNlY3Q8L2xpdGVy YWw+IGFzIGFuIGV4YW1wbGUpOgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBteV9yYW5nZV9pbnRlcnNlY3QoYW55cmFuZ2UsIGFueXJhbmdlKQor UkVUVVJOUyBhbnlyYW5nZQorQVMgJ01PRFVMRV9QQVRITkFNRScKK0xBTkdVQUdFIEMgU1RS SUNUOworPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJh PgorICAgICAgICBUaGUgbWF0Y2hpbmcgY29kZSBpbiB0aGUgQyBtb2R1bGUgY291bGQgdGhl biBmb2xsb3cgdGhpcyBleGFtcGxlOgorCis8cHJvZ3JhbWxpc3Rpbmc+CitEYXR1bQorbXlf cmFuZ2VfaW50ZXJzZWN0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisgICAgUmFuZ2VUeXBlICAq cjEgPSBQR19HRVRBUkdfUkFOR0VfUCgwKTsKKyAgICBSYW5nZVR5cGUgICpyMiA9IFBHX0dF VEFSR19SQU5HRV9QKDEpOworICAgIFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZTsKKworICAg IC8qIERpZmZlcmVudCB0eXBlcyBzaG91bGQgYmUgcHJldmVudGVkIGJ5IEFOWVJBTkdFIG1h dGNoaW5nIHJ1bGVzICovCisgICAgaWYgKFJhbmdlVHlwZUdldE9pZChyMSkgIT0gUmFuZ2VU eXBlR2V0T2lkKHIyKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBlbG9nKEVSUk9SLCAicmFuZ2UgdHlwZXMgZG8g bm90IG1hdGNoIik7CisKKyAgICB0eXBjYWNoZSA9IHJhbmdlX2dldF90eXBjYWNoZShmY2lu Zm8sIFJhbmdlVHlwZUdldE9pZChyMSkpOworCisgICAgUEdfUkVUVVJOX1JBTkdFX1AocmFu Z2VfaW50ZXJzZWN0X2ludGVybmFsKHR5cGNhY2hlLCByMSwgcjIpKTsKK30KKzwvcHJvZ3Jh bWxpc3Rpbmc+CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJs aXN0ZW50cnk+CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPndp dGhvdXRfcG9ydGlvbjwvZnVuY3Rpb24+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAg ICA8cGFyYT4KKyAgICAgICBHaXZlbiB0d28gdmFsdWVzIG9mIHRoaXMgb3BjbGFzcywgaXQg c3VidHJhY3RzIHRoZSBzZWNvbmQgZm9yIHRoZSBmaXJzdAorICAgICAgIGFuZCByZXR1cm5z IGFuIGFycmF5IG9mIHRoZSByZXN1bHRzLgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgVGhpcyBpcyB1c2VkIGZvciB0ZW1wb3JhbCB1cGRhdGUvZGVsZXRlIGNvbW1h bmRzIHRvIGNvbXB1dGUgdGhlCisgICAgICAgYm91bmRzIG9mIHRoZSB1bnRvdWNoZWQgZHVy YXRpb24uCisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSA8YWNy b255bT5TUUw8L2Fjcm9ueW0+IGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBtdXN0IGxv b2sgbGlrZQorICAgICAgIHRoaXMgKHVzaW5nIDxsaXRlcmFsPm15X3JhbmdlX3dpdGhvdXRf cG9ydGlvbjwvbGl0ZXJhbD4gYXMgYW4gZXhhbXBsZSk6CisKKzxwcm9ncmFtbGlzdGluZz4K K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIG15X3JhbmdlX3dpdGhvdXRfcG9ydGlvbihh bnlyYW5nZSwgYW55cmFuZ2UpCitSRVRVUk5TIGFueWFycmF5CitBUyAnTU9EVUxFX1BBVEhO QU1FJworTEFOR1VBR0UgQyBTVFJJQ1Q7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgPC9w YXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBtYXRjaGluZyBjb2RlIGluIHRo ZSBDIG1vZHVsZSBjb3VsZCB0aGVuIGZvbGxvdyB0aGlzIGV4YW1wbGU6CisKKzxwcm9ncmFt bGlzdGluZz4KK0RhdHVtCitteV9yYW5nZV93aXRob3V0X3BvcnRpb24oUEdfRlVOQ1RJT05f QVJHUykKK3sKKyAgICB0eXBlZGVmIHN0cnVjdCB7CisgICAgICAgIFJhbmdlVHlwZSAgKnJz WzJdOworICAgICAgICBpbnQgICAgICAgICBuOworICAgIH0gcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uX2ZjdHg7CisKKyAgICBGdW5jQ2FsbENvbnRleHQgKmZ1bmNjdHg7CisgICAgcmFuZ2Vf d2l0aG91dF9wb3J0aW9uX2ZjdHggKmZjdHg7CisgICAgTWVtb3J5Q29udGV4dCBvbGRjb250 ZXh0OworCisgICAgLyogc3R1ZmYgZG9uZSBvbmx5IG9uIHRoZSBmaXJzdCBjYWxsIG9mIHRo ZSBmdW5jdGlvbiAqLworICAgIGlmIChTUkZfSVNfRklSU1RDQUxMKCkpCisgICAgeworICAg ICAgICBSYW5nZVR5cGUgICAgICAgKnIxOworICAgICAgICBSYW5nZVR5cGUgICAgICAgKnIy OworICAgICAgICBPaWQgICAgICAgICAgICAgIHJuZ3R5cGlkOworICAgICAgICBUeXBlQ2Fj aGVFbnRyeSAgKnR5cGNhY2hlOworCisgICAgICAgIC8qIGNyZWF0ZSBhIGZ1bmN0aW9uIGNv bnRleHQgZm9yIGNyb3NzLWNhbGwgcGVyc2lzdGVuY2UgKi8KKyAgICAgICAgZnVuY2N0eCA9 IFNSRl9GSVJTVENBTExfSU5JVCgpOworCisgICAgICAgIC8qCisgICAgICAgICAqIHN3aXRj aCB0byBtZW1vcnkgY29udGV4dCBhcHByb3ByaWF0ZSBmb3IgbXVsdGlwbGUgZnVuY3Rpb24g Y2FsbHMKKyAgICAgICAgICovCisgICAgICAgIG9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0 U3dpdGNoVG8oZnVuY2N0eC0mZ3Q7bXVsdGlfY2FsbF9tZW1vcnlfY3R4KTsKKworICAgICAg ICByMSA9IFBHX0dFVEFSR19SQU5HRV9QKDApOworICAgICAgICByMiA9IFBHX0dFVEFSR19S QU5HRV9QKDEpOworCisgICAgICAgIC8qIERpZmZlcmVudCB0eXBlcyBzaG91bGQgYmUgcHJl dmVudGVkIGJ5IEFOWVJBTkdFIG1hdGNoaW5nIHJ1bGVzICovCisgICAgICAgIGlmIChSYW5n ZVR5cGVHZXRPaWQocjEpICE9IFJhbmdlVHlwZUdldE9pZChyMikpCisgICAgICAgICAgICBl bG9nKEVSUk9SLCAicmFuZ2UgdHlwZXMgZG8gbm90IG1hdGNoIik7CisKKyAgICAgICAgLyog YWxsb2NhdGUgbWVtb3J5IGZvciB1c2VyIGNvbnRleHQgKi8KKyAgICAgICAgZmN0eCA9IChy YW5nZV93aXRob3V0X3BvcnRpb25fZmN0eCAqKSBwYWxsb2Moc2l6ZW9mKHJhbmdlX3dpdGhv dXRfcG9ydGlvbl9mY3R4KSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogSW5pdGlhbGl6 ZSBzdGF0ZS4KKyAgICAgICAgICogV2UgY2FuJ3Qgc3RvcmUgdGhlIHJhbmdlIHR5cGNhY2hl IGluIGZuX2V4dHJhIGJlY2F1c2UgdGhlIGNhbGxlcgorICAgICAgICAgKiB1c2VzIHRoYXQg Zm9yIHRoZSBTUkYgc3RhdGUuCisgICAgICAgICAqLworICAgICAgICBybmd0eXBpZCA9IFJh bmdlVHlwZUdldE9pZChyMSk7CisgICAgICAgIHR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2Fj aGUocm5ndHlwaWQsIFRZUEVDQUNIRV9SQU5HRV9JTkZPKTsKKyAgICAgICAgaWYgKHR5cGNh Y2hlLSZndDtybmdlbGVtdHlwZSA9PSBOVUxMKQorICAgICAgICAgICAgZWxvZyhFUlJPUiwg InR5cGUgJXUgaXMgbm90IGEgcmFuZ2UgdHlwZSIsIHJuZ3R5cGlkKTsKKyAgICAgICAgcmFu Z2Vfd2l0aG91dF9wb3J0aW9uX2ludGVybmFsKHR5cGNhY2hlLCByMSwgcjIsIGZjdHgtJmd0 O3JzLCAmYW1wO2ZjdHgtJmd0O24pOworCisgICAgICAgIGZ1bmNjdHgtJmd0O3VzZXJfZmN0 eCA9IGZjdHg7CisgICAgICAgIE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsK KyAgICB9CisKKyAgICAvKiBzdHVmZiBkb25lIG9uIGV2ZXJ5IGNhbGwgb2YgdGhlIGZ1bmN0 aW9uICovCisgICAgZnVuY2N0eCA9IFNSRl9QRVJDQUxMX1NFVFVQKCk7CisgICAgZmN0eCA9 IGZ1bmNjdHgtJmd0O3VzZXJfZmN0eDsKKworICAgIGlmIChmdW5jY3R4LSZndDtjYWxsX2Nu dHIgJmx0OyBmY3R4LSZndDtuKQorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogV2Ug bXVzdCBrZWVwIHRoZXNlIG9uIHNlcGFyYXRlIGxpbmVzCisgICAgICAgICAqIGJlY2F1c2Ug U1JGX1JFVFVSTl9ORVhUIGRvZXMgY2FsbF9jbnRyKys6CisgICAgICAgICAqLworICAgICAg ICBSYW5nZVR5cGUgKnJldCA9IGZjdHgtJmd0O3JzW2Z1bmNjdHgtJmd0O2NhbGxfY250cl07 CisgICAgICAgIFNSRl9SRVRVUk5fTkVYVChmdW5jY3R4LCBSYW5nZVR5cGVQR2V0RGF0dW0o cmV0KSk7CisgICAgfQorICAgIGVsc2UKKyAgICAgICAgLyogZG8gd2hlbiB0aGVyZSBpcyBu byBtb3JlIGxlZnQgKi8KKyAgICAgICAgU1JGX1JFVFVSTl9ET05FKGZ1bmNjdHgpOworfQor PC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAg ICA8L3Zhcmxpc3RlbnRyeT4KICAgPC92YXJpYWJsZWxpc3Q+CiAKICAgPHBhcmE+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwgYi9kb2Mvc3JjL3NnbWwveGluZGV4 LnNnbWwKaW5kZXggM2ExOWRhYjE1ZTAuLmY1OTY2Mzc1ZWFkIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwveGluZGV4LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3hpbmRleC5zZ21sCkBA IC01MDgsNyArNTA4LDcgQEAKICAgIDwvdGFibGU+CiAKICAgPHBhcmE+Ci0gICBHaVNUIGlu ZGV4ZXMgaGF2ZSB0d2VsdmUgc3VwcG9ydCBmdW5jdGlvbnMsIHNldmVuIG9mIHdoaWNoIGFy ZSBvcHRpb25hbCwKKyAgIEdpU1QgaW5kZXhlcyBoYXZlIGZvdXJ0ZWVuIHN1cHBvcnQgZnVu Y3Rpb25zLCBuaW5lIG9mIHdoaWNoIGFyZSBvcHRpb25hbCwKICAgIGFzIHNob3duIGluIDx4 cmVmIGxpbmtlbmQ9InhpbmRleC1naXN0LXN1cHBvcnQtdGFibGUiLz4uCiAgICAoRm9yIG1v cmUgaW5mb3JtYXRpb24gc2VlIDx4cmVmIGxpbmtlbmQ9Imdpc3QiLz4uKQogICA8L3BhcmE+ CkBAIC01OTYsNiArNTk2LDE4IEBACiAgICAgICAgIHVzZWQgYnkgdGhlIG9wZXJhdG9yIGNs YXNzIChvcHRpb25hbCk8L2VudHJ5PgogICAgICAgIDxlbnRyeT4xMjwvZW50cnk+CiAgICAg ICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxmdW5jdGlvbj5pbnRlcnNl Y3Q8L2Z1bmN0aW9uPjwvZW50cnk+CisgICAgICAgPGVudHJ5PmNvbXB1dGVzIGludGVyc2Vj dGlvbiB3aXRoIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPgorICAgICAgICBi b3VuZHM8L2VudHJ5PgorICAgICAgIDxlbnRyeT4xMzwvZW50cnk+CisgICAgICA8L3Jvdz4K KyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxmdW5jdGlvbj53aXRob3V0X3BvcnRpb248 L2Z1bmN0aW9uPjwvZW50cnk+CisgICAgICAgPGVudHJ5PmNvbXB1dGVzIHJlbWFpbmluZyBk dXJhdGlvbihzKSBvdXRzaWRlCisgICAgICAgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xp dGVyYWw+IGJvdW5kczwvZW50cnk+CisgICAgICAgPGVudHJ5PjE0PC9lbnRyeT4KKyAgICAg IDwvcm93PgogICAgICA8L3Rib2R5PgogICAgIDwvdGdyb3VwPgogICAgPC90YWJsZT4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdmFsaWRhdGUuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdmFsaWRhdGUuYwppbmRleCA1MzlhYzljYjA2 NC4uMDgyZjk2Yjg0N2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2Jy aW5fdmFsaWRhdGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX3ZhbGlk YXRlLmMKQEAgLTg3LDIxICs4NywyMSBAQCBicmludmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQp CiAJCXN3aXRjaCAocHJvY2Zvcm0tPmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBCUklOX1BS T0NOVU1fT1BDSU5GTzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zv cm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwgdHJ1ZSwK IAkJCQkJCQkJCQkJMSwgMSwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBC UklOX1BST0NOVU1fQUREVkFMVUU6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJl KHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXBy b2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCB0cnVlLAog CQkJCQkJCQkJCQk0LCA0LCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJ CUlOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEJSSU5f UFJPQ05VTV9DT05TSVNURU5UOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShw cm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9j X3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCBmYWxzZSwgdHJ1ZSwKIAkJ CQkJCQkJCQkJMywgNCwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJ TlRFUk5BTE9JRCwgSU5UNE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEJSSU5fUFJPQ05V TV9VTklPTjoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFt cHJvYywgQk9PTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUo cHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTMs IDMsIElOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQp OwogCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW52 YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW52YWxpZGF0ZS5jCmluZGV4 IDc0NDIwYTEyOWFhLi43NDhiOTRhODkzZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpbi9naW52YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2lu dmFsaWRhdGUuYwpAQCAtMTA0LDM3ICsxMDQsMzcgQEAgZ2ludmFsaWRhdGUoT2lkIG9wY2xh c3NvaWQpCiAJCXN3aXRjaCAocHJvY2Zvcm0tPmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBH SU5fQ09NUEFSRV9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9j Zm9ybS0+YW1wcm9jLCBJTlQ0T0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19z aWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UNE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJ CQkJCQkJCQkyLCAyLCBvcGNrZXl0eXBlLCBvcGNrZXl0eXBlKTsKIAkJCQlicmVhazsKIAkJ CWNhc2UgR0lOX0VYVFJBQ1RWQUxVRV9QUk9DOgogCQkJCS8qIFNvbWUgb3BjbGFzc2VzIG9t aXQgbnVsbEZsYWdzICovCi0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nm b3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJv Y19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIGZhbHNlLCBmYWxz ZSwKIAkJCQkJCQkJCQkJMiwgMywgb3BjaW50eXBlLCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJ CQkJSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSU5fRVhUUkFDVFFVRVJZ X1BST0M6CiAJCQkJLyogU29tZSBvcGNsYXNzZXMgb21pdCBudWxsRmxhZ3MgYW5kIHNlYXJj aE1vZGUgKi8KLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFt cHJvYywgSU5URVJOQUxPSUQsIGZhbHNlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25h dHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJ CQkJCQkJCQk1LCA3LCBvcGNpbnR5cGUsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJTlQy T0lELCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lE LCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEdJTl9DT05TSVNURU5UX1BS T0M6CiAJCQkJLyogU29tZSBvcGNsYXNzZXMgb21pdCBxdWVyeUtleXMgYW5kIG51bGxGbGFn cyAqLwotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9j LCBCT09MT0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJv Y2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQk2LCA4 LCBJTlRFUk5BTE9JRCwgSU5UMk9JRCwKIAkJCQkJCQkJCQkJb3BjaW50eXBlLCBJTlQ0T0lE LAogCQkJCQkJCQkJCQlJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJCUlO VEVSTkFMT0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEdJTl9DT01Q QVJFX1BBUlRJQUxfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJv Y2Zvcm0tPmFtcHJvYywgSU5UNE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDRPSUQsIGZhbHNlLCBmYWxzZSwKIAkJ CQkJCQkJCQkJNCwgNCwgb3Bja2V5dHlwZSwgb3Bja2V5dHlwZSwKIAkJCQkJCQkJCQkJSU5U Mk9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSU5fVFJJQ09OU0lT VEVOVF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+ YW1wcm9jLCBDSEFST0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1 cmUocHJvY2Zvcm0tPmFtcHJvYywgQ0hBUk9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJ CQk3LCA3LCBJTlRFUk5BTE9JRCwgSU5UMk9JRCwKIAkJCQkJCQkJCQkJb3BjaW50eXBlLCBJ TlQ0T0lELAogCQkJCQkJCQkJCQlJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQsCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jCmluZGV4IDA5MDE1NDNhNjBhLi4wYTIz OTVmYmFmNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlk YXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMKQEAg LTEwNiwzNiArMTA2LDM2IEBAIGdpc3R2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJc3dp dGNoIChwcm9jZm9ybS0+YW1wcm9jbnVtKQogCQl7CiAJCQljYXNlIEdJU1RfQ09OU0lTVEVO VF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1w cm9jLCBCT09MT0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUo cHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQk1 LCA1LCBJTlRFUk5BTE9JRCwgb3BjaW50eXBlLAogCQkJCQkJCQkJCQlJTlQyT0lELCBPSURP SUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lTVF9VTklPTl9QUk9D OgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBv cGNrZXl0eXBlLCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJv Y2Zvcm0tPmFtcHJvYywgb3Bja2V5dHlwZSwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQky LCAyLCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBH SVNUX0NPTVBSRVNTX1BST0M6CiAJCQljYXNlIEdJU1RfREVDT01QUkVTU19QUk9DOgogCQkJ Y2FzZSBHSVNUX0ZFVENIX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJl KHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2Us IHRydWUsCiAJCQkJCQkJCQkJCTEsIDEsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJ CWNhc2UgR0lTVF9QRU5BTFRZX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0 dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCB0cnVlLAorCQkJCW9rID0gY2hl Y2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFs c2UsIHRydWUsCiAJCQkJCQkJCQkJCTMsIDMsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJ TlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSVNUX1BJ Q0tTUExJVF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9y bS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19z aWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIGZhbHNlLCB0cnVlLAog CQkJCQkJCQkJCQkyLCAyLCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFr OwogCQkJY2FzZSBHSVNUX0VRVUFMX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2ln bmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwKKwkJCQlvayA9 IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQs IGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJMywgMywgb3Bja2V5dHlwZSwgb3Bja2V5dHlw ZSwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSVNU X0RJU1RBTkNFX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nm b3JtLT5hbXByb2MsIEZMT0FUOE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEZMT0FUOE9JRCwgZmFsc2UsIGZhbHNlLAog CQkJCQkJCQkJCQk1LCA1LCBJTlRFUk5BTE9JRCwgb3BjaW50eXBlLAogCQkJCQkJCQkJCQlJ TlQyT0lELCBPSURPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKQEAgLTE0MywxMyAr MTQzLDIxIEBAIGdpc3R2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJCQlvayA9IGNoZWNr X2Ftb3B0c3Byb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MpOwogCQkJCWJyZWFrOwog CQkJY2FzZSBHSVNUX1NPUlRTVVBQT1JUX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIFZPSURPSUQsIHRydWUsCisJCQkJb2sgPSBj aGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIFZPSURPSUQsIGZhbHNl LCB0cnVlLAogCQkJCQkJCQkJCQkxLCAxLCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJ CQljYXNlIEdJU1RfU1RSQVROVU1fUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWdu YXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UMk9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNr X2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UMk9JRCwgZmFsc2UsIHRy dWUsCiAJCQkJCQkJCQkJCTEsIDEsIElOVDJPSUQpOwogCQkJCWJyZWFrOworCQkJY2FzZSBH SVNUX0lOVEVSU0VDVF9QUk9DOgorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShw cm9jZm9ybS0+YW1wcm9jLCBJbnZhbGlkT2lkLCBmYWxzZSwgdHJ1ZSwKKwkJCQkJCQkJCQkJ MiwgMiwgb3BjaW50eXBlLCBvcGNpbnR5cGUpOworCQkJCWJyZWFrOworCQkJY2FzZSBHSVNU X1dJVEhPVVRfUE9SVElPTl9QUk9DOgorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVy ZShwcm9jZm9ybS0+YW1wcm9jLCBvcGNpbnR5cGUsIHRydWUsIHRydWUsCisJCQkJCQkJCQkJ CTIsIDIsIG9wY2ludHlwZSwgb3BjaW50eXBlKTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6 CiAJCQkJZXJlcG9ydChJTkZPLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09C SkVDVF9ERUZJTklUSU9OKSwKQEAgLTI3MSw3ICsyNzksOCBAQCBnaXN0dmFsaWRhdGUoT2lk IG9wY2xhc3NvaWQpCiAJCWlmIChpID09IEdJU1RfRElTVEFOQ0VfUFJPQyB8fCBpID09IEdJ U1RfRkVUQ0hfUFJPQyB8fAogCQkJaSA9PSBHSVNUX0NPTVBSRVNTX1BST0MgfHwgaSA9PSBH SVNUX0RFQ09NUFJFU1NfUFJPQyB8fAogCQkJaSA9PSBHSVNUX09QVElPTlNfUFJPQyB8fCBp ID09IEdJU1RfU09SVFNVUFBPUlRfUFJPQyB8fAotCQkJaSA9PSBHSVNUX1NUUkFUTlVNX1BS T0MpCisJCQlpID09IEdJU1RfU1RSQVROVU1fUFJPQyB8fCBpID09IEdJU1RfSU5URVJTRUNU X1BST0MgfHwKKwkJCWkgPT0gR0lTVF9XSVRIT1VUX1BPUlRJT05fUFJPQykKIAkJCWNvbnRp bnVlOwkJCS8qIG9wdGlvbmFsIG1ldGhvZHMgKi8KIAkJZXJlcG9ydChJTkZPLAogCQkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2luZGV4L2FtdmFsaWRhdGUuYwppbmRleCAzMmJiNDc3ZjMyOC4uYjEwMzA4Yjli NjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9hbXZhbGlkYXRlLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2FtdmFsaWRhdGUuYwpAQCAtMTQ5LDcg KzE0OSw3IEBAIGlkZW50aWZ5X29wZmFtaWx5X2dyb3VwcyhDYXRDTGlzdCAqb3BybGlzdCwg Q2F0Q0xpc3QgKnByb2NsaXN0KQogICogSW4gYW55IGNhc2UgdGhlIGZ1bmN0aW9uIHJlc3Vs dCB0eXBlIG11c3QgbWF0Y2ggcmVzdHlwZSBleGFjdGx5LgogICovCiBib29sCi1jaGVja19h bXByb2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29sIGV4YWN0LAor Y2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBy ZXRzZXQsIGJvb2wgZXhhY3QsCiAJCQkJCSAgIGludCBtaW5hcmdzLCBpbnQgbWF4YXJncywu Li4pCiB7CiAJYm9vbAkJcmVzdWx0ID0gdHJ1ZTsKQEAgLTE2Myw4ICsxNjMsOSBAQCBjaGVj a19hbXByb2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29sIGV4YWN0 LAogCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgZnVuY3Rpb24gJXUi LCBmdW5jaWQpOwogCXByb2Nmb3JtID0gKEZvcm1fcGdfcHJvYykgR0VUU1RSVUNUKHRwKTsK IAotCWlmIChwcm9jZm9ybS0+cHJvcmV0dHlwZSAhPSByZXN0eXBlIHx8IHByb2Nmb3JtLT5w cm9yZXRzZXQgfHwKLQkJcHJvY2Zvcm0tPnByb25hcmdzIDwgbWluYXJncyB8fCBwcm9jZm9y bS0+cHJvbmFyZ3MgPiBtYXhhcmdzKQorCWlmICgocHJvY2Zvcm0tPnByb3JldHR5cGUgIT0g cmVzdHlwZSAmJiBPaWRJc1ZhbGlkKHJlc3R5cGUpKQorCQl8fCBwcm9jZm9ybS0+cHJvcmV0 c2V0ICE9IHJldHNldCB8fCBwcm9jZm9ybS0+cHJvbmFyZ3MgPCBtaW5hcmdzCisJCXx8IHBy b2Nmb3JtLT5wcm9uYXJncyA+IG1heGFyZ3MpCiAJCXJlc3VsdCA9IGZhbHNlOwogCiAJdmFf c3RhcnQoYXAsIG1heGFyZ3MpOwpAQCAtMTkxLDcgKzE5Miw3IEBAIGNoZWNrX2FtcHJvY19z aWduYXR1cmUoT2lkIGZ1bmNpZCwgT2lkIHJlc3R5cGUsIGJvb2wgZXhhY3QsCiBib29sCiBj aGVja19hbW9wdHNwcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkKQogewotCXJldHVybiBjaGVj a19hbXByb2Nfc2lnbmF0dXJlKGZ1bmNpZCwgVk9JRE9JRCwgdHJ1ZSwgMSwgMSwgSU5URVJO QUxPSUQpOworCXJldHVybiBjaGVja19hbXByb2Nfc2lnbmF0dXJlKGZ1bmNpZCwgVk9JRE9J RCwgZmFsc2UsIHRydWUsIDEsIDEsIElOVEVSTkFMT0lEKTsKIH0KIAogLyoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0dmFsaWRhdGUuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0dmFsaWRhdGUuYwppbmRleCBlOWQ0Y2Q2MGRlMy4uMDRl NDNlZjFkY2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0dmFs aWRhdGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHZhbGlkYXRlLmMK QEAgLTkxLDE2ICs5MSwxNiBAQCBidHZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQlzd2l0 Y2ggKHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJCWNhc2UgQlRPUkRFUl9QUk9DOgot CQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0 T0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+ YW1wcm9jLCBJTlQ0T0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMiwgMiwgcHJvY2Zv cm0tPmFtcHJvY2xlZnR0eXBlLAogCQkJCQkJCQkJCQlwcm9jZm9ybS0+YW1wcm9jcmlnaHR0 eXBlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQlRTT1JUU1VQUE9SVF9QUk9DOgotCQkJCW9r ID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCB0 cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9j LCBWT0lET0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMSwgMSwgSU5URVJOQUxPSUQp OwogCQkJCWJyZWFrOwogCQkJY2FzZSBCVElOUkFOR0VfUFJPQzoKLQkJCQlvayA9IGNoZWNr X2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgdHJ1ZSwKKwkJ CQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9J RCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTUsIDUsCiAJCQkJCQkJCQkJCXByb2Nmb3Jt LT5hbXByb2NsZWZ0dHlwZSwKIAkJCQkJCQkJCQkJcHJvY2Zvcm0tPmFtcHJvY2xlZnR0eXBl LApAQCAtMTA4LDcgKzEwOCw3IEBAIGJ0dmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCQkJ CQkJCQkJCUJPT0xPSUQsIEJPT0xPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBCVEVRVUFM SU1BR0VfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0t PmFtcHJvYywgQk9PTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1 cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJ CTEsIDEsIE9JRE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEJUT1BUSU9OU19QUk9DOgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWxpZGF0ZS5jIGIv c3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWxpZGF0ZS5jCmluZGV4IDg1MGMzYjY3 NWQ2Li5mN2EzOTdjYjhjZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lz dC9zcGd2YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFs aWRhdGUuYwpAQCAtMTA5LDcgKzEwOSw3IEBAIHNwZ3ZhbGlkYXRlKE9pZCBvcGNsYXNzb2lk KQogCQlzd2l0Y2ggKHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJCWNhc2UgU1BHSVNU X0NPTkZJR19QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9y bS0+YW1wcm9jLCBWT0lET0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25h dHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJ CQkJMiwgMiwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQljb25maWdJbi5hdHRU eXBlID0gcHJvY2Zvcm0tPmFtcHJvY2xlZnR0eXBlOwogCQkJCW1lbXNldCgmY29uZmlnT3V0 LCAwLCBzaXplb2YoY29uZmlnT3V0KSk7CkBAIC0xNjQsMTEgKzE2NCwxMSBAQCBzcGd2YWxp ZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJCWNhc2UgU1BHSVNUX0NIT09TRV9QUk9DOgogCQkJ Y2FzZSBTUEdJU1RfUElDS1NQTElUX1BST0M6CiAJCQljYXNlIFNQR0lTVF9JTk5FUl9DT05T SVNURU5UX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3Jt LT5hbXByb2MsIFZPSURPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0 dXJlKHByb2Nmb3JtLT5hbXByb2MsIFZPSURPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJ CQkyLCAyLCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2Fz ZSBTUEdJU1RfTEVBRl9DT05TSVNURU5UX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIHRydWUsCisJCQkJb2sgPSBj aGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNl LCB0cnVlLAogCQkJCQkJCQkJCQkyLCAyLCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwog CQkJCWJyZWFrOwogCQkJY2FzZSBTUEdJU1RfQ09NUFJFU1NfUFJPQzoKQEAgLTE3Nyw3ICsx NzcsNyBAQCBzcGd2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJCQkJb2sgPSBmYWxzZTsK IAkJCQllbHNlCiAJCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+ YW1wcm9jLAotCQkJCQkJCQkJCQkJY29uZmlnT3V0TGVhZlR5cGUsIHRydWUsCisJCQkJCQkJ CQkJCQljb25maWdPdXRMZWFmVHlwZSwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCQkxLCAx LCBwcm9jZm9ybS0+YW1wcm9jbGVmdHR5cGUpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBTUEdJ U1RfT1BUSU9OU19QUk9DOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L211 bHRpcmFuZ2V0eXBlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L211bHRpcmFuZ2V0eXBl cy5jCmluZGV4IDU1OGM2YzE4YzM0Li44ZjcyMmI2NzIyZCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L211bHRpcmFuZ2V0eXBlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9tdWx0aXJhbmdldHlwZXMuYwpAQCAtMTIyNSw2ICsxMjI1LDc3IEBAIG11bHRp cmFuZ2VfbWludXNfaW50ZXJuYWwoT2lkIG1sdHJuZ3R5cG9pZCwgVHlwZUNhY2hlRW50cnkg KnJhbmdldHlwLAogCXJldHVybiBtYWtlX211bHRpcmFuZ2UobWx0cm5ndHlwb2lkLCByYW5n ZXR5cCwgcmFuZ2VfY291bnQzLCByYW5nZXMzKTsKIH0KIAorLyoKKyAqIG11bHRpcmFuZ2Ug bWludXMgYnV0IHJldHVybmluZyB0aGUgcmVzdWx0IGFzIGEgU1JGLAorICogd2l0aCBubyBy b3dzIGlmIHRoZSByZXN1bHQgd291bGQgYmUgZW1wdHkuCisgKi8KK0RhdHVtCittdWx0aXJh bmdlX3dpdGhvdXRfcG9ydGlvbihQR19GVU5DVElPTl9BUkdTKQoreworCUZ1bmNDYWxsQ29u dGV4dCAqZnVuY2N0eDsKKwlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisKKwlpZiAoIVNS Rl9JU19GSVJTVENBTEwoKSkKKwl7CisJCS8qIFdlIG5ldmVyIGhhdmUgbW9yZSB0aGFuIG9u ZSByZXN1bHQgKi8KKwkJZnVuY2N0eCA9IFNSRl9QRVJDQUxMX1NFVFVQKCk7CisJCVNSRl9S RVRVUk5fRE9ORShmdW5jY3R4KTsKKwl9CisJZWxzZQorCXsKKwkJTXVsdGlyYW5nZVR5cGUg Km1yMTsKKwkJTXVsdGlyYW5nZVR5cGUgKm1yMjsKKwkJT2lkCQkJbWx0cm5ndHlwb2lkOwor CQlUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGU7CisJCVR5cGVDYWNoZUVudHJ5ICpyYW5nZXR5 cDsKKwkJaW50MzIJCXJhbmdlX2NvdW50MTsKKwkJaW50MzIJCXJhbmdlX2NvdW50MjsKKwkJ UmFuZ2VUeXBlICoqcmFuZ2VzMTsKKwkJUmFuZ2VUeXBlICoqcmFuZ2VzMjsKKwkJTXVsdGly YW5nZVR5cGUgKm1yOworCisJCWZ1bmNjdHggPSBTUkZfRklSU1RDQUxMX0lOSVQoKTsKKwor CQkvKgorCQkgKiBzd2l0Y2ggdG8gbWVtb3J5IGNvbnRleHQgYXBwcm9wcmlhdGUgZm9yIG11 bHRpcGxlIGZ1bmN0aW9uIGNhbGxzCisJCSAqLworCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29u dGV4dFN3aXRjaFRvKGZ1bmNjdHgtPm11bHRpX2NhbGxfbWVtb3J5X2N0eCk7CisKKwkJLyog Z2V0IGFyZ3MsIGRldG9hc3RpbmcgaW50byBtdWx0aS1jYWxsIG1lbW9yeSBjb250ZXh0ICov CisJCW1yMSA9IFBHX0dFVEFSR19NVUxUSVJBTkdFX1AoMCk7CisJCW1yMiA9IFBHX0dFVEFS R19NVUxUSVJBTkdFX1AoMSk7CisKKwkJbWx0cm5ndHlwb2lkID0gTXVsdGlyYW5nZVR5cGVH ZXRPaWQobXIxKTsKKwkJdHlwY2FjaGUgPSBsb29rdXBfdHlwZV9jYWNoZShtbHRybmd0eXBv aWQsIFRZUEVDQUNIRV9NVUxUSVJBTkdFX0lORk8pOworCQlpZiAodHlwY2FjaGUtPnJuZ3R5 cGUgPT0gTlVMTCkKKwkJCWVsb2coRVJST1IsICJ0eXBlICV1IGlzIG5vdCBhIG11bHRpcmFu Z2UgdHlwZSIsIG1sdHJuZ3R5cG9pZCk7CisJCXJhbmdldHlwID0gdHlwY2FjaGUtPnJuZ3R5 cGU7CisKKwkJaWYgKE11bHRpcmFuZ2VJc0VtcHR5KG1yMSkgfHwgTXVsdGlyYW5nZUlzRW1w dHkobXIyKSkKKwkJCW1yID0gbXIxOworCQllbHNlCisJCXsKKwkJCW11bHRpcmFuZ2VfZGVz ZXJpYWxpemUocmFuZ2V0eXAsIG1yMSwgJnJhbmdlX2NvdW50MSwgJnJhbmdlczEpOworCQkJ bXVsdGlyYW5nZV9kZXNlcmlhbGl6ZShyYW5nZXR5cCwgbXIyLCAmcmFuZ2VfY291bnQyLCAm cmFuZ2VzMik7CisKKwkJCW1yID0gbXVsdGlyYW5nZV9taW51c19pbnRlcm5hbChtbHRybmd0 eXBvaWQsCisJCQkJCQkJCQkJICAgcmFuZ2V0eXAsCisJCQkJCQkJCQkJICAgcmFuZ2VfY291 bnQxLAorCQkJCQkJCQkJCSAgIHJhbmdlczEsCisJCQkJCQkJCQkJICAgcmFuZ2VfY291bnQy LAorCQkJCQkJCQkJCSAgIHJhbmdlczIpOworCQl9CisKKwkJTWVtb3J5Q29udGV4dFN3aXRj aFRvKG9sZGNvbnRleHQpOworCisJCWZ1bmNjdHggPSBTUkZfUEVSQ0FMTF9TRVRVUCgpOwor CQlpZiAoTXVsdGlyYW5nZUlzRW1wdHkobXIpKQorCQkJU1JGX1JFVFVSTl9ET05FKGZ1bmNj dHgpOworCQllbHNlCisJCQlTUkZfUkVUVVJOX05FWFQoZnVuY2N0eCwgTXVsdGlyYW5nZVR5 cGVQR2V0RGF0dW0obXIpKTsKKwl9Cit9CisKIC8qIG11bHRpcmFuZ2UgaW50ZXJzZWN0aW9u ICovCiBEYXR1bQogbXVsdGlyYW5nZV9pbnRlcnNlY3QoUEdfRlVOQ1RJT05fQVJHUykKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzLmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jCmluZGV4IDJkOTRhNmI4Nzc0Li4yYWIyN2Ji NzU3MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JhbmdldHlwZXMuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jCkBAIC0zMSw2ICszMSw3 IEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUgImNvbW1vbi9oYXNoZm4u aCIKKyNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIK ICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIK QEAgLTM5LDYgKzQwLDcgQEAKICNpbmNsdWRlICJvcHRpbWl6ZXIvY2xhdXNlcy5oIgogI2lu Y2x1ZGUgIm9wdGltaXplci9jb3N0LmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXpl ci5oIgorI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRp bnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXRlLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2Nh Y2hlLmgiCkBAIC0xMjEzLDYgKzEyMTUsMTY3IEBAIHJhbmdlX3NwbGl0X2ludGVybmFsKFR5 cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwgY29uc3QgUmFuZ2VUeXBlICpyMSwgY29uc3QgUmFu Z2VUCiAJcmV0dXJuIGZhbHNlOwogfQogCisvKiBzdWJ0cmFjdGlvbiBidXQgcmV0dXJuaW5n IGFuIGFycmF5IHRvIGFjY29tbW9kYXRlIHNwbGl0cyAqLworRGF0dW0KK3JhbmdlX3dpdGhv dXRfcG9ydGlvbihQR19GVU5DVElPTl9BUkdTKQoreworCXR5cGVkZWYgc3RydWN0IHsKKwkJ UmFuZ2VUeXBlICAqcnNbMl07CisJCWludAkJCW47CisJfSByYW5nZV93aXRob3V0X3BvcnRp b25fZmN0eDsKKworCUZ1bmNDYWxsQ29udGV4dCAqZnVuY2N0eDsKKwlyYW5nZV93aXRob3V0 X3BvcnRpb25fZmN0eCAqZmN0eDsKKwlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisKKwkv KiBzdHVmZiBkb25lIG9ubHkgb24gdGhlIGZpcnN0IGNhbGwgb2YgdGhlIGZ1bmN0aW9uICov CisJaWYgKFNSRl9JU19GSVJTVENBTEwoKSkKKwl7CisJCVJhbmdlVHlwZQkgICAqcjE7CisJ CVJhbmdlVHlwZQkgICAqcjI7CisJCU9pZAkJCQlybmd0eXBpZDsKKwkJVHlwZUNhY2hlRW50 cnkgKnR5cGNhY2hlOworCisJCS8qIGNyZWF0ZSBhIGZ1bmN0aW9uIGNvbnRleHQgZm9yIGNy b3NzLWNhbGwgcGVyc2lzdGVuY2UgKi8KKwkJZnVuY2N0eCA9IFNSRl9GSVJTVENBTExfSU5J VCgpOworCisJCS8qCisJCSAqIHN3aXRjaCB0byBtZW1vcnkgY29udGV4dCBhcHByb3ByaWF0 ZSBmb3IgbXVsdGlwbGUgZnVuY3Rpb24gY2FsbHMKKwkJICovCisJCW9sZGNvbnRleHQgPSBN ZW1vcnlDb250ZXh0U3dpdGNoVG8oZnVuY2N0eC0+bXVsdGlfY2FsbF9tZW1vcnlfY3R4KTsK KworCQlyMSA9IFBHX0dFVEFSR19SQU5HRV9QKDApOworCQlyMiA9IFBHX0dFVEFSR19SQU5H RV9QKDEpOworCisJCS8qIERpZmZlcmVudCB0eXBlcyBzaG91bGQgYmUgcHJldmVudGVkIGJ5 IEFOWVJBTkdFIG1hdGNoaW5nIHJ1bGVzICovCisJCWlmIChSYW5nZVR5cGVHZXRPaWQocjEp ICE9IFJhbmdlVHlwZUdldE9pZChyMikpCisJCQllbG9nKEVSUk9SLCAicmFuZ2UgdHlwZXMg ZG8gbm90IG1hdGNoIik7CisKKwkJLyogYWxsb2NhdGUgbWVtb3J5IGZvciB1c2VyIGNvbnRl eHQgKi8KKwkJZmN0eCA9IChyYW5nZV93aXRob3V0X3BvcnRpb25fZmN0eCAqKSBwYWxsb2Mo c2l6ZW9mKHJhbmdlX3dpdGhvdXRfcG9ydGlvbl9mY3R4KSk7CisKKwkJLyoKKwkJICogSW5p dGlhbGl6ZSBzdGF0ZS4KKwkJICogV2UgY2FuJ3Qgc3RvcmUgdGhlIHJhbmdlIHR5cGNhY2hl IGluIGZuX2V4dHJhIGJlY2F1c2UgdGhlIGNhbGxlcgorCQkgKiB1c2VzIHRoYXQgZm9yIHRo ZSBTUkYgc3RhdGUuCisJCSAqLworCQlybmd0eXBpZCA9IFJhbmdlVHlwZUdldE9pZChyMSk7 CisJCXR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2FjaGUocm5ndHlwaWQsIFRZUEVDQUNIRV9S QU5HRV9JTkZPKTsKKwkJaWYgKHR5cGNhY2hlLT5ybmdlbGVtdHlwZSA9PSBOVUxMKQorCQkJ ZWxvZyhFUlJPUiwgInR5cGUgJXUgaXMgbm90IGEgcmFuZ2UgdHlwZSIsIHJuZ3R5cGlkKTsK KwkJcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ludGVybmFsKHR5cGNhY2hlLCByMSwgcjIsIGZj dHgtPnJzLCAmZmN0eC0+bik7CisKKwkJZnVuY2N0eC0+dXNlcl9mY3R4ID0gZmN0eDsKKwkJ TWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworCX0KKworCS8qIHN0dWZmIGRv bmUgb24gZXZlcnkgY2FsbCBvZiB0aGUgZnVuY3Rpb24gKi8KKwlmdW5jY3R4ID0gU1JGX1BF UkNBTExfU0VUVVAoKTsKKwlmY3R4ID0gZnVuY2N0eC0+dXNlcl9mY3R4OworCisJaWYgKGZ1 bmNjdHgtPmNhbGxfY250ciA8IGZjdHgtPm4pCisJeworCQkvKgorCQkgKiBXZSBtdXN0IGtl ZXAgdGhlc2Ugb24gc2VwYXJhdGUgbGluZXMKKwkJICogYmVjYXVzZSBTUkZfUkVUVVJOX05F WFQgZG9lcyBjYWxsX2NudHIrKzoKKwkJICovCisJCVJhbmdlVHlwZSAqcmV0ID0gZmN0eC0+ cnNbZnVuY2N0eC0+Y2FsbF9jbnRyXTsKKwkJU1JGX1JFVFVSTl9ORVhUKGZ1bmNjdHgsIFJh bmdlVHlwZVBHZXREYXR1bShyZXQpKTsKKwl9CisJZWxzZQorCQkvKiBkbyB3aGVuIHRoZXJl IGlzIG5vIG1vcmUgbGVmdCAqLworCQlTUkZfUkVUVVJOX0RPTkUoZnVuY2N0eCk7Cit9CisK Ky8qCisgKiByYW5nZV93aXRob3V0X3BvcnRpb25faW50ZXJuYWwgLSBTZXRzIG91dHB1dHMg YW5kIG91dHB1dG4gdG8gdGhlIHJhbmdlcworICogcmVtYWluaW5nIGFuZCB0aGVpciBjb3Vu dCAocmVzcGVjdGl2ZWx5KSBhZnRlciBzdWJ0cmFjdGluZyByMiBmcm9tIHIxLgorICogVGhl IGFycmF5IHNob3VsZCBuZXZlciBjb250YWluIGVtcHR5IHJhbmdlcy4KKyAqIFRoZSBvdXRw dXRzIHdpbGwgYmUgb3JkZXJlZC4gV2UgZXhwZWN0IHRoYXQgb3V0cHV0cyBpcyBhbiBhcnJh eSBvZgorICogUmFuZ2VUeXBlIHBvaW50ZXJzLCBhbHJlYWR5IGFsbG9jYXRlZCB3aXRoIHR3 byBzbG90cy4KKyAqLwordm9pZAorcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ludGVybmFsKFR5 cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwgUmFuZ2VUeXBlICpyMSwKKwkJCQkJCQkgICBSYW5n ZVR5cGUgKnIyLCBSYW5nZVR5cGUgKipvdXRwdXRzLCBpbnQgKm91dHB1dG4pCit7CisJaW50 CQkJY21wX2wxbDIsCisJCQkJY21wX2wxdTIsCisJCQkJY21wX3UxbDIsCisJCQkJY21wX3Ux dTI7CisJUmFuZ2VCb3VuZAlsb3dlcjEsCisJCQkJbG93ZXIyOworCVJhbmdlQm91bmQJdXBw ZXIxLAorCQkJCXVwcGVyMjsKKwlib29sCQllbXB0eTEsCisJCQkJZW1wdHkyOworCisJcmFu Z2VfZGVzZXJpYWxpemUodHlwY2FjaGUsIHIxLCAmbG93ZXIxLCAmdXBwZXIxLCAmZW1wdHkx KTsKKwlyYW5nZV9kZXNlcmlhbGl6ZSh0eXBjYWNoZSwgcjIsICZsb3dlcjIsICZ1cHBlcjIs ICZlbXB0eTIpOworCisJaWYgKGVtcHR5MSkKKwl7CisJCS8qIGlmIHIxIGlzIGVtcHR5IHRo ZW4gcjEgLSByMiBpcyBlbXB0eSwgc28gcmV0dXJuIHplcm8gcmVzdWx0cyAqLworCQkqb3V0 cHV0biA9IDA7CisJCXJldHVybjsKKwl9CisJZWxzZSBpZiAoZW1wdHkyKQorCXsKKwkJLyog cjIgaXMgZW1wdHkgc28gdGhlIHJlc3VsdCBpcyBqdXN0IHIxICh3aGljaCB3ZSBrbm93IGlz IG5vdCBlbXB0eSkgKi8KKwkJb3V0cHV0c1swXSA9IHIxOworCQkqb3V0cHV0biA9IDE7CisJ CXJldHVybjsKKwl9CisKKwkvKgorCSAqIFVzZSB0aGUgc2FtZSBsb2dpYyBhcyByYW5nZV9t aW51c19pbnRlcm5hbCwKKwkgKiBidXQgc3VwcG9ydCB0aGUgc3BsaXQgY2FzZQorCSAqLwor CWNtcF9sMWwyID0gcmFuZ2VfY21wX2JvdW5kcyh0eXBjYWNoZSwgJmxvd2VyMSwgJmxvd2Vy Mik7CisJY21wX2wxdTIgPSByYW5nZV9jbXBfYm91bmRzKHR5cGNhY2hlLCAmbG93ZXIxLCAm dXBwZXIyKTsKKwljbXBfdTFsMiA9IHJhbmdlX2NtcF9ib3VuZHModHlwY2FjaGUsICZ1cHBl cjEsICZsb3dlcjIpOworCWNtcF91MXUyID0gcmFuZ2VfY21wX2JvdW5kcyh0eXBjYWNoZSwg JnVwcGVyMSwgJnVwcGVyMik7CisKKwlpZiAoY21wX2wxbDIgPCAwICYmIGNtcF91MXUyID4g MCkKKwl7CisJCWxvd2VyMi5pbmNsdXNpdmUgPSAhbG93ZXIyLmluY2x1c2l2ZTsKKwkJbG93 ZXIyLmxvd2VyID0gZmFsc2U7CS8qIGl0IHdpbGwgYmVjb21lIHRoZSB1cHBlciBib3VuZCAq LworCQlvdXRwdXRzWzBdID0gbWFrZV9yYW5nZSh0eXBjYWNoZSwgJmxvd2VyMSwgJmxvd2Vy MiwgZmFsc2UsIE5VTEwpOworCisJCXVwcGVyMi5pbmNsdXNpdmUgPSAhdXBwZXIyLmluY2x1 c2l2ZTsKKwkJdXBwZXIyLmxvd2VyID0gdHJ1ZTsJLyogaXQgd2lsbCBiZWNvbWUgdGhlIGxv d2VyIGJvdW5kICovCisJCW91dHB1dHNbMV0gPSBtYWtlX3JhbmdlKHR5cGNhY2hlLCAmdXBw ZXIyLCAmdXBwZXIxLCBmYWxzZSwgTlVMTCk7CisKKwkJKm91dHB1dG4gPSAyOworCX0KKwll bHNlIGlmIChjbXBfbDF1MiA+IDAgfHwgY21wX3UxbDIgPCAwKQorCXsKKwkJb3V0cHV0c1sw XSA9IHIxOworCQkqb3V0cHV0biA9IDE7CisJfQorCWVsc2UgaWYgKGNtcF9sMWwyID49IDAg JiYgY21wX3UxdTIgPD0gMCkKKwl7CisJCSpvdXRwdXRuID0gMDsKKwl9CisJZWxzZSBpZiAo Y21wX2wxbDIgPD0gMCAmJiBjbXBfdTFsMiA+PSAwICYmIGNtcF91MXUyIDw9IDApCisJewor CQlsb3dlcjIuaW5jbHVzaXZlID0gIWxvd2VyMi5pbmNsdXNpdmU7CisJCWxvd2VyMi5sb3dl ciA9IGZhbHNlOwkvKiBpdCB3aWxsIGJlY29tZSB0aGUgdXBwZXIgYm91bmQgKi8KKwkJb3V0 cHV0c1swXSA9IG1ha2VfcmFuZ2UodHlwY2FjaGUsICZsb3dlcjEsICZsb3dlcjIsIGZhbHNl LCBOVUxMKTsKKwkJKm91dHB1dG4gPSAxOworCX0KKwllbHNlIGlmIChjbXBfbDFsMiA+PSAw ICYmIGNtcF91MXUyID49IDAgJiYgY21wX2wxdTIgPD0gMCkKKwl7CisJCXVwcGVyMi5pbmNs dXNpdmUgPSAhdXBwZXIyLmluY2x1c2l2ZTsKKwkJdXBwZXIyLmxvd2VyID0gdHJ1ZTsJLyog aXQgd2lsbCBiZWNvbWUgdGhlIGxvd2VyIGJvdW5kICovCisJCW91dHB1dHNbMF0gPSBtYWtl X3JhbmdlKHR5cGNhY2hlLCAmdXBwZXIyLCAmdXBwZXIxLCBmYWxzZSwgTlVMTCk7CisJCSpv dXRwdXRuID0gMTsKKwl9CisJZWxzZQorCXsKKwkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQg Y2FzZSBpbiByYW5nZV93aXRob3V0X3BvcnRpb24iKTsKKwl9Cit9CisKIC8qIHJhbmdlIC0+ IHJhbmdlIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgKi8KIAogRGF0dW0KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9hbXZhbGlkYXRlLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvYW12 YWxpZGF0ZS5oCmluZGV4IDQyNGFiNjNmYTVhLi42MTAzOTU0MmRhYyAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nl c3MvYW12YWxpZGF0ZS5oCkBAIC0yOCw4ICsyOCw4IEBAIHR5cGVkZWYgc3RydWN0IE9wRmFt aWx5T3BGdW5jR3JvdXAKIAogLyogRnVuY3Rpb25zIGluIGFjY2Vzcy9pbmRleC9hbXZhbGlk YXRlLmMgKi8KIGV4dGVybiBMaXN0ICppZGVudGlmeV9vcGZhbWlseV9ncm91cHMoQ2F0Q0xp c3QgKm9wcmxpc3QsIENhdENMaXN0ICpwcm9jbGlzdCk7Ci1leHRlcm4gYm9vbCBjaGVja19h bXByb2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29sIGV4YWN0LAot CQkJCQkJCQkgICBpbnQgbWluYXJncywgaW50IG1heGFyZ3MsLi4uKTsKK2V4dGVybiBib29s IGNoZWNrX2FtcHJvY19zaWduYXR1cmUoT2lkIGZ1bmNpZCwgT2lkIHJlc3R5cGUsIGJvb2wg cmV0c2V0LAorCQkJCQkJCQkgICBib29sIGV4YWN0LCBpbnQgbWluYXJncywgaW50IG1heGFy Z3MsLi4uKTsKIGV4dGVybiBib29sIGNoZWNrX2Ftb3B0c3Byb2Nfc2lnbmF0dXJlKE9pZCBm dW5jaWQpOwogZXh0ZXJuIGJvb2wgY2hlY2tfYW1vcF9zaWduYXR1cmUoT2lkIG9wbm8sIE9p ZCByZXN0eXBlLAogCQkJCQkJCQkgT2lkIGxlZnR0eXBlLCBPaWQgcmlnaHR0eXBlKTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0LmggYi9zcmMvaW5jbHVkZS9hY2Nl c3MvZ2lzdC5oCmluZGV4IDIyZGQwNGMxNDE4Li4xNjM1YWIwMGFkMiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lz dC5oCkBAIC00MCw3ICs0MCw5IEBACiAjZGVmaW5lIEdJU1RfT1BUSU9OU19QUk9DCQkJCTEw CiAjZGVmaW5lIEdJU1RfU09SVFNVUFBPUlRfUFJPQwkJCTExCiAjZGVmaW5lIEdJU1RfU1RS QVROVU1fUFJPQwkJCQkxMgotI2RlZmluZSBHSVNUTlByb2NzCQkJCQkxMgorI2RlZmluZSBH SVNUX0lOVEVSU0VDVF9QUk9DCQkJCTEzCisjZGVmaW5lIEdJU1RfV0lUSE9VVF9QT1JUSU9O X1BST0MJCTE0CisjZGVmaW5lIEdJU1ROUHJvY3MJCQkJCTE0CiAKIC8qCiAgKiBQYWdlIG9w YXF1ZSBkYXRhIGluIGEgR2lTVCBpbmRleCBwYWdlLgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXBy b2MuZGF0CmluZGV4IDM1MjU1OGMxZjA2Li5mMGFkODQ1NjFjYiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfYW1wcm9jLmRhdApAQCAtNTEwLDYgKzUxMCw5IEBACiB7IGFtcHJvY2ZhbWlseSA9 PiAnZ2lzdC9ib3hfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2JveCcsCiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAnYm94JywgYW1wcm9jbnVtID0+ICcxMicsCiAgIGFtcHJvYyA9PiAnZ2lz dF9zdHJhdG51bV9pZGVudGl0eScgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L2JveF9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYm94JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdi b3gnLCBhbXByb2NudW0gPT4gJzEzJywKKyAgYW1wcm9jID0+ICdib3hfaW50ZXJzZWN0KGJv eCxib3gpJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvcG9seV9vcHMnLCBhbXByb2Ns ZWZ0dHlwZSA9PiAncG9seWdvbicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAncG9seWdvbics IGFtcHJvY251bSA9PiAnMScsCiAgIGFtcHJvYyA9PiAnZ2lzdF9wb2x5X2NvbnNpc3RlbnQn IH0sCkBAIC02MTAsNiArNjEzLDEyIEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9yYW5n ZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2UnLAogICBhbXByb2NyaWdodHR5 cGUgPT4gJ2FueXJhbmdlJywgYW1wcm9jbnVtID0+ICcxMicsCiAgIGFtcHJvYyA9PiAnZ2lz dF9zdHJhdG51bV9pZGVudGl0eScgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L3Jhbmdl X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnlyYW5nZScsCisgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnYW55cmFuZ2UnLCBhbXByb2NudW0gPT4gJzEzJywKKyAgYW1wcm9jID0+ICdyYW5n ZV9pbnRlcnNlY3QoYW55cmFuZ2UsYW55cmFuZ2UpJyB9LAoreyBhbXByb2NmYW1pbHkgPT4g J2dpc3QvcmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueXJhbmdlJywKKyAgYW1w cm9jcmlnaHR0eXBlID0+ICdhbnlyYW5nZScsIGFtcHJvY251bSA9PiAnMTQnLAorICBhbXBy b2MgPT4gJ3JhbmdlX3dpdGhvdXRfcG9ydGlvbihhbnlyYW5nZSxhbnlyYW5nZSknIH0sCiB7 IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9uZXR3b3JrX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ ICdpbmV0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0JywgYW1wcm9jbnVtID0+ICcx JywKICAgYW1wcm9jID0+ICdpbmV0X2dpc3RfY29uc2lzdGVudCcgfSwKQEAgLTY1MCw2ICs2 NTksMTIgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L211bHRpcmFuZ2Vfb3BzJywgYW1w cm9jbGVmdHR5cGUgPT4gJ2FueW11bHRpcmFuZ2UnLAogICBhbXByb2NyaWdodHR5cGUgPT4g J2FueW11bHRpcmFuZ2UnLCBhbXByb2NudW0gPT4gJzEyJywKICAgYW1wcm9jID0+ICdnaXN0 X3N0cmF0bnVtX2lkZW50aXR5JyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvbXVsdGly YW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsCisgIGFtcHJv Y3JpZ2h0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsIGFtcHJvY251bSA9PiAnMTMnLAorICBh bXByb2MgPT4gJ211bHRpcmFuZ2VfaW50ZXJzZWN0KGFueW11bHRpcmFuZ2UsYW55bXVsdGly YW5nZSknIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9tdWx0aXJhbmdlX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ ICdhbnltdWx0aXJhbmdlJywgYW1wcm9jbnVtID0+ICcxNCcsCisgIGFtcHJvYyA9PiAnbXVs dGlyYW5nZV93aXRob3V0X3BvcnRpb24oYW55bXVsdGlyYW5nZSxhbnltdWx0aXJhbmdlKScg fSwKIAogIyBnaW4KIHsgYW1wcm9jZmFtaWx5ID0+ICdnaW4vYXJyYXlfb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ2FueWFycmF5JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4 IGNlZTQwYzFlNGRiLi4zNDY3NDY4NmFkMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 CkBAIC0xMDYwNCw2ICsxMDYwNCwxMCBAQAogeyBvaWQgPT4gJzM4NjknLAogICBwcm9uYW1l ID0+ICdyYW5nZV9taW51cycsIHByb3JldHR5cGUgPT4gJ2FueXJhbmdlJywKICAgcHJvYXJn dHlwZXMgPT4gJ2FueXJhbmdlIGFueXJhbmdlJywgcHJvc3JjID0+ICdyYW5nZV9taW51cycg fSwKK3sgb2lkID0+ICc4NDA4JywgZGVzY3IgPT4gJ3JlbW92ZSBwb3J0aW9uIGZyb20gcmFu Z2UnLAorICBwcm9uYW1lID0+ICdyYW5nZV93aXRob3V0X3BvcnRpb24nLCBwcm9yb3dzID0+ ICcyJywKKyAgcHJvcmV0c2V0ID0+ICd0JywgcHJvcmV0dHlwZSA9PiAnYW55cmFuZ2UnLAor ICBwcm9hcmd0eXBlcyA9PiAnYW55cmFuZ2UgYW55cmFuZ2UnLCBwcm9zcmMgPT4gJ3Jhbmdl X3dpdGhvdXRfcG9ydGlvbicgfSwKIHsgb2lkID0+ICczODcwJywgZGVzY3IgPT4gJ2xlc3Mt ZXF1YWwtZ3JlYXRlcicsCiAgIHByb25hbWUgPT4gJ3JhbmdlX2NtcCcsIHByb3JldHR5cGUg PT4gJ2ludDQnLAogICBwcm9hcmd0eXBlcyA9PiAnYW55cmFuZ2UgYW55cmFuZ2UnLCBwcm9z cmMgPT4gJ3JhbmdlX2NtcCcgfSwKQEAgLTEwODkxLDYgKzEwODk1LDEwIEBACiB7IG9pZCA9 PiAnNDI3MScsCiAgIHByb25hbWUgPT4gJ211bHRpcmFuZ2VfbWludXMnLCBwcm9yZXR0eXBl ID0+ICdhbnltdWx0aXJhbmdlJywKICAgcHJvYXJndHlwZXMgPT4gJ2FueW11bHRpcmFuZ2Ug YW55bXVsdGlyYW5nZScsIHByb3NyYyA9PiAnbXVsdGlyYW5nZV9taW51cycgfSwKK3sgb2lk ID0+ICc4NDA2JywgZGVzY3IgPT4gJ3JlbW92ZSBwb3J0aW9uIGZyb20gbXVsdGlyYW5nZScs CisgIHByb25hbWUgPT4gJ211bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uJywgcHJvcm93cyA9 PiAnMScsCisgIHByb3JldHNldCA9PiAndCcsIHByb3JldHR5cGUgPT4gJ2FueW11bHRpcmFu Z2UnLAorICBwcm9hcmd0eXBlcyA9PiAnYW55bXVsdGlyYW5nZSBhbnltdWx0aXJhbmdlJywg cHJvc3JjID0+ICdtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbicgfSwKIHsgb2lkID0+ICc0 MjcyJywKICAgcHJvbmFtZSA9PiAnbXVsdGlyYW5nZV9pbnRlcnNlY3QnLCBwcm9yZXR0eXBl ID0+ICdhbnltdWx0aXJhbmdlJywKICAgcHJvYXJndHlwZXMgPT4gJ2FueW11bHRpcmFuZ2Ug YW55bXVsdGlyYW5nZScsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9yYW5nZXR5 cGVzLmggYi9zcmMvaW5jbHVkZS91dGlscy9yYW5nZXR5cGVzLmgKaW5kZXggMmI1NzQ4NzNj ZWYuLmUxYjI1NmI2NWY0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9yYW5nZXR5 cGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmFuZ2V0eXBlcy5oCkBAIC0xNjQsNSAr MTY0LDcgQEAgZXh0ZXJuIFJhbmdlVHlwZSAqbWFrZV9lbXB0eV9yYW5nZShUeXBlQ2FjaGVF bnRyeSAqdHlwY2FjaGUpOwogZXh0ZXJuIGJvb2wgcmFuZ2Vfc3BsaXRfaW50ZXJuYWwoVHlw ZUNhY2hlRW50cnkgKnR5cGNhY2hlLCBjb25zdCBSYW5nZVR5cGUgKnIxLAogCQkJCQkJCQkg Y29uc3QgUmFuZ2VUeXBlICpyMiwgUmFuZ2VUeXBlICoqb3V0cHV0MSwKIAkJCQkJCQkJIFJh bmdlVHlwZSAqKm91dHB1dDIpOworZXh0ZXJuIHZvaWQgcmFuZ2Vfd2l0aG91dF9wb3J0aW9u X2ludGVybmFsKFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwgUmFuZ2VUeXBlICpyMSwKKwkJ CQkJCQkJCVJhbmdlVHlwZSAqcjIsIFJhbmdlVHlwZSAqKm91dHB1dHMsIGludCAqb3V0cHV0 bik7CiAKICNlbmRpZgkJCQkJCQkvKiBSQU5HRVRZUEVTX0ggKi8KZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5cGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5cGVzLm91dAppbmRleCBjNjM2M2ViZWIy NC4uMTFhYTI4MmZmMzUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv bXVsdGlyYW5nZXR5cGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL211 bHRpcmFuZ2V0eXBlcy5vdXQKQEAgLTIyMDAsNiArMjIwMCwxMjIgQEAgU0VMRUNUIG51bW11 bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSkgLSBudW1tdWx0aXJhbmdl KG51bXJhbmdlKC0yLDAKICB7WzEsMiksWzQsNSl9CiAoMSByb3cpCiAKKy0tIHdpdGhvdXRf cG9ydGlvbgorU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFu Z2UoKSwgbnVtbXVsdGlyYW5nZSgpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK1NFTEVDVCBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKCksIG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMSwyKSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93cykKKworU0VMRUNUIG11bHRpcmFuZ2Vf d2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSksIG51bW11bHRp cmFuZ2UoKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisge1sxLDIpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5n ZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5n ZSgzLDQpKSwgbnVtbXVsdGlyYW5nZSgpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlv biAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMiksWzMsNCl9CisoMSBy b3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdl KG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpKTsKKyBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KygwIHJvd3MpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0 aXJhbmdlKG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsNCkpKTsK KyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyB7WzEsMil9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDMsNCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMil9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBu dW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9y dGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzIsNCl9CisoMSByb3cp CisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsMykpKTsKKyBtdWx0aXJh bmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7 WzEsMiksWzMsNCl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9y dGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJh bmdlKDAsOCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhv dXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdl KG51bXJhbmdlKDAsMikpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzIsNCl9CisoMSByb3cpCisKK1NFTEVDVCBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsOCkp LCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsMiksIG51bXJhbmdlKDMsNCkpKTsKKyBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyB7WzIsMyksWzQsOCl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsOCkpLCBudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDIsMyksIG51bXJhbmdlKDUsbnVsbCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMiksWzMsNSl9 CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0 aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51 bXJhbmdlKC0yLDApKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpLFs0LDUpfQorKDEgcm93KQorCitTRUxF Q1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgx LDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDQpKSk7Cisg bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisge1sxLDIpLFs0LDUpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRo b3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUp KSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgzLDUpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0 X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpfQorKDEg cm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5n ZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5n ZSgwLDkpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0 X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDMpLCBudW1yYW5nZSg0LDUpKSwg bnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDkpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3Bv cnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpfQorKDEgcm93 KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShu dW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSg4 LDkpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisge1sxLDIpLFs0LDUpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGly YW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1y YW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgtMiwwKSwgbnVtcmFuZ2UoOCw5 KSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIHtbMSwyKSxbNCw1KX0KKygxIHJvdykKKwogLS0gaW50ZXJzZWN0aW9u CiBTRUxFQ1QgbnVtbXVsdGlyYW5nZSgpICogbnVtbXVsdGlyYW5nZSgpOwogID9jb2x1bW4/ IApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yYW5nZXR5cGVzLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcmFuZ2V0eXBlcy5vdXQKaW5kZXggYTdj YzIyMGJmMGQuLmFiMjMwOWU4YzFkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3JhbmdldHlwZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cmFuZ2V0eXBlcy5vdXQKQEAgLTQ4MSw2ICs0ODEsNjAgQEAgc2VsZWN0IHJhbmdlX21pbnVz KG51bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVtcmFuZ2UoMC4wLDEyMC4yLCcoXScpKTsK ICBlbXB0eQogKDEgcm93KQogCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKCdlbXB0 eSc6Om51bXJhbmdlLCBudW1yYW5nZSgyLjAsIDMuMCkpOworIHJhbmdlX3dpdGhvdXRfcG9y dGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitzZWxlY3QgcmFu Z2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4yKSwgJ2VtcHR5Jzo6bnVtcmFu Z2UpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgWzEuMSwyLjIpCisoMSByb3cpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24o bnVtcmFuZ2UoMS4xLCAyLjIpLCBudW1yYW5nZSgyLjAsIDMuMCkpOworIHJhbmdlX3dpdGhv dXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEuMSwyLjApCisoMSBy b3cpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4xLCAyLjIp LCBudW1yYW5nZSgyLjIsIDMuMCkpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgWzEuMSwyLjIpCisoMSByb3cpCisKK3NlbGVjdCByYW5n ZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4xLCAyLjIsJ1tdJyksIG51bXJhbmdlKDIu MCwgMy4wKSk7CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBbMS4xLDIuMCkKKygxIHJvdykKKworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9y dGlvbihudW1yYW5nZSgxLjAsIDMuMCksIG51bXJhbmdlKDEuNSwgMi4wKSk7CisgcmFuZ2Vf d2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMS4wLDEuNSkK KyBbMi4wLDMuMCkKKygyIHJvd3MpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24o bnVtcmFuZ2UoMTAuMSwxMi4yLCdbXScpLCBudW1yYW5nZSgxMTAuMCwxMjAuMiwnKF0nKSk7 CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBb MTAuMSwxMi4yXQorKDEgcm93KQorCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51 bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVtcmFuZ2UoMC4wLDEyMC4yLCcoXScpKTsKKyBy YW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93 cykKKworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxLjAsMy4wLCdb XScpLCBudW1yYW5nZSgxLjUsMi4wLCcoXScpKTsKKyByYW5nZV93aXRob3V0X3BvcnRpb24g CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLjAsMS41XQorICgyLjAsMy4wXQorKDIg cm93cykKKwogc2VsZWN0IG51bXJhbmdlKDQuNSwgNS41LCAnW10nKSAmJiBudW1yYW5nZSg1 LjUsIDYuNSk7CiAgP2NvbHVtbj8gCiAtLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9tdWx0aXJhbmdldHlwZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvbXVsdGlyYW5nZXR5cGVzLnNxbAppbmRleCA0MWQ1NTI0Mjg1YS4uMGJmYTcxY2FjYTAg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL211bHRpcmFuZ2V0eXBlcy5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbXVsdGlyYW5nZXR5cGVzLnNxbApAQCAtNDE0 LDYgKzQxNCwyOCBAQCBTRUxFQ1QgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDMpLCBudW1y YW5nZSg0LDUpKSAtIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiw5KQogU0VMRUNUIG51bW11 bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSkgLSBudW1tdWx0aXJhbmdl KG51bXJhbmdlKDgsOSkpOwogU0VMRUNUIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwg bnVtcmFuZ2UoNCw1KSkgLSBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDApLCBudW1yYW5n ZSg4LDkpKTsKIAorLS0gd2l0aG91dF9wb3J0aW9uCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRo b3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZSgpLCBudW1tdWx0aXJhbmdlKCkpOworU0VMRUNU IG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UoKSwgbnVtbXVsdGly YW5nZShudW1yYW5nZSgxLDIpKSk7CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKSwgbnVtbXVsdGlyYW5nZSgpKTsKK1NF TEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdl KDEsMiksIG51bXJhbmdlKDMsNCkpLCBudW1tdWx0aXJhbmdlKCkpOworU0VMRUNUIG11bHRp cmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSksIG51 bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSksIG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMiw0KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51 bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMyw0 KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMSw0KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSkpOworU0VMRUNU IG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw0 KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiwzKSkpOworU0VMRUNUIG11bHRpcmFuZ2Vf d2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw0KSksIG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoMCw4KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw0KSksIG51bW11bHRpcmFuZ2UobnVtcmFu Z2UoMCwyKSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoMSw4KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMCwyKSwgbnVt cmFuZ2UoMyw0KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11 bHRpcmFuZ2UobnVtcmFuZ2UoMSw4KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiwzKSwg bnVtcmFuZ2UoNSxudWxsKSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9u KG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSksIG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoLTIsMCkpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9y dGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkpLCBudW1t dWx0aXJhbmdlKG51bXJhbmdlKDIsNCkpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkpLCBu dW1tdWx0aXJhbmdlKG51bXJhbmdlKDMsNSkpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhv dXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkp LCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsOSkpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dp dGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMyksIG51bXJhbmdlKDQs NSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsOSkpKTsKK1NFTEVDVCBtdWx0aXJhbmdl X3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdl KDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDgsOSkpKTsKK1NFTEVDVCBtdWx0aXJh bmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJh bmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDApLCBudW1yYW5nZSg4LDkp KSk7CisKIC0tIGludGVyc2VjdGlvbgogU0VMRUNUIG51bW11bHRpcmFuZ2UoKSAqIG51bW11 bHRpcmFuZ2UoKTsKIFNFTEVDVCBudW1tdWx0aXJhbmdlKCkgKiBudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDEsMikpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcmFuZ2V0 eXBlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9yYW5nZXR5cGVzLnNxbAppbmRleCBh NWVjZGY1MzcyZi4uN2ZjODA1ZDlmZmEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3JhbmdldHlwZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3JhbmdldHlw ZXMuc3FsCkBAIC0xMDcsNiArMTA3LDE2IEBAIHNlbGVjdCBudW1yYW5nZSgxLjEsIDIuMiwn W10nKSAtIG51bXJhbmdlKDIuMCwgMy4wKTsKIHNlbGVjdCByYW5nZV9taW51cyhudW1yYW5n ZSgxMC4xLDEyLjIsJ1tdJyksIG51bXJhbmdlKDExMC4wLDEyMC4yLCcoXScpKTsKIHNlbGVj dCByYW5nZV9taW51cyhudW1yYW5nZSgxMC4xLDEyLjIsJ1tdJyksIG51bXJhbmdlKDAuMCwx MjAuMiwnKF0nKSk7CiAKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24oJ2VtcHR5Jzo6 bnVtcmFuZ2UsIG51bXJhbmdlKDIuMCwgMy4wKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9w b3J0aW9uKG51bXJhbmdlKDEuMSwgMi4yKSwgJ2VtcHR5Jzo6bnVtcmFuZ2UpOworc2VsZWN0 IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxLjEsIDIuMiksIG51bXJhbmdlKDIu MCwgMy4wKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwg Mi4yKSwgbnVtcmFuZ2UoMi4yLCAzLjApKTsKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRp b24obnVtcmFuZ2UoMS4xLCAyLjIsJ1tdJyksIG51bXJhbmdlKDIuMCwgMy4wKSk7CitzZWxl Y3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMCwgMy4wKSwgbnVtcmFuZ2Uo MS41LCAyLjApKTsKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMTAu MSwxMi4yLCdbXScpLCBudW1yYW5nZSgxMTAuMCwxMjAuMiwnKF0nKSk7CitzZWxlY3QgcmFu Z2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVtcmFuZ2Uo MC4wLDEyMC4yLCcoXScpKTsKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFu Z2UoMS4wLDMuMCwnW10nKSwgbnVtcmFuZ2UoMS41LDIuMCwnKF0nKSk7CisKIHNlbGVjdCBu dW1yYW5nZSg0LjUsIDUuNSwgJ1tdJykgJiYgbnVtcmFuZ2UoNS41LCA2LjUpOwogc2VsZWN0 IG51bXJhbmdlKDEuMCwgMi4wKSA8PCBudW1yYW5nZSgzLjAsIDQuMCk7CiBzZWxlY3QgbnVt cmFuZ2UoMS4wLCAzLjAsJ1tdJykgPDwgbnVtcmFuZ2UoMy4wLCA0LjAsJ1tdJyk7Ci0tIAoy LjQyLjAKCg== --------------GsheMzFFcGdccG4bvM4vwSCN Content-Type: text/x-patch; charset=UTF-8; name="v37-0006-Add-UPDATE-DELETE-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename="v37-0006-Add-UPDATE-DELETE-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 RnJvbSA3MzMwMTgyOTI0NGFkZjg4MWVlZWJiMjM1ODdkNTVkZDQwMWJlNTE2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IEZyaSwgMjUgSnVuIDIwMjEgMTg6NTQ6MzUgLTA3 MDAKU3ViamVjdDogW1BBVENIIHYzNyA2LzhdIEFkZCBVUERBVEUvREVMRVRFIEZPUiBQT1JU SU9OIE9GCgotIEFkZGVkIGJpc29uIHN1cHBvcnQgZm9yIEZPUiBQT1JUSU9OIE9GIHN5bnRh eC4gVGhlIGJvdW5kcyBtdXN0IGJlCiAgY29uc3RhbnQsIHNvIHdlIGZvcmJpZCBjb2x1bW4g cmVmZXJlbmNlcywgc3VicXVlcmllcywgZXRjLiBCdXQgd2UKICBwZXJtaXQgdGhlIG1hZ2lj IFVOQk9VTkRFRCBrZXl3b3JkIGFzIHRoZSBGUk9NIG9yIHRoZSBUTyAob3IgYm90aCkKICB0 byBwZXJmb3JtIGFuIHVuYm91bmRlZCB1cGRhdGUvZGVsZXRlLiBXZSBhbHNvIGFjY2VwdCBm dW5jdGlvbnMgbGlrZQogIE5PVygpLgotIEFkZGVkIGxvZ2ljIHRvIGV4ZWN1dG9yIHRvIGlu c2VydCBuZXcgcm93cyBmb3IgdGhlICJsZWZ0b3ZlciIgcGFydCBvZgogIGEgcmVjb3JkIHRv dWNoZWQgYnkgYSBGT1IgUE9SVElPTiBPRiBxdWVyeS4KLSBBZGRlZCB0Z190ZW1wb3JhbCBk ZXNjcmlwdG9yIHRvIHRoZSBUcmlnZ2VyRGF0YSBzdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvCiAg dHJpZ2dlciBmdW5jdGlvbnMuIE91ciB0cmlnZ2VycyB1c2UgdGhpcyB0byBsZWFybiB3aGF0 IGJvdW5kcyB3ZXJlCiAgZ2l2ZW4gaW4gdGhlIEZPUiBQT1JUSU9OIE9GIGNsYXVzZS4KLSBE b2N1bWVudGVkIEZPUiBQT1JUSU9OIE9GLgotIERvY3VtZW50ZWQgdGdfdGVtcG9yYWwgc3Ry dWN0LgotIEFkZGVkIHRlc3RzLgotLS0KIC4uLi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9z dGdyZXNfZmR3Lm91dCAgICB8ICAgNSArCiBjb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9z dGdyZXNfZmR3LnNxbCAgICAgfCAgIDQgKwogY29udHJpYi9zZXBnc3FsL3Byb2MuYyAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBjb250cmliL3VuYWNjZW50L3VuYWNjZW50 LmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogZG9jL3NyYy9zZ21sL3JlZi9kZWxl dGUuc2dtbCAgICAgICAgICAgICAgICAgIHwgIDY5ICsrCiBkb2Mvc3JjL3NnbWwvcmVmL3Vw ZGF0ZS5zZ21sICAgICAgICAgICAgICAgICAgfCAgODcgKysrCiBkb2Mvc3JjL3NnbWwvdHJp Z2dlci5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgNjAgKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jICAgICAgICB8ICAzNCArLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvdHJpZ2dlci5jICAgICAgICAgICAgICAgIHwgIDQ5ICsrCiBzcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgICAgICAgIHwgMzAwICsrKysrKyst CiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgMjQg Kwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jICAgICAgIHwgICA2 ICstCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgfCAg IDEgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUuYyAgICAgICAgIHwg ICAzICstCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAgICAgICAgICAgICAg fCAyNDIgKysrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAg ICAgICAgIHwgIDU2ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgICAgICAg ICAgICAgICAgfCAgMTAgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYyAg ICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAg ICAgICAgICAgICB8ICAgOCArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAg ICAgICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMg ICAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5k bGVyLmMgICAgICAgICAgfCAgNDAgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdn ZXJzLmMgICAgICAgICAgIHwgIDc0ICsrCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lz Y2FjaGUuYyAgICAgICAgICAgfCAgNTcgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9zdHJhdG51 bS5oICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvdHJp Z2dlci5oICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNu b2Rlcy5oICAgICAgICAgICAgICAgICB8ICAyNiArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgNDYgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3Bh dGhub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9w bGFubm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMv cHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgIDI2ICsKIHNyYy9pbmNsdWRlL29wdGlt aXplci9wYXRobm9kZS5oICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvcGFy c2VyL2FuYWx5emUuaCAgICAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX25vZGUuaCAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L3V0aWxzL2xzeXNjYWNoZS5oICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQgIHwgNjg1ICsrKysrKysrKysr KysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCAgICAg IHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQgICAg ICB8ICAxOCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5v dXQgfCAgMzIgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQg ICAgIHwgMTQwICsrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAg ICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yu c3FsICAgICAgIHwgNTMxICsrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9v cHJfc2FuaXR5LnNxbCAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwv cHJpdmlsZWdlcy5zcWwgICAgICAgICAgIHwgIDE4ICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3VwZGF0YWJsZV92aWV3cy5zcWwgICAgICB8ICAxNCArCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC93aXRob3V0X292ZXJsYXBzLnNxbCAgICAgfCAgODggKysrCiA1MSBmaWxlcyBjaGFuZ2Vk LCAyNzI3IGluc2VydGlvbnMoKyksIDY0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0CiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3Fs CgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNf ZmR3Lm91dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5v dXQKaW5kZXggMzliMmIzMTdlODcuLjAxZGFlN2MyOTE5IDEwMDY0NAotLS0gYS9jb250cmli L3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBiL2NvbnRyaWIv cG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTYzNjIsNiArNjM2 MiwxMSBAQCBERUxFVEUgRlJPTSBmdDIKIAogREVMRVRFIEZST00gZnQyIFdIRVJFIGZ0Mi5j MSA+IDIwMDA7CiBBTFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoQUREIGV4dGVuc2lv bnMgJ3Bvc3RncmVzX2ZkdycpOworLS0gVGVzdCBVUERBVEUvREVMRVRFIHdpdGggRk9SIFBP UlRJT04gT0YKK1VQREFURSBmdDIgRk9SIFBPUlRJT04gT0YgYzMgRlJPTSAnYScgVE8gJ2In IFNFVCBjMSA9IDE7CitFUlJPUjogIGZvcmVpZ24gdGFibGVzIGRvbid0IHN1cHBvcnQgRk9S IFBPUlRJT04gT0YKK0RFTEVURSBGUk9NIGZ0MiBGT1IgUE9SVElPTiBPRiBjMyBGUk9NICdh JyBUTyAnYic7CitFUlJPUjogIGZvcmVpZ24gdGFibGVzIGRvbid0IHN1cHBvcnQgRk9SIFBP UlRJT04gT0YKIC0tIFRlc3QgdGhhdCB0cmlnZ2VyIG9uIHJlbW90ZSB0YWJsZSB3b3JrcyBh cyBleHBlY3RlZAogQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gIlMgMSIuRl9CUlRSSUco KSBSRVRVUk5TIHRyaWdnZXIgQVMgJCQKIEJFR0lOCmRpZmYgLS1naXQgYS9jb250cmliL3Bv c3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3 L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCmluZGV4IDhiZTlmOTljMTkyLi5kNThjMjdkMmViYiAx MDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwK KysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKQEAgLTE1 NzEsNiArMTU3MSwxMCBAQCBERUxFVEUgRlJPTSBmdDIKIERFTEVURSBGUk9NIGZ0MiBXSEVS RSBmdDIuYzEgPiAyMDAwOwogQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKEFERCBl eHRlbnNpb25zICdwb3N0Z3Jlc19mZHcnKTsKIAorLS0gVGVzdCBVUERBVEUvREVMRVRFIHdp dGggRk9SIFBPUlRJT04gT0YKK1VQREFURSBmdDIgRk9SIFBPUlRJT04gT0YgYzMgRlJPTSAn YScgVE8gJ2InIFNFVCBjMSA9IDE7CitERUxFVEUgRlJPTSBmdDIgRk9SIFBPUlRJT04gT0Yg YzMgRlJPTSAnYScgVE8gJ2InOworCiAtLSBUZXN0IHRoYXQgdHJpZ2dlciBvbiByZW1vdGUg dGFibGUgd29ya3MgYXMgZXhwZWN0ZWQKIENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OICJT IDEiLkZfQlJUUklHKCkgUkVUVVJOUyB0cmlnZ2VyIEFTICQkCiBCRUdJTgpkaWZmIC0tZ2l0 IGEvY29udHJpYi9zZXBnc3FsL3Byb2MuYyBiL2NvbnRyaWIvc2VwZ3NxbC9wcm9jLmMKaW5k ZXggNDg5OWJjMmEzZTMuLjIwMTIwZmQ1MzFmIDEwMDY0NAotLS0gYS9jb250cmliL3NlcGdz cWwvcHJvYy5jCisrKyBiL2NvbnRyaWIvc2VwZ3NxbC9wcm9jLmMKQEAgLTE2MSw3ICsxNjEs NyBAQCBzZXBnc3FsX3Byb2NfZHJvcChPaWQgZnVuY3Rpb25JZCkKIAkgKiBjaGVjayBkYl9z Y2hlbWE6e3JlbW92ZV9uYW1lfSBwZXJtaXNzaW9uCiAJICovCiAJb2JqZWN0LmNsYXNzSWQg PSBOYW1lc3BhY2VSZWxhdGlvbklkOwotCW9iamVjdC5vYmplY3RJZCA9IGdldF9mdW5jX25h bWVzcGFjZShmdW5jdGlvbklkKTsKKwlvYmplY3Qub2JqZWN0SWQgPSBnZXRfZnVuY19uYW1l c3BhY2UoZnVuY3Rpb25JZCwgdHJ1ZSk7CiAJb2JqZWN0Lm9iamVjdFN1YklkID0gMDsKIAlh dWRpdF9uYW1lID0gZ2V0T2JqZWN0SWRlbnRpdHkoJm9iamVjdCwgZmFsc2UpOwogCmRpZmYg LS1naXQgYS9jb250cmliL3VuYWNjZW50L3VuYWNjZW50LmMgYi9jb250cmliL3VuYWNjZW50 L3VuYWNjZW50LmMKaW5kZXggNzA3OTYyMzA1ZjguLjNiNzY0NmVjNzJhIDEwMDY0NAotLS0g YS9jb250cmliL3VuYWNjZW50L3VuYWNjZW50LmMKKysrIGIvY29udHJpYi91bmFjY2VudC91 bmFjY2VudC5jCkBAIC00NDksNyArNDQ5LDcgQEAgdW5hY2NlbnRfZGljdChQR19GVU5DVElP Tl9BUkdTKQogCQkgKiBVc2UgdGhlICJ1bmFjY2VudCIgZGljdGlvbmFyeSB0aGF0IGlzIGlu IHRoZSBzYW1lIHNjaGVtYSB0aGF0IHRoaXMKIAkJICogZnVuY3Rpb24gaXMgaW4uCiAJCSAq LwotCQlPaWQJCQlwcm9jbnNwaWQgPSBnZXRfZnVuY19uYW1lc3BhY2UoZmNpbmZvLT5mbGlu Zm8tPmZuX29pZCk7CisJCU9pZAkJCXByb2Nuc3BpZCA9IGdldF9mdW5jX25hbWVzcGFjZShm Y2luZm8tPmZsaW5mby0+Zm5fb2lkLCB0cnVlKTsKIAkJY29uc3QgY2hhciAqZGljdG5hbWUg PSAidW5hY2NlbnQiOwogCiAJCWRpY3RPaWQgPSBHZXRTeXNDYWNoZU9pZDIoVFNESUNUTkFN RU5TUCwgQW51bV9wZ190c19kaWN0X29pZCwKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggYTVmZjVj OGRhNTUuLjg0YTJmN2U0MTA2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtODMzLDcgKzgzMyw3 IEBACiAgICAgICAgPHN0cnVjdGZpZWxkPmFtb3BwdXJwb3NlPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+Y2hhcjwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgotICAgICAgIE9w ZXJhdG9yIHB1cnBvc2UsIGVpdGhlciA8bGl0ZXJhbD5zPC9saXRlcmFsPiBmb3Igc2VhcmNo IG9yCisgICAgICAgT3BlcmF0b3IgcHVycG9zZSwgZWl0aGVyIDxsaXRlcmFsPnM8L2xpdGVy YWw+IGZvciBzZWFyY2gsIG9yCiAgICAgICAgPGxpdGVyYWw+bzwvbGl0ZXJhbD4gZm9yIG9y ZGVyaW5nCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CkBAIC04NjUsNyAr ODY1LDcgQEAKICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgogICAgICAgIFRoZSBCLXRy ZWUgb3BlcmF0b3IgZmFtaWx5IHRoaXMgZW50cnkgc29ydHMgYWNjb3JkaW5nIHRvLCBpZiBh bgotICAgICAgIG9yZGVyaW5nIG9wZXJhdG9yOyB6ZXJvIGlmIGEgc2VhcmNoIG9wZXJhdG9y IG9yIHBvcnRpb24gb3BlcmF0b3IKKyAgICAgICBvcmRlcmluZyBvcGVyYXRvcjsgemVybyBp ZiBhIHNlYXJjaCBvcGVyYXRvcgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93 PgogICAgIDwvdGJvZHk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbAppbmRleCAwYjZmYTAwNTEyMy4u MDM1NWI2MDg1ZjEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbApAQCAtMjMsNiArMjMsNyBAQCBQ b3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIDxzeW5vcHNpcz4KIFsgV0lUSCBbIFJFQ1VSU0lW RSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj53aXRoX3F1ZXJ5PC9yZXBsYWNl YWJsZT4gWywgLi4uXSBdCiBERUxFVEUgRlJPTSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgWyBBUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hbGlhczwvcmVwbGFjZWFibGU+IF0K KyAgICBbIEZPUiBQT1JUSU9OIE9GIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5y YW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+IEZST00gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnN0YXJ0X3RpbWU8L3JlcGxhY2VhYmxlPiBUTyA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+ZW5kX3RpbWU8L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBV U0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZnJvbV9pdGVtPC9yZXBsYWNl YWJsZT4gWywgLi4uXSBdCiAgICAgWyBXSEVSRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29uZGl0aW9uPC9yZXBsYWNlYWJsZT4gfCBXSEVSRSBDVVJSRU5UIE9GIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jdXJzb3JfbmFtZTwvcmVwbGFjZWFibGU+IF0K ICAgICBbIFJFVFVSTklORyAqIHwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm91 dHB1dF9leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gWyBbIEFTIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm91dHB1dF9uYW1lPC9yZXBsYWNlYWJsZT4gXSBbLCAuLi5dIF0K QEAgLTU0LDYgKzU1LDM5IEBAIERFTEVURSBGUk9NIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqCiAgICBjaXJj dW1zdGFuY2VzLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBJZiB0aGUgdGFibGUgaGFz IGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSBjb2x1bW4sCisgICB5b3UgbWF5IHN1cHBseSBhIDxs aXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBjbGF1c2UsIGFuZCB5b3VyIGRlbGV0 ZSB3aWxsCisgICBvbmx5IGFmZmVjdCByb3dzIHRoYXQgb3ZlcmxhcCB0aGUgZ2l2ZW4gaW50 ZXJ2YWwuIEZ1cnRoZXJtb3JlLCBpZiBhIHJvdydzIHNwYW4KKyAgIGV4dGVuZHMgb3V0c2lk ZSB0aGUgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGJvdW5kcywgdGhlbiB5 b3VyIGRlbGV0ZQorICAgd2lsbCBvbmx5IGNoYW5nZSB0aGUgc3BhbiB3aXRoaW4gdGhvc2Ug Ym91bmRzLiBJbiBlZmZlY3QgeW91IGFyZSBkZWxldGluZyBhbnkKKyAgIG1vbWVudCB0YXJn ZXRlZCBieSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYW5kIG5vIG1vbWVu dHMgb3V0c2lkZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgU3BlY2lmaWNhbGx5LCBh ZnRlciA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGRlbGV0ZXMgdGhl IGV4aXN0aW5nIHJvdywKKyAgIGl0IHdpbGwgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPgor ICAgbmV3IHJvd3Mgd2hvc2UgcmFuZ2Ugb3Igc3RhcnQvZW5kIGNvbHVtbihzKSByZWNlaXZl IHRoZSByZW1haW5pbmcgc3BhbiBvdXRzaWRlCisgICB0aGUgdGFyZ2V0ZWQgYm91bmRzLCBj b250YWluaW5nIHRoZSBvcmlnaW5hbCB2YWx1ZXMgaW4gb3RoZXIgY29sdW1ucy4KKyAgIFRo ZXJlIHdpbGwgYmUgemVybyB0byB0d28gaW5zZXJ0ZWQgcmVjb3JkcywKKyAgIGRlcGVuZGlu ZyBvbiB3aGV0aGVyIHRoZSBvcmlnaW5hbCBzcGFuIGV4dGVuZGVkIGJlZm9yZSB0aGUgdGFy Z2V0ZWQKKyAgIDxsaXRlcmFsPkZST008L2xpdGVyYWw+LCBhZnRlciB0aGUgdGFyZ2V0ZWQg PGxpdGVyYWw+VE88L2xpdGVyYWw+LCBib3RoLCBvciBuZWl0aGVyLgorICA8L3BhcmE+CisK KyAgPHBhcmE+CisgICBUaGVzZSBzZWNvbmRhcnkgaW5zZXJ0cyBmaXJlIDxsaXRlcmFsPklO U0VSVDwvbGl0ZXJhbD4gdHJpZ2dlcnMuIEZpcnN0CisgICA8bGl0ZXJhbD5CRUZPUkUgREVM RVRFPC9saXRlcmFsPiB0cmlnZ2VycyBmaXJzdCwgdGhlbgorICAgPGxpdGVyYWw+QkVGT1JF IElOU0VSVDwvbGl0ZXJhbD4sIHRoZW4gPGxpdGVyYWw+QUZURVIgSU5TRVJUPC9saXRlcmFs PiwKKyAgIHRoZW4gPGxpdGVyYWw+QUZURVIgREVMRVRFPC9saXRlcmFsPi4KKyAgPC9wYXJh PgorCisgIDxwYXJhPgorICAgVGhlc2Ugc2Vjb25kYXJ5IGluc2VydHMgZG8gbm90IHJlcXVp cmUgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIHRhYmxlLgor ICAgVGhpcyBpcyBiZWNhdXNlIGNvbmNlcHR1YWxseSBubyBuZXcgaW5mb3JtYXRpb24gaGFz IGJlZW4gYWRkZWQuIFRoZSBpbnNlcnRlZCByb3dzIG9ubHkgcHJlc2VydmUKKyAgIGV4aXN0 aW5nIGRhdGEgYWJvdXQgdGhlIHVudGFyZ2V0ZWQgdGltZSBwZXJpb2QuIE5vdGUgdGhpcyBt YXkgcmVzdWx0IGluIHVzZXJzIGZpcmluZyA8bGl0ZXJhbD5JTlNFUlQ8L2xpdGVyYWw+Cisg ICB0cmlnZ2VycyB3aG8gZG9uJ3QgaGF2ZSBpbnNlcnQgcHJpdmlsZWdlcywgc28gYmUgY2Fy ZWZ1bCBhYm91dCA8bGl0ZXJhbD5TRUNVUklUWSBERUZJTkVSPC9saXRlcmFsPiB0cmlnZ2Vy IGZ1bmN0aW9ucyEKKyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgVGhlIG9wdGlvbmFsIDxs aXRlcmFsPlJFVFVSTklORzwvbGl0ZXJhbD4gY2xhdXNlIGNhdXNlcyA8Y29tbWFuZD5ERUxF VEU8L2NvbW1hbmQ+CiAgICB0byBjb21wdXRlIGFuZCByZXR1cm4gdmFsdWUocykgYmFzZWQg b24gZWFjaCByb3cgYWN0dWFsbHkgZGVsZXRlZC4KQEAgLTExNiw2ICsxNTAsNDEgQEAgREVM RVRFIEZST00gWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxl X25hbWU8L3JlcGxhY2VhYmxlPiBbICoKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0 ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSByYW5nZSBjb2x1 bW4gb3IgcGVyaW9kIHRvIHVzZSB3aGVuIHBlcmZvcm1pbmcgYSB0ZW1wb3JhbCBkZWxldGUu CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisK KyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnN0YXJ0X3RpbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgVGhlIGVhcmxpZXN0IHRpbWUgKGluY2x1c2l2ZSkgdG8g Y2hhbmdlIGluIGEgdGVtcG9yYWwgZGVsZXRlLgorICAgICAgVGhpcyBtdXN0IGJlIGEgdmFs dWUgbWF0Y2hpbmcgdGhlIGJhc2UgdHlwZSBvZiB0aGUgcmFuZ2Ugb3IgcGVyaW9kIGZyb20K KyAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yYW5nZV9vcl9wZXJpb2Rf bmFtZTwvcmVwbGFjZWFibGU+LiBBCisgICAgICA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiBo ZXJlIGluZGljYXRlcyBhIGRlbGV0ZSB3aG9zZSBiZWdpbm5pbmcgaXMKKyAgICAgIHVuYm91 bmRlZCAoYXMgd2l0aCByYW5nZSB0eXBlcykuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3Rp dGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRl cm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVuZF90aW1lPC9yZXBsYWNlYWJs ZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBsYXRl c3QgdGltZSAoZXhjbHVzaXZlKSB0byBjaGFuZ2UgaW4gYSB0ZW1wb3JhbCBkZWxldGUuCisg ICAgICBUaGlzIG11c3QgYmUgYSB2YWx1ZSBtYXRjaGluZyB0aGUgYmFzZSB0eXBlIG9mIHRo ZSByYW5nZSBvciBwZXJpb2QgZnJvbQorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4uIEEKKyAgICAgIDxs aXRlcmFsPk5VTEw8L2xpdGVyYWw+IGhlcmUgaW5kaWNhdGVzIGEgZGVsZXRlIHdob3NlIGVu ZCBpcyB1bmJvdW5kZWQKKyAgICAgIChhcyB3aXRoIHJhbmdlIHR5cGVzKS4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxp c3RlbnRyeT4KICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZnJv bV9pdGVtPC9yZXBsYWNlYWJsZT48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi91cGRhdGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvdXBk YXRlLnNnbWwKaW5kZXggYmFiYjM0ZmE1MTEuLmVkOGM1NzQ4YTI2IDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL3VwZGF0ZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvdXBk YXRlLnNnbWwKQEAgLTIzLDYgKzIzLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiA8 c3lub3BzaXM+CiBbIFdJVEggWyBSRUNVUlNJVkUgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+d2l0aF9xdWVyeTwvcmVwbGFjZWFibGU+IFssIC4uLl0gXQogVVBEQVRFIFsg T05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBs YWNlYWJsZT4gWyAqIF0gWyBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmFsaWFzPC9yZXBsYWNlYWJsZT4gXQorICAgIFsgRk9SIFBPUlRJT04gT0YgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJs ZT4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZvcl9wb3J0aW9uX29mX3Rhcmdl dDwvcmVwbGFjZWFibGU+IF0KICAgICBTRVQgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiA9IHsgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiB8IERFRkFVTFQgfSB8CiAg ICAgICAgICAgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8 L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgPSBbIFJPVyBdICggeyA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IHwgREVGQVVMVCB9IFss IC4uLl0gKSB8CiAgICAgICAgICAgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgPSAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5zdWItU0VMRUNUPC9yZXBsYWNlYWJsZT4gKQpAQCAtNTEsNiAr NTIsNDEgQEAgVVBEQVRFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWwogICAgY2lyY3Vtc3RhbmNlcy4K ICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgSWYgdGhlIHRhYmxlIGhhcyBhIHJhbmdlIG9y IG11bHRpcmFuZ2UgY29sdW1uLAorICAgeW91IG1heSBzdXBwbHkgYSA8bGl0ZXJhbD5GT1Ig UE9SVElPTiBPRjwvbGl0ZXJhbD4gY2xhdXNlLCBhbmQgeW91ciB1cGRhdGUgd2lsbAorICAg b25seSBhZmZlY3Qgcm93cyB0aGF0IG92ZXJsYXAgdGhlIGdpdmVuIGludGVydmFsLiBGdXJ0 aGVybW9yZSwgaWYgYSByb3cncyBzcGFuCisgICBleHRlbmRzIG91dHNpZGUgdGhlIDxsaXRl cmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBib3VuZHMsIHRoZW4geW91ciB1cGRhdGUK KyAgIHdpbGwgb25seSBjaGFuZ2UgdGhlIHNwYW4gd2l0aGluIHRob3NlIGJvdW5kcy4gSW4g ZWZmZWN0IHlvdSBhcmUgdXBkYXRpbmcgYW55CisgICBtb21lbnQgdGFyZ2V0ZWQgYnkgPGxp dGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGFuZCBubyBtb21lbnRzIG91dHNpZGUu CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFNwZWNpZmljYWxseSwgd2hlbiA8cHJvZHVj dG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHVwZGF0ZXMgdGhlIGV4aXN0aW5nIHJv dywKKyAgIGl0IHdpbGwgYWxzbyBjaGFuZ2UgdGhlIHJhbmdlIG9yIHN0YXJ0L2VuZCBjb2x1 bW4ocykgc28gdGhhdCB0aGVpciBpbnRlcnZhbAorICAgbm8gbG9uZ2VyIGV4dGVuZHMgYmV5 b25kIHRoZSB0YXJnZXRlZCA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYm91 bmRzLgorICAgVGhlbiA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHdp bGwgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPgorICAgbmV3IHJvd3Mgd2hvc2UgcmFuZ2Ug b3Igc3RhcnQvZW5kIGNvbHVtbihzKSByZWNlaXZlIHRoZSByZW1haW5pbmcgc3BhbiBvdXRz aWRlCisgICB0aGUgdGFyZ2V0ZWQgYm91bmRzLCBjb250YWluaW5nIHRoZSB1bi11cGRhdGVk IHZhbHVlcyBpbiBvdGhlciBjb2x1bW5zLgorICAgVGhlcmUgd2lsbCBiZSB6ZXJvIHRvIHR3 byBpbnNlcnRlZCByZWNvcmRzLAorICAgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIG9yaWdp bmFsIHNwYW4gZXh0ZW5kZWQgYmVmb3JlIHRoZSB0YXJnZXRlZAorICAgPGxpdGVyYWw+RlJP TTwvbGl0ZXJhbD4sIGFmdGVyIHRoZSB0YXJnZXRlZCA8bGl0ZXJhbD5UTzwvbGl0ZXJhbD4s IGJvdGgsIG9yIG5laXRoZXIuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZXNlIHNl Y29uZGFyeSBpbnNlcnRzIGZpcmUgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPiB0cmlnZ2Vy cy4gRmlyc3QKKyAgIDxsaXRlcmFsPkJFRk9SRSBVUERBVEU8L2xpdGVyYWw+IHRyaWdnZXJz IGZpcnN0LCB0aGVuCisgICA8bGl0ZXJhbD5CRUZPUkUgSU5TRVJUPC9saXRlcmFsPiwgdGhl biA8bGl0ZXJhbD5BRlRFUiBJTlNFUlQ8L2xpdGVyYWw+LAorICAgdGhlbiA8bGl0ZXJhbD5B RlRFUiBVUERBVEU8L2xpdGVyYWw+LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGVz ZSBzZWNvbmRhcnkgaW5zZXJ0cyBkbyBub3QgcmVxdWlyZSA8bGl0ZXJhbD5JTlNFUlQ8L2xp dGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgdGFibGUuCisgICBUaGlzIGlzIGJlY2F1c2UgY29u Y2VwdHVhbGx5IG5vIG5ldyBpbmZvcm1hdGlvbiBoYXMgYmVlbiBhZGRlZC4gVGhlIGluc2Vy dGVkIHJvd3Mgb25seSBwcmVzZXJ2ZQorICAgZXhpc3RpbmcgZGF0YSBhYm91dCB0aGUgdW50 YXJnZXRlZCB0aW1lIHBlcmlvZC4gTm90ZSB0aGlzIG1heSByZXN1bHQgaW4gdXNlcnMgZmly aW5nIDxsaXRlcmFsPklOU0VSVDwvbGl0ZXJhbD4KKyAgIHRyaWdnZXJzIHdobyBkb24ndCBo YXZlIGluc2VydCBwcml2aWxlZ2VzLCBzbyBiZSBjYXJlZnVsIGFib3V0IDxsaXRlcmFsPlNF Q1VSSVRZIERFRklORVI8L2xpdGVyYWw+IHRyaWdnZXIgZnVuY3Rpb25zIQorICA8L3BhcmE+ CisKICAgPHBhcmE+CiAgICBUaGUgb3B0aW9uYWwgPGxpdGVyYWw+UkVUVVJOSU5HPC9saXRl cmFsPiBjbGF1c2UgY2F1c2VzIDxjb21tYW5kPlVQREFURTwvY29tbWFuZD4KICAgIHRvIGNv bXB1dGUgYW5kIHJldHVybiB2YWx1ZShzKSBiYXNlZCBvbiBlYWNoIHJvdyBhY3R1YWxseSB1 cGRhdGVkLgpAQCAtMTE0LDYgKzE1MCw1NyBAQCBVUERBVEUgWyBPTkxZIF0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBb CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yYW5nZV9v cl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAg ICAgPHBhcmE+CisgICAgICBUaGUgcmFuZ2UgY29sdW1uIG9yIHBlcmlvZCB0byB1c2Ugd2hl biBwZXJmb3JtaW5nIGEgdGVtcG9yYWwgdXBkYXRlLgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAg IDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5mb3JfcG9ydGlvbl9vZl90 YXJnZXQ8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJh PgorICAgICAgVGhlIGludGVydmFsIHRvIHVwZGF0ZS4gSWYgeW91IGFyZSB0YXJnZXRpbmcg YSByYW5nZSBjb2x1bW4gb3IgPGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPiwKKyAgICAgIHlv dSBtYXkgZ2l2ZSB0aGlzIGluIHRoZSBmb3JtIDxsaXRlcmFsPkZST008L2xpdGVyYWw+Cisg ICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3RhcnRfdGltZTwvcmVwbGFj ZWFibGU+IDxsaXRlcmFsPlRPPC9saXRlcmFsPgorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmVuZF90aW1lPC9yZXBsYWNlYWJsZT4uCisgICAgICBPdGhlcndpc2Ug eW91IG11c3QgdXNlCisgICAgICA8bGl0ZXJhbD4oPC9saXRlcmFsPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT48bGl0ZXJhbD4pPC9s aXRlcmFsPgorICAgICAgd2hlcmUgdGhlIGV4cHJlc3Npb24geWllbGRzIGEgdmFsdWUgZm9y IHRoZSBzYW1lIHR5cGUgYXMKKyAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yYW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+LgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5 PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zdGFydF90aW1l PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIFRoZSBlYXJsaWVzdCB0aW1lIChpbmNsdXNpdmUpIHRvIGNoYW5nZSBpbiBhIHRlbXBv cmFsIHVwZGF0ZS4KKyAgICAgIFRoaXMgbXVzdCBiZSBhIHZhbHVlIG1hdGNoaW5nIHRoZSBi YXNlIHR5cGUgb2YgdGhlIHJhbmdlIG9yIHBlcmlvZCBmcm9tCisgICAgICA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cmFuZ2Vfb3JfcGVyaW9kX25hbWU8L3JlcGxhY2VhYmxl Pi4gQQorICAgICAgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4gaGVyZSBpbmRpY2F0ZXMgYW4g dXBkYXRlIHdob3NlIGJlZ2lubmluZyBpcworICAgICAgdW5ib3VuZGVkIChhcyB3aXRoIHJh bmdlIHR5cGVzKS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxp c3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+ZW5kX3RpbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGxhdGVzdCB0aW1lIChleGNsdXNp dmUpIHRvIGNoYW5nZSBpbiBhIHRlbXBvcmFsIHVwZGF0ZS4KKyAgICAgIFRoaXMgbXVzdCBi ZSBhIHZhbHVlIG1hdGNoaW5nIHRoZSBiYXNlIHR5cGUgb2YgdGhlIHJhbmdlIG9yIHBlcmlv ZCBmcm9tCisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmFuZ2Vfb3Jf cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPi4gQQorICAgICAgPGxpdGVyYWw+TlVMTDwvbGl0 ZXJhbD4gaGVyZSBpbmRpY2F0ZXMgYW4gdXBkYXRlIHdob3NlIGVuZCBpcyB1bmJvdW5kZWQK KyAgICAgIChhcyB3aXRoIHJhbmdlIHR5cGVzKS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8 dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxh Y2VhYmxlPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvdHJpZ2dlci5zZ21sIGIvZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbAppbmRleCAzMTYy NjUzNmEyZS4uZjNlNjZkYTAxNGEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC90cmlnZ2Vy LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbApAQCAtNTQ2LDE3ICs1NDYs MTggQEAgQ0FMTEVEX0FTX1RSSUdHRVIoZmNpbmZvKQogPHByb2dyYW1saXN0aW5nPgogdHlw ZWRlZiBzdHJ1Y3QgVHJpZ2dlckRhdGEKIHsKLSAgICBOb2RlVGFnICAgICAgICAgIHR5cGU7 Ci0gICAgVHJpZ2dlckV2ZW50ICAgICB0Z19ldmVudDsKLSAgICBSZWxhdGlvbiAgICAgICAg IHRnX3JlbGF0aW9uOwotICAgIEhlYXBUdXBsZSAgICAgICAgdGdfdHJpZ3R1cGxlOwotICAg IEhlYXBUdXBsZSAgICAgICAgdGdfbmV3dHVwbGU7Ci0gICAgVHJpZ2dlciAgICAgICAgICp0 Z190cmlnZ2VyOwotICAgIFR1cGxlVGFibGVTbG90ICAqdGdfdHJpZ3Nsb3Q7Ci0gICAgVHVw bGVUYWJsZVNsb3QgICp0Z19uZXdzbG90OwotICAgIFR1cGxlc3RvcmVzdGF0ZSAqdGdfb2xk dGFibGU7Ci0gICAgVHVwbGVzdG9yZXN0YXRlICp0Z19uZXd0YWJsZTsKLSAgICBjb25zdCBC aXRtYXBzZXQgKnRnX3VwZGF0ZWRjb2xzOworICAgIE5vZGVUYWcgICAgICAgICAgICB0eXBl OworICAgIFRyaWdnZXJFdmVudCAgICAgICB0Z19ldmVudDsKKyAgICBSZWxhdGlvbiAgICAg ICAgICAgdGdfcmVsYXRpb247CisgICAgSGVhcFR1cGxlICAgICAgICAgIHRnX3RyaWd0dXBs ZTsKKyAgICBIZWFwVHVwbGUgICAgICAgICAgdGdfbmV3dHVwbGU7CisgICAgVHJpZ2dlciAg ICAgICAgICAgKnRnX3RyaWdnZXI7CisgICAgVHVwbGVUYWJsZVNsb3QgICAgKnRnX3RyaWdz bG90OworICAgIFR1cGxlVGFibGVTbG90ICAgICp0Z19uZXdzbG90OworICAgIFR1cGxlc3Rv cmVzdGF0ZSAgICp0Z19vbGR0YWJsZTsKKyAgICBUdXBsZXN0b3Jlc3RhdGUgICAqdGdfbmV3 dGFibGU7CisgICAgY29uc3QgQml0bWFwc2V0ICAgKnRnX3VwZGF0ZWRjb2xzOworICAgIEZv clBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbDsKIH0gVHJpZ2dlckRhdGE7CiA8L3Byb2dy YW1saXN0aW5nPgogCkBAIC04MjQsNiArODI1LDQzIEBAIHR5cGVkZWYgc3RydWN0IFRyaWdn ZXIKICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHN0cnVjdGZpZWxk PnRnX3RlbXBvcmFsPC9zdHJ1Y3RmaWVsZD48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+Cisg ICAgICAgPHBhcmE+CisgICAgICAgIFNldCBmb3IgPGxpdGVyYWw+VVBEQVRFPC9saXRlcmFs PiBhbmQgPGxpdGVyYWw+REVMRVRFPC9saXRlcmFsPiBxdWVyaWVzCisgICAgICAgIHRoYXQg dXNlIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiwgb3RoZXJ3aXNlIDxzeW1i b2w+TlVMTDwvc3ltYm9sPi4KKyAgICAgICAgQ29udGFpbnMgYSBwb2ludGVyIHRvIGEgc3Ry dWN0dXJlIG9mIHR5cGUKKyAgICAgICAgPHN0cnVjdG5hbWU+Rm9yUG9ydGlvbk9mU3RhdGU8 L3N0cnVjdG5hbWU+LCBkZWZpbmVkIGluCisgICAgICAgIDxmaWxlbmFtZT5ub2Rlcy9leGVj bm9kZXMuaDwvZmlsZW5hbWU+OgorCis8cHJvZ3JhbWxpc3Rpbmc+Cit0eXBlZGVmIHN0cnVj dCBGb3JQb3J0aW9uT2ZTdGF0ZQoreworICAgIE5vZGVUYWcgdHlwZTsKKworICAgIGNoYXIg ICAqZnBfcmFuZ2VOYW1lOyAgICAgICAvKiB0aGUgY29sdW1uL1BFUklPRCBuYW1lZCBpbiBG T1IgUE9SVElPTiBPRiAqLworICAgIE9pZCAgICAgZnBfcmFuZ2VUeXBlOyAgICAgICAvKiB0 aGUgdHlwZSBvZiB0aGUgRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lvbiAqLworICAgIGJvb2wg ICAgZnBfaGFzUGVyaW9kOyAgICAgICAvKiB0cnVlIGlmZiB0aGlzIGlzIGEgUEVSSU9EIG5v dCBhIHJhbmdlICovCisgICAgY2hhciAgICpmcF9wZXJpb2RTdGFydE5hbWU7IC8qIHRoZSBQ RVJJT0QncyBzdGFydCBjb2x1bW4gKi8KKyAgICBjaGFyICAgKmZwX3BlcmlvZEVuZE5hbWU7 ICAgLyogdGhlIFBFUklPRCdzIGVuZCBjb2x1bW4gKi8KKyAgICBEYXR1bSAgIGZwX3Rhcmdl dFJhbmdlOyAgICAgLyogdGhlIHJhbmdlIGZyb20gRk9SIFBPUlRJT04gT0YgKi8KK30gRm9y UG9ydGlvbk9mU3RhdGU7Cis8L3Byb2dyYW1saXN0aW5nPgorCisgICAgICAgd2hlcmUgPHN0 cnVjdGZpZWxkPmZwX3JhbmdlTmFtZTwvc3RydWN0ZmllbGQ+IGlzIHRoZSBwZXJpb2Qgb3Ig cmFuZ2UKKyAgICAgICBjb2x1bW4gbmFtZWQgaW4gdGhlIDxsaXRlcmFsPkZPUiBQT1JUSU9O IE9GPC9saXRlcmFsPiBjbGF1c2UsCisgICAgICAgPHN0cnVjdGZpZWxkPmZwX3JhbmdlVHlw ZTwvc3RydWN0ZmllbGQ+IGlzIGl0cyByYW5nZSB0eXBlLAorICAgICAgIDxzdHJ1Y3RmaWVs ZD5mcF9oYXNQZXJpb2Q8L3N0cnVjdGZpZWxkPiBpbmRpY2F0ZXMgd2hldGhlciBhIHBlcmlv ZCB3YXMgdXNlZAorICAgICAgIG9yIGEgcmFuZ2UgY29sdW1uLCA8c3RydWN0ZmllbGQ+ZnBf cGVyaW9kU3RhcnROYW1lPC9zdHJ1Y3RmaWVsZD4gYW5kCisgICAgICAgPHN0cnVjdGZpZWxk PmZwX3BlcmlvZEVuZE5hbWU8L3N0cnVjdGZpZWxkPiBhcmUgdGhlIG5hbWVzIG9mIHRoZSBw ZXJpb2QncworICAgICAgIHN0YXJ0IGFuZCBlbmQgY29sdW1ucyAob3IgPHN5bWJvbD5OVUxM PC9zeW1ib2w+IGlmIGEgcmFuZ2UgY29sdW1uIHdhcyB1c2VkKSwKKyAgICAgICBhbmQgPHN0 cnVjdGZpZWxkPmZwX3RhcmdldFJhbmdlPC9zdHJ1Y3RmaWVsZD4gaXMgYSByYW5nZXR5cGUg dmFsdWUgY3JlYXRlZAorICAgICAgIGJ5IGV2YWx1YXRpbmcgdGhlIDxsaXRlcmFsPkZPUiBQ T1JUSU9OIE9GPC9saXRlcmFsPiBib3VuZHMuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9s aXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CiAgICAgPC92YXJpYWJsZWxpc3Q+CiAg ICA8L3BhcmE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2 YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMKaW5k ZXggMGEyMzk1ZmJhZjYuLjRlYjZmZjQyODM2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lz dC9naXN0dmFsaWRhdGUuYwpAQCAtMjAxLDcgKzIwMSw3IEBAIGdpc3R2YWxpZGF0ZShPaWQg b3BjbGFzc29pZCkKIAkJfQogCiAJCS8qIEdpU1Qgc3VwcG9ydHMgT1JERVIgQlkgb3BlcmF0 b3JzICovCi0JCWlmIChvcHJmb3JtLT5hbW9wcHVycG9zZSAhPSBBTU9QX1NFQVJDSCkKKwkJ aWYgKG9wcmZvcm0tPmFtb3BwdXJwb3NlID09IEFNT1BfT1JERVIpCiAJCXsKIAkJCS8qIC4u LiBidXQgbXVzdCBoYXZlIG1hdGNoaW5nIGRpc3RhbmNlIHByb2MgKi8KIAkJCWlmICghT2lk SXNWYWxpZChnZXRfb3BmYW1pbHlfcHJvYyhvcGZhbWlseW9pZCwKQEAgLTIyOCwyNCArMjI4 LDM4IEBAIGdpc3R2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJCQlyZXN1bHQgPSBmYWxz ZTsKIAkJCX0KIAkJfQotCQllbHNlCisJCWVsc2UgaWYgKG9wcmZvcm0tPmFtb3BwdXJwb3Nl ID09IEFNT1BfU0VBUkNIKQogCQl7CiAJCQkvKiBTZWFyY2ggb3BlcmF0b3JzIG11c3QgYWx3 YXlzIHJldHVybiBib29sICovCiAJCQlvcF9yZXR0eXBlID0gQk9PTE9JRDsKIAkJfQotCi0J CS8qIENoZWNrIG9wZXJhdG9yIHNpZ25hdHVyZSAqLwotCQlpZiAoIWNoZWNrX2Ftb3Bfc2ln bmF0dXJlKG9wcmZvcm0tPmFtb3BvcHIsIG9wX3JldHR5cGUsCi0JCQkJCQkJCSAgb3ByZm9y bS0+YW1vcGxlZnR0eXBlLAotCQkJCQkJCQkgIG9wcmZvcm0tPmFtb3ByaWdodHR5cGUpKQor CQllbHNlCiAJCXsKKwkJCS8qIE5vdGhpbmcgZWxzZSBpdCBjb3VsZCBiZSAqLwogCQkJZXJl cG9ydChJTkZPLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklO SVRJT04pLAotCQkJCQkgZXJybXNnKCJvcGVyYXRvciBmYW1pbHkgXCIlc1wiIG9mIGFjY2Vz cyBtZXRob2QgJXMgY29udGFpbnMgb3BlcmF0b3IgJXMgd2l0aCB3cm9uZyBzaWduYXR1cmUi LAotCQkJCQkJCW9wZmFtaWx5bmFtZSwgImdpc3QiLAotCQkJCQkJCWZvcm1hdF9vcGVyYXRv cihvcHJmb3JtLT5hbW9wb3ByKSkpKTsKKwkJCQkJIGVycm1zZygib3BlcmF0b3IgZmFtaWx5 IFwiJXNcIiBvZiBhY2Nlc3MgbWV0aG9kICVzIGNvbnRhaW5zIHVua25vd24gcHVycG9zZSAl YyBmb3Igb3BlcmF0b3IgJXMiLAorCQkJCQkJIG9wZmFtaWx5bmFtZSwgImdpc3QiLCBvcHJm b3JtLT5hbW9wcHVycG9zZSwKKwkJCQkJCSBmb3JtYXRfb3BlcmF0b3Iob3ByZm9ybS0+YW1v cG9wcikpKSk7CisJCQlvcF9yZXR0eXBlID0gSW52YWxpZE9pZDsKIAkJCXJlc3VsdCA9IGZh bHNlOwogCQl9CisKKwkJLyogQ2hlY2sgb3BlcmF0b3Igc2lnbmF0dXJlICovCisJCWlmIChP aWRJc1ZhbGlkKG9wX3JldHR5cGUpKQorCQl7CisJCQlpZiAoIWNoZWNrX2Ftb3Bfc2lnbmF0 dXJlKG9wcmZvcm0tPmFtb3BvcHIsIG9wX3JldHR5cGUsCisJCQkJCQkJCQkgIG9wcmZvcm0t PmFtb3BsZWZ0dHlwZSwKKwkJCQkJCQkJCSAgb3ByZm9ybS0+YW1vcHJpZ2h0dHlwZSkpCisJ CQl7CisJCQkJZXJlcG9ydChJTkZPLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElE X09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJCSBlcnJtc2coIm9wZXJhdG9yIGZhbWlseSBc IiVzXCIgb2YgYWNjZXNzIG1ldGhvZCAlcyBjb250YWlucyBvcGVyYXRvciAlcyB3aXRoIHdy b25nIHNpZ25hdHVyZSIsCisJCQkJCQkJCW9wZmFtaWx5bmFtZSwgImdpc3QiLAorCQkJCQkJ CQlmb3JtYXRfb3BlcmF0b3Iob3ByZm9ybS0+YW1vcG9wcikpKSk7CisJCQkJcmVzdWx0ID0g ZmFsc2U7CisJCQl9CisJCX0KIAl9CiAKIAkvKiBOb3cgY2hlY2sgZm9yIGluY29uc2lzdGVu dCBncm91cHMgb2Ygb3BlcmF0b3JzL2Z1bmN0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jCmluZGV4IDU3NzFhYWJmNDBhLi4wNDg3YjA3NzQ2ZCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4 cGxhaW4uYwpAQCAtNDE2OCw3ICs0MTY4LDcgQEAgRXhwbGFpblRhcmdldFJlbChQbGFuICpw bGFuLCBJbmRleCBydGksIEV4cGxhaW5TdGF0ZSAqZXMpCiAKIAkJCQkJCW9iamVjdG5hbWUg PSBnZXRfZnVuY19uYW1lKGZ1bmNpZCk7CiAJCQkJCQlpZiAoZXMtPnZlcmJvc2UpCi0JCQkJ CQkJbmFtZXNwYWNlID0gZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAoZ2V0X2Z1bmNfbmFt ZXNwYWNlKGZ1bmNpZCkpOworCQkJCQkJCW5hbWVzcGFjZSA9IGdldF9uYW1lc3BhY2VfbmFt ZV9vcl90ZW1wKGdldF9mdW5jX25hbWVzcGFjZShmdW5jaWQsIHRydWUpKTsKIAkJCQkJfQog CQkJCX0KIAkJCQlvYmplY3R0YWcgPSAiRnVuY3Rpb24gTmFtZSI7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3RhYmxlY21kcy5jCmluZGV4IGIxNzE2Y2RiY2UxLi44ZGE4MzEyNTI2MiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTEyMzI0LDYgKzEyMzI0LDcgQEAgdmFsaWRhdGVG b3JlaWduS2V5Q29uc3RyYWludChjaGFyICpjb25uYW1lLAogCQl0cmlnZGF0YS50Z190cmln dHVwbGUgPSBFeGVjRmV0Y2hTbG90SGVhcFR1cGxlKHNsb3QsIGZhbHNlLCBOVUxMKTsKIAkJ dHJpZ2RhdGEudGdfdHJpZ3Nsb3QgPSBzbG90OwogCQl0cmlnZGF0YS50Z190cmlnZ2VyID0g JnRyaWc7CisJCXRyaWdkYXRhLnRnX3RlbXBvcmFsID0gTlVMTDsKIAogCQlmY2luZm8tPmNv bnRleHQgPSAoTm9kZSAqKSAmdHJpZ2RhdGE7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwpp bmRleCAyOWQzMGJmYjZmNy4uMzU3OGZiMGE0ZDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2Vy LmMKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNs dWRlICJ1dGlscy9hY2wuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1 ZGUgInV0aWxzL2RhdHVtLmgiCiAjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKICNpbmNs dWRlICJ1dGlscy9ndWNfaG9va3MuaCIKICNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgpAQCAt MjYzMiw2ICsyNjMzLDcgQEAgRXhlY0JTRGVsZXRlVHJpZ2dlcnMoRVN0YXRlICplc3RhdGUs IFJlc3VsdFJlbEluZm8gKnJlbGluZm8pCiAJTG9jVHJpZ2dlckRhdGEudGdfZXZlbnQgPSBU UklHR0VSX0VWRU5UX0RFTEVURSB8CiAJCVRSSUdHRVJfRVZFTlRfQkVGT1JFOwogCUxvY1Ry aWdnZXJEYXRhLnRnX3JlbGF0aW9uID0gcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjOworCUxv Y1RyaWdnZXJEYXRhLnRnX3RlbXBvcmFsID0gcmVsaW5mby0+cmlfZm9yUG9ydGlvbk9mOwog CWZvciAoaSA9IDA7IGkgPCB0cmlnZGVzYy0+bnVtdHJpZ2dlcnM7IGkrKykKIAl7CiAJCVRy aWdnZXIgICAgKnRyaWdnZXIgPSAmdHJpZ2Rlc2MtPnRyaWdnZXJzW2ldOwpAQCAtMjczMSw2 ICsyNzMzLDcgQEAgRXhlY0JSRGVsZXRlVHJpZ2dlcnMoRVN0YXRlICplc3RhdGUsIEVQUVN0 YXRlICplcHFzdGF0ZSwKIAkJVFJJR0dFUl9FVkVOVF9ST1cgfAogCQlUUklHR0VSX0VWRU5U X0JFRk9SRTsKIAlMb2NUcmlnZ2VyRGF0YS50Z19yZWxhdGlvbiA9IHJlbGluZm8tPnJpX1Jl bGF0aW9uRGVzYzsKKwlMb2NUcmlnZ2VyRGF0YS50Z190ZW1wb3JhbCA9IHJlbGluZm8tPnJp X2ZvclBvcnRpb25PZjsKIAlmb3IgKGkgPSAwOyBpIDwgdHJpZ2Rlc2MtPm51bXRyaWdnZXJz OyBpKyspCiAJewogCQlIZWFwVHVwbGUJbmV3dHVwbGU7CkBAIC0yODIyLDYgKzI4MjUsNyBA QCBFeGVjSVJEZWxldGVUcmlnZ2VycyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAq cmVsaW5mbywKIAkJVFJJR0dFUl9FVkVOVF9ST1cgfAogCQlUUklHR0VSX0VWRU5UX0lOU1RF QUQ7CiAJTG9jVHJpZ2dlckRhdGEudGdfcmVsYXRpb24gPSByZWxpbmZvLT5yaV9SZWxhdGlv bkRlc2M7CisJTG9jVHJpZ2dlckRhdGEudGdfdGVtcG9yYWwgPSByZWxpbmZvLT5yaV9mb3JQ b3J0aW9uT2Y7CiAKIAlFeGVjRm9yY2VTdG9yZUhlYXBUdXBsZSh0cmlndHVwbGUsIHNsb3Qs IGZhbHNlKTsKIApAQCAtMjg4NSw2ICsyODg5LDcgQEAgRXhlY0JTVXBkYXRlVHJpZ2dlcnMo RVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8pCiAJCVRSSUdHRVJfRVZF TlRfQkVGT1JFOwogCUxvY1RyaWdnZXJEYXRhLnRnX3JlbGF0aW9uID0gcmVsaW5mby0+cmlf UmVsYXRpb25EZXNjOwogCUxvY1RyaWdnZXJEYXRhLnRnX3VwZGF0ZWRjb2xzID0gdXBkYXRl ZENvbHM7CisJTG9jVHJpZ2dlckRhdGEudGdfdGVtcG9yYWwgPSByZWxpbmZvLT5yaV9mb3JQ b3J0aW9uT2Y7CiAJZm9yIChpID0gMDsgaSA8IHRyaWdkZXNjLT5udW10cmlnZ2VyczsgaSsr KQogCXsKIAkJVHJpZ2dlciAgICAqdHJpZ2dlciA9ICZ0cmlnZGVzYy0+dHJpZ2dlcnNbaV07 CkBAIC0zMDIwLDYgKzMwMjUsNyBAQCBFeGVjQlJVcGRhdGVUcmlnZ2VycyhFU3RhdGUgKmVz dGF0ZSwgRVBRU3RhdGUgKmVwcXN0YXRlLAogCQlUUklHR0VSX0VWRU5UX1JPVyB8CiAJCVRS SUdHRVJfRVZFTlRfQkVGT1JFOwogCUxvY1RyaWdnZXJEYXRhLnRnX3JlbGF0aW9uID0gcmVs aW5mby0+cmlfUmVsYXRpb25EZXNjOworCUxvY1RyaWdnZXJEYXRhLnRnX3RlbXBvcmFsID0g cmVsaW5mby0+cmlfZm9yUG9ydGlvbk9mOwogCXVwZGF0ZWRDb2xzID0gRXhlY0dldEFsbFVw ZGF0ZWRDb2xzKHJlbGluZm8sIGVzdGF0ZSk7CiAJTG9jVHJpZ2dlckRhdGEudGdfdXBkYXRl ZGNvbHMgPSB1cGRhdGVkQ29sczsKIAlmb3IgKGkgPSAwOyBpIDwgdHJpZ2Rlc2MtPm51bXRy aWdnZXJzOyBpKyspCkBAIC0zMTY5LDYgKzMxNzUsNyBAQCBFeGVjSVJVcGRhdGVUcmlnZ2Vy cyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJVFJJR0dFUl9F VkVOVF9ST1cgfAogCQlUUklHR0VSX0VWRU5UX0lOU1RFQUQ7CiAJTG9jVHJpZ2dlckRhdGEu dGdfcmVsYXRpb24gPSByZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2M7CisJTG9jVHJpZ2dlckRh dGEudGdfdGVtcG9yYWwgPSByZWxpbmZvLT5yaV9mb3JQb3J0aW9uT2Y7CiAKIAlFeGVjRm9y Y2VTdG9yZUhlYXBUdXBsZSh0cmlndHVwbGUsIG9sZHNsb3QsIGZhbHNlKTsKIApAQCAtMzYz NSw2ICszNjQyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQWZ0ZXJUcmlnZ2VyU2hhcmVkRGF0YQog CU9pZAkJCWF0c190Z29pZDsJCS8qIHRoZSB0cmlnZ2VyJ3MgSUQgKi8KIAlPaWQJCQlhdHNf cmVsaWQ7CQkvKiB0aGUgcmVsYXRpb24gaXQncyBvbiAqLwogCUNvbW1hbmRJZAlhdHNfZmly aW5nX2lkOwkvKiBJRCBmb3IgZmlyaW5nIGN5Y2xlICovCisJRm9yUG9ydGlvbk9mU3RhdGUg KmZvcl9wb3J0aW9uX29mOwkvKiB0aGUgRk9SIFBPUlRJT04gT0YgY2xhdXNlICovCiAJc3Ry dWN0IEFmdGVyVHJpZ2dlcnNUYWJsZURhdGEgKmF0c190YWJsZTsJLyogdHJhbnNpdGlvbiB0 YWJsZSBhY2Nlc3MgKi8KIAlCaXRtYXBzZXQgICphdHNfbW9kaWZpZWRjb2xzOwkvKiBtb2Rp ZmllZCBjb2x1bW5zICovCiB9IEFmdGVyVHJpZ2dlclNoYXJlZERhdGE7CkBAIC0zOTA4LDYg KzM5MTYsNyBAQCBzdGF0aWMgU2V0Q29uc3RyYWludFN0YXRlIFNldENvbnN0cmFpbnRTdGF0 ZUNyZWF0ZShpbnQgbnVtYWxsb2MpOwogc3RhdGljIFNldENvbnN0cmFpbnRTdGF0ZSBTZXRD b25zdHJhaW50U3RhdGVDb3B5KFNldENvbnN0cmFpbnRTdGF0ZSBvcmlnc3RhdGUpOwogc3Rh dGljIFNldENvbnN0cmFpbnRTdGF0ZSBTZXRDb25zdHJhaW50U3RhdGVBZGRJdGVtKFNldENv bnN0cmFpbnRTdGF0ZSBzdGF0ZSwKIAkJCQkJCQkJCQkJCQlPaWQgdGdvaWQsIGJvb2wgdGdp c2RlZmVycmVkKTsKK3N0YXRpYyBGb3JQb3J0aW9uT2ZTdGF0ZSAqQ29weUZvclBvcnRpb25P ZlN0YXRlKEZvclBvcnRpb25PZlN0YXRlICpzcmMpOwogc3RhdGljIHZvaWQgY2FuY2VsX3By aW9yX3N0bXRfdHJpZ2dlcnMoT2lkIHJlbGlkLCBDbWRUeXBlIGNtZFR5cGUsIGludCB0Z2V2 ZW50KTsKIAogCkBAIC00MTE3LDYgKzQxMjYsNyBAQCBhZnRlclRyaWdnZXJBZGRFdmVudChB ZnRlclRyaWdnZXJFdmVudExpc3QgKmV2ZW50cywKIAkJCW5ld3NoYXJlZC0+YXRzX3JlbGlk ID09IGV2dHNoYXJlZC0+YXRzX3JlbGlkICYmCiAJCQluZXdzaGFyZWQtPmF0c19ldmVudCA9 PSBldnRzaGFyZWQtPmF0c19ldmVudCAmJgogCQkJbmV3c2hhcmVkLT5hdHNfdGFibGUgPT0g ZXZ0c2hhcmVkLT5hdHNfdGFibGUgJiYKKwkJCW5ld3NoYXJlZC0+Zm9yX3BvcnRpb25fb2Yg PT0gZXZ0c2hhcmVkLT5mb3JfcG9ydGlvbl9vZiAmJgogCQkJbmV3c2hhcmVkLT5hdHNfZmly aW5nX2lkID09IDApCiAJCQlicmVhazsKIAl9CkBAIC00NDg1LDYgKzQ0OTUsNyBAQCBBZnRl clRyaWdnZXJFeGVjdXRlKEVTdGF0ZSAqZXN0YXRlLAogCUxvY1RyaWdnZXJEYXRhLnRnX3Jl bGF0aW9uID0gcmVsOwogCWlmIChUUklHR0VSX0ZPUl9VUERBVEUoTG9jVHJpZ2dlckRhdGEu dGdfdHJpZ2dlci0+dGd0eXBlKSkKIAkJTG9jVHJpZ2dlckRhdGEudGdfdXBkYXRlZGNvbHMg PSBldnRzaGFyZWQtPmF0c19tb2RpZmllZGNvbHM7CisJTG9jVHJpZ2dlckRhdGEudGdfdGVt cG9yYWwgPSBldnRzaGFyZWQtPmZvcl9wb3J0aW9uX29mOwogCiAJTWVtb3J5Q29udGV4dFJl c2V0KHBlcl90dXBsZV9jb250ZXh0KTsKIApAQCAtNjAxOSw2ICs2MDMwLDQzIEBAIEFmdGVy VHJpZ2dlclBlbmRpbmdPblJlbChPaWQgcmVsaWQpCiAJcmV0dXJuIGZhbHNlOwogfQogCisv KiAtLS0tLS0tLS0tCisgKiBGb3JQb3J0aW9uT2ZTdGF0ZSgpCisgKgorICogQ29weXMgYSBG b3JQb3J0aW9uT2ZTdGF0ZSBpbnRvIHRoZSBjdXJyZW50IG1lbW9yeSBjb250ZXh0LgorICov CitzdGF0aWMgRm9yUG9ydGlvbk9mU3RhdGUgKgorQ29weUZvclBvcnRpb25PZlN0YXRlKEZv clBvcnRpb25PZlN0YXRlICpzcmMpCit7CisJRm9yUG9ydGlvbk9mU3RhdGUgKmRzdCA9IE5V TEw7CisJaWYgKHNyYykgeworCQlNZW1vcnlDb250ZXh0IG9sZGN0eDsKKwkJUmFuZ2VUeXBl ICpyOworCQlUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGU7CisKKwkJLyoKKwkJICogTmVlZCB0 byBsaWZ0IHRoZSBGT1IgUE9SVElPTiBPRiBkZXRhaWxzIGludG8gYSBoaWdoZXIgbWVtb3J5 IGNvbnRleHQKKwkJICogYmVjYXVzZSBjYXNjYWRpbmcgZm9yZWlnbiBrZXkgdXBkYXRlL2Rl bGV0ZXMgY2FuIGNhdXNlIHRyaWdnZXJzIHRvIGZpcmUKKwkJICogdHJpZ2dlcnMsIGFuZCB0 aGUgQWZ0ZXJUcmlnZ2VyRXZlbnRzIHdpbGwgb3V0bGl2ZSB0aGUgRlBPCisJCSAqIGRldGFp bHMgb2YgdGhlIG9yaWdpbmFsIHF1ZXJ5LgorCQkgKi8KKwkJb2xkY3R4ID0gTWVtb3J5Q29u dGV4dFN3aXRjaFRvKFRvcFRyYW5zYWN0aW9uQ29udGV4dCk7CisJCWRzdCA9IG1ha2VOb2Rl KEZvclBvcnRpb25PZlN0YXRlKTsKKwkJZHN0LT5mcF9yYW5nZU5hbWUgPSBwc3RyZHVwKHNy Yy0+ZnBfcmFuZ2VOYW1lKTsKKwkJZHN0LT5mcF9yYW5nZVR5cGUgPSBzcmMtPmZwX3Jhbmdl VHlwZTsKKwkJZHN0LT5mcF9oYXNQZXJpb2QgPSBzcmMtPmZwX2hhc1BlcmlvZDsKKwkJZHN0 LT5mcF9yYW5nZUF0dG5vID0gc3JjLT5mcF9yYW5nZUF0dG5vOworCQlkc3QtPmZwX3Blcmlv ZFN0YXJ0QXR0bm8gPSBzcmMtPmZwX3BlcmlvZFN0YXJ0QXR0bm87CisJCWRzdC0+ZnBfcGVy aW9kRW5kQXR0bm8gPSBzcmMtPmZwX3BlcmlvZEVuZEF0dG5vOworCisJCXIgPSBEYXR1bUdl dFJhbmdlVHlwZVAoc3JjLT5mcF90YXJnZXRSYW5nZSk7CisJCXR5cGNhY2hlID0gbG9va3Vw X3R5cGVfY2FjaGUoUmFuZ2VUeXBlR2V0T2lkKHIpLCBUWVBFQ0FDSEVfUkFOR0VfSU5GTyk7 CisJCWRzdC0+ZnBfdGFyZ2V0UmFuZ2UgPSBkYXR1bUNvcHkoc3JjLT5mcF90YXJnZXRSYW5n ZSwgdHlwY2FjaGUtPnR5cGJ5dmFsLCB0eXBjYWNoZS0+dHlwbGVuKTsKKwkJTWVtb3J5Q29u dGV4dFN3aXRjaFRvKG9sZGN0eCk7CisJfQorCXJldHVybiBkc3Q7Cit9CisKIC8qIC0tLS0t LS0tLS0KICAqIEFmdGVyVHJpZ2dlclNhdmVFdmVudCgpCiAgKgpAQCAtNjQzNCw2ICs2NDgy LDcgQEAgQWZ0ZXJUcmlnZ2VyU2F2ZUV2ZW50KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJ bmZvICpyZWxpbmZvLAogCQllbHNlCiAJCQluZXdfc2hhcmVkLmF0c190YWJsZSA9IE5VTEw7 CiAJCW5ld19zaGFyZWQuYXRzX21vZGlmaWVkY29scyA9IGFmdGVyVHJpZ2dlckNvcHlCaXRt YXAobW9kaWZpZWRDb2xzKTsKKwkJbmV3X3NoYXJlZC5mb3JfcG9ydGlvbl9vZiA9IENvcHlG b3JQb3J0aW9uT2ZTdGF0ZShyZWxpbmZvLT5yaV9mb3JQb3J0aW9uT2YpOwogCiAJCWFmdGVy VHJpZ2dlckFkZEV2ZW50KCZhZnRlclRyaWdnZXJzLnF1ZXJ5X3N0YWNrW2FmdGVyVHJpZ2dl cnMucXVlcnlfZGVwdGhdLmV2ZW50cywKIAkJCQkJCQkgJm5ld19ldmVudCwgJm5ld19zaGFy ZWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggNGQ3YzkyZDYzYzEuLmNmMjM5 MTU2ZGE5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAgLTEyNDgsNiArMTI0OCw3 IEBAIEluaXRSZXN1bHRSZWxJbmZvKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJ cmVzdWx0UmVsSW5mby0+cmlfcHJvamVjdFJldHVybmluZyA9IE5VTEw7CiAJcmVzdWx0UmVs SW5mby0+cmlfb25Db25mbGljdEFyYml0ZXJJbmRleGVzID0gTklMOwogCXJlc3VsdFJlbElu Zm8tPnJpX29uQ29uZmxpY3QgPSBOVUxMOworCXJlc3VsdFJlbEluZm8tPnJpX2ZvclBvcnRp b25PZiA9IE5VTEw7CiAJcmVzdWx0UmVsSW5mby0+cmlfUmV0dXJuaW5nU2xvdCA9IE5VTEw7 CiAJcmVzdWx0UmVsSW5mby0+cmlfVHJpZ09sZFNsb3QgPSBOVUxMOwogCXJlc3VsdFJlbElu Zm8tPnJpX1RyaWdOZXdTbG90ID0gTlVMTDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1v ZGlmeVRhYmxlLmMKaW5kZXggNDkxM2U0OTMxOTkuLmEwZjI5Mjg1ZjQ1IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwpAQCAtNjUsOCArNjUsMTAgQEAKICNp bmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdy aXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInV0 aWxzL2FycmF5LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1 dGlscy9kYXR1bS5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUg InV0aWxzL3JlbC5oIgogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKIApAQCAtMTQ0LDYg KzE0NiwxMCBAQCBzdGF0aWMgYm9vbCBFeGVjT25Db25mbGljdFVwZGF0ZShNb2RpZnlUYWJs ZUNvbnRleHQgKmNvbnRleHQsCiAJCQkJCQkJCSBUdXBsZVRhYmxlU2xvdCAqZXhjbHVkZWRT bG90LAogCQkJCQkJCQkgYm9vbCBjYW5TZXRUYWcsCiAJCQkJCQkJCSBUdXBsZVRhYmxlU2xv dCAqKnJldHVybmluZyk7CitzdGF0aWMgdm9pZCBFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJz KE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKKwkJCQkJCQkJCSAgRVN0YXRlICplc3Rh dGUsCisJCQkJCQkJCQkgIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCisJCQkJCQkJ CQkgIEl0ZW1Qb2ludGVyIHR1cGxlaWQpOwogc3RhdGljIFR1cGxlVGFibGVTbG90ICpFeGVj UHJlcGFyZVR1cGxlUm91dGluZyhNb2RpZnlUYWJsZVN0YXRlICptdHN0YXRlLAogCQkJCQkJ CQkJCQkgICBFU3RhdGUgKmVzdGF0ZSwKIAkJCQkJCQkJCQkJICAgUGFydGl0aW9uVHVwbGVS b3V0aW5nICpwcm91dGUsCkBAIC0xNjYsNiArMTcyLDcgQEAgc3RhdGljIFR1cGxlVGFibGVT bG90ICpFeGVjTWVyZ2VNYXRjaGVkKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKIHN0 YXRpYyBUdXBsZVRhYmxlU2xvdCAqRXhlY01lcmdlTm90TWF0Y2hlZChNb2RpZnlUYWJsZUNv bnRleHQgKmNvbnRleHQsCiAJCQkJCQkJCQkJICAgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVs SW5mbywKIAkJCQkJCQkJCQkgICBib29sIGNhblNldFRhZyk7CitzdGF0aWMgdm9pZCBFeGVj U2V0dXBUcmFuc2l0aW9uQ2FwdHVyZVN0YXRlKE1vZGlmeVRhYmxlU3RhdGUgKm10c3RhdGUs IEVTdGF0ZSAqZXN0YXRlKTsKIAogCiAvKgpAQCAtMTIxMSw2ICsxMjE4LDE2OSBAQCBFeGVj SW5zZXJ0KE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKIAlyZXR1cm4gcmVzdWx0Owog fQogCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJRXhlY0ZvclBvcnRpb25PZkxlZnRvdmVycworICoK KyAqCQlJbnNlcnQgdHVwbGVzIGZvciB0aGUgdW50b3VjaGVkIHBvcnRpb24gb2YgYSByb3cg aW4gYSBGT1IKKyAqCQlQT1JUSU9OIE9GIFVQREFURS9ERUxFVEUKKyAqIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLworc3RhdGljIHZvaWQKK0V4ZWNGb3JQb3J0aW9uT2ZMZWZ0b3ZlcnMoTW9kaWZ5VGFi bGVDb250ZXh0ICpjb250ZXh0LAorCQkJCQkJICBFU3RhdGUgKmVzdGF0ZSwKKwkJCQkJCSAg UmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKKwkJCQkJCSAgSXRlbVBvaW50ZXIgdHVw bGVpZCkKK3sKKwlNb2RpZnlUYWJsZVN0YXRlICptdHN0YXRlID0gY29udGV4dC0+bXRzdGF0 ZTsKKwlNb2RpZnlUYWJsZSAqbm9kZSA9IChNb2RpZnlUYWJsZSAqKSBtdHN0YXRlLT5wcy5w bGFuOworCUZvclBvcnRpb25PZkV4cHIgKmZvclBvcnRpb25PZiA9IChGb3JQb3J0aW9uT2ZF eHByICopIG5vZGUtPmZvclBvcnRpb25PZjsKKwlBdHRyTnVtYmVyCXJhbmdlQXR0bm87CisJ RGF0dW0Jb2xkUmFuZ2U7CisJYm9vbCBpc051bGwgPSBmYWxzZTsKKwlUeXBlQ2FjaGVFbnRy eSAqdHlwY2FjaGU7CisJRm9yUG9ydGlvbk9mU3RhdGUgKmZwb1N0YXRlID0gcmVzdWx0UmVs SW5mby0+cmlfZm9yUG9ydGlvbk9mOworCVR1cGxlVGFibGVTbG90ICpvbGR0dXBsZVNsb3Qg PSBmcG9TdGF0ZS0+ZnBfRXhpc3Rpbmc7CisJVHVwbGVUYWJsZVNsb3QgKmxlZnRvdmVyU2xv dCA9IGZwb1N0YXRlLT5mcF9MZWZ0b3ZlcjsKKwlUdXBsZUNvbnZlcnNpb25NYXAgKm1hcCA9 IE5VTEw7CisJSGVhcFR1cGxlIG9sZHR1cGxlID0gTlVMTDsKKwlDbWRUeXBlCW9sZE9wZXJh dGlvbjsKKwlUcmFuc2l0aW9uQ2FwdHVyZVN0YXRlICpvbGRUY3M7CisJRm1nckluZm8gZmxp bmZvOworCVJldHVyblNldEluZm8gcnNpOworCWJvb2wgZGlkSW5pdCA9IGZhbHNlOworCWJv b2wgc2hvdWxkRnJlZSA9IGZhbHNlOworCUxPQ0FMX0ZDSU5GTyhmY2luZm8sIDIpOworCisJ LyoKKwkgKiBHZXQgdGhlIHJhbmdlIG9mIHRoZSBvbGQgcHJlLVVQREFURS9ERUxFVEUgdHVw bGUsCisJICogc28gd2UgY2FuIGludGVyc2VjdCBpdCB3aXRoIHRoZSBGT1IgUE9SVElPTiBP RiB0YXJnZXQKKwkgKiBhbmQgc2VlIGlmIHRoZXJlIGFyZSBhbnkgImxlZnRvdmVycyIgdG8g aW5zZXJ0LgorCSAqCisJICogV2UgaGF2ZSBhbHJlYWR5IGxvY2tlZCB0aGUgdHVwbGUgaW4g RXhlY1VwZGF0ZS9FeGVjRGVsZXRlCisJICogYW5kIGl0IGhhcyBwYXNzZWQgRXZhbFBsYW5R dWFsLgorCSAqIE1ha2Ugc3VyZSB3ZSdyZSBsb29raW5nIGF0IHRoZSBtb3N0IHJlY2VudCB2 ZXJzaW9uLgorCSAqIE90aGVyd2lzZSBjb25jdXJyZW50IHVwZGF0ZXMgb2YgdGhlIHNhbWUg dHVwbGUgaW4gUkVBRCBDT01NSVRURUQKKwkgKiBjb3VsZCBpbnNlcnQgY29uZmxpY3Rpbmcg ImxlZnRvdmVycyIuCisJICovCisJaWYgKCF0YWJsZV90dXBsZV9mZXRjaF9yb3dfdmVyc2lv bihyZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2MsIHR1cGxlaWQsIFNuYXBzaG90QW55 LCBvbGR0dXBsZVNsb3QpKQorCQllbG9nKEVSUk9SLCAiZmFpbGVkIHRvIGZldGNoIHR1cGxl IGZvciBGT1IgUE9SVElPTiBPRiIpOworCisJLyoKKwkgKiBHZXQgdGhlIG9sZCByYW5nZSBv ZiB0aGUgcmVjb3JkIGJlaW5nIHVwZGF0ZWQuCisJICogTXVzdCByZWFkIHdpdGggdGhlIGF0 dG5vIG9mIHRoZSBsZWFmIHBhcnRpdGlvbiBiZWluZyB1cGRhdGVkCisJICovCisKKwlyYW5n ZUF0dG5vID0gZm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0bm87CisJaWYgKHJlc3Vs dFJlbEluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvKQorCQltYXAgPSBFeGVjR2V0Q2hpbGRU b1Jvb3RNYXAocmVzdWx0UmVsSW5mbyk7CisJaWYgKG1hcCAhPSBOVUxMKQorCQlyYW5nZUF0 dG5vID0gbWFwLT5hdHRyTWFwLT5hdHRudW1zW3JhbmdlQXR0bm8gLSAxXTsKKwlvbGRSYW5n ZSA9IHNsb3RfZ2V0YXR0cihvbGR0dXBsZVNsb3QsIHJhbmdlQXR0bm8sICZpc051bGwpOwor CisJaWYgKGlzTnVsbCkKKwkJZWxvZyhFUlJPUiwgImZvdW5kIGEgTlVMTCByYW5nZSBpbiBh IHRlbXBvcmFsIHRhYmxlIik7CisKKwkvKgorCSAqIEdldCB0aGUgcmFuZ2UncyB0eXBlIGNh Y2hlIGVudHJ5LiBUaGlzIGlzIHdvcnRoIGNhY2hpbmcgZm9yIHRoZSB3aG9sZSBVUERBVEUK KwkgKiBhcyByYW5nZSBmdW5jdGlvbnMgZG8uCisJICovCisKKwl0eXBjYWNoZSA9IGZwb1N0 YXRlLT5mcF9sZWZ0b3ZlcnN0eXBjYWNoZTsKKwlpZiAodHlwY2FjaGUgPT0gTlVMTCkKKwl7 CisJCXR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2FjaGUoZm9yUG9ydGlvbk9mLT5yYW5nZVR5 cGUsIDApOworCQlmcG9TdGF0ZS0+ZnBfbGVmdG92ZXJzdHlwY2FjaGUgPSB0eXBjYWNoZTsK Kwl9CisKKwkvKgorCSAqIEdldCB0aGUgcmFuZ2VzIHRvIHRoZSBsZWZ0L3JpZ2h0IG9mIHRo ZSB0YXJnZXRlZCByYW5nZS4KKwkgKiBXZSBjYWxsIGEgU0VUT0Ygc3VwcG9ydCBmdW5jdGlv biBhbmQgaW5zZXJ0IGFzIG1hbnkgbGVmdG92ZXJzCisJICogYXMgaXQgZ2l2ZXMgdXMuIEFs dGhvdWdoIHJhbmdldHlwZXMgaGF2ZSAwLzEvMiBsZWZ0b3ZlcnMsCisJICogbXVsdGlyYW5n ZXMgaGF2ZSAwLzEsIGFuZCBvdGhlciB0eXBlcyBtYXkgaGF2ZSBtb3JlLgorCSAqLworCisJ Zm1ncl9pbmZvKGZvclBvcnRpb25PZi0+d2l0aG91dFBvcnRpb25Qcm9jLCAmZmxpbmZvKTsK Kwlyc2kudHlwZSA9IFRfUmV0dXJuU2V0SW5mbzsKKwlyc2kuZWNvbnRleHQgPSBtdHN0YXRl LT5wcy5wc19FeHByQ29udGV4dDsKKwlyc2kuZXhwZWN0ZWREZXNjID0gTlVMTDsKKwlyc2ku YWxsb3dlZE1vZGVzID0gKGludCkgKFNGUk1fVmFsdWVQZXJDYWxsKTsKKwlyc2kucmV0dXJu TW9kZSA9IFNGUk1fVmFsdWVQZXJDYWxsOworCXJzaS5zZXRSZXN1bHQgPSBOVUxMOworCXJz aS5zZXREZXNjID0gTlVMTDsKKworCUluaXRGdW5jdGlvbkNhbGxJbmZvRGF0YSgqZmNpbmZv LCAmZmxpbmZvLCAyLCBJbnZhbGlkT2lkLCBOVUxMLCAoTm9kZSAqKSAmcnNpKTsKKwlmY2lu Zm8tPmFyZ3NbMF0udmFsdWUgPSBvbGRSYW5nZTsKKwlmY2luZm8tPmFyZ3NbMF0uaXNudWxs ID0gZmFsc2U7CisJZmNpbmZvLT5hcmdzWzFdLnZhbHVlID0gZnBvU3RhdGUtPmZwX3Rhcmdl dFJhbmdlOworCWZjaW5mby0+YXJnc1sxXS5pc251bGwgPSBmYWxzZTsKKworCXdoaWxlICh0 cnVlKQorCXsKKwkJRGF0dW0gbGVmdG92ZXIgPSBGdW5jdGlvbkNhbGxJbnZva2UoZmNpbmZv KTsKKworCQkvKiBBcmUgd2UgZG9uZT8gKi8KKwkJaWYgKHJzaS5pc0RvbmUgPT0gRXhwckVu ZFJlc3VsdCkKKwkJCWJyZWFrOworCisJCWlmIChmY2luZm8tPmlzbnVsbCkKKwkJCWVsb2co RVJST1IsICJHb3QgYSBudWxsIGZyb20gd2l0aG91dF9wb3J0aW9uIGZ1bmN0aW9uIik7CisK KwkJaWYgKCFkaWRJbml0KQorCQl7CisJCQkvKgorCQkJICogTWFrZSBhIGNvcHkgb2YgdGhl IHByZS1VUERBVEUgcm93LgorCQkJICogVGhlbiB3ZSdsbCBvdmVyd3JpdGUgdGhlIHJhbmdl IGNvbHVtbiBiZWxvdy4KKwkJCSAqIENvbnZlcnQgb2xkdHVwbGUgdG8gdGhlIGJhc2UgdGFi bGUncyBmb3JtYXQgaWYgbmVjZXNzYXJ5LgorCQkJICogV2UgbmVlZCB0byBpbnNlcnQgbGVm dG92ZXJzIHRocm91Z2ggdGhlIHJvb3QgcGFydGl0aW9uCisJCQkgKiBzbyB0aGV5IGdldCBy b3V0ZWQgY29ycmVjdGx5LgorCQkJICovCisJCQlpZiAobWFwICE9IE5VTEwpCisJCQkJbGVm dG92ZXJTbG90ID0gZXhlY3V0ZV9hdHRyX21hcF9zbG90KG1hcC0+YXR0ck1hcCwKKwkJCQkJ CQkJCQkJCQkgb2xkdHVwbGVTbG90LAorCQkJCQkJCQkJCQkJCSBsZWZ0b3ZlclNsb3QpOwor CQkJZWxzZQorCQkJeworCQkJCW9sZHR1cGxlID0gRXhlY0ZldGNoU2xvdEhlYXBUdXBsZShv bGR0dXBsZVNsb3QsIGZhbHNlLCAmc2hvdWxkRnJlZSk7CisJCQkJRXhlY0ZvcmNlU3RvcmVI ZWFwVHVwbGUob2xkdHVwbGUsIGxlZnRvdmVyU2xvdCwgZmFsc2UpOworCQkJfQorCisJCQkv KiBTYXZlIHNvbWUgbXRzdGF0ZSB0aGluZ3Mgc28gd2UgY2FuIHJlc3RvcmUgdGhlbSBiZWxv dy4gKi8KKwkJCS8vIFRPRE86IERvIHdlIG5lZWQgYSBtb3JlIHN5c3RlbWF0aWMgd2F5IG9m IGRvaW5nIHRoaXMsCisJCQkvLyBlLmcuIGEgbmV3IG10c3RhdGUgb3IgZXZlbiBhIHNlcGFy YXRlIEZvclBvcnRpb25PZkxlZnRvdmVycyBub2RlPworCQkJb2xkT3BlcmF0aW9uID0gbXRz dGF0ZS0+b3BlcmF0aW9uOworCQkJbXRzdGF0ZS0+b3BlcmF0aW9uID0gQ01EX0lOU0VSVDsK KwkJCW9sZFRjcyA9IG10c3RhdGUtPm10X3RyYW5zaXRpb25fY2FwdHVyZTsKKworCQkJZGlk SW5pdCA9IHRydWU7CisJCX0KKworCQkvKiBzdG9yZSB0aGUgbmV3IHJhbmdlICovCisJCWxl ZnRvdmVyU2xvdC0+dHRzX3ZhbHVlc1tmb3JQb3J0aW9uT2YtPnJhbmdlVmFyLT52YXJhdHRu byAtIDFdID0gbGVmdG92ZXI7CisJCWxlZnRvdmVyU2xvdC0+dHRzX2lzbnVsbFtmb3JQb3J0 aW9uT2YtPnJhbmdlVmFyLT52YXJhdHRubyAtIDFdID0gZmFsc2U7CisJCUV4ZWNNYXRlcmlh bGl6ZVNsb3QobGVmdG92ZXJTbG90KTsKKworCQkvKgorCQkgKiBJZiB0aGVyZSBhcmUgcGFy dGl0aW9ucywgd2UgbXVzdCBpbnNlcnQgaW50byB0aGUgcm9vdCB0YWJsZSwKKwkJICogc28g d2UgZ2V0IHR1cGxlIHJvdXRpbmcuIFdlIGFscmVhZHkgc2V0IHVwIGxlZnRvdmVyU2xvdAor CQkgKiB3aXRoIHRoZSByb290IHR1cGxlIGRlc2NyaXB0b3IuCisJCSAqLworCQlpZiAocmVz dWx0UmVsSW5mby0+cmlfUm9vdFJlc3VsdFJlbEluZm8pCisJCQlyZXN1bHRSZWxJbmZvID0g cmVzdWx0UmVsSW5mby0+cmlfUm9vdFJlc3VsdFJlbEluZm87CisKKwkJRXhlY1NldHVwVHJh bnNpdGlvbkNhcHR1cmVTdGF0ZShtdHN0YXRlLCBlc3RhdGUpOworCQlFeGVjSW5zZXJ0KGNv bnRleHQsIHJlc3VsdFJlbEluZm8sIGxlZnRvdmVyU2xvdCwgbm9kZS0+Y2FuU2V0VGFnLCBO VUxMLCBOVUxMKTsKKwl9CisKKwlpZiAoZGlkSW5pdCkKKwl7CisJCW10c3RhdGUtPm9wZXJh dGlvbiA9IG9sZE9wZXJhdGlvbjsKKwkJbXRzdGF0ZS0+bXRfdHJhbnNpdGlvbl9jYXB0dXJl ID0gb2xkVGNzOworCisJCWlmIChzaG91bGRGcmVlKQorCQkJaGVhcF9mcmVldHVwbGUob2xk dHVwbGUpOworCX0KK30KKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCUV4ZWNCYXRjaEluc2VydAog ICoKQEAgLTEzNjMsNyArMTUzMyw4IEBAIEV4ZWNEZWxldGVBY3QoTW9kaWZ5VGFibGVDb250 ZXh0ICpjb250ZXh0LCBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogICoKICAqIENs b3Npbmcgc3RlcHMgb2YgdHVwbGUgZGVsZXRpb247IHRoaXMgaW52b2tlcyBBRlRFUiBGT1Ig RUFDSCBST1cgdHJpZ2dlcnMsCiAgKiBpbmNsdWRpbmcgdGhlIFVQREFURSB0cmlnZ2VycyBp ZiB0aGUgZGVsZXRpb24gaXMgYmVpbmcgZG9uZSBhcyBwYXJ0IG9mIGEKLSAqIGNyb3NzLXBh cnRpdGlvbiB0dXBsZSBtb3ZlLgorICogY3Jvc3MtcGFydGl0aW9uIHR1cGxlIG1vdmUuIEl0 IGFsc28gaW5zZXJ0cyBsZWZ0b3ZlcnMgZnJvbSBhIEZPUiBQT1JUSU9OIE9GCisgKiBkZWxl dGUuCiAgKi8KIHN0YXRpYyB2b2lkCiBFeGVjRGVsZXRlRXBpbG9ndWUoTW9kaWZ5VGFibGVD b250ZXh0ICpjb250ZXh0LCBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLApAQCAtMTM5 Niw2ICsxNTY3LDExIEBAIEV4ZWNEZWxldGVFcGlsb2d1ZShNb2RpZnlUYWJsZUNvbnRleHQg KmNvbnRleHQsIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCWFyX2RlbGV0ZV90 cmlnX3RjcyA9IE5VTEw7CiAJfQogCisJLyogQ29tcHV0ZSBsZWZ0b3ZlcnMgaW4gRk9SIFBP UlRJT04gT0YgKi8KKwkvLyBUT0RPOiBTa2lwIHRoaXMgZm9yIEZEVyBkZWxldGVzPworCWlm ICgoKE1vZGlmeVRhYmxlICopIGNvbnRleHQtPm10c3RhdGUtPnBzLnBsYW4pLT5mb3JQb3J0 aW9uT2YpCisJCUV4ZWNGb3JQb3J0aW9uT2ZMZWZ0b3ZlcnMoY29udGV4dCwgZXN0YXRlLCBy ZXN1bHRSZWxJbmZvLCB0dXBsZWlkKTsKKwogCS8qIEFGVEVSIFJPVyBERUxFVEUgVHJpZ2dl cnMgKi8KIAlFeGVjQVJEZWxldGVUcmlnZ2Vycyhlc3RhdGUsIHJlc3VsdFJlbEluZm8sIHR1 cGxlaWQsIG9sZHR1cGxlLAogCQkJCQkJIGFyX2RlbGV0ZV90cmlnX3RjcywgY2hhbmdpbmdQ YXJ0KTsKQEAgLTE3NzYsNyArMTk1MiwxMSBAQCBFeGVjQ3Jvc3NQYXJ0aXRpb25VcGRhdGUo TW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LAogCWlmIChyZXN1bHRSZWxJbmZvID09IG10 c3RhdGUtPnJvb3RSZXN1bHRSZWxJbmZvKQogCQlFeGVjUGFydGl0aW9uQ2hlY2tFbWl0RXJy b3IocmVzdWx0UmVsSW5mbywgc2xvdCwgZXN0YXRlKTsKIAotCS8qIEluaXRpYWxpemUgdHVw bGUgcm91dGluZyBpbmZvIGlmIG5vdCBhbHJlYWR5IGRvbmUuICovCisJLyoKKwkgKiBJbml0 aWFsaXplIHR1cGxlIHJvdXRpbmcgaW5mbyBpZiBub3QgYWxyZWFkeSBkb25lLgorCSAqIE5v dGUgd2hhdGV2ZXIgd2UgZG8gaGVyZSBtdXN0IGJlIGRvbmUgaW4gRXhlY0luaXRNb2RpZnlU YWJsZQorCSAqIGZvciBGT1IgUE9SVElPTiBPRiBhcyB3ZWxsLgorCSAqLwogCWlmIChtdHN0 YXRlLT5tdF9wYXJ0aXRpb25fdHVwbGVfcm91dGluZyA9PSBOVUxMKQogCXsKIAkJUmVsYXRp b24Jcm9vdFJlbCA9IG10c3RhdGUtPnJvb3RSZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRl c2M7CkBAIC0yMTQyLDYgKzIzMjIsMTEgQEAgRXhlY1VwZGF0ZUVwaWxvZ3VlKE1vZGlmeVRh YmxlQ29udGV4dCAqY29udGV4dCwgVXBkYXRlQ29udGV4dCAqdXBkYXRlQ3h0LAogCQkJCQkJ CQkJCQkgICBOVUxMLCBOSUwsCiAJCQkJCQkJCQkJCSAgICh1cGRhdGVDeHQtPnVwZGF0ZUlu ZGV4ZXMgPT0gVFVfU3VtbWFyaXppbmcpKTsKIAorCS8qIENvbXB1dGUgbGVmdG92ZXJzIGlu IEZPUiBQT1JUSU9OIE9GICovCisJLy8gVE9ETzogU2tpcCB0aGlzIGZvciBGRFcgdXBkYXRl cz8KKwlpZiAoKChNb2RpZnlUYWJsZSAqKSBjb250ZXh0LT5tdHN0YXRlLT5wcy5wbGFuKS0+ Zm9yUG9ydGlvbk9mKQorCQlFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzKGNvbnRleHQsIGNv bnRleHQtPmVzdGF0ZSwgcmVzdWx0UmVsSW5mbywgdHVwbGVpZCk7CisKIAkvKiBBRlRFUiBS T1cgVVBEQVRFIFRyaWdnZXJzICovCiAJRXhlY0FSVXBkYXRlVHJpZ2dlcnMoY29udGV4dC0+ ZXN0YXRlLCByZXN1bHRSZWxJbmZvLAogCQkJCQkJIE5VTEwsIE5VTEwsCkBAIC00NTczLDYg KzQ3NTgsMTE3IEBAIEV4ZWNJbml0TW9kaWZ5VGFibGUoTW9kaWZ5VGFibGUgKm5vZGUsIEVT dGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCQl9CiAJfQogCisJLyoKKwkgKiBJZiBuZWVk ZWQsIGluaXRpYWxpemUgdGhlIHRhcmdldCByYW5nZSBmb3IgRk9SIFBPUlRJT04gT0YuCisJ ICovCisJaWYgKG5vZGUtPmZvclBvcnRpb25PZikKKwl7CisJCVR1cGxlRGVzYyB0dXBEZXNj OworCQlGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2Y7CisJCURhdHVtCXRhcmdldFJh bmdlOworCQlib29sCWlzTnVsbDsKKwkJRXhwckNvbnRleHQgKmVjb250ZXh0OworCQlFeHBy U3RhdGUgKmV4cHJTdGF0ZTsKKwkJRm9yUG9ydGlvbk9mU3RhdGUgKmZwb1N0YXRlOworCisJ CXJlc3VsdFJlbEluZm8gPSBtdHN0YXRlLT5yZXN1bHRSZWxJbmZvOworCQlpZiAocmVzdWx0 UmVsSW5mby0+cmlfUm9vdFJlc3VsdFJlbEluZm8pCisJCQlyZXN1bHRSZWxJbmZvID0gcmVz dWx0UmVsSW5mby0+cmlfUm9vdFJlc3VsdFJlbEluZm87CisKKwkJdHVwRGVzYyA9IHJlc3Vs dFJlbEluZm8tPnJpX1JlbGF0aW9uRGVzYy0+cmRfYXR0OworCQlmb3JQb3J0aW9uT2YgPSAo Rm9yUG9ydGlvbk9mRXhwciAqKSBub2RlLT5mb3JQb3J0aW9uT2Y7CisKKwkJLyogRXZhbCB0 aGUgRk9SIFBPUlRJT04gT0YgdGFyZ2V0ICovCisJCWlmIChtdHN0YXRlLT5wcy5wc19FeHBy Q29udGV4dCA9PSBOVUxMKQorCQkJRXhlY0Fzc2lnbkV4cHJDb250ZXh0KGVzdGF0ZSwgJm10 c3RhdGUtPnBzKTsKKwkJZWNvbnRleHQgPSBtdHN0YXRlLT5wcy5wc19FeHByQ29udGV4dDsK KworCQlleHByU3RhdGUgPSBFeGVjUHJlcGFyZUV4cHIoKEV4cHIgKikgZm9yUG9ydGlvbk9m LT50YXJnZXRSYW5nZSwgZXN0YXRlKTsKKwkJdGFyZ2V0UmFuZ2UgPSBFeGVjRXZhbEV4cHIo ZXhwclN0YXRlLCBlY29udGV4dCwgJmlzTnVsbCk7CisJCWlmIChpc051bGwpCisJCQllbG9n KEVSUk9SLCAiR290IGEgTlVMTCBGT1IgUE9SVElPTiBPRiB0YXJnZXQgcmFuZ2UiKTsKKwor CQkvKiBDcmVhdGUgc3RhdGUgZm9yIEZPUiBQT1JUSU9OIE9GIG9wZXJhdGlvbiAqLworCisJ CWZwb1N0YXRlID0gbWFrZU5vZGUoRm9yUG9ydGlvbk9mU3RhdGUpOworCQlmcG9TdGF0ZS0+ ZnBfcmFuZ2VOYW1lID0gZm9yUG9ydGlvbk9mLT5yYW5nZV9uYW1lOworCQlmcG9TdGF0ZS0+ ZnBfcmFuZ2VUeXBlID0gZm9yUG9ydGlvbk9mLT5yYW5nZVR5cGU7CisJCWZwb1N0YXRlLT5m cF9yYW5nZUF0dG5vID0gZm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0bm87CisJCWZw b1N0YXRlLT5mcF90YXJnZXRSYW5nZSA9IHRhcmdldFJhbmdlOworCisJCS8qIEluaXRpYWxp emUgc2xvdCBmb3IgdGhlIGV4aXN0aW5nIHR1cGxlICovCisKKwkJZnBvU3RhdGUtPmZwX0V4 aXN0aW5nID0KKwkJCXRhYmxlX3Nsb3RfY3JlYXRlKHJlc3VsdFJlbEluZm8tPnJpX1JlbGF0 aW9uRGVzYywKKwkJCQkJCQkgICZtdHN0YXRlLT5wcy5zdGF0ZS0+ZXNfdHVwbGVUYWJsZSk7 CisKKwkJLyogQ3JlYXRlIHRoZSB0dXBsZSBzbG90IGZvciBJTlNFUlRpbmcgdGhlIGxlZnRv dmVycyAqLworCisJCWZwb1N0YXRlLT5mcF9MZWZ0b3ZlciA9CisJCQlFeGVjSW5pdEV4dHJh VHVwbGVTbG90KG10c3RhdGUtPnBzLnN0YXRlLCB0dXBEZXNjLCAmVFRTT3BzVmlydHVhbCk7 CisKKwkJLyoKKwkJICogV2UgbXVzdCBhdHRhY2ggdGhlIEZvclBvcnRpb25PZlN0YXRlIHRv IGFsbCByZXN1bHQgcmVscywKKwkJICogaW4gY2FzZSBvZiBhIGNyb3NzLXBhcnRpdGlvbiB1 cGRhdGUgb3IgdHJpZ2dlcnMgZmlyaW5nCisJCSAqIG9uIHBhcnRpdGlvbnMuCisJCSAqLwor CQlmb3IgKGkgPSAwOyBpIDwgbnJlbHM7IGkrKykKKwkJeworCQkJRm9yUG9ydGlvbk9mU3Rh dGUJKmxlYWZTdGF0ZTsKKwkJCXJlc3VsdFJlbEluZm8gPSAmbXRzdGF0ZS0+cmVzdWx0UmVs SW5mb1tpXTsKKworCQkJbGVhZlN0YXRlID0gbWFrZU5vZGUoRm9yUG9ydGlvbk9mU3RhdGUp OworCQkJbGVhZlN0YXRlLT5mcF9yYW5nZU5hbWUgPSBmcG9TdGF0ZS0+ZnBfcmFuZ2VOYW1l OworCQkJbGVhZlN0YXRlLT5mcF9yYW5nZVR5cGUgPSBmcG9TdGF0ZS0+ZnBfcmFuZ2VUeXBl OworCQkJbGVhZlN0YXRlLT5mcF9yYW5nZUF0dG5vID0gZnBvU3RhdGUtPmZwX3JhbmdlQXR0 bm87CisJCQlsZWFmU3RhdGUtPmZwX3RhcmdldFJhbmdlID0gZnBvU3RhdGUtPmZwX3Rhcmdl dFJhbmdlOworCQkJbGVhZlN0YXRlLT5mcF9MZWZ0b3ZlciA9IGZwb1N0YXRlLT5mcF9MZWZ0 b3ZlcjsKKwkJCS8qIEVhY2ggcGFydGl0aW9uIG5lZWRzIGEgc2xvdCBtYXRjaGluZyBpdHMg dHVwbGUgZGVzY3JpcHRvciAqLworCQkJbGVhZlN0YXRlLT5mcF9FeGlzdGluZyA9CisJCQkJ dGFibGVfc2xvdF9jcmVhdGUocmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjLAorCQkJ CQkJCQkgICZtdHN0YXRlLT5wcy5zdGF0ZS0+ZXNfdHVwbGVUYWJsZSk7CisKKwkJCXJlc3Vs dFJlbEluZm8tPnJpX2ZvclBvcnRpb25PZiA9IGxlYWZTdGF0ZTsKKwkJfQorCisJCS8qIE1h a2Ugc3VyZSB0aGUgcm9vdCByZWxhdGlvbiBoYXMgdGhlIEZPUiBQT1JUSU9OIE9GIGNsYXVz ZSB0b28uICovCisJCWlmIChub2RlLT5yb290UmVsYXRpb24gPiAwKQorCQkJbXRzdGF0ZS0+ cm9vdFJlc3VsdFJlbEluZm8tPnJpX2ZvclBvcnRpb25PZiA9IGZwb1N0YXRlOworCisJCWlm IChyZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFICYm CisJCQkJbXRzdGF0ZS0+bXRfcGFydGl0aW9uX3R1cGxlX3JvdXRpbmcgPT0gTlVMTCkKKwkJ eworCQkJLyoKKwkJCSAqIFdlIHdpbGwgbmVlZCB0dXBsZSByb3V0aW5nIHRvIGluc2VydCBs ZWZ0b3ZlcnMuCisJCQkgKiBTaW5jZSB3ZSBhcmUgaW5pdGlhbGl6aW5nIHRoaW5ncyBiZWZv cmUgRXhlY0Nyb3NzUGFydGl0aW9uVXBkYXRlIHJ1bnMsCisJCQkgKiB3ZSBtdXN0IGRvIGV2 ZXJ5dGhpbmcgaXQgbmVlZHMgYXMgd2VsbC4KKwkJCSAqLworCQkJaWYgKG10c3RhdGUtPm10 X3BhcnRpdGlvbl90dXBsZV9yb3V0aW5nID09IE5VTEwpCisJCQl7CisJCQkJUmVsYXRpb24J cm9vdFJlbCA9IG10c3RhdGUtPnJvb3RSZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2M7 CisJCQkJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisKKwkJCQkvKiBUaGluZ3MgYnVpbHQgaGVy ZSBoYXZlIHRvIGxhc3QgZm9yIHRoZSBxdWVyeSBkdXJhdGlvbi4gKi8KKwkJCQlvbGRjeHQg PSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZXN0YXRlLT5lc19xdWVyeV9jeHQpOworCisJCQkJ bXRzdGF0ZS0+bXRfcGFydGl0aW9uX3R1cGxlX3JvdXRpbmcgPQorCQkJCQlFeGVjU2V0dXBQ YXJ0aXRpb25UdXBsZVJvdXRpbmcoZXN0YXRlLCByb290UmVsKTsKKworCQkJCS8qCisJCQkJ ICogQmVmb3JlIGEgcGFydGl0aW9uJ3MgdHVwbGUgY2FuIGJlIHJlLXJvdXRlZCwgaXQgbXVz dCBmaXJzdCBiZQorCQkJCSAqIGNvbnZlcnRlZCB0byB0aGUgcm9vdCdzIGZvcm1hdCwgc28g d2UnbGwgbmVlZCBhIHNsb3QgZm9yIHN0b3JpbmcKKwkJCQkgKiBzdWNoIHR1cGxlcy4KKwkJ CQkgKi8KKwkJCQlBc3NlcnQobXRzdGF0ZS0+bXRfcm9vdF90dXBsZV9zbG90ID09IE5VTEwp OworCQkJCW10c3RhdGUtPm10X3Jvb3RfdHVwbGVfc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRl KHJvb3RSZWwsIE5VTEwpOworCisJCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7 CisJCQl9CisJCX0KKworCQkvKiBEb24ndCBmcmVlIHRoZSBFeHByQ29udGV4dCBoZXJlIGJl Y2F1c2UgdGhlIHJlc3VsdCBtdXN0IGxhc3QgZm9yIHRoZSB3aG9sZSBxdWVyeSAqLworCX0K KwogCS8qCiAJICogSWYgd2UgaGF2ZSBhbnkgc2Vjb25kYXJ5IHJlbGF0aW9ucyBpbiBhbiBV UERBVEUgb3IgREVMRVRFLCB0aGV5IG5lZWQgdG8KIAkgKiBiZSB0cmVhdGVkIGxpa2Ugbm9u LWxvY2tlZCByZWxhdGlvbnMgaW4gU0VMRUNUIEZPUiBVUERBVEUsIGkuZS4sIHRoZQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYwppbmRleCBkMmUyYWY0ZjgxMS4uOGM1NmRjNjdjMzAgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5k L25vZGVzL25vZGVGdW5jcy5jCkBAIC0yNTYxLDYgKzI1NjEsMTQgQEAgZXhwcmVzc2lvbl90 cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJfQog CQkJYnJlYWs7CisJCWNhc2UgVF9Gb3JQb3J0aW9uT2ZFeHByOgorCQkJeworCQkJCUZvclBv cnRpb25PZkV4cHIgKmZvclBvcnRpb25PZiA9IChGb3JQb3J0aW9uT2ZFeHByICopIG5vZGU7 CisKKwkJCQlpZiAoV0FMSyhmb3JQb3J0aW9uT2YtPnRhcmdldFJhbmdlKSkKKwkJCQkJcmV0 dXJuIHRydWU7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX1BhcnRpdGlvblBydW5lU3Rl cE9wOgogCQkJewogCQkJCVBhcnRpdGlvblBydW5lU3RlcE9wICpvcHN0ZXAgPSAoUGFydGl0 aW9uUHJ1bmVTdGVwT3AgKikgbm9kZTsKQEAgLTI3MDcsNiArMjcxNSw4IEBAIHF1ZXJ5X3Ry ZWVfd2Fsa2VyX2ltcGwoUXVlcnkgKnF1ZXJ5LAogCQlyZXR1cm4gdHJ1ZTsKIAlpZiAoV0FM SyhxdWVyeS0+bWVyZ2VKb2luQ29uZGl0aW9uKSkKIAkJcmV0dXJuIHRydWU7CisJaWYgKFdB TEsocXVlcnktPmZvclBvcnRpb25PZikpCisJCXJldHVybiB0cnVlOwogCWlmIChXQUxLKHF1 ZXJ5LT5yZXR1cm5pbmdMaXN0KSkKIAkJcmV0dXJuIHRydWU7CiAJaWYgKFdBTEsocXVlcnkt PmpvaW50cmVlKSkKQEAgLTM1ODYsNiArMzU5NiwxOSBAQCBleHByZXNzaW9uX3RyZWVfbXV0 YXRvcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJcmV0dXJuIChOb2RlICopIG5ld25vZGU7CiAJ CQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX0ZvclBvcnRpb25PZkV4cHI6CisJCQl7CisJCQkJ Rm9yUG9ydGlvbk9mRXhwciAqZnBvID0gKEZvclBvcnRpb25PZkV4cHIgKikgbm9kZTsKKwkJ CQlGb3JQb3J0aW9uT2ZFeHByICpuZXdub2RlOworCisJCQkJRkxBVENPUFkobmV3bm9kZSwg ZnBvLCBGb3JQb3J0aW9uT2ZFeHByKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+cmFuZ2VWYXIs IGZwby0+cmFuZ2VWYXIsIFZhciAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+dGFyZ2V0UmFu Z2UsIGZwby0+dGFyZ2V0UmFuZ2UsIE5vZGUgKik7CisJCQkJTVVUQVRFKG5ld25vZGUtPnJh bmdlVGFyZ2V0TGlzdCwgZnBvLT5yYW5nZVRhcmdldExpc3QsIExpc3QgKik7CisKKwkJCQly ZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfUGFy dGl0aW9uUHJ1bmVTdGVwT3A6CiAJCQl7CiAJCQkJUGFydGl0aW9uUHJ1bmVTdGVwT3AgKm9w c3RlcCA9IChQYXJ0aXRpb25QcnVuZVN0ZXBPcCAqKSBub2RlOwpAQCAtMzc2Nyw2ICszNzkw LDcgQEAgcXVlcnlfdHJlZV9tdXRhdG9yX2ltcGwoUXVlcnkgKnF1ZXJ5LAogCU1VVEFURShx dWVyeS0+b25Db25mbGljdCwgcXVlcnktPm9uQ29uZmxpY3QsIE9uQ29uZmxpY3RFeHByICop OwogCU1VVEFURShxdWVyeS0+bWVyZ2VBY3Rpb25MaXN0LCBxdWVyeS0+bWVyZ2VBY3Rpb25M aXN0LCBMaXN0ICopOwogCU1VVEFURShxdWVyeS0+bWVyZ2VKb2luQ29uZGl0aW9uLCBxdWVy eS0+bWVyZ2VKb2luQ29uZGl0aW9uLCBOb2RlICopOworCU1VVEFURShxdWVyeS0+Zm9yUG9y dGlvbk9mLCBxdWVyeS0+Zm9yUG9ydGlvbk9mLCBGb3JQb3J0aW9uT2ZFeHByICopOwogCU1V VEFURShxdWVyeS0+cmV0dXJuaW5nTGlzdCwgcXVlcnktPnJldHVybmluZ0xpc3QsIExpc3Qg Kik7CiAJTVVUQVRFKHF1ZXJ5LT5qb2ludHJlZSwgcXVlcnktPmpvaW50cmVlLCBGcm9tRXhw ciAqKTsKIAlNVVRBVEUocXVlcnktPnNldE9wZXJhdGlvbnMsIHF1ZXJ5LT5zZXRPcGVyYXRp b25zLCBOb2RlICopOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4v Y3JlYXRlcGxhbi5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5j CmluZGV4IGZlNWEzMjNjZmQ3Li4wNTE5MTA2ZGExZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL2NyZWF0ZXBsYW4uYwpAQCAtMzEzLDcgKzMxMyw3IEBAIHN0YXRpYyBNb2Rp ZnlUYWJsZSAqbWFrZV9tb2RpZnl0YWJsZShQbGFubmVySW5mbyAqcm9vdCwgUGxhbiAqc3Vi cGxhbiwKIAkJCQkJCQkJCSBMaXN0ICp3aXRoQ2hlY2tPcHRpb25MaXN0cywgTGlzdCAqcmV0 dXJuaW5nTGlzdHMsCiAJCQkJCQkJCQkgTGlzdCAqcm93TWFya3MsIE9uQ29uZmxpY3RFeHBy ICpvbmNvbmZsaWN0LAogCQkJCQkJCQkJIExpc3QgKm1lcmdlQWN0aW9uTGlzdHMsIExpc3Qg Km1lcmdlSm9pbkNvbmRpdGlvbnMsCi0JCQkJCQkJCQkgaW50IGVwcVBhcmFtKTsKKwkJCQkJ CQkJCSBGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2YsIGludCBlcHFQYXJhbSk7CiBz dGF0aWMgR2F0aGVyTWVyZ2UgKmNyZWF0ZV9nYXRoZXJfbWVyZ2VfcGxhbihQbGFubmVySW5m byAqcm9vdCwKIAkJCQkJCQkJCQkJIEdhdGhlck1lcmdlUGF0aCAqYmVzdF9wYXRoKTsKIApA QCAtMjgzMyw2ICsyODMzLDcgQEAgY3JlYXRlX21vZGlmeXRhYmxlX3BsYW4oUGxhbm5lcklu Zm8gKnJvb3QsIE1vZGlmeVRhYmxlUGF0aCAqYmVzdF9wYXRoKQogCQkJCQkJCWJlc3RfcGF0 aC0+b25jb25mbGljdCwKIAkJCQkJCQliZXN0X3BhdGgtPm1lcmdlQWN0aW9uTGlzdHMsCiAJ CQkJCQkJYmVzdF9wYXRoLT5tZXJnZUpvaW5Db25kaXRpb25zLAorCQkJCQkJCWJlc3RfcGF0 aC0+Zm9yUG9ydGlvbk9mLAogCQkJCQkJCWJlc3RfcGF0aC0+ZXBxUGFyYW0pOwogCiAJY29w eV9nZW5lcmljX3BhdGhfaW5mbygmcGxhbi0+cGxhbiwgJmJlc3RfcGF0aC0+cGF0aCk7CkBA IC03MDI5LDcgKzcwMzAsNyBAQCBtYWtlX21vZGlmeXRhYmxlKFBsYW5uZXJJbmZvICpyb290 LCBQbGFuICpzdWJwbGFuLAogCQkJCSBMaXN0ICp3aXRoQ2hlY2tPcHRpb25MaXN0cywgTGlz dCAqcmV0dXJuaW5nTGlzdHMsCiAJCQkJIExpc3QgKnJvd01hcmtzLCBPbkNvbmZsaWN0RXhw ciAqb25jb25mbGljdCwKIAkJCQkgTGlzdCAqbWVyZ2VBY3Rpb25MaXN0cywgTGlzdCAqbWVy Z2VKb2luQ29uZGl0aW9ucywKLQkJCQkgaW50IGVwcVBhcmFtKQorCQkJCSBGb3JQb3J0aW9u T2ZFeHByICpmb3JQb3J0aW9uT2YsIGludCBlcHFQYXJhbSkKIHsKIAlNb2RpZnlUYWJsZSAq bm9kZSA9IG1ha2VOb2RlKE1vZGlmeVRhYmxlKTsKIAlMaXN0CSAgICpmZHdfcHJpdmF0ZV9s aXN0OwpAQCAtNzA5NSw2ICs3MDk2LDcgQEAgbWFrZV9tb2RpZnl0YWJsZShQbGFubmVySW5m byAqcm9vdCwgUGxhbiAqc3VicGxhbiwKIAkJbm9kZS0+ZXhjbFJlbFRsaXN0ID0gb25jb25m bGljdC0+ZXhjbFJlbFRsaXN0OwogCX0KIAlub2RlLT51cGRhdGVDb2xub3NMaXN0cyA9IHVw ZGF0ZUNvbG5vc0xpc3RzOworCW5vZGUtPmZvclBvcnRpb25PZiA9IChOb2RlICopIGZvclBv cnRpb25PZjsKIAlub2RlLT53aXRoQ2hlY2tPcHRpb25MaXN0cyA9IHdpdGhDaGVja09wdGlv bkxpc3RzOwogCW5vZGUtPnJldHVybmluZ0xpc3RzID0gcmV0dXJuaW5nTGlzdHM7CiAJbm9k ZS0+cm93TWFya3MgPSByb3dNYXJrczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5u ZXIuYwppbmRleCA5NDhhZmQ5MDk0OC4uMGE4NWE4OTM1NmIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYworKysgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMKQEAgLTE5ODgsNiArMTk4OCw3IEBAIGdyb3VwaW5nX3Bs YW5uZXIoUGxhbm5lckluZm8gKnJvb3QsIGRvdWJsZSB0dXBsZV9mcmFjdGlvbiwKIAkJCQkJ CQkJCQlwYXJzZS0+b25Db25mbGljdCwKIAkJCQkJCQkJCQltZXJnZUFjdGlvbkxpc3RzLAog CQkJCQkJCQkJCW1lcmdlSm9pbkNvbmRpdGlvbnMsCisJCQkJCQkJCQkJcGFyc2UtPmZvclBv cnRpb25PZiwKIAkJCQkJCQkJCQlhc3NpZ25fc3BlY2lhbF9leGVjX3BhcmFtKHJvb3QpKTsK IAkJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9k ZS5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUuYwppbmRleCBiOGIx ZWFlMjk1ZS4uMjA2Y2ZjYjQxMTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL3BhdGhub2RlLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0 aG5vZGUuYwpAQCAtMzcyMCw3ICszNzIwLDcgQEAgY3JlYXRlX21vZGlmeXRhYmxlX3BhdGgo UGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwKIAkJCQkJCUxpc3QgKndpdGhD aGVja09wdGlvbkxpc3RzLCBMaXN0ICpyZXR1cm5pbmdMaXN0cywKIAkJCQkJCUxpc3QgKnJv d01hcmtzLCBPbkNvbmZsaWN0RXhwciAqb25jb25mbGljdCwKIAkJCQkJCUxpc3QgKm1lcmdl QWN0aW9uTGlzdHMsIExpc3QgKm1lcmdlSm9pbkNvbmRpdGlvbnMsCi0JCQkJCQlpbnQgZXBx UGFyYW0pCisJCQkJCQlGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2YsIGludCBlcHFQ YXJhbSkKIHsKIAlNb2RpZnlUYWJsZVBhdGggKnBhdGhub2RlID0gbWFrZU5vZGUoTW9kaWZ5 VGFibGVQYXRoKTsKIApAQCAtMzc4Niw2ICszNzg2LDcgQEAgY3JlYXRlX21vZGlmeXRhYmxl X3BhdGgoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwKIAlwYXRobm9kZS0+ cmV0dXJuaW5nTGlzdHMgPSByZXR1cm5pbmdMaXN0czsKIAlwYXRobm9kZS0+cm93TWFya3Mg PSByb3dNYXJrczsKIAlwYXRobm9kZS0+b25jb25mbGljdCA9IG9uY29uZmxpY3Q7CisJcGF0 aG5vZGUtPmZvclBvcnRpb25PZiA9IGZvclBvcnRpb25PZjsKIAlwYXRobm9kZS0+ZXBxUGFy YW0gPSBlcHFQYXJhbTsKIAlwYXRobm9kZS0+bWVyZ2VBY3Rpb25MaXN0cyA9IG1lcmdlQWN0 aW9uTGlzdHM7CiAJcGF0aG5vZGUtPm1lcmdlSm9pbkNvbmRpdGlvbnMgPSBtZXJnZUpvaW5D b25kaXRpb25zOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBi L3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggMjhmZWQ5ZDg3ZjYuLjRjYTc3 YjlkM2U5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTI0LDcgKzI0LDEwIEBACiAKICNp bmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiYWNjZXNzL2dpc3QuaCIKKyNpbmNs dWRlICJhY2Nlc3Mvc3RyYXRudW0uaCIKICNpbmNsdWRlICJhY2Nlc3Mvc3lzYXR0ci5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2Mu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9k ZWZyZW0uaCIKQEAgLTQ3LDkgKzUwLDExIEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3Jl bGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgogI2luY2x1ZGUg InBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlci5oIgogI2lu Y2x1ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIKICNpbmNsdWRlICJ1dGlscy9iYWNrZW5kX3N0 YXR1cy5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMv bHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCiAjaW5jbHVkZSAidXRpbHMv c3lzY2FjaGUuaCIKIApAQCAtNTgsMTAgKzYzLDE2IEBACiBwb3N0X3BhcnNlX2FuYWx5emVf aG9va190eXBlIHBvc3RfcGFyc2VfYW5hbHl6ZV9ob29rID0gTlVMTDsKIAogc3RhdGljIFF1 ZXJ5ICp0cmFuc2Zvcm1PcHRpb25hbFNlbGVjdEludG8oUGFyc2VTdGF0ZSAqcHN0YXRlLCBO b2RlICpwYXJzZVRyZWUpOworc3RhdGljIE5vZGUgKmFkZEZvclBvcnRpb25PZldoZXJlQ29u ZGl0aW9ucyhRdWVyeSAqcXJ5LCBGb3JQb3J0aW9uT2ZDbGF1c2UgKmZvclBvcnRpb25PZiwK KwkJCQkJCQkJCQkJTm9kZSAqd2hlcmVDbGF1c2UpOwogc3RhdGljIFF1ZXJ5ICp0cmFuc2Zv cm1EZWxldGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVsZXRlU3RtdCAqc3RtdCk7CiBz dGF0aWMgUXVlcnkgKnRyYW5zZm9ybUluc2VydFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBJ bnNlcnRTdG10ICpzdG10KTsKIHN0YXRpYyBPbkNvbmZsaWN0RXhwciAqdHJhbnNmb3JtT25D b25mbGljdENsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkgT25Db25m bGljdENsYXVzZSAqb25Db25mbGljdENsYXVzZSk7CitzdGF0aWMgRm9yUG9ydGlvbk9mRXhw ciAqdHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJ CQkJCQkJCQkJCQkgaW50IHJ0aW5kZXgsCisJCQkJCQkJCQkJCQkJIEZvclBvcnRpb25PZkNs YXVzZSAqZm9yUG9ydGlvbk9mQ2xhdXNlLAorCQkJCQkJCQkJCQkJCSBib29sIGlzVXBkYXRl KTsKIHN0YXRpYyBpbnQJY291bnRfcm93ZXhwcl9jb2x1bW5zKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTm9kZSAqZXhwcik7CiBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybVNlbGVjdFN0bXQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KTsKIHN0YXRpYyBRdWVyeSAqdHJh bnNmb3JtVmFsdWVzQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3Rt dCk7CkBAIC00NzYsNiArNDg3LDIwIEBAIHN0bXRfcmVxdWlyZXNfcGFyc2VfYW5hbHlzaXMo UmF3U3RtdCAqcGFyc2VUcmVlKQogCXJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRpYyBOb2Rl ICoKK2FkZEZvclBvcnRpb25PZldoZXJlQ29uZGl0aW9ucyhRdWVyeSAqcXJ5LCBGb3JQb3J0 aW9uT2ZDbGF1c2UgKmZvclBvcnRpb25PZiwgTm9kZSAqd2hlcmVDbGF1c2UpCit7CisJaWYg KGZvclBvcnRpb25PZikKKwl7CisJCWlmICh3aGVyZUNsYXVzZSkKKwkJCXJldHVybiAoTm9k ZSAqKSBtYWtlQm9vbEV4cHIoQU5EX0VYUFIsIGxpc3RfbWFrZTIocXJ5LT5mb3JQb3J0aW9u T2YtPm92ZXJsYXBzRXhwciwgd2hlcmVDbGF1c2UpLCAtMSk7CisJCWVsc2UKKwkJCXJldHVy biBxcnktPmZvclBvcnRpb25PZi0+b3ZlcmxhcHNFeHByOworCX0KKwllbHNlCisJCXJldHVy biB3aGVyZUNsYXVzZTsKK30KKwogLyoKICAqIGFuYWx5emVfcmVxdWlyZXNfc25hcHNob3QK ICAqCQlSZXR1cm5zIHRydWUgaWYgYSBzbmFwc2hvdCBtdXN0IGJlIHNldCBiZWZvcmUgZG9p bmcgcGFyc2UgYW5hbHlzaXMKQEAgLTUwOSw2ICs1MzQsNyBAQCB0cmFuc2Zvcm1EZWxldGVT dG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVsZXRlU3RtdCAqc3RtdCkKIHsKIAlRdWVyeQkg ICAqcXJ5ID0gbWFrZU5vZGUoUXVlcnkpOwogCVBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVt OworCU5vZGUJICAgKndoZXJlQ2xhdXNlOwogCU5vZGUJICAgKnF1YWw7CiAKIAlxcnktPmNv bW1hbmRUeXBlID0gQ01EX0RFTEVURTsKQEAgLTU0Nyw3ICs1NzMsMTEgQEAgdHJhbnNmb3Jt RGVsZXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIERlbGV0ZVN0bXQgKnN0bXQpCiAJbnNp dGVtLT5wX2xhdGVyYWxfb25seSA9IGZhbHNlOwogCW5zaXRlbS0+cF9sYXRlcmFsX29rID0g dHJ1ZTsKIAotCXF1YWwgPSB0cmFuc2Zvcm1XaGVyZUNsYXVzZShwc3RhdGUsIHN0bXQtPndo ZXJlQ2xhdXNlLAorCWlmIChzdG10LT5mb3JQb3J0aW9uT2YpCisJCXFyeS0+Zm9yUG9ydGlv bk9mID0gdHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNlKHBzdGF0ZSwgcXJ5LT5yZXN1bHRS ZWxhdGlvbiwgc3RtdC0+Zm9yUG9ydGlvbk9mLCBmYWxzZSk7CisKKwl3aGVyZUNsYXVzZSA9 IGFkZEZvclBvcnRpb25PZldoZXJlQ29uZGl0aW9ucyhxcnksIHN0bXQtPmZvclBvcnRpb25P Ziwgc3RtdC0+d2hlcmVDbGF1c2UpOworCXF1YWwgPSB0cmFuc2Zvcm1XaGVyZUNsYXVzZShw c3RhdGUsIHdoZXJlQ2xhdXNlLAogCQkJCQkJCQlFWFBSX0tJTkRfV0hFUkUsICJXSEVSRSIp OwogCiAJcXJ5LT5yZXR1cm5pbmdMaXN0ID0gdHJhbnNmb3JtUmV0dXJuaW5nTGlzdChwc3Rh dGUsIHN0bXQtPnJldHVybmluZ0xpc3QsCkBAIC0xMTgzLDcgKzEyMTMsNyBAQCB0cmFuc2Zv cm1PbkNvbmZsaWN0Q2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJICogTm93IHRyYW5z Zm9ybSB0aGUgVVBEQVRFIHN1YmV4cHJlc3Npb25zLgogCQkgKi8KIAkJb25Db25mbGljdFNl dCA9Ci0JCQl0cmFuc2Zvcm1VcGRhdGVUYXJnZXRMaXN0KHBzdGF0ZSwgb25Db25mbGljdENs YXVzZS0+dGFyZ2V0TGlzdCk7CisJCQl0cmFuc2Zvcm1VcGRhdGVUYXJnZXRMaXN0KHBzdGF0 ZSwgb25Db25mbGljdENsYXVzZS0+dGFyZ2V0TGlzdCwgTlVMTCk7CiAKIAkJb25Db25mbGlj dFdoZXJlID0gdHJhbnNmb3JtV2hlcmVDbGF1c2UocHN0YXRlLAogCQkJCQkJCQkJCQkgICBv bkNvbmZsaWN0Q2xhdXNlLT53aGVyZUNsYXVzZSwKQEAgLTEyMTMsNiArMTI0MywxODcgQEAg dHJhbnNmb3JtT25Db25mbGljdENsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJcmV0dXJu IHJlc3VsdDsKIH0KIAorLyoKKyAqIHRyYW5zZm9ybUZvclBvcnRpb25PZkNsYXVzZQorICoK KyAqCSAgVHJhbnNmb3JtcyBhIEZvclBvcnRpb25PZkNsYXVzZSBpbiBhbiBVUERBVEUvREVM RVRFIHN0YXRlbWVudC4KKyAqCisgKgkgIC0gTG9vayB1cCB0aGUgcmFuZ2UvcGVyaW9kIHJl cXVlc3RlZC4KKyAqCSAgLSBCdWlsZCBhIGNvbXBhdGlibGUgcmFuZ2UgdmFsdWUgZnJvbSB0 aGUgRlJPTSBhbmQgVE8gZXhwcmVzc2lvbnMuCisgKgkgIC0gQnVpbGQgYW4gIm92ZXJsYXBz IiBleHByZXNzaW9uIGZvciBmaWx0ZXJpbmcuCisgKgkgIC0gRm9yIFVQREFURXMsIGJ1aWxk IGFuICJpbnRlcnNlY3RzIiBleHByZXNzaW9uIHRoZSByZXdyaXRlciBjYW4gYWRkCisgKgkJ dG8gdGhlIHRhcmdldExpc3QgdG8gY2hhbmdlIHRoZSB0ZW1wb3JhbCBib3VuZHMuCisgKi8K K3N0YXRpYyBGb3JQb3J0aW9uT2ZFeHByICoKK3RyYW5zZm9ybUZvclBvcnRpb25PZkNsYXVz ZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJaW50IHJ0aW5kZXgsCisJCQkJCQkJRm9y UG9ydGlvbk9mQ2xhdXNlICpmb3JQb3J0aW9uT2YsCisJCQkJCQkJYm9vbCBpc1VwZGF0ZSkK K3sKKwlSZWxhdGlvbiB0YXJnZXRyZWwgPSBwc3RhdGUtPnBfdGFyZ2V0X3JlbGF0aW9uOwor CVJURVBlcm1pc3Npb25JbmZvICp0YXJnZXRfcGVybWluZm8gPSBwc3RhdGUtPnBfdGFyZ2V0 X25zaXRlbS0+cF9wZXJtaW5mbzsKKwljaGFyICpyYW5nZV9uYW1lID0gZm9yUG9ydGlvbk9m LT5yYW5nZV9uYW1lOworCWNoYXIgKnJhbmdlX3R5cGVfbmFtZXNwYWNlID0gTlVMTDsKKwlj aGFyICpyYW5nZV90eXBlX25hbWUgPSBOVUxMOworCWludCByYW5nZV9hdHRubyA9IEludmFs aWRBdHRyTnVtYmVyOworCUZvcm1fcGdfYXR0cmlidXRlIGF0dHI7CisJT2lkCW9wY2xhc3M7 CisJT2lkIG9wZmFtaWx5OworCU9pZCBvcGNpbnR5cGU7CisJT2lkIGZ1bmNpZCA9IEludmFs aWRPaWQ7CisJU3RyYXRlZ3lOdW1iZXIgc3RyYXQ7CisJT2lkCW9waWQ7CisJRm9yUG9ydGlv bk9mRXhwciAqcmVzdWx0OworCVZhciAqcmFuZ2VWYXI7CisJTm9kZSAqdGFyZ2V0RXhwcjsK KworCS8qIFdlIGRvbid0IHN1cHBvcnQgRk9SIFBPUlRJT04gT0YgRkRXIHF1ZXJpZXMuICov CisJaWYgKHRhcmdldHJlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9U QUJMRSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygiZm9yZWlnbiB0YWJsZXMgZG9uJ3Qgc3Vw cG9ydCBGT1IgUE9SVElPTiBPRiIpKSk7CisKKwlyZXN1bHQgPSBtYWtlTm9kZShGb3JQb3J0 aW9uT2ZFeHByKTsKKworCS8qIExvb2sgdXAgdGhlIEZPUiBQT1JUSU9OIE9GIG5hbWUgcmVx dWVzdGVkLiAqLworCXJhbmdlX2F0dG5vID0gYXR0bmFtZUF0dE51bSh0YXJnZXRyZWwsIHJh bmdlX25hbWUsIGZhbHNlKTsKKwlpZiAocmFuZ2VfYXR0bm8gPT0gSW52YWxpZEF0dHJOdW1i ZXIpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURf Q09MVU1OKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gb3IgcGVyaW9kIFwiJXNcIiBvZiByZWxh dGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJcmFuZ2VfbmFtZSwKKwkJCQkJ CVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCkpLAorCQkJCSBwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCBmb3JQb3J0aW9uT2YtPmxvY2F0aW9uKSkpOworCWF0dHIgPSBU dXBsZURlc2NBdHRyKHRhcmdldHJlbC0+cmRfYXR0LCByYW5nZV9hdHRubyAtIDEpOworCisJ cmFuZ2VWYXIgPSBtYWtlVmFyKAorCQkJcnRpbmRleCwKKwkJCXJhbmdlX2F0dG5vLAorCQkJ YXR0ci0+YXR0dHlwaWQsCisJCQlhdHRyLT5hdHR0eXBtb2QsCisJCQlhdHRyLT5hdHRjb2xs YXRpb24sCisJCQkwKTsKKwlyYW5nZVZhci0+bG9jYXRpb24gPSBmb3JQb3J0aW9uT2YtPmxv Y2F0aW9uOworCXJlc3VsdC0+cmFuZ2VWYXIgPSByYW5nZVZhcjsKKwlyZXN1bHQtPnJhbmdl VHlwZSA9IGF0dHItPmF0dHR5cGlkOworCWlmICghZ2V0X3R5cG5hbWVfYW5kX25hbWVzcGFj ZShhdHRyLT5hdHR0eXBpZCwgJnJhbmdlX3R5cGVfbmFtZSwgJnJhbmdlX3R5cGVfbmFtZXNw YWNlKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHR5cGUgJXUi LCBhdHRyLT5hdHR0eXBpZCk7CisKKworCWlmIChmb3JQb3J0aW9uT2YtPnRhcmdldCkKKwkJ LyoKKwkJICogV2Ugd2VyZSBhbHJlYWR5IGdpdmVuIGFuIGV4cHJlc3Npb24gZm9yIHRoZSB0 YXJnZXQsCisJCSAqIHNvIHdlIGRvbid0IGhhdmUgdG8gYnVpbGQgYW55dGhpbmcuCisJCSAq LworCQl0YXJnZXRFeHByID0gZm9yUG9ydGlvbk9mLT50YXJnZXQ7CisJZWxzZQorCXsKKwkJ LyogTWFrZSBzdXJlIGl0J3MgYSByYW5nZSBjb2x1bW4gKi8KKwkJaWYgKCF0eXBlX2lzX3Jh bmdlKGF0dHItPmF0dHR5cGlkKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9DT0xVTU5fUkVGRVJFTkNFKSwKKwkJCQkJIGVycm1zZygiY29s dW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgaXMgbm90IGEgcmFuZ2UgdHlwZSIsCisJ CQkJCQkJcmFuZ2VfbmFtZSwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh0YXJn ZXRyZWwpKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGZvclBvcnRpb25P Zi0+bG9jYXRpb24pKSk7CisKKwkJLyoKKwkJICogQnVpbGQgYSByYW5nZSBmcm9tIHRoZSBG Uk9NIC4uLiBUTyAuLi4uIGJvdW5kcy4KKwkJICogVGhpcyBzaG91bGQgZ2l2ZSBhIGNvbnN0 YW50IHJlc3VsdCwgc28gd2UgYWNjZXB0IGZ1bmN0aW9ucyBsaWtlIE5PVygpCisJCSAqIGJ1 dCBub3QgY29sdW1uIHJlZmVyZW5jZXMsIHN1YnF1ZXJpZXMsIGV0Yy4KKwkJICoKKwkJICog SXQgYWxzbyBwZXJtaXRzIFVOQk9VTkRFRCBpbiBlaXRoZXIgcGxhY2UuCisJCSAqLworCQl0 YXJnZXRFeHByID0gKE5vZGUgKikgbWFrZUZ1bmNDYWxsKAorCQkJCWxpc3RfbWFrZTIobWFr ZVN0cmluZyhyYW5nZV90eXBlX25hbWVzcGFjZSksIG1ha2VTdHJpbmcocmFuZ2VfdHlwZV9u YW1lKSksCisJCQkJbGlzdF9tYWtlMihmb3JQb3J0aW9uT2YtPnRhcmdldF9zdGFydCwgZm9y UG9ydGlvbk9mLT50YXJnZXRfZW5kKSwKKwkJCQlDT0VSQ0VfRVhQTElDSVRfQ0FMTCwKKwkJ CQlmb3JQb3J0aW9uT2YtPmxvY2F0aW9uKTsKKwl9CisJcmVzdWx0LT50YXJnZXRSYW5nZSA9 IHRyYW5zZm9ybUV4cHIocHN0YXRlLCB0YXJnZXRFeHByLCBFWFBSX0tJTkRfVVBEQVRFX1BP UlRJT04pOworCisJLyoKKwkgKiBCdWlsZCBvdmVybGFwc0V4cHIgdG8gdXNlIGluIHRoZSB3 aGVyZUNsYXVzZS4KKwkgKiBUaGlzIG1lYW5zIHdlIG9ubHkgaGl0IHJvd3MgbWF0Y2hpbmcg dGhlIEZST00gJiBUTyBib3VuZHMuCisJICogV2UgbXVzdCBsb29rIHVwIHRoZSBvdmVybGFw cyBvcGVyYXRvciAodXN1YWxseSAiJiYiKS4KKwkgKi8KKwlvcGNsYXNzID0gR2V0RGVmYXVs dE9wQ2xhc3MoYXR0ci0+YXR0dHlwaWQsIEdJU1RfQU1fT0lEKTsKKwlzdHJhdCA9IFJUT3Zl cmxhcFN0cmF0ZWd5TnVtYmVyOworCUdldE9wZXJhdG9yRnJvbVdlbGxLbm93blN0cmF0ZWd5 KG9wY2xhc3MsIEludmFsaWRPaWQsICZvcGlkLCAmc3RyYXQpOworCXJlc3VsdC0+b3Zlcmxh cHNFeHByID0gKE5vZGUgKikgbWFrZVNpbXBsZUFfRXhwcihBRVhQUl9PUCwgZ2V0X29wbmFt ZShvcGlkKSwKKwkJCShOb2RlICopIGNvcHlPYmplY3QocmFuZ2VWYXIpLCB0YXJnZXRFeHBy LAorCQkJZm9yUG9ydGlvbk9mLT5sb2NhdGlvbik7CisKKwkvKgorCSAqIExvb2sgdXAgdGhl IHdpdGhvdXRQb3J0aW9uT3BlciBzbyB3ZSBjYW4gY29tcHV0ZSB0aGUgbGVmdG92ZXJzLgor CSAqIExlZnRvdmVycyB3aWxsIGJlIG9sZF9yYW5nZSBALSB0YXJnZXRfcmFuZ2UKKwkgKiAo b25lIHBlciBlbGVtZW50IG9mIHRoZSByZXN1bHQpLgorCSAqLworCWZ1bmNpZCA9IEludmFs aWRPaWQ7CisJaWYgKGdldF9vcGNsYXNzX29wZmFtaWx5X2FuZF9pbnB1dF90eXBlKG9wY2xh c3MsICZvcGZhbWlseSwgJm9wY2ludHlwZSkpCisJCWZ1bmNpZCA9IGdldF9vcGZhbWlseV9w cm9jKG9wZmFtaWx5LCBvcGNpbnR5cGUsIG9wY2ludHlwZSwgR0lTVF9XSVRIT1VUX1BPUlRJ T05fUFJPQyk7CisKKwlpZiAoIU9pZElzVmFsaWQoZnVuY2lkKSkKKwkJZXJlcG9ydChFUlJP UiwKKwkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJZXJybXNn KCJjb3VsZCBub3QgaWRlbnRpZnkgYSB3aXRob3V0X292ZXJsYXBzIHN1cHBvcnQgZnVuY3Rp b24gZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9iZShvcGNpbnR5cGUpKSwKKwkJCQllcnJo aW50KCJEZWZpbmUgYSB3aXRob3V0X292ZXJsYXBzIHN1cHBvcnQgZnVuY3Rpb24gZm9yIG9w ZXJhdG9yIGNsYXNzIFwiJWRcIiBmb3IgYWNjZXNzIG1ldGhvZCBcIiVzXCIuIiwKKwkJCQkJ IG9wY2xhc3MsICJnaXN0IikpOworCisJcmVzdWx0LT53aXRob3V0UG9ydGlvblByb2MgPSBm dW5jaWQ7CisKKwlpZiAoaXNVcGRhdGUpCisJeworCQkvKgorCQkgKiBOb3cgbWFrZSBzdXJl IHdlIHVwZGF0ZSB0aGUgc3RhcnQvZW5kIHRpbWUgb2YgdGhlIHJlY29yZC4KKwkJICogRm9y IGEgcmFuZ2UgY29sIChyKSB0aGlzIGlzIGByID0gciAqIHRhcmdldFJhbmdlYC4KKwkJICov CisJCU9pZCBmdW5jbmFtZXNwYWNlOworCQljaGFyICpmdW5jbmFtZTsKKwkJY2hhciAqZnVu Y25hbWVzcGFjZW5hbWU7CisJCUV4cHIgKnJhbmdlVExFRXhwcjsKKwkJVGFyZ2V0RW50cnkg KnRsZTsKKworCQlmdW5jaWQgPSBnZXRfb3BmYW1pbHlfcHJvYyhvcGZhbWlseSwgb3BjaW50 eXBlLCBvcGNpbnR5cGUsIEdJU1RfSU5URVJTRUNUX1BST0MpOworCQlpZiAoIU9pZElzVmFs aWQoZnVuY2lkKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9V TkRFRklORURfT0JKRUNUKSwKKwkJCQkJZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYW4g aW50ZXJzZWN0IHN1cHBvcnQgZnVuY3Rpb24gZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9i ZShvcGNpbnR5cGUpKSwKKwkJCQkJZXJyaGludCgiRGVmaW5lIGFuIGludGVyc2VjdCBzdXBw b3J0IGZ1bmN0aW9uIGZvciBvcGVyYXRvciBjbGFzcyBcIiVkXCIgZm9yIGFjY2VzcyBtZXRo b2QgXCIlc1wiLiIsCisJCQkJCQkgb3BjbGFzcywgImdpc3QiKSk7CisKKwkJLy8gVE9ETzog ZG8gd2UgcmVhbGx5IG5lZWQgdG8gZ28gdGhyb3VnaCB0aGUgbmFtZSBoZXJlPworCQlmdW5j bmFtZSA9IGdldF9mdW5jX25hbWUoZnVuY2lkKTsKKwkJaWYgKCFmdW5jbmFtZSkKKwkJCWVs b2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBmdW5jdGlvbiAldSIsIGZ1bmNp ZCk7CisJCWZ1bmNuYW1lc3BhY2UgPSBnZXRfZnVuY19uYW1lc3BhY2UoZnVuY2lkLCBmYWxz ZSk7CisJCWZ1bmNuYW1lc3BhY2VuYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lKGZ1bmNuYW1l c3BhY2UpOworCQlpZiAoIWZ1bmNuYW1lc3BhY2VuYW1lKQorCQkJZWxvZyhFUlJPUiwgImNh Y2hlIGxvb2t1cCBmYWlsZWQgZm9yIG5hbWVzcGFjZSAldSIsIGZ1bmNuYW1lc3BhY2UpOwor CisJCXJhbmdlVExFRXhwciA9IChFeHByICopIG1ha2VGdW5jQ2FsbCgKKwkJCQlsaXN0X21h a2UyKG1ha2VTdHJpbmcoZnVuY25hbWVzcGFjZW5hbWUpLCBtYWtlU3RyaW5nKGZ1bmNuYW1l KSksCisJCQkJbGlzdF9tYWtlMihjb3B5T2JqZWN0KHJhbmdlVmFyKSwgdGFyZ2V0RXhwciks CisJCQkJQ09FUkNFX0VYUExJQ0lUX0NBTEwsCisJCQkJZm9yUG9ydGlvbk9mLT5sb2NhdGlv bik7CisJCXJhbmdlVExFRXhwciA9IChFeHByICopIHRyYW5zZm9ybUV4cHIocHN0YXRlLCAo Tm9kZSAqKSByYW5nZVRMRUV4cHIsIEVYUFJfS0lORF9VUERBVEVfUE9SVElPTik7CisKKwkJ LyogTWFrZSBhIFRMRSB0byBzZXQgdGhlIHJhbmdlIGNvbHVtbiAqLworCQlyZXN1bHQtPnJh bmdlVGFyZ2V0TGlzdCA9IE5JTDsKKwkJdGxlID0gbWFrZVRhcmdldEVudHJ5KHJhbmdlVExF RXhwciwgcmFuZ2VfYXR0bm8sIHJhbmdlX25hbWUsIGZhbHNlKTsKKwkJcmVzdWx0LT5yYW5n ZVRhcmdldExpc3QgPSBsYXBwZW5kKHJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0LCB0bGUpOwor CisJCS8qIE1hcmsgdGhlIHJhbmdlIGNvbHVtbiBhcyByZXF1aXJpbmcgdXBkYXRlIHBlcm1p c3Npb25zICovCisJCXRhcmdldF9wZXJtaW5mby0+dXBkYXRlZENvbHMgPSBibXNfYWRkX21l bWJlcih0YXJnZXRfcGVybWluZm8tPnVwZGF0ZWRDb2xzLAorCQkJCQkJCQkJCQkJCSAgcmFu Z2VfYXR0bm8gLSBGaXJzdExvd0ludmFsaWRIZWFwQXR0cmlidXRlTnVtYmVyKTsKKwl9CisJ ZWxzZQorCQlyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCA9IE5JTDsKKworCXJlc3VsdC0+cmFu Z2VfbmFtZSA9IHJhbmdlX25hbWU7CisKKwlyZXR1cm4gcmVzdWx0OworfQogCiAvKgogICog QnVpbGRPbkNvbmZsaWN0RXhjbHVkZWRUYXJnZXRsaXN0CkBAIC0yNDIwLDYgKzI2MzEsNyBA QCB0cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVXBkYXRlU3RtdCAq c3RtdCkKIHsKIAlRdWVyeQkgICAqcXJ5ID0gbWFrZU5vZGUoUXVlcnkpOwogCVBhcnNlTmFt ZXNwYWNlSXRlbSAqbnNpdGVtOworCU5vZGUJICAgKndoZXJlQ2xhdXNlOwogCU5vZGUJICAg KnF1YWw7CiAKIAlxcnktPmNvbW1hbmRUeXBlID0gQ01EX1VQREFURTsKQEAgLTI0MzcsNiAr MjY0OSwxMCBAQCB0cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVXBk YXRlU3RtdCAqc3RtdCkKIAkJCQkJCQkJCQkgc3RtdC0+cmVsYXRpb24tPmluaCwKIAkJCQkJ CQkJCQkgdHJ1ZSwKIAkJCQkJCQkJCQkgQUNMX1VQREFURSk7CisKKwlpZiAoc3RtdC0+Zm9y UG9ydGlvbk9mKQorCQlxcnktPmZvclBvcnRpb25PZiA9IHRyYW5zZm9ybUZvclBvcnRpb25P ZkNsYXVzZShwc3RhdGUsIHFyeS0+cmVzdWx0UmVsYXRpb24sIHN0bXQtPmZvclBvcnRpb25P ZiwgdHJ1ZSk7CisKIAluc2l0ZW0gPSBwc3RhdGUtPnBfdGFyZ2V0X25zaXRlbTsKIAogCS8q IHN1YnF1ZXJpZXMgaW4gRlJPTSBjYW5ub3QgYWNjZXNzIHRoZSByZXN1bHQgcmVsYXRpb24g Ki8KQEAgLTI0NTMsNyArMjY2OSw4IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBVcGRhdGVTdG10ICpzdG10KQogCW5zaXRlbS0+cF9sYXRlcmFsX29ubHkg PSBmYWxzZTsKIAluc2l0ZW0tPnBfbGF0ZXJhbF9vayA9IHRydWU7CiAKLQlxdWFsID0gdHJh bnNmb3JtV2hlcmVDbGF1c2UocHN0YXRlLCBzdG10LT53aGVyZUNsYXVzZSwKKwl3aGVyZUNs YXVzZSA9IGFkZEZvclBvcnRpb25PZldoZXJlQ29uZGl0aW9ucyhxcnksIHN0bXQtPmZvclBv cnRpb25PZiwgc3RtdC0+d2hlcmVDbGF1c2UpOworCXF1YWwgPSB0cmFuc2Zvcm1XaGVyZUNs YXVzZShwc3RhdGUsIHdoZXJlQ2xhdXNlLAogCQkJCQkJCQlFWFBSX0tJTkRfV0hFUkUsICJX SEVSRSIpOwogCiAJcXJ5LT5yZXR1cm5pbmdMaXN0ID0gdHJhbnNmb3JtUmV0dXJuaW5nTGlz dChwc3RhdGUsIHN0bXQtPnJldHVybmluZ0xpc3QsCkBAIC0yNDYzLDcgKzI2ODAsNyBAQCB0 cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVXBkYXRlU3RtdCAqc3Rt dCkKIAkgKiBOb3cgd2UgYXJlIGRvbmUgd2l0aCBTRUxFQ1QtbGlrZSBwcm9jZXNzaW5nLCBh bmQgY2FuIGdldCBvbiB3aXRoCiAJICogdHJhbnNmb3JtaW5nIHRoZSB0YXJnZXQgbGlzdCB0 byBtYXRjaCB0aGUgVVBEQVRFIHRhcmdldCBjb2x1bW5zLgogCSAqLwotCXFyeS0+dGFyZ2V0 TGlzdCA9IHRyYW5zZm9ybVVwZGF0ZVRhcmdldExpc3QocHN0YXRlLCBzdG10LT50YXJnZXRM aXN0KTsKKwlxcnktPnRhcmdldExpc3QgPSB0cmFuc2Zvcm1VcGRhdGVUYXJnZXRMaXN0KHBz dGF0ZSwgc3RtdC0+dGFyZ2V0TGlzdCwgcXJ5LT5mb3JQb3J0aW9uT2YpOwogCiAJcXJ5LT5y dGFibGUgPSBwc3RhdGUtPnBfcnRhYmxlOwogCXFyeS0+cnRlcGVybWluZm9zID0gcHN0YXRl LT5wX3J0ZXBlcm1pbmZvczsKQEAgLTI0ODIsNyArMjY5OSw3IEBAIHRyYW5zZm9ybVVwZGF0 ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVTdG10ICpzdG10KQogICoJaGFuZGxl IFNFVCBjbGF1c2UgaW4gVVBEQVRFL01FUkdFL0lOU0VSVCAuLi4gT04gQ09ORkxJQ1QgVVBE QVRFCiAgKi8KIExpc3QgKgotdHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChQYXJzZVN0YXRl ICpwc3RhdGUsIExpc3QgKm9yaWdUbGlzdCkKK3RyYW5zZm9ybVVwZGF0ZVRhcmdldExpc3Qo UGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpvcmlnVGxpc3QsIEZvclBvcnRpb25PZkV4cHIg KmZvclBvcnRpb25PZikKIHsKIAlMaXN0CSAgICp0bGlzdCA9IE5JTDsKIAlSVEVQZXJtaXNz aW9uSW5mbyAqdGFyZ2V0X3Blcm1pbmZvOwpAQCAtMjUzNSw2ICsyNzUyLDIxIEBAIHRyYW5z Zm9ybVVwZGF0ZVRhcmdldExpc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpvcmlnVGxp c3QpCiAJCQkJCSBlcnJoaW50KCJTRVQgdGFyZ2V0IGNvbHVtbnMgY2Fubm90IGJlIHF1YWxp ZmllZCB3aXRoIHRoZSByZWxhdGlvbiBuYW1lLiIpIDogMCwKIAkJCQkJIHBhcnNlcl9lcnJw b3NpdGlvbihwc3RhdGUsIG9yaWdUYXJnZXQtPmxvY2F0aW9uKSkpOwogCisJCS8qCisJCSAq IElmIHRoaXMgaXMgYSBGT1IgUE9SVElPTiBPRiB1cGRhdGUsCisJCSAqIGZvcmJpZCBkaXJl Y3RseSBzZXR0aW5nIHRoZSByYW5nZSBjb2x1bW4sCisJCSAqIHNpbmNlIHRoYXQgd291bGQg Y29uZmxpY3Qgd2l0aCB0aGUgaW1wbGljaXQgdXBkYXRlcy4KKwkJICovCisJCWlmIChmb3JQ b3J0aW9uT2YgIT0gTlVMTCkKKwkJeworCQkJaWYgKGF0dHJubyA9PSBmb3JQb3J0aW9uT2Yt PnJhbmdlVmFyLT52YXJhdHRubykKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJIGVycm1zZygiY2FuJ3QgZGlyZWN0 bHkgYXNzaWduIHRvIFwiJXNcIiBpbiBhIEZPUiBQT1JUSU9OIE9GIHVwZGF0ZSIsCisJCQkJ CQkJCW9yaWdUYXJnZXQtPm5hbWUpLAorCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3Rh dGUsIG9yaWdUYXJnZXQtPmxvY2F0aW9uKSkpOworCQl9CisKIAkJdXBkYXRlVGFyZ2V0TGlz dEVudHJ5KHBzdGF0ZSwgdGxlLCBvcmlnVGFyZ2V0LT5uYW1lLAogCQkJCQkJCSAgYXR0cm5v LAogCQkJCQkJCSAgb3JpZ1RhcmdldC0+aW5kaXJlY3Rpb24sCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRl eCA0YWRkZjRkNTMzZS4uM2JjZDBjNTQyMTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjU3LDYg KzI1Nyw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpy ZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJUmFuZ2VWYXIgICAqcmFu Z2U7CiAJSW50b0NsYXVzZSAqaW50bzsKIAlXaXRoQ2xhdXNlICp3aXRoOworCUZvclBvcnRp b25PZkNsYXVzZSAqZm9ycG9ydGlvbm9mOwogCUluZmVyQ2xhdXNlCSppbmZlcjsKIAlPbkNv bmZsaWN0Q2xhdXNlICpvbmNvbmZsaWN0OwogCUFfSW5kaWNlcyAgKmFpbmQ7CkBAIC01NTQs NiArNTU1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIg KnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxyYW5nZT4J cmVsYXRpb25fZXhwcgogJXR5cGUgPHJhbmdlPglleHRlbmRlZF9yZWxhdGlvbl9leHByCiAl dHlwZSA8cmFuZ2U+CXJlbGF0aW9uX2V4cHJfb3B0X2FsaWFzCisldHlwZSA8Zm9ycG9ydGlv bm9mPiBmb3JfcG9ydGlvbl9vZl9jbGF1c2UKICV0eXBlIDxub2RlPgl0YWJsZXNhbXBsZV9j bGF1c2Ugb3B0X3JlcGVhdGFibGVfY2xhdXNlCiAldHlwZSA8dGFyZ2V0Pgl0YXJnZXRfZWwg c2V0X3RhcmdldCBpbnNlcnRfY29sdW1uX2l0ZW0KIApAQCAtNzY1LDcgKzc2Nyw3IEBAIHN0 YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0 ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJT1ZFUiBPVkVSTEFQUyBPVkVSTEFZIE9WRVJS SURJTkcgT1dORUQgT1dORVIKIAogCVBBUkFMTEVMIFBBUkFNRVRFUiBQQVJTRVIgUEFSVElB TCBQQVJUSVRJT04gUEFSVElUSU9OUyBQQVNTSU5HIFBBU1NXT1JEIFBBVEgKLQlQRVJJT0Qg UExBQ0lORyBQTEFOIFBMQU5TIFBPTElDWQorCVBFUklPRCBQTEFDSU5HIFBMQU4gUExBTlMg UE9MSUNZIFBPUlRJT04KIAlQT1NJVElPTiBQUkVDRURJTkcgUFJFQ0lTSU9OIFBSRVNFUlZF IFBSRVBBUkUgUFJFUEFSRUQgUFJJTUFSWQogCVBSSU9SIFBSSVZJTEVHRVMgUFJPQ0VEVVJB TCBQUk9DRURVUkUgUFJPQ0VEVVJFUyBQUk9HUkFNIFBVQkxJQ0FUSU9OCiAKQEAgLTg4Nyw2 ICs4ODksMTcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIg KnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICAqIExpa2UgdGhlIFVO Qk9VTkRFRCBQUkVDRURJTkcvRk9MTE9XSU5HIGNhc2UsIE5FU1RFRCBpcyBhc3NpZ25lZCBh IGxvd2VyCiAgKiBwcmVjZWRlbmNlIHRoYW4gUEFUSCB0byBmaXggYW1iaWd1aXR5IGluIHRo ZSBqc29uX3RhYmxlIHByb2R1Y3Rpb24uCiAgKi8KKy8qCisgKiBXZSBuZWVkIHRvIGhhbmRs ZSB0aGlzIHNoaWZ0L3JlZHVjZSBjb25mbGljdDoKKyAqIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gSU5URVJWQUwgWUVBUiBUTyBNT05USCBUTyBmb28uCisgKiBUaGlzIGlzIGJh c2ljYWxseSB0aGUgY2xhc3NpYyAiZGFuZ2xpbmcgZWxzZSIgcHJvYmxlbSwgYW5kIHdlIHdh bnQgYQorICogc2ltaWxhciByZXNvbHV0aW9uOiB0cmVhdCB0aGUgVE8gYXMgcGFydCBvZiB0 aGUgSU5URVJWQUwsIG5vdCBhcyBwYXJ0IG9mCisgKiB0aGUgRlJPTSAuLi4gVE8gLi4uLiBV c2VycyBjYW4gYWRkIHBhcmVudGhlc2VzIGlmIHRoYXQncyBhIHByb2JsZW0uCisgKiBUTyBq dXN0IG5lZWRzIHRvIGJlIGhpZ2hlciBwcmVjZWRlbmNlIHRoYW4gWUVBUl9QIGV0Yy4KKyAq IFRPRE86IEkgbmVlZCB0byBmaWd1cmUgb3V0IGEgJXByZWMgc29sdXRpb24gYmVmb3JlIHRo aXMgZ2V0cyBjb21taXR0ZWQhCisgKi8KKyVub25hc3NvYyBZRUFSX1AgTU9OVEhfUCBEQVlf UCBIT1VSX1AgTUlOVVRFX1AKKyVub25hc3NvYyBUTwogJW5vbmFzc29jCVVOQk9VTkRFRCBO RVNURUQgLyogaWRlYWxseSB3b3VsZCBoYXZlIHNhbWUgcHJlY2VkZW5jZSBhcyBJREVOVCAq LwogJW5vbmFzc29jCUlERU5UIFBBUlRJVElPTiBSQU5HRSBST1dTIEdST1VQUyBQUkVDRURJ TkcgRk9MTE9XSU5HIENVQkUgUk9MTFVQCiAJCQlTRVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIg VkFMVUVfUCBXSVRIIFdJVEhPVVQgUEFUSApAQCAtMTIzNTMsMTQgKzEyMzY2LDE2IEBAIHJl dHVybmluZ19jbGF1c2U6CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIERlbGV0ZVN0 bXQ6IG9wdF93aXRoX2NsYXVzZSBERUxFVEVfUCBGUk9NIHJlbGF0aW9uX2V4cHJfb3B0X2Fs aWFzCisJCQlmb3JfcG9ydGlvbl9vZl9jbGF1c2UKIAkJCXVzaW5nX2NsYXVzZSB3aGVyZV9v cl9jdXJyZW50X2NsYXVzZSByZXR1cm5pbmdfY2xhdXNlCiAJCQkJewogCQkJCQlEZWxldGVT dG10ICpuID0gbWFrZU5vZGUoRGVsZXRlU3RtdCk7CiAKIAkJCQkJbi0+cmVsYXRpb24gPSAk NDsKLQkJCQkJbi0+dXNpbmdDbGF1c2UgPSAkNTsKLQkJCQkJbi0+d2hlcmVDbGF1c2UgPSAk NjsKLQkJCQkJbi0+cmV0dXJuaW5nTGlzdCA9ICQ3OworCQkJCQluLT5mb3JQb3J0aW9uT2Yg PSAkNTsKKwkJCQkJbi0+dXNpbmdDbGF1c2UgPSAkNjsKKwkJCQkJbi0+d2hlcmVDbGF1c2Ug PSAkNzsKKwkJCQkJbi0+cmV0dXJuaW5nTGlzdCA9ICQ4OwogCQkJCQluLT53aXRoQ2xhdXNl ID0gJDE7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC0xMjQyMyw2ICsxMjQz OCw3IEBAIG9wdF9ub3dhaXRfb3Jfc2tpcDoKICAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K IAogVXBkYXRlU3RtdDogb3B0X3dpdGhfY2xhdXNlIFVQREFURSByZWxhdGlvbl9leHByX29w dF9hbGlhcworCQkJZm9yX3BvcnRpb25fb2ZfY2xhdXNlCiAJCQlTRVQgc2V0X2NsYXVzZV9s aXN0CiAJCQlmcm9tX2NsYXVzZQogCQkJd2hlcmVfb3JfY3VycmVudF9jbGF1c2UKQEAgLTEy NDMxLDEwICsxMjQ0NywxMSBAQCBVcGRhdGVTdG10OiBvcHRfd2l0aF9jbGF1c2UgVVBEQVRF IHJlbGF0aW9uX2V4cHJfb3B0X2FsaWFzCiAJCQkJCVVwZGF0ZVN0bXQgKm4gPSBtYWtlTm9k ZShVcGRhdGVTdG10KTsKIAogCQkJCQluLT5yZWxhdGlvbiA9ICQzOwotCQkJCQluLT50YXJn ZXRMaXN0ID0gJDU7Ci0JCQkJCW4tPmZyb21DbGF1c2UgPSAkNjsKLQkJCQkJbi0+d2hlcmVD bGF1c2UgPSAkNzsKLQkJCQkJbi0+cmV0dXJuaW5nTGlzdCA9ICQ4OworCQkJCQluLT5mb3JQ b3J0aW9uT2YgPSAkNDsKKwkJCQkJbi0+dGFyZ2V0TGlzdCA9ICQ2OworCQkJCQluLT5mcm9t Q2xhdXNlID0gJDc7CisJCQkJCW4tPndoZXJlQ2xhdXNlID0gJDg7CisJCQkJCW4tPnJldHVy bmluZ0xpc3QgPSAkOTsKIAkJCQkJbi0+d2l0aENsYXVzZSA9ICQxOwogCQkJCQkkJCA9IChO b2RlICopIG47CiAJCQkJfQpAQCAtMTM5MDMsNiArMTM5MjAsMjcgQEAgcmVsYXRpb25fZXhw cl9vcHRfYWxpYXM6IHJlbGF0aW9uX2V4cHIJCQkJCSVwcmVjIFVNSU5VUwogCQkJCX0KIAkJ OwogCitmb3JfcG9ydGlvbl9vZl9jbGF1c2U6CisJCQlGT1IgUE9SVElPTiBPRiBDb2xJZCAn KCcgYV9leHByICcpJworCQkJCXsKKwkJCQkJRm9yUG9ydGlvbk9mQ2xhdXNlICpuID0gbWFr ZU5vZGUoRm9yUG9ydGlvbk9mQ2xhdXNlKTsKKwkJCQkJbi0+cmFuZ2VfbmFtZSA9ICQ0Owor CQkJCQluLT5sb2NhdGlvbiA9IEA0OworCQkJCQluLT50YXJnZXQgPSAkNjsKKwkJCQkJJCQg PSBuOworCQkJCX0KKwkJCXwgRk9SIFBPUlRJT04gT0YgQ29sSWQgRlJPTSBhX2V4cHIgVE8g YV9leHByCisJCQkJeworCQkJCQlGb3JQb3J0aW9uT2ZDbGF1c2UgKm4gPSBtYWtlTm9kZShG b3JQb3J0aW9uT2ZDbGF1c2UpOworCQkJCQluLT5yYW5nZV9uYW1lID0gJDQ7CisJCQkJCW4t PmxvY2F0aW9uID0gQDQ7CisJCQkJCW4tPnRhcmdldF9zdGFydCA9ICQ2OworCQkJCQluLT50 YXJnZXRfZW5kID0gJDg7CisJCQkJCSQkID0gbjsKKwkJCQl9CisJCQl8IC8qRU1QVFkqLwkJ CQkJeyAkJCA9IE5VTEw7IH0KKwkJOworCiAvKgogICogVEFCTEVTQU1QTEUgZGVjb3JhdGlv biBpbiBhIEZST00gaXRlbQogICovCkBAIC0xNzc5Nyw2ICsxNzgzNSw3IEBAIHVucmVzZXJ2 ZWRfa2V5d29yZDoKIAkJCXwgUExBTgogCQkJfCBQTEFOUwogCQkJfCBQT0xJQ1kKKwkJCXwg UE9SVElPTgogCQkJfCBQUkVDRURJTkcKIAkJCXwgUFJFUEFSRQogCQkJfCBQUkVQQVJFRApA QCAtMTg0MjUsNiArMTg0NjQsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFBMQU4K IAkJCXwgUExBTlMKIAkJCXwgUE9MSUNZCisJCQl8IFBPUlRJT04KIAkJCXwgUE9TSVRJT04K IAkJCXwgUFJFQ0VESU5HCiAJCQl8IFBSRVBBUkUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9hZ2cuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpp bmRleCBiZWU3ZDgzNDZhMy4uMDBlZGFmODNiYWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9hZ2cuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdn LmMKQEAgLTU3Niw2ICs1NzYsMTMgQEAgY2hlY2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50 cyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCWNhc2UgRVhQUl9LSU5EX0NZ Q0xFX01BUks6CiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJf S0lORF9VUERBVEVfUE9SVElPTjoKKwkJCWlmIChpc0FnZykKKwkJCQllcnIgPSBfKCJhZ2dy ZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBGT1IgUE9SVElPTiBPRiBleHBy ZXNzaW9ucyIpOworCQkJZWxzZQorCQkJCWVyciA9IF8oImdyb3VwaW5nIG9wZXJhdGlvbnMg YXJlIG5vdCBhbGxvd2VkIGluIEZPUiBQT1JUSU9OIE9GIGV4cHJlc3Npb25zIik7CisKKwkJ CWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZh dWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCkBAIC05NjcsNiArOTc0LDkgQEAgdHJhbnNm b3JtV2luZG93RnVuY0NhbGwoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaW5kb3dGdW5jICp3ZnVu YywKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJCWVycmtpbmQgPSB0cnVlOwog CQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX1VQREFURV9QT1JUSU9OOgorCQkJZXJyID0g Xygid2luZG93IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gRk9SIFBPUlRJT04gT0Yg ZXhwcmVzc2lvbnMiKTsKKwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50 ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29sbGF0ZS5jIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2NvbGxhdGUuYwppbmRleCA0NDUyOWJiNDllNi4uMTRmZmI3YmE2NDkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYwpAQCAtNDg0LDYgKzQ4NCw3IEBA IGFzc2lnbl9jb2xsYXRpb25zX3dhbGtlcihOb2RlICpub2RlLCBhc3NpZ25fY29sbGF0aW9u c19jb250ZXh0ICpjb250ZXh0KQogCQljYXNlIFRfSm9pbkV4cHI6CiAJCWNhc2UgVF9Gcm9t RXhwcjoKIAkJY2FzZSBUX09uQ29uZmxpY3RFeHByOgorCQljYXNlIFRfRm9yUG9ydGlvbk9m RXhwcjoKIAkJY2FzZSBUX1NvcnRHcm91cENsYXVzZToKIAkJY2FzZSBUX01lcmdlQWN0aW9u OgogCQkJKHZvaWQpIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jCmluZGV4IDg1NzdmMjc4MDY1Li5iMzU3ODFiYjI0NyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZXhwci5jCkBAIC01ODYsNiArNTg2LDkgQEAgdHJhbnNmb3JtQ29sdW1u UmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQljYXNlIEVYUFJf S0lORF9QQVJUSVRJT05fQk9VTkQ6CiAJCQllcnIgPSBfKCJjYW5ub3QgdXNlIGNvbHVtbiBy ZWZlcmVuY2UgaW4gcGFydGl0aW9uIGJvdW5kIGV4cHJlc3Npb24iKTsKIAkJCWJyZWFrOwor CQljYXNlIEVYUFJfS0lORF9VUERBVEVfUE9SVElPTjoKKwkJCWVyciA9IF8oImNhbm5vdCB1 c2UgY29sdW1uIHJlZmVyZW5jZSBpbiBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9uIik7CisJ CQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVm YXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpAQCAtMTg1OSw2ICsxODYyLDkgQEAgdHJh bnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspCiAJ CWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46CiAJCQllcnIgPSBfKCJjYW5ub3Qg dXNlIHN1YnF1ZXJ5IGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24iKTsKIAkJCWJy ZWFrOworCQljYXNlIEVYUFJfS0lORF9VUERBVEVfUE9SVElPTjoKKwkJCWVyciA9IF8oImNh bm5vdCB1c2Ugc3VicXVlcnkgaW4gRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lvbiIpOworCQkJ YnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1 bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKQEAgLTMxNTAsNiArMzE1Niw4IEBAIFBhcnNl RXhwcktpbmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCQlyZXR1cm4gIlVQREFU RSI7CiAJCWNhc2UgRVhQUl9LSU5EX01FUkdFX1dIRU46CiAJCQlyZXR1cm4gIk1FUkdFIFdI RU4iOworCQljYXNlIEVYUFJfS0lORF9VUERBVEVfUE9SVElPTjoKKwkJCXJldHVybiAiRk9S IFBPUlRJT04gT0YiOwogCQljYXNlIEVYUFJfS0lORF9HUk9VUF9CWToKIAkJCXJldHVybiAi R1JPVVAgQlkiOwogCQljYXNlIEVYUFJfS0lORF9PUkRFUl9CWToKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZnVuYy5jCmluZGV4IDliMjMzNDRhM2IxLi45OTkyMWQ3MTNiZSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYworKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfZnVuYy5jCkBAIC0yNjU4LDYgKzI2NTgsOSBAQCBjaGVja19zcmZfY2FsbF9w bGFjZW1lbnQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpsYXN0X3NyZiwgaW50IGxvY2F0 aW9uKQogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQkJZXJya2luZCA9IHRydWU7 CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT046CisJCQllcnIg PSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gRk9SIFBP UlRJT04gT0YgZXhwcmVzc2lvbnMiKTsKKwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhl cmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhl CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jCmluZGV4IDg3ZGY3OTAyN2Q3Li41NmY2NzZh MWYxZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMKQEAgLTM4NSw3ICszODUsNyBA QCB0cmFuc2Zvcm1NZXJnZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBNZXJnZVN0bXQgKnN0 bXQpCiAJCQkJCXBzdGF0ZS0+cF9pc19pbnNlcnQgPSBmYWxzZTsKIAkJCQkJYWN0aW9uLT50 YXJnZXRMaXN0ID0KIAkJCQkJCXRyYW5zZm9ybVVwZGF0ZVRhcmdldExpc3QocHN0YXRlLAot CQkJCQkJCQkJCQkJICBtZXJnZVdoZW5DbGF1c2UtPnRhcmdldExpc3QpOworCQkJCQkJCQkJ CQkJICBtZXJnZVdoZW5DbGF1c2UtPnRhcmdldExpc3QsIE5VTEwpOwogCQkJCX0KIAkJCQli cmVhazsKIAkJCWNhc2UgQ01EX0RFTEVURToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jl d3JpdGUvcmV3cml0ZUhhbmRsZXIuYyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhh bmRsZXIuYwppbmRleCBlMWQ4MDVkMTEzZS4uYjc2MjUzYjQxOTggMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYworKysgYi9zcmMvYmFja2VuZC9y ZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKQEAgLTM2NjcsNiArMzY2NywzMCBAQCByZXdyaXRl VGFyZ2V0VmlldyhRdWVyeSAqcGFyc2V0cmVlLCBSZWxhdGlvbiB2aWV3KQogCQkJCQkJCQkJ ICAmcGFyc2V0cmVlLT5oYXNTdWJMaW5rcyk7CiAJfQogCisJaWYgKHBhcnNldHJlZS0+Zm9y UG9ydGlvbk9mICYmIHBhcnNldHJlZS0+Y29tbWFuZFR5cGUgPT0gQ01EX1VQREFURSkKKwl7 CisJCS8qCisJCSAqIExpa2UgdGhlIElOU0VSVC9VUERBVEUgY29kZSBhYm92ZSwgdXBkYXRl IHRoZSByZXNub3MgaW4gdGhlCisJCSAqIGF1eGlsaWFyeSBVUERBVEUgdGFyZ2V0bGlzdCB0 byByZWZlciB0byBjb2x1bW5zIG9mIHRoZSBiYXNlCisJCSAqIHJlbGF0aW9uLgorCQkgKi8K KwkJZm9yZWFjaChsYywgcGFyc2V0cmVlLT5mb3JQb3J0aW9uT2YtPnJhbmdlVGFyZ2V0TGlz dCkKKwkJeworCQkJVGFyZ2V0RW50cnkgKnRsZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3Qo bGMpOworCQkJVGFyZ2V0RW50cnkgKnZpZXdfdGxlOworCisJCQlpZiAodGxlLT5yZXNqdW5r KQorCQkJCWNvbnRpbnVlOworCisJCQl2aWV3X3RsZSA9IGdldF90bGVfYnlfcmVzbm8odmll d190YXJnZXRsaXN0LCB0bGUtPnJlc25vKTsKKwkJCWlmICh2aWV3X3RsZSAhPSBOVUxMICYm ICF2aWV3X3RsZS0+cmVzanVuayAmJiBJc0Eodmlld190bGUtPmV4cHIsIFZhcikpCisJCQkJ dGxlLT5yZXNubyA9ICgoVmFyICopIHZpZXdfdGxlLT5leHByKS0+dmFyYXR0bm87CisJCQll bHNlCisJCQkJZWxvZyhFUlJPUiwgImF0dHJpYnV0ZSBudW1iZXIgJWQgbm90IGZvdW5kIGlu IHZpZXcgdGFyZ2V0bGlzdCIsCisJCQkJCSB0bGUtPnJlc25vKTsKKwkJfQorCX0KKwogCS8q CiAJICogRm9yIFVQREFURS9ERUxFVEUvTUVSR0UsIHB1bGwgdXAgYW55IFdIRVJFIHF1YWxz IGZyb20gdGhlIHZpZXcuICBXZQogCSAqIGtub3cgdGhhdCBhbnkgVmFycyBpbiB0aGUgcXVh bHMgbXVzdCByZWZlcmVuY2UgdGhlIG9uZSBiYXNlIHJlbGF0aW9uLApAQCAtNDAwNiw2ICs0 MDMwLDIyIEBAIFJld3JpdGVRdWVyeShRdWVyeSAqcGFyc2V0cmVlLCBMaXN0ICpyZXdyaXRl X2V2ZW50cywgaW50IG9yaWdfcnRfbGVuZ3RoKQogCQllbHNlIGlmIChldmVudCA9PSBDTURf VVBEQVRFKQogCQl7CiAJCQlBc3NlcnQocGFyc2V0cmVlLT5vdmVycmlkZSA9PSBPVkVSUklE SU5HX05PVF9TRVQpOworCQkJLyoKKwkJCSAqIFVwZGF0ZSBGT1IgUE9SVElPTiBPRiBjb2x1 bW4ocykgYXV0b21hdGljYWxseS4gRG9uJ3QKKwkJCSAqIGRvIHRoaXMgdW50aWwgd2UncmUg ZG9uZSByZXdyaXRpbmcgYSB2aWV3IHVwZGF0ZSwgc28KKwkJCSAqIHRoYXQgd2UgZG9uJ3Qg YWRkIHRoZSBzYW1lIHVwZGF0ZSBvbiB0aGUgcmVjdXJzaW9uLgorCQkJICovCisJCQlpZiAo cGFyc2V0cmVlLT5mb3JQb3J0aW9uT2YgJiYKKwkJCQlydF9lbnRyeV9yZWxhdGlvbi0+cmRf cmVsLT5yZWxraW5kICE9IFJFTEtJTkRfVklFVykKKwkJCXsKKwkJCQlMaXN0Q2VsbCAqdGw7 CisJCQkJZm9yZWFjaCh0bCwgcGFyc2V0cmVlLT5mb3JQb3J0aW9uT2YtPnJhbmdlVGFyZ2V0 TGlzdCkKKwkJCQl7CisJCQkJCVRhcmdldEVudHJ5ICp0bGUgPSAoVGFyZ2V0RW50cnkgKikg bGZpcnN0KHRsKTsKKwkJCQkJcGFyc2V0cmVlLT50YXJnZXRMaXN0ID0gbGFwcGVuZChwYXJz ZXRyZWUtPnRhcmdldExpc3QsIHRsZSk7CisJCQkJfQorCQkJfQorCiAJCQlwYXJzZXRyZWUt PnRhcmdldExpc3QgPQogCQkJCXJld3JpdGVUYXJnZXRMaXN0SVUocGFyc2V0cmVlLT50YXJn ZXRMaXN0LAogCQkJCQkJCQkJcGFyc2V0cmVlLT5jb21tYW5kVHlwZSwKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3JpX3RyaWdnZXJzLmMKaW5kZXggYTJjYzgzN2ViZjkuLmQ1Yjg2NjZjMjE2IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwpAQCAtMjI4LDYgKzIyOCw3IEBA IHN0YXRpYyBib29sIHJpX1BlcmZvcm1DaGVjayhjb25zdCBSSV9Db25zdHJhaW50SW5mbyAq cmlpbmZvLAogCQkJCQkJCVJJX1F1ZXJ5S2V5ICpxa2V5LCBTUElQbGFuUHRyIHFwbGFuLAog CQkJCQkJCVJlbGF0aW9uIGZrX3JlbCwgUmVsYXRpb24gcGtfcmVsLAogCQkJCQkJCVR1cGxl VGFibGVTbG90ICpvbGRzbG90LCBUdXBsZVRhYmxlU2xvdCAqbmV3c2xvdCwKKwkJCQkJCQlp bnQgZm9yUG9ydGlvbk9mUGFyYW0sIERhdHVtIGZvclBvcnRpb25PZiwKIAkJCQkJCQlib29s IGRldGVjdE5ld1Jvd3MsIGludCBleHBlY3RfT0spOwogc3RhdGljIHZvaWQgcmlfRXh0cmFj dFZhbHVlcyhSZWxhdGlvbiByZWwsIFR1cGxlVGFibGVTbG90ICpzbG90LAogCQkJCQkJCSBj b25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLCBib29sIHJlbF9pc19waywKQEAgLTIz Niw2ICsyMzcsMTEgQEAgc3RhdGljIHZvaWQgcmlfUmVwb3J0VmlvbGF0aW9uKGNvbnN0IFJJ X0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJCQkJCQkJICAgUmVsYXRpb24gcGtfcmVsLCBS ZWxhdGlvbiBma19yZWwsCiAJCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnZpb2xhdG9yc2xv dCwgVHVwbGVEZXNjIHR1cGRlc2MsCiAJCQkJCQkJICAgaW50IHF1ZXJ5bm8sIGJvb2wgcGFy dGdvbmUpIHBnX2F0dHJpYnV0ZV9ub3JldHVybigpOworc3RhdGljIGJvb2wgZnBvX3Rhcmdl dHNfcGtfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBvcmFsLAorCQkJ CQkJCQkgY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbyk7CitzdGF0aWMgRGF0dW0g cmVzdHJpY3RfY2FzY2FkaW5nX3JhbmdlKGNvbnN0IEZvclBvcnRpb25PZlN0YXRlICp0Z190 ZW1wb3JhbCwKKwkJCQkJCQkJCSAgY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywK KwkJCQkJCQkJCSAgVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3QpOwogCiAKIC8qCkBAIC00NTAs NiArNDU2LDcgQEAgUklfRktleV9jaGVjayhUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEpCiAJcmlf UGVyZm9ybUNoZWNrKHJpaW5mbywgJnFrZXksIHFwbGFuLAogCQkJCQlma19yZWwsIHBrX3Jl bCwKIAkJCQkJTlVMTCwgbmV3c2xvdCwKKwkJCQkJLTEsIChEYXR1bSkgMCwKIAkJCQkJcGtf cmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSwKIAkJ CQkJU1BJX09LX1NFTEVDVCk7CiAKQEAgLTYxNCw2ICs2MjEsNyBAQCByaV9DaGVja19Qa19N YXRjaChSZWxhdGlvbiBwa19yZWwsIFJlbGF0aW9uIGZrX3JlbCwKIAlyZXN1bHQgPSByaV9Q ZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCiAJCQkJCQkJIGZrX3JlbCwgcGtf cmVsLAogCQkJCQkJCSBvbGRzbG90LCBOVUxMLAorCQkJCQkJCSAtMSwgKERhdHVtKSAwLAog CQkJCQkJCSB0cnVlLAkvKiB0cmVhdCBsaWtlIHVwZGF0ZSAqLwogCQkJCQkJCSBTUElfT0tf U0VMRUNUKTsKIApAQCAtNzEzLDYgKzcyMSw4IEBAIHJpX3Jlc3RyaWN0KFRyaWdnZXJEYXRh ICp0cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rpb24pCiAJVHVwbGVUYWJsZVNsb3QgKm9sZHNs b3Q7CiAJUklfUXVlcnlLZXkgcWtleTsKIAlTUElQbGFuUHRyCXFwbGFuOworCWludAkJCXRh cmdldFJhbmdlUGFyYW0gPSAtMTsKKwlEYXR1bQkJdGFyZ2V0UmFuZ2UgPSAoRGF0dW0pIDA7 CiAKIAlyaWluZm8gPSByaV9GZXRjaENvbnN0cmFpbnRJbmZvKHRyaWdkYXRhLT50Z190cmln Z2VyLAogCQkJCQkJCQkJdHJpZ2RhdGEtPnRnX3JlbGF0aW9uLCB0cnVlKTsKQEAgLTgwMyw5 ICs4MTMsMTYgQEAgcmlfcmVzdHJpY3QoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBib29sIGlz X25vX2FjdGlvbikKIAkvKgogCSAqIFdlIGhhdmUgYSBwbGFuIG5vdy4gUnVuIGl0IHRvIGNo ZWNrIGZvciBleGlzdGluZyByZWZlcmVuY2VzLgogCSAqLworCWlmICh0cmlnZGF0YS0+dGdf dGVtcG9yYWwpCisJeworCQl0YXJnZXRSYW5nZVBhcmFtID0gcmlpbmZvLT5ua2V5cyAtIDE7 CisJCXRhcmdldFJhbmdlID0gcmVzdHJpY3RfY2FzY2FkaW5nX3JhbmdlKHRyaWdkYXRhLT50 Z190ZW1wb3JhbCwgcmlpbmZvLCBvbGRzbG90KTsKKwl9CisKIAlyaV9QZXJmb3JtQ2hlY2so cmlpbmZvLCAmcWtleSwgcXBsYW4sCiAJCQkJCWZrX3JlbCwgcGtfcmVsLAogCQkJCQlvbGRz bG90LCBOVUxMLAorCQkJCQl0YXJnZXRSYW5nZVBhcmFtLCB0YXJnZXRSYW5nZSwKIAkJCQkJ dHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICovCiAJCQkJCVNQSV9PS19TRUxFQ1Qp OwogCkBAIC05MTIsNiArOTI5LDcgQEAgUklfRktleV9jYXNjYWRlX2RlbChQR19GVU5DVElP Tl9BUkdTKQogCXJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwKIAkJCQkJ ZmtfcmVsLCBwa19yZWwsCiAJCQkJCW9sZHNsb3QsIE5VTEwsCisJCQkJCS0xLCAoRGF0dW0p IDAsCiAJCQkJCXRydWUsCQkvKiBtdXN0IGRldGVjdCBuZXcgcm93cyAqLwogCQkJCQlTUElf T0tfREVMRVRFKTsKIApAQCAtMTAzMyw2ICsxMDUxLDcgQEAgUklfRktleV9jYXNjYWRlX3Vw ZChQR19GVU5DVElPTl9BUkdTKQogCXJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBx cGxhbiwKIAkJCQkJZmtfcmVsLCBwa19yZWwsCiAJCQkJCW9sZHNsb3QsIG5ld3Nsb3QsCisJ CQkJCS0xLCAoRGF0dW0pIDAsCiAJCQkJCXRydWUsCQkvKiBtdXN0IGRldGVjdCBuZXcgcm93 cyAqLwogCQkJCQlTUElfT0tfVVBEQVRFKTsKIApAQCAtMTI2NSw2ICsxMjg0LDcgQEAgcmlf c2V0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19zZXRfbnVsbCwgaW50IHRna2lu ZCkKIAlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCiAJCQkJCWZrX3Jl bCwgcGtfcmVsLAogCQkJCQlvbGRzbG90LCBOVUxMLAorCQkJCQktMSwgKERhdHVtKSAwLAog CQkJCQl0cnVlLAkJLyogbXVzdCBkZXRlY3QgbmV3IHJvd3MgKi8KIAkJCQkJU1BJX09LX1VQ REFURSk7CiAKQEAgLTI0MTIsNiArMjQzMiw3IEBAIHJpX1BlcmZvcm1DaGVjayhjb25zdCBS SV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLAogCQkJCVJJX1F1ZXJ5S2V5ICpxa2V5LCBTUElQ bGFuUHRyIHFwbGFuLAogCQkJCVJlbGF0aW9uIGZrX3JlbCwgUmVsYXRpb24gcGtfcmVsLAog CQkJCVR1cGxlVGFibGVTbG90ICpvbGRzbG90LCBUdXBsZVRhYmxlU2xvdCAqbmV3c2xvdCwK KwkJCQlpbnQgZm9yUG9ydGlvbk9mUGFyYW0sIERhdHVtIGZvclBvcnRpb25PZiwKIAkJCQli b29sIGRldGVjdE5ld1Jvd3MsIGludCBleHBlY3RfT0spCiB7CiAJUmVsYXRpb24JcXVlcnlf cmVsLApAQCAtMjQ2Nyw2ICsyNDg4LDEyIEBAIHJpX1BlcmZvcm1DaGVjayhjb25zdCBSSV9D b25zdHJhaW50SW5mbyAqcmlpbmZvLAogCQlyaV9FeHRyYWN0VmFsdWVzKHNvdXJjZV9yZWws IG9sZHNsb3QsIHJpaW5mbywgc291cmNlX2lzX3BrLAogCQkJCQkJIHZhbHMsIG51bGxzKTsK IAl9CisJLyogQWRkIG9uZSBtb3JlIHF1ZXJ5IHBhcmFtIGlmIHdlIGFyZSB1c2luZyBGT1Ig UE9SVElPTiBPRiAqLworCWlmIChmb3JQb3J0aW9uT2YpCisJeworCQl2YWxzW2ZvclBvcnRp b25PZlBhcmFtXSA9IGZvclBvcnRpb25PZjsKKwkJbnVsbHNbZm9yUG9ydGlvbk9mUGFyYW1d ID0gJyAnOworCX0KIAogCS8qCiAJICogSW4gUkVBRCBDT01NSVRURUQgbW9kZSwgd2UganVz dCBuZWVkIHRvIHVzZSBhbiB1cC10by1kYXRlIHJlZ3VsYXIKQEAgLTMxNDMsMyArMzE3MCw1 MCBAQCBSSV9GS2V5X3RyaWdnZXJfdHlwZShPaWQgdGdmb2lkKQogCiAJcmV0dXJuIFJJX1RS SUdHRVJfTk9ORTsKIH0KKworLyoKKyAqIGZwb190YXJnZXRzX3BrX3JhbmdlCisgKgorICog UmV0dXJucyB0cnVlIGlmZiB0aGUgcHJpbWFyeSBrZXkgcmVmZXJlbmNlZCBieSByaWluZm8g aW5jbHVkZXMgdGhlIHJhbmdlCisgKiBjb2x1bW4gdGFyZ2V0ZWQgYnkgdGhlIEZPUiBQT1JU SU9OIE9GIGNsYXVzZSAoYWNjb3JkaW5nIHRvIHRnX3RlbXBvcmFsKS4KKyAqLworc3RhdGlj IGJvb2wKK2Zwb190YXJnZXRzX3BrX3JhbmdlKGNvbnN0IEZvclBvcnRpb25PZlN0YXRlICp0 Z190ZW1wb3JhbCwgY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbykKK3sKKwlpZiAo dGdfdGVtcG9yYWwgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHJpaW5m by0+cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0gPT0gdGdfdGVtcG9yYWwtPmZwX3Jh bmdlQXR0bm87Cit9CisKKy8qCisgKiByZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2UgLQorICoK KyAqIFJldHVybnMgYSBEYXR1bSBvZiBSYW5nZVR5cGVQIGhvbGRpbmcgdGhlIGFwcHJvcHJp YXRlIHRpbWVzcGFuCisgKiB0byB0YXJnZXQgY2hpbGQgcmVjb3JkcyB3aGVuIHdlIENBU0NB REUvU0VUIE5VTEwvU0VUIERFRkFVTFQuCisgKgorICogSW4gYSBub3JtYWwgVVBEQVRFL0RF TEVURSB0aGlzIHNob3VsZCBiZSB0aGUgcGFyZW50J3Mgb3duIHZhbGlkIHRpbWUsCisgKiBi dXQgaWYgdGhlcmUgd2FzIGEgRk9SIFBPUlRJT04gT0YgY2xhdXNlLCB0aGVuIHdlIHNob3Vs ZCB1c2UgdGhhdCB0bworICogdHJpbSBkb3duIHRoZSBwYXJlbnQncyBzcGFuIGZ1cnRoZXIu CisgKi8KK3N0YXRpYyBEYXR1bQorcmVzdHJpY3RfY2FzY2FkaW5nX3JhbmdlKGNvbnN0IEZv clBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwgY29uc3QgUklfQ29uc3RyYWludEluZm8g KnJpaW5mbywgVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3QpCit7CisJRGF0dW0JcGtSZWNvcmRS YW5nZTsKKwlib29sCWlzbnVsbDsKKworCXBrUmVjb3JkUmFuZ2UgPSBzbG90X2dldGF0dHIo b2xkc2xvdCwgcmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXSwgJmlzbnVs bCk7CisJaWYgKGlzbnVsbCkKKwkJZWxvZyhFUlJPUiwgImFwcGxpY2F0aW9uIHRpbWUgc2hv dWxkIG5vdCBiZSBudWxsIik7CisKKwlpZiAoZnBvX3RhcmdldHNfcGtfcmFuZ2UodGdfdGVt cG9yYWwsIHJpaW5mbykpCisJeworCQlSYW5nZVR5cGUgKnIxID0gRGF0dW1HZXRSYW5nZVR5 cGVQKHBrUmVjb3JkUmFuZ2UpOworCQlSYW5nZVR5cGUgKnIyID0gRGF0dW1HZXRSYW5nZVR5 cGVQKHRnX3RlbXBvcmFsLT5mcF90YXJnZXRSYW5nZSk7CisJCU9pZCBybmd0eXBpZCA9IFJh bmdlVHlwZUdldE9pZChyMSk7CisJCVR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSA9IGxvb2t1 cF90eXBlX2NhY2hlKHJuZ3R5cGlkLCBUWVBFQ0FDSEVfUkFOR0VfSU5GTyk7CisJCXJldHVy biBSYW5nZVR5cGVQR2V0RGF0dW0ocmFuZ2VfaW50ZXJzZWN0X2ludGVybmFsKHR5cGNhY2hl LCByMSwgcjIpKTsKKwl9CisJZWxzZQorCQlyZXR1cm4gcGtSZWNvcmRSYW5nZTsKK30KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggNDhhMjgwZDA4OWIuLmI2N2Mw YzAzYjk3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpAQCAtMTYyOSw3 ICsxNjI5LDcgQEAgZ2V0X2Z1bmNfbmFtZShPaWQgZnVuY2lkKQogICoJCVJldHVybnMgdGhl IHBnX25hbWVzcGFjZSBPSUQgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gZnVuY3Rpb24uCiAg Ki8KIE9pZAotZ2V0X2Z1bmNfbmFtZXNwYWNlKE9pZCBmdW5jaWQpCitnZXRfZnVuY19uYW1l c3BhY2UoT2lkIGZ1bmNpZCwgYm9vbCBtaXNzaW5nX29rKQogewogCUhlYXBUdXBsZQl0cDsK IApAQCAtMTY0Myw2ICsxNjQzLDggQEAgZ2V0X2Z1bmNfbmFtZXNwYWNlKE9pZCBmdW5jaWQp CiAJCVJlbGVhc2VTeXNDYWNoZSh0cCk7CiAJCXJldHVybiByZXN1bHQ7CiAJfQorCWVsc2Ug aWYgKCFtaXNzaW5nX29rKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBm b3IgZnVuY3Rpb24gJXUiLCBmdW5jaWQpOwogCWVsc2UKIAkJcmV0dXJuIEludmFsaWRPaWQ7 CiB9CkBAIC0yMTg4LDYgKzIxOTAsNTkgQEAgZ2V0X3R5cGlzZGVmaW5lZChPaWQgdHlwaWQp CiAJCXJldHVybiBmYWxzZTsKIH0KIAorLyoKKyAqIGdldF90eXBuYW1lCisgKgorICoJICBS ZXR1cm5zIHRoZSBuYW1lIG9mIGEgZ2l2ZW4gdHlwZQorICoKKyAqIFJldHVybnMgYSBwYWxs b2MnZCBjb3B5IG9mIHRoZSBzdHJpbmcsIG9yIE5VTEwgaWYgbm8gc3VjaCB0eXBlLgorICov CitjaGFyICoKK2dldF90eXBuYW1lKE9pZCB0eXBpZCkKK3sKKwlIZWFwVHVwbGUgICB0cDsK KworCXRwID0gU2VhcmNoU3lzQ2FjaGUxKFRZUEVPSUQsIE9iamVjdElkR2V0RGF0dW0odHlw aWQpKTsKKwlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0cCkpCisJeworCQlGb3JtX3BnX3R5cGUg dHlwdHVwID0gKEZvcm1fcGdfdHlwZSkgR0VUU1RSVUNUKHRwKTsKKwkJY2hhcgkgICAqcmVz dWx0OworCisJCXJlc3VsdCA9IHBzdHJkdXAoTmFtZVN0cih0eXB0dXAtPnR5cG5hbWUpKTsK KwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisJZWxzZQor CQlyZXR1cm4gTlVMTDsKK30KKworLyoKKyAqIGdldF90eXBuYW1lX2FuZF9uYW1lc3BhY2UK KyAqCisgKgkgIFJldHVybnMgdGhlIG5hbWUgYW5kIG5hbWVzcGFjZSBvZiBhIGdpdmVuIHR5 cGUKKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgb25lIGZvdW5kLCBvciBmYWxzZSBpZiBub3Qu CisgKi8KK2Jvb2wKK2dldF90eXBuYW1lX2FuZF9uYW1lc3BhY2UoT2lkIHR5cGlkLCBjaGFy ICoqdHlwbmFtZSwgY2hhciAqKnR5cG5hbWVzcGFjZSkKK3sKKwlIZWFwVHVwbGUJdHA7CisK Kwl0cCA9IFNlYXJjaFN5c0NhY2hlMShUWVBFT0lELCBPYmplY3RJZEdldERhdHVtKHR5cGlk KSk7CisJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHApKQorCXsKKwkJRm9ybV9wZ190eXBlIHR5 cHR1cCA9IChGb3JtX3BnX3R5cGUpIEdFVFNUUlVDVCh0cCk7CisKKwkJKnR5cG5hbWUgPSBw c3RyZHVwKE5hbWVTdHIodHlwdHVwLT50eXBuYW1lKSk7CisJCSp0eXBuYW1lc3BhY2UgPSBn ZXRfbmFtZXNwYWNlX25hbWUodHlwdHVwLT50eXBuYW1lc3BhY2UpOworCQlSZWxlYXNlU3lz Q2FjaGUodHApOworCQkvKiAqdHlwbmFtZXNwYWNlIGlzIE5VTEwgaWYgaXQgd2Fzbid0IGZv dW5kOiAqLworCQlyZXR1cm4gKnR5cG5hbWVzcGFjZTsKKwl9CisJZWxzZQorCQlyZXR1cm4g ZmFsc2U7Cit9CisKIC8qCiAgKiBnZXRfdHlwbGVuCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL3N0cmF0bnVtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3RyYXRudW0u aAppbmRleCA4YTQ3ZDNjOWVjOC4uYjgwMWVmMWUzYzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2FjY2Vzcy9zdHJhdG51bS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zdHJhdG51 bS5oCkBAIC03OSw3ICs3OSw3IEBAIHR5cGVkZWYgdWludDE2IFN0cmF0ZWd5TnVtYmVyOwog I2RlZmluZSBSVE9sZEJlbG93U3RyYXRlZ3lOdW1iZXIJCTI5CS8qIGZvciBvbGQgc3BlbGxp bmcgb2YgPDx8ICovCiAjZGVmaW5lIFJUT2xkQWJvdmVTdHJhdGVneU51bWJlcgkJMzAJLyog Zm9yIG9sZCBzcGVsbGluZyBvZiB8Pj4gKi8KIAotI2RlZmluZSBSVE1heFN0cmF0ZWd5TnVt YmVyCQkJCTMwCisjZGVmaW5lIFJUTWF4U3RyYXRlZ3lOdW1iZXIJCQkJMzIKIAogCiAjZW5k aWYJCQkJCQkJLyogU1RSQVROVU1fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29t bWFuZHMvdHJpZ2dlci5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdHJpZ2dlci5oCmluZGV4 IDhhNWE5ZmU2NDIyLi4zZDE1NjQ4MzMyNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29t bWFuZHMvdHJpZ2dlci5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RyaWdnZXIuaApA QCAtNDEsNiArNDEsNyBAQCB0eXBlZGVmIHN0cnVjdCBUcmlnZ2VyRGF0YQogCVR1cGxlc3Rv cmVzdGF0ZSAqdGdfb2xkdGFibGU7CiAJVHVwbGVzdG9yZXN0YXRlICp0Z19uZXd0YWJsZTsK IAljb25zdCBCaXRtYXBzZXQgKnRnX3VwZGF0ZWRjb2xzOworCUZvclBvcnRpb25PZlN0YXRl ICp0Z190ZW1wb3JhbDsKIH0gVHJpZ2dlckRhdGE7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rl cy5oCmluZGV4IDE1YTQyZDQ3ZGZlLi4wNmRmODAwZjMzMSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25v ZGVzLmgKQEAgLTQyLDEyICs0MiwxNCBAQAogI2luY2x1ZGUgInN0b3JhZ2UvY29uZGl0aW9u X3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAidXRpbHMvaHNlYXJjaC5oIgogI2luY2x1ZGUgInV0 aWxzL3F1ZXJ5ZW52aXJvbm1lbnQuaCIKKyNpbmNsdWRlICJ1dGlscy9yYW5nZXR5cGVzLmgi CiAjaW5jbHVkZSAidXRpbHMvcmVsdHJpZ2dlci5oIgogI2luY2x1ZGUgInV0aWxzL3NoYXJl ZHR1cGxlc3RvcmUuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwc2hvdC5oIgogI2luY2x1ZGUg InV0aWxzL3NvcnRzdXBwb3J0LmgiCiAjaW5jbHVkZSAidXRpbHMvdHVwbGVzb3J0LmgiCiAj aW5jbHVkZSAidXRpbHMvdHVwbGVzdG9yZS5oIgorI2luY2x1ZGUgInV0aWxzL3R5cGNhY2hl LmgiCiAKIHN0cnVjdCBQbGFuU3RhdGU7CQkJCS8qIGZvcndhcmQgcmVmZXJlbmNlcyBpbiB0 aGlzIGZpbGUgKi8KIHN0cnVjdCBQYXJhbGxlbEhhc2hKb2luU3RhdGU7CkBAIC00MjksNiAr NDMxLDI3IEBAIHR5cGVkZWYgc3RydWN0IE1lcmdlQWN0aW9uU3RhdGUKIAlFeHByU3RhdGUg ICptYXNfd2hlbnF1YWw7CS8qIFdIRU4gW05PVF0gTUFUQ0hFRCBBTkQgY29uZGl0aW9ucyAq LwogfSBNZXJnZUFjdGlvblN0YXRlOwogCisvKgorICogRm9yUG9ydGlvbk9mU3RhdGUKKyAq CisgKiBFeGVjdXRvciBzdGF0ZSBvZiBhIEZPUiBQT1JUSU9OIE9GIG9wZXJhdGlvbi4KKyAq LwordHlwZWRlZiBzdHJ1Y3QgRm9yUG9ydGlvbk9mU3RhdGUKK3sKKwlOb2RlVGFnCQl0eXBl OworCisJY2hhciAgICpmcF9yYW5nZU5hbWU7CQkvKiB0aGUgY29sdW1uL1BFUklPRCBuYW1l ZCBpbiBGT1IgUE9SVElPTiBPRiAqLworCU9pZAkJZnBfcmFuZ2VUeXBlOwkJLyogdGhlIHR5 cGUgb2YgdGhlIEZPUiBQT1JUSU9OIE9GIGV4cHJlc3Npb24gKi8KKwlib29sCWZwX2hhc1Bl cmlvZDsJCS8qIHRydWUgaWZmIHRoaXMgaXMgYSBQRVJJT0Qgbm90IGEgcmFuZ2UgKi8KKwlp bnQJCWZwX3JhbmdlQXR0bm87CQkvKiB0aGUgYXR0bm8gb2YgdGhlIHJhbmdlIGNvbHVtbiAo b3IgMCBmb3IgYSBQRVJJT0QpICovCisJaW50CQlmcF9wZXJpb2RTdGFydEF0dG5vOwkvKiB0 aGUgYXR0bm8gb2YgdGhlIFBFUklPRCBzdGFydCBjb2x1bW4gKG9yIDAgZm9yIGEgcmFuZ2Up ICovCisJaW50CQlmcF9wZXJpb2RFbmRBdHRubzsJCS8qIHRoZSBhdHRubyBvZiB0aGUgUEVS SU9EIGVuZCBjb2x1bW4gKG9yIDAgZm9yIGEgcmFuZ2UpICovCisJRGF0dW0JZnBfdGFyZ2V0 UmFuZ2U7CQkvKiB0aGUgcmFuZ2UgZnJvbSBGT1IgUE9SVElPTiBPRiAqLworCVR5cGVDYWNo ZUVudHJ5ICpmcF9sZWZ0b3ZlcnN0eXBjYWNoZTsJLyogdHlwZSBjYWNoZSBlbnRyeSBvZiB0 aGUgcmFuZ2UgKi8KKwlUdXBsZVRhYmxlU2xvdCAqZnBfRXhpc3Rpbmc7CQkvKiBzbG90IHRv IHN0b3JlIGV4aXN0aW5nIHRhcmdldCB0dXBsZSBpbiAqLworCVR1cGxlVGFibGVTbG90ICpm cF9MZWZ0b3ZlcjsJCS8qIHNsb3QgdG8gc3RvcmUgbGVmdG92ZXIgKi8KK30gRm9yUG9ydGlv bk9mU3RhdGU7CisKIC8qCiAgKiBSZXN1bHRSZWxJbmZvCiAgKgpAQCAtNTUxLDYgKzU3NCw5 IEBAIHR5cGVkZWYgc3RydWN0IFJlc3VsdFJlbEluZm8KIAkvKiBmb3IgTUVSR0UsIGV4cHIg c3RhdGUgZm9yIGNoZWNraW5nIHRoZSBqb2luIGNvbmRpdGlvbiAqLwogCUV4cHJTdGF0ZSAg KnJpX01lcmdlSm9pbkNvbmRpdGlvbjsKIAorCS8qIEZPUiBQT1JUSU9OIE9GIGV2YWx1YXRp b24gc3RhdGUgKi8KKwlGb3JQb3J0aW9uT2ZTdGF0ZSAqcmlfZm9yUG9ydGlvbk9mOworCiAJ LyogcGFydGl0aW9uIGNoZWNrIGV4cHJlc3Npb24gc3RhdGUgKE5VTEwgaWYgbm90IHNldCB1 cCB5ZXQpICovCiAJRXhwclN0YXRlICAqcmlfUGFydGl0aW9uQ2hlY2tFeHByOwogCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggMWNiN2IwMmM1YzIuLmNjN2JmYjBmMjk0IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0xNDIsNiArMTQyLDkgQEAgdHlwZWRlZiBzdHJ1 Y3QgUXVlcnkKIAkgKi8KIAlpbnQJCQlyZXN1bHRSZWxhdGlvbiBwZ19ub2RlX2F0dHIocXVl cnlfanVtYmxlX2lnbm9yZSk7CiAKKwkvKiBGT1IgUE9SVElPTiBPRiBjbGF1c2UgZm9yIFVQ REFURS9ERUxFVEUgKi8KKwlGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2Y7CisKIAkv KiBoYXMgYWdncmVnYXRlcyBpbiB0bGlzdCBvciBoYXZpbmdRdWFsICovCiAJYm9vbAkJaGFz QWdncyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogaGFzIHdpbmRv dyBmdW5jdGlvbnMgaW4gdGxpc3QgKi8KQEAgLTE1ODUsNiArMTU4OCwyMSBAQCB0eXBlZGVm IHN0cnVjdCBSb3dNYXJrQ2xhdXNlCiAJYm9vbAkJcHVzaGVkRG93bjsJCS8qIHB1c2hlZCBk b3duIGZyb20gaGlnaGVyIHF1ZXJ5IGxldmVsPyAqLwogfSBSb3dNYXJrQ2xhdXNlOwogCisv KgorICogRm9yUG9ydGlvbk9mQ2xhdXNlCisgKgkJcmVwcmVzZW50YXRpb24gb2YgRk9SIFBP UlRJT04gT0YgPHBlcmlvZC1uYW1lPiBGUk9NIDx0cz4gVE8gPHRlPgorICoJCW9yIEZPUiBQ T1JUSU9OIE9GIDxwZXJpb2QtbmFtZT4gKDx0YXJnZXQ+KQorICovCit0eXBlZGVmIHN0cnVj dCBGb3JQb3J0aW9uT2ZDbGF1c2UKK3sKKwlOb2RlVGFnCQl0eXBlOworCWNoYXIJICAgKnJh bmdlX25hbWU7CisJaW50CQkJbG9jYXRpb247CisJTm9kZQkgICAqdGFyZ2V0OworCU5vZGUJ ICAgKnRhcmdldF9zdGFydDsKKwlOb2RlCSAgICp0YXJnZXRfZW5kOworfSBGb3JQb3J0aW9u T2ZDbGF1c2U7CisKIC8qCiAgKiBXaXRoQ2xhdXNlIC0KICAqCSAgIHJlcHJlc2VudGF0aW9u IG9mIFdJVEggY2xhdXNlCkBAIC0yMDU3LDEyICsyMDc1LDEzIEBAIHR5cGVkZWYgc3RydWN0 IEluc2VydFN0bXQKICAqLwogdHlwZWRlZiBzdHJ1Y3QgRGVsZXRlU3RtdAogewotCU5vZGVU YWcJCXR5cGU7Ci0JUmFuZ2VWYXIgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0byBkZWxl dGUgZnJvbSAqLwotCUxpc3QJICAgKnVzaW5nQ2xhdXNlOwkvKiBvcHRpb25hbCB1c2luZyBj bGF1c2UgZm9yIG1vcmUgdGFibGVzICovCi0JTm9kZQkgICAqd2hlcmVDbGF1c2U7CS8qIHF1 YWxpZmljYXRpb25zICovCi0JTGlzdAkgICAqcmV0dXJuaW5nTGlzdDsJLyogbGlzdCBvZiBl eHByZXNzaW9ucyB0byByZXR1cm4gKi8KLQlXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlOwkJLyog V0lUSCBjbGF1c2UgKi8KKwlOb2RlVGFnCQkJCXR5cGU7CisJUmFuZ2VWYXIJCSAgICpyZWxh dGlvbjsJCS8qIHJlbGF0aW9uIHRvIGRlbGV0ZSBmcm9tICovCisJRm9yUG9ydGlvbk9mQ2xh dXNlICpmb3JQb3J0aW9uT2Y7CS8qIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSAqLworCUxpc3QJ CQkgICAqdXNpbmdDbGF1c2U7CS8qIG9wdGlvbmFsIHVzaW5nIGNsYXVzZSBmb3IgbW9yZSB0 YWJsZXMgKi8KKwlOb2RlCQkJICAgKndoZXJlQ2xhdXNlOwkvKiBxdWFsaWZpY2F0aW9ucyAq LworCUxpc3QJCQkgICAqcmV0dXJuaW5nTGlzdDsJLyogbGlzdCBvZiBleHByZXNzaW9ucyB0 byByZXR1cm4gKi8KKwlXaXRoQ2xhdXNlCQkgICAqd2l0aENsYXVzZTsJCS8qIFdJVEggY2xh dXNlICovCiB9IERlbGV0ZVN0bXQ7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAg LTIwNzEsMTMgKzIwOTAsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgRGVsZXRlU3RtdAogICovCiB0 eXBlZGVmIHN0cnVjdCBVcGRhdGVTdG10CiB7Ci0JTm9kZVRhZwkJdHlwZTsKLQlSYW5nZVZh ciAgICpyZWxhdGlvbjsJCS8qIHJlbGF0aW9uIHRvIHVwZGF0ZSAqLwotCUxpc3QJICAgKnRh cmdldExpc3Q7CQkvKiB0aGUgdGFyZ2V0IGxpc3QgKG9mIFJlc1RhcmdldCkgKi8KLQlOb2Rl CSAgICp3aGVyZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbnMgKi8KLQlMaXN0CSAgICpmcm9t Q2xhdXNlOwkJLyogb3B0aW9uYWwgZnJvbSBjbGF1c2UgZm9yIG1vcmUgdGFibGVzICovCi0J TGlzdAkgICAqcmV0dXJuaW5nTGlzdDsJLyogbGlzdCBvZiBleHByZXNzaW9ucyB0byByZXR1 cm4gKi8KLQlXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlOwkJLyogV0lUSCBjbGF1c2UgKi8KKwlO b2RlVGFnCQkJCXR5cGU7CisJUmFuZ2VWYXIJCSAgICpyZWxhdGlvbjsJCS8qIHJlbGF0aW9u IHRvIHVwZGF0ZSAqLworCUZvclBvcnRpb25PZkNsYXVzZSAqZm9yUG9ydGlvbk9mOwkvKiBG T1IgUE9SVElPTiBPRiBjbGF1c2UgKi8KKwlMaXN0CQkJICAgKnRhcmdldExpc3Q7CQkvKiB0 aGUgdGFyZ2V0IGxpc3QgKG9mIFJlc1RhcmdldCkgKi8KKwlOb2RlCQkJICAgKndoZXJlQ2xh dXNlOwkvKiBxdWFsaWZpY2F0aW9ucyAqLworCUxpc3QJCQkgICAqZnJvbUNsYXVzZTsJCS8q IG9wdGlvbmFsIGZyb20gY2xhdXNlIGZvciBtb3JlIHRhYmxlcyAqLworCUxpc3QJCQkgICAq cmV0dXJuaW5nTGlzdDsJLyogbGlzdCBvZiBleHByZXNzaW9ucyB0byByZXR1cm4gKi8KKwlX aXRoQ2xhdXNlCQkgICAqd2l0aENsYXVzZTsJCS8qIFdJVEggY2xhdXNlICovCiB9IFVwZGF0 ZVN0bXQ7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVz LmgKaW5kZXggMTRjY2ZjMWFjMWMuLjI2ZDA2ZmNhZDJkIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXRobm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9k ZXMuaApAQCAtMjM4NSw2ICsyMzg1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgTW9kaWZ5VGFibGVQ YXRoCiAJTGlzdAkgICAqcmV0dXJuaW5nTGlzdHM7IC8qIHBlci10YXJnZXQtdGFibGUgUkVU VVJOSU5HIHRsaXN0cyAqLwogCUxpc3QJICAgKnJvd01hcmtzOwkJLyogUGxhblJvd01hcmtz IChub24tbG9ja2luZyBvbmx5KSAqLwogCU9uQ29uZmxpY3RFeHByICpvbmNvbmZsaWN0OyAv KiBPTiBDT05GTElDVCBjbGF1c2UsIG9yIE5VTEwgKi8KKwlGb3JQb3J0aW9uT2ZFeHByICpm b3JQb3J0aW9uT2Y7CS8qIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSBmb3IgVVBEQVRFL0RFTEVU RSAqLwogCWludAkJCWVwcVBhcmFtOwkJLyogSUQgb2YgUGFyYW0gZm9yIEV2YWxQbGFuUXVh bCByZS1ldmFsICovCiAJTGlzdAkgICAqbWVyZ2VBY3Rpb25MaXN0czsJLyogcGVyLXRhcmdl dC10YWJsZSBsaXN0cyBvZiBhY3Rpb25zIGZvcgogCQkJCQkJCQkJICogTUVSR0UgKi8KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggMWFlZWFlYzk1ZTEuLmQ5NzIyOThjZGU3IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAorKysgYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMjQzLDYgKzI0Myw3IEBAIHR5cGVkZWYgc3RydWN0 IE1vZGlmeVRhYmxlCiAJTGlzdAkgICAqcm93TWFya3M7CQkvKiBQbGFuUm93TWFya3MgKG5v bi1sb2NraW5nIG9ubHkpICovCiAJaW50CQkJZXBxUGFyYW07CQkvKiBJRCBvZiBQYXJhbSBm b3IgRXZhbFBsYW5RdWFsIHJlLWV2YWwgKi8KIAlPbkNvbmZsaWN0QWN0aW9uIG9uQ29uZmxp Y3RBY3Rpb247CS8qIE9OIENPTkZMSUNUIGFjdGlvbiAqLworCU5vZGUJICAgKmZvclBvcnRp b25PZjsJLyogRk9SIFBPUlRJT04gT0YgY2xhdXNlIGZvciBVUERBVEUvREVMRVRFICovCiAJ TGlzdAkgICAqYXJiaXRlckluZGV4ZXM7IC8qIExpc3Qgb2YgT04gQ09ORkxJQ1QgYXJiaXRl ciBpbmRleCBPSURzICAqLwogCUxpc3QJICAgKm9uQ29uZmxpY3RTZXQ7CS8qIElOU0VSVCBP TiBDT05GTElDVCBETyBVUERBVEUgdGFyZ2V0bGlzdCAqLwogCUxpc3QJICAgKm9uQ29uZmxp Y3RDb2xzOyAvKiB0YXJnZXQgY29sdW1uIG51bWJlcnMgZm9yIG9uQ29uZmxpY3RTZXQgKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggZWE0NzY1MmFkYjguLjAxYTEwMWQzNzc2IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMjMzMiw0ICsyMzMyLDMwIEBAIHR5cGVkZWYg c3RydWN0IE9uQ29uZmxpY3RFeHByCiAJTGlzdAkgICAqZXhjbFJlbFRsaXN0OwkvKiB0bGlz dCBvZiB0aGUgRVhDTFVERUQgcHNldWRvIHJlbGF0aW9uICovCiB9IE9uQ29uZmxpY3RFeHBy OwogCisvKi0tLS0tLS0tLS0KKyAqIEZvclBvcnRpb25PZkV4cHIgLSByZXByZXNlbnRzIGEg Rk9SIFBPUlRJT04gT0YgLi4uIGV4cHJlc3Npb24KKyAqCisgKiBXZSBzZXQgdXAgYW4gZXhw cmVzc2lvbiB0byBtYWtlIGEgcmFuZ2UgZnJvbSB0aGUgRlJPTS9UTyBib3VuZHMsCisgKiBz byB0aGF0IHdlIGNhbiB1c2UgcmFuZ2Ugb3BlcmF0b3JzIHdpdGggaXQuCisgKgorICogVGhl biB3ZSBzZXQgdXAgYW4gb3ZlcmxhcHMgZXhwcmVzc2lvbiBiZXR3ZWVuIHRoYXQgYW5kIHRo ZSByYW5nZSBjb2x1bW4sCisgKiBzbyB0aGF0IHdlIGNhbiBmaW5kIHRoZSByb3dzIHdlIG5l ZWQgdG8gdXBkYXRlL2RlbGV0ZS4KKyAqCisgKiBJbiB0aGUgZXhlY3V0b3Igd2UnbGwgYWxz byBidWlsZCBhbiBpbnRlcnNlY3QgZXhwcmVzc2lvbiBiZXR3ZWVuIHRoZQorICogdGFyZ2V0 ZWQgcmFuZ2UgYW5kIHRoZSByYW5nZSBjb2x1bW4sIHNvIHRoYXQgd2UgY2FuIHVwZGF0ZSB0 aGUgc3RhcnQvZW5kCisgKiBib3VuZHMgb2YgdGhlIFVQREFURSdkIHJlY29yZC4KKyAqLS0t LS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBGb3JQb3J0aW9uT2ZFeHByCit7CisJTm9k ZVRhZwkJdHlwZTsKKwlWYXIJCSAgICpyYW5nZVZhcjsJCQkvKiBSYW5nZSBjb2x1bW4gKi8K KwljaGFyCSAgICpyYW5nZV9uYW1lOwkJCS8qIFJhbmdlIG5hbWUgKi8KKwlOb2RlCSAgICp0 YXJnZXRSYW5nZTsJCS8qIEZPUiBQT1JUSU9OIE9GIGJvdW5kcyBhcyBhIHJhbmdlICovCisJ T2lkCQkJcmFuZ2VUeXBlOwkJCS8qIHR5cGUgb2YgdGFyZ2V0UmFuZ2UgKi8KKwlOb2RlCSAg ICpvdmVybGFwc0V4cHI7CQkvKiByYW5nZSAmJiB0YXJnZXRSYW5nZSAqLworCUxpc3QJICAg KnJhbmdlVGFyZ2V0TGlzdDsJLyogTGlzdCBvZiBUYXJnZXRFbnRyeXMgdG8gc2V0IHRoZSB0 aW1lIGNvbHVtbihzKSAqLworCU9pZAkJCXdpdGhvdXRQb3J0aW9uUHJvYzsJLyogcHJvYyBm b3Igb2xkX3JhbmdlIEAtIHRhcmdldF9yYW5nZSAqLworfSBGb3JQb3J0aW9uT2ZFeHByOwor CiAjZW5kaWYJCQkJCQkJLyogUFJJTU5PREVTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL29wdGltaXplci9wYXRobm9kZS5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BhdGhu b2RlLmgKaW5kZXggMTEyZTdjMjNkNGUuLjdhNGRjMWJjOGNjIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9vcHRpbWl6ZXIvcGF0aG5vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9vcHRpbWl6 ZXIvcGF0aG5vZGUuaApAQCAtMjg1LDcgKzI4NSw3IEBAIGV4dGVybiBNb2RpZnlUYWJsZVBh dGggKmNyZWF0ZV9tb2RpZnl0YWJsZV9wYXRoKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJ CQkJCQkJTGlzdCAqd2l0aENoZWNrT3B0aW9uTGlzdHMsIExpc3QgKnJldHVybmluZ0xpc3Rz LAogCQkJCQkJCQkJCQkJTGlzdCAqcm93TWFya3MsIE9uQ29uZmxpY3RFeHByICpvbmNvbmZs aWN0LAogCQkJCQkJCQkJCQkJTGlzdCAqbWVyZ2VBY3Rpb25MaXN0cywgTGlzdCAqbWVyZ2VK b2luQ29uZGl0aW9ucywKLQkJCQkJCQkJCQkJCWludCBlcHFQYXJhbSk7CisJCQkJCQkJCQkJ CQlGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2YsIGludCBlcHFQYXJhbSk7CiBleHRl cm4gTGltaXRQYXRoICpjcmVhdGVfbGltaXRfcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVs T3B0SW5mbyAqcmVsLAogCQkJCQkJCQkJUGF0aCAqc3VicGF0aCwKIAkJCQkJCQkJCU5vZGUg KmxpbWl0T2Zmc2V0LCBOb2RlICpsaW1pdENvdW50LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvcGFyc2VyL2FuYWx5emUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9hbmFseXplLmgKaW5k ZXggMjhiNjZmY2NiNDMuLjZjNzBkYWUxNDUyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9w YXJzZXIvYW5hbHl6ZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9hbmFseXplLmgKQEAg LTQzLDcgKzQzLDggQEAgZXh0ZXJuIExpc3QgKnRyYW5zZm9ybUluc2VydFJvdyhQYXJzZVN0 YXRlICpwc3RhdGUsIExpc3QgKmV4cHJsaXN0LAogCQkJCQkJCQlMaXN0ICpzdG10Y29scywg TGlzdCAqaWNvbHVtbnMsIExpc3QgKmF0dHJub3MsCiAJCQkJCQkJCWJvb2wgc3RyaXBfaW5k aXJlY3Rpb24pOwogZXh0ZXJuIExpc3QgKnRyYW5zZm9ybVVwZGF0ZVRhcmdldExpc3QoUGFy c2VTdGF0ZSAqcHN0YXRlLAotCQkJCQkJCQkJICAgTGlzdCAqb3JpZ1RsaXN0KTsKKwkJCQkJ CQkJCSAgIExpc3QgKm9yaWdUbGlzdCwKKwkJCQkJCQkJCSAgIEZvclBvcnRpb25PZkV4cHIg KmZvclBvcnRpb25PZik7CiBleHRlcm4gTGlzdCAqdHJhbnNmb3JtUmV0dXJuaW5nTGlzdChQ YXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnJldHVybmluZ0xpc3QsCiAJCQkJCQkJCQlQYXJz ZUV4cHJLaW5kIGV4cHJLaW5kKTsKIGV4dGVybiBRdWVyeSAqdHJhbnNmb3JtVG9wTGV2ZWxT dG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmF3U3RtdCAqcGFyc2VUcmVlKTsKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9r d2xpc3QuaAppbmRleCBmOWE0YWZkNDcyMy4uMzM5ZjA5NGE4MGQgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3ds aXN0LmgKQEAgLTM0NCw2ICszNDQsNyBAQCBQR19LRVlXT1JEKCJwbGFjaW5nIiwgUExBQ0lO RywgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBsYW4iLCBQ TEFOLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwbGFu cyIsIFBMQU5TLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJwb2xpY3kiLCBQT0xJQ1ksIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BH X0tFWVdPUkQoInBvcnRpb24iLCBQT1JUSU9OLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJwb3NpdGlvbiIsIFBPU0lUSU9OLCBDT0xfTkFNRV9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicHJlY2VkaW5nIiwgUFJFQ0VESU5HLCBV TlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwcmVjaXNpb24i LCBQUkVDSVNJT04sIENPTF9OQU1FX0tFWVdPUkQsIEFTX0xBQkVMKQpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9ub2RlLmgKaW5kZXggNWI3ODFkODdhOWQuLjkyN2Y5MWIzMTkxIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9ub2RlLmgKQEAgLTU2LDYgKzU2LDcgQEAgdHlwZWRlZiBlbnVtIFBhcnNl RXhwcktpbmQKIAlFWFBSX0tJTkRfVVBEQVRFX1NPVVJDRSwJLyogVVBEQVRFIGFzc2lnbm1l bnQgc291cmNlIGl0ZW0gKi8KIAlFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVCwJLyogVVBEQVRF IGFzc2lnbm1lbnQgdGFyZ2V0IGl0ZW0gKi8KIAlFWFBSX0tJTkRfTUVSR0VfV0hFTiwJCS8q IE1FUkdFIFdIRU4gW05PVF0gTUFUQ0hFRCBjb25kaXRpb24gKi8KKwlFWFBSX0tJTkRfVVBE QVRFX1BPUlRJT04sCS8qIFVQREFURSBGT1IgUE9SVElPTiBPRiBpdGVtICovCiAJRVhQUl9L SU5EX0dST1VQX0JZLAkJCS8qIEdST1VQIEJZICovCiAJRVhQUl9LSU5EX09SREVSX0JZLAkJ CS8qIE9SREVSIEJZICovCiAJRVhQUl9LSU5EX0RJU1RJTkNUX09OLAkJLyogRElTVElOQ1Qg T04gKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3Jj L2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKaW5kZXggMjA0NDZmNmY4MzYuLmU3YWQ1MTMx NDZhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAorKysgYi9z cmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaApAQCAtMTIxLDcgKzEyMSw3IEBAIGV4dGVy biBPaWQJZ2V0X25lZ2F0b3IoT2lkIG9wbm8pOwogZXh0ZXJuIFJlZ1Byb2NlZHVyZSBnZXRf b3BycmVzdChPaWQgb3Bubyk7CiBleHRlcm4gUmVnUHJvY2VkdXJlIGdldF9vcHJqb2luKE9p ZCBvcG5vKTsKIGV4dGVybiBjaGFyICpnZXRfZnVuY19uYW1lKE9pZCBmdW5jaWQpOwotZXh0 ZXJuIE9pZAlnZXRfZnVuY19uYW1lc3BhY2UoT2lkIGZ1bmNpZCk7CitleHRlcm4gT2lkCWdl dF9mdW5jX25hbWVzcGFjZShPaWQgZnVuY2lkLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJu IE9pZAlnZXRfZnVuY19yZXR0eXBlKE9pZCBmdW5jaWQpOwogZXh0ZXJuIGludAlnZXRfZnVu Y19uYXJncyhPaWQgZnVuY2lkKTsKIGV4dGVybiBPaWQJZ2V0X2Z1bmNfc2lnbmF0dXJlKE9p ZCBmdW5jaWQsIE9pZCAqKmFyZ3R5cGVzLCBpbnQgKm5hcmdzKTsKQEAgLTE0NSw2ICsxNDUs OCBAQCBleHRlcm4gT2lkCWdldF9yZWxfcmVsYW0oT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJ Z2V0X3RyYW5zZm9ybV9mcm9tc3FsKE9pZCB0eXBpZCwgT2lkIGxhbmdpZCwgTGlzdCAqdHJm dHlwZXMpOwogZXh0ZXJuIE9pZAlnZXRfdHJhbnNmb3JtX3Rvc3FsKE9pZCB0eXBpZCwgT2lk IGxhbmdpZCwgTGlzdCAqdHJmdHlwZXMpOwogZXh0ZXJuIGJvb2wgZ2V0X3R5cGlzZGVmaW5l ZChPaWQgdHlwaWQpOworZXh0ZXJuIGNoYXIgKmdldF90eXBuYW1lKE9pZCB0eXBpZCk7Citl eHRlcm4gYm9vbCBnZXRfdHlwbmFtZV9hbmRfbmFtZXNwYWNlKE9pZCB0eXBpZCwgY2hhciAq KnR5cG5hbWUsIGNoYXIgKip0eXBuYW1lc3BhY2UpOwogZXh0ZXJuIGludDE2IGdldF90eXBs ZW4oT2lkIHR5cGlkKTsKIGV4dGVybiBib29sIGdldF90eXBieXZhbChPaWQgdHlwaWQpOwog ZXh0ZXJuIHZvaWQgZ2V0X3R5cGxlbmJ5dmFsKE9pZCB0eXBpZCwgaW50MTYgKnR5cGxlbiwg Ym9vbCAqdHlwYnl2YWwpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9mb3JfcG9ydGlvbl9vZi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9w b3J0aW9uX29mLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u NWMwYTVjZjRiMWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2Zvcl9wb3J0aW9uX29mLm91dApAQCAtMCwwICsxLDY4NSBAQAorLS0gVGVzdHMgZm9y IFVQREFURS9ERUxFVEUgRk9SIFBPUlRJT04gT0YKKy0tIFdvcmtzIG9uIG5vbi1QSyBjb2x1 bW5zCitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5n ZSwKKyAgdmFsaWRfYXQgdHNyYW5nZSwKKyAgbmFtZSB0ZXh0IE5PVCBOVUxMCispOworSU5T RVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMKKygnWzEsMiknLCAnWzIwMTgt MDEtMDIsMjAyMC0wMS0wMSknLCAnb25lJyk7CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVz dAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gJzIwMTkt MDEtMDEnCitTRVQgbmFtZSA9ICdmb28nOworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2Zf dGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0xNScgVE8gTlVM TDsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDsKKyAgaWQgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgICAgfCBu YW1lIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tCisgWzEsMikgfCBbIk1vbiBKYW4gMTUgMDA6MDA6 MDAgMjAxOCIsIlR1ZSBKYW4gMDEgMDA6MDA6MDAgMjAxOSIpIHwgZm9vCisgWzEsMikgfCBb IlR1ZSBKYW4gMDIgMDA6MDA6MDAgMjAxOCIsIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIp IHwgb25lCisgWzEsMikgfCBbIlR1ZSBKYW4gMDEgMDA6MDA6MDAgMjAxOSIsIlR1ZSBKYW4g MTUgMDA6MDA6MDAgMjAxOSIpIHwgb25lCisoMyByb3dzKQorCistLSBXb3JrcyBvbiBtb3Jl IHRoYW4gb25lIHJhbmdlCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVB VEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFs aWQxX2F0IHRzcmFuZ2UsCisgIHZhbGlkMl9hdCB0c3JhbmdlLAorICBuYW1lIHRleHQgTk9U IE5VTEwKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0IFZBTFVFUworKCdb MSwyKScsICdbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKScsICdbMjAxNS0wMS0wMSwyMDI1LTAx LTAxKScsICdvbmUnKTsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElP TiBPRiB2YWxpZDFfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gTlVMTAorU0VUIG5hbWUgPSAn Zm9vJzsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDsKKyAgaWQgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgdmFsaWQxX2F0ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkMl9hdCAgICAgICAgICAgICAgICAgICAg ICAgIHwgbmFtZSAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0KKyBbMSwyKSB8IFsiTW9uIEph biAxNSAwMDowMDowMCAyMDE4IiwiU2F0IEZlYiAwMyAwMDowMDowMCAyMDE4IikgfCBbIlRo dSBKYW4gMDEgMDA6MDA6MDAgMjAxNSIsIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyNSIpIHwg Zm9vCisgWzEsMikgfCBbIlR1ZSBKYW4gMDIgMDA6MDA6MDAgMjAxOCIsIk1vbiBKYW4gMTUg MDA6MDA6MDAgMjAxOCIpIHwgWyJUaHUgSmFuIDAxIDAwOjAwOjAwIDIwMTUiLCJXZWQgSmFu IDAxIDAwOjAwOjAwIDIwMjUiKSB8IG9uZQorKDIgcm93cykKKworVVBEQVRFIGZvcl9wb3J0 aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMl9hdCBGUk9NICcyMDE4LTAxLTE1 JyBUTyBOVUxMCitTRVQgbmFtZSA9ICdiYXInOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlv bl9vZl90ZXN0OworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZDFfYXQg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQy X2F0ICAgICAgICAgICAgICAgICAgICAgICAgfCBuYW1lIAorLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLQorIFsxLDIpIHwgWyJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiLCJTYXQgRmViIDAz IDAwOjAwOjAwIDIwMTgiKSB8IFsiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IiwiV2VkIEph biAwMSAwMDowMDowMCAyMDI1IikgfCBiYXIKKyBbMSwyKSB8IFsiTW9uIEphbiAxNSAwMDow MDowMCAyMDE4IiwiU2F0IEZlYiAwMyAwMDowMDowMCAyMDE4IikgfCBbIlRodSBKYW4gMDEg MDA6MDA6MDAgMjAxNSIsIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIpIHwgZm9vCisgWzEs MikgfCBbIlR1ZSBKYW4gMDIgMDA6MDA6MDAgMjAxOCIsIk1vbiBKYW4gMTUgMDA6MDA6MDAg MjAxOCIpIHwgWyJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiLCJXZWQgSmFuIDAxIDAwOjAw OjAwIDIwMjUiKSB8IGJhcgorIFsxLDIpIHwgWyJUdWUgSmFuIDAyIDAwOjAwOjAwIDIwMTgi LCJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiKSB8IFsiVGh1IEphbiAwMSAwMDowMDowMCAy MDE1IiwiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IikgfCBvbmUKKyg0IHJvd3MpCisKK0RF TEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMV9h dCBGUk9NICcyMDE4LTAxLTIwJyBUTyBOVUxMOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlv bl9vZl90ZXN0OworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZDFfYXQg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQy X2F0ICAgICAgICAgICAgICAgICAgICAgICAgfCBuYW1lIAorLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLQorIFsxLDIpIHwgWyJUdWUgSmFuIDAyIDAwOjAwOjAwIDIwMTgiLCJNb24gSmFuIDE1 IDAwOjAwOjAwIDIwMTgiKSB8IFsiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IiwiV2VkIEph biAwMSAwMDowMDowMCAyMDI1IikgfCBiYXIKKyBbMSwyKSB8IFsiVHVlIEphbiAwMiAwMDow MDowMCAyMDE4IiwiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IikgfCBbIlRodSBKYW4gMDEg MDA6MDA6MDAgMjAxNSIsIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIpIHwgb25lCisgWzEs MikgfCBbIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIsIlNhdCBKYW4gMjAgMDA6MDA6MDAg MjAxOCIpIHwgWyJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiLCJXZWQgSmFuIDAxIDAwOjAw OjAwIDIwMjUiKSB8IGJhcgorIFsxLDIpIHwgWyJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgi LCJTYXQgSmFuIDIwIDAwOjAwOjAwIDIwMTgiKSB8IFsiVGh1IEphbiAwMSAwMDowMDowMCAy MDE1IiwiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IikgfCBmb28KKyg0IHJvd3MpCisKK0RF TEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMl9h dCBGUk9NICcyMDE4LTAxLTIwJyBUTyBOVUxMOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlv bl9vZl90ZXN0OworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZDFfYXQg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQy X2F0ICAgICAgICAgICAgICAgICAgICAgICAgfCBuYW1lIAorLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLQorIFsxLDIpIHwgWyJUdWUgSmFuIDAyIDAwOjAwOjAwIDIwMTgiLCJNb24gSmFuIDE1 IDAwOjAwOjAwIDIwMTgiKSB8IFsiVGh1IEphbiAwMSAwMDowMDowMCAyMDE1IiwiTW9uIEph biAxNSAwMDowMDowMCAyMDE4IikgfCBvbmUKKyBbMSwyKSB8IFsiTW9uIEphbiAxNSAwMDow MDowMCAyMDE4IiwiU2F0IEphbiAyMCAwMDowMDowMCAyMDE4IikgfCBbIlRodSBKYW4gMDEg MDA6MDA6MDAgMjAxNSIsIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIpIHwgZm9vCisgWzEs MikgfCBbIlR1ZSBKYW4gMDIgMDA6MDA6MDAgMjAxOCIsIk1vbiBKYW4gMTUgMDA6MDA6MDAg MjAxOCIpIHwgWyJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiLCJTYXQgSmFuIDIwIDAwOjAw OjAwIDIwMTgiKSB8IGJhcgorIFsxLDIpIHwgWyJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgi LCJTYXQgSmFuIDIwIDAwOjAwOjAwIDIwMTgiKSB8IFsiTW9uIEphbiAxNSAwMDowMDowMCAy MDE4IiwiU2F0IEphbiAyMCAwMDowMDowMCAyMDE4IikgfCBiYXIKKyg0IHJvd3MpCisKKy0t IFRlc3Qgd2l0aCBOVUxMcyBpbiB0aGUgc2NhbGFyL3JhbmdlIGtleSBjb2x1bW5zLgorLS0g VGhpcyB3b24ndCBoYXBwZW4gaWYgdGhlcmUgaXMgYSBQUklNQVJZIEtFWSBvciBVTklRVUUg Y29uc3RyYWludAorLS0gYnV0IEZPUiBQT1JUSU9OIE9GIHNob3VsZG4ndCByZXF1aXJlIHRo YXQuCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVBVEUgVU5MT0dHRUQg VEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRf YXQgdHNyYW5nZSwKKyAgbmFtZSB0ZXh0CispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25f b2ZfdGVzdCBWQUxVRVMKKyAgKCdbMSwyKScsIE5VTEwsICcxIG51bGwnKSwKKyAgKCdbMSwy KScsICcoLCknLCAnMSB1bmJvdW5kZWQnKSwKKyAgKCdbMSwyKScsICdlbXB0eScsICcxIGVt cHR5JyksCisgIChOVUxMLCBOVUxMLCBOVUxMKSwKKyAgKE5VTEwsIHRzcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOS0wMS0wMScpLCAnbnVsbCBrZXknKTsKK1VQREFURSBmb3JfcG9ydGlv bl9vZl90ZXN0CisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyBOVUxM CisgIFNFVCBuYW1lID0gJ05VTEwgdG8gTlVMTCc7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0 aW9uX29mX3Rlc3Q7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIG5hbWUgICAgIAorLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0KKyBbMSwyKSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxIG51bGwKKyBbMSwyKSB8IGVtcHR5ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxIGVt cHR5CisgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgCisgWzEsMikgfCAoLCkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTlVMTCB0byBOVUxMCisgICAgICAg fCBbIk1vbiBKYW4gMDEgMDA6MDA6MDAgMjAxOCIsIlR1ZSBKYW4gMDEgMDA6MDA6MDAgMjAx OSIpIHwgTlVMTCB0byBOVUxMCisoNSByb3dzKQorCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9u X29mX3Rlc3Q7CitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGlu dDRyYW5nZSBOT1QgTlVMTCwKKyAgdmFsaWRfYXQgdHNyYW5nZSBOT1QgTlVMTCwKKyAgbmFt ZSB0ZXh0IE5PVCBOVUxMLAorCUNPTlNUUkFJTlQgZm9yX3BvcnRpb25fb2ZfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJTlRP IGZvcl9wb3J0aW9uX29mX3Rlc3QKK1ZBTFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0wMiwy MDE4LTAyLTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIwMTgtMDItMDMsMjAxOC0wMy0w MyknLCAnb25lJyksCisoJ1sxLDIpJywgJ1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpJywgJ29u ZScpLAorKCdbMiwzKScsICdbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KScsICd0d28nKSwKKygn WzMsNCknLCAnWzIwMTgtMDEtMDEsKScsICd0aHJlZScpLAorKCdbNCw1KScsICcoLDIwMTgt MDQtMDEpJywgJ2ZvdXInKSwKKygnWzUsNiknLCAnKCwpJywgJ2ZpdmUnKQorOworLS0KKy0t IFVQREFURSB0ZXN0cworLS0KKy0tIFNldHRpbmcgd2l0aCBhIG1pc3NpbmcgY29sdW1uIGZh aWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgaW52YWxp ZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitTRVQgbmFtZSA9ICdmb28nCitXSEVS RSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIGNvbHVtbiBvciBwZXJpb2QgImludmFsaWRfYXQi IG9mIHJlbGF0aW9uICJmb3JfcG9ydGlvbl9vZl90ZXN0IiBkb2VzIG5vdCBleGlzdAorTElO RSAyOiBGT1IgUE9SVElPTiBPRiBpbnZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPIE5V TEwKKyAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gU2V0dGluZyB0aGUgcmFuZ2UgZmFp bHMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitTRVQgdmFsaWRfYXQgPSAnWzE5OTAtMDEt MDEsMTk5OS0wMS0wMSknCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIGNhbid0IGRp cmVjdGx5IGFzc2lnbiB0byAidmFsaWRfYXQiIGluIGEgRk9SIFBPUlRJT04gT0YgdXBkYXRl CitMSU5FIDM6IFNFVCB2YWxpZF9hdCA9ICdbMTk5MC0wMS0wMSwxOTk5LTAxLTAxKScKKyAg ICAgICAgICAgIF4KKy0tIFRoZSB3cm9uZyB0eXBlIGZhaWxzCitVUERBVEUgZm9yX3BvcnRp b25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAxIFRPIDQKK1NFVCBu YW1lID0gJ25vcGUnCitXSEVSRSBpZCA9ICdbMyw0KSc7CitFUlJPUjogIGZ1bmN0aW9uIHBn X2NhdGFsb2cudHNyYW5nZShpbnRlZ2VyLCBpbnRlZ2VyKSBkb2VzIG5vdCBleGlzdAorTElO RSAyOiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIDEgVE8gNAorICAgICAgICAgICAg ICAgICAgICAgICBeCitISU5UOiAgTm8gZnVuY3Rpb24gbWF0Y2hlcyB0aGUgZ2l2ZW4gbmFt ZSBhbmQgYXJndW1lbnQgdHlwZXMuIFlvdSBtaWdodCBuZWVkIHRvIGFkZCBleHBsaWNpdCB0 eXBlIGNhc3RzLgorLS0gU2V0dGluZyB3aXRoIHRpbWVzdGFtcHMgcmV2ZXJzZWQgZmFpbHMK K1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE4LTA2LTAxJyBUTyAnMjAxOC0wMS0wMScKK1NFVCBuYW1lID0gJ3RocmVlXjEn CitXSEVSRSBpZCA9ICdbMyw0KSc7CitFUlJPUjogIHJhbmdlIGxvd2VyIGJvdW5kIG11c3Qg YmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHJhbmdlIHVwcGVyIGJvdW5kCistLSBTZXR0aW5n IHdpdGggYSBzdWJxdWVyeSBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gKFNFTEVDVCAnMjAxOC0wMS0wMScpIFRPICcy MDE4LTA2LTAxJworU0VUIG5hbWUgPSAnbm9wZScKK1dIRVJFIGlkID0gJ1szLDQpJzsKK0VS Uk9SOiAgY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9u CitMSU5FIDI6IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gKFNFTEVDVCAnMjAxOC0w MS0wMScpIFRPICcyMDE4LS4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KKy0tIFNldHRpbmcgd2l0aCBhIGNvbHVtbiBmYWlscworVVBEQVRFIGZvcl9wb3J0 aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gbG93ZXIodmFsaWRf YXQpIFRPIE5VTEwKK1NFVCBuYW1lID0gJ25vcGUnCitXSEVSRSBpZCA9ICdbMyw0KSc7CitF UlJPUjogIGNhbm5vdCB1c2UgY29sdW1uIHJlZmVyZW5jZSBpbiBGT1IgUE9SVElPTiBPRiBl eHByZXNzaW9uCitMSU5FIDI6IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gbG93ZXIo dmFsaWRfYXQpIFRPIE5VTEwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCistLSBTZXR0aW5nIHdpdGggdGltZXN0YW1wcyBlcXVhbCBkb2VzIG5vdGhp bmcKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTA0LTAxJyBUTyAnMjAxOC0wNC0wMScKK1NFVCBuYW1lID0gJ3RocmVl XjAnCitXSEVSRSBpZCA9ICdbMyw0KSc7CistLSBVcGRhdGluZyBhIGZpbml0ZS9vcGVuIHBv cnRpb24gd2l0aCBhIGZpbml0ZS9vcGVuIHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29m X3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPIE5V TEwKK1NFVCBuYW1lID0gJ3RocmVlXjEnCitXSEVSRSBpZCA9ICdbMyw0KSc7CistLSBVcGRh dGluZyBhIGZpbml0ZS9vcGVuIHBvcnRpb24gd2l0aCBhbiBvcGVuL2Zpbml0ZSB0YXJnZXQK K1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NIE5VTEwgVE8gJzIwMTgtMDMtMDEnCitTRVQgbmFtZSA9ICd0aHJlZV4yJworV0hFUkUg aWQgPSAnWzMsNCknOworLS0gVXBkYXRpbmcgYW4gb3Blbi9maW5pdGUgcG9ydGlvbiB3aXRo IGFuIG9wZW4vZmluaXRlIHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyAnMjAxOC0wMi0wMScKK1NFVCBu YW1lID0gJ2ZvdXJeMScKK1dIRVJFIGlkID0gJ1s0LDUpJzsKKy0tIFVwZGF0aW5nIGFuIG9w ZW4vZmluaXRlIHBvcnRpb24gd2l0aCBhIGZpbml0ZS9vcGVuIHRhcmdldAorVVBEQVRFIGZv cl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTct MDEtMDEnIFRPIE5VTEwKK1NFVCBuYW1lID0gJ2ZvdXJeMicKK1dIRVJFIGlkID0gJ1s0LDUp JzsKKy0tIFVwZGF0aW5nIGEgZmluaXRlL2Zpbml0ZSBwb3J0aW9uIHdpdGggYW4gZXhhY3Qg Zml0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxNy0wMS0wMScgVE8gJzIwMTgtMDItMDEnCitTRVQgbmFtZSA9ICdmb3Vy XjMnCitXSEVSRSBpZCA9ICdbNCw1KSc7CistLSBVcGRhdGluZyBhbiBlbmNsb3NlZCBzcGFu CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSBOVUxMIFRPIE5VTEwKK1NFVCBuYW1lID0gJ3R3b14yJworV0hFUkUgaWQgPSAnWzIs MyknOworLS0gVXBkYXRpbmcgYW4gb3Blbi9vcGVuIHBvcnRpb24gd2l0aCBhIGZpbml0ZS9m aW5pdGUgdGFyZ2V0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMScgVE8gJzIwMTktMDEtMDEnCitTRVQgbmFt ZSA9ICdmaXZlXjInCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBVcGRhdGluZyBhbiBlbmNs b3NlZCBzcGFuIHdpdGggc2VwYXJhdGUgcHJvdHJ1ZGluZyBzcGFucworVVBEQVRFIGZvcl9w b3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTctMDEt MDEnIFRPICcyMDIwLTAxLTAxJworU0VUIG5hbWUgPSAnZml2ZV4zJworV0hFUkUgaWQgPSAn WzUsNiknOworLS0gVXBkYXRpbmcgbXVsdGlwbGUgZW5jbG9zZWQgc3BhbnMKK1VQREFURSBm b3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwg VE8gTlVMTAorU0VUIG5hbWUgPSAnb25lXjInCitXSEVSRSBpZCA9ICdbMSwyKSc7CistLSBV cGRhdGluZyB3aXRoIGEgc2hpZnQvcmVkdWNlIGNvbmZsaWN0CitVUERBVEUgZm9yX3BvcnRp b25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQKKyAgRlJPTSAnMjAxOC0wMy0w MScgQVQgVElNRSBaT05FIElOVEVSVkFMICcxJyBIT1VSIFRPIE1JTlVURQorICBUTyAnMjAx OS0wMS0wMScKK1NFVCBuYW1lID0gJ29uZV4zJworV0hFUkUgaWQgPSAnWzEsMiknOworVVBE QVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0CisgIEZS T00gJzIwMTgtMDMtMDEnIEFUIFRJTUUgWk9ORSBJTlRFUlZBTCAnMicgSE9VUgorICBUTyAn MjAxOS0wMS0wMScKK1NFVCBuYW1lID0gJ29uZV40JworV0hFUkUgaWQgPSAnWzEsMiknOwor RVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiJzIwMTktMDEtMDEnIgorTElORSA0 OiAgIFRPICcyMDE5LTAxLTAxJworICAgICAgICAgICAgIF4KK1VQREFURSBmb3JfcG9ydGlv bl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdAorICBGUk9NICgnMjAxOC0wMy0w MScgQVQgVElNRSBaT05FIElOVEVSVkFMICcyJyBIT1VSKQorICBUTyAnMjAxOS0wMS0wMScK K1NFVCBuYW1lID0gJ29uZV40JworV0hFUkUgaWQgPSAnWzEsMiknOworLS0gV2l0aCBhIGRp cmVjdCB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCAodHNyYW5nZSgnMjAxOC0wMy0xMCcsICcyMDE4LTAzLTE3JykpCitTRVQg bmFtZSA9ICdvbmVeNScKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKy0tIFVwZGF0aW5nIHRoZSBu b24tcmFuZ2UgcGFydCBvZiB0aGUgUEs6CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAor Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMi0xNScgVE8gTlVMTAorU0VU IGlkID0gJ1s2LDcpJworV0hFUkUgaWQgPSAnWzEsMiknOworLS0gVVBEQVRFIHdpdGggbm8g V0hFUkUgY2xhdXNlCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAzMC0wMS0wMScgVE8gTlVMTAorU0VUIG5hbWUgPSBuYW1l IHx8ICcqJzsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBuYW1lICAgCistLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgWzEsMikgfCBbIlR1ZSBKYW4gMDIgMDA6MDA6MDAgMjAxOCIsIlNhdCBGZWIg MDMgMDA6MDA6MDAgMjAxOCIpIHwgb25lXjIKKyBbMSwyKSB8IFsiU2F0IEZlYiAwMyAwMDow MDowMCAyMDE4IiwiVGh1IEZlYiAxNSAwMDowMDowMCAyMDE4IikgfCBvbmVeMgorIFsyLDMp IHwgWyJNb24gSmFuIDAxIDAwOjAwOjAwIDIwMTgiLCJGcmkgSmFuIDA1IDAwOjAwOjAwIDIw MTgiKSB8IHR3b14yCisgWzMsNCkgfCBbIk1vbiBKYW4gMDEgMDA6MDA6MDAgMjAxOCIsIlRo dSBNYXIgMDEgMDA6MDA6MDAgMjAxOCIpIHwgdGhyZWVeMgorIFszLDQpIHwgWyJUaHUgTWFy IDAxIDAwOjAwOjAwIDIwMTgiLCJGcmkgSnVuIDAxIDAwOjAwOjAwIDIwMTgiKSB8IHRocmVl CisgWzMsNCkgfCBbIkZyaSBKdW4gMDEgMDA6MDA6MDAgMjAxOCIsIlR1ZSBKYW4gMDEgMDA6 MDA6MDAgMjAzMCIpIHwgdGhyZWVeMQorIFszLDQpIHwgWyJUdWUgSmFuIDAxIDAwOjAwOjAw IDIwMzAiLCkgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRocmVlXjEqCisgWzQsNSkg fCAoLCJTdW4gSmFuIDAxIDAwOjAwOjAwIDIwMTciKSAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgZm91cl4xCisgWzQsNSkgfCBbIlN1biBKYW4gMDEgMDA6MDA6MDAgMjAxNyIsIlRo dSBGZWIgMDEgMDA6MDA6MDAgMjAxOCIpIHwgZm91cl4zCisgWzQsNSkgfCBbIlRodSBGZWIg MDEgMDA6MDA6MDAgMjAxOCIsIlN1biBBcHIgMDEgMDA6MDA6MDAgMjAxOCIpIHwgZm91cl4y CisgWzUsNikgfCAoLCJTdW4gSmFuIDAxIDAwOjAwOjAwIDIwMTciKSAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgZml2ZQorIFs1LDYpIHwgWyJTdW4gSmFuIDAxIDAwOjAwOjAwIDIw MTciLCJNb24gSmFuIDAxIDAwOjAwOjAwIDIwMTgiKSB8IGZpdmVeMworIFs1LDYpIHwgWyJN b24gSmFuIDAxIDAwOjAwOjAwIDIwMTgiLCJUdWUgSmFuIDAxIDAwOjAwOjAwIDIwMTkiKSB8 IGZpdmVeMworIFs1LDYpIHwgWyJUdWUgSmFuIDAxIDAwOjAwOjAwIDIwMTkiLCJXZWQgSmFu IDAxIDAwOjAwOjAwIDIwMjAiKSB8IGZpdmVeMworIFs1LDYpIHwgWyJXZWQgSmFuIDAxIDAw OjAwOjAwIDIwMjAiLCJUdWUgSmFuIDAxIDAwOjAwOjAwIDIwMzAiKSB8IGZpdmUKKyBbNSw2 KSB8IFsiVHVlIEphbiAwMSAwMDowMDowMCAyMDMwIiwpICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCBmaXZlKgorIFs2LDcpIHwgWyJUaHUgRmViIDE1IDAwOjAwOjAwIDIwMTgiLCJU aHUgTWFyIDAxIDA4OjAxOjAwIDIwMTgiKSB8IG9uZV4yCisgWzYsNykgfCBbIlRodSBNYXIg MDEgMDg6MDE6MDAgMjAxOCIsIlRodSBNYXIgMDEgMTA6MDA6MDAgMjAxOCIpIHwgb25lXjMK KyBbNiw3KSB8IFsiVGh1IE1hciAwMSAxMDowMDowMCAyMDE4IiwiU2F0IE1hciAwMyAwMDow MDowMCAyMDE4IikgfCBvbmVeNAorIFs2LDcpIHwgWyJTYXQgTWFyIDAzIDAwOjAwOjAwIDIw MTgiLCJTYXQgTWFyIDEwIDAwOjAwOjAwIDIwMTgiKSB8IG9uZV40CisgWzYsNykgfCBbIlNh dCBNYXIgMTAgMDA6MDA6MDAgMjAxOCIsIlNhdCBNYXIgMTcgMDA6MDA6MDAgMjAxOCIpIHwg b25lXjUKKyBbNiw3KSB8IFsiU2F0IE1hciAxNyAwMDowMDowMCAyMDE4IiwiV2VkIEFwciAw NCAwMDowMDowMCAyMDE4IikgfCBvbmVeNAorKDIyIHJvd3MpCisKKy0tCistLSBERUxFVEUg dGVzdHMKKy0tCistLSBEZWxldGluZyB3aXRoIGEgbWlzc2luZyBjb2x1bW4gZmFpbHMKK0RF TEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIGludmFsaWRf YXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gTlVMTAorV0hFUkUgaWQgPSAnWzUsNiknOworRVJS T1I6ICBjb2x1bW4gb3IgcGVyaW9kICJpbnZhbGlkX2F0IiBvZiByZWxhdGlvbiAiZm9yX3Bv cnRpb25fb2ZfdGVzdCIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMjogRk9SIFBPUlRJT04gT0Yg aW52YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCisgICAgICAgICAgICAgICAg ICAgICAgIF4KKy0tIERlbGV0aW5nIHdpdGggdGltZXN0YW1wcyByZXZlcnNlZCBmYWlscwor REVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gJzIwMTgtMDEtMDEnCitXSEVSRSBpZCA9ICdbMyw0 KSc7CitFUlJPUjogIHJhbmdlIGxvd2VyIGJvdW5kIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVx dWFsIHRvIHJhbmdlIHVwcGVyIGJvdW5kCistLSBEZWxldGluZyB3aXRoIHRpbWVzdGFtcHMg ZXF1YWwgZG9lcyBub3RoaW5nCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA0LTAxJyBUTyAnMjAxOC0wNC0w MScKK1dIRVJFIGlkID0gJ1szLDQpJzsKKy0tIERlbGV0aW5nIHdpdGggYSBjbG9zZWQvY2xv c2VkIHRhcmdldAorREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gJzIwMjAtMDYtMDEnCitXSEVS RSBpZCA9ICdbNSw2KSc7CistLSBEZWxldGluZyB3aXRoIGEgY2xvc2VkL29wZW4gdGFyZ2V0 CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE4LTA0LTAxJyBUTyBOVUxMCitXSEVSRSBpZCA9ICdbMyw0KSc7Cist LSBEZWxldGluZyB3aXRoIGFuIG9wZW4vY2xvc2VkIHRhcmdldAorREVMRVRFIEZST00gZm9y X3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRP ICcyMDE4LTAyLTA4JworV0hFUkUgaWQgPSAnWzEsMiknOworLS0gRGVsZXRpbmcgd2l0aCBh biBvcGVuL29wZW4gdGFyZ2V0CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAorV0hFUkUgaWQgPSAn WzYsNyknOworLS0gREVMRVRFIHdpdGggbm8gV0hFUkUgY2xhdXNlCitERUxFVEUgRlJPTSBm b3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDI1 LTAxLTAxJyBUTyBOVUxMOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgICAgICAgICAgICAgICAg dmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbmFtZSAgIAorLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tCisgWzEsMikgfCBbIlRodSBGZWIgMDggMDA6MDA6MDAgMjAxOCIsIlRo dSBGZWIgMTUgMDA6MDA6MDAgMjAxOCIpIHwgb25lXjIKKyBbMiwzKSB8IFsiTW9uIEphbiAw MSAwMDowMDowMCAyMDE4IiwiRnJpIEphbiAwNSAwMDowMDowMCAyMDE4IikgfCB0d29eMgor IFszLDQpIHwgWyJNb24gSmFuIDAxIDAwOjAwOjAwIDIwMTgiLCJUaHUgTWFyIDAxIDAwOjAw OjAwIDIwMTgiKSB8IHRocmVlXjIKKyBbMyw0KSB8IFsiVGh1IE1hciAwMSAwMDowMDowMCAy MDE4IiwiU3VuIEFwciAwMSAwMDowMDowMCAyMDE4IikgfCB0aHJlZQorIFs0LDUpIHwgKCwi U3VuIEphbiAwMSAwMDowMDowMCAyMDE3IikgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IGZvdXJeMQorIFs0LDUpIHwgWyJTdW4gSmFuIDAxIDAwOjAwOjAwIDIwMTciLCJUaHUgRmVi IDAxIDAwOjAwOjAwIDIwMTgiKSB8IGZvdXJeMworIFs0LDUpIHwgWyJUaHUgRmViIDAxIDAw OjAwOjAwIDIwMTgiLCJTdW4gQXByIDAxIDAwOjAwOjAwIDIwMTgiKSB8IGZvdXJeMgorIFs1 LDYpIHwgKCwiU3VuIEphbiAwMSAwMDowMDowMCAyMDE3IikgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IGZpdmUKKyBbNSw2KSB8IFsiU3VuIEphbiAwMSAwMDowMDowMCAyMDE3Iiwi TW9uIEphbiAwMSAwMDowMDowMCAyMDE4IikgfCBmaXZlXjMKKyBbNSw2KSB8IFsiTW9uIEph biAwMSAwMDowMDowMCAyMDE4IiwiRnJpIEp1biAwMSAwMDowMDowMCAyMDE4IikgfCBmaXZl XjMKKyBbNSw2KSB8IFsiTW9uIEp1biAwMSAwMDowMDowMCAyMDIwIiwiV2VkIEphbiAwMSAw MDowMDowMCAyMDI1IikgfCBmaXZlCisoMTEgcm93cykKKworLS0gVVBEQVRFIC4uLiBSRVRV Uk5JTkcgcmV0dXJucyBvbmx5IHRoZSB1cGRhdGVkIHZhbHVlcyAobm90IHRoZSBpbnNlcnRl ZCBzaWRlIHZhbHVlcykKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAyLTAxJyBUTyAnMjAxOC0wMi0xNScKK1NFVCBu YW1lID0gJ3RocmVlXjMnCitXSEVSRSBpZCA9ICdbMyw0KScKK1JFVFVSTklORyAqOworICBp ZCAgIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAg ICAgICAgICB8ICBuYW1lICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBbMyw0KSB8IFsi VGh1IEZlYiAwMSAwMDowMDowMCAyMDE4IiwiVGh1IEZlYiAxNSAwMDowMDowMCAyMDE4Iikg fCB0aHJlZV4zCisoMSByb3cpCisKKy0tIHRlc3QgdGhhdCB3ZSBydW4gdHJpZ2dlcnMgb24g dGhlIFVQREFURS9ERUxFVEVkIHJvdyBhbmQgdGhlIElOU0VSVGVkIHJvd3MKK0NSRUFURSBG VU5DVElPTiBmb3JfcG9ydGlvbl9vZl90cmlnZ2VyKCkKK1JFVFVSTlMgdHJpZ2dlcgorQVMK KyQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUgJSAlIG9mICUnLCBUR19XSEVOLCBUR19P UCwgTkVXLnZhbGlkX2F0LCBPTEQudmFsaWRfYXQ7CisgIElGIFRHX09QID0gJ0RFTEVURScg VEhFTgorICAgIFJFVFVSTiBPTEQ7CisgIEVMU0UKKyAgICBSRVRVUk4gTkVXOworICBFTkQg SUY7CitFTkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBUUklHR0VSIHRyZ19m b3JfcG9ydGlvbl9vZl9iZWZvcmUKKyAgQkVGT1JFIElOU0VSVCBPUiBVUERBVEUgT1IgREVM RVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIEVBQ0ggUk9XCisgIEVYRUNVVEUg RlVOQ1RJT04gZm9yX3BvcnRpb25fb2ZfdHJpZ2dlcigpOworQ1JFQVRFIFRSSUdHRVIgdHJn X2Zvcl9wb3J0aW9uX29mX2FmdGVyCisgIEFGVEVSIElOU0VSVCBPUiBVUERBVEUgT1IgREVM RVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIEVBQ0ggUk9XCisgIEVYRUNVVEUg RlVOQ1RJT04gZm9yX3BvcnRpb25fb2ZfdHJpZ2dlcigpOworVVBEQVRFIGZvcl9wb3J0aW9u X29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMjEtMDEtMDEnIFRP ICcyMDIyLTAxLTAxJworU0VUIG5hbWUgPSAnZml2ZV40JworV0hFUkUgaWQgPSAnWzUsNikn OworTk9USUNFOiAgQkVGT1JFIFVQREFURSBbIkZyaSBKYW4gMDEgMDA6MDA6MDAgMjAyMSIs IlNhdCBKYW4gMDEgMDA6MDA6MDAgMjAyMiIpIG9mIFsiTW9uIEp1biAwMSAwMDowMDowMCAy MDIwIiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDI1IikKK05PVElDRTogIEJFRk9SRSBJTlNF UlQgWyJNb24gSnVuIDAxIDAwOjAwOjAwIDIwMjAiLCJGcmkgSmFuIDAxIDAwOjAwOjAwIDIw MjEiKSBvZiA8TlVMTD4KK05PVElDRTogIEJFRk9SRSBJTlNFUlQgWyJTYXQgSmFuIDAxIDAw OjAwOjAwIDIwMjIiLCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjUiKSBvZiA8TlVMTD4KK05P VElDRTogIEFGVEVSIElOU0VSVCBbIk1vbiBKdW4gMDEgMDA6MDA6MDAgMjAyMCIsIkZyaSBK YW4gMDEgMDA6MDA6MDAgMjAyMSIpIG9mIDxOVUxMPgorTk9USUNFOiAgQUZURVIgSU5TRVJU IFsiU2F0IEphbiAwMSAwMDowMDowMCAyMDIyIiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDI1 Iikgb2YgPE5VTEw+CitOT1RJQ0U6ICBBRlRFUiBVUERBVEUgWyJGcmkgSmFuIDAxIDAwOjAw OjAwIDIwMjEiLCJTYXQgSmFuIDAxIDAwOjAwOjAwIDIwMjIiKSBvZiBbIk1vbiBKdW4gMDEg MDA6MDA6MDAgMjAyMCIsIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyNSIpCitERUxFVEUgRlJP TSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDIzLTAxLTAxJyBUTyAnMjAyNC0wMS0wMScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK05PVElD RTogIEJFRk9SRSBERUxFVEUgPE5VTEw+IG9mIFsiU2F0IEphbiAwMSAwMDowMDowMCAyMDIy IiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDI1IikKK05PVElDRTogIEJFRk9SRSBJTlNFUlQg WyJTYXQgSmFuIDAxIDAwOjAwOjAwIDIwMjIiLCJTdW4gSmFuIDAxIDAwOjAwOjAwIDIwMjMi KSBvZiA8TlVMTD4KK05PVElDRTogIEJFRk9SRSBJTlNFUlQgWyJNb24gSmFuIDAxIDAwOjAw OjAwIDIwMjQiLCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjUiKSBvZiA8TlVMTD4KK05PVElD RTogIEFGVEVSIElOU0VSVCBbIlNhdCBKYW4gMDEgMDA6MDA6MDAgMjAyMiIsIlN1biBKYW4g MDEgMDA6MDA6MDAgMjAyMyIpIG9mIDxOVUxMPgorTk9USUNFOiAgQUZURVIgSU5TRVJUIFsi TW9uIEphbiAwMSAwMDowMDowMCAyMDI0IiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDI1Iikg b2YgPE5VTEw+CitOT1RJQ0U6ICBBRlRFUiBERUxFVEUgPE5VTEw+IG9mIFsiU2F0IEphbiAw MSAwMDowMDowMCAyMDIyIiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDI1IikKK1NFTEVDVCAq IEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlk ICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIG5hbWUgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorIFsxLDIpIHwgWyJU aHUgRmViIDA4IDAwOjAwOjAwIDIwMTgiLCJUaHUgRmViIDE1IDAwOjAwOjAwIDIwMTgiKSB8 IG9uZV4yCisgWzIsMykgfCBbIk1vbiBKYW4gMDEgMDA6MDA6MDAgMjAxOCIsIkZyaSBKYW4g MDUgMDA6MDA6MDAgMjAxOCIpIHwgdHdvXjIKKyBbMyw0KSB8IFsiTW9uIEphbiAwMSAwMDow MDowMCAyMDE4IiwiVGh1IEZlYiAwMSAwMDowMDowMCAyMDE4IikgfCB0aHJlZV4yCisgWzMs NCkgfCBbIlRodSBGZWIgMDEgMDA6MDA6MDAgMjAxOCIsIlRodSBGZWIgMTUgMDA6MDA6MDAg MjAxOCIpIHwgdGhyZWVeMworIFszLDQpIHwgWyJUaHUgRmViIDE1IDAwOjAwOjAwIDIwMTgi LCJUaHUgTWFyIDAxIDAwOjAwOjAwIDIwMTgiKSB8IHRocmVlXjIKKyBbMyw0KSB8IFsiVGh1 IE1hciAwMSAwMDowMDowMCAyMDE4IiwiU3VuIEFwciAwMSAwMDowMDowMCAyMDE4IikgfCB0 aHJlZQorIFs0LDUpIHwgKCwiU3VuIEphbiAwMSAwMDowMDowMCAyMDE3IikgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IGZvdXJeMQorIFs0LDUpIHwgWyJTdW4gSmFuIDAxIDAwOjAw OjAwIDIwMTciLCJUaHUgRmViIDAxIDAwOjAwOjAwIDIwMTgiKSB8IGZvdXJeMworIFs0LDUp IHwgWyJUaHUgRmViIDAxIDAwOjAwOjAwIDIwMTgiLCJTdW4gQXByIDAxIDAwOjAwOjAwIDIw MTgiKSB8IGZvdXJeMgorIFs1LDYpIHwgKCwiU3VuIEphbiAwMSAwMDowMDowMCAyMDE3Iikg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZpdmUKKyBbNSw2KSB8IFsiU3VuIEphbiAw MSAwMDowMDowMCAyMDE3IiwiTW9uIEphbiAwMSAwMDowMDowMCAyMDE4IikgfCBmaXZlXjMK KyBbNSw2KSB8IFsiTW9uIEphbiAwMSAwMDowMDowMCAyMDE4IiwiRnJpIEp1biAwMSAwMDow MDowMCAyMDE4IikgfCBmaXZlXjMKKyBbNSw2KSB8IFsiTW9uIEp1biAwMSAwMDowMDowMCAy MDIwIiwiRnJpIEphbiAwMSAwMDowMDowMCAyMDIxIikgfCBmaXZlCisgWzUsNikgfCBbIkZy aSBKYW4gMDEgMDA6MDA6MDAgMjAyMSIsIlNhdCBKYW4gMDEgMDA6MDA6MDAgMjAyMiIpIHwg Zml2ZV40CisgWzUsNikgfCBbIlNhdCBKYW4gMDEgMDA6MDA6MDAgMjAyMiIsIlN1biBKYW4g MDEgMDA6MDA6MDAgMjAyMyIpIHwgZml2ZQorIFs1LDYpIHwgWyJNb24gSmFuIDAxIDAwOjAw OjAwIDIwMjQiLCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjUiKSB8IGZpdmUKKygxNiByb3dz KQorCitEUk9QIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIgQ0FTQ0FERTsKK05P VElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMiBvdGhlciBvYmplY3RzCitERVRBSUw6ICBkcm9w IGNhc2NhZGVzIHRvIHRyaWdnZXIgdHJnX2Zvcl9wb3J0aW9uX29mX2JlZm9yZSBvbiB0YWJs ZSBmb3JfcG9ydGlvbl9vZl90ZXN0Citkcm9wIGNhc2NhZGVzIHRvIHRyaWdnZXIgdHJnX2Zv cl9wb3J0aW9uX29mX2FmdGVyIG9uIHRhYmxlIGZvcl9wb3J0aW9uX29mX3Rlc3QKKy0tIFRy aWdnZXJzIHdpdGggYSBjdXN0b20gdHJhbnNpdGlvbiB0YWJsZSBuYW1lOgorRFJPUCBUQUJM RSBmb3JfcG9ydGlvbl9vZl90ZXN0OworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rl c3QgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0 ZXh0CispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMgKCdbMSwy KScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScsICdvbmUnKTsKK0NSRUFURSBGVU5DVElP TiBkdW1wX3RyaWdnZXIoKQorUkVUVVJOUyBUUklHR0VSIExBTkdVQUdFIHBscGdzcWwgQVMK KyQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJ1RHX09QID0gJScsIFRHX09QOworICBJRiBU R19PUCA9ICdJTlNFUlQnIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ3RyaWdnZXIgPSAlLCBU R19MRVZFTCA9ICUsIE5FVyB0YWJsZSA9ICUnLAorICAgICAgVEdfTkFNRSwgVEdfTEVWRUws IChTRUxFQ1Qgc3RyaW5nX2FnZyhuZXdfdGFibGU6OnRleHQsICcsICcgT1JERVIgQlkgaWQp IEZST00gbmV3X3RhYmxlKTsKKyAgRUxTSUYgVEdfT1AgPSAnVVBEQVRFJyBUSEVOCisgICAg UkFJU0UgTk9USUNFICd0cmlnZ2VyID0gJSwgVEdfTEVWRUwgPSAlLCBPTEQgdGFibGUgPSAl LCBORVcgdGFibGUgPSAlJywKKyAgICAgIFRHX05BTUUsIFRHX0xFVkVMLAorICAgICAgKFNF TEVDVCBzdHJpbmdfYWdnKG9sZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJP TSBvbGRfdGFibGUpLAorICAgICAgKFNFTEVDVCBzdHJpbmdfYWdnKG5ld190YWJsZTo6dGV4 dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBuZXdfdGFibGUpOworICBFTFNJRiBUR19PUCA9 ICdERUxFVEUnIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ3RyaWdnZXIgPSAlLCBUR19MRVZF TCA9ICUsIE9MRCB0YWJsZSA9ICUnLAorICAgICAgVEdfTkFNRSwgVEdfTEVWRUwsIChTRUxF Q1Qgc3RyaW5nX2FnZyhvbGRfdGFibGU6OnRleHQsICcsICcgT1JERVIgQlkgaWQpIEZST00g b2xkX3RhYmxlKTsKKyAgRU5EIElGOworICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkOworQ1JF QVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZworQUZURVIgSU5T RVJUIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE5FVyBUQUJMRSBBUyBu ZXdfdGFibGUKK0ZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIo KTsKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWdfc3Rt dAorQUZURVIgSU5TRVJUIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE5F VyBUQUJMRSBBUyBuZXdfdGFibGUKK0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NF RFVSRSBkdW1wX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rl c3RfdXBkYXRlX3RyaWcKK0FGVEVSIFVQREFURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CitS RUZFUkVOQ0lORyBPTEQgVEFCTEUgQVMgb2xkX3RhYmxlIE5FVyBUQUJMRSBBUyBuZXdfdGFi bGUKK0ZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKK0NS RUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWdfc3RtdAorQUZU RVIgVVBEQVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJM RSBBUyBvbGRfdGFibGUgTkVXIFRBQkxFIEFTIG5ld190YWJsZQorRk9SIEVBQ0ggU1RBVEVN RU5UIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOworQ1JFQVRFIFRSSUdHRVIg Zm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJpZworQUZURVIgREVMRVRFIE9OIGZvcl9w b3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFibGUKK0ZP UiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKK0NSRUFURSBU UklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfZGVsZXRlX3RyaWdfc3RtdAorQUZURVIgREVM RVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBv bGRfdGFibGUKK0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3Ry aWdnZXIoKTsKK0JFR0lOOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gJzIwMTktMDEtMDEnCisg IFNFVCBuYW1lID0gJzIwMTgtMDEtMTVfdG9fMjAxOS0wMS0wMSc7CitOT1RJQ0U6ICBUR19P UCA9IElOU0VSVAorTk9USUNFOiAgdHJpZ2dlciA9IGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5z ZXJ0X3RyaWcsIFRHX0xFVkVMID0gUk9XLCBORVcgdGFibGUgPSAoIlsxLDIpIiwiWzAxLTAx LTIwMTgsMDEtMTUtMjAxOCkiLG9uZSksICgiWzEsMikiLCJbMDEtMDEtMjAxOSwwMS0wMS0y MDIwKSIsb25lKQorTk9USUNFOiAgVEdfT1AgPSBJTlNFUlQKK05PVElDRTogIHRyaWdnZXIg PSBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnLCBUR19MRVZFTCA9IFJPVywgTkVX IHRhYmxlID0gKCJbMSwyKSIsIlswMS0wMS0yMDE4LDAxLTE1LTIwMTgpIixvbmUpLCAoIlsx LDIpIiwiWzAxLTAxLTIwMTksMDEtMDEtMjAyMCkiLG9uZSkKK05PVElDRTogIFRHX09QID0g VVBEQVRFCitOT1RJQ0U6ICB0cmlnZ2VyID0gZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRhdGVf dHJpZywgVEdfTEVWRUwgPSBST1csIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMDEtMDEtMjAx OCwwMS0wMS0yMDIwKSIsb25lKSwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlswMS0xNS0yMDE4 LDAxLTAxLTIwMTkpIiwyMDE4LTAxLTE1X3RvXzIwMTktMDEtMDEpCitOT1RJQ0U6ICBUR19P UCA9IFVQREFURQorTk9USUNFOiAgdHJpZ2dlciA9IGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBk YXRlX3RyaWdfc3RtdCwgVEdfTEVWRUwgPSBTVEFURU1FTlQsIE9MRCB0YWJsZSA9ICgiWzEs MikiLCJbMDEtMDEtMjAxOCwwMS0wMS0yMDIwKSIsb25lKSwgTkVXIHRhYmxlID0gKCJbMSwy KSIsIlswMS0xNS0yMDE4LDAxLTAxLTIwMTkpIiwyMDE4LTAxLTE1X3RvXzIwMTktMDEtMDEp CitST0xMQkFDSzsKK0JFR0lOOworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAor ICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDEtMjEnOwor Tk9USUNFOiAgVEdfT1AgPSBJTlNFUlQKK05PVElDRTogIHRyaWdnZXIgPSBmb3JfcG9ydGlv bl9vZl90ZXN0X2luc2VydF90cmlnLCBUR19MRVZFTCA9IFJPVywgTkVXIHRhYmxlID0gKCJb MSwyKSIsIlswMS0yMS0yMDE4LDAxLTAxLTIwMjApIixvbmUpCitOT1RJQ0U6ICBUR19PUCA9 IERFTEVURQorTk9USUNFOiAgdHJpZ2dlciA9IGZvcl9wb3J0aW9uX29mX3Rlc3RfZGVsZXRl X3RyaWcsIFRHX0xFVkVMID0gUk9XLCBPTEQgdGFibGUgPSAoIlsxLDIpIiwiWzAxLTAxLTIw MTgsMDEtMDEtMjAyMCkiLG9uZSkKK05PVElDRTogIFRHX09QID0gREVMRVRFCitOT1RJQ0U6 ICB0cmlnZ2VyID0gZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJpZ19zdG10LCBUR19M RVZFTCA9IFNUQVRFTUVOVCwgT0xEIHRhYmxlID0gKCJbMSwyKSIsIlswMS0wMS0yMDE4LDAx LTAxLTIwMjApIixvbmUpCitST0xMQkFDSzsKK0JFR0lOOworVVBEQVRFIGZvcl9wb3J0aW9u X29mX3Rlc3QKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4 LTAxLTAyJworICBTRVQgbmFtZSA9ICdOVUxMX3RvXzIwMTgtMDEtMDEnOworTk9USUNFOiAg VEdfT1AgPSBJTlNFUlQKK05PVElDRTogIHRyaWdnZXIgPSBmb3JfcG9ydGlvbl9vZl90ZXN0 X2luc2VydF90cmlnLCBUR19MRVZFTCA9IFJPVywgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsw MS0wMi0yMDE4LDAxLTAxLTIwMjApIixvbmUpCitOT1RJQ0U6ICBUR19PUCA9IFVQREFURQor Tk9USUNFOiAgdHJpZ2dlciA9IGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWcsIFRH X0xFVkVMID0gUk9XLCBPTEQgdGFibGUgPSAoIlsxLDIpIiwiWzAxLTAxLTIwMTgsMDEtMDEt MjAyMCkiLG9uZSksIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMDEtMDEtMjAxOCwwMS0wMi0y MDE4KSIsTlVMTF90b18yMDE4LTAxLTAxKQorTk9USUNFOiAgVEdfT1AgPSBVUERBVEUKK05P VElDRTogIHRyaWdnZXIgPSBmb3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90cmlnX3N0bXQs IFRHX0xFVkVMID0gU1RBVEVNRU5ULCBPTEQgdGFibGUgPSAoIlsxLDIpIiwiWzAxLTAxLTIw MTgsMDEtMDEtMjAyMCkiLG9uZSksIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMDEtMDEtMjAx OCwwMS0wMi0yMDE4KSIsTlVMTF90b18yMDE4LTAxLTAxKQorUk9MTEJBQ0s7CistLSBUZXN0 IHdpdGggbXVsdGlyYW5nZXMKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MiAo CisgIGlkIGludDRyYW5nZSBOT1QgTlVMTCwKKyAgdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2Ug Tk9UIE5VTEwsCisgIG5hbWUgdGV4dCBOT1QgTlVMTCwKKwlDT05TVFJBSU5UIGZvcl9wb3J0 aW9uX29mX3Rlc3QyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0MgorVkFMVUVTCiso J1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgt MDItMDMpJyksIGRhdGVyYW5nZSgnMjAxOC0wMi0wNCcsICcyMDE4LTAzLTAzJykpLCAnb25l JyksCisoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywg JzIwMTgtMDQtMDQpJykpLCAnb25lJyksCisoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDUtMDEpJykpLCAndHdvJyksCisoJ1szLDQp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgbnVsbCkpLCAndGhy ZWUnKTsKKzsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xMCcsICcyMDE4 LTAyLTEwJyksIGRhdGVyYW5nZSgnMjAxOC0wMy0wNScsICcyMDE4LTA1LTAxJykpKQorU0VU IG5hbWUgPSAnb25lXjEnCitXSEVSRSBpZCA9ICdbMSwyKSc7CitERUxFVEUgRlJPTSBmb3Jf cG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTE1JyksIGRhdGVyYW5nZSgn MjAxOC0wMy0wMScsICcyMDE4LTAzLTE1JykpKQorV0hFUkUgaWQgPSAnWzIsMyknOworU0VM RUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbmFtZSAgCistLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCisgWzEsMikgfCB7WzAxLTAyLTIwMTgsMDEtMTAt MjAxOCksWzAyLTEwLTIwMTgsMDMtMDMtMjAxOCl9ICAgICAgICAgICAgICAgICAgICAgICAg IHwgb25lCisgWzEsMikgfCB7WzAxLTEwLTIwMTgsMDItMDMtMjAxOCksWzAyLTA0LTIwMTgs MDItMTAtMjAxOCl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgb25lXjEKKyBbMSwyKSB8 IHtbMDMtMDMtMjAxOCwwMy0wNS0yMDE4KX0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCBvbmUKKyBbMSwyKSB8IHtbMDMtMDUtMjAxOCwwNC0w NC0yMDE4KX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCBvbmVeMQorIFsyLDMpIHwge1swMS0wMS0yMDE4LDAxLTE1LTIwMTgpLFswMi0xNS0y MDE4LDAzLTAxLTIwMTgpLFswMy0xNS0yMDE4LDA1LTAxLTIwMTgpfSB8IHR3bworIFszLDQp IHwge1swMS0wMS0yMDE4LCl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IHRocmVlCisoNiByb3dzKQorCitEUk9QIFRBQkxF IGZvcl9wb3J0aW9uX29mX3Rlc3QyOworLS0gVGVzdCB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5 cGUKK0NSRUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFTIHJhbmdlKHN1YnR5cGU9ZGF0ZSk7CitD UkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIgKAorICBpZCBpbnQ0cmFuZ2UgTk9U IE5VTEwsCisgIHZhbGlkX2F0IG15ZGF0ZXJhbmdlIE5PVCBOVUxMLAorICBuYW1lIHRleHQg Tk9UIE5VTEwsCisJQ09OU1RSQUlOVCBmb3JfcG9ydGlvbl9vZl90ZXN0Ml9wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworSU5TRVJUIElOVE8g Zm9yX3BvcnRpb25fb2ZfdGVzdDIKK1ZBTFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0wMiwy MDE4LTAyLTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIwMTgtMDItMDMsMjAxOC0wMy0w MyknLCAnb25lJyksCisoJ1sxLDIpJywgJ1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpJywgJ29u ZScpLAorKCdbMiwzKScsICdbMjAxOC0wMS0wMSwyMDE4LTA1LTAxKScsICd0d28nKSwKKygn WzMsNCknLCAnWzIwMTgtMDEtMDEsKScsICd0aHJlZScpOworOworVVBEQVRFIGZvcl9wb3J0 aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTEw JyBUTyAnMjAxOC0wMi0xMCcKK1NFVCBuYW1lID0gJ29uZV4xJworV0hFUkUgaWQgPSAnWzEs MiknOworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMTUnIFRPICcyMDE4LTAyLTE1JworV0hFUkUgaWQg PSAnWzIsMyknOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MiBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5h bWUgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBbMSwy KSB8IFswMS0wMi0yMDE4LDAxLTEwLTIwMTgpIHwgb25lCisgWzEsMikgfCBbMDEtMTAtMjAx OCwwMi0wMy0yMDE4KSB8IG9uZV4xCisgWzEsMikgfCBbMDItMDMtMjAxOCwwMi0xMC0yMDE4 KSB8IG9uZV4xCisgWzEsMikgfCBbMDItMTAtMjAxOCwwMy0wMy0yMDE4KSB8IG9uZQorIFsx LDIpIHwgWzAzLTAzLTIwMTgsMDQtMDQtMjAxOCkgfCBvbmUKKyBbMiwzKSB8IFswMS0wMS0y MDE4LDAxLTE1LTIwMTgpIHwgdHdvCisgWzIsMykgfCBbMDItMTUtMjAxOCwwNS0wMS0yMDE4 KSB8IHR3bworIFszLDQpIHwgWzAxLTAxLTIwMTgsKSAgICAgICAgICAgfCB0aHJlZQorKDgg cm93cykKKworRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKK0RST1AgVFlQRSBt eWRhdGVyYW5nZTsKKy0tIFRlc3QgRk9SIFBPUlRJT04gT0YgYWdhaW5zdCBhIHBhcnRpdGlv bmVkIHRhYmxlLgorLS0gdGVtcG9yYWxfcGFydGl0aW9uZWRfMSBoYXMgdGhlIHNhbWUgYXR0 bnVtcyBhcyB0aGUgcm9vdAorLS0gdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBoYXMgdGhlIGRp ZmZlcmVudCBhdHRudW1zIGZyb20gdGhlIHJvb3QKKy0tIHRlbXBvcmFsX3BhcnRpdGlvbmVk XzUgaGFzIHRoZSBkaWZmZXJlbnQgYXR0bnVtcyB0b28sIGJ1dCByZXZlcnNlZAorQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRf YXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJp dGlvbmVkX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispIFBB UlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFZBTFVFUyBJTiAo J1sxLDIpJywgJ1syLDMpJyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf MyBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFZBTFVFUyBJTiAoJ1sz LDQpJywgJ1s0LDUpJyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBQ QVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFZBTFVFUyBJTiAoJ1s1LDYp JywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBERVRBQ0gg UEFSVElUSU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzM7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF8zIERST1AgQ09MVU1OIGlkLCBEUk9QIENPTFVNTiB2YWxpZF9hdDsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgQUREIENPTFVNTiBpZCBpbnQ0 cmFuZ2UgTk9UIE5VTEwsIEFERCBDT0xVTU4gdmFsaWRfYXQgZGF0ZXJhbmdlIE5PVCBOVUxM OworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgQVRUQUNIIFBBUlRJVElPTiB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIEZPUiBWQUxVRVMgSU4gKCdbMyw0KScsICdbNCw1KScp OworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgREVUQUNIIFBBUlRJVElPTiB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF81OworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfNSBEUk9QIENPTFVNTiBpZCwgRFJPUCBDT0xVTU4gdmFsaWRfYXQ7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IEFERCBDT0xVTU4gdmFsaWRfYXQgZGF0ZXJhbmdl IE5PVCBOVUxMLCBBREQgQ09MVU1OIGlkIGludDRyYW5nZSBOT1QgTlVMTDsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEFUVEFDSCBQQVJUSVRJT04gdGVtcG9yYWxfcGFy dGl0aW9uZWRfNSBGT1IgVkFMVUVTIElOICgnWzUsNiknLCAnWzYsNyknKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ29uZScpLAorICAoJ1szLDQpJywgZGF0 ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ3RocmVlJyksCisgICgnWzUs NiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAnZml2ZScpOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKKyAgaWQgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgbmFtZSAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLQorIFsxLDIpIHwgWzAxLTAxLTIwMDAsMDEtMDEtMjAxMCkgfCBvbmUK KyBbMyw0KSB8IFswMS0wMS0yMDAwLDAxLTAxLTIwMTApIHwgdGhyZWUKKyBbNSw2KSB8IFsw MS0wMS0yMDAwLDAxLTAxLTIwMTApIHwgZml2ZQorKDMgcm93cykKKworLS0gVXBkYXRlIHdp dGhvdXQgbW92aW5nIHdpdGhpbiBwYXJ0aXRpb24gMQorVVBEQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDMtMDEnIFRPICcy MDAwLTA0LTAxJworICBTRVQgbmFtZSA9ICdvbmVeMScKKyAgV0hFUkUgaWQgPSAnWzEsMikn OworLS0gVXBkYXRlIHdpdGhvdXQgbW92aW5nIHdpdGhpbiBwYXJ0aXRpb24gMworVVBEQVRF IHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MDAtMDMtMDEnIFRPICcyMDAwLTA0LTAxJworICBTRVQgbmFtZSA9ICd0aHJlZV4xJworICBX SEVSRSBpZCA9ICdbMyw0KSc7CistLSBVcGRhdGUgd2l0aG91dCBtb3Zpbmcgd2l0aGluIHBh cnRpdGlvbiA1CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAwMC0wMy0wMScgVE8gJzIwMDAtMDQtMDEnCisgIFNFVCBuYW1l ID0gJ2ZpdmVeMScKKyAgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gTW92ZSBmcm9tIHBhcnRp dGlvbiAxIHRvIHBhcnRpdGlvbiAzCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wNi0wMScgVE8gJzIwMDAtMDctMDEn CisgIFNFVCBuYW1lID0gJ29uZV4yJywKKyAgICAgIGlkID0gJ1s0LDUpJworICBXSEVSRSBp ZCA9ICdbMSwyKSc7CistLSBNb3ZlIGZyb20gcGFydGl0aW9uIDMgdG8gcGFydGl0aW9uIDEK K1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDAwLTA2LTAxJyBUTyAnMjAwMC0wNy0wMScKKyAgU0VUIG5hbWUgPSAndGhyZWVe MicsCisgICAgICBpZCA9ICdbMiwzKScKKyAgV0hFUkUgaWQgPSAnWzMsNCknOworLS0gTW92 ZSBmcm9tIHBhcnRpdGlvbiA1IHRvIHBhcnRpdGlvbiAzCitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wNi0wMScgVE8g JzIwMDAtMDctMDEnCisgIFNFVCBuYW1lID0gJ2ZpdmVeMicsCisgICAgICBpZCA9ICdbMyw0 KScKKyAgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gVXBkYXRlIGFsbCBwYXJ0aXRpb25zIGF0 IG9uY2UgKGVhY2ggd2l0aCBsZWZ0b3ZlcnMpCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgIG5hbWUgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0KKyBbMSwyKSB8IFswMS0wMS0yMDAwLDAzLTAxLTIwMDApIHwgb25l CisgWzEsMikgfCBbMDMtMDEtMjAwMCwwNC0wMS0yMDAwKSB8IG9uZV4xCisgWzEsMikgfCBb MDQtMDEtMjAwMCwwNi0wMS0yMDAwKSB8IG9uZQorIFsxLDIpIHwgWzA3LTAxLTIwMDAsMDEt MDEtMjAxMCkgfCBvbmUKKyBbMiwzKSB8IFswNi0wMS0yMDAwLDA3LTAxLTIwMDApIHwgdGhy ZWVeMgorIFszLDQpIHwgWzAxLTAxLTIwMDAsMDMtMDEtMjAwMCkgfCB0aHJlZQorIFszLDQp IHwgWzAzLTAxLTIwMDAsMDQtMDEtMjAwMCkgfCB0aHJlZV4xCisgWzMsNCkgfCBbMDQtMDEt MjAwMCwwNi0wMS0yMDAwKSB8IHRocmVlCisgWzMsNCkgfCBbMDYtMDEtMjAwMCwwNy0wMS0y MDAwKSB8IGZpdmVeMgorIFszLDQpIHwgWzA3LTAxLTIwMDAsMDEtMDEtMjAxMCkgfCB0aHJl ZQorIFs0LDUpIHwgWzA2LTAxLTIwMDAsMDctMDEtMjAwMCkgfCBvbmVeMgorIFs1LDYpIHwg WzAxLTAxLTIwMDAsMDMtMDEtMjAwMCkgfCBmaXZlCisgWzUsNikgfCBbMDMtMDEtMjAwMCww NC0wMS0yMDAwKSB8IGZpdmVeMQorIFs1LDYpIHwgWzA0LTAxLTIwMDAsMDYtMDEtMjAwMCkg fCBmaXZlCisgWzUsNikgfCBbMDctMDEtMjAwMCwwMS0wMS0yMDEwKSB8IGZpdmUKKygxNSBy b3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzEgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCAgbmFt ZSAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorIFsx LDIpIHwgWzAxLTAxLTIwMDAsMDMtMDEtMjAwMCkgfCBvbmUKKyBbMSwyKSB8IFswMy0wMS0y MDAwLDA0LTAxLTIwMDApIHwgb25lXjEKKyBbMSwyKSB8IFswNC0wMS0yMDAwLDA2LTAxLTIw MDApIHwgb25lCisgWzEsMikgfCBbMDctMDEtMjAwMCwwMS0wMS0yMDEwKSB8IG9uZQorIFsy LDMpIHwgWzA2LTAxLTIwMDAsMDctMDEtMjAwMCkgfCB0aHJlZV4yCisoNSByb3dzKQorCitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICBuYW1lICAgfCAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0t LS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHRocmVlICAgfCBb Myw0KSB8IFswMS0wMS0yMDAwLDAzLTAxLTIwMDApCisgdGhyZWVeMSB8IFszLDQpIHwgWzAz LTAxLTIwMDAsMDQtMDEtMjAwMCkKKyB0aHJlZSAgIHwgWzMsNCkgfCBbMDQtMDEtMjAwMCww Ni0wMS0yMDAwKQorIGZpdmVeMiAgfCBbMyw0KSB8IFswNi0wMS0yMDAwLDA3LTAxLTIwMDAp CisgdGhyZWUgICB8IFszLDQpIHwgWzA3LTAxLTIwMDAsMDEtMDEtMjAxMCkKKyBvbmVeMiAg IHwgWzQsNSkgfCBbMDYtMDEtMjAwMCwwNy0wMS0yMDAwKQorKDYgcm93cykKKworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgbmFtZSAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8ICBpZCAgIAorLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCisgZml2ZSAgIHwgWzAxLTAxLTIw MDAsMDMtMDEtMjAwMCkgfCBbNSw2KQorIGZpdmVeMSB8IFswMy0wMS0yMDAwLDA0LTAxLTIw MDApIHwgWzUsNikKKyBmaXZlICAgfCBbMDQtMDEtMjAwMCwwNi0wMS0yMDAwKSB8IFs1LDYp CisgZml2ZSAgIHwgWzA3LTAxLTIwMDAsMDEtMDEtMjAxMCkgfCBbNSw2KQorKDQgcm93cykK KworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CmluZGV4IDlkMDQ3YjIxYjg4Li45YjY3MjJjNGQ1 OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CkBAIC0x OTQ0LDYgKzE5NDQsNyBAQCBXSEVSRSBhMS5hbW9wZmFtaWx5ID0gMCBPUiBhMS5hbW9wbGVm dHR5cGUgPSAwIE9SIGExLmFtb3ByaWdodHR5cGUgPSAwCiBTRUxFQ1QgYTEuYW1vcGZhbWls eSwgYTEuYW1vcHN0cmF0ZWd5CiBGUk9NIHBnX2Ftb3AgYXMgYTEKIFdIRVJFIE5PVCAoKGEx LmFtb3BwdXJwb3NlID0gJ3MnIEFORCBhMS5hbW9wc29ydGZhbWlseSA9IDApIE9SCisgICAg ICAgICAgIChhMS5hbW9wcHVycG9zZSA9ICdwJyBBTkQgYTEuYW1vcHNvcnRmYW1pbHkgPSAw KSBPUgogICAgICAgICAgICAoYTEuYW1vcHB1cnBvc2UgPSAnbycgQU5EIGExLmFtb3Bzb3J0 ZmFtaWx5IDw+IDApKTsKICBhbW9wZmFtaWx5IHwgYW1vcHN0cmF0ZWd5IAogLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3ByaXZpbGVnZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcml2aWxl Z2VzLm91dAppbmRleCBmYWIwY2M4MDBmYy4uMjU1YzU4MWVkN2QgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wcml2aWxlZ2VzLm91dApAQCAtMTAzOCw2ICsxMDM4LDI0IEBA IEVSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4gImIiIG9mIHJlbGF0aW9uICJlcnJ0c3Rf cGFydF8yIiB2aW9sYXRlcyBub3QtbnVsbCBjCiBERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250 YWlucyAoYSwgYiwgYykgPSAoYWFhYSwgbnVsbCwgY2NjKS4KIFNFVCBTRVNTSU9OIEFVVEhP UklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOwogRFJPUCBUQUJMRSBlcnJ0c3Q7CistLSB0 ZXN0IGNvbHVtbi1sZXZlbCBwcml2aWxlZ2VzIG9uIHRoZSByYW5nZS9QRVJJT0QgdXNlZCBp biBGT1IgUE9SVElPTiBPRgorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3By aXZfdXNlcjE7CitDUkVBVEUgVEFCTEUgdDEgKAorICBjMSBpbnQ0cmFuZ2UsCisgIHZhbGlk X2F0IHRzcmFuZ2UsCisJQ09OU1RSQUlOVCB0MXBrIFBSSU1BUlkgS0VZIChjMSwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitHUkFOVCBTRUxFQ1QgT04gdDEgVE8gcmVncmVz c19wcml2X3VzZXIyOworR1JBTlQgU0VMRUNUIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2Vy MzsKK0dSQU5UIFVQREFURSAoYzEpIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyMjsKK0dS QU5UIFVQREFURSAoYzEsIHZhbGlkX2F0KSBPTiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjM7 CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMjsKK1VQREFU RSB0MSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAxLTAxJyBUTyAnMjAw MS0wMS0wMScgU0VUIGMxID0gJ1syLDMpJzsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIHRhYmxlIHQxCitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91 c2VyMzsKK1VQREFURSB0MSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAx LTAxJyBUTyAnMjAwMS0wMS0wMScgU0VUIGMxID0gJ1syLDMpJzsKK1NFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOworRFJPUCBUQUJMRSB0MTsKIC0tIHRl c3QgY29sdW1uLWxldmVsIHByaXZpbGVnZXMgd2hlbiBpbnZvbHZlZCB3aXRoIERFTEVURQog U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3ByaXZfdXNlcjE7CiBBTFRFUiBU QUJMRSBhdGVzdDYgQUREIENPTFVNTiB0aHJlZSBpbnRlZ2VyOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVfdmlld3Mub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVfdmlld3Mub3V0CmluZGV4IDQyMDc2OWE0MGM5 Li5mOTczZTE1NTRjMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91 cGRhdGFibGVfdmlld3Mub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdXBk YXRhYmxlX3ZpZXdzLm91dApAQCAtMzY2Niw2ICszNjY2LDM4IEBAIHNlbGVjdCAqIGZyb20g dXZfaW9jdV90YWI7CiAKIGRyb3AgdmlldyB1dl9pb2N1X3ZpZXc7CiBkcm9wIHRhYmxlIHV2 X2lvY3VfdGFiOworLS0gQ2hlY2sgVVBEQVRFIEZPUiBQT1JUSU9OIE9GIHdvcmtzIGNvcnJl Y3RseQorY3JlYXRlIHRhYmxlIHV2X2Zwb190YWIgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQg dHNyYW5nZSwgYiBmbG9hdCwKKyAgICBjb25zdHJhaW50IHBrX3V2X2Zwb190YWIgcHJpbWFy eSBrZXkgKGlkLCB2YWxpZF9hdCB3aXRob3V0IG92ZXJsYXBzKSk7CitpbnNlcnQgaW50byB1 dl9mcG9fdGFiIHZhbHVlcyAoJ1sxLDFdJywgJ1syMDIwLTAxLTAxLCAyMDMwLTAxLTAxKScs IDApOworY3JlYXRlIHZpZXcgdXZfZnBvX3ZpZXcgYXMKKyAgICBzZWxlY3QgYiwgYisxIGFz IGMsIHZhbGlkX2F0LCBpZCwgJzIuMCc6OnRleHQgYXMgdHdvIGZyb20gdXZfZnBvX3RhYjsK K2luc2VydCBpbnRvIHV2X2Zwb192aWV3IChpZCwgdmFsaWRfYXQsIGIpIHZhbHVlcyAoJ1sx LDFdJywgJ1syMDEwLTAxLTAxLCAyMDIwLTAxLTAxKScsIDEpOworc2VsZWN0ICogZnJvbSB1 dl9mcG9fdmlldzsKKyBiIHwgYyB8ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgaWQgICB8IHR3byAKKy0tLSstLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0rLS0tLS0KKyAwIHwgMSB8IFsiV2VkIEphbiAwMSAwMDowMDowMCAyMDIwIiwiVHVl IEphbiAwMSAwMDowMDowMCAyMDMwIikgfCBbMSwyKSB8IDIuMAorIDEgfCAyIHwgWyJGcmkg SmFuIDAxIDAwOjAwOjAwIDIwMTAiLCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjAiKSB8IFsx LDIpIHwgMi4wCisoMiByb3dzKQorCit1cGRhdGUgdXZfZnBvX3ZpZXcgZm9yIHBvcnRpb24g b2YgdmFsaWRfYXQgZnJvbSAnMjAxNS0wMS0wMScgdG8gJzIwMjAtMDEtMDEnIHNldCBiID0g MiB3aGVyZSBpZCA9ICdbMSwxXSc7CitzZWxlY3QgKiBmcm9tIHV2X2Zwb192aWV3OworIGIg fCBjIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAg ICAgICAgICB8ICBpZCAgIHwgdHdvIAorLS0tKy0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLQorIDAg fCAxIHwgWyJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjAiLCJUdWUgSmFuIDAxIDAwOjAwOjAw IDIwMzAiKSB8IFsxLDIpIHwgMi4wCisgMiB8IDMgfCBbIlRodSBKYW4gMDEgMDA6MDA6MDAg MjAxNSIsIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyMCIpIHwgWzEsMikgfCAyLjAKKyAxIHwg MiB8IFsiRnJpIEphbiAwMSAwMDowMDowMCAyMDEwIiwiVGh1IEphbiAwMSAwMDowMDowMCAy MDE1IikgfCBbMSwyKSB8IDIuMAorKDMgcm93cykKKworZGVsZXRlIGZyb20gdXZfZnBvX3Zp ZXcgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNy0wMS0wMScgdG8gJzIwMjIt MDEtMDEnIHdoZXJlIGlkID0gJ1sxLDFdJzsKK3NlbGVjdCAqIGZyb20gdXZfZnBvX3ZpZXc7 CisgYiB8IGMgfCAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIGlkICAgfCB0d28gCistLS0rLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0t CisgMSB8IDIgfCBbIkZyaSBKYW4gMDEgMDA6MDA6MDAgMjAxMCIsIlRodSBKYW4gMDEgMDA6 MDA6MDAgMjAxNSIpIHwgWzEsMikgfCAyLjAKKyAwIHwgMSB8IFsiU2F0IEphbiAwMSAwMDow MDowMCAyMDIyIiwiVHVlIEphbiAwMSAwMDowMDowMCAyMDMwIikgfCBbMSwyKSB8IDIuMAor IDIgfCAzIHwgWyJUaHUgSmFuIDAxIDAwOjAwOjAwIDIwMTUiLCJTdW4gSmFuIDAxIDAwOjAw OjAwIDIwMTciKSB8IFsxLDIpIHwgMi4wCisoMyByb3dzKQorCiAtLSBUZXN0IHdob2xlLXJv dyByZWZlcmVuY2VzIHRvIHRoZSB2aWV3CiBjcmVhdGUgdGFibGUgdXZfaW9jdV90YWIgKGEg aW50IHVuaXF1ZSwgYiB0ZXh0KTsKIGNyZWF0ZSB2aWV3IHV2X2lvY3VfdmlldyBhcwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKaW5k ZXggMjkwZTc3MTk4YWUuLjkwMjU5NGVmNGI4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKQEAgLTg4OSw2ICs4ODksMzYgQEAg SU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQsIGlkMiwgbmFtZSkKICAgKCdb MSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbNyw4KScs ICdmb28nKSwKICAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAx LTAxJyksICdbOSwxMCknLCAnYmFyJykKIDsKK1VQREFURSB0ZW1wb3JhbDMgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wNS0wMScgVE8gJzIwMDAtMDctMDEnCisgIFNF VCBuYW1lID0gbmFtZSB8fCAnMSc7CitVUERBVEUgdGVtcG9yYWwzIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMDAtMDQtMDEnIFRPICcyMDAwLTA2LTAxJworICBTRVQgbmFt ZSA9IG5hbWUgfHwgJzInCisgIFdIRVJFIGlkID0gJ1syLDMpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgIGlkMiAgIHwgbmFtZSAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLQorIFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAw MC0wNS0wMSkgfCBbNyw4KSAgfCBmb28KKyBbMSwyKSB8IFsyMDAwLTA1LTAxLDIwMDAtMDct MDEpIHwgWzcsOCkgIHwgZm9vMQorIFsxLDIpIHwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkg fCBbNyw4KSAgfCBmb28KKyBbMiwzKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDQtMDEpIHwgWzks MTApIHwgYmFyCisgWzIsMykgfCBbMjAwMC0wNC0wMSwyMDAwLTA1LTAxKSB8IFs5LDEwKSB8 IGJhcjIKKyBbMiwzKSB8IFsyMDAwLTA1LTAxLDIwMDAtMDYtMDEpIHwgWzksMTApIHwgYmFy MTIKKyBbMiwzKSB8IFsyMDAwLTA2LTAxLDIwMDAtMDctMDEpIHwgWzksMTApIHwgYmFyMQor IFsyLDMpIHwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkgfCBbOSwxMCkgfCBiYXIKKyg4IHJv d3MpCisKKy0tIGNvbmZsaWN0aW5nIGlkIG9ubHk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMg KGlkLCB2YWxpZF9hdCwgaWQyLCBuYW1lKQorICBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVy YW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJyksICdbOCw5KScsICdmb28zJyk7CitF UlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29uc3Ry YWludCAidGVtcG9yYWwzX3BrIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwy KSwgWzIwMDUtMDEtMDEsMjAwNi0wMS0wMSkpIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGtl eSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpKS4KKy0t IGNvbmZsaWN0aW5nIGlkMiBvbmx5OgorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFs aWRfYXQsIGlkMiwgbmFtZSkKKyAgVkFMVUVTCisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIw MDUtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAnWzksMTApJywgJ2JhcjMnKTsKK0VSUk9SOiAg Y29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0 ZW1wb3JhbDNfdW5pcSIKK0RFVEFJTDogIEtleSAoaWQyLCB2YWxpZF9hdCk9KFs5LDEwKSwg WzIwMDUtMDEtMDEsMjAxMC0wMS0wMSkpIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGtleSAo aWQyLCB2YWxpZF9hdCk9KFs5LDEwKSwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkpLgogRFJP UCBUQUJMRSB0ZW1wb3JhbDM7CiAtLQogLS0gdGVzdCBjaGFuZ2luZyB0aGUgUEsncyBkZXBl bmRlbmNpZXMKQEAgLTk0MSw2ICs5NzEsMzYgQEAgU0VMRUNUICogRlJPTSB0cDIgT1JERVIg QlkgaWQsIHZhbGlkX2F0OwogIFszLDQpIHwgWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSkgfCB0 aHJlZQogKDEgcm93KQogCitVUERBVEUgIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1Jwor ICBTRVQgbmFtZSA9ICdvbmUyJworICBXSEVSRSBpZCA9ICdbMSwyKSc7CitVUERBVEUgIHRl bXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MDAtMDItMjAnIFRPICcyMDAwLTAyLTI1JworICBTRVQgaWQgPSAnWzQsNSknCisgIFdIRVJF IG5hbWUgPSAnb25lJzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMi0wMS0wMScgVE8gJzIwMDMtMDEtMDEnCisg IFNFVCBpZCA9ICdbMiwzKScKKyAgV0hFUkUgbmFtZSA9ICd0aHJlZSc7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDAwLTAxLTE1JyBUTyAnMjAwMC0wMi0xNScKKyAgV0hFUkUgaWQgPSAnWzMsNCknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5hbWUgIAorLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAx LTAxLDIwMDAtMDEtMTUpIHwgb25lCisgWzEsMikgfCBbMjAwMC0wMS0xNSwyMDAwLTAyLTAx KSB8IG9uZTIKKyBbMSwyKSB8IFsyMDAwLTAyLTAxLDIwMDAtMDItMTUpIHwgb25lMgorIFsx LDIpIHwgWzIwMDAtMDItMTUsMjAwMC0wMi0yMCkgfCBvbmUKKyBbMSwyKSB8IFsyMDAwLTAy LTI1LDIwMDAtMDMtMDEpIHwgb25lCisgWzIsMykgfCBbMjAwMi0wMS0wMSwyMDAzLTAxLTAx KSB8IHRocmVlCisgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDAwLTAxLTE1KSB8IHRocmVlCisg WzMsNCkgfCBbMjAwMC0wMi0xNSwyMDAyLTAxLTAxKSB8IHRocmVlCisgWzMsNCkgfCBbMjAw My0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCisgWzQsNSkgfCBbMjAwMC0wMi0yMCwyMDAw LTAyLTI1KSB8IG9uZQorKDEwIHJvd3MpCisKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0 aW9uZWQ7CiAtLSB0ZW1wb3JhbCBVTklRVUU6CiBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFy dGl0aW9uZWQgKApAQCAtOTc2LDYgKzEwMzYsMzYgQEAgU0VMRUNUICogRlJPTSB0cDIgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OwogIFszLDQpIHwgWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSkg fCB0aHJlZQogKDEgcm93KQogCitVUERBVEUgIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1 JworICBTRVQgbmFtZSA9ICdvbmUyJworICBXSEVSRSBpZCA9ICdbMSwyKSc7CitVUERBVEUg IHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMDAtMDItMjAnIFRPICcyMDAwLTAyLTI1JworICBTRVQgaWQgPSAnWzQsNSknCisgIFdI RVJFIG5hbWUgPSAnb25lJzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMi0wMS0wMScgVE8gJzIwMDMtMDEtMDEn CisgIFNFVCBpZCA9ICdbMiwzKScKKyAgV0hFUkUgbmFtZSA9ICd0aHJlZSc7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDAwLTAxLTE1JyBUTyAnMjAwMC0wMi0xNScKKyAgV0hFUkUgaWQgPSAnWzMsNCkn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5hbWUgIAorLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBbMSwyKSB8IFsyMDAw LTAxLTAxLDIwMDAtMDEtMTUpIHwgb25lCisgWzEsMikgfCBbMjAwMC0wMS0xNSwyMDAwLTAy LTAxKSB8IG9uZTIKKyBbMSwyKSB8IFsyMDAwLTAyLTAxLDIwMDAtMDItMTUpIHwgb25lMgor IFsxLDIpIHwgWzIwMDAtMDItMTUsMjAwMC0wMi0yMCkgfCBvbmUKKyBbMSwyKSB8IFsyMDAw LTAyLTI1LDIwMDAtMDMtMDEpIHwgb25lCisgWzIsMykgfCBbMjAwMi0wMS0wMSwyMDAzLTAx LTAxKSB8IHRocmVlCisgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDAwLTAxLTE1KSB8IHRocmVl CisgWzMsNCkgfCBbMjAwMC0wMi0xNSwyMDAyLTAxLTAxKSB8IHRocmVlCisgWzMsNCkgfCBb MjAwMy0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCisgWzQsNSkgfCBbMjAwMC0wMi0yMCwy MDAwLTAyLTI1KSB8IG9uZQorKDEwIHJvd3MpCisKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFy dGl0aW9uZWQ7CiAtLSBBTFRFUiBUQUJMRSBSRVBMSUNBIElERU5USVRZCiAtLSAoc2hvdWxk IGZhaWwpCkBAIC0xNTIwLDYgKzE2MTAsMTggQEAgVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQg aWQgPSAnWzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKIEVSUk9SOiAgdXBkYXRlIG9yIGRl bGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25z dHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtf cm5nMnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAx LTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBv cmFsX2ZrX3JuZzJybmciLgorLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMg b2theToKK1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDgpJworV0hF UkUgaWQgPSAnWzUsNiknOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERB VEUgdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAx LTA1JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1 LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5n IiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5n X2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQs IHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCBy ZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgogLS0gdGhlbiBk ZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBz dWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzMsNCknOwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCkBAIC0xNTYxLDYgKzE2NjMsMTggQEAgVVBE QVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2KScg QU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsK IEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9s YXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBv biB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlk X2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVu Y2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgorLS0gY2hhbmdpbmcgYW4g dW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJwor U0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gY2hhbmdpbmcganVz dCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdb Nyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBv biB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50 ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJu ZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIw MTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2Zr X3JuZzJybmciLgogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5k IHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2Zr X3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQg dmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCkBAIC0x NTk3LDkgKzE3MTEsMjIgQEAgQkVHSU47CiBDT01NSVQ7CiBFUlJPUjogIHVwZGF0ZSBvciBk ZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29u c3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2Zr X3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0w MS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1w b3JhbF9ma19ybmcycm5nIi4KKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlz IG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUs NiknOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRP ICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICB1cGRhdGUgb3Ig ZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9m a19ybmcycm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgt MDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVt cG9yYWxfZmtfcm5nMnJuZyIuCiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJl Y29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVt cG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CistLSBjbGVhbiB1cDoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgcGFyZW50X2lkID0gJ1s1LDYpJzsKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBJTiAoJ1s1LDYpJyk7CiAtLQogLS0gdGVz dCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKIC0tCkBAIC0xNjI4LDkgKzE3NTUs MjIgQEAgQkVHSU47CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBv cmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtf cm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBL ZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMg c3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KIFJP TExCQUNLOworLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBk ZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZwor Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEt MTAnCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24g dGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAi dGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmci CitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4 LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19y bmcycm5nIi4KIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0 aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19y bmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBX SEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKTsKKy0tIGNsZWFuIHVwOgorREVMRVRFIEZST00gdGVtcG9yYWxf Zmtfcm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNiknOworREVMRVRFIEZST00gdGVt cG9yYWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsKIC0tCiAtLSB0ZXN0IE9OIFVQREFU RS9ERUxFVEUgb3B0aW9ucwogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFy YWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmlu ZGV4IGRkYzE1NWMxOTVmLi41ZTk2OTNhMWQyNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVs X3NjaGVkdWxlCkBAIC00OCw3ICs0OCw3IEBAIHRlc3Q6IGNyZWF0ZV9pbmRleCBjcmVhdGVf aW5kZXhfc3BnaXN0IGNyZWF0ZV92aWV3IGluZGV4X2luY2x1ZGluZyBpbmRleF9pbmNsdWRp CiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJhbGxlbCB0ZXN0cwogIyAt LS0tLS0tLS0tCi10ZXN0OiBjcmVhdGVfYWdncmVnYXRlIGNyZWF0ZV9mdW5jdGlvbl9zcWwg Y3JlYXRlX2Nhc3QgY29uc3RyYWludHMgdHJpZ2dlcnMgc2VsZWN0IGluaGVyaXQgdHlwZWRf dGFibGUgdmFjdXVtIGRyb3BfaWZfZXhpc3RzIHVwZGF0YWJsZV92aWV3cyByb2xlYXR0cmli dXRlcyBjcmVhdGVfYW0gaGFzaF9mdW5jIGVycm9ycyBpbmZpbml0ZV9yZWN1cnNlCit0ZXN0 OiBjcmVhdGVfYWdncmVnYXRlIGNyZWF0ZV9mdW5jdGlvbl9zcWwgY3JlYXRlX2Nhc3QgY29u c3RyYWludHMgdHJpZ2dlcnMgc2VsZWN0IGluaGVyaXQgdHlwZWRfdGFibGUgdmFjdXVtIGRy b3BfaWZfZXhpc3RzIHVwZGF0YWJsZV92aWV3cyByb2xlYXR0cmlidXRlcyBjcmVhdGVfYW0g aGFzaF9mdW5jIGVycm9ycyBpbmZpbml0ZV9yZWN1cnNlIGZvcl9wb3J0aW9uX29mCiAKICMg LS0tLS0tLS0tLQogIyBzYW5pdHlfY2hlY2sgZG9lcyBhIHZhY3V1bSwgYWZmZWN0aW5nIHRo ZSBzb3J0IG9yZGVyIG9mIFNFTEVDVCAqCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9y dGlvbl9vZi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU4 MDJiNWM2N2ZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9y X3BvcnRpb25fb2Yuc3FsCkBAIC0wLDAgKzEsNTMxIEBACistLSBUZXN0cyBmb3IgVVBEQVRF L0RFTEVURSBGT1IgUE9SVElPTiBPRgorCistLSBXb3JrcyBvbiBub24tUEsgY29sdW1ucwor Q1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2F0IHRzcmFuZ2UsCisgIG5hbWUgdGV4dCBOT1QgTlVMTAorKTsKK0lOU0VSVCBJ TlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QgVkFMVUVTCisoJ1sxLDIpJywgJ1syMDE4LTAxLTAy LDIwMjAtMDEtMDEpJywgJ29uZScpOworCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAor Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gJzIwMTktMDEt MDEnCitTRVQgbmFtZSA9ICdmb28nOworCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90 ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTE1JyBUTyBOVUxM OworCitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CisKKy0tIFdvcmtzIG9u IG1vcmUgdGhhbiBvbmUgcmFuZ2UKK0RST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDsK K0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0ICgKKyAgaWQgaW50NHJhbmdlLAor ICB2YWxpZDFfYXQgdHNyYW5nZSwKKyAgdmFsaWQyX2F0IHRzcmFuZ2UsCisgIG5hbWUgdGV4 dCBOT1QgTlVMTAorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QgVkFMVUVT CisoJ1sxLDIpJywgJ1syMDE4LTAxLTAyLDIwMTgtMDItMDMpJywgJ1syMDE1LTAxLTAxLDIw MjUtMDEtMDEpJywgJ29uZScpOworCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgdmFsaWQxX2F0IEZST00gJzIwMTgtMDEtMTUnIFRPIE5VTEwKK1NFVCBu YW1lID0gJ2Zvbyc7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CisKK1VQ REFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZDJfYXQgRlJP TSAnMjAxOC0wMS0xNScgVE8gTlVMTAorU0VUIG5hbWUgPSAnYmFyJzsKK1NFTEVDVCAqIEZS T00gZm9yX3BvcnRpb25fb2ZfdGVzdDsKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2Zf dGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWQxX2F0IEZST00gJzIwMTgtMDEtMjAnIFRPIE5V TEw7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CisKK0RFTEVURSBGUk9N IGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMl9hdCBGUk9NICcy MDE4LTAxLTIwJyBUTyBOVUxMOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0 OworCistLSBUZXN0IHdpdGggTlVMTHMgaW4gdGhlIHNjYWxhci9yYW5nZSBrZXkgY29sdW1u cy4KKy0tIFRoaXMgd29uJ3QgaGFwcGVuIGlmIHRoZXJlIGlzIGEgUFJJTUFSWSBLRVkgb3Ig VU5JUVVFIGNvbnN0cmFpbnQKKy0tIGJ1dCBGT1IgUE9SVElPTiBPRiBzaG91bGRuJ3QgcmVx dWlyZSB0aGF0LgorRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0OworQ1JFQVRFIFVO TE9HR0VEIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2F0IHRzcmFuZ2UsCisgIG5hbWUgdGV4dAorKTsKK0lOU0VSVCBJTlRPIGZvcl9w b3J0aW9uX29mX3Rlc3QgVkFMVUVTCisgICgnWzEsMiknLCBOVUxMLCAnMSBudWxsJyksCisg ICgnWzEsMiknLCAnKCwpJywgJzEgdW5ib3VuZGVkJyksCisgICgnWzEsMiknLCAnZW1wdHkn LCAnMSBlbXB0eScpLAorICAoTlVMTCwgTlVMTCwgTlVMTCksCisgIChOVUxMLCB0c3Jhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTktMDEtMDEnKSwgJ251bGwga2V5Jyk7CitVUERBVEUgZm9y X3BvcnRpb25fb2ZfdGVzdAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwg VE8gTlVMTAorICBTRVQgbmFtZSA9ICdOVUxMIHRvIE5VTEwnOworU0VMRUNUICogRlJPTSBm b3JfcG9ydGlvbl9vZl90ZXN0OworCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7 CitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSBO T1QgTlVMTCwKKyAgdmFsaWRfYXQgdHNyYW5nZSBOT1QgTlVMTCwKKyAgbmFtZSB0ZXh0IE5P VCBOVUxMLAorCUNPTlNUUkFJTlQgZm9yX3BvcnRpb25fb2ZfcGsgUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0 aW9uX29mX3Rlc3QKK1ZBTFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0wMiwyMDE4LTAyLTAz KScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIwMTgtMDItMDMsMjAxOC0wMy0wMyknLCAnb25l JyksCisoJ1sxLDIpJywgJ1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpJywgJ29uZScpLAorKCdb MiwzKScsICdbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KScsICd0d28nKSwKKygnWzMsNCknLCAn WzIwMTgtMDEtMDEsKScsICd0aHJlZScpLAorKCdbNCw1KScsICcoLDIwMTgtMDQtMDEpJywg J2ZvdXInKSwKKygnWzUsNiknLCAnKCwpJywgJ2ZpdmUnKQorOworCistLQorLS0gVVBEQVRF IHRlc3RzCistLQorCistLSBTZXR0aW5nIHdpdGggYSBtaXNzaW5nIGNvbHVtbiBmYWlscwor VVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIGludmFsaWRfYXQg RlJPTSAnMjAxOC0wNi0wMScgVE8gTlVMTAorU0VUIG5hbWUgPSAnZm9vJworV0hFUkUgaWQg PSAnWzUsNiknOworCistLSBTZXR0aW5nIHRoZSByYW5nZSBmYWlscworVVBEQVRFIGZvcl9w b3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDYt MDEnIFRPIE5VTEwKK1NFVCB2YWxpZF9hdCA9ICdbMTk5MC0wMS0wMSwxOTk5LTAxLTAxKScK K1dIRVJFIGlkID0gJ1s1LDYpJzsKKworLS0gVGhlIHdyb25nIHR5cGUgZmFpbHMKK1VQREFU RSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIDEg VE8gNAorU0VUIG5hbWUgPSAnbm9wZScKK1dIRVJFIGlkID0gJ1szLDQpJzsKKworLS0gU2V0 dGluZyB3aXRoIHRpbWVzdGFtcHMgcmV2ZXJzZWQgZmFpbHMKK1VQREFURSBmb3JfcG9ydGlv bl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBU TyAnMjAxOC0wMS0wMScKK1NFVCBuYW1lID0gJ3RocmVlXjEnCitXSEVSRSBpZCA9ICdbMyw0 KSc7CisKKy0tIFNldHRpbmcgd2l0aCBhIHN1YnF1ZXJ5IGZhaWxzCitVUERBVEUgZm9yX3Bv cnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAoU0VMRUNUICcy MDE4LTAxLTAxJykgVE8gJzIwMTgtMDYtMDEnCitTRVQgbmFtZSA9ICdub3BlJworV0hFUkUg aWQgPSAnWzMsNCknOworCistLSBTZXR0aW5nIHdpdGggYSBjb2x1bW4gZmFpbHMKK1VQREFU RSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIGxv d2VyKHZhbGlkX2F0KSBUTyBOVUxMCitTRVQgbmFtZSA9ICdub3BlJworV0hFUkUgaWQgPSAn WzMsNCknOworCistLSBTZXR0aW5nIHdpdGggdGltZXN0YW1wcyBlcXVhbCBkb2VzIG5vdGhp bmcKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTA0LTAxJyBUTyAnMjAxOC0wNC0wMScKK1NFVCBuYW1lID0gJ3RocmVl XjAnCitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIFVwZGF0aW5nIGEgZmluaXRlL29wZW4g cG9ydGlvbiB3aXRoIGEgZmluaXRlL29wZW4gdGFyZ2V0CitVUERBVEUgZm9yX3BvcnRpb25f b2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8g TlVMTAorU0VUIG5hbWUgPSAndGhyZWVeMScKK1dIRVJFIGlkID0gJ1szLDQpJzsKKworLS0g VXBkYXRpbmcgYSBmaW5pdGUvb3BlbiBwb3J0aW9uIHdpdGggYW4gb3Blbi9maW5pdGUgdGFy Z2V0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSBOVUxMIFRPICcyMDE4LTAzLTAxJworU0VUIG5hbWUgPSAndGhyZWVeMicKK1dI RVJFIGlkID0gJ1szLDQpJzsKKworLS0gVXBkYXRpbmcgYW4gb3Blbi9maW5pdGUgcG9ydGlv biB3aXRoIGFuIG9wZW4vZmluaXRlIHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rl c3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyAnMjAxOC0wMi0wMScK K1NFVCBuYW1lID0gJ2ZvdXJeMScKK1dIRVJFIGlkID0gJ1s0LDUpJzsKKworLS0gVXBkYXRp bmcgYW4gb3Blbi9maW5pdGUgcG9ydGlvbiB3aXRoIGEgZmluaXRlL29wZW4gdGFyZ2V0CitV UERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxNy0wMS0wMScgVE8gTlVMTAorU0VUIG5hbWUgPSAnZm91cl4yJworV0hFUkUgaWQg PSAnWzQsNSknOworCistLSBVcGRhdGluZyBhIGZpbml0ZS9maW5pdGUgcG9ydGlvbiB3aXRo IGFuIGV4YWN0IGZpdAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTctMDEtMDEnIFRPICcyMDE4LTAyLTAxJworU0VUIG5h bWUgPSAnZm91cl4zJworV0hFUkUgaWQgPSAnWzQsNSknOworCistLSBVcGRhdGluZyBhbiBl bmNsb3NlZCBzcGFuCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPIE5VTEwKK1NFVCBuYW1lID0gJ3R3b14yJworV0hF UkUgaWQgPSAnWzIsMyknOworCistLSBVcGRhdGluZyBhbiBvcGVuL29wZW4gcG9ydGlvbiB3 aXRoIGEgZmluaXRlL2Zpbml0ZSB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0 CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAxJyBUTyAnMjAxOS0w MS0wMScKK1NFVCBuYW1lID0gJ2ZpdmVeMicKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKworLS0g VXBkYXRpbmcgYW4gZW5jbG9zZWQgc3BhbiB3aXRoIHNlcGFyYXRlIHByb3RydWRpbmcgc3Bh bnMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE3LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScKK1NFVCBuYW1lID0gJ2ZpdmVe MycKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKworLS0gVXBkYXRpbmcgbXVsdGlwbGUgZW5jbG9z ZWQgc3BhbnMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAorU0VUIG5hbWUgPSAnb25lXjInCitXSEVSRSBp ZCA9ICdbMSwyKSc7CisKKy0tIFVwZGF0aW5nIHdpdGggYSBzaGlmdC9yZWR1Y2UgY29uZmxp Y3QKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dAorICBGUk9NICcyMDE4LTAzLTAxJyBBVCBUSU1FIFpPTkUgSU5URVJWQUwgJzEnIEhPVVIg VE8gTUlOVVRFCisgIFRPICcyMDE5LTAxLTAxJworU0VUIG5hbWUgPSAnb25lXjMnCitXSEVS RSBpZCA9ICdbMSwyKSc7CisKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdAorICBGUk9NICcyMDE4LTAzLTAxJyBBVCBUSU1FIFpPTkUgSU5U RVJWQUwgJzInIEhPVVIKKyAgVE8gJzIwMTktMDEtMDEnCitTRVQgbmFtZSA9ICdvbmVeNCcK K1dIRVJFIGlkID0gJ1sxLDIpJzsKKworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0CisgIEZST00gKCcyMDE4LTAzLTAxJyBBVCBUSU1FIFpP TkUgSU5URVJWQUwgJzInIEhPVVIpCisgIFRPICcyMDE5LTAxLTAxJworU0VUIG5hbWUgPSAn b25lXjQnCitXSEVSRSBpZCA9ICdbMSwyKSc7CisKKy0tIFdpdGggYSBkaXJlY3QgdGFyZ2V0 CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg KHRzcmFuZ2UoJzIwMTgtMDMtMTAnLCAnMjAxOC0wMy0xNycpKQorU0VUIG5hbWUgPSAnb25l XjUnCitXSEVSRSBpZCA9ICdbMSwyKSc7CisKKy0tIFVwZGF0aW5nIHRoZSBub24tcmFuZ2Ug cGFydCBvZiB0aGUgUEs6CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMi0xNScgVE8gTlVMTAorU0VUIGlkID0gJ1s2 LDcpJworV0hFUkUgaWQgPSAnWzEsMiknOworCistLSBVUERBVEUgd2l0aCBubyBXSEVSRSBj bGF1c2UKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDMwLTAxLTAxJyBUTyBOVUxMCitTRVQgbmFtZSA9IG5hbWUgfHwgJyon OworCitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworCistLQorLS0gREVMRVRFIHRlc3RzCistLQorCistLSBEZWxldGluZyB3aXRo IGEgbWlzc2luZyBjb2x1bW4gZmFpbHMKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rl c3QKK0ZPUiBQT1JUSU9OIE9GIGludmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gTlVM TAorV0hFUkUgaWQgPSAnWzUsNiknOworCistLSBEZWxldGluZyB3aXRoIHRpbWVzdGFtcHMg cmV2ZXJzZWQgZmFpbHMKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPICcyMDE4LTAxLTAxJwor V0hFUkUgaWQgPSAnWzMsNCknOworCistLSBEZWxldGluZyB3aXRoIHRpbWVzdGFtcHMgZXF1 YWwgZG9lcyBub3RoaW5nCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA0LTAxJyBUTyAnMjAxOC0wNC0wMScK K1dIRVJFIGlkID0gJ1szLDQpJzsKKworLS0gRGVsZXRpbmcgd2l0aCBhIGNsb3NlZC9jbG9z ZWQgdGFyZ2V0CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyAnMjAyMC0wNi0wMScKK1dIRVJF IGlkID0gJ1s1LDYpJzsKKworLS0gRGVsZXRpbmcgd2l0aCBhIGNsb3NlZC9vcGVuIHRhcmdl dAorREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOC0wNC0wMScgVE8gTlVMTAorV0hFUkUgaWQgPSAnWzMsNCknOwor CistLSBEZWxldGluZyB3aXRoIGFuIG9wZW4vY2xvc2VkIHRhcmdldAorREVMRVRFIEZST00g Zm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxM IFRPICcyMDE4LTAyLTA4JworV0hFUkUgaWQgPSAnWzEsMiknOworCistLSBEZWxldGluZyB3 aXRoIGFuIG9wZW4vb3BlbiB0YXJnZXQKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rl c3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyBOVUxMCitXSEVSRSBp ZCA9ICdbNiw3KSc7CisKKy0tIERFTEVURSB3aXRoIG5vIFdIRVJFIGNsYXVzZQorREVMRVRF IEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAyNS0wMS0wMScgVE8gTlVMTDsKKworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9v Zl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0gVVBEQVRFIC4uLiBSRVRVUk5J TkcgcmV0dXJucyBvbmx5IHRoZSB1cGRhdGVkIHZhbHVlcyAobm90IHRoZSBpbnNlcnRlZCBz aWRlIHZhbHVlcykKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTAyLTAxJyBUTyAnMjAxOC0wMi0xNScKK1NFVCBuYW1l ID0gJ3RocmVlXjMnCitXSEVSRSBpZCA9ICdbMyw0KScKK1JFVFVSTklORyAqOworCistLSB0 ZXN0IHRoYXQgd2UgcnVuIHRyaWdnZXJzIG9uIHRoZSBVUERBVEUvREVMRVRFZCByb3cgYW5k IHRoZSBJTlNFUlRlZCByb3dzCisKK0NSRUFURSBGVU5DVElPTiBmb3JfcG9ydGlvbl9vZl90 cmlnZ2VyKCkKK1JFVFVSTlMgdHJpZ2dlcgorQVMKKyQkCitCRUdJTgorICBSQUlTRSBOT1RJ Q0UgJyUgJSAlIG9mICUnLCBUR19XSEVOLCBUR19PUCwgTkVXLnZhbGlkX2F0LCBPTEQudmFs aWRfYXQ7CisgIElGIFRHX09QID0gJ0RFTEVURScgVEhFTgorICAgIFJFVFVSTiBPTEQ7Cisg IEVMU0UKKyAgICBSRVRVUk4gTkVXOworICBFTkQgSUY7CitFTkQ7CiskJAorTEFOR1VBR0Ug cGxwZ3NxbDsKKworQ1JFQVRFIFRSSUdHRVIgdHJnX2Zvcl9wb3J0aW9uX29mX2JlZm9yZQor ICBCRUZPUkUgSU5TRVJUIE9SIFVQREFURSBPUiBERUxFVEUgT04gZm9yX3BvcnRpb25fb2Zf dGVzdAorICBGT1IgRUFDSCBST1cKKyAgRVhFQ1VURSBGVU5DVElPTiBmb3JfcG9ydGlvbl9v Zl90cmlnZ2VyKCk7CitDUkVBVEUgVFJJR0dFUiB0cmdfZm9yX3BvcnRpb25fb2ZfYWZ0ZXIK KyAgQUZURVIgSU5TRVJUIE9SIFVQREFURSBPUiBERUxFVEUgT04gZm9yX3BvcnRpb25fb2Zf dGVzdAorICBGT1IgRUFDSCBST1cKKyAgRVhFQ1VURSBGVU5DVElPTiBmb3JfcG9ydGlvbl9v Zl90cmlnZ2VyKCk7CisKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDIxLTAxLTAxJyBUTyAnMjAyMi0wMS0wMScKK1NFVCBu YW1lID0gJ2ZpdmVeNCcKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKworREVMRVRFIEZST00gZm9y X3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAyMy0w MS0wMScgVE8gJzIwMjQtMDEtMDEnCitXSEVSRSBpZCA9ICdbNSw2KSc7CisKK1NFTEVDVCAq IEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitEUk9Q IEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIgQ0FTQ0FERTsKKworLS0gVHJpZ2dl cnMgd2l0aCBhIGN1c3RvbSB0cmFuc2l0aW9uIHRhYmxlIG5hbWU6CisKK0RST1AgVEFCTEUg Zm9yX3BvcnRpb25fb2ZfdGVzdDsKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0 ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIG5hbWUgdGV4 dAorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QgVkFMVUVTICgnWzEsMikn LCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSknLCAnb25lJyk7CisKK0NSRUFURSBGVU5DVElP TiBkdW1wX3RyaWdnZXIoKQorUkVUVVJOUyBUUklHR0VSIExBTkdVQUdFIHBscGdzcWwgQVMK KyQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJ1RHX09QID0gJScsIFRHX09QOworICBJRiBU R19PUCA9ICdJTlNFUlQnIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ3RyaWdnZXIgPSAlLCBU R19MRVZFTCA9ICUsIE5FVyB0YWJsZSA9ICUnLAorICAgICAgVEdfTkFNRSwgVEdfTEVWRUws IChTRUxFQ1Qgc3RyaW5nX2FnZyhuZXdfdGFibGU6OnRleHQsICcsICcgT1JERVIgQlkgaWQp IEZST00gbmV3X3RhYmxlKTsKKyAgRUxTSUYgVEdfT1AgPSAnVVBEQVRFJyBUSEVOCisgICAg UkFJU0UgTk9USUNFICd0cmlnZ2VyID0gJSwgVEdfTEVWRUwgPSAlLCBPTEQgdGFibGUgPSAl LCBORVcgdGFibGUgPSAlJywKKyAgICAgIFRHX05BTUUsIFRHX0xFVkVMLAorICAgICAgKFNF TEVDVCBzdHJpbmdfYWdnKG9sZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJP TSBvbGRfdGFibGUpLAorICAgICAgKFNFTEVDVCBzdHJpbmdfYWdnKG5ld190YWJsZTo6dGV4 dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBuZXdfdGFibGUpOworICBFTFNJRiBUR19PUCA9 ICdERUxFVEUnIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ3RyaWdnZXIgPSAlLCBUR19MRVZF TCA9ICUsIE9MRCB0YWJsZSA9ICUnLAorICAgICAgVEdfTkFNRSwgVEdfTEVWRUwsIChTRUxF Q1Qgc3RyaW5nX2FnZyhvbGRfdGFibGU6OnRleHQsICcsICcgT1JERVIgQlkgaWQpIEZST00g b2xkX3RhYmxlKTsKKyAgRU5EIElGOworICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkOworCitD UkVBVEUgVFJJR0dFUiBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnCitBRlRFUiBJ TlNFUlQgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgTkVXIFRBQkxFIEFT IG5ld190YWJsZQorRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dl cigpOworCitDUkVBVEUgVFJJR0dFUiBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmln X3N0bXQKK0FGVEVSIElOU0VSVCBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CitSRUZFUkVOQ0lO RyBORVcgVEFCTEUgQVMgbmV3X3RhYmxlCitGT1IgRUFDSCBTVEFURU1FTlQgRVhFQ1VURSBQ Uk9DRURVUkUgZHVtcF90cmlnZ2VyKCk7CisKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9u X29mX3Rlc3RfdXBkYXRlX3RyaWcKK0FGVEVSIFVQREFURSBPTiBmb3JfcG9ydGlvbl9vZl90 ZXN0CitSRUZFUkVOQ0lORyBPTEQgVEFCTEUgQVMgb2xkX3RhYmxlIE5FVyBUQUJMRSBBUyBu ZXdfdGFibGUKK0ZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIo KTsKKworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRhdGVfdHJpZ19z dG10CitBRlRFUiBVUERBVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcg T0xEIFRBQkxFIEFTIG9sZF90YWJsZSBORVcgVEFCTEUgQVMgbmV3X3RhYmxlCitGT1IgRUFD SCBTVEFURU1FTlQgRVhFQ1VURSBQUk9DRURVUkUgZHVtcF90cmlnZ2VyKCk7CisKK0NSRUFU RSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfZGVsZXRlX3RyaWcKK0FGVEVSIERFTEVU RSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CitSRUZFUkVOQ0lORyBPTEQgVEFCTEUgQVMgb2xk X3RhYmxlCitGT1IgRUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUgZHVtcF90cmlnZ2VyKCk7 CisKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfZGVsZXRlX3RyaWdfc3Rt dAorQUZURVIgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9M RCBUQUJMRSBBUyBvbGRfdGFibGUKK0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NF RFVSRSBkdW1wX3RyaWdnZXIoKTsKKworQkVHSU47CitVUERBVEUgZm9yX3BvcnRpb25fb2Zf dGVzdAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAn MjAxOS0wMS0wMScKKyAgU0VUIG5hbWUgPSAnMjAxOC0wMS0xNV90b18yMDE5LTAxLTAxJzsK K1JPTExCQUNLOworCitCRUdJTjsKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QK KyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAxLTIxJzsK K1JPTExCQUNLOworCitCRUdJTjsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyAnMjAxOC0wMS0wMicKKyAgU0VU IG5hbWUgPSAnTlVMTF90b18yMDE4LTAxLTAxJzsKK1JPTExCQUNLOworCistLSBUZXN0IHdp dGggbXVsdGlyYW5nZXMKKworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyICgK KyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSBO T1QgTlVMTCwKKyAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorCUNPTlNUUkFJTlQgZm9yX3BvcnRp b25fb2ZfdGVzdDJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitWQUxVRVMKKygn WzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0w Mi0wMyknKSwgZGF0ZXJhbmdlKCcyMDE4LTAyLTA0JywgJzIwMTgtMDMtMDMnKSksICdvbmUn KSwKKygnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDMnLCAn MjAxOC0wNC0wNCknKSksICdvbmUnKSwKKygnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wNS0wMSknKSksICd0d28nKSwKKygnWzMsNCkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBudWxsKSksICd0aHJl ZScpOworOworCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTAnLCAnMjAx OC0wMi0xMCcpLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDUnLCAnMjAxOC0wNS0wMScpKSkKK1NF VCBuYW1lID0gJ29uZV4xJworV0hFUkUgaWQgPSAnWzEsMiknOworCitERUxFVEUgRlJPTSBm b3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTE1JyksIGRhdGVyYW5n ZSgnMjAxOC0wMy0wMScsICcyMDE4LTAzLTE1JykpKQorV0hFUkUgaWQgPSAnWzIsMyknOwor CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKworRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKKworLS0gVGVzdCB3 aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGUKKworQ1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2UgQVMg cmFuZ2Uoc3VidHlwZT1kYXRlKTsKKworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rl c3QyICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9hdCBteWRhdGVyYW5n ZSBOT1QgTlVMTCwKKyAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorCUNPTlNUUkFJTlQgZm9yX3Bv cnRpb25fb2ZfdGVzdDJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKQorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitWQUxVRVMK KygnWzEsMiknLCAnWzIwMTgtMDEtMDIsMjAxOC0wMi0wMyknLCAnb25lJyksCisoJ1sxLDIp JywgJ1syMDE4LTAyLTAzLDIwMTgtMDMtMDMpJywgJ29uZScpLAorKCdbMSwyKScsICdbMjAx OC0wMy0wMywyMDE4LTA0LTA0KScsICdvbmUnKSwKKygnWzIsMyknLCAnWzIwMTgtMDEtMDEs MjAxOC0wNS0wMSknLCAndHdvJyksCisoJ1szLDQpJywgJ1syMDE4LTAxLTAxLCknLCAndGhy ZWUnKTsKKzsKKworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTEwJyBUTyAnMjAxOC0wMi0xMCcKK1NFVCBuYW1l ID0gJ29uZV4xJworV0hFUkUgaWQgPSAnWzEsMiknOworCitERUxFVEUgRlJPTSBmb3JfcG9y dGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0x NScgVE8gJzIwMTgtMDItMTUnCitXSEVSRSBpZCA9ICdbMiwzKSc7CisKK1NFTEVDVCAqIEZS T00gZm9yX3BvcnRpb25fb2ZfdGVzdDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCitEUk9Q IFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyOworRFJPUCBUWVBFIG15ZGF0ZXJhbmdlOwor CistLSBUZXN0IEZPUiBQT1JUSU9OIE9GIGFnYWluc3QgYSBwYXJ0aXRpb25lZCB0YWJsZS4K Ky0tIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzEgaGFzIHRoZSBzYW1lIGF0dG51bXMgYXMgdGhl IHJvb3QKKy0tIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgaGFzIHRoZSBkaWZmZXJlbnQgYXR0 bnVtcyBmcm9tIHRoZSByb290CistLSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IGhhcyB0aGUg ZGlmZmVyZW50IGF0dG51bXMgdG9vLCBidXQgcmV2ZXJzZWQKKworQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX3BhcnRpdGlvbmVkICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJh bmdlLAorICBuYW1lIHRleHQsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJpdGlvbmVkX3Vx IFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispIFBBUlRJVElPTiBC WSBMSVNUIChpZCk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfMSBQQVJU SVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywg J1syLDMpJyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBQQVJUSVRJ T04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFZBTFVFUyBJTiAoJ1szLDQpJywgJ1s0 LDUpJyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBQQVJUSVRJT04g T0YgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFZBTFVFUyBJTiAoJ1s1LDYpJywgJ1s2LDcp Jyk7CisKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIERFVEFDSCBQQVJUSVRJ T04gdGVtcG9yYWxfcGFydGl0aW9uZWRfMzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRp dGlvbmVkXzMgRFJPUCBDT0xVTU4gaWQsIERST1AgQ09MVU1OIHZhbGlkX2F0OworQUxURVIg VEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBBREQgQ09MVU1OIGlkIGludDRyYW5nZSBO T1QgTlVMTCwgQUREIENPTFVNTiB2YWxpZF9hdCBkYXRlcmFuZ2UgTk9UIE5VTEw7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBBVFRBQ0ggUEFSVElUSU9OIHRlbXBvcmFs X3BhcnRpdGlvbmVkXzMgRk9SIFZBTFVFUyBJTiAoJ1szLDQpJywgJ1s0LDUpJyk7CisKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIERFVEFDSCBQQVJUSVRJT04gdGVtcG9y YWxfcGFydGl0aW9uZWRfNTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUg RFJPUCBDT0xVTU4gaWQsIERST1AgQ09MVU1OIHZhbGlkX2F0OworQUxURVIgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfNSBBREQgQ09MVU1OIHZhbGlkX2F0IGRhdGVyYW5nZSBOT1Qg TlVMTCwgQUREIENPTFVNTiBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEw7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZCBBVFRBQ0ggUEFSVElUSU9OIHRlbXBvcmFsX3BhcnRpdGlv bmVkXzUgRk9SIFZBTFVFUyBJTiAoJ1s1LDYpJywgJ1s2LDcpJyk7CisKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcy MDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ29uZScpLAorICAoJ1szLDQpJywgZGF0ZXJh bmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ3RocmVlJyksCisgICgnWzUsNikn LCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAnZml2ZScpOworCitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkOworCistLSBVcGRhdGUgd2l0aG91 dCBtb3Zpbmcgd2l0aGluIHBhcnRpdGlvbiAxCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMy0wMScgVE8gJzIwMDAt MDQtMDEnCisgIFNFVCBuYW1lID0gJ29uZV4xJworICBXSEVSRSBpZCA9ICdbMSwyKSc7CisK Ky0tIFVwZGF0ZSB3aXRob3V0IG1vdmluZyB3aXRoaW4gcGFydGl0aW9uIDMKK1VQREFURSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAw LTAzLTAxJyBUTyAnMjAwMC0wNC0wMScKKyAgU0VUIG5hbWUgPSAndGhyZWVeMScKKyAgV0hF UkUgaWQgPSAnWzMsNCknOworCistLSBVcGRhdGUgd2l0aG91dCBtb3Zpbmcgd2l0aGluIHBh cnRpdGlvbiA1CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAwMC0wMy0wMScgVE8gJzIwMDAtMDQtMDEnCisgIFNFVCBuYW1l ID0gJ2ZpdmVeMScKKyAgV0hFUkUgaWQgPSAnWzUsNiknOworCistLSBNb3ZlIGZyb20gcGFy dGl0aW9uIDEgdG8gcGFydGl0aW9uIDMKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTA2LTAxJyBUTyAnMjAwMC0wNy0w MScKKyAgU0VUIG5hbWUgPSAnb25lXjInLAorICAgICAgaWQgPSAnWzQsNSknCisgIFdIRVJF IGlkID0gJ1sxLDIpJzsKKworLS0gTW92ZSBmcm9tIHBhcnRpdGlvbiAzIHRvIHBhcnRpdGlv biAxCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAwMC0wNi0wMScgVE8gJzIwMDAtMDctMDEnCisgIFNFVCBuYW1lID0gJ3Ro cmVlXjInLAorICAgICAgaWQgPSAnWzIsMyknCisgIFdIRVJFIGlkID0gJ1szLDQpJzsKKwor LS0gTW92ZSBmcm9tIHBhcnRpdGlvbiA1IHRvIHBhcnRpdGlvbiAzCitVUERBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wNi0w MScgVE8gJzIwMDAtMDctMDEnCisgIFNFVCBuYW1lID0gJ2ZpdmVeMicsCisgICAgICBpZCA9 ICdbMyw0KScKKyAgV0hFUkUgaWQgPSAnWzUsNiknOworCistLSBVcGRhdGUgYWxsIHBhcnRp dGlvbnMgYXQgb25jZSAoZWFjaCB3aXRoIGxlZnRvdmVycykKKworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzEgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQ7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9vcHJfc2FuaXR5LnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL29wcl9zYW5pdHkuc3FsCmluZGV4IDJmZTdiNmRjYzQ5Li4yZGZmZTdjNWI2 YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb3ByX3Nhbml0eS5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb3ByX3Nhbml0eS5zcWwKQEAgLTEyNDEsNiArMTI0 MSw3IEBAIFdIRVJFIGExLmFtb3BmYW1pbHkgPSAwIE9SIGExLmFtb3BsZWZ0dHlwZSA9IDAg T1IgYTEuYW1vcHJpZ2h0dHlwZSA9IDAKIFNFTEVDVCBhMS5hbW9wZmFtaWx5LCBhMS5hbW9w c3RyYXRlZ3kKIEZST00gcGdfYW1vcCBhcyBhMQogV0hFUkUgTk9UICgoYTEuYW1vcHB1cnBv c2UgPSAncycgQU5EIGExLmFtb3Bzb3J0ZmFtaWx5ID0gMCkgT1IKKyAgICAgICAgICAgKGEx LmFtb3BwdXJwb3NlID0gJ3AnIEFORCBhMS5hbW9wc29ydGZhbWlseSA9IDApIE9SCiAgICAg ICAgICAgIChhMS5hbW9wcHVycG9zZSA9ICdvJyBBTkQgYTEuYW1vcHNvcnRmYW1pbHkgPD4g MCkpOwogCiAtLSBhbW9wbWV0aG9kIG11c3QgbWF0Y2ggb3duaW5nIG9wZmFtaWx5J3Mgb3Bm bWV0aG9kCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcml2aWxlZ2VzLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByaXZpbGVnZXMuc3FsCmluZGV4IGFlMzM4ZThj YzhlLi43YWQ2ODczMTZhNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHJp dmlsZWdlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwK QEAgLTcyMyw2ICs3MjMsMjQgQEAgVVBEQVRFIGVycnRzdCBTRVQgYSA9ICdhYWFhJywgYiA9 IE5VTEwgV0hFUkUgYSA9ICdhYWEnOwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdy ZXNzX3ByaXZfdXNlcjE7CiBEUk9QIFRBQkxFIGVycnRzdDsKIAorLS0gdGVzdCBjb2x1bW4t bGV2ZWwgcHJpdmlsZWdlcyBvbiB0aGUgcmFuZ2UvUEVSSU9EIHVzZWQgaW4gRk9SIFBPUlRJ T04gT0YKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOwor Q1JFQVRFIFRBQkxFIHQxICgKKyAgYzEgaW50NHJhbmdlLAorICB2YWxpZF9hdCB0c3Jhbmdl LAorCUNPTlNUUkFJTlQgdDFwayBQUklNQVJZIEtFWSAoYzEsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpCispOworR1JBTlQgU0VMRUNUIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2Vy MjsKK0dSQU5UIFNFTEVDVCBPTiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjM7CitHUkFOVCBV UERBVEUgKGMxKSBPTiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjI7CitHUkFOVCBVUERBVEUg KGMxLCB2YWxpZF9hdCkgT04gdDEgVE8gcmVncmVzc19wcml2X3VzZXIzOworU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3ByaXZfdXNlcjI7CitVUERBVEUgdDEgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMS0wMScgVE8gJzIwMDEtMDEtMDEnIFNF VCBjMSA9ICdbMiwzKSc7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJp dl91c2VyMzsKK1VQREFURSB0MSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAw LTAxLTAxJyBUTyAnMjAwMS0wMS0wMScgU0VUIGMxID0gJ1syLDMpJzsKK1NFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOworRFJPUCBUQUJMRSB0MTsKKwog LS0gdGVzdCBjb2x1bW4tbGV2ZWwgcHJpdmlsZWdlcyB3aGVuIGludm9sdmVkIHdpdGggREVM RVRFCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsKIEFM VEVSIFRBQkxFIGF0ZXN0NiBBREQgQ09MVU1OIHRocmVlIGludGVnZXI7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC91cGRhdGFibGVfdmlld3Muc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvdXBkYXRhYmxlX3ZpZXdzLnNxbAppbmRleCA5M2I2OTNhZTgzNy4uOWJm MjM3YzcxZDQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3VwZGF0YWJsZV92 aWV3cy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdXBkYXRhYmxlX3ZpZXdzLnNx bApAQCAtMTg2NSw2ICsxODY1LDIwIEBAIHNlbGVjdCAqIGZyb20gdXZfaW9jdV90YWI7CiBk cm9wIHZpZXcgdXZfaW9jdV92aWV3OwogZHJvcCB0YWJsZSB1dl9pb2N1X3RhYjsKIAorLS0g Q2hlY2sgVVBEQVRFIEZPUiBQT1JUSU9OIE9GIHdvcmtzIGNvcnJlY3RseQorY3JlYXRlIHRh YmxlIHV2X2Zwb190YWIgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQgdHNyYW5nZSwgYiBmbG9h dCwKKyAgICBjb25zdHJhaW50IHBrX3V2X2Zwb190YWIgcHJpbWFyeSBrZXkgKGlkLCB2YWxp ZF9hdCB3aXRob3V0IG92ZXJsYXBzKSk7CitpbnNlcnQgaW50byB1dl9mcG9fdGFiIHZhbHVl cyAoJ1sxLDFdJywgJ1syMDIwLTAxLTAxLCAyMDMwLTAxLTAxKScsIDApOworY3JlYXRlIHZp ZXcgdXZfZnBvX3ZpZXcgYXMKKyAgICBzZWxlY3QgYiwgYisxIGFzIGMsIHZhbGlkX2F0LCBp ZCwgJzIuMCc6OnRleHQgYXMgdHdvIGZyb20gdXZfZnBvX3RhYjsKKworaW5zZXJ0IGludG8g dXZfZnBvX3ZpZXcgKGlkLCB2YWxpZF9hdCwgYikgdmFsdWVzICgnWzEsMV0nLCAnWzIwMTAt MDEtMDEsIDIwMjAtMDEtMDEpJywgMSk7CitzZWxlY3QgKiBmcm9tIHV2X2Zwb192aWV3Owor dXBkYXRlIHV2X2Zwb192aWV3IGZvciBwb3J0aW9uIG9mIHZhbGlkX2F0IGZyb20gJzIwMTUt MDEtMDEnIHRvICcyMDIwLTAxLTAxJyBzZXQgYiA9IDIgd2hlcmUgaWQgPSAnWzEsMV0nOwor c2VsZWN0ICogZnJvbSB1dl9mcG9fdmlldzsKK2RlbGV0ZSBmcm9tIHV2X2Zwb192aWV3IGZv ciBwb3J0aW9uIG9mIHZhbGlkX2F0IGZyb20gJzIwMTctMDEtMDEnIHRvICcyMDIyLTAxLTAx JyB3aGVyZSBpZCA9ICdbMSwxXSc7CitzZWxlY3QgKiBmcm9tIHV2X2Zwb192aWV3OworCiAt LSBUZXN0IHdob2xlLXJvdyByZWZlcmVuY2VzIHRvIHRoZSB2aWV3CiBjcmVhdGUgdGFibGUg dXZfaW9jdV90YWIgKGEgaW50IHVuaXF1ZSwgYiB0ZXh0KTsKIGNyZWF0ZSB2aWV3IHV2X2lv Y3VfdmlldyBhcwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9v dmVybGFwcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNx bAppbmRleCAzNTk2MTNjMDExOS4uZGU3MTg2YWI0NTUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCkBAIC02MzIsNiArNjMyLDIwIEBAIElOU0VS VCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0LCBpZDIsIG5hbWUpCiAgICgnWzEsMikn LCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAnWzcsOCknLCAnZm9v JyksCiAgICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScp LCAnWzksMTApJywgJ2JhcicpCiA7CitVUERBVEUgdGVtcG9yYWwzIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMDAtMDUtMDEnIFRPICcyMDAwLTA3LTAxJworICBTRVQgbmFt ZSA9IG5hbWUgfHwgJzEnOworVVBEQVRFIHRlbXBvcmFsMyBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDAwLTA0LTAxJyBUTyAnMjAwMC0wNi0wMScKKyAgU0VUIG5hbWUgPSBu YW1lIHx8ICcyJworICBXSEVSRSBpZCA9ICdbMiwzKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBjb25mbGljdGluZyBpZCBvbmx5Ogor SU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQsIGlkMiwgbmFtZSkKKyAgVkFM VUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScp LCAnWzgsOSknLCAnZm9vMycpOworLS0gY29uZmxpY3RpbmcgaWQyIG9ubHk6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCwgaWQyLCBuYW1lKQorICBWQUxVRVMKKyAg KCdbMyw0KScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbOSwx MCknLCAnYmFyMycpOwogRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CiAKIC0tCkBAIC02NzAsNiAr Njg0LDIyIEBAIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkIChpZCwgdmFsaWRf YXQsIG5hbWUpIFZBTFVFUwogU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBTRUxFQ1QgKiBGUk9NIHRwMSBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CiBTRUxFQ1QgKiBGUk9NIHRwMiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitV UERBVEUgIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1JworICBTRVQgbmFtZSA9ICdvbmUy JworICBXSEVSRSBpZCA9ICdbMSwyKSc7CitVUERBVEUgIHRlbXBvcmFsX3BhcnRpdGlvbmVk CisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDItMjAnIFRPICcyMDAw LTAyLTI1JworICBTRVQgaWQgPSAnWzQsNSknCisgIFdIRVJFIG5hbWUgPSAnb25lJzsKK1VQ REFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAwMi0wMS0wMScgVE8gJzIwMDMtMDEtMDEnCisgIFNFVCBpZCA9ICdbMiwzKScK KyAgV0hFUkUgbmFtZSA9ICd0aHJlZSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRp b25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAxLTE1JyBUTyAn MjAwMC0wMi0xNScKKyAgV0hFUkUgaWQgPSAnWzMsNCknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBEUk9QIFRBQkxFIHRl bXBvcmFsX3BhcnRpdGlvbmVkOwogCiAtLSB0ZW1wb3JhbCBVTklRVUU6CkBAIC02ODgsNiAr NzE4LDIyIEBAIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkIChpZCwgdmFsaWRf YXQsIG5hbWUpIFZBTFVFUwogU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBTRUxFQ1QgKiBGUk9NIHRwMSBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CiBTRUxFQ1QgKiBGUk9NIHRwMiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitV UERBVEUgIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1JworICBTRVQgbmFtZSA9ICdvbmUy JworICBXSEVSRSBpZCA9ICdbMSwyKSc7CitVUERBVEUgIHRlbXBvcmFsX3BhcnRpdGlvbmVk CisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDItMjAnIFRPICcyMDAw LTAyLTI1JworICBTRVQgaWQgPSAnWzQsNSknCisgIFdIRVJFIG5hbWUgPSAnb25lJzsKK1VQ REFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAwMi0wMS0wMScgVE8gJzIwMDMtMDEtMDEnCisgIFNFVCBpZCA9ICdbMiwzKScK KyAgV0hFUkUgbmFtZSA9ICd0aHJlZSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRp b25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAxLTE1JyBUTyAn MjAwMC0wMi0xNScKKyAgV0hFUkUgaWQgPSAnWzMsNCknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBEUk9QIFRBQkxFIHRl bXBvcmFsX3BhcnRpdGlvbmVkOwogCiAtLSBBTFRFUiBUQUJMRSBSRVBMSUNBIElERU5USVRZ CkBAIC0xMTM4LDYgKzExODQsMTYgQEAgQ09NTUlUOwogLS0gY2hhbmdpbmcgdGhlIHNjYWxh ciBwYXJ0IGZhaWxzOgogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsOCknCiBX SEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKTsKKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlz IG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1NFVCBpZCA9ICdbNyw4KScKK1dI RVJFIGlkID0gJ1s1LDYpJzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorVVBE QVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0w MS0wNScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdb NSw2KSc7CiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhl IHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5n MnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKQEAgLTExNzcs NiArMTIzMywxNiBAQCBST0xMQkFDSzsKIC0tIGNoYW5naW5nIHRoZSBzY2FsYXIgcGFydCBm YWlsczoKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJwogV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyk7CistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5Ogor VVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9 ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1w b3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRP ICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOwog LS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBL IHVwZGF0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hF UkUgaWQgPSAnWzMsNCknOwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBk YXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCkBAIC0xMjEyLDkgKzEyNzgs MjAgQEAgQkVHSU47CiAKICAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0g J1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpOwogQ09NTUlUOworLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMg b2theToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitXSEVSRSBpZCA9ICdbNSw2 KSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8g JzIwMTgtMDEtMTAnCitXSEVSRSBpZCA9ICdbNSw2KSc7CiAtLSB0aGVuIGRlbGV0ZSB0aGUg b2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgog REVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9h dCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CistLSBjbGVhbiB1 cDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgcGFyZW50X2lkID0g J1s1LDYpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBJTiAoJ1s1LDYp Jyk7CiAKIC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVApAQCAt MTI0Myw5ICsxMzIwLDIwIEBAIEJFR0lOOwogICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERF RkVSUkVEOwogICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7 CiBST0xMQkFDSzsKKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNiknOwor LS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4 LTAxLTEwJworV0hFUkUgaWQgPSAnWzUsNiknOwogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVj dGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKIERFTEVU RSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwogREVMRVRF IEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0gY2xlYW4gdXA6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIHBhcmVudF9pZCA9ICdbNSw2 KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgSU4gKCdbNSw2KScpOwog CiAtLQogLS0gdGVzdCBPTiBVUERBVEUvREVMRVRFIG9wdGlvbnMKLS0gCjIuNDIuMAoK --------------GsheMzFFcGdccG4bvM4vwSCN Content-Type: text/x-patch; charset=UTF-8; name="v37-0007-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.patch" Content-Disposition: attachment; filename*0="v37-0007-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBlMzgxM2YwNDg3NzgyN2FiZjI5YzE0ZmRiODk1M2MyZjRjMGZmZWRjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMyBKdW4gMjAyMyAyMTo0MToxMSAtMDQw MApTdWJqZWN0OiBbUEFUQ0ggdjM3IDcvOF0gQWRkIENBU0NBREUvU0VUIE5VTEwvU0VUIERF RkFVTFQgZm9yIHRlbXBvcmFsIGZvcmVpZ24KIGtleXMKCi0tLQogZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwgICAxNCArLQogc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19jb25zdHJhaW50LmMgICAgICAgICAgIHwgICAyMCArLQogc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgICA4MyArLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMgICAgICAgICAgIHwgIDU4NCArKysrKyst CiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCAgICAgICAgICAgfCAgICA3 ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAg IDIyICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnRyZWVfaW5kZXgub3V0ICAgICB8 ICAgMTggKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0ICAg ICB8IDE1NTEgKysrKysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhv dXRfb3ZlcmxhcHMuc3FsICAgICB8ICA5MDIgKysrKysrKysrLQogOSBmaWxlcyBjaGFuZ2Vk LCAzMDg1IGluc2VydGlvbnMoKyksIDExNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdGFibGUuc2dtbAppbmRleCAzMDE1MGVlYmZhMC4uYzZiYzM3ZDZlODEgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApAQCAtMTI2NSw3ICsxMjY1LDkgQEAgV0lU SCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0 ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICAgICAgIDwvcGFyYT4KIAogICAgICAgICAg PHBhcmE+Ci0gICAgICAgICAgSW4gYSB0ZW1wb3JhbCBmb3JlaWduIGtleSwgdGhpcyBvcHRp b24gaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24g a2V5LCB0aGUgZGVsZXRlL3VwZGF0ZSB3aWxsIHVzZQorICAgICAgICAgIDxsaXRlcmFsPkZP UiBQT1JUSU9OIE9GPC9saXRlcmFsPiBzZW1hbnRpY3MgdG8gY29uc3RyYWluIHRoZQorICAg ICAgICAgIGVmZmVjdCB0byB0aGUgYm91bmRzIGJlaW5nIGRlbGV0ZWQvdXBkYXRlZCBpbiB0 aGUgcmVmZXJlbmNlZCByb3cuCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CkBAIC0xMjgwLDcgKzEyODIsMTAgQEAgV0lU SCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0 ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICAgICAgIDwvcGFyYT4KIAogICAgICAgICAg PHBhcmE+Ci0gICAgICAgICAgSW4gYSB0ZW1wb3JhbCBmb3JlaWduIGtleSwgdGhpcyBvcHRp b24gaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24g a2V5LCB0aGUgY2hhbmdlIHdpbGwgdXNlIDxsaXRlcmFsPkZPUiBQT1JUSU9OCisgICAgICAg ICAgT0Y8L2xpdGVyYWw+IHNlbWFudGljcyB0byBjb25zdHJhaW4gdGhlIGVmZmVjdCB0byB0 aGUgYm91bmRzIGJlaW5nCisgICAgICAgICAgZGVsZXRlZC91cGRhdGVkIGluIHRoZSByZWZl cmVuY2VkIHJvdy4gVGhlIGNvbHVtbiBtYWtlZCB3aXRoCisgICAgICAgICAgPGxpdGVyYWw+ UEVSSU9EPC9saXRlcmFsPiB3aWxsIG5vdCBiZSBzZXQgdG8gbnVsbC4KICAgICAgICAgIDwv cGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAg LTEyOTcsNyArMTMwMiwxMCBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAg ICAgPC9wYXJhPgogCiAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICBJbiBhIHRlbXBvcmFs IGZvcmVpZ24ga2V5LCB0aGlzIG9wdGlvbiBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICAg IEluIGEgdGVtcG9yYWwgZm9yZWlnbiBrZXksIHRoZSBjaGFuZ2Ugd2lsbCB1c2UgPGxpdGVy YWw+Rk9SIFBPUlRJT04KKyAgICAgICAgICBPRjwvbGl0ZXJhbD4gc2VtYW50aWNzIHRvIGNv bnN0cmFpbiB0aGUgZWZmZWN0IHRvIHRoZSBib3VuZHMgYmVpbmcKKyAgICAgICAgICBkZWxl dGVkL3VwZGF0ZWQgaW4gdGhlIHJlZmVyZW5jZWQgcm93LiBUaGUgY29sdW1uIG1hcmtlZCB3 aXRoCisgICAgICAgICAgPGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPiB3aXRoIG5vdCBiZSBz ZXQgdG8gYSBkZWZhdWx0IHZhbHVlLgogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xp c3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nv bnN0cmFpbnQuYwppbmRleCAxZTJkZjAzMWE4NC4uMWQ3YmFkYmYzNGUgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jCisrKyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfY29uc3RyYWludC5jCkBAIC0xMzUxLDcgKzEzNTEsNyBAQCBEZWNvbnN0 cnVjdEZrQ29uc3RyYWludFJvdyhIZWFwVHVwbGUgdHVwbGUsIGludCAqbnVtZmtzLAogfQog CiAvKgotICogRmluZEZrUGVyaW9kT3BlcnMgLQorICogRmluZEZrUGVyaW9kT3BlcnNBbmRQ cm9jcyAtCiAgKgogICogTG9va3MgdXAgdGhlIG9wZXJhdG9yIG9pZHMgdXNlZCBmb3IgdGhl IFBFUklPRCBwYXJ0IG9mIGEgdGVtcG9yYWwgZm9yZWlnbiBrZXkuCiAgKiBUaGUgb3BjbGFz cyBzaG91bGQgYmUgdGhlIG9wY2xhc3Mgb2YgdGhhdCBQRVJJT0QgZWxlbWVudC4KQEAgLTEz NjAsMTEgKzEzNjAsMTQgQEAgRGVjb25zdHJ1Y3RGa0NvbnN0cmFpbnRSb3coSGVhcFR1cGxl IHR1cGxlLCBpbnQgKm51bWZrcywKICAqIGFnZ2VkY29udGFpbmVkYnlvcGVyb2lkIGlzIGFs c28gYSBDb250YWluZWRCeSBvcGVyYXRvciwKICAqIGJ1dCBvbmUgd2hvc2UgcmhzIGlzIGEg bXVsdGlyYW5nZS4KICAqIFRoYXQgd2F5IGZvcmVpZ24ga2V5cyBjYW4gY29tcGFyZSBma2F0 dHIgPEAgcmFuZ2VfYWdnKHBrYXR0cikuCisgKiBpbnRlcnNlY3Rwcm9jb2lkIGlzIHVzZWQg dG8gbGltaXQgdGhlIGVmZmVjdCBvZiBDQVNDQURFL1NFVCBOVUxML1NFVCBERUZBVUxUCisg KiB3aGVuIHRoZSBQSyByZWNvcmQgaXMgY2hhbmdlZCB3aXRoIEZPUiBQT1JUSU9OIE9GLgog ICovCiB2b2lkCi1GaW5kRktQZXJpb2RPcGVycyhPaWQgb3BjbGFzcywKLQkJCQkgIE9pZCAq Y29udGFpbmVkYnlvcGVyb2lkLAotCQkJCSAgT2lkICphZ2dlZGNvbnRhaW5lZGJ5b3Blcm9p ZCkKK0ZpbmRGS1BlcmlvZE9wZXJzQW5kUHJvY3MoT2lkIG9wY2xhc3MsCisJCQkJCQkgIE9p ZCAqY29udGFpbmVkYnlvcGVyb2lkLAorCQkJCQkJICBPaWQgKmFnZ2VkY29udGFpbmVkYnlv cGVyb2lkLAorCQkJCQkJICBPaWQgKmludGVyc2VjdHByb2NvaWQpCiB7CiAJT2lkCQkJb3Bm YW1pbHkgPSBJbnZhbGlkT2lkOwogCU9pZAkJCW9wY2ludHlwZSA9IEludmFsaWRPaWQ7CkBA IC0xNDA1LDYgKzE0MDgsMTUgQEAgRmluZEZLUGVyaW9kT3BlcnMoT2lkIG9wY2xhc3MsCiAJ CQkJCQkJCQkgQU5ZTVVMVElSQU5HRU9JRCwKIAkJCQkJCQkJCSBhZ2dlZGNvbnRhaW5lZGJ5 b3Blcm9pZCwKIAkJCQkJCQkJCSAmc3RyYXQpOworCisJLyoKKwkgKiBJZiB0aGUgY29tbWFu ZCB1c2VzIEZPUiBQT1JUSU9OIE9GLAorCSAqIHdlIHdpbGwgYWxzbyBuZWVkIGFuIGludGVy c2VjdCBzdXBwb3J0IHByb2MuCisJICogSWYgdGhpcyBpcyBtaXNzaW5nIHdlIGRvbid0IG5l ZWQgdG8gY29tcGxhaW4gaGVyZSwKKwkgKiBiZWNhdXNlIEZPUiBQT1JUSU9OIE9GIHdpbGwg bm90IGJlIGFsbG93ZWQuCisJICovCisJaWYgKG9wZmFtaWx5ICE9IEludmFsaWRPaWQgJiYg b3BjaW50eXBlICE9IEludmFsaWRPaWQpCisJCSppbnRlcnNlY3Rwcm9jb2lkID0gZ2V0X29w ZmFtaWx5X3Byb2Mob3BmYW1pbHksIG9wY2ludHlwZSwgb3BjaW50eXBlLCBHSVNUX0lOVEVS U0VDVF9QUk9DKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXgg OGRhODMxMjUyNjIuLmQ3YmIxZGYyNTliIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMu YwpAQCAtNTE1LDcgKzUxNSw3IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGFkZEZrUmVjdXJz ZVJlZmVyZW5jZWQoTGlzdCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhCiAJCQkJ CQkJCQkJCWJvb2wgb2xkX2NoZWNrX29rLAogCQkJCQkJCQkJCQlPaWQgcGFyZW50RGVsVHJp Z2dlciwgT2lkIHBhcmVudFVwZFRyaWdnZXIsCiAJCQkJCQkJCQkJCWJvb2wgd2l0aF9wZXJp b2QpOwotc3RhdGljIHZvaWQgdmFsaWRhdGVGa09uRGVsZXRlU2V0Q29sdW1ucyhpbnQgbnVt ZmtzLCBjb25zdCBpbnQxNiAqZmthdHRudW1zLAorc3RhdGljIHZvaWQgdmFsaWRhdGVGa09u RGVsZXRlU2V0Q29sdW1ucyhpbnQgbnVtZmtzLCBjb25zdCBpbnQxNiAqZmthdHRudW1zLCBj b25zdCBpbnQxNiBma3BlcmlvZGF0dG51bSwKIAkJCQkJCQkJCQkgaW50IG51bWZrc2V0Y29s cywgY29uc3QgaW50MTYgKmZrc2V0Y29sc2F0dG51bXMsCiAJCQkJCQkJCQkJIExpc3QgKmZr c2V0Y29scyk7CiBzdGF0aWMgdm9pZCBhZGRGa1JlY3Vyc2VSZWZlcmVuY2luZyhMaXN0ICoq d3F1ZXVlLCBDb25zdHJhaW50ICpma2NvbnN0cmFpbnQsCkBAIC05NTk1LDYgKzk1OTUsNyBA QCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJs ZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCWludDE2CQlma2RlbHNldGNvbHNbSU5ERVhf TUFYX0tFWVNdID0gezB9OwogCWJvb2wJCXdpdGhfcGVyaW9kOwogCWJvb2wJCXBrX2hhc193 aXRob3V0X292ZXJsYXBzOworCWludDE2CQlma3BlcmlvZGF0dG51bSA9IEludmFsaWRBdHRy TnVtYmVyOwogCWludAkJCWk7CiAJaW50CQkJbnVtZmtzLAogCQkJCW51bXBrcywKQEAgLTk2 OTAsMTUgKzk2OTEsMTkgQEAgQVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1 ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkJCSBm a2NvbnN0cmFpbnQtPmZrX2F0dHJzLAogCQkJCQkJCQkJIGZrYXR0bnVtLCBma3R5cG9pZCk7 CiAJd2l0aF9wZXJpb2QgPSBma2NvbnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9kIHx8IGZrY29u c3RyYWludC0+cGtfd2l0aF9wZXJpb2Q7Ci0JaWYgKHdpdGhfcGVyaW9kICYmICFma2NvbnN0 cmFpbnQtPmZrX3dpdGhfcGVyaW9kKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCWVycmNvZGUo RVJSQ09ERV9JTlZBTElEX0ZPUkVJR05fS0VZKSwKLQkJCQllcnJtc2coImZvcmVpZ24ga2V5 IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVy ZW5jaW5nIHRhYmxlIikpOworCWlmICh3aXRoX3BlcmlvZCkKKwl7CisJCWlmICghZmtjb25z dHJhaW50LT5ma193aXRoX3BlcmlvZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJj b2RlKEVSUkNPREVfSU5WQUxJRF9GT1JFSUdOX0tFWSksCisJCQkJCWVycm1zZygiZm9yZWln biBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUg cmVmZXJlbmNpbmcgdGFibGUiKSkpOworCQlma3BlcmlvZGF0dG51bSA9IGZrYXR0bnVtW251 bWZrcyAtIDFdOworCX0KIAogCW51bWZrZGVsc2V0Y29scyA9IHRyYW5zZm9ybUNvbHVtbk5h bWVMaXN0KFJlbGF0aW9uR2V0UmVsaWQocmVsKSwKIAkJCQkJCQkJCQkJICBma2NvbnN0cmFp bnQtPmZrX2RlbF9zZXRfY29scywKIAkJCQkJCQkJCQkJICBma2RlbHNldGNvbHMsIE5VTEwp OwotCXZhbGlkYXRlRmtPbkRlbGV0ZVNldENvbHVtbnMobnVtZmtzLCBma2F0dG51bSwKKwl2 YWxpZGF0ZUZrT25EZWxldGVTZXRDb2x1bW5zKG51bWZrcywgZmthdHRudW0sIGZrcGVyaW9k YXR0bnVtLAogCQkJCQkJCQkgbnVtZmtkZWxzZXRjb2xzLCBma2RlbHNldGNvbHMsCiAJCQkJ CQkJCSBma2NvbnN0cmFpbnQtPmZrX2RlbF9zZXRfY29scyk7CiAKQEAgLTk3ODAsMjggKzk3 ODUsNiBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVy ZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQl9CiAJfQogCi0JLyoKLQkgKiBT b21lIGFjdGlvbnMgYXJlIGN1cnJlbnRseSB1bnN1cHBvcnRlZCBmb3IgZm9yZWlnbiBrZXlz IHVzaW5nIFBFUklPRC4KLQkgKi8KLQlpZiAoZmtjb25zdHJhaW50LT5ma193aXRoX3Blcmlv ZCkKLQl7Ci0JCWlmIChma2NvbnN0cmFpbnQtPmZrX3VwZF9hY3Rpb24gPT0gRktDT05TVFJf QUNUSU9OX0NBU0NBREUgfHwKLQkJCWZrY29uc3RyYWludC0+ZmtfdXBkX2FjdGlvbiA9PSBG S0NPTlNUUl9BQ1RJT05fU0VUTlVMTCB8fAotCQkJZmtjb25zdHJhaW50LT5ma191cGRfYWN0 aW9uID09IEZLQ09OU1RSX0FDVElPTl9TRVRERUZBVUxUKQotCQkJZXJlcG9ydChFUlJPUiwK LQkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJCWVy cm1zZygidW5zdXBwb3J0ZWQgJXMgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50 IHVzaW5nIFBFUklPRCIsCi0JCQkJCQkgICAiT04gVVBEQVRFIikpOwotCi0JCWlmIChma2Nv bnN0cmFpbnQtPmZrX2RlbF9hY3Rpb24gPT0gRktDT05TVFJfQUNUSU9OX0NBU0NBREUgfHwK LQkJCWZrY29uc3RyYWludC0+ZmtfZGVsX2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJT05fU0VU TlVMTCB8fAotCQkJZmtjb25zdHJhaW50LT5ma19kZWxfYWN0aW9uID09IEZLQ09OU1RSX0FD VElPTl9TRVRERUZBVUxUKQotCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJCWVycm1zZygidW5zdXBwb3J0ZWQg JXMgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRCIsCi0J CQkJCQkgICAiT04gREVMRVRFIikpOwotCX0KLQogCS8qCiAJICogTG9vayB1cCB0aGUgZXF1 YWxpdHkgb3BlcmF0b3JzIHRvIHVzZSBpbiB0aGUgY29uc3RyYWludC4KIAkgKgpAQCAtMTAw NTksOCArMTAwNDIsMTIgQEAgQVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1 ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAl7CiAJCU9pZAkJ CXBlcmlvZG9wZXJvaWQ7CiAJCU9pZAkJCWFnZ2VkcGVyaW9kb3Blcm9pZDsKKwkJT2lkCQkJ aW50ZXJzZWN0cHJvY29pZDsKIAotCQlGaW5kRktQZXJpb2RPcGVycyhvcGNsYXNzZXNbbnVt cGtzIC0gMV0sICZwZXJpb2RvcGVyb2lkLCAmYWdnZWRwZXJpb2RvcGVyb2lkKTsKKwkJRmlu ZEZLUGVyaW9kT3BlcnNBbmRQcm9jcyhvcGNsYXNzZXNbbnVtcGtzIC0gMV0sCisJCQkJCQkJ CSAgJnBlcmlvZG9wZXJvaWQsCisJCQkJCQkJCSAgJmFnZ2VkcGVyaW9kb3Blcm9pZCwKKwkJ CQkJCQkJICAmaW50ZXJzZWN0cHJvY29pZCk7CiAJfQogCiAJLyoKQEAgLTEwMTE0LDYgKzEw MTAxLDcgQEAgQVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRl cmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKICAqLwogdm9pZAogdmFsaWRhdGVG a09uRGVsZXRlU2V0Q29sdW1ucyhpbnQgbnVtZmtzLCBjb25zdCBpbnQxNiAqZmthdHRudW1z LAorCQkJCQkJCSBjb25zdCBpbnQxNiBma3BlcmlvZGF0dG51bSwKIAkJCQkJCQkgaW50IG51 bWZrc2V0Y29scywgY29uc3QgaW50MTYgKmZrc2V0Y29sc2F0dG51bXMsCiAJCQkJCQkJIExp c3QgKmZrc2V0Y29scykKIHsKQEAgLTEwMTI0LDYgKzEwMTEyLDEzIEBAIHZhbGlkYXRlRmtP bkRlbGV0ZVNldENvbHVtbnMoaW50IG51bWZrcywgY29uc3QgaW50MTYgKmZrYXR0bnVtcywK IAogCQlmb3IgKGludCBqID0gMDsgaiA8IG51bWZrczsgaisrKQogCQl7CisJCQlpZiAoZmtw ZXJpb2RhdHRudW0gPT0gc2V0Y29sX2F0dG51bSkKKwkJCXsKKwkJCQljaGFyCSAgICpjb2wg PSBzdHJWYWwobGlzdF9udGgoZmtzZXRjb2xzLCBpKSk7CisJCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9DT0xVTU5fUkVGRVJFTkNFKSwKKwkJ CQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgcmVmZXJlbmNlZCBpbiBPTiBERUxFVEUgU0VU IGFjdGlvbiBjYW5ub3QgYmUgUEVSSU9EIiwgY29sKSkpOworCQkJfQogCQkJaWYgKGZrYXR0 bnVtc1tqXSA9PSBzZXRjb2xfYXR0bnVtKQogCQkJewogCQkJCXNlZW4gPSB0cnVlOwpAQCAt MTI0NTIsMTcgKzEyNDQ3LDI2IEBAIGNyZWF0ZUZvcmVpZ25LZXlBY3Rpb25UcmlnZ2VycyhS ZWxhdGlvbiByZWwsIE9pZCByZWZSZWxPaWQsIENvbnN0cmFpbnQgKmZrY29uc3RyCiAJCWNh c2UgRktDT05TVFJfQUNUSU9OX0NBU0NBREU6CiAJCQlma190cmlnZ2VyLT5kZWZlcnJhYmxl ID0gZmFsc2U7CiAJCQlma190cmlnZ2VyLT5pbml0ZGVmZXJyZWQgPSBmYWxzZTsKLQkJCWZr X3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVuY05hbWUoIlJJX0ZLZXlfY2FzY2FkZV9k ZWwiKTsKKwkJCWlmIChma2NvbnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9kKQorCQkJCWZrX3Ry aWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVuY05hbWUoIlJJX0ZLZXlfcGVyaW9kX2Nhc2Nh ZGVfZGVsIik7CisJCQllbHNlCisJCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1G dW5jTmFtZSgiUklfRktleV9jYXNjYWRlX2RlbCIpOwogCQkJYnJlYWs7CiAJCWNhc2UgRktD T05TVFJfQUNUSU9OX1NFVE5VTEw6CiAJCQlma190cmlnZ2VyLT5kZWZlcnJhYmxlID0gZmFs c2U7CiAJCQlma190cmlnZ2VyLT5pbml0ZGVmZXJyZWQgPSBmYWxzZTsKLQkJCWZrX3RyaWdn ZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVuY05hbWUoIlJJX0ZLZXlfc2V0bnVsbF9kZWwiKTsK KwkJCWlmIChma2NvbnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9kKQorCQkJCWZrX3RyaWdnZXIt PmZ1bmNuYW1lID0gU3lzdGVtRnVuY05hbWUoIlJJX0ZLZXlfcGVyaW9kX3NldG51bGxfZGVs Iik7CisJCQllbHNlCisJCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFt ZSgiUklfRktleV9zZXRudWxsX2RlbCIpOwogCQkJYnJlYWs7CiAJCWNhc2UgRktDT05TVFJf QUNUSU9OX1NFVERFRkFVTFQ6CiAJCQlma190cmlnZ2VyLT5kZWZlcnJhYmxlID0gZmFsc2U7 CiAJCQlma190cmlnZ2VyLT5pbml0ZGVmZXJyZWQgPSBmYWxzZTsKLQkJCWZrX3RyaWdnZXIt PmZ1bmNuYW1lID0gU3lzdGVtRnVuY05hbWUoIlJJX0ZLZXlfc2V0ZGVmYXVsdF9kZWwiKTsK KwkJCWlmIChma2NvbnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9kKQorCQkJCWZrX3RyaWdnZXIt PmZ1bmNuYW1lID0gU3lzdGVtRnVuY05hbWUoIlJJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRf ZGVsIik7CisJCQllbHNlCisJCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5j TmFtZSgiUklfRktleV9zZXRkZWZhdWx0X2RlbCIpOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6 CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEZLIGFjdGlvbiB0eXBlOiAlZCIsCkBA IC0xMjUxMywxNyArMTI1MTcsMjYgQEAgY3JlYXRlRm9yZWlnbktleUFjdGlvblRyaWdnZXJz KFJlbGF0aW9uIHJlbCwgT2lkIHJlZlJlbE9pZCwgQ29uc3RyYWludCAqZmtjb25zdHIKIAkJ Y2FzZSBGS0NPTlNUUl9BQ1RJT05fQ0FTQ0FERToKIAkJCWZrX3RyaWdnZXItPmRlZmVycmFi bGUgPSBmYWxzZTsKIAkJCWZrX3RyaWdnZXItPmluaXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJ ZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9jYXNjYWRl X3VwZCIpOworCQkJaWYgKGZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtf dHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9wZXJpb2RfY2Fz Y2FkZV91cGQiKTsKKwkJCWVsc2UKKwkJCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3Rl bUZ1bmNOYW1lKCJSSV9GS2V5X2Nhc2NhZGVfdXBkIik7CiAJCQlicmVhazsKIAkJY2FzZSBG S0NPTlNUUl9BQ1RJT05fU0VUTlVMTDoKIAkJCWZrX3RyaWdnZXItPmRlZmVycmFibGUgPSBm YWxzZTsKIAkJCWZrX3RyaWdnZXItPmluaXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJZmtfdHJp Z2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9zZXRudWxsX3VwZCIp OworCQkJaWYgKGZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtfdHJpZ2dl ci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9wZXJpb2Rfc2V0bnVsbF91 cGQiKTsKKwkJCWVsc2UKKwkJCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNO YW1lKCJSSV9GS2V5X3NldG51bGxfdXBkIik7CiAJCQlicmVhazsKIAkJY2FzZSBGS0NPTlNU Ul9BQ1RJT05fU0VUREVGQVVMVDoKIAkJCWZrX3RyaWdnZXItPmRlZmVycmFibGUgPSBmYWxz ZTsKIAkJCWZrX3RyaWdnZXItPmluaXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJZmtfdHJpZ2dl ci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9zZXRkZWZhdWx0X3VwZCIp OworCQkJaWYgKGZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtfdHJpZ2dl ci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVs dF91cGQiKTsKKwkJCWVsc2UKKwkJCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1 bmNOYW1lKCJSSV9GS2V5X3NldGRlZmF1bHRfdXBkIik7CiAJCQlicmVhazsKIAkJZGVmYXVs dDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgRksgYWN0aW9uIHR5cGU6ICVkIiwK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMKaW5kZXggZDViODY2NmMyMTYuLjk2 MTNiZmFhNzFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dl cnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwpAQCAtODAs NiArODAsMTIgQEAKICNkZWZpbmUgUklfUExBTl9TRVROVUxMX09OVVBEQVRFCQk3CiAjZGVm aW5lIFJJX1BMQU5fU0VUREVGQVVMVF9PTkRFTEVURQkJOAogI2RlZmluZSBSSV9QTEFOX1NF VERFRkFVTFRfT05VUERBVEUJCTkKKyNkZWZpbmUgUklfUExBTl9QRVJJT0RfQ0FTQ0FERV9P TkRFTEVURQkJMTAKKyNkZWZpbmUgUklfUExBTl9QRVJJT0RfQ0FTQ0FERV9PTlVQREFURQkJ MTEKKyNkZWZpbmUgUklfUExBTl9QRVJJT0RfU0VUTlVMTF9PTlVQREFURQkJMTIKKyNkZWZp bmUgUklfUExBTl9QRVJJT0RfU0VUTlVMTF9PTkRFTEVURQkJMTMKKyNkZWZpbmUgUklfUExB Tl9QRVJJT0RfU0VUREVGQVVMVF9PTlVQREFURQkxNAorI2RlZmluZSBSSV9QTEFOX1BFUklP RF9TRVRERUZBVUxUX09OREVMRVRFCTE1CiAKICNkZWZpbmUgTUFYX1FVT1RFRF9OQU1FX0xF TiAgKE5BTUVEQVRBTEVOKjIrMykKICNkZWZpbmUgTUFYX1FVT1RFRF9SRUxfTkFNRV9MRU4g IChNQVhfUVVPVEVEX05BTUVfTEVOKjIpCkBAIC0xMjgsNyArMTM0LDggQEAgdHlwZWRlZiBz dHJ1Y3QgUklfQ29uc3RyYWludEluZm8KIAlPaWQJCQlwcF9lcV9vcHJzW1JJX01BWF9OVU1L RVlTXTsgLyogZXF1YWxpdHkgb3BlcmF0b3JzIChQSyA9IFBLKSAqLwogCU9pZAkJCWZmX2Vx X29wcnNbUklfTUFYX05VTUtFWVNdOyAvKiBlcXVhbGl0eSBvcGVyYXRvcnMgKEZLID0gRksp ICovCiAJT2lkCQkJcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyOwkvKiBhbnlyYW5nZSA8QCBh bnlyYW5nZSAqLwotCU9pZAkJCWFnZ2VkX3BlcmlvZF9jb250YWluZWRfYnlfb3BlcjsgLyog ZmthdHRyIDxAIHJhbmdlX2FnZyhwa2F0dHIpICovCisJT2lkCQkJYWdnZWRfcGVyaW9kX2Nv bnRhaW5lZF9ieV9vcGVyOwkvKiBma2F0dHIgPEAgcmFuZ2VfYWdnKHBrYXR0cikgKi8KKwlP aWQJCQlwZXJpb2RfaW50ZXJzZWN0X3Byb2M7CS8qIGFueXJhbmdlICogYW55cmFuZ2UgKG9y IG11bHRpcmFuZ2UpICovCiAJZGxpc3Rfbm9kZQl2YWxpZF9saW5rOwkJLyogTGluayBpbiBs aXN0IG9mIHZhbGlkIGVudHJpZXMgKi8KIH0gUklfQ29uc3RyYWludEluZm87CiAKQEAgLTE5 Miw2ICsxOTksNyBAQCBzdGF0aWMgYm9vbCByaV9DaGVja19Qa19NYXRjaChSZWxhdGlvbiBw a19yZWwsIFJlbGF0aW9uIGZrX3JlbCwKIAkJCQkJCQkgIGNvbnN0IFJJX0NvbnN0cmFpbnRJ bmZvICpyaWluZm8pOwogc3RhdGljIERhdHVtIHJpX3Jlc3RyaWN0KFRyaWdnZXJEYXRhICp0 cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rpb24pOwogc3RhdGljIERhdHVtIHJpX3NldChUcmln Z2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfc2V0X251bGwsIGludCB0Z2tpbmQpOworc3Rh dGljIERhdHVtIHRyaV9zZXQoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBib29sIGlzX3NldF9u dWxsLCBpbnQgdGdraW5kKTsKIHN0YXRpYyB2b2lkIHF1b3RlT25lTmFtZShjaGFyICpidWZm ZXIsIGNvbnN0IGNoYXIgKm5hbWUpOwogc3RhdGljIHZvaWQgcXVvdGVSZWxhdGlvbk5hbWUo Y2hhciAqYnVmZmVyLCBSZWxhdGlvbiByZWwpOwogc3RhdGljIHZvaWQgcmlfR2VuZXJhdGVR dWFsKFN0cmluZ0luZm8gYnVmLApAQCAtMjM5LDcgKzI0Nyw3IEBAIHN0YXRpYyB2b2lkIHJp X1JlcG9ydFZpb2xhdGlvbihjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLAogCQkJ CQkJCSAgIGludCBxdWVyeW5vLCBib29sIHBhcnRnb25lKSBwZ19hdHRyaWJ1dGVfbm9yZXR1 cm4oKTsKIHN0YXRpYyBib29sIGZwb190YXJnZXRzX3BrX3JhbmdlKGNvbnN0IEZvclBvcnRp b25PZlN0YXRlICp0Z190ZW1wb3JhbCwKIAkJCQkJCQkJIGNvbnN0IFJJX0NvbnN0cmFpbnRJ bmZvICpyaWluZm8pOwotc3RhdGljIERhdHVtIHJlc3RyaWN0X2Nhc2NhZGluZ19yYW5nZShj b25zdCBGb3JQb3J0aW9uT2ZTdGF0ZSAqdGdfdGVtcG9yYWwsCitzdGF0aWMgRGF0dW0gcmVz dHJpY3RfY2FzY2FkaW5nX3JhbmdlKFJlbGF0aW9uIHJlbCwgY29uc3QgRm9yUG9ydGlvbk9m U3RhdGUgKnRnX3RlbXBvcmFsLAogCQkJCQkJCQkJICBjb25zdCBSSV9Db25zdHJhaW50SW5m byAqcmlpbmZvLAogCQkJCQkJCQkJICBUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdCk7CiAKQEAg LTgxNiw3ICs4MjQsNyBAQCByaV9yZXN0cmljdChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJv b2wgaXNfbm9fYWN0aW9uKQogCWlmICh0cmlnZGF0YS0+dGdfdGVtcG9yYWwpCiAJewogCQl0 YXJnZXRSYW5nZVBhcmFtID0gcmlpbmZvLT5ua2V5cyAtIDE7Ci0JCXRhcmdldFJhbmdlID0g cmVzdHJpY3RfY2FzY2FkaW5nX3JhbmdlKHRyaWdkYXRhLT50Z190ZW1wb3JhbCwgcmlpbmZv LCBvbGRzbG90KTsKKwkJdGFyZ2V0UmFuZ2UgPSByZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2Uo cGtfcmVsLCB0cmlnZGF0YS0+dGdfdGVtcG9yYWwsIHJpaW5mbywgb2xkc2xvdCk7CiAJfQog CiAJcmlfUGVyZm9ybUNoZWNrKHJpaW5mbywgJnFrZXksIHFwbGFuLApAQCAtMTMxNSw2ICsx MzIzLDUzNSBAQCByaV9zZXQoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBib29sIGlzX3NldF9u dWxsLCBpbnQgdGdraW5kKQogfQogCiAKKy8qCisgKiBSSV9GS2V5X3BlcmlvZF9jYXNjYWRl X2RlbCAtCisgKgorICogQ2FzY2FkZWQgZGVsZXRlIGZvcmVpZ24ga2V5IHJlZmVyZW5jZXMg YXQgZGVsZXRlIGV2ZW50IG9uIHRlbXBvcmFsIFBLIHRhYmxlLgorICovCitEYXR1bQorUklf RktleV9wZXJpb2RfY2FzY2FkZV9kZWwoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlUcmlnZ2Vy RGF0YSAqdHJpZ2RhdGEgPSAoVHJpZ2dlckRhdGEgKikgZmNpbmZvLT5jb250ZXh0OworCWNv bnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm87CisJUmVsYXRpb24JZmtfcmVsOworCVJl bGF0aW9uCXBrX3JlbDsKKwlUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdDsKKwlSSV9RdWVyeUtl eSBxa2V5OworCVNQSVBsYW5QdHIgIHFwbGFuOworCURhdHVtIHRhcmdldFJhbmdlOworCisJ LyogQ2hlY2sgdGhhdCB0aGlzIGlzIGEgdmFsaWQgdHJpZ2dlciBjYWxsIG9uIHRoZSByaWdo dCB0aW1lIGFuZCBldmVudC4gKi8KKwlyaV9DaGVja1RyaWdnZXIoZmNpbmZvLCAiUklfRktl eV9wZXJpb2RfY2FzY2FkZV9kZWwiLCBSSV9UUklHVFlQRV9ERUxFVEUpOworCisJcmlpbmZv ID0gcmlfRmV0Y2hDb25zdHJhaW50SW5mbyh0cmlnZGF0YS0+dGdfdHJpZ2dlciwKKwkJCQkJ CQkJCXRyaWdkYXRhLT50Z19yZWxhdGlvbiwgdHJ1ZSk7CisKKwkvKgorCSAqIEdldCB0aGUg cmVsYXRpb24gZGVzY3JpcHRvcnMgb2YgdGhlIEZLIGFuZCBQSyB0YWJsZXMgYW5kIHRoZSBv bGQgdHVwbGUuCisJICoKKwkgKiBma19yZWwgaXMgb3BlbmVkIGluIFJvd0V4Y2x1c2l2ZUxv Y2sgbW9kZSBzaW5jZSB0aGF0J3Mgd2hhdCBvdXIKKwkgKiBldmVudHVhbCBERUxFVEUgd2ls bCBnZXQgb24gaXQuCisJICovCisJZmtfcmVsID0gdGFibGVfb3BlbihyaWluZm8tPmZrX3Jl bGlkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwlwa19yZWwgPSB0cmlnZGF0YS0+dGdfcmVsYXRp b247CisJb2xkc2xvdCA9IHRyaWdkYXRhLT50Z190cmlnc2xvdDsKKworCS8qCisJICogRG9u J3QgZGVsZXRlIHRoYW4gbW9yZSB0aGFuIHRoZSBQSydzIGR1cmF0aW9uLAorCSAqIHRyaW1t ZWQgYnkgYW4gb3JpZ2luYWwgRk9SIFBPUlRJT04gT0YgaWYgbmVjZXNzYXJ5LgorCSAqLwor CXRhcmdldFJhbmdlID0gcmVzdHJpY3RfY2FzY2FkaW5nX3JhbmdlKHBrX3JlbCwgdHJpZ2Rh dGEtPnRnX3RlbXBvcmFsLCByaWluZm8sIG9sZHNsb3QpOworCisJaWYgKFNQSV9jb25uZWN0 KCkgIT0gU1BJX09LX0NPTk5FQ1QpCisJCWVsb2coRVJST1IsICJTUElfY29ubmVjdCBmYWls ZWQiKTsKKworCS8qIEZldGNoIG9yIHByZXBhcmUgYSBzYXZlZCBwbGFuIGZvciB0aGUgY2Fz Y2FkZWQgZGVsZXRlICovCisJcmlfQnVpbGRRdWVyeUtleSgmcWtleSwgcmlpbmZvLCBSSV9Q TEFOX1BFUklPRF9DQVNDQURFX09OREVMRVRFKTsKKworCWlmICgocXBsYW4gPSByaV9GZXRj aFByZXBhcmVkUGxhbigmcWtleSkpID09IE5VTEwpCisJeworCQlTdHJpbmdJbmZvRGF0YSBx dWVyeWJ1ZjsKKwkJY2hhcgkJZmtyZWxuYW1lW01BWF9RVU9URURfUkVMX05BTUVfTEVOXTsK KwkJY2hhcgkJYXR0bmFtZVtNQVhfUVVPVEVEX05BTUVfTEVOXTsKKwkJY2hhcgkJcGFyYW1u YW1lWzE2XTsKKwkJY29uc3QgY2hhciAqcXVlcnlzZXA7CisJCU9pZAkJCXF1ZXJ5b2lkc1tS SV9NQVhfTlVNS0VZUyArIDFdOworCQljb25zdCBjaGFyICpma19vbmx5OworCisJCS8qIC0t LS0tLS0tLS0KKwkJICogVGhlIHF1ZXJ5IHN0cmluZyBidWlsdCBpcworCQkgKiAgREVMRVRF IEZST00gW09OTFldIDxma3RhYmxlPgorCQkgKiAgRk9SIFBPUlRJT04gT0YgJGZrYXR0ICgk e24rMX0pCisJCSAqICBXSEVSRSAkMSA9IGZrYXR0MSBbQU5EIC4uLl0KKwkJICogVGhlIHR5 cGUgaWQncyBmb3IgdGhlICQgcGFyYW1ldGVycyBhcmUgdGhvc2Ugb2YgdGhlCisJCSAqIGNv cnJlc3BvbmRpbmcgUEsgYXR0cmlidXRlcy4KKwkJICogLS0tLS0tLS0tLQorCQkgKi8KKwkJ aW5pdFN0cmluZ0luZm8oJnF1ZXJ5YnVmKTsKKwkJZmtfb25seSA9IGZrX3JlbC0+cmRfcmVs LT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUgPworCQkJIiIgOiAiT05M WSAiOworCQlxdW90ZVJlbGF0aW9uTmFtZShma3JlbG5hbWUsIGZrX3JlbCk7CisJCXF1b3Rl T25lTmFtZShhdHRuYW1lLCBSSUF0dE5hbWUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNb cmlpbmZvLT5ua2V5cyAtIDFdKSk7CisKKwkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYs ICJERUxFVEUgRlJPTSAlcyVzIEZPUiBQT1JUSU9OIE9GICVzICgkJWQpIiwKKwkJCQkJCSBm a19vbmx5LCBma3JlbG5hbWUsIGF0dG5hbWUsIHJpaW5mby0+bmtleXMgKyAxKTsKKwkJcXVl cnlzZXAgPSAiV0hFUkUiOworCQlmb3IgKGludCBpID0gMDsgaSA8IHJpaW5mby0+bmtleXM7 IGkrKykKKwkJeworCQkJT2lkIHBrX3R5cGUgPSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8t PnBrX2F0dG51bXNbaV0pOworCQkJT2lkIHBrX2NvbGwgPSBSSUF0dENvbGxhdGlvbihwa19y ZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tpXSk7CisJCQlPaWQgZmtfdHlwZSA9IFJJQXR0VHlw ZShma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tpXSk7CisJCQlPaWQgZmtfY29sbCA9IFJJ QXR0Q29sbGF0aW9uKGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW2ldKTsKKworCQkJcXVv dGVPbmVOYW1lKGF0dG5hbWUsCisJCQkJCQkgUklBdHROYW1lKGZrX3JlbCwgcmlpbmZvLT5m a19hdHRudW1zW2ldKSk7CisJCQlzcHJpbnRmKHBhcmFtbmFtZSwgIiQlZCIsIGkgKyAxKTsK KwkJCXJpX0dlbmVyYXRlUXVhbCgmcXVlcnlidWYsIHF1ZXJ5c2VwLAorCQkJCQkJCXBhcmFt bmFtZSwgcGtfdHlwZSwKKwkJCQkJCQlyaWluZm8tPnBmX2VxX29wcnNbaV0sCisJCQkJCQkJ YXR0bmFtZSwgZmtfdHlwZSk7CisJCQlpZiAocGtfY29sbCAhPSBma19jb2xsICYmICFnZXRf Y29sbGF0aW9uX2lzZGV0ZXJtaW5pc3RpYyhwa19jb2xsKSkKKwkJCQlyaV9HZW5lcmF0ZVF1 YWxDb2xsYXRpb24oJnF1ZXJ5YnVmLCBwa19jb2xsKTsKKwkJCXF1ZXJ5c2VwID0gIkFORCI7 CisJCQlxdWVyeW9pZHNbaV0gPSBwa190eXBlOworCQl9CisKKwkJLyogU2V0IGEgcGFyYW0g Zm9yIEZPUiBQT1JUSU9OIE9GIFRPL0ZST00gKi8KKwkJcXVlcnlvaWRzW3JpaW5mby0+bmtl eXNdID0gUklBdHRUeXBlKHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtl eXMgLSAxXSk7CisKKwkJLyogUHJlcGFyZSBhbmQgc2F2ZSB0aGUgcGxhbiAqLworCQlxcGxh biA9IHJpX1BsYW5DaGVjayhxdWVyeWJ1Zi5kYXRhLCByaWluZm8tPm5rZXlzICsgMSwgcXVl cnlvaWRzLAorCQkJCQkJCSAmcWtleSwgZmtfcmVsLCBwa19yZWwpOworCX0KKworCS8qCisJ ICogV2UgaGF2ZSBhIHBsYW4gbm93LiBCdWlsZCB1cCB0aGUgYXJndW1lbnRzIGZyb20gdGhl IGtleSB2YWx1ZXMgaW4gdGhlCisJICogZGVsZXRlZCBQSyB0dXBsZSBhbmQgZGVsZXRlIHRo ZSByZWZlcmVuY2luZyByb3dzCisJICovCisJcmlfUGVyZm9ybUNoZWNrKHJpaW5mbywgJnFr ZXksIHFwbGFuLAorCQkJCQlma19yZWwsIHBrX3JlbCwKKwkJCQkJb2xkc2xvdCwgTlVMTCwK KwkJCQkJcmlpbmZvLT5ua2V5cywgdGFyZ2V0UmFuZ2UsCisJCQkJCXRydWUsCSAgIC8qIG11 c3QgZGV0ZWN0IG5ldyByb3dzICovCisJCQkJCVNQSV9PS19ERUxFVEUpOworCisJaWYgKFNQ SV9maW5pc2goKSAhPSBTUElfT0tfRklOSVNIKQorCQllbG9nKEVSUk9SLCAiU1BJX2Zpbmlz aCBmYWlsZWQiKTsKKworCXRhYmxlX2Nsb3NlKGZrX3JlbCwgUm93RXhjbHVzaXZlTG9jayk7 CisKKwlyZXR1cm4gUG9pbnRlckdldERhdHVtKE5VTEwpOworfQorCisvKgorICogUklfRktl eV9wZXJpb2RfY2FzY2FkZV91cGQgLQorICoKKyAqIENhc2NhZGVkIHVwZGF0ZSBmb3JlaWdu IGtleSByZWZlcmVuY2VzIGF0IHVwZGF0ZSBldmVudCBvbiB0ZW1wb3JhbCBQSyB0YWJsZS4K KyAqLworRGF0dW0KK1JJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVfdXBkKFBHX0ZVTkNUSU9OX0FS R1MpCit7CisJVHJpZ2dlckRhdGEgKnRyaWdkYXRhID0gKFRyaWdnZXJEYXRhICopIGZjaW5m by0+Y29udGV4dDsKKwljb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvOworCVJlbGF0 aW9uCWZrX3JlbDsKKwlSZWxhdGlvbglwa19yZWw7CisJVHVwbGVUYWJsZVNsb3QgKm9sZHNs b3Q7CisJVHVwbGVUYWJsZVNsb3QgKm5ld3Nsb3Q7CisJUklfUXVlcnlLZXkgcWtleTsKKwlT UElQbGFuUHRyICBxcGxhbjsKKwlEYXR1bSB0YXJnZXRSYW5nZTsKKworCS8qIENoZWNrIHRo YXQgdGhpcyBpcyBhIHZhbGlkIHRyaWdnZXIgY2FsbCBvbiB0aGUgcmlnaHQgdGltZSBhbmQg ZXZlbnQuICovCisJcmlfQ2hlY2tUcmlnZ2VyKGZjaW5mbywgIlJJX0ZLZXlfcGVyaW9kX2Nh c2NhZGVfdXBkIiwgUklfVFJJR1RZUEVfVVBEQVRFKTsKKworCXJpaW5mbyA9IHJpX0ZldGNo Q29uc3RyYWludEluZm8odHJpZ2RhdGEtPnRnX3RyaWdnZXIsCisJCQkJCQkJCQl0cmlnZGF0 YS0+dGdfcmVsYXRpb24sIHRydWUpOworCisJLyoKKwkgKiBHZXQgdGhlIHJlbGF0aW9uIGRl c2NyaXB0b3JzIG9mIHRoZSBGSyBhbmQgUEsgdGFibGVzIGFuZCB0aGUgbmV3IGFuZAorCSAq IG9sZCB0dXBsZS4KKwkgKgorCSAqIGZrX3JlbCBpcyBvcGVuZWQgaW4gUm93RXhjbHVzaXZl TG9jayBtb2RlIHNpbmNlIHRoYXQncyB3aGF0IG91cgorCSAqIGV2ZW50dWFsIFVQREFURSB3 aWxsIGdldCBvbiBpdC4KKwkgKi8KKwlma19yZWwgPSB0YWJsZV9vcGVuKHJpaW5mby0+Zmtf cmVsaWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCXBrX3JlbCA9IHRyaWdkYXRhLT50Z19yZWxh dGlvbjsKKwluZXdzbG90ID0gdHJpZ2RhdGEtPnRnX25ld3Nsb3Q7CisJb2xkc2xvdCA9IHRy aWdkYXRhLT50Z190cmlnc2xvdDsKKworCS8qCisJICogRG9uJ3QgZGVsZXRlIHRoYW4gbW9y ZSB0aGFuIHRoZSBQSydzIGR1cmF0aW9uLAorCSAqIHRyaW1tZWQgYnkgYW4gb3JpZ2luYWwg Rk9SIFBPUlRJT04gT0YgaWYgbmVjZXNzYXJ5LgorCSAqLworCXRhcmdldFJhbmdlID0gcmVz dHJpY3RfY2FzY2FkaW5nX3JhbmdlKHBrX3JlbCwgdHJpZ2RhdGEtPnRnX3RlbXBvcmFsLCBy aWluZm8sIG9sZHNsb3QpOworCisJaWYgKFNQSV9jb25uZWN0KCkgIT0gU1BJX09LX0NPTk5F Q1QpCisJCWVsb2coRVJST1IsICJTUElfY29ubmVjdCBmYWlsZWQiKTsKKworCS8qIEZldGNo IG9yIHByZXBhcmUgYSBzYXZlZCBwbGFuIGZvciB0aGUgY2FzY2FkZWQgdXBkYXRlICovCisJ cmlfQnVpbGRRdWVyeUtleSgmcWtleSwgcmlpbmZvLCBSSV9QTEFOX1BFUklPRF9DQVNDQURF X09OVVBEQVRFKTsKKworCWlmICgocXBsYW4gPSByaV9GZXRjaFByZXBhcmVkUGxhbigmcWtl eSkpID09IE5VTEwpCisJeworCQlTdHJpbmdJbmZvRGF0YSBxdWVyeWJ1ZjsKKwkJU3RyaW5n SW5mb0RhdGEgcXVhbGJ1ZjsKKwkJY2hhcgkJZmtyZWxuYW1lW01BWF9RVU9URURfUkVMX05B TUVfTEVOXTsKKwkJY2hhcgkJYXR0bmFtZVtNQVhfUVVPVEVEX05BTUVfTEVOXTsKKwkJY2hh cgkJcGFyYW1uYW1lWzE2XTsKKwkJY29uc3QgY2hhciAqcXVlcnlzZXA7CisJCWNvbnN0IGNo YXIgKnF1YWxzZXA7CisJCU9pZAkJIHF1ZXJ5b2lkc1syICogUklfTUFYX05VTUtFWVMgKyAx XTsKKwkJY29uc3QgY2hhciAqZmtfb25seTsKKworCQkvKiAtLS0tLS0tLS0tCisJCSAqIFRo ZSBxdWVyeSBzdHJpbmcgYnVpbHQgaXMKKwkJICogIFVQREFURSBbT05MWV0gPGZrdGFibGU+ CisJCSAqCQkgIEZPUiBQT1JUSU9OIE9GICRma2F0dCAoJHsybisxfSkKKwkJICoJCSAgU0VU IGZrYXR0MSA9ICQxLCBbLCAuLi5dCisJCSAqCQkgIFdIRVJFICRuID0gZmthdHQxIFtBTkQg Li4uXQorCQkgKiBUaGUgdHlwZSBpZCdzIGZvciB0aGUgJCBwYXJhbWV0ZXJzIGFyZSB0aG9z ZSBvZiB0aGUKKwkJICogY29ycmVzcG9uZGluZyBQSyBhdHRyaWJ1dGVzLiAgTm90ZSB0aGF0 IHdlIGFyZSBhc3N1bWluZworCQkgKiB0aGVyZSBpcyBhbiBhc3NpZ25tZW50IGNhc3QgZnJv bSB0aGUgUEsgdG8gdGhlIEZLIHR5cGU7CisJCSAqIGVsc2UgdGhlIHBhcnNlciB3aWxsIGZh aWwuCisJCSAqIC0tLS0tLS0tLS0KKwkJICovCisJCWluaXRTdHJpbmdJbmZvKCZxdWVyeWJ1 Zik7CisJCWluaXRTdHJpbmdJbmZvKCZxdWFsYnVmKTsKKwkJZmtfb25seSA9IGZrX3JlbC0+ cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUgPworCQkJIiIg OiAiT05MWSAiOworCQlxdW90ZVJlbGF0aW9uTmFtZShma3JlbG5hbWUsIGZrX3JlbCk7CisJ CXF1b3RlT25lTmFtZShhdHRuYW1lLCBSSUF0dE5hbWUoZmtfcmVsLCByaWluZm8tPmZrX2F0 dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKSk7CisKKwkJYXBwZW5kU3RyaW5nSW5mbygmcXVl cnlidWYsICJVUERBVEUgJXMlcyBGT1IgUE9SVElPTiBPRiAlcyAoJCVkKSBTRVQiLAorCQkJ CQkJIGZrX29ubHksIGZrcmVsbmFtZSwgYXR0bmFtZSwgMiAqIHJpaW5mby0+bmtleXMgKyAx KTsKKworCQlxdWVyeXNlcCA9ICIiOworCQlxdWFsc2VwID0gIldIRVJFIjsKKwkJZm9yIChp bnQgaSA9IDAsIGogPSByaWluZm8tPm5rZXlzOyBpIDwgcmlpbmZvLT5ua2V5czsgaSsrLCBq KyspCisJCXsKKwkJCU9pZCBwa190eXBlID0gUklBdHRUeXBlKHBrX3JlbCwgcmlpbmZvLT5w a19hdHRudW1zW2ldKTsKKwkJCU9pZCBwa19jb2xsID0gUklBdHRDb2xsYXRpb24ocGtfcmVs LCByaWluZm8tPnBrX2F0dG51bXNbaV0pOworCQkJT2lkIGZrX3R5cGUgPSBSSUF0dFR5cGUo ZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbaV0pOworCQkJT2lkIGZrX2NvbGwgPSBSSUF0 dENvbGxhdGlvbihma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tpXSk7CisKKwkJCXF1b3Rl T25lTmFtZShhdHRuYW1lLAorCQkJCQkJIFJJQXR0TmFtZShma19yZWwsIHJpaW5mby0+Zmtf YXR0bnVtc1tpXSkpOworCQkJLyoKKwkJCSAqIERvbid0IHNldCB0aGUgdGVtcG9yYWwgY29s dW1uKHMpLgorCQkJICogRk9SIFBPUlRJT04gT0Ygd2lsbCB0YWtlIGNhcmUgb2YgdGhhdC4K KwkJCSAqLworCQkJaWYgKGkgPCByaWluZm8tPm5rZXlzIC0gMSkKKwkJCQlhcHBlbmRTdHJp bmdJbmZvKCZxdWVyeWJ1ZiwKKwkJCQkJCQkJICIlcyAlcyA9ICQlZCIsCisJCQkJCQkJCSBx dWVyeXNlcCwgYXR0bmFtZSwgaSArIDEpOworCisJCQlzcHJpbnRmKHBhcmFtbmFtZSwgIiQl ZCIsIGogKyAxKTsKKwkJCXJpX0dlbmVyYXRlUXVhbCgmcXVhbGJ1ZiwgcXVhbHNlcCwKKwkJ CQkJCQlwYXJhbW5hbWUsIHBrX3R5cGUsCisJCQkJCQkJcmlpbmZvLT5wZl9lcV9vcHJzW2ld LAorCQkJCQkJCWF0dG5hbWUsIGZrX3R5cGUpOworCQkJaWYgKHBrX2NvbGwgIT0gZmtfY29s bCAmJiAhZ2V0X2NvbGxhdGlvbl9pc2RldGVybWluaXN0aWMocGtfY29sbCkpCisJCQkJcmlf R2VuZXJhdGVRdWFsQ29sbGF0aW9uKCZxdWVyeWJ1ZiwgcGtfY29sbCk7CisJCQlxdWVyeXNl cCA9ICIsIjsKKwkJCXF1YWxzZXAgPSAiQU5EIjsKKwkJCXF1ZXJ5b2lkc1tpXSA9IHBrX3R5 cGU7CisJCQlxdWVyeW9pZHNbal0gPSBwa190eXBlOworCQl9CisJCWFwcGVuZEJpbmFyeVN0 cmluZ0luZm8oJnF1ZXJ5YnVmLCBxdWFsYnVmLmRhdGEsIHF1YWxidWYubGVuKTsKKworCQkv KiBTZXQgYSBwYXJhbSBmb3IgRk9SIFBPUlRJT04gT0YgVE8vRlJPTSAqLworCQlxdWVyeW9p ZHNbMiAqIHJpaW5mby0+bmtleXNdID0gUklBdHRUeXBlKHBrX3JlbCwgcmlpbmZvLT5wa19h dHRudW1zW3JpaW5mby0+bmtleXMgLSAxXSk7CisKKwkJLyogUHJlcGFyZSBhbmQgc2F2ZSB0 aGUgcGxhbiAqLworCQlxcGxhbiA9IHJpX1BsYW5DaGVjayhxdWVyeWJ1Zi5kYXRhLCAyICog cmlpbmZvLT5ua2V5cyArIDEsIHF1ZXJ5b2lkcywKKwkJCQkJCQkgJnFrZXksIGZrX3JlbCwg cGtfcmVsKTsKKwl9CisKKwkvKgorCSAqIFdlIGhhdmUgYSBwbGFuIG5vdy4gUnVuIGl0IHRv IHVwZGF0ZSB0aGUgZXhpc3RpbmcgcmVmZXJlbmNlcy4KKwkgKi8KKwlyaV9QZXJmb3JtQ2hl Y2socmlpbmZvLCAmcWtleSwgcXBsYW4sCisJCQkJCWZrX3JlbCwgcGtfcmVsLAorCQkJCQlv bGRzbG90LCBuZXdzbG90LAorCQkJCQlyaWluZm8tPm5rZXlzICogMiwgdGFyZ2V0UmFuZ2Us CisJCQkJCXRydWUsCQkvKiBtdXN0IGRldGVjdCBuZXcgcm93cyAqLworCQkJCQlTUElfT0tf VVBEQVRFKTsKKworCWlmIChTUElfZmluaXNoKCkgIT0gU1BJX09LX0ZJTklTSCkKKwkJZWxv ZyhFUlJPUiwgIlNQSV9maW5pc2ggZmFpbGVkIik7CisKKwl0YWJsZV9jbG9zZShma19yZWws IFJvd0V4Y2x1c2l2ZUxvY2spOworCisJcmV0dXJuIFBvaW50ZXJHZXREYXR1bShOVUxMKTsK K30KKworLyoKKyAqIFJJX0ZLZXlfcGVyaW9kX3NldG51bGxfZGVsIC0KKyAqCisgKiBTZXQg Zm9yZWlnbiBrZXkgcmVmZXJlbmNlcyB0byBOVUxMIHZhbHVlcyBhdCBkZWxldGUgZXZlbnQg b24gUEsgdGFibGUuCisgKi8KK0RhdHVtCitSSV9GS2V5X3BlcmlvZF9zZXRudWxsX2RlbChQ R19GVU5DVElPTl9BUkdTKQoreworCS8qIENoZWNrIHRoYXQgdGhpcyBpcyBhIHZhbGlkIHRy aWdnZXIgY2FsbCBvbiB0aGUgcmlnaHQgdGltZSBhbmQgZXZlbnQuICovCisJcmlfQ2hlY2tU cmlnZ2VyKGZjaW5mbywgIlJJX0ZLZXlfcGVyaW9kX3NldG51bGxfZGVsIiwgUklfVFJJR1RZ UEVfREVMRVRFKTsKKworCS8qIFNoYXJlIGNvZGUgd2l0aCBVUERBVEUgY2FzZSAqLworCXJl dHVybiB0cmlfc2V0KChUcmlnZ2VyRGF0YSAqKSBmY2luZm8tPmNvbnRleHQsIHRydWUsIFJJ X1RSSUdUWVBFX0RFTEVURSk7Cit9CisKKy8qCisgKiBSSV9GS2V5X3BlcmlvZF9zZXRudWxs X3VwZCAtCisgKgorICogU2V0IGZvcmVpZ24ga2V5IHJlZmVyZW5jZXMgdG8gTlVMTCBhdCB1 cGRhdGUgZXZlbnQgb24gUEsgdGFibGUuCisgKi8KK0RhdHVtCitSSV9GS2V5X3BlcmlvZF9z ZXRudWxsX3VwZChQR19GVU5DVElPTl9BUkdTKQoreworCS8qIENoZWNrIHRoYXQgdGhpcyBp cyBhIHZhbGlkIHRyaWdnZXIgY2FsbCBvbiB0aGUgcmlnaHQgdGltZSBhbmQgZXZlbnQuICov CisJcmlfQ2hlY2tUcmlnZ2VyKGZjaW5mbywgIlJJX0ZLZXlfcGVyaW9kX3NldG51bGxfdXBk IiwgUklfVFJJR1RZUEVfVVBEQVRFKTsKKworCS8qIFNoYXJlIGNvZGUgd2l0aCBERUxFVEUg Y2FzZSAqLworCXJldHVybiB0cmlfc2V0KChUcmlnZ2VyRGF0YSAqKSBmY2luZm8tPmNvbnRl eHQsIHRydWUsIFJJX1RSSUdUWVBFX1VQREFURSk7Cit9CisKKy8qCisgKiBSSV9GS2V5X3Bl cmlvZF9zZXRkZWZhdWx0X2RlbCAtCisgKgorICogU2V0IGZvcmVpZ24ga2V5IHJlZmVyZW5j ZXMgdG8gZGVmYXVsdHMgYXQgZGVsZXRlIGV2ZW50IG9uIFBLIHRhYmxlLgorICovCitEYXR1 bQorUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF9kZWwoUEdfRlVOQ1RJT05fQVJHUykKK3sK KwkvKiBDaGVjayB0aGF0IHRoaXMgaXMgYSB2YWxpZCB0cmlnZ2VyIGNhbGwgb24gdGhlIHJp Z2h0IHRpbWUgYW5kIGV2ZW50LiAqLworCXJpX0NoZWNrVHJpZ2dlcihmY2luZm8sICJSSV9G S2V5X3BlcmlvZF9zZXRkZWZhdWx0X2RlbCIsIFJJX1RSSUdUWVBFX0RFTEVURSk7CisKKwkv KiBTaGFyZSBjb2RlIHdpdGggVVBEQVRFIGNhc2UgKi8KKwlyZXR1cm4gdHJpX3NldCgoVHJp Z2dlckRhdGEgKikgZmNpbmZvLT5jb250ZXh0LCBmYWxzZSwgUklfVFJJR1RZUEVfREVMRVRF KTsKK30KKworLyoKKyAqIFJJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfdXBkIC0KKyAqCisg KiBTZXQgZm9yZWlnbiBrZXkgcmVmZXJlbmNlcyB0byBkZWZhdWx0cyBhdCB1cGRhdGUgZXZl bnQgb24gUEsgdGFibGUuCisgKi8KK0RhdHVtCitSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0 X3VwZChQR19GVU5DVElPTl9BUkdTKQoreworCS8qIENoZWNrIHRoYXQgdGhpcyBpcyBhIHZh bGlkIHRyaWdnZXIgY2FsbCBvbiB0aGUgcmlnaHQgdGltZSBhbmQgZXZlbnQuICovCisJcmlf Q2hlY2tUcmlnZ2VyKGZjaW5mbywgIlJJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfdXBkIiwg UklfVFJJR1RZUEVfVVBEQVRFKTsKKworCS8qIFNoYXJlIGNvZGUgd2l0aCBERUxFVEUgY2Fz ZSAqLworCXJldHVybiB0cmlfc2V0KChUcmlnZ2VyRGF0YSAqKSBmY2luZm8tPmNvbnRleHQs IGZhbHNlLCBSSV9UUklHVFlQRV9VUERBVEUpOworfQorCisvKgorICogdHJpX3NldCAtCisg KgorICogQ29tbW9uIGNvZGUgZm9yIHRlbXBvcmFsIE9OIERFTEVURSBTRVQgTlVMTCwgT04g REVMRVRFIFNFVCBERUZBVUxULCBPTgorICogVVBEQVRFIFNFVCBOVUxMLCBhbmQgT04gVVBE QVRFIFNFVCBERUZBVUxULgorICovCitzdGF0aWMgRGF0dW0KK3RyaV9zZXQoVHJpZ2dlckRh dGEgKnRyaWdkYXRhLCBib29sIGlzX3NldF9udWxsLCBpbnQgdGdraW5kKQoreworCWNvbnN0 IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm87CisJUmVsYXRpb24JZmtfcmVsOworCVJlbGF0 aW9uCXBrX3JlbDsKKwlUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdDsKKwlSSV9RdWVyeUtleSBx a2V5OworCVNQSVBsYW5QdHIJcXBsYW47CisJRGF0dW0JCXRhcmdldFJhbmdlOworCWludDMy CQlxdWVyeW5vOworCisJcmlpbmZvID0gcmlfRmV0Y2hDb25zdHJhaW50SW5mbyh0cmlnZGF0 YS0+dGdfdHJpZ2dlciwKKwkJCQkJCQkJCXRyaWdkYXRhLT50Z19yZWxhdGlvbiwgdHJ1ZSk7 CisKKwkvKgorCSAqIEdldCB0aGUgcmVsYXRpb24gZGVzY3JpcHRvcnMgb2YgdGhlIEZLIGFu ZCBQSyB0YWJsZXMgYW5kIHRoZSBvbGQgdHVwbGUuCisJICoKKwkgKiBma19yZWwgaXMgb3Bl bmVkIGluIFJvd0V4Y2x1c2l2ZUxvY2sgbW9kZSBzaW5jZSB0aGF0J3Mgd2hhdCBvdXIKKwkg KiBldmVudHVhbCBVUERBVEUgd2lsbCBnZXQgb24gaXQuCisJICovCisJZmtfcmVsID0gdGFi bGVfb3BlbihyaWluZm8tPmZrX3JlbGlkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwlwa19yZWwg PSB0cmlnZGF0YS0+dGdfcmVsYXRpb247CisJb2xkc2xvdCA9IHRyaWdkYXRhLT50Z190cmln c2xvdDsKKworCS8qCisJICogRG9uJ3QgU0VUIE5VTEwvREVGQVVMVCB0aGFuIG1vcmUgdGhh biB0aGUgUEsncyBkdXJhdGlvbiwKKwkgKiB0cmltbWVkIGJ5IGFuIG9yaWdpbmFsIEZPUiBQ T1JUSU9OIE9GIGlmIG5lY2Vzc2FyeS4KKwkgKi8KKwl0YXJnZXRSYW5nZSA9IHJlc3RyaWN0 X2Nhc2NhZGluZ19yYW5nZShwa19yZWwsIHRyaWdkYXRhLT50Z190ZW1wb3JhbCwgcmlpbmZv LCBvbGRzbG90KTsKKworCWlmIChTUElfY29ubmVjdCgpICE9IFNQSV9PS19DT05ORUNUKQor CQllbG9nKEVSUk9SLCAiU1BJX2Nvbm5lY3QgZmFpbGVkIik7CisKKwkvKgorCSAqIEZldGNo IG9yIHByZXBhcmUgYSBzYXZlZCBwbGFuIGZvciB0aGUgdHJpZ2dlci4KKwkgKi8KKwlzd2l0 Y2ggKHRna2luZCkKKwl7CisJCWNhc2UgUklfVFJJR1RZUEVfVVBEQVRFOgorCQkJcXVlcnlu byA9IGlzX3NldF9udWxsCisJCQkJPyBSSV9QTEFOX1BFUklPRF9TRVROVUxMX09OVVBEQVRF CisJCQkJOiBSSV9QTEFOX1BFUklPRF9TRVRERUZBVUxUX09OVVBEQVRFOworCQkJYnJlYWs7 CisJCWNhc2UgUklfVFJJR1RZUEVfREVMRVRFOgorCQkJcXVlcnlubyA9IGlzX3NldF9udWxs CisJCQkJPyBSSV9QTEFOX1BFUklPRF9TRVROVUxMX09OREVMRVRFCisJCQkJOiBSSV9QTEFO X1BFUklPRF9TRVRERUZBVUxUX09OREVMRVRFOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJ CQllbG9nKEVSUk9SLCAiaW52YWxpZCB0Z2tpbmQgcGFzc2VkIHRvIHJpX3NldCIpOworCX0K KworCXJpX0J1aWxkUXVlcnlLZXkoJnFrZXksIHJpaW5mbywgcXVlcnlubyk7CisKKwlpZiAo KHFwbGFuID0gcmlfRmV0Y2hQcmVwYXJlZFBsYW4oJnFrZXkpKSA9PSBOVUxMKQorCXsKKwkJ U3RyaW5nSW5mb0RhdGEgcXVlcnlidWY7CisJCVN0cmluZ0luZm9EYXRhIHF1YWxidWY7CisJ CWNoYXIJCWZrcmVsbmFtZVtNQVhfUVVPVEVEX1JFTF9OQU1FX0xFTl07CisJCWNoYXIJCWF0 dG5hbWVbTUFYX1FVT1RFRF9OQU1FX0xFTl07CisJCWNoYXIJCXBhcmFtbmFtZVsxNl07CisJ CWNvbnN0IGNoYXIgKnF1ZXJ5c2VwOworCQljb25zdCBjaGFyICpxdWFsc2VwOworCQlPaWQJ CQlxdWVyeW9pZHNbUklfTUFYX05VTUtFWVMgKyAxXTsgLyogKzEgZm9yIEZPUiBQT1JUSU9O IE9GICovCisJCWNvbnN0IGNoYXIgKmZrX29ubHk7CisJCWludAkJCW51bV9jb2xzX3RvX3Nl dDsKKwkJY29uc3QgaW50MTYgKnNldF9jb2xzOworCisJCXN3aXRjaCAodGdraW5kKQorCQl7 CisJCQljYXNlIFJJX1RSSUdUWVBFX1VQREFURToKKwkJCQkvKiAtMSBzbyB3ZSBsZXQgRk9S IFBPUlRJT04gT0Ygc2V0IHRoZSByYW5nZS4gKi8KKwkJCQludW1fY29sc190b19zZXQgPSBy aWluZm8tPm5rZXlzIC0gMTsKKwkJCQlzZXRfY29scyA9IHJpaW5mby0+ZmtfYXR0bnVtczsK KwkJCQlicmVhazsKKwkJCWNhc2UgUklfVFJJR1RZUEVfREVMRVRFOgorCQkJCS8qCisJCQkJ ICogSWYgY29uZmRlbHNldGNvbHMgYXJlIHByZXNlbnQsIHRoZW4gd2Ugb25seSB1cGRhdGUg dGhlCisJCQkJICogY29sdW1ucyBzcGVjaWZpZWQgaW4gdGhhdCBhcnJheSwgb3RoZXJ3aXNl IHdlIHVwZGF0ZSBhbGwKKwkJCQkgKiB0aGUgcmVmZXJlbmNpbmcgY29sdW1ucy4KKwkJCQkg Ki8KKwkJCQlpZiAocmlpbmZvLT5uZGVsc2V0Y29scyAhPSAwKQorCQkJCXsKKwkJCQkJbnVt X2NvbHNfdG9fc2V0ID0gcmlpbmZvLT5uZGVsc2V0Y29sczsKKwkJCQkJc2V0X2NvbHMgPSBy aWluZm8tPmNvbmZkZWxzZXRjb2xzOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQkv KiAtMSBzbyB3ZSBsZXQgRk9SIFBPUlRJT04gT0Ygc2V0IHRoZSByYW5nZS4gKi8KKwkJCQkJ bnVtX2NvbHNfdG9fc2V0ID0gcmlpbmZvLT5ua2V5cyAtIDE7CisJCQkJCXNldF9jb2xzID0g cmlpbmZvLT5ma19hdHRudW1zOworCQkJCX0KKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CisJ CQkJZWxvZyhFUlJPUiwgImludmFsaWQgdGdraW5kIHBhc3NlZCB0byByaV9zZXQiKTsKKwkJ fQorCisJCS8qIC0tLS0tLS0tLS0KKwkJICogVGhlIHF1ZXJ5IHN0cmluZyBidWlsdCBpcwor CQkgKglVUERBVEUgW09OTFldIDxma3RhYmxlPgorCQkgKgkJCUZPUiBQT1JUSU9OIE9GICRm a2F0dCAoJHtuKzF9KQorCQkgKgkJCVNFVCBma2F0dDEgPSB7TlVMTHxERUZBVUxUfSBbLCAu Li5dCisJCSAqCQkJV0hFUkUgJDEgPSBma2F0dDEgW0FORCAuLi5dCisJCSAqIFRoZSB0eXBl IGlkJ3MgZm9yIHRoZSAkIHBhcmFtZXRlcnMgYXJlIHRob3NlIG9mIHRoZQorCQkgKiBjb3Jy ZXNwb25kaW5nIFBLIGF0dHJpYnV0ZXMuCisJCSAqIC0tLS0tLS0tLS0KKwkJICovCisJCWlu aXRTdHJpbmdJbmZvKCZxdWVyeWJ1Zik7CisJCWluaXRTdHJpbmdJbmZvKCZxdWFsYnVmKTsK KwkJZmtfb25seSA9IGZrX3JlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElU SU9ORURfVEFCTEUgPworCQkJIiIgOiAiT05MWSAiOworCQlxdW90ZVJlbGF0aW9uTmFtZShm a3JlbG5hbWUsIGZrX3JlbCk7CisJCXF1b3RlT25lTmFtZShhdHRuYW1lLCBSSUF0dE5hbWUo ZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKSk7CisKKwkJ YXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICJVUERBVEUgJXMlcyBGT1IgUE9SVElPTiBP RiAlcyAoJCVkKSBTRVQiLAorCQkJCQkJIGZrX29ubHksIGZrcmVsbmFtZSwgYXR0bmFtZSwg cmlpbmZvLT5ua2V5cyArIDEpOworCisJCS8qCisJCSAqIEFkZCBhc3NpZ25tZW50IGNsYXVz ZXMKKwkJICovCisJCXF1ZXJ5c2VwID0gIiI7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgbnVt X2NvbHNfdG9fc2V0OyBpKyspCisJCXsKKwkJCXF1b3RlT25lTmFtZShhdHRuYW1lLCBSSUF0 dE5hbWUoZmtfcmVsLCBzZXRfY29sc1tpXSkpOworCQkJYXBwZW5kU3RyaW5nSW5mbygmcXVl cnlidWYsCisJCQkJCQkJICIlcyAlcyA9ICVzIiwKKwkJCQkJCQkgcXVlcnlzZXAsIGF0dG5h bWUsCisJCQkJCQkJIGlzX3NldF9udWxsID8gIk5VTEwiIDogIkRFRkFVTFQiKTsKKwkJCXF1 ZXJ5c2VwID0gIiwiOworCQl9CisKKwkJLyoKKwkJICogQWRkIFdIRVJFIGNsYXVzZQorCQkg Ki8KKwkJcXVhbHNlcCA9ICJXSEVSRSI7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgcmlpbmZv LT5ua2V5czsgaSsrKQorCQl7CisJCQlPaWQJcGtfdHlwZSA9IFJJQXR0VHlwZShwa19yZWws IHJpaW5mby0+cGtfYXR0bnVtc1tpXSk7CisJCQlPaWQJZmtfdHlwZSA9IFJJQXR0VHlwZShm a19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tpXSk7CisJCQlPaWQJcGtfY29sbCA9IFJJQXR0 Q29sbGF0aW9uKHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1zW2ldKTsKKwkJCU9pZAlma19j b2xsID0gUklBdHRDb2xsYXRpb24oZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbaV0pOwor CisJCQlxdW90ZU9uZU5hbWUoYXR0bmFtZSwKKwkJCQkJCSBSSUF0dE5hbWUoZmtfcmVsLCBy aWluZm8tPmZrX2F0dG51bXNbaV0pKTsKKworCQkJc3ByaW50ZihwYXJhbW5hbWUsICIkJWQi LCBpICsgMSk7CisJCQlyaV9HZW5lcmF0ZVF1YWwoJnF1ZXJ5YnVmLCBxdWFsc2VwLAorCQkJ CQkJCXBhcmFtbmFtZSwgcGtfdHlwZSwKKwkJCQkJCQlyaWluZm8tPnBmX2VxX29wcnNbaV0s CisJCQkJCQkJYXR0bmFtZSwgZmtfdHlwZSk7CisJCQlpZiAocGtfY29sbCAhPSBma19jb2xs ICYmICFnZXRfY29sbGF0aW9uX2lzZGV0ZXJtaW5pc3RpYyhwa19jb2xsKSkKKwkJCQlyaV9H ZW5lcmF0ZVF1YWxDb2xsYXRpb24oJnF1ZXJ5YnVmLCBwa19jb2xsKTsKKwkJCXF1YWxzZXAg PSAiQU5EIjsKKwkJCXF1ZXJ5b2lkc1tpXSA9IHBrX3R5cGU7CisJCX0KKworCQkvKiBTZXQg YSBwYXJhbSBmb3IgRk9SIFBPUlRJT04gT0YgVE8vRlJPTSAqLworCQlxdWVyeW9pZHNbcmlp bmZvLT5ua2V5c10gPSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbcmlp bmZvLT5ua2V5cyAtIDFdKTsKKworCQkvKiBQcmVwYXJlIGFuZCBzYXZlIHRoZSBwbGFuICov CisJCXFwbGFuID0gcmlfUGxhbkNoZWNrKHF1ZXJ5YnVmLmRhdGEsIHJpaW5mby0+bmtleXMg KyAxLCBxdWVyeW9pZHMsCisJCQkJCQkJICZxa2V5LCBma19yZWwsIHBrX3JlbCk7CisJfQor CisJLyoKKwkgKiBXZSBoYXZlIGEgcGxhbiBub3cuIFJ1biBpdCB0byB1cGRhdGUgdGhlIGV4 aXN0aW5nIHJlZmVyZW5jZXMuCisJICovCisJcmlfUGVyZm9ybUNoZWNrKHJpaW5mbywgJnFr ZXksIHFwbGFuLAorCQkJCQlma19yZWwsIHBrX3JlbCwKKwkJCQkJb2xkc2xvdCwgTlVMTCwK KwkJCQkJcmlpbmZvLT5ua2V5cywgdGFyZ2V0UmFuZ2UsCisJCQkJCXRydWUsCQkvKiBtdXN0 IGRldGVjdCBuZXcgcm93cyAqLworCQkJCQlTUElfT0tfVVBEQVRFKTsKKworCWlmIChTUElf ZmluaXNoKCkgIT0gU1BJX09LX0ZJTklTSCkKKwkJZWxvZyhFUlJPUiwgIlNQSV9maW5pc2gg ZmFpbGVkIik7CisKKwl0YWJsZV9jbG9zZShma19yZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwor CisJaWYgKGlzX3NldF9udWxsKQorCQlyZXR1cm4gUG9pbnRlckdldERhdHVtKE5VTEwpOwor CWVsc2UKKwl7CisJCS8qCisJCSAqIElmIHdlIGp1c3QgZGVsZXRlZCBvciB1cGRhdGVkIHRo ZSBQSyByb3cgd2hvc2Uga2V5IHdhcyBlcXVhbCB0byB0aGUKKwkJICogRksgY29sdW1ucycg ZGVmYXVsdCB2YWx1ZXMsIGFuZCBhIHJlZmVyZW5jaW5nIHJvdyBleGlzdHMgaW4gdGhlIEZL CisJCSAqIHRhYmxlLCB3ZSB3b3VsZCBoYXZlIHVwZGF0ZWQgdGhhdCByb3cgdG8gdGhlIHNh bWUgdmFsdWVzIGl0IGFscmVhZHkKKwkJICogaGFkIC0tLSBhbmQgUklfRktleV9ma191cGRf Y2hlY2tfcmVxdWlyZWQgd291bGQgaGVuY2UgYmVsaWV2ZSBubworCQkgKiBjaGVjayBpcyBu ZWNlc3NhcnkuICBTbyB3ZSBuZWVkIHRvIGRvIGFub3RoZXIgbG9va3VwIG5vdyBhbmQgaW4K KwkJICogY2FzZSBhIHJlZmVyZW5jZSBzdGlsbCBleGlzdHMsIGFib3J0IHRoZSBvcGVyYXRp b24uICBUaGF0IGlzCisJCSAqIGFscmVhZHkgaW1wbGVtZW50ZWQgaW4gdGhlIE5PIEFDVElP TiB0cmlnZ2VyLCBzbyBqdXN0IHJ1biBpdC4gKFRoaXMKKwkJICogcmVjaGVjayBpcyBvbmx5 IG5lZWRlZCBpbiB0aGUgU0VUIERFRkFVTFQgY2FzZSwgc2luY2UgQ0FTQ0FERSB3b3VsZAor CQkgKiByZW1vdmUgc3VjaCByb3dzIGluIGNhc2Ugb2YgYSBERUxFVEUgb3BlcmF0aW9uIG9y IHdvdWxkIGNoYW5nZSB0aGUKKwkJICogRksga2V5IHZhbHVlcyBpbiBjYXNlIG9mIGFuIFVQ REFURSwgd2hpbGUgU0VUIE5VTEwgaXMgY2VydGFpbiB0bworCQkgKiByZXN1bHQgaW4gcm93 cyB0aGF0IHNhdGlzZnkgdGhlIEZLIGNvbnN0cmFpbnQuKQorCQkgKi8KKwkJcmV0dXJuIHJp X3Jlc3RyaWN0KHRyaWdkYXRhLCB0cnVlKTsKKwl9Cit9CisKIC8qCiAgKiBSSV9GS2V5X3Br X3VwZF9jaGVja19yZXF1aXJlZCAtCiAgKgpAQCAtMjI4Nyw5ICsyODI0LDEwIEBAIHJpX0xv YWRDb25zdHJhaW50SW5mbyhPaWQgY29uc3RyYWludE9pZCkKIAl7CiAJCU9pZAkJCW9wY2xh c3MgPSBnZXRfaW5kZXhfY29sdW1uX29wY2xhc3MoY29uRm9ybS0+Y29uaW5kaWQsIHJpaW5m by0+bmtleXMpOwogCi0JCUZpbmRGS1BlcmlvZE9wZXJzKG9wY2xhc3MsCi0JCQkJCQkgICZy aWluZm8tPnBlcmlvZF9jb250YWluZWRfYnlfb3BlciwKLQkJCQkJCSAgJnJpaW5mby0+YWdn ZWRfcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyKTsKKwkJRmluZEZLUGVyaW9kT3BlcnNBbmRQ cm9jcyhvcGNsYXNzLAorCQkJCQkJCQkgICZyaWluZm8tPnBlcmlvZF9jb250YWluZWRfYnlf b3BlciwKKwkJCQkJCQkJICAmcmlpbmZvLT5hZ2dlZF9wZXJpb2RfY29udGFpbmVkX2J5X29w ZXIsCisJCQkJCQkJCSAgJnJpaW5mby0+cGVyaW9kX2ludGVyc2VjdF9wcm9jKTsKIAl9CiAK IAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKQEAgLTI0NDQsOCArMjk4Miw4IEBAIHJpX1BlcmZv cm1DaGVjayhjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLAogCWludAkJCXNwaV9y ZXN1bHQ7CiAJT2lkCQkJc2F2ZV91c2VyaWQ7CiAJaW50CQkJc2F2ZV9zZWNfY29udGV4dDsK LQlEYXR1bQkJdmFsc1tSSV9NQVhfTlVNS0VZUyAqIDJdOwotCWNoYXIJCW51bGxzW1JJX01B WF9OVU1LRVlTICogMl07CisJRGF0dW0JCXZhbHNbUklfTUFYX05VTUtFWVMgKiAyICsgMV07 CisJY2hhcgkJbnVsbHNbUklfTUFYX05VTUtFWVMgKiAyICsgMV07CiAKIAkvKgogCSAqIFVz ZSB0aGUgcXVlcnkgdHlwZSBjb2RlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBxdWVyeSBp cyBydW4gYWdhaW5zdApAQCAtMjQ4MCw4ICszMDE4LDEwIEBAIHJpX1BlcmZvcm1DaGVjayhj b25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLAogCQlyaV9FeHRyYWN0VmFsdWVzKHNv dXJjZV9yZWwsIG5ld3Nsb3QsIHJpaW5mbywgc291cmNlX2lzX3BrLAogCQkJCQkJIHZhbHMs IG51bGxzKTsKIAkJaWYgKG9sZHNsb3QpCisJCXsKIAkJCXJpX0V4dHJhY3RWYWx1ZXMoc291 cmNlX3JlbCwgb2xkc2xvdCwgcmlpbmZvLCBzb3VyY2VfaXNfcGssCiAJCQkJCQkJIHZhbHMg KyByaWluZm8tPm5rZXlzLCBudWxscyArIHJpaW5mby0+bmtleXMpOworCQl9CiAJfQogCWVs c2UKIAl7CkBAIC0zMTYxLDYgKzM3MDEsMTIgQEAgUklfRktleV90cmlnZ2VyX3R5cGUoT2lk IHRnZm9pZCkKIAkJY2FzZSBGX1JJX0ZLRVlfU0VUREVGQVVMVF9VUEQ6CiAJCWNhc2UgRl9S SV9GS0VZX05PQUNUSU9OX0RFTDoKIAkJY2FzZSBGX1JJX0ZLRVlfTk9BQ1RJT05fVVBEOgor CQljYXNlIEZfUklfRktFWV9QRVJJT0RfQ0FTQ0FERV9ERUw6CisJCWNhc2UgRl9SSV9GS0VZ X1BFUklPRF9DQVNDQURFX1VQRDoKKwkJY2FzZSBGX1JJX0ZLRVlfUEVSSU9EX1NFVE5VTExf REVMOgorCQljYXNlIEZfUklfRktFWV9QRVJJT0RfU0VUTlVMTF9VUEQ6CisJCWNhc2UgRl9S SV9GS0VZX1BFUklPRF9TRVRERUZBVUxUX0RFTDoKKwkJY2FzZSBGX1JJX0ZLRVlfUEVSSU9E X1NFVERFRkFVTFRfVVBEOgogCQkJcmV0dXJuIFJJX1RSSUdHRVJfUEs7CiAKIAkJY2FzZSBG X1JJX0ZLRVlfQ0hFQ0tfSU5TOgpAQCAtMzE4OSwzMCArMzczNSwzMCBAQCBmcG9fdGFyZ2V0 c19wa19yYW5nZShjb25zdCBGb3JQb3J0aW9uT2ZTdGF0ZSAqdGdfdGVtcG9yYWwsIGNvbnN0 IFJJX0NvbnN0cmFpbnRJbgogLyoKICAqIHJlc3RyaWN0X2Nhc2NhZGluZ19yYW5nZSAtCiAg KgotICogUmV0dXJucyBhIERhdHVtIG9mIFJhbmdlVHlwZVAgaG9sZGluZyB0aGUgYXBwcm9w cmlhdGUgdGltZXNwYW4KLSAqIHRvIHRhcmdldCBjaGlsZCByZWNvcmRzIHdoZW4gd2UgQ0FT Q0FERS9TRVQgTlVMTC9TRVQgREVGQVVMVC4KKyAqIFJldHVybnMgYSBEYXR1bSBob2xkaW5n IHRoZSBhcHByb3ByaWF0ZSB0aW1lc3BhbgorICogdG8gdGFyZ2V0IHJlZmVyZW5jaW5nIHJl Y29yZHMgd2hlbiB3ZSBDQVNDQURFL1NFVCBOVUxML1NFVCBERUZBVUxULgogICoKLSAqIElu IGEgbm9ybWFsIFVQREFURS9ERUxFVEUgdGhpcyBzaG91bGQgYmUgdGhlIHBhcmVudCdzIG93 biB2YWxpZCB0aW1lLAorICogSW4gYSBub3JtYWwgVVBEQVRFL0RFTEVURSB0aGlzIHNob3Vs ZCBiZSB0aGUgcmVmZXJlbmNlZCByb3cncyBvd24gdmFsaWQgdGltZSwKICAqIGJ1dCBpZiB0 aGVyZSB3YXMgYSBGT1IgUE9SVElPTiBPRiBjbGF1c2UsIHRoZW4gd2Ugc2hvdWxkIHVzZSB0 aGF0IHRvCi0gKiB0cmltIGRvd24gdGhlIHBhcmVudCdzIHNwYW4gZnVydGhlci4KKyAqIHRy aW0gZG93biB0aGUgc3BhbiBmdXJ0aGVyLgogICovCiBzdGF0aWMgRGF0dW0KLXJlc3RyaWN0 X2Nhc2NhZGluZ19yYW5nZShjb25zdCBGb3JQb3J0aW9uT2ZTdGF0ZSAqdGdfdGVtcG9yYWws IGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sIFR1cGxlVGFibGVTbG90ICpvbGRz bG90KQorcmVzdHJpY3RfY2FzY2FkaW5nX3JhbmdlKFJlbGF0aW9uIHJlbCwgY29uc3QgRm9y UG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBvcmFsLCBjb25zdCBSSV9Db25zdHJhaW50SW5mbyAq cmlpbmZvLCBUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdCkKIHsKIAlEYXR1bQlwa1JlY29yZFJh bmdlOwogCWJvb2wJaXNudWxsOworCWludAkJYXR0bm8gPSByaWluZm8tPnBrX2F0dG51bXNb cmlpbmZvLT5ua2V5cyAtIDFdOwogCi0JcGtSZWNvcmRSYW5nZSA9IHNsb3RfZ2V0YXR0cihv bGRzbG90LCByaWluZm8tPnBrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdLCAmaXNudWxs KTsKKwlwa1JlY29yZFJhbmdlID0gc2xvdF9nZXRhdHRyKG9sZHNsb3QsIGF0dG5vLCAmaXNu dWxsKTsKIAlpZiAoaXNudWxsKQogCQllbG9nKEVSUk9SLCAiYXBwbGljYXRpb24gdGltZSBz aG91bGQgbm90IGJlIG51bGwiKTsKIAogCWlmIChmcG9fdGFyZ2V0c19wa19yYW5nZSh0Z190 ZW1wb3JhbCwgcmlpbmZvKSkKIAl7Ci0JCVJhbmdlVHlwZSAqcjEgPSBEYXR1bUdldFJhbmdl VHlwZVAocGtSZWNvcmRSYW5nZSk7Ci0JCVJhbmdlVHlwZSAqcjIgPSBEYXR1bUdldFJhbmdl VHlwZVAodGdfdGVtcG9yYWwtPmZwX3RhcmdldFJhbmdlKTsKLQkJT2lkIHJuZ3R5cGlkID0g UmFuZ2VUeXBlR2V0T2lkKHIxKTsKLQkJVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlID0gbG9v a3VwX3R5cGVfY2FjaGUocm5ndHlwaWQsIFRZUEVDQUNIRV9SQU5HRV9JTkZPKTsKLQkJcmV0 dXJuIFJhbmdlVHlwZVBHZXREYXR1bShyYW5nZV9pbnRlcnNlY3RfaW50ZXJuYWwodHlwY2Fj aGUsIHIxLCByMikpOworCQlpZiAoIU9pZElzVmFsaWQocmlpbmZvLT5wZXJpb2RfaW50ZXJz ZWN0X3Byb2MpKQorCQkJZWxvZyhFUlJPUiwgImludmFsaWQgaW50ZXJzZWN0IHN1cHBvcnQg ZnVuY3Rpb24iKTsKKworCQlyZXR1cm4gT2lkRnVuY3Rpb25DYWxsMihyaWluZm8tPnBlcmlv ZF9pbnRlcnNlY3RfcHJvYywgcGtSZWNvcmRSYW5nZSwgdGdfdGVtcG9yYWwtPmZwX3Rhcmdl dFJhbmdlKTsKIAl9CiAJZWxzZQogCQlyZXR1cm4gcGtSZWNvcmRSYW5nZTsKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19jb25zdHJhaW50LmgKaW5kZXggMTE1MjE3YTYxNjIuLmE1NmY2NjVlMTQ5 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaApAQCAtMjc5LDkgKzI3OSwx MCBAQCBleHRlcm4gdm9pZCBEZWNvbnN0cnVjdEZrQ29uc3RyYWludFJvdyhIZWFwVHVwbGUg dHVwbGUsIGludCAqbnVtZmtzLAogCQkJCQkJCQkJICAgQXR0ck51bWJlciAqY29ua2V5LCBB dHRyTnVtYmVyICpjb25ma2V5LAogCQkJCQkJCQkJICAgT2lkICpwZl9lcV9vcHJzLCBPaWQg KnBwX2VxX29wcnMsIE9pZCAqZmZfZXFfb3BycywKIAkJCQkJCQkJCSAgIGludCAqbnVtX2Zr X2RlbF9zZXRfY29scywgQXR0ck51bWJlciAqZmtfZGVsX3NldF9jb2xzKTsKLWV4dGVybiB2 b2lkIEZpbmRGS1BlcmlvZE9wZXJzKE9pZCBvcGNsYXNzLAotCQkJCQkJCSAgT2lkICpjb250 YWluZWRieW9wZXJvaWQsCi0JCQkJCQkJICBPaWQgKmFnZ2VkY29udGFpbmVkYnlvcGVyb2lk KTsKK2V4dGVybiB2b2lkIEZpbmRGS1BlcmlvZE9wZXJzQW5kUHJvY3MoT2lkIG9wY2xhc3Ms CisJCQkJCQkJCQkgIE9pZCAqY29udGFpbmVkYnlvcGVyb2lkLAorCQkJCQkJCQkJICBPaWQg KmFnZ2VkY29udGFpbmVkYnlvcGVyb2lkLAorCQkJCQkJCQkJICBPaWQgKmludGVyc2VjdHBy b2NvaWQpOwogCiBleHRlcm4gYm9vbCBjaGVja19mdW5jdGlvbmFsX2dyb3VwaW5nKE9pZCBy ZWxpZCwKIAkJCQkJCQkJCSAgSW5kZXggdmFybm8sIEluZGV4IHZhcmxldmVsc3VwLApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggMzQ2NzQ2ODZhZDMuLjU3MzQ3ZWMyNjBlIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTM5NjAsNiArMzk2MCwyOCBAQAogICBw cm9yZXR0eXBlID0+ICd0cmlnZ2VyJywgcHJvYXJndHlwZXMgPT4gJycsCiAgIHByb3NyYyA9 PiAnUklfRktleV9ub2FjdGlvbl91cGQnIH0sCiAKKyMgVGVtcG9yYWwgcmVmZXJlbnRpYWwg aW50ZWdyaXR5IGNvbnN0cmFpbnQgdHJpZ2dlcnMKK3sgb2lkID0+ICc2MTI0JywgZGVzY3Ig PT4gJ3RlbXBvcmFsIHJlZmVyZW50aWFsIGludGVncml0eSBPTiBERUxFVEUgQ0FTQ0FERScs CisgIHByb25hbWUgPT4gJ1JJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVfZGVsJywgcHJvdm9sYXRp bGUgPT4gJ3YnLCBwcm9yZXR0eXBlID0+ICd0cmlnZ2VyJywKKyAgcHJvYXJndHlwZXMgPT4g JycsIHByb3NyYyA9PiAnUklfRktleV9wZXJpb2RfY2FzY2FkZV9kZWwnIH0sCit7IG9pZCA9 PiAnNjEyNScsIGRlc2NyID0+ICd0ZW1wb3JhbCByZWZlcmVudGlhbCBpbnRlZ3JpdHkgT04g VVBEQVRFIENBU0NBREUnLAorICBwcm9uYW1lID0+ICdSSV9GS2V5X3BlcmlvZF9jYXNjYWRl X3VwZCcsIHByb3ZvbGF0aWxlID0+ICd2JywgcHJvcmV0dHlwZSA9PiAndHJpZ2dlcicsCisg IHByb2FyZ3R5cGVzID0+ICcnLCBwcm9zcmMgPT4gJ1JJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVf dXBkJyB9LAoreyBvaWQgPT4gJzYxMjgnLCBkZXNjciA9PiAndGVtcG9yYWwgcmVmZXJlbnRp YWwgaW50ZWdyaXR5IE9OIERFTEVURSBTRVQgTlVMTCcsCisgIHByb25hbWUgPT4gJ1JJX0ZL ZXlfcGVyaW9kX3NldG51bGxfZGVsJywgcHJvdm9sYXRpbGUgPT4gJ3YnLCBwcm9yZXR0eXBl ID0+ICd0cmlnZ2VyJywKKyAgcHJvYXJndHlwZXMgPT4gJycsIHByb3NyYyA9PiAnUklfRktl eV9wZXJpb2Rfc2V0bnVsbF9kZWwnIH0sCit7IG9pZCA9PiAnNjEyOScsIGRlc2NyID0+ICd0 ZW1wb3JhbCByZWZlcmVudGlhbCBpbnRlZ3JpdHkgT04gVVBEQVRFIFNFVCBOVUxMJywKKyAg cHJvbmFtZSA9PiAnUklfRktleV9wZXJpb2Rfc2V0bnVsbF91cGQnLCBwcm92b2xhdGlsZSA9 PiAndicsIHByb3JldHR5cGUgPT4gJ3RyaWdnZXInLAorICBwcm9hcmd0eXBlcyA9PiAnJywg cHJvc3JjID0+ICdSSV9GS2V5X3BlcmlvZF9zZXRudWxsX3VwZCcgfSwKK3sgb2lkID0+ICc2 MTMwJywgZGVzY3IgPT4gJ3RlbXBvcmFsIHJlZmVyZW50aWFsIGludGVncml0eSBPTiBERUxF VEUgU0VUIERFRkFVTFQnLAorICBwcm9uYW1lID0+ICdSSV9GS2V5X3BlcmlvZF9zZXRkZWZh dWx0X2RlbCcsIHByb3ZvbGF0aWxlID0+ICd2JywKKyAgcHJvcmV0dHlwZSA9PiAndHJpZ2dl cicsIHByb2FyZ3R5cGVzID0+ICcnLAorICBwcm9zcmMgPT4gJ1JJX0ZLZXlfcGVyaW9kX3Nl dGRlZmF1bHRfZGVsJyB9LAoreyBvaWQgPT4gJzYxMzEnLCBkZXNjciA9PiAndGVtcG9yYWwg cmVmZXJlbnRpYWwgaW50ZWdyaXR5IE9OIFVQREFURSBTRVQgREVGQVVMVCcsCisgIHByb25h bWUgPT4gJ1JJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfdXBkJywgcHJvdm9sYXRpbGUgPT4g J3YnLAorICBwcm9yZXR0eXBlID0+ICd0cmlnZ2VyJywgcHJvYXJndHlwZXMgPT4gJycsCisg IHByb3NyYyA9PiAnUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF91cGQnIH0sCisKIHsgb2lk ID0+ICcxNjY2JywKICAgcHJvbmFtZSA9PiAndmFyYml0ZXEnLCBwcm9sZWFrcHJvb2YgPT4g J3QnLCBwcm9yZXR0eXBlID0+ICdib29sJywKICAgcHJvYXJndHlwZXMgPT4gJ3ZhcmJpdCB2 YXJiaXQnLCBwcm9zcmMgPT4gJ2JpdGVxJyB9LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9idHJlZV9pbmRleC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2J0cmVlX2luZGV4Lm91dAppbmRleCA1MTA2NDZjYmNlNy4uNTc5NjMzM2Y0ZjAgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnRyZWVfaW5kZXgub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnRyZWVfaW5kZXgub3V0CkBAIC0yNTgs MTQgKzI1OCwxNyBAQCBzZWxlY3QgcHJvbmFtZSBmcm9tIHBnX3Byb2Mgd2hlcmUgcHJvbmFt ZSBsaWtlIEUnUklcXF9GS2V5JWRlbCcgb3JkZXIgYnkgMTsKICgzIHJvd3MpCiAKIHNlbGVj dCBwcm9uYW1lIGZyb20gcGdfcHJvYyB3aGVyZSBwcm9uYW1lIGxpa2UgRSdSSVxcX0ZLZXkl ZGVsJyBvcmRlciBieSAxOwotICAgICAgICBwcm9uYW1lICAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIHByb25hbWUgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBSSV9GS2V5X2Nhc2NhZGVfZGVsCiAgUklf RktleV9ub2FjdGlvbl9kZWwKKyBSSV9GS2V5X3BlcmlvZF9jYXNjYWRlX2RlbAorIFJJX0ZL ZXlfcGVyaW9kX3NldGRlZmF1bHRfZGVsCisgUklfRktleV9wZXJpb2Rfc2V0bnVsbF9kZWwK ICBSSV9GS2V5X3Jlc3RyaWN0X2RlbAogIFJJX0ZLZXlfc2V0ZGVmYXVsdF9kZWwKICBSSV9G S2V5X3NldG51bGxfZGVsCi0oNSByb3dzKQorKDggcm93cykKIAogZXhwbGFpbiAoY29zdHMg b2ZmKQogc2VsZWN0IHByb25hbWUgZnJvbSBwZ19wcm9jIHdoZXJlIHByb25hbWUgaWxpa2Ug JzAwJWZvbycgb3JkZXIgYnkgMTsKQEAgLTMwNCwxNCArMzA3LDE3IEBAIHNlbGVjdCBwcm9u YW1lIGZyb20gcGdfcHJvYyB3aGVyZSBwcm9uYW1lIGxpa2UgRSdSSVxcX0ZLZXklZGVsJyBv cmRlciBieSAxOwogKDYgcm93cykKIAogc2VsZWN0IHByb25hbWUgZnJvbSBwZ19wcm9jIHdo ZXJlIHByb25hbWUgbGlrZSBFJ1JJXFxfRktleSVkZWwnIG9yZGVyIGJ5IDE7Ci0gICAgICAg IHByb25hbWUgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgcHJvbmFtZSAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogIFJJX0ZLZXlfY2FzY2FkZV9kZWwKICBSSV9GS2V5X25vYWN0aW9uX2RlbAorIFJJX0ZL ZXlfcGVyaW9kX2Nhc2NhZGVfZGVsCisgUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF9kZWwK KyBSSV9GS2V5X3BlcmlvZF9zZXRudWxsX2RlbAogIFJJX0ZLZXlfcmVzdHJpY3RfZGVsCiAg UklfRktleV9zZXRkZWZhdWx0X2RlbAogIFJJX0ZLZXlfc2V0bnVsbF9kZWwKLSg1IHJvd3Mp CisoOCByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpCiBzZWxlY3QgcHJvbmFtZSBmcm9t IHBnX3Byb2Mgd2hlcmUgcHJvbmFtZSBpbGlrZSAnMDAlZm9vJyBvcmRlciBieSAxOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKaW5k ZXggOTAyNTk0ZWY0YjguLmJiZDIyMmRiMzYxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKQEAgLTIsNyArMiw3IEBACiAtLQog LS0gV2UgbGVhdmUgYmVoaW5kIHNldmVyYWwgdGFibGVzIHRvIHRlc3QgcGdfZHVtcCBldGM6 CiAtLSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX3JuZzIsCi0tLSB0ZW1wb3JhbF9ma19ybmcy cm5nLgorLS0gdGVtcG9yYWxfZmtfcm5nMnJuZywgdGVtcG9yYWxfZmsyX3JuZzJybmcuCiBT RVQgZGF0ZXN0eWxlIFRPIElTTywgWU1EOwogLS0KIC0tIHRlc3QgaW5wdXQgcGFyc2VyCkBA IC0xNjIyLDYgKzE2MjIsMjEgQEAgU0VUIGlkID0gJ1s3LDgpJwogV0hFUkUgaWQgPSAnWzUs NiknOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmci IHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdf ZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwg dmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJl ZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCist LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbNSw2KSB8IFsyMDE2LTAyLTAx LDIwMTYtMDMtMDEpCisgWzUsNikgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKQorIFs1LDYp IHwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkKKyBbNyw4KSB8IFsyMDE4LTAxLTAyLDIwMTgt MDEtMDMpCisoNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcg V0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8 ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCBbMjAxOC0wMS0wNSwy MDE4LTAxLTEwKSB8IFs1LDYpCisoMSByb3cpCisKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmpl Y3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CiBERUxF VEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIFVQREFU RSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywg JzIwMTYtMDItMDEnKQpAQCAtMTY3NSw2ICsxNjkwLDIxIEBAIFNFVCBpZCA9ICdbNyw4KScK IFdIRVJFIGlkID0gJ1s1LDYpJzsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJs ZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1w b3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKIERF VEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDIt MDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJy bmciLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2KScs ICdbNyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzUs NikgfCBbMjAxNi0wMi0wMSwyMDE2LTAzLTAxKQorIFs1LDYpIHwgWzIwMTgtMDEtMDEsMjAx OC0wMS0wMikKKyBbNSw2KSB8IFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpCisgWzcsOCkgfCBb MjAxOC0wMS0wMiwyMDE4LTAxLTAzKQorKDQgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19ybmcycm5nIFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAK Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFszLDQp IHwgWzIwMTgtMDEtMDUsMjAxOC0wMS0xMCkgfCBbNSw2KQorKDEgcm93KQorCiAtLSB0aGVu IGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRl IHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMyw0KSc7CiBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5n ZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKQEAgLTE3MjEsMTIgKzE3NTEsMjIgQEAg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEt MTAnCiBXSEVSRSBpZCA9ICdbNSw2KSc7CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24g dGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAi dGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmci CiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4 LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19y bmcycm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUs NiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAg dmFsaWRfYXQgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFs1LDYpIHwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wMikKKyBbNSw2KSB8IFsyMDE4LTAxLTAz LDIwMTgtMDItMDEpCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg aWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCBbMjAxOC0w MS0wNSwyMDE4LTAxLTEwKSB8IFs1LDYpCisoMSByb3cpCisKIC0tIHRoZW4gZGVsZXRlIHRo ZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6 CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsK IERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKLS0tIGNsZWFu IHVwOgotREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQg PSAnWzUsNiknOwotREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIElOICgnWzUs NiknKTsKIC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVAogLS0K QEAgLTE3NjUsMzkgKzE4MDUsMjA2IEBAIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJwogV0hFUkUgaWQgPSAnWzUsNiknOwogRVJS T1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVz IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRh YmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQg ZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCistLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbNSw2KSB8IFsyMDE4LTAxLTAxLDIwMTgtMDEt MDIpCisgWzUsNikgfCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKQorKDIgcm93cykKKworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkIGluICgnWzMsNCknKSBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFszLDQpIHwgWzIwMTgtMDEtMDUsMjAxOC0wMS0xMCkgfCBbNSw2KQorKDEg cm93KQorCiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhl IHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5n MnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJyk7Ci0tLSBjbGVhbiB1cDoKLURFTEVURSBGUk9NIHRlbXBvcmFsX2Zr X3JuZzJybmcgV0hFUkUgcGFyZW50X2lkID0gJ1s1LDYpJzsKLURFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCBJTiAoJ1s1LDYpJyk7CiAtLQotLS0gdGVzdCBPTiBVUERBVEUv REVMRVRFIG9wdGlvbnMKKy0tIHJuZzJybmcgdGVzdCBPTiBVUERBVEUvREVMRVRFIG9wdGlv bnMKKy0tCistLSBUT0M6CistLSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0gcmVm ZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVM TAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLSByZWZlcmVuY2VkIHVwZGF0 ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAorLS0g cmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVy ZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2Vk IHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVs ZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVz IFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tIHJlZmVy ZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJl bmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQg c3Vic2V0KQogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0t CitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CiBJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKLUlOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNCw1 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbNiw3KScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwog CURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAogCUFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKIAkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQogCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZwogCQlPTiBERUxF VEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQgT04g VVBEQVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QK Ky0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScg U0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJl bnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KQorIFsx MDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzcsOCkKKyBbMTAwLDEwMSkg fCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24t RlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVS RSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIw MTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNyw4KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAx LDIwMjAtMDEtMDEpIHwgWzcsOCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKSB8IFs3LDgpCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQg cm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg ZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgn WzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4 LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlk ID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwg WzksMTApCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KQor KDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUK Ky0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYs NyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9y YWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcy MDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KQorIFsxMDAsMTAx KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5v bi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2F0IHwgcGFy ZW50X2lkIAorLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisoMCByb3dzKQorCistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Ju ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRh dGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIw MCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZh bGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAy MS0wMS0wMSkgfCBbOCw5KQorKDEgcm93KQorCistLQogLS0gdGVzdCBGSyByZWZlcmVuY2Vk IHVwZGF0ZXMgU0VUIE5VTEwKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOSwxMCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbOSwxMCknKTsKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcs IHRlbXBvcmFsX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrX3JuZzJybmcKIAlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywK IAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCiAJCUZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKIAkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9y bmcKIAkJT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKLUVSUk9SOiAg dW5zdXBwb3J0ZWQgT04gVVBEQVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWlu dCB1c2luZyBQRVJJT0QKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRl bXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBU TyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0w MSkgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgCisg WzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMgcm93cykK KworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdb Nyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19y bmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgCisgWzEwMCwxMDEpIHwgWzIwMTkt MDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKSB8IAorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVy YW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAs MjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScp OworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdb OCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFsy MDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisK Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0KK1RSVU5D QVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf cm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEn IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBp ZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkg fCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTkt MDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJl bnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCAKKyBbMTAwLDEw MSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVy ZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4 LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzgs OSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBw YXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMjAw LDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpCisoMiByb3dzKQorCist LQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CiBJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsIGRhdGVyYW5n ZShudWxsLCBudWxsKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1sxMiwxMyknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOwogQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcm5nMnJuZwogICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxU ICdbLTEsLTFdJywKIAlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywK QEAgLTE4MDUsNyArMjAxMiw0MzIgQEAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJu ZwogCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCVJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nCiAJCU9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUg U0VUIERFRkFVTFQ7Ci1FUlJPUjogIHVuc3VwcG9ydGVkIE9OIFVQREFURSBhY3Rpb24gZm9y IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw4KScg V0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8 IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBE QVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAx LTAxKSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwg Wy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbLTEsMCkK KygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIw MjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK1VQREFU RSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRf aWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkKKyBbMjAw LDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpCisoMiByb3dzKQorCist LQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsIGRhdGVyYW5n ZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVz OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0w MSkgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0x LDApCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMg cm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcg V0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8 IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMTkt MDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKSB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZl cmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JyksICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4 LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwg cGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDAp CisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KQorKDIgcm93 cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBz Y2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJf cm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9h dCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3 KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIs IFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisJCU9OIERF TEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw4KScgV0hF UkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lk MiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwg WzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0w MSkgfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1 cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBp ZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAg fCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNyw4 KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8 IFs3LDgpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEt MDEpIHwgWzcsOCkgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2Uo JzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdb OSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQg PSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzksMTApICAg ICB8IFs4LDkpCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5 KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQg ZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9y YWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVz OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwx MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcp CisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAgICAgIHwg WzYsNykKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVt cG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyBpZCB8IHZhbGlkX2F0IHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorKDAgcm93cykKKworLS0g RksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkp JywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEn OjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAg ICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KSAgICAg IHwgWzgsOSkKKygxIHJvdykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVz IFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5n MiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp LCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5n CisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAorCUFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRf aWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9y YWxfcm5nMgorCQlPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VU IGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJl bnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAx LTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIw MTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgWzIw MjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisK Ky0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdb Nyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwg cGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTkt MDEtMDEpIHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAt MDEtMDEpIHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpIHwgICAgICAgICAgICB8IAorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byBy ZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEs IGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcy MDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJf cm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMg KCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAn WzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzks MTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6 OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0g J1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAg fCAKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAg fCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVz IFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5n MiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp LCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVM RVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEw MCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgCisgWzEw MCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykK KygzIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxf cm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBw YXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0w MS0wMSkgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0w MS0wMSkgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSkgfCAgICAgICAgICAgIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwg aWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIw MjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdb OCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEg PSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkg fCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMjAwLDIwMSkg fCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93 cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28g c2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9y bmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JyksICdbNiw3KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0 IHRoZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcK KwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisJQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9p ZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmcyCisJCU9OIERFTEVURSBTRVQgTlVMTCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQg TlVMTDsKK0VSUk9SOiAgY29sdW1uICJ2YWxpZF9hdCIgcmVmZXJlbmNlZCBpbiBPTiBERUxF VEUgU0VUIGFjdGlvbiBjYW5ub3QgYmUgUEVSSU9ECistLSBvazoKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrMl9ybmcycm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcy cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisJCUZP UkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJ CVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorCQlPTiBERUxFVEUgU0VUIE5VTEwgKHBhcmVu dF9pZDEpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVz OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwx MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcp CisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwg WzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAg ICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0w MS0wMSwyMDE5LTAxLTAxKSB8ICAgICAgICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsy MDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAgICB8IFs2LDcpCisgWzEwMCwxMDEp IHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCAgICAgICAgICAgIHwgWzYsNykKKygzIHJv d3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdb OCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lk MiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwg ICAgICAgICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSkgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RS VU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFd JywgJ1stMSwtMV0nLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9mazJfcm5nMnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAn Wy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNFVCBERUZBVUxUICdbLTEs LTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisJQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBh cmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0 ZW1wb3JhbF9ybmcyCisJCU9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERF RkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9y bmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIw LTAxLTAxJyBTRVQgaWQxID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAg ICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAg IHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSww KSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8 IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitV UERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgpJyBX SEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBp ZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRf aWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkg fCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0w MS0wMSkgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWy0xLDApCisoMyByb3dzKQorCistLSBGSyBh Y3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBk YXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VU IGlkMSA9ICdbOSwxMCknLCBpZDIgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50 X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0w MSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCBbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2Nh bGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3Ju ZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQp IFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0w MScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Ju ZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFy ZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEt MDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAy MC0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5v bi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAg ICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbLTEsMCkgICAg IHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEs MCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkg fCBbLTEsMCkgICAgIHwgWy0xLDApCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwg aWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIw MjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdb OCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEg PSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkg fCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMjAw LDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5KQor KDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZB VUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKy0tCitUUlVOQ0FU RSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdb Niw3KScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0 IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcy cm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywK KwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisJQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9p ZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmcyCisJCU9OIERFTEVURSBTRVQgREVGQVVMVCAodmFsaWRfYXQpIE9OIFVQREFURSBT RVQgREVGQVVMVDsKK0VSUk9SOiAgY29sdW1uICJ2YWxpZF9hdCIgcmVmZXJlbmNlZCBpbiBP TiBERUxFVEUgU0VUIGFjdGlvbiBjYW5ub3QgYmUgUEVSSU9ECistLSBvazoKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNF VCBERUZBVUxUICdbLTEsLTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3Ju ZzJybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKwkJ Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkK KwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisJCU9OIERFTEVURSBTRVQgREVGQVVMVCAo cGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJv dGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAg ICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAg IHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSww KSAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwg WzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8 IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWy0xLDApICAgICB8IFs2LDcpCisgWzEwMCwx MDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWzYsNykKKyBb MTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbNiw3 KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4 LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEt MDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQp IFZBTFVFUyAoJ1stMSwtMV0nLCAnWzgsOSknLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lk MiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwg Wy0xLDApICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSkgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKIC0tCiAtLSB0ZXN0IEZPUkVJ R04gS0VZLCBtdWx0aXJhbmdlIHJlZmVyZW5jZXMgbXVsdGlyYW5nZQogLS0KQEAgLTIxMjUs NiArMjc1NywyMiBAQCBVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScK IFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIEVSUk9SOiAgdXBkYXRlIG9y IGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAi dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0 KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5j ZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLSBjaGFuZ2lu ZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRFIHRlbXBvcmFsX21sdHJu ZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMicsICcyMDE4LTAxLTAzJykpKQorU0VUIGlkID0gJ1s3LDgpJworV0hFUkUg aWQgPSAnWzUsNiknOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUg dGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSkpCitTRVQgaWQgPSAn WzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUg b24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3Ry YWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayIgb24gdGFibGUgInRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYp LCB7WzIwMTgtMDEtMDEsMjAxOC0wMS0wMiksWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSl9KSBp cyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmciLgorLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBz YW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcgV0hFUkUgaWQgPSAnWzMsNCknOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBT RVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAn MjAxNi0wMi0wMScpKQorV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwogLS0K IC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFJFU1RSSUNUCiAtLQpAQCAtMjE2Miw2 ICsyODEwLDIyIEBAIFVQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJwog V0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwogRVJST1I6ICB1cGRhdGUgb3Ig ZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5 IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNl ZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIGNoYW5naW5n IGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5n CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBp ZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0 ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSkKK1NFVCBpZCA9ICdb Nyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBv biB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJh aW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiks IHtbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKSxbMjAxOC0wMS0wMywyMDE4LTAyLTAxKX0pIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyIuCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNh bWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNF VCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcy MDE2LTAyLTAxJykpCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CiAtLQog LS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCiAtLQpAQCAtMjE5NCw2 ICsyODU4LDE5IEBAIEJFR0lOOwogQ09NTUlUOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRl IG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2 KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9t IHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIGRlbGV0aW5nIGFuIHVu cmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDInLCAnMjAxOC0wMS0wMycpKSkKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRl bGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5n CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSkpCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJP UjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0 ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19m ayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciCitERVRBSUw6ICBLZXkg KGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMS0wMiksWzIwMTgt MDEtMDMsMjAxOC0wMi0wMSl9KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgorLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGlu ZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzMsNCknOworREVM RVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRf YXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpKTsKIC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVAogLS0K QEAgLTIyMjIsNiArMjg5OSw2MzggQEAgQkVHSU47CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxl dGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29u c3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayIgb24gdGFibGUgInRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1 LDYpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSl9KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZy b20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgogUk9MTEJBQ0s7CistLSBk ZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVt cG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitXSEVSRSBpZCA9ICdb NSw2KSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRl bXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpKQorV0hFUkUgaWQgPSAn WzUsNiknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9t bHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgor REVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgt MDEtMDIpLFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBm cm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIHRoZW4gZGVsZXRl IHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2Vl ZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1szLDQpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2 KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKSk7CistLQorLS0gbWx0cm5nMm1sdHJuZyB0ZXN0IE9OIFVQREFU RS9ERUxFVEUgb3B0aW9ucworLS0KKy0tIFRPQzoKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBD QVNDQURFCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCB1 cGRhdGVzIFNFVCBOVUxMCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNF VCBERUZBVUxUCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBj b2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykK Ky0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0g cmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZl cmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vi c2V0KQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNv bHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29s cykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xz LCBTRVQgREVGQVVMVCBzdWJzZXQpCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0 ZXMgQ0FTQ0FERQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSwgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJ RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmssCisJQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0 cm5nCisJCU9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAn MjAyMC0wMS0wMScpKSkgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAg ICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5 LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KQorIFsxMDAsMTAxKSB8 IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBb Nyw4KQorKDIgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxf bWx0cm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAg ICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSks WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzcsOCkKKyBbMTAwLDEwMSkgfCB7WzIwMTkt MDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzcsOCkKKygy IHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4 LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEt MDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK1VQ REFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgs OSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAg ICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAx KX0gfCBbOSwxMCkKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwg WzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBD QVNDQURFCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAn WzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVt cG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJl bnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEt MDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKygxIHJv dykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcg V0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor IGlkIHwgdmFsaWRfYXQgfCBwYXJlbnRfaWQgCistLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKygwIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSkn KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5E IHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwg cGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4 LDkpCisoMSByb3cpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQg TlVMTAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2 LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmssCisJQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisJ CU9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMg b24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIw LTAxLTAxJykpKSBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEt MDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1sy MDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IAorKDIg cm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNF VCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRf YXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSl9IHwgCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEt MDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IAorKDIgcm93cykKKworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJu ZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzIwMCwyMDEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IAorIFsyMDAsMjAxKSB8 IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLQorVFJVTkNBVEUgdGVt cG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBv biBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAn MjAyMC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRf YXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAy MC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisoMiByb3dzKQorCistLSBu b24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAx OC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCAKKyBbMTAw LDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgCisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAx LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4 LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSkn IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAg ICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0g fCAKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkKKygy IHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVM VAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbLTEsLTFdJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworICBBTFRFUiBDT0xVTU4g cGFyZW50X2lkIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcKKwkJT04gREVMRVRFIFNF VCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAg dmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIw MjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEt MDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApCisoMiBy b3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VU IGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9h dCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0w MSwyMDIxLTAxLTAxKX0gfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAy MC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQor CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVt cG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBw YXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWy0x LDApCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpCiso MiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFV TFQKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWy0xLC0xXScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsK Ky0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0 cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAg ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0w MS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7 WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0x LDApCisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBv cmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAg ICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKX0gfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0w MS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQorCist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAs MjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbLTEsMCkKKyBbMjAwLDIwMSkg fCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMp CistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lk MikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisJ CU9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9u IGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAt MDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAg ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwg cGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEw MCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEt MDEpfSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwy MDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbNyw4KSAgICAgIHwgWzYs NykKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX21s dHJuZzIgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAg ICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJl bnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEw MSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9 IHwgWzcsOCkgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAt MDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFs3LDgpICAgICAgfCBbNiw3KQor KDIgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4 LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsK K1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIFNFVCBpZDEgPSAnWzksMTApJyBXSEVSRSBpZDEg PSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRf YXQgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg WzIwMCwyMDEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IFs5LDEwKSAgICAgfCBb OCw5KQorIFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KSAg ICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVs ZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxf bWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2 LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSks ICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hF UkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAg ICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0w MSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykgICAgICB8IFs2LDcpCisoMSBy b3cpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5n MiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyBpZCB8IHZhbGlkX2F0IHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorKDAgcm93cykKKworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTkt MDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBp ZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVu dF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKX0gfCBbOCw5KSAgICAgIHwgWzgsOSkKKygxIHJvdykKKworLS0KKy0tIHRlc3QgRksg cmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJV TkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9y YWxfZmsyX21sdHJuZzJtbHRybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklP RCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisJCU9OIERFTEVU RSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBz aWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScp KSkgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAg ICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRf aWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkg fCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwg WzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEt MDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKygyIHJvd3Mp CisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgU0VUIGlk MSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9h dCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgt MDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgICAgICAgICAg ICB8IAorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisoMiByb3dzKQorCistLSBGSyBhY3Jv c3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJu ZzIgU0VUIGlkMSA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEt MDEsMjAyMC0wMS0wMSl9IHwgICAgICAgICAgICB8IAorIFsyMDAsMjAxKSB8IHtbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0t CistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBj b2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5 LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAg ICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFy ZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwx MDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEp fSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIw LTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisoMiBy b3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJu ZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAg ICAgICAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAx OS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgICAgICAgICAgICB8IAorIFsx MDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgCisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg J1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBX SEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8ICAgICAg ICAgICAgfCAKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgs OSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQor LS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZhaWxzIGJl Y2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQ RVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorCQlPTiBE RUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIE5VTEw7CitFUlJPUjog IGNvbHVtbiAidmFsaWRfYXQiIHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24g Y2Fubm90IGJlIFBFUklPRAorLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu Z19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19mawor CQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0 KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIKKwkJT04gREVMRVRFIFNFVCBOVUxM IChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIw LTAxLTAxJykpKSBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0w MS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KSAgICAg IHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8IFs2LDcpCisoMiByb3dzKQorCist LSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUg aWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAg ICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSks WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgICAgICAgICAgICB8IFs2LDcpCisgWzEwMCwx MDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCBbNiw3KQorKDIgcm93cykKKworLS0gRksgYWNyb3NzIHR3byBy ZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs ICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAx KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIg V0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIFsyMDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCAgICAg ICAgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9 IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZl cmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWy0xLC0xXScsICdbLTEsLTFdJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGws IG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50 X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVu dF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lk MiBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQ RVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorCQlPTiBE RUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIw MjAtMDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlk MSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAg ICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsy MDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAx KSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAg fCBbLTEsMCkgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToK K1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcs OCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAg ICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIw MTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFstMSwwKSAgICAgfCBbLTEs MCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgWy0xLDApICAgICB8IFstMSwwKQorKDIgcm93cykKKworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9t bHRybmcyIFNFVCBpZDEgPSAnWzksMTApJywgaWQyID0gJ1s5LDEwKScgV0hFUkUgaWQxID0g J1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsy MDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbLTEsMCkgICAgIHwgWy0x LDApCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpICAg ICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxl dGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9y YWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0n LCAnWy0xLC0xXScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBi b3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIw MjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRf YXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4 LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpICAg ICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAg ICAgICAgICAgICAgICAgICAgICAgfCBbLTEsMCkgICAgIHwgWy0xLDApCisoMiByb3dzKQor CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hF UkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAg ICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0w MSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWy0xLDApICAgICB8IFstMSwwKQorIFsx MDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAg ICAgICAgfCBbLTEsMCkgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBGSyBhY3Jvc3Mg dHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4 LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywg JzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIw MCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0 cm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6 OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8 IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0w MS0wMSl9IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VU IERFRkFVTFQgc3Vic2V0KQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAo aWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s2LDcpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdb Niw3KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQ RVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcK KyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorCURS T1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKwlBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAo cGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VT IHRlbXBvcmFsX21sdHJuZzIKKwkJT04gREVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkg T04gVVBEQVRFIFNFVCBERUZBVUxUOworRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZl cmVuY2VkIGluIE9OIERFTEVURSBTRVQgYWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9r OgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09M VU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorCURST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwg cGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21s dHJuZzIKKwkJT04gREVMRVRFIFNFVCBERUZBVUxUIChwYXJlbnRfaWQxKSBPTiBVUERBVEUg U0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAg IHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkg fCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwg Wy0xLDApICAgICB8IFs2LDcpCisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RF TEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwx MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAg ICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZDEgfCBw YXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAw LDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSl9IHwgWy0xLDApICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIw MjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFstMSwwKSAgICAgfCBbNiw3 KQorKDIgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0x LC0xXScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5 KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEg PSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRf YXQgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg WzIwMCwyMDEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IFstMSwwKSAgICAgfCBb OCw5KQorIFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KSAg ICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tIEZLIHdpdGggYSBjdXN0b20gcmFuZ2UgdHlw ZQorQ1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uoc3VidHlwZT1kYXRlKTsKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQg bXlkYXRlcmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfZmszX3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBteWRhdGVy YW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmsz X3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrM19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcz IChpZCwgUEVSSU9EIHZhbGlkX2F0KSBPTiBERUxFVEUgQ0FTQ0FERQorKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBteWRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmszX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb NSw2KScsIG15ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkp Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmczIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbOCw5KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrM19ybmcycm5nIFdIRVJFIGlkID0gJ1s1LDYp JzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzUsNikgfCBb MjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs4LDkpCisgWzUsNikgfCBbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKSB8IFs4LDkpCisoMiByb3dzKQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX2Zr M19ybmcycm5nOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOworRFJPUCBUWVBFIG15ZGF0 ZXJhbmdlOwogLS0KIC0tIEZLIGJldHdlZW4gcGFydGl0aW9uZWQgdGFibGVzCiAtLQpAQCAt MjIzMSw4ICszNTQwLDggQEAgQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyAoCiAgIG5hbWUgdGV4dCwKIAlDT05TVFJBSU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfcm5n X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKICkgUEFS VElUSU9OIEJZIExJU1QgKGlkKTsKLUNSRUFURSBUQUJMRSB0cDEgcGFydGl0aW9uIE9GIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCkn LCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknKTsKLUNSRUFURSBUQUJM RSB0cDIgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgVkFMVUVT IElOICgnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAnWzEwLDExKScsICdb MTIsMTMpJyk7CitDUkVBVEUgVEFCTEUgdHAxIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywg J1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdb MTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMsMjQpJyk7CitDUkVBVEUgVEFC TEUgdHAyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVF UyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sx MCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwxNyknLCAnWzE4LDE5KScsICdb MjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1KScpOwogSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQsIG5hbWUpIFZBTFVFUwogICAoJ1sxLDIp JywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMDEnKSwgJ29uZScpLAogICAo J1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAyLTAxJywgJzIwMDAtMDMtMDEnKSwgJ29uZScp LApAQCAtMjI0NSw4ICszNTU0LDggQEAgQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgKAogCUNPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAJ CVJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgUEVSSU9EIHZhbGlk X2F0KQogKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOwotQ1JFQVRFIFRBQkxFIHRma3AxIHBh cnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMg SU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzEx LDEyKScpOwotQ1JFQVRFIFRBQkxFIHRma3AyIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMiwzKScsICdbNCw1KScsICdb Niw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknKTsKK0NSRUFURSBUQUJMRSB0 ZmtwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1Ig VkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTAp JywgJ1sxMSwxMiknLCAnWzEzLDE0KScsICdbMTUsMTYpJywgJ1sxNywxOCknLCAnWzE5LDIw KScsICdbMjEsMjIpJywgJ1syMywyNCknKTsKK0NSRUFURSBUQUJMRSB0ZmtwMiBQQVJUSVRJ T04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgn WzAsMSknLCAnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAnWzEwLDExKScs ICdbMTIsMTMpJywgJ1sxNCwxNSknLCAnWzE2LDE3KScsICdbMTgsMTkpJywgJ1syMCwyMSkn LCAnWzIyLDIzKScsICdbMjQsMjUpJyk7CiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJl bmNpbmcgaW5zZXJ0cwogLS0KQEAgLTIyODgsNyArMzU5Nyw3IEBAIFVQREFURSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAyLTAx JywgJzIwMTYtMDMtCiAtLSBzaG91bGQgZmFpbDoKIFVQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYt MDItMDEnKQogICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKLUVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0 ZSBvbiB0YWJsZSAidHAxIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX3BhcmVudF9pZF92YWxpZF9hdF9ma2V5IiBv biB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIKK0VSUk9SOiAgdXBk YXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidHAxIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25z dHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX3BhcmVudF9pZF92YWxp ZF9hdF9ma2V5MSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmci CiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4 LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nIi4KIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2Vk IGRlbGV0ZXMgTk8gQUNUSU9OCkBAIC0yMzAwLDcgKzM2MDksNyBAQCBJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWwogREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdI RVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEn LCAnMjAxOC0wMy0wMScpOwogLS0gc2hvdWxkIGZhaWw6CiBERUxFVEUgRlJPTSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7Ci1FUlJPUjogIHVwZGF0ZSBv ciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWlu dCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRf ZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciCitFUlJP UjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBr ZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRf aWRfdmFsaWRfYXRfZmtleTEiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEt MDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIuCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVm ZXJlbmNlZCB1cGRhdGVzIFJFU1RSSUNUCkBAIC0yMzIyLDcgKzM2MzEsNyBAQCBVUERBVEUg dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx Ni0wMi0wMScsICcyMDE2LTAzLQogLS0gc2hvdWxkIGZhaWw6CiBVUERBVEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScs ICcyMDE2LTAyLTAxJykKICAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7Ci1FUlJPUjogIHVwZGF0ZSBv ciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWlu dCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRf ZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciCitFUlJP UjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBr ZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRf aWRfdmFsaWRfYXRfZmtleTEiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEt MDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIuCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVm ZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCkBAIC0yMzM0LDQ4ICszNjQzLDIzNCBAQCBJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTICgnWwogREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIw MTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwogLS0gc2hvdWxkIGZhaWw6CiBERUxFVEUgRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7Ci1FUlJPUjog IHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRfaWRf dmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmciCitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu Z19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleTEiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwg WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJs ZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIuCiAtLQogLS0gcGFydGl0aW9u ZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKIC0tCitUUlVOQ0FURSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNCw1KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZwogCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nX2ZrLAogCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmdfZmsKIAkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQogCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZwogCQlPTiBE RUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQg T04gVVBEQVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJ T0QKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw4 KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s0LDUpJzsKKyAgaWQgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzQsNSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAx KSB8IFs3LDgpCisgWzQsNSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpCisg WzQsNSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMyByb3dzKQorCitV UERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUg aWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIFdIRVJFIGlkID0gJ1s0LDUpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAg ICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tCisgWzQsNSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgp CisgWzQsNSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs3LDgpCisgWzQsNSkgfCBb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs3LDgpCisoMyByb3dzKQorCitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE1 LDE2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1sxNSwxNiknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAsMTEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSwgJ1sxNSwxNiknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgU0VUIGlkID0gJ1sxNiwxNyknIFdIRVJFIGlkID0gJ1sxNSwxNiknIEFORCB2 YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwLDExKSc7CisgICBpZCAg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAsMTEpIHwgWzIwMTgt MDEtMDEsMjAyMC0wMS0wMSkgfCBbMTYsMTcpCisgWzEwLDExKSB8IFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpIHwgWzE1LDE2KQorKDIgcm93cykKKwogLS0KIC0tIHBhcnRpdGlvbmVkIEZL IHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAn MjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKyAgaWQgICB8 ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzUsNikgfCBbMjAxOC0wMS0wMSwy MDE5LTAxLTAxKSB8IFs4LDkpCisgWzUsNikgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8 IFs4LDkpCisoMiByb3dzKQorCitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKyBpZCB8IHZhbGlkX2F0IHwg cGFyZW50X2lkIAorLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisoMCByb3dzKQorCitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzE3LDE4KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1sxNywxOCknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTEsMTIpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxNywxOCknKTsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbMTcsMTgpJyBBTkQgdmFsaWRf YXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMSwxMiknOworICAgaWQgICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzExLDEyKSB8IFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpIHwgWzE3LDE4KQorKDEgcm93KQorCiAtLQogLS0gcGFydGl0aW9uZWQg RksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s5LDEwKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSwgJ1s5LDEwKScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZwogCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nX2ZrLAogCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmdfZmsKIAkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQogCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZwogCQlPTiBE RUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOwotRVJST1I6ICB1bnN1cHBvcnRl ZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBF UklPRAorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1sx MCwxMSknIFdIRVJFIGlkID0gJ1s5LDEwKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzYsNyknOworICBpZCAgIHwgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbNiw3KSB8IFsyMDE5LTAxLTAxLDIwMjAt MDEtMDEpIHwgCisgWzYsNykgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs5LDEwKQor IFs2LDcpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOSwxMCkKKygzIHJvd3MpCisK K1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1sxMCwxMSknIFdI RVJFIGlkID0gJ1s5LDEwKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzYsNyknOworICBpZCAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyBbNiw3KSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwg CisgWzYsNykgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IAorIFs2LDcpIHwgWzIwMjAt MDEtMDEsMjAyMS0wMS0wMSkgfCAKKygzIHJvd3MpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTgsMTkpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE4LDE5KScs IGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxMiwxMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzE4LDE5KScpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBT RVQgaWQgPSAnWzE5LDIwKScgV0hFUkUgaWQgPSAnWzE4LDE5KScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTIsMTMpJzsKKyAgIGlkICAgIHwgICAgICAg IHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMiwxMykgfCBbMjAxOC0wMS0wMSwyMDIw LTAxLTAxKSB8IAorIFsxMiwxMykgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFsxOCwx OSkKKygyIHJvd3MpCisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0 ZXMgU0VUIE5VTEwKIC0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzExLDEyKScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1s3LDgpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1sxMSwxMiknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScg V0hFUkUgaWQgPSAnWzExLDEyKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzcsOCknOworICBpZCAgIHwgICAgICAgIHZh bGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbNyw4KSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEp IHwgCisgWzcsOCkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFsxMSwxMikKKyBbNyw4 KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzExLDEyKQorKDMgcm93cykKKworREVM RVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1sxMSwxMikn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1s3LDgpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzcsOCkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFs3LDgpIHwgWzIwMTgt MDEtMDEsMjAxOS0wMS0wMSkgfCAKKyBbNyw4KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEp IHwgCisoMyByb3dzKQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIwLDIxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMCwyMSknLCBkYXRlcmFuZ2UoJzIwMjAt MDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTMs MTQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1syMCwyMSkn KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdb MjAsMjEpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMywx NCknOworICAgaWQgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAK Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEz LDE0KSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgCisgWzEzLDE0KSB8IFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpIHwgWzIwLDIxKQorKDIgcm93cykKKwogLS0KIC0tIHBhcnRpdGlv bmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAogLS0KK1RSVU5DQVRFIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbMCwxKScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEy LDEzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSwgJ1sxMiwxMyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcKLSAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAn Wy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQgU0VUIERFRkFVTFQgJ1swLDEp JywKIAlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19m aywKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2Zr CiAJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKIAkJUkVGRVJF TkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcKIAkJT04gREVMRVRFIFNFVCBERUZBVUxU IE9OIFVQREFURSBTRVQgREVGQVVMVDsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQgT04gVVBEQVRF IGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKK1VQREFU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVS RSBpZCA9ICdbMTIsMTMpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOCw5KSc7CisgIGlkICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLQorIFs4LDkpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBb MCwxKQorIFs4LDkpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbMTIsMTMpCisgWzgs OSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFsxMiwxMykKKygzIHJvd3MpCisKK1VQ REFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1sxMywxNCknIFdIRVJF IGlkID0gJ1sxMiwxMyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1s4LDkpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9h dCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgWzgsOSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFsw LDEpCisgWzgsOSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFswLDEpCisgWzgsOSkg fCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFswLDEpCisoMyByb3dzKQorCitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzIyLDIzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1syMiwyMyknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTQsMTUpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1syMiwyMyknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgU0VUIGlkID0gJ1syMywyNCknIFdIRVJFIGlkID0gJ1syMiwyMyknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CisgICBp ZCAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTQsMTUpIHwgWzIw MTgtMDEtMDEsMjAyMC0wMS0wMSkgfCBbMCwxKQorIFsxNCwxNSkgfCBbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKSB8IFsyMiwyMykKKygyIHJvd3MpCisKIC0tCiAtLSBwYXJ0aXRpb25lZCBG SyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKIC0tCitUUlVOQ0FURSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzAsMSknLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNCwxNSkn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbOSwxMCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzE0LDE1KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIw LTAxLTAxJyBXSEVSRSBpZCA9ICdbMTQsMTUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOSwxMCknOworICAgaWQgICB8 ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs5LDEwKSB8IFsyMDE5LTAxLTAx LDIwMjAtMDEtMDEpIHwgWzAsMSkKKyBbOSwxMCkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAx KSB8IFsxNCwxNSkKKyBbOSwxMCkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFsxNCwx NSkKKygzIHJvd3MpCisKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBX SEVSRSBpZCA9ICdbMTQsMTUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOSwxMCknOworICAgaWQgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs5LDEwKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEt MDEpIHwgWzAsMSkKKyBbOSwxMCkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFswLDEp CisgWzksMTApIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMCwxKQorKDMgcm93cykK KworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1syNCwyNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMjQsMjUpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzE1LDE2KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMjQsMjUpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzI0LDI1KScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTUsMTYpJzsKKyAgIGlkICAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxNSwxNikgfCBbMjAxOC0w MS0wMSwyMDIwLTAxLTAxKSB8IFswLDEpCisgWzE1LDE2KSB8IFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpIHwgWzI0LDI1KQorKDIgcm93cykKKwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmc7CiBSRVNFVCBkYXRlc3R5bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC93aXRob3V0X292ZXJsYXBzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRf b3ZlcmxhcHMuc3FsCmluZGV4IGRlNzE4NmFiNDU1Li5jODI0MWMyNzkyOSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKQEAgLTIsNyArMiw3IEBA CiAtLQogLS0gV2UgbGVhdmUgYmVoaW5kIHNldmVyYWwgdGFibGVzIHRvIHRlc3QgcGdfZHVt cCBldGM6CiAtLSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX3JuZzIsCi0tLSB0ZW1wb3JhbF9m a19ybmcycm5nLgorLS0gdGVtcG9yYWxfZmtfcm5nMnJuZywgdGVtcG9yYWxfZmsyX3JuZzJy bmcuCiAKIFNFVCBkYXRlc3R5bGUgVE8gSVNPLCBZTUQ7CiAKQEAgLTExOTQsNiArMTE5NCw4 IEBAIFVQREFURSB0ZW1wb3JhbF9ybmcKIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJwogU0VUIGlkID0gJ1s3LDgpJwogV0hFUkUg aWQgPSAnWzUsNiknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4g KCdbNSw2KScsICdbNyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkg aWQsIHZhbGlkX2F0OwogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQg YW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFs X2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwogVVBEQVRFIHRlbXBvcmFsX3JuZyBT RVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCkBA IC0xMjQzLDYgKzEyNDUsOCBAQCBVUERBVEUgdGVtcG9yYWxfcm5nCiBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKIFNFVCBpZCA9 ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdb Myw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmpl Y3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CiBERUxF VEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIFVQREFU RSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywg JzIwMTYtMDItMDEnKQpAQCAtMTI4NiwxMiArMTI5MCwxMSBAQCBXSEVSRSBpZCA9ICdbNSw2 KSc7CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJwogV0hFUkUgaWQgPSAnWzUsNikn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2KScsICdb Nyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf Zmtfcm5nMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OwogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1l IFBLIGRlbGV0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcg V0hFUkUgaWQgPSAnWzMsNCknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlk ID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpOwotLS0gY2xlYW4gdXA6Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcy cm5nIFdIRVJFIHBhcmVudF9pZCA9ICdbNSw2KSc7Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmcgV0hFUkUgaWQgSU4gKCdbNSw2KScpOwogCiAtLQogLS0gdGVzdCBGSyByZWZlcmVuY2Vk IGRlbGV0ZXMgUkVTVFJJQ1QKQEAgLTEzMjgsNDEgKzEzMzEsMTMxIEBAIFdIRVJFIGlkID0g J1s1LDYpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZwogRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCiBXSEVSRSBpZCA9ICdb NSw2KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDYp JywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19ybmcycm5nIFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhl IHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5n MnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJyk7Ci0tLSBjbGVhbiB1cDoKLURFTEVURSBGUk9NIHRlbXBvcmFsX2Zr X3JuZzJybmcgV0hFUkUgcGFyZW50X2lkID0gJ1s1LDYpJzsKLURFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCBJTiAoJ1s1LDYpJyk7CiAKIC0tCi0tLSB0ZXN0IE9OIFVQREFU RS9ERUxFVEUgb3B0aW9ucworLS0gcm5nMnJuZyB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0 aW9ucwogLS0KKy0tIFRPQzoKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLSBy ZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBO VUxMCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgdXBk YXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCist LSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVm ZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5j ZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBk ZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0 ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0gcmVm ZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZl cmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVy ZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVM VCBzdWJzZXQpCiAKKy0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURF CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CiBJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNykn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKLUlOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbNCw1KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3 KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbNiw3KScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5n MnJuZwogCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAogCUFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKIAkJRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZwogCQlP TiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBi b3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBX SEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24t RlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVS RSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jv c3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9 ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlk ID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxf cm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVy YW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAs MjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScp OworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworCistLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKLUlOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOSwxMCknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKLUlOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb Niw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOSwxMCkn KTsKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbNiw3KScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwogCURST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAogCUFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJybmdfZmsKIAkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQogCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZwogCQlPTiBERUxFVEUgU0VUIE5V TEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitV UERBVEUgdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgor VVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp LCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s5LDEwKScgV0hF UkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQg ZGVsZXRlcyBTRVQgTlVMTAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3Jh bF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVMRVRFIEZS T00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQogLS0g dGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tCisKK1RSVU5DQVRF IHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKIElOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgZGF0ZXJhbmdlKG51 bGwsIG51bGwpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMTIsMTMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpLCAnWzEyLDEzKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19ybmcycm5nCiAgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQgU0VUIERFRkFVTFQgJ1st MSwtMV0nLAogCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLApAQCAt MTM3MCw2ICsxNDYzLDI1MiBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAJ CUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKIAkJUkVGRVJFTkNF UyB0ZW1wb3JhbF9ybmcKIAkJT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQg REVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFs X3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAy MC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3Jh bF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdl KCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitV UERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERF RkFVTFQKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJu ZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb LTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJF IGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8g dXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAn WzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbOCw5KScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUg KHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBv cmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEw MCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcp JywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworCURST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfcm5nMnJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFy ZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIK KwkJT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMg b24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3 LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdb Nyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSkn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAn WzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFs X3JuZzIgU0VUIGlkMSA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2Nh bGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJf cm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9h dCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3 KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcy MDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBX SEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScs IGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50 X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6 ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAn WzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5D QVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdb Niw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9mazJfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJu Z19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworCQlGT1JF SUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlS RUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKwkJT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFU RSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBv cmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8g JzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUg dGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwy MDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywg J1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s5LDEwKScgV0hF UkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0 ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNykn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgor REVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAx LTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcy MDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkp Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5E IHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAo dHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLQorCitUUlVOQ0FURSB0ZW1w b3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2Fu J3Qgc2V0IHRoZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3Ju ZzJybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisJQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBh cmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0 ZW1wb3JhbF9ybmcyCisJCU9OIERFTEVURSBTRVQgTlVMTCAodmFsaWRfYXQpIE9OIFVQREFU RSBTRVQgTlVMTDsKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcK KwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisJQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9p ZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmcyCisJCU9OIERFTEVURSBTRVQgTlVMTCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNF VCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRP ICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5n MiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5n MnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5 KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQg PSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0K KworVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1st MSwtMV0nLCAnWy0xLC0xXScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywg J1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrMl9ybmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZB VUxUICdbLTEsLTFdJywKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDIgU0VUIERFRkFVTFQg J1stMSwtMV0nLAorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywK KwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworCQlGT1JFSUdOIEtF WSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVO Q0VTIHRlbXBvcmFsX3JuZzIKKwkJT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBT RVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBv cmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8g JzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlk MSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1 cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s3LDgpJywgaWQyID0g J1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs ICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk MSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9y YWxfcm5nMiBTRVQgaWQxID0gJ1s5LDEwKScsIGlkMiA9ICdbOSwxMCknIFdIRVJFIGlkMSA9 ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRl cyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9y YWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScs IGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp LCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVM RVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgn WzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcy cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCist LQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2Fs YXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxf cm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzYsNyknLCBkYXRl cmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2 LDcpJywgJ1s2LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBF UklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBBTFRF UiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9ybmcycm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRf aWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorCQlP TiBERUxFVEUgU0VUIERFRkFVTFQgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7 CistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIEFMVEVSIENP TFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKwlEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIs IFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisJCU9OIERF TEVURSBTRVQgREVGQVVMVCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxUOwor LS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAx LTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBp ZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9z cyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVy YW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s4LDkp JywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdb OCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEg PSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OwogCiAtLQogLS0gdGVzdCBGT1JFSUdOIEtFWSwgbXVsdGly YW5nZSByZWZlcmVuY2VzIG11bHRpcmFuZ2UKQEAgLTE2NjIsNiArMjAwMSwyMCBAQCBDT01N SVQ7CiAtLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CiBVUERBVEUgdGVtcG9y YWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFs aWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpKTsKKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitV UERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitTRVQg aWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEg cGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0w MS0xMCcpKSkKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIHRo ZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRh dGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1szLDQpJzsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0 ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEn KSkKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIAogLS0KIC0tIHRlc3Qg RksgcmVmZXJlbmNlZCB1cGRhdGVzIFJFU1RSSUNUCkBAIC0xNjk4LDYgKzIwNTEsMjAgQEAg Uk9MTEJBQ0s7CiAtLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CiBVUERBVEUg dGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpKTsKKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9r YXk6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAo ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkp CitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBq dXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAn MjAxOC0wMS0xMCcpKSkKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsK Ky0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQ SyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZh bGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYt MDItMDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIAogLS0KIC0t IHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIE5PIEFDVElPTgpAQCAtMTcyOSw2ICsyMDk2 LDE3IEBAIEJFR0lOOwogCiAgIERFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBp ZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CiBDT01NSVQ7CistLSBkZWxldGluZyBhbiB1 bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5n CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBk ZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJu ZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpKQorV0hFUkUgaWQgPSAnWzUsNiknOworLS0g dGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRl bGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg V0hFUkUgaWQgPSAnWzMsNCknOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJF IGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIAogLS0KIC0tIHRlc3QgRksgcmVmZXJl bmNlZCBkZWxldGVzIFJFU1RSSUNUCkBAIC0xNzU4LDYgKzIxMzYsNDE3IEBAIEJFR0lOOwog CiAgIERFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5E IHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSk7CiBST0xMQkFDSzsKKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBw YXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAn MjAxOC0wMS0wMycpKSkKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRlbGV0aW5nIGp1c3Qg YSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1Jywg JzIwMTgtMDEtMTAnKSkpCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSB0aGVuIGRlbGV0ZSB0 aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRz OgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdb Myw0KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJykpOworCistLQorLS0gbWx0cm5nMm1sdHJuZyB0ZXN0IE9OIFVQREFU RS9ERUxFVEUgb3B0aW9ucworLS0KKy0tIFRPQzoKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBD QVNDQURFCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCB1 cGRhdGVzIFNFVCBOVUxMCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNF VCBERUZBVUxUCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBj b2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykK Ky0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0g cmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZl cmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vi c2V0KQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNv bHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29s cykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xz LCBTRVQgREVGQVVMVCBzdWJzZXQpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBk YXRlcyBDQVNDQURFCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwx MDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSksICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrLAorCUFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKwkJRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFs X21sdHJuZworCQlPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAx JywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6 CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3Nz IHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBT RVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tCisKK1RSVU5D QVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CistLSBsZWZ0 b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAx LTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00g dGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSkn KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5E IHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBO VUxMCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdb Niw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworCURST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrLAorCUFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZwor CQlPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAy MC0wMS0wMScpKSkgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwx MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAn WzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9 ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0g dGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tCisKK1RSVU5DQVRFIHRl bXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMg b24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywg JzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9y YWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4 LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEt MDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxU CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWy0xLC0xXScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09MVU1O IHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisJCU9OIERFTEVURSBT RVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAx JykpKSBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBv cmFsX21sdHJuZyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIw LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAx KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s5LDEw KScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRh dGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAorLS0KKworVFJVTkNBVEUgdGVtcG9y YWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBz aWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEt MDEnKSkpIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5n IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIg Y29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBw YXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0 cm5nMgorCQlPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRv dmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScs ICcyMDIwLTAxLTAxJykpKSBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRl OgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQx ID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBh Y3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAx LTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX21s dHJuZzIgU0VUIGlkMSA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0 d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2 LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBv cmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVs ZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28g cmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIw MSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcy IFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KKwor VFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFM VUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBF UklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisJCU9OIERF TEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0w MScpKSkgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0 ZW1wb3JhbF9tbHRybmcyIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byBy ZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs ICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAx KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIFNFVCBp ZDEgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCist LQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIg Y29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5n MiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgs OSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQx ID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkK Ky0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZhaWxz IGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQy LCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorCQlP TiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBv azoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisJRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorCUFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRf aWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9y YWxfbWx0cm5nMgorCQlPTiBERUxFVEUgU0VUIE5VTEwgKHBhcmVudF9pZDEpIE9OIFVQREFU RSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00g dGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQ TyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3Nz IHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sy MDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21s dHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEn OjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVS RSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRl c3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMp CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxp ZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbLTEsLTFdJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3 KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgQUxURVIg Q09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBBTFRFUiBDT0xV TU4gcGFyZW50X2lkMiBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBw YXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0 cm5nMgorCQlPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOwor LS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5 LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcs OCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQg aWQxID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgs OSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0w MScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwg J1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0g J1s5LDEwKScsIGlkMiA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVM VCAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwg dGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScs ICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAx KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgor REVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAo ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkp IFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdI RVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28g c2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBv cmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFd JywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5 b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFV TFQgJ1stMSwtMV0nLAorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1s dHJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19m aworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlk X2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIKKwkJT04gREVMRVRFIFNFVCBE RUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gb2s6CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBBTFRFUiBDT0xVTU4gcGFy ZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRf aWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgor CQlPTiBERUxFVEUgU0VUIERFRkFVTFQgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgREVG QVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9y YWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRh dGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byBy ZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs ICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9y YWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0w MS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLSBG SyB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGUKKworQ1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2Ug QVMgcmFuZ2Uoc3VidHlwZT1kYXRlKTsKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMg KAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBteWRhdGVyYW5nZSwKKwlDT05TVFJBSU5U IHRlbXBvcmFsX3JuZzNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKQorKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazNfcm5nMnJuZyAoCisJaWQg aW50NHJhbmdlLAorCXZhbGlkX2F0IG15ZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFu Z2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazNfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxf ZmszX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpIE9O IERFTEVURSBDQVNDQURFCispOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIG15ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazNfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s1LDYpJywgbXlkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3JuZzMgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIw MjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmszX3JuZzJybmcgV0hFUkUgaWQgPSAnWzUsNiknOworCitEUk9QIFRBQkxFIHRlbXBvcmFs X2ZrM19ybmcycm5nOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOworRFJPUCBUWVBFIG15 ZGF0ZXJhbmdlOwogCiAtLQogLS0gRksgYmV0d2VlbiBwYXJ0aXRpb25lZCB0YWJsZXMKQEAg LTE3NjksOCArMjU1OCw4IEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgKAogICBuYW1lIHRleHQsCiAJQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJpdGlvbmVkX3Ju Z19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCiApIFBB UlRJVElPTiBCWSBMSVNUIChpZCk7Ci1DUkVBVEUgVEFCTEUgdHAxIHBhcnRpdGlvbiBPRiB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQp JywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJyk7Ci1DUkVBVEUgVEFC TEUgdHAyIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVF UyBJTiAoJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAn WzEyLDEzKScpOworQ1JFQVRFIFRBQkxFIHRwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScs ICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScsICdbMTMsMTQpJywgJ1sxNSwxNiknLCAn WzE3LDE4KScsICdbMTksMjApJywgJ1syMSwyMiknLCAnWzIzLDI0KScpOworQ1JFQVRFIFRB QkxFIHRwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxV RVMgSU4gKCdbMCwxKScsICdbMiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdb MTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScsICdbMTYsMTcpJywgJ1sxOCwxOSknLCAn WzIwLDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSknKTsKIElOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0LCBuYW1lKSBWQUxVRVMKICAgKCdbMSwy KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTAxJyksICdvbmUnKSwKICAg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScsICcyMDAwLTAzLTAxJyksICdvbmUn KSwKQEAgLTE3ODQsOCArMjU3Myw4IEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nICgKIAlDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQog CQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIFBFUklPRCB2YWxp ZF9hdCkKICkgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKLUNSRUFURSBUQUJMRSB0ZmtwMSBw YXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVT IElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTApJywgJ1sx MSwxMiknKTsKLUNSRUFURSBUQUJMRSB0ZmtwMiBwYXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzIsMyknLCAnWzQsNSknLCAn WzYsNyknLCAnWzgsOSknLCAnWzEwLDExKScsICdbMTIsMTMpJyk7CitDUkVBVEUgVEFCTEUg dGZrcDEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9S IFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEw KScsICdbMTEsMTIpJywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwy MCknLCAnWzIxLDIyKScsICdbMjMsMjQpJyk7CitDUkVBVEUgVEFCTEUgdGZrcDIgUEFSVElU SU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAo J1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSkn LCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwxNyknLCAnWzE4LDE5KScsICdbMjAsMjEp JywgJ1syMiwyMyknLCAnWzI0LDI1KScpOwogCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVm ZXJlbmNpbmcgaW5zZXJ0cwpAQCAtMTg3OCw0OCArMjY2NywxMjUgQEAgREVMRVRFIEZST00g dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRf YXQgPSBkYXRlcmFuZ2UKIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBD QVNDQURFCiAtLQogCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbNCw1KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3 KScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZwogCURS T1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrLAogCUFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsKIAkJRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogCQlSRUZFUkVOQ0VTIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZwogCQlPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUg Q0FTQ0FERTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9 ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s0LDUpJzsKK1VQREFURSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hF UkUgaWQgPSAnWzQsNSknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTUsMTYpJywgZGF0ZXJhbmdlKCcyMDIw LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEw LDExKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTUsMTYp Jyk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTYsMTcp JyBXSEVSRSBpZCA9ICdbMTUsMTYpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1sxMCwxMSknOwogCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNl ZCBkZWxldGVzIENBU0NBREUKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEt MDEnIFdIRVJFIGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMTcsMTgpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzE3LDE4KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAx LTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMSwxMiknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzE3LDE4KScpOworREVMRVRFIEZST00g dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1sxNywxOCknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzExLDEyKSc7CisKIC0tCiAtLSBw YXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKIC0tCiAKK1RSVU5D QVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOSwxMCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOSwxMCknKTsKIEFMVEVSIFRBQkxF IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKIAlEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKIAlBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrCiAJCUZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKIAkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcKIAkJT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKK1VQREFU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbMTAsMTEpJyBXSEVS RSBpZCA9ICdbOSwxMCknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgU0VUIGlkID0gJ1sxMCwxMSknIFdIRVJFIGlkID0gJ1s5LDEwKSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzYsNyknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1sxOCwxOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMTgsMTkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEyLDEzKScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTgsMTkpJyk7CitVUERB VEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTksMjApJyBXSEVSRSBp ZCA9ICdbMTgsMTkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1sxMiwxMyknOwogCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVz IFNFVCBOVUxMCiAtLQogCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzExLDEyKScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1s3LDgpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1sxMSwxMiknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScg V0hFUkUgaWQgPSAnWzExLDEyKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzcsOCknOworREVMRVRFIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1sxMSwxMiknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s3LDgpJzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMjAsMjEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzIwLDIxKScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAx LTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMywxNCknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzIwLDIxKScpOworREVMRVRFIEZST00g dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1syMCwyMSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEzLDE0KSc7CisKIC0tCiAtLSBw YXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKIC0tCiAKK1RS VU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMCwxKScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzEyLDEzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxMiwxMyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKLSAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQg REVGQVVMVCAnWy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQgU0VUIERFRkFV TFQgJ1swLDEpJywKIAlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZ19maywKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nX2ZrCiAJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK IAkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcKIAkJT04gREVMRVRFIFNF VCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVSRSBpZCA9ICdbMTIsMTMp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVS RSBpZCA9ICdbOCw5KSc7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBp ZCA9ICdbMTMsMTQpJyBXSEVSRSBpZCA9ICdbMTIsMTMpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOCw5KSc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzIyLDIzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1syMiwyMyknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTQsMTUpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1syMiwyMyknKTsKK1VQREFURSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1syMywyNCknIFdIRVJFIGlkID0gJ1syMiwyMykn IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CiAK IC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQK IC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMCwxKScsIGRhdGVyYW5nZShudWxsLCBu dWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzE0LDE1KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s5LDEwKScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTQsMTUpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1sxNCwxNSknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlk ID0gJ1s5LDEwKSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hF UkUgaWQgPSAnWzE0LDE1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzksMTApJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjQsMjUpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzI0LDI1KScs IGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzI0LDI1KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIFdIRVJFIGlkID0gJ1syNCwyNSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6 OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg V0hFUkUgaWQgPSAnWzE1LDE2KSc7CisKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZzsKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nOwog Ci0tIAoyLjQyLjAKCg== --------------GsheMzFFcGdccG4bvM4vwSCN Content-Type: text/x-patch; charset=UTF-8; name="v37-0008-Add-PERIODs.patch" Content-Disposition: attachment; filename="v37-0008-Add-PERIODs.patch" Content-Transfer-Encoding: base64 RnJvbSA1MGJkYzI4OGI4NDRhOWM2ODU1YzIzNThmMzY5MDlhMTAyYmZkMDczIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgOSBKYW4gMjAyMSAyMTo1OTo0MyAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggdjM3IDgvOF0gQWRkIFBFUklPRHMKCi0gQWRkZWQgcGFyc2lu ZyBmb3IgU1FMOjIwMTEgc3ludGF4IHRvIGRlZmluZSBhbiBhcHBsaWNhdGlvbi10aW1lIFBF UklPRCBvbiBhCiAgdGFibGUgKGluIGJvdGggQ1JFQVRFIFRBQkxFIGFuZCBBTFRFUiBUQUJM RSkuIE1ha2Ugc3VyZSB3ZSBjcmVhdGUgdGhlIFBFUklPRAogIGFmdGVyIGNvbHVtbnMgYXJl IGtub3duIChzaW5jZSBQRVJJT0RzIGNhbiByZWZlciB0byB0aGVtKSBidXQgYmVmb3JlCiAg Y29uc3RyYWludHMgYXJlIGhhbmRsZWQgKHNpbmNlIFBFUklPRHMgY2FuIGFwcGVhciBpbiB0 aGVtKS4KLSBBZGRlZCBBTFRFUiBUQUJMRSBEUk9QIHN1cHBvcnQgZm9yIFBFUklPRHMuCi0g Q3JlYXRlZCBwb3N0Z3Jlcy5wZ19wZXJpb2QgdGFibGUuCi0gQ3JlYXRlZCBpbmZvcm1hdGlv bl9zY2hlbWEucGVyaW9kcyB2aWV3LgotIEFkZGVkIHBnX2R1bXAgc3VwcG9ydC4KLSBBZGRl ZCB0ZXN0cyBhbmQgZG9jdW1lbnRhdGlvbi4KLSBBdXRvbWF0aWNhbGx5IGRlZmluZSBhIGNv bnN0cmFpbnQgZm9yIGVhY2ggUEVSSU9EIHJlcXVpcmluZyB0aGUgc3RhcnQgY29sdW1uCiAg dG8gYmUgbGVzcyB0aGFuIHRoZSBlbmQgY29sdW1uLgotIFdoZW4gY3JlYXRpbmcgYSBQRVJJ T0QsIGNob29zZSBhbiBhcHByb3ByaWF0ZSByYW5nZSB0eXBlIHdlIGNhbiB1c2UgdG8KICBp bXBsZW1lbnQgUEVSSU9ELXJlbGF0ZWQgb3BlcmF0aW9ucy4gWW91IGNhbiBjaG9vc2Ugb25l IGV4cGxpY2l0bHkgaWYgdGhlcmUKICBpcyBhbWJpZ3VpdHkgKGR1ZSB0byBtdWx0aXBsZSBy YW5nZSB0eXBlcyBjcmVhdGVkIG92ZXIgdGhlIHNhbWUgYmFzZSB0eXBlKS4KLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTEyICsrCiBk b2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDU4ICsK IGRvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbCAgICAgICAgICB8ICAgNjMg KwogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sICAgICAgICAgICAgIHwgICAy NSArCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAgICAgfCAg ICAyICsKIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgICAgICAgICAgICB8 ICAgNjEgKy0KIGRvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwgICAgICAgICAgICAgICAg ICB8ICAgIDMgKy0KIGRvYy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwgICAgICAgICAgICAg ICAgICB8ICAgIDMgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAg ICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyAgICAgICAg ICAgICAgICAgIHwgICAgMiArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAg ICAgICAgICAgICAgfCAgIDE0ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jICAgICAg ICAgICAgICAgICAgICB8ICAgNzUgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlv bl9zY2hlbWEuc3FsICAgIHwgICAyMyArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5i dWlsZCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL29iamVj dGFkZHJlc3MuYyAgICAgICAgICAgfCAgIDcyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdf cGVyaW9kLmMgICAgICAgICAgICAgICB8ICAxMzIgKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cv c3FsX2ZlYXR1cmVzLnR4dCAgICAgICAgICB8ICAgIDIgKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL2NvbW1lbnQuYyAgICAgICAgICAgICAgICB8ICAgMTAgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvZHJvcGNtZHMuYyAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9ldmVudF90cmlnZ2VyLmMgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3NlY2xhYmVsLmMgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgIDg2NiArKysrKysrLQog c3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5jICAgICAgICAgICAgICAgICAgIHwgICAgNCAr LQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgICAgICAgIHwgICA0 MiArLQogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwg ICAgMyArCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAgICAgICAgICAgICAg fCAgIDk5ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAg ICAgfCAgIDQ1ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgICAg ICAgICAgfCAgIDEwICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgICAg ICAgICAgICB8ICAxODAgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9NYWtlZmlsZSAgICAg ICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BlcmlvZC5jICAg ICAgICAgICAgICAgIHwgICA1NiArCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2Fj aGUuYyAgICAgICAgICAgfCAgIDg3ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJj aGl2ZXIuYyAgICAgICAgICB8ICAgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAg ICAgICAgICAgICAgICAgICAgIHwgIDE3NyArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aCAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVt cF9zb3J0LmMgICAgICAgICAgICAgICAgfCAgICA3ICsKIHNyYy9iaW4vcHNxbC9kZXNjcmli ZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzggKy0KIHNyYy9pbmNsdWRlL2NhdGFs b2cvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUvY2F0 YWxvZy9oZWFwLmggICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiBzcmMvaW5jbHVkZS9j YXRhbG9nL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfaW5kZXguaCAgICAgICAgICAgICAgICB8ICAgIDEgLQogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wZXJpb2QuaCAgICAgICAgICAgICAgIHwgICA1OCArCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3JhbmdlLmggICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9p bmNsdWRlL2NvbW1hbmRzL3RhYmxlY21kcy5oICAgICAgICAgICAgICB8ICAgIDQgKy0KIHNy Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgNDAgKy0K IHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgIDIg Kwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAg MiArLQogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3V0aWxjbWQuaCAgICAgICAgICAgIHwg ICAgMSArCiBzcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCAgICAgICAgICAgICAgICAg fCAgICAzICsKIHNyYy9pbmNsdWRlL3V0aWxzL3BlcmlvZC5oICAgICAgICAgICAgICAgICAg ICB8ICAgMjEgKwogLi4uL3Rlc3RfZGRsX2RlcGFyc2UvdGVzdF9kZGxfZGVwYXJzZS5jICAg ICAgIHwgICAgNiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29m Lm91dCAgfCAgIDM4ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkLm91 dCAgICAgICB8ICAgIDQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGVyaW9kcy5v dXQgICAgICAgICB8ICAyNjcgKysrCiAuLi4vcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292 ZXJsYXBzLm91dCAgICAgfCAxNzY2ICsrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgICAyICstCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwgICAgICAgfCAgIDMyICsKIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3BlcmlvZHMuc3FsICAgICAgICAgICAgICB8ICAxNzggKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsICAgICB8IDExOTAgKysrKysr KysrKysKIDU5IGZpbGVzIGNoYW5nZWQsIDU4NDcgaW5zZXJ0aW9ucygrKSwgNzAgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wZXJp b2QuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZXJpb2Qu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcGVyaW9kLmgK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS91dGlscy9wZXJpb2QuaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGVyaW9kcy5vdXQKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wZXJpb2RzLnNxbAoKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKaW5kZXggODRhMmY3ZTQxMDYuLjU1MzAxYzAyYzFlIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxv Z3Muc2dtbApAQCAtMjMwLDYgKzIzMCwxMSBAQAogICAgICAgPGVudHJ5PmluZm9ybWF0aW9u IGFib3V0IHBhcnRpdGlvbiBrZXkgb2YgdGFibGVzPC9lbnRyeT4KICAgICAgPC9yb3c+CiAK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXBl cmlvZCI+PHN0cnVjdG5hbWU+cGdfcGVyaW9kPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5 PgorICAgICAgPGVudHJ5PnBlcmlvZHM8L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8 cm93PgogICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctcG9saWN5Ij48 c3RydWN0bmFtZT5wZ19wb2xpY3k8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CiAgICAg ICA8ZW50cnk+cm93LXNlY3VyaXR5IHBvbGljaWVzPC9lbnRyeT4KQEAgLTU3NDgsNiArNTc1 MywxMTMgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3Vu dCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgICBhcmUgc2ltcGxl IHJlZmVyZW5jZXMuCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAg ICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKworCisg PHNlY3QxIGlkPSJjYXRhbG9nLXBnLXBlcmlvZCI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5w Z19wZXJpb2Q8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9ImNh dGFsb2ctcGctcGVyaW9kIj4KKyAgIDxwcmltYXJ5PnBnX3BlcmlvZDwvcHJpbWFyeT4KKyAg PC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3RydWN0bmFtZT5w Z19wZXJpb2Q8L3N0cnVjdG5hbWU+IHN0b3JlcworICAgaW5mb3JtYXRpb24gYWJvdXQgc3lz dGVtIGFuZCBhcHBsaWNhdGlvbiB0aW1lIHBlcmlvZHMuCisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIFBlcmlvZHMgYXJlIGRlc2NyaWJlZCBpbiA8eHJlZiBsaW5rZW5kPSJkZGwtcGVy aW9kcyIvPi4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFt ZT5wZ19wZXJpb2Q8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorCisgICA8dGdyb3Vw IGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+Cisg ICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlm aWVyCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBlcm5hbWU8L3N0cnVj dGZpZWxkPiA8dHlwZT50ZXh0PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgUGVyaW9kIG5hbWUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+cGVycmVsaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJl ZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jbGFzcyI+PHN0cnVjdG5hbWU+ cGdfY2xhc3M8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3Rm aWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgdGFibGUg dGhpcyBwZXJpb2QgYmVsb25ncyB0bworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5wZXJzdGFydDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDI8L3R5cGU+CisgICAgICAg KHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdHRyaWJ1dGUiPjxzdHJ1 Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5h dHRudW08L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIFRoZSBudW1iZXIgb2YgdGhlIHN0YXJ0IGNvbHVtbgorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD5wZXJlbmQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQyPC90eXBl PgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctYXR0cmli dXRlIj48c3RydWN0bmFtZT5wZ19hdHRyaWJ1dGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3Ry dWN0ZmllbGQ+YXR0bnVtPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBUaGUgbnVtYmVyIG9mIHRoZSBlbmQgY29sdW1uCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBlcnJhbmdlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ aW50MjwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9n LXBnLWF0dHJpYnV0ZSI+PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRlPC9zdHJ1Y3RuYW1lPjwv bGluaz4uPHN0cnVjdGZpZWxkPmF0dG51bTwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIG51bWJlciBvZiB0aGUgPGxpdGVyYWw+R0VO RVJBVEVEPC9saXRlcmFsPiBjb2x1bW4gdGhhdCBpbXBsZW1lbnRzIHRoZSA8bGl0ZXJhbD5Q RVJJT0Q8L2xpdGVyYWw+LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5w ZXJjb25zdHJhaW50PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChy ZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29uc3RyYWludCI+PHN0cnVj dG5hbWU+cGdfY29uc3RyYWludDwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5v aWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IFRoZSBPSUQgb2YgdGhlIHBlcmlvZCdzIDxsaXRlcmFsPkNIRUNLPC9saXRlcmFsPiBjb25z dHJhaW50CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICA8L3Ri b2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggNjI2ZDM1NTE0Y2Mu LmQ2ZWM2ZjVkZjViIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC0xMzU2LDYgKzEzNTYsNjQgQEAgQ1JFQVRFIFRB QkxFIGNpcmNsZXMgKAogICA8L3NlY3QyPgogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9ImRk bC1wZXJpb2RzIj4KKyAgPHRpdGxlPlBlcmlvZHM8L3RpdGxlPgorCisgIDxwYXJhPgorICAg UGVyaW9kcyBhcmUgZGVmaW5pdGlvbnMgb24gYSB0YWJsZSB0aGF0IGFzc29jaWF0ZSBhIHBl cmlvZCBuYW1lIHdpdGggYSBzdGFydAorICAgY29sdW1uIGFuZCBhbiBlbmQgY29sdW1uLiAg Qm90aCBjb2x1bW5zIG11c3QgYmUgb2YgZXhhY3RseSB0aGUgc2FtZSB0eXBlCisgICAoaW5j bHVkaW5nIGNvbGxhdGlvbiksIGhhdmUgYSBidHJlZSBvcGVyYXRvciBjbGFzcywgYW5kIHRo ZSBzdGFydCBjb2x1bW4KKyAgIHZhbHVlIG11c3QgYmUgc3RyaWN0bHkgbGVzcyB0aGFuIHRo ZSBlbmQgY29sdW1uIHZhbHVlLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGVyZSBh cmUgdHdvIHR5cGVzIG9mIHBlcmlvZHM6IGFwcGxpY2F0aW9uIGFuZCBzeXN0ZW0uICBTeXN0 ZW0gcGVyaW9kcyBhcmUKKyAgIGRpc3Rpbmd1aXNoZWQgYnkgdGhlaXIgbmFtZSB3aGljaCBt dXN0IGJlIDxsaXRlcmFsPlNZU1RFTV9USU1FPC9saXRlcmFsPi4gIEFueQorICAgb3RoZXIg bmFtZSBpcyBhbiBhcHBsaWNhdGlvbiBwZXJpb2QuCisgIDwvcGFyYT4KKworICA8c2VjdDIg aWQ9ImRkbC1wZXJpb2RzLWFwcGxpY2F0aW9uLXBlcmlvZHMiPgorICA8dGl0bGU+QXBwbGlj YXRpb24gUGVyaW9kczwvdGl0bGU+CisKKyAgIDxpbmRleHRlcm0+CisgICAgPHByaW1hcnk+ cGVyaW9kPC9wcmltYXJ5PgorICAgIDxzZWNvbmRhcnk+YXBwbGljYXRpb248L3NlY29uZGFy eT4KKyAgIDwvaW5kZXh0ZXJtPgorCisgICA8cGFyYT4KKyAgICBBcHBsaWNhdGlvbiBwZXJp b2RzIGFyZSBkZWZpbmVkIG9uIGEgdGFibGUgdXNpbmcgdGhlIGZvbGxvd2luZyBzeW50YXg6 CisgICA8L3BhcmE+CisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBiaWxsaW5n X2FkZHJlc3NlcyAoCisgIGN1c3RvbWVyX2lkIGludGVnZXIsCisgIGFkZHJlc3NfaWQgaW50 ZWdlciwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90byBkYXRlLAorICA8ZW1waGFz aXM+UEVSSU9EIEZPUiB2YWxpZGl0eSAodmFsaWRfZnJvbSwgdmFsaWRfdG8pPC9lbXBoYXNp cz4KKyk7Cis8L3Byb2dyYW1saXN0aW5nPgorCisgICA8cGFyYT4KKyAgICBBcHBsaWNhdGlv biBwZXJpb2RzIGNhbiBiZSB1c2VkIHRvIGRlZmluZSB0ZW1wb3JhbCBwcmltYXJ5IGFuZCBm b3JlaWduIGtleXMuCisgICAgQW55IHRhYmxlIHdpdGggYSB0ZW1wb3JhbCBwcmltYXJ5IGtl eSBpcyBhIHRlbXBvcmFsIHRhYmxlIGFuZCBzdXBwb3J0cyB0ZW1wb3JhbCB1cGRhdGUgYW5k IGRlbGV0ZSBjb21tYW5kcy4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0Mj4KKworICA8c2VjdDIg aWQ9ImRkbC1wZXJpb2RzLXN5c3RlbS1wZXJpb2RzIj4KKyAgIDx0aXRsZT5TeXN0ZW0gUGVy aW9kczwvdGl0bGU+CisKKyAgIDxpbmRleHRlcm0+CisgICAgPHByaW1hcnk+cGVyaW9kPC9w cmltYXJ5PgorICAgIDxzZWNvbmRhcnk+c3lzdGVtPC9zZWNvbmRhcnk+CisgICA8L2luZGV4 dGVybT4KKworICAgPHBhcmE+CisgICAgUGVyaW9kcyBmb3IgPGxpdGVyYWw+U1lTVEVNX1RJ TUU8L2xpdGVyYWw+IGFyZSBjdXJyZW50bHkgbm90IGltcGxlbWVudGVkLgorICAgPC9wYXJh PgorICA8L3NlY3QyPgorIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9ImRkbC1zeXN0ZW0tY29s dW1ucyI+CiAgIDx0aXRsZT5TeXN0ZW0gQ29sdW1uczwvdGl0bGU+CiAKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbCBiL2RvYy9zcmMvc2dtbC9p bmZvcm1hdGlvbl9zY2hlbWEuc2dtbAppbmRleCA5NDQyYjA3MThjMC4uYjFmOGExNDEzYzAg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2NoZW1hLnNnbWwKQEAgLTQxNzEsNiArNDE3 MSw2OSBAQCBPUkRFUiBCWSBjLm9yZGluYWxfcG9zaXRpb247CiAgIDwvdGFibGU+CiAgPC9z ZWN0MT4KIAorIDxzZWN0MSBpZD0iaW5mb3NjaGVtYS1wZXJpb2RzIj4KKyAgPHRpdGxlPjxs aXRlcmFsPnBlcmlvZHM8L2xpdGVyYWw+PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSB2 aWV3IDxsaXRlcmFsPnBhcmFtZXRlcnM8L2xpdGVyYWw+IGNvbnRhaW5zIGluZm9ybWF0aW9u IGFib3V0IHRoZQorICAgcGVyaW9kcyBvZiBhbGwgdGFibGVzIGluIHRoZSBjdXJyZW50IGRh dGFiYXNlLiAgVGhlIHN0YXJ0IGFuZCBlbmQgY29sdW1uCisgICBuYW1lcyBhcmUgb25seSBz aG93biBpZiB0aGUgY3VycmVudCB1c2VyIGhhcyBhY2Nlc3MgdG8gdGhlbSAoYnkgd2F5IG9m IGJlaW5nCisgICB0aGUgb3duZXIgb3IgaGF2aW5nIHNvbWUgcHJpdmlsZWdlKS4KKyAgPC9w YXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48bGl0ZXJhbD5wZXJpb2RzPC9saXRlcmFs PiBDb2x1bW5zPC90aXRsZT4KKworICAgPHRncm91cCBjb2xzPSIzIj4KKyAgICA8dGhlYWQ+ CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+TmFtZTwvZW50cnk+CisgICAgICA8ZW50cnk+ RGF0YSBUeXBlPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5EZXNjcmlwdGlvbjwvZW50cnk+Cisg ICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnk+PGxpdGVyYWw+dGFibGVfY2F0YWxvZzwvbGl0ZXJhbD48L2VudHJ5Pgor ICAgICAgPGVudHJ5Pjx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPjwvZW50cnk+CisgICAg ICA8ZW50cnk+TmFtZSBvZiB0aGUgZGF0YWJhc2UgY29udGFpbmluZyB0aGUgcGVyaW9kIChh bHdheXMgdGhlIGN1cnJlbnQgZGF0YWJhc2UpPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD50YWJsZV9zY2hlbWE8L2xpdGVyYWw+ PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT48L2Vu dHJ5PgorICAgICAgPGVudHJ5Pk5hbWUgb2YgdGhlIHNjaGVtYSBjb250YWluaW5nIHRoZSBw ZXJpb2Q8L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 PjxsaXRlcmFsPnRhYmxlX25hbWU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48 dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5Pk5hbWUg b2YgdGhlIHRhYmxlIGNvbnRhaW5pbmcgdGhlIHBlcmlvZDwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cGVyaW9kX25hbWU8L2xp dGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlw ZT48L2VudHJ5PgorICAgICAgPGVudHJ5Pk5hbWUgb2YgdGhlIHBlcmlvZDwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+c3RhcnRf Y29sdW1uX25hbWU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT5zcWxf aWRlbnRpZmllcjwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5Pk5hbWUgb2YgdGhlIHN0 YXJ0IGNvbHVtbiBmb3IgdGhlIHBlcmlvZDwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+ZW5kX2NvbHVtbl9uYW1lPC9saXRlcmFs PjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+PC9l bnRyeT4KKyAgICAgIDxlbnRyeT5OYW1lIG9mIHRoZSBlbmQgY29sdW1uIGZvciB0aGUgcGVy aW9kPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgor ICA8L3RhYmxlPgorIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9ImluZm9zY2hlbWEtcmVmZXJl bnRpYWwtY29uc3RyYWludHMiPgogICA8dGl0bGU+PGxpdGVyYWw+cmVmZXJlbnRpYWxfY29u c3RyYWludHM8L2xpdGVyYWw+PC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJsZS5z Z21sCmluZGV4IDZhMjgyMmFkYWQ3Li4zMzJiMDRmMTg2ZiAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfdGFibGUuc2dtbApAQCAtNjgsNiArNjgsOCBAQCBBTFRFUiBUQUJMRSBbIElGIEVYSVNU UyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4K ICAgICBBTFRFUiBDT05TVFJBSU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5j b25zdHJhaW50X25hbWU8L3JlcGxhY2VhYmxlPiBbIERFRkVSUkFCTEUgfCBOT1QgREVGRVJS QUJMRSBdIFsgSU5JVElBTExZIERFRkVSUkVEIHwgSU5JVElBTExZIElNTUVESUFURSBdCiAg ICAgVkFMSURBVEUgQ09OU1RSQUlOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29uc3RyYWludF9uYW1lPC9yZXBsYWNlYWJsZT4KICAgICBEUk9QIENPTlNUUkFJTlQgWyBJ RiBFWElTVFMgXSAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbnN0cmFpbnRf bmFtZTwvcmVwbGFjZWFibGU+IFsgUkVTVFJJQ1QgfCBDQVNDQURFIF0KKyAgICBBREQgUEVS SU9EIEZPUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX25hbWU8L3Jl cGxhY2VhYmxlPiAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zdGFydF9jb2x1 bW48L3JlcGxhY2VhYmxlPiwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVuZF9j b2x1bW48L3JlcGxhY2VhYmxlPiApIFsgV0lUSCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5wZXJpb2Rfb3B0aW9uPC9yZXBsYWNlYWJsZT4gPSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0KKyAgICBE Uk9QIFBFUklPRCBGT1IgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9u YW1lPC9yZXBsYWNlYWJsZT4gWyBSRVNUUklDVCB8IENBU0NBREUgXQogICAgIERJU0FCTEUg VFJJR0dFUiBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50cmlnZ2VyX25hbWU8 L3JlcGxhY2VhYmxlPiB8IEFMTCB8IFVTRVIgXQogICAgIEVOQUJMRSBUUklHR0VSIFsgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRyaWdnZXJfbmFtZTwvcmVwbGFjZWFibGU+ IHwgQUxMIHwgVVNFUiBdCiAgICAgRU5BQkxFIFJFUExJQ0EgVFJJR0dFUiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dHJpZ2dlcl9uYW1lPC9yZXBsYWNlYWJsZT4KQEAgLTU5 MSw2ICs1OTMsMjkgQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICA8L2xpc3Rp dGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1h bHRlcnRhYmxlLWRlc2MtYWRkLXBlcmlvZCI+CisgICAgPHRlcm0+PGxpdGVyYWw+QUREIFBF UklPRCBGT1I8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGlzIGZvcm0gYWRkcyBhIG5ldyBwZXJpb2QgdG8gYSB0YWJsZSB1c2luZyB0 aGUgc2FtZSBzeW50YXggYXMKKyAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV0YWJs ZSIvPi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWFsdGVydGFibGUtZGVzYy1kcm9wLXBl cmlvZCI+CisgICAgPHRlcm0+PGxpdGVyYWw+RFJPUCBQRVJJT0QgRk9SPC9saXRlcmFsPjwv dGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3JtIGRy b3BzIHRoZSBzcGVjaWZpZWQgcGVyaW9kIG9uIGEgdGFibGUuICBUaGUgc3RhcnQgYW5kIGVu ZAorICAgICAgY29sdW1ucyB3aWxsIG5vdCBiZSBkcm9wcGVkIGJ5IHRoaXMgY29tbWFuZCBi dXQgdGhlCisgICAgICA8bGl0ZXJhbD5DSEVDSzwvbGl0ZXJhbD4gY29uc3RyYWludCB3aWxs IGJlLiAgWW91IHdpbGwgbmVlZCB0byBzYXkKKyAgICAgIDxsaXRlcmFsPkNBU0NBREU8L2xp dGVyYWw+IGlmIGFueXRoaW5nIG91dHNpZGUgdGhlIHRhYmxlIGRlcGVuZHMgb24gdGhlCisg ICAgICBjb2x1bW4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1hbHRlcnRhYmxlLWRlc2Mt ZGlzYWJsZS1lbmFibGUtdHJpZ2dlciI+CiAgICAgPHRlcm0+PGxpdGVyYWw+RElTQUJMRTwv bGl0ZXJhbD4vPGxpdGVyYWw+RU5BQkxFIFsgUkVQTElDQSB8IEFMV0FZUyBdIFRSSUdHRVI8 L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvY29tbWVudC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwK aW5kZXggNWI0M2M1NmIxMzMuLjQ5YzJkZjk5NDQ5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2NvbW1lbnQuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dt bApAQCAtNDQsNiArNDQsNyBAQCBDT01NRU5UIE9OCiAgIE9QRVJBVE9SIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5vcGVyYXRvcl9uYW1lPC9yZXBsYWNlYWJsZT4gKDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5sZWZ0X3R5cGU8L3JlcGxhY2VhYmxlPiwgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJpZ2h0X3R5cGU8L3JlcGxhY2VhYmxlPikg fAogICBPUEVSQVRPUiBDTEFTUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2Jq ZWN0X25hbWU8L3JlcGxhY2VhYmxlPiBVU0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+aW5kZXhfbWV0aG9kPC9yZXBsYWNlYWJsZT4gfAogICBPUEVSQVRPUiBGQU1JTFkg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJs ZT4gVVNJTkcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X21ldGhvZDwv cmVwbGFjZWFibGU+IHwKKyAgUEVSSU9EIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yZWxhdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4uPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnBlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBQT0xJQ1kgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBvbGljeV9uYW1lPC9yZXBsYWNlYWJsZT4gT04gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiB8 CiAgIFsgUFJPQ0VEVVJBTCBdIExBTkdVQUdFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgUFJPQ0VEVVJFIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wcm9jZWR1cmVfbmFtZTwvcmVwbGFjZWFibGU+IFsg KCBbIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ21vZGU8L3JlcGxhY2Vh YmxlPiBdIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ25hbWU8L3JlcGxh Y2VhYmxlPiBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmd0eXBlPC9yZXBs YWNlYWJsZT4gWywgLi4uXSBdICkgXSB8CkBAIC0zNDEsNiArMzQyLDcgQEAgQ09NTUVOVCBP TiBPUEVSQVRPUiBeICh0ZXh0LCB0ZXh0KSBJUyAnUGVyZm9ybXMgaW50ZXJzZWN0aW9uIG9m IHR3byB0ZXh0cyc7CiBDT01NRU5UIE9OIE9QRVJBVE9SIC0gKE5PTkUsIGludGVnZXIpIElT ICdVbmFyeSBtaW51cyc7CiBDT01NRU5UIE9OIE9QRVJBVE9SIENMQVNTIGludDRvcHMgVVNJ TkcgYnRyZWUgSVMgJzQgYnl0ZSBpbnRlZ2VyIG9wZXJhdG9ycyBmb3IgYnRyZWVzJzsKIENP TU1FTlQgT04gT1BFUkFUT1IgRkFNSUxZIGludGVnZXJfb3BzIFVTSU5HIGJ0cmVlIElTICdh bGwgaW50ZWdlciBvcGVyYXRvcnMgZm9yIGJ0cmVlcyc7CitDT01NRU5UIE9OIFBFUklPRCBt eV90YWJsZS5teV9jb2x1bW4gSVMgJ1NhbGVzIHByb21vdGlvbiB2YWxpZGl0eSc7CiBDT01N RU5UIE9OIFBPTElDWSBteV9wb2xpY3kgT04gbXl0YWJsZSBJUyAnRmlsdGVyIHJvd3MgYnkg dXNlcnMnOwogQ09NTUVOVCBPTiBQUk9DRURVUkUgbXlfcHJvYyAoaW50ZWdlciwgaW50ZWdl cikgSVMgJ1J1bnMgYSByZXBvcnQnOwogQ09NTUVOVCBPTiBQVUJMSUNBVElPTiBhbGx0YWJs ZXMgSVMgJ1B1Ymxpc2hlcyBhbGwgb3BlcmF0aW9ucyBvbiBhbGwgdGFibGVzJzsKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCmluZGV4IGM2YmMzN2Q2ZTgxLi5mODU5NDcxZjc1 NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC0yMyw2ICsyMyw3IEBA IFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogPHN5bm9wc2lzPgogQ1JFQVRFIFsgWyBHTE9C QUwgfCBMT0NBTCBdIHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJMRSBb IElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVf bmFtZTwvcmVwbGFjZWFibGU+ICggWwogICB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBbIFNUT1JBR0UgeyBQTEFJTiB8IEVY VEVSTkFMIHwgRVhURU5ERUQgfCBNQUlOIHwgREVGQVVMVCB9IF0gWyBDT01QUkVTU0lPTiA8 cmVwbGFjZWFibGU+Y29tcHJlc3Npb25fbWV0aG9kPC9yZXBsYWNlYWJsZT4gXSBbIENPTExB VEUgPHJlcGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBb IC4uLiBdIF0KKyAgICB8IDxyZXBsYWNlYWJsZT5wZXJpb2RfZGVmaW5pdGlvbjwvcmVwbGFj ZWFibGU+CiAgICAgfCA8cmVwbGFjZWFibGU+dGFibGVfY29uc3RyYWludDwvcmVwbGFjZWFi bGU+CiAgICAgfCBMSUtFIDxyZXBsYWNlYWJsZT5zb3VyY2VfdGFibGU8L3JlcGxhY2VhYmxl PiBbIDxyZXBsYWNlYWJsZT5saWtlX29wdGlvbjwvcmVwbGFjZWFibGU+IC4uLiBdIH0KICAg ICBbLCAuLi4gXQpAQCAtMzcsNiArMzgsNyBAQCBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FM IF0geyBURU1QT1JBUlkgfCBURU1QIH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVY SQogQ1JFQVRFIFsgWyBHTE9CQUwgfCBMT0NBTCBdIHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwg VU5MT0dHRUQgXSBUQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+CiAgICAgT0YgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnR5cGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKAogICB7 IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFi bGU+IFsgV0lUSCBPUFRJT05TIF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sdW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdIF0KKyAgICB8IDxyZXBs YWNlYWJsZT5wZXJpb2RfZGVmaW5pdGlvbjwvcmVwbGFjZWFibGU+CiAgICAgfCA8cmVwbGFj ZWFibGU+dGFibGVfY29uc3RyYWludDwvcmVwbGFjZWFibGU+IH0KICAgICBbLCAuLi4gXQog KSBdCkBAIC00OSw2ICs1MSw3IEBAIENSRUFURSBbIFsgR0xPQkFMIHwgTE9DQUwgXSB7IFRF TVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJRiBOT1QgRVhJCiBDUkVB VEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JBUlkgfCBURU1QIH0gfCBVTkxPR0dF RCBdIFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4KICAgICBQQVJUSVRJT04gT0YgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcmVudF90YWJsZTwvcmVwbGFjZWFibGU+IFsg KAogICB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVw bGFjZWFibGU+IFsgV0lUSCBPUFRJT05TIF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sdW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdIF0KKyAgICB8 IDxyZXBsYWNlYWJsZT5wZXJpb2RfZGVmaW5pdGlvbjwvcmVwbGFjZWFibGU+CiAgICAgfCA8 cmVwbGFjZWFibGU+dGFibGVfY29uc3RyYWludDwvcmVwbGFjZWFibGU+IH0KICAgICBbLCAu Li4gXQogKSBdIHsgRk9SIFZBTFVFUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cGFydGl0aW9uX2JvdW5kX3NwZWM8L3JlcGxhY2VhYmxlPiB8IERFRkFVTFQgfQpAQCAtNzMs NiArNzYsMTEgQEAgQ1JFQVRFIFsgWyBHTE9CQUwgfCBMT0NBTCBdIHsgVEVNUE9SQVJZIHwg VEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJMRSBbIElGIE5PVCBFWEkKICAgICBbIE9OIERFTEVU RSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9y ZXBsYWNlYWJsZT4gXSBbIE9OIFVQREFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4gXSB9CiBbIERFRkVSUkFCTEUg fCBOT1QgREVGRVJSQUJMRSBdIFsgSU5JVElBTExZIERFRkVSUkVEIHwgSU5JVElBTExZIElN TUVESUFURSBdCiAKKzxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5wZXJpb2RfZGVmaW5pdGlvbjwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgorCitQRVJJ T0QgRk9SIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9uYW1lPC9y ZXBsYWNlYWJsZT4gfCBTWVNURU1fVElNRSB9ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ICkKK1sgV0lUSCAoIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2Rfb3B0aW9uPC9yZXBsYWNlYWJsZT4g PSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPiBb LCAuLi4gXSApIF0KKwogPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnRhYmxlX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KIAogWyBD T05TVFJBSU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25zdHJhaW50X25h bWU8L3JlcGxhY2VhYmxlPiBdCkBAIC04MCw3ICs4OCw3IEBAIENSRUFURSBbIFsgR0xPQkFM IHwgTE9DQUwgXSB7IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJ RiBOT1QgRVhJCiAgIFVOSVFVRSBbIE5VTExTIFsgTk9UIF0gRElTVElOQ1QgXSAoIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFss IC4uLiBdIFssIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwv cmVwbGFjZWFibGU+IFdJVEhPVVQgT1ZFUkxBUFMgXSApIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gfAogICBQUklNQVJZ IEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVw bGFjZWFibGU+IFssIC4uLiBdIFssIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5j b2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFdJVEhPVVQgT1ZFUkxBUFMgXSApIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4g fAogICBFWENMVURFIFsgVVNJTkcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmlu ZGV4X21ldGhvZDwvcmVwbGFjZWFibGU+IF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZXhjbHVkZV9lbGVtZW50PC9yZXBsYWNlYWJsZT4gV0lUSCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+b3BlcmF0b3I8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNl YWJsZT4gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wcmVkaWNh dGU8L3JlcGxhY2VhYmxlPiApIF0gfAotICBGT1JFSUdOIEtFWSAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFss IFBFUklPRCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3Jl cGxhY2VhYmxlPiBdICkgUkVGRVJFTkNFUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cmVmdGFibGU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBd ICkgXQorICBGT1JFSUdOIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5j b2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCB7IDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IHwgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4g fSBdICkgUkVGRVJFTkNFUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmdGFi bGU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJl ZmNvbHVtbjwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCB7IDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IHwgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4gfSBd ICkgXQogICAgIFsgTUFUQ0ggRlVMTCB8IE1BVENIIFBBUlRJQUwgfCBNQVRDSCBTSU1QTEUg XSBbIE9OIERFTEVURSA8cmVwbGFjZWFibGUKIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50 aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF0gWyBPTiBVUERBVEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF0gfQog WyBERUZFUlJBQkxFIHwgTk9UIERFRkVSUkFCTEUgXSBbIElOSVRJQUxMWSBERUZFUlJFRCB8 IElOSVRJQUxMWSBJTU1FRElBVEUgXQpAQCAtMTM5LDYgKzE0NywxNCBAQCBXSVRIICggTU9E VUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9y ZXBsYWNlYWJsZT4sIFJFTQogICAgbmFtZSBhcyBhbnkgZXhpc3RpbmcgZGF0YSB0eXBlIGlu IHRoZSBzYW1lIHNjaGVtYS4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgUGVyaW9kcyBt eSBiZSBkZWZpbmVkIG9uIHRhYmxlcywgc3BlY2lmeWluZyB0aGF0IHR3byBleGlzdGluZyBj b2x1bW5zCisgICByZXByZXNlbnQgc3RhcnQgYW5kIGVuZCB2YWx1ZXMgZm9yIHRoZSBwZXJp b2QuICBQZXJpb2RzIG1heSBoYXZlIGFueSBuYW1lCisgICB0aGF0IGRvZXNuJ3QgY29uZmxp Y3Qgd2l0aCBhIGNvbHVtbiBuYW1lLCBidXQgdGhlIG5hbWUKKyAgIDxsaXRlcmFsPlNZU1RF TV9USU1FPC9saXRlcmFsPiBpcyBzcGVjaWFsLCB1c2VkIGZvciB2ZXJzaW9uaW5nIHRhYmxl cy4KKyAgIFN5c3RlbSBwZXJpb2RzIGFyZSBub3QgeWV0IGltcGxlbWVudGVkLiAgU2VlIDx4 cmVmIGxpbmtlbmQ9ImRkbC1wZXJpb2RzIi8+IGZvciBtb3JlIGRldGFpbHMuCisgIDwvcGFy YT4KKwogICA8cGFyYT4KICAgIFRoZSBvcHRpb25hbCBjb25zdHJhaW50IGNsYXVzZXMgc3Bl Y2lmeSBjb25zdHJhaW50cyAodGVzdHMpIHRoYXQKICAgIG5ldyBvciB1cGRhdGVkIHJvd3Mg bXVzdCBzYXRpc2Z5IGZvciBhbiBpbnNlcnQgb3IgdXBkYXRlIG9wZXJhdGlvbgpAQCAtNzk5 LDYgKzgxNSwzNyBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgIDwvbGlzdGl0 ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNy ZWF0ZXRhYmxlLXBhcm1zLXBlcmlvZCI+CisgICAgPHRlcm0+PGxpdGVyYWw+UEVSSU9EIEZP UiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2Vh YmxlPiAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVw bGFjZWFibGU+LCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8 L3JlcGxhY2VhYmxlPiApIFsgV0lUSCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5wZXJpb2Rfb3B0aW9uPC9yZXBsYWNlYWJsZT4gPSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF08L2xpdGVyYWw+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBBIHBlcmlvZCBkZWZp bml0aW9uIGdpdmVzIHNlbWFudGljIG1lYW5pbmcgdG8gdHdvIGV4aXN0aW5nIGNvbHVtbnMg b2YKKyAgICAgIHRoZSB0YWJsZS4gIEl0IGRlZmluZXMgYSAic3RhcnQgY29sdW1uIiBhbmQg YW4gImVuZCBjb2x1bW4iIHdoZXJlIHRoZQorICAgICAgc3RhcnQgdmFsdWUgaXMgc3RyaWN0 bHkgbGVzcyB0aGFuIHRoZSBlbmQgdmFsdWUuICBBCisgICAgICA8bGl0ZXJhbD5DSEVDSzwv bGl0ZXJhbD4gY29uc3RyYWludCBpcyBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgdG8gZW5mb3Jj ZQorICAgICAgdGhpcy4gWW91IGNhbiBzcGVjaWZ5IHRoZSBuYW1lIG9mIHRoYXQgY29uc3Ry YWludCB3aXRoIHRoZQorICAgICAgPGxpdGVyYWw+Y2hlY2tfY29uc3RyYWludF9uYW1lPC9s aXRlcmFsPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX29wdGlvbjwv cmVwbGFjZWFibGU+LgorICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBCb3Ro IGNvbHVtbnMgbXVzdCBoYXZlIGV4YWN0bHkgdGhlIHNhbWUgdHlwZSBhbmQgbXVzdCBoYXZl IGEgcmFuZ2UgdHlwZQorICAgICAgZGVmaW5lZCBmcm9tIHRoZWlyIGJhc2UgdHlwZS4gIElm IHRoZXJlIGFyZSBzZXZlcmFsIHJhbmdlIHR5cGVzIGZvciB0aGF0CisgICAgICBiYXNlIHR5 cGUsIHlvdSBtdXN0IHNwZWNpZnkgd2hpY2ggb25lIHlvdSB3YW50IGJ5IHVzaW5nIHRoZQor ICAgICAgPGxpdGVyYWw+cmFuZ2V0eXBlPC9saXRlcmFsPiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cGVyaW9kX29wdGlvbjwvcmVwbGFjZWFibGU+LgorICAgICAgQW55IGJh c2UgdHlwZSBpcyBhbGxvd2VkLCBhcyBsb25nIGFzIGl0IGhhcyBhIHJhbmdlIHR5cGUsIGFs dGhvdWdoIGl0IGlzCisgICAgICBleHBlY3RlZCB0aGF0IG1vc3QgcGVyaW9kcyB3aWxsIHVz ZSB0ZW1wb3JhbCB0eXBlcyBsaWtlIDxsaXRlcmFsPnRpbWVzdGFtcHR6PC9saXRlcmFsPgor ICAgICAgb3IgPGxpdGVyYWw+ZGF0ZTwvbGl0ZXJhbD4uCisgICAgIDwvcGFyYT4KKworICAg ICA8cGFyYT4KKyAgICAgIEEgaGlkZGVuIDxsaXRlcmFsPkdFTkVSQVRFRDwvbGl0ZXJhbD4g Y29sdW1uIGlzIHVzZWQgdG8gaW1wbGVtZW50IHRoZSBwZXJpb2QsCisgICAgICB3aXRoIHRo ZSBzYW1lIG5hbWUgYXMgdGhlIHBlcmlvZC4gIElmIHN1Y2ggYSBjb2x1bW4gYWxyZWFkeSBl eGlzdHMsIHlvdQorICAgICAgY2FuIHVzZSB0aGUgPGxpdGVyYWw+Y29sZXhpc3RzPC9saXRl cmFsPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX29wdGlvbjwvcmVw bGFjZWFibGU+CisgICAgICB3aXRoIHZhbHVlIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+IHRv IGF2b2lkIGNyZWF0aW5nIGl0LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAg IDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldGFi bGUtcGFybXMtY29uc3RyYWludCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+Q09OU1RSQUlOVCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29uc3RyYWludF9uYW1lPC9yZXBsYWNl YWJsZT48L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KQEAgLTExNDcsOCArMTE5 NCw4IEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u dW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICA8dmFybGlzdGVudHJ5IGlk PSJzcWwtY3JlYXRldGFibGUtcGFybXMtcmVmZXJlbmNlcyI+CiAgICAgPHRlcm0+PGxpdGVy YWw+UkVGRVJFTkNFUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmdGFibGU8 L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmNv bHVtbjwvcmVwbGFjZWFibGU+ICkgXSBbIE1BVENIIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5tYXRjaHR5cGU8L3JlcGxhY2VhYmxlPiBdIFsgT04gREVMRVRFIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZlcmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxl PiBdIFsgT04gVVBEQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZlcmVu dGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdPC9saXRlcmFsPiAoY29sdW1uIGNvbnN0cmFp bnQpPC90ZXJtPgogCi0gICA8dGVybT48bGl0ZXJhbD5GT1JFSUdOIEtFWSAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4u LiBdIFssIFBFUklPRCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25h bWU8L3JlcGxhY2VhYmxlPiBdICkKLSAgICBSRUZFUkVOQ0VTIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yZWZ0YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywg UEVSSU9EIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVw bGFjZWFibGU+IF0gKSBdCisgICA8dGVybT48bGl0ZXJhbD5GT1JFSUdOIEtFWSAoIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFss IC4uLiBdIFssIFBFUklPRCB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1 bW5fbmFtZTwvcmVwbGFjZWFibGU+IHwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnBlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4gfSBdICkKKyAgICBSRUZFUkVOQ0VTIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZ0YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4g WywgLi4uIF0gWywgUEVSSU9EIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gfCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiB9IF0gKSBdCiAgICAgWyBNQVRDSCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bWF0Y2h0eXBlPC9yZXBsYWNlYWJsZT4gXQog ICAgIFsgT04gREVMRVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZlcmVu dGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBPTiBVUERBVEUgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+ IF08L2xpdGVyYWw+CkBAIC0xMTY4LDcgKzEyMTUsNyBAQCBXSVRIICggTU9EVUxVUyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJs ZT4sIFJFTQogICAgICA8L3BhcmE+CiAKICAgICAgPHBhcmE+Ci0gICAgICBJZiB0aGUgbGFz dCBjb2x1bW4gaXMgbWFya2VkIHdpdGggPGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPiwgaXQg aXMKKyAgICAgIElmIHRoZSBsYXN0IGtleSBwYXJ0IGlzIG1hcmtlZCB3aXRoIDxsaXRlcmFs PlBFUklPRDwvbGl0ZXJhbD4sIGl0IGlzCiAgICAgICB0cmVhdGVkIGluIGEgc3BlY2lhbCB3 YXkuICBXaGlsZSB0aGUgbm9uLTxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4KICAgICAgIGNv bHVtbnMgYXJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eSAoYW5kIHRoZXJlIG11c3QgYmUgYXQg bGVhc3Qgb25lIG9mCiAgICAgICB0aGVtKSwgdGhlIDxsaXRlcmFsPlBFUklPRDwvbGl0ZXJh bD4gY29sdW1uIGlzIG5vdC4gIEluc3RlYWQsIHRoZQpAQCAtMTE3Niw4ICsxMjIzLDEwIEBA IFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmlj X2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgICByZWNvcmRzIChiYXNlZCBvbiB0 aGUgbm9uLTxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4gcGFydHMgb2YgdGhlIGtleSkKICAg ICAgIHdob3NlIGNvbWJpbmVkIDxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4gdmFsdWVzIGNv bXBsZXRlbHkgY292ZXIgdGhlCiAgICAgICByZWZlcmVuY2luZyByZWNvcmQncy4gIEluIG90 aGVyIHdvcmRzLCB0aGUgcmVmZXJlbmNlIG11c3QgaGF2ZSBhCi0gICAgICByZWZlcmVudCBm b3IgaXRzIGVudGlyZSBkdXJhdGlvbi4gIFRoaXMgY29sdW1uIG11c3QgYmUgYSByYW5nZSBv cgotICAgICAgbXVsdGlyYW5nZSB0eXBlLiAgSW4gYWRkaXRpb24sIHRoZSByZWZlcmVuY2Vk IHRhYmxlIG11c3QgaGF2ZSBhIHByaW1hcnkKKyAgICAgIHJlZmVyZW50IGZvciBpdHMgZW50 aXJlIGR1cmF0aW9uLiAgVGhpcyBwYXJ0IG11c3QgYmUgZWl0aGVyIGEgCisgICAgICA8bGlu ayBsaW5rZW5kPSJzcWwtY3JlYXRldGFibGUtcGFybXMtcGVyaW9kIj48bGl0ZXJhbD5QRVJJ T0Q8L2xpdGVyYWw+PC9saW5rPgorICAgICAgb3IgYSBjb2x1bW4gd2l0aCBhIHJhbmdlIG9y IG11bHRpcmFuZ2UgdHlwZS4KKyAgICAgIEluIGFkZGl0aW9uLCB0aGUgcmVmZXJlbmNlZCB0 YWJsZSBtdXN0IGhhdmUgYSBwcmltYXJ5CiAgICAgICBrZXkgb3IgdW5pcXVlIGNvbnN0cmFp bnQgZGVjbGFyZWQgd2l0aCA8bGl0ZXJhbD5XSVRIT1VUCiAgICAgICBPVkVSTEFQUzwvbGl0 ZXJhbD4uIEZpbmFsbHksIGlmIHRoZSBmb3JlaWduIGtleSBoYXMgYSBQRVJJT0QKICAgICAg IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFi bGU+IHNwZWNpZmljYXRpb24KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZGVsZXRl LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5zZ21sCmluZGV4IDAzNTViNjA4NWYx Li5jNTc3NzY0OWI5ZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5zZ21sCkBAIC01Niw3ICs1Niw4IEBA IERFTEVURSBGUk9NIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50 YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KLSAg IElmIHRoZSB0YWJsZSBoYXMgYSByYW5nZSBvciBtdWx0aXJhbmdlIGNvbHVtbiwKKyAgIElm IHRoZSB0YWJsZSBoYXMgYSByYW5nZSBvciBtdWx0aXJhbmdlIGNvbHVtbiwgb3IgYQorICAg PGxpbmsgbGlua2VuZD0iZGRsLXBlcmlvZHMtYXBwbGljYXRpb24tcGVyaW9kcyI+PGxpdGVy YWw+UEVSSU9EPC9saXRlcmFsPjwvbGluaz4sCiAgICB5b3UgbWF5IHN1cHBseSBhIDxsaXRl cmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBjbGF1c2UsIGFuZCB5b3VyIGRlbGV0ZSB3 aWxsCiAgICBvbmx5IGFmZmVjdCByb3dzIHRoYXQgb3ZlcmxhcCB0aGUgZ2l2ZW4gaW50ZXJ2 YWwuIEZ1cnRoZXJtb3JlLCBpZiBhIHJvdydzIHNwYW4KICAgIGV4dGVuZHMgb3V0c2lkZSB0 aGUgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGJvdW5kcywgdGhlbiB5b3Vy IGRlbGV0ZQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi91cGRhdGUuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwKaW5kZXggZWQ4YzU3NDhhMjYuLjQ2YjBmZjk4 MWE2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3VwZGF0ZS5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwKQEAgLTUzLDcgKzUzLDggQEAgVVBEQVRFIFsg T05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBs YWNlYWJsZT4gWyAqIF0gWwogICA8L3BhcmE+CiAKICAgPHBhcmE+Ci0gICBJZiB0aGUgdGFi bGUgaGFzIGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSBjb2x1bW4sCisgICBJZiB0aGUgdGFibGUg aGFzIGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSBjb2x1bW4sIG9yIGEKKyAgIDxsaW5rIGxpbmtl bmQ9ImRkbC1wZXJpb2RzLWFwcGxpY2F0aW9uLXBlcmlvZHMiPjxsaXRlcmFsPlBFUklPRDwv bGl0ZXJhbD48L2xpbms+LAogICAgeW91IG1heSBzdXBwbHkgYSA8bGl0ZXJhbD5GT1IgUE9S VElPTiBPRjwvbGl0ZXJhbD4gY2xhdXNlLCBhbmQgeW91ciB1cGRhdGUgd2lsbAogICAgb25s eSBhZmZlY3Qgcm93cyB0aGF0IG92ZXJsYXAgdGhlIGdpdmVuIGludGVydmFsLiBGdXJ0aGVy bW9yZSwgaWYgYSByb3cncyBzcGFuCiAgICBleHRlbmRzIG91dHNpZGUgdGhlIDxsaXRlcmFs PkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBib3VuZHMsIHRoZW4geW91ciB1cGRhdGUKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9j YXRhbG9nL01ha2VmaWxlCmluZGV4IDE1ODlhNzVmZDUzLi4zYjdhZjk2NTAzMiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL01ha2VmaWxlCkBAIC0zOSw2ICszOSw3IEBAIE9CSlMgPSBcCiAJcGdfbmFtZXNw YWNlLm8gXAogCXBnX29wZXJhdG9yLm8gXAogCXBnX3BhcmFtZXRlcl9hY2wubyBcCisJcGdf cGVyaW9kLm8gXAogCXBnX3Byb2MubyBcCiAJcGdfcHVibGljYXRpb24ubyBcCiAJcGdfcmFu Z2UubyBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCBhNDRjY2VlM2I2OC4uZDU3YzRmYWQ1 MmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwpAQCAtMjgyMiw2ICsyODIyLDcgQEAgYWNsY2hl Y2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQlj YXNlIE9CSkVDVF9ERUZBVUxUOgogCQkJCQljYXNlIE9CSkVDVF9ERUZBQ0w6CiAJCQkJCWNh c2UgT0JKRUNUX0RPTUNPTlNUUkFJTlQ6CisJCQkJCWNhc2UgT0JKRUNUX1BFUklPRDoKIAkJ CQkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fTkFNRVNQQUNFOgogCQkJCQljYXNlIE9CSkVD VF9QVUJMSUNBVElPTl9SRUw6CiAJCQkJCWNhc2UgT0JKRUNUX1JPTEU6CkBAIC0yOTYzLDYg KzI5NjQsNyBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBl IG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFDTDoKIAkJCQkJY2FzZSBPQkpFQ1Rf RE9NQ09OU1RSQUlOVDoKIAkJCQkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKKwkJCQkJ Y2FzZSBPQkpFQ1RfUEVSSU9EOgogCQkJCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1F U1BBQ0U6CiAJCQkJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCQkJY2FzZSBP QkpFQ1RfUk9MRToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5j eS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggMDQ4OWNiYWJj YjguLmM3ZjI2YmM3MTg5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVu ZGVuY3kuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtNDgs NiArNDgsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX29wZmFtaWx5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wYXJhbWV0 ZXJfYWNsLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wZXJpb2QuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3BvbGljeS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfcHVibGljYXRpb24uaCIKQEAgLTYyMiw2ICs2MjMsMTUgQEAg ZmluZERlcGVuZGVudE9iamVjdHMoY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJ CQkJcmV0dXJuOwogCQkJCQl9CiAKKwkJCQkJLyoKKwkJCQkJICogSWYgYSB0YWJsZSBhdHRy aWJ1dGUgaXMgYW4gaW50ZXJuYWwgcGFydCBvZiBzb21ldGhpbmcgZWxzZQorCQkJCQkgKiAo ZS5nLiB0aGUgR0VORVJBVEVEIGNvbHVtbiB1c2VkIGJ5IGEgUEVSSU9EKSwKKwkJCQkJICog YW5kIHdlIGFyZSBkZWxldGluZyB0aGUgd2hvbGUgdGFibGUsCisJCQkJCSAqIHRoZW4gaXQn cyBva2F5LgorCQkJCQkgKi8KKwkJCQkJaWYgKGZvdW5kRGVwLT5vYmpzdWJpZCAmJiAhb2Jq ZWN0LT5vYmplY3RTdWJJZCkKKwkJCQkJCWJyZWFrOworCiAJCQkJCS8qCiAJCQkJCSAqIFdl IHBvc3Rwb25lIGFjdHVhbGx5IGlzc3VpbmcgdGhlIGVycm9yIG1lc3NhZ2UgdW50aWwKIAkJ CQkJICogYWZ0ZXIgdGhpcyBsb29wLCBzbyB0aGF0IHdlIGNhbiBtYWtlIHRoZSBiZWhhdmlv cgpAQCAtMTQwMCw2ICsxNDEwLDEwIEBAIGRvRGVsZXRpb24oY29uc3QgT2JqZWN0QWRkcmVz cyAqb2JqZWN0LCBpbnQgZmxhZ3MpCiAJCQlSZW1vdmVBdHRyRGVmYXVsdEJ5SWQob2JqZWN0 LT5vYmplY3RJZCk7CiAJCQlicmVhazsKIAorCQljYXNlIFBlcmlvZFJlbGF0aW9uSWQ6CisJ CQlSZW1vdmVQZXJpb2RCeUlkKG9iamVjdC0+b2JqZWN0SWQpOworCQkJYnJlYWs7CisKIAkJ Y2FzZSBMYXJnZU9iamVjdFJlbGF0aW9uSWQ6CiAJCQlMYXJnZU9iamVjdERyb3Aob2JqZWN0 LT5vYmplY3RJZCk7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvaGVhcC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKaW5kZXggNzhlNTkzODRk MWMuLmQzYTY2NzAzOWRkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAu YworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwpAQCAtNDksNiArNDksNyBAQAog I2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19vcGNsYXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wYXJ0aXRpb25lZF90YWJsZS5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcGVyaW9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19zdGF0aXN0aWMuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbl9yZWwu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKQEAgLTIwNjIsNiArMjA2 Myw4MCBAQCBTZXRBdHRyTWlzc2luZyhPaWQgcmVsaWQsIGNoYXIgKmF0dG5hbWUsIGNoYXIg KnZhbHVlKQogCXRhYmxlX2Nsb3NlKHRhYmxlcmVsLCBBY2Nlc3NFeGNsdXNpdmVMb2NrKTsK IH0KIAorLyoKKyAqIFN0b3JlIGEgcGVyaW9kIG9mIHJlbGF0aW9uIHJlbC4KKyAqCisgKiBS ZXR1cm5zIHRoZSBPSUQgb2YgdGhlIG5ldyBwZ19wZXJpb2QgdHVwbGUuCisgKi8KK09pZAor U3RvcmVQZXJpb2QoUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpwZXJpb2RuYW1lLCBBdHRy TnVtYmVyIHN0YXJ0bnVtLAorCQkJQXR0ck51bWJlciBlbmRudW0sIEF0dHJOdW1iZXIgcmFu Z2VudW0sIE9pZCBjb25vaWQpCit7CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19wZXJpb2Rd OworCWJvb2wJCW51bGxzW05hdHRzX3BnX3BlcmlvZF07CisJUmVsYXRpb24JcGdfcGVyaW9k OworCUhlYXBUdXBsZQl0dXBsZTsKKwlPaWQJCQlvaWQ7CisJTmFtZURhdGEJcGVybmFtZTsK KwlPYmplY3RBZGRyZXNzCW15c2VsZiwgcmVmZXJlbmNlZDsKKworCUFzc2VydChyYW5nZW51 bSAhPSBJbnZhbGlkQXR0ck51bWJlcik7CisKKwluYW1lc3RyY3B5KCZwZXJuYW1lLCBwZXJp b2RuYW1lKTsKKworCU1lbVNldCh2YWx1ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsKKwlNZW1T ZXQobnVsbHMsIGZhbHNlLCBzaXplb2YobnVsbHMpKTsKKworCXBnX3BlcmlvZCA9IHRhYmxl X29wZW4oUGVyaW9kUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlvaWQgPSBH ZXROZXdPaWRXaXRoSW5kZXgocGdfcGVyaW9kLCBBdHRyRGVmYXVsdE9pZEluZGV4SWQsIEFu dW1fcGdfcGVyaW9kX29pZCk7CisJdmFsdWVzW0FudW1fcGdfcGVyaW9kX29pZCAtIDFdID0g T2JqZWN0SWRHZXREYXR1bShvaWQpOworCXZhbHVlc1tBbnVtX3BnX3BlcmlvZF9wZXJuYW1l IC0gMV0gPSBOYW1lR2V0RGF0dW0oJnBlcm5hbWUpOworCXZhbHVlc1tBbnVtX3BnX3Blcmlv ZF9wZXJyZWxpZCAtIDFdID0gUmVsYXRpb25HZXRSZWxpZChyZWwpOworCXZhbHVlc1tBbnVt X3BnX3BlcmlvZF9wZXJzdGFydCAtIDFdID0gc3RhcnRudW07CisJdmFsdWVzW0FudW1fcGdf cGVyaW9kX3BlcmVuZCAtIDFdID0gZW5kbnVtOworCXZhbHVlc1tBbnVtX3BnX3BlcmlvZF9w ZXJyYW5nZSAtIDFdID0gcmFuZ2VudW07CisJdmFsdWVzW0FudW1fcGdfcGVyaW9kX3BlcmNv bnN0cmFpbnQgLSAxXSA9IGNvbm9pZDsKKworCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKFJl bGF0aW9uR2V0RGVzY3IocGdfcGVyaW9kKSwgdmFsdWVzLCBudWxscyk7CisJQ2F0YWxvZ1R1 cGxlSW5zZXJ0KHBnX3BlcmlvZCwgdHVwbGUpOworCisJT2JqZWN0QWRkcmVzc1NldChteXNl bGYsIFBlcmlvZFJlbGF0aW9uSWQsIG9pZCk7CisKKwkvKiBEcm9wIHRoZSBwZXJpb2Qgd2hl biB0aGUgdGFibGUgaXMgZHJvcHBlZC4gKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5j ZWQsIFJlbGF0aW9uUmVsYXRpb25JZCwgUmVsYXRpb25HZXRSZWxpZChyZWwpKTsKKwlyZWNv cmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfQVVUTyk7 CisKKwkvKiBGb3JiaWQgZHJvcHBpbmcgdGhlIGNvbHVtbnMgb2YgdGhlIHBlcmlvZC4gKi8K KwlPYmplY3RBZGRyZXNzU3ViU2V0KHJlZmVyZW5jZWQsIFJlbGF0aW9uUmVsYXRpb25JZCwg UmVsYXRpb25HZXRSZWxpZChyZWwpLCBzdGFydG51bSk7CisJcmVjb3JkRGVwZW5kZW5jeU9u KCZteXNlbGYsICZyZWZlcmVuY2VkLCBERVBFTkRFTkNZX05PUk1BTCk7CisJT2JqZWN0QWRk cmVzc1N1YlNldChyZWZlcmVuY2VkLCBSZWxhdGlvblJlbGF0aW9uSWQsIFJlbGF0aW9uR2V0 UmVsaWQocmVsKSwgZW5kbnVtKTsKKwlyZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJl ZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsKKworCS8qCisJICogVGhlIHJhbmdlIGNv bHVtbiBpcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsCisJICogYnV0IHdlIGNhbid0IHVz ZSBERVBFTkRFTkNZX0lOVEVSTkFMCisJICogYmVjYXVzZSBkcm9wcGluZyB0aGUgdGFibGUg d2lsbCBjaGVjayBmb3IgZGVwZW5kZW5jaWVzIG9uIGFsbCBzdWJvYmplY3RzIHRvbworCSAq IChpbiBmaW5kRGVwZW5kZW50T2JqZWN0cykuCisJICogQnV0IGlmIHdlIG1ha2UgYW4gQVVU TyBkZXBlbmRlbmN5IG9uZSB3YXkgd2Ugd2lsbCBhdXRvLWRyb3AgdGhlIGNvbHVtbgorCSAq IHdoZW4gd2UgZHJvcCB0aGUgUEVSSU9ELAorCSAqIGFuZCBhIE5PUk1BTCBkZXBlbmRlbmN5 IHRoZSBvdGhlciB3YXkgd2Ugd2lsbCBmb3JiaWQgZHJvcHBpbmcgdGhlIGNvbHVtbiBkaXJl Y3RseS4KKwkgKi8KKwlPYmplY3RBZGRyZXNzU3ViU2V0KHJlZmVyZW5jZWQsIFJlbGF0aW9u UmVsYXRpb25JZCwgUmVsYXRpb25HZXRSZWxpZChyZWwpLCByYW5nZW51bSk7CisJcmVjb3Jk RGVwZW5kZW5jeU9uKCZyZWZlcmVuY2VkLCAmbXlzZWxmLCBERVBFTkRFTkNZX0lOVEVSTkFM KTsKKworCS8qCisJICogVGhlIGNvbnN0cmFpbnQgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0 YWlsLCBzbyB3ZSBtYXJrIGl0IGFzIHN1Y2guCisJICogKE5vdGUgdGhhdCBteXNlbGYgYW5k IHJlZmVyZW5jZWQgYXJlIHJldmVyc2VkIGZvciB0aGlzIG9uZS4pCisJICovCisJT2JqZWN0 QWRkcmVzc1NldChyZWZlcmVuY2VkLCBDb25zdHJhaW50UmVsYXRpb25JZCwgY29ub2lkKTsK KwlyZWNvcmREZXBlbmRlbmN5T24oJnJlZmVyZW5jZWQsICZteXNlbGYsIERFUEVOREVOQ1lf SU5URVJOQUwpOworCisJdGFibGVfY2xvc2UocGdfcGVyaW9kLCBSb3dFeGNsdXNpdmVMb2Nr KTsKKworCXJldHVybiBvaWQ7Cit9CisKIC8qCiAgKiBTdG9yZSBhIGNoZWNrLWNvbnN0cmFp bnQgZXhwcmVzc2lvbiBmb3IgdGhlIGdpdmVuIHJlbGF0aW9uLgogICoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3JtYXRpb25fc2NoZW1hLnNxbCBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvaW5mb3JtYXRpb25fc2NoZW1hLnNxbAppbmRleCBjNDE0NTEzMWNlNC4u NDFmMWZiMzY3M2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3JtYXRp b25fc2NoZW1hLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZm9ybWF0aW9uX3Nj aGVtYS5zcWwKQEAgLTEyMTEsNyArMTIxMSwyOCBAQCBHUkFOVCBTRUxFQ1QgT04gcGFyYW1l dGVycyBUTyBQVUJMSUM7CiAgKiBQRVJJT0RTIHZpZXcKICAqLwogCi0tLSBmZWF0dXJlIG5v dCBzdXBwb3J0ZWQKK0NSRUFURSBWSUVXIHBlcmlvZHMgQVMKKyAgICBTRUxFQ1QgY3VycmVu dF9kYXRhYmFzZSgpOjppbmZvcm1hdGlvbl9zY2hlbWEuc3FsX2lkZW50aWZpZXIgQVMgdGFi bGVfY2F0YWxvZywKKyAgICAgICAgICAgbmMubnNwbmFtZTo6aW5mb3JtYXRpb25fc2NoZW1h LnNxbF9pZGVudGlmaWVyIEFTIHRhYmxlX3NjaGVtYSwKKyAgICAgICAgICAgYy5yZWxuYW1l OjppbmZvcm1hdGlvbl9zY2hlbWEuc3FsX2lkZW50aWZpZXIgQVMgdGFibGVfbmFtZSwKKyAg ICAgICAgICAgcC5wZXJuYW1lOjppbmZvcm1hdGlvbl9zY2hlbWEuc3FsX2lkZW50aWZpZXIg QVMgcGVyaW9kX25hbWUsCisgICAgICAgICAgIENBU0UgV0hFTiBwZ19oYXNfcm9sZShjLnJl bG93bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAgICAgT1IgaGFzX2NvbHVtbl9wcml2 aWxlZ2Uoc2EuYXR0cmVsaWQsIHNhLmF0dG51bSwgJ1NFTEVDVCwgSU5TRVJULCBVUERBVEUs IFJFRkVSRU5DRVMnKQorICAgICAgICAgICAgICAgIFRIRU4gc2EuYXR0bmFtZTo6aW5mb3Jt YXRpb25fc2NoZW1hLnNxbF9pZGVudGlmaWVyCisgICAgICAgICAgIEVORCBBUyBzdGFydF9j b2x1bW5fbmFtZSwKKyAgICAgICAgICAgQ0FTRSBXSEVOIHBnX2hhc19yb2xlKGMucmVsb3du ZXIsICdVU0FHRScpCisgICAgICAgICAgICAgICAgICBPUiBoYXNfY29sdW1uX3ByaXZpbGVn ZShlYS5hdHRyZWxpZCwgZWEuYXR0bnVtLCAnU0VMRUNULCBJTlNFUlQsIFVQREFURSwgUkVG RVJFTkNFUycpCisgICAgICAgICAgICAgICAgVEhFTiBlYS5hdHRuYW1lOjppbmZvcm1hdGlv bl9zY2hlbWEuc3FsX2lkZW50aWZpZXIKKyAgICAgICAgICAgRU5EIEFTIGVuZF9jb2x1bW5f bmFtZQorICAgIEZST00gcGdfcGVyaW9kIEFTIHAKKyAgICBKT0lOIHBnX2NsYXNzIEFTIGMg T04gYy5vaWQgPSBwLnBlcnJlbGlkCisgICAgSk9JTiBwZ19uYW1lc3BhY2UgQVMgbmMgT04g bmMub2lkID0gYy5yZWxuYW1lc3BhY2UKKyAgICBKT0lOIHBnX2F0dHJpYnV0ZSBBUyBzYSBP TiAoc2EuYXR0cmVsaWQsIHNhLmF0dG51bSkgPSAocC5wZXJyZWxpZCwgcC5wZXJzdGFydCkK KyAgICBKT0lOIHBnX2F0dHJpYnV0ZSBBUyBlYSBPTiAoZWEuYXR0cmVsaWQsIGVhLmF0dG51 bSkgPSAocC5wZXJyZWxpZCwgcC5wZXJlbmQpCisgICAgV0hFUkUgTk9UIHBnX2lzX290aGVy X3RlbXBfc2NoZW1hKG5jLm9pZCkKKyAgICAgIEFORCBjLnJlbGtpbmQgSU4gKCdyJywgJ3Yn KTsKKworR1JBTlQgU0VMRUNUIE9OIHBlcmlvZHMgVE8gUFVCTElDOwogCiAKIC8qCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9tZXNvbi5idWlsZAppbmRleCAyZjNkZWQ4YTBlNy4uYTM3MmZiMGFhZTggMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZApAQCAtMjYsNiArMjYsNyBAQCBiYWNrZW5kX3Nv dXJjZXMgKz0gZmlsZXMoCiAgICdwZ19uYW1lc3BhY2UuYycsCiAgICdwZ19vcGVyYXRvci5j JywKICAgJ3BnX3BhcmFtZXRlcl9hY2wuYycsCisgICdwZ19wZXJpb2QuYycsCiAgICdwZ19w cm9jLmMnLAogICAncGdfcHVibGljYXRpb24uYycsCiAgICdwZ19yYW5nZS5jJywKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKaW5kZXggODVhN2I3ZTY0MWEuLjQ1YjYyOGRj NTU4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwpAQCAtNDUsNiArNDUs NyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX29wZmFtaWx5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wYXJhbWV0ZXJfYWNs LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wZXJpb2QuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3BvbGljeS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfcHVibGljYXRpb24uaCIKQEAgLTcyNyw2ICs3MjgsOSBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IG9iamVjdF90eXBlX21hcAogCXsKIAkJImRvbWFpbiBjb25zdHJhaW50 IiwgT0JKRUNUX0RPTUNPTlNUUkFJTlQKIAl9LAorCXsKKwkJInBlcmlvZCIsIE9CSkVDVF9Q RVJJT0QKKwl9LAogCXsKIAkJImNvbnZlcnNpb24iLCBPQkpFQ1RfQ09OVkVSU0lPTgogCX0s CkBAIC05NzAsNiArOTc0LDcgQEAgZ2V0X29iamVjdF9hZGRyZXNzKE9iamVjdFR5cGUgb2Jq dHlwZSwgTm9kZSAqb2JqZWN0LAogCQkJY2FzZSBPQkpFQ1RfVFJJR0dFUjoKIAkJCWNhc2Ug T0JKRUNUX1RBQkNPTlNUUkFJTlQ6CiAJCQljYXNlIE9CSkVDVF9QT0xJQ1k6CisJCQljYXNl IE9CSkVDVF9QRVJJT0Q6CiAJCQkJYWRkcmVzcyA9IGdldF9vYmplY3RfYWRkcmVzc19yZWxv YmplY3Qob2JqdHlwZSwgY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSwKIAkJCQkJCQkJCQkJCQkg ICAmcmVsYXRpb24sIG1pc3Npbmdfb2spOwogCQkJCWJyZWFrOwpAQCAtMTQ2OCw2ICsxNDcz LDEzIEBAIGdldF9vYmplY3RfYWRkcmVzc19yZWxvYmplY3QoT2JqZWN0VHlwZSBvYmp0eXBl LCBMaXN0ICpvYmplY3QsCiAJCQkJSW52YWxpZE9pZDsKIAkJCWFkZHJlc3Mub2JqZWN0U3Vi SWQgPSAwOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1BFUklPRDoKKwkJCWFkZHJlc3Mu Y2xhc3NJZCA9IFBlcmlvZFJlbGF0aW9uSWQ7CisJCQlhZGRyZXNzLm9iamVjdElkID0gcmVs YXRpb24gPworCQkJCWdldF9yZWxhdGlvbl9wZXJpb2Rfb2lkKHJlbG9pZCwgZGVwbmFtZSwg bWlzc2luZ19vaykgOgorCQkJCUludmFsaWRPaWQ7CisJCQlhZGRyZXNzLm9iamVjdFN1Yklk ID0gMDsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2du aXplZCBvYmplY3QgdHlwZTogJWQiLCAoaW50KSBvYmp0eXBlKTsKIAl9CkBAIC0yMjg1LDYg KzIyOTcsNyBAQCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJ Y2FzZSBPQkpFQ1RfUlVMRToKIAkJY2FzZSBPQkpFQ1RfVFJJR0dFUjoKIAkJY2FzZSBPQkpF Q1RfVEFCQ09OU1RSQUlOVDoKKwkJY2FzZSBPQkpFQ1RfUEVSSU9EOgogCQljYXNlIE9CSkVD VF9PUENMQVNTOgogCQljYXNlIE9CSkVDVF9PUEZBTUlMWToKIAkJCW9iam5vZGUgPSAoTm9k ZSAqKSBuYW1lOwpAQCAtMjM5NSw2ICsyNDA4LDcgQEAgY2hlY2tfb2JqZWN0X293bmVyc2hp cChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFkZHJlc3MgYWRkcmVz cywKIAkJY2FzZSBPQkpFQ1RfVFJJR0dFUjoKIAkJY2FzZSBPQkpFQ1RfUE9MSUNZOgogCQlj YXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgorCQljYXNlIE9CSkVDVF9QRVJJT0Q6CiAJCQlp ZiAoIW9iamVjdF9vd25lcmNoZWNrKFJlbGF0aW9uUmVsYXRpb25JZCwgUmVsYXRpb25HZXRS ZWxpZChyZWxhdGlvbiksIHJvbGVpZCkpCiAJCQkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tf Tk9UX09XTkVSLCBvYmp0eXBlLAogCQkJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1l KHJlbGF0aW9uKSk7CkBAIC0zMDQzLDYgKzMwNTcsMzggQEAgZ2V0T2JqZWN0RGVzY3JpcHRp b24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJ YnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBQZXJpb2RSZWxhdGlvbklkOgorCQkJeworCQkJCUhl YXBUdXBsZQlwZXJUdXA7CisJCQkJRm9ybV9wZ19wZXJpb2QgcGVyOworCisJCQkJcGVyVHVw ID0gU2VhcmNoU3lzQ2FjaGUxKFBFUklPRE9JRCwKKwkJCQkJCQkJCQkgT2JqZWN0SWRHZXRE YXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHBl clR1cCkpCisJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBwZXJp b2QgJXUiLAorCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCQkJCXBlciA9IChGb3JtX3Bn X3BlcmlvZCkgR0VUU1RSVUNUKHBlclR1cCk7CisKKwkJCQlpZiAoT2lkSXNWYWxpZChwZXIt PnBlcnJlbGlkKSkKKwkJCQl7CisJCQkJCVN0cmluZ0luZm9EYXRhIHJlbDsKKworCQkJCQlp bml0U3RyaW5nSW5mbygmcmVsKTsKKwkJCQkJZ2V0UmVsYXRpb25EZXNjcmlwdGlvbigmcmVs LCBwZXItPnBlcnJlbGlkLCBmYWxzZSk7CisJCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZl ciwgXygicGVyaW9kICVzIG9uICVzIiksCisJCQkJCQkJCQkgTmFtZVN0cihwZXItPnBlcm5h bWUpLCByZWwuZGF0YSk7CisJCQkJCXBmcmVlKHJlbC5kYXRhKTsKKwkJCQl9CisJCQkJZWxz ZQorCQkJCXsKKwkJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJwZXJpb2QgJXMi KSwKKwkJCQkJCQkJCSBOYW1lU3RyKHBlci0+cGVybmFtZSkpOworCQkJCX0KKworCQkJCVJl bGVhc2VTeXNDYWNoZShwZXJUdXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2UgQ29u dmVyc2lvblJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJSGVhcFR1cGxlCWNvblR1cDsKQEAgLTQ0 NzQsNiArNDUyMCwxMCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3QgT2JqZWN0 QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJCQkJCQkJIG1pc3Npbmdf b2spOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBQZXJpb2RSZWxhdGlvbklkOgorCQkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAicGVyaW9kIik7CisJCQlicmVhazsKKwogCQlj YXNlIENvbnZlcnNpb25SZWxhdGlvbklkOgogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygm YnVmZmVyLCAiY29udmVyc2lvbiIpOwogCQkJYnJlYWs7CkBAIC00OTc5LDYgKzUwMjksMjgg QEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3Qs CiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBQZXJpb2RSZWxhdGlvbklkOgorCQkJewor CQkJCUhlYXBUdXBsZQlwZXJUdXA7CisJCQkJRm9ybV9wZ19wZXJpb2QgcGVyOworCisJCQkJ cGVyVHVwID0gU2VhcmNoU3lzQ2FjaGUxKFBFUklPRE9JRCwKKwkJCQkJCQkJCQkgT2JqZWN0 SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1Zh bGlkKHBlclR1cCkpCisJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZv ciBwZXJpb2QgJXUiLAorCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCQkJCXBlciA9IChG b3JtX3BnX3BlcmlvZCkgR0VUU1RSVUNUKHBlclR1cCk7CisKKwkJCQlhcHBlbmRTdHJpbmdJ bmZvKCZidWZmZXIsICIlcyBvbiAiLAorCQkJCQkJCQkgcXVvdGVfaWRlbnRpZmllcihOYW1l U3RyKHBlci0+cGVybmFtZSkpKTsKKwkJCQlnZXRSZWxhdGlvbklkZW50aXR5KCZidWZmZXIs IHBlci0+cGVycmVsaWQsIG9iam5hbWUsIGZhbHNlKTsKKwkJCQlpZiAob2JqbmFtZSkKKwkJ CQkJKm9iam5hbWUgPSBsYXBwZW5kKCpvYmpuYW1lLCBwc3RyZHVwKE5hbWVTdHIocGVyLT5w ZXJuYW1lKSkpOworCisJCQkJUmVsZWFzZVN5c0NhY2hlKHBlclR1cCk7CisJCQkJYnJlYWs7 CisJCQl9CisKIAkJY2FzZSBDb252ZXJzaW9uUmVsYXRpb25JZDoKIAkJCXsKIAkJCQlIZWFw VHVwbGUJY29uVHVwOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wZXJp b2QuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcGVyaW9kLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQ2NWI1YjY3NWUzCi0tLSAvZGV2L251bGwKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wZXJpb2QuYwpAQCAtMCwwICsxLDEzMiBAQAor LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfcGVyaW9kLmMKKyAqCSAgcm91dGlu ZXMgdG8gc3VwcG9ydCBtYW5pcHVsYXRpb24gb2YgdGhlIHBnX3BlcmlvZCByZWxhdGlvbgor ICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIxLCBQb3N0Z3JlU1FMIEds b2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJ ICBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3BlcmlvZC5jCisgKgorICotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKi8KKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiYWNjZXNz L2dlbmFtLmgiCisjaW5jbHVkZSAiYWNjZXNzL2hlYXBhbS5oIgorI2luY2x1ZGUgImFjY2Vz cy9odHVwX2RldGFpbHMuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCisjaW5j bHVkZSAiY2F0YWxvZy9wZ19wZXJpb2QuaCIKKyNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5o IgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3JlbC5o IgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKworLyoKKyAqIERlbGV0ZSBhIHNp bmdsZSBwZXJpb2QgcmVjb3JkLgorICovCit2b2lkCitSZW1vdmVQZXJpb2RCeUlkKE9pZCBw ZXJpb2RJZCkKK3sKKwlSZWxhdGlvbglwZ19wZXJpb2Q7CisJSGVhcFR1cGxlCXR1cDsKKwor CXBnX3BlcmlvZCA9IHRhYmxlX29wZW4oUGVyaW9kUmVsYXRpb25JZCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoUEVSSU9ET0lELCBPYmplY3RJZEdl dERhdHVtKHBlcmlvZElkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpIC8qIHNo b3VsZCBub3QgaGFwcGVuICovCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVk IGZvciBwZXJpb2QgJXUiLCBwZXJpb2RJZCk7CisKKwkvKiBGcnkgdGhlIHBlcmlvZCBpdHNl bGYgKi8KKwlDYXRhbG9nVHVwbGVEZWxldGUocGdfcGVyaW9kLCAmdHVwLT50X3NlbGYpOwor CisJLyogQ2xlYW4gdXAgKi8KKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwl0YWJsZV9jbG9z ZShwZ19wZXJpb2QsIFJvd0V4Y2x1c2l2ZUxvY2spOworfQorCisvKgorICogZ2V0X3JlbGF0 aW9uX3BlcmlvZF9vaWQKKyAqCQlGaW5kIGEgcGVyaW9kIG9uIHRoZSBzcGVjaWZpZWQgcmVs YXRpb24gd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuCisgKgkJUmV0dXJucyBwZXJpb2QncyBP SUQuCisgKi8KK09pZAorZ2V0X3JlbGF0aW9uX3BlcmlvZF9vaWQoT2lkIHJlbGlkLCBjb25z dCBjaGFyICpwZXJuYW1lLCBib29sIG1pc3Npbmdfb2spCit7CisJUmVsYXRpb24JcGdfcGVy aW9kOworCUhlYXBUdXBsZQl0dXBsZTsKKwlTeXNTY2FuRGVzYyBzY2FuOworCVNjYW5LZXlE YXRhIHNrZXlbMl07CisJT2lkCQkJcGVyT2lkID0gSW52YWxpZE9pZDsKKworCS8qIEZldGNo IHRoZSBwZXJpb2QgdHVwbGUgZnJvbSBwZ19wZXJpb2QuICovCisJcGdfcGVyaW9kID0gdGFi bGVfb3BlbihQZXJpb2RSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJU2Nhbktl eUluaXQoJnNrZXlbMF0sCisJCQkJQW51bV9wZ19wZXJpb2RfcGVycmVsaWQsCisJCQkJQlRF cXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCU9iamVjdElkR2V0RGF0dW0ocmVs aWQpKTsKKwlTY2FuS2V5SW5pdCgmc2tleVsxXSwKKwkJCQlBbnVtX3BnX3BlcmlvZF9wZXJu YW1lLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9OQU1FRVEsCisJCQkJQ1N0cmlu Z0dldERhdHVtKHBlcm5hbWUpKTsKKworCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocGdf cGVyaW9kLCBQZXJpb2RSZWxpZE5hbWVJbmRleElkLCB0cnVlLAorCQkJCQkJCSAgTlVMTCwg Miwgc2tleSk7CisKKwkvKiBUaGVyZSBjYW4gYmUgYXQgbW9zdCBvbmUgbWF0Y2hpbmcgcm93 ICovCisJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0KHNj YW4pKSkKKwkJcGVyT2lkID0gKChGb3JtX3BnX3BlcmlvZCkgR0VUU1RSVUNUKHR1cGxlKSkt Pm9pZDsKKworCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisKKwkvKiBJZiBubyBzdWNoIHBl cmlvZCBleGlzdHMsIGNvbXBsYWluICovCisJaWYgKCFPaWRJc1ZhbGlkKHBlck9pZCkgJiYg IW1pc3Npbmdfb2spCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9V TkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJwZXJpb2QgXCIlc1wiIGZvciB0YWJs ZSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJcGVybmFtZSwgZ2V0X3JlbF9uYW1l KHJlbGlkKSkpKTsKKworCXRhYmxlX2Nsb3NlKHBnX3BlcmlvZCwgQWNjZXNzU2hhcmVMb2Nr KTsKKworCXJldHVybiBwZXJPaWQ7Cit9CisKKy8qCisgKiBnZXRfcGVyaW9kX2F0dG5vcwor ICoJCUdldCB0aGUgYXR0bm8gb2YgdGhlIEdFTkVSQVRFRCByYW5nZXR5cGUgY29sdW1uCisg KgkJZm9yIGFsbCBQRVJJT0RzIGluIHRoaXMgdGFibGUuCisgKi8KK2V4dGVybiBCaXRtYXBz ZXQKKypnZXRfcGVyaW9kX2F0dG5vcyhPaWQgcmVsaWQpCit7CisJQml0bWFwc2V0ICphdHRu b3MgPSBOVUxMOworCVJlbGF0aW9uCXBnX3BlcmlvZDsKKwlIZWFwVHVwbGUJdHVwbGU7CisJ U3lzU2NhbkRlc2Mgc2NhbjsKKwlTY2FuS2V5RGF0YSBza2V5WzFdOworCisJcGdfcGVyaW9k ID0gdGFibGVfb3BlbihQZXJpb2RSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJ U2NhbktleUluaXQoJnNrZXlbMF0sCisJCQkJQW51bV9wZ19wZXJpb2RfcGVycmVsaWQsCisJ CQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCU9iamVjdElkR2V0RGF0 dW0ocmVsaWQpKTsKKworCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocGdfcGVyaW9kLCBQ ZXJpb2RSZWxpZE5hbWVJbmRleElkLCB0cnVlLAorCQkJCQkJCSAgTlVMTCwgMSwgc2tleSk7 CisKKwl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSA9IHN5c3RhYmxlX2dldG5leHQo c2NhbikpKQorCXsKKwkJRm9ybV9wZ19wZXJpb2QgcGVyaW9kID0gKEZvcm1fcGdfcGVyaW9k KSBHRVRTVFJVQ1QodHVwbGUpOworCisJCWF0dG5vcyA9IGJtc19hZGRfbWVtYmVyKGF0dG5v cywgcGVyaW9kLT5wZXJyYW5nZSk7CisJfQorCisJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsK Kwl0YWJsZV9jbG9zZShwZ19wZXJpb2QsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlyZXR1cm4g YXR0bm9zOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVy ZXMudHh0IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0CmluZGV4IGMw MDJmMzcyMDJmLi45YTc0YjBmYTI0MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9zcWxfZmVhdHVyZXMudHh0CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3FsX2ZlYXR1 cmVzLnR4dApAQCAtNDQ4LDcgKzQ0OCw3IEBAIFQxNzYJU2VxdWVuY2UgZ2VuZXJhdG9yIHN1 cHBvcnQJCQlOTwlzdXBwb3J0ZWQgZXhjZXB0IGZvciBORVhUIFZBTFVFIEZPUgogVDE3NwlT ZXF1ZW5jZSBnZW5lcmF0b3Igc3VwcG9ydDogc2ltcGxlIHJlc3RhcnQgb3B0aW9uCQkJWUVT CQogVDE3OAlJZGVudGl0eSBjb2x1bW5zOiBzaW1wbGUgcmVzdGFydCBvcHRpb24JCQlZRVMJ CiBUMTgwCVN5c3RlbS12ZXJzaW9uZWQgdGFibGVzCQkJTk8JCi1UMTgxCUFwcGxpY2F0aW9u LXRpbWUgcGVyaW9kIHRhYmxlcwkJCU5PCQorVDE4MQlBcHBsaWNhdGlvbi10aW1lIHBlcmlv ZCB0YWJsZXMJCQlZRVMJCiBUMTkxCVJlZmVyZW50aWFsIGFjdGlvbiBSRVNUUklDVAkJCVlF UwkKIFQyMDAJVHJpZ2dlciBEREwJCQlOTwlzaW1pbGFyIGJ1dCBub3QgZnVsbHkgY29tcGF0 aWJsZQogVDIwMQlDb21wYXJhYmxlIGRhdGEgdHlwZXMgZm9yIHJlZmVyZW50aWFsIGNvbnN0 cmFpbnRzCQkJWUVTCQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29tbWVu dC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29tbWVudC5jCmluZGV4IGU5ZDUwZmM3ZDg3 Li4wNWZlZmI1YjVjZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29tbWVu dC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbW1lbnQuYwpAQCAtMTAyLDYgKzEw MiwxNiBAQCBDb21tZW50T2JqZWN0KENvbW1lbnRTdG10ICpzdG10KQogCQkJCQkJCQlSZWxh dGlvbkdldFJlbGF0aW9uTmFtZShyZWxhdGlvbikpLAogCQkJCQkJIGVycmRldGFpbF9yZWxr aW5kX25vdF9zdXBwb3J0ZWQocmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCkpKTsKIAkJCWJy ZWFrOworCisJCWNhc2UgT0JKRUNUX1BFUklPRDoKKwkJCS8qIFBlcmlvZHMgY2FuIG9ubHkg Z28gb24gdGFibGVzICovCisJCQlpZiAocmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCAhPSBS RUxLSU5EX1JFTEFUSU9OKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShF UlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBu b3QgYSB0YWJsZSIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbGF0aW9u KSkpKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQlicmVhazsKIAl9CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvZHJvcGNtZHMuYwppbmRleCA4NWVlYzdlMzk0Ny4uM2Q3ODc5ZjkzYzEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvZHJvcGNtZHMuYwpAQCAtNTA0LDYgKzUwNCw3IEBAIGRvZXNfbm90X2V4 aXN0X3NraXBwaW5nKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0KQogCQljYXNl IE9CSkVDVF9ET01DT05TVFJBSU5UOgogCQljYXNlIE9CSkVDVF9MQVJHRU9CSkVDVDoKIAkJ Y2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKKwkJY2FzZSBPQkpFQ1RfUEVSSU9EOgogCQlj YXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CiAJCWNhc2UgT0JKRUNUX1BVQkxJ Q0FUSU9OX1JFTDoKIAkJY2FzZSBPQkpFQ1RfVEFCQ09OU1RSQUlOVDoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2V2ZW50X3RyaWdnZXIuYwppbmRleCA3YTVlZDZiOTg1MC4uZDRkMzZjZmQ1YmIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKQEAgLTIxNzYsNiArMjE3 Niw3IEBAIHN0cmluZ2lmeV9ncmFudF9vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJ Y2FzZSBPQkpFQ1RfT1BDTEFTUzoKIAkJY2FzZSBPQkpFQ1RfT1BFUkFUT1I6CiAJCWNhc2Ug T0JKRUNUX09QRkFNSUxZOgorCQljYXNlIE9CSkVDVF9QRVJJT0Q6CiAJCWNhc2UgT0JKRUNU X1BPTElDWToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT046CiAJCWNhc2UgT0JKRUNUX1BV QkxJQ0FUSU9OX05BTUVTUEFDRToKQEAgLTIyNjAsNiArMjI2MSw3IEBAIHN0cmluZ2lmeV9h ZGVmcHJpdnNfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX09Q RVJBVE9SOgogCQljYXNlIE9CSkVDVF9PUEZBTUlMWToKIAkJY2FzZSBPQkpFQ1RfUEFSQU1F VEVSX0FDTDoKKwkJY2FzZSBPQkpFQ1RfUEVSSU9EOgogCQljYXNlIE9CSkVDVF9QT0xJQ1k6 CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElP Tl9OQU1FU1BBQ0U6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJl bC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwppbmRleCA1NjA3MjczYmY5 Zi4uYWY3MTc3MTc5Y2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xh YmVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwpAQCAtNzksNiAr NzksNyBAQCBTZWNMYWJlbFN1cHBvcnRzT2JqZWN0VHlwZShPYmplY3RUeXBlIG9ianR5cGUp CiAJCWNhc2UgT0JKRUNUX09QRVJBVE9SOgogCQljYXNlIE9CSkVDVF9PUEZBTUlMWToKIAkJ Y2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKKwkJY2FzZSBPQkpFQ1RfUEVSSU9EOgogCQlj YXNlIE9CSkVDVF9QT0xJQ1k6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVTUEFD RToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fUkVMOgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYwppbmRleCBkN2JiMWRmMjU5Yi4uNGE0MzcxN2MyNWUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19sYXJnZW9iamVjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19vcGNsYXNzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19w ZXJpb2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3BvbGljeS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHVibGljYXRpb25fcmVs LmgiCkBAIC0xNTQsNiArMTU1LDExIEBAIHR5cGVkZWYgZW51bSBBbHRlclRhYmxlUGFzcwog CUFUX1BBU1NfT0xEX0lOREVYLAkJCS8qIHJlLWFkZCBleGlzdGluZyBpbmRleGVzICovCiAJ QVRfUEFTU19PTERfQ09OU1RSLAkJCS8qIHJlLWFkZCBleGlzdGluZyBjb25zdHJhaW50cyAq LwogCS8qIFdlIGNvdWxkIHN1cHBvcnQgYSBSRU5BTUUgQ09MVU1OIHBhc3MgaGVyZSwgYnV0 IG5vdCBjdXJyZW50bHkgdXNlZCAqLworCS8qCisJICogV2UgbXVzdCBhZGQgUEVSSU9EcyBh ZnRlciBjb2x1bW5zLCBpbiBjYXNlIHRoZXkgcmVmZXJlbmNlIGEgbmV3bHktYWRkZWQgY29s dW1uLAorCSAqIGFuZCBiZWZvcmUgY29uc3RyYWludHMsIGluIGNhc2UgYSBuZXdseS1hZGRl ZCBQSy9GSyByZWZlcmVuY2VzIHRoZW0uCisJICovCisJQVRfUEFTU19BRERfUEVSSU9ELAkJ CS8qIEFERCBQRVJJT0QgKi8KIAlBVF9QQVNTX0FERF9DT05TVFIsCQkJLyogQUREIGNvbnN0 cmFpbnRzIChpbml0aWFsIGV4YW1pbmF0aW9uKSAqLwogCUFUX1BBU1NfQ09MX0FUVFJTLAkJ CS8qIHNldCBjb2x1bW4gYXR0cmlidXRlcywgZWcgTk9UIE5VTEwgKi8KIAlBVF9QQVNTX0FE RF9JTkRFWENPTlNUUiwJLyogQUREIGluZGV4LWJhc2VkIGNvbnN0cmFpbnRzICovCkBAIC0z NjIsNiArMzY4LDcgQEAgc3RhdGljIHZvaWQgUmFuZ2VWYXJDYWxsYmFja0ZvclRydW5jYXRl KGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwKIAkJCQkJCQkJCQlPaWQgcmVsSWQsIE9pZCBv bGRSZWxJZCwgdm9pZCAqYXJnKTsKIHN0YXRpYyBMaXN0ICpNZXJnZUF0dHJpYnV0ZXMoTGlz dCAqY29sdW1ucywgY29uc3QgTGlzdCAqc3VwZXJzLCBjaGFyIHJlbHBlcnNpc3RlbmNlLAog CQkJCQkJCSBib29sIGlzX3BhcnRpdGlvbiwgTGlzdCAqKnN1cGNvbnN0cik7CitzdGF0aWMg TGlzdCAqTWVyZ2VQZXJpb2RzKGNoYXIgKnJlbG5hbWUsIExpc3QgKnBlcmlvZHMsIExpc3Qg KnRhYmxlRWx0cywgTGlzdCAqc3VwZXJzKTsKIHN0YXRpYyBMaXN0ICpNZXJnZUNoZWNrQ29u c3RyYWludChMaXN0ICpjb25zdHJhaW50cywgY29uc3QgY2hhciAqbmFtZSwgTm9kZSAqZXhw cik7CiBzdGF0aWMgdm9pZCBNZXJnZUNoaWxkQXR0cmlidXRlKExpc3QgKmluaF9jb2x1bW5z LCBpbnQgZXhpc3RfYXR0bm8sIGludCBuZXdjb2xfYXR0bm8sIGNvbnN0IENvbHVtbkRlZiAq bmV3ZGVmKTsKIHN0YXRpYyBDb2x1bW5EZWYgKk1lcmdlSW5oZXJpdGVkQXR0cmlidXRlKExp c3QgKmluaF9jb2x1bW5zLCBpbnQgZXhpc3RfYXR0bm8sIGNvbnN0IENvbHVtbkRlZiAqbmV3 ZGVmKTsKQEAgLTQ0NCw2ICs0NTEsOCBAQCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBBVEV4ZWNB ZGRDb2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLAogCQkJCQkJ CQkJIEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29udGV4dCk7CiBzdGF0aWMgYm9vbCBj aGVja19mb3JfY29sdW1uX25hbWVfY29sbGlzaW9uKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hh ciAqY29sbmFtZSwKIAkJCQkJCQkJCQkJYm9vbCBpZl9ub3RfZXhpc3RzKTsKK3N0YXRpYyBi b29sIGNoZWNrX2Zvcl9wZXJpb2RfbmFtZV9jb2xsaXNpb24oUmVsYXRpb24gcmVsLCBjb25z dCBjaGFyICpwZXJuYW1lLAorCQkJCQkJCQkJCQlib29sIGNvbGV4aXN0cywgYm9vbCBpZl9u b3RfZXhpc3RzKTsKIHN0YXRpYyB2b2lkIGFkZF9jb2x1bW5fZGF0YXR5cGVfZGVwZW5kZW5j eShPaWQgcmVsaWQsIGludDMyIGF0dG51bSwgT2lkIHR5cGlkKTsKIHN0YXRpYyB2b2lkIGFk ZF9jb2x1bW5fY29sbGF0aW9uX2RlcGVuZGVuY3koT2lkIHJlbGlkLCBpbnQzMiBhdHRudW0s IE9pZCBjb2xsaWQpOwogc3RhdGljIHZvaWQgQVRQcmVwRHJvcE5vdE51bGwoUmVsYXRpb24g cmVsLCBib29sIHJlY3Vyc2UsIGJvb2wgcmVjdXJzaW5nKTsKQEAgLTQ2Myw2ICs0NzIsMTIg QEAgc3RhdGljIE9iamVjdEFkZHJlc3MgQVRFeGVjQ29sdW1uRGVmYXVsdChSZWxhdGlvbiBy ZWwsIGNvbnN0IGNoYXIgKmNvbE5hbWUsCiAJCQkJCQkJCQkJIE5vZGUgKm5ld0RlZmF1bHQs IExPQ0tNT0RFIGxvY2ttb2RlKTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIEFURXhlY0Nvb2tl ZENvbHVtbkRlZmF1bHQoUmVsYXRpb24gcmVsLCBBdHRyTnVtYmVyIGF0dG51bSwKIAkJCQkJ CQkJCQkJICAgTm9kZSAqbmV3RGVmYXVsdCk7CitzdGF0aWMgT2JqZWN0QWRkcmVzcyBBVEV4 ZWNBZGRQZXJpb2QoUmVsYXRpb24gcmVsLCBQZXJpb2REZWYgKnBlcmlvZCwKKwkJCQkJCQkJ CSBBbHRlclRhYmxlVXRpbGl0eUNvbnRleHQgKmNvbnRleHQpOworc3RhdGljIHZvaWQgQVRF eGVjRHJvcFBlcmlvZChSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKnBlcmlvZE5hbWUsCisJ CQkJCQkJIERyb3BCZWhhdmlvciBiZWhhdmlvciwKKwkJCQkJCQkgYm9vbCByZWN1cnNlLCBi b29sIHJlY3Vyc2luZywKKwkJCQkJCQkgYm9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBPYmpl Y3RBZGRyZXNzIEFURXhlY0FkZElkZW50aXR5KFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAq Y29sTmFtZSwKIAkJCQkJCQkJCSAgIE5vZGUgKmRlZiwgTE9DS01PREUgbG9ja21vZGUsIGJv b2wgcmVjdXJzZSwgYm9vbCByZWN1cnNpbmcpOwogc3RhdGljIE9iamVjdEFkZHJlc3MgQVRF eGVjU2V0SWRlbnRpdHkoUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLApAQCAt NjYyLDYgKzY3NywxMCBAQCBzdGF0aWMgTGlzdCAqR2V0UGFyZW50ZWRGb3JlaWduS2V5UmVm cyhSZWxhdGlvbiBwYXJ0aXRpb24pOwogc3RhdGljIHZvaWQgQVREZXRhY2hDaGVja05vRm9y ZWlnbktleVJlZnMoUmVsYXRpb24gcGFydGl0aW9uKTsKIHN0YXRpYyBjaGFyIEdldEF0dHJp YnV0ZUNvbXByZXNzaW9uKE9pZCBhdHR0eXBpZCwgY29uc3QgY2hhciAqY29tcHJlc3Npb24p Owogc3RhdGljIGNoYXIgR2V0QXR0cmlidXRlU3RvcmFnZShPaWQgYXR0dHlwaWQsIGNvbnN0 IGNoYXIgKnN0b3JhZ2Vtb2RlKTsKK3N0YXRpYyB2b2lkIEFkZFJlbGF0aW9uTmV3UGVyaW9k KFJlbGF0aW9uIHJlbCwgUGVyaW9kRGVmICpwZXJpb2QpOworc3RhdGljIHZvaWQgVmFsaWRh dGVQZXJpb2QoUmVsYXRpb24gcmVsLCBQZXJpb2REZWYgKnBlcmlvZCk7CitzdGF0aWMgQ29u c3RyYWludCAqbWFrZV9jb25zdHJhaW50X2Zvcl9wZXJpb2QoUmVsYXRpb24gcmVsLCBQZXJp b2REZWYgKnBlcmlvZCk7CitzdGF0aWMgQ29sdW1uRGVmICptYWtlX3JhbmdlX2NvbHVtbl9m b3JfcGVyaW9kKFBlcmlvZERlZiAqcGVyaW9kKTsKIAogc3RhdGljIHZvaWQgQVRFeGVjU3Bs aXRQYXJ0aXRpb24oTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLAogCQkJ CQkJCQkgUmVsYXRpb24gcmVsLCBQYXJ0aXRpb25DbWQgKmNtZCwKQEAgLTg4OCw2ICs5MDcs NzkgQEAgRGVmaW5lUmVsYXRpb24oQ3JlYXRlU3RtdCAqc3RtdCwgY2hhciByZWxraW5kLCBP aWQgb3duZXJJZCwKIAkJCQkJCXN0bXQtPnBhcnRib3VuZCAhPSBOVUxMLAogCQkJCQkJJm9s ZF9jb25zdHJhaW50cyk7CiAKKwkvKgorCSAqIFVzaW5nIHRoZSBjb2x1bW4gbGlzdCAoaW5j bHVkaW5nIGluaGVyaXRlZCBjb2x1bW5zKSwKKwkgKiBmaW5kIHRoZSBzdGFydC9lbmQgY29s dW1ucyBmb3IgZWFjaCBwZXJpb2QuCisJICogUEVSSU9EcyBzaG91bGQgYmUgaW5oZXJpdGVk IHRvbyAoYnV0IGFyZW4ndCB5ZXQpLgorCSAqLworCXN0bXQtPnBlcmlvZHMgPSBNZXJnZVBl cmlvZHMocmVsbmFtZSwgc3RtdC0+cGVyaW9kcywgc3RtdC0+dGFibGVFbHRzLCBpbmhlcml0 T2lkcyk7CisKKwkvKgorCSAqIEZvciBlYWNoIFBFUklPRCB3ZSBuZWVkIGEgR0VORVJBVEVE IGNvbHVtbi4KKwkgKiBVc3VhbGx5IHdlIG11c3QgY3JlYXRlIHRoaXMsIHNvIHdlIGFkZCBp dCB0byB0YWJsZUVsdHMuCisJICogSWYgdGhlIHVzZXIgc2F5cyB0aGUgY29sdW1uIGFscmVh ZHkgZXhpc3RzLAorCSAqIG1ha2Ugc3VyZSBpdCBpcyBzZW5zaWJsZS4KKwkgKiBUaGVzZSBj b2x1bW5zIGFyZSBub3QgaW5oZXJpdGVkLAorCSAqIHNvIHdlIGRvbid0IHdvcnJ5IGFib3V0 IGNvbmZsaWN0cyBpbiB0YWJsZUVsdHMuCisJICoKKwkgKiBXZSBhbGxvdyB0aGlzIGNvbGV4 aXN0cyBvcHRpb24gdG8gc3VwcG9ydCBwZ191cGdyYWRlLAorCSAqIHNvIHdlIGhhdmUgbW9y ZSBjb250cm9sIG92ZXIgdGhlIEdFTkVSQVRFRCBjb2x1bW4KKwkgKiAod2hvc2UgYXR0bnVt IG11c3QgbWF0Y2ggdGhlIG9sZCB2YWx1ZSkuCisJICovCisJZm9yZWFjaChsaXN0cHRyLCBz dG10LT5wZXJpb2RzKQorCXsKKwkJUGVyaW9kRGVmICpwZXJpb2QgPSAoUGVyaW9kRGVmICop IGxmaXJzdChsaXN0cHRyKTsKKworCQlpZiAocGVyaW9kLT5jb2xleGlzdHMpCisJCXsKKwkJ CUxpc3RDZWxsICpjZWxsOworCQkJYm9vbCBmb3VuZCA9IGZhbHNlOworCisJCQlmb3JlYWNo KGNlbGwsIHN0bXQtPnRhYmxlRWx0cykKKwkJCXsKKwkJCQlDb2x1bW5EZWYgICpjb2xEZWYg PSBsZmlyc3QoY2VsbCk7CisKKwkJCQlpZiAoc3RyY21wKHBlcmlvZC0+cGVyaW9kbmFtZSwg Y29sRGVmLT5jb2xuYW1lKSA9PSAwKQorCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogTG90cyB0 byBjaGVjayBoZXJlOgorCQkJCQkgKiBJdCBtdXN0IGJlIEdFTkVSQVRFRCBBTFdBWVMsCisJ CQkJCSAqIGl0IG11c3QgaGF2ZSB0aGUgcmlnaHQgZXhwcmVzc2lvbiwKKwkJCQkJICogaXQg bXVzdCBiZSB0aGUgcmlnaHQgdHlwZSwKKwkJCQkJICogaXQgbXVzdCBiZSBOT1QgTlVMTCwK KwkJCQkJICogaXQgbXVzdCBub3QgYmUgaW5oZXJpdGVkLgorCQkJCQkgKi8KKwkJCQkJaWYg KGNvbERlZi0+Z2VuZXJhdGVkID09ICdcMCcpCisJCQkJCQllcmVwb3J0KEVSUk9SLCAoZXJy bXNnKCJQZXJpb2QgJXMgdXNlcyBhIG5vbi1nZW5lcmF0ZWQgY29sdW1uIiwgcGVyaW9kLT5w ZXJpb2RuYW1lKSkpOworCisJCQkJCWlmIChjb2xEZWYtPmdlbmVyYXRlZCAhPSBBVFRSSUJV VEVfR0VORVJBVEVEX1NUT1JFRCkKKwkJCQkJCWVyZXBvcnQoRVJST1IsIChlcnJtc2coIlBl cmlvZCAlcyB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGlzIG5vdCBTVE9SRUQiLCBw ZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJCQkJLy8gVE9ETzogY2hlY2sgdGhlIEdFTkVS QVRFRCBleHByZXNzaW9uIGFsc28uCisKKwkJCQkJaWYgKCFjb2xEZWYtPmlzX25vdF9udWxs ICYmICFJc0JpbmFyeVVwZ3JhZGUpCisJCQkJCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJQ ZXJpb2QgJXMgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gdGhhdCBhbGxvd3MgbnVsbHMiLCBw ZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJCQkJaWYgKHBlcmlvZC0+cm5ndHlwaWQgIT0g dHlwZW5hbWVUeXBlSWQoTlVMTCwgY29sRGVmLT50eXBlTmFtZSkpCisJCQkJCQllcmVwb3J0 KEVSUk9SLCAoZXJybXNnKCJQZXJpb2QgJXMgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gd2l0 aCB0aGUgd3JvbmcgdHlwZSIsIHBlcmlvZC0+cGVyaW9kbmFtZSkpKTsKKworCQkJCQlpZiAo IWNvbERlZi0+aXNfbG9jYWwpCisJCQkJCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJQZXJp b2QgJXMgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gdGhhdCBpcyBpbmhlcml0ZWQiLCBwZXJp b2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJCQkJZm91bmQgPSB0cnVlOworCQkJCX0KKwkJCX0K KworCQkJaWYgKCFmb3VuZCkKKwkJCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJObyBjb2x1 bW4gZm91bmQgd2l0aCBuYW1lICVzIiwgcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCQl9CisJ CWVsc2UKKwkJeworCQkJQ29sdW1uRGVmICpjb2wgPSBtYWtlX3JhbmdlX2NvbHVtbl9mb3Jf cGVyaW9kKHBlcmlvZCk7CisJCQlzdG10LT50YWJsZUVsdHMgPSBsYXBwZW5kKHN0bXQtPnRh YmxlRWx0cywgY29sKTsKKwkJfQorCX0KKwogCS8qCiAJICogQ3JlYXRlIGEgdHVwbGUgZGVz Y3JpcHRvciBmcm9tIHRoZSByZWxhdGlvbiBzY2hlbWEuICBOb3RlIHRoYXQgdGhpcwogCSAq IGRlYWxzIHdpdGggY29sdW1uIG5hbWVzLCB0eXBlcywgYW5kIG5vdC1udWxsIGNvbnN0cmFp bnRzLCBidXQgbm90CkBAIC0xMjYzLDYgKzEzNTUsMjEgQEAgRGVmaW5lUmVsYXRpb24oQ3Jl YXRlU3RtdCAqc3RtdCwgY2hhciByZWxraW5kLCBPaWQgb3duZXJJZCwKIAkJQWRkUmVsYXRp b25OZXdDb25zdHJhaW50cyhyZWwsIE5JTCwgc3RtdC0+Y29uc3RyYWludHMsCiAJCQkJCQkJ CSAgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHF1ZXJ5U3RyaW5nKTsKIAorCS8qCisJICogQ3JlYXRl IHBlcmlvZHMgZm9yIHRoZSB0YWJsZS4gVGhpcyBtdXN0IGNvbWUgYWZ0ZXIgd2UgY3JlYXRl IGNvbHVtbnMKKwkgKiBhbmQgYmVmb3JlIHdlIGNyZWF0ZSBpbmRleCBjb25zdHJhaW50cy4g SXQgd2lsbCBhdXRvbWF0aWNhbGx5IGNyZWF0ZQorCSAqIGEgQ0hFQ0sgY29uc3RyYWludCBm b3IgdGhlIHBlcmlvZC4KKwkgKi8KKwlmb3JlYWNoKGxpc3RwdHIsIHN0bXQtPnBlcmlvZHMp CisJeworCQlQZXJpb2REZWYgKnBlcmlvZCA9IChQZXJpb2REZWYgKikgbGZpcnN0KGxpc3Rw dHIpOworCisJCS8qIERvbid0IHVwZGF0ZSB0aGUgY291bnQgb2YgY2hlY2sgY29uc3RyYWlu dHMgdHdpY2UgKi8KKwkJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKKworCQlBZGRSZWxh dGlvbk5ld1BlcmlvZChyZWwsIHBlcmlvZCk7CisJfQorCiAJT2JqZWN0QWRkcmVzc1NldChh ZGRyZXNzLCBSZWxhdGlvblJlbGF0aW9uSWQsIHJlbGF0aW9uSWQpOwogCiAJLyoKQEAgLTEz NjAsNiArMTQ2NywzMTIgQEAgQnVpbGREZXNjRm9yUmVsYXRpb24oY29uc3QgTGlzdCAqY29s dW1ucykKIAlyZXR1cm4gZGVzYzsKIH0KIAorLyoKKyAqIG1ha2VfY29uc3RyYWludF9mb3Jf cGVyaW9kCisgKgorICogQnVpbGRzIGEgQ0hFQ0sgQ29uc3RyYWludCB0byBlbnN1cmUgc3Rh cnQgPCBlbmQuCisgKiBSZXR1cm5zIHRoZSBDSEVDSyBDb25zdHJhaW50LgorICogQWxzbyBm aWxscyBpbiBwZXJpb2QtPmNvbnN0cmFpbnRuYW1lIGlmIG5lZWRlZC4KKyAqCisgKiBJZiBl aXRoZXIgYm91bmQgaXMgTlVMTCwgdGhlIGNvbnN0cmFpbnQgcGFzc2VzCisgKiAoc2luY2Ug dGhhdCBpbmRpY2F0ZXMgYW4gdW5ib3VuZGVkIHJhbmdlKS4KKyAqLworc3RhdGljIENvbnN0 cmFpbnQgKgorbWFrZV9jb25zdHJhaW50X2Zvcl9wZXJpb2QoUmVsYXRpb24gcmVsLCBQZXJp b2REZWYgKnBlcmlvZCkKK3sKKwlDb2x1bW5SZWYgICpzY29sLCAqZWNvbDsKKwlDb25zdHJh aW50ICpjb25zdHI7CisJVHlwZUNhY2hlRW50cnkgKnR5cGU7CisKKwlpZiAocGVyaW9kLT5j b25zdHJhaW50bmFtZSA9PSBOVUxMKQorCQlwZXJpb2QtPmNvbnN0cmFpbnRuYW1lID0gQ2hv b3NlQ29uc3RyYWludE5hbWUoUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSwKKwkJCQkJ CQkJCQkJCQkgIHBlcmlvZC0+cGVyaW9kbmFtZSwKKwkJCQkJCQkJCQkJCQkgICJjaGVjayIs CisJCQkJCQkJCQkJCQkJICBSZWxhdGlvbkdldE5hbWVzcGFjZShyZWwpLAorCQkJCQkJCQkJ CQkJCSAgTklMKTsKKwlzY29sID0gbWFrZU5vZGUoQ29sdW1uUmVmKTsKKwlzY29sLT5maWVs ZHMgPSBsaXN0X21ha2UxKG1ha2VTdHJpbmcocHN0cmR1cChwZXJpb2QtPnN0YXJ0Y29sbmFt ZSkpKTsKKwlzY29sLT5sb2NhdGlvbiA9IDA7CisKKwllY29sID0gbWFrZU5vZGUoQ29sdW1u UmVmKTsKKwllY29sLT5maWVsZHMgPSBsaXN0X21ha2UxKG1ha2VTdHJpbmcocHN0cmR1cChw ZXJpb2QtPmVuZGNvbG5hbWUpKSk7CisJZWNvbC0+bG9jYXRpb24gPSAwOworCisJdHlwZSA9 IGxvb2t1cF90eXBlX2NhY2hlKHBlcmlvZC0+Y29sdHlwaWQsIFRZUEVDQUNIRV9MVF9PUFIp OworCWlmICh0eXBlLT5sdF9vcHIgPT0gSW52YWxpZE9pZCkKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVy cm1zZygiY29sdW1uIFwiJXNcIiBjYW5ub3QgYmUgdXNlZCBpbiBhIFBFUklPRCBiZWNhdXNl IGl0cyB0eXBlICVzIGhhcyBubyBsZXNzIHRoYW4gb3BlcmF0b3IiLAorCQkJCQkJcGVyaW9k LT5zdGFydGNvbG5hbWUsIGZvcm1hdF90eXBlX2JlKHBlcmlvZC0+Y29sdHlwaWQpKSkpOwor CisJY29uc3RyID0gbWFrZU5vZGUoQ29uc3RyYWludCk7CisJY29uc3RyLT5jb250eXBlID0g Q09OU1RSX0NIRUNLOworCWNvbnN0ci0+Y29ubmFtZSA9IHBlcmlvZC0+Y29uc3RyYWludG5h bWU7CisJY29uc3RyLT5kZWZlcnJhYmxlID0gZmFsc2U7CisJY29uc3RyLT5pbml0ZGVmZXJy ZWQgPSBmYWxzZTsKKwljb25zdHItPmxvY2F0aW9uID0gLTE7CisJY29uc3RyLT5pc19ub19p bmhlcml0ID0gZmFsc2U7CisJY29uc3RyLT5yYXdfZXhwciA9IChOb2RlICopIG1ha2VTaW1w bGVBX0V4cHIoQUVYUFJfT1AsCisJCQkJCQkJCQkJCQkgZ2V0X29wbmFtZSh0eXBlLT5sdF9v cHIpLAorCQkJCQkJCQkJCQkJIChOb2RlICopIHNjb2wsCisJCQkJCQkJCQkJCQkgKE5vZGUg KikgZWNvbCwKKwkJCQkJCQkJCQkJCSAwKTsKKwljb25zdHItPmNvb2tlZF9leHByID0gTlVM TDsKKwljb25zdHItPnNraXBfdmFsaWRhdGlvbiA9IGZhbHNlOworCWNvbnN0ci0+aW5pdGlh bGx5X3ZhbGlkID0gdHJ1ZTsKKworCXJldHVybiBjb25zdHI7Cit9CisKKy8qCisgKiBtYWtl X3JhbmdlX2NvbHVtbl9mb3JfcGVyaW9kCisgKgorICogQnVpbGRzIGEgR0VORVJBVEVEIEFM V0FZUyByYW5nZSBjb2x1bW4gYmFzZWQgb24gdGhlIFBFUklPRAorICogc3RhcnQvZW5kIGNv bHVtbnMuIFJldHVybnMgdGhlIENvbHVtbkRlZi4KKyAqLworQ29sdW1uRGVmICoKK21ha2Vf cmFuZ2VfY29sdW1uX2Zvcl9wZXJpb2QoUGVyaW9kRGVmICpwZXJpb2QpCit7CisJY2hhciAq cmFuZ2VfdHlwZV9uYW1lc3BhY2U7CisJY2hhciAqcmFuZ2VfdHlwZV9uYW1lOworCUNvbHVt bkRlZiAqY29sID0gbWFrZU5vZGUoQ29sdW1uRGVmKTsKKwlDb2x1bW5SZWYgKnN0YXJ0dmFy LCAqZW5kdmFyOworCUV4cHIgKnJhbmdlQ29uc3RydWN0b3I7CisKKwlpZiAoIWdldF90eXBu YW1lX2FuZF9uYW1lc3BhY2UocGVyaW9kLT5ybmd0eXBpZCwgJnJhbmdlX3R5cGVfbmFtZSwg JnJhbmdlX3R5cGVfbmFtZXNwYWNlKSkKKwkJZWxvZyhFUlJPUiwgIm1pc3NpbmcgcmFuZ2Ug dHlwZSAlZCIsIHBlcmlvZC0+cm5ndHlwaWQpOworCisJc3RhcnR2YXIgPSBtYWtlTm9kZShD b2x1bW5SZWYpOworCXN0YXJ0dmFyLT5maWVsZHMgPSBsaXN0X21ha2UxKG1ha2VTdHJpbmco cHN0cmR1cChwZXJpb2QtPnN0YXJ0Y29sbmFtZSkpKTsKKwllbmR2YXIgPSBtYWtlTm9kZShD b2x1bW5SZWYpOworCWVuZHZhci0+ZmllbGRzID0gbGlzdF9tYWtlMShtYWtlU3RyaW5nKHBz dHJkdXAocGVyaW9kLT5lbmRjb2xuYW1lKSkpOworCXJhbmdlQ29uc3RydWN0b3IgPSAoRXhw ciAqKSBtYWtlRnVuY0NhbGwoCisJCQlsaXN0X21ha2UyKG1ha2VTdHJpbmcocmFuZ2VfdHlw ZV9uYW1lc3BhY2UpLCBtYWtlU3RyaW5nKHJhbmdlX3R5cGVfbmFtZSkpLAorCQkJbGlzdF9t YWtlMihzdGFydHZhciwgZW5kdmFyKSwKKwkJCUNPRVJDRV9FWFBMSUNJVF9DQUxMLAorCQkJ cGVyaW9kLT5sb2NhdGlvbik7CisKKwljb2wtPmNvbG5hbWUgPSBwc3RyZHVwKHBlcmlvZC0+ cGVyaW9kbmFtZSk7CisJY29sLT50eXBlTmFtZSA9IG1ha2VUeXBlTmFtZShyYW5nZV90eXBl X25hbWUpOworCWNvbC0+Y29tcHJlc3Npb24gPSBOVUxMOworCWNvbC0+aW5oY291bnQgPSAw OworCWNvbC0+aXNfbG9jYWwgPSB0cnVlOworCWNvbC0+aXNfbm90X251bGwgPSB0cnVlOwor CWNvbC0+aXNfZnJvbV90eXBlID0gZmFsc2U7CisJY29sLT5zdG9yYWdlID0gMDsKKwljb2wt PnN0b3JhZ2VfbmFtZSA9IE5VTEw7CisJY29sLT5yYXdfZGVmYXVsdCA9IChOb2RlICopIHJh bmdlQ29uc3RydWN0b3I7CisJY29sLT5jb29rZWRfZGVmYXVsdCA9IE5VTEw7CisJY29sLT5p ZGVudGl0eSA9IDA7CisJY29sLT5nZW5lcmF0ZWQgPSBBVFRSSUJVVEVfR0VORVJBVEVEX1NU T1JFRDsKKwljb2wtPmNvbGxDbGF1c2UgPSBOVUxMOworCWNvbC0+Y29sbE9pZCA9IEludmFs aWRPaWQ7CisJY29sLT5mZHdvcHRpb25zID0gTklMOworCWNvbC0+bG9jYXRpb24gPSBwZXJp b2QtPmxvY2F0aW9uOworCisJcmV0dXJuIGNvbDsKK30KKworLyoKKyAqIFZhbGlkYXRlUGVy aW9kCisgKgorICogTG9vayB1cCB0aGUgYXR0cmlidXRlcyB1c2VkIGJ5IHRoZSBQRVJJT0Qs CisgKiBtYWtlIHN1cmUgdGhleSBleGlzdCwgYXJlIG5vdCBzeXN0ZW0gY29sdW1ucywKKyAq IGFuZCBoYXZlIHRoZSBzYW1lIHR5cGUgYW5kIGNvbGxhdGlvbi4KKyAqCisgKiBZb3UgbXVz dCBoYXZlIGEgUm93RXhjbHVzaXZlTG9jayBvbiBwZ19hdHRyaWJ1dGUKKyAqIGJlZm9yZSBj YWxsaW5nIHRoaXMgZnVuY3Rpb24uCisgKgorICogQWRkIG91ciBmaW5kaW5ncyB0byB0aGVz ZSBQZXJpb2REZWYgZmllbGRzOgorICoKKyAqIGNvbHR5cGlkIC0gdGhlIHR5cGUgb2YgUEVS SU9EIGNvbHVtbnMuCisgKiBzdGFydGF0dG51bSAtIHRoZSBhdHRudW0gb2YgdGhlIHN0YXJ0 IGNvbHVtbi4KKyAqIGVuZGF0dG51bSAtIHRoZSBhdHRudW0gb2YgdGhlIGVuZCBjb2x1bW4u CisgKiBybmd0eXBpZCAtIHRoZSByYW5nZSB0eXBlIHRvIHVzZS4KKyAqIHJuZ2F0dG51bSAt IHRoZSBhdHRudW0gb2YgYSBwcmUtZXhpc3RpbmcgcmFuZ2UgY29sdW1uLCBvciBJbnZhbGlk LgorICovCitzdGF0aWMgdm9pZAorVmFsaWRhdGVQZXJpb2QoUmVsYXRpb24gcmVsLCBQZXJp b2REZWYgKnBlcmlvZCkKK3sKKwlIZWFwVHVwbGUgc3RhcnR0dXBsZTsKKwlIZWFwVHVwbGUg ZW5kdHVwbGU7CisJRm9ybV9wZ19hdHRyaWJ1dGUJYXR0dHVwbGU7CisJT2lkCWF0dGNvbGxh dGlvbjsKKworCS8qIEZpbmQgdGhlIHN0YXJ0IGNvbHVtbiAqLworCXN0YXJ0dHVwbGUgPSBT ZWFyY2hTeXNDYWNoZUNvcHlBdHROYW1lKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgcGVyaW9k LT5zdGFydGNvbG5hbWUpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZChzdGFydHR1cGxlKSkK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xV TU4pLAorCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGRv ZXMgbm90IGV4aXN0IiwKKwkJCQkJCXBlcmlvZC0+c3RhcnRjb2xuYW1lLCBSZWxhdGlvbkdl dFJlbGF0aW9uTmFtZShyZWwpKSkpOworCWF0dHR1cGxlID0gKEZvcm1fcGdfYXR0cmlidXRl KSBHRVRTVFJVQ1Qoc3RhcnR0dXBsZSk7CisJcGVyaW9kLT5jb2x0eXBpZCA9IGF0dHR1cGxl LT5hdHR0eXBpZDsKKwlhdHRjb2xsYXRpb24gPSBhdHR0dXBsZS0+YXR0Y29sbGF0aW9uOwor CXBlcmlvZC0+c3RhcnRhdHRudW0gPSBhdHR0dXBsZS0+YXR0bnVtOworCisJLyogTWFrZSBz dXJlIGl0J3Mgbm90IGEgc3lzdGVtIGNvbHVtbiAqLworCWlmIChwZXJpb2QtPnN0YXJ0YXR0 bnVtIDw9IDApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZB TElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgdXNlIHN5c3Rl bSBjb2x1bW4gXCIlc1wiIGluIHBlcmlvZCIsCisJCQkJCQlwZXJpb2QtPnN0YXJ0Y29sbmFt ZSkpKTsKKworCS8qIEZpbmQgdGhlIGVuZCBjb2x1bW4gKi8KKwllbmR0dXBsZSA9IFNlYXJj aFN5c0NhY2hlQ29weUF0dE5hbWUoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBwZXJpb2QtPmVu ZGNvbG5hbWUpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZChlbmR0dXBsZSkpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKKwkJ CQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBl eGlzdCIsCisJCQkJCQlwZXJpb2QtPmVuZGNvbG5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25O YW1lKHJlbCkpKSk7CisJYXR0dHVwbGUgPSAoRm9ybV9wZ19hdHRyaWJ1dGUpIEdFVFNUUlVD VChlbmR0dXBsZSk7CisJcGVyaW9kLT5lbmRhdHRudW0gPSBhdHR0dXBsZS0+YXR0bnVtOwor CisJLyogTWFrZSBzdXJlIGl0J3Mgbm90IGEgc3lzdGVtIGNvbHVtbiAqLworCWlmIChwZXJp b2QtPmVuZGF0dG51bSA8PSAwKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJIGVycm1zZygiY2Fubm90 IHVzZSBzeXN0ZW0gY29sdW1uIFwiJXNcIiBpbiBwZXJpb2QiLAorCQkJCQkJcGVyaW9kLT5l bmRjb2xuYW1lKSkpOworCisJLyogQm90aCBjb2x1bW5zIG11c3QgYmUgb2Ygc2FtZSB0eXBl ICovCisJaWYgKHBlcmlvZC0+Y29sdHlwaWQgIT0gYXR0dHVwbGUtPmF0dHR5cGlkKQorCQll cmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gp LAorCQkJCSBlcnJtc2coInN0YXJ0IGFuZCBlbmQgY29sdW1ucyBvZiBwZXJpb2QgbXVzdCBi ZSBvZiBzYW1lIHR5cGUiKSkpOworCisJLyogQm90aCBjb2x1bW5zIG11c3QgaGF2ZSB0aGUg c2FtZSBjb2xsYXRpb24gKi8KKwlpZiAoYXR0Y29sbGF0aW9uICE9IGF0dHR1cGxlLT5hdHRj b2xsYXRpb24pCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9DT0xM QVRJT05fTUlTTUFUQ0gpLAorCQkJCSBlcnJtc2coInN0YXJ0IGFuZCBlbmQgY29sdW1ucyBv ZiBwZXJpb2QgbXVzdCBoYXZlIHNhbWUgY29sbGF0aW9uIikpKTsKKworCS8qIEdldCB0aGUg cmFuZ2UgdHlwZSBiYXNlZCBvbiB0aGUgc3RhcnQvZW5kIGNvbHMgb3IgdGhlIHVzZXIncyBj aG9pY2UgKi8KKwlwZXJpb2QtPnJuZ3R5cGlkID0gY2hvb3NlX3JhbmdldHlwZV9mb3JfcGVy aW9kKHBlcmlvZCk7CisKKwkvKiBJZiB0aGUgR0VORVJBVEVEIGNvbHVtbnMgc2hvdWxkIGFs cmVhZHkgZXhpc3QsIG1ha2Ugc3VyZSBpdCBpcyBzZW5zaWJsZS4gKi8KKwlpZiAocGVyaW9k LT5jb2xleGlzdHMpCisJeworCQlIZWFwVHVwbGUgcm5ndHVwbGUgPSBTZWFyY2hTeXNDYWNo ZUNvcHlBdHROYW1lKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgcGVyaW9kLT5wZXJpb2RuYW1l KTsKKwkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHJuZ3R1cGxlKSkKKwkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCisJCQkJCSBl cnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0 IiwKKwkJCQkJCQlwZXJpb2QtPnBlcmlvZG5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1l KHJlbCkpKSk7CisJCWF0dHR1cGxlID0gKEZvcm1fcGdfYXR0cmlidXRlKSBHRVRTVFJVQ1Qo cm5ndHVwbGUpOworCisJCS8qCisJCSAqIExvdHMgdG8gY2hlY2sgaGVyZToKKwkJICogSXQg bXVzdCBiZSBHRU5FUkFURUQgQUxXQVlTLAorCQkgKiBpdCBtdXN0IGhhdmUgdGhlIHJpZ2h0 IGV4cHJlc3Npb24sCisJCSAqIGl0IG11c3QgYmUgdGhlIHJpZ2h0IHR5cGUsCisJCSAqIGl0 IG11c3QgYmUgTk9UIE5VTEwsCisJCSAqIGl0IG11c3Qgbm90IGJlIGluaGVyaXRlZC4KKwkJ ICovCisJCWlmIChhdHR0dXBsZS0+YXR0Z2VuZXJhdGVkID09ICdcMCcpCisJCQllcmVwb3J0 KEVSUk9SLCAoZXJybXNnKCJQZXJpb2QgJXMgdXNlcyBhIG5vbi1nZW5lcmF0ZWQgY29sdW1u IiwgcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCWlmIChhdHR0dXBsZS0+YXR0Z2VuZXJh dGVkICE9IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEKQorCQkJZXJlcG9ydChFUlJPUiwg KGVycm1zZygiUGVyaW9kICVzIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgaXMgbm90 IFNUT1JFRCIsIHBlcmlvZC0+cGVyaW9kbmFtZSkpKTsKKworCQkvLyBUT0RPOiBjaGVjayB0 aGUgR0VORVJBVEVEIGV4cHJlc3Npb24gYWxzby4KKworCQlpZiAoIWF0dHR1cGxlLT5hdHRu b3RudWxsICYmICFJc0JpbmFyeVVwZ3JhZGUpCisJCQllcmVwb3J0KEVSUk9SLCAoZXJybXNn KCJQZXJpb2QgJXMgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gdGhhdCBhbGxvd3MgbnVsbHMi LCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJaWYgKHBlcmlvZC0+cm5ndHlwaWQgIT0g YXR0dHVwbGUtPmF0dHR5cGlkKQorCQkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiUGVyaW9k ICVzIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHdpdGggdGhlIHdyb25nIHR5cGUiLCBwZXJp b2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJaWYgKCFhdHR0dXBsZS0+YXR0aXNsb2NhbCkKKwkJ CWVyZXBvcnQoRVJST1IsIChlcnJtc2coIlBlcmlvZCAlcyB1c2VzIGEgZ2VuZXJhdGVkIGNv bHVtbiB0aGF0IGlzIGluaGVyaXRlZCIsIHBlcmlvZC0+cGVyaW9kbmFtZSkpKTsKKworCQlw ZXJpb2QtPnJuZ2F0dG51bSA9IGF0dHR1cGxlLT5hdHRudW07CisKKwkJaGVhcF9mcmVldHVw bGUocm5ndHVwbGUpOworCX0KKworCWhlYXBfZnJlZXR1cGxlKHN0YXJ0dHVwbGUpOworCWhl YXBfZnJlZXR1cGxlKGVuZHR1cGxlKTsKK30KKworLyoKKyAqIGNob29zZV9yYW5nZXR5cGVf Zm9yX3BlcmlvZAorICoKKyAqIEZpbmQgYSBzdWl0YWJsZSByYW5nZSB0eXBlIGZvciBvcGVy YXRpb25zIGludm9sdmluZyB0aGlzIHBlcmlvZC4KKyAqIFVzZSB0aGUgcmFuZ2V0eXBlIG9w dGlvbiBpZiBwcm92aWRlZCwgb3RoZXJ3aXNlIHRyeSB0byBmaW5kIGEKKyAqIG5vbi1hbWJp Z3VvdXMgZXhpc3RpbmcgdHlwZS4KKyAqLworT2lkCitjaG9vc2VfcmFuZ2V0eXBlX2Zvcl9w ZXJpb2QoUGVyaW9kRGVmICpwZXJpb2QpCit7CisJT2lkCXJuZ3R5cGlkOworCisJaWYgKHBl cmlvZC0+cmFuZ2V0eXBlbmFtZSAhPSBOVUxMKQorCXsKKwkJLyogTWFrZSBzdXJlIGl0IGV4 aXN0cyAqLworCQlybmd0eXBpZCA9IFR5cGVuYW1lR2V0VHlwaWRFeHRlbmRlZChwZXJpb2Qt PnJhbmdldHlwZW5hbWUsIGZhbHNlKTsKKwkJaWYgKHJuZ3R5cGlkID09IEludmFsaWRPaWQp CisJCQllcmVwb3J0KEVSUk9SLCAoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1Qp LAorCQkJCQkgZXJybXNnKCJSYW5nZSB0eXBlICVzIG5vdCBmb3VuZCIsIHBlcmlvZC0+cmFu Z2V0eXBlbmFtZSkpKTsKKworCQkvKiBNYWtlIHN1cmUgaXQgaXMgYSByYW5nZSB0eXBlICov CisJCWlmICghdHlwZV9pc19yYW5nZShybmd0eXBpZCkpCisJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1z ZygiVHlwZSAlcyBpcyBub3QgYSByYW5nZSB0eXBlIiwgcGVyaW9kLT5yYW5nZXR5cGVuYW1l KSkpOworCisJCS8qIE1ha2Ugc3VyZSBpdCBtYXRjaGVzIHRoZSBjb2x1bW4gdHlwZSAqLwor CQlpZiAoZ2V0X3JhbmdlX3N1YnR5cGUocm5ndHlwaWQpICE9IHBlcmlvZC0+Y29sdHlwaWQp CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01J U01BVENIKSwKKwkJCQkJIGVycm1zZygiUmFuZ2UgdHlwZSAlcyBkb2VzIG5vdCBtYXRjaCBj b2x1bW4gdHlwZSAlcyIsCisJCQkJCQkgcGVyaW9kLT5yYW5nZXR5cGVuYW1lLAorCQkJCQkJ IGZvcm1hdF90eXBlX2JlKHBlcmlvZC0+Y29sdHlwaWQpKSkpOworCX0KKwllbHNlCisJewor CQlybmd0eXBpZCA9IGdldF9zdWJ0eXBlX3JhbmdlKHBlcmlvZC0+Y29sdHlwaWQpOworCQlp ZiAocm5ndHlwaWQgPT0gSW52YWxpZE9pZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShl cnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCSBlcnJtc2coIm5vIHJh bmdlIHR5cGUgZm9yICVzIGZvdW5kIGZvciBwZXJpb2QgJXMiLAorCQkJCQkJCWZvcm1hdF90 eXBlX2JlKHBlcmlvZC0+Y29sdHlwaWQpLAorCQkJCQkJCXBlcmlvZC0+cGVyaW9kbmFtZSks CisJCQkJCSBlcnJoaW50KCJZb3UgY2FuIGRlZmluZSBhIGN1c3RvbSByYW5nZSB0eXBlIHdp dGggQ1JFQVRFIFRZUEUiKSkpOworCisJfQorCisJcmV0dXJuIHJuZ3R5cGlkOworfQorCitz dGF0aWMgdm9pZAorQWRkUmVsYXRpb25OZXdQZXJpb2QoUmVsYXRpb24gcmVsLCBQZXJpb2RE ZWYgKnBlcmlvZCkKK3sKKwlSZWxhdGlvbglhdHRyZWxhdGlvbjsKKwlPaWQJCQljb25vaWQ7 CisJQ29uc3RyYWludCAqY29uc3RyOworCUxpc3QJICAgKm5ld2NvbnN0cnM7CisKKwlhdHRy ZWxhdGlvbiA9IHRhYmxlX29wZW4oQXR0cmlidXRlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwkvKiBGaW5kIHRoZSBHRU5FUkFURUQgcmFuZ2UgY29sdW1uICovCisKKwlw ZXJpb2QtPnJuZ2F0dG51bSA9IGdldF9hdHRudW0oUmVsYXRpb25HZXRSZWxpZChyZWwpLCBw ZXJpb2QtPnBlcmlvZG5hbWUpOworCWlmIChwZXJpb2QtPnJuZ2F0dG51bSA9PSBJbnZhbGlk QXR0ck51bWJlcikKKwkJZWxvZyhFUlJPUiwgIm1pc3NpbmcgYXR0cmlidXRlICVzIiwgcGVy aW9kLT5wZXJpb2RuYW1lKTsKKworCS8qIFRoZSBwYXJzZXIgaGFzIGFscmVhZHkgZm91bmQg cGVyaW9kLT5jb2x0eXBpZCAqLworCisJY29uc3RyID0gbWFrZV9jb25zdHJhaW50X2Zvcl9w ZXJpb2QocmVsLCBwZXJpb2QpOworCW5ld2NvbnN0cnMgPSBBZGRSZWxhdGlvbk5ld0NvbnN0 cmFpbnRzKHJlbCwgTklMLCBsaXN0X21ha2UxKGNvbnN0ciksIGZhbHNlLCB0cnVlLCB0cnVl LCBOVUxMKTsKKwljb25vaWQgPSAoKENvb2tlZENvbnN0cmFpbnQgKikgbGluaXRpYWwobmV3 Y29uc3RycykpLT5jb25vaWQ7CisKKwkvKiBTYXZlIGl0ICovCisJU3RvcmVQZXJpb2QocmVs LCBwZXJpb2QtPnBlcmlvZG5hbWUsIHBlcmlvZC0+c3RhcnRhdHRudW0sIHBlcmlvZC0+ZW5k YXR0bnVtLCBwZXJpb2QtPnJuZ2F0dG51bSwgY29ub2lkKTsKKworCXRhYmxlX2Nsb3NlKGF0 dHJlbGF0aW9uLCBSb3dFeGNsdXNpdmVMb2NrKTsKK30KKwogLyoKICAqIEVtaXQgdGhlIHJp Z2h0IGVycm9yIG9yIHdhcm5pbmcgbWVzc2FnZSBmb3IgYSAiRFJPUCIgY29tbWFuZCBpc3N1 ZWQgb24gYQogICogbm9uLWV4aXN0ZW50IHJlbGF0aW9uCkBAIC0zMDA4LDYgKzM0MjEsMTY4 IEBAIE1lcmdlQXR0cmlidXRlcyhMaXN0ICpjb2x1bW5zLCBjb25zdCBMaXN0ICpzdXBlcnMs IGNoYXIgcmVscGVyc2lzdGVuY2UsCiB9CiAKIAorLyotLS0tLS0tLS0tCisgKiBNZXJnZVBl cmlvZHMKKyAqCQlSZXR1cm5zIG5ldyBwZXJpb2QgbGlzdCBnaXZlbiBpbml0aWFsIHBlcmlv ZHMgYW5kIHN1cGVyY2xhc3Nlcy4KKyAqCisgKiBGb3Igbm93IHdlIGRvbid0IHN1cHBvcnQg aW5oZXJpdGVuY2Ugd2l0aCBQRVJJT0RzLAorICogYnV0IHdlIG1pZ2h0IG1ha2UgaXQgd29y ayBldmVudHVhbGx5LgorICoKKyAqIFdlIGNhbiBvbWl0IGxvdHMgb2YgY2hlY2tzIGhlcmUg YW5kIGFzc3VtZSBNZXJnZUF0dHJpYnV0ZXMgYWxyZWFkeSBkaWQgdGhlbSwKKyAqIGZvciBl eGFtcGxlIHRoYXQgY2hpbGQgJiBwYXJlbnRzIGFyZSBub3QgYSBtaXggb2YgcGVybWFuZW50 IGFuZCB0ZW1wLgorICovCitzdGF0aWMgTGlzdCAqCitNZXJnZVBlcmlvZHMoY2hhciAqcmVs bmFtZSwgTGlzdCAqcGVyaW9kcywgTGlzdCAqdGFibGVFbHRzLCBMaXN0ICpzdXBlcnMpCit7 CisJTGlzdENlbGwgICAqZW50cnk7CisKKwkvKiBJZiB3ZSBoYXZlIGEgUEVSSU9EIHRoZW4g c3VwZXJzIG11c3QgYmUgZW1wdHkuICovCisKKwlpZiAobGlzdF9sZW5ndGgocGVyaW9kcykg PiAwICYmIGxpc3RfbGVuZ3RoKHN1cGVycykgPiAwKQorCQllcmVwb3J0KEVSUk9SLAorCQkJ CShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNn KCJJbmhlcml0aW5nIGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBhIHRhYmxlIGhhcyBhIFBFUklP RCIpKSk7CisKKwkvKiBJZiBhbnkgcGFyZW50IHRhYmxlIGhhcyBhIFBFUklPRCwgdGhlbiBm YWlsLiAqLworCisJZm9yZWFjaChlbnRyeSwgc3VwZXJzKQorCXsKKwkJT2lkCQkJcGFyZW50 ID0gbGZpcnN0X29pZChlbnRyeSk7CisJCVJlbGF0aW9uCXJlbGF0aW9uOworCQlSZWxhdGlv bglwZ19wZXJpb2Q7CisJCVN5c1NjYW5EZXNjIHNjYW47CisJCVNjYW5LZXlEYXRhIHNrZXlb MV07CisJCUhlYXBUdXBsZQl0dXBsZTsKKworCQkvKiBjYWxsZXIgYWxyZWFkeSBnb3QgbG9j ayAqLworCQlyZWxhdGlvbiA9IHRhYmxlX29wZW4ocGFyZW50LCBOb0xvY2spOworCQlwZ19w ZXJpb2QgPSB0YWJsZV9vcGVuKFBlcmlvZFJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7 CisKKwkJU2NhbktleUluaXQoJnNrZXlbMF0sCisJCQkJCUFudW1fcGdfcGVyaW9kX3BlcnJl bGlkLAorCQkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJCU9iamVj dElkR2V0RGF0dW0ocGFyZW50KSk7CisKKwkJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2Nhbihw Z19wZXJpb2QsIFBlcmlvZFJlbGlkTmFtZUluZGV4SWQsIHRydWUsCisJCQkJCQkJCSAgTlVM TCwgMSwgc2tleSk7CisKKwkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHVwbGUgPSBzeXN0YWJs ZV9nZXRuZXh0KHNjYW4pKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygiSW5oZXJpdGlu ZyBmcm9tIGEgdGFibGUgd2l0aCBhIFBFUklPRCBpcyBub3Qgc3VwcG9ydGVkIikpKTsKKwor CQlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCQl0YWJsZV9jbG9zZShwZ19wZXJpb2QsIEFj Y2Vzc1NoYXJlTG9jayk7CisJCXRhYmxlX2Nsb3NlKHJlbGF0aW9uLCBOb0xvY2spOworCX0K KworCS8qCisJICogRmluZCB0aGUgc3RhcnQgJiBlbmQgY29sdW1ucyBhbmQgZ2V0IHRoZWly IGF0dG5vIGFuZCB0eXBlLgorCSAqIEluIHRoZSBzYW1lIHBhc3MsIG1ha2Ugc3VyZSB0aGUg cGVyaW9kIGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCBhbnkgY29sdW1uIG5hbWVzLgorCSAqIEFs c28gbWFrZSBzdXJlIHRoZSBzYW1lIHBlcmlvZCBuYW1lIGlzbid0IHVzZWQgbW9yZSB0aGFu IG9uY2UuCisJICovCisJZm9yZWFjaCAoZW50cnksIHBlcmlvZHMpCisJeworCQlQZXJpb2RE ZWYgKnBlcmlvZCA9IGxmaXJzdChlbnRyeSk7CisJCUxpc3RDZWxsICplbnRyeTI7CisJCWlu dCBpID0gMTsKKwkJT2lkIHN0YXJ0Y29sdHlwaWQgPSBJbnZhbGlkT2lkOworCQlPaWQgZW5k Y29sdHlwaWQgPSBJbnZhbGlkT2lkOworCQlPaWQJc3RhcnRjb2xjb2xsYXRpb24gPSBJbnZh bGlkT2lkOworCQlPaWQJZW5kY29sY29sbGF0aW9uID0gSW52YWxpZE9pZDsKKworCQlwZXJp b2QtPnN0YXJ0YXR0bnVtID0gSW52YWxpZEF0dHJOdW1iZXI7CisJCXBlcmlvZC0+ZW5kYXR0 bnVtID0gSW52YWxpZEF0dHJOdW1iZXI7CisKKwkJaWYgKFN5c3RlbUF0dHJpYnV0ZUJ5TmFt ZShwZXJpb2QtPnBlcmlvZG5hbWUpICE9IE5VTEwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9DT0xVTU4pLAorCQkJCQkgZXJybXNnKCJw ZXJpb2QgbmFtZSBcIiVzXCIgY29uZmxpY3RzIHdpdGggYSBzeXN0ZW0gY29sdW1uIG5hbWUi LAorCQkJCQkJCXBlcmlvZC0+cGVyaW9kbmFtZSkpKTsKKworCQlmb3JlYWNoIChlbnRyeTIs IHBlcmlvZHMpCisJCXsKKwkJCVBlcmlvZERlZiAqcGVyaW9kMiA9IGxmaXJzdChlbnRyeTIp OworCisJCQlpZiAocGVyaW9kICE9IHBlcmlvZDIgJiYgc3RyY21wKHBlcmlvZC0+cGVyaW9k bmFtZSwgcGVyaW9kMi0+cGVyaW9kbmFtZSkgPT0gMCkKKwkJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkJCSBlcnJt c2coInBlcmlvZCBuYW1lIFwiJXNcIiBzcGVjaWZpZWQgbW9yZSB0aGFuIG9uY2UiLAorCQkJ CQkJCQlwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisJCX0KKworCQlmb3JlYWNoIChlbnRyeTIs IHRhYmxlRWx0cykKKwkJeworCQkJQ29sdW1uRGVmICpjb2wgPSBsZmlyc3QoZW50cnkyKTsK KwkJCWludDMyCWF0dHR5cG1vZDsKKwkJCUFjbFJlc3VsdCBhY2xyZXN1bHQ7CisKKwkJCWlm ICghcGVyaW9kLT5jb2xleGlzdHMgJiYgc3RyY21wKHBlcmlvZC0+cGVyaW9kbmFtZSwgY29s LT5jb2xuYW1lKSA9PSAwKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShF UlJDT0RFX0RVUExJQ0FURV9DT0xVTU4pLAorCQkJCQkJIGVycm1zZygicGVyaW9kIG5hbWUg XCIlc1wiIGNvbmZsaWN0cyB3aXRoIGEgY29sdW1uIG5hbWUiLAorCQkJCQkJCQlwZXJpb2Qt PnBlcmlvZG5hbWUpKSk7CisKKwkJCWlmIChzdHJjbXAocGVyaW9kLT5zdGFydGNvbG5hbWUs IGNvbC0+Y29sbmFtZSkgPT0gMCkKKwkJCXsKKwkJCQlwZXJpb2QtPnN0YXJ0YXR0bnVtID0g aTsKKworCQkJCXR5cGVuYW1lVHlwZUlkQW5kTW9kKE5VTEwsIGNvbC0+dHlwZU5hbWUsICZz dGFydGNvbHR5cGlkLCAmYXR0dHlwbW9kKTsKKworCQkJCWFjbHJlc3VsdCA9IG9iamVjdF9h Y2xjaGVjayhUeXBlUmVsYXRpb25JZCwgc3RhcnRjb2x0eXBpZCwgR2V0VXNlcklkKCksIEFD TF9VU0FHRSk7CisJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQkJYWNs Y2hlY2tfZXJyb3JfdHlwZShhY2xyZXN1bHQsIHN0YXJ0Y29sdHlwaWQpOworCisJCQkJc3Rh cnRjb2xjb2xsYXRpb24gPSBHZXRDb2x1bW5EZWZDb2xsYXRpb24oTlVMTCwgY29sLCBzdGFy dGNvbHR5cGlkKTsKKwkJCX0KKworCQkJaWYgKHN0cmNtcChwZXJpb2QtPmVuZGNvbG5hbWUs IGNvbC0+Y29sbmFtZSkgPT0gMCkKKwkJCXsKKwkJCQlwZXJpb2QtPmVuZGF0dG51bSA9IGk7 CisKKwkJCQl0eXBlbmFtZVR5cGVJZEFuZE1vZChOVUxMLCBjb2wtPnR5cGVOYW1lLCAmZW5k Y29sdHlwaWQsICZhdHR0eXBtb2QpOworCisJCQkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNo ZWNrKFR5cGVSZWxhdGlvbklkLCBlbmRjb2x0eXBpZCwgR2V0VXNlcklkKCksIEFDTF9VU0FH RSk7CisJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQkJYWNsY2hlY2tf ZXJyb3JfdHlwZShhY2xyZXN1bHQsIGVuZGNvbHR5cGlkKTsKKworCQkJCWVuZGNvbGNvbGxh dGlvbiA9IEdldENvbHVtbkRlZkNvbGxhdGlvbihOVUxMLCBjb2wsIGVuZGNvbHR5cGlkKTsK KwkJCX0KKworCQkJaSsrOworCQl9CisKKwkJLyogRGlkIHdlIGZpbmQgdGhlIGNvbHVtbnM/ ICovCisJCWlmIChwZXJpb2QtPnN0YXJ0YXR0bnVtID09IEludmFsaWRBdHRyTnVtYmVyKQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09M VU1OKSwKKwkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIg ZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCXBlcmlvZC0+c3RhcnRjb2xuYW1lLCByZWxuYW1l KSkpOworCQlpZiAocGVyaW9kLT5lbmRhdHRudW0gPT0gSW52YWxpZEF0dHJOdW1iZXIpCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xV TU4pLAorCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBk b2VzIG5vdCBleGlzdCIsCisJCQkJCQkJcGVyaW9kLT5lbmRjb2xuYW1lLCByZWxuYW1lKSkp OworCisJCS8qIEJvdGggY29sdW1ucyBtdXN0IGJlIG9mIHNhbWUgdHlwZSAqLworCQlpZiAo c3RhcnRjb2x0eXBpZCAhPSBlbmRjb2x0eXBpZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkgZXJybXNnKCJz dGFydCBhbmQgZW5kIGNvbHVtbnMgb2YgcGVyaW9kIG11c3QgYmUgb2Ygc2FtZSB0eXBlIikp KTsKKworCQkvKiBCb3RoIGNvbHVtbnMgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbGxhdGlvbiAq LworCQlpZiAoc3RhcnRjb2xjb2xsYXRpb24gIT0gZW5kY29sY29sbGF0aW9uKQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9DT0xMQVRJT05fTUlTTUFUQ0gp LAorCQkJCQkgZXJybXNnKCJzdGFydCBhbmQgZW5kIGNvbHVtbnMgb2YgcGVyaW9kIG11c3Qg aGF2ZSBzYW1lIGNvbGxhdGlvbiIpKSk7CisKKwkJcGVyaW9kLT5jb2x0eXBpZCA9IHN0YXJ0 Y29sdHlwaWQ7CisJCXBlcmlvZC0+cm5ndHlwaWQgPSBjaG9vc2VfcmFuZ2V0eXBlX2Zvcl9w ZXJpb2QocGVyaW9kKTsKKwl9CisKKwlyZXR1cm4gcGVyaW9kczsKK30KKwogLyoKICAqIE1l cmdlQ2hlY2tDb25zdHJhaW50CiAgKgkJVHJ5IHRvIG1lcmdlIGFuIGluaGVyaXRlZCBDSEVD SyBjb25zdHJhaW50IHdpdGggcHJldmlvdXMgb25lcwpAQCAtNDM4OSwxMiArNDk2NCwxMiBA QCBBbHRlclRhYmxlKEFsdGVyVGFibGVTdG10ICpzdG10LCBMT0NLTU9ERSBsb2NrbW9kZSwK ICAqIGV4aXN0aW5nIHF1ZXJ5IHBsYW5zLiAgT24gdGhlIGFzc3VtcHRpb24gaXQncyBub3Qg dXNlZCBmb3Igc3VjaCwgd2UKICAqIGRvbid0IGhhdmUgdG8gcmVqZWN0IHBlbmRpbmcgQUZU RVIgdHJpZ2dlcnMsIGVpdGhlci4KICAqCi0gKiBBbHNvLCBzaW5jZSB3ZSBkb24ndCBoYXZl IGFuIEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCwgdGhpcyBjYW5ub3QgYmUKKyAqIEFsc28s IGlmIHlvdSBkb24ndCBwYXNzIGFuIEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCwgdGhpcyBj YW5ub3QgYmUKICAqIHVzZWQgZm9yIGFueSBzdWJjb21tYW5kIHR5cGVzIHRoYXQgcmVxdWly ZSBwYXJzZSB0cmFuc2Zvcm1hdGlvbiBvcgogICogY291bGQgZ2VuZXJhdGUgc3ViY29tbWFu ZHMgdGhhdCBoYXZlIHRvIGJlIHBhc3NlZCB0byBQcm9jZXNzVXRpbGl0eS4KICAqLwogdm9p ZAotQWx0ZXJUYWJsZUludGVybmFsKE9pZCByZWxpZCwgTGlzdCAqY21kcywgYm9vbCByZWN1 cnNlKQorQWx0ZXJUYWJsZUludGVybmFsKE9pZCByZWxpZCwgTGlzdCAqY21kcywgYm9vbCBy ZWN1cnNlLCBBbHRlclRhYmxlVXRpbGl0eUNvbnRleHQgKmNvbnRleHQpCiB7CiAJUmVsYXRp b24JcmVsOwogCUxPQ0tNT0RFCWxvY2ttb2RlID0gQWx0ZXJUYWJsZUdldExvY2tMZXZlbChj bWRzKTsKQEAgLTQ0MDMsNyArNDk3OCw3IEBAIEFsdGVyVGFibGVJbnRlcm5hbChPaWQgcmVs aWQsIExpc3QgKmNtZHMsIGJvb2wgcmVjdXJzZSkKIAogCUV2ZW50VHJpZ2dlckFsdGVyVGFi bGVSZWxpZChyZWxpZCk7CiAKLQlBVENvbnRyb2xsZXIoTlVMTCwgcmVsLCBjbWRzLCByZWN1 cnNlLCBsb2NrbW9kZSwgTlVMTCk7CisJQVRDb250cm9sbGVyKE5VTEwsIHJlbCwgY21kcywg cmVjdXJzZSwgbG9ja21vZGUsIGNvbnRleHQpOwogfQogCiAvKgpAQCAtNDQ5Niw2ICs1MDcx LDggQEAgQWx0ZXJUYWJsZUdldExvY2tMZXZlbChMaXN0ICpjbWRzKQogCQkJY2FzZSBBVF9F bmFibGVSZXBsaWNhUnVsZToJLyogbWF5IGNoYW5nZSBTRUxFQ1QgcnVsZXMgKi8KIAkJCWNh c2UgQVRfRW5hYmxlUnVsZTogLyogbWF5IGNoYW5nZSBTRUxFQ1QgcnVsZXMgKi8KIAkJCWNh c2UgQVRfRGlzYWJsZVJ1bGU6CS8qIG1heSBjaGFuZ2UgU0VMRUNUIHJ1bGVzICovCisJCQlj YXNlIEFUX0FkZFBlcmlvZDogLyogc2hhcmVzIG5hbWVzcGFjZSB3aXRoIGNvbHVtbnMsIGFk ZHMgY29uc3RyYWludCAqLworCQkJY2FzZSBBVF9Ecm9wUGVyaW9kOgogCQkJCWNtZF9sb2Nr bW9kZSA9IEFjY2Vzc0V4Y2x1c2l2ZUxvY2s7CiAJCQkJYnJlYWs7CiAKQEAgLTQ4MjgsNiAr NTQwNSwxNCBAQCBBVFByZXBDbWQoTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVsLCBBbHRl clRhYmxlQ21kICpjbWQsCiAJCQkvKiBUaGlzIGNvbW1hbmQgbmV2ZXIgcmVjdXJzZXMgKi8K IAkJCXBhc3MgPSBBVF9QQVNTX0FERF9PVEhFUkNPTlNUUjsKIAkJCWJyZWFrOworCQljYXNl IEFUX0FkZFBlcmlvZDogLyogQUxURVIgVEFCTEUgLi4uIEFERCBQRVJJT0QgRk9SIG5hbWUg KHN0YXJ0LCBlbmQpICovCisJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+c3VidHlwZSwg cmVsLCBBVFRfVEFCTEUpOworCQkJcGFzcyA9IEFUX1BBU1NfQUREX1BFUklPRDsKKwkJCWJy ZWFrOworCQljYXNlIEFUX0Ryb3BQZXJpb2Q6IC8qIEFMVEVSIFRBQkxFIC4uLiBEUk9QIFBF UklPRCBGT1IgbmFtZSAqLworCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQtPnN1YnR5cGUs IHJlbCwgQVRUX1RBQkxFKTsKKwkJCXBhc3MgPSBBVF9QQVNTX0RST1A7CisJCQlicmVhazsK IAkJY2FzZSBBVF9BZGRJZGVudGl0eToKIAkJCUFUU2ltcGxlUGVybWlzc2lvbnMoY21kLT5z dWJ0eXBlLCByZWwsIEFUVF9UQUJMRSB8IEFUVF9WSUVXIHwgQVRUX0ZPUkVJR05fVEFCTEUp OwogCQkJLyogU2V0IHVwIHJlY3Vyc2lvbiBmb3IgcGhhc2UgMjsgbm8gb3RoZXIgcHJlcCBu ZWVkZWQgKi8KQEAgLTUyMzcsNiArNTgyMiwxNCBAQCBBVEV4ZWNDbWQoTGlzdCAqKndxdWV1 ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLAogCQljYXNlIEFUX0Nvb2tlZENvbHVtbkRlZmF1 bHQ6CS8qIGFkZCBhIHByZS1jb29rZWQgZGVmYXVsdCAqLwogCQkJYWRkcmVzcyA9IEFURXhl Y0Nvb2tlZENvbHVtbkRlZmF1bHQocmVsLCBjbWQtPm51bSwgY21kLT5kZWYpOwogCQkJYnJl YWs7CisJCWNhc2UgQVRfQWRkUGVyaW9kOgorCQkJYWRkcmVzcyA9IEFURXhlY0FkZFBlcmlv ZChyZWwsIChQZXJpb2REZWYgKikgY21kLT5kZWYsIGNvbnRleHQpOworCQkJYnJlYWs7CisJ CWNhc2UgQVRfRHJvcFBlcmlvZDoKKwkJCUFURXhlY0Ryb3BQZXJpb2QocmVsLCBjbWQtPm5h bWUsIGNtZC0+YmVoYXZpb3IsCisJCQkJCQkJCSBmYWxzZSwgZmFsc2UsCisJCQkJCQkJCSBj bWQtPm1pc3Npbmdfb2spOworCQkJYnJlYWs7CiAJCWNhc2UgQVRfQWRkSWRlbnRpdHk6CiAJ CQljbWQgPSBBVFBhcnNlVHJhbnNmb3JtQ21kKHdxdWV1ZSwgdGFiLCByZWwsIGNtZCwgZmFs c2UsIGxvY2ttb2RlLAogCQkJCQkJCQkJICBjdXJfcGFzcywgY29udGV4dCk7CkBAIC02NDA2 LDYgKzY5OTksOCBAQCBhbHRlcl90YWJsZV90eXBlX3RvX3N0cmluZyhBbHRlclRhYmxlVHlw ZSBjbWR0eXBlKQogCQljYXNlIEFUX0FkZENvbHVtbjoKIAkJY2FzZSBBVF9BZGRDb2x1bW5U b1ZpZXc6CiAJCQlyZXR1cm4gIkFERCBDT0xVTU4iOworCQljYXNlIEFUX0FkZFBlcmlvZDoK KwkJCXJldHVybiAiQUREIFBFUklPRCI7CiAJCWNhc2UgQVRfQ29sdW1uRGVmYXVsdDoKIAkJ Y2FzZSBBVF9Db29rZWRDb2x1bW5EZWZhdWx0OgogCQkJcmV0dXJuICJBTFRFUiBDT0xVTU4g Li4uIFNFVCBERUZBVUxUIjsKQEAgLTY0MzEsNiArNzAyNiw4IEBAIGFsdGVyX3RhYmxlX3R5 cGVfdG9fc3RyaW5nKEFsdGVyVGFibGVUeXBlIGNtZHR5cGUpCiAJCQlyZXR1cm4gIkFMVEVS IENPTFVNTiAuLi4gU0VUIENPTVBSRVNTSU9OIjsKIAkJY2FzZSBBVF9Ecm9wQ29sdW1uOgog CQkJcmV0dXJuICJEUk9QIENPTFVNTiI7CisJCWNhc2UgQVRfRHJvcFBlcmlvZDoKKwkJCXJl dHVybiAiRFJPUCBQRVJJT0QiOwogCQljYXNlIEFUX0FkZEluZGV4OgogCQljYXNlIEFUX1Jl QWRkSW5kZXg6CiAJCQlyZXR1cm4gTlVMTDsJCS8qIG5vdCByZWFsIGdyYW1tYXIgKi8KQEAg LTc0MDgsMTQgKzgwMDUsMjkgQEAgQVRFeGVjQWRkQ29sdW1uKExpc3QgKip3cXVldWUsIEFs dGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogLyoKICAqIElmIGEgbmV3IG9y IHJlbmFtZWQgY29sdW1uIHdpbGwgY29sbGlkZSB3aXRoIHRoZSBuYW1lIG9mIGFuIGV4aXN0 aW5nCiAgKiBjb2x1bW4gYW5kIGlmX25vdF9leGlzdHMgaXMgZmFsc2UgdGhlbiBlcnJvciBv dXQsIGVsc2UgZG8gbm90aGluZy4KKyAqCisgKiBTZWUgYWxzbyBjaGVja19mb3JfcGVyaW9k X25hbWVfY29sbGlzaW9uLgogICovCiBzdGF0aWMgYm9vbAogY2hlY2tfZm9yX2NvbHVtbl9u YW1lX2NvbGxpc2lvbihSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbG5hbWUsCiAJCQkJ CQkJCWJvb2wgaWZfbm90X2V4aXN0cykKIHsKLQlIZWFwVHVwbGUJYXR0VHVwbGU7CisJSGVh cFR1cGxlCWF0dFR1cGxlLCBwZXJUdXBsZTsKIAlpbnQJCQlhdHRudW07CiAKKwkvKiBJZiB0 aGUgbmFtZSBleGlzdHMgYXMgYSBwZXJpb2QsIHdlJ3JlIGRvbmUuICovCisJcGVyVHVwbGUg PSBTZWFyY2hTeXNDYWNoZTIoUEVSSU9ETkFNRSwKKwkJCQkJCQkgICBPYmplY3RJZEdldERh dHVtKFJlbGF0aW9uR2V0UmVsaWQocmVsKSksCisJCQkJCQkJICAgUG9pbnRlckdldERhdHVt KGNvbG5hbWUpKTsKKwlpZiAoSGVhcFR1cGxlSXNWYWxpZChwZXJUdXBsZSkpCisJeworCQlS ZWxlYXNlU3lzQ2FjaGUocGVyVHVwbGUpOworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJj b2RlKEVSUkNPREVfRFVQTElDQVRFX0NPTFVNTiksCisJCQkJIGVycm1zZygiY29sdW1uIG5h bWUgXCIlc1wiIGNvbmZsaWN0cyB3aXRoIGEgcGVyaW9kIG5hbWUiLAorCQkJCQkJY29sbmFt ZSkpKTsKKwl9CisKIAkvKgogCSAqIHRoaXMgdGVzdCBpcyBkZWxpYmVyYXRlbHkgbm90IGF0 dGlzZHJvcHBlZC1hd2FyZSwgc2luY2UgaWYgb25lIHRyaWVzIHRvCiAJICogYWRkIGEgY29s dW1uIG1hdGNoaW5nIGEgZHJvcHBlZCBjb2x1bW4gbmFtZSwgaXQncyBnb25uYSBmYWlsIGFu eXdheS4KQEAgLTc0NTksNiArODA3MSw3NyBAQCBjaGVja19mb3JfY29sdW1uX25hbWVfY29s bGlzaW9uKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sbmFtZSwKIAlyZXR1cm4gdHJ1 ZTsKIH0KIAorLyoKKyAqIElmIGEgbmV3IHBlcmlvZCBuYW1lIHdpbGwgY29sbGlkZSB3aXRo IHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNvbHVtbiBvcgorICogcGVyaW9kIFthbmQgaWZf bm90X2V4aXN0cyBpcyBmYWxzZV0gdGhlbiBlcnJvciBvdXQsIGVsc2UgZG8gbm90aGluZy4K KyAqCisgKiBTZWUgYWxzbyBjaGVja19mb3JfY29sdW1uX25hbWVfY29sbGlzaW9uLgorICov CitzdGF0aWMgYm9vbAorY2hlY2tfZm9yX3BlcmlvZF9uYW1lX2NvbGxpc2lvbihSZWxhdGlv biByZWwsIGNvbnN0IGNoYXIgKnBlcm5hbWUsCisJCQkJCQkJCWJvb2wgY29sZXhpc3RzLCBi b29sIGlmX25vdF9leGlzdHMpCit7CisJSGVhcFR1cGxlCWF0dFR1cGxlLCBwZXJUdXBsZTsK KwlpbnQJCQlhdHRudW07CisKKwkvKiBUT0RPOiBpbXBsZW1lbnQgSUYgW05PVF0gRVhJU1RT IGZvciBwZXJpb2RzICovCisJQXNzZXJ0KCFpZl9ub3RfZXhpc3RzKTsKKworCS8qIElmIHRo ZXJlIGlzIGFscmVhZHkgYSBwZXJpb2Qgd2l0aCB0aGlzIG5hbWUsIHRoZW4gd2UncmUgZG9u ZS4gKi8KKwlwZXJUdXBsZSA9IFNlYXJjaFN5c0NhY2hlMihQRVJJT0ROQU1FLAorCQkJCQkJ CSAgIE9iamVjdElkR2V0RGF0dW0oUmVsYXRpb25HZXRSZWxpZChyZWwpKSwKKwkJCQkJCQkg ICBQb2ludGVyR2V0RGF0dW0ocGVybmFtZSkpOworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHBl clR1cGxlKSkKKwl7CisJCWlmIChpZl9ub3RfZXhpc3RzKQorCQl7CisJCQlSZWxlYXNlU3lz Q2FjaGUocGVyVHVwbGUpOworCisJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJKGVycmNvZGUo RVJSQ09ERV9EVVBMSUNBVEVfQ09MVU1OKSwKKwkJCQkJIGVycm1zZygicGVyaW9kIFwiJXNc IiBvZiByZWxhdGlvbiBcIiVzXCIgYWxyZWFkeSBleGlzdHMsIHNraXBwaW5nIiwKKwkJCQkJ CQlwZXJuYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOworCQkJcmV0dXJu IGZhbHNlOworCQl9CisKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RF X0RVUExJQ0FURV9DT0xVTU4pLAorCQkJCSBlcnJtc2coInBlcmlvZCBcIiVzXCIgb2YgcmVs YXRpb24gXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwKKwkJCQkJCXBlcm5hbWUsIFJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJfQorCisJLyoKKwkgKiB0aGlzIHRlc3QgaXMg ZGVsaWJlcmF0ZWx5IG5vdCBhdHRpc2Ryb3BwZWQtYXdhcmUsIHNpbmNlIGlmIG9uZSB0cmll cyB0bworCSAqIGFkZCBhIGNvbHVtbiBtYXRjaGluZyBhIGRyb3BwZWQgY29sdW1uIG5hbWUs IGl0J3MgZ29ubmEgZmFpbCBhbnl3YXkuCisJICovCisJYXR0VHVwbGUgPSBTZWFyY2hTeXND YWNoZTIoQVRUTkFNRSwKKwkJCQkJCQkgICBPYmplY3RJZEdldERhdHVtKFJlbGF0aW9uR2V0 UmVsaWQocmVsKSksCisJCQkJCQkJICAgUG9pbnRlckdldERhdHVtKHBlcm5hbWUpKTsKKwlp ZiAoSGVhcFR1cGxlSXNWYWxpZChhdHRUdXBsZSkpCisJeworCQlhdHRudW0gPSAoKEZvcm1f cGdfYXR0cmlidXRlKSBHRVRTVFJVQ1QoYXR0VHVwbGUpKS0+YXR0bnVtOworCQlSZWxlYXNl U3lzQ2FjaGUoYXR0VHVwbGUpOworCisJCS8qCisJCSAqIFdlIHRocm93IGEgZGlmZmVyZW50 IGVycm9yIG1lc3NhZ2UgZm9yIGNvbmZsaWN0cyB3aXRoIHN5c3RlbSBjb2x1bW4KKwkJICog bmFtZXMsIHNpbmNlIHRoZXkgYXJlIG5vcm1hbGx5IG5vdCBzaG93biBhbmQgdGhlIHVzZXIg bWlnaHQgb3RoZXJ3aXNlCisJCSAqIGJlIGNvbmZ1c2VkIGFib3V0IHRoZSByZWFzb24gZm9y IHRoZSBjb25mbGljdC4KKwkJICovCisJCWlmIChhdHRudW0gPD0gMCkKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX0NPTFVNTiksCisJCQkJ CSBlcnJtc2coInBlcmlvZCBuYW1lIFwiJXNcIiBjb25mbGljdHMgd2l0aCBhIHN5c3RlbSBj b2x1bW4gbmFtZSIsCisJCQkJCQkJcGVybmFtZSkpKTsKKwkJaWYgKCFjb2xleGlzdHMpCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9DT0xV TU4pLAorCQkJCQkgZXJybXNnKCJwZXJpb2QgbmFtZSBcIiVzXCIgY29uZmxpY3RzIHdpdGgg YSBjb2x1bW4gbmFtZSIsCisJCQkJCQkJcGVybmFtZSkpKTsKKwl9CisKKwlyZXR1cm4gdHJ1 ZTsKK30KKwogLyoKICAqIEluc3RhbGwgYSBjb2x1bW4ncyBkZXBlbmRlbmN5IG9uIGl0cyBk YXRhdHlwZS4KICAqLwpAQCAtNzk4OSw2ICs4NjcyLDE1NyBAQCBBVEV4ZWNDb29rZWRDb2x1 bW5EZWZhdWx0KFJlbGF0aW9uIHJlbCwgQXR0ck51bWJlciBhdHRudW0sCiAJcmV0dXJuIGFk ZHJlc3M7CiB9CiAKKy8qCisgKiBBTFRFUiBUQUJMRSBBREQgUEVSSU9ECisgKgorICogUmV0 dXJuIHRoZSBhZGRyZXNzIG9mIHRoZSBwZXJpb2QuCisgKi8KK3N0YXRpYyBPYmplY3RBZGRy ZXNzCitBVEV4ZWNBZGRQZXJpb2QoUmVsYXRpb24gcmVsLCBQZXJpb2REZWYgKnBlcmlvZCwg QWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0ICpjb250ZXh0KQoreworCVJlbGF0aW9uCQlhdHRy ZWxhdGlvbjsKKwlPYmplY3RBZGRyZXNzCWFkZHJlc3MgPSBJbnZhbGlkT2JqZWN0QWRkcmVz czsKKwlDb25zdHJhaW50CSAgICpjb25zdHI7CisJQ29sdW1uRGVmCSAgICpyYW5nZWNvbDsK KwlPaWQJCQkJY29ub2lkLCBwZXJpb2RvaWQ7CisJTGlzdAkJICAgKmNtZHMgPSBOSUw7CisJ QWx0ZXJUYWJsZUNtZCAgKmNtZDsKKworCS8qCisJICogUEVSSU9EIEZPUiBTWVNURU1fVElN RSBpcyBub3QgeWV0IGltcGxlbWVudGVkLCBidXQgbWFrZSBzdXJlIG5vIG9uZSB1c2VzCisJ ICogdGhlIG5hbWUuCisJICovCisJaWYgKHN0cmNtcChwZXJpb2QtPnBlcmlvZG5hbWUsICJz eXN0ZW1fdGltZSIpID09IDApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2coIlBFUklPRCBG T1IgU1lTVEVNX1RJTUUgaXMgbm90IHN1cHBvcnRlZCIpKSk7CisKKwkvKiBQYXJzZSBvcHRp b25zICovCisJdHJhbnNmb3JtUGVyaW9kT3B0aW9ucyhwZXJpb2QpOworCisJLyogVGhlIHBl cmlvZCBuYW1lIG11c3Qgbm90IGFscmVhZHkgZXhpc3QgKi8KKwkodm9pZCkgY2hlY2tfZm9y X3BlcmlvZF9uYW1lX2NvbGxpc2lvbihyZWwsIHBlcmlvZC0+cGVyaW9kbmFtZSwgcGVyaW9k LT5jb2xleGlzdHMsIGZhbHNlKTsKKworCWF0dHJlbGF0aW9uID0gdGFibGVfb3BlbihBdHRy aWJ1dGVSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwlWYWxpZGF0ZVBlcmlvZChy ZWwsIHBlcmlvZCk7CisKKwkvKiBNYWtlIHRoZSBDSEVDSyBjb25zdHJhaW50ICovCisJY29u c3RyID0gbWFrZV9jb25zdHJhaW50X2Zvcl9wZXJpb2QocmVsLCBwZXJpb2QpOworCWNtZCA9 IG1ha2VOb2RlKEFsdGVyVGFibGVDbWQpOworCWNtZC0+c3VidHlwZSA9IEFUX0FkZENvbnN0 cmFpbnQ7CisJY21kLT5kZWYgPSAoTm9kZSAqKSBjb25zdHI7CisJY21kcyA9IGxhcHBlbmQo Y21kcywgY21kKTsKKwlBbHRlclRhYmxlSW50ZXJuYWwoUmVsYXRpb25HZXRSZWxpZChyZWwp LCBjbWRzLCB0cnVlLCBjb250ZXh0KTsKKwljb25vaWQgPSBnZXRfcmVsYXRpb25fY29uc3Ry YWludF9vaWQoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBwZXJpb2QtPmNvbnN0cmFpbnRuYW1l LCBmYWxzZSk7CisKKwlpZiAoIXBlcmlvZC0+Y29sZXhpc3RzKQorCXsKKwkJLyogTWFrZSB0 aGUgcmFuZ2UgY29sdW1uICovCisJCXJhbmdlY29sID0gbWFrZV9yYW5nZV9jb2x1bW5fZm9y X3BlcmlvZChwZXJpb2QpOworCQljbWQgPSBtYWtlTm9kZShBbHRlclRhYmxlQ21kKTsKKwkJ Y21kLT5zdWJ0eXBlID0gQVRfQWRkQ29sdW1uOworCQljbWQtPmRlZiA9IChOb2RlICopIHJh bmdlY29sOworCQljbWQtPm5hbWUgPSBwZXJpb2QtPnBlcmlvZG5hbWU7CisJCWNtZC0+cmVj dXJzZSA9IGZhbHNlOyAvKiBubywgbGV0IHRoZSBQRVJJT0QgcmVjdXJzZSBpbnN0ZWFkICov CisJCUFsdGVyVGFibGVJbnRlcm5hbChSZWxhdGlvbkdldFJlbGlkKHJlbCksIGxpc3RfbWFr ZTEoY21kKSwgdHJ1ZSwgY29udGV4dCk7CisJCXBlcmlvZC0+cm5nYXR0bnVtID0gZ2V0X2F0 dG51bShSZWxhdGlvbkdldFJlbGlkKHJlbCksIHBlcmlvZC0+cGVyaW9kbmFtZSk7CisJCWlm IChwZXJpb2QtPnJuZ2F0dG51bSA9PSBJbnZhbGlkQXR0ck51bWJlcikKKwkJCWVsb2coRVJS T1IsICJtaXNzaW5nIGF0dHJpYnV0ZSAlcyIsIHBlcmlvZC0+cGVyaW9kbmFtZSk7CisKKwl9 CisKKwkvKiBTYXZlIHRoZSBQZXJpb2QgKi8KKwlwZXJpb2RvaWQgPSBTdG9yZVBlcmlvZChy ZWwsIHBlcmlvZC0+cGVyaW9kbmFtZSwgcGVyaW9kLT5zdGFydGF0dG51bSwgcGVyaW9kLT5l bmRhdHRudW0sIHBlcmlvZC0+cm5nYXR0bnVtLCBjb25vaWQpOworCisJT2JqZWN0QWRkcmVz c1NldChhZGRyZXNzLCBQZXJpb2RSZWxhdGlvbklkLCBwZXJpb2RvaWQpOworCisJdGFibGVf Y2xvc2UoYXR0cmVsYXRpb24sIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJcmV0dXJuIGFkZHJl c3M7Cit9CisKKy8qCisgKiBBTFRFUiBUQUJMRSBEUk9QIFBFUklPRAorICoKKyAqIExpa2Ug RFJPUCBDT0xVTU4sIHdlIGNhbid0IHVzZSB0aGUgbm9ybWFsIEFMVEVSIFRBQkxFIHJlY3Vy c2lvbiBtZWNoYW5pc20uCisgKi8KK3N0YXRpYyB2b2lkCitBVEV4ZWNEcm9wUGVyaW9kKFJl bGF0aW9uIHJlbCwgY29uc3QgY2hhciAqcGVyaW9kTmFtZSwKKwkJCQkJIERyb3BCZWhhdmlv ciBiZWhhdmlvciwKKwkJCQkJIGJvb2wgcmVjdXJzZSwgYm9vbCByZWN1cnNpbmcsCisJCQkJ CSBib29sIG1pc3Npbmdfb2spCit7CisJUmVsYXRpb24JcGdfcGVyaW9kOworCUZvcm1fcGdf cGVyaW9kIHBlcmlvZDsKKwlTeXNTY2FuRGVzYyBzY2FuOworCVNjYW5LZXlEYXRhIGtleTsK KwlIZWFwVHVwbGUJdHVwbGU7CisJYm9vbAkJZm91bmQgPSBmYWxzZTsKKworCS8qIEF0IHRv cCBsZXZlbCwgcGVybWlzc2lvbiBjaGVjayB3YXMgZG9uZSBpbiBBVFByZXBDbWQsIGVsc2Ug ZG8gaXQgKi8KKwlpZiAocmVjdXJzaW5nKQorCQlBVFNpbXBsZVBlcm1pc3Npb25zKEFUX0Ry b3BQZXJpb2QsIHJlbCwgQVRUX1RBQkxFKTsKKworCXBnX3BlcmlvZCA9IHRhYmxlX29wZW4o UGVyaW9kUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkvKgorCSAqIEZpbmQg YW5kIGRyb3AgdGhlIHRhcmdldCBwZXJpb2QKKwkgKi8KKwlTY2FuS2V5SW5pdCgma2V5LAor CQkJCUFudW1fcGdfcGVyaW9kX3BlcnJlbGlkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJl ciwgRl9PSURFUSwKKwkJCQlPYmplY3RJZEdldERhdHVtKFJlbGF0aW9uR2V0UmVsaWQocmVs KSkpOworCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocGdfcGVyaW9kLCBQZXJpb2RSZWxp ZE5hbWVJbmRleElkLAorCQkJCQkJCSAgdHJ1ZSwgTlVMTCwgMSwgJmtleSk7CisKKwl3aGls ZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSA9IHN5c3RhYmxlX2dldG5leHQoc2NhbikpKQor CXsKKwkJT2JqZWN0QWRkcmVzcyBwZXJvYmo7CisKKwkJcGVyaW9kID0gKEZvcm1fcGdfcGVy aW9kKSBHRVRTVFJVQ1QodHVwbGUpOworCisJCWlmIChzdHJjbXAoTmFtZVN0cihwZXJpb2Qt PnBlcm5hbWUpLCBwZXJpb2ROYW1lKSAhPSAwKQorCQkJY29udGludWU7CisKKwkJLyoKKwkJ ICogUGVyZm9ybSB0aGUgYWN0dWFsIHBlcmlvZCBkZWxldGlvbgorCQkgKi8KKwkJcGVyb2Jq LmNsYXNzSWQgPSBQZXJpb2RSZWxhdGlvbklkOworCQlwZXJvYmoub2JqZWN0SWQgPSBwZXJp b2QtPm9pZDsKKwkJcGVyb2JqLm9iamVjdFN1YklkID0gMDsKKworCQlwZXJmb3JtRGVsZXRp b24oJnBlcm9iaiwgYmVoYXZpb3IsIDApOworCisJCWZvdW5kID0gdHJ1ZTsKKworCQkvKiBw ZXJpb2QgZm91bmQgYW5kIGRyb3BwZWQgLS0gbm8gbmVlZCB0byBrZWVwIGxvb3BpbmcgKi8K KwkJYnJlYWs7CisJfQorCisJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKworCWlmICghZm91 bmQpCisJeworCQlpZiAoIW1pc3Npbmdfb2spCisJCXsKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCSBlcnJtc2co InBlcmlvZCBcIiVzXCIgb24gcmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJ CQkJCQlwZXJpb2ROYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOworCQl9 CisJCWVsc2UKKwkJeworCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCShlcnJtc2coInBlcmlv ZCBcIiVzXCIgb24gcmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZyIs CisJCQkJCQkJcGVyaW9kTmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsK KwkJCXRhYmxlX2Nsb3NlKHBnX3BlcmlvZCwgUm93RXhjbHVzaXZlTG9jayk7CisJCQlyZXR1 cm47CisJCX0KKwl9CisKKwl0YWJsZV9jbG9zZShwZ19wZXJpb2QsIFJvd0V4Y2x1c2l2ZUxv Y2spOworfQorCiAvKgogICogQUxURVIgVEFCTEUgQUxURVIgQ09MVU1OIEFERCBJREVOVElU WQogICoKQEAgLTk3NjMsOCArMTA1OTcsOSBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50 KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAog CWZvciAoaSA9IDA7IGkgPCBudW1ma3M7IGkrKykKIAl7CiAJCWNoYXIJCWF0dGdlbmVyYXRl ZCA9IFR1cGxlRGVzY0F0dHIoUmVsYXRpb25HZXREZXNjcihyZWwpLCBma2F0dG51bVtpXSAt IDEpLT5hdHRnZW5lcmF0ZWQ7CisJCUJpdG1hcHNldCAgKnBlcmlvZHMgPSBnZXRfcGVyaW9k X2F0dG5vcyhSZWxhdGlvbkdldFJlbGlkKHJlbCkpOwogCi0JCWlmIChhdHRnZW5lcmF0ZWQp CisJCWlmIChhdHRnZW5lcmF0ZWQgJiYgIWJtc19pc19tZW1iZXIoZmthdHRudW1baV0sIHBl cmlvZHMpKQogCQl7CiAJCQkvKgogCQkJICogQ2hlY2sgcmVzdHJpY3Rpb25zIG9uIFVQREFU RS9ERUxFVEUgYWN0aW9ucywgcGVyIFNRTCBzdGFuZGFyZApAQCAtMTM1NDgsNiArMTQzODMs MTYgQEAgUmVtZW1iZXJBbGxEZXBlbmRlbnRGb3JSZWJ1aWxkaW5nKEFsdGVyZWRUYWJsZUlu Zm8gKnRhYiwgQWx0ZXJUYWJsZVR5cGUgc3VidHlwZSwKIAkJCQlSZW1lbWJlckNvbnN0cmFp bnRGb3JSZWJ1aWxkaW5nKGZvdW5kT2JqZWN0Lm9iamVjdElkLCB0YWIpOwogCQkJCWJyZWFr OwogCisJCQljYXNlIFBlcmlvZFJlbGF0aW9uSWQ6CisJCQkJaWYgKHN1YnR5cGUgPT0gQVRf QWx0ZXJDb2x1bW5UeXBlKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkgZXJybXNnKCJjYW5u b3QgYWx0ZXIgdHlwZSBvZiBhIGNvbHVtbiB1c2VkIGJ5IGEgcGVyaW9kIiksCisJCQkJCQkJ IGVycmRldGFpbCgiJXMgZGVwZW5kcyBvbiBjb2x1bW4gXCIlc1wiIiwKKwkJCQkJCQkJCSAg IGdldE9iamVjdERlc2NyaXB0aW9uKCZmb3VuZE9iamVjdCwgZmFsc2UpLAorCQkJCQkJCQkJ ICAgY29sTmFtZSkpKTsKKwkJCQlicmVhazsKKwogCQkJY2FzZSBQcm9jZWR1cmVSZWxhdGlv bklkOgogCiAJCQkJLyoKQEAgLTEzNjM3LDYgKzE0NDgyLDE1IEBAIFJlbWVtYmVyQWxsRGVw ZW5kZW50Rm9yUmVidWlsZGluZyhBbHRlcmVkVGFibGVJbmZvICp0YWIsIEFsdGVyVGFibGVU eXBlIHN1YnR5cGUsCiAJCQkJCX0KIAkJCQkJZWxzZQogCQkJCQl7CisJCQkJCQkvKgorCQkJ CQkJICogSWYgdGhpcyBHRU5FUkFURUQgY29sdW1uIGlzIGltcGxlbWVudGluZyBhIFBFUklP RCwKKwkJCQkJCSAqIGtlZXAgZ29pbmcgYW5kIHdlJ2xsIGZhaWwgZnJvbSB0aGUgUEVSSU9E IGluc3RlYWQuCisJCQkJCQkgKiBUaGlzIGdpdmVzIGEgbW9yZSBjbGVhciBlcnJvciBtZXNz YWdlLgorCQkJCQkJICovCisJCQkJCQlCaXRtYXBzZXQgKnBlcmlvZGF0dHMgPSBnZXRfcGVy aW9kX2F0dG5vcyhSZWxhdGlvbkdldFJlbGlkKHJlbCkpOworCQkJCQkJaWYgKGJtc19pc19t ZW1iZXIoY29sLm9iamVjdFN1YklkLCBwZXJpb2RhdHRzKSkKKwkJCQkJCQlicmVhazsKKwog CQkJCQkJLyoKIAkJCQkJCSAqIFRoaXMgbXVzdCBiZSBhIHJlZmVyZW5jZSBmcm9tIHRoZSBl eHByZXNzaW9uIG9mIGEKIAkJCQkJCSAqIGdlbmVyYXRlZCBjb2x1bW4gZWxzZXdoZXJlIGlu IHRoZSBzYW1lIHRhYmxlLgpAQCAtMTU1MzAsNyArMTYzODQsNyBAQCBBbHRlclRhYmxlTW92 ZUFsbChBbHRlclRhYmxlTW92ZUFsbFN0bXQgKnN0bXQpCiAKIAkJRXZlbnRUcmlnZ2VyQWx0 ZXJUYWJsZVN0YXJ0KChOb2RlICopIHN0bXQpOwogCQkvKiBPSUQgaXMgc2V0IGJ5IEFsdGVy VGFibGVJbnRlcm5hbCAqLwotCQlBbHRlclRhYmxlSW50ZXJuYWwobGZpcnN0X29pZChsKSwg Y21kcywgZmFsc2UpOworCQlBbHRlclRhYmxlSW50ZXJuYWwobGZpcnN0X29pZChsKSwgY21k cywgZmFsc2UsIE5VTEwpOwogCQlFdmVudFRyaWdnZXJBbHRlclRhYmxlRW5kKCk7CiAJfQog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy92aWV3LmMKaW5kZXggZmRhZDgzMzgzMjQuLjNhZTIyNWQ2Nzk4IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmlldy5jCkBAIC0xNjQsNyArMTY0LDcgQEAgRGVmaW5lVmlydHVhbFJlbGF0 aW9uKFJhbmdlVmFyICpyZWxhdGlvbiwgTGlzdCAqdGxpc3QsIGJvb2wgcmVwbGFjZSwKIAkJ CX0KIAogCQkJLyogRXZlbnRUcmlnZ2VyQWx0ZXJUYWJsZVN0YXJ0IGNhbGxlZCBieSBQcm9j ZXNzVXRpbGl0eVNsb3cgKi8KLQkJCUFsdGVyVGFibGVJbnRlcm5hbCh2aWV3T2lkLCBhdGNt ZHMsIHRydWUpOworCQkJQWx0ZXJUYWJsZUludGVybmFsKHZpZXdPaWQsIGF0Y21kcywgdHJ1 ZSwgTlVMTCk7CiAKIAkJCS8qIE1ha2UgdGhlIG5ldyB2aWV3IGNvbHVtbnMgdmlzaWJsZSAq LwogCQkJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKQEAgLTE5Niw3ICsxOTYsNyBAQCBE ZWZpbmVWaXJ0dWFsUmVsYXRpb24oUmFuZ2VWYXIgKnJlbGF0aW9uLCBMaXN0ICp0bGlzdCwg Ym9vbCByZXBsYWNlLAogCQlhdGNtZHMgPSBsaXN0X21ha2UxKGF0Y21kKTsKIAogCQkvKiBF dmVudFRyaWdnZXJBbHRlclRhYmxlU3RhcnQgY2FsbGVkIGJ5IFByb2Nlc3NVdGlsaXR5U2xv dyAqLwotCQlBbHRlclRhYmxlSW50ZXJuYWwodmlld09pZCwgYXRjbWRzLCB0cnVlKTsKKwkJ QWx0ZXJUYWJsZUludGVybmFsKHZpZXdPaWQsIGF0Y21kcywgdHJ1ZSwgTlVMTCk7CiAKIAkJ LyoKIAkJICogVGhlcmUgaXMgdmVyeSBsaXR0bGUgdG8gZG8gaGVyZSB0byB1cGRhdGUgdGhl IHZpZXcncyBkZXBlbmRlbmNpZXMuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlTW9kaWZ5VGFibGUuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlU YWJsZS5jCmluZGV4IGEwZjI5Mjg1ZjQ1Li5jZjI1MDA0YmZiZCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKQEAgLTEzNTUsOCArMTM1NSw0NiBAQCBFeGVj Rm9yUG9ydGlvbk9mTGVmdG92ZXJzKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKIAkJ fQogCiAJCS8qIHN0b3JlIHRoZSBuZXcgcmFuZ2UgKi8KLQkJbGVmdG92ZXJTbG90LT50dHNf dmFsdWVzW2ZvclBvcnRpb25PZi0+cmFuZ2VWYXItPnZhcmF0dG5vIC0gMV0gPSBsZWZ0b3Zl cjsKLQkJbGVmdG92ZXJTbG90LT50dHNfaXNudWxsW2ZvclBvcnRpb25PZi0+cmFuZ2VWYXIt PnZhcmF0dG5vIC0gMV0gPSBmYWxzZTsKKwkJaWYgKGZvclBvcnRpb25PZi0+c3RhcnRWYXIp CisJCXsKKwkJCS8qIEZvciBQRVJJT0RzIHdlIG11c3Qgc3BsaXQgdGhlIHJhbmdlIGludG8g c3RhcnQgYW5kIGVuZCBjb2x1bW5zICovCisKKwkJCVJhbmdlVHlwZSAgKnIgPSBEYXR1bUdl dFJhbmdlVHlwZVAobGVmdG92ZXIpOworCQkJUmFuZ2VCb3VuZAlsb3dlcjsKKwkJCVJhbmdl Qm91bmQJdXBwZXI7CisJCQlib29sCQllbXB0eTsKKworCQkJcmFuZ2VfZGVzZXJpYWxpemUo dHlwY2FjaGUsIHIsICZsb3dlciwgJnVwcGVyLCAmZW1wdHkpOworCisJCQlpZiAobG93ZXIu aW5maW5pdGUpCisJCQl7CisJCQkJbGVmdG92ZXJTbG90LT50dHNfdmFsdWVzW2ZvclBvcnRp b25PZi0+c3RhcnRWYXItPnZhcmF0dG5vIC0gMV0gPSAwOworCQkJCWxlZnRvdmVyU2xvdC0+ dHRzX2lzbnVsbFtmb3JQb3J0aW9uT2YtPnN0YXJ0VmFyLT52YXJhdHRubyAtIDFdID0gdHJ1 ZTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlsZWZ0b3ZlclNsb3QtPnR0c192YWx1ZXNb Zm9yUG9ydGlvbk9mLT5zdGFydFZhci0+dmFyYXR0bm8gLSAxXSA9IGxvd2VyLnZhbDsKKwkJ CQlsZWZ0b3ZlclNsb3QtPnR0c19pc251bGxbZm9yUG9ydGlvbk9mLT5zdGFydFZhci0+dmFy YXR0bm8gLSAxXSA9IGZhbHNlOworCQkJfQorCisJCQlpZiAodXBwZXIuaW5maW5pdGUpCisJ CQl7CisJCQkJbGVmdG92ZXJTbG90LT50dHNfdmFsdWVzW2ZvclBvcnRpb25PZi0+ZW5kVmFy LT52YXJhdHRubyAtIDFdID0gMDsKKwkJCQlsZWZ0b3ZlclNsb3QtPnR0c19pc251bGxbZm9y UG9ydGlvbk9mLT5lbmRWYXItPnZhcmF0dG5vIC0gMV0gPSB0cnVlOworCQkJfQorCQkJZWxz ZQorCQkJeworCQkJCWxlZnRvdmVyU2xvdC0+dHRzX3ZhbHVlc1tmb3JQb3J0aW9uT2YtPmVu ZFZhci0+dmFyYXR0bm8gLSAxXSA9IHVwcGVyLnZhbDsKKwkJCQlsZWZ0b3ZlclNsb3QtPnR0 c19pc251bGxbZm9yUG9ydGlvbk9mLT5lbmRWYXItPnZhcmF0dG5vIC0gMV0gPSBmYWxzZTsK KwkJCX0KKwkJfQorCQllbHNlCisJCXsKKwkJCS8qIEp1c3Qgc3RvcmUgaW50byB0aGUgcmFu Z2Uvd2hhdGV2ZXIgY29sdW1uICovCisKKwkJCWxlZnRvdmVyU2xvdC0+dHRzX3ZhbHVlc1tm b3JQb3J0aW9uT2YtPnJhbmdlVmFyLT52YXJhdHRubyAtIDFdID0gbGVmdG92ZXI7CisJCQls ZWZ0b3ZlclNsb3QtPnR0c19pc251bGxbZm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0 bm8gLSAxXSA9IGZhbHNlOworCQl9CiAJCUV4ZWNNYXRlcmlhbGl6ZVNsb3QobGVmdG92ZXJT bG90KTsKIAogCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNz LmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCA4YzU2ZGM2N2MzMC4u MTViYmMxNDY4ODAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5j CisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0xNzIyLDYgKzE3MjIs OSBAQCBleHByTG9jYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX0NvbnN0cmFp bnQ6CiAJCQlsb2MgPSAoKGNvbnN0IENvbnN0cmFpbnQgKikgZXhwciktPmxvY2F0aW9uOwog CQkJYnJlYWs7CisJCWNhc2UgVF9QZXJpb2REZWY6CisJCQlsb2MgPSAoKGNvbnN0IFBlcmlv ZERlZiAqKSBleHByKS0+bG9jYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBUX0Z1bmN0aW9u UGFyYW1ldGVyOgogCQkJLyoganVzdCB1c2UgdHlwZW5hbWUncyBsb2NhdGlvbiAqLwogCQkJ bG9jID0gZXhwckxvY2F0aW9uKChOb2RlICopICgoY29uc3QgRnVuY3Rpb25QYXJhbWV0ZXIg KikgZXhwciktPmFyZ1R5cGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2Fu YWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggNGNhNzdiOWQz ZTkuLjQyMTkwZTc2ZTZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6 ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTI4LDYgKzI4LDcg QEAKICNpbmNsdWRlICJhY2Nlc3Mvc3RyYXRudW0uaCIKICNpbmNsdWRlICJhY2Nlc3Mvc3lz YXR0ci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX3BlcmlvZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgpAQCAt MTI2NSw3ICsxMjY2LDExIEBAIHRyYW5zZm9ybUZvclBvcnRpb25PZkNsYXVzZShQYXJzZVN0 YXRlICpwc3RhdGUsCiAJY2hhciAqcmFuZ2VfbmFtZSA9IGZvclBvcnRpb25PZi0+cmFuZ2Vf bmFtZTsKIAljaGFyICpyYW5nZV90eXBlX25hbWVzcGFjZSA9IE5VTEw7CiAJY2hhciAqcmFu Z2VfdHlwZV9uYW1lID0gTlVMTDsKLQlpbnQgcmFuZ2VfYXR0bm8gPSBJbnZhbGlkQXR0ck51 bWJlcjsKKwlBdHRyTnVtYmVyIHJhbmdlX2F0dG5vID0gSW52YWxpZEF0dHJOdW1iZXI7CisJ QXR0ck51bWJlciBzdGFydF9hdHRubyA9IEludmFsaWRBdHRyTnVtYmVyOworCUF0dHJOdW1i ZXIgZW5kX2F0dG5vID0gSW52YWxpZEF0dHJOdW1iZXI7CisJY2hhciAqc3RhcnRjb2xuYW1l ID0gTlVMTDsKKwljaGFyICplbmRjb2xuYW1lID0gTlVMTDsKIAlGb3JtX3BnX2F0dHJpYnV0 ZSBhdHRyOwogCU9pZAlvcGNsYXNzOwogCU9pZCBvcGZhbWlseTsKQEAgLTEzMDksNiArMTMx NCw1MyBAQCB0cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRl LAogCWlmICghZ2V0X3R5cG5hbWVfYW5kX25hbWVzcGFjZShhdHRyLT5hdHR0eXBpZCwgJnJh bmdlX3R5cGVfbmFtZSwgJnJhbmdlX3R5cGVfbmFtZXNwYWNlKSkKIAkJZWxvZyhFUlJPUiwg ImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHR5cGUgJXUiLCBhdHRyLT5hdHR0eXBpZCk7CiAK KwkvKgorCSAqIElmIHdlIGFyZSB1c2luZyBhIFBFUklPRCwgd2UgbmVlZCB0aGUgc3RhcnQg JiBlbmQgY29sdW1ucy4KKwkgKiBJZiB0aGUgYXR0cmlidXRlIGl0IG5vdCBhIEdFTkVSQVRF RCBjb2x1bW4sIHdlIG5lZWRuJ3QgcXVlcnkgcGdfcGVyaW9kLgorCSAqLworCWlmIChhdHRy LT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQpCisJeworCQlI ZWFwVHVwbGUgcGVyVHVwbGUgPSBTZWFyY2hTeXNDYWNoZTIoUEVSSU9ETkFNRSwKKwkJCQkJ CQkJCQkJIE9iamVjdElkR2V0RGF0dW0oUmVsYXRpb25HZXRSZWxpZCh0YXJnZXRyZWwpKSwK KwkJCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bShyYW5nZV9uYW1lKSk7CisJCWlmIChIZWFw VHVwbGVJc1ZhbGlkKHBlclR1cGxlKSkKKwkJeworCQkJRm9ybV9wZ19wZXJpb2QgcGVyID0g KEZvcm1fcGdfcGVyaW9kKSBHRVRTVFJVQ1QocGVyVHVwbGUpOworCQkJRm9ybV9wZ19hdHRy aWJ1dGUgcGVyYXR0cjsKKworCQkJc3RhcnRfYXR0bm8gPSBwZXItPnBlcnN0YXJ0OworCQkJ ZW5kX2F0dG5vID0gcGVyLT5wZXJlbmQ7CisKKwkJCXBlcmF0dHIgPSBUdXBsZURlc2NBdHRy KHRhcmdldHJlbC0+cmRfYXR0LCBzdGFydF9hdHRubyAtIDEpOworCQkJc3RhcnRjb2xuYW1l ID0gTmFtZVN0cihwZXJhdHRyLT5hdHRuYW1lKTsKKworCQkJcmVzdWx0LT5zdGFydFZhciA9 IG1ha2VWYXIoCisJCQkJCXJ0aW5kZXgsCisJCQkJCXN0YXJ0X2F0dG5vLAorCQkJCQlwZXJh dHRyLT5hdHR0eXBpZCwKKwkJCQkJcGVyYXR0ci0+YXR0dHlwbW9kLAorCQkJCQlwZXJhdHRy LT5hdHRjb2xsYXRpb24sCisJCQkJCTApOworCisJCQlwZXJhdHRyID0gVHVwbGVEZXNjQXR0 cih0YXJnZXRyZWwtPnJkX2F0dCwgZW5kX2F0dG5vIC0gMSk7CisJCQllbmRjb2xuYW1lID0g TmFtZVN0cihwZXJhdHRyLT5hdHRuYW1lKTsKKwkJCXJlc3VsdC0+ZW5kVmFyID0gbWFrZVZh cigKKwkJCQkJcnRpbmRleCwKKwkJCQkJZW5kX2F0dG5vLAorCQkJCQlwZXJhdHRyLT5hdHR0 eXBpZCwKKwkJCQkJcGVyYXR0ci0+YXR0dHlwbW9kLAorCQkJCQlwZXJhdHRyLT5hdHRjb2xs YXRpb24sCisJCQkJCTApOworCisJCQlSZWxlYXNlU3lzQ2FjaGUocGVyVHVwbGUpOworCQl9 CisJfQorCisJaWYgKHN0YXJ0X2F0dG5vID09IEludmFsaWRBdHRyTnVtYmVyKQorCXsKKwkJ cmVzdWx0LT5zdGFydFZhciA9IE5VTEw7CisJCXJlc3VsdC0+ZW5kVmFyID0gTlVMTDsKKwl9 CiAKIAlpZiAoZm9yUG9ydGlvbk9mLT50YXJnZXQpCiAJCS8qCkBAIC0xMzc2LDcgKzE0Mjgs MTAgQEAgdHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwK IAl7CiAJCS8qCiAJCSAqIE5vdyBtYWtlIHN1cmUgd2UgdXBkYXRlIHRoZSBzdGFydC9lbmQg dGltZSBvZiB0aGUgcmVjb3JkLgotCQkgKiBGb3IgYSByYW5nZSBjb2wgKHIpIHRoaXMgaXMg YHIgPSByICogdGFyZ2V0UmFuZ2VgLgorCQkgKiBGb3IgYSByYW5nZS9ldGMgY29sIChyKSB0 aGlzIGlzIGByID0gciAqIHRhcmdldFJhbmdlYC4KKwkJICogRm9yIGEgUEVSSU9EIHdpdGgg Y29scyAocywgZSkgdGhpcyBpcyBgcyA9IGxvd2VyKHRzcmFuZ2UocywgZSkgKiB0YXJnZXRS YW5nZSlgCisJCSAqIGFuZCBgZSA9IHVwcGVyKHRzcmFuZ2UocywgZSkgKiB0YXJnZXRSYW5n ZWAgKG9mIGNvdXJzZSBub3QgbmVjZXNzYXJpbHkgd2l0aAorCQkgKiB0c3JhbmdlLCBidXQg d2l0aCB3aGF0ZXZlciByYW5nZSB0eXBlIGlzIHVzZWQgdGhlcmUpLgogCQkgKi8KIAkJT2lk IGZ1bmNuYW1lc3BhY2U7CiAJCWNoYXIgKmZ1bmNuYW1lOwpAQCAtMTQwNiwxMiArMTQ2MSw0 NCBAQCB0cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAog CQkJCWxpc3RfbWFrZTIoY29weU9iamVjdChyYW5nZVZhciksIHRhcmdldEV4cHIpLAogCQkJ CUNPRVJDRV9FWFBMSUNJVF9DQUxMLAogCQkJCWZvclBvcnRpb25PZi0+bG9jYXRpb24pOwot CQlyYW5nZVRMRUV4cHIgPSAoRXhwciAqKSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgKE5vZGUg KikgcmFuZ2VUTEVFeHByLCBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT04pOwogCi0JCS8qIE1h a2UgYSBUTEUgdG8gc2V0IHRoZSByYW5nZSBjb2x1bW4gKi8KKwkJLyogTWFrZSBhIFRMRSB0 byBzZXQgdGhlIHJhbmdlIGNvbHVtbiBvciBzdGFydC9lbmQgY29sdW1ucyAqLwogCQlyZXN1 bHQtPnJhbmdlVGFyZ2V0TGlzdCA9IE5JTDsKLQkJdGxlID0gbWFrZVRhcmdldEVudHJ5KHJh bmdlVExFRXhwciwgcmFuZ2VfYXR0bm8sIHJhbmdlX25hbWUsIGZhbHNlKTsKLQkJcmVzdWx0 LT5yYW5nZVRhcmdldExpc3QgPSBsYXBwZW5kKHJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0LCB0 bGUpOworCisJCWlmIChyZXN1bHQtPnN0YXJ0VmFyKQorCQl7CisJCQlFeHByICpib3VuZFRM RUV4cHI7CisKKwkJCS8qIHNldCB0aGUgc3RhcnQgY29sdW1uICovCisJCQlib3VuZFRMRUV4 cHIgPSAoRXhwciAqKSBtYWtlRnVuY0NhbGwoU3lzdGVtRnVuY05hbWUoImxvd2VyIiksCisJ CQkJCWxpc3RfbWFrZTEocmFuZ2VUTEVFeHByKSwKKwkJCQkJQ09FUkNFX0VYUExJQ0lUX0NB TEwsCisJCQkJCWZvclBvcnRpb25PZi0+bG9jYXRpb24pOworCQkJYm91bmRUTEVFeHByID0g KEV4cHIgKikgdHJhbnNmb3JtRXhwcihwc3RhdGUsIChOb2RlICopIGJvdW5kVExFRXhwciwg RVhQUl9LSU5EX1VQREFURV9QT1JUSU9OKTsKKwkJCXRsZSA9IG1ha2VUYXJnZXRFbnRyeShi b3VuZFRMRUV4cHIsIHN0YXJ0X2F0dG5vLCBzdGFydGNvbG5hbWUsIGZhbHNlKTsKKwkJCXJl c3VsdC0+cmFuZ2VUYXJnZXRMaXN0ID0gbGFwcGVuZChyZXN1bHQtPnJhbmdlVGFyZ2V0TGlz dCwgdGxlKTsKKworCQkJLyogc2V0IHRoZSBlbmQgY29sdW1uICovCisJCQlib3VuZFRMRUV4 cHIgPSAoRXhwciAqKSBtYWtlRnVuY0NhbGwoU3lzdGVtRnVuY05hbWUoInVwcGVyIiksCisJ CQkJCWxpc3RfbWFrZTEocmFuZ2VUTEVFeHByKSwKKwkJCQkJQ09FUkNFX0VYUExJQ0lUX0NB TEwsCisJCQkJCWZvclBvcnRpb25PZi0+bG9jYXRpb24pOworCQkJYm91bmRUTEVFeHByID0g KEV4cHIgKikgdHJhbnNmb3JtRXhwcihwc3RhdGUsIChOb2RlICopIGJvdW5kVExFRXhwciwg RVhQUl9LSU5EX1VQREFURV9QT1JUSU9OKTsKKwkJCXRsZSA9IG1ha2VUYXJnZXRFbnRyeShi b3VuZFRMRUV4cHIsIGVuZF9hdHRubywgZW5kY29sbmFtZSwgZmFsc2UpOworCQkJcmVzdWx0 LT5yYW5nZVRhcmdldExpc3QgPSBsYXBwZW5kKHJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0LCB0 bGUpOworCisJCQkvKiBNYXJrIHRoZSBzdGFydC9lbmQgY29sdW1ucyBhcyByZXF1aXJpbmcg dXBkYXRlIHBlcm1pc3Npb25zICovCisJCQl0YXJnZXRfcGVybWluZm8tPnVwZGF0ZWRDb2xz ID0gYm1zX2FkZF9tZW1iZXIodGFyZ2V0X3Blcm1pbmZvLT51cGRhdGVkQ29scywKKwkJCQkJ CQkJCQkJCQkJICBzdGFydF9hdHRubyAtIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVO dW1iZXIpOworCQkJdGFyZ2V0X3Blcm1pbmZvLT51cGRhdGVkQ29scyA9IGJtc19hZGRfbWVt YmVyKHRhcmdldF9wZXJtaW5mby0+dXBkYXRlZENvbHMsCisJCQkJCQkJCQkJCQkJCSAgZW5k X2F0dG5vIC0gRmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51bWJlcik7CisJCX0KKwkJ ZWxzZQorCQl7CisJCQlyYW5nZVRMRUV4cHIgPSAoRXhwciAqKSB0cmFuc2Zvcm1FeHByKHBz dGF0ZSwgKE5vZGUgKikgcmFuZ2VUTEVFeHByLCBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT04p OworCQkJdGxlID0gbWFrZVRhcmdldEVudHJ5KHJhbmdlVExFRXhwciwgcmFuZ2VfYXR0bm8s IHJhbmdlX25hbWUsIGZhbHNlKTsKKwkJCXJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0ID0gbGFw cGVuZChyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCwgdGxlKTsKKwkJfQogCiAJCS8qIE1hcmsg dGhlIHJhbmdlIGNvbHVtbiBhcyByZXF1aXJpbmcgdXBkYXRlIHBlcm1pc3Npb25zICovCiAJ CXRhcmdldF9wZXJtaW5mby0+dXBkYXRlZENvbHMgPSBibXNfYWRkX21lbWJlcih0YXJnZXRf cGVybWluZm8tPnVwZGF0ZWRDb2xzLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggM2JjZDBjNTQyMTYu LjM0YTE0ZTUyZGI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTU5OCw3ICs1OTgsNyBAQCBzdGF0 aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAq YWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPGtleXdvcmQ+IGNvbF9uYW1lX2tleXdv cmQgcmVzZXJ2ZWRfa2V5d29yZAogJXR5cGUgPGtleXdvcmQ+IGJhcmVfbGFiZWxfa2V5d29y ZAogCi0ldHlwZSA8bm9kZT4JRG9tYWluQ29uc3RyYWludCBUYWJsZUNvbnN0cmFpbnQgVGFi bGVMaWtlQ2xhdXNlCisldHlwZSA8bm9kZT4JRG9tYWluQ29uc3RyYWludCBUYWJsZUNvbnN0 cmFpbnQgVGFibGVMaWtlQ2xhdXNlIFRhYmxlUGVyaW9kCiAldHlwZSA8aXZhbD4JVGFibGVM aWtlT3B0aW9uTGlzdCBUYWJsZUxpa2VPcHRpb24KICV0eXBlIDxzdHI+CQljb2x1bW5fY29t cHJlc3Npb24gb3B0X2NvbHVtbl9jb21wcmVzc2lvbiBjb2x1bW5fc3RvcmFnZSBvcHRfY29s dW1uX3N0b3JhZ2UKICV0eXBlIDxsaXN0PglDb2xRdWFsTGlzdApAQCAtMjY5Niw2ICsyNjk2 LDI0IEBAIGFsdGVyX3RhYmxlX2NtZDoKIAkJCQkJbi0+ZGVmID0gKE5vZGUgKikgJDQ7CiAJ CQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQkvKiBBTFRFUiBUQUJMRSA8bmFtZT4g QUREIFBFUklPRCBGT1IgPG5hbWU+ICg8bmFtZT4sIDxuYW1lPikgKi8KKwkJCXwgQUREX1Ag VGFibGVQZXJpb2QKKwkJCQl7CisJCQkJCUFsdGVyVGFibGVDbWQgKm4gPSBtYWtlTm9kZShB bHRlclRhYmxlQ21kKTsKKwkJCQkJbi0+c3VidHlwZSA9IEFUX0FkZFBlcmlvZDsKKwkJCQkJ bi0+ZGVmID0gJDI7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJCS8qIEFMVEVS IFRBQkxFIDxuYW1lPiBEUk9QIFBFUklPRCBGT1IgPG5hbWU+IFtSRVNUUklDVHxDQVNDQURF XSAqLworCQkJfCBEUk9QIFBFUklPRCBGT1IgbmFtZSBvcHRfZHJvcF9iZWhhdmlvcgorCQkJ CXsKKwkJCQkJQWx0ZXJUYWJsZUNtZCAqbiA9IG1ha2VOb2RlKEFsdGVyVGFibGVDbWQpOwor CQkJCQluLT5zdWJ0eXBlID0gQVRfRHJvcFBlcmlvZDsKKwkJCQkJbi0+bmFtZSA9ICQ0Owor CQkJCQluLT5iZWhhdmlvciA9ICQ1OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJ CQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJCS8qIEFMVEVSIFRBQkxFIDxuYW1lPiBB REQgQ09OU1RSQUlOVCAuLi4gKi8KIAkJCXwgQUREX1AgVGFibGVDb25zdHJhaW50CiAJCQkJ ewpAQCAtMzgyNiw4ICszODQ0LDEwIEBAIFRhYmxlRWxlbWVudDoKIAkJCWNvbHVtbkRlZgkJ CQkJCQl7ICQkID0gJDE7IH0KIAkJCXwgVGFibGVMaWtlQ2xhdXNlCQkJCQl7ICQkID0gJDE7 IH0KIAkJCXwgVGFibGVDb25zdHJhaW50CQkJCQl7ICQkID0gJDE7IH0KKwkJCXwgVGFibGVQ ZXJpb2QJCQkJCQl7ICQkID0gJDE7IH0KIAkJOwogCisKIFR5cGVkVGFibGVFbGVtZW50Ogog CQkJY29sdW1uT3B0aW9ucwkJCQkJCXsgJCQgPSAkMTsgfQogCQkJfCBUYWJsZUNvbnN0cmFp bnQJCQkJCXsgJCQgPSAkMTsgfQpAQCAtNDE3Niw2ICs0MTk2LDE5IEBAIFRhYmxlTGlrZU9w dGlvbjoKIAkJOwogCiAKK1RhYmxlUGVyaW9kOgorCQkJUEVSSU9EIEZPUiBuYW1lICcoJyBu YW1lICcsJyBuYW1lICcpJyBvcHRfZGVmaW5pdGlvbgorCQkJCXsKKwkJCQkJUGVyaW9kRGVm ICpuID0gbWFrZU5vZGUoUGVyaW9kRGVmKTsKKwkJCQkJbi0+cGVyaW9kbmFtZSA9ICQzOwor CQkJCQluLT5zdGFydGNvbG5hbWUgPSAkNTsKKwkJCQkJbi0+ZW5kY29sbmFtZSA9ICQ3Owor CQkJCQluLT5vcHRpb25zID0gJDk7CisJCQkJCW4tPmxvY2F0aW9uID0gQDE7CisJCQkJCSQk ID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKwogLyogQ29uc3RyYWludEVsZW0gc3BlY2lm aWVzIGNvbnN0cmFpbnQgc3ludGF4IHdoaWNoIGlzIG5vdCBlbWJlZGRlZCBpbnRvCiAgKglh IGNvbHVtbiBkZWZpbml0aW9uLiBDb2xDb25zdHJhaW50RWxlbSBzcGVjaWZpZXMgdGhlIGVt YmVkZGVkIGZvcm0uCiAgKiAtIHRob21hcyAxOTk3LTEyLTAzCkBAIC03MjgyLDYgKzczMTUs MTQgQEAgQ29tbWVudFN0bXQ6CiAJCQkJCW4tPmNvbW1lbnQgPSAkOTsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQ09NTUVOVCBPTiBQRVJJT0QgYW55X25hbWUgSVMg Y29tbWVudF90ZXh0CisJCQkJeworCQkJCQlDb21tZW50U3RtdCAqbiA9IG1ha2VOb2RlKENv bW1lbnRTdG10KTsKKwkJCQkJbi0+b2JqdHlwZSA9IE9CSkVDVF9QRVJJT0Q7CisJCQkJCW4t Pm9iamVjdCA9IChOb2RlICopICQ0OworCQkJCQluLT5jb21tZW50ID0gJDY7CisJCQkJCSQk ID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCQl8IENPTU1FTlQgT04gTEFSR0VfUCBPQkpFQ1Rf UCBOdW1lcmljT25seSBJUyBjb21tZW50X3RleHQKIAkJCQl7CiAJCQkJCUNvbW1lbnRTdG10 ICpuID0gbWFrZU5vZGUoQ29tbWVudFN0bXQpOwpAQCAtMTc4MzEsNyArMTc4NzIsNiBAQCB1 bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFBBU1NJTkcKIAkJCXwgUEFTU1dPUkQKIAkJCXwg UEFUSAotCQkJfCBQRVJJT0QKIAkJCXwgUExBTgogCQkJfCBQTEFOUwogCQkJfCBQT0xJQ1kK QEAgLTE4MTM3LDYgKzE4MTc3LDcgQEAgcmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgT05MWQog CQkJfCBPUgogCQkJfCBPUkRFUgorCQkJfCBQRVJJT0QKIAkJCXwgUExBQ0lORwogCQkJfCBQ UklNQVJZCiAJCQl8IFJFRkVSRU5DRVMKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9u LmMKaW5kZXggMmY2NGVhZjBlMzcuLjc1YWUwZmI4NDUyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfcmVsYXRpb24uYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy90 YWJsZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvaGVhcC5oIgogI2luY2x1ZGUgImNhdGFsb2cv bmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wZXJpb2QuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAi bm9kZXMvbWFrZWZ1bmNzLmgiCkBAIC0zMTg4LDYgKzMxODksNyBAQCBleHBhbmROU0l0ZW1B dHRycyhQYXJzZVN0YXRlICpwc3RhdGUsIFBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtLAog CQkJCSAgaW50IHN1YmxldmVsc191cCwgYm9vbCByZXF1aXJlX2NvbF9wcml2cywgaW50IGxv Y2F0aW9uKQogewogCVJhbmdlVGJsRW50cnkgKnJ0ZSA9IG5zaXRlbS0+cF9ydGU7CisJQml0 bWFwc2V0ICAqcGVyaW9kYXR0cyA9IE5VTEw7CiAJUlRFUGVybWlzc2lvbkluZm8gKnBlcm1p bmZvID0gbnNpdGVtLT5wX3Blcm1pbmZvOwogCUxpc3QJICAgKm5hbWVzLAogCQkJICAgKnZh cnM7CkBAIC0zMjExLDEyICszMjEzLDIwIEBAIGV4cGFuZE5TSXRlbUF0dHJzKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW0sCiAJCXBlcm1pbmZvLT5y ZXF1aXJlZFBlcm1zIHw9IEFDTF9TRUxFQ1Q7CiAJfQogCisJLyogR2V0IFBFUklPRCBjb2x1 bW5zIHRvIGV4Y2x1ZGUgKi8KKwlpZiAocnRlLT5ydGVraW5kID09IFJURV9SRUxBVElPTikK KwkJcGVyaW9kYXR0cyA9IGdldF9wZXJpb2RfYXR0bm9zKHJ0ZS0+cmVsaWQpOworCiAJZm9y Ym90aChuYW1lLCBuYW1lcywgdmFyLCB2YXJzKQogCXsKIAkJY2hhcgkgICAqbGFiZWwgPSBz dHJWYWwobGZpcnN0KG5hbWUpKTsKIAkJVmFyCQkgICAqdmFybm9kZSA9IChWYXIgKikgbGZp cnN0KHZhcik7CiAJCVRhcmdldEVudHJ5ICp0ZTsKIAorCQkvKiBJZiB0aGlzIGNvbHVtbiBp cyBmcm9tIGEgUEVSSU9ELCBza2lwIGl0ICovCisJCWlmIChibXNfaXNfbWVtYmVyKHZhcm5v ZGUtPnZhcmF0dG5vLCBwZXJpb2RhdHRzKSkKKwkJCQljb250aW51ZTsKKwogCQl0ZSA9IG1h a2VUYXJnZXRFbnRyeSgoRXhwciAqKSB2YXJub2RlLAogCQkJCQkJCSAoQXR0ck51bWJlcikg cHN0YXRlLT5wX25leHRfcmVzbm8rKywKIAkJCQkJCQkgbGFiZWwsCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3V0aWxjbWQuYwppbmRleCA5MDVjOTg2ZGM2YS4uZjYyYTJjNWIxZWUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1 ZGUgImNhdGFsb2cvcGdfY29uc3RyYWludC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3Bj bGFzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX3BlcmlvZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3RhdGlzdGljX2V4 dC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRz L2NvbW1lbnQuaCIKQEAgLTgzLDYgKzg0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlib29sCQlp c2ZvcmVpZ247CQkvKiB0cnVlIGlmIENSRUFURS9BTFRFUiBGT1JFSUdOIFRBQkxFICovCiAJ Ym9vbAkJaXNhbHRlcjsJCS8qIHRydWUgaWYgYWx0ZXJpbmcgZXhpc3RpbmcgdGFibGUgKi8K IAlMaXN0CSAgICpjb2x1bW5zOwkJLyogQ29sdW1uRGVmIGl0ZW1zICovCisJTGlzdAkgICAq cGVyaW9kczsJCS8qIFBlcmlvZERlZiBpdGVtcyAqLwogCUxpc3QJICAgKmNrY29uc3RyYWlu dHM7CS8qIENIRUNLIGNvbnN0cmFpbnRzICovCiAJTGlzdAkgICAqZmtjb25zdHJhaW50czsJ LyogRk9SRUlHTiBLRVkgY29uc3RyYWludHMgKi8KIAlMaXN0CSAgICppeGNvbnN0cmFpbnRz OwkvKiBpbmRleC1jcmVhdGluZyBjb25zdHJhaW50cyAqLwpAQCAtMTEyLDYgKzExNCw4IEBA IHR5cGVkZWYgc3RydWN0CiAKIHN0YXRpYyB2b2lkIHRyYW5zZm9ybUNvbHVtbkRlZmluaXRp b24oQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwKIAkJCQkJCQkJCSAgQ29sdW1uRGVmICpjb2x1 bW4pOworc3RhdGljIHZvaWQgdHJhbnNmb3JtVGFibGVQZXJpb2QoQ3JlYXRlU3RtdENvbnRl eHQgKmN4dCwKKwkJCQkJCQkJIFBlcmlvZERlZiAqcGVyaW9kKTsKIHN0YXRpYyB2b2lkIHRy YW5zZm9ybVRhYmxlQ29uc3RyYWludChDcmVhdGVTdG10Q29udGV4dCAqY3h0LAogCQkJCQkJ CQkJIENvbnN0cmFpbnQgKmNvbnN0cmFpbnQpOwogc3RhdGljIHZvaWQgdHJhbnNmb3JtVGFi bGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsCkBAIC0yNDIsNiArMjQ2LDcg QEAgdHJhbnNmb3JtQ3JlYXRlU3RtdChDcmVhdGVTdG10ICpzdG10LCBjb25zdCBjaGFyICpx dWVyeVN0cmluZykKIAljeHQuaW5oUmVsYXRpb25zID0gc3RtdC0+aW5oUmVsYXRpb25zOwog CWN4dC5pc2FsdGVyID0gZmFsc2U7CiAJY3h0LmNvbHVtbnMgPSBOSUw7CisJY3h0LnBlcmlv ZHMgPSBOSUw7CiAJY3h0LmNrY29uc3RyYWludHMgPSBOSUw7CiAJY3h0LmZrY29uc3RyYWlu dHMgPSBOSUw7CiAJY3h0Lml4Y29uc3RyYWludHMgPSBOSUw7CkBAIC0yODAsNiArMjg1LDEw IEBAIHRyYW5zZm9ybUNyZWF0ZVN0bXQoQ3JlYXRlU3RtdCAqc3RtdCwgY29uc3QgY2hhciAq cXVlcnlTdHJpbmcpCiAJCQkJdHJhbnNmb3JtQ29sdW1uRGVmaW5pdGlvbigmY3h0LCAoQ29s dW1uRGVmICopIGVsZW1lbnQpOwogCQkJCWJyZWFrOwogCisJCQljYXNlIFRfUGVyaW9kRGVm OgorCQkJCXRyYW5zZm9ybVRhYmxlUGVyaW9kKCZjeHQsIChQZXJpb2REZWYgKikgZWxlbWVu dCk7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgVF9Db25zdHJhaW50OgogCQkJCXRyYW5zZm9y bVRhYmxlQ29uc3RyYWludCgmY3h0LCAoQ29uc3RyYWludCAqKSBlbGVtZW50KTsKIAkJCQli cmVhazsKQEAgLTM0Miw2ICszNTEsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTdG10KENyZWF0ZVN0 bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nKQogCSAqIE91dHB1dCByZXN1bHRz LgogCSAqLwogCXN0bXQtPnRhYmxlRWx0cyA9IGN4dC5jb2x1bW5zOworCXN0bXQtPnBlcmlv ZHMgPSBjeHQucGVyaW9kczsKIAlzdG10LT5jb25zdHJhaW50cyA9IGN4dC5ja2NvbnN0cmFp bnRzOwogCiAJcmVzdWx0ID0gbGFwcGVuZChjeHQuYmxpc3QsIHN0bXQpOwpAQCAtODcwLDYg Kzg4MCw5MSBAQCB0cmFuc2Zvcm1Db2x1bW5EZWZpbml0aW9uKENyZWF0ZVN0bXRDb250ZXh0 ICpjeHQsIENvbHVtbkRlZiAqY29sdW1uKQogCX0KIH0KIAordm9pZAordHJhbnNmb3JtUGVy aW9kT3B0aW9ucyhQZXJpb2REZWYgKnBlcmlvZCkKK3sKKwlMaXN0Q2VsbCAgICpvcHRpb247 CisJRGVmRWxlbQkgICAqZGNvbnN0cmFpbnRuYW1lID0gTlVMTDsKKwlEZWZFbGVtCSAgICpk cmFuZ2V0eXBlbmFtZSA9IE5VTEw7CisJRGVmRWxlbQkgICAqZGNvbGV4aXN0cyA9IE5VTEw7 CisKKwlmb3JlYWNoKG9wdGlvbiwgcGVyaW9kLT5vcHRpb25zKQorCXsKKwkJRGVmRWxlbSAg ICAqZGVmZWwgPSAoRGVmRWxlbSAqKSBsZmlyc3Qob3B0aW9uKTsKKworCQlpZiAoc3RyY21w KGRlZmVsLT5kZWZuYW1lLCAiY2hlY2tfY29uc3RyYWludF9uYW1lIikgPT0gMCkKKwkJewor CQkJaWYgKGRjb25zdHJhaW50bmFtZSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJIGVycm1zZygiY29uZmxpY3Rp bmcgb3IgcmVkdW5kYW50IG9wdGlvbnMiKSkpOworCQkJZGNvbnN0cmFpbnRuYW1lID0gZGVm ZWw7CisJCX0KKwkJZWxzZSBpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAicmFuZ2V0eXBl IikgPT0gMCkKKwkJeworCQkJaWYgKGRyYW5nZXR5cGVuYW1lKQorCQkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkgZXJy bXNnKCJjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucyIpKSk7CisJCQlkcmFuZ2V0 eXBlbmFtZSA9IGRlZmVsOworCQl9CisJCWVsc2UgaWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFt ZSwgImNvbGV4aXN0cyIpID09IDApCisJCXsKKwkJCWlmIChkY29sZXhpc3RzKQorCQkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJ CQkJCQkgZXJybXNnKCJjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucyIpKSk7CisJ CQlkY29sZXhpc3RzID0gZGVmZWw7CisJCX0KKwkJZWxzZQorCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJybXNnKCJv cHRpb24gXCIlc1wiIG5vdCByZWNvZ25pemVkIiwgZGVmZWwtPmRlZm5hbWUpKSk7CisJfQor CisJaWYgKGRjb25zdHJhaW50bmFtZSAhPSBOVUxMKQorCQlwZXJpb2QtPmNvbnN0cmFpbnRu YW1lID0gZGVmR2V0U3RyaW5nKGRjb25zdHJhaW50bmFtZSk7CisJZWxzZQorCQlwZXJpb2Qt PmNvbnN0cmFpbnRuYW1lID0gTlVMTDsKKworCWlmIChkcmFuZ2V0eXBlbmFtZSAhPSBOVUxM KQorCQlwZXJpb2QtPnJhbmdldHlwZW5hbWUgPSBkZWZHZXRTdHJpbmcoZHJhbmdldHlwZW5h bWUpOworCWVsc2UKKwkJcGVyaW9kLT5yYW5nZXR5cGVuYW1lID0gTlVMTDsKKworCWlmIChk Y29sZXhpc3RzICE9IE5VTEwpCisJCXBlcmlvZC0+Y29sZXhpc3RzID0gZGVmR2V0Qm9vbGVh bihkY29sZXhpc3RzKTsKKwllbHNlCisJCXBlcmlvZC0+Y29sZXhpc3RzID0gZmFsc2U7Cit9 CisKKy8qCisgKiB0cmFuc2Zvcm1UYWJsZVBlcmlvZAorICoJCXRyYW5zZm9ybSBhIFBlcmlv ZERlZiBub2RlIHdpdGhpbiBDUkVBVEUgVEFCTEUKKyAqLworc3RhdGljIHZvaWQKK3RyYW5z Zm9ybVRhYmxlUGVyaW9kKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIFBlcmlvZERlZiAqcGVy aW9kKQoreworCWlmIChzdHJjbXAocGVyaW9kLT5wZXJpb2RuYW1lLCAic3lzdGVtX3RpbWUi KSA9PSAwKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFU VVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJQRVJJT0QgRk9SIFNZU1RFTV9U SU1FIGlzIG5vdCBzdXBwb3J0ZWQiKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihjeHQt PnBzdGF0ZSwKKwkJCQkJCQkJCQlwZXJpb2QtPmxvY2F0aW9uKSkpOworCisJaWYgKHN0cmNt cChwZXJpb2QtPnN0YXJ0Y29sbmFtZSwgcGVyaW9kLT5lbmRjb2xuYW1lKSA9PSAwKQorCQll cmVwb3J0KEVSUk9SLCAoZXJybXNnKCJjb2x1bW4gXCIlc1wiIGNhbid0IGJlIHRoZSBzdGFy dCBhbmQgZW5kIGNvbHVtbiBmb3IgcGVyaW9kIFwiJXNcIiIsCisJCQkJCQlwZXJpb2QtPnN0 YXJ0Y29sbmFtZSwgcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJLyoKKwkgKiBEZXRlcm1p bmUgdGhlIGNvbHVtbiBpbmZvIGFuZCByYW5nZSB0eXBlIHNvIHRoYXQgdHJhbnNmb3JtSW5k ZXhDb25zdHJhaW50cworCSAqIGtub3dzIGhvdyB0byBjcmVhdGUgUFJJTUFSWSBLRVkvVU5J UVVFIGNvbnN0cmFpbnRzIHVzaW5nIHRoaXMgUEVSSU9ELgorCSAqLworCXRyYW5zZm9ybVBl cmlvZE9wdGlvbnMocGVyaW9kKTsKKworCWN4dC0+cGVyaW9kcyA9IGxhcHBlbmQoY3h0LT5w ZXJpb2RzLCBwZXJpb2QpOworfQorCiAvKgogICogdHJhbnNmb3JtVGFibGVDb25zdHJhaW50 CiAgKgkJdHJhbnNmb3JtIGEgQ29uc3RyYWludCBub2RlIHdpdGhpbiBDUkVBVEUgVEFCTEUg b3IgQUxURVIgVEFCTEUKQEAgLTk1Nyw2ICsxMDUyLDcgQEAgdHJhbnNmb3JtVGFibGVMaWtl Q2xhdXNlKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIFRhYmxlTGlrZUNsYXVzZSAqdGFibGVf bGlrZV9jbGEKIAlBdHRyTnVtYmVyCXBhcmVudF9hdHRubzsKIAlSZWxhdGlvbglyZWxhdGlv bjsKIAlUdXBsZURlc2MJdHVwbGVEZXNjOworCUJpdG1hcHNldCAgKnBlcmlvZGF0dHM7CiAJ QWNsUmVzdWx0CWFjbHJlc3VsdDsKIAljaGFyCSAgICpjb21tZW50OwogCVBhcnNlQ2FsbGJh Y2tTdGF0ZSBwY2JzdGF0ZTsKQEAgLTEwMDgsNiArMTEwNCw3IEBAIHRyYW5zZm9ybVRhYmxl TGlrZUNsYXVzZShDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBUYWJsZUxpa2VDbGF1c2UgKnRh YmxlX2xpa2VfY2xhCiAJfQogCiAJdHVwbGVEZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWxh dGlvbik7CisJcGVyaW9kYXR0cyA9IGdldF9wZXJpb2RfYXR0bm9zKFJlbGF0aW9uR2V0UmVs aWQocmVsYXRpb24pKTsKIAogCS8qCiAJICogSW5zZXJ0IHRoZSBjb3BpZWQgYXR0cmlidXRl cyBpbnRvIHRoZSBjeHQgZm9yIHRoZSBuZXcgdGFibGUgZGVmaW5pdGlvbi4KQEAgLTEwMTcs MTAgKzExMTQsMTggQEAgdHJhbnNmb3JtVGFibGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250 ZXh0ICpjeHQsIFRhYmxlTGlrZUNsYXVzZSAqdGFibGVfbGlrZV9jbGEKIAlmb3IgKHBhcmVu dF9hdHRubyA9IDE7IHBhcmVudF9hdHRubyA8PSB0dXBsZURlc2MtPm5hdHRzOwogCQkgcGFy ZW50X2F0dG5vKyspCiAJewotCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyaWJ1dGUgPSBUdXBs ZURlc2NBdHRyKHR1cGxlRGVzYywKLQkJCQkJCQkJCQkJCQlwYXJlbnRfYXR0bm8gLSAxKTsK KwkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cmlidXRlOwogCQlDb2x1bW5EZWYgICpkZWY7CiAK KwkJLyoKKwkJICogSWYgdGhpcyBjb2x1bW4gaXMgZnJvbSBhIFBFUklPRCwgc2tpcCBpdAor CQkgKiAoc2luY2UgTElLRSBuZXZlciBjb3BpZXMgUEVSSU9EcykuCisJCSAqLworCQlpZiAo Ym1zX2lzX21lbWJlcihwYXJlbnRfYXR0bm8sIHBlcmlvZGF0dHMpKQorCQkJY29udGludWU7 CisKKwkJYXR0cmlidXRlID0gVHVwbGVEZXNjQXR0cih0dXBsZURlc2MsIHBhcmVudF9hdHRu byAtIDEpOworCiAJCS8qCiAJCSAqIElnbm9yZSBkcm9wcGVkIGNvbHVtbnMgaW4gdGhlIHBh cmVudC4KIAkJICovCkBAIC0yNDA3LDYgKzI1MTIsNyBAQCB0cmFuc2Zvcm1JbmRleENvbnN0 cmFpbnQoQ29uc3RyYWludCAqY29uc3RyYWludCwgQ3JlYXRlU3RtdENvbnRleHQgKmN4dCkK IAkJCWNoYXIJICAgKmtleSA9IHN0clZhbChsZmlyc3QobGMpKTsKIAkJCWJvb2wJCWZvdW5k ID0gZmFsc2U7CiAJCQlib29sCQlmb3JjZWRfbm90X251bGwgPSBmYWxzZTsKKwkJCWJvb2wJ CWhhc3BlcmlvZCA9IGZhbHNlOwogCQkJQ29sdW1uRGVmICAqY29sdW1uID0gTlVMTDsKIAkJ CUxpc3RDZWxsICAgKmNvbHVtbnM7CiAJCQlJbmRleEVsZW0gICppcGFyYW07CkBAIC0yNDI1 LDE5ICsyNTMxLDQwIEBAIHRyYW5zZm9ybUluZGV4Q29uc3RyYWludChDb25zdHJhaW50ICpj b25zdHJhaW50LCBDcmVhdGVTdG10Q29udGV4dCAqY3h0KQogCQkJaWYgKCFmb3VuZCkKIAkJ CQljb2x1bW4gPSBOVUxMOwogCisJCQkvKiBJZiB0aGUga2V5IGlzIFdJVEhPVVQgT1ZFUkxB UFMsIGEgUEVSSU9EIHdpbGwgd29yayB0b28uICovCisJCQlpZiAoIWZvdW5kICYmIGNvbnN0 cmFpbnQtPndpdGhvdXRfb3ZlcmxhcHMgJiYKKwkJCQlsYyA9PSBsaXN0X2xhc3RfY2VsbChj b25zdHJhaW50LT5rZXlzKSkKKwkJCXsKKwkJCQlQZXJpb2REZWYgICpwZXJpb2QgPSBOVUxM OworCisJCQkJZm9yZWFjaChjb2x1bW5zLCBjeHQtPnBlcmlvZHMpCisJCQkJeworCQkJCQlw ZXJpb2QgPSBsZmlyc3Rfbm9kZShQZXJpb2REZWYsIGNvbHVtbnMpOworCQkJCQlpZiAoc3Ry Y21wKHBlcmlvZC0+cGVyaW9kbmFtZSwga2V5KSA9PSAwKQorCQkJCQl7CisJCQkJCQlmb3Vu ZCA9IHRydWU7CisJCQkJCQloYXNwZXJpb2QgPSB0cnVlOworCQkJCQkJYnJlYWs7CisJCQkJ CX0KKwkJCQl9CisJCQl9CisKIAkJCWlmIChmb3VuZCkKIAkJCXsKLQkJCQkvKgotCQkJCSAq IGNvbHVtbiBpcyBkZWZpbmVkIGluIHRoZSBuZXcgdGFibGUuICBGb3IgUFJJTUFSWSBLRVks IHdlCi0JCQkJICogY2FuIGFwcGx5IHRoZSBub3QtbnVsbCBjb25zdHJhaW50IGNoZWFwbHkg aGVyZSAuLi4gdW5sZXNzCi0JCQkJICogdGhlIGNvbHVtbiBpcyBtYXJrZWQgaXNfZnJvbV90 eXBlLCBpbiB3aGljaCBjYXNlIG1hcmtpbmcgaXQKLQkJCQkgKiBoZXJlIHdvdWxkIGJlIGlu ZWZmZWN0aXZlIChzZWUgTWVyZ2VBdHRyaWJ1dGVzKS4KLQkJCQkgKi8KLQkJCQlpZiAoY29u c3RyYWludC0+Y29udHlwZSA9PSBDT05TVFJfUFJJTUFSWSAmJgotCQkJCQkhY29sdW1uLT5p c19mcm9tX3R5cGUpCisJCQkJaWYgKGNvbHVtbikKIAkJCQl7Ci0JCQkJCWNvbHVtbi0+aXNf bm90X251bGwgPSB0cnVlOwotCQkJCQlmb3JjZWRfbm90X251bGwgPSB0cnVlOworCQkJCQkv KgorCQkJCQkgKiBjb2x1bW4gaXMgZGVmaW5lZCBpbiB0aGUgbmV3IHRhYmxlLiAgRm9yIFBS SU1BUlkgS0VZLCB3ZQorCQkJCQkgKiBjYW4gYXBwbHkgdGhlIG5vdC1udWxsIGNvbnN0cmFp bnQgY2hlYXBseSBoZXJlIC4uLiB1bmxlc3MKKwkJCQkJICogdGhlIGNvbHVtbiBpcyBtYXJr ZWQgaXNfZnJvbV90eXBlLCBpbiB3aGljaCBjYXNlIG1hcmtpbmcgaXQKKwkJCQkJICogaGVy ZSB3b3VsZCBiZSBpbmVmZmVjdGl2ZSAoc2VlIE1lcmdlQXR0cmlidXRlcykuCisJCQkJCSAq LworCQkJCQlpZiAoY29uc3RyYWludC0+Y29udHlwZSA9PSBDT05TVFJfUFJJTUFSWSAmJgor CQkJCQkJIWNvbHVtbi0+aXNfZnJvbV90eXBlKQorCQkJCQl7CisJCQkJCQljb2x1bW4tPmlz X25vdF9udWxsID0gdHJ1ZTsKKwkJCQkJCWZvcmNlZF9ub3RfbnVsbCA9IHRydWU7CisJCQkJ CX0KIAkJCQl9CiAJCQl9CiAJCQllbHNlIGlmIChTeXN0ZW1BdHRyaWJ1dGVCeU5hbWUoa2V5 KSAhPSBOVUxMKQpAQCAtMjU1MSwxMiArMjY3OCwxOCBAQCB0cmFuc2Zvcm1JbmRleENvbnN0 cmFpbnQoQ29uc3RyYWludCAqY29uc3RyYWludCwgQ3JlYXRlU3RtdENvbnRleHQgKmN4dCkK IAkJCQkJCWF0dG5hbWUgPSBOYW1lU3RyKGF0dHItPmF0dG5hbWUpOwogCQkJCQkJaWYgKHN0 cmNtcChhdHRuYW1lLCBrZXkpID09IDApCiAJCQkJCQl7CisJCQkJCQkJZm91bmQgPSB0cnVl OwogCQkJCQkJCXR5cGlkID0gYXR0ci0+YXR0dHlwaWQ7CiAJCQkJCQkJYnJlYWs7CiAJCQkJ CQl9CiAJCQkJCX0KIAkJCQl9Ci0JCQkJaWYgKGZvdW5kKQorCQkJCS8qCisJCQkJICogSW4g Q1JFQVRFIFRBQkxFIHdlIGRvbid0IGtub3cgUEVSSU9EcycgcmFuZ2V0eXBlIHlldCwKKwkJ CQkgKiBidXQgd2Uga25vdyBpdCB3aWxsIGJlIGEgcmFuZ2UvbXVsdGlyYW5nZS4gU28gaWYg d2UKKwkJCQkgKiBoYXZlIGEgUEVSSU9EIHRoZW4gd2UncmUgc2FmZS4KKwkJCQkgKi8KKwkJ CQlpZiAoZm91bmQgJiYgIWhhc3BlcmlvZCkKIAkJCQl7CiAJCQkJCWlmICghT2lkSXNWYWxp ZCh0eXBpZCkgJiYgY29sdW1uKQogCQkJCQkJdHlwaWQgPSB0eXBlbmFtZVR5cGVJZChOVUxM LCBjb2x1bW4tPnR5cGVOYW1lKTsKQEAgLTI5MDcsNiArMzA0MCwxMCBAQCB0cmFuc2Zvcm1J bmRleFN0bXQoT2lkIHJlbGlkLCBJbmRleFN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5 U3RyaW5nKQogCQl9CiAJfQogCisJLyogdGFrZSBjYXJlIG9mIHRoZSBwZXJpb2QgKi8KKwlp ZiAoc3RtdC0+cGVyaW9kKQorCQlzdG10LT5wZXJpb2QtPm9pZCA9IGdldF9wZXJpb2Rfb2lk KHJlbGlkLCBzdG10LT5wZXJpb2QtPnBlcmlvZG5hbWUsIGZhbHNlKTsKKwogCS8qCiAJICog Q2hlY2sgdGhhdCBvbmx5IHRoZSBiYXNlIHJlbCBpcyBtZW50aW9uZWQuICAoVGhpcyBzaG91 bGQgYmUgZGVhZCBjb2RlCiAJICogbm93IHRoYXQgYWRkX21pc3NpbmdfZnJvbSBpcyBoaXN0 b3J5LikKQEAgLTM1MTgsNiArMzY1NSw3IEBAIHRyYW5zZm9ybUFsdGVyVGFibGVTdG10KE9p ZCByZWxpZCwgQWx0ZXJUYWJsZVN0bXQgKnN0bXQsCiAJY3h0LmluaFJlbGF0aW9ucyA9IE5J TDsKIAljeHQuaXNhbHRlciA9IHRydWU7CiAJY3h0LmNvbHVtbnMgPSBOSUw7CisJY3h0LnBl cmlvZHMgPSBOSUw7CiAJY3h0LmNrY29uc3RyYWludHMgPSBOSUw7CiAJY3h0LmZrY29uc3Ry YWludHMgPSBOSUw7CiAJY3h0Lml4Y29uc3RyYWludHMgPSBOSUw7CkBAIC0zNTc4LDYgKzM3 MTYsMjIgQEAgdHJhbnNmb3JtQWx0ZXJUYWJsZVN0bXQoT2lkIHJlbGlkLCBBbHRlclRhYmxl U3RtdCAqc3RtdCwKIAkJCQkJCSAoaW50KSBub2RlVGFnKGNtZC0+ZGVmKSk7CiAJCQkJYnJl YWs7CiAKKwkJCWNhc2UgQVRfQWRkUGVyaW9kOgorCQkJCXsKKwkJCQkJLyoKKwkJCQkJICog V2UgY2FuJ3QgY2FsbCB0cmFuc2Zvcm1UYWJsZVBlcmlvZCBoZXJlCisJCQkJCSAqIGJlY2F1 c2UgaXQgbG9va3MgYXQgY3h0LT5jb2x1bW5zCisJCQkJCSAqIGFuZCBpbiBhbiBBTFRFUiBz dGF0ZW1lbnQgdGhlIGNvbHVtbiBtaWdodCBhbHJlYWR5IGV4aXN0CisJCQkJCSAqIChvciBu b3QpLgorCQkJCQkgKi8KKwkJCQkJLy8gVE9ETzogaXQgZG9lc24ndCBsb29rIGF0IGN4dC0+ Y29sdW1ucyBhbnkgbW9yZS4KKwkJCQkJLy8gU28gc2hvdWxkIHdlIGNhbGwgaXQgaGVyZT8g VG8gZG8gd2hhdD8KKwkJCQkJLy8gV2VsbCBpdCBtaWdodCBiZSB1c2VmdWwgdG8ga25vdyBh Ym91dCBpdCBpbiBjeHQtPnBlcmlvZHMgYXQgbGVhc3QuCisJCQkJCXRyYW5zZm9ybVRhYmxl UGVyaW9kKCZjeHQsIGNhc3ROb2RlKFBlcmlvZERlZiwgY21kLT5kZWYpKTsKKwkJCQkJbmV3 Y21kcyA9IGxhcHBlbmQobmV3Y21kcywgY21kKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCiAJ CQljYXNlIEFUX0FsdGVyQ29sdW1uVHlwZToKIAkJCQl7CiAJCQkJCUNvbHVtbkRlZiAgKmRl ZiA9IGNhc3ROb2RlKENvbHVtbkRlZiwgY21kLT5kZWYpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L01ha2Vm aWxlCmluZGV4IGVkYjA5ZDRlMzU2Li5lMTM3ZjE3ZTU5OSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9N YWtlZmlsZQpAQCAtNzgsNiArNzgsNyBAQCBPQkpTID0gXAogCW9yYWNsZV9jb21wYXQubyBc CiAJb3JkZXJlZHNldGFnZ3MubyBcCiAJcGFydGl0aW9uZnVuY3MubyBcCisJcGVyaW9kLm8g XAogCXBnX2xvY2FsZS5vIFwKIAlwZ19sc24ubyBcCiAJcGdfdXBncmFkZV9zdXBwb3J0Lm8g XApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BlcmlvZC5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3BlcmlvZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi4wZWQ0MzA0ZTE2ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZXJpb2QuYwpAQCAtMCwwICsxLDU2IEBACisvKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqCisgKiBwZXJpb2QuYworICoJICBGdW5jdGlvbnMgdG8gc3VwcG9ydCBwZXJp b2RzLgorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisg KgorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9w ZXJpb2QuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaW5jbHVkZSAicG9z dGdyZXMuaCIKKworI2luY2x1ZGUgImV4ZWN1dG9yL3R1cHRhYmxlLmgiCisjaW5jbHVkZSAi Zm1nci5oIgorI2luY2x1ZGUgIm5vZGVzL3ByaW1ub2Rlcy5oIgorI2luY2x1ZGUgInV0aWxz L2ZtZ3Jwcm90b3MuaCIKKyNpbmNsdWRlICJ1dGlscy9wZXJpb2QuaCIKKyNpbmNsdWRlICJ1 dGlscy9yYW5nZXR5cGVzLmgiCisKK0RhdHVtIHBlcmlvZF90b19yYW5nZShUdXBsZVRhYmxl U2xvdCAqc2xvdCwgaW50IHN0YXJ0YXR0bm8sIGludCBlbmRhdHRubywgT2lkIHJhbmdldHlw ZSkKK3sKKwlEYXR1bSBzdGFydHZhbHVlOworCURhdHVtIGVuZHZhbHVlOworCURhdHVtIHJl c3VsdDsKKwlib29sCXN0YXJ0aXNudWxsOworCWJvb2wJZW5kaXNudWxsOworCUxPQ0FMX0ZD SU5GTyhmY2luZm8sIDIpOworCUZtZ3JJbmZvCWZsaW5mbzsKKwlGdW5jRXhwciAgICpmOwor CisJSW5pdEZ1bmN0aW9uQ2FsbEluZm9EYXRhKCpmY2luZm8sICZmbGluZm8sIDIsIEludmFs aWRPaWQsIE5VTEwsIE5VTEwpOworCWYgPSBtYWtlTm9kZShGdW5jRXhwcik7CisJZi0+ZnVu Y3Jlc3VsdHR5cGUgPSByYW5nZXR5cGU7CisJZmxpbmZvLmZuX2V4cHIgPSAoTm9kZSAqKSBm OworCWZsaW5mby5mbl9leHRyYSA9IE5VTEw7CisKKwkvKiBjb21wdXRlIG9sZHZhbHVlICov CisJc3RhcnR2YWx1ZSA9IHNsb3RfZ2V0YXR0cihzbG90LCBzdGFydGF0dG5vLCAmc3RhcnRp c251bGwpOworCWVuZHZhbHVlID0gc2xvdF9nZXRhdHRyKHNsb3QsIGVuZGF0dG5vLCAmZW5k aXNudWxsKTsKKworCWZjaW5mby0+YXJnc1swXS52YWx1ZSA9IHN0YXJ0dmFsdWU7CisJZmNp bmZvLT5hcmdzWzBdLmlzbnVsbCA9IHN0YXJ0aXNudWxsOworCWZjaW5mby0+YXJnc1sxXS52 YWx1ZSA9IGVuZHZhbHVlOworCWZjaW5mby0+YXJnc1sxXS5pc251bGwgPSBlbmRpc251bGw7 CisKKwlyZXN1bHQgPSByYW5nZV9jb25zdHJ1Y3RvcjIoZmNpbmZvKTsKKwlpZiAoZmNpbmZv LT5pc251bGwpCisJCWVsb2coRVJST1IsICJmdW5jdGlvbiAldSByZXR1cm5lZCBOVUxMIiwg ZmxpbmZvLmZuX29pZCk7CisKKwlyZXR1cm4gcmVzdWx0OworfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9sc3lzY2FjaGUuYwppbmRleCBiNjdjMGMwM2I5Ny4uOTE1MGNjNDk1ZjggMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX29w Y2xhc3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wZXJhdG9yLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ19wZXJpb2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19yYW5nZS5oIgpAQCAtOTk1LDYgKzk5Niw2OCBAQCBnZXRfYXR0b3B0aW9ucyhPaWQgcmVs aWQsIGludDE2IGF0dG51bSkKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgkJCQktLS0tLS0t LS0tIFBHX1BFUklPRCBDQUNIRSAtLS0tLS0tLS0tCQkJCSAqLworCisvKgorICogZ2V0X3Bl cmlvZG5hbWUgLSBnaXZlbiBpdHMgT0lELCBsb29rIHVwIGEgcGVyaW9kCisgKgorICogSWYg bWlzc2luZ19vayBpcyBmYWxzZSwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHBlcmlvZCBpcyBu b3QgZm91bmQuCisgKiBJZiB0cnVlLCBqdXN0IHJldHVybiBJbnZhbGlkT2lkLgorICovCitj aGFyICoKK2dldF9wZXJpb2RuYW1lKE9pZCBwZXJpb2RpZCwgYm9vbCBtaXNzaW5nX29rKQor eworCUhlYXBUdXBsZQl0cDsKKworCXRwID0gU2VhcmNoU3lzQ2FjaGUxKFBFUklPRE9JRCwK KwkJCQkJCSBPYmplY3RJZEdldERhdHVtKHBlcmlvZGlkKSk7CisJaWYgKEhlYXBUdXBsZUlz VmFsaWQodHApKQorCXsKKwkJRm9ybV9wZ19wZXJpb2QgcGVyaW9kX3R1cCA9IChGb3JtX3Bn X3BlcmlvZCkgR0VUU1RSVUNUKHRwKTsKKwkJY2hhcgkgICAqcmVzdWx0OworCisJCXJlc3Vs dCA9IHBzdHJkdXAoTmFtZVN0cihwZXJpb2RfdHVwLT5wZXJuYW1lKSk7CisJCVJlbGVhc2VT eXNDYWNoZSh0cCk7CisJCXJldHVybiByZXN1bHQ7CisJfQorCisJaWYgKCFtaXNzaW5nX29r KQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcGVyaW9kICVkIiwK KwkJCSBwZXJpb2RpZCk7CisJcmV0dXJuIE5VTEw7Cit9CisKKy8qCisgKiBnZXRfcGVyaW9k X29pZCAtIGdldHMgaXRzIHJlbGF0aW9uIGFuZCBuYW1lLCBsb29rIHVwIGEgcGVyaW9kCisg KgorICogSWYgbWlzc2luZ19vayBpcyBmYWxzZSwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIGNh c3QgaXMgbm90IGZvdW5kLiAgSWYKKyAqIHRydWUsIGp1c3QgcmV0dXJuIEludmFsaWRPaWQu CisgKi8KK09pZAorZ2V0X3BlcmlvZF9vaWQoT2lkIHJlbGlkLCBjb25zdCBjaGFyICpwZXJp b2RuYW1lLCBib29sIG1pc3Npbmdfb2spCit7CisJSGVhcFR1cGxlCXRwOworCisJdHAgPSBT ZWFyY2hTeXNDYWNoZTIoUEVSSU9ETkFNRSwKKwkJCQkJCSBPYmplY3RJZEdldERhdHVtKHJl bGlkKSwKKwkJCQkJCSBQb2ludGVyR2V0RGF0dW0ocGVyaW9kbmFtZSkpOworCisJaWYgKEhl YXBUdXBsZUlzVmFsaWQodHApKQorCXsKKwkJRm9ybV9wZ19wZXJpb2QgcGVyaW9kX3R1cCA9 IChGb3JtX3BnX3BlcmlvZCkgR0VUU1RSVUNUKHRwKTsKKwkJT2lkIHJlc3VsdDsKKworCQly ZXN1bHQgPSBwZXJpb2RfdHVwLT5vaWQ7CisJCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJCXJl dHVybiByZXN1bHQ7CisJfQorCisJaWYgKCFtaXNzaW5nX29rKQorCQllbG9nKEVSUk9SLCAi Y2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcGVyaW9kICVzIiwKKwkJCSBwZXJpb2RuYW1lKTsK KwlyZXR1cm4gSW52YWxpZE9pZDsKK30KKwogLyoJCQkJLS0tLS0tLS0tLSBQR19DQVNUIENB Q0hFIC0tLS0tLS0tLS0JCQkJCSAqLwogCiAvKgpAQCAtMzU1Myw2ICszNjE2LDMwIEBAIGdl dF9tdWx0aXJhbmdlX3JhbmdlKE9pZCBtdWx0aXJhbmdlT2lkKQogCQlyZXR1cm4gSW52YWxp ZE9pZDsKIH0KIAorT2lkCitnZXRfc3VidHlwZV9yYW5nZShPaWQgc3VidHlwZU9pZCkKK3sK KwlDYXRDTGlzdCAqY2F0bGlzdDsKKwlPaWQJcmVzdWx0ID0gSW52YWxpZE9pZDsKKworCWNh dGxpc3QgPSBTZWFyY2hTeXNDYWNoZUxpc3QxKFJBTkdFU1VCVFlQRSwgT2JqZWN0SWRHZXRE YXR1bShzdWJ0eXBlT2lkKSk7CisKKwlpZiAoY2F0bGlzdC0+bl9tZW1iZXJzID09IDEpCisJ eworCQlIZWFwVHVwbGUJdHVwbGUgPSAmY2F0bGlzdC0+bWVtYmVyc1swXS0+dHVwbGU7CisJ CUZvcm1fcGdfcmFuZ2Ugcm5ndHVwID0gKEZvcm1fcGdfcmFuZ2UpIEdFVFNUUlVDVCh0dXBs ZSk7CisJCXJlc3VsdCA9IHJuZ3R1cC0+cm5ndHlwaWQ7CisJCVJlbGVhc2VDYXRDYWNoZUxp c3QoY2F0bGlzdCk7CisJfQorCWVsc2UgaWYgKGNhdGxpc3QtPm5fbWVtYmVycyA+IDEpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTkRFVEVSTUlOQVRFX0RB VEFUWVBFKSwKKwkJCQkgZXJybXNnKCJhbWJpZ3VvdXMgcmFuZ2UgZm9yIHR5cGUgJXMiLAor CQkJCQkJZm9ybWF0X3R5cGVfYmUoc3VidHlwZU9pZCkpKSk7CisKKwlyZXR1cm4gcmVzdWx0 OworfQorCiAvKgkJCQktLS0tLS0tLS0tIFBHX0lOREVYIENBQ0hFIC0tLS0tLS0tLS0JCQkJ ICovCiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hp dmVyLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKaW5kZXggNjhl MzIxMjEyZDkuLjg1MWNmNTBkZDY0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdf YmFja3VwX2FyY2hpdmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNo aXZlci5jCkBAIC0zNzA0LDYgKzM3MDQsNyBAQCBfZ2V0T2JqZWN0RGVzY3JpcHRpb24oUFFF eHBCdWZmZXIgYnVmLCBjb25zdCBUb2NFbnRyeSAqdGUpCiAJCQkgc3RyY21wKHR5cGUsICJE QVRBQkFTRSBQUk9QRVJUSUVTIikgPT0gMCB8fAogCQkJIHN0cmNtcCh0eXBlLCAiREVGQVVM VCIpID09IDAgfHwKIAkJCSBzdHJjbXAodHlwZSwgIkZLIENPTlNUUkFJTlQiKSA9PSAwIHx8 CisJCQkgc3RyY21wKHR5cGUsICJQRVJJT0QiKSA9PSAwIHx8CiAJCQkgc3RyY21wKHR5cGUs ICJJTkRFWCIpID09IDAgfHwKIAkJCSBzdHJjbXAodHlwZSwgIlJVTEUiKSA9PSAwIHx8CiAJ CQkgc3RyY21wKHR5cGUsICJUUklHR0VSIikgPT0gMCB8fApkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXgg NjcxMjdkYmQ5ZmUuLjZhMjQ3NDY0M2I3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTY2OTMsNiAr NjY5Myw3IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAlp bnQJCQlpX3JlbHR5cGU7CiAJaW50CQkJaV9yZWxvd25lcjsKIAlpbnQJCQlpX3JlbGNoZWNr czsKKwlpbnQJCQlpX25wZXJpb2Q7CiAJaW50CQkJaV9yZWxoYXNpbmRleDsKIAlpbnQJCQlp X3JlbGhhc3J1bGVzOwogCWludAkJCWlfcmVscGFnZXM7CkBAIC02NzcwLDYgKzY3NzEsMTQg QEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJCQkgImMucmVsaGFzb2lkcywgIik7CiAKKwkv KiBJbiBQRzE4IHVwd2FyZHMgd2UgaGF2ZSBQRVJJT0RzLiAqLworCWlmIChmb3V0LT5yZW1v dGVWZXJzaW9uID49IDE4MDAwMCkKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCisJ CQkJCQkJICIoU0VMRUNUIGNvdW50KCopIEZST00gcGdfcGVyaW9kIFdIRVJFIHBlcnJlbGlk ID0gYy5vaWQpIEFTIG5wZXJpb2RzLCAiKTsKKwllbHNlCisJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKHF1ZXJ5LAorCQkJCQkJCSAiMCBBUyBucGVyaW9kcywgIik7CisKIAlpZiAoZm91dC0+ cmVtb3RlVmVyc2lvbiA+PSA5MDMwMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnks CiAJCQkJCQkJICJjLnJlbGlzcG9wdWxhdGVkLCAiKTsKQEAgLTY5MDcsNiArNjkxNiw3IEBA IGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAlpX3JlbHR5cGUg PSBQUWZudW1iZXIocmVzLCAicmVsdHlwZSIpOwogCWlfcmVsb3duZXIgPSBQUWZudW1iZXIo cmVzLCAicmVsb3duZXIiKTsKIAlpX3JlbGNoZWNrcyA9IFBRZm51bWJlcihyZXMsICJyZWxj aGVja3MiKTsKKwlpX25wZXJpb2QgPSBQUWZudW1iZXIocmVzLCAibnBlcmlvZHMiKTsKIAlp X3JlbGhhc2luZGV4ID0gUFFmbnVtYmVyKHJlcywgInJlbGhhc2luZGV4Iik7CiAJaV9yZWxo YXNydWxlcyA9IFBRZm51bWJlcihyZXMsICJyZWxoYXNydWxlcyIpOwogCWlfcmVscGFnZXMg PSBQUWZudW1iZXIocmVzLCAicmVscGFnZXMiKTsKQEAgLTY5OTAsNiArNzAwMCw3IEBAIGdl dFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAkJfQogCQl0YmxpbmZv W2ldLnJlbHRhYmxlc3BhY2UgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcmVs dGFibGVzcGFjZSkpOwogCQl0YmxpbmZvW2ldLmhhc29pZHMgPSAoc3RyY21wKFBRZ2V0dmFs dWUocmVzLCBpLCBpX3JlbGhhc29pZHMpLCAidCIpID09IDApOworCQl0YmxpbmZvW2ldLm5w ZXJpb2QgPSBhdG9pKFBRZ2V0dmFsdWUocmVzLCBpLCBpX25wZXJpb2QpKTsKIAkJdGJsaW5m b1tpXS5oYXN0cmlnZ2VycyA9IChzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcmVsaGFz dHJpZ2dlcnMpLCAidCIpID09IDApOwogCQl0YmxpbmZvW2ldLnJlbHBlcnNpc3RlbmNlID0g KihQUWdldHZhbHVlKHJlcywgaSwgaV9yZWxwZXJzaXN0ZW5jZSkpOwogCQl0YmxpbmZvW2ld LnJlbGlzcG9wdWxhdGVkID0gKHN0cmNtcChQUWdldHZhbHVlKHJlcywgaSwgaV9yZWxpc3Bv cHVsYXRlZCksICJ0IikgPT0gMCk7CkBAIC03NDEzLDcgKzc0MjQsNyBAQCBnZXRJbmRleGVz KEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAogCQkJCQkJCSAiZmFsc2UgQVMgaW5kbnVs bHNub3RkaXN0aW5jdCwgIik7CiAKLQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNzAw MDApCisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTgwMDAwKQogCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJCQkgImMuY29ucGVyaW9kICIpOwogCWVsc2UKQEAg LTg2MjMsNyArODYzNCw3IEBAIGdldFRyYW5zZm9ybXMoQXJjaGl2ZSAqZm91dCkKIC8qCiAg KiBnZXRUYWJsZUF0dHJzIC0KICAqCSAgZm9yIGVhY2ggaW50ZXJlc3RpbmcgdGFibGUsIHJl YWQgaW5mbyBhYm91dCBpdHMgYXR0cmlidXRlcwotICoJICAobmFtZXMsIHR5cGVzLCBkZWZh dWx0IHZhbHVlcywgQ0hFQ0sgY29uc3RyYWludHMsIGV0YykKKyAqCSAgKG5hbWVzLCB0eXBl cywgZGVmYXVsdCB2YWx1ZXMsIENIRUNLIGNvbnN0cmFpbnRzLCBQRVJJT0RzLCBldGMpCiAg KgogICoJbW9kaWZpZXMgdGJsaW5mbwogICovCkBAIC04NjczLDYgKzg2ODQsOCBAQCBnZXRU YWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRh YmxlcykKIAlmb3IgKGludCBpID0gMDsgaSA8IG51bVRhYmxlczsgaSsrKQogCXsKIAkJVGFi bGVJbmZvICAqdGJpbmZvID0gJnRibGluZm9baV07CisJCWludAkJCW5kdW1wYWJsZWNoZWNr czsJLyogbnVtYmVyIG9mIENIRUNLIGNvbnN0cmFpbnRzIHRoYXQgZG8KKwkJCQkJCQkJCQkg ICBub3QgYmVsb25nIHRvIGEgcGVyaW9kICovCiAKIAkJLyogRG9uJ3QgYm90aGVyIHRvIGNv bGxlY3QgaW5mbyBmb3Igc2VxdWVuY2VzICovCiAJCWlmICh0YmluZm8tPnJlbGtpbmQgPT0g UkVMS0lORF9TRVFVRU5DRSkKQEAgLTg2ODcsNyArODcwMCw4IEBAIGdldFRhYmxlQXR0cnMo QXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzKQogCQkJ YXBwZW5kUFFFeHBCdWZmZXJDaGFyKHRibG9pZHMsICcsJyk7CiAJCWFwcGVuZFBRRXhwQnVm ZmVyKHRibG9pZHMsICIldSIsIHRiaW5mby0+ZG9iai5jYXRJZC5vaWQpOwogCi0JCWlmICh0 YmluZm8tPm5jaGVjayA+IDApCisJCW5kdW1wYWJsZWNoZWNrcyA9IHRiaW5mby0+bmNoZWNr IC0gdGJpbmZvLT5ucGVyaW9kOworCQlpZiAobmR1bXBhYmxlY2hlY2tzID4gMCkKIAkJewog CQkJLyogQWxzbyBtYWtlIGEgbGlzdCBvZiB0aGUgb25lcyB3aXRoIGNoZWNrIGNvbnN0cmFp bnRzICovCiAJCQlpZiAoY2hlY2tvaWRzLT5sZW4gPiAxKSAvKiBkbyB3ZSBoYXZlIG1vcmUg dGhhbiB0aGUgJ3snPyAqLwpAQCAtOTA0OSwxNSArOTA2MywzNiBAQCBnZXRUYWJsZUF0dHJz KEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRhYmxlcykKIAkJ cGdfbG9nX2luZm8oImZpbmRpbmcgdGFibGUgY2hlY2sgY29uc3RyYWludHMiKTsKIAogCQly ZXNldFBRRXhwQnVmZmVyKHEpOwotCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLAotCQkJCQkJICAi U0VMRUNUIGMudGFibGVvaWQsIGMub2lkLCBjb25yZWxpZCwgY29ubmFtZSwgIgotCQkJCQkJ ICAicGdfY2F0YWxvZy5wZ19nZXRfY29uc3RyYWludGRlZihjLm9pZCkgQVMgY29uc3JjLCAi Ci0JCQkJCQkgICJjb25pc2xvY2FsLCBjb252YWxpZGF0ZWQgIgotCQkJCQkJICAiRlJPTSB1 bm5lc3QoJyVzJzo6cGdfY2F0YWxvZy5vaWRbXSkgQVMgc3JjKHRibG9pZClcbiIKLQkJCQkJ CSAgIkpPSU4gcGdfY2F0YWxvZy5wZ19jb25zdHJhaW50IGMgT04gKHNyYy50YmxvaWQgPSBj LmNvbnJlbGlkKVxuIgotCQkJCQkJICAiV0hFUkUgY29udHlwZSA9ICdjJyAiCi0JCQkJCQkg ICJPUkRFUiBCWSBjLmNvbnJlbGlkLCBjLmNvbm5hbWUiLAotCQkJCQkJICBjaGVja29pZHMt PmRhdGEpOworCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxODAwMDApCisJCXsKKwkJ CS8qCisJCQkgKiBQRVJJT0RzIHdlcmUgYWRkZWQgaW4gdjE4IGFuZCB3ZSBkb24ndCBkdW1w IENIRUNLCisJCQkgKiBjb25zdHJhaW50cyBmb3IgdGhlbS4KKwkJCSAqLworCQkJYXBwZW5k UFFFeHBCdWZmZXIocSwKKwkJCQkJCQkgICJTRUxFQ1QgYy50YWJsZW9pZCwgYy5vaWQsIGNv bnJlbGlkLCBjb25uYW1lLCAiCisJCQkJCQkJICAicGdfY2F0YWxvZy5wZ19nZXRfY29uc3Ry YWludGRlZihjLm9pZCkgQVMgY29uc3JjLCAiCisJCQkJCQkJICAiY29uaXNsb2NhbCwgY29u dmFsaWRhdGVkICIKKwkJCQkJCQkgICJGUk9NIHVubmVzdCgnJXMnOjpwZ19jYXRhbG9nLm9p ZFtdKSBBUyBzcmModGJsb2lkKVxuIgorCQkJCQkJCSAgIkpPSU4gcGdfY2F0YWxvZy5wZ19j b25zdHJhaW50IGMgT04gKHNyYy50YmxvaWQgPSBjLmNvbnJlbGlkKVxuIgorCQkJCQkJCSAg IldIRVJFIGNvbnR5cGUgPSAnYycgIgorCQkJCQkJCSAgIiAgIEFORCBOT1QgRVhJU1RTIChT RUxFQ1QgRlJPTSBwZ19wZXJpb2QgIgorCQkJCQkJCSAgIiAgICAgICAgICAgICAgICAgICBX SEVSRSAocGVycmVsaWQsIHBlcmNvbnN0cmFpbnQpID0gKGNvbnJlbGlkLCBjLm9pZCkpICIK KwkJCQkJCQkgICJPUkRFUiBCWSBjLmNvbnJlbGlkLCBjLmNvbm5hbWUiLAorCQkJCQkJCSAg Y2hlY2tvaWRzLT5kYXRhKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCWFwcGVuZFBRRXhwQnVm ZmVyKHEsCisJCQkJCQkJICAiU0VMRUNUIGMudGFibGVvaWQsIGMub2lkLCBjb25yZWxpZCwg Y29ubmFtZSwgIgorCQkJCQkJCSAgInBnX2NhdGFsb2cucGdfZ2V0X2NvbnN0cmFpbnRkZWYo Yy5vaWQpIEFTIGNvbnNyYywgIgorCQkJCQkJCSAgImNvbmlzbG9jYWwsIGNvbnZhbGlkYXRl ZCAiCisJCQkJCQkJICAiRlJPTSB1bm5lc3QoJyVzJzo6cGdfY2F0YWxvZy5vaWRbXSkgQVMg c3JjKHRibG9pZClcbiIKKwkJCQkJCQkgICJKT0lOIHBnX2NhdGFsb2cucGdfY29uc3RyYWlu dCBjIE9OIChzcmMudGJsb2lkID0gYy5jb25yZWxpZClcbiIKKwkJCQkJCQkgICJXSEVSRSBj b250eXBlID0gJ2MnICIKKwkJCQkJCQkgICJPUkRFUiBCWSBjLmNvbnJlbGlkLCBjLmNvbm5h bWUiLAorCQkJCQkJCSAgY2hlY2tvaWRzLT5kYXRhKTsKKwkJfQogCiAJCXJlcyA9IEV4ZWN1 dGVTcWxRdWVyeShmb3V0LCBxLT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOwogCkBAIC05MDc5 LDYgKzkxMTQsNyBAQCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAq dGJsaW5mbywgaW50IG51bVRhYmxlcykKIAkJCU9pZAkJCWNvbnJlbGlkID0gYXRvb2lkKFBR Z2V0dmFsdWUocmVzLCBqLCBpX2NvbnJlbGlkKSk7CiAJCQlUYWJsZUluZm8gICp0YmluZm8g PSBOVUxMOwogCQkJaW50CQkJbnVtY29uczsKKwkJCWludAkJCW5kdW1wYWJsZWNoZWNrczsK IAogCQkJLyogQ291bnQgcm93cyBmb3IgdGhpcyB0YWJsZSAqLwogCQkJZm9yIChudW1jb25z ID0gMTsgbnVtY29ucyA8IG51bUNvbnN0cnMgLSBqOyBudW1jb25zKyspCkBAIC05MDk4LDEy ICs5MTM0LDEzIEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0 YmxpbmZvLCBpbnQgbnVtVGFibGVzKQogCQkJaWYgKGN1cnRibGluZHggPj0gbnVtVGFibGVz KQogCQkJCXBnX2ZhdGFsKCJ1bnJlY29nbml6ZWQgdGFibGUgT0lEICV1IiwgY29ucmVsaWQp OwogCi0JCQlpZiAobnVtY29ucyAhPSB0YmluZm8tPm5jaGVjaykKKwkJCW5kdW1wYWJsZWNo ZWNrcyA9IHRiaW5mby0+bmNoZWNrIC0gdGJpbmZvLT5ucGVyaW9kOworCQkJaWYgKG51bWNv bnMgIT0gbmR1bXBhYmxlY2hlY2tzKQogCQkJewogCQkJCXBnX2xvZ19lcnJvcihuZ2V0dGV4 dCgiZXhwZWN0ZWQgJWQgY2hlY2sgY29uc3RyYWludCBvbiB0YWJsZSBcIiVzXCIgYnV0IGZv dW5kICVkIiwKIAkJCQkJCQkJCSAgImV4cGVjdGVkICVkIGNoZWNrIGNvbnN0cmFpbnRzIG9u IHRhYmxlIFwiJXNcIiBidXQgZm91bmQgJWQiLAotCQkJCQkJCQkJICB0YmluZm8tPm5jaGVj ayksCi0JCQkJCQkJIHRiaW5mby0+bmNoZWNrLCB0YmluZm8tPmRvYmoubmFtZSwgbnVtY29u cyk7CisJCQkJCQkJCQkgIG5kdW1wYWJsZWNoZWNrcyksCisJCQkJCQkJIG5kdW1wYWJsZWNo ZWNrcywgdGJpbmZvLT5kb2JqLm5hbWUsIG51bWNvbnMpOwogCQkJCXBnX2xvZ19lcnJvcl9o aW50KCJUaGUgc3lzdGVtIGNhdGFsb2dzIG1pZ2h0IGJlIGNvcnJ1cHRlZC4iKTsKIAkJCQll eGl0X25pY2VseSgxKTsKIAkJCX0KQEAgLTkxNjIsNiArOTE5OSw4MCBAQCBnZXRUYWJsZUF0 dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRhYmxlcykK IAkJUFFjbGVhcihyZXMpOwogCX0KIAorCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtVGFibGVz OyBpKyspCisJeworCQlUYWJsZUluZm8gICp0YmluZm8gPSAmdGJsaW5mb1tpXTsKKworCQkv KgorCQkgKiBHZXQgaW5mbyBhYm91dCBQRVJJT0QgZGVmaW5pdGlvbnMKKwkJICovCisJCWlm ICh0YmluZm8tPm5wZXJpb2QgPiAwKQorCQl7CisJCQlQZXJpb2RJbmZvICpwZXJpb2RzOwor CQkJaW50CQkJbnVtUGVyaW9kczsKKwkJCWludAkJCWo7CisKKwkJCS8qIFdlIHNob3VsZG4n dCBoYXZlIGFueSBwZXJpb2RzIGJlZm9yZSB2MTggKi8KKwkJCUFzc2VydChmb3V0LT5yZW1v dGVWZXJzaW9uID49IDE4MDAwMCk7CisKKwkJCXBnX2xvZ19pbmZvKCJmaW5kaW5nIHBlcmlv ZHMgZm9yIHRhYmxlIFwiJXMuJXNcIiIsCisJCQkJCQl0YmluZm8tPmRvYmoubmFtZXNwYWNl LT5kb2JqLm5hbWUsCisJCQkJCQl0YmluZm8tPmRvYmoubmFtZSk7CisKKwkJCXJlc2V0UFFF eHBCdWZmZXIocSk7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLAorCQkJCSJTRUxFQ1QgcC50 YWJsZW9pZCwgcC5vaWQsIHAucGVybmFtZSwgIgorCQkJCSIgICAgICAgc2EuYXR0bmFtZSBB UyBwZXJzdGFydCwgZWEuYXR0bmFtZSBBUyBwZXJlbmQsICIKKwkJCQkiICAgICAgIHIudHlw bmFtZSBBUyBybmd0eXBlLCAiCisJCQkJIiAgICAgICBjLmNvbm5hbWUgQVMgY29ubmFtZSAi CisJCQkJIkZST00gcGdfY2F0YWxvZy5wZ19wZXJpb2QgQVMgcCAiCisJCQkJIkpPSU4gcGdf Y2F0YWxvZy5wZ19hdHRyaWJ1dGUgQVMgc2EgT04gKHNhLmF0dHJlbGlkLCBzYS5hdHRudW0p ID0gKHAucGVycmVsaWQsIHAucGVyc3RhcnQpICIKKwkJCQkiSk9JTiBwZ19jYXRhbG9nLnBn X2F0dHJpYnV0ZSBBUyBlYSBPTiAoZWEuYXR0cmVsaWQsIGVhLmF0dG51bSkgPSAocC5wZXJy ZWxpZCwgcC5wZXJlbmQpICIKKwkJCQkiSk9JTiBwZ19jYXRhbG9nLnBnX2F0dHJpYnV0ZSBB UyByYSBPTiAocmEuYXR0cmVsaWQsIHJhLmF0dG51bSkgPSAocC5wZXJyZWxpZCwgcC5wZXJy YW5nZSkgIgorCQkJCSJKT0lOIHBnX2NhdGFsb2cucGdfdHlwZSBBUyByIE9OIHIub2lkID0g cmEuYXR0dHlwaWQgIgorCQkJCSJKT0lOIHBnX2NhdGFsb2cucGdfY29uc3RyYWludCBBUyBj IE9OIGMub2lkID0gcC5wZXJjb25zdHJhaW50ICIKKwkJCQkiV0hFUkUgcC5wZXJyZWxpZCA9 ICcldSc6OnBnX2NhdGFsb2cub2lkICIKKwkJCQkiT1JERVIgQlkgcC5wZXJuYW1lIiwKKwkJ CQl0YmluZm8tPmRvYmouY2F0SWQub2lkKTsKKworCQkJcmVzID0gRXhlY3V0ZVNxbFF1ZXJ5 KGZvdXQsIHEtPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CisKKwkJCS8qCisJCQkgKiBJZiB3 ZSBkaWRuJ3QgZ2V0IHRoZSBudW1iZXIgb2Ygcm93cyB3ZSB0aG91Z2h0IHdlIHdlcmUgZ29p bmcgdG8sCisJCQkgKiB0aGVuIHRob3NlIEpPSU5zIGRpZG4ndCB3b3JrLgorCQkJICovCisJ CQludW1QZXJpb2RzID0gUFFudHVwbGVzKHJlcyk7CisJCQlpZiAobnVtUGVyaW9kcyAhPSB0 YmluZm8tPm5wZXJpb2QpCisJCQl7CisJCQkJcGdfbG9nX2luZm8obmdldHRleHQoImV4cGVj dGVkICVkIHBlcmlvZCBvbiB0YWJsZSBcIiVzXCIgYnV0IGZvdW5kICVkIiwKKwkJCQkJCQkJ CSAiZXhwZWN0ZWQgJWQgcGVyaW9kcyBvbiB0YWJsZSBcIiVzXCIgYnV0IGZvdW5kICVkIiwK KwkJCQkJCQkJCSB0YmluZm8tPm5wZXJpb2QpLAorCQkJCQkJCXRiaW5mby0+bnBlcmlvZCwg dGJpbmZvLT5kb2JqLm5hbWUsIG51bVBlcmlvZHMpOworCQkJCXBnX2xvZ19pbmZvKCIoVGhl IHN5c3RlbSBjYXRhbG9ncyBtaWdodCBiZSBjb3JydXB0ZWQuKSIpOworCQkJCWV4aXRfbmlj ZWx5KDEpOworCQkJfQorCisJCQlwZXJpb2RzID0gKFBlcmlvZEluZm8gKikgcGdfbWFsbG9j KG51bVBlcmlvZHMgKiBzaXplb2YoUGVyaW9kSW5mbykpOworCQkJdGJpbmZvLT5wZXJpb2Rz ID0gcGVyaW9kczsKKworCQkJZm9yIChqID0gMDsgaiA8IG51bVBlcmlvZHM7IGorKykKKwkJ CXsKKwkJCQlwZXJpb2RzW2pdLmRvYmoub2JqVHlwZSA9IERPX1BFUklPRDsKKwkJCQlwZXJp b2RzW2pdLmRvYmouY2F0SWQudGFibGVvaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGos IDApKTsKKwkJCQlwZXJpb2RzW2pdLmRvYmouY2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0dmFs dWUocmVzLCBqLCAxKSk7CisJCQkJQXNzaWduRHVtcElkKCZwZXJpb2RzW2pdLmRvYmopOwor CQkJCXBlcmlvZHNbal0uZG9iai5uYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBq LCAyKSk7CisJCQkJcGVyaW9kc1tqXS5kb2JqLm5hbWVzcGFjZSA9IHRiaW5mby0+ZG9iai5u YW1lc3BhY2U7CisJCQkJcGVyaW9kc1tqXS5wZXJ0YWJsZSA9IHRiaW5mbzsKKwkJCQlwZXJp b2RzW2pdLnBlcnN0YXJ0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBqLCAzKSk7CisJ CQkJcGVyaW9kc1tqXS5wZXJlbmQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGosIDQp KTsKKwkJCQlwZXJpb2RzW2pdLnJuZ3R5cGUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMs IGosIDUpKTsKKwkJCQlwZXJpb2RzW2pdLmNvbm5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1 ZShyZXMsIGosIDYpKTsKKwkJCX0KKwkJCVBRY2xlYXIocmVzKTsKKwkJfQorCX0KKwogCWRl c3Ryb3lQUUV4cEJ1ZmZlcihxKTsKIAlkZXN0cm95UFFFeHBCdWZmZXIodGJsb2lkcyk7CiAJ ZGVzdHJveVBRRXhwQnVmZmVyKGNoZWNrb2lkcyk7CkBAIC0xMDM5MCw2ICsxMDUwMSw4IEBA IGR1bXBEdW1wYWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBEdW1wYWJsZU9iamVjdCAqZG9i aikKIAkJY2FzZSBET19GS19DT05TVFJBSU5UOgogCQkJZHVtcENvbnN0cmFpbnQoZm91dCwg KGNvbnN0IENvbnN0cmFpbnRJbmZvICopIGRvYmopOwogCQkJYnJlYWs7CisJCWNhc2UgRE9f UEVSSU9EOgorCQkJYnJlYWs7CiAJCWNhc2UgRE9fUFJPQ0xBTkc6CiAJCQlkdW1wUHJvY0xh bmcoZm91dCwgKGNvbnN0IFByb2NMYW5nSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOwpAQCAt MTU5NDIsNiArMTYwNTUsMzMgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNv bnN0IFRhYmxlSW5mbyAqdGJpbmZvKQogCQkJCX0KIAkJCX0KIAorCQkJLyoKKwkJCSAqIEFk ZCBub24taW5oZXJpdGVkIFBFUklPRCBkZWZpbml0aW9ucywgaWYgYW55LgorCQkJICovCisJ CQlmb3IgKGogPSAwOyBqIDwgdGJpbmZvLT5ucGVyaW9kOyBqKyspCisJCQl7CisJCQkJUGVy aW9kSW5mbyAqcGVyaW9kID0gJih0YmluZm8tPnBlcmlvZHNbal0pOworCisJCQkJY2hhcgkg ICAqbmFtZSA9IHBnX3N0cmR1cChmbXRJZChwZXJpb2QtPmRvYmoubmFtZSkpOworCQkJCWNo YXIJICAgKnN0YXJ0ID0gcGdfc3RyZHVwKGZtdElkKHBlcmlvZC0+cGVyc3RhcnQpKTsKKwkJ CQljaGFyCSAgICplbmQgPSBwZ19zdHJkdXAoZm10SWQocGVyaW9kLT5wZXJlbmQpKTsKKwkJ CQljaGFyCSAgICpybmd0eXBlID0gcGdfc3RyZHVwKGZtdElkKHBlcmlvZC0+cm5ndHlwZSkp OworCQkJCWNoYXIJICAgKmNvbm5hbWUgPSBwZ19zdHJkdXAoZm10SWQocGVyaW9kLT5jb25u YW1lKSk7CisKKwkJCQlpZiAoYWN0dWFsX2F0dHMgPT0gMCkKKwkJCQkJYXBwZW5kUFFFeHBC dWZmZXJTdHIocSwgIiAoXG4gICAgIik7CisJCQkJZWxzZQorCQkJCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cihxLCAiLFxuICAgICIpOworCisJCQkJLyogQWx3YXlzIHNheSBjb2xleGlzdHMg c28gd2UgY2FuIGp1c3QgcHJpbnQgdGhlIEdFTkVSQVRFRCBjb2x1bW4gKi8KKwkJCQlhcHBl bmRQUUV4cEJ1ZmZlcihxLCAiUEVSSU9EIEZPUiAlcyAoJXMsICVzKSAiCisJCQkJCQkiV0lU SCAocmFuZ2V0eXBlID0gJXMsIGNoZWNrX2NvbnN0cmFpbnRfbmFtZSA9ICVzLCBjb2xleGlz dHMgPSB0cnVlKSIsCisJCQkJCQkJCSAgbmFtZSwgc3RhcnQsIGVuZCwKKwkJCQkJCQkJICBy bmd0eXBlLCBjb25uYW1lKTsKKworCQkJCWFjdHVhbF9hdHRzKys7CisJCQl9CisKIAkJCS8q CiAJCQkgKiBBZGQgbm9uLWluaGVyaXRlZCBDSEVDSyBjb25zdHJhaW50cywgaWYgYW55Lgog CQkJICoKQEAgLTE1OTUwLDcgKzE2MDkwLDcgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUg KmZvdXQsIGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvKQogCQkJICogUEFSVElUSU9OIHRoYXQg d2UnbGwgZW1pdCBsYXRlciBleHBlY3RzIHRoZSBjb25zdHJhaW50IHRvIGJlCiAJCQkgKiB0 aGVyZS4gIChObyBuZWVkIHRvIGZpeCBjb25pc2xvY2FsOiBBVFRBQ0ggUEFSVElUSU9OIGRv ZXMgdGhhdCkKIAkJCSAqLwotCQkJZm9yIChqID0gMDsgaiA8IHRiaW5mby0+bmNoZWNrOyBq KyspCisJCQlmb3IgKGogPSAwOyBqIDwgdGJpbmZvLT5uY2hlY2sgLSB0YmluZm8tPm5wZXJp b2Q7IGorKykKIAkJCXsKIAkJCQlDb25zdHJhaW50SW5mbyAqY29uc3RyID0gJih0YmluZm8t PmNoZWNrZXhwcnNbal0pOwogCkBAIC0xNjE0OSw3ICsxNjI4OSw3IEBAIGR1bXBUYWJsZVNj aGVtYShBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCSAqIEZv ciBwYXJ0aXRpb25zLCB0aGV5IHdlcmUgYWxyZWFkeSBkdW1wZWQsIGFuZCBjb25pc2xvY2Fs CiAJCQkgKiBkb2Vzbid0IG5lZWQgZml4aW5nLgogCQkJICovCi0JCQlmb3IgKGsgPSAwOyBr IDwgdGJpbmZvLT5uY2hlY2s7IGsrKykKKwkJCWZvciAoayA9IDA7IGsgPCB0YmluZm8tPm5j aGVjayAtIHRiaW5mby0+bnBlcmlvZDsgaysrKQogCQkJewogCQkJCUNvbnN0cmFpbnRJbmZv ICpjb25zdHIgPSAmKHRiaW5mby0+Y2hlY2tleHByc1trXSk7CiAKQEAgLTE2NDQyLDcgKzE2 NTgyLDcgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5m byAqdGJpbmZvKQogCQlkdW1wVGFibGVTZWNMYWJlbChmb3V0LCB0YmluZm8sIHJlbHR5cGVu YW1lKTsKIAogCS8qIER1bXAgY29tbWVudHMgb24gaW5saW5lZCB0YWJsZSBjb25zdHJhaW50 cyAqLwotCWZvciAoaiA9IDA7IGogPCB0YmluZm8tPm5jaGVjazsgaisrKQorCWZvciAoaiA9 IDA7IGogPCB0YmluZm8tPm5jaGVjayAtIHRiaW5mby0+bnBlcmlvZDsgaisrKQogCXsKIAkJ Q29uc3RyYWludEluZm8gKmNvbnN0ciA9ICYodGJpbmZvLT5jaGVja2V4cHJzW2pdKTsKIApA QCAtMTg0MTEsNiArMTg1NTEsNyBAQCBhZGRCb3VuZGFyeURlcGVuZGVuY2llcyhEdW1wYWJs ZU9iamVjdCAqKmRvYmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2UgRE9fVFJJR0dFUjoKIAkJ CWNhc2UgRE9fRVZFTlRfVFJJR0dFUjoKIAkJCWNhc2UgRE9fREVGQVVMVF9BQ0w6CisJCQlj YXNlIERPX1BFUklPRDoKIAkJCWNhc2UgRE9fUE9MSUNZOgogCQkJY2FzZSBET19QVUJMSUNB VElPTjoKIAkJCWNhc2UgRE9fUFVCTElDQVRJT05fUkVMOgpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXgg YjI1YjlmOTMwNGUuLjgxODdhZGE2NmYxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTU5LDYgKzU5 LDcgQEAgdHlwZWRlZiBlbnVtCiAJRE9fVFJJR0dFUiwKIAlET19DT05TVFJBSU5ULAogCURP X0ZLX0NPTlNUUkFJTlQsCQkJLyogc2VlIG5vdGUgZm9yIENvbnN0cmFpbnRJbmZvICovCisJ RE9fUEVSSU9ELAogCURPX1BST0NMQU5HLAogCURPX0NBU1QsCiAJRE9fVEFCTEVfREFUQSwK QEAgLTMwMCwxMiArMzAxLDE0IEBAIHR5cGVkZWYgc3RydWN0IF90YWJsZUluZm8KIAlib29s CQlyb3dzZWM7CQkJLyogaXMgcm93IHNlY3VyaXR5IGVuYWJsZWQ/ICovCiAJYm9vbAkJZm9y Y2Vyb3dzZWM7CS8qIGlzIHJvdyBzZWN1cml0eSBmb3JjZWQ/ICovCiAJYm9vbAkJaGFzb2lk czsJCS8qIGRvZXMgaXQgaGF2ZSBPSURzPyAqLworCWJvb2wJCWhhc3BlcmlvZHM7CQkvKiBk b2VzIGl0IGhhdmUgYW55IHBlcmlvZHM/ICovCiAJdWludDMyCQlmcm96ZW54aWQ7CQkvKiB0 YWJsZSdzIHJlbGZyb3plbnhpZCAqLwogCXVpbnQzMgkJbWlubXhpZDsJCS8qIHRhYmxlJ3Mg cmVsbWlubXhpZCAqLwogCU9pZAkJCXRvYXN0X29pZDsJCS8qIHRvYXN0IHRhYmxlJ3MgT0lE LCBvciAwIGlmIG5vbmUgKi8KIAl1aW50MzIJCXRvYXN0X2Zyb3plbnhpZDsJLyogdG9hc3Qg dGFibGUncyByZWxmcm96ZW54aWQsIGlmIGFueSAqLwogCXVpbnQzMgkJdG9hc3RfbWlubXhp ZDsJLyogdG9hc3QgdGFibGUncyByZWxtaW5teGlkICovCiAJaW50CQkJbmNoZWNrOwkJCS8q ICMgb2YgQ0hFQ0sgZXhwcmVzc2lvbnMgKi8KKwlpbnQJCQlucGVyaW9kOwkJLyogIyBvZiBQ RVJJT0QgZGVmaW5pdGlvbnMgKi8KIAlPaWQJCQlyZWx0eXBlOwkJLyogT0lEIG9mIHRhYmxl J3MgY29tcG9zaXRlIHR5cGUsIGlmIGFueSAqLwogCU9pZAkJCXJlbG9mdHlwZTsJCS8qIHVu ZGVybHlpbmcgdHlwZSBmb3IgdHlwZWQgdGFibGUgKi8KIAlPaWQJCQlmb3JlaWduX3NlcnZl cjsgLyogZm9yZWlnbiBzZXJ2ZXIgb2lkLCBpZiBhcHBsaWNhYmxlICovCkBAIC0zMzYsNiAr MzM5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX3RhYmxlSW5mbwogCWNoYXIJICAgKmF0dHN0b3Jh Z2U7CQkvKiBhdHRyaWJ1dGUgc3RvcmFnZSBzY2hlbWUgKi8KIAljaGFyCSAgICp0eXBzdG9y YWdlOwkJLyogdHlwZSBzdG9yYWdlIHNjaGVtZSAqLwogCWJvb2wJICAgKmF0dGlzZHJvcHBl ZDsJLyogdHJ1ZSBpZiBhdHRyIGlzIGRyb3BwZWQ7IGRvbid0IGR1bXAgaXQgKi8KKwlib29s CSAgICphdHRpc3BlcmlvZDsJLyogdHJ1ZSBpZiBhdHRyIGlzIGEgUEVSSU9EOyBkb24ndCBk dW1wIGl0ICovCiAJY2hhcgkgICAqYXR0aWRlbnRpdHk7CiAJY2hhcgkgICAqYXR0Z2VuZXJh dGVkOwogCWludAkJICAgKmF0dGxlbjsJCQkvKiBhdHRyaWJ1dGUgbGVuZ3RoLCB1c2VkIGJ5 IGJpbmFyeV91cGdyYWRlICovCkBAIC0zNTAsNiArMzU0LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg X3RhYmxlSW5mbwogCWJvb2wJICAgKmluaE5vdE51bGw7CQkvKiB0cnVlIGlmIE5PVCBOVUxM IGlzIGluaGVyaXRlZCAqLwogCXN0cnVjdCBfYXR0ckRlZkluZm8gKiphdHRyZGVmczsgLyog REVGQVVMVCBleHByZXNzaW9ucyAqLwogCXN0cnVjdCBfY29uc3RyYWludEluZm8gKmNoZWNr ZXhwcnM7IC8qIENIRUNLIGNvbnN0cmFpbnRzICovCisJc3RydWN0IF9wZXJpb2RJbmZvICpw ZXJpb2RzOwkvKiBQRVJJT0QgZGVmaW5pdGlvbnMgKi8KIAlib29sCQluZWVkc19vdmVycmlk ZTsgLyogaGFzIEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkgKi8KIAljaGFyCSAgICph bW5hbWU7CQkJLyogcmVsYXRpb24gYWNjZXNzIG1ldGhvZCAqLwogCkBAIC00NzksNiArNDg0 LDE2IEBAIHR5cGVkZWYgc3RydWN0IF9jb25zdHJhaW50SW5mbwogCWJvb2wJCXNlcGFyYXRl OwkJLyogdHJ1ZSBpZiBtdXN0IGR1bXAgYXMgc2VwYXJhdGUgaXRlbSAqLwogfSBDb25zdHJh aW50SW5mbzsKIAordHlwZWRlZiBzdHJ1Y3QgX3BlcmlvZEluZm8KK3sKKwlEdW1wYWJsZU9i amVjdCBkb2JqOworCVRhYmxlSW5mbyAgKnBlcnRhYmxlOworCWNoYXIJICAgKnBlcnN0YXJ0 OwkJLyogdGhlIG5hbWUgb2YgdGhlIHN0YXJ0IGNvbHVtbiAqLworCWNoYXIJICAgKnBlcmVu ZDsJCQkvKiB0aGUgbmFtZSBvZiB0aGUgZW5kIGNvbHVtbiAqLworCWNoYXIJICAgKnJuZ3R5 cGU7CQkvKiB0aGUgbmFtZSBvZiB0aGUgcmFuZ2UgdHlwZSAqLworCWNoYXIJICAgKmNvbm5h bWU7CQkvKiB0aGUgbmFtZSBvZiB0aGUgQ0hFQ0sgY29uc3RyYWludCAqLworfSBQZXJpb2RJ bmZvOworCiB0eXBlZGVmIHN0cnVjdCBfcHJvY0xhbmdJbmZvCiB7CiAJRHVtcGFibGVPYmpl Y3QgZG9iajsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwppbmRleCA0Y2I3NTRjYWE1NS4uNTYw MmNkYTRkNWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwor KysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKQEAgLTg2LDYgKzg2LDcgQEAg ZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19DT05TVFJBSU5ULAogCVBSSU9f SU5ERVgsCiAJUFJJT19JTkRFWF9BVFRBQ0gsCisJUFJJT19QRVJJT0QsCiAJUFJJT19TVEFU U0VYVCwKIAlQUklPX1JVTEUsCiAJUFJJT19UUklHR0VSLApAQCAtMTIxLDYgKzEyMiw3IEBA IHN0YXRpYyBjb25zdCBpbnQgZGJPYmplY3RUeXBlUHJpb3JpdHlbXSA9CiAJW0RPX0FUVFJE RUZdID0gUFJJT19BVFRSREVGLAogCVtET19JTkRFWF0gPSBQUklPX0lOREVYLAogCVtET19J TkRFWF9BVFRBQ0hdID0gUFJJT19JTkRFWF9BVFRBQ0gsCisJW0RPX1BFUklPRF0gPSBQUklP X1BFUklPRCwKIAlbRE9fU1RBVFNFWFRdID0gUFJJT19TVEFUU0VYVCwKIAlbRE9fUlVMRV0g PSBQUklPX1JVTEUsCiAJW0RPX1RSSUdHRVJdID0gUFJJT19UUklHR0VSLApAQCAtMTM3MSw2 ICsxMzczLDExIEBAIGRlc2NyaWJlRHVtcGFibGVPYmplY3QoRHVtcGFibGVPYmplY3QgKm9i aiwgY2hhciAqYnVmLCBpbnQgYnVmc2l6ZSkKIAkJCQkJICJGSyBDT05TVFJBSU5UICVzICAo SUQgJWQgT0lEICV1KSIsCiAJCQkJCSBvYmotPm5hbWUsIG9iai0+ZHVtcElkLCBvYmotPmNh dElkLm9pZCk7CiAJCQlyZXR1cm47CisJCWNhc2UgRE9fUEVSSU9EOgorCQkJc25wcmludGYo YnVmLCBidWZzaXplLAorCQkJCQkgIlBFUklPRCAlcyAgKElEICVkIE9JRCAldSkiLAorCQkJ CQkgb2JqLT5uYW1lLCBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOworCQkJcmV0dXJu OwogCQljYXNlIERPX1BST0NMQU5HOgogCQkJc25wcmludGYoYnVmLCBidWZzaXplLAogCQkJ CQkgIlBST0NFRFVSQUwgTEFOR1VBR0UgJXMgIChJRCAlZCBPSUQgJXUpIiwKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMK aW5kZXggOTBiMmVkYjU1MmYuLmIxZmI5NTJhNDE2IDEwMDY0NAotLS0gYS9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMTk0Nyw2 ICsxOTQ3LDggQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1h bmFtZSwKIAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbkZST00gcGdfY2F0YWxv Zy5wZ19hdHRyaWJ1dGUgYSIpOwogCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICJcbldIRVJF IGEuYXR0cmVsaWQgPSAnJXMnIEFORCBhLmF0dG51bSA+IDAgQU5EIE5PVCBhLmF0dGlzZHJv cHBlZCIsIG9pZCk7CisJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTgwMDAwKQorCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLCAiXG5BTkQgTk9UIEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBwZ19j YXRhbG9nLnBnX3BlcmlvZCBwIFdIRVJFIHAucGVycmVsaWQgPSBhLmF0dHJlbGlkIEFORCBw LnBlcnJhbmdlID0gYS5hdHRudW0pIik7CiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1Ziwg IlxuT1JERVIgQlkgYS5hdHRudW07Iik7CiAKIAlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7 CkBAIC0yMzY5LDYgKzIzNzEsNDAgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3Qg Y2hhciAqc2NoZW1hbmFtZSwKIAkJUEdyZXN1bHQgICAqcmVzdWx0ID0gTlVMTDsKIAkJaW50 CQkJdHVwbGVzID0gMDsKIAorCQkvKiBwcmludCBwZXJpb2RzICovCisJCWlmIChwc2V0LnN2 ZXJzaW9uID49IDE4MDAwMCkKKwkJeworCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJ CQkJCQkgICJTRUxFQ1QgcXVvdGVfaWRlbnQocC5wZXJuYW1lKSwgcXVvdGVfaWRlbnQocy5h dHRuYW1lKSBBUyBzdGFydGF0dCwgcXVvdGVfaWRlbnQoZS5hdHRuYW1lKSBBUyBlbmRhdHRc biIKKwkJCQkJCQkgICJGUk9NIHBnX3BlcmlvZCBBUyBwXG4iCisJCQkJCQkJICAiSk9JTiBw Z19hdHRyaWJ1dGUgQVMgcyBPTiAocy5hdHRyZWxpZCwgcy5hdHRudW0pID0gKHAucGVycmVs aWQsIHAucGVyc3RhcnQpXG4iCisJCQkJCQkJICAiSk9JTiBwZ19hdHRyaWJ1dGUgQVMgZSBP TiAoZS5hdHRyZWxpZCwgZS5hdHRudW0pID0gKHAucGVycmVsaWQsIHAucGVyZW5kKVxuIgor CQkJCQkJCSAgIldIRVJFIHAucGVycmVsaWQgPSAnJXMnXG4iCisJCQkJCQkJICAiT1JERVIg QlkgMTsiLAorCQkJCQkJCSAgb2lkKTsKKwkJCXJlc3VsdCA9IFBTUUxleGVjKGJ1Zi5kYXRh KTsKKwkJCWlmICghcmVzdWx0KQorCQkJCWdvdG8gZXJyb3JfcmV0dXJuOworCQkJZWxzZQor CQkJCXR1cGxlcyA9IFBRbnR1cGxlcyhyZXN1bHQpOworCisJCQlpZiAodHVwbGVzID4gMCkK KwkJCXsKKwkJCQlwcmludFRhYmxlQWRkRm9vdGVyKCZjb250LCBfKCJQZXJpb2RzOiIpKTsK KwkJCQlmb3IgKGkgPSAwOyBpIDwgdHVwbGVzOyBpKyspCisJCQkJeworCQkJCQkvKiB1bnRy YW5zbGF0ZWQgY29uc3RyYWludCBuYW1lIGFuZCBkZWYgKi8KKwkJCQkJcHJpbnRmUFFFeHBC dWZmZXIoJmJ1ZiwgIiAgICAlcyAoJXMsICVzKSIsCisJCQkJCQkJCQkgIFBRZ2V0dmFsdWUo cmVzdWx0LCBpLCAwKSwKKwkJCQkJCQkJCSAgUFFnZXR2YWx1ZShyZXN1bHQsIGksIDEpLAor CQkJCQkJCQkJICBQUWdldHZhbHVlKHJlc3VsdCwgaSwgMikpOworCisJCQkJCXByaW50VGFi bGVBZGRGb290ZXIoJmNvbnQsIGJ1Zi5kYXRhKTsKKwkJCQl9CisJCQl9CisJCQlQUWNsZWFy KHJlc3VsdCk7CisJCX0KKwogCQkvKiBwcmludCBpbmRleGVzICovCiAJCWlmICh0YWJsZWlu Zm8uaGFzaW5kZXgpCiAJCXsKQEAgLTIzODMsNyArMjQxOSw3IEBAIGRlc2NyaWJlT25lVGFi bGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQllbHNlCiAJCQkJYXBwZW5k UFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiwgZmFsc2UgQVMgaW5kaXNyZXBsaWRlbnQiKTsKIAkJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsIGMyLnJlbHRhYmxlc3BhY2UiKTsKLQkJ CWlmIChwc2V0LnN2ZXJzaW9uID49IDE3MDAwMCkKKwkJCWlmIChwc2V0LnN2ZXJzaW9uID49 IDE4MDAwMCkKIAkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLCBjb24uY29ucGVy aW9kIik7CiAJCQllbHNlCiAJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiwgZmFs c2UgQVMgY29ucGVyaW9kIik7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL01h a2VmaWxlIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQppbmRleCAxNjdmOTFhNmUz Zi4uNjJiYjRmYzYzZmIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZp bGUKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQpAQCAtNjUsNiArNjUsNyBA QCBDQVRBTE9HX0hFQURFUlMgOj0gXAogCXBnX2ZvcmVpZ25fc2VydmVyLmggXAogCXBnX3Vz ZXJfbWFwcGluZy5oIFwKIAlwZ19mb3JlaWduX3RhYmxlLmggXAorCXBnX3BlcmlvZC5oIFwK IAlwZ19wb2xpY3kuaCBcCiAJcGdfcmVwbGljYXRpb25fb3JpZ2luLmggXAogCXBnX2RlZmF1 bHRfYWNsLmggXApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9oZWFwLmggYi9z cmMvaW5jbHVkZS9jYXRhbG9nL2hlYXAuaAppbmRleCBjNTEyODI0Y2QxYy4uMDU0MTgyMWFh NDMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvaGVhcC5oCisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvaGVhcC5oCkBAIC0xMTcsNiArMTE3LDEwIEBAIGV4dGVybiBMaXN0 ICpBZGRSZWxhdGlvbk5ld0NvbnN0cmFpbnRzKFJlbGF0aW9uIHJlbCwKIGV4dGVybiB2b2lk IFJlbGF0aW9uQ2xlYXJNaXNzaW5nKFJlbGF0aW9uIHJlbCk7CiBleHRlcm4gdm9pZCBTZXRB dHRyTWlzc2luZyhPaWQgcmVsaWQsIGNoYXIgKmF0dG5hbWUsIGNoYXIgKnZhbHVlKTsKIAor ZXh0ZXJuIE9pZCBTdG9yZVBlcmlvZChSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKnBlcmlv ZCwKKwkJCQkJICAgQXR0ck51bWJlciBzdGFydG51bSwgQXR0ck51bWJlciBlbmRudW0sCisJ CQkJCSAgIEF0dHJOdW1iZXIgcmFuZ2VudW0sIE9pZCBjb25vaWQpOworCiBleHRlcm4gTm9k ZSAqY29va0RlZmF1bHQoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJIE5vZGUgKnJhd19k ZWZhdWx0LAogCQkJCQkJIE9pZCBhdHR0eXBpZCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvbWVzb24uYnVpbGQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxk CmluZGV4IGY3MGQxZGFiYTUyLi5kNDVhYTVmYTg2MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29u LmJ1aWxkCkBAIC02MSw2ICs2MSw3IEBAIGNhdGFsb2dfaGVhZGVycyA9IFsKICAgJ3BnX2Nv bGxhdGlvbi5oJywKICAgJ3BnX3BhcmFtZXRlcl9hY2wuaCcsCiAgICdwZ19wYXJ0aXRpb25l ZF90YWJsZS5oJywKKyAgJ3BnX3BlcmlvZC5oJywKICAgJ3BnX3JhbmdlLmgnLAogICAncGdf dHJhbnNmb3JtLmgnLAogICAncGdfc2VxdWVuY2UuaCcsCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2luZGV4LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2luZGV4 LmgKaW5kZXggMzQ2MjU3MmViNTUuLjBhM2M4MTExYjY3IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2luZGV4LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19p bmRleC5oCkBAIC00OCw3ICs0OCw2IEBAIENBVEFMT0cocGdfaW5kZXgsMjYxMCxJbmRleFJl bGF0aW9uSWQpIEJLSV9TQ0hFTUFfTUFDUk8KIAkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRz IHN0YXJ0IGhlcmUsIGJ1dCB3ZSBhbGxvdyBkaXJlY3QgYWNjZXNzIHRvIGluZGtleSAqLwog CWludDJ2ZWN0b3IJaW5ka2V5IEJLSV9GT1JDRV9OT1RfTlVMTDsJLyogY29sdW1uIG51bWJl cnMgb2YgaW5kZXhlZCBjb2xzLAogCQkJCQkJCQkJCQkgKiBvciAwICovCi0KICNpZmRlZiBD QVRBTE9HX1ZBUkxFTgogCW9pZHZlY3RvcglpbmRjb2xsYXRpb24gQktJX0xPT0tVUF9PUFQo cGdfY29sbGF0aW9uKSBCS0lfRk9SQ0VfTk9UX05VTEw7CS8qIGNvbGxhdGlvbiBpZGVudGlm aWVycyAqLwogCW9pZHZlY3RvcglpbmRjbGFzcyBCS0lfTE9PS1VQKHBnX29wY2xhc3MpIEJL SV9GT1JDRV9OT1RfTlVMTDsgLyogb3BjbGFzcyBpZGVudGlmaWVycyAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wZXJpb2QuaCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcGVyaW9kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjI1MDhjZDQ1YTA5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wZXJpb2QuaApAQCAtMCwwICsxLDU4IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq CisgKiBwZ19wZXJpb2QuaAorICoJICBkZWZpbml0aW9uIG9mIHRoZSAicGVyaW9kIiBzeXN0 ZW0gY2F0YWxvZyAocGdfcGVyaW9kKQorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDE5OTYtMjAyMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAq CisgKiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3BlcmlvZC5oCisgKgorICogTk9URVMKKyAq CSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBz Y2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KKyNpZm5kZWYgUEdfUEVSSU9EX0gKKyNkZWZpbmUgUEdfUEVSSU9EX0gKKworI2luY2x1 ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wZXJpb2RfZC5o IgorI2luY2x1ZGUgIm5vZGVzL2JpdG1hcHNldC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0t CisgKgkJcGdfcGVyaW9kIGRlZmluaXRpb24uICBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJ dHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfcGVyaW9kCisgKiAtLS0tLS0tLS0tLS0tLS0t CisgKi8KK0NBVEFMT0cocGdfcGVyaW9kLDgwMDAsUGVyaW9kUmVsYXRpb25JZCkKK3sKKwlP aWQJCQlvaWQ7CQkJLyogT0lEIG9mIHRoZSBwZXJpb2QgKi8KKwlOYW1lRGF0YQlwZXJuYW1l OwkJLyogbmFtZSBvZiBwZXJpb2QgKi8KKwlPaWQJCQlwZXJyZWxpZDsJCS8qIE9JRCBvZiBy ZWxhdGlvbiBjb250YWluaW5nIHRoaXMgcGVyaW9kICovCisJaW50MTYJCXBlcnN0YXJ0OwkJ LyogY29sdW1uIGZvciBzdGFydCB2YWx1ZSAqLworCWludDE2CQlwZXJlbmQ7CQkJLyogY29s dW1uIGZvciBlbmQgdmFsdWUgKi8KKwlpbnQxNgkJcGVycmFuZ2U7CQkvKiBjb2x1bW4gZm9y IHJhbmdlIHZhbHVlICovCisJT2lkCQkJcGVyY29uc3RyYWludDsJLyogT0lEIG9mIChzdGFy dCA8IGVuZCkgY29uc3RyYWludCAqLworfSBGb3JtRGF0YV9wZ19wZXJpb2Q7CisKKy8qIC0t LS0tLS0tLS0tLS0tLS0KKyAqCQlGb3JtX3BnX3BlcmlvZCBjb3JyZXNwb25kcyB0byBhIHBv aW50ZXIgdG8gYSB0dXBsZSB3aXRoCisgKgkJdGhlIGZvcm1hdCBvZiBwZ19wZXJpb2QgcmVs YXRpb24uCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgRm9ybURhdGFfcGdf cGVyaW9kICpGb3JtX3BnX3BlcmlvZDsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShw Z19wZXJpb2Rfb2lkX2luZGV4LCA4MDAxLCBQZXJpb2RPYmplY3RJbmRleElkLCBwZ19wZXJp b2QsIGJ0cmVlKG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19wZXJp b2RfcGVycmVsaWRfcGVybmFtZV9pbmRleCwgODAwMiwgUGVyaW9kUmVsaWROYW1lSW5kZXhJ ZCwgcGdfcGVyaW9kLCBidHJlZShwZXJyZWxpZCBvaWRfb3BzLCBwZXJuYW1lIG5hbWVfb3Bz KSk7CisKK01BS0VfU1lTQ0FDSEUoUEVSSU9ET0lELCBwZ19wZXJpb2Rfb2lkX2luZGV4LCAz Mik7CitNQUtFX1NZU0NBQ0hFKFBFUklPRE5BTUUsIHBnX3BlcmlvZF9wZXJyZWxpZF9wZXJu YW1lX2luZGV4LCAzMik7CisKK2V4dGVybiB2b2lkIFJlbW92ZVBlcmlvZEJ5SWQoT2lkIHBl cmlvZElkKTsKKworZXh0ZXJuIE9pZCBnZXRfcmVsYXRpb25fcGVyaW9kX29pZChPaWQgcmVs aWQsIGNvbnN0IGNoYXIgKnBlcm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CitleHRlcm4gQml0 bWFwc2V0ICpnZXRfcGVyaW9kX2F0dG5vcyhPaWQgcmVsaWQpOworCisjZW5kaWYJCQkJCQkJ LyogUEdfUEVSSU9EX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cmFuZ2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcmFuZ2UuaAppbmRleCAwYmQzYWI2 ODhiZC4uMTBhOTRkZDExZjEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cmFuZ2UuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3JhbmdlLmgKQEAgLTU5LDgg KzU5LDEwIEBAIHR5cGVkZWYgRm9ybURhdGFfcGdfcmFuZ2UgKkZvcm1fcGdfcmFuZ2U7CiAK IERFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVkocGdfcmFuZ2Vfcm5ndHlwaWRfaW5kZXgsIDM1 NDIsIFJhbmdlVHlwaWRJbmRleElkLCBwZ19yYW5nZSwgYnRyZWUocm5ndHlwaWQgb2lkX29w cykpOwogREVDTEFSRV9VTklRVUVfSU5ERVgocGdfcmFuZ2Vfcm5nbXVsdGl0eXBpZF9pbmRl eCwgMjIyOCwgUmFuZ2VNdWx0aXJhbmdlVHlwaWRJbmRleElkLCBwZ19yYW5nZSwgYnRyZWUo cm5nbXVsdGl0eXBpZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19yYW5n ZV9ybmdzdWJ0eXBlX3JuZ3R5cGlkX2luZGV4LCA4MDAzLCBSYW5nZVN1YlR5cGlkVHlwaWRJ bmRleElkLCBwZ19yYW5nZSwgYnRyZWUocm5nc3VidHlwZSBvaWRfb3BzLCBybmd0eXBpZCBv aWRfb3BzKSk7CiAKIE1BS0VfU1lTQ0FDSEUoUkFOR0VUWVBFLCBwZ19yYW5nZV9ybmd0eXBp ZF9pbmRleCwgNCk7CitNQUtFX1NZU0NBQ0hFKFJBTkdFU1VCVFlQRSwgcGdfcmFuZ2Vfcm5n c3VidHlwZV9ybmd0eXBpZF9pbmRleCwgNCk7CiBNQUtFX1NZU0NBQ0hFKFJBTkdFTVVMVElS QU5HRSwgcGdfcmFuZ2Vfcm5nbXVsdGl0eXBpZF9pbmRleCwgNCk7CiAKIC8qCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaCBiL3NyYy9pbmNsdWRlL2Nv bW1hbmRzL3RhYmxlY21kcy5oCmluZGV4IDg1Y2JhZDNkMGMyLi42MjhmYTUzNzk2YyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmgKKysrIGIvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmgKQEAgLTQwLDcgKzQwLDggQEAgZXh0ZXJuIExP Q0tNT0RFIEFsdGVyVGFibGVHZXRMb2NrTGV2ZWwoTGlzdCAqY21kcyk7CiAKIGV4dGVybiB2 b2lkIEFURXhlY0NoYW5nZU93bmVyKE9pZCByZWxhdGlvbk9pZCwgT2lkIG5ld093bmVySWQs IGJvb2wgcmVjdXJzaW5nLCBMT0NLTU9ERSBsb2NrbW9kZSk7CiAKLWV4dGVybiB2b2lkIEFs dGVyVGFibGVJbnRlcm5hbChPaWQgcmVsaWQsIExpc3QgKmNtZHMsIGJvb2wgcmVjdXJzZSk7 CitleHRlcm4gdm9pZCBBbHRlclRhYmxlSW50ZXJuYWwoT2lkIHJlbGlkLCBMaXN0ICpjbWRz LCBib29sIHJlY3Vyc2UsCisJCQkJCQkJICAgc3RydWN0IEFsdGVyVGFibGVVdGlsaXR5Q29u dGV4dCAqY29udGV4dCk7CiAKIGV4dGVybiBPaWQJQWx0ZXJUYWJsZU1vdmVBbGwoQWx0ZXJU YWJsZU1vdmVBbGxTdG10ICpzdG10KTsKIApAQCAtMTA2LDUgKzEwNyw2IEBAIGV4dGVybiB2 b2lkIFJhbmdlVmFyQ2FsbGJhY2tPd25zUmVsYXRpb24oY29uc3QgUmFuZ2VWYXIgKnJlbGF0 aW9uLAogCQkJCQkJCQkJCSBPaWQgcmVsSWQsIE9pZCBvbGRSZWxJZCwgdm9pZCAqYXJnKTsK IGV4dGVybiBib29sIFBhcnRDb25zdHJhaW50SW1wbGllZEJ5UmVsQ29uc3RyYWludChSZWxh dGlvbiBzY2FucmVsLAogCQkJCQkJCQkJCQkJIExpc3QgKnBhcnRDb25zdHJhaW50KTsKK2V4 dGVybiBPaWQgY2hvb3NlX3JhbmdldHlwZV9mb3JfcGVyaW9kKFBlcmlvZERlZiAqcGVyaW9k KTsKIAogI2VuZGlmCQkJCQkJCS8qIFRBQkxFQ01EU19IICovCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKaW5kZXggY2M3YmZiMGYyOTQuLjQ2MDY4NzY1YjhjIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCkBAIC0yMzA2LDYgKzIzMDYsNyBAQCB0eXBlZGVmIGVudW0gT2JqZWN0VHlw ZQogCU9CSkVDVF9PUEVSQVRPUiwKIAlPQkpFQ1RfT1BGQU1JTFksCiAJT0JKRUNUX1BBUkFN RVRFUl9BQ0wsCisJT0JKRUNUX1BFUklPRCwKIAlPQkpFQ1RfUE9MSUNZLAogCU9CSkVDVF9Q Uk9DRURVUkUsCiAJT0JKRUNUX1BVQkxJQ0FUSU9OLApAQCAtMjM5NCw2ICsyMzk1LDggQEAg dHlwZWRlZiBlbnVtIEFsdGVyVGFibGVUeXBlCiAJQVRfVmFsaWRhdGVDb25zdHJhaW50LAkJ LyogdmFsaWRhdGUgY29uc3RyYWludCAqLwogCUFUX0FkZEluZGV4Q29uc3RyYWludCwJCS8q IGFkZCBjb25zdHJhaW50IHVzaW5nIGV4aXN0aW5nIGluZGV4ICovCiAJQVRfRHJvcENvbnN0 cmFpbnQsCQkJLyogZHJvcCBjb25zdHJhaW50ICovCisJQVRfQWRkUGVyaW9kLAkJCQkvKiBB REQgUEVSSU9EICovCisJQVRfRHJvcFBlcmlvZCwJCQkJLyogRFJPUCBQRVJJT0QgKi8KIAlB VF9SZUFkZENvbW1lbnQsCQkJLyogaW50ZXJuYWwgdG8gY29tbWFuZHMvdGFibGVjbWRzLmMg Ki8KIAlBVF9BbHRlckNvbHVtblR5cGUsCQkJLyogYWx0ZXIgY29sdW1uIHR5cGUgKi8KIAlB VF9BbHRlckNvbHVtbkdlbmVyaWNPcHRpb25zLAkvKiBhbHRlciBjb2x1bW4gT1BUSU9OUyAo Li4uKSAqLwpAQCAtMjY2MiwxMSArMjY2NSwxMSBAQCB0eXBlZGVmIHN0cnVjdCBWYXJpYWJs ZVNob3dTdG10CiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJQ3JlYXRlIFRhYmxl IFN0YXRlbWVudAogICoKLSAqIE5PVEU6IGluIHRoZSByYXcgZ3JhbS55IG91dHB1dCwgQ29s dW1uRGVmIGFuZCBDb25zdHJhaW50IG5vZGVzIGFyZQotICogaW50ZXJtaXhlZCBpbiB0YWJs ZUVsdHMsIGFuZCBjb25zdHJhaW50cyBpcyBOSUwuICBBZnRlciBwYXJzZSBhbmFseXNpcywK LSAqIHRhYmxlRWx0cyBjb250YWlucyBqdXN0IENvbHVtbkRlZnMsIGFuZCBjb25zdHJhaW50 cyBjb250YWlucyBqdXN0Ci0gKiBDb25zdHJhaW50IG5vZGVzIChpbiBmYWN0LCBvbmx5IENP TlNUUl9DSEVDSyBub2RlcywgaW4gdGhlIHByZXNlbnQKLSAqIGltcGxlbWVudGF0aW9uKS4K KyAqIE5PVEU6IGluIHRoZSByYXcgZ3JhbS55IG91dHB1dCwgQ29sdW1uRGVmLCBQZXJpb2RE ZWYsIGFuZCBDb25zdHJhaW50IG5vZGVzIGFyZQorICogaW50ZXJtaXhlZCBpbiB0YWJsZUVs dHM7IHBlcmlvZHMgYW5kIGNvbnN0cmFpbnRzIGFyZSBOSUwuICBBZnRlciBwYXJzZSBhbmFs eXNpcywKKyAqIHRhYmxlRWx0cyBjb250YWlucyBqdXN0IENvbHVtbkRlZnMsIHBlcmlvZHMg Y29udGFpbnMganVzdCBQZXJpb2REZWZzLCBhbmQKKyAqIGNvbnN0cmFpbnRzIGNvbnRhaW5z IGp1c3QgQ29uc3RyYWludCBub2RlcyAoaW4gZmFjdCwgb25seSBDT05TVFJfQ0hFQ0sgbm9k ZXMsCisgKiBpbiB0aGUgcHJlc2VudCBpbXBsZW1lbnRhdGlvbikuCiAgKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgKi8KIApAQCAtMjY3NSw2ICsyNjc4LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgQ3JlYXRlU3RtdAogCU5vZGVUYWcJCXR5cGU7CiAJUmFuZ2VWYXIgICAqcmVsYXRpb247 CQkvKiByZWxhdGlvbiB0byBjcmVhdGUgKi8KIAlMaXN0CSAgICp0YWJsZUVsdHM7CQkvKiBj b2x1bW4gZGVmaW5pdGlvbnMgKGxpc3Qgb2YgQ29sdW1uRGVmKSAqLworCUxpc3QJICAgKnBl cmlvZHM7CQkvKiBwZXJpb2RzIChsaXN0IG9mIFBlcmlvZERlZiBub2RlcykgKi8KIAlMaXN0 CSAgICppbmhSZWxhdGlvbnM7CS8qIHJlbGF0aW9ucyB0byBpbmhlcml0IGZyb20gKGxpc3Qg b2YKIAkJCQkJCQkJICogUmFuZ2VWYXIpICovCiAJUGFydGl0aW9uQm91bmRTcGVjICpwYXJ0 Ym91bmQ7CS8qIEZPUiBWQUxVRVMgY2xhdXNlICovCkBAIC0yNjg4LDYgKzI2OTIsMzEgQEAg dHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU3RtdAogCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGp1 c3QgZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cz8gKi8KIH0gQ3JlYXRlU3RtdDsK IAorCisvKiAtLS0tLS0tLS0tCisgKiBEZWZpbml0aW9ucyBmb3IgcGVyaW9kcyBpbiBDcmVh dGVTdG10CisgKiAtLS0tLS0tLS0tCisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgUGVyaW9kRGVm Cit7CisJTm9kZVRhZwkJdHlwZTsKKwlPaWQJCQlvaWQ7CQkJLyogcGVyaW9kIG9pZCwgb25j ZSBpdCdzIHRyYW5zZm9ybWVkICovCisJY2hhcgkgICAqcGVyaW9kbmFtZTsJCS8qIHBlcmlv ZCBuYW1lICovCisJY2hhcgkgICAqc3RhcnRjb2xuYW1lOwkvKiBuYW1lIG9mIHN0YXJ0IGNv bHVtbiAqLworCWNoYXIJICAgKmVuZGNvbG5hbWU7CQkvKiBuYW1lIG9mIGVuZCBjb2x1bW4g Ki8KKwlBdHRyTnVtYmVyCXN0YXJ0YXR0bnVtOwkvKiBhdHRudW0gb2YgdGhlIHN0YXJ0IGNv bHVtbiAqLworCUF0dHJOdW1iZXIJZW5kYXR0bnVtOwkJLyogYXR0bnVtIG9mIHRoZSBlbmQg Y29sdW1uICovCisJQXR0ck51bWJlcglybmdhdHRudW07CQkvKiBhdHRudW0gb2YgdGhlIEdF TkVSQVRFRCByYW5nZSBjb2x1bW4gKi8KKwlMaXN0CSAgICpvcHRpb25zOwkJLyogb3B0aW9u cyBmcm9tIFdJVEggY2xhdXNlICovCisJY2hhcgkgICAqY29uc3RyYWludG5hbWU7CS8qIG5h bWUgb2YgdGhlIENIRUNLIGNvbnN0cmFpbnQgKi8KKwljaGFyCSAgICpyYW5nZXR5cGVuYW1l OwkvKiBuYW1lIG9mIHRoZSByYW5nZSB0eXBlICovCisJT2lkCQkJY29sdHlwaWQ7CQkvKiB0 aGUgc3RhcnQvZW5kIGNvbCB0eXBlICovCisJT2lkCQkJcm5ndHlwaWQ7CQkvKiB0aGUgcmFu Z2UgdHlwZSB0byB1c2UgKi8KKwlib29sCQljb2xleGlzdHM7CQkvKiB1c2UgYW4gZXhpc3Rp bmcgR0VORVJBVEVEIGNvbHVtbiAqLworCWludAkJCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9j YXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KK30gUGVyaW9kRGVmOworCiAvKiAtLS0tLS0t LS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgY29uc3RyYWludHMgaW4gQ3JlYXRlU3RtdAogICoK QEAgLTMzODMsNiArMzQxMiw3IEBAIHR5cGVkZWYgc3RydWN0IEluZGV4U3RtdAogCUxpc3QJ ICAgKmluZGV4UGFyYW1zOwkvKiBjb2x1bW5zIHRvIGluZGV4OiBhIGxpc3Qgb2YgSW5kZXhF bGVtICovCiAJTGlzdAkgICAqaW5kZXhJbmNsdWRpbmdQYXJhbXM7CS8qIGFkZGl0aW9uYWwg Y29sdW1ucyB0byBpbmRleDogYSBsaXN0CiAJCQkJCQkJCQkJICogb2YgSW5kZXhFbGVtICov CisJUGVyaW9kRGVmICAqcGVyaW9kOwkJCS8qIFRoZSBwZXJpb2QgaW5jbHVkZWQgaW4gdGhl IGluZGV4ICovCiAJTGlzdAkgICAqb3B0aW9uczsJCS8qIFdJVEggY2xhdXNlIG9wdGlvbnM6 IGEgbGlzdCBvZiBEZWZFbGVtICovCiAJTm9kZQkgICAqd2hlcmVDbGF1c2U7CS8qIHF1YWxp ZmljYXRpb24gKHBhcnRpYWwtaW5kZXggcHJlZGljYXRlKSAqLwogCUxpc3QJICAgKmV4Y2x1 ZGVPcE5hbWVzOyAvKiBleGNsdXNpb24gb3BlcmF0b3IgbmFtZXMsIG9yIE5JTCBpZiBub25l ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9p bmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDAxYTEwMWQzNzc2Li43MTljZDY0YTk0 NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTIzNTAsNiArMjM1MCw4IEBAIHR5cGVk ZWYgc3RydWN0IEZvclBvcnRpb25PZkV4cHIKIHsKIAlOb2RlVGFnCQl0eXBlOwogCVZhcgkJ ICAgKnJhbmdlVmFyOwkJCS8qIFJhbmdlIGNvbHVtbiAqLworCVZhcgkJICAgKnN0YXJ0VmFy OwkJCS8qIFN0YXJ0IGNvbHVtbiBpZiBQRVJJT0QgKi8KKwlWYXIJCSAgICplbmRWYXI7CQkJ CS8qIEVuZCBjb2x1bW4gaWYgUEVSSU9EICovCiAJY2hhcgkgICAqcmFuZ2VfbmFtZTsJCQkv KiBSYW5nZSBuYW1lICovCiAJTm9kZQkgICAqdGFyZ2V0UmFuZ2U7CQkvKiBGT1IgUE9SVElP TiBPRiBib3VuZHMgYXMgYSByYW5nZSAqLwogCU9pZAkJCXJhbmdlVHlwZTsJCQkvKiB0eXBl IG9mIHRhcmdldFJhbmdlICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3ds aXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggMzM5ZjA5NGE4MGQu LjdhZmY0ZjhkYmE0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgK KysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC0zMzksNyArMzM5LDcgQEAg UEdfS0VZV09SRCgicGFydGl0aW9ucyIsIFBBUlRJVElPTlMsIFVOUkVTRVJWRURfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhc3NpbmciLCBQQVNTSU5HLCBVTlJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXNzd29yZCIsIFBBU1NX T1JELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXRo IiwgUEFUSCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQotUEdfS0VZV09SRCgi cGVyaW9kIiwgUEVSSU9ELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19L RVlXT1JEKCJwZXJpb2QiLCBQRVJJT0QsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJwbGFjaW5nIiwgUExBQ0lORywgUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKIFBHX0tFWVdPUkQoInBsYW4iLCBQTEFOLCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwbGFucyIsIFBMQU5TLCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2VfdXRpbGNtZC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3V0aWxjbWQuaAppbmRl eCAxNDA2NTg5NDc3OS4uZDg0ZDAyYjAyODAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV91dGlsY21kLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3V0 aWxjbWQuaApAQCAtNDAsNSArNDAsNiBAQCBleHRlcm4gSW5kZXhTdG10ICpnZW5lcmF0ZUNs b25lZEluZGV4U3RtdChSYW5nZVZhciAqaGVhcFJlbCwKIAkJCQkJCQkJCQkgIFJlbGF0aW9u IHNvdXJjZV9pZHgsCiAJCQkJCQkJCQkJICBjb25zdCBzdHJ1Y3QgQXR0ck1hcCAqYXR0bWFw LAogCQkJCQkJCQkJCSAgT2lkICpjb25zdHJhaW50T2lkKTsKK2V4dGVybiB2b2lkIHRyYW5z Zm9ybVBlcmlvZE9wdGlvbnMoUGVyaW9kRGVmICpwZXJpb2QpOwogCiAjZW5kaWYJCQkJCQkJ LyogUEFSU0VfVVRJTENNRF9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9s c3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4IGU3YWQ1 MTMxNDZhLi5hY2IwNjQ5MzY0ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5 c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAgLTk1LDYg Kzk1LDggQEAgZXh0ZXJuIE9pZAlnZXRfYXR0dHlwZShPaWQgcmVsaWQsIEF0dHJOdW1iZXIg YXR0bnVtKTsKIGV4dGVybiB2b2lkIGdldF9hdHR0eXBldHlwbW9kY29sbChPaWQgcmVsaWQs IEF0dHJOdW1iZXIgYXR0bnVtLAogCQkJCQkJCQkgIE9pZCAqdHlwaWQsIGludDMyICp0eXBt b2QsIE9pZCAqY29sbGlkKTsKIGV4dGVybiBEYXR1bSBnZXRfYXR0b3B0aW9ucyhPaWQgcmVs aWQsIGludDE2IGF0dG51bSk7CitleHRlcm4gY2hhciAqZ2V0X3BlcmlvZG5hbWUoT2lkIHBl cmlvZGlkLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIE9pZAlnZXRfcGVyaW9kX29pZChP aWQgcmVsaWQsIGNvbnN0IGNoYXIgKnBlcmlvZG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBl eHRlcm4gT2lkCWdldF9jYXN0X29pZChPaWQgc291cmNldHlwZWlkLCBPaWQgdGFyZ2V0dHlw ZWlkLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIGNoYXIgKmdldF9jb2xsYXRpb25fbmFt ZShPaWQgY29sbG9pZCk7CiBleHRlcm4gYm9vbCBnZXRfY29sbGF0aW9uX2lzZGV0ZXJtaW5p c3RpYyhPaWQgY29sbG9pZCk7CkBAIC0xOTksNiArMjAxLDcgQEAgZXh0ZXJuIE9pZAlnZXRf cmFuZ2Vfc3VidHlwZShPaWQgcmFuZ2VPaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmFuZ2VfY29s bGF0aW9uKE9pZCByYW5nZU9pZCk7CiBleHRlcm4gT2lkCWdldF9yYW5nZV9tdWx0aXJhbmdl KE9pZCByYW5nZU9pZCk7CiBleHRlcm4gT2lkCWdldF9tdWx0aXJhbmdlX3JhbmdlKE9pZCBt dWx0aXJhbmdlT2lkKTsKK2V4dGVybiBPaWQJZ2V0X3N1YnR5cGVfcmFuZ2UoT2lkIHN1YnR5 cGVPaWQpOwogZXh0ZXJuIE9pZAlnZXRfaW5kZXhfY29sdW1uX29wY2xhc3MoT2lkIGluZGV4 X29pZCwgaW50IGF0dG5vKTsKIGV4dGVybiBib29sIGdldF9pbmRleF9pc3JlcGxpZGVudChP aWQgaW5kZXhfb2lkKTsKIGV4dGVybiBib29sIGdldF9pbmRleF9pc3ZhbGlkKE9pZCBpbmRl eF9vaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvcGVyaW9kLmggYi9zcmMv aW5jbHVkZS91dGlscy9wZXJpb2QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uZDAyYzE3MDM2ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS91 dGlscy9wZXJpb2QuaApAQCAtMCwwICsxLDIxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqCisgKiBwZXJpb2QuaAorICoJICBzdXBwb3J0IGZvciBQb3N0Z3JlcyBwZXJpb2RzLgor ICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICog c3JjL2luY2x1ZGUvdXRpbHMvcGVyaW9kLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLworI2lmbmRlZiBQRVJJT0RfSAorI2RlZmluZSBQRVJJT0RfSAorCisjaW5jbHVkZSAi ZXhlY3V0b3IvdHVwdGFibGUuaCIKKworZXh0ZXJuIERhdHVtIHBlcmlvZF90b19yYW5nZShU dXBsZVRhYmxlU2xvdCAqc2xvdCwgaW50IHN0YXJ0YXR0bm8sIGludCBlbmRhdHRubywgT2lk IHJhbmdldHlwZSk7CisKKyNlbmRpZgkJCQkJCQkvKiBQRVJJT0RfSCAqLwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2RkbF9kZXBhcnNlL3Rlc3RfZGRsX2RlcGFyc2Uu YyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9kZGxfZGVwYXJzZS90ZXN0X2RkbF9kZXBhcnNl LmMKaW5kZXggNjdmZjJiNjM2NzUuLmE2ZmQ5ODRkYzc4IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9tb2R1bGVzL3Rlc3RfZGRsX2RlcGFyc2UvdGVzdF9kZGxfZGVwYXJzZS5jCisrKyBiL3Ny Yy90ZXN0L21vZHVsZXMvdGVzdF9kZGxfZGVwYXJzZS90ZXN0X2RkbF9kZXBhcnNlLmMKQEAg LTE4Myw2ICsxODMsMTIgQEAgZ2V0X2FsdGVydGFibGVfc3ViY21kaW5mbyhQR19GVU5DVElP Tl9BUkdTKQogCQkJY2FzZSBBVF9Ecm9wQ29uc3RyYWludDoKIAkJCQlzdHJ0eXBlID0gIkRS T1AgQ09OU1RSQUlOVCI7CiAJCQkJYnJlYWs7CisJCQljYXNlIEFUX0FkZFBlcmlvZDoKKwkJ CQlzdHJ0eXBlID0gIkFERCBQRVJJT0QiOworCQkJCWJyZWFrOworCQkJY2FzZSBBVF9Ecm9w UGVyaW9kOgorCQkJCXN0cnR5cGUgPSAiRFJPUCBQRVJJT0QiOworCQkJCWJyZWFrOwogCQkJ Y2FzZSBBVF9SZUFkZENvbW1lbnQ6CiAJCQkJc3RydHlwZSA9ICIocmUpIEFERCBDT01NRU5U IjsKIAkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Zm9yX3BvcnRpb25fb2Yub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9y dGlvbl9vZi5vdXQKaW5kZXggNWMwYTVjZjRiMWIuLmViYzQzZjU1ZjMyIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dApAQCAtNTMyLDYg KzUzMiw0NCBAQCBTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKICBbMyw0KSB8IHtbMDEtMDEtMjAxOCwpfSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0aHJlZQog KDYgcm93cykKIAorRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKKy0tIFRlc3Qg d2l0aCBQRVJJT0RzCitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIgKAorICBp ZCBpbnQ0cmFuZ2UgTk9UIE5VTEwsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGls IGRhdGUsCisgIG5hbWUgdGV4dCBOT1QgTlVMTCwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5UIGZvcl9wb3J0aW9uX29mX3Rl c3QyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7 CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0MgorVkFMVUVTCisoJ1sxLDIpJywg JzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycsICdvbmUnKSwKKygnWzEsMiknLCAnMjAxOC0w Mi0wNCcsICcyMDE4LTAzLTAzJywgJ29uZScpLAorKCdbMSwyKScsICcyMDE4LTAzLTAzJywg JzIwMTgtMDQtMDQnLCAnb25lJyksCisoJ1syLDMpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0w NS0wMScsICd0d28nKSwKKygnWzMsNCknLCAnMjAxOC0wMS0wMScsIG51bGwsICd0aHJlZScp OworOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE4LTAxLTEwJyBUTyAnMjAxOC0wMi0xMCcKK1NFVCBuYW1lID0gJ29u ZV4xJworV0hFUkUgaWQgPSAnWzEsMiknOworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2Zf dGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMTUnIFRPICcy MDE4LTAyLTE1JworV0hFUkUgaWQgPSAnWzIsMyknOworU0VMRUNUICogRlJPTSBmb3JfcG9y dGlvbl9vZl90ZXN0MiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9m cm9tIHwgdmFsaWRfdGlsICB8IG5hbWUgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0KKyBbMSwyKSB8IDAxLTAyLTIwMTggfCAwMS0xMC0yMDE4IHwgb25l CisgWzEsMikgfCAwMS0xMC0yMDE4IHwgMDItMDMtMjAxOCB8IG9uZV4xCisgWzEsMikgfCAw Mi0wNC0yMDE4IHwgMDItMTAtMjAxOCB8IG9uZV4xCisgWzEsMikgfCAwMi0xMC0yMDE4IHwg MDMtMDMtMjAxOCB8IG9uZQorIFsxLDIpIHwgMDMtMDMtMjAxOCB8IDA0LTA0LTIwMTggfCBv bmUKKyBbMiwzKSB8IDAxLTAxLTIwMTggfCAwMS0xNS0yMDE4IHwgdHdvCisgWzIsMykgfCAw Mi0xNS0yMDE4IHwgMDUtMDEtMjAxOCB8IHR3bworIFszLDQpIHwgMDEtMDEtMjAxOCB8ICAg ICAgICAgICAgfCB0aHJlZQorKDggcm93cykKKwogRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9v Zl90ZXN0MjsKIC0tIFRlc3Qgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlCiBDUkVBVEUgVFlQ RSBteWRhdGVyYW5nZSBBUyByYW5nZShzdWJ0eXBlPWRhdGUpOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWQub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9nZW5lcmF0ZWQub3V0CmluZGV4IDQ0MDU4ZGI3YzFkLi4wY2Y4YTNhNWM4 MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWQub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkLm91dApAQCAtMTks NyArMTksOSBAQCBTRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGRlcGVuZGVudF9j b2x1bW4gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1uXwogIHRhYmxlX25hbWUgfCBj b2x1bW5fbmFtZSB8IGRlcGVuZGVudF9jb2x1bW4gCiAtLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KICBndGVzdDEgICAgIHwgYSAgICAgICAgICAgfCBi Ci0oMSByb3cpCisgcHQgICAgICAgICB8IGRlICAgICAgICAgIHwgcAorIHB0ICAgICAgICAg fCBkcyAgICAgICAgICB8IHAKKygzIHJvd3MpCiAKIFxkIGd0ZXN0MQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMuZ3Rlc3QxIgpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wZXJpb2RzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcGVyaW9kcy5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLmVmZDNhODQ2YWI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wZXJpb2RzLm91dApAQCAtMCwwICsxLDI2NyBAQAorLyogU3lzdGVtIHBl cmlvZHMgYXJlIG5vdCBpbXBsZW1lbnRlZCAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRl Z2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHN5c3RlbV90aW1lIChkcywgZGUp KTsKK0VSUk9SOiAgUEVSSU9EIEZPUiBTWVNURU1fVElNRSBpcyBub3Qgc3VwcG9ydGVkCitM SU5FIDI6IGNyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwg cGVyaW9kIGZvciBzeS4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KKy8qIFBlcmlvZHMgbXVzdCBzcGVjaWZ5IGFjdHVhbCBj b2x1bW5zICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRh dGUsIHBlcmlvZCBmb3IgcCAoYm9ndXMsIGRlKSk7CitFUlJPUjogIGNvbHVtbiAiYm9ndXMi IG9mIHJlbGF0aW9uICJwdCIgZG9lcyBub3QgZXhpc3QKK2NyZWF0ZSB0YWJsZSBwdCAoaWQg aW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgYm9ndXMpKTsK K0VSUk9SOiAgY29sdW1uICJib2d1cyIgb2YgcmVsYXRpb24gInB0IiBkb2VzIG5vdCBleGlz dAorLyogRGF0YSB0eXBlcyBtdXN0IG1hdGNoIGV4YWN0bHkgKi8KK2NyZWF0ZSB0YWJsZSBw dCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgdGltZXN0YW1wLCBwZXJpb2QgZm9yIHAgKGRz LCBkZSkpOworRVJST1I6ICBzdGFydCBhbmQgZW5kIGNvbHVtbnMgb2YgcGVyaW9kIG11c3Qg YmUgb2Ygc2FtZSB0eXBlCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIHRleHQg Y29sbGF0ZSAiQyIsIGRlIHRleHQgY29sbGF0ZSAiUE9TSVgiLCBwZXJpb2QgZm9yIHAgKGRz LCBkZSkpOworRVJST1I6ICBzdGFydCBhbmQgZW5kIGNvbHVtbnMgb2YgcGVyaW9kIG11c3Qg aGF2ZSBzYW1lIGNvbGxhdGlvbgorLyogUGVyaW9kcyBtdXN0IGhhdmUgYSBkZWZhdWx0IEJU cmVlIG9wZXJhdG9yIGNsYXNzICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRz IHhtbCwgZGUgeG1sLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworRVJST1I6ICBubyByYW5n ZSB0eXBlIGZvciB4bWwgZm91bmQgZm9yIHBlcmlvZCBwCitISU5UOiAgWW91IGNhbiBkZWZp bmUgYSBjdXN0b20gcmFuZ2UgdHlwZSB3aXRoIENSRUFURSBUWVBFCisvKiBQZXJpb2QgYW5k IGNvbHVtbiBuYW1lcyBhcmUgaW4gdGhlIHNhbWUgbmFtZXNwYWNlICovCitjcmVhdGUgdGFi bGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgY3RpZCAo ZHMsIGRlKSk7CitFUlJPUjogIHBlcmlvZCBuYW1lICJjdGlkIiBjb25mbGljdHMgd2l0aCBh IHN5c3RlbSBjb2x1bW4gbmFtZQorY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBk YXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIGlkIChkcywgZGUpKTsKK0VSUk9SOiAgcGVyaW9k IG5hbWUgImlkIiBjb25mbGljdHMgd2l0aCBhIGNvbHVtbiBuYW1lCisvKiBQZXJpb2QgbmFt ZSBjYW4ndCBiZSBnaXZlbiBtb3JlIHRoYW4gb25jZSAqLworY3JlYXRlIHRhYmxlIHB0IChp ZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSksIHBl cmlvZCBmb3IgcCAoZHMsIGRlKSk7CitFUlJPUjogIHBlcmlvZCBuYW1lICJwIiBzcGVjaWZp ZWQgbW9yZSB0aGFuIG9uY2UKKy8qIE5vdyBtYWtlIG9uZSB0aGF0IHdvcmtzICovCitjcmVh dGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3Ig cCAoZHMsIGRlKSk7CisvKiBTRUxFQ1QgKiBleGNsdWRlcyB0aGUgUEVSSU9EICovCitpbnNl cnQgaW50byBwdCB2YWx1ZXMgKDEsICcyMDAwLTAxLTAxJywgJzIwMDEtMDEtMDEnKTsKK3Nl bGVjdCAqIGZyb20gcHQ7CisgaWQgfCAgICAgZHMgICAgIHwgICAgIGRlICAgICAKKy0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAxIHwgMDEtMDEtMjAwMCB8IDAxLTAxLTIw MDEKKygxIHJvdykKKworLyogWW91IGNhbiBnZXQgaXQgaWYgeW91IHdhbnQgKi8KK3NlbGVj dCAqLCBwIGZyb20gcHQ7CisgaWQgfCAgICAgZHMgICAgIHwgICAgIGRlICAgICB8ICAgICAg ICAgICAgcCAgICAgICAgICAgIAorLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgMSB8IDAxLTAxLTIwMDAgfCAwMS0wMS0yMDAx IHwgWzAxLTAxLTIwMDAsMDEtMDEtMjAwMSkKKygxIHJvdykKKworLyogVHdvIGFyZSBva2F5 ICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBw ZXJpb2QgZm9yIHAxIChkcywgZGUpLCBwZXJpb2QgZm9yIHAyIChkcywgZGUpKTsKK2Ryb3Ag dGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiB3b3JrcyAq LworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBk YXRlcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBk ZSkpIHN0b3JlZCwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRy dWUpKTsKK1xkIHB0MgorICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucHQyIgorIENv bHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAg ICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkcyAgICAgfCBkYXRl ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkZSAgICAgfCBkYXRlICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgcCAoZHMsIGRlKQorQ2hlY2sg Y29uc3RyYWludHM6CisgICAgInB0Ml9wX2NoZWNrIiBDSEVDSyAoZHMgPCBkZSkKKworZHJv cCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxz IGJlY2F1c2UgdGhlIGNvbCBpc24ndCB0aGVyZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQg aW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGgg KGNvbGV4aXN0cyA9IHRydWUpKTsKK0VSUk9SOiAgTm8gY29sdW1uIGZvdW5kIHdpdGggbmFt ZSBwCisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2Ug dGhlIG9wdGlvbiBoYXMgYW4gaW52YWxpZCB2YWx1ZSAqLworY3JlYXRlIHRhYmxlIHB0MiAo aWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdp dGggKGNvbGV4aXN0cyA9ICd3aGF0ZXZlcicpKTsKK0VSUk9SOiAgY29sZXhpc3RzIHJlcXVp cmVzIGEgQm9vbGVhbiB2YWx1ZQorLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1u OiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgbm90IE5PVCBOVUxMICovCitjcmVhdGUg dGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBn ZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkLCBwZXJpb2Qg Zm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpOworRVJST1I6ICBQZXJp b2QgcCB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGFsbG93cyBudWxscworLyogU2tp cCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4g aXMgbm90IEdFTkVSQVRFRCAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMg ZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwsIHBlcmlvZCBmb3IgcCAoZHMs IGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CitFUlJPUjogIFBlcmlvZCBwIHVzZXMg YSBub24tZ2VuZXJhdGVkIGNvbHVtbgorLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29s dW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgR0VORVJBVEVEIGJ1dCB3aXRoIHRo ZSB3cm9uZyBleHByZXNzaW9uICovCistLSBUT0RPOgorLS0gY3JlYXRlIHRhYmxlIHB0MiAo aWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwgZ2Vu ZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRlLCBkcykpIHN0b3JlZCwgcGVyaW9kIGZv ciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKTsKKy8qIFNraXAgY3JlYXRp bmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIHRoZSB3 cm9uZyB0eXBlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBk ZSBkYXRlLCBwIHRzcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAodHNyYW5n ZShkcywgZGUpKSBzdG9yZWQsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlz dHMgPSB0cnVlKSk7CitFUlJPUjogIFBlcmlvZCBwIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1u IHdpdGggdGhlIHdyb25nIHR5cGUKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVt bjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIGluaGVyaXRlZCAqLworY3JlYXRlIHRh YmxlIHB0MnBhcmVudCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFu Z2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0 b3JlZCk7CitjcmVhdGUgdGFibGUgcHQyIChwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAo Y29sZXhpc3RzID0gdHJ1ZSkpIGluaGVyaXRzIChwdDJwYXJlbnQpOworRVJST1I6ICBJbmhl cml0aW5nIGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBhIHRhYmxlIGhhcyBhIFBFUklPRAorZHJv cCB0YWJsZSBwdDJwYXJlbnQ7CisvKgorICogQUxURVIgVEFCTEUgdGVzdHMKKyAqLworYWx0 ZXIgdGFibGUgcHQgZHJvcCBwZXJpb2QgZm9yIHA7CithbHRlciB0YWJsZSBwdCBhZGQgcGVy aW9kIGZvciBzeXN0ZW1fdGltZSAoZHMsIGRlKTsKK0VSUk9SOiAgUEVSSU9EIEZPUiBTWVNU RU1fVElNRSBpcyBub3Qgc3VwcG9ydGVkCithbHRlciB0YWJsZSBwdCBhZGQgcGVyaW9kIGZv ciBwIChkcywgZGUpOworLyogQWRkaW5nIGEgc2Vjb25kIG9uZSAqLworY3JlYXRlIHRhYmxl IHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwMSAoZHMs IGRlKSk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcDIgKGRzLCBkZSk7Citk cm9wIHRhYmxlIHB0MjsKKy8qIENhbid0IGRyb3AgaXRzIGNvbHVtbnMgKi8KK2FsdGVyIHRh YmxlIHB0IGRyb3AgY29sdW1uIGRzOworRVJST1I6ICBjYW5ub3QgZHJvcCBjb2x1bW4gZHMg b2YgdGFibGUgcHQgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlM OiAgcGVyaW9kIHAgb24gdGFibGUgcHQgZGVwZW5kcyBvbiBjb2x1bW4gZHMgb2YgdGFibGUg cHQKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQg b2JqZWN0cyB0b28uCithbHRlciB0YWJsZSBwdCBkcm9wIGNvbHVtbiBkZTsKK0VSUk9SOiAg Y2Fubm90IGRyb3AgY29sdW1uIGRlIG9mIHRhYmxlIHB0IGJlY2F1c2Ugb3RoZXIgb2JqZWN0 cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHBlcmlvZCBwIG9uIHRhYmxlIHB0IGRlcGVuZHMg b24gY29sdW1uIGRlIG9mIHRhYmxlIHB0CitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUg dG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorLyogQ2FuJ3QgY2hhbmdlIHRo ZSBkYXRhIHR5cGVzICovCithbHRlciB0YWJsZSBwdCBhbHRlciBjb2x1bW4gZHMgdHlwZSB0 aW1lc3RhbXA7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlIG9mIGEgY29sdW1uIHVzZWQg YnkgYSBwZXJpb2QKK0RFVEFJTDogIHBlcmlvZCBwIG9uIHRhYmxlIHB0IGRlcGVuZHMgb24g Y29sdW1uICJkcyIKK2FsdGVyIHRhYmxlIHB0IGFsdGVyIGNvbHVtbiBkcyB0eXBlIHRpbWVz dGFtcDsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHR5cGUgb2YgYSBjb2x1bW4gdXNlZCBieSBh IHBlcmlvZAorREVUQUlMOiAgcGVyaW9kIHAgb24gdGFibGUgcHQgZGVwZW5kcyBvbiBjb2x1 bW4gImRzIgorLyogY29sdW1uL3BlcmlvZCBuYW1lc3BhY2UgY29uZmxpY3RzICovCithbHRl ciB0YWJsZSBwdCBhZGQgY29sdW1uIHAgaW50ZWdlcjsKK0VSUk9SOiAgY29sdW1uIG5hbWUg InAiIGNvbmZsaWN0cyB3aXRoIGEgcGVyaW9kIG5hbWUKK2FsdGVyIHRhYmxlIHB0IHJlbmFt ZSBjb2x1bW4gaWQgdG8gcDsKK0VSUk9SOiAgY29sdW1uIG5hbWUgInAiIGNvbmZsaWN0cyB3 aXRoIGEgcGVyaW9kIG5hbWUKK2FsdGVyIHRhYmxlIHB0IGFkZCBwZXJpb2QgZm9yIHRhYmxl b2lkIChkcywgZGUpOworRVJST1I6ICBwZXJpb2QgbmFtZSAidGFibGVvaWQiIGNvbmZsaWN0 cyB3aXRoIGEgc3lzdGVtIGNvbHVtbiBuYW1lCithbHRlciB0YWJsZSBwdCBhZGQgcGVyaW9k IGZvciAiLi4uLi4uLi5wZy5kcm9wcGVkLjQuLi4uLi4uLiIgKGRzLCBkZSk7CitFUlJPUjog IHBlcmlvZCBuYW1lICIuLi4uLi4uLnBnLmRyb3BwZWQuNC4uLi4uLi4uIiBjb25mbGljdHMg d2l0aCBhIGNvbHVtbiBuYW1lCisvKiBhZGRpbmcgY29sdW1ucyBhbmQgdGhlIHBlcmlvZCBh dCB0aGUgc2FtZSB0aW1lICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyKTsKK2Fs dGVyIHRhYmxlIHB0MiBhZGQgY29sdW1uIGRzIGRhdGUsIGFkZCBjb2x1bW4gZGUgZGF0ZSwg YWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKTsKK2Ryb3AgdGFibGUgcHQyOworLyogQW1iaWd1 b3VzIHJhbmdlIHR5cGVzIHJhaXNlIGFuIGVycm9yICovCitjcmVhdGUgdHlwZSBteWRhdGVy YW5nZSBhcyByYW5nZShzdWJ0eXBlPWRhdGUpOworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50 LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworRVJST1I6ICBh bWJpZ3VvdXMgcmFuZ2UgZm9yIHR5cGUgZGF0ZQorLyogWW91IGNhbiBnaXZlIGFuIGV4cGxp Y2l0IHJhbmdlIHR5cGUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludCwgZHMgZGF0ZSwg ZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKHJhbmdldHlwZSA9ICdteWRh dGVyYW5nZScpKTsKK2Ryb3AgdHlwZSBteWRhdGVyYW5nZTsKK0VSUk9SOiAgY2Fubm90IGRy b3AgdHlwZSBteWRhdGVyYW5nZSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0 CitERVRBSUw6ICBwZXJpb2QgcCBvbiB0YWJsZSBwdDIgZGVwZW5kcyBvbiB0eXBlIG15ZGF0 ZXJhbmdlCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5k ZW50IG9iamVjdHMgdG9vLgorZHJvcCB0eXBlIG15ZGF0ZXJhbmdlIGNhc2NhZGU7CitOT1RJ Q0U6ICBkcm9wIGNhc2NhZGVzIHRvIHBlcmlvZCBwIG9uIHRhYmxlIHB0MgorZHJvcCB0YWJs ZSBwdDI7CitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnQsIGRzIGRhdGUsIGRlIGRhdGUsIHBl cmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChyYW5nZXR5cGUgPSAnZGF0ZXJhbmdlJykpOwor LyogUmFuZ2UgdHlwZSBpcyBub3QgZm91bmQgKi8KK2NyZWF0ZSB0YWJsZSBwdDMgKGlkIGlu dCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKHJhbmdl dHlwZSA9ICdub3RhcmFuZ2UnKSk7CitFUlJPUjogIFJhbmdlIHR5cGUgbm90YXJhbmdlIG5v dCBmb3VuZAorLyogUmFuZ2UgdHlwZSBpcyB0aGUgd3JvbmcgdHlwZSAqLworY3JlYXRlIHRh YmxlIHB0MyAoaWQgaW50LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBk ZSkgd2l0aCAocmFuZ2V0eXBlID0gJ3RzdHpyYW5nZScpKTsKK0VSUk9SOiAgUmFuZ2UgdHlw ZSB0c3R6cmFuZ2UgZG9lcyBub3QgbWF0Y2ggY29sdW1uIHR5cGUgZGF0ZQorZHJvcCB0YWJs ZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IHdvcmtzICovCitj cmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVy YW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkg c3RvcmVkKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdp dGggKGNvbGV4aXN0cyA9IHRydWUpOworXGQgcHQyCisgICAgICAgICAgICAgICAgVGFibGUg InB1YmxpYy5wdDIiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLQorIGlkICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8 IAorIGRzICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGRlICAg ICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICBw IChkcywgZGUpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAicHQyX3BfY2hlY2siIENIRUNL IChkcyA8IGRlKQorCitkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJB VEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sIGlzbid0IHRoZXJlICovCitjcmVh dGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlKTsKK2FsdGVyIHRh YmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRy dWUpOworRVJST1I6ICBjb2x1bW4gInAiIG9mIHJlbGF0aW9uICJwdDIiIGRvZXMgbm90IGV4 aXN0Citkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVt bjogZmFpbHMgYmVjYXVzZSB0aGUgb3B0aW9uIGhhcyBhbiBpbnZhbGlkIHZhbHVlICovCitj cmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVy YW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkg c3RvcmVkKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdp dGggKGNvbGV4aXN0cyA9ICd3aGF0ZXZlcicpOworRVJST1I6ICBjb2xleGlzdHMgcmVxdWly ZXMgYSBCb29sZWFuIHZhbHVlCitkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRpbmcg R0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIG5vdCBOT1Qg TlVMTCAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0 ZSwgcCBkYXRlcmFuZ2UgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkp IHN0b3JlZCk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3 aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK0VSUk9SOiAgUGVyaW9kIHAgdXNlcyBhIGdlbmVy YXRlZCBjb2x1bW4gdGhhdCBhbGxvd3MgbnVsbHMKK2Ryb3AgdGFibGUgcHQyOworLyogU2tp cCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4g aXMgbm90IEdFTkVSQVRFRCAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMg ZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwpOworYWx0ZXIgdGFibGUgcHQy IGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7CitF UlJPUjogIFBlcmlvZCBwIHVzZXMgYSBub24tZ2VuZXJhdGVkIGNvbHVtbgorZHJvcCB0YWJs ZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1 c2UgdGhlIGNvbHVtbiBpcyBHRU5FUkFURUQgYnV0IHdpdGggdGhlIHdyb25nIGV4cHJlc3Np b24gKi8KKy0tIFRPRE86CistLSBjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBk YXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFz IChkYXRlcmFuZ2UoZGUsIGRzKSkgc3RvcmVkKTsKKy0tIGFsdGVyIHRhYmxlIHB0MiBhZGQg cGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpOworLyogU2tp cCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4g aXMgdGhlIHdyb25nIHR5cGUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRz IGRhdGUsIGRlIGRhdGUsIHAgdHNyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFz ICh0c3JhbmdlKGRzLCBkZSkpIHN0b3JlZCk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlv ZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK0VSUk9SOiAgUGVy aW9kIHAgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gd2l0aCB0aGUgd3JvbmcgdHlwZQorZHJv cCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxz IGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBpbmhlcml0ZWQgKi8KK2NyZWF0ZSB0YWJsZSBwdDJw YXJlbnQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBu dWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOwor Y3JlYXRlIHRhYmxlIHB0MiAoKSBpbmhlcml0cyAocHQycGFyZW50KTsKK2FsdGVyIHRhYmxl IHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUp OworRVJST1I6ICBQZXJpb2QgcCB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGlzIGlu aGVyaXRlZAorZHJvcCB0YWJsZSBwdDI7Citkcm9wIHRhYmxlIHB0MnBhcmVudDsKKy8qIENS RUFURSBUQUJMRSAoTElLRSAuLi4pICovCisvKiBQZXJpb2RzIGFyZSBub3QgY29waWVkIGJ5 IExJS0UsIHNvIHRoZWlyIGNvbHVtbnMgYXJlbid0IGVpdGhlciAqLworY3JlYXRlIHRhYmxl IHB0MiAobGlrZSBwdCk7CitcZCBwdDIKKyAgICAgICAgICAgICAgICBUYWJsZSAicHVibGlj LnB0MiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZh dWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tCisgaWQgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgZHMg ICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgZGUgICAgIHwgZGF0 ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisKK2Ryb3AgdGFibGUgcHQyOworLyog Q2FuIGFkZCBhIHBlcmlvZCByZWZlcnJpbmcgdG8gTElLRSdkIGNvbHVtbnMgKi8KK2NyZWF0 ZSB0YWJsZSBub3RfcCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSk7CitjcmVhdGUg dGFibGUgcHQyIChsaWtlIG5vdF9wLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworXGQgcHQy CisgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5wdDIiCisgQ29sdW1uIHwgIFR5cGUg ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGRzICAgICB8IGRhdGUgICAgfCAgICAgICAg ICAgfCAgICAgICAgICB8IAorIGRlICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAorUGVyaW9kczoKKyAgICBwIChkcywgZGUpCitDaGVjayBjb25zdHJhaW50czoK KyAgICAicHQyX3BfY2hlY2siIENIRUNLIChkcyA8IGRlKQorCitkcm9wIHRhYmxlIHB0MjsK Ky8qIENhbiBhZGQgYSBwZXJpb2Qgd2l0aCB0aGUgc2FtZSBuYW1lICovCitjcmVhdGUgdGFi bGUgcHQyIChsaWtlIHB0LCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworXGQgcHQyCisgICAg ICAgICAgICAgICAgVGFibGUgInB1YmxpYy5wdDIiCisgQ29sdW1uIHwgIFR5cGUgICB8IENv bGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICB8IGludGVnZXIgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAorIGRzICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAorIGRlICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8 IAorUGVyaW9kczoKKyAgICBwIChkcywgZGUpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAi cHQyX3BfY2hlY2siIENIRUNLIChkcyA8IGRlKQorCitkcm9wIHRhYmxlIHB0MjsKKy8qIENh biBhZGQgYSBwZXJpb2Qgd2l0aCBhIGRpZmZlcmVudCBuYW1lICovCitjcmVhdGUgdGFibGUg cHQyIChsaWtlIHB0LCBwZXJpb2QgZm9yIHAyIChkcywgZGUpKTsKK1xkIHB0MgorICAgICAg ICAgICAgICAgIFRhYmxlICJwdWJsaWMucHQyIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xs YXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgfCBpbnRlZ2VyIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAKKyBkcyAgICAgfCBkYXRlICAgIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAKKyBkZSAgICAgfCBkYXRlICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK K1BlcmlvZHM6CisgICAgcDIgKGRzLCBkZSkKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJw dDJfcDJfY2hlY2siIENIRUNLIChkcyA8IGRlKQorCitkcm9wIHRhYmxlIHB0MjsKKy8qIENh bid0IGFkZCBhIHBlcmlvZCB3aG9zZSBuYW1lIGNvbmZsaWN0cyB3aXRoIGEgTElLRSdkIGNv bHVtbiAqLworY3JlYXRlIHRhYmxlIHB0MiAobGlrZSBwdCwgcGVyaW9kIGZvciBpZCAoZHMs IGRlKSk7CitFUlJPUjogIHBlcmlvZCBuYW1lICJpZCIgY29uZmxpY3RzIHdpdGggYSBjb2x1 bW4gbmFtZQorLyogQ1JFQVRFIFRBTEJFIElOSEVSSVRTICovCisvKiBDYW4ndCBpbmhlcml0 IGZyb20gYSB0YWJsZSB3aXRoIGEgcGVyaW9kICovCitjcmVhdGUgdGFibGUgcHQyIChuYW1l IHRleHQpIGluaGVyaXRzIChwdCk7CitFUlJPUjogIEluaGVyaXRpbmcgZnJvbSBhIHRhYmxl IHdpdGggYSBQRVJJT0QgaXMgbm90IHN1cHBvcnRlZAorLyogQ2FuJ3QgaW5oZXJpdCB3aXRo IGEgcGVyaW9kICovCitjcmVhdGUgdGFibGUgcHQyIChkMnMgZGF0ZSwgZDJlIGRhdGUsIHBl cmlvZCBmb3IgcCAoZDJzLCBkMmUpKSBpbmhlcml0cyAobm90X3ApOworRVJST1I6ICBJbmhl cml0aW5nIGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBhIHRhYmxlIGhhcyBhIFBFUklPRAorZHJv cCB0YWJsZSBub3RfcDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv d2l0aG91dF9vdmVybGFwcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhv dXRfb3ZlcmxhcHMub3V0CmluZGV4IGJiZDIyMmRiMzYxLi43MmY4NzgzYjQ3NiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CkBA IC0xNTMsNiArMTUzLDc2IEBAIFNFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAs IHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlCiAgQ1JFQVRF IFVOSVFVRSBJTkRFWCB0ZW1wb3JhbF9ybmcyX3BrIE9OIHRlbXBvcmFsX3JuZzIgVVNJTkcg Z2lzdCAoaWQxLCBpZDIsIHZhbGlkX2F0KQogKDEgcm93KQogCistLSBQSyB3aXRoIG9uZSBj b2x1bW4gcGx1cyBhIFBFUklPRDoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wZXIgKAorICBp ZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisg IFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfcGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIKKyAgICAgICAgICAgICAgIFRhYmxl ICJwdWJsaWMudGVtcG9yYWxfcGVyIgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xs YXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJh bmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAg IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX3Blcl9wayIgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3Ry YWludHM6CisgICAgInRlbXBvcmFsX3Blcl92YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlk X2Zyb20gPCB2YWxpZF90aWwpCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQp IEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3Blcl9wayc7 CisgICAgICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKygxIHJvdykKKworU0VMRUNUIHBn X2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdI RVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyX3BrJzsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGdfZ2V0X2luZGV4ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgVU5JUVVFIElOREVY IHRlbXBvcmFsX3Blcl9wayBPTiB0ZW1wb3JhbF9wZXIgVVNJTkcgZ2lzdCAoaWQsIHZhbGlk X2F0KQorKDEgcm93KQorCistLSBQSyB3aXRoIHR3byBjb2x1bW5zIHBsdXMgYSBQRVJJT0Q6 CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlk MiBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisg IFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfcGVyMl9wayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfcGVyMgorICAgICAgICAgICAg ICBUYWJsZSAicHVibGljLnRlbXBvcmFsX3BlcjIiCisgICBDb2x1bW4gICB8ICAgVHlwZSAg ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkMSAgICAgICAg fCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIGlkMiAgICAgICAgfCBp bnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2Zyb20gfCBkYXRl ICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfcGVyMl9w ayIgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQor Q2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX3BlcjJfdmFsaWRfYXRfY2hlY2si IENIRUNLICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorCitTRUxFQ1QgcGdfZ2V0X2NvbnN0 cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1w b3JhbF9wZXIyX3BrJzsKKyAgICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKQorKDEgcm93KQorCitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlk LCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3Jh bF9wZXIyX3BrJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dl dF9pbmRleGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFVOSVFVRSBJTkRFWCB0ZW1w b3JhbF9wZXIyX3BrIE9OIHRlbXBvcmFsX3BlcjIgVVNJTkcgZ2lzdCAoaWQxLCBpZDIsIHZh bGlkX2F0KQorKDEgcm93KQorCiAtLSBQSyB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGU6CiBD UkVBVEUgVFlQRSB0ZXh0cmFuZ2UyIEFTIHJhbmdlIChzdWJ0eXBlPXRleHQsIGNvbGxhdGlv bj0iQyIpOwogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKApAQCAtMzAwLDYgKzM3MCw3 OCBAQCBTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBn X2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZQogKDEgcm93KQogCiBEUk9QIFRBQkxF IHRlbXBvcmFsX3JuZzM7CistLSBVTklRVUUgd2l0aCBvbmUgY29sdW1uIHBsdXMgYSBQRVJJ T0Q6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyMyAoCisgIGlkIGludDRyYW5nZSwKKyAg dmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxp ZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9w ZXIzX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQg dGVtcG9yYWxfcGVyMworICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsX3Bl cjMiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg RGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQor SW5kZXhlczoKKyAgICAidGVtcG9yYWxfcGVyM191cSIgVU5JUVVFIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9w ZXIzX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkKKwor U0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdI RVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyM191cSc7CisgICAgICAgICAgcGdfZ2V0X2Nv bnN0cmFpbnRkZWYgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKygx IHJvdykKKworU0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJP TSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyM191cSc7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfcGVyM191cSBPTiB0ZW1wb3JhbF9w ZXIzIFVTSU5HIGdpc3QgKGlkLCB2YWxpZF9hdCkKKygxIHJvdykKKworRFJPUCBUQUJMRSB0 ZW1wb3JhbF9wZXIzOworLS0gVU5JUVVFIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIFBFUklP RDoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wZXIzICgKKyAgaWQxIGludDRyYW5nZSwKKyAg aWQyIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwK KyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09O U1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxIFVOSVFVRSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfcGVyMworICAgICAgICAgICAgICBU YWJsZSAicHVibGljLnRlbXBvcmFsX3BlcjMiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkMSAgICAgICAgfCBp bnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGlkMiAgICAgICAgfCBpbnQ0 cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAg fCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFs aWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfcGVyM191cSIg VU5JUVVFIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNv bnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9wZXIzX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAo dmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkKKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVm KG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVy M191cSc7CisgICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgVU5J UVVFIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKygxIHJvdykKKwor U0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25z dHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyM191cSc7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfcGVyM191cSBPTiB0ZW1wb3Jh bF9wZXIzIFVTSU5HIGdpc3QgKGlkMSwgaWQyLCB2YWxpZF9hdCkKKygxIHJvdykKKworRFJP UCBUQUJMRSB0ZW1wb3JhbF9wZXIzOwogLS0gVU5JUVVFIHdpdGggYSBjdXN0b20gcmFuZ2Ug dHlwZToKIENSRUFURSBUWVBFIHRleHRyYW5nZTIgQVMgcmFuZ2UgKHN1YnR5cGU9dGV4dCwg Y29sbGF0aW9uPSJDIik7CiBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCkBAIC0zNzcs NiArNTE5LDEwNiBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKIAlBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbDNfdXEKIAlVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsK IERST1AgVEFCTEUgdGVtcG9yYWwzOworLS0gUFJJTUFSWSBLRVkgd2l0aCBQRVJJT0QgYWxy ZWFkeSB0aGVyZQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisgIGlkIGludDRyYW5nZSwK KyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2 YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsMworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsKKyAgUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1xkIHRlbXBvcmFsMworICAgICAgICAg ICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWwzIgorICAgQ29sdW1uICAgfCAgIFR5cGUg ICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAg IHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwg ZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0 ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRf YXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsM19w ayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sg Y29uc3RyYWludHM6CisgICAgInRlbXBvcmFsM192YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZh bGlkX2Zyb20gPCB2YWxpZF90aWwpCisKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworLS0gUFJJ TUFSWSBLRVkgd2l0aCBQRVJJT0QgdG9vCitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAg aWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlCisp OworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisgIEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2 YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsK KyAgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1xkIHRl bXBvcmFsMworICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWwzIgorICAg Q29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQg CistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwg fCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK KyB2YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1Bl cmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4ZXM6 CisgICAgInRlbXBvcmFsM19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsM192YWxpZF9h dF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCisKK0RST1AgVEFCTEUg dGVtcG9yYWwzOworLS0gVU5JUVVFIHdpdGggUEVSSU9EIGFscmVhZHkgdGhlcmUKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0 ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKKyAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWwzX3VxCisgIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpOworXGQgdGVtcG9yYWwzCisgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50 ZW1wb3JhbDMiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAg ICAgfCAgICAgICAgICB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRf dGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9yYWwzX3VxIiBVTklRVUUgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFs M192YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCisKK0RS T1AgVEFCTEUgdGVtcG9yYWwzOworLS0gVU5JUVVFIHdpdGggUEVSSU9EIHRvbworQ1JFQVRF IFRBQkxFIHRlbXBvcmFsMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRl LAorICB2YWxpZF90aWwgZGF0ZQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQg UEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWwzX3VxCisgIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpOworXGQgdGVtcG9yYWwzCisgICAgICAgICAgICAgICAgVGFibGUgInB1Ymxp Yy50ZW1wb3JhbDMiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAg ICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFs aWRfdGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9yYWwzX3VxIiBVTklRVUUgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBv cmFsM192YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCisK K0RST1AgVEFCTEUgdGVtcG9yYWwzOwogLS0KIC0tIHJhbmdlIFBLOiB0ZXN0IHdpdGggZXhp c3Rpbmcgcm93cwogLS0KQEAgLTg3NCw2ICsxMTE2LDI4NCBAQCBTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX21sdHJuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCiBEUk9QIFRBQkxFIHRl bXBvcmFsX21sdHJuZzM7CiAtLQorLS0gUEVSSU9EIFBLOiB0ZXN0IHdpdGggZXhpc3Rpbmcg cm93cworLS0KK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfcGVyX3BrOworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMics ICcyMDE4LTAyLTAzJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0w NC0wNCcpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbMiwzKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzMsNCknLCAnMjAxOC0wMS0wMScsIE5VTEwpOworQUxURVIgVEFCTEUgdGVt cG9yYWxfcGVyIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wayBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworQUxURVIgVEFCTEUgdGVtcG9yYWxf cGVyIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGs7CistLSBzaG91bGQgZmFpbDoK K0JFR0lOOworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScp OworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf cGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitF UlJPUjogIGNvdWxkIG5vdCBjcmVhdGUgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFs X3Blcl9wayIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAx LTAyLDIwMTgtMDItMDMpKSBjb25mbGljdHMgd2l0aCBrZXkgKGlkLCB2YWxpZF9hdCk9KFsx LDIpLCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KSkuCitST0xMQkFDSzsKKy0tIHJlamVjdHMg ZW1wdHk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyIERST1AgUEVSSU9E IEZPUiB2YWxpZF9hdDsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0KScsICcyMDIwLTAxLTAxJywgJzIwMjAt MDEtMDEnKTsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyIEFERCBQRVJJT0QgRk9SIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpOworRVJST1I6ICBjaGVjayBjb25zdHJh aW50ICJ0ZW1wb3JhbF9wZXJfdmFsaWRfYXRfY2hlY2siIG9mIHJlbGF0aW9uICJ0ZW1wb3Jh bF9wZXIiIGlzIHZpb2xhdGVkIGJ5IHNvbWUgcm93CitST0xMQkFDSzsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX3BlciBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3BlcjsKKy0tCistLSBQRVJJT0QgUEs6IHRlc3QgaW5zZXJ0cworLS0KKy0tIG9rYXk6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbMSwyKScsICcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMykn LCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMTgt MDEtMDEnLCBOVUxMKTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4 LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKK0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVl IHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wZXJfcGsiCitERVRB SUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1 KSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwg WzIwMTgtMDEtMDIsMjAxOC0wMi0wMykpLgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKE5VTEwsICcyMDE4LTAxLTAxJywg JzIwMTgtMDEtMDUnKTsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4gImlkIiBvZiBy ZWxhdGlvbiAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CitE RVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwgMjAxOC0wMS0wMSwgMjAxOC0w MS0wNSwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkpLgorLS0gcmVqZWN0cyBlbXB0eToKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzMsNCknLCAnMjAyMC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitFUlJPUjogIG5l dyByb3cgZm9yIHJlbGF0aW9uICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGNoZWNrIGNvbnN0 cmFpbnQgInRlbXBvcmFsX3Blcl92YWxpZF9hdF9jaGVjayIKK0RFVEFJTDogIEZhaWxpbmcg cm93IGNvbnRhaW5zIChbMyw0KSwgMjAyMC0wMS0wMSwgMjAyMC0wMS0wMSwgZW1wdHkpLgor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBp ZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMSwyKSB8IDIwMTgtMDEtMDIgfCAyMDE4LTAyLTAzCisgWzEsMikg fCAyMDE4LTAzLTAzIHwgMjAxOC0wNC0wNAorIFsyLDMpIHwgMjAxOC0wMS0wMSB8IDIwMTgt MDEtMDUKKyBbMyw0KSB8IDIwMTgtMDEtMDEgfCAKKyg0IHJvd3MpCisKKy0tCistLSBQRVJJ T0QgUEs6IHRlc3QgdXBkYXRlcworLS0KKy0tIHVwZGF0ZSB0aGUgc2NhbGFyIHBhcnQKK1VQ REFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0gJ1sxMSwxMiknCitXSEVSRSAgIGlk ID0gJ1sxLDIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7Cist LSB1cGRhdGUgdGhlIFBFUklPRCBib3VuZHMKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQg ICAgIHZhbGlkX2Zyb20gPSAnMjAyMC0wMS0wMScsCisgICAgICAgIHZhbGlkX3RpbCA9ICcy MDIxLTAxLTAxJworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBA PiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgYm90aCBhdCBvbmNlCitVUERBVEUg IHRlbXBvcmFsX3BlcgorU0VUICAgICBpZCA9ICdbMjEsMjIpJywKKyAgICAgICAgdmFsaWRf ZnJvbSA9ICcyMDE4LTAxLTAyJywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMTgtMDItMDMn CitXSEVSRSAgIGlkID0gJ1sxMSwxMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDIwLTAx LTE1Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgIGlkICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxLDIpICAgfCAyMDE4LTAzLTAzIHwg MjAxOC0wNC0wNAorIFsyLDMpICAgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wNQorIFszLDQp ICAgfCAyMDE4LTAxLTAxIHwgCisgWzIxLDIyKSB8IDIwMTgtMDEtMDIgfCAyMDE4LTAyLTAz CisoNCByb3dzKQorCistLSBzaG91bGQgZmFpbDoKK1VQREFURSAgdGVtcG9yYWxfcGVyCitT RVQgICAgIGlkID0gJ1sxLDIpJywKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDE4LTAzLTA1 JywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMTgtMDUtMDUnCitXSEVSRSAgIGlkID0gJ1sy MSwyMiknOworRVJST1I6ICBjb25mbGljdGluZyBrZXkgdmFsdWUgdmlvbGF0ZXMgZXhjbHVz aW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX3Blcl9wayIKK0RFVEFJTDogIEtleSAoaWQsIHZh bGlkX2F0KT0oWzEsMiksIFsyMDE4LTAzLTA1LDIwMTgtMDUtMDUpKSBjb25mbGljdHMgd2l0 aCBleGlzdGluZyBrZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMy0wMywyMDE4 LTA0LTA0KSkuCistLSBzZXQgdGhlIHNjYWxhciBwYXJ0IHRvIE5VTEwKK1VQREFURSAgdGVt cG9yYWxfcGVyCitTRVQgICAgIGlkID0gTlVMTCwKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcy MDE4LTAzLTA1JywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMTgtMDUtMDUnCitXSEVSRSAg IGlkID0gJ1syMSwyMiknOworRVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVtbiAiaWQiIG9m IHJlbGF0aW9uICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIG5vdC1udWxsIGNvbnN0cmFpbnQK K0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChudWxsLCAyMDE4LTAzLTA1LCAyMDE4 LTA1LTA1LCBbMjAxOC0wMy0wNSwyMDE4LTA1LTA1KSkuCistLSBzZXQgYSBQRVJJT0QgYm91 bmQgdG8gTlVMTCAob2theSkKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0g J1sxLDIpJywKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDE4LTA0LTA0JywKKyAgICAgICAg dmFsaWRfdGlsID0gTlVMTAorV0hFUkUgICBpZCA9ICdbMjEsMjIpJzsKKy0tIHJlamVjdHMg ZW1wdHk6CitVUERBVEUgIHRlbXBvcmFsX3BlcgorU0VUICAgICBpZCA9ICdbMjEsMjIpJywK KyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRfdGls ID0gJzIwMjAtMDEtMDEnCitXSEVSRSAgIGlkID0gJ1sxLDIpJzsKK0VSUk9SOiAgbmV3IHJv dyBmb3IgcmVsYXRpb24gInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWlu dCAidGVtcG9yYWxfcGVyX3ZhbGlkX2F0X2NoZWNrIgorREVUQUlMOiAgRmFpbGluZyByb3cg Y29udGFpbnMgKFsyMSwyMiksIDIwMjAtMDEtMDEsIDIwMjAtMDEtMDEsIGVtcHR5KS4KK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQg ICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgWzEsMikgfCAyMDE4LTAzLTAzIHwgMjAxOC0wNC0wNAorIFsxLDIpIHwg MjAxOC0wNC0wNCB8IAorIFsyLDMpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDUKKyBbMyw0 KSB8IDIwMTgtMDEtMDEgfCAKKyg0IHJvd3MpCisKKy0tCistLSBQRVJJT0QgVVE6IHRlc3Qg d2l0aCBleGlzdGluZyByb3dzCistLQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BlcjMgKAor CWlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwK KyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorKTsKKy0t IG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0 KScsICcyMDE4LTAxLTAxJywgTlVMTCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKE5VTEwsICcyMDE4LTAxLTAxJywg JzIwMTgtMDEtMDUnKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfcGVyM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMgRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX3BlcjNfdXE7CistLSBzaG91bGQgZmFpbDoKK0JFR0lOOworICBJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwy KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKKyAgQUxURVIgVEFCTEUgdGVtcG9y YWxfcGVyMyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxIFVOSVFVRSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworRVJST1I6ICBjb3VsZCBub3QgY3JlYXRlIGV4 Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wZXIzX3VxIgorREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wMi0wMykpIGNvbmZsaWN0 cyB3aXRoIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDEt MDUpKS4KK1JPTExCQUNLOworLS0gcmVqZWN0cyBlbXB0eToKK0JFR0lOOworICBBTFRFUiBU QUJMRSB0ZW1wb3JhbF9wZXIzIERST1AgUEVSSU9EIEZPUiB2YWxpZF9hdDsKKyAgSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzMsNCknLCAnMjAyMC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CisgIEFMVEVSIFRBQkxF IHRlbXBvcmFsX3BlcjMgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZh bGlkX3RpbCk7CitFUlJPUjogIGNoZWNrIGNvbnN0cmFpbnQgInRlbXBvcmFsX3BlcjNfdmFs aWRfYXRfY2hlY2siIG9mIHJlbGF0aW9uICJ0ZW1wb3JhbF9wZXIzIiBpcyB2aW9sYXRlZCBi eSBzb21lIHJvdworUk9MTEJBQ0s7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIzIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIzOworLS0KKy0tIFBFUklP RCBVUTogdGVzdCBpbnNlcnRzCistLQorLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIw MTgtMDEtMDInLCAnMjAxOC0wMi0wMycpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMy0w MycsICcyMDE4LTA0LTA0Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMiwzKScsICcyMDE4LTAxLTAxJywgJzIw MTgtMDEtMDUnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMTgtMDEtMDEnLCBOVUxMKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoTlVMTCwgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOworLS0gc2hvdWxkIGZh aWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKK0VS Uk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJh aW50ICJ0ZW1wb3JhbF9wZXIzX3VxIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShb MSwyKSwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkpIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5n IGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDItMDMpKS4K Ky0tIHJlamVjdHMgZW1wdHk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0KScsICcyMDIwLTAxLTAxJywgJzIw MjAtMDEtMDEnKTsKK0VSUk9SOiAgbmV3IHJvdyBmb3IgcmVsYXRpb24gInRlbXBvcmFsX3Bl cjMiIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgInRlbXBvcmFsX3BlcjNfdmFsaWRfYXRf Y2hlY2siCitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoWzMsNCksIDIwMjAtMDEt MDEsIDIwMjAtMDEtMDEsIGVtcHR5KS4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyMyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGls ICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxLDIpIHwgMjAxOC0w MS0wMiB8IDIwMTgtMDItMDMKKyBbMSwyKSB8IDIwMTgtMDMtMDMgfCAyMDE4LTA0LTA0Cisg WzIsMykgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wNQorIFszLDQpIHwgMjAxOC0wMS0wMSB8 IAorICAgICAgIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDUKKyg1IHJvd3MpCisKKy0tCist LSBQRVJJT0QgVVE6IHRlc3QgdXBkYXRlcworLS0KKy0tIHVwZGF0ZSB0aGUgc2NhbGFyIHBh cnQKK1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VUICAgICBpZCA9ICdbMTEsMTIpJworV0hF UkUgICBpZCA9ICdbMSwyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpk YXRlOworLS0gdXBkYXRlIHRoZSBQRVJJT0QgYm91bmRzCitVUERBVEUgIHRlbXBvcmFsX3Bl cjMKK1NFVCAgICAgdmFsaWRfZnJvbSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRf dGlsID0gJzIwMjEtMDEtMDEnCitXSEVSRSAgIGlkID0gJ1sxMSwxMiknCitBTkQgICAgIHZh bGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSBib3RoIGF0IG9uY2UK K1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VUICAgICBpZCA9ICdbMjEsMjIpJywKKyAgICAg ICAgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAyJywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIw MTgtMDItMDMnCitXSEVSRSAgIGlkID0gJ1sxMSwxMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ ICcyMDIwLTAxLTE1Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyMyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICBpZCAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwg IAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMSwyKSAgIHwgMjAx OC0wMy0wMyB8IDIwMTgtMDQtMDQKKyBbMiwzKSAgIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEt MDUKKyBbMyw0KSAgIHwgMjAxOC0wMS0wMSB8IAorIFsyMSwyMikgfCAyMDE4LTAxLTAyIHwg MjAxOC0wMi0wMworICAgICAgICAgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wNQorKDUgcm93 cykKKworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAg aWQgPSAnWzEsMiknLAorICAgICAgICB2YWxpZF9mcm9tID0gJzIwMTgtMDMtMDUnLAorICAg ICAgICB2YWxpZF90aWwgPSAnMjAxOC0wNS0wNScKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7 CitFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29u c3RyYWludCAidGVtcG9yYWxfcGVyM191cSIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0 KT0oWzEsMiksIFsyMDE4LTAzLTA1LDIwMTgtMDUtMDUpKSBjb25mbGljdHMgd2l0aCBleGlz dGluZyBrZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMy0wMywyMDE4LTA0LTA0 KSkuCistLSBzZXQgdGhlIHNjYWxhciBwYXJ0IHRvIE5VTEwgKG9rYXkpCitVUERBVEUgIHRl bXBvcmFsX3BlcjMKK1NFVCAgICAgaWQgPSBOVUxMLAorICAgICAgICB2YWxpZF9mcm9tID0g JzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAyMS0wMS0wMScKK1dIRVJF ICAgaWQgPSAnWzIxLDIyKSc7CistLSBzZXQgYSBQRVJJT0QgYm91bmQgdG8gTlVMTCAob2th eSkKK1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VUICAgICBpZCA9ICdbMSwyKScsCisgICAg ICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wNC0wNCcsCisgICAgICAgIHZhbGlkX3RpbCA9IE5V TEwKK1dIRVJFICAgaWQgSVMgTlVMTCBBTkQgdmFsaWRfYXQgQD4gJzIwMjAtMDYtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDE4LTAzLTAzIHwgMjAxOC0wNC0wNAor IFsxLDIpIHwgMjAxOC0wNC0wNCB8IAorIFsyLDMpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEt MDUKKyBbMyw0KSB8IDIwMTgtMDEtMDEgfCAKKyAgICAgICB8IDIwMTgtMDEtMDEgfCAyMDE4 LTAxLTA1CisoNSByb3dzKQorCistLSBzaG91bGQgZmFpbDoKK1VQREFURSAgdGVtcG9yYWxf cGVyMworU0VUICAgICB2YWxpZF9mcm9tID0gJzIwMTgtMDMtMDEnLAorICAgICAgICB2YWxp ZF90aWwgPSAnMjAxOC0wNS0wNScKK1dIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2YWxpZF90 aWwgSVMgTlVMTDsKK0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4 Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wZXIzX3VxIgorREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDMtMDEsMjAxOC0wNS0wNSkpIGNvbmZsaWN0 cyB3aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAzLTAz LDIwMTgtMDQtMDQpKS4KKy0tIHJlamVjdHMgZW1wdHk6CitVUERBVEUgIHRlbXBvcmFsX3Bl cjMKK1NFVCAgICAgdmFsaWRfZnJvbSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRf dGlsID0gJzIwMjAtMDEtMDEnCitXSEVSRSAgIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfdGls IElTIE5VTEw7CitFUlJPUjogIG5ldyByb3cgZm9yIHJlbGF0aW9uICJ0ZW1wb3JhbF9wZXIz IiB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wZXIzX3ZhbGlkX2F0X2No ZWNrIgorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKFsxLDIpLCAyMDIwLTAxLTAx LCAyMDIwLTAxLTAxLCBlbXB0eSkuCistLSBzdGlsbCByZWplY3RzIGVtcHR5IHdoZW4gc2Nh bGFyIHBhcnQgaXMgTlVMTDoKK1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VUICAgICBpZCA9 IE5VTEwsCisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAyMC0wMS0wMScsCisgICAgICAgIHZh bGlkX3RpbCA9ICcyMDIwLTAxLTAxJworV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlk X3RpbCBJUyBOVUxMOworRVJST1I6ICBuZXcgcm93IGZvciByZWxhdGlvbiAidGVtcG9yYWxf cGVyMyIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAidGVtcG9yYWxfcGVyM192YWxpZF9h dF9jaGVjayIKK0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChudWxsLCAyMDIwLTAx LTAxLCAyMDIwLTAxLTAxLCBlbXB0eSkuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3Rp bCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMSwyKSB8IDIwMTgt MDMtMDMgfCAyMDE4LTA0LTA0CisgWzEsMikgfCAyMDE4LTA0LTA0IHwgCisgWzIsMykgfCAy MDE4LTAxLTAxIHwgMjAxOC0wMS0wNQorIFszLDQpIHwgMjAxOC0wMS0wMSB8IAorICAgICAg IHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDUKKyg1IHJvd3MpCisKK0RST1AgVEFCTEUgdGVt cG9yYWxfcGVyMzsKKy0tCiAtLSB0ZXN0IGEgcmFuZ2Ugd2l0aCBib3RoIGEgUEsgYW5kIGEg VU5JUVVFIGNvbnN0cmFpbnQKIC0tCiBDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKQEAgLTEz MDEsNiArMTgyMSwxOCBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCiAJ Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKIAkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQ RVJJT0QgdmFsaWRfYXQpCiApOworXGQgdGVtcG9yYWxfZmtfcm5nMnJuZworICAgICAgICAg ICBUYWJsZSAicHVibGljLnRlbXBvcmFsX2ZrX3JuZzJybmciCisgIENvbHVtbiAgIHwgICBU eXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAg ICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0ICB8 IGRhdGVyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgcGFyZW50X2lkIHwgaW50 NHJhbmdlIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK0luZGV4ZXM6CisgICAgInRlbXBv cmFsX2ZrX3JuZzJybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykKK0ZvcmVpZ24ta2V5IGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9ma19y bmcycm5nX2ZrIiBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJF RkVSRU5DRVMgdGVtcG9yYWxfcm5nKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisKIERST1AgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnJuZzsKIC0tIHdpdGggbWlzbWF0Y2hlZCBQRVJJT0QgY29s dW1uczoKIC0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQs IHZhbGlkX2F0KQpAQCAtMzUwMyw2ICs0MDM1LDEyNDAgQEAgU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZ IGlkLCB2YWwKICBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgs OSkgICAgICB8IFs4LDkpCiAoMiByb3dzKQogCistLQorLS0gdGVzdCBGT1JFSUdOIEtFWSwg UEVSSU9EIHJlZmVyZW5jZXMgUEVSSU9ECistLQorLS0gdGVzdCB0YWJsZSBzZXR1cAorRFJP UCBUQUJMRSB0ZW1wb3JhbF9wZXI7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyICgKKwlp ZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCVBF UklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKKyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9wZXIKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsKKwlQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworLS0gQ2FuJ3Qg Y3JlYXRlIGEgRksgd2l0aCBhIG1pc21hdGNoZWQgcmFuZ2UgdHlwZQorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGlu dCwKKwl2YWxpZF90aWwgaW50LAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJUEVSSU9EIEZP UiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFs X3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIGNhbm5vdCBiZSBpbXBsZW1lbnRl ZAorREVUQUlMOiAgS2V5IGNvbHVtbnMgInZhbGlkX2F0IiBhbmQgInZhbGlkX2F0IiBhcmUg b2YgaW5jb21wYXRpYmxlIHR5cGVzOiBpbnQ0cmFuZ2UgYW5kIGRhdGVyYW5nZS4KKy0tIHdv cmtzOiBQRVJJT0QgZm9yIGJvdGggcmVmZXJlbmNlZCBhbmQgcmVmZXJlbmNpbmcKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRf ZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJ UEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VT IHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9m a19wZXIycGVyCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmtfcGVyMnBl ciIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBE ZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5v dCBudWxsIHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCisgdmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAg IHwgCisgcGFyZW50X2lkICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwg CitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpCitJbmRl eGVzOgorICAgICJ0ZW1wb3JhbF9ma19wZXIycGVyX3BrIiBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAidGVt cG9yYWxfZmtfcGVyMnBlcl92YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2 YWxpZF90aWwpCitGb3JlaWduLWtleSBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmtf cGVyMnBlcl9mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBS RUZFUkVOQ0VTIHRlbXBvcmFsX3BlcihpZCwgUEVSSU9EIHZhbGlkX2F0KQorCitEUk9QIFRB QkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CistLSB3aXRoIG1pc21hdGNoZWQgUEVSSU9EIGNv bHVtbnM6CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlk LCB2YWxpZF9hdCkKKy0tIFJFRkVSRU5DRVMgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJ dmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFu Z2UsCisJUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJw ZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZF UkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2F0KQorKTsKK0VSUk9SOiAgZm9yZWln biBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jaW5nIHRhYmxlIGJ1dCBub3QgdGhl IHJlZmVyZW5jZWQgdGFibGUKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VT IChpZCwgdmFsaWRfYXQpCistLSBib3RoIHNob3VsZCBzcGVjaWZ5IFBFUklPRDoKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRf ZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJ UEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9y YWxfcGVyIChpZCwgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSBtdXN0IHVz ZSBQRVJJT0Qgd2hlbiByZWZlcmVuY2luZyBhIHByaW1hcnkgdXNpbmcgV0lUSE9VVCBPVkVS TEFQUworLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCBQRVJJT0Qg dmFsaWRfYXQpCistLSBGT1JFSUdOIEtFWSBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorCWlkIGludDRyYW5nZSwKKwl2 YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGlsIGRhdGUsCisJcGFyZW50X2lkIGludDRyYW5n ZSwKKwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorCUNP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBl cl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0 ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWdu IGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSBy ZWZlcmVuY2luZyB0YWJsZQorLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMg W2ltcGxpY2l0XQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJ dmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFu Z2UsCisJUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJw ZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMg dGVtcG9yYWxfcGVyCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0 aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0g KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCkKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJv bSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJUEVS SU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRl bXBvcmFsX3BlciAoaWQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBv biB0aGUgcmVmZXJlbmNpbmcgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNlZCB0YWJsZQor LS0gKHBhcmVudF9pZCkgUkVGRVJFTkNFUyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRf ZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJ UEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlk LCBQRVJJT0QgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklP RCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJs ZQorLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZToKKy0tIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCitDUkVB VEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlk X2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAor CVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2Zr IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIKKyk7CitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXI7Cist LSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRlLAor CXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJUEVSSU9EIEZPUiB2 YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyk7CitFUlJPUjogIGZv cmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3Qg dGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxp Y2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVy MnBlciAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwg ZGF0ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZh bGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVy X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCBwYXJlbnRfaWQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVS SU9EIGlkKQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgcmVmZXJlbmNlZC1jb2x1bW5zIGxp c3QgbXVzdCBub3QgY29udGFpbiBkdXBsaWNhdGVzCistLSBUd28gc2NhbGFyIGNvbHVtbnMK K0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyMjsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wZXIy ICgKKwlpZDEgaW50NHJhbmdlLAorCWlkMiBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRl LAorCXZhbGlkX3RpbCBkYXRlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20s IHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIyX3BrIFBSSU1BUlkgS0VZ IChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9t IGRhdGUsCisJdmFsaWRfdGlsIGRhdGUsCisJcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisJcGFy ZW50X2lkMiBpbnQ0cmFuZ2UsCisJUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwg dmFsaWRfdGlsKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50 X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIgKGlk MSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCispOworXGQgdGVtcG9yYWxfZmsyX3BlcjJwZXIK KyAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9mazJfcGVyMnBlciIKKyAgIENv bHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAor LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwg CisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisg dmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgcGFy ZW50X2lkMSB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgcGFyZW50 X2lkMiB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgor ICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpCitJbmRleGVzOgorICAgICJ0 ZW1wb3JhbF9mazJfcGVyMnBlcl9wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX2ZrMl9w ZXIycGVyX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkK K0ZvcmVpZ24ta2V5IGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9mazJfcGVyMnBlcl9m ayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9h dCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQp CisKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CistLQorLS0gdGVzdCBBTFRF UiBUQUJMRSBBREQgQ09OU1RSQUlOVAorLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19w ZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3Rp bCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJUEVSSU9EIEZPUiB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJw ZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZhbGlkX2F0 KTsKKy0tIFR3byBzY2FsYXIgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazJf cGVyMnBlciAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90 aWwgZGF0ZSwKKwlwYXJlbnRfaWQxIGludDRyYW5nZSwKKwlwYXJlbnRfaWQyIGludDRyYW5n ZSwKKwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorCUNP TlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9w ZXIycGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKwlGT1JF SUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCVJF RkVSRU5DRVMgdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCk7Citc ZCB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBv cmFsX2ZrMl9wZXIycGVyIgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24g fCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJhbmdlIHwg ICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQxIHwgaW50NHJhbmdlIHwgICAgICAgICAg IHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQyIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwg ICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX2ZrMl9wZXIycGVyX3BrIiBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJhaW50 czoKKyAgICAidGVtcG9yYWxfZmsyX3BlcjJwZXJfdmFsaWRfYXRfY2hlY2siIENIRUNLICh2 YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorRm9yZWlnbi1rZXkgY29uc3RyYWludHM6CisgICAg InRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrIiBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFy ZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIoaWQx LCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUg cmVmZXJlbmNlZCB0YWJsZSwgYW5kIHdyb25nIGNvbHVtbiB0eXBlOgorQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfcGVyMnBlcgorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cGVyX2ZrLAorCURST1AgUEVSSU9EIEZPUiB2YWxpZF9hdCwKKwlBTFRFUiBDT0xVTU4gdmFs aWRfZnJvbSBUWVBFIHRpbWVzdGFtcCwKKwlBTFRFUiBDT0xVTU4gdmFsaWRfdGlsIFRZUEUg dGltZXN0YW1wLAorCUFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxp ZF90aWwpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCUFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CitFUlJPUjogIGZv cmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIGNhbm5vdCBi ZSBpbXBsZW1lbnRlZAorREVUQUlMOiAgS2V5IGNvbHVtbnMgInZhbGlkX2F0IiBhbmQgInZh bGlkX2F0IiBhcmUgb2YgaW5jb21wYXRpYmxlIHR5cGVzOiB0c3JhbmdlIGFuZCBkYXRlcmFu Z2UuCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJRFJPUCBQRVJJT0QgRk9S IHZhbGlkX2F0LAorCUFMVEVSIENPTFVNTiB2YWxpZF9mcm9tIFRZUEUgZGF0ZSwKKwlBTFRF UiBDT0xVTU4gdmFsaWRfdGlsIFRZUEUgZGF0ZSwKKwlBREQgUEVSSU9EIEZPUiB2YWxpZF9h dCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKTsKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhl IHJlZmVyZW5jZWQgdGFibGU6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJ QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworCUZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsK Ky0tIHNob3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1u czoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19wZXIycGVyX2ZrMgorCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCBwYXJlbnRfaWQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgaWQp OworRVJST1I6ICBmb3JlaWduIGtleSByZWZlcmVuY2VkLWNvbHVtbnMgbGlzdCBtdXN0IG5v dCBjb250YWluIGR1cGxpY2F0ZXMKKy0tCistLSB0ZXN0IHdpdGggcm93cyBhbHJlYWR5Cist LQorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3BlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTCisgICgnWzEsMV0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAz JyksCisgICgnWzEsMV0nLCAnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JyksCisgICgnWzIs Ml0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JyksCisgICgnWzMsM10nLCAnMjAxOC0w MS0wMScsIE5VTEwpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCURST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMSwxXScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDEnLCAnWzEsMV0nKTsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworQUxURVIgVEFCTEUgdGVtcG9y YWxfZmtfcGVyMnBlcgorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2Zr OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwyXScsICcyMDE4LTAxLTAyJywgJzIw MTgtMDQtMDEnLCAnWzEsMV0nKTsKKy0tIHNob3VsZCBmYWlsOgorQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcGVyMnBlcgorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJf ZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJF TkNFUyB0ZW1wb3JhbF9wZXI7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUg InRlbXBvcmFsX2ZrX3BlcjJwZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg InRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFs aWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wNC0wMSkpIGlzIG5vdCBwcmVzZW50 IGluIHRhYmxlICJ0ZW1wb3JhbF9wZXIiLgorLS0gb2theSBhZ2FpbjoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVy CisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworCUZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl cjsKKy0tCistLSB0ZXN0IHBnX2dldF9jb25zdHJhaW50ZGVmCistLQorU0VMRUNUIHBnX2dl dF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUg PSAndGVtcG9yYWxfZmtfcGVyMnBlcl9mayc7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9w ZXIoaWQsIFBFUklPRCB2YWxpZF9hdCkKKygxIHJvdykKKworLS0KKy0tIHRlc3QgRksgcmVm ZXJlbmNpbmcgaW5zZXJ0cworLS0KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMV0n LCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAxJywgJ1sxLDFdJyk7CistLSBzaG91bGQgZmFp bDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnMjAxOC0wMS0wMicsICcy MDE4LTA0LTAxJywgJ1sxLDFdJyk7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFi bGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwg dmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wNC0wMSkpIGlzIG5vdCBwcmVz ZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wZXIiLgorLS0gbm93IGl0IHNob3VsZCB3b3JrOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbMSwxXScsICcyMDE4LTAyLTAzJywgJzIwMTgtMDMtMDMnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJywg J1sxLDFdJyk7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCistLQorVVBE QVRFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMics IHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJyBXSEVSRSBpZCA9ICdbMSwxXSc7CistLSBzaG91 bGQgZmFpbDoKK1VQREFURSB0ZW1wb3JhbF9ma19wZXIycGVyIFNFVCB2YWxpZF9mcm9tID0g JzIwMTgtMDEtMDInLCB2YWxpZF90aWwgPSAnMjAxOC0wNS0wMScgV0hFUkUgaWQgPSAnWzEs MV0nOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19w ZXIycGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzEsMiks IFsyMDE4LTAxLTAyLDIwMTgtMDUtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVt cG9yYWxfcGVyIi4KK1VQREFURSB0ZW1wb3JhbF9ma19wZXIycGVyIFNFVCBwYXJlbnRfaWQg PSAnWzgsOF0nIFdIRVJFIGlkID0gJ1sxLDFdJzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0 ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnBlcl9mayIKK0RFVEFJTDogIEtleSAocGFy ZW50X2lkLCB2YWxpZF9hdCk9KFs4LDkpLCBbMjAxOC0wMS0wMiwyMDE4LTAzLTAxKSkgaXMg bm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3BlciIuCistLSBBTFRFUiBGSyBERUZF UlJBQkxFCitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgICAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpLAorICAgICgnWzUsNV0nLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAx Jyk7CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICAgKCdbMywzXScsICcyMDE4LTAx LTA1JywgJzIwMTgtMDEtMTAnLCAnWzUsNV0nKTsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfcGVyMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9m aworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworICBERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOyAtLXNob3VsZCBub3QgZmFpbCB5ZXQu CitDT01NSVQ7IC0tIHNob3VsZCBmYWlsIGhlcmUuCitFUlJPUjogIHVwZGF0ZSBvciBkZWxl dGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3Ry YWludCAidGVtcG9yYWxfZmtfcGVyMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3Bl cjJwZXIiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0w MSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3Jh bF9ma19wZXIycGVyIi4KKy0tCistLSB0ZXN0IEZLIHBhcmVudCB1cGRhdGVzIE5PIEFDVElP TgorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcGVyMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisJRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisJ T04gVVBEQVRFIE5PIEFDVElPTjsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVj YXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNSw1XScs ICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VU IHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJyBX SEVSRSBpZCA9ICdbNSw1XSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4g dGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2Ug aXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMKKyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdb NSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkg VkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7 CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDItMDEnLCB2 YWxpZF90aWwgPSAnMjAxNi0wMy0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRf ZnJvbSA9ICcyMDE4LTAyLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDMtMDEnOworLS0g YSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitV UERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxp ZF90aWwgPSAnMjAxNi0wMi0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJv bSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworRVJST1I6 ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZv cmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxl ICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShb NSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJv bSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCistLSBhIFBLIHVwZGF0ZSB0aGF0IGZh aWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCwgYnV0IG5vdCAndGlsIGNvbW1pdDoK K0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgICAgQUxURVIg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgICAgREVGRVJSQUJMRSBJTklU SUFMTFkgREVGRVJSRUQ7CisgIFVQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20g PSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJworICBXSEVSRSBpZCA9 ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgt MDItMDEnKTsKK0NPTU1JVDsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAi dGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3Jh bF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJ TDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEp KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIi LgorLS0gY2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFs X3BlciBTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zy b20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9S OiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBm b3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJs ZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0o WzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZy b20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorLS0gY2hhbmdpbmcgYW4gdW5yZWZl cmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlk ID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gY2hhbmdpbmcganVzdCBhIHBh cnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw3XScK K1dIRVJFIGlkID0gJ1s1LDVdJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJs ZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1w b3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RF VEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDIt MDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJw ZXIiLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw1XScs ICdbNyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20g fCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzUs NikgfCAyMDE2LTAyLTAxIHwgMjAxNi0wMy0wMQorIFs1LDYpIHwgMjAxOC0wMS0wMSB8IDIw MTgtMDEtMDIKKyBbNSw2KSB8IDIwMTgtMDEtMDMgfCAyMDE4LTAyLTAxCisgWzcsOCkgfCAy MDE4LTAxLTAyIHwgMjAxOC0wMS0wMworKDQgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19wZXIycGVyIFdIRVJFIGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAK Ky0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFszLDQp IHwgMjAxOC0wMS0wNSB8IDIwMTgtMDEtMTAgfCBbNSw2KQorKDEgcm93KQorCistLSB0aGVu IGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRl IHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9 ICdbMywzXSc7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYt MDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBB TkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDIt MDEnOworLS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgUkVTVFJJQ1QKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19wZXIycGVyCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJw ZXJfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorCU9OIFVQREFURSBS RVNUUklDVDsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVt ZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNSw1XScsICcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20g PSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJyBXSEVSRSBpZCA9ICdb NSw1XSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBu dW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdb NSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNSw1XScsICcyMDE4 LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMs M10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7CitVUERBVEUgdGVt cG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDItMDEnLCB2YWxpZF90aWwgPSAn MjAxNi0wMy0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4 LTAyLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDMtMDEnOworLS0gYSBQSyB1cGRhdGUg dGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQgKGV2ZW4gYmVmb3JlIGNv bW1pdCk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICAg IEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICAgIERFRkVSUkFC TEUgSU5JVElBTExZIERFRkVSUkVEOworICBVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxp ZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScKKyAgV0hF UkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxp ZF90aWwgPSAnMjAxOC0wMi0wMSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFi bGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVt cG9yYWxfZmtfcGVyMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiCitE RVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAy LTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIy cGVyIi4KK1JPTExCQUNLOworLS0gY2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgor VVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdbNSw1 XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4 LTAyLTAxJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxf cGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIy cGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAo aWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGls bCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorLS0gY2hh bmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3JhbF9w ZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4 LTAxLTAzJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gY2hh bmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVyCitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1NF VCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK0VSUk9SOiAgdXBkYXRlIG9y IGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBj b25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxf ZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4 LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRl bXBvcmFsX2ZrX3BlcjJwZXIiLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUg aWQgaW4gKCdbNSw1XScsICdbNyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQg ICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgWzUsNikgfCAyMDE2LTAyLTAxIHwgMjAxNi0wMy0wMQorIFs1LDYpIHwg MjAxOC0wMS0wMSB8IDIwMTgtMDEtMDIKKyBbNSw2KSB8IDIwMTgtMDEtMDMgfCAyMDE4LTAy LTAxCisgWzcsOCkgfCAyMDE4LTAxLTAyIHwgMjAxOC0wMS0wMworKDQgcm93cykKKworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkIGluICgnWzMsM10nKSBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGls ICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFszLDQpIHwgMjAxOC0wMS0wNSB8IDIwMTgtMDEtMTAgfCBbNSw2KQorKDEg cm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhl IHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcGVy MnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxp ZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScKK1dIRVJF IGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRf dGlsID0gJzIwMTgtMDItMDEnOworLS0KKy0tIHRlc3QgRksgcGFyZW50IGRlbGV0ZXMgTk8g QUNUSU9OCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVy OworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCURST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19wZXIycGVyX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBl cgorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKwlGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9w ZXI7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMg aWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUs NV0nOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVt ZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMK KyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNSw1XScs ICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9t ID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7CistLSBhIFBL IGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20g PSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAg dXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3Jl aWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAi dGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUs NiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20g dGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorLS0gYSBQSyBkZWxldGUgdGhhdCBmYWls cyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQsIGJ1dCBub3QgJ3RpbCBjb21taXQ6CitC RUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICAgIEFMVEVSIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElB TExZIERFRkVSUkVEOworICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAn WzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJyk7CitDT01NSVQ7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRl bXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxf ZmtfcGVyMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiCitERVRBSUw6 ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkg aXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIi4K Ky0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEt MDInIFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gZGVsZXRpbmcg anVzdCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hF UkUgaWQgPSAnWzUsNV0nOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0 ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFs X2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkp IGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIu CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3 LDddJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZh bGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbNSw2KSB8 IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTAyCisgWzUsNikgfCAyMDE4LTAxLTAzIHwgMjAxOC0w Mi0wMQorKDIgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdI RVJFIGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2 YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFszLDQpIHwgMjAxOC0wMS0wNSB8IDIw MTgtMDEtMTAgfCBbNSw2KQorKDEgcm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0 aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRF IEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0g JzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLQorLS0gdGVz dCBGSyBwYXJlbnQgZGVsZXRlcyBSRVNUUklDVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3Bl ciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJw ZXIKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQor CVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisJT04gREVMRVRFIFJFU1RSSUNUOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1 Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVz ZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpLAorICAoJ1s1LDVdJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMywzXScsICcyMDE4LTAxLTA1JywgJzIw MTgtMDEtMTAnLCAnWzUsNV0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBp ZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgQU5EIHZhbGlkX3Rp bCA9ICcyMDE4LTAzLTAxJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBi b3RoIGFyZSByZWZlcmVuY2VkIChldmVuIGJlZm9yZSBjb21taXQpOgorQkVHSU47CisgIEFM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJF RDsKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQg dmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEn OworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsi IG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFs aWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVy ZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCitST0xMQkFDSzsKKy0t IGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDIn IFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gZGVsZXRpbmcganVz dCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUg aWQgPSAnWzUsNV0nOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1w b3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2Zr X3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDdd JykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlk X3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbNSw2KSB8IDIw MTgtMDEtMDEgfCAyMDE4LTAxLTAyCisgWzUsNikgfCAyMDE4LTAxLTAzIHwgMjAxOC0wMi0w MQorKDIgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJF IGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxp ZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFszLDQpIHwgMjAxOC0wMS0wNSB8IDIwMTgt MDEtMTAgfCBbNSw2KQorKDEgcm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5n IEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIw MTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLQorLS0gcGVyMnBl ciB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucworLS0KKy0tIFRPQzoKKy0tIHBhcmVu dCB1cGRhdGVzIENBU0NBREUKKy0tIHBhcmVudCBkZWxldGVzIENBU0NBREUKKy0tIHBhcmVu dCB1cGRhdGVzIFNFVCBOVUxMCistLSBwYXJlbnQgZGVsZXRlcyBTRVQgTlVMTAorLS0gcGFy ZW50IHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tIHBhcmVudCBkZWxldGVzIFNFVCBERUZBVUxU CistLSBwYXJlbnQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLSBwYXJl bnQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLSBwYXJlbnQgdXBkYXRl cyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcGFyZW50IGRlbGV0ZXMgU0VUIE5V TEwgKHR3byBzY2FsYXIgY29scykKKy0tIHBhcmVudCBkZWxldGVzIFNFVCBOVUxMICh0d28g c2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tIHBhcmVudCB1cGRhdGVzIFNFVCBE RUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSBwYXJlbnQgZGVsZXRlcyBTRVQgREVGQVVM VCAodHdvIHNjYWxhciBjb2xzKQorLS0gcGFyZW50IGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3 byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0KKy0tIHRlc3QgRksgcGFy ZW50IHVwZGF0ZXMgQ0FTQ0FERQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9y YWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJwZXIKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maywKKwlB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIK KwkJT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMg b24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw3 XScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIy cGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5 LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFs3LDgpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8 IDIwMjEtMDEtMDEgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitV UERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0n OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAs MTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20g fCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5 LTAxLTAxIHwgWzcsOCkKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8 IFs3LDgpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNyw4KQor KDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScs ICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScpOwor VVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzksOV0nIFdIRVJFIGlkID0gJ1s4LDhd JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFy ZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWzksMTApCisg WzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KQorKDIgcm93cykK KworLS0KKy0tIHRlc3QgRksgcGFyZW50IGRlbGV0ZXMgQ0FTQ0FERQorLS0KK1RSVU5DQVRF IHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19w ZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAo J1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAx JyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEp IHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMjAt MDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVs ZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwg fCBwYXJlbnRfaWQgCistLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorKDAgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4 XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFM VUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScp OworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsy MDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkKKygxIHJvdykKKwor LS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgU0VUIE5VTEwKKy0tCitUUlVOQ0FURSB0 ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVy MnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJwZXJfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9m aworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVS RU5DRVMgdGVtcG9yYWxfcGVyCisJCU9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VU IE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9w ZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAt MDEtMDEnIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwg IHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYs NykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IAorIFsxMDAsMTAx KSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5v bi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsN10nIFdI RVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBX SEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAy MDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IAorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAy MDIwLTAxLTAxIHwgCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCAK KygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0n LCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsK K1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s5LDldJyBXSEVSRSBpZCA9ICdbOCw4 XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBh cmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8IAorIFsyMDAs MjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkKKygyIHJvd3MpCisKKy0t CistLSB0ZXN0IEZLIHBhcmVudCBkZWxldGVzIFNFVCBOVUxMCistLQorVFJVTkNBVEUgdGVt cG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEw MCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworLS0gbGVm dG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdI RVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBX SEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAy MDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0w MSB8IDIwMjAtMDEtMDEgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0w MSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRf aWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCAKKyBbMTAwLDEwMSkg fCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEg fCAyMDIxLTAxLTAxIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5j ZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAn WzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAg fCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBb MjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCisoMiByb3dzKQor CistLQorLS0gdGVzdCBGSyBwYXJlbnQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0KK1RSVU5D QVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0x XScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfcGVyMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbLTEs LTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maywKKwlBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKwkJ T04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRv dmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0g J1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEw MCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KQorIFsxMDAsMTAxKSB8 IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAyMC0w MS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRh dGU6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAn WzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0g J1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlk X2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEg fCAyMDE5LTAxLTAxIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAt MDEtMDEgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8 IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdb OCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzksOV0nIFdIRVJFIGlk ID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwg Wy0xLDApCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KQor KDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IGRlbGV0ZXMgU0VUIERFRkFVTFQK Ky0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1stMSwtMV0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAw XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBp ZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUg aWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg dmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0w MS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAy MDIwLTAxLTAxIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEt MDEgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50 X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWy0xLDApCisgWzEw MCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkKKyBbMTAwLDEwMSkg fCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcGVyIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEn OjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0g J1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlk X2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEg fCAyMDIwLTAxLTAxIHwgWy0xLDApCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEt MDEtMDEgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0 ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3Bl cjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAo aWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYs Nl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScsICdbNiw2XScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3Bl cjJwZXIKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisJQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKwkJRk9SRUlHTiBLRVkgKHBh cmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0 ZW1wb3JhbF9wZXIyCisJCU9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOwor LS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScg U0VUIGlkMSA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBw YXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgt MDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwg MjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEw MSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMg cm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQg aWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVu dF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0w MSB8IDIwMTktMDEtMDEgfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5 LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFs3LDgpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8 IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzcsOCkgICAgICB8IFs2LDcpCisoMyByb3dz KQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworVVBEQVRF IHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbOSw5XScgV0hFUkUgaWQxID0gJ1s4LDhdJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVu dF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0w MSB8IDIwMjAtMDEtMDEgfCBbOSwxMCkgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCAyMDIw LTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKwor LS0KKy0tIHRlc3QgRksgcGFyZW50IGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xz KQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwx MDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOwor LS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAx LTAxJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBw YXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTkt MDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwg MjAyMS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDIgcm93cykKKworLS0gbm9uLUZQ TyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw2 XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sx MDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworIGlkIHwgdmFsaWRfZnJvbSB8IHZh bGlkX3RpbCB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorKDAgcm93cykKKworLS0g RksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScs ICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWws IHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTkt MDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVS RSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAg fCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5 KSAgICAgIHwgWzgsOSkKKygxIHJvdykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0 ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9w ZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIg KGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2 LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9w ZXIycGVyCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorCUFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZIChw YXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMg dGVtcG9yYWxfcGVyMgorCQlPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxM OworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0w MScgU0VUIGlkMSA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIw MTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEp IHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEp IHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKygzIHJv d3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlk MSA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRf aWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEg fCAyMDE5LTAxLTAxIHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEg fCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEg fCAyMDIxLTAxLTAxIHwgICAgICAgICAgICB8IAorKDMgcm93cykKKworLS0gRksgYWNyb3Nz IHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEs IGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScs ICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl cjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywg J1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNF VCBpZDEgPSAnWzksOV0nIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lk MiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwg ICAgICAgICAgICB8IAorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwg WzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyBwYXJlbnQg ZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBv cmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0n LCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYs Nl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9m cm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KSAgICAgIHwg WzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAg ICAgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAg ICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAx LTAxIHwgMjAxOS0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCAyMDE5LTAx LTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAx LTAxIHwgMjAyMS0wMS0wMSB8ICAgICAgICAgICAgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFj cm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAo aWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgs OF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4 XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJl bnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQg PSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFs aWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAg ICB8IAorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkgICAg ICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRlcyBT RVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLQorVFJVTkNB VEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CistLSBmYWlscyBiZWNh dXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9mazJfcGVyMnBlcgorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBl cl9maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworCQlGT1JF SUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlS RUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKwkJT04gREVMRVRFIFNFVCBOVUxMICh2YWxpZF9h dCkgT04gVVBEQVRFIFNFVCBOVUxMOworRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZl cmVuY2VkIGluIE9OIERFTEVURSBTRVQgYWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9r OgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKwlEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X3BlcjJwZXJfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBF UklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisJCU9OIERFTEVU RSBTRVQgTlVMTCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVS RSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBX SEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQy IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBb Niw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0w MSB8ICAgICAgICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIx LTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIGRl bGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwx MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8 IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgICAgICAgICAgICB8IFs2LDcp CisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAgICAgICAgIHwg WzYsNykKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8ICAgICAgICAg ICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEt MDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0n LCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4 LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8 IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAx OC0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAgICAgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkg fCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93 cykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBz Y2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJf cGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIG51bGwsIG51 bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2 XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKyAgQUxURVIgQ09MVU1O IHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBBTFRFUiBDT0xVTU4gcGFy ZW50X2lkMiBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9wZXIycGVyX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIy cGVyX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0Qg dmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorCQlPTiBERUxFVEUgU0VU IERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw3XScsIGlk MiA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRf aWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEg fCAyMDE5LTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0w MS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwg MjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKygzIHJvd3Mp CisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9 ICdbNyw3XScsIGlkMiA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3Rp bCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8 IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAs MTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFstMSwwKQor IFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWy0xLDApICAgICB8IFst MSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgs OF0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzksOV0nLCBpZDIgPSAn WzksOV0nIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQg PSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFs aWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAg ICB8IFstMSwwKQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgs OSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyBwYXJlbnQgZGVs ZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBv cmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0x XScsICdbLTEsLTFdJywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIy IChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdb Niw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRl czoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw2XSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAs MTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20g fCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3 KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8 IFstMSwwKQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykg ICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBw YXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgt MDEtMDEgfCAyMDE5LTAxLTAxIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAsMTAxKSB8 IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAs MTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWy0xLDApICAgICB8IFstMSwwKQor KDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0w MS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAs MjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIw MjAtMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0w MSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCist LSB0ZXN0IEZLIHBhcmVudCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMs IFNFVCBERUZBVUxUIHN1YnNldCkKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1w b3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQy LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzYsNl0nLCBu dWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0n LCAnWzYsNl0nKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9E IGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIEFMVEVSIENP TFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKwlEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX3BlcjJwZXJfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIs IFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisJCU9OIERF TEVURSBTRVQgREVGQVVMVCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQgREVGQVVMVDsKK0VS Uk9SOiAgY29sdW1uICJ2YWxpZF9hdCIgcmVmZXJlbmNlZCBpbiBPTiBERUxFVEUgU0VUIGFj dGlvbiBjYW5ub3QgYmUgUEVSSU9ECistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr Ml9wZXIycGVyCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEs LTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisJQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKwkJRk9SRUlHTiBLRVkgKHBh cmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0 ZW1wb3JhbF9wZXIyCisJCU9OIERFTEVURSBTRVQgREVGQVVMVCAocGFyZW50X2lkMSkgT04g VVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRf dGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEp IHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAw LDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbNiw3KQor IFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2 LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAy MDE5LTAxLTAxIHwgWy0xLDApICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0w MSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDIw LTAxLTAxIHwgMjAyMS0wMS0wMSB8IFstMSwwKSAgICAgfCBbNiw3KQorKDMgcm93cykKKwor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4 XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWy0xLC0xXScsICdbOCw4XScsIG51bGwsIG51bGwpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBp ZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2 YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkg ICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4 LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKwogLS0gRksgd2l0aCBhIGN1c3RvbSByYW5n ZSB0eXBlCiBDUkVBVEUgVFlQRSBteWRhdGVyYW5nZSBBUyByYW5nZShzdWJ0eXBlPWRhdGUp OwogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxf c2NoZWR1bGUKaW5kZXggNWU5NjkzYTFkMjQuLmQ5MjI1Y2YzNjg1IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTQzLDcgKzQzLDcgQEAgdGVzdDogY29weSBjb3B5 c2VsZWN0IGNvcHlkbWwgaW5zZXJ0IGluc2VydF9jb25mbGljdAogIyBOb3RlOiBtYW55IG9m IHRoZSB0ZXN0cyBpbiBsYXRlciBncm91cHMgZGVwZW5kIG9uIGNyZWF0ZV9pbmRleAogIyAt LS0tLS0tLS0tCiB0ZXN0OiBjcmVhdGVfZnVuY3Rpb25fYyBjcmVhdGVfbWlzYyBjcmVhdGVf b3BlcmF0b3IgY3JlYXRlX3Byb2NlZHVyZSBjcmVhdGVfdGFibGUgY3JlYXRlX3R5cGUgY3Jl YXRlX3NjaGVtYQotdGVzdDogY3JlYXRlX2luZGV4IGNyZWF0ZV9pbmRleF9zcGdpc3QgY3Jl YXRlX3ZpZXcgaW5kZXhfaW5jbHVkaW5nIGluZGV4X2luY2x1ZGluZ19naXN0Cit0ZXN0OiBj cmVhdGVfaW5kZXggY3JlYXRlX2luZGV4X3NwZ2lzdCBjcmVhdGVfdmlldyBpbmRleF9pbmNs dWRpbmcgaW5kZXhfaW5jbHVkaW5nX2dpc3QgcGVyaW9kcwogCiAjIC0tLS0tLS0tLS0KICMg QW5vdGhlciBncm91cCBvZiBwYXJhbGxlbCB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv Zm9yX3BvcnRpb25fb2Yuc3FsCmluZGV4IGU4MDJiNWM2N2ZmLi5lMjUyMTVhM2ZkNSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbApAQCAtNDIzLDYgKzQy MywzOCBAQCBTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKIAogRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKIAorLS0g VGVzdCB3aXRoIFBFUklPRHMKKworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Qy ICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZh bGlkX3RpbCBkYXRlLAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisgIFBFUklPRCBGT1IgdmFs aWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCBmb3JfcG9ydGlv bl9vZl90ZXN0Ml9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpCispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdDIKK1ZBTFVFUworKCdb MSwyKScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnLCAnb25lJyksCisoJ1sxLDIpJywg JzIwMTgtMDItMDQnLCAnMjAxOC0wMy0wMycsICdvbmUnKSwKKygnWzEsMiknLCAnMjAxOC0w My0wMycsICcyMDE4LTA0LTA0JywgJ29uZScpLAorKCdbMiwzKScsICcyMDE4LTAxLTAxJywg JzIwMTgtMDUtMDEnLCAndHdvJyksCisoJ1szLDQpJywgJzIwMTgtMDEtMDEnLCBudWxsLCAn dGhyZWUnKTsKKzsKKworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTEwJyBUTyAnMjAxOC0wMi0xMCcKK1NFVCBu YW1lID0gJ29uZV4xJworV0hFUkUgaWQgPSAnWzEsMiknOworCitERUxFVEUgRlJPTSBmb3Jf cG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0w MS0xNScgVE8gJzIwMTgtMDItMTUnCitXSEVSRSBpZCA9ICdbMiwzKSc7CisKK1NFTEVDVCAq IEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCitE Uk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyOworCiAtLSBUZXN0IHdpdGggYSBjdXN0 b20gcmFuZ2UgdHlwZQogCiBDUkVBVEUgVFlQRSBteWRhdGVyYW5nZSBBUyByYW5nZShzdWJ0 eXBlPWRhdGUpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGVyaW9kcy5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wZXJpb2RzLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWQzOTcxMmQyYjQKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wZXJpb2RzLnNxbApAQCAtMCwwICsxLDE3OCBAQAor LyogU3lzdGVtIHBlcmlvZHMgYXJlIG5vdCBpbXBsZW1lbnRlZCAqLworY3JlYXRlIHRhYmxl IHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHN5c3RlbV90 aW1lIChkcywgZGUpKTsKKworLyogUGVyaW9kcyBtdXN0IHNwZWNpZnkgYWN0dWFsIGNvbHVt bnMgKi8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwg cGVyaW9kIGZvciBwIChib2d1cywgZGUpKTsKK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdl ciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgYm9ndXMpKTsKKworLyog RGF0YSB0eXBlcyBtdXN0IG1hdGNoIGV4YWN0bHkgKi8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQg aW50ZWdlciwgZHMgZGF0ZSwgZGUgdGltZXN0YW1wLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkp OworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyB0ZXh0IGNvbGxhdGUgIkMiLCBk ZSB0ZXh0IGNvbGxhdGUgIlBPU0lYIiwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsKKworLyog UGVyaW9kcyBtdXN0IGhhdmUgYSBkZWZhdWx0IEJUcmVlIG9wZXJhdG9yIGNsYXNzICovCitj cmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIHhtbCwgZGUgeG1sLCBwZXJpb2QgZm9y IHAgKGRzLCBkZSkpOworCisvKiBQZXJpb2QgYW5kIGNvbHVtbiBuYW1lcyBhcmUgaW4gdGhl IHNhbWUgbmFtZXNwYWNlICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRh dGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgY3RpZCAoZHMsIGRlKSk7CitjcmVhdGUgdGFibGUg cHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgaWQgKGRzLCBk ZSkpOworCisvKiBQZXJpb2QgbmFtZSBjYW4ndCBiZSBnaXZlbiBtb3JlIHRoYW4gb25jZSAq LworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJp b2QgZm9yIHAgKGRzLCBkZSksIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CisKKy8qIE5vdyBt YWtlIG9uZSB0aGF0IHdvcmtzICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRz IGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CisKKy8qIFNFTEVDVCAq IGV4Y2x1ZGVzIHRoZSBQRVJJT0QgKi8KK2luc2VydCBpbnRvIHB0IHZhbHVlcyAoMSwgJzIw MDAtMDEtMDEnLCAnMjAwMS0wMS0wMScpOworc2VsZWN0ICogZnJvbSBwdDsKKworLyogWW91 IGNhbiBnZXQgaXQgaWYgeW91IHdhbnQgKi8KK3NlbGVjdCAqLCBwIGZyb20gcHQ7CisKKy8q IFR3byBhcmUgb2theSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0 ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwMSAoZHMsIGRlKSwgcGVyaW9kIGZvciBwMiAoZHMs IGRlKSk7Citkcm9wIHRhYmxlIHB0MjsKKworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQg Y29sdW1uOiB3b3JrcyAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0 ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAo ZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGgg KGNvbGV4aXN0cyA9IHRydWUpKTsKK1xkIHB0MgorZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lw IGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbCBpc24n dCB0aGVyZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUg ZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKTsK Ky8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUg b3B0aW9uIGhhcyBhbiBpbnZhbGlkIHZhbHVlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBp bnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAo Y29sZXhpc3RzID0gJ3doYXRldmVyJykpOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQg Y29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgbm90IE5PVCBOVUxMICovCitj cmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVy YW5nZSBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkLCBw ZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpOworLyogU2tp cCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4g aXMgbm90IEdFTkVSQVRFRCAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMg ZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwsIHBlcmlvZCBmb3IgcCAoZHMs IGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVS QVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBHRU5FUkFURUQgYnV0 IHdpdGggdGhlIHdyb25nIGV4cHJlc3Npb24gKi8KKy0tIFRPRE86CistLSBjcmVhdGUgdGFi bGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3Qg bnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZGUsIGRzKSkgc3RvcmVkLCBw ZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpOworLyogU2tp cCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4g aXMgdGhlIHdyb25nIHR5cGUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRz IGRhdGUsIGRlIGRhdGUsIHAgdHNyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFz ICh0c3JhbmdlKGRzLCBkZSkpIHN0b3JlZCwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGgg KGNvbGV4aXN0cyA9IHRydWUpKTsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVt bjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIGluaGVyaXRlZCAqLworY3JlYXRlIHRh YmxlIHB0MnBhcmVudCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFu Z2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0 b3JlZCk7CitjcmVhdGUgdGFibGUgcHQyIChwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAo Y29sZXhpc3RzID0gdHJ1ZSkpIGluaGVyaXRzIChwdDJwYXJlbnQpOworZHJvcCB0YWJsZSBw dDJwYXJlbnQ7CisKKworLyoKKyAqIEFMVEVSIFRBQkxFIHRlc3RzCisgKi8KK2FsdGVyIHRh YmxlIHB0IGRyb3AgcGVyaW9kIGZvciBwOworYWx0ZXIgdGFibGUgcHQgYWRkIHBlcmlvZCBm b3Igc3lzdGVtX3RpbWUgKGRzLCBkZSk7CithbHRlciB0YWJsZSBwdCBhZGQgcGVyaW9kIGZv ciBwIChkcywgZGUpOworCisvKiBBZGRpbmcgYSBzZWNvbmQgb25lICovCitjcmVhdGUgdGFi bGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAxIChk cywgZGUpKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwMiAoZHMsIGRlKTsK K2Ryb3AgdGFibGUgcHQyOworCisvKiBDYW4ndCBkcm9wIGl0cyBjb2x1bW5zICovCithbHRl ciB0YWJsZSBwdCBkcm9wIGNvbHVtbiBkczsKK2FsdGVyIHRhYmxlIHB0IGRyb3AgY29sdW1u IGRlOworCisvKiBDYW4ndCBjaGFuZ2UgdGhlIGRhdGEgdHlwZXMgKi8KK2FsdGVyIHRhYmxl IHB0IGFsdGVyIGNvbHVtbiBkcyB0eXBlIHRpbWVzdGFtcDsKK2FsdGVyIHRhYmxlIHB0IGFs dGVyIGNvbHVtbiBkcyB0eXBlIHRpbWVzdGFtcDsKKworLyogY29sdW1uL3BlcmlvZCBuYW1l c3BhY2UgY29uZmxpY3RzICovCithbHRlciB0YWJsZSBwdCBhZGQgY29sdW1uIHAgaW50ZWdl cjsKK2FsdGVyIHRhYmxlIHB0IHJlbmFtZSBjb2x1bW4gaWQgdG8gcDsKK2FsdGVyIHRhYmxl IHB0IGFkZCBwZXJpb2QgZm9yIHRhYmxlb2lkIChkcywgZGUpOworYWx0ZXIgdGFibGUgcHQg YWRkIHBlcmlvZCBmb3IgIi4uLi4uLi4ucGcuZHJvcHBlZC40Li4uLi4uLi4iIChkcywgZGUp OworCisvKiBhZGRpbmcgY29sdW1ucyBhbmQgdGhlIHBlcmlvZCBhdCB0aGUgc2FtZSB0aW1l ICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyKTsKK2FsdGVyIHRhYmxlIHB0MiBh ZGQgY29sdW1uIGRzIGRhdGUsIGFkZCBjb2x1bW4gZGUgZGF0ZSwgYWRkIHBlcmlvZCBmb3Ig cCAoZHMsIGRlKTsKK2Ryb3AgdGFibGUgcHQyOworCisvKiBBbWJpZ3VvdXMgcmFuZ2UgdHlw ZXMgcmFpc2UgYW4gZXJyb3IgKi8KK2NyZWF0ZSB0eXBlIG15ZGF0ZXJhbmdlIGFzIHJhbmdl KHN1YnR5cGU9ZGF0ZSk7CitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnQsIGRzIGRhdGUsIGRl IGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CisKKy8qIFlvdSBjYW4gZ2l2ZSBhbiBl eHBsaWNpdCByYW5nZSB0eXBlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnQsIGRzIGRh dGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChyYW5nZXR5cGUgPSAn bXlkYXRlcmFuZ2UnKSk7Citkcm9wIHR5cGUgbXlkYXRlcmFuZ2U7Citkcm9wIHR5cGUgbXlk YXRlcmFuZ2UgY2FzY2FkZTsKK2Ryb3AgdGFibGUgcHQyOworY3JlYXRlIHRhYmxlIHB0MiAo aWQgaW50LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAo cmFuZ2V0eXBlID0gJ2RhdGVyYW5nZScpKTsKKworLyogUmFuZ2UgdHlwZSBpcyBub3QgZm91 bmQgKi8KK2NyZWF0ZSB0YWJsZSBwdDMgKGlkIGludCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVy aW9kIGZvciBwIChkcywgZGUpIHdpdGggKHJhbmdldHlwZSA9ICdub3RhcmFuZ2UnKSk7CisK Ky8qIFJhbmdlIHR5cGUgaXMgdGhlIHdyb25nIHR5cGUgKi8KK2NyZWF0ZSB0YWJsZSBwdDMg KGlkIGludCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGgg KHJhbmdldHlwZSA9ICd0c3R6cmFuZ2UnKSk7Citkcm9wIHRhYmxlIHB0MjsKKworLyogU2tp cCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiB3b3JrcyAqLworY3JlYXRlIHRhYmxlIHB0 MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwg Z2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCk7CithbHRl ciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMg PSB0cnVlKTsKK1xkIHB0MgorZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdF TkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbCBpc24ndCB0aGVyZSAqLwor Y3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSk7CithbHRl ciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMg PSB0cnVlKTsKK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQg Y29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBvcHRpb24gaGFzIGFuIGludmFsaWQgdmFsdWUg Ki8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAg ZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywg ZGUpKSBzdG9yZWQpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBk ZSkgd2l0aCAoY29sZXhpc3RzID0gJ3doYXRldmVyJyk7Citkcm9wIHRhYmxlIHB0MjsKKy8q IFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29s dW1uIGlzIG5vdCBOT1QgTlVMTCAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwg ZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2UgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0 ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBm b3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK2Ryb3AgdGFibGUgcHQy OworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRo ZSBjb2x1bW4gaXMgbm90IEdFTkVSQVRFRCAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50 ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwpOworYWx0ZXIg dGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0g dHJ1ZSk7Citkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNv bHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIEdFTkVSQVRFRCBidXQgd2l0aCB0 aGUgd3JvbmcgZXhwcmVzc2lvbiAqLworLS0gVE9ETzoKKy0tIGNyZWF0ZSB0YWJsZSBwdDIg KGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdl bmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkZSwgZHMpKSBzdG9yZWQpOworLS0gYWx0 ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3Rz ID0gdHJ1ZSk7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJl Y2F1c2UgdGhlIGNvbHVtbiBpcyB0aGUgd3JvbmcgdHlwZSAqLworY3JlYXRlIHRhYmxlIHB0 MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCB0c3JhbmdlIG5vdCBudWxsIGdl bmVyYXRlZCBhbHdheXMgYXMgKHRzcmFuZ2UoZHMsIGRlKSkgc3RvcmVkKTsKK2FsdGVyIHRh YmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRy dWUpOworZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1 bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBpbmhlcml0ZWQgKi8KK2NyZWF0ZSB0 YWJsZSBwdDJwYXJlbnQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJh bmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBz dG9yZWQpOworY3JlYXRlIHRhYmxlIHB0MiAoKSBpbmhlcml0cyAocHQycGFyZW50KTsKK2Fs dGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0 cyA9IHRydWUpOworZHJvcCB0YWJsZSBwdDI7Citkcm9wIHRhYmxlIHB0MnBhcmVudDsKKwor LyogQ1JFQVRFIFRBQkxFIChMSUtFIC4uLikgKi8KKworLyogUGVyaW9kcyBhcmUgbm90IGNv cGllZCBieSBMSUtFLCBzbyB0aGVpciBjb2x1bW5zIGFyZW4ndCBlaXRoZXIgKi8KK2NyZWF0 ZSB0YWJsZSBwdDIgKGxpa2UgcHQpOworXGQgcHQyCitkcm9wIHRhYmxlIHB0MjsKKworLyog Q2FuIGFkZCBhIHBlcmlvZCByZWZlcnJpbmcgdG8gTElLRSdkIGNvbHVtbnMgKi8KK2NyZWF0 ZSB0YWJsZSBub3RfcCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSk7CitjcmVhdGUg dGFibGUgcHQyIChsaWtlIG5vdF9wLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworXGQgcHQy Citkcm9wIHRhYmxlIHB0MjsKKworLyogQ2FuIGFkZCBhIHBlcmlvZCB3aXRoIHRoZSBzYW1l IG5hbWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2UgcHQsIHBlcmlvZCBmb3IgcCAoZHMs IGRlKSk7CitcZCBwdDIKK2Ryb3AgdGFibGUgcHQyOworCisvKiBDYW4gYWRkIGEgcGVyaW9k IHdpdGggYSBkaWZmZXJlbnQgbmFtZSAqLworY3JlYXRlIHRhYmxlIHB0MiAobGlrZSBwdCwg cGVyaW9kIGZvciBwMiAoZHMsIGRlKSk7CitcZCBwdDIKK2Ryb3AgdGFibGUgcHQyOworCisv KiBDYW4ndCBhZGQgYSBwZXJpb2Qgd2hvc2UgbmFtZSBjb25mbGljdHMgd2l0aCBhIExJS0Un ZCBjb2x1bW4gKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2UgcHQsIHBlcmlvZCBmb3IgaWQg KGRzLCBkZSkpOworCisvKiBDUkVBVEUgVEFMQkUgSU5IRVJJVFMgKi8KKworLyogQ2FuJ3Qg aW5oZXJpdCBmcm9tIGEgdGFibGUgd2l0aCBhIHBlcmlvZCAqLworY3JlYXRlIHRhYmxlIHB0 MiAobmFtZSB0ZXh0KSBpbmhlcml0cyAocHQpOworCisvKiBDYW4ndCBpbmhlcml0IHdpdGgg YSBwZXJpb2QgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGQycyBkYXRlLCBkMmUgZGF0ZSwgcGVy aW9kIGZvciBwIChkMnMsIGQyZSkpIGluaGVyaXRzIChub3RfcCk7CisKK2Ryb3AgdGFibGUg bm90X3A7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJs YXBzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmlu ZGV4IGM4MjQxYzI3OTI5Li40NThjNDUyNjNiNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvd2l0aG91dF9vdmVybGFwcy5zcWwKQEAgLTkxLDYgKzkxLDMxIEBAIENSRUFURSBUQUJM RSB0ZW1wb3JhbF9ybmcyICgKIFNFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZS T00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZzJfcGsnOwog U0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25z dHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nMl9wayc7CiAKKy0tIFBLIHdp dGggb25lIGNvbHVtbiBwbHVzIGEgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3Bl ciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwg ZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwK KyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1xkIHRlbXBvcmFsX3BlcgorU0VMRUNUIHBnX2dl dF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUg PSAndGVtcG9yYWxfcGVyX3BrJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQs IDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFs X3Blcl9wayc7CisKKy0tIFBLIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIFBFUklPRDoKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbF9wZXIyICgKKyAgaWQxIGludDRyYW5nZSwKKyAgaWQyIGlu dDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVS SU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbF9wZXIyX3BrIFBSSU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIyCitTRUxFQ1QgcGdfZ2V0X2Nv bnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0 ZW1wb3JhbF9wZXIyX3BrJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAs IHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3Bl cjJfcGsnOworCiAtLSBQSyB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGU6CiBDUkVBVEUgVFlQ RSB0ZXh0cmFuZ2UyIEFTIHJhbmdlIChzdWJ0eXBlPXRleHQsIGNvbGxhdGlvbj0iQyIpOwog Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKApAQCAtMTY5LDYgKzE5NCwzMyBAQCBTRUxF Q1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUg Y29ubmFtZSA9ICd0ZW1wb3JhbF9ybgogU0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRp ZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9y YWxfcm5nM191cSc7CiBEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CiAKKy0tIFVOSVFVRSB3 aXRoIG9uZSBjb2x1bW4gcGx1cyBhIFBFUklPRDoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9w ZXIzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3Rp bCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwp LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIzCitTRUxFQ1QgcGdfZ2V0 X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9 ICd0ZW1wb3JhbF9wZXIzX3VxJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQs IDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFs X3BlcjNfdXEnOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIzOworCistLSBVTklRVUUgd2l0 aCB0d28gY29sdW1ucyBwbHVzIGEgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3Bl cjMgKAorICBpZDEgaW50NHJhbmdlLAorICBpZDIgaW50NHJhbmdlLAorICB2YWxpZF9mcm9t IGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5J UVVFIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1w b3JhbF9wZXIzCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2Nv bnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIzX3VxJzsKK1NFTEVDVCBw Z19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBX SEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3BlcjNfdXEnOworRFJPUCBUQUJMRSB0ZW1wb3Jh bF9wZXIzOworCiAtLSBVTklRVUUgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlOgogQ1JFQVRF IFRZUEUgdGV4dHJhbmdlMiBBUyByYW5nZSAoc3VidHlwZT10ZXh0LCBjb2xsYXRpb249IkMi KTsKIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKQEAgLTI0NSw2ICsyOTcsNTggQEAg QUxURVIgVEFCTEUgdGVtcG9yYWwzCiAJVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUyk7CiBEUk9QIFRBQkxFIHRlbXBvcmFsMzsKIAorLS0gUFJJTUFSWSBLRVkgd2l0 aCBQRVJJT0QgYWxyZWFkeSB0aGVyZQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisgIGlk IGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAg UEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorKTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsMworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsKKyAgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1xkIHRlbXBvcmFs MworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CisKKy0tIFBSSU1BUlkgS0VZIHdpdGggUEVSSU9E IHRvbworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFs aWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZQorKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsMworICBBREQgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGls KSwKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWwzX3BrCisgIFBSSU1BUlkgS0VZIChpZCwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitcZCB0ZW1wb3JhbDMKK0RST1AgVEFCTEUg dGVtcG9yYWwzOworCistLSBVTklRVUUgd2l0aCBQRVJJT0QgYWxyZWFkeSB0aGVyZQorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBk YXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRf ZnJvbSwgdmFsaWRfdGlsKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbDNfdXEKKyAgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUyk7CitcZCB0ZW1wb3JhbDMKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworCistLSBV TklRVUUgd2l0aCBQRVJJT0QgdG9vCitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQg aW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlCispOwor QUxURVIgVEFCTEUgdGVtcG9yYWwzCisgIEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEKKyAg VU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitcZCB0ZW1wb3JhbDMK K0RST1AgVEFCTEUgdGVtcG9yYWwzOworCiAtLQogLS0gcmFuZ2UgUEs6IHRlc3Qgd2l0aCBl eGlzdGluZyByb3dzCiAtLQpAQCAtNjE1LDYgKzcxOSwyMTIgQEAgV0hFUkUgICBpZCA9ICdb MSwyKScgQU5EIHZhbGlkX2F0IElTIE5VTEw7CiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21s dHJuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9tbHRy bmczOwogCistLQorLS0gUEVSSU9EIFBLOiB0ZXN0IHdpdGggZXhpc3Rpbmcgcm93cworLS0K KworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9w ZXJfcGs7CisKKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEtMDInLCAnMjAx OC0wMi0wMycpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1szLDQpJywgJzIwMTgtMDEtMDEnLCBOVUxMKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X3BlciBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrOworCistLSBzaG91bGQgZmFpbDoKK0JF R0lOOworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOwor ICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVy X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitST0xM QkFDSzsKKy0tIHJlamVjdHMgZW1wdHk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9y YWxfcGVyIERST1AgUEVSSU9EIEZPUiB2YWxpZF9hdDsKKyAgSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0KScsICcy MDIwLTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVy IEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpOworUk9M TEJBQ0s7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfcGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXI7CisKKy0tCistLSBQRVJJT0QgUEs6IHRlc3Qg aW5zZXJ0cworLS0KKworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMics ICcyMDE4LTAyLTAzJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0w NC0wNCcpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbMiwzKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzMsNCknLCAnMjAxOC0wMS0wMScsIE5VTEwpOworCistLSBzaG91bGQgZmFp bDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoTlVMTCwgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOworLS0gcmVqZWN0cyBlbXB0 eToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzMsNCknLCAnMjAyMC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCist LSBQRVJJT0QgUEs6IHRlc3QgdXBkYXRlcworLS0KKworLS0gdXBkYXRlIHRoZSBzY2FsYXIg cGFydAorVVBEQVRFICB0ZW1wb3JhbF9wZXIKK1NFVCAgICAgaWQgPSAnWzExLDEyKScKK1dI RVJFICAgaWQgPSAnWzEsMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6 ZGF0ZTsKKy0tIHVwZGF0ZSB0aGUgUEVSSU9EIGJvdW5kcworVVBEQVRFICB0ZW1wb3JhbF9w ZXIKK1NFVCAgICAgdmFsaWRfZnJvbSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRf dGlsID0gJzIwMjEtMDEtMDEnCitXSEVSRSAgIGlkID0gJ1sxMSwxMiknCitBTkQgICAgIHZh bGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSBib3RoIGF0IG9uY2UK K1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0gJ1syMSwyMiknLAorICAgICAg ICB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDInLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAx OC0wMi0wMycKK1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQgQD4g JzIwMjAtMDEtMTUnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgIHRlbXBvcmFsX3Bl cgorU0VUICAgICBpZCA9ICdbMSwyKScsCisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0w My0wNScsCisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDE4LTA1LTA1JworV0hFUkUgICBpZCA9 ICdbMjEsMjIpJzsKKy0tIHNldCB0aGUgc2NhbGFyIHBhcnQgdG8gTlVMTAorVVBEQVRFICB0 ZW1wb3JhbF9wZXIKK1NFVCAgICAgaWQgPSBOVUxMLAorICAgICAgICB2YWxpZF9mcm9tID0g JzIwMTgtMDMtMDUnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAxOC0wNS0wNScKK1dIRVJF ICAgaWQgPSAnWzIxLDIyKSc7CistLSBzZXQgYSBQRVJJT0QgYm91bmQgdG8gTlVMTCAob2th eSkKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0gJ1sxLDIpJywKKyAgICAg ICAgdmFsaWRfZnJvbSA9ICcyMDE4LTA0LTA0JywKKyAgICAgICAgdmFsaWRfdGlsID0gTlVM TAorV0hFUkUgICBpZCA9ICdbMjEsMjIpJzsKKy0tIHJlamVjdHMgZW1wdHk6CitVUERBVEUg IHRlbXBvcmFsX3BlcgorU0VUICAgICBpZCA9ICdbMjEsMjIpJywKKyAgICAgICAgdmFsaWRf ZnJvbSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMjAtMDEtMDEn CitXSEVSRSAgIGlkID0gJ1sxLDIpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIFBFUklPRCBVUTogdGVzdCB3aXRoIGV4 aXN0aW5nIHJvd3MKKy0tCisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wZXIzICgKKwlpZCBp bnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBF UklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKKyk7CisKKy0tIG9r YXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0KScs ICcyMDE4LTAxLTAxJywgTlVMTCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKE5VTEwsICcyMDE4LTAxLTAxJywgJzIw MTgtMDEtMDUnKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfcGVyM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X3BlcjNfdXE7CisKKy0tIHNob3VsZCBmYWlsOgorQkVHSU47CisgIElOU0VSVCBJTlRPIHRl bXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIp JywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wZXIzIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVFIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitST0xMQkFDSzsKKy0tIHJlamVjdHMgZW1wdHk6 CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyMyBEUk9QIFBFUklPRCBGT1Ig dmFsaWRfYXQ7CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMjAtMDEtMDEnLCAnMjAyMC0wMS0w MScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIzIEFERCBQRVJJT0QgRk9SIHZhbGlk X2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpOworUk9MTEJBQ0s7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9wZXIzIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVFIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w ZXIzOworCistLQorLS0gUEVSSU9EIFVROiB0ZXN0IGluc2VydHMKKy0tCisKKy0tIG9rYXk6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIs MyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0KScsICcy MDE4LTAxLTAxJywgTlVMTCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKE5VTEwsICcyMDE4LTAxLTAxJywgJzIwMTgt MDEtMDUnKTsKKworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIz IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAx LTAxJywgJzIwMTgtMDEtMDUnKTsKKy0tIHJlamVjdHMgZW1wdHk6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0 KScsICcyMDIwLTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGVyMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSBQRVJJT0QgVVE6IHRl c3QgdXBkYXRlcworLS0KKworLS0gdXBkYXRlIHRoZSBzY2FsYXIgcGFydAorVVBEQVRFICB0 ZW1wb3JhbF9wZXIzCitTRVQgICAgIGlkID0gJ1sxMSwxMiknCitXSEVSRSAgIGlkID0gJ1sx LDIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRh dGUgdGhlIFBFUklPRCBib3VuZHMKK1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VUICAgICB2 YWxpZF9mcm9tID0gJzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAyMS0w MS0wMScKK1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIw MTgtMDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIGJvdGggYXQgb25jZQorVVBEQVRFICB0ZW1w b3JhbF9wZXIzCitTRVQgICAgIGlkID0gJ1syMSwyMiknLAorICAgICAgICB2YWxpZF9mcm9t ID0gJzIwMTgtMDEtMDInLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMycKK1dI RVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMjAtMDEtMTUn OjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFICB0ZW1wb3JhbF9wZXIzCitTRVQgICAg IGlkID0gJ1sxLDIpJywKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDE4LTAzLTA1JywKKyAg ICAgICAgdmFsaWRfdGlsID0gJzIwMTgtMDUtMDUnCitXSEVSRSAgIGlkID0gJ1syMSwyMikn OworLS0gc2V0IHRoZSBzY2FsYXIgcGFydCB0byBOVUxMIChva2F5KQorVVBEQVRFICB0ZW1w b3JhbF9wZXIzCitTRVQgICAgIGlkID0gTlVMTCwKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcy MDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMjEtMDEtMDEnCitXSEVSRSAg IGlkID0gJ1syMSwyMiknOworLS0gc2V0IGEgUEVSSU9EIGJvdW5kIHRvIE5VTEwgKG9rYXkp CitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgaWQgPSAnWzEsMiknLAorICAgICAg ICB2YWxpZF9mcm9tID0gJzIwMTgtMDQtMDQnLAorICAgICAgICB2YWxpZF90aWwgPSBOVUxM CitXSEVSRSAgIGlkIElTIE5VTEwgQU5EIHZhbGlkX2F0IEA+ICcyMDIwLTA2LTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBzaG91bGQgZmFpbDoKK1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VUICAgICB2YWxp ZF9mcm9tID0gJzIwMTgtMDMtMDEnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAxOC0wNS0w NScKK1dIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2YWxpZF90aWwgSVMgTlVMTDsKKy0tIHJl amVjdHMgZW1wdHk6CitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgdmFsaWRfZnJv bSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMjAtMDEtMDEnCitX SEVSRSAgIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfdGlsIElTIE5VTEw7CistLSBzdGlsbCBy ZWplY3RzIGVtcHR5IHdoZW4gc2NhbGFyIHBhcnQgaXMgTlVMTDoKK1VQREFURSAgdGVtcG9y YWxfcGVyMworU0VUICAgICBpZCA9IE5VTEwsCisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAy MC0wMS0wMScsCisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDIwLTAxLTAxJworV0hFUkUgICBp ZCA9ICdbMSwyKScgQU5EIHZhbGlkX3RpbCBJUyBOVUxMOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK0RST1AgVEFCTEUgdGVtcG9yYWxf cGVyMzsKKwogLS0KIC0tIHRlc3QgYSByYW5nZSB3aXRoIGJvdGggYSBQSyBhbmQgYSBVTklR VUUgY29uc3RyYWludAogLS0KQEAgLTkwNiw2ICsxMjE2LDcgQEAgQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJybmcgKAogCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19m ayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCVJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQogKTsKK1xkIHRlbXBvcmFs X2ZrX3JuZzJybmcKIERST1AgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZzsKIAogLS0gd2l0 aCBtaXNtYXRjaGVkIFBFUklPRCBjb2x1bW5zOgpAQCAtMjUyMiw2ICsyODMzLDg4NSBAQCBJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQQogREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5n MiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRh dGU7CiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCistLQorLS0gdGVzdCBG T1JFSUdOIEtFWSwgUEVSSU9EIHJlZmVyZW5jZXMgUEVSSU9ECistLQorCistLSB0ZXN0IHRh YmxlIHNldHVwCitEUk9QIFRBQkxFIHRlbXBvcmFsX3BlcjsKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9wZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRf dGlsIGRhdGUsCisJUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGls KQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcgorCUFERCBDT05TVFJBSU5UIHRlbXBv cmFsX3Blcl9waworCVBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ Uyk7CisKKy0tIENhbid0IGNyZWF0ZSBhIEZLIHdpdGggYSBtaXNtYXRjaGVkIHJhbmdlIHR5 cGUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2Us CisJdmFsaWRfZnJvbSBpbnQsCisJdmFsaWRfdGlsIGludCwKKwlwYXJlbnRfaWQgaW50NHJh bmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJ Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVG RVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworCistLSB3 b3JrczogUEVSSU9EIGZvciBib3RoIHJlZmVyZW5jZWQgYW5kIHJlZmVyZW5jaW5nCitDUkVB VEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlk X2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAor CVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2Zr IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworXGQgdGVtcG9yYWxf ZmtfcGVyMnBlcgorRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyOworCistLSB3aXRo IG1pc21hdGNoZWQgUEVSSU9EIGNvbHVtbnM6CisKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlkX2F0KQorLS0gUkVGRVJFTkNFUyBwYXJ0 IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGlsIGRh dGUsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf YXQpCispOworLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxp ZF9hdCkKKy0tIGJvdGggc2hvdWxkIHNwZWNpZnkgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2ZrX3BlcjJwZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUs CisJdmFsaWRfdGlsIGRhdGUsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlQRVJJT0QgRk9S IHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtF WSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9hdCkKKyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAo aWQsIFBFUklPRCB2YWxpZF9hdCkKKy0tIEZPUkVJR04gS0VZIHBhcnQgc2hvdWxkIHNwZWNp ZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisJaWQgaW50 NHJhbmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlwYXJlbnRf aWQgaW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlk X3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQorCQlS RUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CistLSAo cGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCistLSBGT1JFSUdO IEtFWSBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X2ZrX3BlcjJwZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFs aWRfdGlsIGRhdGUsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZhbGlk X2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp LAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyk7CistLSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkKQorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9t IGRhdGUsCisJdmFsaWRfdGlsIGRhdGUsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlQRVJJ T0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVt cG9yYWxfcGVyIChpZCkKKyk7CistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIChpZCwgUEVS SU9EIHZhbGlkX2F0KQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorCWlk IGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGlsIGRhdGUsCisJcGFy ZW50X2lkIGludDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2 YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorCQlSRUZFUkVO Q0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CistLSB3aXRoIGlu ZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgorLS0gKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRlLAor CXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJUEVSSU9EIEZPUiB2 YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl cgorKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcjsKKy0tIChwYXJlbnRfaWQp IFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGlsIGRh dGUsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQor CQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorKTsKKworLS0gc2hvdWxkIGZhaWwgYmVjYXVz ZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJwZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJ dmFsaWRfdGlsIGRhdGUsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl ciAoaWQsIFBFUklPRCBpZCkKKyk7CisKKy0tIFR3byBzY2FsYXIgY29sdW1ucworRFJPUCBU QUJMRSB0ZW1wb3JhbF9wZXIyOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BlcjIgKAorCWlk MSBpbnQ0cmFuZ2UsCisJaWQyIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFs aWRfdGlsIGRhdGUsCisJUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRf dGlsKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjJfcGsgUFJJTUFSWSBLRVkgKGlkMSwg aWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKKworQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2ZrMl9wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRl LAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZDEgaW50NHJhbmdlLAorCXBhcmVudF9p ZDIgaW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlk X3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9wayBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIs IFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlk MiwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK1xkIHRlbXBvcmFsX2ZrMl9wZXIycGVyCitEUk9Q IFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworCistLQorLS0gdGVzdCBBTFRFUiBUQUJM RSBBREQgQ09OU1RSQUlOVAorLS0KKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGlsIGRh dGUsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJwZXJfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOwor LS0gVHdvIHNjYWxhciBjb2x1bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIy cGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBk YXRlLAorCXBhcmVudF9pZDEgaW50NHJhbmdlLAorCXBhcmVudF9pZDIgaW50NHJhbmdlLAor CVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RS QUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJw ZXIKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworCUZPUkVJR04g S0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJF TkNFUyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KTsKK1xkIHRl bXBvcmFsX2ZrMl9wZXIycGVyCisKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVy ZW5jZWQgdGFibGUsIGFuZCB3cm9uZyBjb2x1bW4gdHlwZToKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJwZXIKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9m aywKKwlEUk9QIFBFUklPRCBGT1IgdmFsaWRfYXQsCisJQUxURVIgQ09MVU1OIHZhbGlkX2Zy b20gVFlQRSB0aW1lc3RhbXAsCisJQUxURVIgQ09MVU1OIHZhbGlkX3RpbCBUWVBFIHRpbWVz dGFtcCwKKwlBREQgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGls KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcGVyMnBlcgorCURST1AgUEVSSU9EIEZPUiB2YWxpZF9hdCwKKwlBTFRFUiBD T0xVTU4gdmFsaWRfZnJvbSBUWVBFIGRhdGUsCisJQUxURVIgQ09MVU1OIHZhbGlkX3RpbCBU WVBFIGRhdGUsCisJQUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlk X3RpbCk7CisKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGU6 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcGVyMnBlcl9maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsKKworLS0gc2hvdWxkIGZhaWwg YmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfcGVyMnBlcgorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJw ZXJfZmsyCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkKKwlS RUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCBpZCk7CisKKy0tCistLSB0ZXN0 IHdpdGggcm93cyBhbHJlYWR5CistLQorCitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIy cGVyOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbMSwxXScsICcy MDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSwKKyAgKCdbMSwxXScsICcyMDE4LTAzLTAzJywg JzIwMTgtMDQtMDQnKSwKKyAgKCdbMiwyXScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUn KSwKKyAgKCdbMywzXScsICcyMDE4LTAxLTAxJywgTlVMTCk7CisKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3BlcjJwZXIKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBl cl9mazsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMV0nLCAnMjAxOC0wMS0wMics ICcyMDE4LTAyLTAxJywgJ1sxLDFdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworCUZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFs X3BlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgn WzIsMl0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJywgJ1sxLDFdJyk7CistLSBzaG91 bGQgZmFpbDoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworLS0gb2theSBh Z2FpbjoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19wZXIycGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBl cl9maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZF UkVOQ0VTIHRlbXBvcmFsX3BlcjsKKworLS0KKy0tIHRlc3QgcGdfZ2V0X2NvbnN0cmFpbnRk ZWYKKy0tCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29u c3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX2ZrX3BlcjJwZXJfZmsnOworCist LQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyBpbnNlcnRzCistLQorCitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxLDFdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScsICdbMSwx XScpOworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDJd JywgJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScsICdbMSwxXScpOworLS0gbm93IGl0IHNo b3VsZCB3b3JrOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwxXScsICcyMDE4LTAyLTAzJywgJzIwMTgtMDMtMDMn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnMjAxOC0wMS0wMicsICcy MDE4LTA0LTAxJywgJ1sxLDFdJyk7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jaW5nIHVw ZGF0ZXMKKy0tCisKK1VQREFURSB0ZW1wb3JhbF9ma19wZXIycGVyIFNFVCB2YWxpZF9mcm9t ID0gJzIwMTgtMDEtMDInLCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMScgV0hFUkUgaWQgPSAn WzEsMV0nOworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfZmtfcGVyMnBlciBT RVQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAyJywgdmFsaWRfdGlsID0gJzIwMTgtMDUtMDEn IFdIRVJFIGlkID0gJ1sxLDFdJzsKK1VQREFURSB0ZW1wb3JhbF9ma19wZXIycGVyIFNFVCBw YXJlbnRfaWQgPSAnWzgsOF0nIFdIRVJFIGlkID0gJ1sxLDFdJzsKKworLS0gQUxURVIgRksg REVGRVJSQUJMRQorCitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgICAoJ1s1LDVdJywgJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpLAorICAgICgnWzUsNV0nLCAnMjAxOC0wMi0wMScsICcyMDE4 LTAzLTAxJyk7CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICAgKCdbMywzXScsICcy MDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnLCAnWzUsNV0nKTsKKyAgQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcGVyMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVy MnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworCisgIERFTEVU RSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XSc7IC0tc2hvdWxkIG5vdCBm YWlsIHlldC4KK0NPTU1JVDsgLS0gc2hvdWxkIGZhaWwgaGVyZS4KKworLS0KKy0tIHRlc3Qg RksgcGFyZW50IHVwZGF0ZXMgTk8gQUNUSU9OCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9w ZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cGVyCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZms7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnBlcl9maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK KwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorCU9OIFVQREFURSBOTyBBQ1RJT047CistLSBh IFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3Qg cmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAx Jyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEn LCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQ SyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyBy ZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9y YWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNV0nLCAnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzUsNV0nLCAnMjAxOC0wMi0wMScsICcyMDE4 LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDNdJywgJzIwMTgtMDEt MDUnLCAnMjAxOC0wMS0xMCcsICdbNSw1XScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQg dmFsaWRfZnJvbSA9ICcyMDE2LTAyLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDMtMDEnCitX SEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgQU5EIHZh bGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVj YXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFs aWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEnCitXSEVS RSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlk X3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVz ZSBib3RoIGFyZSByZWZlcmVuY2VkLCBidXQgbm90ICd0aWwgY29tbWl0OgorQkVHSU47Cisg IEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgICBBTFRFUiBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZF UlJFRDsKKworICBVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYt MDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScKKyAgV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7 CitDT01NSVQ7CistLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUg dGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQg dmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEn OworLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0 ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDIn IFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0n OworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVy CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0w MS0xMCcKK1NFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIg V0hFUkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHRoZW4g ZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUg c3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0g J1szLDNdJzsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0w MS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFO RCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0w MSc7CisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCB1cGRhdGVzIFJFU1RSSUNUCistLQorCitU UlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19wZXIycGVyCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Bl cjJwZXJfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorCU9OIFVQREFU RSBSRVNUUklDVDsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUg bnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNSw1XScsICcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zy b20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJyBXSEVSRSBpZCA9 ICdbNSw1XSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRo ZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAg KCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNSw1XScsICcy MDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgn WzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7CitVUERBVEUg dGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDItMDEnLCB2YWxpZF90aWwg PSAnMjAxNi0wMy0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcy MDE4LTAyLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDMtMDEnOworLS0gYSBQSyB1cGRh dGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQgKGV2ZW4gYmVmb3Jl IGNvbW1pdCk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgor ICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICAgIERFRkVS UkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworCisgIFVQREFURSB0ZW1wb3JhbF9wZXIgU0VU IHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJwor ICBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5E IHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK1JPTExCQUNLOworLS0gY2hhbmdpbmcgdGhl IHNjYWxhciBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcs N10nCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScg QU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0tIGNoYW5naW5nIGFuIHVucmVmZXJl bmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1NFVCBpZCA9 ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0 IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQgPSAnWzcsN10nCitX SEVSRSBpZCA9ICdbNSw1XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBp ZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkIGluICgnWzMsM10nKSBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJl Y29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVt cG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitVUERBVEUgdGVtcG9yYWxf cGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0w Mi0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAx JyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworCistLQorLS0gdGVzdCBGSyBwYXJl bnQgZGVsZXRlcyBOTyBBQ1RJT04KKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVt cG9yYWxfZmtfcGVyMnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3BlcjJwZXIKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVy X2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVS RU5DRVMgdGVtcG9yYWxfcGVyOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBiZWNh dXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s1LDVdJywg JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVy IFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgZXZl biB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5n ZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAx JyksCisgICgnWzUsNV0nLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1szLDNdJywgJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcs ICdbNSw1XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVd JyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgt MDMtMDEnOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJl ZmVyZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0n IEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0w Mi0wMSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVm ZXJlbmNlZCwgYnV0IG5vdCAndGlsIGNvbW1pdDoKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19wZXIycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAgREVM RVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworQ09NTUlUOworLS0g ZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicg VE8gJzIwMTgtMDEtMDMnCitXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBkZWxldGluZyBqdXN0 IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitXSEVSRSBp ZCA9ICdbNSw1XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAo J1s1LDVdJywgJ1s3LDddJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBh bmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxf ZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w ZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFO RCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCBk ZWxldGVzIFJFU1RSSUNUCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFs X2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mawor CUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VT IHRlbXBvcmFsX3BlcgorCU9OIERFTEVURSBSRVNUUklDVDsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNV0nLCAn MjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIg V0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVu IHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdl IGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMKKyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEn KSwKKyAgKCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywg J1s1LDVdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0n IEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0w My0wMSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVm ZXJlbmNlZCAoZXZlbiBiZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19wZXIycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAgREVM RVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJv bSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworUk9MTEJB Q0s7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRF IEZST00gdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4 LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGRlbGV0 aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyCitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcK K1dIRVJFIGlkID0gJ1s1LDVdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIFdIRVJF IGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgaW4gKCdbMywzXScpIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksg cmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1szLDNdJzsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0w MS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKworLS0KKy0tIHBlcjJwZXIg dGVzdCBPTiBVUERBVEUvREVMRVRFIG9wdGlvbnMKKy0tCistLSBUT0M6CistLSBwYXJlbnQg dXBkYXRlcyBDQVNDQURFCistLSBwYXJlbnQgZGVsZXRlcyBDQVNDQURFCistLSBwYXJlbnQg dXBkYXRlcyBTRVQgTlVMTAorLS0gcGFyZW50IGRlbGV0ZXMgU0VUIE5VTEwKKy0tIHBhcmVu dCB1cGRhdGVzIFNFVCBERUZBVUxUCistLSBwYXJlbnQgZGVsZXRlcyBTRVQgREVGQVVMVAor LS0gcGFyZW50IHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcGFyZW50 IGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcGFyZW50IHVwZGF0ZXMg U0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHBhcmVudCBkZWxldGVzIFNFVCBOVUxM ICh0d28gc2NhbGFyIGNvbHMpCistLSBwYXJlbnQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNj YWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLSBwYXJlbnQgdXBkYXRlcyBTRVQgREVG QVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcGFyZW50IGRlbGV0ZXMgU0VUIERFRkFVTFQg KHR3byBzY2FsYXIgY29scykKKy0tIHBhcmVudCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28g c2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKworLS0KKy0tIHRlc3QgRksgcGFy ZW50IHVwZGF0ZXMgQ0FTQ0FERQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1w b3JhbF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfcGVyMnBlcgorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAor CUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKwkJRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl cgorCQlPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3 LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cist LSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDdd JyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAxOC0w MS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxf cGVyIFNFVCBpZCA9ICdbOSw5XScgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0t CistLSB0ZXN0IEZLIHBhcmVudCBkZWxldGVzIENBU0NBREUKKy0tCisKK1RSVU5DQVRFIHRl bXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIy cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sx MDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBX SEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24t RlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNiw2 XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEw MCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVy ZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQg PSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCB1cGRhdGVzIFNF VCBOVUxMCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJw ZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJ RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmssCisJQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisJCU9OIERFTEVU RSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBz aWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUg aWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJF IGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1 cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQg PSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlk ID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3 byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAy MC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQg PSAnWzksOV0nIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlk ID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBG SyBwYXJlbnQgZGVsZXRlcyBTRVQgTlVMTAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVy LCB0ZW1wb3JhbF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9u IGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0g J1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9 ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRl OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAn WzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw4XScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgU0VUIERFRkFVTFQK Ky0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWy0xLC0xXScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwx MDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBE RUZBVUxUICdbLTEsLTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBl cl9maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisJCUZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1w b3JhbF9wZXIKKwkJT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVM VDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0w MScgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIg U0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywg JzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf cGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitV UERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbOSw5XScgV0hFUkUgaWQgPSAnWzgsOF0n IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCBkZWxldGVzIFNFVCBERUZBVUxU CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1stMSwtMV0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAs MTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKKy0tIGxlZnRv dmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVS RSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hF UkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBP IHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNiw2XSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwx MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5j ZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAn WzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCB1cGRhdGVzIENBU0NB REUgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRl bXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBp ZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJf cGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50 X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScs ICdbNiw2XScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIK KwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisJQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9p ZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wZXIyCisJCU9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVm dG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlk MSA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBp ZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0w MScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAw XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK1VQ REFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzksOV0nIFdIRVJFIGlkMSA9ICdbOCw4 XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCBkZWxldGVzIENBU0NBREUg KHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBv cmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVy MnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lk MikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdb Niw2XScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVt cG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Bl cjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisK Ky0tCistLSB0ZXN0IEZLIHBhcmVudCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNv bHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBl cjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sx MDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0n KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisJRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9wZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQ RVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorCQlPTiBERUxF VEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw3XScgV0hF UkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24t RlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzcsN10nIFdI RVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVy IFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIy IChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdb OCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4 LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK1VQREFURSB0ZW1wb3JhbF9w ZXIyIFNFVCBpZDEgPSAnWzksOV0nIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Bl cjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisK Ky0tCistLSB0ZXN0IEZLIHBhcmVudCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNv bHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBl cjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sx MDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0n KTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxf cGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAy MC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hF UkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBh Y3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIg KGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4 LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgs OF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFy ZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlk ID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBG SyBwYXJlbnQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBz dWJzZXQpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVy MnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYs Nl0nKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVt bjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisJRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9wZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQ RVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorCQlPTiBERUxF VEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBvazoKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisJRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9wZXIycGVyX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIy cGVyX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0Qg dmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorCQlPTiBERUxFVEUgU0VU IE5VTEwgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBv biBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQx ID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUg aWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRl bGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwx MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5j ZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEn LCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAy MC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVy MnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lk MikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdb OCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEg PSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyBwYXJlbnQgdXBkYXRlcyBT RVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxf cGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIy IChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywg J1stMSwtMV0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlk MSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZd JywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIy cGVyCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywK KyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDIgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorCURS T1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKwlBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwg cGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl cjIKKwkJT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNF VCBpZDEgPSAnWzcsN10nLCBpZDIgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUg dGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s3LDddJywgaWQyID0gJ1s3LDddJyBXSEVSRSBp ZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVS RSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9z cyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQx LCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0n LCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScs ICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRf aWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyMiBT RVQgaWQxID0gJ1s5LDldJywgaWQyID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworCistLQorLS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRlcyBTRVQgREVGQVVMVCAo dHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9y YWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBu dWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0n LCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00g dGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAx JyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4 LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVy IFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xz LCBTRVQgREVGQVVMVCBzdWJzZXQpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0 ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwg aWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzYsNl0n LCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJw ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYs Nl0nLCAnWzYsNl0nKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVS SU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIEFMVEVS IENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKwlEUk9QIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX3BlcjJwZXJfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisJCU9O IERFTEVURSBTRVQgREVGQVVMVCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQgREVGQVVMVDsK Ky0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKyAgQUxURVIgQ09M VU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorCURST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfcGVyMnBlcl9maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwg UEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKwkJT04gREVM RVRFIFNFVCBERUZBVUxUIChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7Cist LSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEt MDEnIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9w ZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlk MSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJF IGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3Nz IHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEs IGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScs ICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl cjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywg J1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn Wy0xLC0xXScsICdbOCw4XScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hF UkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwogLS0gRksgd2l0aCBhIGN1c3RvbSByYW5n ZSB0eXBlCiAKIENSRUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFTIHJhbmdlKHN1YnR5cGU9ZGF0 ZSk7Ci0tIAoyLjQyLjAKCg== --------------GsheMzFFcGdccG4bvM4vwSCN--