From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <ffmpeg-devel-bounces@ffmpeg.org>
Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100])
	by master.gitmailbox.com (Postfix) with ESMTPS id C24B5475B3
	for <ffmpegdev@gitmailbox.com>; Sun, 23 Mar 2025 18:58:48 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 62B0A687A0C;
	Sun, 23 Mar 2025 20:58:44 +0200 (EET)
Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com
 [209.85.128.51])
 by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 806636879DB
 for <ffmpeg-devel@ffmpeg.org>; Sun, 23 Mar 2025 20:58:37 +0200 (EET)
Received: by mail-wm1-f51.google.com with SMTP id
 5b1f17b1804b1-4394a0c65fcso33096695e9.1
 for <ffmpeg-devel@ffmpeg.org>; Sun, 23 Mar 2025 11:58:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1742756317; x=1743361117; darn=ffmpeg.org;
 h=content-transfer-encoding:in-reply-to:from:content-language
 :references:to:subject:user-agent:mime-version:date:message-id:from
 :to:cc:subject:date:message-id:reply-to;
 bh=lnLW1+AQX673hPTNSGK9PJ/fEn8FOhiTwUjHMcJJiZ4=;
 b=il459uAL0poEyn1ZMJI2Ef3pr8R3Tt8WMpZm0TN6feUcAgkiK8Zdcig7wjwma/bgJe
 IQl7cyJXosyL1FJKwZ2XK9LChgJibKCO74oNVAdZ5N1/UhUNnx/tpchVvxoqDP82qjG/
 RaNcm10WVayVvwGSZzOb9pFA0v3taLxha7PzoPnEfzRhR8gCzsvVh0tbG5C+iE/p7hJp
 /M5hIk1IdPDyU5tRMlartg6Zmzs8j0W3kMTukeVfaLWqnSmv0ARtPlceRg5lQBv9fLyq
 h4M6ap6NF0+C9woJE/mQQ4mOz5qTq4NggHo6oGVsHsRMTzGCMNERIz2nqYaU7ipGSQHm
 kPBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742756317; x=1743361117;
 h=content-transfer-encoding:in-reply-to:from:content-language
 :references:to:subject:user-agent:mime-version:date:message-id
 :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=lnLW1+AQX673hPTNSGK9PJ/fEn8FOhiTwUjHMcJJiZ4=;
 b=j51VeYYrt4tqF83N3mRKtRMBMCuXgJv5qPCwmV05Cmk5L4hgTWtAtG6d5iUg0NEpsf
 HqVyXnMR2UmV5y4DPaLIm8SeQdCFkfBb1BkqBCKnenbuJaJn9Wia/aQePQ5kGBV4bskX
 bVP9/8HGxD91AohXoImE810Ft7oStOkCO4Nq86A0nWZHLN1FXB1YSKzgWjh4YHppWEwl
 PRloMQR5NNh7+Ci6FRNKgMoS+mZTHyqTYMQOcP221w7kcInVS3LrA+M6qX6FKr7YtMdF
 p3DLljAEmsC/g7SS8VIieEHI56pEgBOcQc5Xw1K+UkVOuRHaZYExbup6zNuK4rZznOkX
 VGnw==
X-Gm-Message-State: AOJu0YzZdmXjBhTI9no6zrspiJPrjn43b0nE1niq1CfRGawsH5qSOBzS
 Rdk9GzRJHNQzl44bfus8oPJh8puynTYcMKUxfTWH/we+zLC5IPdSXEKrIA==
X-Gm-Gg: ASbGncvpPg6Ua3ccyNXuTpJN3gaOXfszu7w9c54sVPNeWY478DwSKDUk5ZaPWN73ZfY
 IJfu+UYF2zSZ7X1lbA1UjrluZWBRSCIhgTWL6vinjugRXiwyCRJWdqJIrzI9QuUTxChDzN2g+yV
 8KyCp/GHWf2pm68SK3MTEv2r6RydKpnhPknnY9lM00sJJ5+6P2LpaHkafd2U9Dos16ytoMUn68V
 4+vE5gwe+Ab0PWlQeZmpPAgIeg23D5mt6BhnpJ+xw/sknDPknhMnTAQ0r+LtB272CgC5V2MJiv5
 Ys552SDNnfkqI7QJ3wNp7n60OBMJjUPxk4HtTKRqG+UoZ7kjPVzHT/F8GoW+uxGYrYfdf5eG/TN
 A001OGlx9N7qChuf2Jbq+
X-Google-Smtp-Source: AGHT+IEXvghX1XNfkVvxm0YHQjjV3IA8DN8XnDKeecBmrg87XmOVh1J81zsj8fwE+0F5kXgrbObhKw==
X-Received: by 2002:a05:600c:4e56:b0:43c:fb95:c752 with SMTP id
 5b1f17b1804b1-43d509e4386mr111083115e9.3.1742756316306; 
 Sun, 23 Mar 2025 11:58:36 -0700 (PDT)
Received: from ?IPV6:2a01:e0a:ac5:bb70:614d:bbbb:5f2e:983c?
 ([2a01:e0a:ac5:bb70:614d:bbbb:5f2e:983c])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43d4fdbd1c7sm96611765e9.40.2025.03.23.11.58.35
 for <ffmpeg-devel@ffmpeg.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 23 Mar 2025 11:58:35 -0700 (PDT)
Message-ID: <2624fe3b-ef84-41a5-ac9c-2796969485a1@gmail.com>
Date: Sun, 23 Mar 2025 19:58:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: ffmpeg-devel@ffmpeg.org
References: <20250322174949.531092-1-eynard.massimo@gmail.com>
 <70a141e1-f3f0-45ec-939e-990fe6e80400@lynne.ee>
Content-Language: en-US
From: Massimo Eynard <eynard.massimo@gmail.com>
In-Reply-To: <70a141e1-f3f0-45ec-939e-990fe6e80400@lynne.ee>
Subject: Re: [FFmpeg-devel] [PATCH] avcodec/mlpdec: Add decoding of object
 audio data
X-BeenThere: ffmpeg-devel@ffmpeg.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org>
List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe>
List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel>
List-Post: <mailto:ffmpeg-devel@ffmpeg.org>
List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help>
List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe>
Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: ffmpeg-devel-bounces@ffmpeg.org
Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org>
Archived-At: <https://master.gitmailbox.com/ffmpegdev/2624fe3b-ef84-41a5-ac9c-2796969485a1@gmail.com/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>

SGkhCkZpcnN0IHRoYW5rIHlvdSBmb3IgeW91ciBmZWVkYmFjay4KCk9uIDIzLzAzLzIwMjUgMTg6
MzEsIEx5bm5lIHdyb3RlOgo+IE9uIDIyLzAzLzIwMjUgMTg6NDksIE1hc3NpbW8gRXluYXJkIHdy
b3RlOgo+PiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgZGVjb2RpbmcgdGhlIGZvdXJ0aCBN
TFAgc3Vic3RyZWFtCj4+IHdoaWNoIGNvbnRhaW5zIHRoZSAxNi1jaGFubmVsIHByZXNlbnRhdGlv
biB1c2VkIGZvciBBdG1vcwo+PiBhdWRpbyBvYmplY3RzLgo+Pgo+PiBCeSBkZWZhdWx0IG9ubHkg
dGhlIGZpcnN0IHRocmVlIHN1YnN0cmVhbXMgYXJlIGRlY29kZWQKPj4gdW5sZXNzIHRoZSBuZXcg
ZXh0cmFjdF9vYmplY3RzIGZsYWcgaXMgZW5hYmxlZCBhcyB0aGUgcmVzdWx0aW5nCj4+IHByZXNl
bnRhdGlvbiBjb250YWlucyBhdWRpbyBvYmplY3QgZmVlZHMgaW5zdGVhZCBvZiBjbGFzc2ljCj4+
IGxvdWRzcGVha2VyIGZlZWRzLgo+Pgo+PiBBcyB0aGlzIGludHJvZHVjZXMgaW50ZXJwb2xhdGlv
biBvZiBwcmltaXRpdmUgbWF0cmljZXMsIHByZWNpc2lvbgo+PiBoYXMgYmVlbiBpbmNyZWFzZWQg
dG8gMi4xOCBmaXhlZCBwb2ludC4gVGhlcmVmb3JlIHRoaXMgcmVxdWlyZXMKPj4gRFNQIGNvZGUg
dXBncmFkZSB3aGljaCBoYXMgYmVlbiBkb25lIGZvciBDIGFuZCB4ODYgaW1wbGVtZW50YXRpb25z
Cj4+IGJ1dCBub3QgdGhlIEFSTSBpbXBsZW1lbnRhdGlvbi4KPj4KPj4gQWRkcyB0d28gRkFURSB0
ZXN0cyB1c2luZyBleGlzdGluZyBhdG1vcy50aGQgc2FtcGxlIHRvIHJlZmxlY3QKPj4gY2hhbmdl
cy4KPj4KPj4gU2lnbmVkLW9mZi1ieTogTWFzc2ltbyBFeW5hcmQgPGV5bmFyZC5tYXNzaW1vQGdt
YWlsLmNvbT4KPj4gLS0tCj4+IMKgIGxpYmF2Y29kZWMvYXJtL21scGRzcF9hcm12NXRlLlPCoCB8
wqDCoCAyICstCj4+IMKgIGxpYmF2Y29kZWMvYXJtL21scGRzcF9pbml0X2FybS5jIHzCoMKgIDMg
Ky0KPj4gwqAgbGliYXZjb2RlYy9tbHAuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IHzCoCAxMCArLQo+PiDCoCBsaWJhdmNvZGVjL21scF9wYXJzZS5jwqDCoMKgwqDCoMKgwqDCoMKg
wqAgfMKgIDMxICsrLQo+PiDCoCBsaWJhdmNvZGVjL21scF9wYXJzZS5owqDCoMKgwqDCoMKgwqDC
oMKgwqAgfMKgwqAgMSArCj4+IMKgIGxpYmF2Y29kZWMvbWxwX3BhcnNlci5jwqDCoMKgwqDCoMKg
wqDCoMKgIHzCoCAxMSArLQo+PiDCoCBsaWJhdmNvZGVjL21scGRlYy5jwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgfCAzODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQo+PiDCoCBs
aWJhdmNvZGVjL21scGRzcC5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDUwICsrKy0K
Pj4gwqAgbGliYXZjb2RlYy9tbHBkc3AuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAy
NSArKwo+PiDCoCBsaWJhdmNvZGVjL3g4Ni9tbHBkc3AuYXNtwqDCoMKgwqDCoMKgwqAgfMKgIDE5
ICstCj4+IMKgIHRlc3RzL2ZhdGUvdHJ1ZWhkLm1ha8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKg
IDEwICsKPj4gwqAgMTEgZmlsZXMgY2hhbmdlZCwgNDc2IGluc2VydGlvbnMoKyksIDc1IGRlbGV0
aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hcm0vbWxwZHNwX2FybXY1dGUu
UyBiL2xpYmF2Y29kZWMvYXJtL21scGRzcF9hcm12NXRlLlMKPj4gaW5kZXggZDMxNTY4NjExYy4u
NTIxMGYzOTFhYiAxMDA2NDQKPj4gLS0tIGEvbGliYXZjb2RlYy9hcm0vbWxwZHNwX2FybXY1dGUu
Uwo+PiArKysgYi9saWJhdmNvZGVjL2FybS9tbHBkc3BfYXJtdjV0ZS5TCj4+IEBAIC0yMSw3ICsy
MSw3IEBACj4+IMKgIMKgICNpbmNsdWRlICJsaWJhdnV0aWwvYXJtL2FzbS5TIgo+PiDCoCAtI2Rl
ZmluZSBNQVhfQ0hBTk5FTFPCoMKgwqDCoMKgwqDCoCA4Cj4+ICsjZGVmaW5lIE1BWF9DSEFOTkVM
U8KgwqDCoMKgwqDCoCAxNgo+PiDCoCAjZGVmaW5lIE1BWF9GSVJfT1JERVLCoMKgwqDCoMKgwqAg
OAo+PiDCoCAjZGVmaW5lIE1BWF9JSVJfT1JERVLCoMKgwqDCoMKgwqAgNAo+PiDCoCAjZGVmaW5l
IE1BWF9SQVRFRkFDVE9SwqDCoMKgwqDCoCA0Cj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2Fy
bS9tbHBkc3BfaW5pdF9hcm0uYyBiL2xpYmF2Y29kZWMvYXJtL21scGRzcF9pbml0X2FybS5jCj4+
IGluZGV4IDM0YTVmNjFlMWQuLjUwYzNjZjU0ODggMTAwNjQ0Cj4+IC0tLSBhL2xpYmF2Y29kZWMv
YXJtL21scGRzcF9pbml0X2FybS5jCj4+ICsrKyBiL2xpYmF2Y29kZWMvYXJtL21scGRzcF9pbml0
X2FybS5jCj4+IEBAIC0xMTMsNiArMTEzLDcgQEAgc3RhdGljIGludDMyX3QgKCptbHBfc2VsZWN0
X3BhY2tfb3V0cHV0X2FybXY2KHVpbnQ4X3QgKmNoX2Fzc2lnbiwKPj4gwqDCoMKgwqDCoMKgwqDC
oMKgIGNoX2luZGV4ID0gMjsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+PiDCoMKgwqDC
oMKgIGRlZmF1bHQ6Cj4+ICvCoMKgwqDCoMKgwqDCoCAvLyBtYXhfbWF0cml4X2NoYW5uZWwgPiA3
IHJlcXVpcmVzICY3IGxvc3NsZXNzIGJ1ZmZlciBjaGFubmVsIHNoaWZ0Cj4+IMKgwqDCoMKgwqDC
oMKgwqDCoCByZXR1cm4gZmZfbWxwX3BhY2tfb3V0cHV0Owo+PiDCoMKgwqDCoMKgIH0KPj4gwqAg
QEAgLTEzOSw3ICsxNDAsNyBAQCBhdl9jb2xkIHZvaWQgZmZfbWxwZHNwX2luaXRfYXJtKE1MUERT
UENvbnRleHQgKmMpCj4+IMKgIMKgwqDCoMKgwqAgaWYgKGhhdmVfYXJtdjV0ZShjcHVfZmxhZ3Mp
KSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBjLT5tbHBfZmlsdGVyX2NoYW5uZWwgPSBmZl9tbHBf
ZmlsdGVyX2NoYW5uZWxfYXJtOwo+PiAtwqDCoMKgwqDCoMKgwqAgYy0+bWxwX3JlbWF0cml4X2No
YW5uZWwgPSBmZl9tbHBfcmVtYXRyaXhfY2hhbm5lbF9hcm07Cj4+ICvCoMKgwqDCoMKgwqDCoCAv
LyBjLT5tbHBfcmVtYXRyaXhfY2hhbm5lbCA9IGZmX21scF9yZW1hdHJpeF9jaGFubmVsX2FybTsg
Ly8gVE9ETzogdXBkYXRlIHRvIDIuMTggY29lZmYKPj4gwqDCoMKgwqDCoCB9Cj4+IMKgwqDCoMKg
wqAgaWYgKGhhdmVfYXJtdjYoY3B1X2ZsYWdzKSkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGMtPm1s
cF9zZWxlY3RfcGFja19vdXRwdXQgPSBtbHBfc2VsZWN0X3BhY2tfb3V0cHV0X2FybXY2Owo+PiBk
aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9tbHAuaCBiL2xpYmF2Y29kZWMvbWxwLmgKPj4gaW5kZXgg
YmVjNDE0YzY4MC4uMjY0ZWY2NGNmMSAxMDA2NDQKPj4gLS0tIGEvbGliYXZjb2RlYy9tbHAuaAo+
PiArKysgYi9saWJhdmNvZGVjL21scC5oCj4+IEBAIC0zMSwxOSArMzEsMTkgQEAKPj4gwqAgwqAg
LyoqIExhc3QgcG9zc2libGUgbWF0cml4IGNoYW5uZWwgZm9yIGVhY2ggY29kZWMgKi8KPj4gwqAg
I2RlZmluZSBNQVhfTUFUUklYX0NIQU5ORUxfTUxQwqDCoMKgwqDCoCA1Cj4+IC0jZGVmaW5lIE1B
WF9NQVRSSVhfQ0hBTk5FTF9UUlVFSETCoMKgIDcKPj4gKyNkZWZpbmUgTUFYX01BVFJJWF9DSEFO
TkVMX1RSVUVIRMKgIDE1Cj4+IMKgIC8qKiBNYXhpbXVtIG51bWJlciBvZiBjaGFubmVscyBpbiBh
IHZhbGlkIHN0cmVhbS4KPj4gwqDCoCAqwqAgTUxQwqDCoCA6IDUuMSArIDIgbm9pc2UgY2hhbm5l
bHMgLT4gOCBjaGFubmVscwo+PiAtICrCoCBUcnVlSEQ6IDcuMcKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIC0+IDggY2hhbm5lbHMKPj4gKyAqwqAgVHJ1ZUhEOiB1cCB0byAx
Ni1jaCBwcmVzwqDCoMKgwqDCoMKgIC0+IDE2IGNoYW5uZWxzCj4+IMKgwqAgKi8KPj4gLSNkZWZp
bmUgTUFYX0NIQU5ORUxTwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDgKPj4gKyNkZWZp
bmUgTUFYX0NIQU5ORUxTwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxNgo+PiDCoCDCoCAv
KiogTWF4aW11bSBudW1iZXIgb2YgbWF0cmljZXMgdXNlZCBpbiBkZWNvZGluZzsgbW9zdCBzdHJl
YW1zIGhhdmUgb25lIG1hdHJpeAo+PiDCoMKgICrCoCBwZXIgb3V0cHV0IGNoYW5uZWwsIGJ1dCBz
b21lIHJlbWF0cml4IGEgY2hhbm5lbCAodXN1YWxseSAwKSBtb3JlIHRoYW4gb25jZS4KPj4gwqDC
oCAqLwo+PiDCoCAjZGVmaW5lIE1BWF9NQVRSSUNFU19NTFDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IDYKPj4gLSNkZWZpbmUgTUFYX01BVFJJQ0VTX1RSVUVIRMKgwqDCoMKgwqDCoMKgwqAgOAo+PiAt
I2RlZmluZSBNQVhfTUFUUklDRVPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOAo+PiAr
I2RlZmluZSBNQVhfTUFUUklDRVNfVFJVRUhEwqDCoMKgwqDCoMKgwqAgMTYKPj4gKyNkZWZpbmUg
TUFYX01BVFJJQ0VTwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxNgo+PiDCoCDCoCAvKiog
TWF4aW11bSBudW1iZXIgb2Ygc3Vic3RyZWFtcyB0aGF0IGNhbiBiZSBkZWNvZGVkLgo+PiDCoMKg
ICrCoCBNTFAncyBsaW1pdCBpcyAyLiBUcnVlSEQgc3VwcG9ydHMgYXQgbGVhc3QgdXAgdG8gMy4K
Pj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbWxwX3BhcnNlLmMgYi9saWJhdmNvZGVjL21scF9w
YXJzZS5jCj4+IGluZGV4IDkyNGM3MzE0MzkuLmM5NGRhODYwZDAgMTAwNjQ0Cj4+IC0tLSBhL2xp
YmF2Y29kZWMvbWxwX3BhcnNlLmMKPj4gKysrIGIvbGliYXZjb2RlYy9tbHBfcGFyc2UuYwo+PiBA
QCAtODUsNyArODUsNyBAQCBzdGF0aWMgaW50IG1scF9nZXRfbWFqb3Jfc3luY19zaXplKGNvbnN0
IHVpbnQ4X3QgKiBidWYsIGludCBidWZzaXplKQo+PiDCoCDCoCBpbnQgZmZfbWxwX3JlYWRfbWFq
b3Jfc3luYyh2b2lkICpsb2csIE1MUEhlYWRlckluZm8gKm1oLCBHZXRCaXRDb250ZXh0ICpnYikK
Pj4gwqAgewo+PiAtwqDCoMKgIGludCByYXRlYml0cywgY2hhbm5lbF9hcnJhbmdlbWVudCwgaGVh
ZGVyX3NpemU7Cj4+ICvCoMKgwqAgaW50IHJhdGViaXRzLCBjaGFubmVsX2FycmFuZ2VtZW50LCBo
ZWFkZXJfc2l6ZSwgZXh0cmFfY2hfbGVuZ3RoOwo+PiDCoMKgwqDCoMKgIHVpbnQxNl90IGNoZWNr
c3VtOwo+PiDCoCDCoMKgwqDCoMKgIGF2X2Fzc2VydDEoZ2V0X2JpdHNfY291bnQoZ2IpID09IDAp
Owo+PiBAQCAtMTYzLDcgKzE2MywzNCBAQCBpbnQgZmZfbWxwX3JlYWRfbWFqb3Jfc3luYyh2b2lk
ICpsb2csIE1MUEhlYWRlckluZm8gKm1oLCBHZXRCaXRDb250ZXh0ICpnYikKPj4gwqDCoMKgwqDC
oCBtaC0+ZXh0ZW5kZWRfc3Vic3RyZWFtX2luZm8gPSBnZXRfYml0cyhnYiwgMik7Cj4+IMKgwqDC
oMKgwqAgbWgtPnN1YnN0cmVhbV9pbmZvID0gZ2V0X2JpdHMoZ2IsIDgpOwo+PiDCoCAtwqDCoMKg
IHNraXBfYml0c19sb25nKGdiLCAoaGVhZGVyX3NpemUgLSAxOCkgKiA4KTsKPj4gK8KgwqDCoCBl
eHRyYV9jaF9sZW5ndGggPSAwOwo+PiArwqDCoMKgIG1oLT5jaGFubmVsc190aGRfc3RyZWFtMyA9
IDA7Cj4+ICsKPj4gK8KgwqDCoCBpZiAobWgtPnN0cmVhbV90eXBlID09IDB4YmEpIHsKPj4gK8Kg
wqDCoMKgwqDCoMKgIHNraXBfYml0c19sb25nKGdiLCA2Myk7Cj4+ICsKPj4gK8KgwqDCoMKgwqDC
oMKgIGV4dHJhX2NoX2xlbmd0aCA9IDY0Owo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKGdldF9iaXRz
MShnYikgJiYgKG1oLT5zdWJzdHJlYW1faW5mbyAmIDB4ODApKSB7Cj4+ICvCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIC8qIDE2Y2hfY2hhbm5lbF9tZWFuaW5nICovCj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIGludCBsZW5ndGggPSAoZ2V0X2JpdHMoZ2IsIDQpICsgMSkgPDwgMTsKPj4gK8KgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgaWYgKGhlYWRlcl9zaXplIC0gMjYgPCBsZW5ndGgpIHsKPj4gK8Kg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2cobG9nLCBBVl9MT0dfRVJST1IsICJw
YWNrZXQgdG9vIHNob3J0LCAiCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCAidW5hYmxlIHRvIHJlYWQgMTZjaCBleHRyYSBtZWFuaW5nIGluIG1ham9yIHN5bmMgJWQg
JWRcbiIsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBoZWFkZXJf
c2l6ZSwgbGVuZ3RoKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4g
LTE7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCBza2lwX2JpdHNfbG9uZyhnYiwgNSs2KTsgLy8gZGlhbG9ndWUgbm9ybS9taXggbGV2
ZWwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWgtPmNoYW5uZWxzX3RoZF9zdHJlYW0zID0g
Z2V0X2JpdHMoZ2IsIDUpICsgMTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFnZXRf
Yml0czEoZ2IpKSB7IC8vIGR5bl9vYmplY3Rfb25seQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIGF2cHJpdl9yZXF1ZXN0X3NhbXBsZShsb2csICIxNmNoIHByZXNlbnRhdGlvbiB3
aXRoIGEgbWl4dHVyZSBvZiBjaGFubmVscyIpOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIHJldHVybiBBVkVSUk9SX1BBVENIV0VMQ09NRTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgfQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBleHRyYV9jaF9sZW5ndGggKz0gMjE7
Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqAgfQo+PiArCj4+ICvCoMKgwqAgc2tpcF9i
aXRzX2xvbmcoZ2IsIChoZWFkZXJfc2l6ZSAtIDE4KSAqIDggLSBleHRyYV9jaF9sZW5ndGgpOwo+
PiDCoCDCoMKgwqDCoMKgIHJldHVybiAwOwo+PiDCoCB9Cj4+IGRpZmYgLS1naXQgYS9saWJhdmNv
ZGVjL21scF9wYXJzZS5oIGIvbGliYXZjb2RlYy9tbHBfcGFyc2UuaAo+PiBpbmRleCA1ZjFmOTUz
Y2ZlLi44MDExNTY2ZmY3IDEwMDY0NAo+PiAtLS0gYS9saWJhdmNvZGVjL21scF9wYXJzZS5oCj4+
ICsrKyBiL2xpYmF2Y29kZWMvbWxwX3BhcnNlLmgKPj4gQEAgLTQ3LDYgKzQ3LDcgQEAgdHlwZWRl
ZiBzdHJ1Y3QgTUxQSGVhZGVySW5mbwo+PiDCoMKgwqDCoMKgIGludCBjaGFubmVsc19tbHA7wqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy8vPCBDaGFubmVsIGNv
dW50IGZvciBNTFAgc3RyZWFtcwo+PiDCoMKgwqDCoMKgIGludCBjaGFubmVsc190aGRfc3RyZWFt
MTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vLzwgQ2hhbm5lbCBjb3VudCBmb3Igc3Vi
c3RyZWFtIDEgb2YgVHJ1ZUhEIHN0cmVhbXMgKCI2LWNoYW5uZWwgcHJlc2VudGF0aW9uIikKPj4g
wqDCoMKgwqDCoCBpbnQgY2hhbm5lbHNfdGhkX3N0cmVhbTI7wqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCAvLy88IENoYW5uZWwgY291bnQgZm9yIHN1YnN0cmVhbSAyIG9mIFRydWVIRCBzdHJl
YW1zICgiOC1jaGFubmVsIHByZXNlbnRhdGlvbiIpCj4+ICvCoMKgwqAgaW50IGNoYW5uZWxzX3Ro
ZF9zdHJlYW0zO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy8vPCBDaGFubmVsIGNvdW50
IGZvciBzdWJzdHJlYW0gMyBvZiBUcnVlSEQgc3RyZWFtcyAoIjE2LWNoYW5uZWwgcHJlc2VudGF0
aW9uIikKPj4gwqDCoMKgwqDCoCB1aW50NjRfdCBjaGFubmVsX2xheW91dF9tbHA7wqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCAvLy88IENoYW5uZWwgbGF5b3V0IGZvciBNTFAgc3RyZWFtcwo+PiDCoMKg
wqDCoMKgIHVpbnQ2NF90IGNoYW5uZWxfbGF5b3V0X3RoZF9zdHJlYW0xO8KgwqDCoCAvLy88IENo
YW5uZWwgbGF5b3V0IGZvciBzdWJzdHJlYW0gMSBvZiBUcnVlSEQgc3RyZWFtcyAoIjYtY2hhbm5l
bCBwcmVzZW50YXRpb24iKQo+PiDCoMKgwqDCoMKgIHVpbnQ2NF90IGNoYW5uZWxfbGF5b3V0X3Ro
ZF9zdHJlYW0yO8KgwqDCoCAvLy88IENoYW5uZWwgbGF5b3V0IGZvciBzdWJzdHJlYW0gMiBvZiBU
cnVlSEQgc3RyZWFtcyAoIjgtY2hhbm5lbCBwcmVzZW50YXRpb24iKQo+PiBkaWZmIC0tZ2l0IGEv
bGliYXZjb2RlYy9tbHBfcGFyc2VyLmMgYi9saWJhdmNvZGVjL21scF9wYXJzZXIuYwo+PiBpbmRl
eCBkMzkxMzkwZGQ1Li5mM2Q1NGM0MGU3IDEwMDY0NAo+PiAtLS0gYS9saWJhdmNvZGVjL21scF9w
YXJzZXIuYwo+PiArKysgYi9saWJhdmNvZGVjL21scF9wYXJzZXIuYwo+PiBAQCAtMTgxLDEwICsx
ODEsMTUgQEAgc3RhdGljIGludCBtbHBfcGFyc2UoQVZDb2RlY1BhcnNlckNvbnRleHQgKnMsCj4+
IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF2X2NoYW5uZWxfbGF5b3V0X2Zyb21fbWFzaygm
YXZjdHgtPmNoX2xheW91dCwgbWguY2hhbm5lbF9sYXlvdXRfbWxwKTsKPj4gwqDCoMKgwqDCoMKg
wqDCoMKgIH0gZWxzZSB7IC8qIG1oLnN0cmVhbV90eXBlID09IDB4YmEgKi8KPj4gwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgLyogVHJ1ZUhEIHN0cmVhbSAqLwo+PiAtwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCBpZiAoIW1oLmNoYW5uZWxzX3RoZF9zdHJlYW0yKSB7Cj4+IC3CoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgYXZfY2hhbm5lbF9sYXlvdXRfZnJvbV9tYXNrKCZhdmN0eC0+Y2hf
bGF5b3V0LCBtaC5jaGFubmVsX2xheW91dF90aGRfc3RyZWFtMSk7Cj4+IC3CoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIH0gZWxzZSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChtaC5jaGFu
bmVsc190aGRfc3RyZWFtMykgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF2
Y3R4LT5jaF9sYXlvdXQgPSAoQVZDaGFubmVsTGF5b3V0KSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBBVl9DSEFOTkVMX09SREVSX1VOU1BFQywKPj4gK8KgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1oLmNoYW5uZWxzX3RoZF9zdHJlYW0z
Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfTsKPiAKPiBJcyB0aGUgb3JkZXIg
cmVhbGx5IHVuc3BlY2lmaWVkPyBTdXJlbHkgdGhlcmUncyBzb21lIHVuZGVyc3RhbmRpbmcgd2hp
Y2ggY2hhbm5lbHMgbWFwIHRvIHdoaWNoIHBvc2l0aW9uLgo+IAoKQWN0dWFsbHksIGluIGN1cnJl
bnQgdXNlIG9mIE1MUC9UcnVlSEQgd2hlbiBkZWNvZGluZyB1c2luZyB0aGUgZm91cnRoIHN1YnN0
cmVhbSwgcmVjb25zdHJ1Y3RlZCBjaGFubmVscyBjYW5ub3QgYmUgbWFwcGVkIHRvIHNpbmdsZSBs
b3Vkc3BlYWtlcnMgb3IgZml4ZWQgcG9zaXRpb24gYW5kIGFjdHMgbW9yZSBsaWtlICJ0cmFja3Mi
IHdoaWNoIGFyZSBmZWVkcyBmb3IgYXVkaW8gb2JqZWN0cy4KVGhlc2UgYXVkaW8gb2JqZWN0cyBh
cmUgaW5kZWVkIG5vdCBmaXhlZCBpbiBzcGFjZSwgdGhlaXIgcG9zaXRpb24gaXMgZGVmaW5lZCBi
eSBhZGRpdGlvbmFsIHRpbWUtdmFyeWluZyBtZXRhZGF0YS4KCj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIH0gZWxzZSBpZiAobWguY2hhbm5lbHNfdGhkX3N0cmVhbTIpIHsKPj4gwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9jaGFubmVsX2xheW91dF9mcm9tX21hc2soJmF2
Y3R4LT5jaF9sYXlvdXQsIG1oLmNoYW5uZWxfbGF5b3V0X3RoZF9zdHJlYW0yKTsKPj4gK8KgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgfSBlbHNlIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCBhdl9jaGFubmVsX2xheW91dF9mcm9tX21hc2soJmF2Y3R4LT5jaF9sYXlvdXQsIG1oLmNo
YW5uZWxfbGF5b3V0X3RoZF9zdHJlYW0xKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
fQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+PiDCoCBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9t
bHBkZWMuYyBiL2xpYmF2Y29kZWMvbWxwZGVjLmMKPj4gaW5kZXggZTg1ZGFjMzZhNy4uMTRmYjk1
MzI2NSAxMDA2NDQKPj4gLS0tIGEvbGliYXZjb2RlYy9tbHBkZWMuYwo+PiArKysgYi9saWJhdmNv
ZGVjL21scGRlYy5jCj4+IEBAIC02MSw4ICs2MSw4IEBAIHR5cGVkZWYgc3RydWN0IFN1YlN0cmVh
bSB7Cj4+IMKgIMKgwqDCoMKgwqAgLy9Aewo+PiDCoMKgwqDCoMKgIC8qKiByZXN0YXJ0IGhlYWRl
ciBkYXRhICovCj4+IC3CoMKgwqAgLy8vIFRoZSB0eXBlIG9mIG5vaXNlIHRvIGJlIHVzZWQgaW4g
dGhlIHJlbWF0cml4IHN0YWdlLgo+PiAtwqDCoMKgIHVpbnQxNl90wqDCoMKgIG5vaXNlX3R5cGU7
Cj4+ICvCoMKgwqAgLy8vIFRoZSB0eXBlIG9mIHN1YnN0cmVhbSBnaXZlbiBieSB0aGUgcmVzdGFy
dCBoZWFkZXIgc3luYyB3b3JkLgo+PiArwqDCoMKgIHVpbnQxNl90wqDCoMKgIHN1YnN0cmVhbV90
eXBlOwo+PiDCoCDCoMKgwqDCoMKgIC8vLyBUaGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYW5uZWwg
Y29kZWQgaW4gdGhpcyBzdWJzdHJlYW0uCj4+IMKgwqDCoMKgwqAgdWludDhfdMKgwqDCoMKgIG1p
bl9jaGFubmVsOwo+PiBAQCAtODgsNiArODgsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgU3ViU3RyZWFt
IHsKPj4gwqDCoMKgwqDCoCAvLy8gVGhlIGN1cnJlbnQgc2VlZCB2YWx1ZSBmb3IgdGhlIHBzZXVk
b3JhbmRvbSBub2lzZSBnZW5lcmF0b3IocykuCj4+IMKgwqDCoMKgwqAgdWludDMyX3TCoMKgwqAg
bm9pc2VnZW5fc2VlZDsKPj4gwqAgK8KgwqDCoCAvLy8gTWF4aW11bSBvdXRwdXRfc2hpZnQgdmFs
dWUuCj4+ICvCoMKgwqAgaW50OF90wqDCoMKgwqDCoCBtYXhfc2hpZnQ7Cj4+ICvCoMKgwqAgLy8v
IE1heGltdW0gc2l6ZSBvZiBjb2RlZCBhdWRpbyBzYW1wbGVzIExTQnMgcGFydC4KPj4gK8KgwqDC
oCBpbnQ4X3TCoMKgwqDCoMKgIG1heF9sc2JzOwo+PiArwqDCoMKgIC8vLyBNYXhpbXVtIGJpdC1k
ZXB0aCBvZiBvdXRwdXQgYXVkaW8gc2FtcGxlcy4KPj4gK8KgwqDCoCBpbnQ4X3TCoMKgwqDCoMKg
IG1heF9iaXRzOwo+PiArCj4+IMKgwqDCoMKgwqAgLy8vIFNldCBpZiB0aGUgc3Vic3RyZWFtIGNv
bnRhaW5zIGV4dHJhIGluZm8gdG8gY2hlY2sgdGhlIHNpemUgb2YgVkxDIGJsb2Nrcy4KPj4gwqDC
oMKgwqDCoCB1aW50OF90wqDCoMKgwqAgZGF0YV9jaGVja19wcmVzZW50Owo+PiDCoCBAQCAtMTA0
LDExICsxMTEsMjMgQEAgdHlwZWRlZiBzdHJ1Y3QgU3ViU3RyZWFtIHsKPj4gwqDCoMKgwqDCoCAv
Ly8gbWF0cml4IG91dHB1dCBjaGFubmVsCj4+IMKgwqDCoMKgwqAgdWludDhfdMKgwqDCoMKgIG1h
dHJpeF9vdXRfY2hbTUFYX01BVFJJQ0VTXTsKPj4gwqAgLcKgwqDCoCAvLy8gV2hldGhlciB0aGUg
TFNCcyBvZiB0aGUgbWF0cml4IG91dHB1dCBhcmUgZW5jb2RlZCBpbiB0aGUgYml0c3RyZWFtLgo+
PiArwqDCoMKgIC8vLyBTaXplIG9mIHRoZSBMU0JzIG9mIHRoZSBtYXRyaXggb3V0cHV0IGVuY29k
ZWQgaW4gdGhlIGJpdHN0cmVhbS4KPj4gwqDCoMKgwqDCoCB1aW50OF90wqDCoMKgwqAgbHNiX2J5
cGFzc1tNQVhfTUFUUklDRVNdOwo+PiAtwqDCoMKgIC8vLyBNYXRyaXggY29lZmZpY2llbnRzLCBz
dG9yZWQgYXMgMi4xNCBmaXhlZCBwb2ludC4KPj4gK8KgwqDCoCAvLy8gTWF0cml4IGNvZWZmaWNp
ZW50cyBmcmFjdGlvbmFsIHBhcnQgc2l6ZSBpbiBiaXRzLgo+PiArwqDCoMKgIHVpbnQ4X3TCoMKg
wqDCoCBtYXRyaXhfY29lZmZfZnJhY19iaXRzW01BWF9NQVRSSUNFU107Cj4+ICvCoMKgwqAgLy8v
IE1hdHJpeCBjb2VmZmljaWVudHMgc2hpZnQgYW1vdW50Lgo+PiArwqDCoMKgIGludDhfdMKgwqDC
oMKgwqAgbWF0cml4X2NvZWZmX3NoaWZ0W01BWF9NQVRSSUNFU107Cj4+ICvCoMKgwqAgLy8vIE1h
dHJpeCBjb2VmZmljaWVudHMgcHJlc2VuY2UgbWFzay4KPj4gK8KgwqDCoCB1aW50MTZfdMKgwqDC
oCBtYXRyaXhfY29lZmZfbWFza1tNQVhfTUFUUklDRVNdOwo+PiArwqDCoMKgIC8vLyBNYXRyaXgg
Y29lZmZpY2llbnRzLCBzdG9yZWQgYXMgMi4xOCBmaXhlZCBwb2ludC4KPj4gwqDCoMKgwqDCoCBE
RUNMQVJFX0FMSUdORUQoMzIsIGludDMyX3QsIG1hdHJpeF9jb2VmZilbTUFYX01BVFJJQ0VTXVtN
QVhfQ0hBTk5FTFNdOwo+PiAtwqDCoMKgIC8vLyBMZWZ0IHNoaWZ0IHRvIGFwcGx5IHRvIG5vaXNl
IHZhbHVlcyBpbiAweDMxZWIgc3Vic3RyZWFtcy4KPj4gK8KgwqDCoCAvLy8gRGVsdGEgbWF0cml4
IGNvZWZmaWNpZW50cyBzaXplIGluIGJpdHMgZm9yIDB4MzFlYyBzdWJzdHJlYW1zLgo+PiArwqDC
oMKgIHVpbnQ4X3TCoMKgwqDCoCBkZWx0YV9tYXRyaXhfY29lZmZfYml0c1tNQVhfTUFUUklDRVNd
Owo+PiArwqDCoMKgIC8vLyBEZWx0YSBtYXRyaXggY29lZmZpY2llbnRzIHByZWNpc2lvbi4KPj4g
K8KgwqDCoCB1aW50OF90wqDCoMKgwqAgZGVsdGFfbWF0cml4X2NvZWZmX3ByZWNbTUFYX01BVFJJ
Q0VTXTsKPj4gK8KgwqDCoCAvLy8gRGVsdGEgbWF0cml4IGNvZWZmaWNpZW50cywgc3RvcmVkIGFz
IDIuMTggZml4ZWQgcG9pbnQuCj4+ICvCoMKgwqAgREVDTEFSRV9BTElHTkVEKDMyLCBpbnQzMl90
LCBkZWx0YV9tYXRyaXhfY29lZmYpW01BWF9NQVRSSUNFU11bTUFYX0NIQU5ORUxTXTsKPj4gK8Kg
wqDCoCAvLy8gTGVmdCBzaGlmdCB0byBhcHBseSB0byBub2lzZSB2YWx1ZXMgaW4gMHgzMWViIGFu
ZCAweDMxZWMgc3Vic3RyZWFtcy4KPj4gwqDCoMKgwqDCoCB1aW50OF90wqDCoMKgwqAgbWF0cml4
X25vaXNlX3NoaWZ0W01BWF9NQVRSSUNFU107Cj4+IMKgwqDCoMKgwqAgLy9AfQo+PiDCoCBAQCAt
MTMzLDYgKzE1Miw4IEBAIHR5cGVkZWYgc3RydWN0IE1MUERlY29kZUNvbnRleHQgewo+PiDCoMKg
wqDCoMKgIEFWQ29kZWNDb250ZXh0ICphdmN0eDsKPj4gwqAgwqDCoMKgwqDCoCBBVkNoYW5uZWxM
YXlvdXQgZG93bm1peF9sYXlvdXQ7Cj4+ICvCoMKgwqAgLy8vIFNldCB0byBlbmFibGUgZGVjb2Rp
bmcgb2Ygbm9uLWxvdWRzcGVha2VyIGZlZWQgKG9iamVjdHMpIGF1ZGlvIGNoYW5uZWxzCj4+ICvC
oMKgwqAgaW50IGV4dHJhY3Rfb2JqZWN0czsKPj4gwqAgwqDCoMKgwqDCoCAvLy8gQ3VycmVudCBh
Y2Nlc3MgdW5pdCBiZWluZyByZWFkIGhhcyBhIG1ham9yIHN5bmMuCj4+IMKgwqDCoMKgwqAgaW50
wqDCoMKgwqDCoMKgwqDCoCBpc19tYWpvcl9zeW5jX3VuaXQ7Cj4+IEBAIC0yNjcsMTQgKzI4OCwx
NCBAQCBzdGF0aWMgaW5saW5lIGludCByZWFkX2h1ZmZfY2hhbm5lbHMoTUxQRGVjb2RlQ29udGV4
dCAqbSwgR2V0Qml0Q29udGV4dCAqZ2JwLAo+PiDCoCDCoMKgwqDCoMKgIGZvciAobWF0ID0gMDsg
bWF0IDwgcy0+bnVtX3ByaW1pdGl2ZV9tYXRyaWNlczsgbWF0KyspCj4+IMKgwqDCoMKgwqDCoMKg
wqDCoCBpZiAocy0+bHNiX2J5cGFzc1ttYXRdKQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBt
LT5ieXBhc3NlZF9sc2JzW3BvcyArIHMtPmJsb2NrcG9zXVttYXRdID0gZ2V0X2JpdHMxKGdicCk7
Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG0tPmJ5cGFzc2VkX2xzYnNbcG9zICsgcy0+Ymxv
Y2twb3NdW21hdF0gPSBnZXRfYml0cyhnYnAsIHMtPmxzYl9ieXBhc3NbbWF0XSk7Cj4+IMKgIMKg
wqDCoMKgwqAgZm9yIChjaGFubmVsID0gcy0+bWluX2NoYW5uZWw7IGNoYW5uZWwgPD0gcy0+bWF4
X2NoYW5uZWw7IGNoYW5uZWwrKykgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgQ2hhbm5lbFBhcmFt
cyAqY3AgPSAmcy0+Y2hhbm5lbF9wYXJhbXNbY2hhbm5lbF07Cj4+IMKgwqDCoMKgwqDCoMKgwqDC
oCBpbnQgY29kZWJvb2sgPSBjcC0+Y29kZWJvb2s7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQg
cXVhbnRfc3RlcF9zaXplID0gcy0+cXVhbnRfc3RlcF9zaXplW2NoYW5uZWxdOwo+PiDCoMKgwqDC
oMKgwqDCoMKgwqAgaW50IGxzYl9iaXRzID0gY3AtPmh1ZmZfbHNicyAtIHF1YW50X3N0ZXBfc2l6
ZTsKPj4gLcKgwqDCoMKgwqDCoMKgIGludCByZXN1bHQgPSAwOwo+PiArwqDCoMKgwqDCoMKgwqAg
aW50MzJfdCByZXN1bHQgPSAwOwo+PiDCoCDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGNvZGVib29r
ID4gMCkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVzdWx0ID0gZ2V0X3ZsYzIoZ2Jw
LCBodWZmX3ZsY1tjb2RlYm9vay0xXS50YWJsZSwKPj4gQEAgLTQxMCw4ICs0MzEsMTIgQEAgc3Rh
dGljIGludCByZWFkX21ham9yX3N5bmMoTUxQRGVjb2RlQ29udGV4dCAqbSwgR2V0Qml0Q29udGV4
dCAqZ2IpCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBtLT5hdmN0eC0+cHJvZmlsZcKgwqDCoMKgID0g
QVZfUFJPRklMRV9UUlVFSERfQVRNT1M7Cj4+IMKgwqDCoMKgwqAgfQo+PiDCoCAtwqDCoMKgIC8q
IGxpbWl0IHRvIGRlY29kaW5nIDMgc3Vic3RyZWFtcywgYXMgdGhlIDR0aCBpcyB1c2VkIGJ5IERv
bGJ5IEF0bW9zIGZvciBub24tYXVkaW8gZGF0YSAqLwo+PiAtwqDCoMKgIG0tPm1heF9kZWNvZGVk
X3N1YnN0cmVhbSA9IEZGTUlOKG0tPm51bV9zdWJzdHJlYW1zIC0gMSwgMik7Cj4+ICvCoMKgwqAg
LyogTGltaXQgdG8gZGVjb2RpbmcgdGhlIGZpcnN0IDMgc3Vic3RyZWFtcyAob3IgYWxsb3cgdGhl
IDR0aCBmb3Igb2JqZWN0cykgKi8KPj4gK8KgwqDCoCBtLT5tYXhfZGVjb2RlZF9zdWJzdHJlYW0g
PSBGRk1JTihtLT5udW1fc3Vic3RyZWFtcyAtIDEsCj4+ICvCoMKgwqDCoMKgwqDCoCBtLT5leHRy
YWN0X29iamVjdHMgPyAzIDogMik7Cj4+ICsKPj4gK8KgwqDCoCBhdl9sb2cobS0+YXZjdHgsIEFW
X0xPR19ERUJVRywgImRlY29kaW5nIHVwIHRvIHN1YnN0cmVhbSAlIiBQUkl1OCAiXG4iLAo+PiAr
wqDCoMKgwqDCoMKgwqAgbS0+bWF4X2RlY29kZWRfc3Vic3RyZWFtKTsKPj4gwqAgwqDCoMKgwqDC
oCBtLT5hdmN0eC0+c2FtcGxlX3JhdGXCoMKgwqAgPSBtaC5ncm91cDFfc2FtcGxlcmF0ZTsKPj4g
wqDCoMKgwqDCoCBtLT5hdmN0eC0+ZnJhbWVfc2l6ZcKgwqDCoMKgID0gbWguYWNjZXNzX3VuaXRf
c2l6ZTsKPj4gQEAgLTUzMSwyMyArNTU2LDIyIEBAIHN0YXRpYyBpbnQgcmVhZF9yZXN0YXJ0X2hl
YWRlcihNTFBEZWNvZGVDb250ZXh0ICptLCBHZXRCaXRDb250ZXh0ICpnYnAsCj4+IMKgwqDCoMKg
wqAgaW50IHN5bmNfd29yZCwgdG1wOwo+PiDCoMKgwqDCoMKgIHVpbnQ4X3QgY2hlY2tzdW07Cj4+
IMKgwqDCoMKgwqAgdWludDhfdCBsb3NzbGVzc19jaGVjazsKPj4gK8KgwqDCoCB1aW50OF90IG1h
eF9iaXRfZGVwdGg7Cj4+IMKgwqDCoMKgwqAgaW50IHN0YXJ0X2NvdW50ID0gZ2V0X2JpdHNfY291
bnQoZ2JwKTsKPj4gLcKgwqDCoCBpbnQgbWluX2NoYW5uZWwsIG1heF9jaGFubmVsLCBtYXhfbWF0
cml4X2NoYW5uZWwsIG5vaXNlX3R5cGU7Cj4+ICvCoMKgwqAgaW50IG1pbl9jaGFubmVsLCBtYXhf
Y2hhbm5lbCwgbWF4X21hdHJpeF9jaGFubmVsOwo+PiDCoMKgwqDCoMKgIGNvbnN0IGludCBzdGRf
bWF4X21hdHJpeF9jaGFubmVsID0gbS0+YXZjdHgtPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX01M
UAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgID8gTUFYX01BVFJJWF9DSEFOTkVMX01MUAo+PiDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIDogTUFYX01BVFJJWF9DSEFOTkVMX1RSVUVIRDsKPj4gwqAgLcKgwqDC
oCBzeW5jX3dvcmQgPSBnZXRfYml0cyhnYnAsIDEzKTsKPj4gK8KgwqDCoCBzeW5jX3dvcmQgPSBn
ZXRfYml0cyhnYnAsIDE0KTsKPj4gwqAgLcKgwqDCoCBpZiAoc3luY193b3JkICE9IDB4MzFlYSA+
PiAxKSB7Cj4+ICvCoMKgwqAgaWYgKHN5bmNfd29yZCA8IDB4MzFlYSB8fCAweDMxZWMgPCBzeW5j
X3dvcmQpIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGF2X2xvZyhtLT5hdmN0eCwgQVZfTE9HX0VS
Uk9SLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAicmVzdGFydCBoZWFkZXIg
c3luYyBpbmNvcnJlY3QgKGdvdCAweCUwNHgpXG4iLCBzeW5jX3dvcmQpOwo+PiDCoMKgwqDCoMKg
wqDCoMKgwqAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4+IMKgwqDCoMKgwqAgfQo+PiDC
oCAtwqDCoMKgIG5vaXNlX3R5cGUgPSBnZXRfYml0czEoZ2JwKTsKPj4gLQo+PiAtwqDCoMKgIGlm
IChtLT5hdmN0eC0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfTUxQICYmIG5vaXNlX3R5cGUpIHsK
Pj4gK8KgwqDCoCBpZiAobS0+YXZjdHgtPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX01MUCAmJiAw
eDMxZWEgIT0gc3luY193b3JkKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2cobS0+YXZj
dHgsIEFWX0xPR19FUlJPUiwgIk1MUCBtdXN0IGhhdmUgMHgzMWVhIHN5bmMgd29yZC5cbiIpOwo+
PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4+IMKgwqDC
oMKgwqAgfQo+PiBAQCAtNTY3LDcgKzU5MSw3IEBAIHN0YXRpYyBpbnQgcmVhZF9yZXN0YXJ0X2hl
YWRlcihNTFBEZWNvZGVDb250ZXh0ICptLCBHZXRCaXRDb250ZXh0ICpnYnAsCj4+IMKgIMKgwqDC
oMKgwqAgLyogVGhpcyBzaG91bGQgaGFwcGVuIGZvciBUcnVlSEQgc3RyZWFtcyB3aXRoID42IGNo
YW5uZWxzIGFuZCBNTFAncyBub2lzZQo+PiDCoMKgwqDCoMKgwqAgKiB0eXBlLiBJdCBpcyBub3Qg
eWV0IGtub3duIGlmIHRoaXMgaXMgYWxsb3dlZC4gKi8KPj4gLcKgwqDCoCBpZiAobWF4X21hdHJp
eF9jaGFubmVsID4gTUFYX01BVFJJWF9DSEFOTkVMX01MUCAmJiAhbm9pc2VfdHlwZSkgewo+PiAr
wqDCoMKgIGlmIChtYXhfbWF0cml4X2NoYW5uZWwgPiBNQVhfTUFUUklYX0NIQU5ORUxfTUxQICYm
IDB4MzFlYSA9PSBzeW5jX3dvcmQpIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGF2cHJpdl9yZXF1
ZXN0X3NhbXBsZShtLT5hdmN0eCwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIiVkIGNoYW5uZWxzIChtb3JlIHRoYW4gdGhl
ICIKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgIm1heGltdW0gc3VwcG9ydGVkIGJ5IHRoZSBkZWNvZGVyKSIsCj4+IEBAIC01
ODIsNyArNjA2LDcgQEAgc3RhdGljIGludCByZWFkX3Jlc3RhcnRfaGVhZGVyKE1MUERlY29kZUNv
bnRleHQgKm0sIEdldEJpdENvbnRleHQgKmdicCwKPj4gwqDCoMKgwqDCoCBzLT5tYXhfY2hhbm5l
bMKgwqDCoMKgwqDCoMKgID0gbWF4X2NoYW5uZWw7Cj4+IMKgwqDCoMKgwqAgcy0+Y29kZWRfY2hh
bm5lbHPCoMKgwqDCoCA9ICgoMUxMIDw8IChtYXhfY2hhbm5lbCAtIG1pbl9jaGFubmVsICsgMSkp
IC0gMSkgPDwgbWluX2NoYW5uZWw7Cj4+IMKgwqDCoMKgwqAgcy0+bWF4X21hdHJpeF9jaGFubmVs
ID0gbWF4X21hdHJpeF9jaGFubmVsOwo+PiAtwqDCoMKgIHMtPm5vaXNlX3R5cGXCoMKgwqDCoMKg
wqDCoMKgID0gbm9pc2VfdHlwZTsKPj4gK8KgwqDCoCBzLT5zdWJzdHJlYW1fdHlwZcKgwqDCoMKg
ID0gc3luY193b3JkOwo+PiDCoCDCoMKgwqDCoMKgIGlmIChtbHBfY2hhbm5lbF9sYXlvdXRfc3Vi
c2V0KCZtLT5kb3dubWl4X2xheW91dCwgcy0+bWFzaykgJiYKPj4gwqDCoMKgwqDCoMKgwqDCoMKg
IG0tPm1heF9kZWNvZGVkX3N1YnN0cmVhbSA+IHN1YnN0cikgewo+PiBAQCAtNTk1LDggKzYxOSwy
OCBAQCBzdGF0aWMgaW50IHJlYWRfcmVzdGFydF9oZWFkZXIoTUxQRGVjb2RlQ29udGV4dCAqbSwg
R2V0Qml0Q29udGV4dCAqZ2JwLAo+PiDCoCDCoMKgwqDCoMKgIHMtPm5vaXNlX3NoaWZ0wqDCoCA9
IGdldF9iaXRzKGdicCzCoCA0KTsKPj4gwqDCoMKgwqDCoCBzLT5ub2lzZWdlbl9zZWVkID0gZ2V0
X2JpdHMoZ2JwLCAyMyk7Cj4+ICvCoMKgwqAgcy0+bWF4X3NoaWZ0wqDCoMKgwqAgPSBnZXRfYml0
cyhnYnAswqAgNCk7Cj4+ICvCoMKgwqAgcy0+bWF4X2xzYnPCoMKgwqDCoMKgID0gZ2V0X2JpdHMo
Z2JwLMKgIDUpOwo+PiArwqDCoMKgIHMtPm1heF9iaXRzwqDCoMKgwqDCoCA9IGdldF9iaXRzKGdi
cCzCoCA1KTsKPj4gKwo+PiArwqDCoMKgIG1heF9iaXRfZGVwdGggPSAoMHgzMWVjID09IHN5bmNf
d29yZCkgPyAzMSA6IDI0Owo+PiArwqDCoMKgIGlmIChtYXhfYml0X2RlcHRoIDwgcy0+bWF4X2xz
YnMpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGF2X2xvZyhtLT5hdmN0eCwgQVZfTE9HX0VSUk9SLAo+
PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiTWF4IExTQiBzaXplICUiIFBSSXU4ICIg
Zm9yIHN1YnN0cmVhbSAldSBleGNlZWRzICIKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgIiUiIFBSSXU4ICIgYml0cy5cbiIsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IHMtPm1heF9sc2JzLCBzdWJzdHIsIG1heF9iaXRfZGVwdGgpOwo+PiArwqDCoMKgwqDCoMKgwqAg
cmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4+ICvCoMKgwqAgfQo+PiDCoCAtwqDCoMKgIHNr
aXBfYml0cyhnYnAsIDE5KTsKPj4gK8KgwqDCoCBpZiAobWF4X2JpdF9kZXB0aCA8IHMtPm1heF9i
aXRzKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBhdl9sb2cobS0+YXZjdHgsIEFWX0xPR19FUlJPUiwK
Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIk1heCBvdXRwdXQgYml0LWRlcHRoICUi
IFBSSXU4ICIgZm9yIHN1YnN0cmVhbSAldSBleGNlZWRzICIKPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgIiUiIFBSSXU4ICIgYml0cy5cbiIsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIHMtPm1heF9iaXRzLCBzdWJzdHIsIG1heF9iaXRfZGVwdGgpOwo+PiArwqDCoMKg
wqDCoMKgwqAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4+ICvCoMKgwqAgfQo+PiArCj4+
ICvCoMKgwqAgc2tpcF9iaXRzKGdicCwgNSk7Cj4+IMKgIMKgwqDCoMKgwqAgcy0+ZGF0YV9jaGVj
a19wcmVzZW50ID0gZ2V0X2JpdHMxKGdicCk7Cj4+IMKgwqDCoMKgwqAgbG9zc2xlc3NfY2hlY2sg
PSBnZXRfYml0cyhnYnAsIDgpOwo+PiBAQCAtNjE1LDcgKzY1OSw3IEBAIHN0YXRpYyBpbnQgcmVh
ZF9yZXN0YXJ0X2hlYWRlcihNTFBEZWNvZGVDb250ZXh0ICptLCBHZXRCaXRDb250ZXh0ICpnYnAs
Cj4+IMKgIMKgwqDCoMKgwqAgZm9yIChjaCA9IDA7IGNoIDw9IHMtPm1heF9tYXRyaXhfY2hhbm5l
bDsgY2grKykgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IGNoX2Fzc2lnbiA9IGdldF9iaXRz
KGdicCwgNik7Cj4+IC3CoMKgwqDCoMKgwqDCoCBpZiAobS0+YXZjdHgtPmNvZGVjX2lkID09IEFW
X0NPREVDX0lEX1RSVUVIRCkgewo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKG0tPmF2Y3R4LT5jb2Rl
Y19pZCA9PSBBVl9DT0RFQ19JRF9UUlVFSEQgJiYgcy0+bWFzaykgewo+PiDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCBBVkNoYW5uZWxMYXlvdXQgbDsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgZW51bSBBVkNoYW5uZWwgY2hhbm5lbCA9IHRoZF9jaGFubmVsX2xheW91dF9leHRyYWN0
X2NoYW5uZWwocy0+bWFzaywgY2hfYXNzaWduKTsKPj4gwqAgQEAgLTY1NiwxMiArNzAwLDE5IEBA
IHN0YXRpYyBpbnQgcmVhZF9yZXN0YXJ0X2hlYWRlcihNTFBEZWNvZGVDb250ZXh0ICptLCBHZXRC
aXRDb250ZXh0ICpnYnAsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBjcC0+aHVmZl9vZmZzZXTCoMKg
wqDCoMKgID0gMDsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGNwLT5zaWduX2h1ZmZfb2Zmc2V0ID0g
LSgxIDw8IDIzKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGNwLT5jb2RlYm9va8KgwqDCoMKgwqDC
oMKgwqAgPSAwOwo+PiAtwqDCoMKgwqDCoMKgwqAgY3AtPmh1ZmZfbHNic8KgwqDCoMKgwqDCoMKg
ID0gMjQ7Cj4+ICvCoMKgwqDCoMKgwqDCoCBjcC0+aHVmZl9sc2JzwqDCoMKgwqDCoMKgwqAgPSAo
MyA9PSBzdWJzdHIpID8gMzEgOiAyNDsKPj4gwqDCoMKgwqDCoCB9Cj4+IMKgIMKgwqDCoMKgwqAg
aWYgKHN1YnN0ciA9PSBtLT5tYXhfZGVjb2RlZF9zdWJzdHJlYW0pIHsKPj4gwqDCoMKgwqDCoMKg
wqDCoMKgIGF2X2NoYW5uZWxfbGF5b3V0X3VuaW5pdCgmbS0+YXZjdHgtPmNoX2xheW91dCk7Cj4+
IC3CoMKgwqDCoMKgwqDCoCBhdl9jaGFubmVsX2xheW91dF9mcm9tX21hc2soJm0tPmF2Y3R4LT5j
aF9sYXlvdXQsIHMtPm1hc2spOwo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKHN1YnN0ciA8IDMpIC8q
IExvdWRzcGVha2VyIGZlZWQgY2hhbm5lbHMgKi8KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
YXZfY2hhbm5lbF9sYXlvdXRfZnJvbV9tYXNrKCZtLT5hdmN0eC0+Y2hfbGF5b3V0LCBzLT5tYXNr
KTsKPj4gK8KgwqDCoMKgwqDCoMKgIGVsc2UgLyogT2JqZWN0IGNoYW5uZWxzICovCj4+ICvCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIG0tPmF2Y3R4LT5jaF9sYXlvdXQgPSAoQVZDaGFubmVsTGF5b3V0
KSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQVZfQ0hBTk5FTF9PUkRFUl9V
TlNQRUMsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcy0+bWF4X2NoYW5uZWwr
MQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Owo+PiArCj4+IMKgwqDCoMKgwqDCoMKgwqDC
oCBtLT5wYWNrX291dHB1dCA9IG0tPmRzcC5tbHBfc2VsZWN0X3BhY2tfb3V0cHV0KHMtPmNoX2Fz
c2lnbiwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCBzLT5vdXRwdXRfc2hpZnQsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcy0+bWF4X21hdHJpeF9jaGFubmVsLAo+PiBAQCAt
NzYwLDE3ICs4MTEsNDMgQEAgc3RhdGljIGludCByZWFkX2ZpbHRlcl9wYXJhbXMoTUxQRGVjb2Rl
Q29udGV4dCAqbSwgR2V0Qml0Q29udGV4dCAqZ2JwLAo+PiDCoMKgwqDCoMKgIHJldHVybiAwOwo+
PiDCoCB9Cj4+IMKgIC0vKiogUmVhZCBwYXJhbWV0ZXJzIGZvciBwcmltaXRpdmUgbWF0cmljZXMu
ICovCj4+ICsvKiogR2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBwcmltaXRpdmUgbWF0cmljZXMg
YWxsb3dlZC4gKi8KPj4gwqAgLXN0YXRpYyBpbnQgcmVhZF9tYXRyaXhfcGFyYW1zKE1MUERlY29k
ZUNvbnRleHQgKm0sIHVuc2lnbmVkIGludCBzdWJzdHIsIEdldEJpdENvbnRleHQgKmdicCkKPj4g
K3N0YXRpYyBpbnQgZ2V0X21heF9uYl9wcmltaXRpdmVfbWF0cmljZXMoTUxQRGVjb2RlQ29udGV4
dCAqbSwgdW5zaWduZWQgaW50IHN1YnN0cikKPj4gK3sKPj4gK8KgwqDCoCBzd2l0Y2ggKHN1YnN0
cikgewo+PiArwqDCoMKgIGNhc2UgMDogLy8gc3Vic3RyZWFtIDAgKHVwIHRvIDIgbWF0cml4IGNo
YW5uZWxzKQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDI7Cj4+ICvCoMKgwqAgY2FzZSAxOiAv
LyBzdWJzdHJlYW0gMQo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKG0tPnN1YnN0cmVhbV9pbmZvICYg
MHg4KSAvLyA2LWNoIHByZXMgY2FycmllZAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1
cm4gNjsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmIChtLT5zdWJzdHJlYW1faW5mbyAmIDB4MjApIC8v
IDgtY2ggcHJlcyBjYXJyaWVkCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiA4Owo+
PiArwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4+ICvCoMKgwqAgY2FzZSAyOiAvLyBzdWJzdHJlYW0g
Mgo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKG0tPnN1YnN0cmVhbV9pbmZvICYgMHg0MCkgLy8gOC1j
aCBwcmVzIGNhcnJpZWQKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDg7Cj4+ICvC
oMKgwqDCoMKgwqDCoCBicmVhazsKPj4gK8KgwqDCoCBjYXNlIDM6IC8vIHN1YnN0cmVhbSAzCj4+
ICvCoMKgwqDCoMKgwqDCoCBpZiAobS0+c3Vic3RyZWFtX2luZm8gJiA4MCkgLy8gMTYtY2ggcHJl
cyBjYXJyaWVkCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAxNjsKPj4gK8KgwqDC
oMKgwqDCoMKgIGJyZWFrOwo+PiArwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgIHJldHVybiBNQVhf
TUFUUklDRVNfVFJVRUhEOwo+PiArfQo+PiArCj4+ICsvKiogUmVhZCBwYXJhbWV0ZXJzIGZvciBw
cmltaXRpdmUgbWF0cmljZXMgKDB4MzFlYSBhbmQgMHgzMWViIHN1YnN0cmVhbXMpLiAqLwo+PiAr
Cj4+ICtzdGF0aWMgaW50IHJlYWRfMzFlYV8zMWViX21hdHJpeF9wYXJhbXMoTUxQRGVjb2RlQ29u
dGV4dCAqbSwgdW5zaWduZWQgaW50IHN1YnN0ciwgR2V0Qml0Q29udGV4dCAqZ2JwKQo+PiDCoCB7
Cj4+IMKgwqDCoMKgwqAgU3ViU3RyZWFtICpzID0gJm0tPnN1YnN0cmVhbVtzdWJzdHJdOwo+PiDC
oMKgwqDCoMKgIHVuc2lnbmVkIGludCBtYXQsIGNoOwo+PiDCoMKgwqDCoMKgIGNvbnN0IGludCBt
YXhfcHJpbWl0aXZlX21hdHJpY2VzID0gbS0+YXZjdHgtPmNvZGVjX2lkID09IEFWX0NPREVDX0lE
X01MUAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgID8gTUFYX01BVFJJQ0VTX01MUAo+PiAtwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIDogTUFYX01BVFJJQ0VTX1RSVUVIRDsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA6IGdl
dF9tYXhfbmJfcHJpbWl0aXZlX21hdHJpY2VzKG0sIHN1YnN0cik7Cj4+IMKgIC3CoMKgwqAgaWYg
KG0tPm1hdHJpeF9jaGFuZ2VkKysgPiAxKSB7Cj4+ICvCoMKgwqAgaWYgKCsrbS0+bWF0cml4X2No
YW5nZWQgPiAxKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2cobS0+YXZjdHgsIEFWX0xP
R19FUlJPUiwgIk1hdHJpY2VzIG1heSBjaGFuZ2Ugb25seSBvbmNlIHBlciBhY2Nlc3MgdW5pdC5c
biIpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4+
IMKgwqDCoMKgwqAgfQo+PiBAQCAtNzc5LDggKzg1Niw5IEBAIHN0YXRpYyBpbnQgcmVhZF9tYXRy
aXhfcGFyYW1zKE1MUERlY29kZUNvbnRleHQgKm0sIHVuc2lnbmVkIGludCBzdWJzdHIsIEdldEJp
dENvCj4+IMKgIMKgwqDCoMKgwqAgaWYgKHMtPm51bV9wcmltaXRpdmVfbWF0cmljZXMgPiBtYXhf
cHJpbWl0aXZlX21hdHJpY2VzKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2cobS0+YXZj
dHgsIEFWX0xPR19FUlJPUiwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIk51bWJl
ciBvZiBwcmltaXRpdmUgbWF0cmljZXMgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAlZC5cbiIsCj4+
IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1heF9wcmltaXRpdmVfbWF0cmljZXMpOwo+
PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiTnVtYmVyIG9mIHByaW1pdGl2ZSBtYXRy
aWNlcyBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuICVkICIKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgImZvciBzdWJzdHJlYW0gJXUgb2YgdHlwZSAweCUwNHguXG4iLAo+PiArwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtYXhfcHJpbWl0aXZlX21hdHJpY2VzLCBzdWJzdHIsIHMt
PnN1YnN0cmVhbV90eXBlKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gZXJyb3I7Cj4+IMKg
wqDCoMKgwqAgfQo+PiDCoCBAQCAtODAzLDcgKzg4MSw3IEBAIHN0YXRpYyBpbnQgcmVhZF9tYXRy
aXhfcGFyYW1zKE1MUERlY29kZUNvbnRleHQgKm0sIHVuc2lnbmVkIGludCBzdWJzdHIsIEdldEJp
dENvCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+IMKgIMKgwqDCoMKgwqDCoMKgwqDCoCBtYXhf
Y2hhbiA9IHMtPm1heF9tYXRyaXhfY2hhbm5lbDsKPj4gLcKgwqDCoMKgwqDCoMKgIGlmICghcy0+
bm9pc2VfdHlwZSkKPj4gK8KgwqDCoMKgwqDCoMKgIGlmICgweDMxZWEgPT0gcy0+c3Vic3RyZWFt
X3R5cGUpCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1heF9jaGFuKz0yOwo+PiDCoCDC
oMKgwqDCoMKgwqDCoMKgwqAgZm9yIChjaCA9IDA7IGNoIDw9IG1heF9jaGFuOyBjaCsrKSB7Cj4+
IEBAIC04MTEsMTAgKzg4OSwxMCBAQCBzdGF0aWMgaW50IHJlYWRfbWF0cml4X3BhcmFtcyhNTFBE
ZWNvZGVDb250ZXh0ICptLCB1bnNpZ25lZCBpbnQgc3Vic3RyLCBHZXRCaXRDbwo+PiDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoZ2V0X2JpdHMxKGdicCkpCj4+IMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgY29lZmZfdmFsID0gZ2V0X3NiaXRzKGdicCwgZnJhY19iaXRz
ICsgMik7Cj4+IMKgIC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHMtPm1hdHJpeF9jb2VmZlttYXRd
W2NoXSA9IGNvZWZmX3ZhbCAqICgxIDw8ICgxNCAtIGZyYWNfYml0cykpOwo+PiArwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCBzLT5tYXRyaXhfY29lZmZbbWF0XVtjaF0gPSBjb2VmZl92YWwgKiAoMSA8
PCAoKDE0ICsgNCkgLSBmcmFjX2JpdHMpKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gwqAg
LcKgwqDCoMKgwqDCoMKgIGlmIChzLT5ub2lzZV90eXBlKQo+PiArwqDCoMKgwqDCoMKgwqAgaWYg
KDB4MzFlYiA9PSBzLT5zdWJzdHJlYW1fdHlwZSkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgcy0+bWF0cml4X25vaXNlX3NoaWZ0W21hdF0gPSBnZXRfYml0cyhnYnAsIDQpOwo+PiDCoMKg
wqDCoMKgwqDCoMKgwqAgZWxzZQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5tYXRy
aXhfbm9pc2Vfc2hpZnRbbWF0XSA9IDA7Cj4+IEBAIC04MjgsNiArOTA2LDEyNCBAQCBlcnJvcjoK
Pj4gwqDCoMKgwqDCoCByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPj4gwqAgfQo+PiDCoCAr
LyoqIFJlYWQgcGFyYW1ldGVycyBmb3IgcHJpbWl0aXZlIG1hdHJpY2VzICgweDMxZWMgc3Vic3Ry
ZWFtcykuICovCj4+ICsKPj4gK3N0YXRpYyBpbnQgcmVhZF8zMWVjX21hdHJpeF9wYXJhbXMoTUxQ
RGVjb2RlQ29udGV4dCAqbSwgdW5zaWduZWQgaW50IHN1YnN0ciwgR2V0Qml0Q29udGV4dCAqZ2Jw
KQo+PiArewo+PiArwqDCoMKgIFN1YlN0cmVhbSAqcyA9ICZtLT5zdWJzdHJlYW1bc3Vic3RyXTsK
Pj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQgbWF0LCBjaDsKPj4gKwo+PiArwqDCoMKgIGNvbnN0IGlu
dCBtYXhfcHJpbWl0aXZlX21hdHJpY2VzID0gZ2V0X21heF9uYl9wcmltaXRpdmVfbWF0cmljZXMo
bSwgc3Vic3RyKTsKPj4gKwo+PiArwqDCoMKgIGlmICgrK20tPm1hdHJpeF9jaGFuZ2VkID4gMSkg
ewo+PiArwqDCoMKgwqDCoMKgwqAgYXZfbG9nKG0tPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJNYXRy
aWNlcyBtYXkgY2hhbmdlIG9ubHkgb25jZSBwZXIgYWNjZXNzIHVuaXQuXG4iKTsKPj4gK8KgwqDC
oMKgwqDCoMKgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+PiArwqDCoMKgIH0KPj4gKwo+
PiArwqDCoMKgIC8qIFNlZWQgcHJpbWl0aXZlIG1hdHJpY2VzICovCj4+ICsKPj4gK8KgwqDCoCBp
ZiAoZ2V0X2JpdHMxKGdicCkpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIC8qIE5ldyBzZWVkIHByaW1p
dGl2ZSBtYXRyaWNlcyAqLwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoZ2V0X2JpdHMxKGdi
cCkpIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogTmV3IHNlZWQgbWF0cmljZXMgcGFy
YW1ldGVycyAqLwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5udW1fcHJpbWl0aXZlX21h
dHJpY2VzID0gZ2V0X2JpdHMoZ2JwLCA0KSArIDE7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgaWYgKHMtPm51bV9wcmltaXRpdmVfbWF0cmljZXMgPiBtYXhfcHJpbWl0aXZlX21hdHJp
Y2VzKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfbG9nKG0tPmF2Y3R4
LCBBVl9MT0dfRVJST1IsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCAiTnVtYmVyIG9mIHByaW1pdGl2ZSBtYXRyaWNlcyBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuICVk
ICIKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJpbiBzdWJzdHJl
YW0gJXUgb2YgdHlwZSAweCUwNHguXG4iLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgbWF4X3ByaW1pdGl2ZV9tYXRyaWNlcywgc3Vic3RyLCBzLT5zdWJzdHJlYW1f
dHlwZSk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBlcnJvcjsKPj4g
K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IGZvciAobWF0ID0gMDsgbWF0IDwgcy0+bnVtX3ByaW1pdGl2ZV9tYXRyaWNlczsgbWF0KyspIHsK
Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5tYXRyaXhfb3V0X2NowqDCoMKg
wqDCoMKgwqDCoCBbbWF0XSA9IGdldF9iaXRzKGdicCwgNCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgcy0+bWF0cml4X2NvZWZmX2ZyYWNfYml0c1ttYXRdID0gZ2V0X2JpdHMo
Z2JwLCA0KTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5tYXRyaXhfY29l
ZmZfc2hpZnTCoMKgwqAgW21hdF0gPSAoKGludCkgZ2V0X2JpdHMoZ2JwLCAzKSkgLSAxOwo+PiAr
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHMtPmxzYl9ieXBhc3PCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIFttYXRdID0gZ2V0X2JpdHMoZ2JwLCAyKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCBzLT5tYXRyaXhfbm9pc2Vfc2hpZnTCoMKgwqAgW21hdF0gPSBnZXRfYml0
cyhnYnAsIDQpOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHMtPm1hdHJpeF9j
b2VmZl9tYXNrwqDCoMKgwqAgW21hdF0gPSBnZXRfYml0cyhnYnAsIHMtPm1heF9tYXRyaXhfY2hh
bm5lbCArIDEpOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHMt
Pm1hdHJpeF9vdXRfY2hbbWF0XSA+IHMtPm1heF9tYXRyaXhfY2hhbm5lbCkgewo+PiArwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfbG9nKG0tPmF2Y3R4LCBBVl9MT0df
RVJST1IsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgIkludmFsaWQgY2hhbm5lbCAlZCBzcGVjaWZpZWQgYXMgb3V0cHV0IGZyb20gbWF0
cml4LlxuIiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCBzLT5tYXRyaXhfb3V0X2NoW21hdF0pOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBlcnJvcjsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHMtPm1h
dHJpeF9jb2VmZl9mcmFjX2JpdHNbbWF0XSA+IDE0KSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2cobS0+YXZjdHgsIEFWX0xPR19FUlJPUiwKPj4gK8Kg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiVG9v
IG1hbnkgZnJhY3Rpb25hbCBiaXRzIHNwZWNpZmllZC5cbiIpOwo+PiArwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBlcnJvcjsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gK8KgwqDCoMKg
wqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgLyogU2VlZCBtYXRyaWNlcyBjb2VmZmlj
aWVudHMgKi8KPj4gK8KgwqDCoMKgwqDCoMKgIGZvciAobWF0ID0gMDsgbWF0IDwgcy0+bnVtX3By
aW1pdGl2ZV9tYXRyaWNlczsgbWF0KyspIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29u
c3QgaW50IGNvZWZmX3NoaWZ0ID0gcy0+bWF0cml4X2NvZWZmX3NoaWZ0W21hdF0KPj4gK8KgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAtIHMtPm1hdHJpeF9jb2VmZl9mcmFjX2JpdHNbbWF0
XTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtZW1zZXQocy0+bWF0cml4X2NvZWZm
W21hdF0sIDAsIHNpemVvZihzLT5tYXRyaXhfY29lZmZbbWF0XSkpOwo+PiArCj4+ICvCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIGZvciAoY2ggPSAwOyBjaCA8PSBzLT5tYXhfbWF0cml4X2NoYW5uZWw7
IGNoKyspIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQ2NF90IGNvZWZm
X3ZhbDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICghKChzLT5t
YXRyaXhfY29lZmZfbWFza1ttYXRdID4+IGNoKSAmIDB4MSkpCj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZTsgLy8gc2tpcCBjaGFubmVsCj4+ICsKPj4g
K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb2VmZl92YWwgPSBnZXRfc2JpdHMoZ2Jw
LCBzLT5tYXRyaXhfY29lZmZfZnJhY19iaXRzW21hdF0gKyAyKTsKPj4gK8KgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCBzLT5tYXRyaXhfY29lZmZbbWF0XVtjaF0gPSBjb2VmZl92YWwgKiAo
MSA8PCAoMTggKyBjb2VmZl9zaGlmdCkpOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+
ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqAgfQo+PiArCj4+ICvCoMKgwqAgaWYgKCFnZXRf
Yml0czEoZ2JwKSkgewo+PiArwqDCoMKgwqDCoMKgwqAgLyogTm8gcHJpbWl0aXZlIG1hdHJpY2Vz
IGludGVycG9sYXRpb24gKi8KPj4gK8KgwqDCoMKgwqDCoMKgIG1lbXNldChzLT5kZWx0YV9tYXRy
aXhfY29lZmYsIDAsIHNpemVvZihzLT5kZWx0YV9tYXRyaXhfY29lZmYpKTsKPj4gK8KgwqDCoCB9
Cj4+ICvCoMKgwqAgZWxzZSBpZiAoZ2V0X2JpdHMxKGdicCkpIHsKPj4gK8KgwqDCoMKgwqDCoMKg
IC8qIE5ldyBkZWx0YSBwcmltaXRpdmUgbWF0cmljZXMgKi8KPj4gKwo+PiArwqDCoMKgwqDCoMKg
wqAgaWYgKGdldF9iaXRzMShnYnApKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIE5l
dyBkZWx0YSBwcmltaXRpdmUgbWF0cmljZXMgcGFyYW1ldGVycyAqLwo+PiArCj4+ICvCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIGZvciAobWF0ID0gMDsgbWF0IDwgcy0+bnVtX3ByaW1pdGl2ZV9tYXRy
aWNlczsgbWF0KyspIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5kZWx0
YV9tYXRyaXhfY29lZmZfYml0c1ttYXRdID0gZ2V0X2JpdHMoZ2JwLCA0KSArIDE7Cj4+ICvCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcy0+ZGVsdGFfbWF0cml4X2NvZWZmX3ByZWNbbWF0
XSA9IGdldF9iaXRzKGdicCwgMik7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gK8Kg
wqDCoMKgwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgZm9yIChtYXQgPSAwOyBtYXQg
PCBzLT5udW1fcHJpbWl0aXZlX21hdHJpY2VzOyBtYXQrKykgewo+PiArwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCBjb25zdCBpbnQgY29lZmZfc2hpZnQgPSBzLT5tYXRyaXhfY29lZmZfc2hpZnRbbWF0
XQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC0gcy0+ZGVsdGFfbWF0cml4X2Nv
ZWZmX3ByZWNbbWF0XQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC0gcy0+bWF0
cml4X2NvZWZmX2ZyYWNfYml0c1ttYXRdOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IG1lbXNldChzLT5kZWx0YV9tYXRyaXhfY29lZmZbbWF0XSwgMCwgc2l6ZW9mKHMtPmRlbHRhX21h
dHJpeF9jb2VmZlttYXRdKSk7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHMt
PmRlbHRhX21hdHJpeF9jb2VmZl9iaXRzW21hdF0gPD0gMSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCBjb250aW51ZTsgLy8gc2tpcCBtYXRyaWNlCj4+ICsKPj4gK8KgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgZm9yIChjaCA9IDA7IGNoIDw9IHMtPm1heF9tYXRyaXhfY2hhbm5lbDsg
Y2grKykgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludDY0X3QgY29lZmZf
dmFsOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCEoKHMtPm1h
dHJpeF9jb2VmZl9tYXNrW21hdF0gPj4gY2gpICYgMHgxKSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlOyAvLyBza2lwIGNoYW5uZWwKPj4gKwo+PiAr
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvZWZmX3ZhbCA9IGdldF9zYml0cyhnYnAs
IHMtPmRlbHRhX21hdHJpeF9jb2VmZl9iaXRzW21hdF0pOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIHMtPmRlbHRhX21hdHJpeF9jb2VmZlttYXRdW2NoXSA9IGNvZWZmX3ZhbCAq
ICgxIDw8ICgxOCArIGNvZWZmX3NoaWZ0KSk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0K
Pj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4gK8KgwqDCoCB9Cj4+ICsKPj4gK8KgwqDCoCByZXR1cm4g
MDsKPj4gK2Vycm9yOgo+PiArwqDCoMKgIHMtPm51bV9wcmltaXRpdmVfbWF0cmljZXMgPSAwOwo+
PiArwqDCoMKgIG1lbXNldChzLT5tYXRyaXhfb3V0X2NoLCAwLCBzaXplb2Yocy0+bWF0cml4X291
dF9jaCkpOwo+PiArCj4+ICvCoMKgwqAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4+ICt9
Cj4+ICsKPj4gwqAgLyoqIFJlYWQgY2hhbm5lbCBwYXJhbWV0ZXJzLiAqLwo+PiDCoCDCoCBzdGF0
aWMgaW50IHJlYWRfY2hhbm5lbF9wYXJhbXMoTUxQRGVjb2RlQ29udGV4dCAqbSwgdW5zaWduZWQg
aW50IHN1YnN0ciwKPj4gQEAgLTg3NSw4ICsxMDcxLDEwIEBAIHN0YXRpYyBpbnQgcmVhZF9jaGFu
bmVsX3BhcmFtcyhNTFBEZWNvZGVDb250ZXh0ICptLCB1bnNpZ25lZCBpbnQgc3Vic3RyLAo+PiDC
oMKgwqDCoMKgIGNwLT5jb2RlYm9va8KgID0gZ2V0X2JpdHMoZ2JwLCAyKTsKPj4gwqDCoMKgwqDC
oCBjcC0+aHVmZl9sc2JzID0gZ2V0X2JpdHMoZ2JwLCA1KTsKPj4gwqAgLcKgwqDCoCBpZiAoY3At
PmNvZGVib29rID4gMCAmJiBjcC0+aHVmZl9sc2JzID4gMjQpIHsKPj4gLcKgwqDCoMKgwqDCoMKg
IGF2X2xvZyhtLT5hdmN0eCwgQVZfTE9HX0VSUk9SLCAiSW52YWxpZCBodWZmX2xzYnMuXG4iKTsK
Pj4gK8KgwqDCoCBpZiAoY3AtPmNvZGVib29rID4gMCAmJiBjcC0+aHVmZl9sc2JzID4gcy0+bWF4
X2xzYnMpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGF2X2xvZyhtLT5hdmN0eCwgQVZfTE9HX0VSUk9S
LCAiSW52YWxpZCBodWZmX2xzYnM9JSIgUFJJdTggIiwgIgo+PiArwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCAiZXhjZWVkcyBtYXhfbHNicz0lIiBQUkl1OCAiLlxuIiwKPj4gK8KgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgY3AtPmh1ZmZfbHNicywgcy0+bWF4X2xzYnMpOwo+PiDCoMKg
wqDCoMKgwqDCoMKgwqAgY3AtPmh1ZmZfbHNicyA9IDA7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBy
ZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPj4gwqDCoMKgwqDCoCB9Cj4+IEBAIC05MTAsOSAr
MTEwOCwxNCBAQCBzdGF0aWMgaW50IHJlYWRfZGVjb2RpbmdfcGFyYW1zKE1MUERlY29kZUNvbnRl
eHQgKm0sIEdldEJpdENvbnRleHQgKmdicCwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gwqAg
wqDCoMKgwqDCoCBpZiAocy0+cGFyYW1fcHJlc2VuY2VfZmxhZ3MgJiBQQVJBTV9NQVRSSVgpCj4+
IC3CoMKgwqDCoMKgwqDCoCBpZiAoZ2V0X2JpdHMxKGdicCkpCj4+IC3CoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIGlmICgocmV0ID0gcmVhZF9tYXRyaXhfcGFyYW1zKG0sIHN1YnN0ciwgZ2JwKSkgPCAw
KQo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKGdldF9iaXRzMShnYnApKSB7Cj4+ICvCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIGlmICgweDMxZWMgPT0gcy0+c3Vic3RyZWFtX3R5cGUpCj4+ICvCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gcmVhZF8zMWVjX21hdHJpeF9wYXJhbXMobSwg
c3Vic3RyLCBnYnApOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbHNlCj4+ICvCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gcmVhZF8zMWVhXzMxZWJfbWF0cml4X3BhcmFt
cyhtLCBzdWJzdHIsIGdicCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChyZXQgPCAw
KQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiByZXQ7Cj4+ICvC
oMKgwqDCoMKgwqDCoCB9Cj4+IMKgIMKgwqDCoMKgwqAgaWYgKHMtPnBhcmFtX3ByZXNlbmNlX2Zs
YWdzICYgUEFSQU1fT1VUU0hJRlQpCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoZ2V0X2JpdHMx
KGdicCkpIHsKPj4gQEAgLTkyMiw2ICsxMTI1LDEwIEBAIHN0YXRpYyBpbnQgcmVhZF9kZWNvZGlu
Z19wYXJhbXMoTUxQRGVjb2RlQ29udGV4dCAqbSwgR2V0Qml0Q29udGV4dCAqZ2JwLAo+PiDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZwcml2X3JlcXVlc3Rfc2Ft
cGxlKG0tPmF2Y3R4LCAiTmVnYXRpdmUgb3V0cHV0X3NoaWZ0Iik7Cj4+IMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5vdXRwdXRfc2hpZnRbY2hdID0gMDsKPj4g
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgaWYgKHMtPm1heF9zaGlmdCA8IHMtPm91dHB1dF9zaGlmdFtjaF0pCj4+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2cobS0+YXZjdHgs
IEFWX0xPR19XQVJOSU5HLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCAib3V0cHV0X3NoaWZ0PSVkIGV4Y2VlZHMgbWF4X3NoaWZ0PSVkXG4i
LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBzLT5vdXRwdXRfc2hpZnRbY2hdLCBzLT5tYXhfc2hpZnQpOwo+PiDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCB9Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChzdWJzdHIgPT0g
bS0+bWF4X2RlY29kZWRfc3Vic3RyZWFtKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIG0tPnBhY2tfb3V0cHV0ID0gbS0+ZHNwLm1scF9zZWxlY3RfcGFja19vdXRwdXQocy0+
Y2hfYXNzaWduLAo+PiBAQCAtMTEwMyw2ICsxMzEwLDU2IEBAIHN0YXRpYyB2b2lkIGZpbGxfbm9p
c2VfYnVmZmVyKE1MUERlY29kZUNvbnRleHQgKm0sIHVuc2lnbmVkIGludCBzdWJzdHIpCj4+IMKg
wqDCoMKgwqAgcy0+bm9pc2VnZW5fc2VlZCA9IHNlZWQ7Cj4+IMKgIH0KPj4gwqAgKyNpZiBkZWZp
bmVkKEFTU0VSVF9MRVZFTCkgJiYgQVNTRVJUX0xFVkVMID49IDIKPj4gKwo+PiArLyoqIENoZWNr
IG1hdHJpY2VzLWJhc2VkIGNoYW5uZWwgcmVtYXBwaW5nIG91dHB1dCBmb3Igc2F0dXJhdGlvbi4g
Ki8KPj4gKwo+PiArc3RhdGljIHZvaWQgY2hlY2tfcmVtYXRyaXhfb3V0cHV0KE1MUERlY29kZUNv
bnRleHQgKm0sIHVuc2lnbmVkIGludCBzdWJzdHIpCj4+ICt7Cj4+ICvCoMKgwqAgU3ViU3RyZWFt
ICpzID0gJm0tPnN1YnN0cmVhbVtzdWJzdHJdOwo+PiArwqDCoMKgIHVuc2lnbmVkIGludCBtYXQs
IHNhbXBsZTsKPj4gKwo+PiArwqDCoMKgIGZvciAobWF0ID0gMDsgbWF0IDwgcy0+bnVtX3ByaW1p
dGl2ZV9tYXRyaWNlczsgbWF0KyspIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBk
ZXN0X2NoID0gcy0+bWF0cml4X291dF9jaFttYXRdOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBj
b25zdCB1aW50OF90IHNoaWZ0ID0gKDMgPD0gc3Vic3RyICYmIHMtPm1pbl9jaGFubmVsIDw9IGRl
c3RfY2gpID8gMzEgOiAyMzsKPj4gK8KgwqDCoMKgwqDCoMKgIGNvbnN0IGludDMyX3QgbWluX3Zh
bHVlID0gLSgxdSA8PCBzaGlmdCk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBjb25zdCBpbnQzMl90IG1h
eF92YWx1ZSA9wqAgKDF1IDw8IHNoaWZ0KSAtIDE7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIGZv
ciAoc2FtcGxlID0gMDsgc2FtcGxlIDwgcy0+YmxvY2twb3M7IHNhbXBsZSsrKSB7Cj4+ICvCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIGlmIChtLT5zYW1wbGVfYnVmZmVyW3NhbXBsZV1bZGVzdF9jaF0g
PCBtaW5fdmFsdWUpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfbG9nKG0t
PmF2Y3R4LCBBVl9MT0dfV0FSTklORywKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgICJyZW1hdHJpeCBuZWdhdGl2ZSBzYXR1cmF0aW9uIHN1YnN0cj0ldSBtYXQ9JXUg
c2FtcGxlPSVkICIKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJ2
YWx1ZT0lIiBQUklkMzIgIlxuIiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIHN1YnN0ciwgbWF0LCBzYW1wbGUsIG0tPnNhbXBsZV9idWZmZXJbc2FtcGxlXVtkZXN0
X2NoXSk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChtLT5zYW1wbGVfYnVmZmVyW3Nh
bXBsZV1bZGVzdF9jaF0gPiBtYXhfdmFsdWUpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgYXZfbG9nKG0tPmF2Y3R4LCBBVl9MT0dfV0FSTklORywKPj4gK8KgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJyZW1hdHJpeCBwb3NpdGl2ZSBzYXR1cmF0aW9uIHN1
YnN0cj0ldSBtYXQ9JXUgc2FtcGxlPSVkICIKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgICJ2YWx1ZT0lIiBQUklkMzIgIlxuIiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN1YnN0ciwgbWF0LCBzYW1wbGUsIG0tPnNhbXBsZV9idWZm
ZXJbc2FtcGxlXVtkZXN0X2NoXSk7Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqAgfQo+
PiArfQo+PiArCj4+ICsvKiogQ2hlY2sgb3V0cHV0IGF1ZGlvIGJpdC1kZXB0aC4gKi8KPj4gKwo+
PiArc3RhdGljIHZvaWQgY2hlY2tfb3V0cHV0X2JpdF9kZXB0aChNTFBEZWNvZGVDb250ZXh0ICpt
LCB1bnNpZ25lZCBpbnQgc3Vic3RyKQo+PiArewo+PiArwqDCoMKgIFN1YlN0cmVhbSAqcyA9ICZt
LT5zdWJzdHJlYW1bc3Vic3RyXTsKPj4gK8KgwqDCoCB1aW50MzJfdCBjdW11bF9tYXNrID0gMDsK
Pj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQgY2hhbiwgc2FtcGxlOwo+PiArCj4+ICvCoMKgwqAgZm9y
IChjaGFuID0gMDsgY2hhbiA8PSBzLT5tYXhfbWF0cml4X2NoYW5uZWw7IGNoYW4rKykKPj4gK8Kg
wqDCoMKgwqDCoMKgIGZvciAoc2FtcGxlID0gMDsgc2FtcGxlIDwgcy0+YmxvY2twb3M7IHNhbXBs
ZSsrKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjdW11bF9tYXNrIHw9IEZGQUJTKG0tPnNh
bXBsZV9idWZmZXJbc2FtcGxlXVtjaGFuXSk7Cj4+ICsKPj4gK8KgwqDCoCBpZiAoKDF1IDw8IHMt
Pm1heF9iaXRzKSA8PSBjdW11bF9tYXNrKQo+PiArwqDCoMKgwqDCoMKgwqAgYXZfbG9nKG0tPmF2
Y3R4LCBBVl9MT0dfV0FSTklORywgIm91dHB1dCBhdWRpbyBiaXQtZGVwdGggZXhjZWVkcyAiCj4+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJleHBlY3RlZCAldSBiaXRzLlxuIiwKPj4g
K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcy0+bWF4X2JpdHMpOwo+PiArfQo+PiArI2Vu
ZGlmCj4+ICsKPj4gwqAgLyoqIFdyaXRlIHRoZSBhdWRpbyBkYXRhIGludG8gdGhlIG91dHB1dCBi
dWZmZXIuICovCj4+IMKgIMKgIHN0YXRpYyBpbnQgb3V0cHV0X2RhdGEoTUxQRGVjb2RlQ29udGV4
dCAqbSwgdW5zaWduZWQgaW50IHN1YnN0ciwKPj4gQEAgLTExMTAsOCArMTM2Nyw3IEBAIHN0YXRp
YyBpbnQgb3V0cHV0X2RhdGEoTUxQRGVjb2RlQ29udGV4dCAqbSwgdW5zaWduZWQgaW50IHN1YnN0
ciwKPj4gwqAgewo+PiDCoMKgwqDCoMKgIEFWQ29kZWNDb250ZXh0ICphdmN0eCA9IG0tPmF2Y3R4
Owo+PiDCoMKgwqDCoMKgIFN1YlN0cmVhbSAqcyA9ICZtLT5zdWJzdHJlYW1bc3Vic3RyXTsKPj4g
LcKgwqDCoCB1bnNpZ25lZCBpbnQgbWF0Owo+PiAtwqDCoMKgIHVuc2lnbmVkIGludCBtYXhjaGFu
Owo+PiArwqDCoMKgIHVuc2lnbmVkIGludCBtYXQsIGNoYW4sIG1heGNoYW47Cj4+IMKgwqDCoMKg
wqAgaW50IHJldDsKPj4gwqDCoMKgwqDCoCBpbnQgaXMzMiA9IChtLT5hdmN0eC0+c2FtcGxlX2Zt
dCA9PSBBVl9TQU1QTEVfRk1UX1MzMik7Cj4+IMKgIEBAIC0xMTI2LDcgKzEzODIsNyBAQCBzdGF0
aWMgaW50IG91dHB1dF9kYXRhKE1MUERlY29kZUNvbnRleHQgKm0sIHVuc2lnbmVkIGludCBzdWJz
dHIsCj4+IMKgwqDCoMKgwqAgfQo+PiDCoCDCoMKgwqDCoMKgIG1heGNoYW4gPSBzLT5tYXhfbWF0
cml4X2NoYW5uZWw7Cj4+IC3CoMKgwqAgaWYgKCFzLT5ub2lzZV90eXBlKSB7Cj4+ICvCoMKgwqAg
aWYgKDB4MzFlYSA9PSBzLT5zdWJzdHJlYW1fdHlwZSkgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg
Z2VuZXJhdGVfMl9ub2lzZV9jaGFubmVscyhtLCBzdWJzdHIpOwo+PiDCoMKgwqDCoMKgwqDCoMKg
wqAgbWF4Y2hhbiArPSAyOwo+PiDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4+IEBAIC0xMTM3LDE5ICsx
MzkzLDQ1IEBAIHN0YXRpYyBpbnQgb3V0cHV0X2RhdGEoTUxQRGVjb2RlQ29udGV4dCAqbSwgdW5z
aWduZWQgaW50IHN1YnN0ciwKPj4gwqDCoMKgwqDCoMKgICogc2FtcGxlcy4gKi8KPj4gwqDCoMKg
wqDCoCBmb3IgKG1hdCA9IDA7IG1hdCA8IHMtPm51bV9wcmltaXRpdmVfbWF0cmljZXM7IG1hdCsr
KSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgZGVzdF9jaCA9IHMtPm1hdHJp
eF9vdXRfY2hbbWF0XTsKPj4gLcKgwqDCoMKgwqDCoMKgIG0tPmRzcC5tbHBfcmVtYXRyaXhfY2hh
bm5lbCgmbS0+c2FtcGxlX2J1ZmZlclswXVswXSwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcy0+bWF0cml4
X2NvZWZmW21hdF0sCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZtLT5ieXBhc3NlZF9sc2JzWzBdW21hdF0s
Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIG0tPm5vaXNlX2J1ZmZlciwKPj4gLcKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcy0+
bnVtX3ByaW1pdGl2ZV9tYXRyaWNlcyAtIG1hdCwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGVzdF9jaCwK
Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgcy0+YmxvY2twb3MsCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1heGNoYW4s
Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIHMtPm1hdHJpeF9ub2lzZV9zaGlmdFttYXRdLAo+PiAtwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCBtLT5hY2Nlc3NfdW5pdF9zaXplX3BvdzIsCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE1TQl9N
QVNLKHMtPnF1YW50X3N0ZXBfc2l6ZVtkZXN0X2NoXSkpOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDC
oCBpZiAoc3Vic3RyIDwgMykgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBTaW5nbGUg
cHJpbWl0aXZlIG1hdHJpY2VzICovCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG0tPmRzcC5t
bHBfcmVtYXRyaXhfY2hhbm5lbCgmbS0+c2FtcGxlX2J1ZmZlclswXVswXSwKPj4gK8KgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCBzLT5tYXRyaXhfY29lZmZbbWF0XSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCAmbS0+YnlwYXNzZWRfbHNic1swXVttYXRdLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IG0tPm5vaXNlX2J1ZmZlciwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5udW1fcHJpbWl0
aXZlX21hdHJpY2VzIC0gbWF0LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlc3RfY2gsCj4+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcy0+YmxvY2twb3MsCj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgbWF4Y2hhbiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5tYXRyaXhfbm9pc2Vf
c2hpZnRbbWF0XSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtLT5hY2Nlc3NfdW5pdF9zaXpl
X3BvdzIsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgTVNCX01BU0socy0+cXVhbnRfc3RlcF9z
aXplW2Rlc3RfY2hdKSk7Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqDCoMKgwqDCoCBl
bHNlIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogSW50ZXJwb2xhdGVkIHByaW1pdGl2
ZSBtYXRyaWNlcyAqLwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtLT5kc3AubWxwX3JlbWF0
cml4X2ludGVycF9jaGFubmVsKCZtLT5zYW1wbGVfYnVmZmVyWzBdWzBdLAo+PiArwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcy0+bWF0cml4X2NvZWZmW21hdF0sCj4+ICvCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5kZWx0YV9tYXRyaXhfY29lZmZbbWF0
XSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZtLT5ieXBhc3NlZF9s
c2JzWzBdW21hdF0sCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtLT5u
b2lzZV9idWZmZXIsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5u
dW1fcHJpbWl0aXZlX21hdHJpY2VzIC0gbWF0LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgZGVzdF9jaCwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIHMtPmJsb2NrcG9zLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
bWF4Y2hhbiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHMtPm1hdHJp
eF9ub2lzZV9zaGlmdFttYXRdLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgbS0+YWNjZXNzX3VuaXRfc2l6ZV9wb3cyLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgTVNCX01BU0socy0+cXVhbnRfc3RlcF9zaXplW2Rlc3RfY2hdKSk7Cj4+ICsK
Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZm9yIChjaGFuID0gMDsgY2hhbiA8PSBtYXhjaGFu
OyBjaGFuKyspCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcy0+bWF0cml4X2Nv
ZWZmW21hdF1bY2hhbl0gKz0gcy0+ZGVsdGFfbWF0cml4X2NvZWZmW21hdF1bY2hhbl07Cj4+ICvC
oMKgwqDCoMKgwqDCoCB9Cj4+IMKgwqDCoMKgwqAgfQo+PiDCoCArI2lmIGRlZmluZWQoQVNTRVJU
X0xFVkVMKSAmJiBBU1NFUlRfTEVWRUwgPj0gMgo+PiArwqDCoMKgIGNoZWNrX3JlbWF0cml4X291
dHB1dChtLCBzdWJzdHIpOwo+PiArI2VuZGlmCj4+ICsKPj4gwqDCoMKgwqDCoCAvKiBnZXQgb3V0
cHV0IGJ1ZmZlciAqLwo+PiDCoMKgwqDCoMKgIGZyYW1lLT5uYl9zYW1wbGVzID0gcy0+YmxvY2tw
b3M7Cj4+IMKgwqDCoMKgwqAgaWYgKChyZXQgPSBmZl9nZXRfYnVmZmVyKGF2Y3R4LCBmcmFtZSwg
MCkpIDwgMCkKPj4gQEAgLTExNjMsNiArMTQ0NSwxMCBAQCBzdGF0aWMgaW50IG91dHB1dF9kYXRh
KE1MUERlY29kZUNvbnRleHQgKm0sIHVuc2lnbmVkIGludCBzdWJzdHIsCj4+IMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5tYXhfbWF0cml4X2NoYW5uZWwsCj4+IMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpczMyKTsKPj4gwqAgKyNpZiBkZWZpbmVkKEFTU0VS
VF9MRVZFTCkgJiYgQVNTRVJUX0xFVkVMID49IDIKPj4gK8KgwqDCoCBjaGVja19vdXRwdXRfYml0
X2RlcHRoKG0sIHN1YnN0cik7Cj4+ICsjZW5kaWYKPj4gKwo+PiDCoMKgwqDCoMKgIC8qIFVwZGF0
ZSBtYXRyaXggZW5jb2Rpbmcgc2lkZSBkYXRhICovCj4+IMKgwqDCoMKgwqAgaWYgKHMtPm1hdHJp
eF9lbmNvZGluZyAhPSBzLT5wcmV2X21hdHJpeF9lbmNvZGluZykgewo+PiDCoMKgwqDCoMKgwqDC
oMKgwqAgaWYgKChyZXQgPSBmZl9zaWRlX2RhdGFfdXBkYXRlX21hdHJpeF9lbmNvZGluZyhmcmFt
ZSwgcy0+bWF0cml4X2VuY29kaW5nKSkgPCAwKQo+PiBAQCAtMTMyMCw2ICsxNjA2LDcgQEAgc3Rh
dGljIGludCByZWFkX2FjY2Vzc191bml0KEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAq
ZnJhbWUsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoYXZjdHgtPmNo
X2xheW91dC5uYl9jaGFubmVscyA9PSA4ICYmCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgICgobS0+c3Vic3RyZWFtX2luZm8gPj4gNCkgJiAweDcpICE9IDB4NyAmJgo+
PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoKG0tPnN1YnN0cmVhbV9p
bmZvID4+IDQpICYgMHg3KSAhPSAweDYgJiYKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgKChtLT5zdWJzdHJlYW1faW5mbyA+PiA0KSAmIDB4NykgIT0gMHg0ICYmCj4+IMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICgobS0+c3Vic3RyZWFtX2luZm8g
Pj4gNCkgJiAweDcpICE9IDB4MykpICYmCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgc3Vic3RyID4gMCAmJiBzdWJzdHIgPCBtLT5tYXhfZGVjb2RlZF9zdWJzdHJlYW0gJiYK
Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAocy0+bWluX2NoYW5uZWwgPD0g
bS0+c3Vic3RyZWFtW3N1YnN0ciAtIDFdLm1heF9jaGFubmVsKSkgewo+PiBAQCAtMTQyOSw4ICsx
NzE2LDEwIEBAIHN0YXRpYyB2b2lkIG1scF9kZWNvZGVfZmx1c2goQVZDb2RlY0NvbnRleHQgKmF2
Y3R4KQo+PiDCoCAjZGVmaW5lIE9GRlNFVCh4KSBvZmZzZXRvZihNTFBEZWNvZGVDb250ZXh0LCB4
KQo+PiDCoCAjZGVmaW5lIEZMQUdTIChBVl9PUFRfRkxBR19ERUNPRElOR19QQVJBTSB8IEFWX09Q
VF9GTEFHX0FVRElPX1BBUkFNKQo+PiDCoCBzdGF0aWMgY29uc3QgQVZPcHRpb24gb3B0aW9uc1td
ID0gewo+PiAtwqDCoMKgIHsgImRvd25taXgiLCAiUmVxdWVzdCBhIHNwZWNpZmljIGNoYW5uZWwg
bGF5b3V0IGZyb20gdGhlIGRlY29kZXIiLCBPRkZTRVQoZG93bm1peF9sYXlvdXQpLAo+PiAtwqDC
oMKgwqDCoMKgwqAgQVZfT1BUX1RZUEVfQ0hMQVlPVVQsIHsuc3RyID0gTlVMTH0sIC5mbGFncyA9
IEZMQUdTIH0sCj4+ICvCoMKgwqAgeyAiZG93bm1peCIsICJSZXF1ZXN0IGEgc3BlY2lmaWMgY2hh
bm5lbCBsYXlvdXQgZnJvbSB0aGUgZGVjb2RlciIsCj4+ICvCoMKgwqDCoMKgwqDCoCBPRkZTRVQo
ZG93bm1peF9sYXlvdXQpLCBBVl9PUFRfVFlQRV9DSExBWU9VVCwgey5zdHIgPSBOVUxMfSwgLmZs
YWdzID0gRkxBR1MgfSwKPj4gK8KgwqDCoCB7ICJleHRyYWN0X29iamVjdHMiLCAiRW5hYmxlIGV4
dHJhY3Rpb24gb2YgYXVkaW8gb2JqZWN0IGNoYW5uZWxzIiwKPj4gK8KgwqDCoMKgwqDCoMKgIE9G
RlNFVChleHRyYWN0X29iamVjdHMpLCBBVl9PUFRfVFlQRV9CT09MLCB7IC5pNjQgPSAwIH0sIDAs
IDEsIC5mbGFncyA9IEZMQUdTIH0sCj4+IMKgwqDCoMKgwqAgeyBOVUxMIH0sCj4gCj4gSU1ITyB0
aGlzIHNob3VsZCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQuIEFsbCBzdHJlYW1zIGNvbWUgd2l0aCBj
b21wYXRpYmlsaXR5IEFDMyBtaXhlcyB0b28uCj4gCgpJIGFzc3VtZWQgdGhhdCB0aGlzIHdvdWxk
IG5vdCBiZSBhIGdvb2QgaWRlYSwgYXMgYXVkaW8gb2JqZWN0cyBjaGFubmVscyBhcmUgbm90IG1l
YW50IHRvIGJlIGhlYXJkIHdpdGhvdXQgcmVuZGVyaW5nIChhcyBmb3Igb3RoZXIgQXRtb3MsIG9y
IGFueSBvdGhlciBvYmplY3QgYXVkaW8gZm9ybWF0IGxpa2UgTVBFRy1IIEF1ZGlvLCBiaXRzdHJl
YW1zKSB3aGljaCBpcyBub3Qgc29tZXRoaW5nIGN1cnJlbnRseSBpbXBsZW1lbnRlZCBpbiBGRm1w
ZWcuCldoZW4gdGhpcyBvcHRpb24gaXMgZGlzYWJsZWQgKGJ5IGRlZmF1bHQpIG9yIHdpdGhvdXQg
dGhpcyBwYXRjaCwgZGVjb2RpbmcgaXMgcmVzdHJpY3RlZCB0byB0aGUgdGhpcmQgc3Vic3RyZWFt
IHdoaWNoIHByb2R1Y2VzIGEgcHJvcGVyIGJhY2t3YXJkIGNvbXBhdGlibGUgNy4xIHJlbmRlcmlu
ZyAodGhpcyBpcyBhIHN0cmVuZ3RoIG9mIFRydWVIRCB3LyBBdG1vcykgc3VpdGFibGUgZm9yIHBs
YXliYWNrLgpJZiB0aGUgb3B0aW9uIGlzIGVuYWJsZWQsIHBsYXlpbmcgYmFjayB0aGUgcHJvZHVj
ZWQgbm9uLXNwYXRpYWxseSByZW5kZXJlZCBhdWRpbyBzdHJlYW0gd291bGQgc291bmQgb2ZmIHRv
IG5vbi1hd2FyZSB1c2Vycy4KCk1vcmUgZGV0YWlscyBhYm91dCB0aGUgYmFja3dhcmQgY29tcGF0
aWJsZSBuYXR1cmUgb2YgVHJ1ZUhEIHcvIEF0bW9zIGNhbiBiZSBmb3VuZCBpbiB0aGUgZm9sbG93
aW5nIHBhcGVyOgpWLiBNZWxrb3RlLCBNLiBMYXcgYW5kIFIuIFdpbHNvbiwgIkhpZXJhcmNoaWNh
bCBhbmQgTG9zc2xlc3MgQ29kaW5nIG9mIGF1ZGlvIG9iamVjdHMgaW4gRG9sYnkgVHJ1ZUhELCIg
MjAxNSBJRUVFIEludGVybmF0aW9uYWwgQ29uZmVyZW5jZSBvbiBBY291c3RpY3MsIFNwZWVjaCBh
bmQgU2lnbmFsIFByb2Nlc3NpbmcgKElDQVNTUCksIFNvdXRoIEJyaXNiYW5lLCBRTEQsIEF1c3Ry
YWxpYSwgMjAxNSwgcHAuIDM4NC0zODgsIGRvaTogMTAuMTEwOS9JQ0FTU1AuMjAxNS43MTc3OTk2
LgoKPj4gwqAgfTsKPj4gwqAgZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbWxwZHNwLmMgYi9saWJh
dmNvZGVjL21scGRzcC5jCj4+IGluZGV4IGNiNDAxNjBmNjcuLmUyODAwNmYyYzQgMTAwNjQ0Cj4+
IC0tLSBhL2xpYmF2Y29kZWMvbWxwZHNwLmMKPj4gKysrIGIvbGliYXZjb2RlYy9tbHBkc3AuYwo+
PiBAQCAtNzksMTEgKzc5LDUxIEBAIHZvaWQgZmZfbWxwX3JlbWF0cml4X2NoYW5uZWwoaW50MzJf
dCAqc2FtcGxlcywKPj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChtYXRyaXhfbm9pc2Vfc2hp
ZnQpIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW5kZXggJj0gYWNjZXNzX3VuaXRf
c2l6ZV9wb3cyIC0gMTsKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYWNjdW0gKz0gbm9pc2Vf
YnVmZmVyW2luZGV4XSAqICgxIDw8IChtYXRyaXhfbm9pc2Vfc2hpZnQgKyA3KSk7Cj4+ICvCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIGFjY3VtICs9IG5vaXNlX2J1ZmZlcltpbmRleF0gKiAoMSA8PCAo
bWF0cml4X25vaXNlX3NoaWZ0ICsgMTEpKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
aW5kZXggKz0gaW5kZXgyOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+PiDCoCAtwqDCoMKgwqDC
oMKgwqAgc2FtcGxlc1tkZXN0X2NoXSA9ICgoYWNjdW0gPj4gMTQpICYgbWFzaykgKyAqYnlwYXNz
ZWRfbHNiczsKPj4gK8KgwqDCoMKgwqDCoMKgIHNhbXBsZXNbZGVzdF9jaF0gPSAoKGFjY3VtID4+
IDE4KSAmIG1hc2spICsgKmJ5cGFzc2VkX2xzYnM7Cj4+ICvCoMKgwqDCoMKgwqDCoCBieXBhc3Nl
ZF9sc2JzICs9IE1BWF9DSEFOTkVMUzsKPj4gK8KgwqDCoMKgwqDCoMKgIHNhbXBsZXMgKz0gTUFY
X0NIQU5ORUxTOwo+PiArwqDCoMKgIH0KPj4gK30KPj4gKwo+PiArdm9pZCBmZl9tbHBfcmVtYXRy
aXhfaW50ZXJwX2NoYW5uZWwoaW50MzJfdCAqc2FtcGxlcywKPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29u
c3QgaW50MzJfdCAqc2VlZF9jb2VmZnMsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IGludDMyX3Qg
KmRlbHRhX2NvZWZmcywKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgdWludDhfdCAqYnlwYXNzZWRf
bHNicywKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgaW50OF90ICpub2lzZV9idWZmZXIsCj4+ICvC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIGludCBpbmRleCwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IGRl
c3RfY2gsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVpbnQxNl90IGJsb2NrcG9zLAo+PiArwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCB1bnNpZ25lZCBpbnQgbWF4Y2hhbiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IG1hdHJpeF9u
b2lzZV9zaGlmdCwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IGFjY2Vzc191bml0X3NpemVfcG93MiwK
Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgaW50MzJfdCBtYXNrKQo+PiArewo+PiArwqDCoMKgIHVuc2lnbmVk
IGludCBzcmNfY2gsIGk7Cj4+ICvCoMKgwqAgaW50IGluZGV4MiA9IDIgKiBpbmRleCArIDE7Cj4+
ICsKPj4gK8KgwqDCoCBpbnQzMl90IGRlbHRhX2luYyA9ICgxIDw8IDE2KSAvIGJsb2NrcG9zOwo+
PiArCj4+ICvCoMKgwqAgZm9yIChpID0gMDsgaSA8IGJsb2NrcG9zOyBpKyspIHsKPj4gK8KgwqDC
oMKgwqDCoMKgIGludDY0X3QgYWNjdW0gPSAwLCBkZWx0YV9hY2N1bSA9IDA7Cj4+ICsKPj4gK8Kg
wqDCoMKgwqDCoMKgIGZvciAoc3JjX2NoID0gMDsgc3JjX2NoIDw9IG1heGNoYW47IHNyY19jaCsr
KSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFjY3VtICs9IChpbnQ2NF90KSBzYW1wbGVz
W3NyY19jaF0gKiBzZWVkX2NvZWZmc1tzcmNfY2hdOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBkZWx0YV9hY2N1bSArPSAoaW50NjRfdCkgc2FtcGxlc1tzcmNfY2hdICogZGVsdGFfY29lZmZz
W3NyY19jaF07Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIGFj
Y3VtICs9ICgoZGVsdGFfYWNjdW0gPj4gMTgpICogaSAqIGRlbHRhX2luYyAqICgxIDw8IDE4KSkg
Pj4gMTY7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmIChtYXRyaXhfbm9pc2Vfc2hpZnQpIHsK
Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW5kZXggJj0gYWNjZXNzX3VuaXRfc2l6ZV9wb3cy
IC0gMTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYWNjdW0gKz0gbm9pc2VfYnVmZmVyW2lu
ZGV4XSAqICgxIDw8IChtYXRyaXhfbm9pc2Vfc2hpZnQgKyAxMSkpOwo+PiArwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCBpbmRleCArPSBpbmRleDI7Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICsKPj4g
K8KgwqDCoMKgwqDCoMKgIHNhbXBsZXNbZGVzdF9jaF0gPSAoKGFjY3VtID4+IDE4KSAmIG1hc2sp
ICsgKmJ5cGFzc2VkX2xzYnM7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBieXBhc3NlZF9sc2JzICs9
IE1BWF9DSEFOTkVMUzsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHNhbXBsZXMgKz0gTUFYX0NIQU5O
RUxTOwo+PiDCoMKgwqDCoMKgIH0KPj4gQEAgLTExNSw5ICsxNTUsMTAgQEAgaW50MzJfdCBmZl9t
bHBfcGFja19vdXRwdXQoaW50MzJfdCBsb3NzbGVzc19jaGVja19kYXRhLAo+PiDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCBpbnQgbWF0X2NoID0gY2hfYXNzaWduW291dF9jaF07Cj4+IMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludDMyX3Qgc2FtcGxlID0gc2FtcGxlX2J1ZmZlcltpXVtt
YXRfY2hdICoKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgICgxVSA8PCBvdXRwdXRfc2hpZnRbbWF0X2NoXSk7Cj4+IC3CoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIGxvc3NsZXNzX2NoZWNrX2RhdGEgXj0gKHNhbXBsZSAmIDB4ZmZmZmZmKSA8PCBt
YXRfY2g7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxvc3NsZXNzX2NoZWNrX2RhdGEgXj0g
KHNhbXBsZSAmIDB4ZmZmZmZmKSA8PCAobWF0X2NoICYgNyk7Cj4+ICsKPj4gwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgaWYgKGlzMzIpCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgKmRhdGFfMzIrKyA9IHNhbXBsZSAqIDI1NlU7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgKmRhdGFfMzIrKyA9IHNhbXBsZSAqICgxIDw8IDgpOwo+PiDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCBlbHNlCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
KmRhdGFfMTYrKyA9IHNhbXBsZSA+PiA4Owo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+PiBAQCAt
MTI5LDYgKzE3MCw3IEBAIGF2X2NvbGQgdm9pZCBmZl9tbHBkc3BfaW5pdChNTFBEU1BDb250ZXh0
ICpjKQo+PiDCoCB7Cj4+IMKgwqDCoMKgwqAgYy0+bWxwX2ZpbHRlcl9jaGFubmVsID0gbWxwX2Zp
bHRlcl9jaGFubmVsOwo+PiDCoMKgwqDCoMKgIGMtPm1scF9yZW1hdHJpeF9jaGFubmVsID0gZmZf
bWxwX3JlbWF0cml4X2NoYW5uZWw7Cj4+ICvCoMKgwqAgYy0+bWxwX3JlbWF0cml4X2ludGVycF9j
aGFubmVsID0gZmZfbWxwX3JlbWF0cml4X2ludGVycF9jaGFubmVsOwo+PiDCoMKgwqDCoMKgIGMt
Pm1scF9zZWxlY3RfcGFja19vdXRwdXQgPSBtbHBfc2VsZWN0X3BhY2tfb3V0cHV0Owo+PiDCoCAj
aWYgQVJDSF9BUk0KPj4gwqDCoMKgwqDCoCBmZl9tbHBkc3BfaW5pdF9hcm0oYyk7Cj4+IGRpZmYg
LS1naXQgYS9saWJhdmNvZGVjL21scGRzcC5oIGIvbGliYXZjb2RlYy9tbHBkc3AuaAo+PiBpbmRl
eCA3YTlhYzIyOGQzLi5mZDI5ZGIxMGE3IDEwMDY0NAo+PiAtLS0gYS9saWJhdmNvZGVjL21scGRz
cC5oCj4+ICsrKyBiL2xpYmF2Y29kZWMvbWxwZHNwLmgKPj4gQEAgLTM3LDYgKzM3LDE5IEBAIHZv
aWQgZmZfbWxwX3JlbWF0cml4X2NoYW5uZWwoaW50MzJfdCAqc2FtcGxlcywKPj4gwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBh
Y2Nlc3NfdW5pdF9zaXplX3BvdzIsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQzMl90IG1hc2spOwo+PiDCoCArdm9pZCBm
Zl9tbHBfcmVtYXRyaXhfaW50ZXJwX2NoYW5uZWwoaW50MzJfdCAqc2FtcGxlcywKPj4gK8KgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgY29uc3QgaW50MzJfdCAqc2VlZF9jb2VmZnMsCj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNv
bnN0IGludDMyX3QgKmRlbHRhX2NvZWZmcywKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgdWludDhf
dCAqYnlwYXNzZWRfbHNicywKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgaW50OF90ICpub2lzZV9i
dWZmZXIsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBpbmRleCwKPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5z
aWduZWQgaW50IGRlc3RfY2gsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVpbnQxNl90IGJsb2NrcG9zLAo+
PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgbWF4Y2hhbiwKPj4gK8KgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
aW50IG1hdHJpeF9ub2lzZV9zaGlmdCwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IGFjY2Vzc191bml0
X3NpemVfcG93MiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50MzJfdCBtYXNrKTsKPj4gKwo+PiDCoCBp
bnQzMl90IGZmX21scF9wYWNrX291dHB1dChpbnQzMl90IGxvc3NsZXNzX2NoZWNrX2RhdGEsCj4+
IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IHVpbnQxNl90IGJsb2NrcG9zLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQzMl90ICgqc2FtcGxlX2J1ZmZlcilbTUFYX0NIQU5O
RUxTXSwKPj4gQEAgLTYyLDYgKzc1LDE4IEBAIHR5cGVkZWYgc3RydWN0IE1MUERTUENvbnRleHQg
ewo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCBpbnQgbWF0cml4X25vaXNlX3NoaWZ0LAo+PiDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp
bnQgYWNjZXNzX3VuaXRfc2l6ZV9wb3cyLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQzMl90IG1hc2spOwo+
PiArwqDCoMKgIHZvaWQgKCptbHBfcmVtYXRyaXhfaW50ZXJwX2NoYW5uZWwpKGludDMyX3QgKnNh
bXBsZXMsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgaW50MzJfdCAqc2VlZF9jb2Vm
ZnMsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgaW50MzJfdCAqZGVsdGFfY29lZmZz
LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IHVpbnQ4X3QgKmJ5cGFzc2VkX2xzYnMs
Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgaW50OF90ICpub2lzZV9idWZmZXIsCj4+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IGluZGV4LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIHVuc2lnbmVkIGludCBkZXN0X2NoLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVpbnQx
Nl90IGJsb2NrcG9zLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBtYXhj
aGFuLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBtYXRyaXhfbm9pc2Vfc2hpZnQsCj4+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IGFjY2Vzc191bml0X3NpemVfcG93MiwKPj4gK8Kg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQzMl90IG1hc2spOwo+PiDCoMKgwqDCoMKgIGludDMyX3Qg
KCooKm1scF9zZWxlY3RfcGFja19vdXRwdXQpKHVpbnQ4X3QgKmNoX2Fzc2lnbiwKPj4gwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQ4X3QgKm91dHB1dF9zaGlmdCwKPj4gwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCB1aW50OF90IG1heF9tYXRyaXhfY2hhbm5lbCwKPj4gZGlmZiAtLWdpdCBh
L2xpYmF2Y29kZWMveDg2L21scGRzcC5hc20gYi9saWJhdmNvZGVjL3g4Ni9tbHBkc3AuYXNtCj4+
IGluZGV4IDNkYzY0MWU4OWUuLjNiMjMyZDQ1NTEgMTAwNjQ0Cj4+IC0tLSBhL2xpYmF2Y29kZWMv
eDg2L21scGRzcC5hc20KPj4gKysrIGIvbGliYXZjb2RlYy94ODYvbWxwZHNwLmFzbQo+PiBAQCAt
NjEsMTIgKzYxLDEyIEBAIFNFQ1RJT04gLnRleHQKPj4gwqDCoMKgwqDCoCBwYWRkccKgwqDCoMKg
wqDCoMKgIHhtMCwgeG0xCj4+IMKgwqDCoMKgwqAgbW92ccKgwqDCoMKgwqAgYWNjdW1xLCB4bTAK
Pj4gwqDCoMKgwqDCoCBtb3Z6eMKgwqDCoMKgIGJsc2JzZCwgYnl0ZSBbYmxzYnNfcHRycV3CoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgOyBsb2FkICpieXBhc3NlZF9sc2JzCj4+IC3CoMKgwqAgc2Fy
wqDCoMKgwqDCoMKgIGFjY3VtcSwgMTTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgOyBhY2N1bSA+Pj0gMTQKPj4gK8KgwqDCoCBzYXLCoMKgwqDC
oMKgwqAgYWNjdW1xLCAxOMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCA7IGFjY3VtID4+PSAxOAo+PiDCoMKgwqDCoMKgIGFuZMKgwqDCoMKgwqDC
oCBhY2N1bWQsIG1hc2tkwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIDsgYWNjdW0gJj0gbWFzawo+PiDCoMKgwqDCoMKgIGFkZMKgwqDCoMKgwqDCoCBhY2N1
bWQsIGJsc2JzZMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
OyBhY2N1bSArPSAqYnlwYXNzZWRfbHNicwo+PiDCoMKgwqDCoMKgIG1vdsKgwqAgW3NhbXBsZXNx
ICsgZGVzdF9jaHFdLCBhY2N1bWTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOyBzYW1wbGVzW2Rl
c3RfY2hdID0gYWNjdW0KPj4gLcKgwqDCoCBhZGTCoMKgIGJsc2JzX3B0cnEsIDjCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA7IGJ5cGFzc2Vk
X2xzYnMgKz0gTUFYX0NIQU5ORUxTOwo+PiAtwqDCoMKgIGFkZMKgwqDCoMKgIHNhbXBsZXNxLCAz
MsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA7
IHNhbXBsZXMgKz0gTUFYX0NIQU5ORUxTOwo+PiArwqDCoMKgIGFkZMKgwqAgYmxzYnNfcHRycSwg
MTbCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
OyBieXBhc3NlZF9sc2JzICs9IE1BWF9DSEFOTkVMUzsKPj4gK8KgwqDCoCBhZGTCoMKgwqDCoCBz
YW1wbGVzcSwgNjTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgOyBzYW1wbGVzICs9IE1BWF9DSEFOTkVMUzsKPj4gwqDCoMKgwqDCoCBjbXDCoMKg
IGJsc2JzX3B0cnEsIGNudHEKPj4gwqAgJWVuZG1hY3JvCj4+IMKgIEBAIC04MCwxMiArODAsMTIg
QEAgU0VDVElPTiAudGV4dAo+PiDCoMKgwqDCoMKgIFNITFjCoMKgwqDCoMKgIG5vaXNlcSwgbW5z
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA7IG5v
aXNlX2J1ZmZlcltpbmRleF0gPDw9IG1hdHJpeF9ub2lzZV9zaGlmdAo+PiDCoMKgwqDCoMKgIGFk
ZMKgwqDCoMKgwqDCoCBhY2N1bXEsIG5vaXNlccKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgOyBhY2N1bSArPSBub2lzZV9idWZmZXJbaW5kZXhdCj4+IMKgwqDC
oMKgwqAgbW92enjCoMKgwqDCoCBub2lzZWQsIGJ5dGUgW2Jsc2JzX3B0cnFdwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIDsgbG9hZCAqYnlwYXNzZWRfbHNicyAocmV1c2UgdG1wIG5vaXNlIHJlZ2lz
dGVyKQo+PiAtwqDCoMKgIHNhcsKgwqDCoMKgwqDCoCBhY2N1bXEsIDE0wqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDsgYWNjdW0gPj49IDE0Cj4+
ICvCoMKgwqAgc2FywqDCoMKgwqDCoMKgIGFjY3VtcSwgMTjCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOyBhY2N1bSA+Pj0gMTgKPj4gwqDCoMKg
wqDCoCBhbmTCoMKgwqDCoMKgwqAgYWNjdW1kLCBtYXNrZMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA7IGFjY3VtICY9IG1hc2sKPj4gwqDCoMKgwqDCoCBh
ZGTCoMKgwqDCoMKgwqAgYWNjdW1kLCBub2lzZWTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIDsgYWNjdW0gKz0gKmJ5cGFzc2VkX2xzYnMKPj4gwqDCoMKgwqDC
oCBtb3bCoMKgIFtzYW1wbGVzcSArIGRlc3RfY2hxXSwgYWNjdW1kwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIDsgc2FtcGxlc1tkZXN0X2NoXSA9IGFjY3VtCj4+IC3CoMKgwqAgYWRkwqDCoCBibHNi
c19wdHJxLCA4wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgOyBieXBhc3NlZF9sc2JzICs9IE1BWF9DSEFOTkVMUzsKPj4gLcKgwqDCoCBhZGTC
oMKgwqDCoCBzYW1wbGVzcSwgMzLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgOyBzYW1wbGVzICs9IE1BWF9DSEFOTkVMUzsKPj4gK8KgwqDCoCBh
ZGTCoMKgIGJsc2JzX3B0cnEsIDE2wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIDsgYnlwYXNzZWRfbHNicyArPSBNQVhfQ0hBTk5FTFM7Cj4+ICvC
oMKgwqAgYWRkwqDCoMKgwqAgc2FtcGxlc3EsIDY0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDsgc2FtcGxlcyArPSBNQVhfQ0hBTk5FTFM7Cj4+
IMKgwqDCoMKgwqAgY21wwqDCoCBibHNic19wdHJxLCBjbnRxCj4+IMKgICVlbmRtYWNybwo+PiDC
oCBAQCAtMTA2LDcgKzEwNiw4IEBAIGNnbG9iYWwgbWxwX3JlbWF0cml4X2NoYW5uZWwsIDAsIDEz
LCA1LCBzYW1wbGVzLCBjb2VmZnMsIGJsc2JzX3B0ciwgYmxzYnMsIFwKPj4gwqDCoMKgwqDCoCBt
b3bCoMKgwqDCoCBkZXN0X2NoZCwgZGVzdF9jaG3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgOyBsb2FkIGRlc3RfY2hkIChub3QgbmVlZGVkIG9uIFVOSVg2NCkKPj4g
wqAgJWVuZGlmCj4+IMKgwqDCoMKgwqAgc2hswqDCoMKgwqAgZGVzdF9jaGQsIDIKPj4gLcKgwqDC
oCBsZWHCoMKgwqDCoMKgwqDCoMKgIGNudHEsIFtibHNic19wdHJxICsgYmxvY2twb3NxKjhdCj4+
ICvCoMKgwqAgbGVhwqDCoMKgwqDCoMKgwqDCoCBjbnRxLCBbYmxzYnNfcHRycSArIGJsb2NrcG9z
cSo4XcKgwqDCoCA7IGxvb3AgZW5kIGFkZHJlc3MgKGJ5cGFzc2VkX2xzYnMgKyBibG9ja3BvcyAq
IE1BWF9DSEFOTkVMUykKPj4gK8KgwqDCoCBsZWHCoMKgwqDCoMKgwqDCoMKgIGNudHEsIFtjbnRx
ICsgYmxvY2twb3NxKjhdCj4+IMKgwqDCoMKgwqAgdGVzdMKgwqDCoMKgwqDCoMKgIG1uc2QsIG1u
c2TCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA7IGlz
IG1hdHJpeF9ub2lzZV9zaGlmdCAhPSAwPwo+PiDCoMKgwqDCoMKgIGpuZSAuc2hpZnTCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCA7IGp1bXAgaWYgdHJ1ZQo+PiDCoMKgwqDCoMKgIGNtcMKgwqDCoMKgIG1heGNo
YW5kLCA0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgOyBpcyBtYXhjaGFuIDwgND8KPj4gQEAgLTE0NCw3ICsxNDUsNyBAQCBhbGlnbiAxNgo+
PiDCoMKgwqDCoMKgIERFRklORV9BUkdTIHNhbXBsZXMsIGNvZWZmcywgYmxzYnNfcHRyLCBub2lz
ZV9idWZmZXIsIFwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbmRleCwg
ZGVzdF9jaCwgYWNjdW0sIGluZGV4MiwgbW5zLCBcCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgYXVzcCwgbWFzaywgY250LCBub2lzZQo+PiAtwqDCoMKgIGFkZMKgwqDCoMKg
wqDCoMKgwqAgbW5zZCwgN8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDsgbWF0cml4X25vaXNl
X3NoaWZ0ICs9IDcKPj4gK8KgwqDCoCBhZGTCoMKgwqDCoMKgwqDCoMKgIG1uc2QsIDExwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIDsgbWF0cml4X25vaXNlX3NoaWZ0ICs9IDExCj4+IMKgICVlbHNl
IDsgc3NlNAo+PiDCoMKgwqDCoMKgIG1vdsKgwqDCoMKgwqDCoMKgwqDCoMKgIHI2LCByY3jCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIDsgbW92ZSByY3ggZWxzZXdoZXJlIHNvIHdlIGNhbiB1c2UgY2wg
Zm9yIG1hdHJpeF9ub2lzZV9zaGlmdAo+PiDCoCAlaWYgV0lONjQKPj4gQEAgLTE1Niw3ICsxNTcs
NyBAQCBhbGlnbiAxNgo+PiDCoMKgwqDCoMKgIERFRklORV9BUkdTIHNhbXBsZXMsIGNvZWZmcywg
YmxzYnNfcHRyLCBtbnMsIGluZGV4LCBkZXN0X2NoLCBub2lzZV9idWZmZXIsIFwKPj4gwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbmRleDIsIGFjY3VtLCBhdXNwLCBtYXNrLCBj
bnQsIG5vaXNlCj4+IMKgICVlbmRpZgo+PiAtwqDCoMKgIGxlYcKgwqDCoMKgwqDCoMKgwqAgbW5z
ZCwgW3I4ICsgN13CoMKgwqDCoMKgwqAgOyByY3ggPSBtYXRyaXhfbm9pc2Vfc2hpZnQgKyA3Cj4+
ICvCoMKgwqAgbGVhwqDCoMKgwqDCoMKgwqDCoCBtbnNkLCBbcjggKyAxMV3CoMKgwqDCoMKgIDsg
cmN4ID0gbWF0cml4X25vaXNlX3NoaWZ0ICsgMTEKPj4gwqAgJWVuZGlmIDsgY3B1ZmxhZwo+PiDC
oMKgwqDCoMKgIHN1YsKgwqDCoMKgwqDCoMKgIGF1c3BkLCAxwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgOyBhY2Nlc3NfdW5pdF9zaXplX3BvdzIgLT0gMQo+PiDCoMKgwqDCoMKgIGNtcMKgwqDC
oMKgwqDCoMKgwqDCoCByN2QsIDTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA7IGlzIG1heGNo
YW4gPCA0Pwo+IAo+IElmIHRoZSBjaGFuZ2VzIGFyZSB0aGF0IGZldywgd2h5IG5vdCBkbyB0aGUg
YWFyY2g2NCB2ZXJzaW9uIHRvbz8KPiAKCkkgYW0gbm90IGZhbWlsaWFyIHdpdGggYWFyY2g2NCBh
c3NlbWJseSBhbmQgSSBoYXZlIGF0IHRoZSBtb21lbnQgbm8gaGludHMgd2hlcmUgc2hpZnRzIGFy
ZSBwZXJmb3JtZWQgbm9yIHRoZSBoYXJkd2FyZSB0byB0ZXN0IDovCgo+PiBkaWZmIC0tZ2l0IGEv
dGVzdHMvZmF0ZS90cnVlaGQubWFrIGIvdGVzdHMvZmF0ZS90cnVlaGQubWFrCj4+IGluZGV4IGIw
YmM4NmE5NjUuLjMwYzBlOTYyOGIgMTAwNjQ0Cj4+IC0tLSBhL3Rlc3RzL2ZhdGUvdHJ1ZWhkLm1h
awo+PiArKysgYi90ZXN0cy9mYXRlL3RydWVoZC5tYWsKPj4gQEAgLTE4LDUgKzE4LDE1IEBAIGZh
dGUtdHJ1ZWhkLW1vbm8xNzI2OiBDTUQgPSBtZDVwaXBlIC1mIHRydWVoZCAtaSAkKFRBUkdFVF9T
QU1QTEVTKS90cnVlaGQvdGlja2V0Cj4+IMKgIGZhdGUtdHJ1ZWhkLW1vbm8xNzI2OiBDTVAgPSBv
bmVsaW5lCj4+IMKgIGZhdGUtdHJ1ZWhkLW1vbm8xNzI2OiBSRUYgPSA5YmU5NTUxZmFjNDE4NDQw
YmIwMjEwMWJmZGIxMWRmOQo+PiDCoCArRkFURV9UUlVFSEQtJChjYWxsIERFTURFQywgVFJVRUhE
LCBUUlVFSEQpICs9IGZhdGUtdHJ1ZWhkLWF0bW9zLW5vLW9iago+PiArZmF0ZS10cnVlaGQtYXRt
b3Mtbm8tb2JqOiBDTUQgPSBtZDVwaXBlIC1mIHRydWVoZCAtZXh0cmFjdF9vYmplY3RzIDAgLWkg
JChUQVJHRVRfU0FNUExFUykvdHJ1ZWhkL2F0bW9zLnRoZCAtZiBzMzJsZQo+PiArZmF0ZS10cnVl
aGQtYXRtb3Mtbm8tb2JqOiBDTVAgPSBvbmVsaW5lCj4+ICtmYXRlLXRydWVoZC1hdG1vcy1uby1v
Ymo6IFJFRiA9IDUzZGE2Y2UzNWM3NzhiY2MyMTgyZWYyMTYwYmYxNmEyCj4+ICsKPj4gK0ZBVEVf
VFJVRUhELSQoY2FsbCBERU1ERUMsIFRSVUVIRCwgVFJVRUhEKSArPSBmYXRlLXRydWVoZC1hdG1v
cy1vYmoKPj4gK2ZhdGUtdHJ1ZWhkLWF0bW9zLW9iajogQ01EID0gbWQ1cGlwZSAtZiB0cnVlaGQg
LWV4dHJhY3Rfb2JqZWN0cyAxIC1pICQoVEFSR0VUX1NBTVBMRVMpL3RydWVoZC9hdG1vcy50aGQg
LWYgczMybGUKPj4gK2ZhdGUtdHJ1ZWhkLWF0bW9zLW9iajogQ01QID0gb25lbGluZQo+PiArZmF0
ZS10cnVlaGQtYXRtb3Mtb2JqOiBSRUYgPSBmMTlmNmY4ZWM4YjA0MDA1MGFhYTAxOWYwMTZmN2Rk
Ywo+PiArCj4+IMKgIEZBVEVfU0FNUExFU19BVURJTyArPSAkKEZBVEVfVFJVRUhELXllcykKPj4g
wqAgZmF0ZS10cnVlaGQ6ICQoRkFURV9UUlVFSEQteWVzKQo+IF9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+
IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlz
dGluZm8vZmZtcGVnLWRldmVsCj4gCj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUs
IG9yIGVtYWlsCj4gZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3Qg
InVuc3Vic2NyaWJlIi4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcK
aHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1
YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RA
ZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K