From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E1CDBC2D0DB for ; Thu, 23 Jan 2020 16:54:42 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 18FAF2071E for ; Thu, 23 Jan 2020 16:54:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 18FAF2071E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=patchew.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:32818 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iufke-0002ZQ-3U for qemu-devel@archiver.kernel.org; Thu, 23 Jan 2020 11:54:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:45464) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iueDG-0004Js-KW for qemu-devel@nongnu.org; Thu, 23 Jan 2020 10:16:17 -0500 Resent-Date: Thu, 23 Jan 2020 10:16:17 -0500 Resent-Message-Id: Received: from sender4-of-o51.zoho.com ([136.143.188.51]:21122) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iueDE-0001Je-NX for qemu-devel@nongnu.org; Thu, 23 Jan 2020 10:16:06 -0500 Received: from [172.17.0.3] (23.253.156.214 [23.253.156.214]) by mx.zohomail.com with SMTPS id 1579792431800333.75002681080616; Thu, 23 Jan 2020 07:13:51 -0800 (PST) In-Reply-To: <20200123115841.138849-1-dgilbert@redhat.com> Subject: Re: [PULL 000/111] virtiofs queue Message-ID: <157979243018.16991.5882558254326046243@f6d1ed32ca6b> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Resent-From: From: no-reply@patchew.org To: dgilbert@redhat.com Date: Thu, 23 Jan 2020 07:13:51 -0800 (PST) X-ZohoMailClient: External X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Mailman-Approved-At: Thu, 23 Jan 2020 10:28:49 -0500 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: qemu-devel@nongnu.org Cc: qemu-devel@nongnu.org, stefanha@redhat.com Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" UGF0Y2hldyBVUkw6IGh0dHBzOi8vcGF0Y2hldy5vcmcvUUVNVS8yMDIwMDEyMzExNTg0MS4xMzg4 NDktMS1kZ2lsYmVydEByZWRoYXQuY29tLwoKCgpIaSwKClRoaXMgc2VyaWVzIHNlZW1zIHRvIGhh dmUgc29tZSBjb2Rpbmcgc3R5bGUgcHJvYmxlbXMuIFNlZSBvdXRwdXQgYmVsb3cgZm9yCm1vcmUg aW5mb3JtYXRpb246CgpUeXBlOiBzZXJpZXMKTWVzc2FnZS1pZDogMjAyMDAxMjMxMTU4NDEuMTM4 ODQ5LTEtZGdpbGJlcnRAcmVkaGF0LmNvbQpTdWJqZWN0OiBbUFVMTCAwMDAvMTExXSB2aXJ0aW9m cyBxdWV1ZQoKPT09IFRFU1QgU0NSSVBUIEJFR0lOID09PQojIS9iaW4vYmFzaApnaXQgcmV2LXBh cnNlIGJhc2UgPiAvZGV2L251bGwgfHwgZXhpdCAwCmdpdCBjb25maWcgLS1sb2NhbCBkaWZmLnJl bmFtZWxpbWl0IDAKZ2l0IGNvbmZpZyAtLWxvY2FsIGRpZmYucmVuYW1lcyBUcnVlCmdpdCBjb25m aWcgLS1sb2NhbCBkaWZmLmFsZ29yaXRobSBoaXN0b2dyYW0KLi9zY3JpcHRzL2NoZWNrcGF0Y2gu cGwgLS1tYWlsYmFjayBiYXNlLi4KPT09IFRFU1QgU0NSSVBUIEVORCA9PT0KClN3aXRjaGVkIHRv IGEgbmV3IGJyYW5jaCAndGVzdCcKMDFmMjQyZiB2aXJ0aW9mc2Q6IGFkZCBzb21lIG9wdGlvbnMg dG8gdGhlIGhlbHAgbWVzc2FnZQo1NzExNjZhIHZpcnRpb2ZzZDogc3RvcCBhbGwgcXVldWUgdGhy ZWFkcyBvbiBleGl0IGluIHZpcnRpb19sb29wKCkKZGMyY2QzZCB2aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGw6IFBhc3MgZXJybm8gdG8gZnVzZV9yZXBseV9lcnIoKQoxZDM3NDkyIHZpcnRpb2ZzZDog Q29udmVydCBsb19kZXN0cm95IHRvIHRha2UgdGhlIGxvLT5tdXRleCBsb2NrIGl0c2VsZgoxZjNl MzZjIHZpcnRpb2ZzZDogYWRkIC0tdGhyZWFkLXBvb2wtc2l6ZT1OVU0gb3B0aW9uCjM2ZDIyOTYg dmlydGlvZnNkOiBmaXggbG9fZGVzdHJveSgpIHJlc291cmNlIGxlYWtzCmQ2ZDE1YjMgdmlydGlv ZnNkOiBwcmV2ZW50IEZVU0VfSU5JVC9GVVNFX0RFU1RST1kgcmFjZXMKZTUwYTUwMSB2aXJ0aW9m c2Q6IHByb2Nlc3MgcmVxdWVzdHMgaW4gYSB0aHJlYWQgcG9vbAo1ZDUzMmE0IHZpcnRpb2ZzZDog dXNlIGZ1c2VfYnVmX3dyaXRldiB0byByZXBsYWNlIGZ1c2VfYnVmX3dyaXRlIGZvciBiZXR0ZXIg cGVyZm9ybWFuY2UKNWUwYmM2NSB2aXJ0aW9mc2Q6IGFkZCBkZWZpbml0aW9uIG9mIGZ1c2VfYnVm X3dyaXRldigpCjkwZTQxYzcgdmlydGlvZnNkOiBwYXNzdGhyb3VnaF9sbDogVXNlIGNhY2hlX3Jl YWRkaXIgZm9yIGRpcmVjdG9yeSBvcGVuCjdjNzRjYTMgdmlydGlvZnNkOiBGaXggZGF0YSBjb3Jy dXB0aW9uIHdpdGggT19BUFBFTkQgd3JpdGUgaW4gd3JpdGViYWNrIG1vZGUKN2Q5NjJmZiB2aXJ0 aW9mc2Q6IFJlc2V0IE9fRElSRUNUIGZsYWcgZHVyaW5nIGZpbGUgb3BlbgoyMmZmMzg2IHZpcnRp b2ZzZDogY29udmVydCBtb3JlIGZwcmludGYgYW5kIHBlcnJvciB0byB1c2UgZnVzZSBsb2cgaW5m cmEKNTRhZjhmYSB2aXJ0aW9mc2Q6IGRvIG5vdCBhbHdheXMgc2V0IEZVU0VfRkxPQ0tfTE9DS1MK OTFiMjA5NSB2aXJ0aW9mc2Q6IGludHJvZHVjZSBpbm9kZSByZWZjb3VudCB0byBwcmV2ZW50IHVz ZS1hZnRlci1mcmVlCmIzMGRhMTcgdmlydGlvZnNkOiBwYXNzdGhyb3VnaF9sbDogZml4IHJlZmNv dW50aW5nIG9uIHJlbW92ZS9yZW5hbWUKNmE1MmE5YyB2aXJ0aW9mc2Q6IGFkZCBtYW4gcGFnZQo3 YWQ5ZjkyIGxpYnZob3N0LXVzZXI6IEZpeCBzb21lIG1lbXRhYmxlIHJlbWFwIGNhc2VzCjEzNWZk MjAgdmlydGlvZnNkOiByZW5hbWUgaW5vZGUtPnJlZmNvdW50IHRvIGlub2RlLT5ubG9va3VwCjQw MzM5NjMgdmlydGlvZnNkOiBwcmV2ZW50IHJhY2VzIHdpdGggbG9fZGlycF9wdXQoKQo3YWQ2M2Nl IHZpcnRpb2ZzZDogbWFrZSBsb19yZWxlYXNlKCkgYXRvbWljCjE0OGUwYjggdmlydGlvZnNkOiBw cmV2ZW50IGZ2X3F1ZXVlX3RocmVhZCgpIHZzIHZpcnRpb19sb29wKCkgcmFjZXMKZjE4NzcxNSB2 aXJ0aW9mc2Q6IHVzZSBmdXNlX2xvd2xldmVsX2lzX3ZpcnRpbygpIGluIGZ1c2Vfc2Vzc2lvbl9k ZXN0cm95KCkKYjI3YmQ4OSB2aXJ0aW9mc2Q6IFN1cHBvcnQgcmVtb3RlIHBvc2l4IGxvY2tzCjk3 YjM3ZTQgVmlydGlvZnNkOiBmaXggbWVtb3J5IGxlYWsgb24gZnVzZSBxdWV1ZWluZm8KYjAzNDA2 NyB2aXJ0aW9mc2Q6IGZpeCBpbmNvcnJlY3QgZXJyb3IgaGFuZGxpbmcgaW4gbG9fZG9fbG9va3Vw CjQ1Yjg0ZmUgdmlydGlvZnNkOiBlbmFibGUgUEFSQUxMRUxfRElST1BTIGR1cmluZyBJTklUCmVk MTkxNzIgdmlydGlvZnNkOiBQcmV2ZW50IG11bHRpcGx5IHJ1bm5pbmcgd2l0aCBzYW1lIHZob3N0 X3VzZXJfc29ja2V0CmI5NmE2M2MgdmlydGlvZnNkOiBhZGQgaGVscGVyIGZvciBsb19kYXRhIGNs ZWFudXAKMzQ5MzdhZCB2aXJ0aW9mc2Q6IGZpeCBtZW1vcnkgbGVhayBvbiBsby5zb3VyY2UKNGUy M2I4OCB2aXJ0aW9mc2Q6IGNsZWFudXAgYWxsb2NhdGVkIHJlc291cmNlIGluIHNlCjk3YjdiYTYg dmlydGlvZnNkOiBmaXggZXJyb3IgaGFuZGxpbmcgaW4gbWFpbigpCmQwNzA4MWIgdmlydGlvZnNk OiBzdXBwb3J0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbiBmb3IgZmlsZSB0aW1lc3RhbXAKOWU4YjAy ZSB2aXJ0aW9mc2Q6IENsZWFuIHVwIGlub2RlcyBvbiBkZXN0cm95CjAxODdlY2IgdmlydGlvZnNk OiBwYXNzdGhyb3VnaF9sbDogdXNlIGhhc2h0YWJsZQplNTVjMGEyIHZpcnRpb2ZzZDogcGFzc3Ro cm91Z2hfbGw6IGNsZWFuIHVwIGNhY2hlIHJlbGF0ZWQgb3B0aW9ucwpiNTBkMzc5IHZpcnRpb2Zz ZDogZXh0cmFjdCByb290IGlub2RlIGluaXQgaW50byBzZXR1cF9yb290KCkKYTFmN2NkMSB2aXJ0 aW9mc2Q6IGZhaWwgd2hlbiBwYXJlbnQgaW5vZGUgaXNuJ3Qga25vd24gaW4gbG9fZG9fbG9va3Vw KCkKNDcxMzdjZSB2aXJ0aW9mc2Q6IHJlbmFtZSB1bnJlZl9pbm9kZSgpIHRvIHVucmVmX2lub2Rl X2xvbG9ja2VkKCkKZmRhZmQwYiB2aXJ0aW9mc2Q6IHBhc3N0aHJvdWdoX2xsOiBjb250cm9sIHJl YWRkaXJwbHVzCjViY2I0MTEgdmlydGlvZnNkOiBwYXNzdGhyb3VnaF9sbDogZGlzYWJsZSByZWFk ZGlycGx1cyBvbiBjYWNoZT1uZXZlcgozYzBmMDJmIHZpcnRpb2ZzZDogcGFzc3Rocm91Z2hfbGw6 IGFkZCByZW5hbWVhdDIgc3VwcG9ydAo0NDY4MTQ4IGNvbnRyaWIvbGlidmhvc3QtdXNlcjogUHJv dGVjdCBzbGF2ZSBmZCB3aXRoIG11dGV4CmZlODI1Mzggdmhvc3QtdXNlcjogUHJpbnQgdW5leHBl Y3RlZCBzbGF2ZSBtZXNzYWdlIHR5cGVzCjk5YmMwMDAgdmlydGlvZnNkOiBLaWxsIHRocmVhZHMg d2hlbiBxdWV1ZXMgYXJlIHN0b3BwZWQKYzFiYmU5OSB2aXJ0aW9mc2Q6IEhhbmRsZSBoYXJkIHJl Ym9vdAozZmI2ZWQyIHZpcnRpb2ZzZDogSGFuZGxlIHJlaW5pdAplMjQwZTdkIHZpcnRpb2ZzZDog QWRkIHRpbWVzdGFtcCB0byB0aGUgbG9nIHdpdGggRlVTRV9MT0dfREVCVUcgbGV2ZWwKZTU3NjQ5 MiB2aXJ0aW9mc2Q6IEFkZCBJRCB0byB0aGUgbG9nIHdpdGggRlVTRV9MT0dfREVCVUcgbGV2ZWwK YWVjMjFlMyB2aXJ0aW9mc2Q6IHByaW50IGxvZyBvbmx5IHdoZW4gcHJpb3JpdHkgaXMgaGlnaCBl bm91Z2gKZWQ4YzQ4OSB2aXJ0aW9mc2Q6IGFkZCAtLXN5c2xvZyBjb21tYW5kLWxpbmUgb3B0aW9u CmIyY2JkZWIgdmlydGlvZnNkOiBhZGQgc2VjdXJpdHkgZ3VpZGUgZG9jdW1lbnQKOWRmZDgwMyBk b2NzOiBBZGQgZG9jcy90b29scwoyODA5N2FkIHZpcnRpb2ZzZDogZml4IGxpYmZ1c2UgaW5mb3Jt YXRpb24gbGVha3MKYjM0ZWY0NyB2aXJ0aW9mc2Q6IHNldCBtYXhpbXVtIFJMSU1JVF9OT0ZJTEUg bGltaXQKMTU0ODQ4MyB2aXJ0aW9mc2Q6IERyb3AgQ0FQX0ZTRVRJRCBpZiBjbGllbnQgYXNrZWQg Zm9yIGl0Cjc0YzA2YmUgdmlydGlvZnNkOiBjYXAtbmcgaGVscGVycwo2Nzg4MWE1IHZpcnRpb2Zz ZDogUGFyc2UgZmxhZyBGVVNFX1dSSVRFX0tJTExfUFJJVgo0MDg5NGY1IHZpcnRpb2ZzZDogYWRk IHNlY2NvbXAgd2hpdGVsaXN0CjBhNjE4MTMgdmlydGlvZnNkOiBtb3ZlIHRvIGEgbmV3IHBpZCBu YW1lc3BhY2UKMWExOTMzYiB2aXJ0aW9mc2Q6IG1vdmUgdG8gYW4gZW1wdHkgbmV0d29yayBuYW1l c3BhY2UKYmJlNWZlYiB2aXJ0aW9mc2Q6IHNhbmRib3ggbW91bnQgbmFtZXNwYWNlCmFmMDgxNWQg dmlydGlvZnNkOiB1c2UgL3Byb2Mvc2VsZi9mZC8gT19QQVRIIGZpbGUgZGVzY3JpcHRvcgozOGU2 YTlmIHZpcnRpb2ZzZDogcHJldmVudCAiLi4iIGVzY2FwZSBpbiBsb19kb19yZWFkZGlyKCkKYTc1 YzU5NiB2aXJ0aW9mc2Q6IHByZXZlbnQgIi4uIiBlc2NhcGUgaW4gbG9fZG9fbG9va3VwKCkKOTFi MDgyMyB2aXJ0aW9mc2Q6IGNoZWNrIGlucHV0IGJ1ZmZlciBzaXplIGluIGZ1c2VfbG93bGV2ZWwu YyBvcHMKMWIwM2UwOCB2aXJ0aW9mc2Q6IHZhbGlkYXRlIGlucHV0IGJ1ZmZlciBzaXplcyBpbiBk b193cml0ZV9idWYoKQo2Mjk3Zjc3IHZpcnRpb2ZzZDogYWRkIGZ1c2VfbWJ1Zl9pdGVyIEFQSQpm YmE4MDFhIHZpcnRpb2ZzZDogUGFzcyB3cml0ZSBpb3YncyBhbGwgdGhlIHdheSB0aHJvdWdoCjVm YjIxYjYgdmlydGlvZnNkOiBQbHVtYiBmdXNlX2J1ZnZlYyB0aHJvdWdoIHRvIGRvX3dyaXRlX2J1 ZgoyYjY0ODI1IHZpcnRpb2ZzZDogdmFsaWRhdGUgcGF0aCBjb21wb25lbnRzCmYwMjM5OTIgdmly dGlvZnNkOiBwYXNzdGhyb3VnaF9sbDogYWRkIGZhbGxiYWNrIGZvciByYWN5IG9wcwpiYzQ1NWE3 IHZpcnRpb2ZzZDogcGFzc3Rocm91Z2hfbGw6IGFkZCBmZF9tYXAgdG8gaGlkZSBmaWxlIGRlc2Ny aXB0b3JzCmM1NDk0YjQgdmlydGlvZnNkOiBwYXNzdGhyb3VnaF9sbDogYWRkIGRpcnBfbWFwIHRv IGhpZGUgbG9fZGlycCBwb2ludGVycwozODkzM2NkIHZpcnRpb2ZzZDogcGFzc3Rocm91Z2hfbGw6 IGFkZCBpbm9fbWFwIHRvIGhpZGUgbG9faW5vZGUgcG9pbnRlcnMKYzQ1ZWEwNyB2aXJ0aW9mc2Q6 IHBhc3N0aHJvdWdoX2xsOiBhZGQgbG9fbWFwIGZvciBpbm8vZmggaW5kaXJlY3Rpb24KNjIzN2My NyB2aXJ0aW9mc2Q6IHBhc3N0aHJvdWdoX2xsOiBjcmVhdGUgbmV3IGZpbGVzIGluIGNhbGxlcidz IGNvbnRleHQKM2UxYzI5NCB2aXJ0aW9mczogQWRkIG1haW50YWluZXJzIGVudHJ5CjUyZmQ1Y2Qg dmlydGlvZnNkOiBhZGQgLS1wcmludC1jYXBhYmlsaXRpZXMgb3B0aW9uCmI4OTFlZjggdmlydGlv ZnNkOiBhZGQgdmhvc3QtdXNlci5qc29uIGZpbGUKYWJiMWRiNCB2aXJ0aW9mc2Q6IG1ha2UgLWYg KGZvcmVncm91bmQpIHRoZSBkZWZhdWx0CmJhZDExNTEgdmlydGlvZnNkOiBhZGQgLS1mZD1GRE5V TSBmZCBwYXNzaW5nIG9wdGlvbgpmODI3Y2M5IHZpcnRpb2ZzZDogRmFzdCBwYXRoIGZvciB2aXJ0 aW8gcmVhZAowZDRlNjJiIHZpcnRpb2ZzZDogQWRkIE1ha2VmaWxlIHdpcmluZyBmb3IgdmlydGlv ZnNkIGNvbnRyaWIKOTQ2ZWY4MiB2aXJ0aW9mc2Q6IEtlZXAgdHJhY2sgb2YgcmVwbGllcwoyYWFk MzlkIHZpcnRpb2ZzZDogU2VuZCByZXBsaWVzIHRvIG1lc3NhZ2VzCjY3YjI5MTYgdmlydGlvZnNk OiBTdGFydCByZWFkaW5nIGNvbW1hbmRzIGZyb20gcXVldWUKYWM0M2NkOCB2aXJ0aW9mc2Q6IFBv bGwga2lja19mZCBmb3IgcXVldWUKNDNhMGYwNCB2aXJ0aW9mc2Q6IFN0YXJ0IHF1ZXVlIHRocmVh ZHMKNWUwOTI3MyB2aXJ0aW9mc2Q6IGdldC9zZXQgZmVhdHVyZXMgY2FsbGJhY2tzCjkzNzk0NjAg dmlydGlvZnNkOiBBZGQgbWFpbiB2aXJ0aW8gbG9vcAowNTU0MjEzIHZpcnRpb2ZzZDogU3RhcnQg d2lyaW5nIHVwIHZob3N0LXVzZXIKYjRiNDRjMCB2aXJ0aW9mc2Q6IE9wZW4gdmhvc3QgY29ubmVj dGlvbiBpbnN0ZWFkIG9mIG1vdW50aW5nCjM0YmI0OTggdmlydGlvZnNkOiBhZGQgLW8gc291cmNl PVBBVEggdG8gaGVscCBvdXRwdXQKOGRkNDUyZSB2aXJ0aW9mc2Q6IEFkZCBvcHRpb25zIGZvciB2 aXJ0aW8KNzI3MDc3YSB2aXJ0aW9mc2Q6IE1ha2UgZnN5bmMgd29yayBldmVuIGlmIG9ubHkgaW5v ZGUgaXMgcGFzc2VkIGluCjU5ZjJjMDggdml0cmlvZnNkL3Bhc3N0aHJvdWdoX2xsOiBmaXggZmFs bG9jYXRlKCkgaWZkZWZzCjNkM2JhYTYgdmlydGlvZnNkOiBUcmltIG91dCBjb21wYXRpYmlsaXR5 IGNvZGUKZWMwNWE1MSB2aXJ0aW9mc2Q6IEZpeCBjb21tb24gaGVhZGVyIGFuZCBkZWZpbmUgZm9y IFFFTVUgYnVpbGRzCmZmOWVjY2QgdmlydGlvZnNkOiBGaXggZnVzZV9kYWVtb25pemUgaWdub3Jl ZCByZXR1cm4gdmFsdWVzCjI3MmYwYWUgdmlydGlvZnNkOiBSZW1vdmUgdW51c2VkIGVudW0gZnVz ZV9idWZfY29weV9mbGFncwo2MDljNDhjIHZpcnRpb2ZzZDogcmVtb3ZlIHVudXNlZCBub3RpZnkg cmVwbHkgc3VwcG9ydAoxMmRhMDgyIHZpcnRpb2ZzZDogcmVtb3ZlIG1vdW50cG9pbnQgZHVtbXkg YXJndW1lbnQKMGJlZTAxNyB2aXJ0aW9mc2Q6IEZvcm1hdCBpbXBvcnRlZCBmaWxlcyB0byBxZW11 IHN0eWxlCmZiNDc0OGMgdmlydGlvZnNkOiBUcmltIGRvd24gaW1wb3J0ZWQgZmlsZXMKOTA3OGE5 NCB2aXJ0aW9mc2Q6IEFkZCBwYXNzdGhyb3VnaF9sbAoyZmJlNjk3IHZpcnRpb2ZzZDogQWRkIGZ1 c2VfbG93bGV2ZWwuYwoyMThjZTEzIHZpcnRpb2ZzZDogQWRkIGF1eGlsaWFyeSAuYydzCjkyN2Ex MjggdmlydGlvZnNkOiBQdWxsIGluIGtlcm5lbCdzIGZ1c2UuaApmMzQxZTQ0IHZpcnRpb2ZzZDog UHVsbCBpbiB1cHN0cmVhbSBoZWFkZXJzCgo9PT0gT1VUUFVUIEJFR0lOID09PQoxLzExMSBDaGVj a2luZyBjb21taXQgZjM0MWU0NDNhZDk2ICh2aXJ0aW9mc2Q6IFB1bGwgaW4gdXBzdHJlYW0gaGVh ZGVycykKV0FSTklORzogYWRkZWQsIG1vdmVkIG9yIGRlbGV0ZWQgZmlsZShzKSwgZG9lcyBNQUlO VEFJTkVSUyBuZWVkIHVwZGF0aW5nPwojMTY6IApuZXcgZmlsZSBtb2RlIDEwMDY0NAoKV0FSTklO RzogQmxvY2sgY29tbWVudHMgdXNlICogb24gc3Vic2VxdWVudCBsaW5lcwojMjI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjoKKy8qCisgIEZVU0U6IEZpbGVzeXN0ZW0gaW4gVXNlcnNw YWNlCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJh dGUgbGluZQojMzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTI6CisvKiogQGZpbGUK CldBUk5JTkc6IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVk CiM0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyODoKKyNpZmRlZiBfX2NwbHVzcGx1 cwoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRl IGxpbmUKIzUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjMyOgorLyogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6MzM6CisgKiBCYXNpYyBGVVNFIEFQSV5JXkleSV5JXkkgICAgICAgKiQK CldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIHRyYWlsaW5nICovIG9uIGEgc2VwYXJhdGUg bGluZQojNTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzQ6CisgKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6NDM6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ0OgorXkkgKiAi UGx1cyIgbW9kZS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0NToKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDo0NjoKK15JICogVGhlIGtlcm5lbCB3YW50cyB0byBwcmVmaWxsIHRoZSBpbm9kZSBjYWNo ZSBkdXJpbmcgcmVhZGRpci4gIFRoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ3OgorXkkgKiBmaWxl c3lzdGVtIG1heSBob25vdXIgdGhpcyBieSBmaWxsaW5nIGluIHRoZSBhdHRyaWJ1dGVzIGFuZCBz ZXR0aW5nJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDg6CiteSSAqIEZVU0VfRklMTF9ESVJfRkxBR1Mg Zm9yIHRoZSBmaWxsZXIgZnVuY3Rpb24uICBUaGUgZmlsZXN5c3RlbSBtYXkgYWxzbyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjQ5OgorXkkgKiBqdXN0IGlnbm9yZSB0aGlzIGZsYWcgY29tcGxldGVseS4k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo1MDoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTE6Cite SUZVU0VfUkVBRERJUl9QTFVTID0gKDEgPDwgMCksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTU6Cite SS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU2OgorXkkgKiAiUGx1cyIgbW9kZTogYWxsIGZpbGUg YXR0cmlidXRlcyBhcmUgdmFsaWQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1NzoKK15JICokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo1ODoKK15JICogVGhlIGF0dHJpYnV0ZXMgYXJlIHVzZWQgYnkgdGhlIGtl cm5lbCB0byBwcmVmaWxsIHRoZSBpbm9kZSBjYWNoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU5Ogor XkkgKiBkdXJpbmcgYSByZWFkZGlyLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYwOgorXkkgKiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjYxOgorXkkgKiBJdCBpcyBva2F5IHRvIHNldCBGVVNFX0ZJTExfRElS X1BMVVMgaWYgRlVTRV9SRUFERElSX1BMVVMgaXMgbm90IHNldCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjYyOgorXkkgKiBhbmQgdmljZSB2ZXJzYS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2MzoKK15JICov JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjQ6CiteSUZVU0VfRklMTF9ESVJfUExVUyA9ICgxIDw8IDEp LCQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0 ZSBsaW5lCiM4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2NzoKKy8qKiBGdW5jdGlv biB0byBhZGQgYW4gZW50cnkgaW4gYSByZWFkZGlyKCkgb3BlcmF0aW9uCgpFUlJPUjogdHJhaWxp bmcgd2hpdGVzcGFjZQojOTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzQ6CisgKiAk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6ODM6CiteSV5JXkleSWNvbnN0IHN0cnVjdCBzdGF0ICpzdGJ1 Ziwgb2ZmX3Qgb2ZmLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo4NDoKK15JXkleSV5JZW51bSBmdXNl X2ZpbGxfZGlyX2ZsYWdzIGZsYWdzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6OTQ6CiteSS8qKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo5NToKK15JICogSWYgYHNldF9naWRgIGlzIG5vbi16ZXJvLCB0 aGUgc3RfZ2lkIGF0dHJpYnV0ZSBvZiBlYWNoIGZpbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6OTY6 CiteSSAqIGlzIG92ZXJ3cml0dGVuIHdpdGggdGhlIHZhbHVlIG9mIGBnaWRgLiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDo5NzoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjk4OgorXklpbnQgc2V0 X2dpZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6OTk6CiteSXVuc2lnbmVkIGludCBnaWQ7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjEwMToKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjEwMjoKK15J ICogSWYgYHNldF91aWRgIGlzIG5vbi16ZXJvLCB0aGUgc3RfdWlkIGF0dHJpYnV0ZSBvZiBlYWNo IGZpbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTAzOgorXkkgKiBpcyBvdmVyd3JpdHRlbiB3aXRo IHRoZSB2YWx1ZSBvZiBgdWlkYC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTA0OgorXkkgKi8kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6MTA1OgorXklpbnQgc2V0X3VpZDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6MTA2OgorXkl1bnNpZ25lZCBpbnQgdWlkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEyODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMDg6Cite SS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyOTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMDk6CiteSSAqIElmIGBzZXRfbW9kZWAgaXMgbm9u LXplcm8sIHRoZSBhbnkgcGVybWlzc2lvbnMgYml0cyBzZXQgaW4kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6MTEwOgorXkkgKiBgdW1hc2tgIGFyZSB1bnNldCBpbiB0aGUgc3RfbW9kZSBhdHRyaWJ1dGUg b2YgZWFjaCBmaWxlLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTE6CiteSSAqLyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDoxMTI6CiteSWludCBzZXRfbW9kZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTEz OgorXkl1bnNpZ25lZCBpbnQgdW1hc2s7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExNToKK15JLyoq JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjExNjoKK15JICogVGhlIHRpbWVvdXQgaW4gc2Vjb25kcyBm b3Igd2hpY2ggbmFtZSBsb29rdXBzIHdpbGwgYmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTE3Ogor XkkgKiBjYWNoZWQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExODoKK15JICovJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjExOToKK15JZG91YmxlIGVudHJ5X3RpbWVvdXQ7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjEyMToKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjEyMjoKK15JICogVGhlIHRpbWVv dXQgaW4gc2Vjb25kcyBmb3Igd2hpY2ggYSBuZWdhdGl2ZSBsb29rdXAgd2lsbCBiZSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDoxMjM6CiteSSAqIGNhY2hlZC4gVGhpcyBtZWFucywgdGhhdCBpZiBmaWxl IGRpZCBub3QgZXhpc3QgKGxvb2t1cCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMjQ6CiteSSAqIHJl dHVuZWQgRU5PRU5UKSwgdGhlIGxvb2t1cCB3aWxsIG9ubHkgYmUgcmVkb25lIGFmdGVyIHRoZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0NTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDoxMjU6CiteSSAqIHRpbWVvdXQsIGFuZCB0aGUgZmlsZS9kaXJl Y3Rvcnkgd2lsbCBiZSBhc3N1bWVkIHRvIG5vdCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMjY6Cite SSAqIGV4aXN0IHVudGlsIHRoZW4uIEEgdmFsdWUgb2YgemVybyBtZWFucyB0aGF0IG5lZ2F0aXZl JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjEyNzoKK15JICogbG9va3VwcyBhcmUgbm90IGNhY2hlZC4k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTI4OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTI5 OgorXklkb3VibGUgbmVnYXRpdmVfdGltZW91dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxNTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTMxOgor XkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTMyOgorXkkgKiBUaGUgdGltZW91dCBpbiBzZWNv bmRzIGZvciB3aGljaCBmaWxlL2RpcmVjdG9yeSBhdHRyaWJ1dGVzJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjEzMzoKK15JICogKGFzIHJldHVybmVkIGJ5IGUuZy4gdGhlIGBnZXRhdHRyYCBoYW5kbGVy KSBhcmUgY2FjaGVkLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMzQ6CiteSSAqLyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1NTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDoxMzU6CiteSWRvdWJsZSBhdHRyX3RpbWVvdXQ7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjEzNzoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjEzODoKK15JICogQWxsb3cgcmVx dWVzdHMgdG8gYmUgaW50ZXJydXB0ZWQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxNTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTM5OgorXkkgKi8k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTQwOgorXklpbnQgaW50cjskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6MTQyOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTQzOgorXkkgKiBTcGVjaWZ5IHdo aWNoIHNpZ25hbCBudW1iZXIgdG8gc2VuZCB0byB0aGUgZmlsZXN5c3RlbSB3aGVuJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjE0NDoKK15JICogYSByZXF1ZXN0IGlzIGludGVycnVwdGVkLiAgVGhlIGRl ZmF1bHQgaXMgaGFyZGNvZGVkIHRvJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE0NToKK15JICogVVNS MS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTQ2OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 MTQ3OgorXklpbnQgaW50cl9zaWduYWw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE0OToKK15JLyoq JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjE1MDoKK15JICogTm9ybWFsbHksIEZVU0UgYXNzaWducyBp bm9kZXMgdG8gcGF0aHMgb25seSBmb3IgYXMgbG9uZyBhcyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDox NTE6CiteSSAqIHRoZSBrZXJuZWwgaXMgYXdhcmUgb2YgdGhlbS4gV2l0aCB0aGlzIG9wdGlvbiBp bm9kZXMgYXJlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE1MjoKK15JICogaW5zdGVhZCByZW1lbWJl cmVkIGZvciBhdCBsZWFzdCB0aGlzIG1hbnkgc2Vjb25kcy4gIFRoaXMkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6MTUzOgorXkkgKiB3aWxsIHJlcXVpcmUgbW9yZSBtZW1vcnksIGJ1dCBtYXkgYmUgbmVj ZXNzYXJ5IHdoZW4gdXNpbmckCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxNzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTU0OgorXkkgKiBhcHBsaWNh dGlvbnMgdGhhdCBtYWtlIHVzZSBvZiBpbm9kZSBudW1iZXJzLiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDoxNTU6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE1NjoKK15JICogQSBudW1iZXIgb2Yg LTEgbWVhbnMgdGhhdCBpbm9kZXMgd2lsbCBiZSByZW1lbWJlcmVkIGZvciB0aGUkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6MTU3OgorXkkgKiBlbnRpcmUgbGlmZS10aW1lIG9mIHRoZSBmaWxlLXN5c3Rl bSBwcm9jZXNzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3 ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxNTg6CiteSSAqLyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3OTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDoxNTk6CiteSWludCByZW1lbWJlcjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTYxOgor XkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTYyOgorXkkgKiBUaGUgZGVmYXVsdCBiZWhhdmlv ciBpcyB0aGF0IGlmIGFuIG9wZW4gZmlsZSBpcyBkZWxldGVkLCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDoxNjM6CiteSSAqIHRoZSBmaWxlIGlzIHJlbmFtZWQgdG8gYSBoaWRkZW4gZmlsZSAoLmZ1c2Vf aGlkZGVuWFhYKSwgYW5kJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE2NDoKK15JICogb25seSByZW1v dmVkIHdoZW4gdGhlIGZpbGUgaXMgZmluYWxseSByZWxlYXNlZC4gIFRoaXMkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6MTY1OgorXkkgKiByZWxpZXZlcyB0aGUgZmlsZXN5c3RlbSBpbXBsZW1lbnRhdGlv biBvZiBoYXZpbmcgdG8gZGVhbCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxNjY6CiteSSAqIHdpdGgg dGhpcyBwcm9ibGVtLiBUaGlzIG9wdGlvbiBkaXNhYmxlcyB0aGUgaGlkaW5nJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjE2NzoKK15JICogYmVoYXZpb3IsIGFuZCBmaWxlcyBhcmUgcmVtb3ZlZCBpbW1l ZGlhdGVseSBpbiBhbiB1bmxpbmskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTY4OgorXkkgKiBvcGVy YXRpb24gKG9yIGluIGEgcmVuYW1lIG9wZXJhdGlvbiB3aGljaCBvdmVyd3JpdGVzIGFuJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjE2OToKK15JICogZXhpc3RpbmcgZmlsZSkuJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjE3MDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxOTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTcxOgorXkkgKiBJdCBpcyBy ZWNvbW1lbmRlZCB0aGF0IHlvdSBub3QgdXNlIHRoZSBoYXJkX3JlbW92ZSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDoxNzI6CiteSSAqIG9wdGlvbi4gV2hlbiBoYXJkX3JlbW92ZSBpcyBzZXQsIHRoZSBm b2xsb3dpbmcgbGliYyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxNzM6CiteSSAqIGZ1bmN0aW9ucyBm YWlsIG9uIHVubGlua2VkIGZpbGVzIChyZXR1cm5pbmcgZXJybm8gb2YkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6MTc0OgorXkkgKiBFTk9FTlQpOiByZWFkKDIpLCB3cml0ZSgyKSwgZnN5bmMoMiksIGNs b3NlKDIpLCBmKnhhdHRyKDIpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxNzU6CiteSSAqIGZ0cnVu Y2F0ZSgyKSwgZnN0YXQoMiksIGZjaG1vZCgyKSwgZmNob3duKDIpJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjE3NjoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE3NzoKK15JaW50IGhhcmRfcmVt b3ZlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5OTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxNzk6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDoxODA6CiteSSAqIEhvbm9yIHRoZSBzdF9pbm8gZmllbGQgaW4gdGhlIGZ1bmN0aW9ucyBnZXRh dHRyKCkgYW5kJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE4MToKK15JICogZmlsbF9kaXIoKS4gVGhp cyB2YWx1ZSBpcyB1c2VkIHRvIGZpbGwgaW4gdGhlIHN0X2lubyBmaWVsZCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDoxODI6CiteSSAqIGluIHRoZSBzdGF0KDIpLCBsc3RhdCgyKSwgZnN0YXQoMikgZnVu Y3Rpb25zIGFuZCB0aGUgZF9pbm8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTgzOgorXkkgKiBmaWVs ZCBpbiB0aGUgcmVhZGRpcigyKSBmdW5jdGlvbi4gVGhlIGZpbGVzeXN0ZW0gZG9lcyBub3QkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6MTg0OgorXkkgKiBoYXZlIHRvIGd1YXJhbnRlZSB1bmlxdWVuZXNz LCBob3dldmVyIHNvbWUgYXBwbGljYXRpb25zJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE4NToKK15J ICogcmVseSBvbiB0aGlzIHZhbHVlIGJlaW5nIHVuaXF1ZSBmb3IgdGhlIHdob2xlIGZpbGVzeXN0 ZW0uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE4NjoKK15JICokCgpFUlJPUjogdHJhaWxpbmcgd2hp dGVzcGFjZQojMjA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE4NzoKK15JICogTm90 ZSB0aGF0IHRoaXMgZG9lcyAqbm90KiBhZmZlY3QgdGhlIGlub2RlIHRoYXQgbGliZnVzZSAkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6MTg3OgorXkkgKiBOb3RlIHRoYXQgdGhpcyBkb2VzICpub3QqIGFm ZmVjdCB0aGUgaW5vZGUgdGhhdCBsaWJmdXNlICQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxODg6Cite SSAqIGFuZCB0aGUga2VybmVsIHVzZSBpbnRlcm5hbGx5IChhbHNvIGNhbGxlZCB0aGUgIm5vZGVp ZCIpLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwOTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxODk6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDoxOTA6CiteSWludCB1c2VfaW5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxOTI6CiteSS8qKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDoxOTM6CiteSSAqIElmIHVzZV9pbm8gb3B0aW9uIGlzIG5vdCBn aXZlbiwgc3RpbGwgdHJ5IHRvIGZpbGwgaW4gdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE5NDoK K15JICogZF9pbm8gZmllbGQgaW4gcmVhZGRpcigyKS4gSWYgdGhlIG5hbWUgd2FzIHByZXZpb3Vz bHkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTk1OgorXkkgKiBsb29rZWQgdXAsIGFuZCBpcyBzdGls bCBpbiB0aGUgY2FjaGUsIHRoZSBpbm9kZSBudW1iZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTk2 OgorXkkgKiBmb3VuZCB0aGVyZSB3aWxsIGJlIHVzZWQuICBPdGhlcndpc2UgaXQgd2lsbCBiZSBz ZXQgdG8gLTEuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE5NzoKK15JICogSWYgdXNlX2lubyBvcHRp b24gaXMgZ2l2ZW4sIHRoaXMgb3B0aW9uIGlzIGlnbm9yZWQuJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjE5ODoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjE5OToKK15JaW50IHJlYWRkaXJfaW5v OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyMDE6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoy MDI6CiteSSAqIFRoaXMgb3B0aW9uIGRpc2FibGVzIHRoZSB1c2Ugb2YgcGFnZSBjYWNoZSAoZmls ZSBjb250ZW50IGNhY2hlKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzIyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyMDM6CiteSSAqIGluIHRoZSBr ZXJuZWwgZm9yIHRoaXMgZmlsZXN5c3RlbS4gVGhpcyBoYXMgc2V2ZXJhbCBhZmZlY3RzOiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyNDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDoyMDQ6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIwNToKK15J ICogMS4gRWFjaCByZWFkKDIpIG9yIHdyaXRlKDIpIHN5c3RlbSBjYWxsIHdpbGwgaW5pdGlhdGUg b25lJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIwNjoKK15JICogICAgb3IgbW9yZSByZWFkIG9yIHdy aXRlIG9wZXJhdGlvbnMsIGRhdGEgd2lsbCBub3QgYmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjA3 OgorXkkgKiAgICBjYWNoZWQgaW4gdGhlIGtlcm5lbC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjA4 OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyOTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyMDk6CiteSSAqIDIuIFRoZSByZXR1cm4gdmFs dWUgb2YgdGhlIHJlYWQoKSBhbmQgd3JpdGUoKSBzeXN0ZW0gY2FsbHMkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6MjEwOgorXkkgKiAgICB3aWxsIGNvcnJlc3BvbmQgdG8gdGhlIHJldHVybiB2YWx1ZXMg b2YgdGhlIHJlYWQgYW5kJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIxMToKK15JICogICAgd3JpdGUg b3BlcmF0aW9ucy4gVGhpcyBpcyB1c2VmdWwgZm9yIGV4YW1wbGUgaWYgdGhlJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjIxMjoKK15JICogICAgZmlsZSBzaXplIGlzIG5vdCBrbm93biBpbiBhZHZhbmNl IChiZWZvcmUgcmVhZGluZyBpdCkuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIxMzoKK15JICokCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6MjE0OgorXkkgKiBJbnRlcm5hbGx5LCBlbmFibGluZyB0aGlzIG9w dGlvbiBjYXVzZXMgZnVzZSB0byBzZXQgdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIxNToKK15J ICogYGRpcmVjdF9pb2AgZmllbGQgb2YgYHN0cnVjdCBmdXNlX2ZpbGVfaW5mb2AgLSBvdmVyd3Jp dGluZyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyMTY6CiteSSAqIGFueSB2YWx1ZSB0aGF0IHdhcyBw dXQgdGhlcmUgYnkgdGhlIGZpbGUgc3lzdGVtLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyMTc6Cite SSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyMTg6CiteSWludCBkaXJlY3RfaW87JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjIyMDoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIyMToKK15JICog VGhpcyBvcHRpb24gZGlzYWJsZXMgZmx1c2hpbmcgdGhlIGNhY2hlIG9mIHRoZSBmaWxlJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjIyMjoKK15JICogY29udGVudHMgb24gZXZlcnkgb3BlbigyKS4gIFRo aXMgc2hvdWxkIG9ubHkgYmUgZW5hYmxlZCBvbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyMjM6Cite SSAqIGZpbGVzeXN0ZW1zIHdoZXJlIHRoZSBmaWxlIGRhdGEgaXMgbmV2ZXIgY2hhbmdlZCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDoyMjQ6CiteSSAqIGV4dGVybmFsbHkgKG5vdCB0aHJvdWdoIHRoZSBt b3VudGVkIEZVU0UgZmlsZXN5c3RlbSkuICBUaHVzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIyNToK K15JICogaXQgaXMgbm90IHN1aXRhYmxlIGZvciBuZXR3b3JrIGZpbGVzeXN0ZW1zIGFuZCBvdGhl ciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyMjY6CiteSSAqIGludGVybWVkaWF0ZSBmaWxlc3lzdGVt cy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjI3OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoy Mjg6CiteSSAqIE5PVEU6IGlmIHRoaXMgb3B0aW9uIGlzIG5vdCBzcGVjaWZpZWQgKGFuZCBuZWl0 aGVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIyOToKK15JICogZGlyZWN0X2lvKSBkYXRhIGlzIHN0 aWxsIGNhY2hlZCBhZnRlciB0aGUgb3BlbigyKSwgc28gYSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoy MzA6CiteSSAqIHJlYWQoMikgc3lzdGVtIGNhbGwgd2lsbCBub3QgYWx3YXlzIGluaXRpYXRlIGEg cmVhZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyMzE6CiteSSAqIG9wZXJhdGlvbi4kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6MjMyOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyMzM6CiteSSAqIElu dGVybmFsbHksIGVuYWJsaW5nIHRoaXMgb3B0aW9uIGNhdXNlcyBmdXNlIHRvIHNldCB0aGUkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6MjM0OgorXkkgKiBga2VlcF9jYWNoZWAgZmllbGQgb2YgYHN0cnVj dCBmdXNlX2ZpbGVfaW5mb2AgLSBvdmVyd3JpdGluZyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyMzU6 CiteSSAqIGFueSB2YWx1ZSB0aGF0IHdhcyBwdXQgdGhlcmUgYnkgdGhlIGZpbGUgc3lzdGVtLiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDoyMzY6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyMzc6 CiteSWludCBrZXJuZWxfY2FjaGU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjIzOToKK15JLyoqJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjI0MDoKK15JICogVGhpcyBvcHRpb24gaXMgYW4gYWx0ZXJuYXRp dmUgdG8gYGtlcm5lbF9jYWNoZWAuIEluc3RlYWQgb2YkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjQx OgorXkkgKiB1bmNvbmRpdGlvbmFsbHkga2VlcGluZyBjYWNoZWQgZGF0YSwgdGhlIGNhY2hlZCBk YXRhIGlzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjI0MjoKK15JICogaW52YWxpZGF0ZWQgb24gb3Bl bigyKSBpZiBpZiB0aGUgbW9kaWZpY2F0aW9uIHRpbWUgb3IgdGhlJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjI0MzoKK15JICogc2l6ZSBvZiB0aGUgZmlsZSBoYXMgY2hhbmdlZCBzaW5jZSBpdCB3YXMg bGFzdCBvcGVuZWQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjI0NDoKK15JICovJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjI0NToKK15JaW50IGF1dG9fY2FjaGU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjI0 NzoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjI0ODoKK15JICogVGhlIHRpbWVvdXQgaW4g c2Vjb25kcyBmb3Igd2hpY2ggZmlsZSBhdHRyaWJ1dGVzIGFyZSBjYWNoZWQkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6MjQ5OgorXkkgKiBmb3IgdGhlIHB1cnBvc2Ugb2YgY2hlY2tpbmcgaWYgYXV0b19j YWNoZSBzaG91bGQgZmx1c2ggdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjI1MDoKK15JICogZmls ZSBkYXRhIG9uIG9wZW4uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjI1MToKK15JICovJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjI1MjoKK15JaW50IGFjX2F0dHJfdGltZW91dF9zZXQ7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjczOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjI1MzoKK15JZG91YmxlIGFjX2F0dHJfdGltZW91dDskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6MjU1OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjU2OgorXkkgKiBJZiB0aGlz IG9wdGlvbiBpcyBnaXZlbiB0aGUgZmlsZS1zeXN0ZW0gaGFuZGxlcnMgZm9yIHRoZSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDoyNTc6CiteSSAqIGZvbGxvd2luZyBvcGVyYXRpb25zIHdpbGwgbm90IHJl Y2VpdmUgcGF0aCBpbmZvcm1hdGlvbjokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjU4OgorXkkgKiBy ZWFkLCB3cml0ZSwgZmx1c2gsIHJlbGVhc2UsIGZzeW5jLCByZWFkZGlyLCByZWxlYXNlZGlyLCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3OTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDoyNTk6CiteSSAqIGZzeW5jZGlyLCBsb2NrLCBpb2N0bCBhbmQg cG9sbC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjYwOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDoyNjE6CiteSSAqIEZvciB0aGUgdHJ1bmNhdGUsIGdldGF0dHIsIGNobW9kLCBjaG93biBhbmQg dXRpbWVucyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4Mjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyNjI6CiteSSAqIG9wZXJhdGlvbnMgdGhlIHBh dGggd2lsbCBiZSBwcm92aWRlZCBvbmx5IGlmIHRoZSBzdHJ1Y3QkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6MjYzOgorXkkgKiBmdXNlX2ZpbGVfaW5mbyBhcmd1bWVudCBpcyBOVUxMLiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDoyNjQ6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyNjU6CiteSWludCBu dWxscGF0aF9vazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjY3OgorXkkvKiokCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6MjY4OgorXkkgKiBUaGUgcmVtYWluaW5nIG9wdGlvbnMgYXJlIHVzZWQgYnkgbGli ZnVzZSBpbnRlcm5hbGx5IGFuZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoyNjk6CiteSSAqIHNob3Vs ZCBub3QgYmUgdG91Y2hlZC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyOTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MjcwOgorXkkgKi8kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6MjcxOgorXklpbnQgc2hvd19oZWxwOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDoyNzI6CiteSWNoYXIgKm1vZHVsZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjI3MzoKK15JaW50 IGRlYnVnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMDA6CiteSS8qKiBHZXQgZmlsZSBhdHRyaWJ1 dGVzLiQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBh cmF0ZSBsaW5lCiMzMjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzAwOgorICAgICAg IC8qKiBHZXQgZmlsZSBhdHRyaWJ1dGVzLgoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjMwMToKK15JICok CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzAyOgorXkkgKiBTaW1pbGFyIHRvIHN0YXQoKS4gIFRoZSAn c3RfZGV2JyBhbmQgJ3N0X2Jsa3NpemUnIGZpZWxkcyBhcmUkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 MzAzOgorXkkgKiBpZ25vcmVkLiBUaGUgJ3N0X2lubycgZmllbGQgaXMgaWdub3JlZCBleGNlcHQg aWYgdGhlICd1c2VfaW5vJyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMDQ6CiteSSAqIG1vdW50IG9w dGlvbiBpcyBnaXZlbi4gSW4gdGhhdCBjYXNlIGl0IGlzIHBhc3NlZCB0byB1c2Vyc3BhY2UsJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjMwNToKK15JICogYnV0IGxpYmZ1c2UgYW5kIHRoZSBrZXJuZWwg d2lsbCBzdGlsbCBhc3NpZ24gYSBkaWZmZXJlbnQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzA2Ogor XkkgKiBpbm9kZSBmb3IgaW50ZXJuYWwgdXNlIChjYWxsZWQgdGhlICJub2RlaWQiKS4kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6MzA3OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMyODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMDg6CiteSSAq IGBmaWAgd2lsbCBhbHdheXMgYmUgTlVMTCBpZiB0aGUgZmlsZSBpcyBub3QgY3VycmVudGx5IG9w ZW4sIGJ1dCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyOTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMDk6CiteSSAqIG1heSBhbHNvIGJlIE5VTEwg aWYgdGhlIGZpbGUgaXMgb3Blbi4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzEwOgorXkkgKi8kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6MzExOgorXklpbnQgKCpnZXRhdHRyKSAoY29uc3QgY2hhciAqLCBz dHJ1Y3Qgc3RhdCAqLCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6MzEzOgorXkkvKiogUmVhZCB0aGUgdGFyZ2V0IG9mIGEgc3ltYm9saWMgbGluayQKCldB Uk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5l CiMzMzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzEzOgorICAgICAgIC8qKiBSZWFk IHRoZSB0YXJnZXQgb2YgYSBzeW1ib2xpYyBsaW5rCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzE0Ogor XkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMTU6CiteSSAqIFRoZSBidWZmZXIgc2hvdWxkIGJl IGZpbGxlZCB3aXRoIGEgbnVsbCB0ZXJtaW5hdGVkIHN0cmluZy4gIFRoZSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDozMTY6CiteSSAqIGJ1ZmZlciBzaXplIGFyZ3VtZW50IGluY2x1ZGVzIHRoZSBzcGFj ZSBmb3IgdGhlIHRlcm1pbmF0aW5nJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjMxNzoKK15JICogbnVs bCBjaGFyYWN0ZXIuXklJZiB0aGUgbGlua25hbWUgaXMgdG9vIGxvbmcgdG8gZml0IGluIHRoZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDozMTg6CiteSSAqIGJ1ZmZlciwgaXQgc2hvdWxkIGJlIHRydW5j YXRlZC5eSVRoZSByZXR1cm4gdmFsdWUgc2hvdWxkIGJlIDAkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 MzE5OgorXkkgKiBmb3Igc3VjY2Vzcy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzIwOgorXkkgKi8k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzIxOgorXklpbnQgKCpyZWFkbGluaykgKGNvbnN0IGNoYXIg KiwgY2hhciAqLCBzaXplX3QpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzM0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMjM6CiteSS8qKiBDcmVh dGUgYSBmaWxlIG5vZGUkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8q IG9uIGEgc2VwYXJhdGUgbGluZQojMzQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjMy MzoKKyAgICAgICAvKiogQ3JlYXRlIGEgZmlsZSBub2RlCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzNDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzI0 OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMjU6CiteSSAqIFRoaXMgaXMgY2FsbGVkIGZv ciBjcmVhdGlvbiBvZiBhbGwgbm9uLWRpcmVjdG9yeSwgbm9uLXN5bWxpbmskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6MzI2OgorXkkgKiBub2Rlcy4gIElmIHRoZSBmaWxlc3lzdGVtIGRlZmluZXMgYSBj cmVhdGUoKSBtZXRob2QsIHRoZW4gZm9yJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjMyNzoKK15JICog cmVndWxhciBmaWxlcyB0aGF0IHdpbGwgYmUgY2FsbGVkIGluc3RlYWQuJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjMyODoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjMyOToKK15JaW50ICgqbWtu b2QpIChjb25zdCBjaGFyICosIG1vZGVfdCwgZGV2X3QpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoz MzE6CiteSS8qKiBDcmVhdGUgYSBkaXJlY3RvcnkkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1 c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMzUxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjMzMToKKyAgICAgICAvKiogQ3JlYXRlIGEgZGlyZWN0b3J5CgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6MzMyOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzM1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMzM6CiteSSAqIE5v dGUgdGhhdCB0aGUgbW9kZSBhcmd1bWVudCBtYXkgbm90IGhhdmUgdGhlIHR5cGUgc3BlY2lmaWNh dGlvbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMzQ6CiteSSAqIGJpdHMgc2V0LCBpLmUuIFNfSVNE SVIobW9kZSkgY2FuIGJlIGZhbHNlLiAgVG8gb2J0YWluIHRoZSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDozMzU6CiteSSAqIGNvcnJlY3QgZGlyZWN0b3J5IHR5cGUgYml0cyB1c2UgIG1vZGV8U19JRkRJ UiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozMzY6CiteSSAqICovJAoKV0FSTklORzogQmxvY2sgY29t bWVudHMgdXNlIGEgdHJhaWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiMzNTY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzM2OgorICAgICAgICAqICovCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6MzM3OgorXklpbnQgKCpta2RpcikgKGNvbnN0IGNoYXIgKiwgbW9kZV90KTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6MzM5OgorXkkvKiogUmVtb3ZlIGEgZmlsZSAqLyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDozNDA6CiteSWludCAoKnVubGluaykgKGNvbnN0IGNoYXIgKik7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjM0MjoKK15JLyoqIFJlbW92ZSBhIGRpcmVjdG9yeSAqLyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDozNDM6CiteSWludCAoKnJtZGlyKSAoY29uc3QgY2hhciAqKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6MzQ1OgorXkkvKiogQ3JlYXRlIGEgc3ltYm9saWMgbGluayAqLyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM2NjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDozNDY6CiteSWludCAoKnN5bWxpbmspIChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIg Kik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzY4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM0ODoKK15JLyoqIFJlbmFtZSBhIGZpbGUkCgpXQVJO SU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQoj MzY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM0ODoKKyAgICAgICAvKiogUmVuYW1l IGEgZmlsZQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzY5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM0OToKK15JICokCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6MzUwOgorXkkgKiAqZmxhZ3MqIG1heSBiZSBgUkVOQU1FX0VYQ0hBTkdFYCBvciBgUkVOQU1F X05PUkVQTEFDRWAuIElmJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM1MToKK15JICogUkVOQU1FX05P UkVQTEFDRSBpcyBzcGVjaWZpZWQsIHRoZSBmaWxlc3lzdGVtIG11c3Qgbm90JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzcyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjM1MjoKK15JICogb3ZlcndyaXRlICpuZXduYW1lKiBpZiBpdCBleGlzdHMgYW5k IHJldHVybiBhbiBlcnJvciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzM3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozNTM6CiteSSAqIGluc3RlYWQu IElmIGBSRU5BTUVfRVhDSEFOR0VgIGlzIHNwZWNpZmllZCwgdGhlIGZpbGVzeXN0ZW0kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNzQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6MzU0OgorXkkgKiBtdXN0IGF0b21pY2FsbHkgZXhjaGFuZ2UgdGhlIHR3 byBmaWxlcywgaS5lLiBib3RoIG11c3QkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzU1OgorXkkgKiBl eGlzdCBhbmQgbmVpdGhlciBtYXkgYmUgZGVsZXRlZC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzNzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzU2 OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNzc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzU3OgorXklpbnQgKCpyZW5hbWUpIChjb25z dCBjaGFyICosIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50IGZsYWdzKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6MzU5OgorXkkvKiogQ3JlYXRlIGEgaGFyZCBsaW5rIHRvIGEgZmlsZSAqLyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4MDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDozNjA6CiteSWludCAoKmxpbmspIChjb25zdCBjaGFyICosIGNvbnN0 IGNoYXIgKik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzgy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM2MjoKK15JLyoqIENoYW5nZSB0aGUgcGVy bWlzc2lvbiBiaXRzIG9mIGEgZmlsZSQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxl YWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMzODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6MzYyOgorICAgICAgIC8qKiBDaGFuZ2UgdGhlIHBlcm1pc3Npb24gYml0cyBvZiBhIGZp bGUKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4MzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozNjM6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM2 NDoKK15JICogYGZpYCB3aWxsIGFsd2F5cyBiZSBOVUxMIGlmIHRoZSBmaWxlIGlzIG5vdCBjdXJy ZW5sdHkgb3BlbiwgYnV0JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM2NToKK15JICogbWF5IGFsc28g YmUgTlVMTCBpZiB0aGUgZmlsZSBpcyBvcGVuLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzM4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozNjY6Cite SSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4NzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozNjc6CiteSWludCAoKmNobW9kKSAoY29uc3QgY2hh ciAqLCBtb2RlX3QsIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDozNjk6CiteSS8qKiBDaGFuZ2UgdGhlIG93bmVyIGFuZCBncm91cCBvZiBhIGZpbGUkCgpX QVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGlu ZQojMzg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM2OToKKyAgICAgICAvKiogQ2hh bmdlIHRoZSBvd25lciBhbmQgZ3JvdXAgb2YgYSBmaWxlCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzOTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Mzcw OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM5MTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozNzE6CiteSSAqIGBmaWAgd2lsbCBhbHdheXMg YmUgTlVMTCBpZiB0aGUgZmlsZSBpcyBub3QgY3VycmVubHR5IG9wZW4sIGJ1dCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM5MjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDozNzI6CiteSSAqIG1heSBhbHNvIGJlIE5VTEwgaWYgdGhlIGZpbGUgaXMgb3Bl bi4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzOTM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzczOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoz NzQ6CiteSSAqIFVubGVzcyBGVVNFX0NBUF9IQU5ETEVfS0lMTFBSSVYgaXMgZGlzYWJsZWQsIHRo aXMgbWV0aG9kIGlzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj Mzk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM3NToKK15JICogZXhwZWN0ZWQgdG8g cmVzZXQgdGhlIHNldHVpZCBhbmQgc2V0Z2lkIGJpdHMuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM3 NjoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzk3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM3NzoKK15JaW50ICgqY2hvd24pIChjb25z dCBjaGFyICosIHVpZF90LCBnaWRfdCwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzk5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjM3OToKK15JLyoqIENoYW5nZSB0aGUgc2l6ZSBvZiBhIGZpbGUkCgpX QVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGlu ZQojMzk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM3OToKKyAgICAgICAvKiogQ2hh bmdlIHRoZSBzaXplIG9mIGEgZmlsZQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNDAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM4MDoKK15JICokCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MDE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6MzgxOgorXkkgKiBgZmlgIHdpbGwgYWx3YXlzIGJlIE5VTEwgaWYg dGhlIGZpbGUgaXMgbm90IGN1cnJlbmx0eSBvcGVuLCBidXQkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 MzgyOgorXkkgKiBtYXkgYWxzbyBiZSBOVUxMIGlmIHRoZSBmaWxlIGlzIG9wZW4uJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDAzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjM4MzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM0MDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Mzg0OgorXkkgKiBV bmxlc3MgRlVTRV9DQVBfSEFORExFX0tJTExQUklWIGlzIGRpc2FibGVkLCB0aGlzIG1ldGhvZCBp cyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQwNTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozODU6CiteSSAqIGV4cGVjdGVkIHRvIHJlc2V0IHRoZSBz ZXR1aWQgYW5kIHNldGdpZCBiaXRzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzQwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozODY6CiteSSAqLyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQwNzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDozODc6CiteSWludCAoKnRydW5jYXRlKSAoY29uc3QgY2hhciAq LCBvZmZfdCwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjM4OToKK15JLyoqIE9wZW4gYSBmaWxlJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEg bGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzQwOTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDozODk6CisgICAgICAgLyoqIE9wZW4gYSBmaWxlCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 MzkwOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQx MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozOTE6CiteSSAqIE9wZW4gZmxhZ3MgYXJl IGF2YWlsYWJsZSBpbiBmaS0+ZmxhZ3MuIFRoZSBmb2xsb3dpbmcgcnVsZXMkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6MzkyOgorXkkgKiBhcHBseS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM0MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MzkzOgorXkkg KiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxNDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDozOTQ6CiteSSAqICAtIENyZWF0aW9uIChPX0NSRUFULCBP X0VYQ0wsIE9fTk9DVFRZKSBmbGFncyB3aWxsIGJlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNDE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM5NToK K15JICogICAgZmlsdGVyZWQgb3V0IC8gaGFuZGxlZCBieSB0aGUga2VybmVsLiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxNjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDozOTY6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNDE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjM5NzoKK15JICogIC0g QWNjZXNzIG1vZGVzIChPX1JET05MWSwgT19XUk9OTFksIE9fUkRXUiwgT19FWEVDLCBPX1NFQVJD SCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MTg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Mzk4OgorXkkgKiAgICBzaG91bGQgYmUgdXNlZCBieSB0 aGUgZmlsZXN5c3RlbSB0byBjaGVjayBpZiB0aGUgb3BlcmF0aW9uIGlzJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjM5OToKK15JICogICAgcGVybWl0dGVkLiAgSWYgdGhlIGBgLW8gZGVmYXVsdF9wZXJt aXNzaW9uc2BgIG1vdW50IG9wdGlvbiBpcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzQyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0MDA6CiteSSAq ICAgIGdpdmVuLCB0aGlzIGNoZWNrIGlzIGFscmVhZHkgZG9uZSBieSB0aGUga2VybmVsIGJlZm9y ZSBjYWxsaW5nJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDIx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQwMToKK15JICogICAgb3BlbigpIGFuZCBt YXkgdGh1cyBiZSBvbWl0dGVkIGJ5IHRoZSBmaWxlc3lzdGVtLiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDo0MDI6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NDIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQwMzoKK15JICogIC0gV2hlbiB3cml0 ZWJhY2sgY2FjaGluZyBpcyBlbmFibGVkLCB0aGUga2VybmVsIG1heSBzZW5kJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDI0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjQwNDoKK15JICogICAgcmVhZCByZXF1ZXN0cyBldmVuIGZvciBmaWxlcyBvcGVu ZWQgd2l0aCBPX1dST05MWS4gVGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNDI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQwNToKK15JICogICAg ZmlsZXN5c3RlbSBzaG91bGQgYmUgcHJlcGFyZWQgdG8gaGFuZGxlIHRoaXMuJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDI2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjQwNjoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM0Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDA3OgorXkkgKiAgLSBX aGVuIHdyaXRlYmFjayBjYWNoaW5nIGlzIGRpc2FibGVkLCB0aGUgZmlsZXN5c3RlbSBpcyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQyODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo0MDg6CiteSSAqICAgIGV4cGVjdGVkIHRvIHByb3Blcmx5IGhhbmRs ZSB0aGUgT19BUFBFTkQgZmxhZyBhbmQgZW5zdXJlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNDI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQwOToK K15JICogICAgdGhhdCBlYWNoIHdyaXRlIGlzIGFwcGVuZGluZyB0byB0aGUgZW5kIG9mIHRoZSBm aWxlLiQKCkVSUk9SOiB0cmFpbGluZyB3aGl0ZXNwYWNlCiM0MzA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6NDEwOgorXkkgKiAkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM0MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDEwOgorXkkgKiAk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MzI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDEyOgorXkkgKiAgICBoYW5kbGUgT19BUFBFTkQuIEhvd2V2 ZXIsIHVubGVzcyBhbGwgY2hhbmdlcyB0byB0aGUgZmlsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0 MTM6CiteSSAqICAgIGNvbWUgdGhyb3VnaCB0aGUga2VybmVsIHRoaXMgd2lsbCBub3Qgd29yayBy ZWxpYWJseS4gVGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NDM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQxNDoKK15JICogICAgZmlsZXN5c3Rl bSBzaG91bGQgdGh1cyBlaXRoZXIgaWdub3JlIHRoZSBPX0FQUEVORCBmbGFnJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDM1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjQxNToKK15JICogICAgKGFuZCBsZXQgdGhlIGtlcm5lbCBoYW5kbGUgaXQpLCBv ciByZXR1cm4gYW4gZXJyb3IkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM0MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDE2OgorXkkgKiAgICAoaW5k aWNhdGluZyB0aGF0IHJlbGlhYmx5IE9fQVBQRU5EIGlzIG5vdCBhdmFpbGFibGUpLiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQzNzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo0MTc6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNDM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQxODoKK15JICog RmlsZXN5c3RlbSBtYXkgc3RvcmUgYW4gYXJiaXRyYXJ5IGZpbGUgaGFuZGxlIChwb2ludGVyLCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQzOTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo0MTk6CiteSSAqIGluZGV4LCBldGMpIGluIGZpLT5maCwgYW5k IHVzZSB0aGlzIGluIG90aGVyIGFsbCBvdGhlciBmaWxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNDQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQy MDoKK15JICogb3BlcmF0aW9ucyAocmVhZCwgd3JpdGUsIGZsdXNoLCByZWxlYXNlLCBmc3luYyku JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDQxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjQyMToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM0NDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDIy OgorXkkgKiBGaWxlc3lzdGVtIG1heSBhbHNvIGltcGxlbWVudCBzdGF0ZWxlc3MgZmlsZSBJL08g YW5kIG5vdCBzdG9yZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzQ0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0MjM6CiteSSAqIGFueXRoaW5nIGlu IGZpLT5maC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NDQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDI0OgorXkkgKiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDo0MjU6CiteSSAqIFRoZXJlIGFyZSBhbHNvIHNvbWUgZmxhZ3MgKGRpcmVjdF9pbywga2Vl cF9jYWNoZSkgd2hpY2ggdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNDQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQyNjoKK15JICogZmlsZXN5 c3RlbSBtYXkgc2V0IGluIGZpLCB0byBjaGFuZ2UgdGhlIHdheSB0aGUgZmlsZSBpcyBvcGVuZWQu JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDQ3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjQyNzoKK15JICogU2VlIGZ1c2VfZmlsZV9pbmZvIHN0cnVj dHVyZSBpbiA8ZnVzZV9jb21tb24uaD4gZm9yIG1vcmUgZGV0YWlscy4kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6NDI4OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzQ0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0Mjk6CiteSSAqIElmIHRoaXMg cmVxdWVzdCBpcyBhbnN3ZXJlZCB3aXRoIGFuIGVycm9yIGNvZGUgb2YgRU5PU1lTJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDUwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjQzMDoKK15JICogYW5kIEZVU0VfQ0FQX05PX09QRU5fU1VQUE9SVCBpcyBz ZXQgaW4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NTE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDMxOgorXkkgKiBgZnVzZV9jb25uX2luZm8uY2Fw YWJsZWAsIHRoaXMgaXMgdHJlYXRlZCBhcyBzdWNjZXNzIGFuZCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDo0MzI6CiteSSAqIGZ1dHVyZSBjYWxscyB0byBvcGVuIHdpbGwgYWxzbyBzdWNjZWVkIHdpdGhv dXQgYmVpbmcgc2VuZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzQ1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0MzM6CiteSSAqIHRvIHRoZSBmaWxl c3lzdGVtIHByb2Nlc3MuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNDU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQzNDoKK15JICokCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NTU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6NDM1OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM0NTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDM2OgorXklpbnQg KCpvcGVuKSAoY29uc3QgY2hhciAqLCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKik7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDU4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjQzODoKK15JLyoqIFJlYWQgZGF0YSBmcm9tIGFuIG9wZW4gZmlsZSQKCldB Uk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5l CiM0NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDM4OgorICAgICAgIC8qKiBSZWFk IGRhdGEgZnJvbSBhbiBvcGVuIGZpbGUKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzQ1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0Mzk6CiteSSAqJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDYwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjQ0MDoKK15JICogUmVhZCBzaG91bGQgcmV0dXJuIGV4YWN0bHkg dGhlIG51bWJlciBvZiBieXRlcyByZXF1ZXN0ZWQgZXhjZXB0JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjQ0MToKK15JICogb24gRU9GIG9yIGVycm9yLCBvdGhlcndpc2UgdGhlIHJlc3Qgb2YgdGhlIGRh dGEgd2lsbCBiZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2 MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0NDI6CiteSSAqIHN1YnN0aXR1dGVkIHdp dGggemVyb2VzLl5JIEFuIGV4Y2VwdGlvbiB0byB0aGlzIGlzIHdoZW4gdGhlJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDYzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjQ0MzoKK15JICogJ2RpcmVjdF9pbycgbW91bnQgb3B0aW9uIGlzIHNwZWNpZmll ZCwgaW4gd2hpY2ggY2FzZSB0aGUgcmV0dXJuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNDY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ0NDoKK15J ICogdmFsdWUgb2YgdGhlIHJlYWQgc3lzdGVtIGNhbGwgd2lsbCByZWZsZWN0IHRoZSByZXR1cm4g dmFsdWUgb2YkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDQ1OgorXkkgKiB0aGlzIG9wZXJhdGlvbi4k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDQ2OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM0Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDQ3 OgorXklpbnQgKCpyZWFkKSAoY29uc3QgY2hhciAqLCBjaGFyICosIHNpemVfdCwgb2ZmX3QsJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDY4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjQ0ODoKK15JXkkgICAgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAq KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NzA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDUwOgorXkkvKiogV3JpdGUgZGF0YSB0byBhbiBvcGVu IGZpbGUkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2Vw YXJhdGUgbGluZQojNDcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ1MDoKKyAgICAg ICAvKiogV3JpdGUgZGF0YSB0byBhbiBvcGVuIGZpbGUKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzQ3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0NTE6 CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDcyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ1MjoKK15JICogV3JpdGUgc2hvdWxkIHJldHVy biBleGFjdGx5IHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVxdWVzdGVkJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjQ1MzoKK15JICogZXhjZXB0IG9uIGVycm9yLl5JIEFuIGV4Y2VwdGlvbiB0byB0aGlzIGlz IHdoZW4gdGhlICdkaXJlY3RfaW8nJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNDc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ1NDoKK15JICogbW91 bnQgb3B0aW9uIGlzIHNwZWNpZmllZCAoc2VlIHJlYWQgb3BlcmF0aW9uKS4kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NDU1OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzQ3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0NTY6CiteSSAqIFVubGVz cyBGVVNFX0NBUF9IQU5ETEVfS0lMTFBSSVYgaXMgZGlzYWJsZWQsIHRoaXMgbWV0aG9kIGlzJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDc3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjQ1NzoKK15JICogZXhwZWN0ZWQgdG8gcmVzZXQgdGhlIHNldHVp ZCBhbmQgc2V0Z2lkIGJpdHMuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNDc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ1ODoKK15JICovJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDc5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjQ1OToKK15JaW50ICgqd3JpdGUpIChjb25zdCBjaGFyICosIGNvbnN0 IGNoYXIgKiwgc2l6ZV90LCBvZmZfdCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM0ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDYwOgorXkleSSAg ICAgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDYyOgor XkkvKiogR2V0IGZpbGUgc3lzdGVtIHN0YXRpc3RpY3MkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50 cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojNDgyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjQ2MjoKKyAgICAgICAvKiogR2V0IGZpbGUgc3lzdGVtIHN0YXRpc3Rp Y3MKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4MzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0NjM6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNDg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ2 NDoKK15JICogVGhlICdmX2ZhdmFpbCcsICdmX2ZzaWQnIGFuZCAnZl9mbGFnJyBmaWVsZHMgYXJl IGlnbm9yZWQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDY1OgorXkkgKi8kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6NDY2OgorXklpbnQgKCpzdGF0ZnMpIChjb25zdCBjaGFyICosIHN0cnVjdCBzdGF0dmZz ICopOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4ODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0Njg6CiteSS8qKiBQb3NzaWJseSBmbHVzaCBjYWNo ZWQgZGF0YSQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBz ZXBhcmF0ZSBsaW5lCiM0ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDY4OgorICAg ICAgIC8qKiBQb3NzaWJseSBmbHVzaCBjYWNoZWQgZGF0YQoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNDg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ2 OToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0OTA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDcwOgorXkkgKiBCSUcgTk9URTogVGhpcyBp cyBub3QgZXF1aXZhbGVudCB0byBmc3luYygpLiAgSXQncyBub3QgYSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDo0NzE6CiteSSAqIHJlcXVlc3QgdG8gc3luYyBkaXJ0eSBkYXRhLiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ5MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDo0NzI6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNDkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ3MzoKK15JICogRmx1c2gg aXMgY2FsbGVkIG9uIGVhY2ggY2xvc2UoKSBvZiBhIGZpbGUgZGVzY3JpcHRvciwgYXMgb3Bwb3Nl ZCB0byQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ5NDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0NzQ6CiteSSAqIHJlbGVhc2Ugd2hpY2ggaXMgY2Fs bGVkIG9uIHRoZSBjbG9zZSBvZiB0aGUgbGFzdCBmaWxlIGRlc2NyaXB0b3IgZm9yJAoKRVJST1I6 IHRyYWlsaW5nIHdoaXRlc3BhY2UKIzQ5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0 NzU6CiteSSAqIGEgZmlsZS4gIFVuZGVyIExpbnV4LCBlcnJvcnMgcmV0dXJuZWQgYnkgZmx1c2go KSB3aWxsIGJlIHBhc3NlZCB0byAkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM0OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDc1OgorXkkgKiBhIGZp bGUuICBVbmRlciBMaW51eCwgZXJyb3JzIHJldHVybmVkIGJ5IGZsdXNoKCkgd2lsbCBiZSBwYXNz ZWQgdG8gJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDk2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ3NjoKK15JICogdXNlcnNwYWNlIGFzIGVycm9y cyBmcm9tIGNsb3NlKCksIHNvIGZsdXNoKCkgaXMgYSBnb29kIHBsYWNlIHRvIHdyaXRlJAoKRVJS T1I6IHRyYWlsaW5nIHdoaXRlc3BhY2UKIzQ5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDo0Nzc6CiteSSAqIGJhY2sgYW55IGNhY2hlZCBkaXJ0eSBkYXRhLiBIb3dldmVyLCBtYW55IGFw cGxpY2F0aW9ucyBpZ25vcmUgZXJyb3JzICQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzQ5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0Nzc6CiteSSAq IGJhY2sgYW55IGNhY2hlZCBkaXJ0eSBkYXRhLiBIb3dldmVyLCBtYW55IGFwcGxpY2F0aW9ucyBp Z25vcmUgZXJyb3JzICQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM0OTg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDc4OgorICAgICAgICAqIG9uIGNsb3NlKCksIGFu ZCBvbiBub24tTGludXggc3lzdGVtcywgY2xvc2UoKSBtYXkgc3VjY2VlZCBldmVuIGlmIGZsdXNo KCkKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ5ODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0Nzg6CiteSSAqIG9uIGNsb3NlKCksIGFuZCBvbiBub24t TGludXggc3lzdGVtcywgY2xvc2UoKSBtYXkgc3VjY2VlZCBldmVuIGlmIGZsdXNoKCkkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0OTk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6NDc5OgorXkkgKiByZXR1cm5zIGFuIGVycm9yLiBGb3IgdGhlc2UgcmVh c29ucywgZmlsZXN5c3RlbXMgc2hvdWxkIG5vdCBhc3N1bWUkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 NDgwOgorXkkgKiB0aGF0IGVycm9ycyByZXR1cm5lZCBieSBmbHVzaCB3aWxsIGV2ZXIgYmUgbm90 aWNlZCBvciBldmVuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NTAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ4MToKK15JICogZGVsaXZlcmVkLiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUwMjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo0ODI6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNTAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ4MzoK K15JICogTk9URTogVGhlIGZsdXNoKCkgbWV0aG9kIG1heSBiZSBjYWxsZWQgbW9yZSB0aGFuIG9u Y2UgZm9yIGVhY2gkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1 MDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDg0OgorXkkgKiBvcGVuKCkuICBUaGlz IGhhcHBlbnMgaWYgbW9yZSB0aGFuIG9uZSBmaWxlIGRlc2NyaXB0b3IgcmVmZXJzIHRvIGFuJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTA1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjQ4NToKK15JICogb3BlbiBmaWxlIGhhbmRsZSwgZS5nLiBkdWUg dG8gZHVwKCksIGR1cDIoKSBvciBmb3JrKCkgY2FsbHMuICBJdCBpcyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDo0ODY6CiteSSAqIG5vdCBwb3NzaWJsZSB0byBkZXRlcm1pbmUgaWYgYSBmbHVzaCBpcyBm aW5hbCwgc28gZWFjaCBmbHVzaCBzaG91bGQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM1MDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDg3OgorXkkg KiBiZSB0cmVhdGVkIGVxdWFsbHkuICBNdWx0aXBsZSB3cml0ZS1mbHVzaCBzZXF1ZW5jZXMgYXJl IHJlbGF0aXZlbHkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1 MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDg4OgorXkkgKiByYXJlLCBzbyB0aGlz IHNob3VsZG4ndCBiZSBhIHByb2JsZW0uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNTA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ4OToKK15JICok CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MTA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDkwOgorXkkgKiBGaWxlc3lzdGVtcyBzaG91bGRuJ3QgYXNz dW1lIHRoYXQgZmx1c2ggd2lsbCBiZSBjYWxsZWQgYXQgYW55JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjQ5MToKK15JICogcGFydGljdWxhciBwb2ludC4gIEl0IG1heSBiZSBjYWxsZWQgbW9yZSB0aW1l cyB0aGFuIGV4cGVjdGVkLCBvciBub3QkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM1MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDkyOgorXkkgKiBh dCBhbGwuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTEzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ5MzoKK15JICokCgpXQVJOSU5HOiBsaW5lIG92 ZXIgODAgY2hhcmFjdGVycwojNTE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ5NDoK KyAgICAgICAgKiBbY2xvc2VdOiBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMv OTY5OTkxOTc5OS9mdW5jdGlvbnMvY2xvc2UuaHRtbAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNTE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjQ5NDoK K15JICogW2Nsb3NlXTogaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzk2OTk5 MTk3OTkvZnVuY3Rpb25zL2Nsb3NlLmh0bWwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM1MTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDk1OgorXkkg Ki8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MTY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NDk2OgorXklpbnQgKCpmbHVzaCkgKGNvbnN0IGNoYXIg Kiwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICopOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzUxODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo0OTg6Cite SS8qKiBSZWxlYXNlIGFuIG9wZW4gZmlsZSQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBh IGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiM1MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NDk4OgorICAgICAgIC8qKiBSZWxlYXNlIGFuIG9wZW4gZmlsZQoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTE5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjQ5OToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM1MjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTAwOgorXkkgKiBSZWxl YXNlIGlzIGNhbGxlZCB3aGVuIHRoZXJlIGFyZSBubyBtb3JlIHJlZmVyZW5jZXMgdG8gYW4gb3Bl biQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUyMTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1MDE6CiteSSAqIGZpbGU6IGFsbCBmaWxlIGRlc2NyaXB0 b3JzIGFyZSBjbG9zZWQgYW5kIGFsbCBtZW1vcnkgbWFwcGluZ3MkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6NTAyOgorXkkgKiBhcmUgdW5tYXBwZWQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNTIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjUwMzoKK15J ICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MjQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTA0OgorXkkgKiBGb3IgZXZlcnkgb3BlbigpIGNhbGwg dGhlcmUgd2lsbCBiZSBleGFjdGx5IG9uZSByZWxlYXNlKCkgY2FsbCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDo1MDU6CiteSSAqIHdpdGggdGhlIHNhbWUgZmxhZ3MgYW5kIGZpbGUgaGFuZGxlLiAgSXQg aXMgcG9zc2libGUgdG8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM1MjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTA2OgorXkkgKiBoYXZlIGEgZmls ZSBvcGVuZWQgbW9yZSB0aGFuIG9uY2UsIGluIHdoaWNoIGNhc2Ugb25seSB0aGUgbGFzdCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUyNzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo1MDc6CiteSSAqIHJlbGVhc2Ugd2lsbCBtZWFuLCB0aGF0IG5vIG1v cmUgcmVhZHMvd3JpdGVzIHdpbGwgaGFwcGVuIG9uIHRoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUyODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1 MDg6CiteSSAqIGZpbGUuICBUaGUgcmV0dXJuIHZhbHVlIG9mIHJlbGVhc2UgaXMgaWdub3JlZC4k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Mjk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTA5OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM1MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTEw OgorXklpbnQgKCpyZWxlYXNlKSAoY29uc3QgY2hhciAqLCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8g Kik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTMyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjUxMjoKK15JLyoqIFN5bmNocm9uaXplIGZpbGUgY29u dGVudHMkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2Vw YXJhdGUgbGluZQojNTMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjUxMjoKKyAgICAg ICAvKiogU3luY2hyb25pemUgZmlsZSBjb250ZW50cwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNTMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjUxMzoK K15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MzQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTE0OgorXkkgKiBJZiB0aGUgZGF0YXN5bmMgcGFy YW1ldGVyIGlzIG5vbi16ZXJvLCB0aGVuIG9ubHkgdGhlIHVzZXIgZGF0YSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUzNTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDo1MTU6CiteSSAqIHNob3VsZCBiZSBmbHVzaGVkLCBub3QgdGhlIG1ldGEgZGF0YS4k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MzY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTE2OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM1Mzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTE3 OgorXklpbnQgKCpmc3luYykgKGNvbnN0IGNoYXIgKiwgaW50LCBzdHJ1Y3QgZnVzZV9maWxlX2lu Zm8gKik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTM5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjUxOToKK15JLyoqIFNldCBleHRlbmRlZCBhdHRy aWJ1dGVzICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTQw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjUyMDoKK15JaW50ICgqc2V0eGF0dHIpIChj b25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBzaXplX3QsIGludCk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTQyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjUyMjoKK15JLyoqIEdldCBleHRlbmRlZCBhdHRyaWJ1dGVzICov JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTQzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjUyMzoKK15JaW50ICgqZ2V0eGF0dHIpIChjb25zdCBjaGFy ICosIGNvbnN0IGNoYXIgKiwgY2hhciAqLCBzaXplX3QpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1 MjU6CiteSS8qKiBMaXN0IGV4dGVuZGVkIGF0dHJpYnV0ZXMgKi8kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6NTI2OgorXklpbnQgKCpsaXN0eGF0dHIpIChjb25zdCBjaGFyICosIGNoYXIgKiwgc2l6ZV90 KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NDg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTI4OgorXkkvKiogUmVtb3ZlIGV4dGVuZGVkIGF0dHJp YnV0ZXMgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NDk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTI5OgorXklpbnQgKCpyZW1vdmV4YXR0cikg KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM1NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTMxOgor XkkvKiogT3BlbiBkaXJlY3RvcnkkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFk aW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojNTUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjUzMToKKyAgICAgICAvKiogT3BlbiBkaXJlY3RvcnkKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1 MzI6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTUz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjUzMzoKK15JICogVW5sZXNzIHRoZSAnZGVm YXVsdF9wZXJtaXNzaW9ucycgbW91bnQgb3B0aW9uIGlzIGdpdmVuLCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDo1MzQ6CiteSSAqIHRoaXMgbWV0aG9kIHNob3VsZCBjaGVjayBpZiBvcGVuZGlyIGlzIHBl cm1pdHRlZCBmb3IgdGhpcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzU1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1MzU6CiteSSAqIGRpcmVjdG9y eS4gT3B0aW9uYWxseSBvcGVuZGlyIG1heSBhbHNvIHJldHVybiBhbiBhcmJpdHJhcnkkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NTY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6NTM2OgorXkkgKiBmaWxlaGFuZGxlIGluIHRoZSBmdXNlX2ZpbGVfaW5m byBzdHJ1Y3R1cmUsIHdoaWNoIHdpbGwgYmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM1NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTM3OgorXkkg KiBwYXNzZWQgdG8gcmVhZGRpciwgcmVsZWFzZWRpciBhbmQgZnN5bmNkaXIuJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTU4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjUzODoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNTU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjUzOToKK15JaW50ICgq b3BlbmRpcikgKGNvbnN0IGNoYXIgKiwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICopOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU2MTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo1NDE6CiteSS8qKiBSZWFkIGRpcmVjdG9yeSQKCldBUk5JTkc6IEJsb2Nr IGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiM1NjE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTQxOgorICAgICAgIC8qKiBSZWFkIGRpcmVjdG9yeQoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTYyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjU0MjoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM1NjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTQzOgor XkkgKiBUaGUgZmlsZXN5c3RlbSBtYXkgY2hvb3NlIGJldHdlZW4gdHdvIG1vZGVzIG9mIG9wZXJh dGlvbjokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NjQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTQ0OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDo1NDU6CiteSSAqIDEpIFRoZSByZWFkZGlyIGltcGxlbWVudGF0aW9uIGlnbm9yZXMgdGhlIG9m ZnNldCBwYXJhbWV0ZXIsIGFuZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzU2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1NDY6CiteSSAqIHBhc3Nl cyB6ZXJvIHRvIHRoZSBmaWxsZXIgZnVuY3Rpb24ncyBvZmZzZXQuICBUaGUgZmlsbGVyJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTY3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjU0NzoKK15JICogZnVuY3Rpb24gd2lsbCBub3QgcmV0dXJuICcxJyAo dW5sZXNzIGFuIGVycm9yIGhhcHBlbnMpLCBzbyB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM1Njg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTQ4 OgorXkkgKiB3aG9sZSBkaXJlY3RvcnkgaXMgcmVhZCBpbiBhIHNpbmdsZSByZWFkZGlyIG9wZXJh dGlvbi4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Njk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTQ5OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDo1NTA6CiteSSAqIDIpIFRoZSByZWFkZGlyIGltcGxlbWVudGF0aW9uIGtlZXBzIHRyYWNrIG9m IHRoZSBvZmZzZXRzIG9mIHRoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzU3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1NTE6CiteSSAqIGRpcmVj dG9yeSBlbnRyaWVzLiAgSXQgdXNlcyB0aGUgb2Zmc2V0IHBhcmFtZXRlciBhbmQgYWx3YXlzJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTcyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjU1MjoKK15JICogcGFzc2VzIG5vbi16ZXJvIG9mZnNldCB0byB0 aGUgZmlsbGVyIGZ1bmN0aW9uLiAgV2hlbiB0aGUgYnVmZmVyJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjU1MzoKK15JICogaXMgZnVsbCAob3IgYW4gZXJyb3IgaGFwcGVucykgdGhlIGZpbGxlciBmdW5j dGlvbiB3aWxsIHJldHVybiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzU3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1NTQ6CiteSSAqICcxJy4kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NzU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6NTU1OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM1NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTU2Ogor XklpbnQgKCpyZWFkZGlyKSAoY29uc3QgY2hhciAqLCB2b2lkICosIGZ1c2VfZmlsbF9kaXJfdCwg b2ZmX3QsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTc3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU1NzoKK15JXkleSXN0cnVjdCBmdXNlX2ZpbGVf aW5mbyAqLCBlbnVtIGZ1c2VfcmVhZGRpcl9mbGFncyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNTc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU1 OToKK15JLyoqIFJlbGVhc2UgZGlyZWN0b3J5JAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNl IGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzU3OTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDo1NTk6CisgICAgICAgLyoqIFJlbGVhc2UgZGlyZWN0b3J5CgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NTYwOgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM1ODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTYxOgorXklpbnQgKCpy ZWxlYXNlZGlyKSAoY29uc3QgY2hhciAqLCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKik7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTgzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjU2MzoKK15JLyoqIFN5bmNocm9uaXplIGRpcmVjdG9yeSBjb250ZW50 cyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0 ZSBsaW5lCiM1ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTYzOgorICAgICAgIC8q KiBTeW5jaHJvbml6ZSBkaXJlY3RvcnkgY29udGVudHMKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzU4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1NjQ6 CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTg1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU2NToKK15JICogSWYgdGhlIGRhdGFzeW5jIHBh cmFtZXRlciBpcyBub24temVybywgdGhlbiBvbmx5IHRoZSB1c2VyIGRhdGEkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NTY2OgorXkkgKiBzaG91bGQgYmUgZmx1c2hlZCwgbm90IHRoZSBtZXRhIGRhdGEk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1ODc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTY3OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM1ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTY4 OgorXklpbnQgKCpmc3luY2RpcikgKGNvbnN0IGNoYXIgKiwgaW50LCBzdHJ1Y3QgZnVzZV9maWxl X2luZm8gKik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTkw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU3MDoKK15JLyoqJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjU3MToKK15JICogSW5pdGlhbGl6ZSBmaWxlc3lzdGVtJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjU3MjoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM1OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTczOgorXkkgKiBUaGUgcmV0dXJu IHZhbHVlIHdpbGwgcGFzc2VkIGluIHRoZSBgcHJpdmF0ZV9kYXRhYCBmaWVsZCBvZiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU5NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo1NzQ6CiteSSAqIGBzdHJ1Y3QgZnVzZV9jb250ZXh0YCB0byBhbGwgZmls ZSBvcGVyYXRpb25zLCBhbmQgYXMgYSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzU5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1NzU6CiteSSAqIHBh cmFtZXRlciB0byB0aGUgZGVzdHJveSgpIG1ldGhvZC4gSXQgb3ZlcnJpZGVzIHRoZSBpbml0aWFs JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTk2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjU3NjoKK15JICogdmFsdWUgcHJvdmlkZWQgdG8gZnVzZV9t YWluKCkgLyBmdXNlX25ldygpLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzU5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1Nzc6CiteSSAqLyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU5ODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo1Nzg6CiteSXZvaWQgKigqaW5pdCkgKHN0cnVjdCBmdXNlX2Nvbm5f aW5mbyAqY29ubiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1 OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTc5OgorXkleSSAgICAgICBzdHJ1Y3Qg ZnVzZV9jb25maWcgKmNmZyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNjAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU4MToKK15JLyoqJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjAyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjU4MjoKK15JICogQ2xlYW4gdXAgZmlsZXN5c3RlbSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYwMzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDo1ODM6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNjA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU4NDoKK15JICogQ2Fs bGVkIG9uIGZpbGVzeXN0ZW0gZXhpdC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM2MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTg1OgorXkkgKi8k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MDY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTg2OgorXkl2b2lkICgqZGVzdHJveSkgKHZvaWQgKnByaXZh dGVfZGF0YSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjA4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU4ODoKK15JLyoqJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjU4OToKK15JICogQ2hlY2sgZmlsZSBhY2Nlc3MgcGVybWlzc2lvbnMkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MTA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6NTkwOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzYxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1OTE6CiteSSAqIFRo aXMgd2lsbCBiZSBjYWxsZWQgZm9yIHRoZSBhY2Nlc3MoKSBzeXN0ZW0gY2FsbC4gIElmIHRoZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYxMjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo1OTI6CiteSSAqICdkZWZhdWx0X3Blcm1pc3Npb25zJyBtb3Vu dCBvcHRpb24gaXMgZ2l2ZW4sIHRoaXMgbWV0aG9kIGlzIG5vdCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDo1OTM6CiteSSAqIGNhbGxlZC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM2MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NTk0OgorXkkgKiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYxNTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo1OTU6CiteSSAqIFRoaXMgbWV0aG9kIGlzIG5vdCBjYWxsZWQgdW5k ZXIgTGludXgga2VybmVsIHZlcnNpb25zIDIuNC54JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNjE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU5NjoK K15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjE3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjU5NzoKK15JaW50ICgqYWNjZXNzKSAoY29uc3Qg Y2hhciAqLCBpbnQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzYxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo1OTk6CiteSS8qKiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYyMDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDo2MDA6CiteSSAqIENyZWF0ZSBhbmQgb3BlbiBhIGZpbGUkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NjAxOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzYyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2MDI6CiteSSAqIElmIHRo ZSBmaWxlIGRvZXMgbm90IGV4aXN0LCBmaXJzdCBjcmVhdGUgaXQgd2l0aCB0aGUgc3BlY2lmaWVk JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjIzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjYwMzoKK15JICogbW9kZSwgYW5kIHRoZW4gb3BlbiBpdC4k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MjQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjA0OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzYyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2MDU6 CiteSSAqIElmIHRoaXMgbWV0aG9kIGlzIG5vdCBpbXBsZW1lbnRlZCBvciB1bmRlciBMaW51eCBr ZXJuZWwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MjY6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjA2OgorXkkgKiB2ZXJzaW9ucyBlYXJsaWVyIHRo YW4gMi42LjE1LCB0aGUgbWtub2QoKSBhbmQgb3BlbigpIG1ldGhvZHMkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6NjA3OgorXkkgKiB3aWxsIGJlIGNhbGxlZCBpbnN0ZWFkLiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYyODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDo2MDg6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzYyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2MDk6CiteSWludCAoKmNyZWF0 ZSkgKGNvbnN0IGNoYXIgKiwgbW9kZV90LCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKik7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjMxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjYxMToKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYxMjoKK15J ICogUGVyZm9ybSBQT1NJWCBmaWxlIGxvY2tpbmcgb3BlcmF0aW9uJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjYxMzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM2MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjE0OgorXkkgKiBUaGUgY21kIGFy Z3VtZW50IHdpbGwgYmUgZWl0aGVyIEZfR0VUTEssIEZfU0VUTEsgb3IgRl9TRVRMS1cuJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjM1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjYxNToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM2MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjE2OgorXkkg KiBGb3IgdGhlIG1lYW5pbmcgb2YgZmllbGRzIGluICdzdHJ1Y3QgZmxvY2snIHNlZSB0aGUgbWFu IHBhZ2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2Mzc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjE3OgorXkkgKiBmb3IgZmNudGwoMikuICBUaGUg bF93aGVuY2UgZmllbGQgd2lsbCBhbHdheXMgYmUgc2V0IHRvJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjYxODoKK15JICogU0VFS19TRVQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNjM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYxOToKK15JICokCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NDA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6NjIwOgorXkkgKiBGb3IgY2hlY2tpbmcgbG9jayBvd25lcnNoaXAs IHRoZSAnZnVzZV9maWxlX2luZm8tPm93bmVyJyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzY0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2MjE6Cite SSAqIGFyZ3VtZW50IG11c3QgYmUgdXNlZC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM2NDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjIyOgorXkkg KiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY0MzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2MjM6CiteSSAqIEZvciBGX0dFVExLIG9wZXJhdGlvbiwg dGhlIGxpYnJhcnkgd2lsbCBmaXJzdCBjaGVjayBjdXJyZW50bHkkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6NjI0OgorXkkgKiBoZWxkIGxvY2tzLCBhbmQgaWYgYSBjb25mbGljdGluZyBsb2NrIGlzIGZv dW5kIGl0IHdpbGwgcmV0dXJuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNjQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYyNToKK15JICogaW5mb3Jt YXRpb24gd2l0aG91dCBjYWxsaW5nIHRoaXMgbWV0aG9kLl5JIFRoaXMgZW5zdXJlcywgdGhhdCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY0NjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo2MjY6CiteSSAqIGZvciBsb2NhbCBsb2NrcyB0aGUgbF9waWQg ZmllbGQgaXMgY29ycmVjdGx5IGZpbGxlZCBpbi5eSVRoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2 Mjc6CiteSSAqIHJlc3VsdHMgbWF5IG5vdCBiZSBhY2N1cmF0ZSBpbiBjYXNlIG9mIHJhY2UgY29u ZGl0aW9ucyBhbmQgaW4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM2NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjI4OgorXkkgKiB0aGUgcHJlc2Vu Y2Ugb2YgaGFyZCBsaW5rcywgYnV0IGl0J3MgdW5saWtlbHkgdGhhdCBhbiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY0OTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDo2Mjk6CiteSSAqIGFwcGxpY2F0aW9uIHdvdWxkIHJlbHkgb24gYWNjdXJhdGUgR0VU TEsgcmVzdWx0cyBpbiB0aGVzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzY1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2MzA6CiteSSAqIGNhc2Vz LiAgSWYgYSBjb25mbGljdGluZyBsb2NrIGlzIG5vdCBmb3VuZCwgdGhpcyBtZXRob2Qgd2lsbCBi ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1MTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2MzE6CiteSSAqIGNhbGxlZCwgYW5kIHRoZSBmaWxlc3lz dGVtIG1heSBmaWxsIG91dCBsX3BpZCBieSBhIG1lYW5pbmdmdWwkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6NjMyOgorXkkgKiB2YWx1ZSwgb3IgaXQgbWF5IGxlYXZlIHRoaXMgZmllbGQgemVyby4kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NTM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6NjMzOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzY1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2MzQ6Cite SSAqIEZvciBGX1NFVExLIGFuZCBGX1NFVExLVyB0aGUgbF9waWQgZmllbGQgd2lsbCBiZSBzZXQg dG8gdGhlIHBpZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2MzU6CiteSSAqIG9mIHRoZSBwcm9jZXNz IHBlcmZvcm1pbmcgdGhlIGxvY2tpbmcgb3BlcmF0aW9uLiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2 MzY6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjU3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjYzNzoKK15JICogTm90ZTogaWYgdGhpcyBt ZXRob2QgaXMgbm90IGltcGxlbWVudGVkLCB0aGUga2VybmVsIHdpbGwgc3RpbGwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NTg6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6NjM4OgorXkkgKiBhbGxvdyBmaWxlIGxvY2tpbmcgdG8gd29yayBsb2NhbGx5 LiAgSGVuY2UgaXQgaXMgb25seSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzY1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2Mzk6CiteSSAqIGludGVy ZXN0aW5nIGZvciBuZXR3b3JrIGZpbGVzeXN0ZW1zIGFuZCBzaW1pbGFyLiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY2MDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDo2NDA6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzY2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2NDE6CiteSWludCAoKmxv Y2spIChjb25zdCBjaGFyICosIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqLCBpbnQgY21kLCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY2MjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo2NDI6CiteSV5JICAgICBzdHJ1Y3QgZmxvY2sgKik7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjY0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjY0NDoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNjY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY0NToKK15JICog Q2hhbmdlIHRoZSBhY2Nlc3MgYW5kIG1vZGlmaWNhdGlvbiB0aW1lcyBvZiBhIGZpbGUgd2l0aCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY2NjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo2NDY6CiteSSAqIG5hbm9zZWNvbmQgcmVzb2x1dGlvbiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY2NzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo2NDc6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY0ODoKK15J ICogVGhpcyBzdXBlcnNlZGVzIHRoZSBvbGQgdXRpbWUoKSBpbnRlcmZhY2UuICBOZXcgYXBwbGlj YXRpb25zJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjY5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY0OToKK15JICogc2hvdWxkIHVzZSB0aGlzLiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY3MDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo2NTA6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNjcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY1MToK K15JICogYGZpYCB3aWxsIGFsd2F5cyBiZSBOVUxMIGlmIHRoZSBmaWxlIGlzIG5vdCBjdXJyZW5s dHkgb3BlbiwgYnV0JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NjcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY1MjoKK15JICogbWF5IGFsc28gYmUg TlVMTCBpZiB0aGUgZmlsZSBpcyBvcGVuLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzY3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2NTM6CiteSSAq JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjc0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjY1NDoKK15JICogU2VlIHRoZSB1dGltZW5zYXQoMikgbWFu IHBhZ2UgZm9yIGRldGFpbHMuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNjc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY1NToKK15JICovJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjc2OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjY1NjoKK15JIGludCAoKnV0aW1lbnMpIChjb25zdCBjaGFyICosIGNv bnN0IHN0cnVjdCB0aW1lc3BlYyB0dlsyXSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM2Nzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjU3OgorXkle SV5JIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzY3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2NTk6 CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4MDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2NjA6CiteSSAqIE1hcCBibG9jayBpbmRleCB3 aXRoaW4gZmlsZSB0byBibG9jayBpbmRleCB3aXRoaW4gZGV2aWNlJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjY2MToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM2ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjYyOgorXkkgKiBOb3RlOiBUaGlz IG1ha2VzIHNlbnNlIG9ubHkgZm9yIGJsb2NrIGRldmljZSBiYWNrZWQgZmlsZXN5c3RlbXMkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2ODM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6NjYzOgorXkkgKiBtb3VudGVkIHdpdGggdGhlICdibGtkZXYnIG9w dGlvbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4NDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2NjQ6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDo2NjU6CiteSWludCAoKmJtYXApIChjb25zdCBjaGFyICosIHNpemVfdCBibG9ja3NpemUsIHVp bnQ2NF90ICppZHgpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzY4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2Njc6CiteSS8qKiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDo2Njg6CiteSSAqIElvY3RsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY2OToKK15J ICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2OTA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjcwOgorXkkgKiBmbGFncyB3aWxsIGhhdmUgRlVTRV9J T0NUTF9DT01QQVQgc2V0IGZvciAzMmJpdCBpb2N0bHMgaW4kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 NjcxOgorXkkgKiA2NGJpdCBlbnZpcm9ubWVudC4gIFRoZSBzaXplIGFuZCBkaXJlY3Rpb24gb2Yg ZGF0YSBpcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5Mjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2NzI6CiteSSAqIGRldGVybWluZWQgYnkgX0lP Q18qKCkgZGVjb2Rpbmcgb2YgY21kLiAgRm9yIF9JT0NfTk9ORSwkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl Lmg6NjczOgorXkkgKiBkYXRhIHdpbGwgYmUgTlVMTCwgZm9yIF9JT0NfV1JJVEUgZGF0YSBpcyBv dXQgYXJlYSwgZm9yJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj Njk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY3NDoKK15JICogX0lPQ19SRUFEIGlu IGFyZWEgYW5kIGlmIGJvdGggYXJlIHNldCBpbi9vdXQgYXJlYS4gIEluIGFsbCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5NTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDo2NzU6CiteSSAqIG5vbi1OVUxMIGNhc2VzLCB0aGUgYXJlYSBpcyBvZiBfSU9D X1NJWkUoY21kKSBieXRlcy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM2OTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Njc2OgorXkkgKiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5NzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo2Nzc6CiteSSAqIElmIGZsYWdzIGhhcyBGVVNFX0lPQ1RMX0RJUiB0aGVu IHRoZSBmdXNlX2ZpbGVfaW5mbyByZWZlcnMgdG8gYSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzY5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2Nzg6 CiteSSAqIGRpcmVjdG9yeSBmaWxlIGhhbmRsZS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM2OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Njc5Ogor XkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcwMDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2ODA6CiteSSAqIE5vdGUgOiB0aGUgdW5zaWduZWQg bG9uZyByZXF1ZXN0IHN1Ym1pdHRlZCBieSB0aGUgYXBwbGljYXRpb24kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6NjgxOgorXkkgKiBpcyB0cnVuY2F0ZWQgdG8gMzIgYml0cy4kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6NjgyOgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM3MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NjgzOgorXklpbnQgKCppb2N0 bCkgKGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50IGNtZCwgdm9pZCAqYXJnLCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcwNDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDo2ODQ6CiteSV5JICAgICAgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICosIHVuc2ln bmVkIGludCBmbGFncywgdm9pZCAqZGF0YSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNzA2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY4NjoKK15J LyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzA3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY4NzoKK15JICogUG9sbCBmb3IgSU8gcmVhZGluZXNz IGV2ZW50cyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcwODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2ODg6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjY4OToKK15JICogTm90ZTogSWYgcGggaXMgbm9uLU5VTEwsIHRoZSBjbGllbnQgc2hvdWxk IG5vdGlmeSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcxMDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2OTA6CiteSSAqIHdoZW4gSU8gcmVhZGluZXNz IGV2ZW50cyBvY2N1ciBieSBjYWxsaW5nJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNzExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY5MToKK15JICog ZnVzZV9ub3RpZnlfcG9sbCgpIHdpdGggdGhlIHNwZWNpZmllZCBwaC4kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6NjkyOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzcxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2OTM6CiteSSAqIFJlZ2FyZGxl c3Mgb2YgdGhlIG51bWJlciBvZiB0aW1lcyBwb2xsIHdpdGggYSBub24tTlVMTCBwaCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcxNDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo2OTQ6CiteSSAqIGlzIHJlY2VpdmVkLCBzaW5nbGUgbm90aWZpY2F0aW9u IGlzIGVub3VnaCB0byBjbGVhciBhbGwuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNzE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjY5NToKK15JICog Tm90aWZ5aW5nIG1vcmUgdGltZXMgaW5jdXJzIG92ZXJoZWFkIGJ1dCBkb2Vzbid0IGhhcm0kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6Njk2OgorXkkgKiBjb3JyZWN0bmVzcy4kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6Njk3OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzcxODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo2OTg6CiteSSAqIFRoZSBjYWxs ZWUgaXMgcmVzcG9uc2libGUgZm9yIGRlc3Ryb3lpbmcgcGggd2l0aCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDo2OTk6CiteSSAqIGZ1c2VfcG9sbGhhbmRsZV9kZXN0cm95KCkgd2hlbiBubyBsb25nZXIg aW4gdXNlLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcyMDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3MDA6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDo3MDE6CiteSWludCAoKnBvbGwpIChjb25zdCBjaGFyICosIHN0cnVjdCBmdXNlX2ZpbGVf aW5mbyAqLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcyMjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3MDI6CiteSV5JICAgICBzdHJ1Y3QgZnVzZV9w b2xsaGFuZGxlICpwaCwgdW5zaWduZWQgKnJldmVudHNwKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 NzA0OgorXkkvKiogV3JpdGUgY29udGVudHMgb2YgYnVmZmVyIHRvIGFuIG9wZW4gZmlsZSQKCldB Uk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5l CiM3MjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzA0OgorICAgICAgIC8qKiBXcml0 ZSBjb250ZW50cyBvZiBidWZmZXIgdG8gYW4gb3BlbiBmaWxlCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 NzA1OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcy NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3MDY6CiteSSAqIFNpbWlsYXIgdG8gdGhl IHdyaXRlKCkgbWV0aG9kLCBidXQgZGF0YSBpcyBzdXBwbGllZCBpbiBhJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjcwNzoKK15JICogZ2VuZXJpYyBidWZmZXIuICBVc2UgZnVzZV9idWZfY29weSgpIHRv IHRyYW5zZmVyIGRhdGEgdG8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM3Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzA4OgorXkkgKiB0aGUgZGVz dGluYXRpb24uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzI5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjcwOToKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6NzEwOgorXkkgKiBVbmxlc3MgRlVTRV9DQVBfSEFORExFX0tJTExQUklWIGlzIGRpc2Fi bGVkLCB0aGlzIG1ldGhvZCBpcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzczMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3MTE6CiteSSAqIGV4cGVj dGVkIHRvIHJlc2V0IHRoZSBzZXR1aWQgYW5kIHNldGdpZCBiaXRzLiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzczMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDo3MTI6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzczMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3MTM6CiteSWludCAoKndyaXRl X2J1ZikgKGNvbnN0IGNoYXIgKiwgc3RydWN0IGZ1c2VfYnVmdmVjICpidWYsIG9mZl90IG9mZiwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MzQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzE0OgorXkleSV5JICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8g Kik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzM2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjcxNjoKK15JLyoqIFN0b3JlIGRhdGEgZnJvbSBhbiBv cGVuIGZpbGUgaW4gYSBidWZmZXIkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFk aW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojNzM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjcxNjoKKyAgICAgICAvKiogU3RvcmUgZGF0YSBmcm9tIGFuIG9wZW4gZmlsZSBpbiBhIGJ1 ZmZlcgoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzM3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjcxNzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 NzE4OgorXkkgKiBTaW1pbGFyIHRvIHRoZSByZWFkKCkgbWV0aG9kLCBidXQgZGF0YSBpcyBzdG9y ZWQgYW5kJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzM5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjcxOToKK15JICogcmV0dXJuZWQgaW4gYSBnZW5l cmljIGJ1ZmZlci4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3 NDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzIwOgorXkkgKiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0MTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDo3MjE6CiteSSAqIE5vIGFjdHVhbCBjb3B5aW5nIG9mIGRhdGEgaGFzIHRvIHRha2Ug cGxhY2UsIHRoZSBzb3VyY2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM3NDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzIyOgorXkkgKiBmaWxlIGRl c2NyaXB0b3IgbWF5IHNpbXBseSBiZSBzdG9yZWQgaW4gdGhlIGJ1ZmZlciBmb3IkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NDM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlLmg6NzIzOgorXkkgKiBsYXRlciBkYXRhIHRyYW5zZmVyLiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0NDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDo3MjQ6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNzQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjcyNToKK15JICogVGhlIGJ1 ZmZlciBtdXN0IGJlIGFsbG9jYXRlZCBkeW5hbWljYWxseSBhbmQgc3RvcmVkIGF0IHRoZSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0NjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2UuaDo3MjY6CiteSSAqIGxvY2F0aW9uIHBvaW50ZWQgdG8gYnkgYnVmcC4g IElmIHRoZSBidWZmZXIgY29udGFpbnMgbWVtb3J5JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjcyNzoK K15JICogcmVnaW9ucywgdGhleSB0b28gbXVzdCBiZSBhbGxvY2F0ZWQgdXNpbmcgbWFsbG9jKCku ICBUaGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NDg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzI4OgorXkkgKiBhbGxvY2F0ZWQgbWVtb3J5IHdp bGwgYmUgZnJlZWQgYnkgdGhlIGNhbGxlci4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM3NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzI5OgorXkkg Ki8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NTA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzMwOgorXklpbnQgKCpyZWFkX2J1ZikgKGNvbnN0IGNo YXIgKiwgc3RydWN0IGZ1c2VfYnVmdmVjICoqYnVmcCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM3NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzMx OgorXkleSV5JIHNpemVfdCBzaXplLCBvZmZfdCBvZmYsIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAq KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NTI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzMyOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 NzMzOgorXkkgKiBQZXJmb3JtIEJTRCBmaWxlIGxvY2tpbmcgb3BlcmF0aW9uJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzU0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjczNDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM3NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzM1OgorXkkgKiBUaGUg b3AgYXJndW1lbnQgd2lsbCBiZSBlaXRoZXIgTE9DS19TSCwgTE9DS19FWCBvciBMT0NLX1VOJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzU2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjczNjoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM3NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzM3Ogor XkkgKiBOb25ibG9ja2luZyByZXF1ZXN0cyB3aWxsIGJlIGluZGljYXRlZCBieSBPUmluZyBMT0NL X05CIHRvJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzU4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjczODoKK15JICogdGhlIGFib3ZlIG9wZXJhdGlv bnMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NTk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzM5OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3 NDA6CiteSSAqIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB0aGUgZmxvY2soMikgbWFudWFsIHBh Z2UuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzYxOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc0MToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 NzQyOgorXkkgKiBBZGRpdGlvbmFsbHkgZmktPm93bmVyIHdpbGwgYmUgc2V0IHRvIGEgdmFsdWUg dW5pcXVlIHRvJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzYz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc0MzoKK15JICogdGhpcyBvcGVuIGZpbGUu ICBUaGlzIHNhbWUgdmFsdWUgd2lsbCBiZSBzdXBwbGllZCB0byQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDo3NDQ6CiteSSAqIC0+cmVsZWFzZSgpIHdoZW4gdGhlIGZpbGUgaXMgcmVsZWFzZWQuJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzY1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjc0NToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM3NjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzQ2OgorXkkg KiBOb3RlOiBpZiB0aGlzIG1ldGhvZCBpcyBub3QgaW1wbGVtZW50ZWQsIHRoZSBrZXJuZWwgd2ls bCBzdGlsbCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc2Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3NDc6CiteSSAqIGFsbG93IGZpbGUgbG9ja2lu ZyB0byB3b3JrIGxvY2FsbHkuICBIZW5jZSBpdCBpcyBvbmx5JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o Ojc0ODoKK15JICogaW50ZXJlc3RpbmcgZm9yIG5ldHdvcmsgZmlsZXN5c3RlbXMgYW5kIHNpbWls YXIuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzY5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc0OToKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o Ojc1MDoKK15JaW50ICgqZmxvY2spIChjb25zdCBjaGFyICosIHN0cnVjdCBmdXNlX2ZpbGVfaW5m byAqLCBpbnQgb3ApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izc3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3NTI6CiteSS8qKiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc3MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDo3NTM6CiteSSAqIEFsbG9jYXRlcyBzcGFjZSBmb3IgYW4gb3BlbiBmaWxlJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzc0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjc1NDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM3NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzU1Ogor XkkgKiBUaGlzIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCByZXF1aXJlZCBzcGFjZSBpcyBhbGxvY2F0 ZWQgZm9yIHNwZWNpZmllZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzc3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3NTY6CiteSSAqIGZpbGUuICBJ ZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgc3VjY2VzcyB0aGVuIGFueSBzdWJzZXF1ZW50IHdyaXRl JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzc3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjc1NzoKK15JICogcmVxdWVzdCB0byBzcGVjaWZpZWQgcmFu Z2UgaXMgZ3VhcmFudGVlZCBub3QgdG8gZmFpbCBiZWNhdXNlIG9mIGxhY2skCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3Nzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NzU4OgorXkkgKiBvZiBzcGFjZSBvbiB0aGUgZmlsZSBzeXN0ZW0gbWVkaWEuJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzc5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjc1OToKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc2MDoK K15JaW50ICgqZmFsbG9jYXRlKSAoY29uc3QgY2hhciAqLCBpbnQsIG9mZl90LCBvZmZfdCwkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3ODE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6NzYxOgorXkleSV5JICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKik7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzgzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZS5oOjc2MzoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNzg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc2 NDoKK15JICogQ29weSBhIHJhbmdlIG9mIGRhdGEgZnJvbSBvbmUgZmlsZSB0byBhbm90aGVyJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzg1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjc2NToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM3ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzY2Ogor XkkgKiBQZXJmb3JtcyBhbiBvcHRpbWl6ZWQgY29weSBiZXR3ZWVuIHR3byBmaWxlIGRlc2NyaXB0 b3JzIHdpdGhvdXQgdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNzg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc2NzoKK15JICogYWRkaXRpb25h bCBjb3N0IG9mIHRyYW5zZmVycmluZyBkYXRhIHRocm91Z2ggdGhlIEZVU0Uga2VybmVsIG1vZHVs ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc4ODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3Njg6CiteSSAqIHRvIHVzZXIgc3BhY2UgKGdsaWJjKSBh bmQgdGhlbiBiYWNrIGludG8gdGhlIEZVU0UgZmlsZXN5c3RlbSBhZ2Fpbi4kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3ODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6NzY5OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzc5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3NzA6CiteSSAqIEluIGNh c2UgdGhpcyBtZXRob2QgaXMgbm90IGltcGxlbWVudGVkLCBnbGliYyBmYWxscyBiYWNrIHRvIHJl YWRpbmckCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3OTE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzcxOgorXkkgKiBkYXRhIGZyb20gdGhlIHNvdXJj ZSBhbmQgd3JpdGluZyB0byB0aGUgZGVzdGluYXRpb24uIEVmZmVjdGl2ZWx5JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzkyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjc3MjoKK15JICogZG9pbmcgYW4gaW5lZmZpY2llbnQgY29weSBvZiB0aGUgZGF0 YS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3OTM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzczOgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 Nzc0OgorXklzc2l6ZV90ICgqY29weV9maWxlX3JhbmdlKSAoY29uc3QgY2hhciAqcGF0aF9pbiwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3OTU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Nzc1OgorXkleSV5JXkkgICAgc3RydWN0IGZ1c2VfZmlsZV9p bmZvICpmaV9pbiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3 OTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Nzc2OgorXkleSV5JXkkgICAgb2ZmX3Qg b2Zmc2V0X2luLCBjb25zdCBjaGFyICpwYXRoX291dCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM3OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Nzc3 OgorXkleSV5JXkkgICAgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaV9vdXQsJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzk4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjc3ODoKK15JXkleSV5JICAgIG9mZl90IG9mZnNldF9vdXQsIHNpemVfdCBzaXpl LCBpbnQgZmxhZ3MpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzgwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3ODA6CiteSS8qKiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgwMTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDo3ODE6CiteSSAqIEZpbmQgbmV4dCBkYXRhIG9yIGhvbGUgYWZ0ZXIgdGhlIHNw ZWNpZmllZCBvZmZzZXQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM4MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6NzgyOgorXkkgKi8kCgpXQVJOSU5H OiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojODAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZS5oOjc4MzoKKyAgICAgICBvZmZfdCAoKmxzZWVrKSAoY29uc3QgY2hhciAqLCBvZmZfdCBvZmYs IGludCB3aGVuY2UsIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqKTsKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDo3ODM6CiteSW9mZl90ICgqbHNlZWspIChjb25zdCBjaGFyICosIG9mZl90IG9mZiwgaW50IHdo ZW5jZSwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICopOyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRz IHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiM4MDY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6Nzg2OgorLyoqIEV4dHJhIGNvbnRleHQgdGhhdCBtYXkgYmUgbmVlZGVk IGJ5IHNvbWUgZmlsZXN5c3RlbXMKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzgxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3OTI6CiteSS8qKiBQb2lu dGVyIHRvIHRoZSBmdXNlIG9iamVjdCAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzgxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3OTM6CiteSXN0 cnVjdCBmdXNlICpmdXNlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzgxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo3OTU6CiteSS8qKiBVc2VyIElE IG9mIHRoZSBjYWxsaW5nIHByb2Nlc3MgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM4MTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Nzk2OgorXkl1 aWRfdCB1aWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODE4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjc5ODoKK15JLyoqIEdyb3VwIElEIG9mIHRo ZSBjYWxsaW5nIHByb2Nlc3MgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM4MTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6Nzk5OgorXklnaWRfdCBn aWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODIxOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjgwMToKK15JLyoqIFByb2Nlc3MgSUQgb2YgdGhlIGNh bGxpbmcgdGhyZWFkICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojODIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjgwMjoKK15JcGlkX3QgcGlkOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgyNDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDo4MDQ6CiteSS8qKiBQcml2YXRlIGZpbGVzeXN0ZW0gZGF0YSAq LyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgyNTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo4MDU6CiteSXZvaWQgKnByaXZhdGVfZGF0YTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4Mjc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6ODA3OgorXkkvKiogVW1hc2sgb2YgdGhlIGNhbGxpbmcgcHJvY2VzcyAq LyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgyODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo4MDg6CiteSW1vZGVfdCB1bWFzazskCgpXQVJOSU5HOiBC bG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiM4ODY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6ODY2OgorLyoKKyAgaW50IGZ1c2VfbWFpbihpbnQgYXJnYywgY2hh ciAqYXJndltdLCBjb25zdCBzdHJ1Y3QgZnVzZV9vcGVyYXRpb25zICpvcCwKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg4OTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2UuaDo4Njk6CisjZGVmaW5lIGZ1c2VfbWFpbihhcmdjLCBhcmd2LCBvcCwgcHJpdmF0ZV9k YXRhKV5JXkleSV5JXCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izg5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo4NzA6CiteSWZ1c2VfbWFpbl9yZWFs KGFyZ2MsIGFyZ3YsIG9wLCBzaXplb2YoKihvcCkpLCBwcml2YXRlX2RhdGEpJAoKV0FSTklORzog QmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzg5Mjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo4NzI6CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6ODczOgorICogTW9yZSBkZXRhaWxlZCBBUEleSV5JXkleSV5JICAgICAgICokCgpXQVJO SU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUK Izg5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDo4NzQ6CisgKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKV0FSTklO RzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzkzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDo5MTc6CitzdHJ1Y3QgZnVzZSAqZnVzZV9uZXdfMzAoc3RydWN0IGZ1c2VfYXJncyAqYXJn cywgY29uc3Qgc3RydWN0IGZ1c2Vfb3BlcmF0aW9ucyAqb3AsCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 OTE4OgorXkleSV5JIHNpemVfdCBvcF9zaXplLCB2b2lkICpwcml2YXRlX2RhdGEpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk0MjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDo5MjI6CiteSV5JICAgICAgc2l6ZV90IG9wX3NpemUsIHZvaWQgKnByaXZh dGVfZGF0YSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTY3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjk0NzoKKyAqIE5PVEU6IFRoaXMgZnVuY3Rp b24gZG9lcyBub3QgdW5tb3VudCB0aGUgZmlsZXN5c3RlbS5eSSBJZiB0aGlzIGlzJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA5NTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2UuaDoxMDc1OgorXkleSSAgIHNpemVfdCBvcF9zaXplLCB2b2lkICpwcml2YXRl X2RhdGEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNDY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTEyNjoKK15JXkkgICAgc3RydWN0IGZ1c2Vf ZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTE0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTI4OgorXkleSSAgIGNvbnN0 IGNoYXIgKm5ld3BhdGgsIHVuc2lnbmVkIGludCBmbGFncyk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDoxMTMyOgorXkleSSAgICBjb25zdCBjaGFyICpwYXRoKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjExMzQ6CitpbnQgZnVzZV9mc19yZWxlYXNlKHN0cnVjdCBmdXNlX2ZzICpmcyxeSSBjb25zdCBj aGFyICpwYXRoLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEx NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTEzNToKK15JXkkgICAgc3RydWN0IGZ1 c2VfZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTE1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTM3OgorXkleSSBzdHJ1 Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMTU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExMzk6CiteSV5J IG9mZl90IG9mZiwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDoxMTQxOgorXkleSSAgICAgc3RydWN0IGZ1c2VfYnVmdmVjICoqYnVmcCwgc2l6ZV90IHNp emUsIG9mZl90IG9mZiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExNDI6CiteSV5JICAgICBzdHJ1 Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMTY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExNDQ6CiteSV5J ICBzaXplX3Qgc2l6ZSwgb2ZmX3Qgb2ZmLCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTY2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZS5oOjExNDY6CiteSV5JICAgICAgc3RydWN0IGZ1c2VfYnVmdmVjICpi dWYsIG9mZl90IG9mZiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExNDc6CiteSV5JICAgICAgc3Ry dWN0IGZ1c2VfZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTE2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTQ5OgorXkle SSAgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTE3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTUx OgorXkleSSAgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Uu aDoxMTU0OgorXkleSSAgICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTc2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZS5oOjExNTY6CiteSV5JICAgIGZ1c2VfZmlsbF9kaXJfdCBmaWxsZXIsIG9mZl90IG9m ZiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTc3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExNTc6CiteSV5JICAgIHN0cnVjdCBmdXNlX2ZpbGVf aW5mbyAqZmksIGVudW0gZnVzZV9yZWFkZGlyX2ZsYWdzIGZsYWdzKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZS5oOjExNTk6CiteSV5JICAgICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTgxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZS5oOjExNjE6CiteSV5JICAgICAgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAq ZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTE2MzoKK15JXkkgICBzdHJ1Y3QgZnVzZV9maWxl X2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MTg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExNjU6CiteSV5JIHN0cnVjdCBmdXNl X2ZpbGVfaW5mbyAqZmksIGludCBjbWQsIHN0cnVjdCBmbG9jayAqbG9jayk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE4NzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDoxMTY3OgorXkleSSAgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSwgaW50IG9w KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTg5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExNjk6CiteSV5JICBzdHJ1Y3QgZnVzZV9maWxlX2lu Zm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTkx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExNzE6CiteSV5JICBzdHJ1Y3QgZnVzZV9m aWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExNzM6CiteSV5JICAgICBzdHJ1 Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMTk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExNzU6CiteSV5J ICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyB0dlsyXSwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpm aSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE5ODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTc4OgorXkleSSAgICAgc2l6ZV90IGxlbik7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIwMDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2UuaDoxMTgwOgorXkleSSAgZGV2X3QgcmRldik7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIwMzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2UuaDoxMTgzOgorXkleSSAgICAgY29uc3QgY2hhciAqdmFsdWUsIHNpemVfdCBzaXpl LCBpbnQgZmxhZ3MpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEyMDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTE4NToKK15JXkkgICAgIGNoYXIg KnZhbHVlLCBzaXplX3Qgc2l6ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTIwNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTg3OgorXkleSSAg ICAgIHNpemVfdCBzaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMjA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExODk6CiteSV5JXkljb25z dCBjaGFyICpuYW1lKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMjExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5oOjExOTE6CiteSV5JIHVpbnQ2NF90 ICppZHgpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMTM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTE5MzoKK15JXkkgIHZvaWQgKmFyZywgc3Ry dWN0IGZ1c2VfZmlsZV9pbmZvICpmaSwgdW5zaWduZWQgaW50IGZsYWdzLCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlLmg6MTE5NDoKK15JXkkgIHZvaWQgKmRhdGEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6 MTE5NjoKK15JXkkgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSwgc3RydWN0IGZ1c2VfcG9sbGhh bmRsZSAqcGgsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIx NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMTk3OgorXkleSSB1bnNpZ25lZCAqcmV2 ZW50c3ApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMTk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTE5OToKK15JXkkgb2ZmX3Qgb2Zmc2V0LCBv ZmZfdCBsZW5ndGgsIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlLmg6MTIwMToKK15JXkleSV5Jc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaV9pbiwgb2ZmX3Qg b2ZmX2luLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlLmg6MTIwMjoKK15JXkleSV5JY29uc3QgY2hhciAq cGF0aF9vdXQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIy MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMjAzOgorXkleSV5JXklzdHJ1Y3QgZnVz ZV9maWxlX2luZm8gKmZpX291dCwgb2ZmX3Qgb2ZmX291dCwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZS5o OjEyMDQ6CiteSV5JXkleSXNpemVfdCBsZW4sIGludCBmbGFncyk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2UuaDoxMjA2OgorXkleSSAgICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjI4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZS5oOjEyMDg6CiteSV5Jc3RydWN0IGZ1c2VfY29uZmlnICpjZmcpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNDc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlLmg6MTIyNzoKK15JXkleSSAgICB2b2lkICpwcml2YXRlX2RhdGEpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNjQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlLmg6MTI0NDoKK15JXkleSV5JXkleSSBzdHJ1Y3QgZnVzZV9mcyAqZnNb XSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI3NjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMjU2OgorXklmdXNlX21vZHVsZV9mYWN0b3J5X3Qg ZnVzZV9tb2R1bGVfICMjIG5hbWVfICMjIF9mYWN0b3J5ID0gZmFjdG9yeV8kCgpXQVJOSU5HOiBh cmNoaXRlY3R1cmUgc3BlY2lmaWMgZGVmaW5lcyBzaG91bGQgYmUgYXZvaWRlZAojMTI5MTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2UuaDoxMjcxOgorI2lmZGVmIF9fY3BsdXNwbHVzCgpXQVJO SU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQoj MTMwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6MToKKy8qICBGVVNFOiBG aWxlc3lzdGVtIGluIFVzZXJzcGFjZQoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlICogb24g c3Vic2VxdWVudCBsaW5lcwojMTMwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9u Lmg6MjoKKy8qICBGVVNFOiBGaWxlc3lzdGVtIGluIFVzZXJzcGFjZQorICBDb3B5cmlnaHQgKEMp IDIwMDEtMjAwNyAgTWlrbG9zIFN6ZXJlZGkgPG1pa2xvc0BzemVyZWRpLmh1PgoKRVJST1I6IGxp bmUgb3ZlciA5MCBjaGFyYWN0ZXJzCiMxMzEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9j b21tb24uaDoxMToKKyNlcnJvciAiTmV2ZXIgaW5jbHVkZSA8ZnVzZV9jb21tb24uaD4gZGlyZWN0 bHk7IHVzZSA8ZnVzZS5oPiBvciA8ZnVzZV9sb3dsZXZlbC5oPiBpbnN0ZWFkLiIKCldBUk5JTkc6 IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkCiMxMzMyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDozMToKKyNpZmRlZiBfX2NwbHVzcGx1 cwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM0NjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDU6CiteSS8qKiBPcGVuIGZsYWdzLl5JIEF2 YWlsYWJsZSBpbiBvcGVuKCkgYW5kIHJlbGVhc2UoKSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjQ2OgorXklpbnQgZmxhZ3M7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTM0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDg6 CiteSS8qKiBJbiBjYXNlIG9mIGEgd3JpdGUgb3BlcmF0aW9uIGluZGljYXRlcyBpZiB0aGlzIHdh cyBjYXVzZWQkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEg c2VwYXJhdGUgbGluZQojMTM0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6 NDg6CisgICAgICAgLyoqIEluIGNhc2Ugb2YgYSB3cml0ZSBvcGVyYXRpb24gaW5kaWNhdGVzIGlm IHRoaXMgd2FzIGNhdXNlZAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTM1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDk6CiteSSAgICBi eSBhIGRlbGF5ZWQgd3JpdGUgZnJvbSB0aGUgcGFnZSBjYWNoZS4gSWYgc28sIHRoZW4gdGhlJAoK V0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlICogb24gc3Vic2VxdWVudCBsaW5lcwojMTM1MDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDk6CisgICAgICAgLyoqIEluIGNh c2Ugb2YgYSB3cml0ZSBvcGVyYXRpb24gaW5kaWNhdGVzIGlmIHRoaXMgd2FzIGNhdXNlZAorICAg ICAgICAgICBieSBhIGRlbGF5ZWQgd3JpdGUgZnJvbSB0aGUgcGFnZSBjYWNoZS4gSWYgc28sIHRo ZW4gdGhlCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzUxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo1MDoKK15JICAgIGNvbnRleHQncyBw aWQsIHVpZCwgYW5kIGdpZCBmaWVsZHMgd2lsbCBub3QgYmUgdmFsaWQsIGFuZCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNTI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2NvbW1vbi5oOjUxOgorXkkgICAgdGhlICpmaCogdmFsdWUgbWF5IG5vdCBtYXRj aCB0aGUgKmZoKiB2YWx1ZSB0aGF0IHdvdWxkJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTM1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6 NTI6CiteSSAgICBoYXZlIGJlZW4gc2VudCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGluZGl2aWR1 YWwgd3JpdGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzU0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo1MzoKK15JICAgIHJlcXVlc3Rz IGlmIHdyaXRlIGNhY2hpbmcgaGFkIGJlZW4gZGlzYWJsZWQuICovJAoKV0FSTklORzogQmxvY2sg Y29tbWVudHMgdXNlIGEgdHJhaWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiMxMzU0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo1MzoKKyAgICAgICAgICAgcmVxdWVzdHMg aWYgd3JpdGUgY2FjaGluZyBoYWQgYmVlbiBkaXNhYmxlZC4gKi8KCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2NvbW1vbi5oOjU0OgorXkl1bnNpZ25lZCBpbnQgd3JpdGVwYWdlIDogMTskCgpFUlJPUjogc3Bh Y2VzIHByb2hpYml0ZWQgYXJvdW5kIHRoYXQgJzonIChjdHg6V3hXKQojMTM1NTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NTQ6CisgICAgICAgdW5zaWduZWQgaW50IHdyaXRl cGFnZSA6IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9jb21tb24uaDo1NjoKK15JLyoqIENhbiBiZSBmaWxsZWQgaW4gYnkgb3BlbiwgdG8gdXNl IGRpcmVjdCBJL08gb24gdGhpcyBmaWxlLiAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjU3OgorXkl1bnNpZ25lZCBpbnQgZGlyZWN0X2lvIDogMTskCgpFUlJPUjogc3BhY2VzIHByb2hp Yml0ZWQgYXJvdW5kIHRoYXQgJzonIChjdHg6V3hXKQojMTM1ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfY29tbW9uLmg6NTc6CisgICAgICAgdW5zaWduZWQgaW50IGRpcmVjdF9pbyA6IDE7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMzYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21t b24uaDo1OToKK15JLyoqIENhbiBiZSBmaWxsZWQgaW4gYnkgb3Blbi4gSXQgc2lnbmFscyB0aGUg a2VybmVsIHRoYXQgYW55JAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAv KiBvbiBhIHNlcGFyYXRlIGxpbmUKIzEzNjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjU5OgorICAgICAgIC8qKiBDYW4gYmUgZmlsbGVkIGluIGJ5IG9wZW4uIEl0IHNpZ25h bHMgdGhlIGtlcm5lbCB0aGF0IGFueQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTM2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjA6Cite SSAgICBjdXJyZW50bHkgY2FjaGVkIGZpbGUgZGF0YSAoaWUuLCBkYXRhIHRoYXQgdGhlIGZpbGVz eXN0ZW0kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVz CiMxMzYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2MDoKKyAgICAgICAv KiogQ2FuIGJlIGZpbGxlZCBpbiBieSBvcGVuLiBJdCBzaWduYWxzIHRoZSBrZXJuZWwgdGhhdCBh bnkKKyAgICAgICAgICAgY3VycmVudGx5IGNhY2hlZCBmaWxlIGRhdGEgKGllLiwgZGF0YSB0aGF0 IHRoZSBmaWxlc3lzdGVtCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMzYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2MToKK15JICAgIHBy b3ZpZGVkIHRoZSBsYXN0IHRpbWUgdGhlIGZpbGUgd2FzIG9wZW4pIG5lZWQgbm90IGJlJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM2MzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjI6CiteSSAgICBpbnZhbGlkYXRlZC4gSGFzIG5vIGVm ZmVjdCB3aGVuIHNldCBpbiBvdGhlciBjb250ZXh0cyAoaW4kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9j b21tb24uaDo2MzoKK15JICAgIHBhcnRpY3VsYXIgaXQgZG9lcyBub3RoaW5nIHdoZW4gc2V0IGJ5 IG9wZW5kaXIoKSkuICovJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgdHJhaWxpbmcg Ki8gb24gYSBzZXBhcmF0ZSBsaW5lCiMxMzY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9j b21tb24uaDo2MzoKKyAgICAgICAgICAgcGFydGljdWxhciBpdCBkb2VzIG5vdGhpbmcgd2hlbiBz ZXQgYnkgb3BlbmRpcigpKS4gKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEzNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY0OgorXkl1 bnNpZ25lZCBpbnQga2VlcF9jYWNoZSA6IDE7JAoKRVJST1I6IHNwYWNlcyBwcm9oaWJpdGVkIGFy b3VuZCB0aGF0ICc6JyAoY3R4Old4VykKIzEzNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2NvbW1vbi5oOjY0OgorICAgICAgIHVuc2lnbmVkIGludCBrZWVwX2NhY2hlIDogMTsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMzY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2 NjoKK15JLyoqIEluZGljYXRlcyBhIGZsdXNoIG9wZXJhdGlvbi4gIFNldCBpbiBmbHVzaCBvcGVy YXRpb24sIGFsc28kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9u IGEgc2VwYXJhdGUgbGluZQojMTM2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9u Lmg6NjY6CisgICAgICAgLyoqIEluZGljYXRlcyBhIGZsdXNoIG9wZXJhdGlvbi4gIFNldCBpbiBm bHVzaCBvcGVyYXRpb24sIGFsc28KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEzNjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY3OgorXkkg ICAgbWF5YmUgc2V0IGluIGhpZ2hsZXZlbCBsb2NrIG9wZXJhdGlvbiBhbmQgbG93bGV2ZWwgcmVs ZWFzZSQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMK IzEzNjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY3OgorICAgICAgIC8q KiBJbmRpY2F0ZXMgYSBmbHVzaCBvcGVyYXRpb24uICBTZXQgaW4gZmx1c2ggb3BlcmF0aW9uLCBh bHNvCisgICAgICAgICAgIG1heWJlIHNldCBpbiBoaWdobGV2ZWwgbG9jayBvcGVyYXRpb24gYW5k IGxvd2xldmVsIHJlbGVhc2UKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEzNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY4OgorXkkgICAg b3BlcmF0aW9uLiAqLyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIHRyYWlsaW5nICov IG9uIGEgc2VwYXJhdGUgbGluZQojMTM2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29t bW9uLmg6Njg6CisgICAgICAgICAgIG9wZXJhdGlvbi4gKi8KCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjY5OgorXkl1bnNpZ25lZCBpbnQgZmx1c2ggOiAxOyQKCkVSUk9SOiBzcGFjZXMgcHJv aGliaXRlZCBhcm91bmQgdGhhdCAnOicgKGN0eDpXeFcpCiMxMzcwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9jb21tb24uaDo2OToKKyAgICAgICB1bnNpZ25lZCBpbnQgZmx1c2ggOiAxOwog ICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMzcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3 MToKK15JLyoqIENhbiBiZSBmaWxsZWQgaW4gYnkgb3BlbiwgdG8gaW5kaWNhdGUgdGhhdCB0aGUg ZmlsZSBpcyBub3QkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9u IGEgc2VwYXJhdGUgbGluZQojMTM3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9u Lmg6NzE6CisgICAgICAgLyoqIENhbiBiZSBmaWxsZWQgaW4gYnkgb3BlbiwgdG8gaW5kaWNhdGUg dGhhdCB0aGUgZmlsZSBpcyBub3QKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEzNzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjcyOgorXkkg ICAgc2Vla2FibGUuICovJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlICogb24gc3Vic2Vx dWVudCBsaW5lcwojMTM3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzI6 CisgICAgICAgLyoqIENhbiBiZSBmaWxsZWQgaW4gYnkgb3BlbiwgdG8gaW5kaWNhdGUgdGhhdCB0 aGUgZmlsZSBpcyBub3QKKyAgICAgICAgICAgc2Vla2FibGUuICovCgpXQVJOSU5HOiBCbG9jayBj b21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzEzNzM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjcyOgorICAgICAgICAgICBzZWVrYWJsZS4g Ki8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNzQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjczOgorXkl1bnNpZ25lZCBpbnQgbm9uc2Vl a2FibGUgOiAxOyQKCkVSUk9SOiBzcGFjZXMgcHJvaGliaXRlZCBhcm91bmQgdGhhdCAnOicgKGN0 eDpXeFcpCiMxMzc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3MzoKKyAg ICAgICB1bnNpZ25lZCBpbnQgbm9uc2Vla2FibGUgOiAxOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx Mzc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3NToKK15JLyogSW5kaWNh dGVzIHRoYXQgZmxvY2sgbG9ja3MgZm9yIHRoaXMgZmlsZSBzaG91bGQgYmUkCgpXQVJOSU5HOiBC bG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMTM3Njog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzU6CisgICAgICAgLyogSW5kaWNh dGVzIHRoYXQgZmxvY2sgbG9ja3MgZm9yIHRoaXMgZmlsZSBzaG91bGQgYmUKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2NvbW1vbi5oOjc2OgorXkkgICByZWxlYXNlZC4gIElmIHNldCwgbG9ja19vd25lciBz aGFsbCBjb250YWluIGEgdmFsaWQgdmFsdWUuJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNl ICogb24gc3Vic2VxdWVudCBsaW5lcwojMTM3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf Y29tbW9uLmg6NzY6CisgICAgICAgLyogSW5kaWNhdGVzIHRoYXQgZmxvY2sgbG9ja3MgZm9yIHRo aXMgZmlsZSBzaG91bGQgYmUKKyAgICAgICAgICByZWxlYXNlZC4gIElmIHNldCwgbG9ja19vd25l ciBzaGFsbCBjb250YWluIGEgdmFsaWQgdmFsdWUuCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMzc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24u aDo3NzoKK15JICAgTWF5IG9ubHkgYmUgc2V0IGluIC0+cmVsZWFzZSgpLiAqLyQKCldBUk5JTkc6 IEJsb2NrIGNvbW1lbnRzIHVzZSBhIHRyYWlsaW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQojMTM3 ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Nzc6CisgICAgICAgICAgTWF5 IG9ubHkgYmUgc2V0IGluIC0+cmVsZWFzZSgpLiAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTM3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9u Lmg6Nzg6CiteSXVuc2lnbmVkIGludCBmbG9ja19yZWxlYXNlIDogMTskCgpFUlJPUjogc3BhY2Vz IHByb2hpYml0ZWQgYXJvdW5kIHRoYXQgJzonIChjdHg6V3hXKQojMTM3OTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Nzg6CisgICAgICAgdW5zaWduZWQgaW50IGZsb2NrX3Jl bGVhc2UgOiAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzODE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2NvbW1vbi5oOjgwOgorXkkvKiogQ2FuIGJlIGZpbGxlZCBpbiBieSBvcGVuZGly LiBJdCBzaWduYWxzIHRoZSBrZXJuZWwgdG8kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2Ug YSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMTM4MTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfY29tbW9uLmg6ODA6CisgICAgICAgLyoqIENhbiBiZSBmaWxsZWQgaW4gYnkgb3Bl bmRpci4gSXQgc2lnbmFscyB0aGUga2VybmVsIHRvCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMzgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24u aDo4MToKK15JICAgIGVuYWJsZSBjYWNoaW5nIG9mIGVudHJpZXMgcmV0dXJuZWQgYnkgcmVhZGRp cigpLiAgSGFzIG5vJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlICogb24gc3Vic2VxdWVu dCBsaW5lcwojMTM4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6ODE6Cisg ICAgICAgLyoqIENhbiBiZSBmaWxsZWQgaW4gYnkgb3BlbmRpci4gSXQgc2lnbmFscyB0aGUga2Vy bmVsIHRvCisgICAgICAgICAgIGVuYWJsZSBjYWNoaW5nIG9mIGVudHJpZXMgcmV0dXJuZWQgYnkg cmVhZGRpcigpLiAgSGFzIG5vCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMzgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo4MjoKK15JICAg IGVmZmVjdCB3aGVuIHNldCBpbiBvdGhlciBjb250ZXh0cyAoaW4gcGFydGljdWxhciBpdCBkb2Vz JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM4NDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6ODM6CiteSSAgICBub3RoaW5nIHdoZW4gc2V0 IGJ5IG9wZW4oKSkuICovJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgdHJhaWxpbmcg Ki8gb24gYSBzZXBhcmF0ZSBsaW5lCiMxMzg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9j b21tb24uaDo4MzoKKyAgICAgICAgICAgbm90aGluZyB3aGVuIHNldCBieSBvcGVuKCkpLiAqLwoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM4NTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6ODQ6CiteSXVuc2lnbmVkIGludCBjYWNoZV9yZWFk ZGlyIDogMTskCgpFUlJPUjogc3BhY2VzIHByb2hpYml0ZWQgYXJvdW5kIHRoYXQgJzonIChjdHg6 V3hXKQojMTM4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6ODQ6CisgICAg ICAgdW5zaWduZWQgaW50IGNhY2hlX3JlYWRkaXIgOiAxOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEzODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjg2OgorXkkvKiogUGFk ZGluZy4gIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMzg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21t b24uaDo4NzoKK15JdW5zaWduZWQgaW50IHBhZGRpbmcgOiAyNTskCgpFUlJPUjogc3BhY2VzIHBy b2hpYml0ZWQgYXJvdW5kIHRoYXQgJzonIChjdHg6V3hXKQojMTM4ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfY29tbW9uLmg6ODc6CisgICAgICAgdW5zaWduZWQgaW50IHBhZGRpbmcgOiAy NTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMzg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21t b24uaDo4ODoKK15JdW5zaWduZWQgaW50IHBhZGRpbmcyIDogMzI7JAoKRVJST1I6IHNwYWNlcyBw cm9oaWJpdGVkIGFyb3VuZCB0aGF0ICc6JyAoY3R4Old4VykKIzEzODk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjg4OgorICAgICAgIHVuc2lnbmVkIGludCBwYWRkaW5nMiA6 IDMyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9j b21tb24uaDo5MDoKK15JLyoqIEZpbGUgaGFuZGxlIGlkLiAgTWF5IGJlIGZpbGxlZCBpbiBieSBm aWxlc3lzdGVtIGluIGNyZWF0ZSwkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFk aW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMTM5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfY29tbW9uLmg6OTA6CisgICAgICAgLyoqIEZpbGUgaGFuZGxlIGlkLiAgTWF5IGJlIGZpbGxl ZCBpbiBieSBmaWxlc3lzdGVtIGluIGNyZWF0ZSwKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzOTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjkxOgorXkkgKiBvcGVuLCBhbmQgb3BlbmRpcigpLiAgQXZhaWxhYmxlIGluIG1vc3Qgb3RoZXIg ZmlsZSBvcGVyYXRpb25zIG9uIHRoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEzOTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjkyOgor XkkgKiBzYW1lIGZpbGUgaGFuZGxlLiAqLyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBh IHRyYWlsaW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQojMTM5MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfY29tbW9uLmg6OTI6CisgICAgICAgICogc2FtZSBmaWxlIGhhbmRsZS4gKi8KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzOTQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjkzOgorXkl1aW50NjRfdCBmaDskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzk2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo5NToKK15JLyoqIExvY2sgb3duZXIgaWQuICBBdmFpbGFibGUgaW4g bG9ja2luZyBvcGVyYXRpb25zIGFuZCBmbHVzaCAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEzOTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1v bi5oOjk2OgorXkl1aW50NjRfdCBsb2NrX293bmVyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEzOTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1v bi5oOjk4OgorXkkvKiogUmVxdWVzdGVkIHBvbGwgZXZlbnRzLiAgQXZhaWxhYmxlIGluIC0+cG9s bC4gIE9ubHkgc2V0IG9uIGtlcm5lbHMkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBs ZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMTM5OTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfY29tbW9uLmg6OTg6CisgICAgICAgLyoqIFJlcXVlc3RlZCBwb2xsIGV2ZW50cy4gIEF2 YWlsYWJsZSBpbiAtPnBvbGwuICBPbmx5IHNldCBvbiBrZXJuZWxzCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9jb21tb24uaDo5OToKK15JICAgIHdoaWNoIHN1cHBvcnQgaXQuICBJZiB1bnN1cHBvcnRlZCwg dGhpcyBmaWVsZCBpcyBzZXQgdG8gemVyby4gKi8kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1 c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiMxNDAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9jb21tb24uaDo5OToKKyAgICAgICAvKiogUmVxdWVzdGVkIHBvbGwgZXZlbnRzLiAgQXZhaWxh YmxlIGluIC0+cG9sbC4gIE9ubHkgc2V0IG9uIGtlcm5lbHMKKyAgICAgICAgICAgd2hpY2ggc3Vw cG9ydCBpdC4gIElmIHVuc3VwcG9ydGVkLCB0aGlzIGZpZWxkIGlzIHNldCB0byB6ZXJvLiAqLwoK V0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgdHJhaWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBs aW5lCiMxNDAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo5OToKKyAgICAg ICAgICAgd2hpY2ggc3VwcG9ydCBpdC4gIElmIHVuc3VwcG9ydGVkLCB0aGlzIGZpZWxkIGlzIHNl dCB0byB6ZXJvLiAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTQwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6MTAwOgorXkl1aW50MzJf dCBwb2xsX2V2ZW50czskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNDA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDoxMDg6CiteSS8qKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MTA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjEwOToKK15JICogd2hldGhlciB0byB1c2Ugc2Vw YXJhdGUgZGV2aWNlIGZkcyBmb3IgZWFjaCB0aHJlYWQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNDExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21t b24uaDoxMTA6CiteSSAqIChtYXkgaW5jcmVhc2UgcGVyZm9ybWFuY2UpJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQxMjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfY29tbW9uLmg6MTExOgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNDEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDox MTI6CiteSWludCBjbG9uZV9mZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxNDE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDoxMTQ6Cite SS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MTY6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjExNToKK15JICogVGhlIG1heGltdW0g bnVtYmVyIG9mIGF2YWlsYWJsZSB3b3JrZXIgdGhyZWFkcyBiZWZvcmUgdGhleSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MTc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2NvbW1vbi5oOjExNjoKK15JICogc3RhcnQgdG8gZ2V0IGRlbGV0ZWQgd2hlbiB0 aGV5IGJlY29tZSBpZGxlLiBJZiBub3QkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxNDE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDoxMTc6 CiteSSAqIHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgaXMgMTAuJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf Y29tbW9uLmg6MTE4OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE0MjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjExOToKK15J ICogQWRqdXN0aW5nIHRoaXMgaGFzIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9uczsgYSB2ZXJ5IHNt YWxsIG51bWJlciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0 MjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjEyMDoKK15JICogb2YgdGhy ZWFkcyBpbiB0aGUgcG9vbCB3aWxsIGNhdXNlIGEgbG90IG9mIHRocmVhZCBjcmVhdGlvbiBhbmQk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDIyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDoxMjE6CiteSSAqIGRlbGV0aW9uIG92ZXJoZWFk IGFuZCBwZXJmb3JtYW5jZSBtYXkgc3VmZmVyLiBXaGVuIHNldCB0byAwLCBhIG5ldyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MjM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjEyMjoKK15JICogdGhyZWFkIHdpbGwgYmUgY3JlYXRlZCB0 byBzZXJ2aWNlIGV2ZXJ5IG9wZXJhdGlvbi4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNDI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDox MjM6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0 MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjEyNDoKK15JdW5zaWduZWQg aW50IG1heF9pZGxlX3RocmVhZHM7JAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVh ZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzE0Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2NvbW1vbi5oOjEyNzoKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf Y29tbW9uLmg6MTQxOgorI2RlZmluZSBGVVNFX0NBUF9BU1lOQ19SRUFEXkleSSgxIDw8IDApJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ1MDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6MTQ5OgorI2RlZmluZSBGVVNFX0NBUF9QT1NJWF9M T0NLU15JXkkoMSA8PCAxKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE0NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjE1ODoKKyNkZWZp bmUgRlVTRV9DQVBfQVRPTUlDX09fVFJVTkNeSV5JKDEgPDwgMykkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9jb21tb24uaDoxNjU6CisjZGVmaW5lIEZVU0VfQ0FQX0VYUE9SVF9TVVBQT1JUXkleSSgxIDw8 IDQpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ3NDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6MTczOgorI2RlZmluZSBGVVNFX0NBUF9E T05UX01BU0teSV5JKDEgPDwgNikkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxNDgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDoxODE6Cisj ZGVmaW5lIEZVU0VfQ0FQX1NQTElDRV9XUklURV5JXkkoMSA8PCA3KSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0OTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2NvbW1vbi5oOjE4OToKKyNkZWZpbmUgRlVTRV9DQVBfU1BMSUNFX01PVkVeSV5JKDEgPDwg OCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDk5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDoxOTg6CisjZGVmaW5lIEZVU0VfQ0FQX1NQ TElDRV9SRUFEXkleSSgxIDw8IDkpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTUxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6MjExOgor I2RlZmluZSBGVVNFX0NBUF9GTE9DS19MT0NLU15JXkkoMSA8PCAxMCkkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9jb21tb24uaDoyMTg6CisjZGVmaW5lIEZVU0VfQ0FQX0lPQ1RMX0RJUl5JXkkoMSA8PCAx MSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTQxOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDoyNDA6CisjZGVmaW5lIEZVU0VfQ0FQX0FV VE9fSU5WQUxfREFUQV5JKDEgPDwgMTIpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTU0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6MjQ4 OgorI2RlZmluZSBGVVNFX0NBUF9SRUFERElSUExVU15JXkkoMSA8PCAxMykkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTc3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDoyNzY6CisjZGVmaW5lIEZVU0VfQ0FQX1JFQURESVJQTFVTX0FVVE9e SSgxIDw8IDE0KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1 ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjI4NzoKKyNkZWZpbmUgRlVT RV9DQVBfQVNZTkNfRElPXkleSSgxIDw8IDE1KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE1OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjI5NjoKKyNkZWZpbmUgRlVTRV9DQVBfV1JJVEVCQUNLX0NBQ0hFXkkoMSA8PCAxNikkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjEwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9jb21tb24uaDozMDk6CisjZGVmaW5lIEZVU0VfQ0FQX05PX09QRU5fU1VQ UE9SVF5JKDEgPDwgMTcpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTY3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6MzcxOgorI2RlZmlu ZSBGVVNFX0lPQ1RMX0NPTVBBVF5JKDEgPDwgMCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxNjczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24u aDozNzI6CisjZGVmaW5lIEZVU0VfSU9DVExfVU5SRVNUUklDVEVEXkkoMSA8PCAxKSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2NzQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjM3MzoKKyNkZWZpbmUgRlVTRV9JT0NUTF9SRVRSWV5JKDEg PDwgMikkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjc1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDozNzQ6CisjZGVmaW5lIEZVU0VfSU9D VExfRElSXkleSSgxIDw8IDQpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTY3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Mzc2OgorI2Rl ZmluZSBGVVNFX0lPQ1RMX01BWF9JT1ZeSTI1NiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE2ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjM4NjoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTY4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Mzg3OgorXkkgKiBNYWpv ciB2ZXJzaW9uIG9mIHRoZSBwcm90b2NvbCAocmVhZC1vbmx5KSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2ODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2NvbW1vbi5oOjM4ODoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTY5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Mzg5Ogor Xkl1bnNpZ25lZCBwcm90b19tYWpvcjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxNjkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDozOTE6 CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2OTM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjM5MjoKK15JICogTWlub3IgdmVy c2lvbiBvZiB0aGUgcHJvdG9jb2wgKHJlYWQtb25seSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNjk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21t b24uaDozOTM6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE2OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjM5NDoKK15JdW5z aWduZWQgcHJvdG9fbWlub3I7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTY5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Mzk2OgorXkkv KiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjk4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDozOTc6CiteSSAqIE1heGltdW0gc2l6ZSBv ZiB0aGUgd3JpdGUgYnVmZmVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTY5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Mzk4OgorXkkg Ki8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzAwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDozOTk6CiteSXVuc2lnbmVkIG1heF93cml0 ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzAyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0MDE6CiteSS8qKiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2NvbW1vbi5oOjQwMjoKK15JICogTWF4aW11bSBzaXplIG9mIHJlYWQgcmVxdWVzdHMu IEEgdmFsdWUgb2YgemVybyBpbmRpY2F0ZXMgbm8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxNzA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24u aDo0MDM6CiteSSAqIGxpbWl0LiBIb3dldmVyLCBldmVuIGlmIHRoZSBmaWxlc3lzdGVtIGRvZXMg bm90IHNwZWNpZnkgYSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE3MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQwNDoKK15JICogbGlt aXQsIHRoZSBtYXhpbXVtIHNpemUgb2YgcmVhZCByZXF1ZXN0cyB3aWxsIHN0aWxsIGJlJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcwNjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDA1OgorXkkgKiBsaW1pdGVkIGJ5IHRoZSBrZXJuZWwu JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcwNzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDA2OgorXkkgKiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2NvbW1vbi5oOjQwNzoKK15JICogTk9URTogRm9yIHRoZSB0aW1lIGJlaW5nLCB0aGUgbWF4 aW11bSBzaXplIG9mIHJlYWQgcmVxdWVzdHMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNzA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0 MDg6CiteSSAqIG11c3QgYmUgc2V0IGJvdGggaGVyZSAqYW5kKiBwYXNzZWQgdG8gZnVzZV9zZXNz aW9uX25ldygpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcx MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDA5OgorXkkgKiB1c2luZyB0 aGUgYGAtbyBtYXhfcmVhZD08bj5gYCBtb3VudCBvcHRpb24uIEF0IHNvbWUgcG9pbnQkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzExOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0MTA6CiteSSAqIGluIHRoZSBmdXR1cmUsIHNwZWNpZnlp bmcgdGhlIG1vdW50IG9wdGlvbiB3aWxsIG5vIGxvbmdlciQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjQxMToKK15JICogYmUgbmVjZXNzYXJ5LiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1v bi5oOjQxMjoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTcxNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDEzOgorXkl1bnNp Z25lZCBtYXhfcmVhZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNzE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0MTU6CiteSS8qKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MTc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQxNjoKK15JICogTWF4aW11bSByZWFkYWhlYWQk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzE4OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0MTc6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2NvbW1vbi5oOjQxODoKK15JdW5zaWduZWQgbWF4X3JlYWRhaGVhZDskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzIxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo0MjA6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE3MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjQyMToKK15JICogQ2FwYWJpbGl0eSBmbGFncyB0aGF0IHRoZSBrZXJuZWwgc3VwcG9ydHMgKHJl YWQtb25seSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzIz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0MjI6CiteSSAqLyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MjQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQyMzoKK15JdW5zaWduZWQgY2FwYWJsZTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzI2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9jb21tb24uaDo0MjU6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE3Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1v bi5oOjQyNjoKK15JICogQ2FwYWJpbGl0eSBmbGFncyB0aGF0IHRoZSBmaWxlc3lzdGVtIHdhbnRz IHRvIGVuYWJsZS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx NzI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0Mjc6CiteSSAqJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcyOTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDI4OgorXkkgKiBsaWJmdXNlIGF0dGVtcHRzIHRvIGlu aXRpYWxpemUgdGhpcyBmaWVsZCB3aXRoJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTczMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDI5 OgorXkkgKiByZWFzb25hYmxlIGRlZmF1bHQgdmFsdWVzIGJlZm9yZSBjYWxsaW5nIHRoZSBpbml0 KCkgaGFuZGxlci4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx NzMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0MzA6CiteSSAqLyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MzI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQzMToKK15JdW5zaWduZWQgd2FudDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzM0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9jb21tb24uaDo0MzM6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1v bi5oOjQzNDoKK15JICogTWF4aW11bSBudW1iZXIgb2YgcGVuZGluZyAiYmFja2dyb3VuZCIgcmVx dWVzdHMuIEEkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzM2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0MzU6CiteSSAqIGJhY2tncm91 bmQgcmVxdWVzdCBpcyBhbnkgdHlwZSBvZiByZXF1ZXN0IGZvciB3aGljaCB0aGUkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzM3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9jb21tb24uaDo0MzY6CiteSSAqIHRvdGFsIG51bWJlciBpcyBub3QgbGltaXRl ZCBieSBvdGhlciBtZWFucy4gQXMgb2Yga2VybmVsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTczODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9u Lmg6NDM3OgorXkkgKiA0LjgsIG9ubHkgdHdvIHR5cGVzIG9mIHJlcXVlc3RzIGZhbGwgaW50byB0 aGlzIGNhdGVnb3J5OiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE3Mzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQzODoKK15JICokCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzQwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0Mzk6CiteSSAqICAgMS4gUmVhZC1haGVhZCByZXF1 ZXN0cyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NDE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ0MDoKK15JICogICAyLiBBc3luY2hy b25vdXMgZGlyZWN0IEkvTyByZXF1ZXN0cyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE3NDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ0 MToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzQz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0NDI6CiteSSAqIFJlYWQtYWhl YWQgcmVxdWVzdHMgYXJlIGdlbmVyYXRlZCAoaWYgbWF4X3JlYWRhaGVhZCBpcyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NDQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2NvbW1vbi5oOjQ0MzoKK15JICogbm9uLXplcm8pIGJ5IHRoZSBrZXJuZWwgdG8g cHJlZW1wdGl2ZWx5IGZpbGwgaXRzIGNhY2hlcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE3NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjQ0NDoKK15JICogd2hlbiBpdCBhbnRpY2lwYXRlcyB0aGF0IHVzZXJzcGFjZSB3aWxsIHNvb24g cmVhZCBtb3JlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc0 NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDQ1OgorXkkgKiBkYXRhLiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NDc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ0NjoKK15JICokCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9jb21tb24uaDo0NDc6CiteSSAqIEFzeW5jaHJvbm91cyBkaXJlY3QgSS9PIHJlcXVlc3RzIGFy ZSBnZW5lcmF0ZWQgaWYkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNzQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0NDg6CiteSSAqIEZV U0VfQ0FQX0FTWU5DX0RJTyBpcyBlbmFibGVkIGFuZCB1c2Vyc3BhY2Ugc3VibWl0cyBhIGxhcmdl JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc1MDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDQ5OgorXkkgKiBkaXJlY3QgSS9PIHJlcXVl c3QuIEluIHRoaXMgY2FzZSB0aGUga2VybmVsIHdpbGwgaW50ZXJuYWxseSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2NvbW1vbi5oOjQ1MDoKK15JICogc3BsaXQgaXQgdXAgaW50byBtdWx0aXBsZSBzbWFs bGVyIHJlcXVlc3RzIGFuZCBzdWJtaXQgdGhlbSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE3NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjQ1MToKK15JICogdG8gdGhlIGZpbGVzeXN0ZW0gY29uY3VycmVudGx5LiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2NvbW1vbi5oOjQ1MjoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNzU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0 NTM6CiteSSAqIE5vdGUgdGhhdCB0aGUgZm9sbG93aW5nIHJlcXVlc3RzIGFyZSAqbm90KiBiYWNr Z3JvdW5kJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc1NTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDU0OgorXkkgKiByZXF1ZXN0czog d3JpdGViYWNrIHJlcXVlc3RzIChsaW1pdGVkIGJ5IHRoZSBrZXJuZWwncyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2NvbW1vbi5oOjQ1NToKK15JICogZmx1c2hlciBhbGdvcml0aG0pLCByZWd1bGFyIChp LmUuLCBzeW5jaHJvbm91cyBhbmQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxNzU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0NTY6Cite SSAqIGJ1ZmZlcmVkKSB1c2Vyc3BhY2UgcmVhZC93cml0ZSByZXF1ZXN0cyAobGltaXRlZCB0byBv bmUgcGVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc1ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDU3OgorXkkgKiB0aHJlYWQpLCBh c3luY2hyb25vdXMgcmVhZCByZXF1ZXN0cyAoTGludXgncyBpb19zdWJtaXQoMikkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzU5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9jb21tb24uaDo0NTg6CiteSSAqIGNhbGwgYWN0dWFsbHkgYmxvY2tzLCBzbyB0 aGVzZSBhcmUgYWxzbyBsaW1pdGVkIHRvIG9uZSBwZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNzYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21t b24uaDo0NTk6CiteSSAqIHRocmVhZCkuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTc2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDYw OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzYy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0NjE6CiteSXVuc2lnbmVkIG1h eF9iYWNrZ3JvdW5kOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE3NjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ2MzoKK15JLyoqJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc2NTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDY0OgorXkkgKiBLZXJuZWwgY29uZ2VzdGlvbiB0 aHJlc2hvbGQgcGFyYW1ldGVyLiBJZiB0aGUgbnVtYmVyIG9mIHBlbmRpbmckCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzY2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo0NjU6CiteSSAqIGJhY2tncm91bmQgcmVxdWVzdHMgZXhjZWVkcyB0 aGlzIG51bWJlciwgdGhlIEZVU0Uga2VybmVsIG1vZHVsZSB3aWxsJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfY29tbW9uLmg6NDY2OgorXkkgKiBtYXJrIHRoZSBmaWxlc3lzdGVtIGFzICJjb25nZXN0ZWQi LiBUaGlzIGluc3RydWN0cyB0aGUga2VybmVsIHRvJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTc2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9u Lmg6NDY3OgorXkkgKiBleHBlY3QgdGhhdCBxdWV1ZWQgcmVxdWVzdHMgd2lsbCB0YWtlIHNvbWUg dGltZSB0byBjb21wbGV0ZSwgYW5kIHRvJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTc2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDY4 OgorXkkgKiBhZGp1c3QgaXRzIGFsZ29yaXRobXMgYWNjb3JkaW5nbHkgKGUuZy4gYnkgcHV0dGlu ZyBhIHdhaXRpbmcgdGhyZWFkJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTc3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDY5OgorXkkg KiB0byBzbGVlcCBpbnN0ZWFkIG9mIHVzaW5nIGEgYnVzeS1sb29wKS4kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9jb21tb24uaDo0NzA6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE3NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ3 MToKK15JdW5zaWduZWQgY29uZ2VzdGlvbl90aHJlc2hvbGQ7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf Y29tbW9uLmg6NDczOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxNzc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0NzQ6Cite SSAqIFdoZW4gRlVTRV9DQVBfV1JJVEVCQUNLX0NBQ0hFIGlzIGVuYWJsZWQsIHRoZSBrZXJuZWwg aXMgcmVzcG9uc2libGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNzc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0NzU6CiteSSAqIGZv ciB1cGRhdGluZyBtdGltZSBhbmQgY3RpbWUgd2hlbiB3cml0ZSByZXF1ZXN0cyBhcmUgcmVjZWl2 ZWQuIFRoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3Nzc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ3NjoKK15JICogdXBkYXRlZCB2 YWx1ZXMgYXJlIHBhc3NlZCB0byB0aGUgZmlsZXN5c3RlbSB3aXRoIHNldGF0dHIoKSByZXF1ZXN0 cy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzc4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0Nzc6CiteSSAqIEhvd2V2ZXIsIGlmIHRo ZSBmaWxlc3lzdGVtIGRvZXMgbm90IHN1cHBvcnQgdGhlIGZ1bGwgcmVzb2x1dGlvbiBvZiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3Nzk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ3ODoKK15JICogdGhlIGtlcm5lbCB0aW1lc3RhbXBz IChuYW5vc2Vjb25kcyksIHRoZSBtdGltZSBhbmQgY3RpbWUgdmFsdWVzIHVzZWQkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzgwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9jb21tb24uaDo0Nzk6CiteSSAqIGJ5IGtlcm5lbCBhbmQgZmlsZXN5c3RlbSB3 aWxsIGRpZmZlciAoYW5kIHJlc3VsdCBpbiBhbiBhcHBhcmVudCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3ODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2NvbW1vbi5oOjQ4MDoKK15JICogY2hhbmdlIG9mIHRpbWVzIGFmdGVyIGEgY2FjaGUgZmx1c2gp LiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3ODI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ4MToKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9jb21tb24uaDo0ODI6CiteSSAqIFRvIHByZXZlbnQgdGhpcyBwcm9ibGVtLCB0aGlzIHZh cmlhYmxlIGNhbiBiZSB1c2VkIHRvIGluZm9ybSB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNzg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21t b24uaDo0ODM6CiteSSAqIGtlcm5lbCBhYm91dCB0aGUgdGltZXN0YW1wIGdyYW51bGFyaXR5IHN1 cHBvcnRlZCBieSB0aGUgZmlsZS1zeXN0ZW0uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTc4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6 NDg0OgorXkkgKiBUaGUgdmFsdWUgc2hvdWxkIGJlIHBvd2VyIG9mIDEwLiAgVGhlIGRlZmF1bHQg aXMgMSwgaS5lLiBmdWxsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTc4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDg1OgorXkkgKiBu YW5vLXNlY29uZCByZXNvbHV0aW9uLiBGaWxlc3lzdGVtcyBzdXBwb3J0aW5nIG9ubHkgc2Vjb25k IHJlc29sdXRpb24kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx Nzg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0ODY6CiteSSAqIHNob3Vs ZCBzZXQgdGhpcyB0byAxMDAwMDAwMDAwLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE3ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ4 NzoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc4 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDg4OgorXkl1bnNpZ25lZCB0 aW1lX2dyYW47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc5 MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NDkwOgorXkkvKiokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzkyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo0OTE6CiteSSAqIEZvciBmdXR1cmUgdXNlLiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3OTM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjQ5MjoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTc5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29t bW9uLmg6NDkzOgorXkl1bnNpZ25lZCByZXNlcnZlZFsyMl07JAoKV0FSTklORzogbGluZSBvdmVy IDgwIGNoYXJhY3RlcnMKIzE4MjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjUyMDoKKyAqICAgLW8gbm9fcmVtb3RlX2xvY2sgICAgICBFcXVpdmFsZW50IHRvIC1vIG5vX3Jl bW90ZV9mbG9jayxub19yZW1vdGVfcG9zaXhfbG9jawoKRVJST1I6ICJmb28qIGJhciIgc2hvdWxk IGJlICJmb28gKmJhciIKIzE4NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjU0MjoKK3N0cnVjdCBmdXNlX2Nvbm5faW5mb19vcHRzKiBmdXNlX3BhcnNlX2Nvbm5faW5mb19v cHRzKHN0cnVjdCBmdXNlX2FyZ3MgKmFyZ3MpOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTg1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6 NTUyOgorXkleSV5JICBzdHJ1Y3QgZnVzZV9jb25uX2luZm8gKmNvbm4pOyQKCldBUk5JTkc6IEJs b2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMxODg0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo1ODM6CisvKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODg1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9jb21tb24uaDo1ODQ6CisgKiBEYXRhIGJ1ZmZlcl5JXkleSV5JXkleSSAgICAg ICAqJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgdHJhaWxpbmcgKi8gb24gYSBzZXBh cmF0ZSBsaW5lCiMxODg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo1ODU6 CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg5 MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NTkxOgorXkkvKiokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODkzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo1OTI6CiteSSAqIEJ1ZmZlciBjb250YWlucyBhIGZpbGUg ZGVzY3JpcHRvciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4 OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjU5MzoKK15JICokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODk1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo1OTQ6CiteSSAqIElmIHRoaXMgZmxhZyBpcyBzZXQsIHRo ZSAuZmQgZmllbGQgaXMgdmFsaWQsIG90aGVyd2lzZSB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9j b21tb24uaDo1OTU6CiteSSAqIC5tZW0gZmllbGRzIGlzIHZhbGlkLiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2NvbW1vbi5oOjU5NjoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTg5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NTk3 OgorXklGVVNFX0JVRl9JU19GRF5JXkk9ICgxIDw8IDEpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjU5OToKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTkwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjAwOgorXkkg KiBTZWVrIG9uIHRoZSBmaWxlIGRlc2NyaXB0b3IkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxOTAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24u aDo2MDE6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTkwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjAyOgorXkkgKiBJZiB0 aGlzIGZsYWcgaXMgc2V0IHRoZW4gdGhlIC5wb3MgZmllbGQgaXMgdmFsaWQgYW5kIGlzJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkwNDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjAzOgorXkkgKiB1c2VkIHRvIHNlZWsgdG8gdGhlIGdp dmVuIG9mZnNldCBiZWZvcmUgcGVyZm9ybWluZyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE5MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjYwNDoKK15JICogb3BlcmF0aW9uIG9uIGZpbGUgZGVzY3JpcHRvci4kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTA2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9jb21tb24uaDo2MDU6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE5MDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjYw NjoKK15JRlVTRV9CVUZfRkRfU0VFS15JPSAoMSA8PCAyKSwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9j b21tb24uaDo2MDg6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE5MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjYwOToKK15J ICogUmV0cnkgb3BlcmF0aW9uIG9uIGZpbGUgZGVzY3JpcHRvciQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2NvbW1vbi5oOjYxMDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxOTEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2MTE6Cite SSAqIElmIHRoaXMgZmxhZyBpcyBzZXQgdGhlbiByZXRyeSBvcGVyYXRpb24gb24gZmlsZSBkZXNj cmlwdG9yJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkxMzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjEyOgorXkkgKiB1bnRpbCAuc2l6 ZSBieXRlcyBoYXZlIGJlZW4gY29waWVkIG9yIGFuIGVycm9yIG9yIEVPRiBpcyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MTQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2NvbW1vbi5oOjYxMzoKK15JICogZGV0ZWN0ZWQuJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfY29tbW9uLmg6NjE0OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxOTE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2MTU6 CiteSUZVU0VfQlVGX0ZEX1JFVFJZXkk9ICgxIDw8IDMpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjYyMjoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTkyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjIzOgorXkkg KiBEb24ndCB1c2Ugc3BsaWNlKDIpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTkyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjI0Ogor XkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MjY6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjYyNToKK15JICogQWx3YXlzIGZhbGwg YmFjayB0byB1c2luZyByZWFkIGFuZCB3cml0ZSBpbnN0ZWFkIG9mJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfY29tbW9uLmg6NjI2OgorXkkgKiBzcGxpY2UoMikgdG8gY29weSBkYXRhIGZyb20gb25lIGZp bGUgZGVzY3JpcHRvciB0byBhbm90aGVyLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE5Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjYy NzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTI5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2Mjg6CiteSSAqIElmIHRoaXMg ZmxhZyBpcyBub3Qgc2V0LCB0aGVuIG9ubHkgZmFsbCBiYWNrIGlmIHNwbGljZSBpcyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MzA6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjYyOToKK15JICogdW5hdmFpbGFibGUuJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkzMTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfY29tbW9uLmg6NjMwOgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxOTMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24u aDo2MzE6CiteSUZVU0VfQlVGX05PX1NQTElDRV5JPSAoMSA8PCAxKSwkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9jb21tb24uaDo2MzM6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE5MzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjYz NDoKK15JICogRm9yY2Ugc3BsaWNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTkzNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjM1Ogor XkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5Mzc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjYzNjoKK15JICogQWx3YXlzIHVzZSBz cGxpY2UoMikgdG8gY29weSBkYXRhIGZyb20gb25lIGZpbGUgZGVzY3JpcHRvciQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5Mzg6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2NvbW1vbi5oOjYzNzoKK15JICogdG8gYW5vdGhlci4gIElmIHNwbGljZSBpcyBu b3QgYXZhaWxhYmxlLCByZXR1cm4gLUVJTlZBTC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxOTM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24u aDo2Mzg6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE5NDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjYzOToKK15JRlVTRV9C VUZfRk9SQ0VfU1BMSUNFXkk9ICgxIDw8IDIpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE5NDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjY0MToKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTk0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjQyOgorXkkgKiBUcnkg dG8gbW92ZSBkYXRhIHdpdGggc3BsaWNlLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE5NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY0 MzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTQ1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2NDQ6CiteSSAqIElmIHNwbGlj ZSBpcyB1c2VkLCB0cnkgdG8gbW92ZSBwYWdlcyBmcm9tIHRoZSBzb3VyY2UgdG8gdGhlJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk0NjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjQ1OgorXkkgKiBkZXN0aW5hdGlvbiBpbnN0ZWFkIG9m IGNvcHlpbmcuICBTZWUgZG9jdW1lbnRhdGlvbiBvZiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1v bi5oOjY0NjoKK15JICogU1BMSUNFX0ZfTU9WRSBpbiBzcGxpY2UoMikgbWFuIHBhZ2UuJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk0ODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjQ3OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9j b21tb24uaDo2NDg6CiteSUZVU0VfQlVGX1NQTElDRV9NT1ZFXkk9ICgxIDw8IDMpLCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NTE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY1MDoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTk1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29t bW9uLmg6NjUxOgorXkkgKiBEb24ndCBibG9jayBvbiB0aGUgcGlwZSB3aGVuIGNvcHlpbmcgZGF0 YSB3aXRoIHNwbGljZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE5NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY1MjoKK15JICokCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTU0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2NTM6CiteSSAqIE1ha2VzIHRoZSBvcGVyYXRpb25z IG9uIHRoZSBwaXBlIG5vbi1ibG9ja2luZyAoaWYgdGhlIHBpcGUkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9jb21tb24uaDo2NTQ6CiteSSAqIGlzIGZ1bGwgb3IgZW1wdHkpLiAgU2VlIFNQTElDRV9GX05P TkJMT0NLIGluIHRoZSBzcGxpY2UoMikkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxOTU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2NTU6 CiteSSAqIG1hbiBwYWdlLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE5NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY1NjoKK15JICov JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk1ODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjU3OgorXklGVVNFX0JVRl9TUExJQ0VfTk9O QkxPQ0s9ICgxIDw8IDQpLCQKCkVSUk9SOiBzcGFjZXMgcmVxdWlyZWQgYXJvdW5kIHRoYXQgJz0n IChjdHg6VnhXKQojMTk1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjU3 OgorICAgICAgIEZVU0VfQlVGX1NQTElDRV9OT05CTE9DSz0gKDEgPDwgNCksCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTk2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjY3Ogor XkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTY5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2Njg6CiteSSAqIFNpemUgb2YgZGF0 YSBpbiBieXRlcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5 NzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY2OToKK15JICovJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk3MTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjcwOgorXklzaXplX3Qgc2l6ZTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTczOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo2NzI6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE5NzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5o OjY3MzoKK15JICogQnVmZmVyIGZsYWdzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTk3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Njc0 OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTc2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2NzU6CiteSWVudW0gZnVzZV9i dWZfZmxhZ3MgZmxhZ3M7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTk3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Njc3OgorXkkvKiok CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTc5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2Nzg6CiteSSAqIE1lbW9yeSBwb2ludGVyJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk4MDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Njc5OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5ODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2NvbW1vbi5oOjY4MDoKK15JICogVXNlZCB1bmxlc3MgRlVTRV9CVUZfSVNfRkQgZmxhZyBpcyBz ZXQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk4MjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NjgxOgorXkkgKi8kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTgzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo2ODI6CiteSXZvaWQgKm1lbTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9j b21tb24uaDo2ODQ6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE5ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY4NToKK15J ICogRmlsZSBkZXNjcmlwdG9yJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTk4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Njg2OgorXkkg KiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5ODg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY4NzoKK15JICogVXNlZCBpZiBGVVNFX0JV Rl9JU19GRCBmbGFnIGlzIHNldC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxOTg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo2ODg6Cite SSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5OTA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY4OToKK15JaW50IGZkOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5OTI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY5MToKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTk5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29t bW9uLmg6NjkyOgorXkkgKiBGaWxlIHBvc2l0aW9uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTk5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9u Lmg6NjkzOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE5OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjY5NDoKK15JICogVXNl ZCBpZiBGVVNFX0JVRl9GRF9TRUVLIGZsYWcgaXMgc2V0LiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5OTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjY5NToKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTk5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6Njk2OgorXklv ZmZfdCBwb3M7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAw OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzA4OgorXkkvKiokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDEwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3MDk6CiteSSAqIE51bWJlciBvZiBidWZmZXJzIGluIHRo ZSBhcnJheSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMTE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjcxMDoKK15JICovJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAxMjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfY29tbW9uLmg6NzExOgorXklzaXplX3QgY291bnQ7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAxNDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfY29tbW9uLmg6NzEzOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyMDE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3 MTQ6CiteSSAqIEluZGV4IG9mIGN1cnJlbnQgYnVmZmVyIHdpdGhpbiB0aGUgYXJyYXkkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDE2OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3MTU6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjcxNjoKK15Jc2l6ZV90IGlkeDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyMDE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3 MTg6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIw MjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjcxOToKK15JICogQ3VycmVu dCBvZmZzZXQgd2l0aGluIHRoZSBjdXJyZW50IGJ1ZmZlciQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjcyMDoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjAyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzIxOgorXklz aXplX3Qgb2ZmOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIw MjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjcyMzoKK15JLyoqJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAyNTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzI0OgorXkkgKiBBcnJheSBvZiBidWZmZXJzJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAyNjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzI1OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9j b21tb24uaDo3MjY6CiteSXN0cnVjdCBmdXNlX2J1ZiBidWZbMV07JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfY29tbW9uLmg6NzMwOgorI2RlZmluZSBGVVNFX0JVRlZFQ19JTklUKHNpemVfXyleSV5JXkle SVwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDMyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3MzE6CiteSSgoc3RydWN0IGZ1c2VfYnVm dmVjKSB7XkleSV5JXkleSVwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyMDMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3MzI6CiteSV5J LyogLmNvdW50PSAqLyAxLF5JXkleSV5JXCQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBh IGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMyMDMzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo3MzI6CisgICAgICAgICAgICAgICAvKiAuY291bnQ9ICovIDEsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMDM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24u aDo3MzM6CiteSV5JLyogLmlkeCA9ICAqLyAwLF5JXkleSV5JXCQKCldBUk5JTkc6IEJsb2NrIGNv bW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMyMDM0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3MzM6CisgICAgICAgICAgICAgICAvKiAuaWR4 ID0gICovIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9jb21tb24uaDo3MzQ6CiteSV5JLyogLm9mZiA9ICAqLyAwLF5JXkleSV5JXCQKCldBUk5J Tkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMy MDM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3MzQ6CisgICAgICAgICAg ICAgICAvKiAub2ZmID0gICovIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDM2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3MzU6CiteSV5JLyogLmJ1ZiA9ICAqLyB7IC8qIFsw XSA9ICovIHteSV5JXklcJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAv KiBvbiBhIHNlcGFyYXRlIGxpbmUKIzIwMzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2Nv bW1vbi5oOjczNToKKyAgICAgICAgICAgICAgIC8qIC5idWYgPSAgKi8geyAvKiBbMF0gPSAqLyB7 ICAgICAgICAgICAgICAgICAgIFwKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIwMzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjczNjoKK15J XkleSS8qIC5zaXplID0gICovIChzaXplX18pLF5JXklcJAoKV0FSTklORzogQmxvY2sgY29tbWVu dHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzIwMzc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjczNjoKKyAgICAgICAgICAgICAgICAgICAgICAgLyog LnNpemUgPSAgKi8gKHNpemVfXyksICAgICAgICAgICAgICAgIFwKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2NvbW1vbi5oOjczNzoKK15JXkleSS8qIC5mbGFncyA9ICovIChlbnVtIGZ1c2VfYnVmX2ZsYWdz KSAwLF5JXCQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBz ZXBhcmF0ZSBsaW5lCiMyMDM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3 Mzc6CisgICAgICAgICAgICAgICAgICAgICAgIC8qIC5mbGFncyA9ICovIChlbnVtIGZ1c2VfYnVm X2ZsYWdzKSAwLCBcCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy MDM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3Mzg6CiteSV5JXkkvKiAu bWVtID0gICAqLyBOVUxMLF5JXkleSVwkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBs ZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMjAzOTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfY29tbW9uLmg6NzM4OgorICAgICAgICAgICAgICAgICAgICAgICAvKiAubWVtID0gICAq LyBOVUxMLCAgICAgICAgICAgICAgICAgICAgXAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjA0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6 NzM5OgorXkleSV5JLyogLmZkID0gICAgKi8gLTEsXkleSV5JXCQKCldBUk5JTkc6IEJsb2NrIGNv bW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMyMDQwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3Mzk6CisgICAgICAgICAgICAgICAgICAgICAg IC8qIC5mZCA9ICAgICovIC0xLCAgICAgICAgICAgICAgICAgICAgICBcCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9jb21tb24uaDo3NDA6CiteSV5JXkkvKiAucG9zID0gICAqLyAwLF5JXkleSVwkCgpXQVJO SU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQoj MjA0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzQwOgorICAgICAgICAg ICAgICAgICAgICAgICAvKiAucG9zID0gICAqLyAwLCAgICAgICAgICAgICAgICAgICAgICAgXAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA0MjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzQxOgorXkleSX0gfV5JXkleSV5JXkleSVwkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDQzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3NDI6CiteSX0gKSQKCkVSUk9SOiBzcGFjZSBwcm9o aWJpdGVkIGJlZm9yZSB0aGF0IGNsb3NlIHBhcmVudGhlc2lzICcpJwojMjA0MzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzQyOgorICAgICAgIH0gKQoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA2MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfY29tbW9uLmg6NzYxOgorXkleSSAgICAgIGVudW0gZnVzZV9idWZfY29weV9mbGFncyBm bGFncyk7JAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNl cGFyYXRlIGxpbmUKIzIwNjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjc2 MzoKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tICoKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIw NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjc2NDoKKyAqIFNpZ25hbCBo YW5kbGluZ15JXkleSV5JXkkgICAgICAgKiQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBh IHRyYWlsaW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQojMjA2NjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfY29tbW9uLmg6NzY1OgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1v bi5oOjc3MDoKKyAqIFN0b3JlcyBzZXNzaW9uIGluIGEgZ2xvYmFsIHZhcmlhYmxlLl5JIE1heSBv bmx5IGJlIGNhbGxlZCBvbmNlIHBlciQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxl YWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMyMDk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9jb21tb24uaDo3OTc6CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyMDk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3 OTg6CisgKiBDb21wYXRpYmlsaXR5IHN0dWZmXkleSV5JXkleSSAgICAgICAqJAoKV0FSTklORzog QmxvY2sgY29tbWVudHMgdXNlIGEgdHJhaWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiMyMTAw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3OTk6CisgKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKV0FS TklORzogYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRlZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzIx MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjgwNToKKyNpZmRlZiBfX2Nw bHVzcGx1cwoKRVJST1I6IGxpbmUgb3ZlciA5MCBjaGFyYWN0ZXJzCiMyMTE3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo4MTY6CisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYg KF9fR05VQ19fID4gNCB8fCBfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDYpICYm ICFkZWZpbmVkIF9fY3BsdXNwbHVzCgpXQVJOSU5HOiBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgZGVm aW5lcyBzaG91bGQgYmUgYXZvaWRlZAojMjExNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf Y29tbW9uLmg6ODE2OgorI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA+IDQgfHwg X19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA+PSA2KSAmJiAhZGVmaW5lZCBfX2NwbHVz cGx1cwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEyMTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6ODIwOgorXkl7IHVuc2lnbmVkIF9mdXNl X29mZl90X211c3RfYmVfNjRiaXQ6KChzaXplb2Yob2ZmX3QpID09IDgpID8gMSA6IC0xKTsgfTsk CgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiMyMTMy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6MjoKKy8qCisgIEZVU0U6IEZpbGVzeXN0 ZW0gaW4gVXNlcnNwYWNlCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyMTQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6MTU6CiteSXN0cnVjdCBmdXNl X3Nlc3Npb24gKnNlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzIxNDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDoxNjoKK15JdWludDY0X3QgdW5p cXVlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNDc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDoxNzoKK15JaW50IGN0cjskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTQ4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9pLmg6MTg6CiteSXB0aHJlYWRfbXV0ZXhfdCBsb2NrOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2kuaDoxOToKK15Jc3RydWN0IGZ1c2VfY3R4IGN0eDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9p Lmg6MjA6CiteSXN0cnVjdCBmdXNlX2NoYW4gKmNoOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDoy MToKK15JaW50IGludGVycnVwdGVkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIxNTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDoyMjoKK15JdW5z aWduZWQgaW50IGlvY3RsXzY0Yml0IDogMTskCgpFUlJPUjogc3BhY2VzIHByb2hpYml0ZWQgYXJv dW5kIHRoYXQgJzonIChjdHg6V3hXKQojMjE1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf aS5oOjIyOgorICAgICAgIHVuc2lnbmVkIGludCBpb2N0bF82NGJpdCA6IDE7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIxNTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDoyMzoKK15JdW5p b24geyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNTQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDoyNDoKK15JXklzdHJ1Y3QgeyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNTU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2kuaDoyNToKK15JXkleSXVpbnQ2NF90IHVuaXF1ZTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9pLmg6MjY6CiteSV5JfSBpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIxNTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDoyNzoKK15JXklz dHJ1Y3QgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNTg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDoyODoKK15JXkleSWZ1c2VfaW50ZXJydXB0 X2Z1bmNfdCBmdW5jOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzIxNTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDoyOToKK15JXkleSXZvaWQgKmRh dGE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE2MDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjMwOgorXkleSX0gbmk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE2MTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfaS5oOjMxOgorXkl9IHU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjE2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjMyOgorXklzdHJ1 Y3QgZnVzZV9yZXEgKm5leHQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjE2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjMzOgorXklzdHJ1Y3Qg ZnVzZV9yZXEgKnByZXY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjE2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjM3OgorXkl1aW50NjRfdCB1 bmlxdWU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE2ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjM4OgorXkl2b2lkICgqcmVwbHkpKHN0cnVj dCBmdXNlX25vdGlmeV9yZXEgKiwgZnVzZV9yZXFfdCwgZnVzZV9pbm9fdCwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTY5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9pLmg6Mzk6CiteSV5JICAgICAgY29uc3Qgdm9pZCAqLCBjb25zdCBzdHJ1Y3QgZnVz ZV9idWYgKik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE3 MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjQwOgorXklzdHJ1Y3QgZnVzZV9ub3Rp ZnlfcmVxICpuZXh0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzIxNzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDo0MToKK15Jc3RydWN0IGZ1c2Vf bm90aWZ5X3JlcSAqcHJldjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyMTc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6NDU6CiteSWNoYXIgKm1v dW50cG9pbnQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE3 NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjQ2OgorXkl2b2xhdGlsZSBpbnQgZXhp dGVkOyQKCkVSUk9SOiBVc2Ugb2Ygdm9sYXRpbGUgaXMgdXN1YWxseSB3cm9uZywgcGxlYXNlIGFk ZCBhIGNvbW1lbnQKIzIxNzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDo0NjoKKyAg ICAgICB2b2xhdGlsZSBpbnQgZXhpdGVkOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjE3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjQ3OgorXklp bnQgZmQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE3ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjQ4OgorXklzdHJ1Y3QgbW91bnRfb3B0cyAq bW87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE3OTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjQ5OgorXklpbnQgZGVidWc7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE4MDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfaS5oOjUwOgorXklpbnQgZGVueV9vdGhlcnM7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf aS5oOjUxOgorXklzdHJ1Y3QgZnVzZV9sb3dsZXZlbF9vcHMgb3A7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfaS5oOjUyOgorXklpbnQgZ290X2luaXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjE4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjUzOgor XklzdHJ1Y3QgY3VzZV9kYXRhICpjdXNlX2RhdGE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjE4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjU0 OgorXkl2b2lkICp1c2VyZGF0YTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMTg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6NTU6CiteSXVpZF90 IG93bmVyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxODY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDo1NjoKK15Jc3RydWN0IGZ1c2VfY29ubl9p bmZvIGNvbm47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE4 NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjU3OgorXklzdHJ1Y3QgZnVzZV9yZXEg bGlzdDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTg4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6NTg6CiteSXN0cnVjdCBmdXNlX3JlcSBpbnRl cnJ1cHRzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxODk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDo1OToKK15JcHRocmVhZF9tdXRleF90IGxv Y2s7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE5MDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjYwOgorXklpbnQgZ290X2Rlc3Ryb3k7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE5MTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfaS5oOjYxOgorXklwdGhyZWFkX2tleV90IHBpcGVfa2V5OyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxOTI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2kuaDo2MjoKK15JaW50IGJyb2tlbl9zcGxpY2Vfbm9uYmxvY2s7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE5MzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfaS5oOjYzOgorXkl1aW50NjRfdCBub3RpZnlfY3RyOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxOTQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2kuaDo2NDoKK15Jc3RydWN0IGZ1c2Vfbm90aWZ5X3JlcSBub3RpZnlfbGlzdDsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTk1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6NjU6CiteSXNpemVfdCBidWZzaXplOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxOTY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2kuaDo2NjoKK15JaW50IGVycm9yOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDo3 MDoKK15JcHRocmVhZF9tdXRleF90IGxvY2s7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjIwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjcxOgor XklpbnQgY3RyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIy MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDo3MjoKK15JaW50IGZkOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMTM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2kuaDo4MzoKK15JY2hhciAqbmFtZTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9p Lmg6ODQ6CiteSWZ1c2VfbW9kdWxlX2ZhY3RvcnlfdCBmYWN0b3J5OyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2kuaDo4NToKK15Jc3RydWN0IGZ1c2VfbW9kdWxlICpuZXh0OyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2kuaDo4NjoKK15Jc3RydWN0IGZ1c2Vtb2Rfc28gKnNvOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2kuaDo4NzoKK15JaW50IGN0cjskCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFk aW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMjIyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfaS5oOjkwOgorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gKgoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjIyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjkxOgorICogQ2hhbm5l bCBpbnRlcmZhY2UgKHdoZW4gdXNpbmcgLW8gY2xvbmVfZmQpXkleSSAgICAgICAqJAoKV0FSTklO RzogQmxvY2sgY29tbWVudHMgdXNlIGEgdHJhaWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiMy MjIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6OTI6CisgKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI0NzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfaS5oOjExNzoKK15JXkleSSAgICAgICBpbnQgY291bnQpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyNTU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2kuaDoxMjU6CiteSV5JXkleSSBzdHJ1Y3QgZnVzZV9jaGFuICpjaCk7JAoKV0FS TklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzIyNTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2kuaDoxMjc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgZnVzZV9idWYgKmJ1Ziwgc3RydWN0IGZ1c2VfY2hhbiAqY2gpOwoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI1NzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfaS5oOjEyNzoKK15JXkleSV5JICBjb25zdCBzdHJ1Y3QgZnVzZV9idWYgKmJ1Ziwgc3Ry dWN0IGZ1c2VfY2hhbiAqY2gpOyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMy MjU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9pLmg6MTI5Ogorc3RydWN0IGZ1c2UgKmZ1 c2VfbmV3XzMxKHN0cnVjdCBmdXNlX2FyZ3MgKmFyZ3MsIGNvbnN0IHN0cnVjdCBmdXNlX29wZXJh dGlvbnMgKm9wLAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI2 MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjEzMDoKK15JXkkgICAgICBzaXplX3Qg b3Bfc2l6ZSwgdm9pZCAqcHJpdmF0ZV9kYXRhKTskCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hh cmFjdGVycwojMjI2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfaS5oOjEzMjoKK2ludCBm dXNlX3Nlc3Npb25fbG9vcF9tdF8zMihzdHJ1Y3QgZnVzZV9zZXNzaW9uICpzZSwgc3RydWN0IGZ1 c2VfbG9vcF9jb25maWcgKmNvbmZpZyk7CgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBv biBzdWJzZXF1ZW50IGxpbmVzCiMyMjc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb2cu aDoyOgorLyoKKyAgRlVTRTogRmlsZXN5c3RlbSBpbiBVc2Vyc3BhY2UKCldBUk5JTkc6IEJsb2Nr IGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMyMjg3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb2cuaDoxMjoKKy8qKiBAZmlsZQoKV0FSTklORzogYXJj aGl0ZWN0dXJlIHNwZWNpZmljIGRlZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzIyOTQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvZy5oOjE5OgorI2lmZGVmIF9fY3BsdXNwbHVzCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzA0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb2cuaDoyOToKK15JRlVTRV9MT0dfRU1FUkcsJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMwNTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG9nLmg6MzA6CiteSUZVU0VfTE9HX0FMRVJULCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzMDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv Zy5oOjMxOgorXklGVVNFX0xPR19DUklULCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIzMDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvZy5oOjMyOgor XklGVVNFX0xPR19FUlIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjMwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG9nLmg6MzM6CiteSUZVU0VfTE9H X1dBUk5JTkcsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMw OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG9nLmg6MzQ6CiteSUZVU0VfTE9HX05PVElD RSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzEwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb2cuaDozNToKK15JRlVTRV9MT0dfSU5GTywkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzExOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb2cuaDozNjoKK15JRlVTRV9MT0dfREVCVUckCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb2cuaDo1MzoKK15JXkleSV5JY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFwKTskCgpX QVJOSU5HOiBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgZGVmaW5lcyBzaG91bGQgYmUgYXZvaWRlZAoj MjM1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG9nLmg6Nzg6CisjaWZkZWYgX19jcGx1 c3BsdXMKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMK IzIzNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjoKKy8qCisgIEZV U0U6IEZpbGVzeXN0ZW0gaW4gVXNlcnNwYWNlCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2Ug YSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMjM3NTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjoKKy8qKiBAZmlsZQoKV0FSTklORzogYXJjaGl0ZWN0dXJl IHNwZWNpZmljIGRlZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzIzOTc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzQ6CisjaWZkZWYgX19jcGx1c3BsdXMKCldBUk5JTkc6 IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMyNDAx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM4OgorLyogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQwMjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozOToKKyAqIE1pc2NlbGxhbmVvdXMgZGVmaW5pdGlv bnNeSV5JXkleSSAgICAgICAqJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgdHJhaWxp bmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiMyNDAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjQwOgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI0MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NjA6CiteSS8qKiBVbmlxdWUgaW5vZGUgbnVtYmVyJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMg dXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzI0MjM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjA6CisgICAgICAgLyoqIFVuaXF1ZSBpbm9kZSBudW1i ZXIKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0MjQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjE6CiteSSAqJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQyNTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo2MjoKK15JICogSW4gbG9va3VwLCB6ZXJvIG1lYW5zIG5lZ2F0aXZl IGVudHJ5IChmcm9tIHZlcnNpb24gMi41KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI0MjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NjM6CiteSSAqIFJldHVybmluZyBFTk9FTlQgYWxzbyBtZWFucyBuZWdhdGl2ZSBlbnRyeSwgYnV0 IGJ5IHNldHRpbmcgemVybyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI0Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjQ6CiteSSAq IGlubyB0aGUga2VybmVsIG1heSBjYWNoZSBuZWdhdGl2ZSBlbnRyaWVzIGZvciBlbnRyeV90aW1l b3V0JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQyODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NToKK15JICogc2Vjb25kcy4kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDI5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY2OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjY3OgorXklmdXNlX2lub190IGlubzskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjY5OgorXkkvKiogR2VuZXJhdGlvbiBudW1iZXIgZm9yIHRoaXMgZW50cnkuJAoK V0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxp bmUKIzI0MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Njk6CisgICAg ICAgLyoqIEdlbmVyYXRpb24gbnVtYmVyIGZvciB0aGlzIGVudHJ5LgoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo3MDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNDM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjcx OgorXkkgKiBJZiB0aGUgZmlsZSBzeXN0ZW0gd2lsbCBiZSBleHBvcnRlZCBvdmVyIE5GUywgdGhl JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQzNTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3MjoKK15JICogaW5vL2dlbmVyYXRpb24g cGFpcnMgbmVlZCB0byBiZSB1bmlxdWUgb3ZlciB0aGUgZmlsZSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NzM6CiteSSAqIHN5c3RlbSdzIGxpZmV0aW1lIChyYXRoZXIgdGhhbiBqdXN0 IHRoZSBtb3VudCB0aW1lKS4gU28gaWYkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNDM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc0 OgorXkkgKiB0aGUgZmlsZSBzeXN0ZW0gcmV1c2VzIGFuIGlub2RlIGFmdGVyIGl0IGhhcyBiZWVu IGRlbGV0ZWQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQz ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NToKK15JICogaXQgbXVz dCBhc3NpZ24gYSBuZXcsIHByZXZpb3VzbHkgdW51c2VkIGdlbmVyYXRpb24gbnVtYmVyJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQzOTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NjoKK15JICogdG8gdGhlIGlub2RlIGF0IHRoZSBz YW1lIHRpbWUuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ0 MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NzoKK15JICokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDQxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc4OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjc5OgorXkl1aW50NjRfdCBnZW5lcmF0aW9uOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6ODE6CiteSS8qKiBJbm9kZSBhdHRyaWJ1dGVzLiQKCldBUk5JTkc6IEJsb2Nr IGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMyNDQ0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjgxOgorICAgICAgIC8qKiBJbm9kZSBh dHRyaWJ1dGVzLgoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ0 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4MjoKK15JICokCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDQ2OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjgzOgorXkkgKiBFdmVuIGlmIGF0dHJfdGltZW91dCA9 PSAwLCBhdHRyIG11c3QgYmUgY29ycmVjdC4gRm9yIGV4YW1wbGUsJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo4NDoKK15JICogZm9yIG9wZW4oKSwgRlVTRSB1c2VzIGF0dHIuc3Rfc2l6 ZSBmcm9tIGxvb2t1cCgpIHRvIGRldGVybWluZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI0NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6ODU6CiteSSAqIGhvdyBtYW55IGJ5dGVzIHRvIHJlcXVlc3QuIElmIHRoaXMgdmFsdWUgaXMg bm90IGNvcnJlY3QsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjQ0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4NjoKK15JICogaW5j b3JyZWN0IGRhdGEgd2lsbCBiZSByZXR1cm5lZC4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNDUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjg3OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNDUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg4OgorXklzdHJ1 Y3Qgc3RhdCBhdHRyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI0NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTA6CiteSS8qKiBW YWxpZGl0eSB0aW1lb3V0IChpbiBzZWNvbmRzKSBmb3IgaW5vZGUgYXR0cmlidXRlcy4gSWYkCgpX QVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGlu ZQojMjQ1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MDoKKyAgICAg ICAvKiogVmFsaWRpdHkgdGltZW91dCAoaW4gc2Vjb25kcykgZm9yIGlub2RlIGF0dHJpYnV0ZXMu IElmCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDU0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjkxOgorXkkgICAgYXR0cmlidXRlcyBv bmx5IGNoYW5nZSBhcyBhIHJlc3VsdCBvZiByZXF1ZXN0cyB0aGF0IGNvbWUkCgpXQVJOSU5HOiBC bG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiMyNDU0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjkxOgorICAgICAgIC8qKiBWYWxpZGl0eSB0aW1l b3V0IChpbiBzZWNvbmRzKSBmb3IgaW5vZGUgYXR0cmlidXRlcy4gSWYKKyAgICAgICAgICAgYXR0 cmlidXRlcyBvbmx5IGNoYW5nZSBhcyBhIHJlc3VsdCBvZiByZXF1ZXN0cyB0aGF0IGNvbWUKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NTU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTI6CiteSSAgICB0aHJvdWdoIHRoZSBrZXJuZWws IHRoaXMgc2hvdWxkIGJlIHNldCB0byBhIHZlcnkgbGFyZ2UkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjkzOgorXkkgICAgdmFsdWUuICovJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMg dXNlIGEgdHJhaWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiMyNDU2OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjkzOgorICAgICAgICAgICB2YWx1ZS4gKi8KCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NTc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTQ6CiteSWRvdWJsZSBhdHRyX3RpbWVvdXQ7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ1OTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NjoKK15JLyoqIFZhbGlkaXR5IHRpbWVvdXQgKGlu IHNlY29uZHMpIGZvciB0aGUgbmFtZS4gSWYgZGlyZWN0b3J5JAoKV0FSTklORzogQmxvY2sgY29t bWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzI0NTk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTY6CisgICAgICAgLyoqIFZhbGlkaXR5IHRp bWVvdXQgKGluIHNlY29uZHMpIGZvciB0aGUgbmFtZS4gSWYgZGlyZWN0b3J5CgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDYwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjk3OgorXkkgICAgZW50cmllcyBhcmUgY2hhbmdlZC9kZWxldGVk IG9ubHkgYXMgYSByZXN1bHQgb2YgcmVxdWVzdHMkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1 c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiMyNDYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjk3OgorICAgICAgIC8qKiBWYWxpZGl0eSB0aW1lb3V0IChpbiBzZWNvbmRz KSBmb3IgdGhlIG5hbWUuIElmIGRpcmVjdG9yeQorICAgICAgICAgICBlbnRyaWVzIGFyZSBjaGFu Z2VkL2RlbGV0ZWQgb25seSBhcyBhIHJlc3VsdCBvZiByZXF1ZXN0cwoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo5ODoKK15JICAgIHRoYXQgY29tZSB0aHJvdWdoIHRoZSBrZXJuZWwsIHRo aXMgc2hvdWxkIGJlIHNldCB0byBhIHZlcnkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNDYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o Ojk5OgorXkkgICAgbGFyZ2UgdmFsdWUuICovJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNl IGEgdHJhaWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiMyNDYyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk5OgorICAgICAgICAgICBsYXJnZSB2YWx1ZS4gKi8KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NjM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTAwOgorXklkb3VibGUgZW50cnlfdGltZW91dDsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDc1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMjoKK15JLyoqIFVzZXIgSUQgb2YgdGhl IGNhbGxpbmcgcHJvY2VzcyAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI0NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTEzOgor Xkl1aWRfdCB1aWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjQ3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTU6CiteSS8qKiBH cm91cCBJRCBvZiB0aGUgY2FsbGluZyBwcm9jZXNzICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjQ3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDoxMTY6CiteSWdpZF90IGdpZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNDgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjExODoKK15JLyoqIFRocmVhZCBJRCBvZiB0aGUgY2FsbGluZyBwcm9jZXNzICovJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ4MjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTk6CiteSXBpZF90IHBpZDskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjEyMToKK15JLyoqIFVtYXNrIG9mIHRoZSBjYWxsaW5nIHByb2Nlc3Mg Ki8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDg1OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyMjoKK15JbW9kZV90IHVtYXNrOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0ODk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTI2OgorXklmdXNlX2lub190IGlubzskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDkwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyNzoKK15JdWludDY0X3Qgbmxvb2t1cDskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDk0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEzMToKKyNkZWZpbmUgRlVTRV9TRVRfQVRUUl9N T0RFXkkoMSA8PCAwKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI0OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTMyOgorI2RlZmlu ZSBGVVNFX1NFVF9BVFRSX1VJRF5JKDEgPDwgMSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNDk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjEzMzoKKyNkZWZpbmUgRlVTRV9TRVRfQVRUUl9HSUReSSgxIDw8IDIpJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ5NzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMzQ6CisjZGVmaW5lIEZVU0VfU0VUX0FUVFJfU0laRV5JKDEg PDwgMykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDk4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEzNToKKyNkZWZpbmUgRlVTRV9T RVRfQVRUUl9BVElNRV5JKDEgPDwgNCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNDk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEz NjoKKyNkZWZpbmUgRlVTRV9TRVRfQVRUUl9NVElNRV5JKDEgPDwgNSkkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjEzNzoKKyNkZWZpbmUgRlVTRV9TRVRfQVRUUl9BVElNRV9OT1deSSgx IDw8IDcpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjUwMTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMzg6CisjZGVmaW5lIEZVU0Vf U0VUX0FUVFJfTVRJTUVfTk9XXkkoMSA8PCA4KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI1MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6MTM5OgorI2RlZmluZSBGVVNFX1NFVF9BVFRSX0NUSU1FXkkoMSA8PCAxMCkkCgpXQVJOSU5H OiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMjUw NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxNDE6CisvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTA1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE0MjoKKyAqIFJlcXVlc3QgbWV0aG9kcyBhbmQg cmVwbGllc15JXkleSV5JICAgICAgICokCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0 cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzI1MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MTQzOgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MTczOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNTM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE3NDoKK15J ICogSW5pdGlhbGl6ZSBmaWxlc3lzdGVtJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjUzODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDox NzU6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjUz OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxNzY6CiteSSAqIFRoaXMg ZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gbGliZnVzZSBlc3RhYmxpc2hlcyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MTc3OgorXkkgKiBjb21tdW5pY2F0aW9uIHdpdGggdGhlIEZVU0Ug a2VybmVsIG1vZHVsZS4gVGhlIGZpbGUgc3lzdGVtJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjU0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDoxNzg6CiteSSAqIHNob3VsZCB1c2UgdGhpcyBtb2R1bGUgdG8gaW5zcGVjdCBhbmQvb3Ig bW9kaWZ5IHRoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1 NDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTc5OgorXkkgKiBjb25u ZWN0aW9uIHBhcmFtZXRlcnMgcHJvdmlkZWQgaW4gdGhlIGBjb25uYCBzdHJ1Y3R1cmUuJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU0MzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxODA6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoxODE6CiteSSAqIE5vdGUgdGhhdCBzb21lIHBhcmFtZXRlcnMgbWF5IGJlIG92 ZXJ3cml0dGVuIGJ5IG9wdGlvbnMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNTQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE4MjoK K15JICogcGFzc2VkIHRvIGZ1c2Vfc2Vzc2lvbl9uZXcoKSB3aGljaCB0YWtlIHByZWNlZGVuY2Ug b3ZlciB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTQ2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE4MzoKK15JICogdmFsdWVz IHNldCBpbiB0aGlzIGhhbmRsZXIuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjU0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxODQ6 CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU0ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxODU6CiteSSAqIFRoZXJlJ3Mg bm8gcmVwbHkgdG8gdGhpcyBmdW5jdGlvbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI1NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MTg2OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1 NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTg3OgorXkkgKiBAcGFy YW0gdXNlcmRhdGEgdGhlIHVzZXIgZGF0YSBwYXNzZWQgdG8gZnVzZV9zZXNzaW9uX25ldygpJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU1MTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxODg6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6MTg5OgorXkl2b2lkICgqaW5pdCkgKHZvaWQgKnVzZXJkYXRhLCBzdHJ1 Y3QgZnVzZV9jb25uX2luZm8gKmNvbm4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI1NTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MTkxOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy NTU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE5MjoKK15JICogQ2xl YW4gdXAgZmlsZXN5c3RlbS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNTU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE5MzoKK15J ICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTU3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE5NDoKK15JICogQ2FsbGVkIG9uIGZp bGVzeXN0ZW0gZXhpdC4gV2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQsIHRoZSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NTg6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MTk1OgorXkkgKiBjb25uZWN0aW9uIHRvIHRoZSBrZXJuZWwg bWF5IGJlIGdvbmUgYWxyZWFkeSwgc28gdGhhdCBlZy4gY2FsbHMkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjE5NjoKK15JICogdG8gZnVzZV9sb3dsZXZlbF9ub3RpZnlfKiB3aWxsIGZh aWwuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU2MDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxOTc6CiteSSAqJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU2MTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoxOTg6CiteSSAqIFRoZXJlJ3Mgbm8gcmVwbHkgdG8gdGhpcyBm dW5jdGlvbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NjI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTk5OgorXkkgKiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NjM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjAwOgorXkkgKiBAcGFyYW0gdXNlcmRhdGEgdGhlIHVz ZXIgZGF0YSBwYXNzZWQgdG8gZnVzZV9zZXNzaW9uX25ldygpJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoyMDE6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI1NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjAy OgorXkl2b2lkICgqZGVzdHJveSkgKHZvaWQgKnVzZXJkYXRhKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjIwNDoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjU2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoy MDU6CiteSSAqIExvb2sgdXAgYSBkaXJlY3RvcnkgZW50cnkgYnkgbmFtZSBhbmQgZ2V0IGl0cyBh dHRyaWJ1dGVzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1 Njk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjA2OgorXkkgKiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NzA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjA3OgorXkkgKiBWYWxpZCByZXBsaWVzOiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NzE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjA4OgorXkkgKiAgIGZ1c2VfcmVwbHlfZW50cnkk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTcyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjIwOToKK15JICogICBmdXNlX3JlcGx5X2Vy ciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NzM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjEwOgorXkkgKiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MjExOgorXkkgKiBAcGFyYW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU3NTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMTI6CiteSSAqIEBwYXJhbSBwYXJlbnQgaW5v ZGUgbnVtYmVyIG9mIHRoZSBwYXJlbnQgZGlyZWN0b3J5JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjU3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDoyMTM6CiteSSAqIEBwYXJhbSBuYW1lIHRoZSBuYW1lIHRvIGxvb2sgdXAkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTc3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjIxNDoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoyMTU6CiteSXZvaWQgKCpsb29rdXApIChmdXNlX3JlcV90IHJlcSwgZnVzZV9p bm9fdCBwYXJlbnQsIGNvbnN0IGNoYXIgKm5hbWUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI1ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MjE3OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNTgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjIxODoKK15J ICogRm9yZ2V0IGFib3V0IGFuIGlub2RlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjU4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoy MTk6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU4 MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMjA6CiteSSAqIFRoaXMg ZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIGtlcm5lbCByZW1vdmVzIGFuIGlub2RlJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU4NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMjE6CiteSSAqIGZyb20gaXRzIGludGVybmFsIGNh Y2hlcy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTg1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjIyMjoKK15JICokCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTg2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjIyMzoKK15JICogVGhlIGlub2RlJ3MgbG9va3VwIGNvdW50 IGluY3JlYXNlcyBieSBvbmUgZm9yIGV2ZXJ5IGNhbGwgdG8kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjIyNDoKK15JICogZnVzZV9yZXBseV9lbnRyeSBhbmQgZnVzZV9yZXBseV9jcmVh dGUuIFRoZSBubG9va3VwIHBhcmFtZXRlciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI1ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MjI1OgorXkkgKiBpbmRpY2F0ZXMgYnkgaG93IG11Y2ggdGhlIGxvb2t1cCBjb3VudCBzaG91bGQg YmUgZGVjcmVhc2VkLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI1ODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjI2OgorXkkgKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1OTA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjI3OgorXkkgKiBJbm9kZXMgd2l0aCBhIG5v bi16ZXJvIGxvb2t1cCBjb3VudCBtYXkgcmVjZWl2ZSByZXF1ZXN0IGZyb20kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTkxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjIyODoKK15JICogdGhlIGtlcm5lbCBldmVuIGFmdGVyIGNhbGxz IHRvIHVubGluaywgcm1kaXIgb3IgKHdoZW4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNTkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjIyOToKK15JICogb3ZlcndyaXRpbmcgYW4gZXhpc3RpbmcgZmlsZSkgcmVuYW1lLiBGaWxlc3lz dGVtcyBtdXN0IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI1OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjMwOgorXkkg KiBzdWNoIHJlcXVlc3RzIHByb3Blcmx5IGFuZCBpdCBpcyByZWNvbW1lbmRlZCB0byBkZWZlciBy ZW1vdmFsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU5NDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMzE6CiteSSAqIG9mIHRoZSBp bm9kZSB1bnRpbCB0aGUgbG9va3VwIGNvdW50IHJlYWNoZXMgemVyby4gQ2FsbHMgdG8kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTk1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjIzMjoKK15JICogdW5saW5rLCBybWRpciBvciByZW5h bWUgd2lsbCBiZSBmb2xsb3dlZCBjbG9zZWx5IGJ5IGZvcmdldCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1OTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6MjMzOgorXkkgKiB1bmxlc3MgdGhlIGZpbGUgb3IgZGlyZWN0b3J5IGlzIG9w ZW4sIGluIHdoaWNoIGNhc2UgdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjU5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyMzQ6 CiteSSAqIGtlcm5lbCBpc3N1ZXMgZm9yZ2V0IG9ubHkgYWZ0ZXIgdGhlIHJlbGVhc2Ugb3IgcmVs ZWFzZWRpciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1OTg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjM1OgorXkkgKiBjYWxscy4k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTk5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjIzNjoKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjIzNzoKK15JICogTm90ZSB0aGF0IGlmIGEgZmlsZSBzeXN0ZW0gd2ls bCBiZSBleHBvcnRlZCBvdmVyIE5GUyB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNjAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjIzODoKK15JICogaW5vZGVzIGxpZmV0aW1lIG11c3QgZXh0ZW5kIGV2ZW4gYmV5b25kIGZvcmdl dC4gU2VlIHRoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2 MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjM5OgorXkkgKiBnZW5l cmF0aW9uIGZpZWxkIGluIHN0cnVjdCBmdXNlX2VudHJ5X3BhcmFtIGFib3ZlLiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MDM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MjQwOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MjQxOgorXkkgKiBPbiB1bm1vdW50IHRoZSBsb29rdXAgY291bnQgZm9yIGFsbCBpbm9k ZXMgaW1wbGljaXRseSBkcm9wcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI2MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjQyOgor XkkgKiB0byB6ZXJvLiBJdCBpcyBub3QgZ3VhcmFudGVlZCB0aGF0IHRoZSBmaWxlIHN5c3RlbSB3 aWxsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYwNjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyNDM6CiteSSAqIHJlY2VpdmUgY29y cmVzcG9uZGluZyBmb3JnZXQgbWVzc2FnZXMgZm9yIHRoZSBhZmZlY3RlZCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MjQ0OgorXkkgKiBpbm9kZXMuJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoyNDU6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjYwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyNDY6 CiteSSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjYxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyNDc6 CiteSSAqICAgZnVzZV9yZXBseV9ub25lJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjYxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoy NDg6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYx MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyNDk6CiteSSAqIEBwYXJh bSByZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNjEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI1MDoK K15JICogQHBhcmFtIGlubyB0aGUgaW5vZGUgbnVtYmVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjYxNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDoyNTE6CiteSSAqIEBwYXJhbSBubG9va3VwIHRoZSBudW1iZXIgb2YgbG9va3VwcyB0 byBmb3JnZXQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjE1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI1MjoKK15JICovJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYxNjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyNTM6CiteSXZvaWQgKCpmb3JnZXQpIChmdXNlX3Jl cV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sIHVpbnQ2NF90IG5sb29rdXApOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MjU1OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNjE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjI1NjoKK15JICogR2V0IGZpbGUgYXR0cmlidXRlcy4kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjI1NzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNjIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI1ODoK K15JICogSWYgd3JpdGViYWNrIGNhY2hpbmcgaXMgZW5hYmxlZCwgdGhlIGtlcm5lbCBtYXkgaGF2 ZSBhJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYyMjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyNTk6CiteSSAqIGJldHRlciBpZGVh IG9mIGEgZmlsZSdzIGxlbmd0aCB0aGFuIHRoZSBGVVNFIGZpbGUgc3lzdGVtJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYyMzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoyNjA6CiteSSAqIChlZyBpZiB0aGVyZSBoYXMgYmVlbiBhIHdy aXRlIHRoYXQgZXh0ZW5kZWQgdGhlIGZpbGUgc2l6ZSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNjI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjI2MToKK15JICogYnV0IHRoYXQgaGFzIG5vdCB5ZXQgYmVlbiBwYXNzZWQgdG8gdGhl IGZpbGVzeXN0ZW0ubiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI2MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjYyOgorXkkgKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MjY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjYzOgorXkkgKiBJbiB0aGlzIGNhc2UsIHRo ZSBzdF9zaXplIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBmaWxlIHN5c3RlbSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MjY0OgorXkkgKiB3aWxsIGJlIGlnbm9yZWQuJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYyODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoyNjU6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjYyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDoyNjY6CiteSSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjYzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDoyNjc6CiteSSAqICAgZnVzZV9yZXBseV9hdHRyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjYzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDoyNjg6CiteSSAqICAgZnVzZV9yZXBseV9lcnIkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjI2OToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNjMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI3MDoK K15JICogQHBhcmFtIHJlcSByZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MjcxOgorXkkgKiBAcGFyYW0gaW5vIHRoZSBpbm9kZSBudW1iZXIkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjM1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjI3MjoKK15JICogQHBhcmFtIGZpIGZvciBmdXR1cmUgdXNlLCBj dXJyZW50bHkgYWx3YXlzIE5VTEwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNjM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI3MzoK K15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYzNzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyNzQ6CiteSXZvaWQgKCpnZXRh dHRyKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6Mjc1OgorXkleSV5JIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NDA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Mjc3OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjI3ODoKK15JICogU2V0IGZpbGUgYXR0cmlidXRlcyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6Mjc5OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI2NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6MjgwOgorXkkgKiBJbiB0aGUgJ2F0dHInIGFyZ3VtZW50IG9ubHkgbWVtYmVycyBpbmRpY2F0 ZWQgYnkgdGhlICd0b19zZXQnJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjY0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyODE6Cite SSAqIGJpdG1hc2sgY29udGFpbiB2YWxpZCB2YWx1ZXMuICBPdGhlciBtZW1iZXJzIGNvbnRhaW4g dW5kZWZpbmVkJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY0 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyODI6CiteSSAqIHZhbHVl cy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjQ2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI4MzoKK15JICokCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjQ3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjI4NDoKK15JICogVW5sZXNzIEZVU0VfQ0FQX0hBTkRMRV9LSUxM UFJJViBpcyBkaXNhYmxlZCwgdGhpcyBtZXRob2QgaXMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNjQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjI4NToKK15JICogZXhwZWN0ZWQgdG8gcmVzZXQgdGhlIHNldHVpZCBhbmQgc2V0Z2lk IGJpdHMgaWYgdGhlIGZpbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNjQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI4NjoKK15J ICogc2l6ZSBvciBvd25lciBpcyBiZWluZyBjaGFuZ2VkLiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6Mjg3OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI2NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Mjg4Ogor XkkgKiBJZiB0aGUgc2V0YXR0ciB3YXMgaW52b2tlZCBmcm9tIHRoZSBmdHJ1bmNhdGUoKSBzeXN0 ZW0gY2FsbCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NTI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Mjg5OgorXkkgKiB1bmRlciBM aW51eCBrZXJuZWwgdmVyc2lvbnMgMi42LjE1IG9yIGxhdGVyLCB0aGUgZmktPmZoIHdpbGwkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjUzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI5MDoKK15JICogY29udGFpbiB0aGUgdmFsdWUg c2V0IGJ5IHRoZSBvcGVuIG1ldGhvZCBvciB3aWxsIGJlIHVuZGVmaW5lZCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MjkxOgorXkkgKiBpZiB0aGUgb3BlbiBtZXRob2QgZGlkbid0IHNl dCBhbnkgdmFsdWUuICBPdGhlcndpc2UgKG5vdCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI2NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6MjkyOgorXkkgKiBmdHJ1bmNhdGUgY2FsbCwgb3Iga2VybmVsIHZlcnNpb24gZWFybGllciB0 aGFuIDIuNi4xNSkgdGhlIGZpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjY1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyOTM6Cite SSAqIHBhcmFtZXRlciB3aWxsIGJlIE5VTEwuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjY1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDoyOTQ6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjY1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyOTU6CiteSSAqIFZh bGlkIHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjY1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyOTY6CiteSSAqICAg ZnVzZV9yZXBseV9hdHRyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjY2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoyOTc6CiteSSAq ICAgZnVzZV9yZXBseV9lcnIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNjYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI5ODoKK15J ICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjYyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjI5OToKK15JICogQHBhcmFtIHJlcSBy ZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI2NjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzAwOgorXkkgKiBA cGFyYW0gaW5vIHRoZSBpbm9kZSBudW1iZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNjY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjMwMToKK15JICogQHBhcmFtIGF0dHIgdGhlIGF0dHJpYnV0ZXMkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjMwMjoKK15JICogQHBhcmFtIHRvX3NldCBiaXQgbWFzayBvZiBhdHRyaWJ1 dGVzIHdoaWNoIHNob3VsZCBiZSBzZXQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNjY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMw MzoKK15JICogQHBhcmFtIGZpIGZpbGUgaW5mb3JtYXRpb24sIG9yIE5VTEwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjY3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjMwNDoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjY2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDozMDU6CiteSXZvaWQgKCpzZXRhdHRyKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3Qg aW5vLCBzdHJ1Y3Qgc3RhdCAqYXR0ciwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNjY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMw NjoKK15JXkleSSBpbnQgdG9fc2V0LCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjcxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMwODoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDozMDk6CiteSSAqIFJlYWQgc3ltYm9saWMgbGluayQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6MzEwOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI2NzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MzExOgorXkkgKiBWYWxpZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI2NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MzEyOgorXkkgKiAgIGZ1c2VfcmVwbHlfcmVhZGxpbmskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNjc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjMxMzoKK15JICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2Nzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MzE0OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI2Nzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzE1Ogor XkkgKiBAcGFyYW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjY3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDozMTY6CiteSSAqIEBwYXJhbSBpbm8gdGhlIGlub2RlIG51bWJlciQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MzE3OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNjgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjMxODoKK15Jdm9pZCAoKnJlYWRsaW5rKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3Qg aW5vKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjgzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMyMDoKK15JLyoqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY4NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozMjE6CiteSSAqIENyZWF0ZSBmaWxlIG5vZGUkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjg1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMyMjoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjMyMzoKK15JICogQ3JlYXRlIGEgcmVndWxhciBmaWxlLCBjaGFyYWN0ZXIgZGV2 aWNlLCBibG9jayBkZXZpY2UsIGZpZm8gb3IkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNjg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjMyNDoKK15JICogc29ja2V0IG5vZGUuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjY4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoz MjU6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY4 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozMjY6CiteSSAqIFZhbGlk IHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY5 MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozMjc6CiteSSAqICAgZnVz ZV9yZXBseV9lbnRyeSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI2OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzI4OgorXkkgKiAg IGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjY5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozMjk6CiteSSAq JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY5MzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozMzA6CiteSSAqIEBwYXJhbSByZXEgcmVx dWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy Njk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMzMToKK15JICogQHBh cmFtIHBhcmVudCBpbm9kZSBudW1iZXIgb2YgdGhlIHBhcmVudCBkaXJlY3RvcnkkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjk1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMzMjoKK15JICogQHBhcmFtIG5hbWUgdG8gY3JlYXRlJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY5NjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozMzM6CiteSSAqIEBwYXJhbSBtb2RlIGZpbGUg dHlwZSBhbmQgbW9kZSB3aXRoIHdoaWNoIHRvIGNyZWF0ZSB0aGUgbmV3IGZpbGUkCgpXQVJOSU5H OiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMjY5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDozMzQ6CisgICAgICAgICogQHBhcmFtIHJkZXYgdGhlIGRldmljZSBudW1i ZXIgKG9ubHkgdmFsaWQgaWYgY3JlYXRlZCBmaWxlIGlzIGEgZGV2aWNlKQoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY5NzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDozMzQ6CiteSSAqIEBwYXJhbSByZGV2IHRoZSBkZXZpY2UgbnVtYmVy IChvbmx5IHZhbGlkIGlmIGNyZWF0ZWQgZmlsZSBpcyBhIGRldmljZSkkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjMzNToKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjY5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDozMzY6CiteSXZvaWQgKCpta25vZCkgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IHBhcmVu dCwgY29uc3QgY2hhciAqbmFtZSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNzAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjMzNzoK K15JXkkgICAgICAgbW9kZV90IG1vZGUsIGRldl90IHJkZXYpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6MzM5OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNzAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM0 MDoKK15JICogQ3JlYXRlIGEgZGlyZWN0b3J5JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjcwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDozNDE6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjcwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozNDI6CiteSSAqIFZh bGlkIHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjcwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozNDM6CiteSSAqICAg ZnVzZV9yZXBseV9lbnRyeSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI3MDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzQ0OgorXkkg KiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjcwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozNDU6Cite SSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcwOTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozNDY6CiteSSAqIEBwYXJhbSByZXEg cmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNzEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM0NzoKK15JICog QHBhcmFtIHBhcmVudCBpbm9kZSBudW1iZXIgb2YgdGhlIHBhcmVudCBkaXJlY3RvcnkkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzExOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM0ODoKK15JICogQHBhcmFtIG5hbWUgdG8gY3JlYXRl JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcxMjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozNDk6CiteSSAqIEBwYXJhbSBtb2RlIHdp dGggd2hpY2ggdG8gY3JlYXRlIHRoZSBuZXcgZmlsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MzUwOgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNzE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM1MToKK15J dm9pZCAoKm1rZGlyKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgcGFyZW50LCBjb25zdCBj aGFyICpuYW1lLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3 MTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzUyOgorXkleSSAgICAg ICBtb2RlX3QgbW9kZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjcxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozNTQ6CiteSS8q KiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MTg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzU1OgorXkkgKiBSZW1vdmUgYSBmaWxl JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcxOTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozNTY6CiteSSAqJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcyMDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDozNTc6CiteSSAqIElmIHRoZSBmaWxlJ3MgaW5vZGUncyBsb29rdXAg Y291bnQgaXMgbm9uLXplcm8sIHRoZSBmaWxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjcyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDozNTg6CiteSSAqIHN5c3RlbSBpcyBleHBlY3RlZCB0byBwb3N0cG9uZSBhbnkgcmVtb3ZhbCBv ZiB0aGUgaW5vZGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy NzIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM1OToKK15JICogdW50 aWwgdGhlIGxvb2t1cCBjb3VudCByZWFjaGVzIHplcm8gKHNlZSBkZXNjcmlwdGlvbiBvZiB0aGUk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzIzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM2MDoKK15JICogZm9yZ2V0IGZ1bmN0aW9u KS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzI0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM2MToKK15JICokCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzI1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjM2MjoKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzI2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjM2MzoKK15JICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3Mjc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MzY0OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI3Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MzY1OgorXkkgKiBAcGFyYW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcyOTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDozNjY6CiteSSAqIEBwYXJhbSBwYXJlbnQgaW5vZGUgbnVtYmVyIG9m IHRoZSBwYXJlbnQgZGlyZWN0b3J5JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjczMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozNjc6 CiteSSAqIEBwYXJhbSBuYW1lIHRvIHJlbW92ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI3MzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6MzY4OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNzMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM2OToKK15Jdm9p ZCAoKnVubGluaykgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IHBhcmVudCwgY29uc3QgY2hh ciAqbmFtZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcz NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozNzE6CiteSS8qKiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MzU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzcyOgorXkkgKiBSZW1vdmUgYSBkaXJlY3Rvcnkk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzM2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM3MzoKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjM3NDoKK15JICogSWYgdGhlIGRpcmVjdG9yeSdzIGlub2RlJ3MgbG9v a3VwIGNvdW50IGlzIG5vbi16ZXJvLCB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNzM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjM3NToKK15JICogZmlsZSBzeXN0ZW0gaXMgZXhwZWN0ZWQgdG8gcG9zdHBvbmUgYW55IHJlbW92 YWwgb2YgdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcz OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozNzY6CiteSSAqIGlub2Rl IHVudGlsIHRoZSBsb29rdXAgY291bnQgcmVhY2hlcyB6ZXJvIChzZWUgZGVzY3JpcHRpb24kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzQwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM3NzoKK15JICogb2YgdGhlIGZvcmdldCBmdW5j dGlvbikuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc0MTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozNzg6CiteSSAqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc0MjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozNzk6CiteSSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc0MzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozODA6CiteSSAqICAgZnVzZV9yZXBseV9lcnIkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzQ0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM4MToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjM4MjoKK15JICogQHBhcmFtIHJlcSByZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NDY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MzgzOgorXkkgKiBAcGFyYW0gcGFyZW50IGlub2RlIG51bWJl ciBvZiB0aGUgcGFyZW50IGRpcmVjdG9yeSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI3NDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 Mzg0OgorXkkgKiBAcGFyYW0gbmFtZSB0byByZW1vdmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNzQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjM4NToKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjc0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozODY6Cite SXZvaWQgKCpybWRpcikgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IHBhcmVudCwgY29uc3Qg Y2hhciAqbmFtZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj Mjc1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozODg6CiteSS8qKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NTI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Mzg5OgorXkkgKiBDcmVhdGUgYSBzeW1ib2xp YyBsaW5rJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc1Mzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozOTA6CiteSSAqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc1NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozOTE6CiteSSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc1NTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozOTI6CiteSSAqICAgZnVzZV9yZXBseV9lbnRyeSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NTY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MzkzOgorXkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc1NzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozOTQ6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDozOTU6CiteSSAqIEBwYXJhbSByZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzU5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjM5NjoKK15JICogQHBhcmFtIGxpbmsgdGhlIGNvbnRl bnRzIG9mIHRoZSBzeW1ib2xpYyBsaW5rJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjc2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoz OTc6CiteSSAqIEBwYXJhbSBwYXJlbnQgaW5vZGUgbnVtYmVyIG9mIHRoZSBwYXJlbnQgZGlyZWN0 b3J5JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc2MTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDozOTg6CiteSSAqIEBwYXJhbSBuYW1l IHRvIGNyZWF0ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3 NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Mzk5OgorXkkgKi8kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzYzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQwMDoKK15Jdm9pZCAoKnN5bWxpbmspIChmdXNl X3JlcV90IHJlcSwgY29uc3QgY2hhciAqbGluaywgZnVzZV9pbm9fdCBwYXJlbnQsJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc2NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0MDE6CiteSV5JXkkgY29uc3QgY2hhciAqbmFtZSk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc2NjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0MDM6CiteSS8qKiBSZW5hbWUgYSBmaWxlJAoK V0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxp bmUKIzI3NjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDAzOgorICAg ICAgIC8qKiBSZW5hbWUgYSBmaWxlCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNzY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQwNDoK K15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzY4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQwNToKK15JICogSWYgdGhlIHRh cmdldCBleGlzdHMgaXQgc2hvdWxkIGJlIGF0b21pY2FsbHkgcmVwbGFjZWQuIElmJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc2OTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0MDY6CiteSSAqIHRoZSB0YXJnZXQncyBpbm9kZSdzIGxv b2t1cCBjb3VudCBpcyBub24temVybywgdGhlIGZpbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNzcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjQwNzoKK15JICogc3lzdGVtIGlzIGV4cGVjdGVkIHRvIHBvc3Rwb25lIGFueSByZW1v dmFsIG9mIHRoZSBpbm9kZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI3NzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDA4OgorXkkg KiB1bnRpbCB0aGUgbG9va3VwIGNvdW50IHJlYWNoZXMgemVybyAoc2VlIGRlc2NyaXB0aW9uIG9m IHRoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NzI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDA5OgorXkkgKiBmb3JnZXQgZnVu Y3Rpb24pLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NzM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDEwOgorXkkgKiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NzQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDExOgorXkkgKiBJZiB0aGlzIHJlcXVlc3QgaXMgYW5z d2VyZWQgd2l0aCBhbiBlcnJvciBjb2RlIG9mIEVOT1NZUywgdGhpcyBpcyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6NDEyOgorXkkgKiB0cmVhdGVkIGFzIGEgcGVybWFuZW50IGZhaWx1 cmUgd2l0aCBlcnJvciBjb2RlIEVJTlZBTCwgaS5lLiBhbGwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjQxMzoKK15JICogZnV0dXJlIGJtYXAgcmVxdWVzdHMgd2lsbCBmYWlsIHdpdGgg RUlOVkFMIHdpdGhvdXQgYmVpbmckCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNzc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQxNDoK K15JICogc2VuZCB0byB0aGUgZmlsZXN5c3RlbSBwcm9jZXNzLiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3Nzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NDE1OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI3Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDE2 OgorXkkgKiAqZmxhZ3MqIG1heSBiZSBgUkVOQU1FX0VYQ0hBTkdFYCBvciBgUkVOQU1FX05PUkVQ TEFDRWAuIElmJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc4 MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0MTc6CiteSSAqIFJFTkFN RV9OT1JFUExBQ0UgaXMgc3BlY2lmaWVkLCB0aGUgZmlsZXN5c3RlbSBtdXN0IG5vdCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3ODE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDE4OgorXkkgKiBvdmVyd3JpdGUgKm5ld25hbWUqIGlm IGl0IGV4aXN0cyBhbmQgcmV0dXJuIGFuIGVycm9yJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjc4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo0MTk6CiteSSAqIGluc3RlYWQuIElmIGBSRU5BTUVfRVhDSEFOR0VgIGlzIHNwZWNpZmll ZCwgdGhlIGZpbGVzeXN0ZW0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNzgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQyMDoKK15J ICogbXVzdCBhdG9taWNhbGx5IGV4Y2hhbmdlIHRoZSB0d28gZmlsZXMsIGkuZS4gYm90aCBtdXN0 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc4NDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0MjE6CiteSSAqIGV4aXN0IGFuZCBuZWl0 aGVyIG1heSBiZSBkZWxldGVkLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI3ODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDIyOgor XkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3ODY6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDIzOgorXkkgKiBWYWxpZCByZXBs aWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3ODc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDI0OgorXkkgKiAgIGZ1c2VfcmVw bHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc4ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0MjU6CiteSSAqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc4OTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0MjY6CiteSSAqIEBwYXJhbSByZXEgcmVxdWVzdCBoYW5k bGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzkwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQyNzoKK15JICogQHBhcmFtIHBhcmVu dCBpbm9kZSBudW1iZXIgb2YgdGhlIG9sZCBwYXJlbnQgZGlyZWN0b3J5JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc5MTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo0Mjg6CiteSSAqIEBwYXJhbSBuYW1lIG9sZCBuYW1lJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc5MjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0Mjk6CiteSSAqIEBwYXJhbSBuZXdwYXJlbnQgaW5vZGUg bnVtYmVyIG9mIHRoZSBuZXcgcGFyZW50IGRpcmVjdG9yeSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NDMwOgorXkkgKiBAcGFyYW0gbmV3bmFtZSBuZXcgbmFtZSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6NDMxOgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNzk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjQzMjoKK15Jdm9pZCAoKnJlbmFtZSkgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IHBh cmVudCwgY29uc3QgY2hhciAqbmFtZSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNzk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQz MzoKK15JXkleSWZ1c2VfaW5vX3QgbmV3cGFyZW50LCBjb25zdCBjaGFyICpuZXduYW1lLCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3OTc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDM0OgorXkleSV5JdW5zaWduZWQgaW50IGZsYWdz KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzk5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQzNjoKK15JLyoqJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgwMDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo0Mzc6CiteSSAqIENyZWF0ZSBhIGhhcmQgbGluayQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MDE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDM4OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NDM5OgorXkkgKiBWYWxpZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NDQwOgorXkkgKiAgIGZ1c2VfcmVwbHlfZW50cnkkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjQ0MToKK15JICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6NDQyOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI4MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NDQzOgorXkkgKiBAcGFyYW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgwNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo0NDQ6CiteSSAqIEBwYXJhbSBpbm8gdGhlIG9sZCBpbm9kZSBudW1iZXIkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODA4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQ0NToKK15JICogQHBhcmFtIG5ld3BhcmVudCBp bm9kZSBudW1iZXIgb2YgdGhlIG5ldyBwYXJlbnQgZGlyZWN0b3J5JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo0NDY6CiteSSAqIEBwYXJhbSBuZXduYW1lIG5ldyBuYW1lIHRvIGNyZWF0 ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MTA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDQ3OgorXkkgKi8kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODExOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjQ0ODoKK15Jdm9pZCAoKmxpbmspIChmdXNlX3JlcV90IHJlcSwg ZnVzZV9pbm9fdCBpbm8sIGZ1c2VfaW5vX3QgbmV3cGFyZW50LCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NDQ5OgorXkleSSAgICAgIGNvbnN0IGNoYXIgKm5ld25hbWUpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MTQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDUxOgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjQ1MjoKK15JICogT3BlbiBhIGZpbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyODE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjQ1MzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyODE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQ1NDoKK15J ICogT3BlbiBmbGFncyBhcmUgYXZhaWxhYmxlIGluIGZpLT5mbGFncy4gVGhlIGZvbGxvd2luZyBy dWxlcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MTg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDU1OgorXkkgKiBhcHBseS4kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODE5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQ1NjoKK15JICokCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjQ1NzoKK15JICogIC0gQ3JlYXRpb24gKE9fQ1JFQVQsIE9fRVhDTCwgT19O T0NUVFkpIGZsYWdzIHdpbGwgYmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyODIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQ1ODoK K15JICogICAgZmlsdGVyZWQgb3V0IC8gaGFuZGxlZCBieSB0aGUga2VybmVsLiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MjI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6NDU5OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6NDYwOgorXkkgKiAgLSBBY2Nlc3MgbW9kZXMgKE9fUkRPTkxZLCBPX1dST05MWSwgT19S RFdSKSBzaG91bGQgYmUgdXNlZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI4MjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDYxOgor XkkgKiAgICBieSB0aGUgZmlsZXN5c3RlbSB0byBjaGVjayBpZiB0aGUgb3BlcmF0aW9uIGlzJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgyNTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0NjI6CiteSSAqICAgIHBlcm1pdHRlZC4gIElm IHRoZSBgYC1vIGRlZmF1bHRfcGVybWlzc2lvbnNgYCBtb3VudCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NDYzOgorXkkgKiAgICBvcHRpb24gaXMgZ2l2ZW4sIHRoaXMgY2hlY2sgaXMg YWxyZWFkeSBkb25lIGJ5IHRoZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI4Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDY0Ogor XkkgKiAgICBrZXJuZWwgYmVmb3JlIGNhbGxpbmcgb3BlbigpIGFuZCBtYXkgdGh1cyBiZSBvbWl0 dGVkIGJ5JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgyODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0NjU6CiteSSAqICAgIHRoZSBm aWxlc3lzdGVtLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4 Mjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDY2OgorXkkgKiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MzA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDY3OgorXkkgKiAgLSBXaGVuIHdyaXRlYmFjayBj YWNoaW5nIGlzIGVuYWJsZWQsIHRoZSBrZXJuZWwgbWF5IHNlbmQkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjQ2ODoKK15JICogICAgcmVhZCByZXF1ZXN0cyBldmVuIGZvciBmaWxlcyBv cGVuZWQgd2l0aCBPX1dST05MWS4gVGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjgzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0 Njk6CiteSSAqICAgIGZpbGVzeXN0ZW0gc2hvdWxkIGJlIHByZXBhcmVkIHRvIGhhbmRsZSB0aGlz LiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MzM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDcwOgorXkkgKiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6NDcxOgorXkkgKiAgLSBXaGVuIHdyaXRlYmFjayBjYWNoaW5nIGlz IGRpc2FibGVkLCB0aGUgZmlsZXN5c3RlbSBpcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI4MzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6NDcyOgorXkkgKiAgICBleHBlY3RlZCB0byBwcm9wZXJseSBoYW5kbGUgdGhlIE9fQVBQRU5E IGZsYWcgYW5kIGVuc3VyZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI4MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDczOgorXkkg KiAgICB0aGF0IGVhY2ggd3JpdGUgaXMgYXBwZW5kaW5nIHRvIHRoZSBlbmQgb2YgdGhlIGZpbGUu JAoKRVJST1I6IHRyYWlsaW5nIHdoaXRlc3BhY2UKIzI4Mzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6NDc0OgorXkkgKiAkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyODM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjQ3NDoKK15JICogJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjgzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0NzY6CiteSSAq ICAgIGhhbmRsZSBPX0FQUEVORC4gSG93ZXZlciwgdW5sZXNzIGFsbCBjaGFuZ2VzIHRvIHRoZSBm aWxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg0MDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0Nzc6CiteSSAqICAgIGNvbWUgdGhy b3VnaCB0aGUga2VybmVsIHRoaXMgd2lsbCBub3Qgd29yayByZWxpYWJseS4gVGhlJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg0MTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0Nzg6CiteSSAqICAgIGZpbGVzeXN0ZW0gc2hvdWxkIHRo dXMgZWl0aGVyIGlnbm9yZSB0aGUgT19BUFBFTkQgZmxhZyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NDc5OgorXkkgKiAgICAoYW5kIGxldCB0aGUga2VybmVsIGhhbmRsZSBpdCksIG9y IHJldHVybiBhbiBlcnJvciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI4NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDgwOgorXkkg KiAgICAoaW5kaWNhdGluZyB0aGF0IHJlbGlhYmx5IE9fQVBQRU5EIGlzIG5vdCBhdmFpbGFibGUp LiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NDQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDgxOgorXkkgKiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6NDgyOgorXkkgKiBGaWxlc3lzdGVtIG1heSBzdG9yZSBhbiBhcmJp dHJhcnkgZmlsZSBoYW5kbGUgKHBvaW50ZXIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjg0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo0ODM6CiteSSAqIGluZGV4LCBldGMpIGluIGZpLT5maCwgYW5kIHVzZSB0aGlzIGluIG90aGVy IGFsbCBvdGhlciBmaWxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjg0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0ODQ6CiteSSAq IG9wZXJhdGlvbnMgKHJlYWQsIHdyaXRlLCBmbHVzaCwgcmVsZWFzZSwgZnN5bmMpLiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NDg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDg1OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NDg2OgorXkkgKiBGaWxlc3lzdGVtIG1heSBhbHNvIGltcGxlbWVudCBzdGF0ZWxl c3MgZmlsZSBJL08gYW5kIG5vdCBzdG9yZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI4NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NDg3OgorXkkgKiBhbnl0aGluZyBpbiBmaS0+ZmguJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjg1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo0ODg6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjg1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0ODk6CiteSSAq IFRoZXJlIGFyZSBhbHNvIHNvbWUgZmxhZ3MgKGRpcmVjdF9pbywga2VlcF9jYWNoZSkgd2hpY2gg dGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg1MzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0OTA6CiteSSAqIGZpbGVzeXN0ZW0g bWF5IHNldCBpbiBmaSwgdG8gY2hhbmdlIHRoZSB3YXkgdGhlIGZpbGUgaXMgb3BlbmVkLiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NTQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDkxOgorXkkgKiBTZWUgZnVzZV9maWxlX2luZm8g c3RydWN0dXJlIGluIDxmdXNlX2NvbW1vbi5oPiBmb3IgbW9yZSBkZXRhaWxzLiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NTU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6NDkyOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6NDkzOgorXkkgKiBJZiB0aGlzIHJlcXVlc3QgaXMgYW5zd2VyZWQgd2l0aCBhbiBlcnJv ciBjb2RlIG9mIEVOT1NZUyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI4NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NDk0OgorXkkg KiBhbmQgRlVTRV9DQVBfTk9fT1BFTl9TVVBQT1JUIGlzIHNldCBpbiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6NDk1OgorXkkgKiBgZnVzZV9jb25uX2luZm8uY2FwYWJsZWAsIHRoaXMg aXMgdHJlYXRlZCBhcyBzdWNjZXNzIGFuZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI4NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NDk2OgorXkkgKiBmdXR1cmUgY2FsbHMgdG8gb3BlbiBhbmQgcmVsZWFzZSB3aWxsIGFsc28gc3Vj Y2VlZCB3aXRob3V0IGJlaW5nJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjg2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo0OTc6Cite SSAqIHNlbnQgdG8gdGhlIGZpbGVzeXN0ZW0gcHJvY2Vzcy4kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjQ5ODoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyODYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjQ5OToK K15JICogVmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyODYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjUwMDoK K15JICogICBmdXNlX3JlcGx5X29wZW4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyODY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjUw MToKK15JICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI4NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NTAyOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4 NjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTAzOgorXkkgKiBAcGFy YW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjg2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1MDQ6 CiteSSAqIEBwYXJhbSBpbm8gdGhlIGlub2RlIG51bWJlciQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4Njg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NTA1OgorXkkgKiBAcGFyYW0gZmkgZmlsZSBpbmZvcm1hdGlvbiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4Njk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6NTA2OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyODcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjUwNzoKK15Jdm9pZCAoKm9wZW4pIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBp bm8sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg3MTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1MDg6CiteSV5JICAgICAgc3RydWN0 IGZ1c2VfZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjg3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1MTA6 CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NzQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTExOgorXkkgKiBSZWFkIGRh dGEkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODc1OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjUxMjoKK15JICokCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODc2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjUxMzoKK15JICogUmVhZCBzaG91bGQgc2VuZCBleGFjdGx5IHRo ZSBudW1iZXIgb2YgYnl0ZXMgcmVxdWVzdGVkIGV4Y2VwdCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4Nzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NTE0OgorXkkgKiBvbiBFT0Ygb3IgZXJyb3IsIG90aGVyd2lzZSB0aGUgcmVzdCBv ZiB0aGUgZGF0YSB3aWxsIGJlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjg3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1MTU6Cite SSAqIHN1YnN0aXR1dGVkIHdpdGggemVyb2VzLiAgQW4gZXhjZXB0aW9uIHRvIHRoaXMgaXMgd2hl biB0aGUgZmlsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4 Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTE2OgorXkkgKiBoYXMg YmVlbiBvcGVuZWQgaW4gJ2RpcmVjdF9pbycgbW9kZSwgaW4gd2hpY2ggY2FzZSB0aGUgcmV0dXJu JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg4MDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1MTc6CiteSSAqIHZhbHVlIG9mIHRoZSBy ZWFkIHN5c3RlbSBjYWxsIHdpbGwgcmVmbGVjdCB0aGUgcmV0dXJuIHZhbHVlIG9mJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg4MTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1MTg6CiteSSAqIHRoaXMgb3BlcmF0aW9uLiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4ODI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTE5OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NTIwOgorXkkgKiBmaS0+Zmggd2lsbCBjb250YWluIHRoZSB2YWx1ZSBzZXQgYnkg dGhlIG9wZW4gbWV0aG9kLCBvciB3aWxsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjg4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1 MjE6CiteSSAqIGJlIHVuZGVmaW5lZCBpZiB0aGUgb3BlbiBtZXRob2QgZGlkbid0IHNldCBhbnkg dmFsdWUuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg4NTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1MjI6CiteSSAqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg4NjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1MjM6CiteSSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg4NzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1MjQ6CiteSSAqICAgZnVzZV9yZXBseV9idWYkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODg4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjUyNToKK15JICogICBmdXNlX3JlcGx5X2lvdiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4ODk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTI2OgorXkkgKiAgIGZ1c2VfcmVwbHlfZGF0YSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4OTA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTI3OgorXkkgKiAgIGZ1c2VfcmVwbHlfZXJy JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg5MTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1Mjg6CiteSSAqJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg5MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo1Mjk6CiteSSAqIEBwYXJhbSByZXEgcmVxdWVzdCBoYW5kbGUkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODkzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjUzMDoKK15JICogQHBhcmFtIGlubyB0aGUgaW5v ZGUgbnVtYmVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg5 NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1MzE6CiteSSAqIEBwYXJh bSBzaXplIG51bWJlciBvZiBieXRlcyB0byByZWFkJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjg5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo1MzI6CiteSSAqIEBwYXJhbSBvZmYgb2Zmc2V0IHRvIHJlYWQgZnJvbSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4OTY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6NTMzOgorXkkgKiBAcGFyYW0gZmkgZmlsZSBpbmZvcm1hdGlv biQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4OTc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTM0OgorXkkgKi8kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODk4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjUzNToKK15Jdm9pZCAoKnJlYWQpIChmdXNlX3JlcV90IHJlcSwg ZnVzZV9pbm9fdCBpbm8sIHNpemVfdCBzaXplLCBvZmZfdCBvZmYsJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo1MzY6CiteSV5JICAgICAgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkwMTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1Mzg6CiteSS8qKiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6NTM5OgorXkkgKiBXcml0ZSBkYXRhJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo1NDA6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjkwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1 NDE6CiteSSAqIFdyaXRlIHNob3VsZCByZXR1cm4gZXhhY3RseSB0aGUgbnVtYmVyIG9mIGJ5dGVz IHJlcXVlc3RlZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5 MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTQyOgorXkkgKiBleGNl cHQgb24gZXJyb3IuICBBbiBleGNlcHRpb24gdG8gdGhpcyBpcyB3aGVuIHRoZSBmaWxlIGhhcyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MDY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTQzOgorXkkgKiBiZWVuIG9wZW5lZCBpbiAn ZGlyZWN0X2lvJyBtb2RlLCBpbiB3aGljaCBjYXNlIHRoZSByZXR1cm4gdmFsdWUkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTA3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU0NDoKK15JICogb2YgdGhlIHdyaXRlIHN5c3RlbSBjYWxs IHdpbGwgcmVmbGVjdCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoaXMkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjU0NToKK15JICogb3BlcmF0aW9uLiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NTQ2OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI5MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTQ3Ogor XkkgKiBVbmxlc3MgRlVTRV9DQVBfSEFORExFX0tJTExQUklWIGlzIGRpc2FibGVkLCB0aGlzIG1l dGhvZCBpcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MTE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTQ4OgorXkkgKiBleHBlY3Rl ZCB0byByZXNldCB0aGUgc2V0dWlkIGFuZCBzZXRnaWQgYml0cy4kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjU0OToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyOTEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU1 MDoKK15JICogZmktPmZoIHdpbGwgY29udGFpbiB0aGUgdmFsdWUgc2V0IGJ5IHRoZSBvcGVuIG1l dGhvZCwgb3Igd2lsbCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI5MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTUxOgorXkkgKiBi ZSB1bmRlZmluZWQgaWYgdGhlIG9wZW4gbWV0aG9kIGRpZG4ndCBzZXQgYW55IHZhbHVlLiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MTU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTUyOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NTUzOgorXkkgKiBWYWxpZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NTU0OgorXkkgKiAgIGZ1c2VfcmVwbHlfd3JpdGUkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjU1NToKK15JICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6NTU2OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI5MjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6NTU3OgorXkkgKiBAcGFyYW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo1NTg6CiteSSAqIEBwYXJhbSBpbm8gdGhlIGlub2RlIG51bWJlciQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MjI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTU5OgorXkkgKiBAcGFyYW0gYnVmIGRhdGEgdG8g d3JpdGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTIzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU2MDoKK15JICogQHBhcmFtIHNp emUgbnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXRlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjkyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo1NjE6CiteSSAqIEBwYXJhbSBvZmYgb2Zmc2V0IHRvIHdyaXRlIHRvJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkyNTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo1NjI6CiteSSAqIEBwYXJhbSBmaSBmaWxlIGluZm9ybWF0aW9uJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkyNjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1NjM6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6NTY0OgorXkl2b2lkICgqd3JpdGUpIChmdXNlX3JlcV90IHJlcSwgZnVz ZV9pbm9fdCBpbm8sIGNvbnN0IGNoYXIgKmJ1ZiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyOTI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjU2NToKK15JXkkgICAgICAgc2l6ZV90IHNpemUsIG9mZl90IG9mZiwgc3RydWN0IGZ1c2Vf ZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjkzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1Njc6CiteSS8q KiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MzE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTY4OgorXkkgKiBGbHVzaCBtZXRob2Qk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTMyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU2OToKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjU3MDoKK15JICogVGhpcyBpcyBjYWxsZWQgb24gZWFjaCBjbG9zZSgp IG9mIHRoZSBvcGVuZWQgZmlsZS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyOTM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU3MToK K15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTM1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU3MjoKK15JICogU2luY2UgZmls ZSBkZXNjcmlwdG9ycyBjYW4gYmUgZHVwbGljYXRlZCAoZHVwLCBkdXAyLCBmb3JrKSwgZm9yJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkzNjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1NzM6CiteSSAqIG9uZSBvcGVuIGNhbGwgdGhl cmUgbWF5IGJlIG1hbnkgZmx1c2ggY2FsbHMuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjkzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo1NzQ6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjkzODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1NzU6CiteSSAqIEZp bGVzeXN0ZW1zIHNob3VsZG4ndCBhc3N1bWUgdGhhdCBmbHVzaCB3aWxsIGFsd2F5cyBiZSBjYWxs ZWQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTM5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU3NjoKK15JICogYWZ0ZXIgc29tZSB3 cml0ZXMsIG9yIHRoYXQgaWYgd2lsbCBiZSBjYWxsZWQgYXQgYWxsLiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6NTc3OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI5NDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NTc4OgorXkkgKiBmaS0+Zmggd2lsbCBjb250YWluIHRoZSB2YWx1ZSBzZXQgYnkgdGhlIG9wZW4g bWV0aG9kLCBvciB3aWxsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjk0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1Nzk6CiteSSAq IGJlIHVuZGVmaW5lZCBpZiB0aGUgb3BlbiBtZXRob2QgZGlkbid0IHNldCBhbnkgdmFsdWUuJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk0MzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1ODA6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo1ODE6CiteSSAqIE5PVEU6IHRoZSBuYW1lIG9mIHRoZSBtZXRob2QgaXMg bWlzbGVhZGluZywgc2luY2UgKHVubGlrZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI5NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NTgyOgorXkkgKiBmc3luYykgdGhlIGZpbGVzeXN0ZW0gaXMgbm90IGZvcmNlZCB0byBmbHVzaCBw ZW5kaW5nIHdyaXRlcy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyOTQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjU4MzoKK15JICog T25lIHJlYXNvbiB0byBmbHVzaCBkYXRhIGlzIGlmIHRoZSBmaWxlc3lzdGVtIHdhbnRzIHRvIHJl dHVybiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NDc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTg0OgorXkkgKiB3cml0ZSBlcnJv cnMgZHVyaW5nIGNsb3NlLiAgSG93ZXZlciwgc3VjaCB1c2UgaXMgbm9uLXBvcnRhYmxlJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk0ODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1ODU6CiteSSAqIGJlY2F1c2UgUE9TSVggZG9lcyBu b3QgcmVxdWlyZSBbY2xvc2VdIHRvIHdhaXQgZm9yIGRlbGF5ZWQgSS9PIHRvJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk0OTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo1ODY6CiteSSAqIGNvbXBsZXRlLiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6NTg3OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI5NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NTg4OgorXkkgKiBJZiB0aGUgZmlsZXN5c3RlbSBzdXBwb3J0cyBmaWxlIGxvY2tpbmcgb3BlcmF0 aW9ucyAoc2V0bGssJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj Mjk1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1ODk6CiteSSAqIGdl dGxrKSBpdCBzaG91bGQgcmVtb3ZlIGFsbCBsb2NrcyBiZWxvbmdpbmcgdG8gJ2ZpLT5vd25lcicu JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk1MzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1OTA6CiteSSAqJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk1NDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo1OTE6CiteSSAqIElmIHRoaXMgcmVxdWVzdCBpcyBhbnN3ZXJlZCB3 aXRoIGFuIGVycm9yIGNvZGUgb2YgRU5PU1lTLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI5NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6NTkyOgorXkkgKiB0aGlzIGlzIHRyZWF0ZWQgYXMgc3VjY2VzcyBhbmQgZnV0dXJlIGNhbGxz IHRvIGZsdXNoKCkgd2lsbCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI5NTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NTkzOgorXkkg KiBzdWNjZWVkIGF1dG9tYXRpY2FsbHkgd2l0aG91dCBiZWluZyBzZW5kIHRvIHRoZSBmaWxlc3lz dGVtJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk1NzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1OTQ6CiteSSAqIHByb2Nlc3MuJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk1ODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo1OTU6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo1OTY6CiteSSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo1OTc6CiteSSAqICAgZnVzZV9yZXBseV9lcnIkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjU5ODoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyOTYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjU5OToKK15JICogQHBhcmFtIHJlcSByZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NjAwOgorXkkgKiBAcGFyYW0gaW5vIHRoZSBpbm9kZSBudW1iZXIkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTY0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjYwMToKK15JICogQHBhcmFtIGZpIGZpbGUgaW5mb3Jt YXRpb24kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTY1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjYwMjoKK15JICokCgpXQVJOSU5H OiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMjk2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo2MDM6CisgICAgICAgICogW2Nsb3NlXTogaHR0cDovL3B1YnMub3Blbmdy b3VwLm9yZy9vbmxpbmVwdWJzLzk2OTk5MTk3OTkvZnVuY3Rpb25zL2Nsb3NlLmh0bWwKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NjY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjAzOgorXkkgKiBbY2xvc2VdOiBodHRwOi8vcHVicy5v cGVuZ3JvdXAub3JnL29ubGluZXB1YnMvOTY5OTkxOTc5OS9mdW5jdGlvbnMvY2xvc2UuaHRtbCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5Njc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjA0OgorXkkgKi8kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjYwNToKK15Jdm9pZCAoKmZsdXNoKSAoZnVzZV9yZXFfdCByZXEsIGZ1 c2VfaW5vX3QgaW5vLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI5Njk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjA2OgorXkleSSAg ICAgICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyOTcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjYwODoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjk3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2MDk6Cite SSAqIFJlbGVhc2UgYW4gb3BlbiBmaWxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjk3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2 MTA6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk3 NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2MTE6CiteSSAqIFJlbGVh c2UgaXMgY2FsbGVkIHdoZW4gdGhlcmUgYXJlIG5vIG1vcmUgcmVmZXJlbmNlcyB0byBhbiBvcGVu JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk3NTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2MTI6CiteSSAqIGZpbGU6IGFsbCBmaWxl IGRlc2NyaXB0b3JzIGFyZSBjbG9zZWQgYW5kIGFsbCBtZW1vcnkgbWFwcGluZ3MkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTc2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjYxMzoKK15JICogYXJlIHVubWFwcGVkLiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5Nzc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6NjE0OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI5Nzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6NjE1OgorXkkgKiBGb3IgZXZlcnkgb3BlbiBjYWxsIHRoZXJlIHdpbGwgYmUgZXhhY3Rs eSBvbmUgcmVsZWFzZSBjYWxsICh1bmxlc3MkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyOTc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjYxNjoKK15JICogdGhlIGZpbGVzeXN0ZW0gaXMgZm9yY2UtdW5tb3VudGVkKS4kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTgwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjYxNzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyOTgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjYxODoKK15JICogVGhlIGZpbGVzeXN0ZW0gbWF5IHJlcGx5IHdpdGggYW4gZXJyb3Is IGJ1dCBlcnJvciB2YWx1ZXMgYXJlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjk4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2MTk6 CiteSSAqIG5vdCByZXR1cm5lZCB0byBjbG9zZSgpIG9yIG11bm1hcCgpIHdoaWNoIHRyaWdnZXJl ZCB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTgzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjYyMDoKK15JICogcmVsZWFzZS4k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTg0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjYyMToKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjYyMjoKK15JICogZmktPmZoIHdpbGwgY29udGFpbiB0aGUgdmFsdWUg c2V0IGJ5IHRoZSBvcGVuIG1ldGhvZCwgb3Igd2lsbCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI5ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6NjIzOgorXkkgKiBiZSB1bmRlZmluZWQgaWYgdGhlIG9wZW4gbWV0aG9kIGRpZG4ndCBz ZXQgYW55IHZhbHVlLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI5ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjI0OgorXkkgKiBm aS0+ZmxhZ3Mgd2lsbCBjb250YWluIHRoZSBzYW1lIGZsYWdzIGFzIGZvciBvcGVuLiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5ODg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjI1OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5ODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NjI2OgorXkkgKiBWYWxpZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5OTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NjI3OgorXkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo2Mjg6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjk5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2Mjk6 CiteSSAqIEBwYXJhbSByZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyOTkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjYzMDoKK15JICogQHBhcmFtIGlubyB0aGUgaW5vZGUgbnVtYmVyJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk5NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo2MzE6CiteSSAqIEBwYXJhbSBmaSBmaWxlIGluZm9ybWF0aW9u JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk5NTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2MzI6CiteSSAqLyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5OTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6NjMzOgorXkl2b2lkICgqcmVsZWFzZSkgKGZ1c2VfcmVxX3QgcmVx LCBmdXNlX2lub190IGlubywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyOTk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjYzNDoKK15J XkleSSBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyOTk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjYzNjoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzAwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2Mzc6Cite SSAqIFN5bmNocm9uaXplIGZpbGUgY29udGVudHMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMDAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjYzODoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMDAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjYzOToKK15JICog SWYgdGhlIGRhdGFzeW5jIHBhcmFtZXRlciBpcyBub24temVybywgdGhlbiBvbmx5IHRoZSB1c2Vy IGRhdGEkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDAzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY0MDoKK15JICogc2hvdWxkIGJl IGZsdXNoZWQsIG5vdCB0aGUgbWV0YSBkYXRhLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMwMDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6NjQxOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMwMDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjQyOgorXkkgKiBJ ZiB0aGlzIHJlcXVlc3QgaXMgYW5zd2VyZWQgd2l0aCBhbiBlcnJvciBjb2RlIG9mIEVOT1NZUywk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDA2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY0MzoKK15JICogdGhpcyBpcyB0cmVhdGVk IGFzIHN1Y2Nlc3MgYW5kIGZ1dHVyZSBjYWxscyB0byBmc3luYygpIHdpbGwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDA3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjY0NDoKK15JICogc3VjY2VlZCBhdXRvbWF0aWNhbGx5IHdpdGhv dXQgYmVpbmcgc2VuZCB0byB0aGUgZmlsZXN5c3RlbSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6NjQ1OgorXkkgKiBwcm9jZXNzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMwMDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NjQ2OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMw MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjQ3OgorXkkgKiBWYWxp ZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMw MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjQ4OgorXkkgKiAgIGZ1 c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzAxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NDk6CiteSSAqJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAxMzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NTA6CiteSSAqIEBwYXJhbSByZXEgcmVxdWVz dCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDE0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY1MToKK15JICogQHBhcmFt IGlubyB0aGUgaW5vZGUgbnVtYmVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzAxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NTI6 CiteSSAqIEBwYXJhbSBkYXRhc3luYyBmbGFnIGluZGljYXRpbmcgaWYgb25seSBkYXRhIHNob3Vs ZCBiZSBmbHVzaGVkJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzAxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NTM6CiteSSAqIEBw YXJhbSBmaSBmaWxlIGluZm9ybWF0aW9uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzAxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2 NTQ6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMw MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjU1OgorXkl2b2lkICgq ZnN5bmMpIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sIGludCBkYXRhc3luYywkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDE5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY1NjoKK15JXkkgICAgICAgc3RydWN0IGZ1c2Vf ZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzAyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NTg6CiteSS8q KiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMjI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjU5OgorXkkgKiBPcGVuIGEgZGlyZWN0 b3J5JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAyMzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NjA6CiteSSAqJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAyNDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NjE6CiteSSAqIEZpbGVzeXN0ZW0gbWF5IHN0b3JlIGFuIGFy Yml0cmFyeSBmaWxlIGhhbmRsZSAocG9pbnRlciwgaW5kZXgsJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo2NjI6CiteSSAqIGV0YykgaW4gZmktPmZoLCBhbmQgdXNlIHRoaXMgaW4gb3Ro ZXIgYWxsIG90aGVyIGRpcmVjdG9yeSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMwMjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjYz OgorXkkgKiBzdHJlYW0gb3BlcmF0aW9ucyAocmVhZGRpciwgcmVsZWFzZWRpciwgZnN5bmNkaXIp LiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMjc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NjY0OgorXkkgKiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6NjY1OgorXkkgKiBJZiB0aGlzIHJlcXVlc3QgaXMgYW5zd2VyZWQg d2l0aCBhbiBlcnJvciBjb2RlIG9mIEVOT1NZUyBhbmQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMDI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjY2NjoKK15JICogRlVTRV9DQVBfTk9fT1BFTkRJUl9TVVBQT1JUIGlzIHNldCBpbiBg ZnVzZV9jb25uX2luZm8uY2FwYWJsZWAsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzAzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2 Njc6CiteSSAqIHRoaXMgaXMgdHJlYXRlZCBhcyBzdWNjZXNzIGFuZCBmdXR1cmUgY2FsbHMgdG8g b3BlbmRpciBhbmQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MDMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY2ODoKK15JICogcmVs ZWFzZWRpciB3aWxsIGFsc28gc3VjY2VlZCB3aXRob3V0IGJlaW5nIHNlbnQgdG8gdGhlIGZpbGVz eXN0ZW0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDMyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY2OToKK15JICogcHJvY2Vzcy4g SW4gYWRkaXRpb24sIHRoZSBrZXJuZWwgd2lsbCBjYWNoZSByZWFkZGlyIHJlc3VsdHMkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDMzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY3MDoKK15JICogYXMgaWYgb3BlbmRpciByZXR1cm5l ZCBGT1BFTl9LRUVQX0NBQ0hFIHwgRk9QRU5fQ0FDSEVfRElSLiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NjcxOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMwMzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Njcy OgorXkkgKiBWYWxpZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMwMzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Njcz OgorXkkgKiAgIGZ1c2VfcmVwbHlfb3BlbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMwMzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 Njc0OgorXkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzAzODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo2NzU6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzAzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2NzY6CiteSSAqIEBw YXJhbSByZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMDQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY3 NzoKK15JICogQHBhcmFtIGlubyB0aGUgaW5vZGUgbnVtYmVyJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo2Nzg6CiteSSAqIEBwYXJhbSBmaSBmaWxlIGluZm9ybWF0aW9uJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA0MjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2Nzk6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NjgwOgorXkl2b2lkICgqb3BlbmRpcikgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lu b190IGlubywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDQ0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY4MToKK15JXkleSSBzdHJ1 Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMDQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjY4 MzoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA0 NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2ODQ6CiteSSAqIFJlYWQg ZGlyZWN0b3J5JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA0 ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2ODU6CiteSSAqJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA0OTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2ODY6CiteSSAqIFNlbmQgYSBidWZmZXIgZmlsbGVk IHVzaW5nIGZ1c2VfYWRkX2RpcmVudHJ5KCksIHdpdGggc2l6ZSBub3QkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjY4NzoKK15JICogZXhjZWVkaW5nIHRoZSByZXF1ZXN0ZWQgc2l6ZS4g IFNlbmQgYW4gZW1wdHkgYnVmZmVyIG9uIGVuZCBvZiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6Njg4OgorXkkgKiBzdHJlYW0uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzA1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2 ODk6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA1 MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2OTA6CiteSSAqIGZpLT5m aCB3aWxsIGNvbnRhaW4gdGhlIHZhbHVlIHNldCBieSB0aGUgb3BlbmRpciBtZXRob2QsIG9yJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA1NDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2OTE6CiteSSAqIHdpbGwgYmUgdW5kZWZpbmVk IGlmIHRoZSBvcGVuZGlyIG1ldGhvZCBkaWRuJ3Qgc2V0IGFueSB2YWx1ZS4kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDU1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjY5MjoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMDU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjY5MzoKK15JICogUmV0dXJuaW5nIGEgZGlyZWN0b3J5IGVudHJ5IGZyb20gcmVhZGRpcigp IGRvZXMgbm90IGFmZmVjdCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMwNTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Njk0OgorXkkg KiBpdHMgbG9va3VwIGNvdW50LiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMwNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Njk1Ogor XkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNjA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Njk3OgorXkkgKiB2YWx1ZXMgdGhh dCB3YXMgcHJldmlvdXNseSByZXR1cm5lZCBieSByZWFkZGlyKCkgZm9yIHRoZSBzYW1lJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA2MTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo2OTg6CiteSSAqIGRpcmVjdG9yeSBoYW5kbGUuIElu IHRoaXMgY2FzZSwgcmVhZGRpcigpIHNob3VsZCBza2lwIG92ZXIgZW50cmllcyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNjI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6Njk5OgorXkkgKiBjb21pbmcgYmVmb3JlIHRoZSBwb3NpdGlv biBkZWZpbmVkIGJ5IHRoZSBvZmZfdCB2YWx1ZS4gSWYgZW50cmllcyQKCldBUk5JTkc6IGxpbmUg b3ZlciA4MCBjaGFyYWN0ZXJzCiMzMDYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjcwMDoKKyAgICAgICAgKiBhcmUgYWRkZWQgb3IgcmVtb3ZlZCB3aGlsZSB0aGUgZGly ZWN0b3J5IGhhbmRsZSBpcyBvcGVuLCB0aGV5IGZpbGVzeXN0ZW0KCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NzAwOgorXkkgKiBhcmUgYWRkZWQgb3IgcmVtb3ZlZCB3aGlsZSB0aGUgZGly ZWN0b3J5IGhhbmRsZSBpcyBvcGVuLCB0aGV5IGZpbGVzeXN0ZW0kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjcwMToKK15JICogbWF5IHN0aWxsIGluY2x1ZGUgdGhlIGVudHJpZXMgdGhh dCBoYXZlIGJlZW4gcmVtb3ZlZCwgYW5kIG1heSBub3QkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMDY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjcwMjoKK15JICogcmVwb3J0IHRoZSBlbnRyaWVzIHRoYXQgaGF2ZSBiZWVuIGNyZWF0 ZWQuIEhvd2V2ZXIsIGFkZGl0aW9uIG9yJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzA2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3 MDM6CiteSSAqIHJlbW92YWwgb2YgZW50cmllcyBtdXN0IG5ldmVyIGNhdXNlIHJlYWRkaXIoKSB0 byBza2lwIG92ZXIgdW5yZWxhdGVkJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzA2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3MDQ6 CiteSSAqIGVudHJpZXMgb3IgdG8gcmVwb3J0IHRoZW0gbW9yZSB0aGFuIG9uY2UuIFRoaXMgbWVh bnMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDY4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjcwNToKK15JICogdGhhdCBvZmZfdCBj YW4gbm90IGJlIGEgc2ltcGxlIGluZGV4IHRoYXQgZW51bWVyYXRlcyB0aGUgZW50cmllcyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNjk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzA2OgorXkkgKiB0aGF0IGhhdmUgYmVlbiByZXR1 cm5lZCBidXQgbXVzdCBjb250YWluIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDcwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjcwNzoKK15JICogdW5pcXVlbHkgZGV0ZXJtaW5lIHRoZSBu ZXh0IGRpcmVjdG9yeSBlbnRyeSB0byByZXR1cm4gZXZlbiB3aGVuIHRoZSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6NzA4OgorXkkgKiBzZXQgb2YgZW50cmllcyBpcyBjaGFuZ2luZy4k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDcyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjcwOToKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDczOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjcxMDoKK15JICogVGhlIGZ1bmN0aW9uIGRvZXMgbm90IGhhdmUgdG8g cmVwb3J0IHRoZSAnLicgYW5kICcuLickCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMDc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjcx MToKK15JICogZW50cmllcywgYnV0IGlzIGFsbG93ZWQgdG8gZG8gc28uIE5vdGUgdGhhdCwgaWYg cmVhZGRpciBkb2VzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzA3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3MTI6CiteSSAqIG5v dCByZXR1cm4gJy4nIG9yICcuLicsIHRoZXkgd2lsbCBub3QgYmUgaW1wbGljaXRseSByZXR1cm5l ZCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDc2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjcxMzoKK15JICogYW5kIHRoaXMgYmVo YXZpb3IgaXMgb2JzZXJ2YWJsZSBieSB0aGUgY2FsbGVyLiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6NzE0OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMwNzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzE1Ogor XkkgKiBWYWxpZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMwNzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzE2Ogor XkkgKiAgIGZ1c2VfcmVwbHlfYnVmJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzA4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3MTc6 CiteSSAqICAgZnVzZV9yZXBseV9kYXRhJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzA4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3 MTg6CiteSSAqICAgZnVzZV9yZXBseV9lcnIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMDgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjcxOToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MDgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjcyMDoKK15JICogQHBh cmFtIHJlcSByZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMwODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzIx OgorXkkgKiBAcGFyYW0gaW5vIHRoZSBpbm9kZSBudW1iZXIkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjcyMjoKK15JICogQHBhcmFtIHNpemUgbWF4aW11bSBudW1iZXIgb2YgYnl0ZXMg dG8gc2VuZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwODY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzIzOgorXkkgKiBAcGFyYW0g b2ZmIG9mZnNldCB0byBjb250aW51ZSByZWFkaW5nIHRoZSBkaXJlY3Rvcnkgc3RyZWFtJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA4NzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3MjQ6CiteSSAqIEBwYXJhbSBmaSBmaWxlIGluZm9y bWF0aW9uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA4ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3MjU6CiteSSAqLyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwODk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzI2OgorXkl2b2lkICgqcmVhZGRpcikgKGZ1c2VfcmVx X3QgcmVxLCBmdXNlX2lub190IGlubywgc2l6ZV90IHNpemUsIG9mZl90IG9mZiwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDkwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjcyNzoKK15JXkleSSBzdHJ1Y3QgZnVzZV9maWxlX2luZm8g KmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDkyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjcyOToKK15JLyoqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA5MzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3MzA6CiteSSAqIFJlbGVhc2UgYW4gb3BlbiBkaXJlY3Rv cnkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDk0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjczMToKK15JICokCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDk1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjczMjoKK15JICogRm9yIGV2ZXJ5IG9wZW5kaXIgY2FsbCB0aGVy ZSB3aWxsIGJlIGV4YWN0bHkgb25lIHJlbGVhc2VkaXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMDk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjczMzoKK15JICogY2FsbCAodW5sZXNzIHRoZSBmaWxlc3lzdGVtIGlzIGZvcmNlLXVu bW91bnRlZCkuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA5 NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3MzQ6CiteSSAqJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA5ODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3MzU6CiteSSAqIGZpLT5maCB3aWxsIGNvbnRhaW4g dGhlIHZhbHVlIHNldCBieSB0aGUgb3BlbmRpciBtZXRob2QsIG9yJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo3MzY6CiteSSAqIHdpbGwgYmUgdW5kZWZpbmVkIGlmIHRoZSBvcGVuZGly IG1ldGhvZCBkaWRuJ3Qgc2V0IGFueSB2YWx1ZS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMTAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjczNzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMTAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjczODoKK15JICog VmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMTAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjczOToKK15JICog ICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMxMDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzQwOgorXkkg KiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMDQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzQxOgorXkkgKiBAcGFyYW0gcmVxIHJl cXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzEwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NDI6CiteSSAqIEBw YXJhbSBpbm8gdGhlIGlub2RlIG51bWJlciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMxMDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 NzQzOgorXkkgKiBAcGFyYW0gZmkgZmlsZSBpbmZvcm1hdGlvbiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6NzQ0OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMTA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc0 NToKK15Jdm9pZCAoKnJlbGVhc2VkaXIpIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8s JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzEwOTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NDY6CiteSV5JXkkgICAgc3RydWN0IGZ1 c2VfZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzExMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NDg6Cite SS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMTI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzQ5OgorXkkgKiBTeW5jaHJvbml6 ZSBkaXJlY3RvcnkgY29udGVudHMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMTEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc1MDoK K15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTE0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc1MToKK15JICogSWYgdGhlIGRh dGFzeW5jIHBhcmFtZXRlciBpcyBub24temVybywgdGhlbiBvbmx5IHRoZSBkaXJlY3RvcnkkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTE1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc1MjoKK15JICogY29udGVudHMgc2hvdWxkIGJl IGZsdXNoZWQsIG5vdCB0aGUgbWV0YSBkYXRhLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMxMTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6NzUzOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMxMTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzU0OgorXkkgKiBm aS0+Zmggd2lsbCBjb250YWluIHRoZSB2YWx1ZSBzZXQgYnkgdGhlIG9wZW5kaXIgbWV0aG9kLCBv ciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMTg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzU1OgorXkkgKiB3aWxsIGJlIHVuZGVm aW5lZCBpZiB0aGUgb3BlbmRpciBtZXRob2QgZGlkbid0IHNldCBhbnkgdmFsdWUuJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzExOTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NTY6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzEyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo3NTc6CiteSSAqIElmIHRoaXMgcmVxdWVzdCBpcyBhbnN3ZXJlZCB3aXRoIGFuIGVy cm9yIGNvZGUgb2YgRU5PU1lTLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMxMjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzU4Ogor XkkgKiB0aGlzIGlzIHRyZWF0ZWQgYXMgc3VjY2VzcyBhbmQgZnV0dXJlIGNhbGxzIHRvIGZzeW5j ZGlyKCkgd2lsbCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMx MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzU5OgorXkkgKiBzdWNj ZWVkIGF1dG9tYXRpY2FsbHkgd2l0aG91dCBiZWluZyBzZW5kIHRvIHRoZSBmaWxlc3lzdGVtJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzEyMzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NjA6CiteSSAqIHByb2Nlc3MuJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzEyNDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NjE6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzEyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo3NjI6CiteSSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzEyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo3NjM6CiteSSAqICAgZnVzZV9yZXBseV9lcnIkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjc2NDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMTI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc2NToK K15JICogQHBhcmFtIHJlcSByZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6NzY2OgorXkkgKiBAcGFyYW0gaW5vIHRoZSBpbm9kZSBudW1iZXIkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTMwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjc2NzoKK15JICogQHBhcmFtIGRhdGFzeW5jIGZsYWcgaW5kaWNh dGluZyBpZiBvbmx5IGRhdGEgc2hvdWxkIGJlIGZsdXNoZWQkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjc2ODoKK15JICogQHBhcmFtIGZpIGZpbGUgaW5mb3JtYXRpb24kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTMyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc2OToKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzEzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo3NzA6CiteSXZvaWQgKCpmc3luY2RpcikgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lu b190IGlubywgaW50IGRhdGFzeW5jLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMxMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Nzcx OgorXkleSV5JICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjc3MzoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzEzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3 NzQ6CiteSSAqIEdldCBmaWxlIHN5c3RlbSBzdGF0aXN0aWNzJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzEzODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo3NzU6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzEzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3NzY6 CiteSSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzE0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3Nzc6 CiteSSAqICAgZnVzZV9yZXBseV9zdGF0ZnMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMTQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o Ojc3ODoKK15JICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMxNDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6Nzc5OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMxNDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzgwOgorXkkgKiBA cGFyYW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzE0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3 ODE6CiteSSAqIEBwYXJhbSBpbm8gdGhlIGlub2RlIG51bWJlciwgemVybyBtZWFucyAidW5kZWZp bmVkIiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxNDU6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6NzgyOgorXkkgKi8kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTQ2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc4MzoKK15Jdm9pZCAoKnN0YXRmcykgKGZ1c2VfcmVxX3Qg cmVxLCBmdXNlX2lub190IGlubyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzE0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3ODU6 CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxNDk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Nzg2OgorXkkgKiBTZXQgYW4g ZXh0ZW5kZWQgYXR0cmlidXRlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzE1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3ODc6Cite SSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE1MTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3ODg6CiteSSAqIElmIHRoaXMgcmVx dWVzdCBpcyBhbnN3ZXJlZCB3aXRoIGFuIGVycm9yIGNvZGUgb2YgRU5PU1lTLCB0aGlzIGlzJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE1MjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3ODk6CiteSSAqIHRyZWF0ZWQgYXMgYSBwZXJt YW5lbnQgZmFpbHVyZSB3aXRoIGVycm9yIGNvZGUgRU9QTk9UU1VQUCwgaS5lLiBhbGwkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTUzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc5MDoKK15JICogZnV0dXJlIHNldHhhdHRyKCkgcmVx dWVzdHMgd2lsbCBmYWlsIHdpdGggRU9QTk9UU1VQUCB3aXRob3V0IGJlaW5nJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE1NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo3OTE6CiteSSAqIHNlbmQgdG8gdGhlIGZpbGVzeXN0ZW0gcHJv Y2Vzcy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTU1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc5MjoKK15JICokCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTU2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc5MzoKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTU3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjc5NDoKK15JICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxNTg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6Nzk1OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjc5NjoKK15Jdm9pZCAoKnNldHhhdHRyKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2Vf aW5vX3QgaW5vLCBjb25zdCBjaGFyICpuYW1lLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMxNjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6Nzk3OgorXkleSV5JICBjb25zdCBjaGFyICp2YWx1ZSwgc2l6ZV90IHNpemUsIGludCBmbGFn cyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE2MjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo3OTk6CiteSS8qKiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxNjM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6ODAwOgorXkkgKiBHZXQgYW4gZXh0ZW5kZWQgYXR0cmlidXRl JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE2NDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4MDE6CiteSSAqJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE2NTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo4MDI6CiteSSAqIElmIHNpemUgaXMgemVybywgdGhlIHNpemUgb2Yg dGhlIHZhbHVlIHNob3VsZCBiZSBzZW50IHdpdGgkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMTY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjgwMzoKK15JICogZnVzZV9yZXBseV94YXR0ci4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMTY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjgwNDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMTY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjgwNToKK15J ICogSWYgdGhlIHNpemUgaXMgbm9uLXplcm8sIGFuZCB0aGUgdmFsdWUgZml0cyBpbiB0aGUgYnVm ZmVyLCB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTY5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjgwNjoKK15JICogdmFsdWUg c2hvdWxkIGJlIHNlbnQgd2l0aCBmdXNlX3JlcGx5X2J1Zi4kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjgwNzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMTcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjgwODoK K15JICogSWYgdGhlIHNpemUgaXMgdG9vIHNtYWxsIGZvciB0aGUgdmFsdWUsIHRoZSBFUkFOR0Ug ZXJyb3Igc2hvdWxkJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzE3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4MDk6CiteSSAqIGJl IHNlbnQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE3Mzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4MTA6CiteSSAqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE3NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4MTE6CiteSSAqIElmIHRoaXMgcmVxdWVzdCBpcyBhbnN3 ZXJlZCB3aXRoIGFuIGVycm9yIGNvZGUgb2YgRU5PU1lTLCB0aGlzIGlzJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE3NTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo4MTI6CiteSSAqIHRyZWF0ZWQgYXMgYSBwZXJtYW5lbnQgZmFpbHVy ZSB3aXRoIGVycm9yIGNvZGUgRU9QTk9UU1VQUCwgaS5lLiBhbGwkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjgxMzoKK15JICogZnV0dXJlIGdldHhhdHRyKCkgcmVxdWVzdHMgd2lsbCBm YWlsIHdpdGggRU9QTk9UU1VQUCB3aXRob3V0IGJlaW5nJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzE3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo4MTQ6CiteSSAqIHNlbmQgdG8gdGhlIGZpbGVzeXN0ZW0gcHJvY2Vzcy4kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTc4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjgxNToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjgxNjoKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjgxNzoKK15JICogICBmdXNlX3JlcGx5X2J1ZiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6ODE4OgorXkkgKiAgIGZ1c2VfcmVwbHlfZGF0YSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6ODE5OgorXkkgKiAgIGZ1c2VfcmVwbHlfeGF0dHIkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTgzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjgyMDoKK15JICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxODQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6ODIxOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMxODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6ODIyOgorXkkgKiBAcGFyYW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE4NjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo4MjM6CiteSSAqIEBwYXJhbSBpbm8gdGhlIGlub2RlIG51bWJlciQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxODc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODI0OgorXkkgKiBAcGFyYW0gbmFtZSBvZiB0 aGUgZXh0ZW5kZWQgYXR0cmlidXRlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzE4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4MjU6 CiteSSAqIEBwYXJhbSBzaXplIG1heGltdW0gc2l6ZSBvZiB0aGUgdmFsdWUgdG8gc2VuZCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxODk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODI2OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjgyNzoKK15Jdm9pZCAoKmdldHhhdHRyKSAoZnVzZV9yZXFfdCByZXEsIGZ1 c2VfaW5vX3QgaW5vLCBjb25zdCBjaGFyICpuYW1lLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMxOTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6ODI4OgorXkleSV5JICBzaXplX3Qgc2l6ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzE5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo4MzA6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMxOTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODMxOgor XkkgKiBMaXN0IGV4dGVuZGVkIGF0dHJpYnV0ZSBuYW1lcyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxOTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6ODMyOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMxOTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODMzOgor XkkgKiBJZiBzaXplIGlzIHplcm8sIHRoZSB0b3RhbCBzaXplIG9mIHRoZSBhdHRyaWJ1dGUgbGlz dCBzaG91bGQgYmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MTk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjgzNDoKK15JICogc2Vu dCB3aXRoIGZ1c2VfcmVwbHlfeGF0dHIuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzE5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4 MzU6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE5 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4MzY6CiteSSAqIElmIHRo ZSBzaXplIGlzIG5vbi16ZXJvLCBhbmQgdGhlIG51bGwgY2hhcmFjdGVyIHNlcGFyYXRlZCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMDA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODM3OgorXkkgKiBhdHRyaWJ1dGUgbGlzdCBmaXRz IGluIHRoZSBidWZmZXIsIHRoZSBsaXN0IHNob3VsZCBiZSBzZW50IHdpdGgkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjAxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjgzODoKK15JICogZnVzZV9yZXBseV9idWYuJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIwMjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo4Mzk6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzIwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo4NDA6CiteSSAqIElmIHRoZSBzaXplIGlzIHRvbyBzbWFsbCBmb3IgdGhlIGxpc3QsIHRo ZSBFUkFOR0UgZXJyb3Igc2hvdWxkJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzIwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4NDE6 CiteSSAqIGJlIHNlbnQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzIwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4NDI6CiteSSAq JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIwNjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4NDM6CiteSSAqIElmIHRoaXMgcmVxdWVz dCBpcyBhbnN3ZXJlZCB3aXRoIGFuIGVycm9yIGNvZGUgb2YgRU5PU1lTLCB0aGlzIGlzJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIwNzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4NDQ6CiteSSAqIHRyZWF0ZWQgYXMgYSBwZXJtYW5l bnQgZmFpbHVyZSB3aXRoIGVycm9yIGNvZGUgRU9QTk9UU1VQUCwgaS5lLiBhbGwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjA4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg0NToKK15JICogZnV0dXJlIGxpc3R4YXR0cigpIHJlcXVl c3RzIHdpbGwgZmFpbCB3aXRoIEVPUE5PVFNVUFAgd2l0aG91dCBiZWluZyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6ODQ2OgorXkkgKiBzZW5kIHRvIHRoZSBmaWxlc3lzdGVtIHByb2Nl c3MuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIxMDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4NDc6CiteSSAqJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIxMTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo4NDg6CiteSSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIxMjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDo4NDk6CiteSSAqICAgZnVzZV9yZXBseV9idWYkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjEzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg1MDoKK15JICogICBmdXNlX3JlcGx5X2RhdGEkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjE0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg1MToKK15JICogICBmdXNlX3JlcGx5X3hhdHRyJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIxNTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4NTI6CiteSSAqICAgZnVzZV9yZXBseV9lcnIk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjE2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg1MzoKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjg1NDoKK15JICogQHBhcmFtIHJlcSByZXF1ZXN0IGhhbmRsZSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMTg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODU1OgorXkkgKiBAcGFyYW0gaW5vIHRoZSBpbm9k ZSBudW1iZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjE5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg1NjoKK15JICogQHBhcmFt IHNpemUgbWF4aW11bSBzaXplIG9mIHRoZSBsaXN0IHRvIHNlbmQkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjg1NzoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzIyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4 NTg6CiteSXZvaWQgKCpsaXN0eGF0dHIpIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8s IHNpemVfdCBzaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMjIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg2MDoKK15JLyoq JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIyNDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4NjE6CiteSSAqIFJlbW92ZSBhbiBleHRl bmRlZCBhdHRyaWJ1dGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMjI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg2MjoKK15JICok CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjI2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg2MzoKK15JICogSWYgdGhpcyByZXF1ZXN0 IGlzIGFuc3dlcmVkIHdpdGggYW4gZXJyb3IgY29kZSBvZiBFTk9TWVMsIHRoaXMgaXMkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjI3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg2NDoKK15JICogdHJlYXRlZCBhcyBhIHBlcm1hbmVu dCBmYWlsdXJlIHdpdGggZXJyb3IgY29kZSBFT1BOT1RTVVBQLCBpLmUuIGFsbCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMjg6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6ODY1OgorXkkgKiBmdXR1cmUgcmVtb3ZleGF0dHIoKSByZXF1 ZXN0cyB3aWxsIGZhaWwgd2l0aCBFT1BOT1RTVVBQIHdpdGhvdXQgYmVpbmckCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjI5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjg2NjoKK15JICogc2VuZCB0byB0aGUgZmlsZXN5c3RlbSBwcm9j ZXNzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMzA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODY3OgorXkkgKiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMzE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6ODY4OgorXkkgKiBWYWxpZCByZXBsaWVzOiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMzI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6ODY5OgorXkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIzMzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4NzA6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzIzNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo4NzE6CiteSSAqIEBwYXJhbSByZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjM1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjg3MjoKK15JICogQHBhcmFtIGlubyB0aGUgaW5vZGUgbnVtYmVy JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIzNjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4NzM6CiteSSAqIEBwYXJhbSBuYW1lIG9m IHRoZSBleHRlbmRlZCBhdHRyaWJ1dGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMjM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg3 NDoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIz ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4NzU6CiteSXZvaWQgKCpy ZW1vdmV4YXR0cikgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IGlubywgY29uc3QgY2hhciAq bmFtZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI0MDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4Nzc6CiteSS8qKiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNDE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODc4OgorXkkgKiBDaGVjayBmaWxlIGFjY2VzcyBwZXJt aXNzaW9ucyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNDI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODc5OgorXkkgKiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNDM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODgwOgorXkkgKiBUaGlzIHdpbGwgYmUgY2FsbGVkIGZv ciB0aGUgYWNjZXNzKCkgYW5kIGNoZGlyKCkgc3lzdGVtJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzI0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo4ODE6CiteSSAqIGNhbGxzLiAgSWYgdGhlICdkZWZhdWx0X3Blcm1pc3Npb25zJyBt b3VudCBvcHRpb24gaXMgZ2l2ZW4sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzI0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4ODI6 CiteSSAqIHRoaXMgbWV0aG9kIGlzIG5vdCBjYWxsZWQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzI0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo4ODM6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzI0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4ODQ6Cite SSAqIFRoaXMgbWV0aG9kIGlzIG5vdCBjYWxsZWQgdW5kZXIgTGludXgga2VybmVsIHZlcnNpb25z IDIuNC54JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI0ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4ODU6CiteSSAqJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI0OTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4ODY6CiteSSAqIElmIHRoaXMgcmVxdWVzdCBpcyBhbnN3 ZXJlZCB3aXRoIGFuIGVycm9yIGNvZGUgb2YgRU5PU1lTLCB0aGlzIGlzJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI1MDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo4ODc6CiteSSAqIHRyZWF0ZWQgYXMgYSBwZXJtYW5lbnQgc3VjY2Vz cywgaS5lLiB0aGlzIGFuZCBhbGwgZnV0dXJlIGFjY2VzcygpJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo4ODg6CiteSSAqIHJlcXVlc3RzIHdpbGwgc3VjY2VlZCB3aXRob3V0IGJlaW5n IHNlbmQgdG8gdGhlIGZpbGVzeXN0ZW0gcHJvY2Vzcy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMjUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjg4OToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMjUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg5MDoKK15J ICogVmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMjU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg5MToKK15J ICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMyNTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODkyOgor XkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNTY6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6ODkzOgorXkkgKiBAcGFyYW0gcmVx IHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzI1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo4OTQ6CiteSSAq IEBwYXJhbSBpbm8gdGhlIGlub2RlIG51bWJlciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMyNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6ODk1OgorXkkgKiBAcGFyYW0gbWFzayByZXF1ZXN0ZWQgYWNjZXNzIG1vZGUkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjU5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg5NjoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzI2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo4OTc6CiteSXZvaWQgKCphY2Nlc3MpIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9f dCBpbm8sIGludCBtYXNrKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMjYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjg5OToKK15J LyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI2MzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MDA6CiteSSAqIENyZWF0ZSBhbmQg b3BlbiBhIGZpbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MjY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjkwMToKK15JICokCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjY1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjkwMjoKK15JICogSWYgdGhlIGZpbGUgZG9lcyBu b3QgZXhpc3QsIGZpcnN0IGNyZWF0ZSBpdCB3aXRoIHRoZSBzcGVjaWZpZWQkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjY2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjkwMzoKK15JICogbW9kZSwgYW5kIHRoZW4gb3BlbiBpdC4kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjY3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjkwNDoKK15JICokCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjkwNToKK15JICogU2VlIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgb3BlbiBo YW5kbGVyIGZvciBtb3JlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzI2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MDY6CiteSSAq IGluZm9ybWF0aW9uLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMyNzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTA3OgorXkkgKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNzE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTA4OgorXkkgKiBJZiB0aGlzIG1ldGhvZCBp cyBub3QgaW1wbGVtZW50ZWQgb3IgdW5kZXIgTGludXgga2VybmVsJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo5MDk6CiteSSAqIHZlcnNpb25zIGVhcmxpZXIgdGhhbiAyLjYuMTUsIHRo ZSBta25vZCgpIGFuZCBvcGVuKCkgbWV0aG9kcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMyNzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6OTEwOgorXkkgKiB3aWxsIGJlIGNhbGxlZCBpbnN0ZWFkLiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6OTExOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMyNzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTEy OgorXkkgKiBJZiB0aGlzIHJlcXVlc3QgaXMgYW5zd2VyZWQgd2l0aCBhbiBlcnJvciBjb2RlIG9m IEVOT1NZUywgdGhlIGhhbmRsZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMjc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjkxMzoK K15JICogaXMgdHJlYXRlZCBhcyBub3QgaW1wbGVtZW50ZWQgKGkuZS4sIGZvciB0aGlzIGFuZCBm dXR1cmUgcmVxdWVzdHMgdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzI3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MTQ6Cite SSAqIG1rbm9kKCkgYW5kIG9wZW4oKSBoYW5kbGVycyB3aWxsIGJlIGNhbGxlZCBpbnN0ZWFkKS4k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjc4OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjkxNToKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjkxNjoKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjkxNzoKK15JICogICBmdXNlX3JlcGx5X2NyZWF0ZSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyODE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6OTE4OgorXkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI4MjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MTk6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzI4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDo5MjA6CiteSSAqIEBwYXJhbSByZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjg0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjkyMToKK15JICogQHBhcmFtIHBhcmVudCBpbm9kZSBudW1iZXIg b2YgdGhlIHBhcmVudCBkaXJlY3RvcnkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMjg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjky MjoKK15JICogQHBhcmFtIG5hbWUgdG8gY3JlYXRlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzI4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo5MjM6CiteSSAqIEBwYXJhbSBtb2RlIGZpbGUgdHlwZSBhbmQgbW9kZSB3aXRoIHdoaWNo IHRvIGNyZWF0ZSB0aGUgbmV3IGZpbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMjg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjky NDoKK15JICogQHBhcmFtIGZpIGZpbGUgaW5mb3JtYXRpb24kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjkyNToKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzI4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MjY6 CiteSXZvaWQgKCpjcmVhdGUpIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBwYXJlbnQsIGNv bnN0IGNoYXIgKm5hbWUsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzI5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5Mjc6CiteSV5J Xkltb2RlX3QgbW9kZSwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI5MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo5Mjk6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMyOTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6OTMwOgorXkkgKiBUZXN0IGZvciBhIFBPU0lYIGZpbGUgbG9jayQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyOTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6OTMxOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMyOTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 OTMyOgorXkkgKiBWYWxpZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMyOTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 OTMzOgorXkkgKiAgIGZ1c2VfcmVwbHlfbG9jayQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMyOTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6OTM0OgorXkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzI5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo5MzU6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzI5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5MzY6CiteSSAq IEBwYXJhbSByZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMzAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjkzNzoKK15JICogQHBhcmFtIGlubyB0aGUgaW5vZGUgbnVtYmVyJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo5Mzg6CiteSSAqIEBwYXJhbSBmaSBmaWxlIGluZm9ybWF0aW9uJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMwMjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5Mzk6CiteSSAqIEBwYXJhbSBsb2NrIHRoZSByZWdp b24vdHlwZSB0byB0ZXN0JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzMwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NDA6CiteSSAq LyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMDQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTQxOgorXkl2b2lkICgqZ2V0bGspIChm dXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzMwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDo5NDI6CiteSV5JICAgICAgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmksIHN0cnVjdCBm bG9jayAqbG9jayk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzMwNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NDQ6CiteSS8qKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMDg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTQ1OgorXkkgKiBBY3F1aXJlLCBtb2RpZnkg b3IgcmVsZWFzZSBhIFBPU0lYIGZpbGUgbG9jayQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMzMDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6OTQ2OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMzMTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTQ3OgorXkkgKiBG b3IgUE9TSVggdGhyZWFkcyAoTlBUTCkgdGhlcmUncyBhIDEtMSByZWxhdGlvbiBiZXR3ZWVuIHBp ZCBhbmQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzExOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk0ODoKK15JICogb3duZXIsIGJ1 dCBvdGhlcndpc2UgdGhpcyBpcyBub3QgYWx3YXlzIHRoZSBjYXNlLiAgRm9yIGNoZWNraW5nJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMxMjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NDk6CiteSSAqIGxvY2sgb3duZXJzaGlwLCAn ZmktPm93bmVyJyBtdXN0IGJlIHVzZWQuICBUaGUgbF9waWQgZmllbGQgaW4kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzEzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjk1MDoKK15JICogJ3N0cnVjdCBmbG9jaycgc2hvdWxkIG9ubHkg YmUgdXNlZCB0byBmaWxsIGluIHRoaXMgZmllbGQgaW4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMzE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjk1MToKK15JICogZ2V0bGsoKS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMzE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o Ojk1MjoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MzE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk1MzoKK15JICogTm90 ZTogaWYgdGhlIGxvY2tpbmcgbWV0aG9kcyBhcmUgbm90IGltcGxlbWVudGVkLCB0aGUga2VybmVs JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMxNzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NTQ6CiteSSAqIHdpbGwgc3RpbGwgYWxs b3cgZmlsZSBsb2NraW5nIHRvIHdvcmsgbG9jYWxseS4gIEhlbmNlIHRoZXNlIGFyZSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMTg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTU1OgorXkkgKiBvbmx5IGludGVyZXN0aW5nIGZvciBu ZXR3b3JrIGZpbGVzeXN0ZW1zIGFuZCBzaW1pbGFyLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6OTU2OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMzMjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTU3OgorXkkg KiBWYWxpZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMzMjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTU4OgorXkkg KiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzMyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NTk6Cite SSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMyMzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5NjA6CiteSSAqIEBwYXJhbSByZXEg cmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMzI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk2MToKK15JICog QHBhcmFtIGlubyB0aGUgaW5vZGUgbnVtYmVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzMyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo5NjI6CiteSSAqIEBwYXJhbSBmaSBmaWxlIGluZm9ybWF0aW9uJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzMyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDo5NjM6CiteSSAqIEBwYXJhbSBsb2NrIHRoZSByZWdpb24vdHlwZSB0byBz ZXQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzI3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk2NDoKK15JICogQHBhcmFtIHNsZWVw IGxvY2tpbmcgb3BlcmF0aW9uIG1heSBzbGVlcCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMzMjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6OTY1OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMzI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk2NjoKK15Jdm9p ZCAoKnNldGxrKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6OTY3OgorXkleSSAgICAgICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8g KmZpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMzE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTY4OgorXkleSSAgICAgICBzdHJ1 Y3QgZmxvY2sgKmxvY2ssIGludCBzbGVlcCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzMzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDo5NzA6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMzMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTcxOgorXkkgKiBN YXAgYmxvY2sgaW5kZXggd2l0aGluIGZpbGUgdG8gYmxvY2sgaW5kZXggd2l0aGluIGRldmljZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMzU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTcyOgorXkkgKiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6OTczOgorXkkgKiBOb3RlOiBUaGlzIG1ha2VzIHNlbnNlIG9ubHkgZm9y IGJsb2NrIGRldmljZSBiYWNrZWQgZmlsZXN5c3RlbXMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMzM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjk3NDoKK15JICogbW91bnRlZCB3aXRoIHRoZSAnYmxrZGV2JyBvcHRpb24kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzM4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk3NToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjk3NjoKK15JICogSWYgdGhpcyByZXF1ZXN0IGlzIGFuc3dlcmVkIHdpdGggYW4g ZXJyb3IgY29kZSBvZiBFTk9TWVMsIHRoaXMgaXMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMzQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjk3NzoKK15JICogdHJlYXRlZCBhcyBhIHBlcm1hbmVudCBmYWlsdXJlLCBpLmUuIGFsbCBm dXR1cmUgYm1hcCgpIHJlcXVlc3RzIHdpbGwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMzQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o Ojk3ODoKK15JICogZmFpbCB3aXRoIHRoZSBzYW1lIGVycm9yIGNvZGUgd2l0aG91dCBiZWluZyBz ZW5kIHRvIHRoZSBmaWxlc3lzdGVtJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzM0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5Nzk6 CiteSSAqIHByb2Nlc3MuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzM0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5ODA6CiteSSAq JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM0NDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5ODE6CiteSSAqIFZhbGlkIHJlcGxpZXM6 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM0NTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5ODI6CiteSSAqICAgZnVzZV9yZXBseV9i bWFwJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM0NjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDo5ODM6CiteSSAqICAgZnVzZV9yZXBs eV9lcnIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzQ3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk4NDoKK15JICokCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzQ4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk4NToKK15JICogQHBhcmFtIHJlcSByZXF1ZXN0IGhhbmRs ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNDk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTg2OgorXkkgKiBAcGFyYW0gaW5vIHRo ZSBpbm9kZSBudW1iZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMzUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk4NzoKK15JICog QHBhcmFtIGJsb2Nrc2l6ZSB1bml0IG9mIGJsb2NrIGluZGV4JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo5ODg6CiteSSAqIEBwYXJhbSBpZHggYmxvY2sgaW5kZXggd2l0aGluIGZpbGUk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzUyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk4OToKK15JICovJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM1MzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDo5OTA6CiteSXZvaWQgKCpibWFwKSAoZnVzZV9yZXFfdCByZXEsIGZ1 c2VfaW5vX3QgaW5vLCBzaXplX3QgYmxvY2tzaXplLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6OTkxOgorXkleSSAgICAgIHVpbnQ2NF90IGlkeCk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDo5OTM6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMzNTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTk0 OgorXkkgKiBJb2N0bCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMzNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTk1OgorXkkgKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNTk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6OTk2OgorXkkgKiBOb3RlOiBGb3IgdW5yZXN0 cmljdGVkIGlvY3RscyAobm90IGFsbG93ZWQgZm9yIEZVU0UkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjk5NzoKK15JICogc2VydmVycyksIGRhdGEgaW4gYW5kIG91dCBhcmVhcyBjYW4g YmUgZGlzY292ZXJlZCBieSBnaXZpbmckCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMzYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk5 ODoKK15JICogaW92cyBhbmQgc2V0dGluZyBGVVNFX0lPQ1RMX1JFVFJZIGluICpmbGFncyouICBG b3IkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzYyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjk5OToKK15JICogcmVzdHJpY3RlZCBp b2N0bHMsIGtlcm5lbCBwcmVwYXJlcyBpbi9vdXQgZGF0YSBhcmVhJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDoxMDAwOgorXkkgKiBhY2NvcmRpbmcgdG8gdGhlIGluZm9ybWF0aW9uIGVu Y29kZWQgaW4gY21kLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMzNjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTAwMToKK15JICok CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzY1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwMDI6CiteSSAqIFZhbGlkIHJlcGxpZXM6 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM2NjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDAzOgorXkkgKiAgIGZ1c2VfcmVwbHlf aW9jdGxfcmV0cnkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MzY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwMDQ6CiteSSAqICAg ZnVzZV9yZXBseV9pb2N0bCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMzNjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTAwNToKK15J ICogICBmdXNlX3JlcGx5X2lvY3RsX2lvdiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMzNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MTAwNjoKK15JICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMzNzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6MTAwNzoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMzcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwMDg6CiteSSAq IEBwYXJhbSByZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMzcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjEwMDk6CiteSSAqIEBwYXJhbSBpbm8gdGhlIGlub2RlIG51bWJlciQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6MTAxMDoKK15JICogQHBhcmFtIGNtZCBpb2N0bCBjb21tYW5kJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM3NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDExOgorXkkgKiBAcGFyYW0gYXJnIGlvY3RsIGFy Z3VtZW50JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM3NTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDEyOgorXkkgKiBAcGFyYW0g ZmkgZmlsZSBpbmZvcm1hdGlvbiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMzNzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTAxMzoK K15JICogQHBhcmFtIGZsYWdzIGZvciBGVVNFX0lPQ1RMXyogZmxhZ3MkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjEwMTQ6CiteSSAqIEBwYXJhbSBpbl9idWYgZGF0YSBmZXRjaGVkIGZy b20gdGhlIGNhbGxlciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMzNzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTAxNToKK15JICog QHBhcmFtIGluX2J1ZnN6IG51bWJlciBvZiBmZXRjaGVkIGJ5dGVzJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDoxMDE2OgorXkkgKiBAcGFyYW0gb3V0X2J1ZnN6IG1heGltdW0gc2l6ZSBv ZiBvdXRwdXQgZGF0YSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMzODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTAxNzoKK15JICok CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzgxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwMTg6CiteSSAqIE5vdGUgOiB0aGUgdW5z aWduZWQgbG9uZyByZXF1ZXN0IHN1Ym1pdHRlZCBieSB0aGUgYXBwbGljYXRpb24kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzgyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwMTk6CiteSSAqIGlzIHRydW5jYXRlZCB0byAzMiBiaXRz LiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzODM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTAyMDoKK15JICovJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM4NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDIxOgorXkl2b2lkICgqaW9jdGwpIChmdXNlX3JlcV90IHJl cSwgZnVzZV9pbm9fdCBpbm8sIHVuc2lnbmVkIGludCBjbWQsJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoxMDIyOgorXkleSSAgICAgICB2b2lkICphcmcsIHN0cnVjdCBmdXNlX2ZpbGVf aW5mbyAqZmksIHVuc2lnbmVkIGZsYWdzLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMzODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MTAyMzoKK15JXkkgICAgICAgY29uc3Qgdm9pZCAqaW5fYnVmLCBzaXplX3QgaW5fYnVmc3osIHNp emVfdCBvdXRfYnVmc3opOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzMzODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTAyNToKK15J LyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM4OTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDI2OgorXkkgKiBQb2xsIGZvciBJ TyByZWFkaW5lc3MkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MzkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwMjc6CiteSSAqJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM5MTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDI4OgorXkkgKiBOb3RlOiBJZiBwaCBpcyBu b24tTlVMTCwgdGhlIGNsaWVudCBzaG91bGQgbm90aWZ5JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzM5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDoxMDI5OgorXkkgKiB3aGVuIElPIHJlYWRpbmVzcyBldmVudHMgb2NjdXIgYnkgY2Fs bGluZyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzOTM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTAzMDoKK15JICogZnVzZV9sb3ds ZXZlbF9ub3RpZnlfcG9sbCgpIHdpdGggdGhlIHNwZWNpZmllZCBwaC4kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjEwMzE6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzM5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDoxMDMyOgorXkkgKiBSZWdhcmRsZXNzIG9mIHRoZSBudW1iZXIgb2YgdGltZXMgcG9sbCB3aXRo IGEgbm9uLU5VTEwgcGgkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMzk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwMzM6CiteSSAq IGlzIHJlY2VpdmVkLCBzaW5nbGUgbm90aWZpY2F0aW9uIGlzIGVub3VnaCB0byBjbGVhciBhbGwu JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM5NzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDM0OgorXkkgKiBOb3RpZnlpbmcgbW9y ZSB0aW1lcyBpbmN1cnMgb3ZlcmhlYWQgYnV0IGRvZXNuJ3QgaGFybSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzOTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6MTAzNToKK15JICogY29ycmVjdG5lc3MuJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDoxMDM2OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzM0MDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MTAzNzoKK15JICogVGhlIGNhbGxlZSBpcyByZXNwb25zaWJsZSBmb3IgZGVzdHJveWluZyBwaCB3 aXRoJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQwMTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDM4OgorXkkgKiBmdXNlX3BvbGxo YW5kbGVfZGVzdHJveSgpIHdoZW4gbm8gbG9uZ2VyIGluIHVzZS4kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjEwMzk6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzQwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDox MDQwOgorXkkgKiBJZiB0aGlzIHJlcXVlc3QgaXMgYW5zd2VyZWQgd2l0aCBhbiBlcnJvciBjb2Rl IG9mIEVOT1NZUywgdGhpcyBpcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzM0MDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA0MToK K15JICogdHJlYXRlZCBhcyBzdWNjZXNzICh3aXRoIGEga2VybmVsLWRlZmluZWQgZGVmYXVsdCBw b2xsLW1hc2spIGFuZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM0MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA0MjoKK15JICog ZnV0dXJlIGNhbGxzIHRvIHB1bGwoKSB3aWxsIHN1Y2NlZWQgdGhlIHNhbWUgd2F5IHdpdGhvdXQg YmVpbmcgc2VuZCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0 MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA0MzoKK15JICogdG8g dGhlIGZpbGVzeXN0ZW0gcHJvY2Vzcy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNDA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEw NDQ6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQw ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDQ1OgorXkkgKiBWYWxp ZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0 MDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA0NjoKK15JICogICBm dXNlX3JlcGx5X3BvbGwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzNDEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwNDc6CiteSSAq ICAgZnVzZV9yZXBseV9lcnIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzNDExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwNDg6Cite SSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQxMjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDQ5OgorXkkgKiBAcGFyYW0gcmVx IHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzQxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDUwOgorXkkg KiBAcGFyYW0gaW5vIHRoZSBpbm9kZSBudW1iZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzNDE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjEwNTE6CiteSSAqIEBwYXJhbSBmaSBmaWxlIGluZm9ybWF0aW9uJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQxNTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDoxMDUyOgorXkkgKiBAcGFyYW0gcGggcG9sbCBoYW5kbGUgdG8gYmUg dXNlZCBmb3Igbm90aWZpY2F0aW9uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzQxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDUz OgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDE3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwNTQ6CiteSXZvaWQgKCpw b2xsKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLCBzdHJ1Y3QgZnVzZV9maWxlX2lu Zm8gKmZpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0MTg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA1NToKK15JXkkgICAgICBz dHJ1Y3QgZnVzZV9wb2xsaGFuZGxlICpwaCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzQyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDoxMDU3OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzNDIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwNTg6CiteSSAq IFdyaXRlIGRhdGEgbWFkZSBhdmFpbGFibGUgaW4gYSBidWZmZXIkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjEwNTk6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzQyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDox MDYwOgorXkkgKiBUaGlzIGlzIGEgbW9yZSBnZW5lcmljIHZlcnNpb24gb2YgdGhlIC0+d3JpdGUo KSBtZXRob2QuICBJZiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM0MjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA2MToKK15JICog RlVTRV9DQVBfU1BMSUNFX1JFQUQgaXMgc2V0IGluIGZ1c2VfY29ubl9pbmZvLndhbnQgYW5kIHRo ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0MjU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA2MjoKK15JICoga2VybmVsIHN1cHBv cnRzIHNwbGljaW5nIGZyb20gdGhlIGZ1c2UgZGV2aWNlLCB0aGVuIHRoZSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0MjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MTA2MzoKK15JICogZGF0YSB3aWxsIGJlIG1hZGUgYXZhaWxhYmxl IGluIHBpcGUgZm9yIHN1cHBvcnRpbmcgemVybyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzM0Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6MTA2NDoKK15JICogY29weSBkYXRhIHRyYW5zZmVyLiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MTA2NToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzNDI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwNjY6 CiteSSAqIGJ1Zi0+Y291bnQgaXMgZ3VhcmFudGVlZCB0byBiZSBvbmUgKGFuZCB0aHVzIGJ1Zi0+ aWR4IGlzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQzMDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDY3OgorXkkgKiBhbHdheXMg emVybykuIFRoZSB3cml0ZV9idWYgaGFuZGxlciBtdXN0IGVuc3VyZSB0aGF0JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQzMTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDY4OgorXkkgKiBidWZ2LT5vZmYgaXMgY29ycmVjdGx5IHVw ZGF0ZWQgKHJlZmxlY3RpbmcgdGhlIG51bWJlciBvZiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzM0MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MTA2OToKK15JICogYnl0ZXMgcmVhZCBmcm9tIGJ1ZnYtPmJ1ZlswXSkuJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQzMzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDcwOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MTA3MToKK15JICogVW5sZXNzIEZVU0VfQ0FQX0hBTkRMRV9LSUxMUFJJViBpcyBk aXNhYmxlZCwgdGhpcyBtZXRob2QgaXMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNDM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEw NzI6CiteSSAqIGV4cGVjdGVkIHRvIHJlc2V0IHRoZSBzZXR1aWQgYW5kIHNldGdpZCBiaXRzLiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0MzY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA3MzoKK15JICokCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjEwNzQ6CiteSSAqIFZhbGlkIHJlcGxpZXM6JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQzODogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDoxMDc1OgorXkkgKiAgIGZ1c2VfcmVwbHlfd3JpdGUkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDM5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwNzY6CiteSSAqICAgZnVzZV9yZXBseV9lcnIkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDQwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwNzc6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoxMDc4OgorXkkgKiBAcGFyYW0gcmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ0MjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDc5OgorXkkgKiBAcGFyYW0gaW5vIHRoZSBpbm9kZSBu dW1iZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDQzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwODA6CiteSSAqIEBwYXJhbSBi dWZ2IGJ1ZmZlciBjb250YWluaW5nIHRoZSBkYXRhJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzQ0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDoxMDgxOgorXkkgKiBAcGFyYW0gb2ZmIG9mZnNldCB0byB3cml0ZSB0byQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NDU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA4MjoKK15JICogQHBhcmFtIGZpIGZpbGUgaW5mb3JtYXRp b24kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDQ2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwODM6CiteSSAqLyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NDc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA4NDoKK15Jdm9pZCAoKndyaXRlX2J1ZikgKGZ1c2VfcmVx X3QgcmVxLCBmdXNlX2lub190IGlubywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNDQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEw ODU6CiteSV5JXkkgICBzdHJ1Y3QgZnVzZV9idWZ2ZWMgKmJ1ZnYsIG9mZl90IG9mZiwkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDQ5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwODY6CiteSV5JXkkgICBzdHJ1Y3QgZnVzZV9maWxl X2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz NDUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwODg6CiteSS8qKiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NTI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA4OToKK15JICogQ2FsbGJhY2sgZnVuY3Rp b24gZm9yIHRoZSByZXRyaWV2ZSByZXF1ZXN0JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzQ1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDoxMDkwOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM0NTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA5MToKK15JICog VmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzNDU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwOTI6CiteSSAq XklmdXNlX3JlcGx5X25vbmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzNDU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwOTM6Cite SSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ1NzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDk0OgorXkkgKiBAcGFyYW0gcmVx IHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzQ1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDk1OgorXkkg KiBAcGFyYW0gY29va2llIHVzZXIgZGF0YSBzdXBwbGllZCB0byBmdXNlX2xvd2xldmVsX25vdGlm eV9yZXRyaWV2ZSgpJAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzM0NTk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA5NjoKKyAgICAgICAgKiBAcGFy YW0gaW5vIHRoZSBpbm9kZSBudW1iZXIgc3VwcGxpZWQgdG8gZnVzZV9sb3dsZXZlbF9ub3RpZnlf cmV0cmlldmUoKQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ1 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMDk2OgorXkkgKiBAcGFy YW0gaW5vIHRoZSBpbm9kZSBudW1iZXIgc3VwcGxpZWQgdG8gZnVzZV9sb3dsZXZlbF9ub3RpZnlf cmV0cmlldmUoKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0 NjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA5NzoKK15JICogQHBh cmFtIG9mZnNldCB0aGUgb2Zmc2V0IHN1cHBsaWVkIHRvIGZ1c2VfbG93bGV2ZWxfbm90aWZ5X3Jl dHJpZXZlKCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDYx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEwOTg6CiteSSAqIEBwYXJh bSBidWZ2IHRoZSBidWZmZXIgY29udGFpbmluZyB0aGUgcmV0dXJuZWQgZGF0YSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NjI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MTA5OToKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzQ2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDoxMTAwOgorXkl2b2lkICgqcmV0cmlldmVfcmVwbHkpIChmdXNlX3JlcV90IHJlcSwg dm9pZCAqY29va2llLCBmdXNlX2lub190IGlubywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzNDY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjExMDE6CiteSV5JXkleSW9mZl90IG9mZnNldCwgc3RydWN0IGZ1c2VfYnVmdmVjICpidWZ2 KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDY2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMDM6CiteSS8qKiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0Njc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MTEwNDoKK15JICogRm9yZ2V0IGFib3V0IG11bHRpcGxlIGlu b2RlcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0Njg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTEwNToKK15JICokCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDY5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMDY6CiteSSAqIFNlZSBkZXNjcmlwdGlvbiBvZiB0aGUg Zm9yZ2V0IGZ1bmN0aW9uIGZvciBtb3JlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzQ3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDox MTA3OgorXkkgKiBpbmZvcm1hdGlvbi4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNDcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEx MDg6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ3 MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTA5OgorXkkgKiBWYWxp ZCByZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0 NzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTExMDoKK15JICogICBm dXNlX3JlcGx5X25vbmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzNDc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMTE6CiteSSAq JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ3NTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTEyOgorXkkgKiBAcGFyYW0gcmVxIHJl cXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzQ3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTEzOgorXkkgKi8k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDc3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMTQ6CiteSXZvaWQgKCpmb3JnZXRfbXVs dGkpIChmdXNlX3JlcV90IHJlcSwgc2l6ZV90IGNvdW50LCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0Nzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MTExNToKK15JXkleSSAgICAgIHN0cnVjdCBmdXNlX2ZvcmdldF9kYXRhICpmb3Jn ZXRzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDgwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMTc6CiteSS8qKiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0ODE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTExODoKK15JICogQWNxdWlyZSwgbW9kaWZ5IG9yIHJl bGVhc2UgYSBCU0QgZmlsZSBsb2NrJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzQ4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTE5 OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0ODM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTEyMDoKK15JICogTm90ZTog aWYgdGhlIGxvY2tpbmcgbWV0aG9kcyBhcmUgbm90IGltcGxlbWVudGVkLCB0aGUga2VybmVsJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ4NDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTIxOgorXkkgKiB3aWxsIHN0aWxsIGFsbG93 IGZpbGUgbG9ja2luZyB0byB3b3JrIGxvY2FsbHkuICBIZW5jZSB0aGVzZSBhcmUkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDg1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMjI6CiteSSAqIG9ubHkgaW50ZXJlc3RpbmcgZm9yIG5l dHdvcmsgZmlsZXN5c3RlbXMgYW5kIHNpbWlsYXIuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzQ4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDoxMTIzOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzM0ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTEyNDoKK15J ICogVmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzNDg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMjU6Cite SSAqICAgZnVzZV9yZXBseV9lcnIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzNDg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMjY6 CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ5MDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTI3OgorXkkgKiBAcGFyYW0g cmVxIHJlcXVlc3QgaGFuZGxlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzQ5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTI4Ogor XkkgKiBAcGFyYW0gaW5vIHRoZSBpbm9kZSBudW1iZXIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzNDkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjExMjk6CiteSSAqIEBwYXJhbSBmaSBmaWxlIGluZm9ybWF0aW9uJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ5MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTMwOgorXkkgKiBAcGFyYW0gb3AgdGhlIGxvY2tpbmcgb3Bl cmF0aW9uLCBzZWUgZmxvY2soMikkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzNDk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMzE6 CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0OTU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTEzMjoKK15Jdm9pZCAoKmZs b2NrKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0OTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6MTEzMzoKK15JXkkgICAgICAgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSwg aW50IG9wKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDk4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMzU6CiteSS8qKiQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0OTk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTEzNjoKK15JICogQWxsb2NhdGUgcmVxdWVzdGVk IHNwYWNlLiBJZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgc3VjY2VzcyB0aGVuJAoKV0FSTklORzog bGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzM1MDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6MTEzNzoKKyAgICAgICAgKiBzdWJzZXF1ZW50IHdyaXRlcyB0byB0aGUgc3Bl Y2lmaWVkIHJhbmdlIHNoYWxsIG5vdCBmYWlsIGR1ZSB0byB0aGUgbGFjawoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUwMDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDoxMTM3OgorXkkgKiBzdWJzZXF1ZW50IHdyaXRlcyB0byB0aGUgc3Bl Y2lmaWVkIHJhbmdlIHNoYWxsIG5vdCBmYWlsIGR1ZSB0byB0aGUgbGFjayQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MTEzODoKK15JICogb2YgZnJlZSBzcGFjZSBvbiB0aGUgZmlsZSBz eXN0ZW0gc3RvcmFnZSBtZWRpYS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzNTAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExMzk6 CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUwMzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTQwOgorXkkgKiBJZiB0aGlz IHJlcXVlc3QgaXMgYW5zd2VyZWQgd2l0aCBhbiBlcnJvciBjb2RlIG9mIEVOT1NZUywgdGhpcyBp cyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MDQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE0MToKK15JICogdHJlYXRlZCBhcyBh IHBlcm1hbmVudCBmYWlsdXJlIHdpdGggZXJyb3IgY29kZSBFT1BOT1RTVVBQLCBpLmUuIGFsbCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MDU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE0MjoKK15JICogZnV0dXJlIGZhbGxvY2F0 ZSgpIHJlcXVlc3RzIHdpbGwgZmFpbCB3aXRoIEVPUE5PVFNVUFAgd2l0aG91dCBiZWluZyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MDY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE0MzoKK15JICogc2VuZCB0byB0aGUgZmlsZXN5 c3RlbSBwcm9jZXNzLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM1MDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE0NDoKK15JICok CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTA4OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExNDU6CiteSSAqIFZhbGlkIHJlcGxpZXM6 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUwOTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTQ2OgorXkkgKiAgIGZ1c2VfcmVwbHlf ZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUxMDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTQ3OgorXkkgKiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MTE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE0ODoKK15JICogQHBhcmFtIHJlcSByZXF1ZXN0IGhhbmRs ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MTI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE0OToKK15JICogQHBhcmFtIGlubyB0 aGUgaW5vZGUgbnVtYmVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzUxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTUwOgorXkkg KiBAcGFyYW0gb2Zmc2V0IHN0YXJ0aW5nIHBvaW50IGZvciBhbGxvY2F0ZWQgcmVnaW9uJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUxNDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTUxOgorXkkgKiBAcGFyYW0gbGVuZ3RoIHNpemUg b2YgYWxsb2NhdGVkIHJlZ2lvbiQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMz NTE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExNTI6CisgICAgICAg ICogQHBhcmFtIG1vZGUgZGV0ZXJtaW5lcyB0aGUgb3BlcmF0aW9uIHRvIGJlIHBlcmZvcm1lZCBv biB0aGUgZ2l2ZW4gcmFuZ2UsCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzNTE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExNTI6Cite SSAqIEBwYXJhbSBtb2RlIGRldGVybWluZXMgdGhlIG9wZXJhdGlvbiB0byBiZSBwZXJmb3JtZWQg b24gdGhlIGdpdmVuIHJhbmdlLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzM1MTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE1MzoK K15JICogICAgICAgICAgICAgc2VlIGZhbGxvY2F0ZSgyKSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MTE1NDoKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzUxODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTU1 OgorXkl2b2lkICgqZmFsbG9jYXRlKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLCBp bnQgbW9kZSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTE5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExNTY6CiteSV5JICAgICAg IG9mZl90IG9mZnNldCwgb2ZmX3QgbGVuZ3RoLCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTIxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExNTg6CiteSS8qKiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MTE1OToKK15JICogUmVhZCBkaXJlY3Rvcnkgd2l0aCBhdHRyaWJ1 dGVzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUyMzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTYwOgorXkkgKiQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MjQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE2MToKK15JICogU2VuZCBhIGJ1ZmZlciBmaWxsZWQgdXNp bmcgZnVzZV9hZGRfZGlyZW50cnlfcGx1cygpLCB3aXRoIHNpemUgbm90JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUyNTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuaDoxMTYyOgorXkkgKiBleGNlZWRpbmcgdGhlIHJlcXVlc3RlZCBzaXpl LiAgU2VuZCBhbiBlbXB0eSBidWZmZXIgb24gZW5kIG9mJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzUyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDoxMTYzOgorXkkgKiBzdHJlYW0uJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzUyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDoxMTY0OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM1Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE2NToKK15JICog ZmktPmZoIHdpbGwgY29udGFpbiB0aGUgdmFsdWUgc2V0IGJ5IHRoZSBvcGVuZGlyIG1ldGhvZCwg b3IkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTI5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExNjY6CiteSSAqIHdpbGwgYmUgdW5k ZWZpbmVkIGlmIHRoZSBvcGVuZGlyIG1ldGhvZCBkaWRuJ3Qgc2V0IGFueSB2YWx1ZS4kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTMwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExNjc6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoxMTY4OgorXkkgKiBJbiBjb250cmFzdCB0byByZWFkZGlyKCkgKHdoaWNoIGRv ZXMgbm90IGFmZmVjdCB0aGUgbG9va3VwIGNvdW50cyksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzUzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDoxMTY5OgorXkkgKiB0aGUgbG9va3VwIGNvdW50IG9mIGV2ZXJ5IGVudHJ5IHJldHVy bmVkIGJ5IHJlYWRkaXJwbHVzKCksIGV4Y2VwdCAiLiIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzNTMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjExNzA6CiteSSAqIGFuZCAiLi4iLCBpcyBpbmNyZW1lbnRlZCBieSBvbmUuJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUzNDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTcxOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6MTE3MjoKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjExNzM6CiteSSAqICAgZnVzZV9yZXBseV9idWYkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjExNzQ6CiteSSAqICAgZnVzZV9yZXBseV9kYXRhJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUzODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTc1OgorXkkgKiAgIGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzUzOTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTc2OgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MTE3NzoKK15JICogQHBhcmFtIHJlcSByZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NDE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE3ODoKK15JICogQHBhcmFtIGlubyB0aGUgaW5vZGUgbnVt YmVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU0MjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTc5OgorXkkgKiBAcGFyYW0gc2l6 ZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyB0byBzZW5kJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzU0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuaDoxMTgwOgorXkkgKiBAcGFyYW0gb2ZmIG9mZnNldCB0byBjb250aW51ZSByZWFkaW5n IHRoZSBkaXJlY3Rvcnkgc3RyZWFtJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzU0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTgx OgorXkkgKiBAcGFyYW0gZmkgZmlsZSBpbmZvcm1hdGlvbiQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmg6MTE4MjoKK15JICovJAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMK IzM1NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE4MzoKKyAgICAg ICB2b2lkICgqcmVhZGRpcnBsdXMpIChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sIHNp emVfdCBzaXplLCBvZmZfdCBvZmYsCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzNTQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjExODM6 CiteSXZvaWQgKCpyZWFkZGlycGx1cykgKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IGlubywg c2l6ZV90IHNpemUsIG9mZl90IG9mZiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNTQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEx ODQ6CiteSV5JXkkgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuaDoxMTg2OgorXkkvKiokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzNTUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjExODc6CiteSSAqIENvcHkgYSByYW5nZSBvZiBkYXRhIGZyb20gb25lIGZpbGUgdG8gYW5vdGhl ciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NTE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTE4ODoKK15JICokCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTUyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5oOjExODk6CiteSSAqIFBlcmZvcm1zIGFuIG9wdGltaXplZCBjb3B5 IGJldHdlZW4gdHdvIGZpbGUgZGVzY3JpcHRvcnMgd2l0aG91dCB0aGUkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjExOTA6CiteSSAqIGFkZGl0aW9uYWwgY29zdCBvZiB0cmFuc2ZlcnJp bmcgZGF0YSB0aHJvdWdoIHRoZSBGVVNFIGtlcm5lbCBtb2R1bGUkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjExOTE6CiteSSAqIHRvIHVzZXIgc3BhY2UgKGdsaWJjKSBhbmQgdGhlbiBi YWNrIGludG8gdGhlIEZVU0UgZmlsZXN5c3RlbSBhZ2Fpbi4kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjExOTI6CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzU1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTkz OgorXkkgKiBJbiBjYXNlIHRoaXMgbWV0aG9kIGlzIG5vdCBpbXBsZW1lbnRlZCwgZ2xpYmMgZmFs bHMgYmFjayB0byByZWFkaW5nJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzU1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTk0Ogor XkkgKiBkYXRhIGZyb20gdGhlIHNvdXJjZSBhbmQgd3JpdGluZyB0byB0aGUgZGVzdGluYXRpb24u IEVmZmVjdGl2ZWx5JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzU1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTk1OgorXkkgKiBk b2luZyBhbiBpbmVmZmljaWVudCBjb3B5IG9mIHRoZSBkYXRhLiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6MTE5NjoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNTYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEx OTc6CiteSSAqIElmIHRoaXMgcmVxdWVzdCBpcyBhbnN3ZXJlZCB3aXRoIGFuIGVycm9yIGNvZGUg b2YgRU5PU1lTLCB0aGlzIGlzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzU2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTk4Ogor XkkgKiB0cmVhdGVkIGFzIGEgcGVybWFuZW50IGZhaWx1cmUgd2l0aCBlcnJvciBjb2RlIEVPUE5P VFNVUFAsIGkuZS4gYWxsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzU2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMTk5OgorXkkg KiBmdXR1cmUgY29weV9maWxlX3JhbmdlKCkgcmVxdWVzdHMgd2lsbCBmYWlsIHdpdGggRU9QTk9U U1VQUCB3aXRob3V0JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzU2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjAwOgorXkkgKiBi ZWluZyBzZW5kIHRvIHRoZSBmaWxlc3lzdGVtIHByb2Nlc3MuJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuaDoxMjAxOgorXkkgKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzM1NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIw MjoKK15JICogVmFsaWQgcmVwbGllczokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNTY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEy MDM6CiteSSAqICAgZnVzZV9yZXBseV93cml0ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzM1Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs Lmg6MTIwNDoKK15JICogICBmdXNlX3JlcGx5X2VyciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzM1Njg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MTIwNToKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzNTY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyMDY6Cite SSAqIEBwYXJhbSByZXEgcmVxdWVzdCBoYW5kbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzNTcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjEyMDc6CiteSSAqIEBwYXJhbSBpbm9faW4gdGhlIGlub2RlIG51bWJlciBvciB0aGUgc291 cmNlIGZpbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTcx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyMDg6CiteSSAqIEBwYXJh bSBvZmZfaW4gc3RhcnRpbmcgcG9pbnQgZnJvbSB3ZXJlIHRoZSBkYXRhIHNob3VsZCBiZSByZWFk JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU3MjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjA5OgorXkkgKiBAcGFyYW0gZmlfaW4g ZmlsZSBpbmZvcm1hdGlvbiBvZiB0aGUgc291cmNlIGZpbGUkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjEyMTA6CiteSSAqIEBwYXJhbSBpbm9fb3V0IHRoZSBpbm9kZSBudW1iZXIgb3Ig dGhlIGRlc3RpbmF0aW9uIGZpbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzNTc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyMTE6 CiteSSAqIEBwYXJhbSBvZmZfb3V0IHN0YXJ0aW5nIHBvaW50IHdoZXJlIHRoZSBkYXRhIHNob3Vs ZCBiZSB3cml0dGVuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzU3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjEyOgorXkkgKiBA cGFyYW0gZmlfb3V0IGZpbGUgaW5mb3JtYXRpb24gb2YgdGhlIGRlc3RpbmF0aW9uIGZpbGUkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTc2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyMTM6CiteSSAqIEBwYXJhbSBsZW4gbWF4aW11 bSBzaXplIG9mIHRoZSBkYXRhIHRvIGNvcHkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzNTc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjEyMTQ6CiteSSAqIEBwYXJhbSBmbGFncyBwYXNzZWQgYWxvbmcgd2l0aCB0aGUgY29weV9maWxl X3JhbmdlKCkgc3lzY2FsbCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzM1Nzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIxNToKK15J ICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU3OTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjE2OgorXkl2b2lkICgqY29weV9m aWxlX3JhbmdlKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vX2luLCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1ODA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIxNzoKK15JXkleSV5JIG9mZl90IG9mZl9pbiwgc3RydWN0 IGZ1c2VfZmlsZV9pbmZvICpmaV9pbiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNTgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEy MTg6CiteSV5JXkleSSBmdXNlX2lub190IGlub19vdXQsIG9mZl90IG9mZl9vdXQsJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU4MjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjE5OgorXkleSV5JXkkgc3RydWN0IGZ1c2VfZmlsZV9p bmZvICpmaV9vdXQsIHNpemVfdCBsZW4sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzU4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDox MjIwOgorXkleSV5JXkkgaW50IGZsYWdzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzNTg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjEyMjI6CiteSS8qKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM1ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIyMzoKK15JICog RmluZCBuZXh0IGRhdGEgb3IgaG9sZSBhZnRlciB0aGUgc3BlY2lmaWVkIG9mZnNldCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1ODc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIyNDoKK15JICokCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNTg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5oOjEyMjU6CiteSSAqIElmIHRoaXMgcmVxdWVzdCBpcyBhbnN3ZXJlZCB3aXRoIGFu IGVycm9yIGNvZGUgb2YgRU5PU1lTLCB0aGlzIGlzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzU4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuaDoxMjI2OgorXkkgKiB0cmVhdGVkIGFzIGEgcGVybWFuZW50IGZhaWx1cmUsIGkuZS4gYWxs IGZ1dHVyZSBsc2VlaygpIHJlcXVlc3RzIHdpbGwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzNTkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjEyMjc6CiteSSAqIGZhaWwgd2l0aCB0aGUgc2FtZSBlcnJvciBjb2RlIHdpdGhvdXQgYmVp bmcgc2VuZCB0byB0aGUgZmlsZXN5c3RlbSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzM1OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MTIyODoKK15JICogcHJvY2Vzcy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzNTkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjEyMjk6 CiteSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU5Mzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjMwOgorXkkgKiBWYWxpZCBy ZXBsaWVzOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1OTQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIzMToKK15JICogICBmdXNl X3JlcGx5X2xzZWVrJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzU5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjMyOgorXkkgKiAg IGZ1c2VfcmVwbHlfZXJyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzU5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjMzOgorXkkg KiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1OTc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIzNDoKK15JICogQHBhcmFtIHJlcSBy ZXF1ZXN0IGhhbmRsZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM1OTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIzNToKK15JICog QHBhcmFtIGlubyB0aGUgaW5vZGUgbnVtYmVyJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzU5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu aDoxMjM2OgorXkkgKiBAcGFyYW0gb2ZmIG9mZnNldCB0byBzdGFydCBzZWFyY2ggZnJvbSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM2MDA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTIzNzoKK15JICogQHBhcmFtIHdoZW5jZSBlaXRo ZXIgU0VFS19EQVRBIG9yIFNFRUtfSE9MRSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzM2MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MTIzODoKK15JICogQHBhcmFtIGZpIGZpbGUgaW5mb3JtYXRpb24kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNjAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5oOjEyMzk6CiteSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzM2MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MTI0MDoKK15Jdm9pZCAoKmxzZWVrKSAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLCBv ZmZfdCBvZmYsIGludCB3aGVuY2UsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzYwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMjQx OgorXkleSSAgICAgICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNjc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjEzMTI6CiteSV5JICAgICAgY29uc3Qgc3RydWN0IGZ1c2VfZmlsZV9p bmZvICpmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzY4 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMzIyOgorICogQHBhcmFt IGF0dHJfdGltZW91dF5JdmFsaWRpdHkgdGltZW91dCAoaW4gc2Vjb25kcykgZm9yIHRoZSBhdHRy aWJ1dGVzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzY4OTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxMzI2OgorXkleSSAgICBkb3Vi bGUgYXR0cl90aW1lb3V0KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzNzg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE0MjQ6Cite SV5JICAgIGVudW0gZnVzZV9idWZfY29weV9mbGFncyBmbGFncyk7JAoKV0FSTklORzogQmxvY2sg Y29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzM4NTA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTQ4NzoKKy8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4NTE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmg6MTQ4ODoKKyAqIEZpbGxpbmcgYSBidWZmZXIgaW4gcmVhZGRp cl5JXkleSV5JICAgICAgICokCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGlu ZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzM4NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmg6MTQ4OToKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzODgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5o OjE1MTk6CiteSV5JXkkgY29uc3QgY2hhciAqbmFtZSwgY29uc3Qgc3RydWN0IHN0YXQgKnN0YnVm LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4ODM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTUyMDoKK15JXkleSSBvZmZfdCBvZmYp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4OTk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTUzNjoKK15JXkleSSAgICAgIGNvbnN0 IGNoYXIgKm5hbWUsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MzkwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxNTM3OgorXkleSV5J ICAgICAgY29uc3Qgc3RydWN0IGZ1c2VfZW50cnlfcGFyYW0gKmUsIG9mZl90IG9mZik7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzkxODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxNTU1OgorXkleSV5JICAgY29uc3Qgc3RydWN0IGlv dmVjICppbl9pb3YsIHNpemVfdCBpbl9jb3VudCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzOTE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjE1NTY6CiteSV5JXkkgICBjb25zdCBzdHJ1Y3QgaW92ZWMgKm91dF9pb3YsIHNpemVfdCBv dXRfY291bnQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM5 NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTU4MzoKK15JXkleSSBp bnQgY291bnQpOyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24g YSBzZXBhcmF0ZSBsaW5lCiMzOTY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjE2MDU6CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSAqCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzOTY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE2MDY6Cisg KiBOb3RpZmljYXRpb25eSV5JXkleSV5JXkkgICAgICAgKiQKCldBUk5JTkc6IEJsb2NrIGNvbW1l bnRzIHVzZSBhIHRyYWlsaW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQojMzk3MDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxNjA3OgorICogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQwMDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmg6MTY0MjoKK15JXkleSV5JICAgICBvZmZfdCBvZmYsIG9mZl90IGxl bik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDAzMzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxNjcwOgorXkleSV5JXkkgICAgIGNv bnN0IGNoYXIgKm5hbWUsIHNpemVfdCBuYW1lbGVuKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM0MDY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjE3MDE6CiteSV5JXkleSWZ1c2VfaW5vX3QgcGFyZW50LCBmdXNlX2lub190IGNoaWxk LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQwNjU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTcwMjoKK15JXkleSV5JY29uc3QgY2hh ciAqbmFtZSwgc2l6ZV90IG5hbWVsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzQwOTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6 MTczMDoKK15JXkleSSAgICAgICBvZmZfdCBvZmZzZXQsIHN0cnVjdCBmdXNlX2J1ZnZlYyAqYnVm diwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MDk0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE3MzE6CiteSV5JXkkgICAgICAgZW51 bSBmdXNlX2J1Zl9jb3B5X2ZsYWdzIGZsYWdzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0MTI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjE3NjI6CiteSV5JXkleSSAgc2l6ZV90IHNpemUsIG9mZl90IG9mZnNldCwgdm9pZCAqY29v a2llKTskCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2Vw YXJhdGUgbGluZQojNDEyODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDox NzY1OgorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gKgoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NDEyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxNzY2OgorICogVXRp bGl0eSBmdW5jdGlvbnNeSV5JXkleSV5JICAgICAgICokCgpXQVJOSU5HOiBCbG9jayBjb21tZW50 cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzQxMzA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTc2NzoKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MTkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5oOjE4Mjk6CiteSV5JXkkgICAgIHZvaWQgKmRhdGEpOyQKCldBUk5JTkc6 IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiM0MjAz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE4NDA6CisvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqCgpX QVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxp bmUKIzQyMDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTg0MjoKKyAq IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tICovCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2Vw YXJhdGUgbGluZQojNDIyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDox ODYxOgorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gKgoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgdHJhaWxpbmcgKi8g b24gYSBzZXBhcmF0ZSBsaW5lCiM0MjI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjE4NjM6CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNDIyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxODY2 OgorXklpbnQgc2luZ2xldGhyZWFkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzQyMzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTg2 NzoKK15JaW50IGZvcmVncm91bmQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNDIzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxODY4 OgorXklpbnQgZGVidWc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNDIzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxODY5OgorXklp bnQgbm9kZWZhdWx0X3N1YnR5cGU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNDIzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxODcw OgorXkljaGFyICptb3VudHBvaW50OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzQyMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MTg3 MToKK15JaW50IHNob3dfdmVyc2lvbjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM0MjM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5oOjE4 NzI6CiteSWludCBzaG93X2hlbHA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNDIzNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxODcz OgorXklpbnQgY2xvbmVfZmQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNDIzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxODc0Ogor Xkl1bnNpZ25lZCBpbnQgbWF4X2lkbGVfdGhyZWFkczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM0MjU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjE4OTY6CiteSV5JICAgICAgIHN0cnVjdCBmdXNlX2NtZGxpbmVfb3B0cyAqb3B0cyk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDI5MDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxOTI3OgorXkleSV5JXkkgICAgICBjb25z dCBzdHJ1Y3QgZnVzZV9sb3dsZXZlbF9vcHMgKm9wLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzQyOTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmg6MTkyODoKK15JXkleSV5JICAgICAgc2l6ZV90IG9wX3NpemUsIHZvaWQgKnVzZXJkYXRh KTskCgpFUlJPUjogdHJhaWxpbmcgd2hpdGVzcGFjZQojNDMzNTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuaDoxOTcyOgorICogQHBhcmFtIGNvbmZpZyBzZXNzaW9uIGxvb3Ag Y29uZmlndXJhdGlvbiAkCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojNDM0Mjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuaDoxOTc5OgoraW50IGZ1c2Vfc2Vz c2lvbl9sb29wX210KHN0cnVjdCBmdXNlX3Nlc3Npb24gKnNlLCBzdHJ1Y3QgZnVzZV9sb29wX2Nv bmZpZyAqY29uZmlnKTsKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyog b24gYSBzZXBhcmF0ZSBsaW5lCiM0NDA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5oOjIwNDE6CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSAqCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFp bGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzQ0MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmg6MjA0MzoKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0NDMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5oOjIwNzA6CiteSV5JXkkgICAgICBjb25zdCBzdHJ1Y3QgZnVzZV9idWYgKmJ1Zik7JAoKV0FS TklORzogYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRlZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzQ0 NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmg6MjA4NToKKyNpZmRlZiBf X2NwbHVzcGx1cwoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlICogb24gc3Vic2VxdWVudCBs aW5lcwojNDQ2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbWlzYy5oOjI6CisvKgorICBG VVNFOiBGaWxlc3lzdGVtIGluIFVzZXJzcGFjZQoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNl ICogb24gc3Vic2VxdWVudCBsaW5lcwojNDQ3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bWlzYy5oOjEyOgorLyoKKyAgVmVyc2lvbmVkIHN5bWJvbHMgY2Fubm90IGJlIHVzZWQgaW4gc29t ZSBjYXNlcyBiZWNhdXNlIGl0CgpXQVJOSU5HOiBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgZGVmaW5l cyBzaG91bGQgYmUgYXZvaWRlZAojNDQ3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbWlz Yy5oOjE2OgorI2lmICghZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfX0FQUExFX18p KQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDQ4NjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbWlzYy5oOjI4OgorXklwdGhyZWFkX211dGV4YXR0cl90IGF0 dHI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDQ4NzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbWlzYy5oOjI5OgorXklwdGhyZWFkX211dGV4YXR0cl9p bml0KCZhdHRyKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0 NDg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9taXNjLmg6MzA6CiteSXB0aHJlYWRfbXV0 ZXhhdHRyX3NldHR5cGUoJmF0dHIsIFBUSFJFQURfTVVURVhfQURBUFRJVkVfTlApOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ0ODk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX21pc2MuaDozMToKK15JcHRocmVhZF9tdXRleF9pbml0KG11dCwgJmF0dHIp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ0OTA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX21pc2MuaDozMjoKK15JcHRocmVhZF9tdXRleGF0dHJfZGVz dHJveSgmYXR0cik7JAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlICogb24gc3Vic2VxdWVu dCBsaW5lcwojNDUyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0Lmg6MjoKKy8qCisg IEZVU0U6IEZpbGVzeXN0ZW0gaW4gVXNlcnNwYWNlCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1 c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojNDUzNTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2Vfb3B0Lmg6MTI6CisvKiogQGZpbGUKCldBUk5JTkc6IGFyY2hpdGVjdHVyZSBz cGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkCiM0NTQwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9vcHQuaDoxNzoKKyNpZmRlZiBfX2NwbHVzcGx1cwoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDU2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2Vfb3B0Lmg6NDQ6CisgKiAgLSAtMV5JXkleSSAgICAgIGFjdGlvbiBpaSkkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NTc4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9vcHQuaDo1NToKKyAqIDEpICIteCIsICItZm9vIiwgIi0tZm9vIiwgIi0tZm9vLWJh ciIsIGV0Yy5eSVRoZXNlIG1hdGNoIG9ubHkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM0NjAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuaDo3ODoK K15JLyoqIE1hdGNoaW5nIHRlbXBsYXRlIGFuZCBvcHRpb25hbCBwYXJhbWV0ZXIgZm9ybWF0dGlu ZyAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2MDI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5oOjc5OgorXkljb25zdCBjaGFyICp0ZW1wbDsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjA0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuaDo4MToKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDYwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf b3B0Lmg6ODI6CiteSSAqIE9mZnNldCBvZiB2YXJpYWJsZSB3aXRoaW4gJ2RhdGEnIHBhcmFtZXRl ciBvZiBmdXNlX29wdF9wYXJzZSgpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNDYwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0Lmg6ODM6CiteSSAq IG9yIC0xJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDYwNzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0Lmg6ODQ6CiteSSAqLyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX29wdC5oOjg1OgorXkl1bnNpZ25lZCBsb25nIG9mZnNldDskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9vcHQuaDo4NzoKK15JLyoqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNDYxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0Lmg6ODg6CiteSSAq IFZhbHVlIHRvIHNldCB0aGUgdmFyaWFibGUgdG8sIG9yIHRvIGJlIHBhc3NlZCBhcyAna2V5JyB0 byB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjEyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuaDo4OToKK15JICogcHJvY2Vzc2luZyBmdW5j dGlvbi5eSSBJZ25vcmVkIGlmIHRlbXBsYXRlIGhhcyBhIGZvcm1hdCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX29wdC5oOjkwOgorXkkgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM0NjE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuaDo5MToKK15JaW50 IHZhbHVlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2MTg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5oOjk1OgorICogS2V5IG9wdGlvbi5eSUlu IGNhc2Ugb2YgYSBtYXRjaCwgdGhlIHByb2Nlc3NpbmcgZnVuY3Rpb24gd2lsbCBiZSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2MjQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5oOjEwMToKKyAqIExhc3Qgb3B0aW9uLl5JIEFuIGFycmF5IG9mICdz dHJ1Y3QgZnVzZV9vcHQnIG11c3QgZW5kIHdpdGggYSBOVUxMJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDYzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf b3B0Lmg6MTEwOgorXkkvKiogQXJndW1lbnQgY291bnQgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9v cHQuaDoxMTE6CiteSWludCBhcmdjOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzQ2MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5oOjExMzoKK15J LyoqIEFyZ3VtZW50IHZlY3Rvci4gIE5VTEwgdGVybWluYXRlZCAqLyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2Mzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX29wdC5oOjExNDoKK15JY2hhciAqKmFyZ3Y7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNDYzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0Lmg6 MTE2OgorXkkvKiogSXMgJ2FyZ3YnIGFsbG9jYXRlZD8gKi8kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9v cHQuaDoxMTc6CiteSWludCBhbGxvY2F0ZWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNDcwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0Lmg6MTgx OgorXkleSV5JICAgICAgIHN0cnVjdCBmdXNlX2FyZ3MgKm91dGFyZ3MpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ3Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX29wdC5oOjIwNDoKK15JXkkgICBjb25zdCBzdHJ1Y3QgZnVzZV9vcHQgb3B0c1tdLCBm dXNlX29wdF9wcm9jX3QgcHJvYyk7JAoKV0FSTklORzogYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRl ZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzQ3OTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X29wdC5oOjI2NzoKKyNpZmRlZiBfX2NwbHVzcGx1cwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNDgzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2hlbHBlcnMuaDozMToKK15JaW50IG1vZGUsIGRldl90IHJkZXYpJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDgzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2hlbHBlcnMuaDozMzoKK15JaW50IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfaGVscGVycy5oOjM1OgorXklpZiAoU19JU1JFRyhtb2RlKSkgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9oZWxwZXJzLmg6MzY6CiteSV5JcmVzID0gb3BlbmF0KGRpcmZkLCBwYXRo LCBPX0NSRUFUIHwgT19FWENMIHwgT19XUk9OTFksIG1vZGUpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4Mzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9oZWxwZXJzLmg6Mzc6CiteSV5JaWYgKHJlcyA+PSAwKSQKCkVSUk9SOiBicmFjZXMg e30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzQ4Mzc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJzLmg6Mzc6CisgICAgICAgICAg ICAgICBpZiAocmVzID49IDApClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM0ODM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVy cy5oOjM4OgorXkleSV5JcmVzID0gY2xvc2UocmVzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM0ODM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfaGVscGVycy5oOjM5OgorXkl9IGVsc2UgaWYgKFNfSVNESVIobW9kZSkpIHskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODQwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVycy5oOjQwOgorXkleSXJlcyA9IG1rZGlyYXQoZGlyZmQs IHBhdGgsIG1vZGUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzQ4NDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJzLmg6NDE6Cite SX0gZWxzZSBpZiAoU19JU0xOSyhtb2RlKSAmJiBsaW5rICE9IE5VTEwpIHskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODQyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfaGVscGVycy5oOjQyOgorXkleSXJlcyA9IHN5bWxpbmthdChsaW5rLCBk aXJmZCwgcGF0aCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NDg0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2hlbHBlcnMuaDo0MzoKK15J fSBlbHNlIGlmIChTX0lTRklGTyhtb2RlKSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzQ4NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9o ZWxwZXJzLmg6NDQ6CiteSV5JcmVzID0gbWtmaWZvYXQoZGlyZmQsIHBhdGgsIG1vZGUpOyQKCldB Uk5JTkc6IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkCiM0 ODQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVycy5oOjQ1OgorI2lm ZGVmIF9fRnJlZUJTRF9fCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0ODQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVycy5oOjQ2Ogor Xkl9IGVsc2UgaWYgKFNfSVNTT0NLKG1vZGUpKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNDg0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2hlbHBlcnMuaDo0NzoKK15JXklzdHJ1Y3Qgc29ja2FkZHJfdW4gc3U7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg0ODogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2hlbHBlcnMuaDo0ODoKK15JXklpbnQgZmQ7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2hlbHBlcnMuaDo1MDoKK15JXklpZiAoc3RybGVuKHBhdGgpID49IHNpemVvZihz dS5zdW5fcGF0aCkpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0ODUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVycy5oOjUxOgor XkleSV5JZXJybm8gPSBFTkFNRVRPT0xPTkc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNDg1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2hl bHBlcnMuaDo1MjoKK15JXkleSXJldHVybiAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0ODUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf aGVscGVycy5oOjUzOgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM0ODU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVycy5o OjU0OgorXkleSWZkID0gc29ja2V0KEFGX1VOSVgsIFNPQ0tfU1RSRUFNLCAwKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODU1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVycy5oOjU1OgorXkleSWlmIChmZCA+PSAwKSB7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg1NjogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2hlbHBlcnMuaDo1NjoKK15JXkleSS8qJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg1NzogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2hlbHBlcnMuaDo1NzoKK15JXkleSSAqIFdlIG11c3QgYmluZCB0aGUg c29ja2V0IHRvIHRoZSB1bmRlcmx5aW5nIGZpbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0ODU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf aGVscGVycy5oOjU4OgorXkleSV5JICogc3lzdGVtIHRvIGNyZWF0ZSB0aGUgc29ja2V0IGZpbGUs IGV2ZW4gdGhvdWdoJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NDg1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2hlbHBlcnMuaDo1OToKK15J XkleSSAqIHdlJ2xsIG5ldmVyIGxpc3RlbiBvbiB0aGlzIHNvY2tldC4kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfaGVscGVycy5oOjYwOgorXkleSV5JICovJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2hlbHBlcnMuaDo2MToKK15JXkleSXN1LnN1bl9mYW1pbHkgPSBBRl9VTklYOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4NjI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJzLmg6NjI6CiteSV5JXklzdHJuY3B5KHN1LnN1 bl9wYXRoLCBwYXRoLCBzaXplb2Yoc3Uuc3VuX3BhdGgpKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfaGVscGVycy5oOjYzOgorXkleSV5JcmVzID0gYmluZGF0KGRpcmZkLCBmZCwgKHN0cnVj dCBzb2NrYWRkciopJnN1LCQKCkVSUk9SOiAiKGZvbyopIiBzaG91bGQgYmUgIihmb28gKikiCiM0 ODYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVycy5oOjYzOgorICAg ICAgICAgICAgICAgICAgICAgICByZXMgPSBiaW5kYXQoZGlyZmQsIGZkLCAoc3RydWN0IHNvY2th ZGRyKikmc3UsCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODY0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVycy5oOjY0OgorXkleSV5J XklzaXplb2Yoc3UpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0ODY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVycy5oOjY1Ogor XkleSV5JaWYgKHJlcyA9PSAwKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3Ig YWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzQ4NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9oZWxwZXJzLmg6NjU6CisgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMg PT0gMCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4 NjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJzLmg6NjY6CiteSV5J XkleSWNsb3NlKGZkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0ODY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfaGVscGVycy5oOjY3Ogor XkleSX0gZWxzZSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NDg2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2hlbHBlcnMuaDo2ODoKK15J XkleSXJlcyA9IC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzQ4Njk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJzLmg6Njk6Cite SV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4NzE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9oZWxwZXJzLmg6NzE6CiteSX0gZWxzZSB7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg3MjogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2hlbHBlcnMuaDo3MjoKK15JXklyZXMgPSBta25v ZGF0KGRpcmZkLCBwYXRoLCBtb2RlLCByZGV2KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0ODczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf aGVscGVycy5oOjczOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNDg3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2hlbHBlcnMuaDo3 NToKK15JcmV0dXJuIHJlczskCgp0b3RhbDogMjI3MSBlcnJvcnMsIDEzOSB3YXJuaW5ncywgNDgx NCBsaW5lcyBjaGVja2VkCgpQYXRjaCAxLzExMSBoYXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFzZSBy ZXZpZXcuICBJZiBhbnkgb2YgdGhlc2UgZXJyb3JzCmFyZSBmYWxzZSBwb3NpdGl2ZXMgcmVwb3J0 IHRoZW0gdG8gdGhlIG1haW50YWluZXIsIHNlZQpDSEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgoK Mi8xMTEgQ2hlY2tpbmcgY29tbWl0IDkyN2ExMjg1ZDgyMCAodmlydGlvZnNkOiBQdWxsIGluIGtl cm5lbCdzIGZ1c2UuaCkKV0FSTklORzogYWRkZWQsIG1vdmVkIG9yIGRlbGV0ZWQgZmlsZShzKSwg ZG9lcyBNQUlOVEFJTkVSUyBuZWVkIHVwZGF0aW5nPwojMTY6IApuZXcgZmlsZSBtb2RlIDEwMDY0 NAoKdG90YWw6IDAgZXJyb3JzLCAxIHdhcm5pbmdzLCA4OTggbGluZXMgY2hlY2tlZAoKUGF0Y2gg Mi8xMTEgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55IG9mIHRoZXNl IGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBtYWludGFpbmVy LCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KMy8xMTEgQ2hlY2tpbmcgY29tbWl0IDIx OGNlMTM2NTgwMiAodmlydGlvZnNkOiBBZGQgYXV4aWxpYXJ5IC5jJ3MpCldBUk5JTkc6IGFkZGVk LCBtb3ZlZCBvciBkZWxldGVkIGZpbGUocyksIGRvZXMgTUFJTlRBSU5FUlMgbmVlZCB1cGRhdGlu Zz8KIzE1OiAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVz ZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMKIzIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVy LmM6MjoKKy8qCisgIEZVU0U6IEZpbGVzeXN0ZW0gaW4gVXNlcnNwYWNlCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1 ZmZlci5jOjI0OgorXklzaXplX3QgaTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI1OgorXklzaXpl X3Qgc2l6ZSA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyNzoKK15JZm9yIChpID0gMDsgaSA8 IGJ1ZnYtPmNvdW50OyBpKyspIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI4OgorXkleSWlmIChi dWZ2LT5idWZbaV0uc2l6ZSA9PSBTSVpFX01BWCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNl c3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM0NzogRklMRTogdG9vbHMvdmly dGlvZnNkL2J1ZmZlci5jOjI4OgorICAgICAgICAgICAgICAgaWYgKGJ1ZnYtPmJ1ZltpXS5zaXpl ID09IFNJWkVfTUFYKQpbLi4uXQorICAgICAgICAgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9idWZmZXIuYzoyOToKK15JXkleSXNpemUgPSBTSVpFX01BWDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZl ci5jOjMwOgorXkleSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjMxOgorXkleSV5Jc2l6ZSAr PSBidWZ2LT5idWZbaV0uc2l6ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjMyOgorXkl9JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9idWZmZXIuYzozNDoKK15JcmV0dXJuIHNpemU7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIu YzozOToKK15JcmV0dXJuIHMxIDwgczIgPyBzMSA6IHMyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6 NDM6CiteSV5JXkkgICAgICBjb25zdCBzdHJ1Y3QgZnVzZV9idWYgKnNyYywgc2l6ZV90IHNyY19v ZmYsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo0NDoKK15JXkleSSAgICAgIHNpemVfdCBsZW4pJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9idWZmZXIuYzo0NjoKK15Jc3NpemVfdCByZXMgPSAwOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv YnVmZmVyLmM6NDc6CiteSXNpemVfdCBjb3BpZWQgPSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6 NDk6CiteSXdoaWxlIChsZW4pIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjUwOgorXkleSWlmIChk c3QtPmZsYWdzICYgRlVTRV9CVUZfRkRfU0VFSykgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6NTE6 CiteSV5JXklyZXMgPSBwd3JpdGUoZHN0LT5mZCwgKGNoYXIgKilzcmMtPm1lbSArIHNyY19vZmYs IGxlbiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTogRklM RTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjUyOgorXkleSV5JXkkgICAgIGRzdC0+cG9zICsg ZHN0X29mZik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo1MzoKK15JXkl9IGVsc2UgeyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzczOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvYnVmZmVyLmM6NTQ6CiteSV5JXklyZXMgPSB3cml0ZShkc3QtPmZkLCAoY2hhciAqKXNy Yy0+bWVtICsgc3JjX29mZiwgbGVuKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjU1OgorXkleSX0k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NTogRklMRTogdG9v bHMvdmlydGlvZnNkL2J1ZmZlci5jOjU2OgorXkleSWlmIChyZXMgPT0gLTEpIHskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2J1ZmZlci5jOjU3OgorXkleSV5JaWYgKCFjb3BpZWQpJAoKRVJST1I6IGJyYWNlcyB7fSBh cmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNzY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo1NzoKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFj b3BpZWQpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3 NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjU4OgorXkleSV5JXklyZXR1cm4gLWVy cm5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6NTk6CiteSV5JXklicmVhazskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3OTogRklMRTogdG9vbHMvdmlydGlvZnNk L2J1ZmZlci5jOjYwOgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjYxOgorXkleSWlmIChy ZXMgPT0gMCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9m IHRoaXMgc3RhdGVtZW50CiM4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjYxOgor ICAgICAgICAgICAgICAgaWYgKHJlcyA9PSAwKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo2 MjoKK15JXkleSWJyZWFrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6NjQ6CiteSV5JY29waWVkICs9 IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NDogRklM RTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjY1OgorXkleSWlmICghKGRzdC0+ZmxhZ3MgJiBG VVNFX0JVRl9GRF9SRVRSWSkpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBh bGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZm ZXIuYzo2NToKKyAgICAgICAgICAgICAgIGlmICghKGRzdC0+ZmxhZ3MgJiBGVVNFX0JVRl9GRF9S RVRSWSkpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjY2OgorXkleSV5JYnJlYWs7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9idWZmZXIuYzo2ODoKK15JXklzcmNfb2ZmICs9IHJlczskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1 ZmZlci5jOjY5OgorXkleSWRzdF9vZmYgKz0gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6NzA6 CiteSV5JbGVuIC09IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjcxOgorXkl9JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9idWZmZXIuYzo3MzoKK15JcmV0dXJuIGNvcGllZDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5j Ojc3OgorXkleSV5JICAgICBjb25zdCBzdHJ1Y3QgZnVzZV9idWYgKnNyYywgc2l6ZV90IHNyY19v ZmYsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo3ODoKK15JXkleSSAgICAgc2l6ZV90IGxlbikkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5OTogRklMRTogdG9vbHMv dmlydGlvZnNkL2J1ZmZlci5jOjgwOgorXklzc2l6ZV90IHJlcyA9IDA7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv YnVmZmVyLmM6ODE6CiteSXNpemVfdCBjb3BpZWQgPSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5j OjgzOgorXkl3aGlsZSAobGVuKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6ODQ6CiteSV5JaWYg KHNyYy0+ZmxhZ3MgJiBGVVNFX0JVRl9GRF9TRUVLKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6 ODU6CiteSV5JXklyZXMgPSBwcmVhZChzcmMtPmZkLCAoY2hhciAqKWRzdC0+bWVtICsgZHN0X29m ZiwgbGVuLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNTog RklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjg2OgorXkleSV5JXkkgICAgIHNyYy0+cG9z ICsgc3JjX29mZik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTA2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6ODc6CiteSV5JfSBlbHNlIHskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9idWZmZXIuYzo4ODoKK15JXkleSXJlcyA9IHJlYWQoc3JjLT5mZCwgKGNoYXIg Kilkc3QtPm1lbSArIGRzdF9vZmYsIGxlbik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6ODk6Cite SV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwOTogRklM RTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjkwOgorXkleSWlmIChyZXMgPT0gLTEpIHskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9idWZmZXIuYzo5MToKK15JXkleSWlmICghY29waWVkKSQKCkVSUk9SOiBicmFj ZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzExMDog RklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjkxOgorICAgICAgICAgICAgICAgICAgICAg ICBpZiAoIWNvcGllZCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzExMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjkyOgorXkleSV5JXkly ZXR1cm4gLWVycm5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzExMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjkzOgorXkleSV5JYnJlYWs7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvYnVmZmVyLmM6OTQ6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzExNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjk1 OgorXkleSWlmIChyZXMgPT0gMCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9y IGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9i dWZmZXIuYzo5NToKKyAgICAgICAgICAgICAgIGlmIChyZXMgPT0gMCkKWy4uLl0KCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2J1ZmZlci5jOjk2OgorXkleSV5JYnJlYWs7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6OTg6 CiteSV5JY29waWVkICs9IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzo5OToKK15JXklpZiAo IShzcmMtPmZsYWdzICYgRlVTRV9CVUZfRkRfUkVUUlkpKSQKCkVSUk9SOiBicmFjZXMge30gYXJl IG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzExODogRklMRTogdG9v bHMvdmlydGlvZnNkL2J1ZmZlci5jOjk5OgorICAgICAgICAgICAgICAgaWYgKCEoc3JjLT5mbGFn cyAmIEZVU0VfQlVGX0ZEX1JFVFJZKSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzExOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjEwMDoK K15JXkleSWJyZWFrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjEwMjoKK15JXklkc3Rfb2ZmICs9 IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxMDM6CiteSV5Jc3JjX29mZiArPSByZXM7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvYnVmZmVyLmM6MTA0OgorXkleSWxlbiAtPSByZXM7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv YnVmZmVyLmM6MTA1OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTA3OgorXklyZXR1cm4g Y29waWVkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMDog RklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjExMToKK15JXkleSV5JIGNvbnN0IHN0cnVj dCBmdXNlX2J1ZiAqc3JjLCBzaXplX3Qgc3JjX29mZiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzox MTI6CiteSV5JXkleSSBzaXplX3QgbGVuKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjExNDoKK15J Y2hhciBidWZbNDA5Nl07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTE1OgorXklzdHJ1Y3QgZnVz ZV9idWYgdG1wID0geyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjExNjoKK15JXkkuc2l6ZSA9IHNp emVvZihidWYpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEz NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjExNzoKK15JXkkuZmxhZ3MgPSAwLCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNzogRklMRTogdG9v bHMvdmlydGlvZnNkL2J1ZmZlci5jOjExODoKK15JfTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzox MTk6CiteSXNzaXplX3QgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjEyMDoKK15Jc2l6ZV90 IGNvcGllZCA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTIyOgorXkl0bXAubWVtID0gYnVm OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MzogRklMRTog dG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjEyNDoKK15Jd2hpbGUgKGxlbikgeyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2J1ZmZlci5jOjEyNToKK15JXklzaXplX3QgdGhpc19sZW4gPSBtaW5fc2l6ZSh0bXAuc2l6 ZSwgbGVuKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxMjY6CiteSV5Jc2l6ZV90IHJlYWRfbGVu OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0NzogRklMRTog dG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjEyODoKK15JXklyZXMgPSBmdXNlX2J1Zl9yZWFkKCZ0 bXAsIDAsIHNyYywgc3JjX29mZiwgdGhpc19sZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjEy OToKK15JXklpZiAocmVzIDwgMCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjEzMDoKK15JXkle SWlmICghY29waWVkKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFy bXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5j OjEzMDoKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjb3BpZWQpClsuLi5dCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9idWZmZXIuYzoxMzE6CiteSV5JXkleSXJldHVybiByZXM7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVm ZmVyLmM6MTMyOgorXkleSV5JYnJlYWs7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTMzOgorXkle SX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxMzQ6CiteSV5JaWYgKHJlcyA9PSAwKSQKCkVSUk9S OiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQK IzE1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjEzNDoKKyAgICAgICAgICAgICAg IGlmIChyZXMgPT0gMCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjEzNToKK15JXkleSWJy ZWFrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1NjogRklM RTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjEzNzoKK15JXklyZWFkX2xlbiA9IHJlczskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9idWZmZXIuYzoxMzg6CiteSV5JcmVzID0gZnVzZV9idWZfd3JpdGUoZHN0LCBk c3Rfb2ZmLCAmdG1wLCAwLCByZWFkX2xlbik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTM5Ogor XkleSWlmIChyZXMgPCAwKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTQwOgorXkleSV5JaWYg KCFjb3BpZWQpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBv ZiB0aGlzIHN0YXRlbWVudAojMTU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTQw OgorICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvcGllZCkKWy4uLl0KCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2MDogRklMRTogdG9vbHMvdmlydGlvZnNk L2J1ZmZlci5jOjE0MToKK15JXkleSV5JcmV0dXJuIHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIu YzoxNDI6CiteSV5JXklicmVhazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxNjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxNDM6CiteSV5JfSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2MzogRklMRTogdG9v bHMvdmlydGlvZnNkL2J1ZmZlci5jOjE0NDoKK15JXklpZiAocmVzID09IDApJAoKRVJST1I6IGJy YWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTYz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTQ0OgorICAgICAgICAgICAgICAgaWYg KHJlcyA9PSAwKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTQ1OgorXkleSV5JYnJlYWs7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTQ3OgorXkleSWNvcGllZCArPSByZXM7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvYnVmZmVyLmM6MTQ5OgorXkleSWlmIChyZXMgPCB0aGlzX2xlbikkCgpFUlJPUjogYnJh Y2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxNjg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxNDk6CisgICAgICAgICAgICAgICBpZiAo cmVzIDwgdGhpc19sZW4pClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxNTA6CiteSV5JXkli cmVhazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxNTI6CiteSV5JZHN0X29mZiArPSByZXM7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvYnVmZmVyLmM6MTUzOgorXkleSXNyY19vZmYgKz0gcmVzOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2J1ZmZlci5jOjE1NDoKK15JXklsZW4gLT0gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5j OjE1NToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3 NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE1NzoKK15JcmV0dXJuIGNvcGllZDsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxNjI6CiteSV5JXkkgICAgICAgY29uc3Qgc3RydWN0IGZ1 c2VfYnVmICpzcmMsIHNpemVfdCBzcmNfb2ZmLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE2MzoK K15JXkleSSAgICAgICBzaXplX3QgbGVuLCBlbnVtIGZ1c2VfYnVmX2NvcHlfZmxhZ3MgZmxhZ3Mp JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTY1OgorXklpbnQgc3BsaWNlX2ZsYWdzID0gMDskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9idWZmZXIuYzoxNjY6CiteSW9mZl90ICpzcmNwb3MgPSBOVUxMOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NjogRklMRTogdG9vbHMvdmly dGlvZnNkL2J1ZmZlci5jOjE2NzoKK15Jb2ZmX3QgKmRzdHBvcyA9IE5VTEw7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvYnVmZmVyLmM6MTY4OgorXklvZmZfdCBzcmNwb3NfdmFsOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZl ci5jOjE2OToKK15Jb2ZmX3QgZHN0cG9zX3ZhbDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxNzA6 CiteSXNzaXplX3QgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE3MToKK15Jc2l6ZV90IGNv cGllZCA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTky OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTczOgorXklpZiAoZmxhZ3MgJiBGVVNF X0JVRl9TUExJQ0VfTU9WRSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxOTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZm ZXIuYzoxNzM6CisgICAgICAgaWYgKGZsYWdzICYgRlVTRV9CVUZfU1BMSUNFX01PVkUpClsuLi5d CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxNzQ6CiteSV5Jc3BsaWNlX2ZsYWdzIHw9IFNQTElDRV9G X01PVkU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTc1OgorXklpZiAoZmxhZ3MgJiBGVVNFX0JV Rl9TUExJQ0VfTk9OQkxPQ0spJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBh bGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVm ZmVyLmM6MTc1OgorICAgICAgIGlmIChmbGFncyAmIEZVU0VfQlVGX1NQTElDRV9OT05CTE9DSykK Wy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NTogRklM RTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE3NjoKK15JXklzcGxpY2VfZmxhZ3MgfD0gU1BM SUNFX0ZfTk9OQkxPQ0s7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTc4OgorXklpZiAoc3JjLT5m bGFncyAmIEZVU0VfQlVGX0ZEX1NFRUspIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxOTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxNzk6Cite SV5Jc3JjcG9zX3ZhbCA9IHNyYy0+cG9zICsgc3JjX29mZjskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIu YzoxODA6CiteSV5Jc3JjcG9zID0gJnNyY3Bvc192YWw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6 MTgxOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTgyOgorXklpZiAoZHN0LT5mbGFncyAm IEZVU0VfQlVGX0ZEX1NFRUspIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxODM6CiteSV5JZHN0 cG9zX3ZhbCA9IGRzdC0+cG9zICsgZHN0X29mZjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxODQ6 CiteSV5JZHN0cG9zID0gJmRzdHBvc192YWw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTg1Ogor Xkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTg3OgorXkl3aGlsZSAobGVuKSB7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvYnVmZmVyLmM6MTg4OgorXkleSXJlcyA9IHNwbGljZShzcmMtPmZkLCBzcmNwb3MsIGRz dC0+ZmQsIGRzdHBvcywgbGVuLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE4OToKK15JXkleSSAg ICAgc3BsaWNlX2ZsYWdzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyMDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxOTA6CiteSV5JaWYgKHJl cyA9PSAtMSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIx MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjE5MToKK15JXkleSWlmIChjb3BpZWQp JAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0 YXRlbWVudAojMjEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTkxOgorICAgICAg ICAgICAgICAgICAgICAgICBpZiAoY29waWVkKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6 MTkyOgorXkleSV5JXklicmVhazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxOTQ6CiteSV5JXklp ZiAoZXJybm8gIT0gRUlOVkFMIHx8IChmbGFncyAmIEZVU0VfQlVGX0ZPUkNFX1NQTElDRSkpJAoK RVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRl bWVudAojMjEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTk0OgorICAgICAgICAg ICAgICAgICAgICAgICBpZiAoZXJybm8gIT0gRUlOVkFMIHx8IChmbGFncyAmIEZVU0VfQlVGX0ZP UkNFX1NQTElDRSkpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyMTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoxOTU6CiteSV5JXkleSXJl dHVybiAtZXJybm87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTk3OgorXkleSV5JLyogTWF5YmUg c3BsaWNlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgY29tYmluYXRpb24gKi8kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9idWZmZXIuYzoxOTg6CiteSV5JXklyZXR1cm4gZnVzZV9idWZfZmRfdG9fZmQoZHN0LCBk c3Rfb2ZmLCBzcmMsIHNyY19vZmYsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTk5OgorXkleSV5J XkleSV5JIGxlbik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjAwOgorXkleSX0kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9idWZmZXIuYzoyMDE6CiteSV5JaWYgKHJlcyA9PSAwKSQKCkVSUk9SOiBicmFjZXMge30g YXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzIyMDogRklMRTog dG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjIwMToKKyAgICAgICAgICAgICAgIGlmIChyZXMgPT0g MCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMTog RklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjIwMjoKK15JXkleSWJyZWFrOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMzogRklMRTogdG9vbHMvdmly dGlvZnNkL2J1ZmZlci5jOjIwNDoKK15JXkljb3BpZWQgKz0gcmVzOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1 ZmZlci5jOjIwNToKK15JXklpZiAoIShzcmMtPmZsYWdzICYgRlVTRV9CVUZfRkRfUkVUUlkpICYm JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjA2OgorXkleSSAgICAhKGRzdC0+ZmxhZ3MgJiBGVVNF X0JVRl9GRF9SRVRSWSkpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyMjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyMDc6CiteSV5JXklicmVh azskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyMDg6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZl ci5jOjIxMDoKK15JXklsZW4gLT0gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjIxMToKK15J fSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzMjogRklMRTog dG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjIxMzoKK15JcmV0dXJuIGNvcGllZDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9idWZmZXIuYzoyMTc6CiteSV5JXkkgICAgICAgY29uc3Qgc3RydWN0IGZ1c2VfYnVmICpz cmMsIHNpemVfdCBzcmNfb2ZmLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjIxODoKK15JXkleSSAg ICAgICBzaXplX3QgbGVuLCBlbnVtIGZ1c2VfYnVmX2NvcHlfZmxhZ3MgZmxhZ3MpJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvYnVmZmVyLmM6MjIwOgorXkkodm9pZCkgZmxhZ3M7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVy LmM6MjIyOgorXklyZXR1cm4gZnVzZV9idWZfZmRfdG9fZmQoZHN0LCBkc3Rfb2ZmLCBzcmMsIHNy Y19vZmYsIGxlbik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjI4OgorXkleSV5JXkkgY29uc3Qg c3RydWN0IGZ1c2VfYnVmICpzcmMsIHNpemVfdCBzcmNfb2ZmLCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZl ci5jOjIyOToKK15JXkleSV5JIHNpemVfdCBsZW4sIGVudW0gZnVzZV9idWZfY29weV9mbGFncyBm bGFncykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyMzE6CiteSWludCBzcmNfaXNfZmQgPSBzcmMt PmZsYWdzICYgRlVTRV9CVUZfSVNfRkQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjMyOgorXklp bnQgZHN0X2lzX2ZkID0gZHN0LT5mbGFncyAmIEZVU0VfQlVGX0lTX0ZEOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MzogRklMRTogdG9vbHMvdmlydGlvZnNk L2J1ZmZlci5jOjIzNDoKK15JaWYgKCFzcmNfaXNfZmQgJiYgIWRzdF9pc19mZCkgeyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2J1ZmZlci5jOjIzNToKK15JXkljaGFyICpkc3RtZW0gPSAoY2hhciAqKWRzdC0+bWVt ICsgZHN0X29mZjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyMzY6CiteSV5JY2hhciAqc3JjbWVt ID0gKGNoYXIgKilzcmMtPm1lbSArIHNyY19vZmY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjM4 OgorXkleSWlmIChkc3RtZW0gIT0gc3JjbWVtKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjM5 OgorXkleSV5JaWYgKGRzdG1lbSArIGxlbiA8PSBzcmNtZW0gfHwgc3JjbWVtICsgbGVuIDw9IGRz dG1lbSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRo aXMgc3RhdGVtZW50CiMyNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyMzk6Cisg ICAgICAgICAgICAgICAgICAgICAgIGlmIChkc3RtZW0gKyBsZW4gPD0gc3JjbWVtIHx8IHNyY21l bSArIGxlbiA8PSBkc3RtZW0pClsuLi5dCisgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKWy4u Ll0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1OTogRklMRTog dG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI0MDoKK15JXkleSV5JbWVtY3B5KGRzdG1lbSwgc3Jj bWVtLCBsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2 MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI0MToKK15JXkleSWVsc2UkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9idWZmZXIuYzoyNDI6CiteSV5JXkleSW1lbW1vdmUoZHN0bWVtLCBzcmNtZW0sIGxl bik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjQzOgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZm ZXIuYzoyNDU6CiteSV5JcmV0dXJuIGxlbjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyNDY6Cite SX0gZWxzZSBpZiAoIXNyY19pc19mZCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI0NzoKK15J XklyZXR1cm4gZnVzZV9idWZfd3JpdGUoZHN0LCBkc3Rfb2ZmLCBzcmMsIHNyY19vZmYsIGxlbik7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjQ4OgorXkl9IGVsc2UgaWYgKCFkc3RfaXNfZmQpIHsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyNDk6CiteSV5JcmV0dXJuIGZ1c2VfYnVmX3JlYWQoZHN0 LCBkc3Rfb2ZmLCBzcmMsIHNyY19vZmYsIGxlbik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjUw OgorXkl9IGVsc2UgaWYgKGZsYWdzICYgRlVTRV9CVUZfTk9fU1BMSUNFKSB7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvYnVmZmVyLmM6MjUxOgorXkleSXJldHVybiBmdXNlX2J1Zl9mZF90b19mZChkc3QsIGRzdF9v ZmYsIHNyYywgc3JjX29mZiwgbGVuKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyNTI6CiteSX0g ZWxzZSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjUzOgorXkleSXJldHVybiBmdXNlX2J1Zl9z cGxpY2UoZHN0LCBkc3Rfb2ZmLCBzcmMsIHNyY19vZmYsIGxlbiwgZmxhZ3MpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2J1ZmZlci5jOjI1NDoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI1OToKK15JaWYg KGJ1ZnYtPmlkeCA8IGJ1ZnYtPmNvdW50KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2Fy eSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI3ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2J1ZmZlci5jOjI1OToKKyAgICAgICBpZiAoYnVmdi0+aWR4IDwgYnVmdi0+Y291bnQpClsu Li5dCisgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjYwOgorXkleSXJl dHVybiAmYnVmdi0+YnVmW2J1ZnYtPmlkeF07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjYxOgor XkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjYyOgorXkleSXJldHVybiBOVUxMOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NjogRklMRTogdG9vbHMv dmlydGlvZnNkL2J1ZmZlci5jOjI2NzoKK15JY29uc3Qgc3RydWN0IGZ1c2VfYnVmICpidWYgPSBm dXNlX2J1ZnZlY19jdXJyZW50KGJ1ZnYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI2OToKK15J YnVmdi0+b2ZmICs9IGxlbjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyNzA6CiteSWFzc2VydChi dWZ2LT5vZmYgPD0gYnVmLT5zaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyOTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyNzE6CiteSWlm IChidWZ2LT5vZmYgPT0gYnVmLT5zaXplKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjcyOgor XkleSWFzc2VydChidWZ2LT5pZHggPCBidWZ2LT5jb3VudCk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVy LmM6MjczOgorXkleSWJ1ZnYtPmlkeCsrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI3NDoKK15J XklpZiAoYnVmdi0+aWR4ID09IGJ1ZnYtPmNvdW50KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5l Y2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI5MzogRklMRTogdG9vbHMv dmlydGlvZnNkL2J1ZmZlci5jOjI3NDoKKyAgICAgICAgICAgICAgIGlmIChidWZ2LT5pZHggPT0g YnVmdi0+Y291bnQpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyOTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyNzU6CiteSV5JXklyZXR1 cm4gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTU6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyNzY6CiteSV5JYnVmdi0+b2ZmID0gMDskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9idWZmZXIuYzoyNzc6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyOTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyNzg6 CiteSXJldHVybiAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI4MjoKK15JXkkgICAgICBlbnVt IGZ1c2VfYnVmX2NvcHlfZmxhZ3MgZmxhZ3MpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6Mjg0Ogor XklzaXplX3QgY29waWVkID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyODY6CiteSWlmIChk c3R2ID09IHNyY3YpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJt cyBvZiB0aGlzIHN0YXRlbWVudAojMzA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6 Mjg2OgorICAgICAgIGlmIChkc3R2ID09IHNyY3YpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIu YzoyODc6CiteSV5JcmV0dXJuIGZ1c2VfYnVmX3NpemUoZHN0dik7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVm ZmVyLmM6Mjg5OgorXklmb3IgKDs7KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MjkwOgorXkle SWNvbnN0IHN0cnVjdCBmdXNlX2J1ZiAqc3JjID0gZnVzZV9idWZ2ZWNfY3VycmVudChzcmN2KTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyOTE6CiteSV5JY29uc3Qgc3RydWN0IGZ1c2VfYnVmICpk c3QgPSBmdXNlX2J1ZnZlY19jdXJyZW50KGRzdHYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjI5 MjoKK15JXklzaXplX3Qgc3JjX2xlbjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzoyOTM6CiteSV5J c2l6ZV90IGRzdF9sZW47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6Mjk0OgorXkleSXNpemVfdCBs ZW47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6Mjk1OgorXkleSXNzaXplX3QgcmVzOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxNjogRklMRTogdG9vbHMvdmly dGlvZnNkL2J1ZmZlci5jOjI5NzoKK15JXklpZiAoc3JjID09IE5VTEwgfHwgZHN0ID09IE5VTEwp JAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0 YXRlbWVudAojMzE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6Mjk3OgorICAgICAg ICAgICAgICAgaWYgKHNyYyA9PSBOVUxMIHx8IGRzdCA9PSBOVUxMKQpbLi4uXQoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzE3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvYnVmZmVyLmM6Mjk4OgorXkleSV5JYnJlYWs7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MzAw OgorXkleSXNyY19sZW4gPSBzcmMtPnNpemUgLSBzcmN2LT5vZmY7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVm ZmVyLmM6MzAxOgorXkleSWRzdF9sZW4gPSBkc3QtPnNpemUgLSBkc3R2LT5vZmY7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvYnVmZmVyLmM6MzAyOgorXkleSWxlbiA9IG1pbl9zaXplKHNyY19sZW4sIGRzdF9sZW4p OyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMzMjM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9idWZmZXIuYzozMDQ6CisgICAgICAgICAgICAgICByZXMgPSBmdXNlX2J1Zl9jb3B5 X29uZShkc3QsIGRzdHYtPm9mZiwgc3JjLCBzcmN2LT5vZmYsIGxlbiwgZmxhZ3MpOwoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvYnVmZmVyLmM6MzA0OgorXkleSXJlcyA9IGZ1c2VfYnVmX2NvcHlfb25lKGRzdCwgZHN0 di0+b2ZmLCBzcmMsIHNyY3YtPm9mZiwgbGVuLCBmbGFncyk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVy LmM6MzA1OgorXkleSWlmIChyZXMgPCAwKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MzA2Ogor XkleSV5JaWYgKCFjb3BpZWQpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBh bGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMzI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVm ZmVyLmM6MzA2OgorICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvcGllZCkKWy4uLl0KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNjogRklMRTogdG9vbHMv dmlydGlvZnNkL2J1ZmZlci5jOjMwNzoKK15JXkleSV5JcmV0dXJuIHJlczskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9idWZmZXIuYzozMDg6CiteSV5JXklicmVhazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzozMDk6 CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyOTog RklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjMxMDoKK15JXkljb3BpZWQgKz0gcmVzOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMTogRklMRTogdG9v bHMvdmlydGlvZnNkL2J1ZmZlci5jOjMxMjoKK15JXklpZiAoIWZ1c2VfYnVmdmVjX2FkdmFuY2Uo c3JjdiwgcmVzKSB8fCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2J1ZmZlci5jOjMxMzoKK15JXkkgICAgIWZ1c2Vf YnVmdmVjX2FkdmFuY2UoZHN0diwgcmVzKSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzozMTQ6Cite SV5JXklicmVhazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzozMTY6CiteSV5JaWYgKHJlcyA8IGxl bikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMg c3RhdGVtZW50CiMzMzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9idWZmZXIuYzozMTY6CisgICAg ICAgICAgICAgICBpZiAocmVzIDwgbGVuKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MzE3 OgorXkleSV5JYnJlYWs7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MzE4OgorXkl9JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvYnVmZmVyLmM6MzIwOgorXklyZXR1cm4gY29waWVkOyQKCldBUk5JTkc6IEJsb2NrIGNv bW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMKIzM0ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG9nLmM6MjoKKy8qCisgIEZVU0U6IEZpbGVzeXN0ZW0gaW4gVXNlcnNwYWNlCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNjM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvZy5jOjE3OgorXkleSV9fYXR0cmlidXRlX18oKCB1bnVzZWQgKSkg ZW51bSBmdXNlX2xvZ19sZXZlbCBsZXZlbCwkCgpFUlJPUjogc3BhY2UgcHJvaGliaXRlZCBhZnRl ciB0aGF0IG9wZW4gcGFyZW50aGVzaXMgJygnCiMzNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvZy5jOjE3OgorICAgICAgICAgICAgICAgX19hdHRyaWJ1dGVfXygoIHVudXNlZCApKSBl bnVtIGZ1c2VfbG9nX2xldmVsIGxldmVsLAoKRVJST1I6IHNwYWNlIHByb2hpYml0ZWQgYmVmb3Jl IHRoYXQgY2xvc2UgcGFyZW50aGVzaXMgJyknCiMzNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvZy5jOjE3OgorICAgICAgICAgICAgICAgX19hdHRyaWJ1dGVfXygoIHVudXNlZCApKSBl bnVtIGZ1c2VfbG9nX2xldmVsIGxldmVsLAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb2cuYzoxODoKK15J Xkljb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXApJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb2cuYzoy MDoKK15JdmZwcmludGYoc3RkZXJyLCBmbXQsIGFwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzNzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvZy5j OjI3OgorXklpZiAoIWZ1bmMpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBh bGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMzczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb2cuYzoyNzoKKyAgICAgICBpZiAoIWZ1bmMpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv Zy5jOjI4OgorXkleSWZ1bmMgPSBkZWZhdWx0X2xvZ19mdW5jOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG9nLmM6MzA6CiteSWxvZ19mdW5jID0gZnVuYzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvZy5jOjM1 OgorXkl2YV9saXN0IGFwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzM4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG9nLmM6Mzc6CiteSXZhX3N0YXJ0 KGFwLCBmbXQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4 NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG9nLmM6Mzg6CiteSWxvZ19mdW5jKGxldmVs LCBmbXQsIGFwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz ODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvZy5jOjM5OgorXkl2YV9lbmQoYXApOyQK CldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMKIzM5NDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjoKKy8qCisgIEZVU0U6IEZpbGVzeXN0 ZW0gaW4gVXNlcnNwYWNlCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0MTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIzOgorXkl2b2lkICpkYXRh OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxNjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjQ6CiteSWNvbnN0IHN0cnVjdCBmdXNlX29wdCAq b3B0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxNzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjU6CiteSWZ1c2Vfb3B0X3Byb2NfdCBwcm9j OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjY6CiteSWludCBhcmdjdHI7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDE5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9vcHQuYzoyNzoKK15JaW50IGFyZ2M7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNDIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoy ODoKK15JY2hhciAqKmFyZ3Y7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNDIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyOToKK15Jc3RydWN0 IGZ1c2VfYXJncyBvdXRhcmdzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzQyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzA6CiteSWNoYXIg Km9wdHM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDIzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozMToKK15JaW50IG5vbm9wdDskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0Mjg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5jOjM2OgorXklpZiAoYXJncykgeyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf b3B0LmM6Mzc6CiteSV5JaWYgKGFyZ3MtPmFyZ3YgJiYgYXJncy0+YWxsb2NhdGVkKSB7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDMwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9vcHQuYzozODoKK15JXkleSWludCBpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf b3B0LmM6Mzk6CiteSV5JXklmb3IgKGkgPSAwOyBpIDwgYXJncy0+YXJnYzsgaSsrKSQKCkVSUk9S OiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQK IzQzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mzk6CisgICAgICAgICAgICAg ICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhcmdzLT5hcmdjOyBpKyspClsuLi5dCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MzI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX29wdC5jOjQwOgorXkleSV5JXklmcmVlKGFyZ3MtPmFyZ3ZbaV0pOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQzMzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2Vfb3B0LmM6NDE6CiteSV5JXklmcmVlKGFyZ3MtPmFyZ3YpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQzNDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2Vfb3B0LmM6NDI6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzQzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NDM6Cite SV5JYXJncy0+YXJnYyA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNDM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo0NDoKK15JXklhcmdz LT5hcmd2ID0gTlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0Mzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjQ1OgorXkleSWFyZ3MtPmFs bG9jYXRlZCA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NDM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo0NjoKK15JfSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ0MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2Vfb3B0LmM6NTE6CiteSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6IG1lbW9y eSBhbGxvY2F0aW9uIGZhaWxlZFxuIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNDQ0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo1MjoKK15J cmV0dXJuIC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ0 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NTc6CiteSWNoYXIgKipuZXdhcmd2 OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ1MDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NTg6CiteSWNoYXIgKm5ld2FyZzskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NTI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX29wdC5jOjYwOgorXklhc3NlcnQoIWFyZ3MtPmFyZ3YgfHwgYXJncy0+YWxsb2Nh dGVkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NTQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjYyOgorXkluZXdhcmcgPSBzdHJkdXAoYXJn KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NTU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjYzOgorXklpZiAoIW5ld2FyZykkCgpFUlJPUjog YnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM0 NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjYzOgorICAgICAgIGlmICghbmV3 YXJnKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDU2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo2NDoKK15JXklyZXR1cm4gYWxsb2Nf ZmFpbGVkKCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDU4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo2NjoKK15JbmV3YXJndiA9IHJlYWxs b2MoYXJncy0+YXJndiwgKGFyZ3MtPmFyZ2MgKyAyKSAqIHNpemVvZihjaGFyICopKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NTk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5jOjY3OgorXklpZiAoIW5ld2FyZ3YpIHskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX29wdC5jOjY4OgorXkleSWZyZWUobmV3YXJnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM0NjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5j OjY5OgorXkleSXJldHVybiBhbGxvY19mYWlsZWQoKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM0NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5j OjcwOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDY0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo3MjoKK15JYXJncy0+YXJndiA9IG5l d2FyZ3Y7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDY1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo3MzoKK15JYXJncy0+YWxsb2NhdGVkID0g MTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjc0OgorXklhcmdzLT5hcmd2W2FyZ3MtPmFyZ2Mr K10gPSBuZXdhcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NDY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo3NToKK15JYXJncy0+YXJndlth cmdzLT5hcmdjXSA9IE5VTEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNDY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo3NjoKK15JcmV0dXJu IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDcyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo4MDoKK15JXkleSV5JICAgICAgY29uc3QgY2hh ciAqYXJnKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ3NDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6ODI6CiteSWFzc2VydChwb3MgPD0gYXJn cy0+YXJnYyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDc1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo4MzoKK15JaWYgKGZ1c2Vfb3B0X2Fk ZF9hcmcoYXJncywgYXJnKSA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nhcnkg Zm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM0NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX29wdC5jOjgzOgorICAgICAgIGlmIChmdXNlX29wdF9hZGRfYXJnKGFyZ3MsIGFyZykg PT0gLTEpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0 NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjg0OgorXkleSXJldHVybiAtMTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0Nzg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjg2OgorXklpZiAocG9zICE9IGFyZ3MtPmFyZ2MgLSAx KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDc5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo4NzoKK15JXkljaGFyICpuZXdhcmcgPSBhcmdz LT5hcmd2W2FyZ3MtPmFyZ2MgLSAxXTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM0ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjg4OgorXkle SW1lbW1vdmUoJmFyZ3MtPmFyZ3ZbcG9zICsgMV0sICZhcmdzLT5hcmd2W3Bvc10sJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDgxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9vcHQuYzo4OToKK15JXkleSXNpemVvZihjaGFyICopICogKGFyZ3MtPmFyZ2Mg LSBwb3MgLSAxKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NDgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo5MDoKK15JXklhcmdzLT5hcmd2 W3Bvc10gPSBuZXdhcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNDgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo5MToKK15JfSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2Vfb3B0LmM6OTI6CiteSXJldHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0 LmM6OTc6CiteSXJldHVybiBmdXNlX29wdF9pbnNlcnRfYXJnX2NvbW1vbihhcmdzLCBwb3MsIGFy Zyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDk0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxMDI6CiteSWlmIChjdHgtPmFyZ2N0ciArIDEg Pj0gY3R4LT5hcmdjKSB7JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzQ5NTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTAzOgorICAgICAgICAgICAgICAgZnVz ZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVzZTogbWlzc2luZyBhcmd1bWVudCBhZnRlciBgJXMnXG4i LCBvcHQpOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDk1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxMDM6CiteSV5JZnVzZV9sb2coRlVTRV9M T0dfRVJSLCAiZnVzZTogbWlzc2luZyBhcmd1bWVudCBhZnRlciBgJXMnXG4iLCBvcHQpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ5NjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTA0OgorXkleSXJldHVybiAtMTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX29wdC5jOjEwNToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzQ5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTA2OgorXkljdHgt PmFyZ2N0cisrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ5 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTA3OgorXklyZXR1cm4gMDskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MDQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjExMjoKK15JcmV0dXJuIGZ1c2Vfb3B0X2FkZF9hcmcoJmN0 eC0+b3V0YXJncywgYXJnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM1MDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjExNzoKK15JdW5zaWdu ZWQgb2xkbGVuID0gKm9wdHMgPyBzdHJsZW4oKm9wdHMpIDogMDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X29wdC5jOjExODoKK15JY2hhciAqZCA9IHJlYWxsb2MoKm9wdHMsIG9sZGxlbiArIDEgKyBzdHJs ZW4ob3B0KSAqIDIgKyAxKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM1MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjEyMDoKK15JaWYgKCFk KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBz dGF0ZW1lbnQKIzUxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTIwOgorICAg ICAgIGlmICghZCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzUxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTIxOgorXkleSXJldHVy biBhbGxvY19mYWlsZWQoKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM1MTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjEyMzoKK15JKm9wdHMg PSBkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUxNjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTI0OgorXklpZiAob2xkbGVuKSB7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTE3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9vcHQuYzoxMjU6CiteSV5JZCArPSBvbGRsZW47JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9vcHQuYzoxMjY6CiteSV5JKmQrKyA9ICcsJzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM1MTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5j OjEyNzoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUy MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTI5OgorXklmb3IgKDsgKm9wdDsg b3B0KyspIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MjI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjEzMDoKK15JXklpZiAoZXNjICYmICgq b3B0ID09ICcsJyB8fCAqb3B0ID09ICdcXCcpKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vz c2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzUyMjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2Vfb3B0LmM6MTMwOgorICAgICAgICAgICAgICAgaWYgKGVzYyAmJiAoKm9wdCA9 PSAnLCcgfHwgKm9wdCA9PSAnXFwnKSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzUyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTMx OgorXkleSV5JKmQrKyA9ICdcXCc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNTI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxMzI6CiteSV5J KmQrKyA9ICpvcHQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NTI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxMzM6CiteSX0kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MjY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX29wdC5jOjEzNDoKK15JKmQgPSAnXDAnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUyODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0 LmM6MTM2OgorXklyZXR1cm4gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM1MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjE0MToKK15JcmV0 dXJuIGFkZF9vcHRfY29tbW9uKG9wdHMsIG9wdCwgMCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNTM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQu YzoxNDY6CiteSXJldHVybiBhZGRfb3B0X2NvbW1vbihvcHRzLCBvcHQsIDEpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU0MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2Vfb3B0LmM6MTUxOgorXklyZXR1cm4gYWRkX29wdF9jb21tb24oJmN0eC0+b3B0cywg b3B0LCAxKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NDc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjE1NToKK15JXkkgICAgIGludCBpc28p JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTQ5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxNTc6CiteSWlmIChrZXkgPT0gRlVTRV9PUFRfS0VZ X0RJU0NBUkQpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBv ZiB0aGlzIHN0YXRlbWVudAojNTQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzox NTc6CisgICAgICAgaWYgKGtleSA9PSBGVVNFX09QVF9LRVlfRElTQ0FSRCkKWy4uLl0KCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU1MDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2Vfb3B0LmM6MTU4OgorXkleSXJldHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf b3B0LmM6MTYwOgorXklpZiAoa2V5ICE9IEZVU0VfT1BUX0tFWV9LRUVQICYmIGN0eC0+cHJvYykg eyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU1MzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTYxOgorXkleSWludCByZXMgPSBjdHgtPnByb2Mo Y3R4LT5kYXRhLCBhcmcsIGtleSwgJmN0eC0+b3V0YXJncyk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9v cHQuYzoxNjI6CiteSV5JaWYgKHJlcyA9PSAtMSB8fCAhcmVzKSQKCkVSUk9SOiBicmFjZXMge30g YXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzU1NDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTYyOgorICAgICAgICAgICAgICAgaWYgKHJlcyA9 PSAtMSB8fCAhcmVzKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNTU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxNjM6CiteSV5JXkly ZXR1cm4gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU1 NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTY0OgorXkl9JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTU3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9vcHQuYzoxNjU6CiteSWlmIChpc28pJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVj ZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNTU3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9vcHQuYzoxNjU6CisgICAgICAgaWYgKGlzbykKWy4uLl0KKyAgICAgICBl bHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NTg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjE2NjoKK15JXklyZXR1cm4gYWRkX29w dChjdHgsIGFyZyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NTU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxNjc6CiteSWVsc2UkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NjA6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5jOjE2ODoKK15JXklyZXR1cm4gYWRkX2FyZyhjdHgsIGFyZyk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTY1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxNzM6CiteSWludCBhcmdsZW4gPSBzdHJsZW4oYXJnKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NjY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjE3NDoKK15JY29uc3QgY2hhciAqc2VwID0gc3RyY2hy KHQsICc9Jyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTY3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxNzU6CiteSXNlcCA9IHNlcCA/IHNl cCA6IHN0cmNocih0LCAnICcpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzU2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTc2OgorXklpZiAo c2VwICYmICghc2VwWzFdIHx8IHNlcFsxXSA9PSAnJScpKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9v cHQuYzoxNzc6CiteSV5JaW50IHRsZW4gPSBzZXAgLSB0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0 LmM6MTc4OgorXkleSWlmIChzZXBbMF0gPT0gJz0nKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5l Y2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzU3MDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTc4OgorICAgICAgICAgICAgICAgaWYgKHNlcFswXSA9PSAn PScpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NzE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjE3OToKK15JXkleSXRsZW4gKys7JAoK RVJST1I6IHNwYWNlIHByb2hpYml0ZWQgYmVmb3JlIHRoYXQgJysrJyAoY3R4Old4TykKIzU3MTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTc5OgorICAgICAgICAgICAgICAgICAg ICAgICB0bGVuICsrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU3MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2Vfb3B0LmM6MTgwOgorXkleSWlmIChhcmdsZW4gPj0gdGxlbiAmJiBzdHJuY21wKGFyZywg dCwgdGxlbikgPT0gMCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzU3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTgxOgorXkleSV5JKnNl cHAgPSBzZXAgLSB0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzU3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTgyOgorXkleSV5JcmV0dXJu IDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTc1OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxODM6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2Vfb3B0LmM6MTg0OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNTc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxODU6CiteSWlmIChz dHJjbXAodCwgYXJnKSA9PSAwKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNTc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxODY6CiteSV5J KnNlcHAgPSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU3 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTg3OgorXkleSXJldHVybiAxOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU4MDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTg4OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNTgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQu YzoxODk6CiteSXJldHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzU4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTkzOgorXkleSV5J XkkgICAgICAgY29uc3QgY2hhciAqYXJnLCB1bnNpZ25lZCAqc2VwcCkkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX29wdC5jOjE5NToKK15JZm9yICg7IG9wdCAmJiBvcHQtPnRlbXBsOyBvcHQrKykkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1ODg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5jOjE5NjoKK15JXklpZiAobWF0Y2hfdGVtcGxhdGUob3B0LT50ZW1w bCwgYXJnLCBzZXBwKSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBh cm1zIG9mIHRoaXMgc3RhdGVtZW50CiM1ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29w dC5jOjE5NjoKKyAgICAgICAgICAgICAgIGlmIChtYXRjaF90ZW1wbGF0ZShvcHQtPnRlbXBsLCBh cmcsIHNlcHApKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNTg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoxOTc6CiteSV5JXklyZXR1 cm4gb3B0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU5MDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MTk4OgorXklyZXR1cm4gTlVMTDskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1OTU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIwMzoKK15JdW5zaWduZWQgZHVtbXk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTk2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9vcHQuYzoyMDQ6CiteSXJldHVybiBmaW5kX29wdChvcHRzLCBvcHQsICZkdW1teSkg PyAxIDogMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MDA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIwODoKK15JXkleSSAgICAgY29uc3Qg Y2hhciAqYXJnKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYw MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjEwOgorXklhc3NlcnQoZm9ybWF0 WzBdID09ICclJyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NjAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyMTE6CiteSWlmIChmb3JtYXRb MV0gPT0gJ3MnKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NjA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyMTI6CiteSV5JY2hhciAqKnMg PSB2YXI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjA1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyMTM6CiteSV5JY2hhciAqY29weSA9IHN0 cmR1cChwYXJhbSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NjA2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyMTQ6CiteSV5JaWYgKCFjb3B5 KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBz dGF0ZW1lbnQKIzYwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjE0OgorICAg ICAgICAgICAgICAgaWYgKCFjb3B5KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyMTU6 CiteSV5JXklyZXR1cm4gYWxsb2NfZmFpbGVkKCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNjA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoy MTc6CiteSV5JZnJlZSgqcyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNjEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyMTg6CiteSV5JKnMg PSBjb3B5OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYxMTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjE5OgorXkl9IGVsc2UgeyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYxMjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2Vfb3B0LmM6MjIwOgorXkleSWlmIChzc2NhbmYocGFyYW0sIGZvcm1hdCwgdmFy KSAhPSAxKSB7JAoKRVJST1I6IGxpbmUgb3ZlciA5MCBjaGFyYWN0ZXJzCiM2MTM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIyMToKKyAgICAgICAgICAgICAgICAgICAgICAgZnVz ZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVzZTogaW52YWxpZCBwYXJhbWV0ZXIgaW4gb3B0aW9uIGAl cydcbiIsIGFyZyk7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2 MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIyMToKK15JXkleSWZ1c2VfbG9n KEZVU0VfTE9HX0VSUiwgImZ1c2U6IGludmFsaWQgcGFyYW1ldGVyIGluIG9wdGlvbiBgJXMnXG4i LCBhcmcpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYxNDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjIyOgorXkleSV5JcmV0dXJuIC0xOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYxNTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjIzOgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29w dC5jOjIyNDoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzYxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjI1OgorXklyZXR1cm4gMDsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MjE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIyOToKK15JXkkgICAgICAgY29uc3Qgc3RydWN0IGZ1 c2Vfb3B0ICpvcHQsIHVuc2lnbmVkIHNlcCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM2MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIzMDoK K15JXkkgICAgICAgY29uc3QgY2hhciAqYXJnLCBpbnQgaXNvKSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf b3B0LmM6MjMyOgorXklpZiAob3B0LT5vZmZzZXQgPT0gLTFVKSB7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9vcHQuYzoyMzM6CiteSV5JaWYgKGNhbGxfcHJvYyhjdHgsIGFyZywgb3B0LT52YWx1ZSwgaXNv KSA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9m IHRoaXMgc3RhdGVtZW50CiM2MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIz MzoKKyAgICAgICAgICAgICAgIGlmIChjYWxsX3Byb2MoY3R4LCBhcmcsIG9wdC0+dmFsdWUsIGlz bykgPT0gLTEpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM2MjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIzNDoKK15JXkleSXJldHVy biAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2Mjc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIzNToKK15JfSBlbHNlIHskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2Mjg6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX29wdC5jOjIzNjoKK15JXkl2b2lkICp2YXIgPSAoY2hhciAqKWN0eC0+ZGF0YSAr IG9wdC0+b2Zmc2V0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzYyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjM3OgorXkleSWlmIChzZXAg JiYgb3B0LT50ZW1wbFtzZXAgKyAxXSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzYzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjM4Ogor XkleSV5JY29uc3QgY2hhciAqcGFyYW0gPSBhcmcgKyBzZXA7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9v cHQuYzoyMzk6CiteSV5JXklpZiAob3B0LT50ZW1wbFtzZXBdID09ICc9JykkCgpFUlJPUjogYnJh Y2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM2MzE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjIzOToKKyAgICAgICAgICAgICAgICAg ICAgICAgaWYgKG9wdC0+dGVtcGxbc2VwXSA9PSAnPScpClsuLi5dCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X29wdC5jOjI0MDoKK15JXkleSV5JcGFyYW0gKys7JAoKRVJST1I6IHNwYWNlIHByb2hpYml0ZWQg YmVmb3JlIHRoYXQgJysrJyAoY3R4Old4TykKIzYzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2Vfb3B0LmM6MjQwOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtICsrOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf b3B0LmM6MjQxOgorXkleSV5JaWYgKHByb2Nlc3Nfb3B0X3BhcmFtKHZhciwgb3B0LT50ZW1wbCAr IHNlcCArIDEsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjM0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyNDI6CiteSV5JXkleSV5JICAgICAg cGFyYW0sIGFyZykgPT0gLTEpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNjM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyNDM6CiteSV5JXkle SXJldHVybiAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2 MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI0NDoKK15JXkl9IGVsc2UkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2Mzc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI0NToKK15JXkleSSooaW50ICopdmFyID0gb3B0LT52YWx1 ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2Mzg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI0NjoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf b3B0LmM6MjQ3OgorXklyZXR1cm4gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM2NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI1MToKK15J XkleSSAgICAgICBjb25zdCBzdHJ1Y3QgZnVzZV9vcHQgKm9wdCwgdW5zaWduZWQgc2VwLCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY0NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjUyOgorXkleSV5JICAgICAgIGNvbnN0IGNoYXIgKmFyZywg aW50IGlzbykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NDY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI1NDoKK15JaW50IHJlczskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NDc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5jOjI1NToKK15JY2hhciAqbmV3YXJnOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2Vfb3B0LmM6MjU2OgorXkljaGFyICpwYXJhbTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM2NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI1 ODoKK15JaWYgKG5leHRfYXJnKGN0eCwgYXJnKSA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFy ZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM2NTA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI1ODoKKyAgICAgICBpZiAobmV4dF9hcmcoY3R4LCBh cmcpID09IC0xKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNjUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyNTk6CiteSV5JcmV0dXJu IC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1MzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjYxOgorXklwYXJhbSA9IGN0eC0+YXJndltj dHgtPmFyZ2N0cl07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NjU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyNjI6CiteSW5ld2FyZyA9IG1h bGxvYyhzZXAgKyBzdHJsZW4ocGFyYW0pICsgMSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNjU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoy NjM6CiteSWlmICghbmV3YXJnKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3Ig YWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzY1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2Vfb3B0LmM6MjYzOgorICAgICAgIGlmICghbmV3YXJnKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9vcHQuYzoyNjQ6CiteSV5JcmV0dXJuIGFsbG9jX2ZhaWxlZCgpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2Vfb3B0LmM6MjY2OgorXkltZW1jcHkobmV3YXJnLCBhcmcsIHNlcCk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9vcHQuYzoyNjc6CiteSXN0cmNweShuZXdhcmcgKyBzZXAsIHBhcmFtKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NjA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX29wdC5jOjI2ODoKK15JcmVzID0gcHJvY2Vzc19vcHQoY3R4LCBvcHQsIHNlcCwg bmV3YXJnLCBpc28pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzY2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjY5OgorXklmcmVlKG5ld2Fy Zyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjYzOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyNzE6CiteSXJldHVybiByZXM7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjY4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9vcHQuYzoyNzY6CiteSXVuc2lnbmVkIHNlcDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2Njk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X29wdC5jOjI3NzoKK15JY29uc3Qgc3RydWN0IGZ1c2Vfb3B0ICpvcHQgPSBmaW5kX29wdChjdHgt Pm9wdCwgYXJnLCAmc2VwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM2NzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI3ODoKK15JaWYgKG9w dCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY3MTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mjc5OgorXkleSWZvciAoOyBvcHQ7IG9wdCA9 IGZpbmRfb3B0KG9wdCArIDEsIGFyZywgJnNlcCkpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM2NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5j OjI4MDoKK15JXkleSWludCByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNjczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyODE6CiteSV5J XklpZiAoc2VwICYmIG9wdC0+dGVtcGxbc2VwXSA9PSAnICcgJiYgIWFyZ1tzZXBdKSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY3NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2Vfb3B0LmM6MjgyOgorXkleSV5JXklyZXMgPSBwcm9jZXNzX29wdF9zZXBfYXJn KGN0eCwgb3B0LCBzZXAsIGFyZywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM2NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI4MzoKK15JXkle SV5JXkleSV5JICBpc28pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzY3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mjg0OgorXkleSV5JZWxz ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY3NzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mjg1OgorXkleSV5JXklyZXMgPSBwcm9jZXNzX29w dChjdHgsIG9wdCwgc2VwLCBhcmcsIGlzbyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyODY6 CiteSV5JXklpZiAocmVzID09IC0xKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBm b3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzY3ODogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2Vfb3B0LmM6Mjg2OgorICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzID09IC0xKQpb Li4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjc5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyODc6CiteSV5JXkleSXJldHVybiAtMTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2ODA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI4ODoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNjgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQu YzoyODk6CiteSV5JcmV0dXJuIDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNjgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoyOTA6CiteSX0g ZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4MzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MjkxOgorXkleSXJldHVybiBjYWxsX3Byb2Mo Y3R4LCBhcmcsIEZVU0VfT1BUX0tFWV9PUFQsIGlzbyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNjg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQu YzoyOTY6CiteSWNoYXIgKnMgPSBvcHRzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzY4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mjk3Ogor XkljaGFyICpkID0gczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM2OTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjI5ODoKK15JaW50IGVuZCA9 IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjkyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozMDA6CiteSXdoaWxlICghZW5kKSB7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjkzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9vcHQuYzozMDE6CiteSV5JaWYgKCpzID09ICdcMCcpJAoKRVJST1I6IGJy YWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNjkz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozMDE6CisgICAgICAgICAgICAgICBp ZiAoKnMgPT0gJ1wwJykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzY5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzAyOgorXkleSV5J ZW5kID0gMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2OTU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMwMzoKK15JXklpZiAoKnMgPT0gJywn IHx8IGVuZCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5 NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzA0OgorXkleSV5JaW50IHJlczsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2OTg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMwNjoKK15JXkleSSpkID0gJ1wwJzskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2OTk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX29wdC5jOjMwNzoKK15JXkleSXJlcyA9IHByb2Nlc3NfZ29wdChjdHgsIG9wdHMs IDEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcwMDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzA4OgorXkleSV5JaWYgKHJlcyA9PSAtMSkk CgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3Rh dGVtZW50CiM3MDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMwODoKKyAgICAg ICAgICAgICAgICAgICAgICAgaWYgKHJlcyA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf b3B0LmM6MzA5OgorXkleSV5JXklyZXR1cm4gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoz MTA6CiteSV5JXklkID0gb3B0czskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM3MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMxMToKK15JXkl9 IGVsc2UgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcwNDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzEyOgorXkleSV5JaWYgKHNbMF0gPT0g J1xcJyAmJiBzWzFdICE9ICdcMCcpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMxMzoKK15J XkleSV5JcysrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcw NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzE0OgorXkleSV5JXklpZiAoc1sw XSA+PSAnMCcgJiYgc1swXSA8PSAnMycgJiYkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM3MDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMxNToK K15JXkleSV5JICAgIHNbMV0gPj0gJzAnICYmIHNbMV0gPD0gJzcnICYmJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9vcHQuYzozMTY6CiteSV5JXkleSSAgICBzWzJdID49ICcwJyAmJiBzWzJdIDw9ICc3Jykg eyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcwOTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzE3OgorXkleSV5JXkleSSpkKysgPSAoc1swXSAt ICcwJykgKiAwMTAwICskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM3MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMxODoKK15JXkleSV5JXkle SShzWzFdIC0gJzAnKSAqIDAwMTAgKyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzcxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzE5OgorXkle SV5JXkleSV5JKHNbMl0gLSAnMCcpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzcxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzIwOgorXkle SV5JXkleSXMgKz0gMjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM3MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMyMToKK15JXkleSV5JfSBl bHNlIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMyMjoKK15JXkleSV5JXkkqZCsrID0gKnM7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzE1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozMjM6CiteSV5JXkleSX0kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX29wdC5jOjMyNDoKK15JXkleSX0gZWxzZSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoz MjU6CiteSV5JXkleSSpkKysgPSAqczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMyNjoKK15J XkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjMyNzoKK15JXkl9JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9vcHQuYzozMjg6CiteSV5JcysrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzcyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzI5Ogor Xkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzIzOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozMzE6CiteSXJldHVybiAwOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcyODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2Vfb3B0LmM6MzM2OgorXklpbnQgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzcyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6 MzM3OgorXkljaGFyICpjb3B5ID0gc3RyZHVwKG9wdHMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzczMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0 LmM6MzM5OgorXklpZiAoIWNvcHkpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM0MDoKK15J XklmdXNlX2xvZyhGVVNFX0xPR19FUlIsICJmdXNlOiBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWRc biIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzczMzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzQxOgorXkleSXJldHVybiAtMTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MzQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5jOjM0MjoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzczNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzQz OgorXklyZXMgPSBwcm9jZXNzX3JlYWxfb3B0aW9uX2dyb3VwKGN0eCwgY29weSk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzM2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9vcHQuYzozNDQ6CiteSWZyZWUoY29weSk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9v cHQuYzozNDU6CiteSXJldHVybiByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNzQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozNTA6Cite SWlmIChjdHgtPm5vbm9wdCB8fCBhcmdbMF0gIT0gJy0nKSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0 LmM6MzUxOgorXkleSXJldHVybiBjYWxsX3Byb2MoY3R4LCBhcmcsIEZVU0VfT1BUX0tFWV9OT05P UFQsIDApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0NDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzUyOgorXkllbHNlIGlmIChhcmdbMV0g PT0gJ28nKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzQ1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozNTM6CiteSV5JaWYgKGFyZ1syXSkk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NDY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM1NDoKK15JXkleSXJldHVybiBwcm9jZXNzX29wdGlv bl9ncm91cChjdHgsIGFyZyArIDIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzc0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzU1OgorXkle SWVsc2UgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzU2OgorXkleSV5JaWYgKG5leHRfYXJn KGN0eCwgYXJnKSA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM3NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X29wdC5jOjM1NjoKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRfYXJnKGN0eCwgYXJn KSA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izc0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzU3OgorXkleSV5JXklyZXR1 cm4gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzUxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozNTk6CiteSV5JXklyZXR1cm4gcHJvY2Vz c19vcHRpb25fZ3JvdXAoY3R4LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzc1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzYwOgorXkleSV5J XkleSV5JICAgIGN0eC0+YXJndltjdHgtPmFyZ2N0cl0pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0 LmM6MzYxOgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM3NTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM2MjoKK15JfSBlbHNlIGlm IChhcmdbMV0gPT0gJy0nICYmICFhcmdbMl0pIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM3NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM2 MzoKK15JXklpZiAoYWRkX2FyZyhjdHgsIGFyZykgPT0gLTEpJAoKRVJST1I6IGJyYWNlcyB7fSBh cmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNzU1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozNjM6CisgICAgICAgICAgICAgICBpZiAoYWRkX2Fy ZyhjdHgsIGFyZykgPT0gLTEpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3NTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM2NDoKK15J XkleSXJldHVybiAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM3NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM2NToKK15JXkljdHgtPm5v bm9wdCA9IGN0eC0+b3V0YXJncy5hcmdjOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzc1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzY2Ogor XkleSXJldHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izc1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6MzY3OgorXkl9IGVsc2UkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NjA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM2ODoKK15JXklyZXR1cm4gcHJvY2Vzc19nb3B0KGN0eCwg YXJnLCAwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NjU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM3MzoKK15JaWYgKGN0eC0+YXJnYykg eyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc2NjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mzc0OgorXkleSWlmIChhZGRfYXJnKGN0eCwgY3R4 LT5hcmd2WzBdKSA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM3NjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X29wdC5jOjM3NDoKKyAgICAgICAgICAgICAgIGlmIChhZGRfYXJnKGN0eCwgY3R4LT5hcmd2WzBd KSA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izc2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mzc1OgorXkleSV5JcmV0dXJu IC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc2ODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mzc2OgorXkl9JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9vcHQuYzozNzg6CiteSWZvciAoY3R4LT5hcmdjdHIgPSAxOyBjdHgtPmFyZ2N0ciA8IGN0eC0+ YXJnYzsgY3R4LT5hcmdjdHIrKykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM3NzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM3OToKK15JXklp ZiAocHJvY2Vzc19vbmUoY3R4LCBjdHgtPmFyZ3ZbY3R4LT5hcmdjdHJdKSA9PSAtMSkkCgpFUlJP UjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50 CiM3NzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM3OToKKyAgICAgICAgICAg ICAgIGlmIChwcm9jZXNzX29uZShjdHgsIGN0eC0+YXJndltjdHgtPmFyZ2N0cl0pID09IC0xKQpb Li4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzcyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozODA6CiteSV5JXklyZXR1cm4gLTE7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzc0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9vcHQuYzozODI6CiteSWlmIChjdHgtPm9wdHMpIHskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX29wdC5jOjM4MzoKK15JXklpZiAoZnVzZV9vcHRfaW5zZXJ0X2FyZygmY3R4LT5vdXRh cmdzLCAxLCAiLW8iKSA9PSAtMSB8fCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzc3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mzg0OgorXkle SSAgICBmdXNlX29wdF9pbnNlcnRfYXJnKCZjdHgtPm91dGFyZ3MsIDIsIGN0eC0+b3B0cykgPT0g LTEpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzc3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozODU6CiteSV5JXklyZXR1cm4gLTE7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzc4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9vcHQuYzozODY6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM3ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM4 ODoKK15JLyogSWYgb3B0aW9uIHNlcGFyYXRvciAoIi0tIikgaXMgdGhlIGxhc3QgYXJndW1lbnQs IHJlbW92ZSBpdCAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izc4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6Mzg5OgorXklpZiAoY3R4LT5u b25vcHQgJiYgY3R4LT5ub25vcHQgPT0gY3R4LT5vdXRhcmdzLmFyZ2MgJiYkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX29wdC5jOjM5MDoKK15JICAgIHN0cmNtcChjdHgtPm91dGFyZ3MuYXJndltjdHgtPm91 dGFyZ3MuYXJnYyAtIDFdLCAiLS0iKSA9PSAwKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzoz OTE6CiteSV5JZnJlZShjdHgtPm91dGFyZ3MuYXJndltjdHgtPm91dGFyZ3MuYXJnYyAtIDFdKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3ODQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM5MjoKK15JXkljdHgtPm91dGFyZ3MuYXJndlstLWN0 eC0+b3V0YXJncy5hcmdjXSA9IE5VTEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNzg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzozOTM6Cite SX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3ODc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjM5NToKK15JcmV0dXJuIDA7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzkxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9vcHQuYzozOTk6CiteSV5JICAgY29uc3Qgc3RydWN0IGZ1c2Vfb3B0IG9wdHNbXSwg ZnVzZV9vcHRfcHJvY190IHByb2MpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNzkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo0MDE6CiteSWlu dCByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzk0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo0MDI6CiteSXN0cnVjdCBmdXNlX29wdF9j b250ZXh0IGN0eCA9IHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM3OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjQwMzoKK15JXkkuZGF0YSA9 IGRhdGEsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzk2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo0MDQ6CiteSV5JLm9wdCA9IG9wdHMsJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzk3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo0MDU6CiteSV5JLnByb2MgPSBwcm9jLCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc5ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2Vfb3B0LmM6NDA2OgorXkl9OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzgwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NDA4Ogor XklpZiAoIWFyZ3MgfHwgIWFyZ3MtPmFyZ3YgfHwgIWFyZ3MtPmFyZ2MpJAoKRVJST1I6IGJyYWNl cyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojODAwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo0MDg6CisgICAgICAgaWYgKCFhcmdzIHx8 ICFhcmdzLT5hcmd2IHx8ICFhcmdzLT5hcmdjKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojODAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQu Yzo0MDk6CiteSV5JcmV0dXJuIDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojODAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo0MTE6CiteSWN0 eC5hcmdjID0gYXJncy0+YXJnYzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM4MDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjQxMjoKK15JY3R4 LmFyZ3YgPSBhcmdzLT5hcmd2OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzgwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NDE0OgorXklyZXMg PSBvcHRfcGFyc2UoJmN0eCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojODA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo0MTU6CiteSWlmIChy ZXMgIT0gLTEpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4 MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX29wdC5jOjQxNjoKK15JXklzdHJ1Y3QgZnVz ZV9hcmdzIHRtcCA9ICphcmdzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzgwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfb3B0LmM6NDE3OgorXkleSSph cmdzID0gY3R4Lm91dGFyZ3M7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojODEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo0MTg6CiteSV5JY3R4 Lm91dGFyZ3MgPSB0bXA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojODExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9vcHQuYzo0MTk6CiteSX0kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MTI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX29wdC5jOjQyMDoKK15JZnJlZShjdHgub3B0cyk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9vcHQuYzo0MjE6CiteSWZ1c2Vfb3B0X2ZyZWVfYXJncygmY3R4Lm91dGFyZ3MpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgxNDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2Vfb3B0LmM6NDIyOgorXklyZXR1cm4gcmVzOyQKCldBUk5JTkc6IEJsb2Nr IGNvbW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMKIzgyMzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjI6CisvKgorICBGVVNFOiBGaWxlc3lzdGVtIGluIFVzZXJz cGFjZQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODQ1OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6MjQ6CiteSWlmIChmdXNlX2luc3RhbmNl KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODQ2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6MjU6CiteSV5JZnVzZV9zZXNzaW9uX2V4 aXQoZnVzZV9pbnN0YW5jZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojODQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6MjY6CiteSV5J aWYoc2lnIDw9IDApIHskCgpFUlJPUjogc3BhY2UgcmVxdWlyZWQgYmVmb3JlIHRoZSBvcGVuIHBh cmVudGhlc2lzICcoJwojODQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6 MjY6CisgICAgICAgICAgICAgICBpZihzaWcgPD0gMCkgewoKV0FSTklORzogbGluZSBvdmVyIDgw IGNoYXJhY3RlcnMKIzg0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjI3 OgorICAgICAgICAgICAgICAgICAgICAgICBmdXNlX2xvZyhGVVNFX0xPR19FUlIsICJhc3NlcnRp b24gZXJyb3I6IHNpZ25hbCB2YWx1ZSA8PSAwXG4iKTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzg0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFs cy5jOjI3OgorXkleSV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiYXNzZXJ0aW9uIGVycm9yOiBz aWduYWwgdmFsdWUgPD0gMFxuIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojODQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6Mjg6Cite SV5JXklhYm9ydCgpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izg1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjI5OgorXkleSX0kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NTE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzozMDoKK15JXklmdXNlX2luc3RhbmNlLT5lcnJvciA9 IHNpZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NTI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzozMToKK15JfSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg1NzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2Vfc2lnbmFscy5jOjM2OgorXkkodm9pZCkgc2lnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2ln bmFscy5jOjQxOgorXklzdHJ1Y3Qgc2lnYWN0aW9uIHNhOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2ln bmFscy5jOjQyOgorXklzdHJ1Y3Qgc2lnYWN0aW9uIG9sZF9zYTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X3NpZ25hbHMuYzo0NDoKK15JbWVtc2V0KCZzYSwgMCwgc2l6ZW9mKHN0cnVjdCBzaWdhY3Rpb24p KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NjY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo0NToKK15Jc2Euc2FfaGFuZGxlciA9IHJl bW92ZSA/IFNJR19ERkwgOiBoYW5kbGVyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzg2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjQ2 OgorXklzaWdlbXB0eXNldCgmKHNhLnNhX21hc2spKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM4Njg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25h bHMuYzo0NzoKK15Jc2Euc2FfZmxhZ3MgPSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzg3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5j OjQ5OgorXklpZiAoc2lnYWN0aW9uKHNpZywgTlVMTCwgJm9sZF9zYSkgPT0gLTEpIHskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NzE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo1MDoKK15JXklwZXJyb3IoImZ1c2U6IGNhbm5vdCBnZXQg b2xkIHNpZ25hbCBoYW5kbGVyIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojODcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6NTE6Cite SV5JcmV0dXJuIC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izg3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjUyOgorXkl9JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODc1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6NTQ6CiteSWlmIChvbGRfc2Euc2FfaGFuZGxlciA9PSAo cmVtb3ZlID8gaGFuZGxlciA6IFNJR19ERkwpICYmJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojODc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxz LmM6NTU6CiteSSAgICBzaWdhY3Rpb24oc2lnLCAmc2EsIE5VTEwpID09IC0xKSB7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODc3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9zaWduYWxzLmM6NTY6CiteSV5JcGVycm9yKCJmdXNlOiBjYW5ub3Qgc2V0IHNp Z25hbCBoYW5kbGVyIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojODc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6NTc6CiteSV5JcmV0 dXJuIC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg3OTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjU4OgorXkl9JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODgwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9zaWduYWxzLmM6NTk6CiteSXJldHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2ln bmFscy5jOjY0OgorXkkvKiBJZiB3ZSB1c2VkIFNJR19JR04gaW5zdGVhZCBvZiB0aGUgZG9fbm90 aGluZyBmdW5jdGlvbiwkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8q IG9uIGEgc2VwYXJhdGUgbGluZQojODg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWdu YWxzLmM6NjQ6CisgICAgICAgLyogSWYgd2UgdXNlZCBTSUdfSUdOIGluc3RlYWQgb2YgdGhlIGRv X25vdGhpbmcgZnVuY3Rpb24sCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM4ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo2NToKK15JICAg dGhlbiB3ZSB3b3VsZCBiZSB1bmFibGUgdG8gdGVsbCBpZiB3ZSBzZXQgU0lHX0lHTiAoYW5kJAoK V0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlICogb24gc3Vic2VxdWVudCBsaW5lcwojODg2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6NjU6CisgICAgICAgLyogSWYgd2Ug dXNlZCBTSUdfSUdOIGluc3RlYWQgb2YgdGhlIGRvX25vdGhpbmcgZnVuY3Rpb24sCisgICAgICAg ICAgdGhlbiB3ZSB3b3VsZCBiZSB1bmFibGUgdG8gdGVsbCBpZiB3ZSBzZXQgU0lHX0lHTiAoYW5k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4ODc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo2NjoKK15JICAgdGh1cyBzaG91bGQgcmVzZXQg dG8gU0lHX0RGTCBpbiBmdXNlX3JlbW92ZV9zaWduYWxfaGFuZGxlcnMpJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9zaWduYWxzLmM6Njc6CiteSSAgIG9yIGlmIGl0IHdhcyBhbHJlYWR5IHNldCB0byBTSUdf SUdOIChhbmQgc2hvdWxkIGJlIGxlZnQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM4ODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo2ODoK K15JICAgdW50b3VjaGVkLiAqLyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIHRyYWls aW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQojODg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9zaWduYWxzLmM6Njg6CisgICAgICAgICAgdW50b3VjaGVkLiAqLwoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9zaWduYWxzLmM6Njk6CiteSWlmIChzZXRfb25lX3NpZ25hbF9oYW5kbGVyKFNJR0hVUCwgZXhp dF9oYW5kbGVyLCAwKSA9PSAtMSB8fCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzg5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjcwOgor XkkgICAgc2V0X29uZV9zaWduYWxfaGFuZGxlcihTSUdJTlQsIGV4aXRfaGFuZGxlciwgMCkgPT0g LTEgfHwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4OTI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo3MToKK15JICAgIHNldF9vbmVfc2ln bmFsX2hhbmRsZXIoU0lHVEVSTSwgZXhpdF9oYW5kbGVyLCAwKSA9PSAtMSB8fCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg5MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2Vfc2lnbmFscy5jOjcyOgorXkkgICAgc2V0X29uZV9zaWduYWxfaGFuZGxlcihTSUdQ SVBFLCBkb19ub3RoaW5nLCAwKSA9PSAtMSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM4OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo3 MzoKK15JXklyZXR1cm4gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojODk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6NzU6CiteSWZ1 c2VfaW5zdGFuY2UgPSBzZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM4OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo3NjoKK15JcmV0 dXJuIDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTAyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6ODE6CiteSWlmIChmdXNlX2luc3Rh bmNlICE9IHNlKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkw MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vfc2lnbmFscy5jOjgyOgorXkleSWZ1c2VfbG9n KEZVU0VfTE9HX0VSUiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM5MDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3NpZ25hbHMuYzo4MzoKK15JXkleSSJm dXNlOiBmdXNlX3JlbW92ZV9zaWduYWxfaGFuZGxlcnM6IHVua25vd24gc2Vzc2lvblxuIik7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTA1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6ODQ6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X3NpZ25hbHMuYzo4NToKK15JXklmdXNlX2luc3RhbmNlID0gTlVMTDskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX3NpZ25hbHMuYzo4NzoKK15Jc2V0X29uZV9zaWduYWxfaGFuZGxlcihTSUdIVVAsIGV4aXRf aGFuZGxlciwgMSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj OTA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6ODg6CiteSXNldF9vbmVf c2lnbmFsX2hhbmRsZXIoU0lHSU5ULCBleGl0X2hhbmRsZXIsIDEpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2Vfc2lnbmFscy5jOjg5OgorXklzZXRfb25lX3NpZ25hbF9oYW5kbGVyKFNJR1RFUk0sIGV4aXRf aGFuZGxlciwgMSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj OTExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9zaWduYWxzLmM6OTA6CiteSXNldF9vbmVf c2lnbmFsX2hhbmRsZXIoU0lHUElQRSwgZG9fbm90aGluZywgMSk7JAoKV0FSTklORzogQmxvY2sg Y29tbWVudHMgdXNlICogb24gc3Vic2VxdWVudCBsaW5lcwojOTIwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvaGVscGVyLmM6MjoKKy8qCisgIEZVU0U6IEZpbGVzeXN0ZW0gaW4gVXNlcnNwYWNlCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NDg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9oZWxwZXIuYzozMDoKK15JeyB0LCBvZmZzZXRvZihzdHJ1Y3QgZnVzZV9jbWRs aW5lX29wdHMsIHApLCAxIH0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM5NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozMzoKK15JRlVTRV9IRUxQ RVJfT1BUKCItaCIsXkleSXNob3dfaGVscCksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojOTUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzQ6Cite SUZVU0VfSEVMUEVSX09QVCgiLS1oZWxwIixeSXNob3dfaGVscCksJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVs cGVyLmM6MzU6CiteSUZVU0VfSEVMUEVSX09QVCgiLVYiLF5JXklzaG93X3ZlcnNpb24pLCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk1NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2hlbHBlci5jOjM2OgorXklGVVNFX0hFTFBFUl9PUFQoIi0tdmVyc2lvbiIsXklz aG93X3ZlcnNpb24pLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izk1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM3OgorXklGVVNFX0hFTFBFUl9P UFQoIi1kIixeSV5JZGVidWcpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzk1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM4OgorXklGVVNFX0hF TFBFUl9PUFQoImRlYnVnIixeSWRlYnVnKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM5NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozOToKK15J RlVTRV9IRUxQRVJfT1BUKCItZCIsXkleSWZvcmVncm91bmQpLCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBl ci5jOjQwOgorXklGVVNFX0hFTFBFUl9PUFQoImRlYnVnIixeSWZvcmVncm91bmQpLCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk1OTogRklMRTogdG9vbHMvdmly dGlvZnNkL2hlbHBlci5jOjQxOgorXklGVVNFX09QVF9LRVkoIi1kIixeSV5JRlVTRV9PUFRfS0VZ X0tFRVApLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk2MDog RklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQyOgorXklGVVNFX09QVF9LRVkoImRlYnVn IixeSV5JRlVTRV9PUFRfS0VZX0tFRVApLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzk2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQzOgorXklG VVNFX0hFTFBFUl9PUFQoIi1mIixeSV5JZm9yZWdyb3VuZCksJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVy LmM6NDQ6CiteSUZVU0VfSEVMUEVSX09QVCgiLXMiLF5JXklzaW5nbGV0aHJlYWQpLCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk2MzogRklMRTogdG9vbHMvdmly dGlvZnNkL2hlbHBlci5jOjQ1OgorXklGVVNFX0hFTFBFUl9PUFQoImZzbmFtZT0iLF5Jbm9kZWZh dWx0X3N1YnR5cGUpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izk2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQ2OgorXklGVVNFX09QVF9LRVko ImZzbmFtZT0iLF5JXklGVVNFX09QVF9LRVlfS0VFUCksJAoKV0FSTklORzogYXJjaGl0ZWN0dXJl IHNwZWNpZmljIGRlZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzk2NTogRklMRTogdG9vbHMvdmly dGlvZnNkL2hlbHBlci5jOjQ3OgorI2lmbmRlZiBfX0ZyZWVCU0RfXwoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVs cGVyLmM6NDg6CiteSUZVU0VfSEVMUEVSX09QVCgic3VidHlwZT0iLF5Jbm9kZWZhdWx0X3N1YnR5 cGUpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk2NzogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQ5OgorXklGVVNFX09QVF9LRVkoInN1YnR5cGU9 IixeSUZVU0VfT1BUX0tFWV9LRUVQKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM5Njk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo1MToKK15JRlVT RV9IRUxQRVJfT1BUKCJjbG9uZV9mZCIsXkljbG9uZV9mZCksJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVy LmM6NTI6CiteSUZVU0VfSEVMUEVSX09QVCgibWF4X2lkbGVfdGhyZWFkcz0ldSIsIG1heF9pZGxl X3RocmVhZHMpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk3 MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjUzOgorXklGVVNFX09QVF9FTkQkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NzU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9oZWxwZXIuYzo1NzoKK15JaW50IGF0b21pY19vX3RydW5jOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk3NjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2hlbHBlci5jOjU4OgorXklpbnQgbm9fcmVtb3RlX3Bvc2l4X2xvY2s7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTc3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvaGVscGVyLmM6NTk6CiteSWludCBub19yZW1vdGVfZmxvY2s7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVs cGVyLmM6NjA6CiteSWludCBzcGxpY2Vfd3JpdGU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojOTc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6NjE6 CiteSWludCBzcGxpY2VfbW92ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM5ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo2MjoKK15JaW50IHNw bGljZV9yZWFkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk4 MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjYzOgorXklpbnQgbm9fc3BsaWNlX3dy aXRlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk4MjogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjY0OgorXklpbnQgbm9fc3BsaWNlX21vdmU7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTgzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvaGVscGVyLmM6NjU6CiteSWludCBub19zcGxpY2VfcmVhZDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5ODQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9oZWxwZXIuYzo2NjoKK15JaW50IGF1dG9faW52YWxfZGF0YTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5ODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9o ZWxwZXIuYzo2NzoKK15JaW50IG5vX2F1dG9faW52YWxfZGF0YTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzo2ODoKK15JaW50IG5vX3JlYWRkaXJwbHVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzk4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjY5 OgorXklpbnQgbm9fcmVhZGRpcnBsdXNfYXV0bzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM5ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo3MDoK K15JaW50IGFzeW5jX2RpbzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM5ODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo3MToKK15JaW50IG5vX2Fz eW5jX2RpbzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5OTA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo3MjoKK15JaW50IHdyaXRlYmFja19jYWNo ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5OTE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo3MzoKK15JaW50IG5vX3dyaXRlYmFja19jYWNoZTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5OTI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo3NDoKK15JaW50IGFzeW5jX3JlYWQ7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTkzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvaGVscGVyLmM6NzU6CiteSWludCBzeW5jX3JlYWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojOTk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 NzY6CiteSXVuc2lnbmVkIG1heF93cml0ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM5OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo3NzoKK15J dW5zaWduZWQgbWF4X3JlYWRhaGVhZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM5OTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo3ODoKK15JdW5z aWduZWQgbWF4X2JhY2tncm91bmQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojOTk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Nzk6CiteSXVuc2ln bmVkIGNvbmdlc3Rpb25fdGhyZXNob2xkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzk5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjgwOgorXkl1 bnNpZ25lZCB0aW1lX2dyYW47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojOTk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6ODE6CiteSWludCBzZXRf bWF4X3dyaXRlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEw MDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo4MjoKK15JaW50IHNldF9tYXhfcmVh ZGFoZWFkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMDE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo4MzoKK15JaW50IHNldF9tYXhfYmFja2dy b3VuZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDAyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6ODQ6CiteSWludCBzZXRfY29uZ2VzdGlvbl90 aHJlc2hvbGQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAw MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjg1OgorXklpbnQgc2V0X3RpbWVfZ3Jh bjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDA2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6ODg6CisjZGVmaW5lIENPTk5fT1BUSU9OKHQsIHAs IHYpXkleSV5JXkleSVwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMDA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6ODk6CiteSXsgdCwgb2Zmc2V0 b2Yoc3RydWN0IGZ1c2VfY29ubl9pbmZvX29wdHMsIHApLCB2IH0kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVs cGVyLmM6OTE6CiteSUNPTk5fT1BUSU9OKCJtYXhfd3JpdGU9JXUiLCBtYXhfd3JpdGUsIDApLCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMTA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo5MjoKK15JQ09OTl9PUFRJT04oIm1heF93cml0ZT0iLCBz ZXRfbWF4X3dyaXRlLCAxKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMDExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6OTM6CiteSUNPTk5fT1BU SU9OKCJtYXhfcmVhZGFoZWFkPSV1IiwgbWF4X3JlYWRhaGVhZCwgMCksJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAxMjogRklMRTogdG9vbHMvdmlydGlvZnNk L2hlbHBlci5jOjk0OgorXklDT05OX09QVElPTigibWF4X3JlYWRhaGVhZD0iLCBzZXRfbWF4X3Jl YWRhaGVhZCwgMSksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTAxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjk1OgorXklDT05OX09QVElPTigi bWF4X2JhY2tncm91bmQ9JXUiLCBtYXhfYmFja2dyb3VuZCwgMCksJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAxNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hl bHBlci5jOjk2OgorXklDT05OX09QVElPTigibWF4X2JhY2tncm91bmQ9Iiwgc2V0X21heF9iYWNr Z3JvdW5kLCAxKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MDE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6OTc6CiteSUNPTk5fT1BUSU9OKCJj b25nZXN0aW9uX3RocmVzaG9sZD0ldSIsIGNvbmdlc3Rpb25fdGhyZXNob2xkLCAwKSwkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDE2OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvaGVscGVyLmM6OTg6CiteSUNPTk5fT1BUSU9OKCJjb25nZXN0aW9uX3RocmVzaG9s ZD0iLCBzZXRfY29uZ2VzdGlvbl90aHJlc2hvbGQsIDEpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIu Yzo5OToKK15JQ09OTl9PUFRJT04oInN5bmNfcmVhZCIsIHN5bmNfcmVhZCwgMSksJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAxODogRklMRTogdG9vbHMvdmly dGlvZnNkL2hlbHBlci5jOjEwMDoKK15JQ09OTl9PUFRJT04oImFzeW5jX3JlYWQiLCBhc3luY19y ZWFkLCAxKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDE5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTAxOgorXklDT05OX09QVElPTigiYXRv bWljX29fdHJ1bmMiLCBhdG9taWNfb190cnVuYywgMSksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTAyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5j OjEwMjoKK15JQ09OTl9PUFRJT04oIm5vX3JlbW90ZV9sb2NrIiwgbm9fcmVtb3RlX3Bvc2l4X2xv Y2ssIDEpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxMDM6CiteSUNPTk5fT1BUSU9OKCJub19y ZW1vdGVfbG9jayIsIG5vX3JlbW90ZV9mbG9jaywgMSksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTAyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5j OjEwNDoKK15JQ09OTl9PUFRJT04oIm5vX3JlbW90ZV9mbG9jayIsIG5vX3JlbW90ZV9mbG9jaywg MSksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAyMzogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjEwNToKK15JQ09OTl9PUFRJT04oIm5vX3JlbW90 ZV9wb3NpeF9sb2NrIiwgbm9fcmVtb3RlX3Bvc2l4X2xvY2ssIDEpLCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9o ZWxwZXIuYzoxMDY6CiteSUNPTk5fT1BUSU9OKCJzcGxpY2Vfd3JpdGUiLCBzcGxpY2Vfd3JpdGUs IDEpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjU6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxMDc6CiteSUNPTk5fT1BUSU9OKCJub19zcGxp Y2Vfd3JpdGUiLCBub19zcGxpY2Vfd3JpdGUsIDEpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzox MDg6CiteSUNPTk5fT1BUSU9OKCJzcGxpY2VfbW92ZSIsIHNwbGljZV9tb3ZlLCAxKSwkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDI3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvaGVscGVyLmM6MTA5OgorXklDT05OX09QVElPTigibm9fc3BsaWNlX21vdmUiLCBu b19zcGxpY2VfbW92ZSwgMSksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTAyODogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjExMDoKK15JQ09OTl9P UFRJT04oInNwbGljZV9yZWFkIiwgc3BsaWNlX3JlYWQsIDEpLCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzoxMTE6CiteSUNPTk5fT1BUSU9OKCJub19zcGxpY2VfcmVhZCIsIG5vX3NwbGljZV9yZWFk LCAxKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDMwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTEyOgorXklDT05OX09QVElPTigiYXV0b19p bnZhbF9kYXRhIiwgYXV0b19pbnZhbF9kYXRhLCAxKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMDMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 MTEzOgorXklDT05OX09QVElPTigibm9fYXV0b19pbnZhbF9kYXRhIiwgbm9fYXV0b19pbnZhbF9k YXRhLCAxKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDMy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTE0OgorXklDT05OX09QVElPTigicmVh ZGRpcnBsdXM9bm8iLCBub19yZWFkZGlycGx1cywgMSksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTAzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5j OjExNToKK15JQ09OTl9PUFRJT04oInJlYWRkaXJwbHVzPXllcyIsIG5vX3JlYWRkaXJwbHVzLCAw KSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDM0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTE2OgorXklDT05OX09QVElPTigicmVhZGRpcnBs dXM9eWVzIiwgbm9fcmVhZGRpcnBsdXNfYXV0bywgMSksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTAzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5j OjExNzoKK15JQ09OTl9PUFRJT04oInJlYWRkaXJwbHVzPWF1dG8iLCBub19yZWFkZGlycGx1cywg MCksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAzNjogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjExODoKK15JQ09OTl9PUFRJT04oInJlYWRkaXJw bHVzPWF1dG8iLCBub19yZWFkZGlycGx1c19hdXRvLCAwKSwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVy LmM6MTE5OgorXklDT05OX09QVElPTigiYXN5bmNfZGlvIiwgYXN5bmNfZGlvLCAxKSwkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDM4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvaGVscGVyLmM6MTIwOgorXklDT05OX09QVElPTigibm9fYXN5bmNfZGlvIiwgbm9f YXN5bmNfZGlvLCAxKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMDM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTIxOgorXklDT05OX09QVElP Tigid3JpdGViYWNrX2NhY2hlIiwgd3JpdGViYWNrX2NhY2hlLCAxKSwkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv aGVscGVyLmM6MTIyOgorXklDT05OX09QVElPTigibm9fd3JpdGViYWNrX2NhY2hlIiwgbm9fd3Jp dGViYWNrX2NhY2hlLCAxKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMDQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTIzOgorXklDT05OX09Q VElPTigidGltZV9ncmFuPSV1IiwgdGltZV9ncmFuLCAwKSwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVy LmM6MTI0OgorXklDT05OX09QVElPTigidGltZV9ncmFuPSIsIHNldF90aW1lX2dyYW4sIDEpLCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNDM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxMjU6CiteSUZVU0VfT1BUX0VORCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9oZWxwZXIuYzoxMzE6CiteSXByaW50ZigiICAgIC1oICAgLS1oZWxwICAgICAgICAgICAgcHJp bnQgaGVscFxuIiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEw NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxMzI6CiteSSAgICAgICAiICAgIC1W ICAgLS12ZXJzaW9uICAgICAgICAgcHJpbnQgdmVyc2lvblxuIiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzoxMzM6CiteSSAgICAgICAiICAgIC1kICAgLW8gZGVidWcgICAgICAgICAgZW5hYmxlIGRl YnVnIG91dHB1dCAoaW1wbGllcyAtZilcbiIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMDUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTM0Ogor XkkgICAgICAgIiAgICAtZiAgICAgICAgICAgICAgICAgICAgIGZvcmVncm91bmQgb3BlcmF0aW9u XG4iJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA1MzogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjEzNToKK15JICAgICAgICIgICAgLXMgICAgICAg ICAgICAgICAgICAgICBkaXNhYmxlIG11bHRpLXRocmVhZGVkIG9wZXJhdGlvblxuIiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNTQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9oZWxwZXIuYzoxMzY6CiteSSAgICAgICAiICAgIC1vIGNsb25lX2ZkICAgICAgICAg ICAgdXNlIHNlcGFyYXRlIGZ1c2UgZGV2aWNlIGZkIGZvciBlYWNoIHRocmVhZFxuIiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNTU6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9oZWxwZXIuYzoxMzc6CiteSSAgICAgICAiICAgICAgICAgICAgICAgICAgICAgICAg ICAgKG1heSBpbXByb3ZlIHBlcmZvcm1hbmNlKVxuIiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzox Mzg6CiteSSAgICAgICAiICAgIC1vIG1heF9pZGxlX3RocmVhZHMgICAgdGhlIG1heGltdW0gbnVt YmVyIG9mIGlkbGUgd29ya2VyIHRocmVhZHNcbiIkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMDU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTM5 OgorXkkgICAgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWQgKGRlZmF1bHQ6 IDEwKVxuIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA2 MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE0MzoKK15JXkleSV5Jc3RydWN0IGZ1 c2VfYXJncyAqb3V0YXJncykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMDYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTQ1OgorXkkodm9pZCkg b3V0YXJnczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDY0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTQ2OgorXklzdHJ1Y3QgZnVzZV9jbWRs aW5lX29wdHMgKm9wdHMgPSBkYXRhOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEwNjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxNDg6CiteSXN3 aXRjaCAoa2V5KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTA2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE0OToKK15JY2FzZSBGVVNFX09Q VF9LRVlfTk9OT1BUOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEwNjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxNTA6CiteSV5JaWYgKCFvcHRz LT5tb3VudHBvaW50KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTA2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE1MToKK15JXkleSWlmIChm dXNlX21udF9wYXJzZV9mdXNlX2ZkKGFyZykgIT0gLTEpIHskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVy LmM6MTUyOgorXkleSV5JXklyZXR1cm4gZnVzZV9vcHRfYWRkX29wdCgmb3B0cy0+bW91bnRwb2lu dCwgYXJnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDcx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTUzOgorXkleSV5JfSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNzM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9oZWxwZXIuYzoxNTU6CiteSV5JXkljaGFyIG1vdW50cG9pbnRbUEFUSF9NQVhdID0gIiI7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA3NDogRklMRTog dG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE1NjoKK15JXkleSWlmIChyZWFscGF0aChhcmcsIG1v dW50cG9pbnQpID09IE5VTEwpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMDc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTU3OgorXkleSV5J XklmdXNlX2xvZyhGVVNFX0xPR19FUlIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTA3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE1ODoKK15J XkleSV5JXkkiZnVzZTogYmFkIG1vdW50IHBvaW50IGAlcyc6ICVzXG4iLCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9oZWxwZXIuYzoxNTk6CiteSV5JXkleSV5JYXJnLCBzdHJlcnJvcihlcnJubykpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNzg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9oZWxwZXIuYzoxNjA6CiteSV5JXkleSXJldHVybiAtMTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv aGVscGVyLmM6MTYxOgorXkleSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEwODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxNjI6CiteSV5J XklyZXR1cm4gZnVzZV9vcHRfYWRkX29wdCgmb3B0cy0+bW91bnRwb2ludCwgbW91bnRwb2ludCk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA4MTogRklMRTog dG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE2MzoKK15JXkl9IGVsc2UgeyQKCldBUk5JTkc6IGxp bmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMxMDgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVy LmM6MTY0OgorICAgICAgICAgICAgICAgICAgICAgICBmdXNlX2xvZyhGVVNFX0xPR19FUlIsICJm dXNlOiBpbnZhbGlkIGFyZ3VtZW50IGAlcydcbiIsIGFyZyk7CgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVy LmM6MTY0OgorXkleSV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVzZTogaW52YWxpZCBhcmd1 bWVudCBgJXMnXG4iLCBhcmcpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEwODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxNjU6CiteSV5JXkly ZXR1cm4gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA4 NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE2NjoKK15JXkl9JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA4NjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2hlbHBlci5jOjE2ODoKK15JZGVmYXVsdDokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMDg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTY5 OgorXkleSS8qIFBhc3MgdGhyb3VnaCB1bmtub3duIG9wdGlvbnMgKi8kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv aGVscGVyLmM6MTcwOgorXkleSXJldHVybiAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEwODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxNzE6 CiteSX0kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2Vw YXJhdGUgbGluZQojMTA5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE3NDoKKy8q IFVuZGVyIEZyZWVCU0QsIHRoZXJlIGlzIG5vIHN1YnR5cGUgb3B0aW9uIHNvIHRoaXMKCldBUk5J Tkc6IEJsb2NrIGNvbW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMKIzEwOTM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxNzU6CisvKiBVbmRlciBGcmVlQlNELCB0aGVyZSBp cyBubyBzdWJ0eXBlIG9wdGlvbiBzbyB0aGlzCisgICBmdW5jdGlvbiBhY3R1YWxseSBzZXRzIHRo ZSBmc25hbWUgKi8KCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIHRyYWlsaW5nICovIG9u IGEgc2VwYXJhdGUgbGluZQojMTA5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE3 NToKKyAgIGZ1bmN0aW9uIGFjdHVhbGx5IHNldHMgdGhlIGZzbmFtZSAqLwoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA5NjogRklMRTogdG9vbHMvdmlydGlvZnNk L2hlbHBlci5jOjE3ODoKK15JaW50IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMDk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTc5Ogor XkljaGFyICpzdWJ0eXBlX29wdDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMDk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTgxOgorXkljb25z dCBjaGFyICpiYXNlbmFtZSA9IHN0cnJjaHIocHJvZ25hbWUsICcvJyk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEwMDogRklMRTogdG9vbHMvdmlydGlvZnNk L2hlbHBlci5jOjE4MjoKK15JaWYgKGJhc2VuYW1lID09IE5VTEwpJAoKRVJST1I6IGJyYWNlcyB7 fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTEwMDogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE4MjoKKyAgICAgICBpZiAoYmFzZW5hbWUgPT0g TlVMTCkKWy4uLl0KKyAgICAgICBlbHNlIGlmIChiYXNlbmFtZVsxXSAhPSAnXDAnKQpbLi4uXQoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEwMTogRklMRTogdG9v bHMvdmlydGlvZnNkL2hlbHBlci5jOjE4MzoKK15JXkliYXNlbmFtZSA9IHByb2duYW1lOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMDI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9oZWxwZXIuYzoxODQ6CiteSWVsc2UgaWYgKGJhc2VuYW1lWzFdICE9ICdcMCcp JAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0 YXRlbWVudAojMTEwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE4NDoKKyAgICAg ICBlbHNlIGlmIChiYXNlbmFtZVsxXSAhPSAnXDAnKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBl ci5jOjE4NToKK15JXkliYXNlbmFtZSsrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzExMDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoxODc6Cite SXN1YnR5cGVfb3B0ID0gKGNoYXIgKikgbWFsbG9jKHN0cmxlbihiYXNlbmFtZSkgKyA2NCk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEwNjogRklMRTogdG9v bHMvdmlydGlvZnNkL2hlbHBlci5jOjE4ODoKK15JaWYgKHN1YnR5cGVfb3B0ID09IE5VTEwpIHsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTA3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTg5OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwg ImZ1c2U6IG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZFxuIik7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBl ci5jOjE5MDoKK15JXklyZXR1cm4gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTEwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE5MToKK15J fSQKCldBUk5JTkc6IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9p ZGVkCiMxMTEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTkyOgorI2lmZGVmIF9f RnJlZUJTRF9fCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTEx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTkzOgorXklzcHJpbnRmKHN1YnR5cGVf b3B0LCAiLW9mc25hbWU9JXMiLCBiYXNlbmFtZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTExMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjE5 NToKK15Jc3ByaW50ZihzdWJ0eXBlX29wdCwgIi1vc3VidHlwZT0lcyIsIGJhc2VuYW1lKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTE1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvaGVscGVyLmM6MTk3OgorXklyZXMgPSBmdXNlX29wdF9hZGRfYXJnKGFyZ3Ms IHN1YnR5cGVfb3B0KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTk4OgorXklmcmVlKHN1YnR5 cGVfb3B0KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTE3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MTk5OgorXklyZXR1cm4gcmVzOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMjE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMDM6CiteSV5JICAgICAgIHN0cnVjdCBmdXNlX2NtZGxpbmVf b3B0cyAqb3B0cykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MTIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjA1OgorXkltZW1zZXQob3B0cywg MCwgc2l6ZW9mKHN0cnVjdCBmdXNlX2NtZGxpbmVfb3B0cykpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzoyMDc6CiteSW9wdHMtPm1heF9pZGxlX3RocmVhZHMgPSAxMDskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv aGVscGVyLmM6MjA5OgorXklpZiAoZnVzZV9vcHRfcGFyc2UoYXJncywgb3B0cywgZnVzZV9oZWxw ZXJfb3B0cywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTI4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjEwOgorXkleSV5JICAgZnVzZV9oZWxw ZXJfb3B0X3Byb2MpID09IC0xKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzExMjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMTE6CiteSV5JcmV0 dXJuIC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMzE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMTM6CiteSS8qICpMaW51eCo6IGlmIG5l aXRoZXIgLW8gc3VidHlwZSBub3IgLW8gZnNuYW1lIGFyZSBzcGVjaWZpZWQsJAoKV0FSTklORzog QmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzExMzE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMTM6CisgICAgICAgLyogKkxpbnV4Kjog aWYgbmVpdGhlciAtbyBzdWJ0eXBlIG5vciAtbyBmc25hbWUgYXJlIHNwZWNpZmllZCwKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMzI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9oZWxwZXIuYzoyMTQ6CiteSSAgIHNldCBzdWJ0eXBlIHRvIHByb2dyYW0ncyBiYXNl bmFtZS4kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVz CiMxMTMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjE0OgorICAgICAgIC8qICpM aW51eCo6IGlmIG5laXRoZXIgLW8gc3VidHlwZSBub3IgLW8gZnNuYW1lIGFyZSBzcGVjaWZpZWQs CisgICAgICAgICAgc2V0IHN1YnR5cGUgdG8gcHJvZ3JhbSdzIGJhc2VuYW1lLgoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEzMzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2hlbHBlci5jOjIxNToKK15JICAgKkZyZWVCU0QqOiBpZiBmc25hbWUgaXMgbm90IHNwZWNp ZmllZCwgc2V0IHRvIHByb2dyYW0ncyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzExMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMTY6CiteSSAg IGJhc2VuYW1lLiAqLyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIHRyYWlsaW5nICov IG9uIGEgc2VwYXJhdGUgbGluZQojMTEzNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5j OjIxNjoKKyAgICAgICAgICBiYXNlbmFtZS4gKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzExMzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMTc6 CiteSWlmICghb3B0cy0+bm9kZWZhdWx0X3N1YnR5cGUpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTEzNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5j OjIxODoKK15JXklpZiAoYWRkX2RlZmF1bHRfc3VidHlwZShhcmdzLT5hcmd2WzBdLCBhcmdzKSA9 PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRo aXMgc3RhdGVtZW50CiMxMTM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjE4Ogor ICAgICAgICAgICAgICAgaWYgKGFkZF9kZWZhdWx0X3N1YnR5cGUoYXJncy0+YXJndlswXSwgYXJn cykgPT0gLTEpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjE5OgorXkleSV5JcmV0dXJu IC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMzk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMjE6CiteSXJldHVybiAwOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNDU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9oZWxwZXIuYzoyMjc6CiteSWlmICghZm9yZWdyb3VuZCkgeyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9o ZWxwZXIuYzoyMjg6CiteSV5JaW50IG51bGxmZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMTQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjI5 OgorXkleSWludCB3YWl0ZXJbMl07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTE0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjIzMDoKK15JXklj aGFyIGNvbXBsZXRlZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjMyOgorXkleSWlmIChwaXBl KHdhaXRlcikpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MTUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjMzOgorXkleSV5JcGVycm9yKCJm dXNlX2RhZW1vbml6ZTogcGlwZSIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzExNTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMzQ6CiteSV5J XklyZXR1cm4gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTE1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjIzNToKK15JXkl9JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE1NTogRklMRTogdG9vbHMvdmly dGlvZnNkL2hlbHBlci5jOjIzNzoKK15JXkkvKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzExNTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyMzg6 CiteSV5JICogZGVtb25pemUgY3VycmVudCBwcm9jZXNzIGJ5IGZvcmtpbmcgaXQgYW5kIGtpbGxp bmcgdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE1Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjIzOToKK15JXkkgKiBwYXJlbnQuICBUaGlz IG1ha2VzIGN1cnJlbnQgcHJvY2VzcyBhcyBhIGNoaWxkIG9mICdpbml0Jy4kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTU4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvaGVscGVyLmM6MjQwOgorXkleSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzExNTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyNDE6Cite SV5Jc3dpdGNoKGZvcmsoKSkgeyQKCkVSUk9SOiBzcGFjZSByZXF1aXJlZCBiZWZvcmUgdGhlIG9w ZW4gcGFyZW50aGVzaXMgJygnCiMxMTU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 MjQxOgorICAgICAgICAgICAgICAgc3dpdGNoKGZvcmsoKSkgewoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBl ci5jOjI0MjoKK15JXkljYXNlIC0xOiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzExNjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyNDM6CiteSV5J XklwZXJyb3IoImZ1c2VfZGFlbW9uaXplOiBmb3JrIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTE2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5j OjI0NDoKK15JXkleSXJldHVybiAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMTYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjQ1OgorXkle SWNhc2UgMDokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTY0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjQ2OgorXkleSV5JYnJlYWs7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE2NTogRklMRTogdG9vbHMv dmlydGlvZnNkL2hlbHBlci5jOjI0NzoKK15JXklkZWZhdWx0OiQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzoyNDg6CiteSV5JXkkodm9pZCkgcmVhZCh3YWl0ZXJbMF0sICZjb21wbGV0ZWQsIHNpemVv Zihjb21wbGV0ZWQpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjQ5OgorXkleSV5JX2V4aXQo MCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE2ODogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI1MDoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hl bHBlci5jOjI1MjoKK15JXklpZiAoc2V0c2lkKCkgPT0gLTEpIHskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVs cGVyLmM6MjUzOgorXkleSV5JcGVycm9yKCJmdXNlX2RhZW1vbml6ZTogc2V0c2lkIik7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE3MjogRklMRTogdG9vbHMv dmlydGlvZnNkL2hlbHBlci5jOjI1NDoKK15JXkleSXJldHVybiAtMTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTczOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv aGVscGVyLmM6MjU1OgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMTc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjU3OgorXkleSSh2 b2lkKSBjaGRpcigiLyIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzExNzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyNTk6CiteSV5JbnVsbGZk ID0gb3BlbigiL2Rldi9udWxsIiwgT19SRFdSLCAwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMTc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 MjYwOgorXkleSWlmIChudWxsZmQgIT0gLTEpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMTc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjYx OgorXkleSV5JKHZvaWQpIGR1cDIobnVsbGZkLCAwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMTgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 MjYyOgorXkleSV5JKHZvaWQpIGR1cDIobnVsbGZkLCAxKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVy LmM6MjYzOgorXkleSV5JKHZvaWQpIGR1cDIobnVsbGZkLCAyKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVs cGVyLmM6MjY0OgorXkleSV5JaWYgKG51bGxmZCA+IDIpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUg bmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTE4MjogRklMRTogdG9v bHMvdmlydGlvZnNkL2hlbHBlci5jOjI2NDoKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51 bGxmZCA+IDIpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MjY1OgorXkleSV5JXkljbG9z ZShudWxsZmQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEx ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyNjY6CiteSV5JfSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9oZWxwZXIuYzoyNjg6CiteSV5JLyogUHJvcGFnYXRlIGNvbXBsZXRpb24gb2YgZGFlbW9u IGluaXRpYWxpemF0aW9uICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTE4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI2OToKK15JXkljb21w bGV0ZWQgPSAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEx ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyNzA6CiteSV5JKHZvaWQpIHdyaXRl KHdhaXRlclsxXSwgJmNvbXBsZXRlZCwgc2l6ZW9mKGNvbXBsZXRlZCkpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9oZWxwZXIuYzoyNzE6CiteSV5JY2xvc2Uod2FpdGVyWzBdKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVs cGVyLmM6MjcyOgorXkleSWNsb3NlKHdhaXRlclsxXSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTE5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5j OjI3MzoKK15JfSBlbHNlIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMTkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Mjc0OgorXkleSSh2b2lk KSBjaGRpcigiLyIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzExOTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyNzU6CiteSX0kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTk0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvaGVscGVyLmM6Mjc2OgorXklyZXR1cm4gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMTk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 MjgwOgorXkleSSAgIHNpemVfdCBvcF9zaXplLCB2b2lkICp1c2VyX2RhdGEpJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIwMDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2hlbHBlci5jOjI4MjoKK15Jc3RydWN0IGZ1c2VfYXJncyBhcmdzID0gRlVTRV9BUkdTX0lO SVQoYXJnYywgYXJndik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTIwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI4MzoKK15Jc3RydWN0IGZ1 c2UgKmZ1c2U7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIw MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI4NDoKK15Jc3RydWN0IGZ1c2VfY21k bGluZV9vcHRzIG9wdHM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTIwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI4NToKK15JaW50IHJlczsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjA1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Mjg3OgorXklpZiAoZnVzZV9wYXJzZV9jbWRsaW5lKCZh cmdzLCAmb3B0cykgIT0gMCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMjA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVs cGVyLmM6Mjg3OgorICAgICAgIGlmIChmdXNlX3BhcnNlX2NtZGxpbmUoJmFyZ3MsICZvcHRzKSAh PSAwKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIw NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI4ODoKK15JXklyZXR1cm4gMTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjA4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvaGVscGVyLmM6MjkwOgorXklpZiAob3B0cy5zaG93X3ZlcnNpb24pIHskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjA5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvaGVscGVyLmM6MjkxOgorXkleSXByaW50ZigiRlVTRSBsaWJyYXJ5IHZlcnNp b24gJXNcbiIsIFBBQ0tBR0VfVkVSU0lPTik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTIxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI5MjoK K15JXklmdXNlX2xvd2xldmVsX3ZlcnNpb24oKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMjExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Mjkz OgorXkleSXJlcyA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTIxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI5NDoKK15JXklnb3RvIG91 dDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIxMzogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjI5NToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzoyOTc6CiteSWlmIChvcHRzLnNob3dfaGVscCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIu YzoyOTg6CiteSV5JaWYoYXJncy5hcmd2WzBdWzBdICE9ICdcMCcpJAoKRVJST1I6IHNwYWNlIHJl cXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBwYXJlbnRoZXNpcyAnKCcKIzEyMTY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9oZWxwZXIuYzoyOTg6CisgICAgICAgICAgICAgICBpZihhcmdzLmFyZ3ZbMF1b MF0gIT0gJ1wwJykKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEy MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyOTk6CiteSV5JXklwcmludGYoInVz YWdlOiAlcyBbb3B0aW9uc10gPG1vdW50cG9pbnQ+XG5cbiIsJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIxODogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBl ci5jOjMwMDoKK15JXkleSSAgICAgICBhcmdzLmFyZ3ZbMF0pOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzozMDE6CiteSV5JcHJpbnRmKCJGVVNFIG9wdGlvbnM6XG4iKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv aGVscGVyLmM6MzAyOgorXkleSWZ1c2VfY21kbGluZV9oZWxwKCk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hl bHBlci5jOjMwMzoKK15JXklmdXNlX2xpYl9oZWxwKCZhcmdzKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVs cGVyLmM6MzA0OgorXkleSXJlcyA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTIyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjMwNToKK15J Xklnb3RvIG91dDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTIyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjMwNjoKK15JfSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9oZWxwZXIuYzozMDg6CiteSWlmICghb3B0cy5zaG93X2hlbHAgJiYkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjI3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvaGVscGVyLmM6MzA5OgorXkkgICAgIW9wdHMubW91bnRwb2ludCkgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9oZWxwZXIuYzozMTA6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZXJyb3I6IG5vIG1v dW50cG9pbnQgc3BlY2lmaWVkXG4iKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMjI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzExOgorXkle SXJlcyA9IDI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIz MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjMxMjoKK15JXklnb3RvIG91dDE7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIzMTogRklMRTogdG9v bHMvdmlydGlvZnNkL2hlbHBlci5jOjMxMzoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoz MTY6CiteSWZ1c2UgPSBmdXNlX25ld18zMSgmYXJncywgb3AsIG9wX3NpemUsIHVzZXJfZGF0YSk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIzNTogRklMRTog dG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjMxNzoKK15JaWYgKGZ1c2UgPT0gTlVMTCkgeyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMzY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9oZWxwZXIuYzozMTg6CiteSV5JcmVzID0gMzskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVs cGVyLmM6MzE5OgorXkleSWdvdG8gb3V0MTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMjM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzIwOgor Xkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI0MDogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjMyMjoKK15JaWYgKGZ1c2VfbW91bnQoZnVzZSxv cHRzLm1vdW50cG9pbnQpICE9IDApIHskCgpFUlJPUjogc3BhY2UgcmVxdWlyZWQgYWZ0ZXIgdGhh dCAnLCcgKGN0eDpWeFYpCiMxMjQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzIy OgorICAgICAgIGlmIChmdXNlX21vdW50KGZ1c2Usb3B0cy5tb3VudHBvaW50KSAhPSAwKSB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEyNDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozMjM6Cite SV5JcmVzID0gNDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MjQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzI0OgorXkleSWdvdG8gb3V0Mjsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjQzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzI1OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTI0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5j OjMyNzoKK15JaWYgKGZ1c2VfZGFlbW9uaXplKG9wdHMuZm9yZWdyb3VuZCkgIT0gMCkgeyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNDY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9oZWxwZXIuYzozMjg6CiteSV5JcmVzID0gNTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVs cGVyLmM6MzI5OgorXkleSWdvdG8gb3V0MzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMjQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzMwOgor Xkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI1MDogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjMzMjoKK15Jc3RydWN0IGZ1c2Vfc2Vzc2lvbiAq c2UgPSBmdXNlX2dldF9zZXNzaW9uKGZ1c2UpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEyNTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozMzM6 CiteSWlmIChmdXNlX3NldF9zaWduYWxfaGFuZGxlcnMoc2UpICE9IDApIHskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjUyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvaGVscGVyLmM6MzM0OgorXkleSXJlcyA9IDY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTI1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjMz NToKK15JXklnb3RvIG91dDM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTI1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjMzNjoKK15JfSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNTY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9oZWxwZXIuYzozMzg6CiteSWlmIChvcHRzLnNpbmdsZXRocmVhZCkkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjU3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvaGVscGVyLmM6MzM5OgorXkleSXJlcyA9IGZ1c2VfbG9vcChmdXNlKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjU4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvaGVscGVyLmM6MzQwOgorXkllbHNlIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMjU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 MzQxOgorXkleSXN0cnVjdCBmdXNlX2xvb3BfY29uZmlnIGxvb3BfY29uZmlnOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNjA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9oZWxwZXIuYzozNDI6CiteSV5JbG9vcF9jb25maWcuY2xvbmVfZmQgPSBvcHRzLmNsb25l X2ZkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNjE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozNDM6CiteSV5JbG9vcF9jb25maWcubWF4X2lk bGVfdGhyZWFkcyA9IG9wdHMubWF4X2lkbGVfdGhyZWFkczskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVy LmM6MzQ0OgorXkleSXJlcyA9IGZ1c2VfbG9vcF9tdF8zMihmdXNlLCAmbG9vcF9jb25maWcpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNjM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozNDU6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMjY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 MzQ2OgorXklpZiAocmVzKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxs IGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEyNjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzozNDY6CisgICAgICAgaWYgKHJlcykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoz NDc6CiteSV5JcmVzID0gNzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMjY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzQ5OgorXklmdXNlX3Jl bW92ZV9zaWduYWxfaGFuZGxlcnMoc2UpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEyNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozNTE6Cite SWZ1c2VfdW5tb3VudChmdXNlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMjcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzUzOgorXklmdXNl X2Rlc3Ryb3koZnVzZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTI3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM1NToKK15JZnJlZShvcHRz Lm1vdW50cG9pbnQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEyNzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozNTY6CiteSWZ1c2Vfb3B0X2Zy ZWVfYXJncygmYXJncyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTI3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM1NzoKK15JcmV0dXJuIHJl czskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjgwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzYyOgorXkleSV5JICAgICAgIHN0cnVjdCBmdXNl X2Nvbm5faW5mbyAqY29ubikkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMjgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzY0OgorXklpZihvcHRz LT5zZXRfbWF4X3dyaXRlKSQKCkVSUk9SOiBzcGFjZSByZXF1aXJlZCBiZWZvcmUgdGhlIG9wZW4g cGFyZW50aGVzaXMgJygnCiMxMjgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzY0 OgorICAgICAgIGlmKG9wdHMtPnNldF9tYXhfd3JpdGUpCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBu ZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMjgyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvaGVscGVyLmM6MzY0OgorICAgICAgIGlmKG9wdHMtPnNldF9tYXhfd3JpdGUp ClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjgzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzY1OgorXkleSWNvbm4tPm1heF93cml0ZSA9 IG9wdHMtPm1heF93cml0ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMjg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzY2OgorXklpZihvcHRz LT5zZXRfbWF4X2JhY2tncm91bmQpJAoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJlZm9yZSB0aGUg b3BlbiBwYXJlbnRoZXNpcyAnKCcKIzEyODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIu YzozNjY6CisgICAgICAgaWYob3B0cy0+c2V0X21heF9iYWNrZ3JvdW5kKQoKRVJST1I6IGJyYWNl cyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTI4NDog RklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM2NjoKKyAgICAgICBpZihvcHRzLT5zZXRf bWF4X2JhY2tncm91bmQpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMjg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzY3OgorXkleSWNv bm4tPm1heF9iYWNrZ3JvdW5kID0gb3B0cy0+bWF4X2JhY2tncm91bmQ7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI4NjogRklMRTogdG9vbHMvdmlydGlvZnNk L2hlbHBlci5jOjM2ODoKK15JaWYob3B0cy0+c2V0X2Nvbmdlc3Rpb25fdGhyZXNob2xkKSQKCkVS Uk9SOiBzcGFjZSByZXF1aXJlZCBiZWZvcmUgdGhlIG9wZW4gcGFyZW50aGVzaXMgJygnCiMxMjg2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzY4OgorICAgICAgIGlmKG9wdHMtPnNl dF9jb25nZXN0aW9uX3RocmVzaG9sZCkKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBm b3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEyODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9oZWxwZXIuYzozNjg6CisgICAgICAgaWYob3B0cy0+c2V0X2Nvbmdlc3Rpb25fdGhyZXNob2xk KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI4Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM2OToKK15JXkljb25uLT5jb25nZXN0aW9u X3RocmVzaG9sZCA9IG9wdHMtPmNvbmdlc3Rpb25fdGhyZXNob2xkOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9o ZWxwZXIuYzozNzA6CiteSWlmKG9wdHMtPnNldF90aW1lX2dyYW4pJAoKRVJST1I6IHNwYWNlIHJl cXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBwYXJlbnRoZXNpcyAnKCcKIzEyODg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9oZWxwZXIuYzozNzA6CisgICAgICAgaWYob3B0cy0+c2V0X3RpbWVfZ3JhbikK CkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0 ZW1lbnQKIzEyODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozNzA6CisgICAgICAg aWYob3B0cy0+c2V0X3RpbWVfZ3JhbikKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEyODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozNzE6 CiteSV5JY29ubi0+dGltZV9ncmFuID0gb3B0cy0+dGltZV9ncmFuOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyOTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9o ZWxwZXIuYzozNzI6CiteSWlmKG9wdHMtPnNldF9tYXhfcmVhZGFoZWFkKSQKCkVSUk9SOiBzcGFj ZSByZXF1aXJlZCBiZWZvcmUgdGhlIG9wZW4gcGFyZW50aGVzaXMgJygnCiMxMjkwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvaGVscGVyLmM6MzcyOgorICAgICAgIGlmKG9wdHMtPnNldF9tYXhfcmVh ZGFoZWFkKQoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0 aGlzIHN0YXRlbWVudAojMTI5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM3MjoK KyAgICAgICBpZihvcHRzLT5zZXRfbWF4X3JlYWRhaGVhZCkKWy4uLl0KCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyOTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9o ZWxwZXIuYzozNzM6CiteSV5JY29ubi0+bWF4X3JlYWRhaGVhZCA9IG9wdHMtPm1heF9yZWFkYWhl YWQ7JAoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6VnhWKQojMTI5 MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM3NToKKyNkZWZpbmUgTExfRU5BQkxF KGNvbmQsY2FwKSBcCiAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IE1hY3JvcyB3aXRo IGNvbXBsZXggdmFsdWVzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNpcwojMTI5Mzog RklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM3NToKKyNkZWZpbmUgTExfRU5BQkxFKGNv bmQsY2FwKSBcCisgICAgICAgaWYgKGNvbmQpIGNvbm4tPndhbnQgfD0gKGNhcCkKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyOTQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9oZWxwZXIuYzozNzY6CiteSWlmIChjb25kKSBjb25uLT53YW50IHw9IChjYXApJAoKRVJS T1I6IHRyYWlsaW5nIHN0YXRlbWVudHMgc2hvdWxkIGJlIG9uIG5leHQgbGluZQojMTI5NDogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM3NjoKKyAgICAgICBpZiAoY29uZCkgY29ubi0+ d2FudCB8PSAoY2FwKQoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6 VnhWKQojMTI5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM3NzoKKyNkZWZpbmUg TExfRElTQUJMRShjb25kLGNhcCkgXAogICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjog TWFjcm9zIHdpdGggY29tcGxleCB2YWx1ZXMgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHBhcmVudGhl c2lzCiMxMjk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Mzc3OgorI2RlZmluZSBM TF9ESVNBQkxFKGNvbmQsY2FwKSBcCisgICAgICAgaWYgKGNvbmQpIGNvbm4tPndhbnQgJj0gfihj YXApCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjk2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Mzc4OgorXklpZiAoY29uZCkgY29ubi0+d2FudCAm PSB+KGNhcCkkCgpFUlJPUjogdHJhaWxpbmcgc3RhdGVtZW50cyBzaG91bGQgYmUgb24gbmV4dCBs aW5lCiMxMjk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Mzc4OgorICAgICAgIGlm IChjb25kKSBjb25uLT53YW50ICY9IH4oY2FwKQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTI5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM4MDoK K15JTExfRU5BQkxFKG9wdHMtPnNwbGljZV9yZWFkLCBGVVNFX0NBUF9TUExJQ0VfUkVBRCk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI5OTogRklMRTogdG9v bHMvdmlydGlvZnNkL2hlbHBlci5jOjM4MToKK15JTExfRElTQUJMRShvcHRzLT5ub19zcGxpY2Vf cmVhZCwgRlVTRV9DQVBfU1BMSUNFX1JFQUQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzMDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozODM6 CiteSUxMX0VOQUJMRShvcHRzLT5zcGxpY2Vfd3JpdGUsIEZVU0VfQ0FQX1NQTElDRV9XUklURSk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMwMjogRklMRTog dG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM4NDoKK15JTExfRElTQUJMRShvcHRzLT5ub19zcGxp Y2Vfd3JpdGUsIEZVU0VfQ0FQX1NQTElDRV9XUklURSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTMwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5j OjM4NjoKK15JTExfRU5BQkxFKG9wdHMtPnNwbGljZV9tb3ZlLCBGVVNFX0NBUF9TUExJQ0VfTU9W RSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMwNTogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM4NzoKK15JTExfRElTQUJMRShvcHRzLT5ub19z cGxpY2VfbW92ZSwgRlVTRV9DQVBfU1BMSUNFX01PVkUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIu YzozODk6CiteSUxMX0VOQUJMRShvcHRzLT5hdXRvX2ludmFsX2RhdGEsIEZVU0VfQ0FQX0FVVE9f SU5WQUxfREFUQSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTMwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM5MDoKK15JTExfRElTQUJMRShv cHRzLT5ub19hdXRvX2ludmFsX2RhdGEsIEZVU0VfQ0FQX0FVVE9fSU5WQUxfREFUQSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMxMDogRklMRTogdG9vbHMv dmlydGlvZnNkL2hlbHBlci5jOjM5MjoKK15JTExfRElTQUJMRShvcHRzLT5ub19yZWFkZGlycGx1 cywgRlVTRV9DQVBfUkVBRERJUlBMVVMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEzMTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzozOTM6Cite SUxMX0RJU0FCTEUob3B0cy0+bm9fcmVhZGRpcnBsdXNfYXV0bywgRlVTRV9DQVBfUkVBRERJUlBM VVNfQVVUTyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMx MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjM5NToKK15JTExfRU5BQkxFKG9wdHMt PmFzeW5jX2RpbywgRlVTRV9DQVBfQVNZTkNfRElPKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMzE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 Mzk2OgorXklMTF9ESVNBQkxFKG9wdHMtPm5vX2FzeW5jX2RpbywgRlVTRV9DQVBfQVNZTkNfRElP KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzE2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6Mzk4OgorXklMTF9FTkFCTEUob3B0cy0+d3JpdGVi YWNrX2NhY2hlLCBGVVNFX0NBUF9XUklURUJBQ0tfQ0FDSEUpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzozOTk6CiteSUxMX0RJU0FCTEUob3B0cy0+bm9fd3JpdGViYWNrX2NhY2hlLCBGVVNFX0NB UF9XUklURUJBQ0tfQ0FDSEUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEzMTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo0MDE6CiteSUxMX0VO QUJMRShvcHRzLT5hc3luY19yZWFkLCBGVVNFX0NBUF9BU1lOQ19SRUFEKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzIwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvaGVscGVyLmM6NDAyOgorXklMTF9ESVNBQkxFKG9wdHMtPnN5bmNfcmVhZCwgRlVTRV9DQVBf QVNZTkNfUkVBRCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTMyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQwNDoKK15JTExfRElTQUJMRShv cHRzLT5ub19yZW1vdGVfcG9zaXhfbG9jaywgRlVTRV9DQVBfUE9TSVhfTE9DS1MpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMjM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9oZWxwZXIuYzo0MDU6CiteSUxMX0RJU0FCTEUob3B0cy0+bm9fcmVtb3RlX2Zsb2Nr LCBGVVNFX0NBUF9GTE9DS19MT0NLUyk7JAoKRVJST1I6ICJmb28qIGJhciIgc2hvdWxkIGJlICJm b28gKmJhciIKIzEzMjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo0MDg6CitzdHJ1 Y3QgZnVzZV9jb25uX2luZm9fb3B0cyogZnVzZV9wYXJzZV9jb25uX2luZm9fb3B0cyhzdHJ1Y3Qg ZnVzZV9hcmdzICphcmdzKQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTMyODogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQxMDoKK15Jc3RydWN0IGZ1 c2VfY29ubl9pbmZvX29wdHMgKm9wdHM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTMzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQxMjoKK15J b3B0cyA9IGNhbGxvYygxLCBzaXplb2Yoc3RydWN0IGZ1c2VfY29ubl9pbmZvX29wdHMpKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzMxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvaGVscGVyLmM6NDEzOgorXklpZihvcHRzID09IE5VTEwpIHskCgpFUlJPUjog c3BhY2UgcmVxdWlyZWQgYmVmb3JlIHRoZSBvcGVuIHBhcmVudGhlc2lzICcoJwojMTMzMTogRklM RTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQxMzoKKyAgICAgICBpZihvcHRzID09IE5VTEwp IHsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMzI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo0MTQ6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfRVJS LCAiY2FsbG9jIGZhaWxlZFxuIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTMzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQxNToKK15JXkly ZXR1cm4gTlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MzM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6NDE2OgorXkl9JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMzNTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2hlbHBlci5jOjQxNzoKK15JaWYoZnVzZV9vcHRfcGFyc2UoYXJncywgb3B0cywgY29ubl9p bmZvX29wdF9zcGVjLCBOVUxMKSA9PSAtMSkgeyQKCkVSUk9SOiBzcGFjZSByZXF1aXJlZCBiZWZv cmUgdGhlIG9wZW4gcGFyZW50aGVzaXMgJygnCiMxMzM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv aGVscGVyLmM6NDE3OgorICAgICAgIGlmKGZ1c2Vfb3B0X3BhcnNlKGFyZ3MsIG9wdHMsIGNvbm5f aW5mb19vcHRfc3BlYywgTlVMTCkgPT0gLTEpIHsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzMzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo0MTg6 CiteSV5JZnJlZShvcHRzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMzM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6NDE5OgorXkleSXJldHVy biBOVUxMOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMzg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo0MjA6CiteSX0kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv aGVscGVyLmM6NDIxOgorXklyZXR1cm4gb3B0czskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMzQ0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6NDI2 OgorXklzdHJ1Y3QgbW91bnRfb3B0cyAqb3B0cyA9IE5VTEw7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBl ci5jOjQyNzoKK15JaW50IGZkID0gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTM0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQyODoKK15J Y29uc3QgY2hhciAqYXJndltdID0geyAiIiwgIi1vIiwgb3B0aW9ucyB9OyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9oZWxwZXIuYzo0Mjk6CiteSWludCBhcmdjID0gc2l6ZW9mKGFyZ3YpIC8gc2l6ZW9mKGFyZ3Zb MF0pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNDg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzo0MzA6CiteSXN0cnVjdCBmdXNlX2FyZ3MgYXJn cyA9IEZVU0VfQVJHU19JTklUKGFyZ2MsIChjaGFyKiopIGFyZ3YpOyQKCkVSUk9SOiAiKGZvbyoq KSIgc2hvdWxkIGJlICIoZm9vICoqKSIKIzEzNDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxw ZXIuYzo0MzA6CisgICAgICAgc3RydWN0IGZ1c2VfYXJncyBhcmdzID0gRlVTRV9BUkdTX0lOSVQo YXJnYywgKGNoYXIqKikgYXJndik7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMzUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6NDMyOgorXklvcHRz ID0gcGFyc2VfbW91bnRfb3B0cygmYXJncyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTM1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2hlbHBlci5jOjQzMzoK K15JaWYgKG9wdHMgPT0gTlVMTCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9y IGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMzUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv aGVscGVyLmM6NDMzOgorICAgICAgIGlmIChvcHRzID09IE5VTEwpClsuLi5dCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzUyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvaGVscGVyLmM6NDM0OgorXkleSXJldHVybiAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMzU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvaGVscGVyLmM6 NDM2OgorXklmZCA9IGZ1c2Vfa2Vybl9tb3VudChtb3VudHBvaW50LCBvcHRzKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzU1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvaGVscGVyLmM6NDM3OgorXklkZXN0cm95X21vdW50X29wdHMob3B0cyk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM1NzogRklMRTogdG9vbHMvdmly dGlvZnNkL2hlbHBlci5jOjQzOToKK15JcmV0dXJuIGZkOyQKCnRvdGFsOiA5NDMgZXJyb3JzLCAy MSB3YXJuaW5ncywgMTMxNSBsaW5lcyBjaGVja2VkCgpQYXRjaCAzLzExMSBoYXMgc3R5bGUgcHJv YmxlbXMsIHBsZWFzZSByZXZpZXcuICBJZiBhbnkgb2YgdGhlc2UgZXJyb3JzCmFyZSBmYWxzZSBw b3NpdGl2ZXMgcmVwb3J0IHRoZW0gdG8gdGhlIG1haW50YWluZXIsIHNlZQpDSEVDS1BBVENIIGlu IE1BSU5UQUlORVJTLgoKNC8xMTEgQ2hlY2tpbmcgY29tbWl0IDJmYmU2OTdhYmM4YiAodmlydGlv ZnNkOiBBZGQgZnVzZV9sb3dsZXZlbC5jKQpXQVJOSU5HOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRl ZCBmaWxlKHMpLCBkb2VzIE1BSU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/CiMxODogCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50 IGxpbmVzCiMyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOgorLyoK KyAgRlVTRTogRmlsZXN5c3RlbSBpbiBVc2Vyc3BhY2UKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjM1OgorI2RlZmluZSBGX1NFVFBJUEVfU1peSShGX0xJTlVYX1NQRUNJRklDX0JBU0UgKyA3 KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQyOgorI2RlZmluZSBjb250YWluZXJfb2Yo cHRyLCB0eXBlLCBtZW1iZXIpICh7XkleSV5JXklcJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6NDM6CiteSV5JXkljb25zdCB0eXBlb2YoICgodHlwZSAqKTApLT5tZW1iZXIgKSAqX19tcHRy ID0gKHB0cik7IFwkCgpFUlJPUjogc3BhY2VzIHJlcXVpcmVkIGFyb3VuZCB0aGF0ICcqJyAoY3R4 Old4VikKIzY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQzOgorICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCB0eXBlb2YoICgodHlwZSAqKTApLT5tZW1iZXIgKSAq X19tcHRyID0gKHB0cik7IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlIHByb2hpYml0ZWQgYWZ0ZXIgdGhh dCBvcGVuIHBhcmVudGhlc2lzICcoJwojNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6NDM6CisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVvZiggKCh0eXBl ICopMCktPm1lbWJlciApICpfX21wdHIgPSAocHRyKTsgXAoKRVJST1I6IHNwYWNlIHByb2hpYml0 ZWQgYmVmb3JlIHRoYXQgY2xvc2UgcGFyZW50aGVzaXMgJyknCiM2NTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0MzoKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg dHlwZW9mKCAoKHR5cGUgKikwKS0+bWVtYmVyICkgKl9fbXB0ciA9IChwdHIpOyBcCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo0NDoKK15JXkleSSh0eXBlICopKCAoY2hhciAqKV9fbXB0ciAt IG9mZnNldG9mKHR5cGUsbWVtYmVyKSApO30pJAoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGFmdGVy IHRoYXQgJywnIChjdHg6VnhWKQojNjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6NDQ6CisgICAgICAgICAgICAgICAgICAgICAgICh0eXBlICopKCAoY2hhciAqKV9fbXB0 ciAtIG9mZnNldG9mKHR5cGUsbWVtYmVyKSApO30pCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjogc3BhY2UgcmVx dWlyZWQgYWZ0ZXIgdGhhdCAnOycgKGN0eDpWeFYpCiM2NjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo0NDoKKyAgICAgICAgICAgICAgICAgICAgICAgKHR5cGUgKikoIChj aGFyICopX19tcHRyIC0gb2Zmc2V0b2YodHlwZSxtZW1iZXIpICk7fSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCgpFUlJPUjogc3BhY2UgcHJvaGliaXRlZCBhZnRlciB0aGF0IG9wZW4gcGFyZW50aGVzaXMg JygnCiM2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0NDoKKyAgICAg ICAgICAgICAgICAgICAgICAgKHR5cGUgKikoIChjaGFyICopX19tcHRyIC0gb2Zmc2V0b2YodHlw ZSxtZW1iZXIpICk7fSkKCkVSUk9SOiBzcGFjZSBwcm9oaWJpdGVkIGJlZm9yZSB0aGF0IGNsb3Nl IHBhcmVudGhlc2lzICcpJwojNjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6NDQ6CisgICAgICAgICAgICAgICAgICAgICAgICh0eXBlICopKCAoY2hhciAqKV9fbXB0ciAt IG9mZnNldG9mKHR5cGUsbWVtYmVyKSApO30pCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0 NzoKK15JdWludDY0X3Qga2g7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDg6CiteSXN0 cnVjdCBmdXNlX3Nlc3Npb24gKnNlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjU1Ogor XklwYWdlc2l6ZSA9IGdldHBhZ2VzaXplKCk7JAoKRVJST1I6IHVzZSBxZW11X3JlYWxfaG9zdF9w YWdlX3NpemUgaW5zdGVhZCBvZiBnZXRwYWdlc2l6ZSgpCiM3NzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo1NToKKyAgICAgICBwYWdlc2l6ZSA9IGdldHBhZ2VzaXplKCk7 CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MDoKK15JYXR0ci0+aW5vXkk9IHN0YnVmLT5z dF9pbm87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjE6CiteSWF0dHItPm1vZGVeST0g c3RidWYtPnN0X21vZGU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjI6CiteSWF0dHIt Pm5saW5rXkk9IHN0YnVmLT5zdF9ubGluazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2 MzoKK15JYXR0ci0+dWlkXkk9IHN0YnVmLT5zdF91aWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6NjQ6CiteSWF0dHItPmdpZF5JPSBzdGJ1Zi0+c3RfZ2lkOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjY1OgorXklhdHRyLT5yZGV2Xkk9IHN0YnVmLT5zdF9yZGV2OyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjY2OgorXklhdHRyLT5zaXplXkk9IHN0YnVmLT5zdF9zaXpl OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjY3OgorXklhdHRyLT5ibGtzaXplXkk9IHN0 YnVmLT5zdF9ibGtzaXplOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjY4OgorXklhdHRy LT5ibG9ja3NeST0gc3RidWYtPnN0X2Jsb2NrczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo2OToKK15JYXR0ci0+YXRpbWVeST0gc3RidWYtPnN0X2F0aW1lOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjcwOgorXklhdHRyLT5tdGltZV5JPSBzdGJ1Zi0+c3RfbXRpbWU7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzE6CiteSWF0dHItPmN0aW1lXkk9IHN0YnVmLT5zdF9j dGltZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3MjoKK15JYXR0ci0+YXRpbWVuc2Vj ID0gU1RfQVRJTV9OU0VDKHN0YnVmKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3MzoK K15JYXR0ci0+bXRpbWVuc2VjID0gU1RfTVRJTV9OU0VDKHN0YnVmKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo3NDoKK15JYXR0ci0+Y3RpbWVuc2VjID0gU1RfQ1RJTV9OU0VDKHN0YnVm KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Nzk6CiteSXN0YnVmLT5zdF9tb2RlXkkg ICAgICAgPSBhdHRyLT5tb2RlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4MDoKK15J c3RidWYtPnN0X3VpZF5JICAgICAgID0gYXR0ci0+dWlkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo4MToKK15Jc3RidWYtPnN0X2dpZF5JICAgICAgID0gYXR0ci0+Z2lkOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4MjoKK15Jc3RidWYtPnN0X3NpemVeSSAgICAgICA9IGF0 dHItPnNpemU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgzOgorXklzdGJ1Zi0+c3Rf YXRpbWVeSSAgICAgICA9IGF0dHItPmF0aW1lOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo4NDoKK15Jc3RidWYtPnN0X210aW1lXkkgICAgICAgPSBhdHRyLT5tdGltZTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6ODU6CiteSXN0YnVmLT5zdF9jdGltZSAgICAgICAgPSBhdHRy LT5jdGltZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODY6CiteSVNUX0FUSU1fTlNF Q19TRVQoc3RidWYsIGF0dHItPmF0aW1lbnNlYyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjg3OgorXklTVF9NVElNX05TRUNfU0VUKHN0YnVmLCBhdHRyLT5tdGltZW5zZWMpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4ODoKK15JU1RfQ1RJTV9OU0VDX1NFVChzdGJ1Ziwg YXR0ci0+Y3RpbWVuc2VjKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTE6CitzdGF0 aWNeSXNpemVfdCBpb3ZfbGVuZ3RoKGNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92LCBzaXplX3QgY291 bnQpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE1OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjkzOgorXklzaXplX3Qgc2VnOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5NDoKK15Jc2l6ZV90IHJldCA9IDA7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk2OgorXklmb3IgKHNlZyA9IDA7IHNlZyA8IGNvdW50OyBz ZWcrKykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRo aXMgc3RhdGVtZW50CiMxMTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 OTY6CisgICAgICAgZm9yIChzZWcgPSAwOyBzZWcgPCBjb3VudDsgc2VnKyspClsuLi5dCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTc6CiteSV5JcmV0ICs9IGlvdltzZWddLmlvdl9sZW47 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk4OgorXklyZXR1cm4gcmV0OyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDM6CiteSXJlcS0+bmV4dCA9IHJlcTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTA0OgorXklyZXEtPnByZXYgPSByZXE7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjEwOToKK15Jc3RydWN0IGZ1c2VfcmVxICpwcmV2ID0gcmVxLT5w cmV2OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTA6CiteSXN0cnVjdCBmdXNlX3Jl cSAqbmV4dCA9IHJlcS0+bmV4dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTExOgor XklwcmV2LT5uZXh0ID0gbmV4dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTEyOgor XkluZXh0LT5wcmV2ID0gcHJldjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE3Ogor XklzdHJ1Y3QgZnVzZV9yZXEgKnByZXYgPSBuZXh0LT5wcmV2OyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxMTg6CiteSXJlcS0+bmV4dCA9IG5leHQ7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjExOToKK15JcmVxLT5wcmV2ID0gcHJldjskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTIwOgorXklwcmV2LT5uZXh0ID0gcmVxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxMjE6CiteSW5leHQtPnByZXYgPSByZXE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjEyNjoKK15JcHRocmVhZF9tdXRleF9kZXN0cm95KCZyZXEtPmxvY2spOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0OTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjc6CiteSWZyZWUocmVxKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTMyOgorXklpbnQgY3RyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxMzM6CiteSXN0cnVjdCBmdXNlX3Nlc3Npb24gKnNlID0gcmVxLT5zZTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM1OgorXklwdGhyZWFkX211dGV4X2xvY2soJnNlLT5sb2Nr KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM2OgorXklyZXEtPnUubmkuZnVuYyA9 IE5VTEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzNzoKK15JcmVxLT51Lm5pLmRh dGEgPSBOVUxMOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2 MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzg6CiteSWxpc3RfZGVs X3JlcShyZXEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2 MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzk6CiteSWN0ciA9IC0t cmVxLT5jdHI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTYy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0MDoKK15JZnVzZV9jaGFu X3B1dChyZXEtPmNoKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQxOgorXklyZXEt PmNoID0gTlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx NjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQyOgorXklwdGhyZWFk X211dGV4X3VubG9jaygmc2UtPmxvY2spOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox NDM6CiteSWlmICghY3RyKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxs IGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNDM6CisgICAgICAgaWYgKCFjdHIpClsuLi5dCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTQ0OgorXkleSWRlc3Ryb3lfcmVxKHJlcSk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE0OToKK15Jc3RydWN0IGZ1c2VfcmVxICpyZXE7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTczOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE1MToKK15JcmVxID0gKHN0cnVjdCBmdXNlX3JlcSAqKSBjYWxsb2Mo MSwgc2l6ZW9mKHN0cnVjdCBmdXNlX3JlcSkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxNTI6CiteSWlmIChyZXEgPT0gTlVMTCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxNTM6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVzZTogZmFpbGVkIHRvIGFsbG9j YXRlIHJlcXVlc3RcbiIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTQ6CiteSX0g ZWxzZSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1NToKK15JXklyZXEtPnNlID0g c2U7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1NjoKK15JXklyZXEtPmN0ciA9IDE7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1NzoKK15JXklsaXN0X2luaXRfcmVxKHJl cSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTgwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1ODoKK15JXklmdXNlX211dGV4X2lu aXQoJnJlcS0+bG9jayk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1OToKK15JfSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4MzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjE6CiteSXJldHVybiByZXE7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2NjoKK15JXkleSSBzdHJ1Y3QgaW92ZWMgKmlvdiwgaW50 IGNvdW50KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjg6CiteSXN0cnVjdCBmdXNl X291dF9oZWFkZXIgKm91dCA9IGlvdlswXS5pb3ZfYmFzZTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTcwOgorXklvdXQtPmxlbiA9IGlvdl9sZW5ndGgoaW92LCBjb3VudCk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MToKK15JaWYgKHNlLT5kZWJ1ZykgeyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzI6CiteSV5JaWYgKG91dC0+dW5pcXVlID09IDApIHsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTczOgorXkleSV5JZnVzZV9sb2coRlVTRV9M T0dfREVCVUcsICJOT1RJRlk6IGNvZGU9JWQgbGVuZ3RoPSV1XG4iLCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxNzQ6CiteSV5JXkleSW91dC0+ZXJyb3IsIG91dC0+bGVuKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc1OgorXkleSX0gZWxzZSBpZiAob3V0LT5lcnJvcikg eyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5ODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzY6CiteSV5JXklmdXNlX2xvZyhGVVNF X0xPR19ERUJVRywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc3OgorXkleSV5JXkki ICAgdW5pcXVlOiAlbGx1LCBlcnJvcjogJWkgKCVzKSwgb3V0c2l6ZTogJWlcbiIsJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3ODoKK15JXkleSV5JKHVuc2lnbmVkIGxvbmcgbG9uZykg b3V0LT51bmlxdWUsIG91dC0+ZXJyb3IsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3 OToKK15JXkleSV5Jc3RyZXJyb3IoLW91dC0+ZXJyb3IpLCBvdXQtPmxlbik7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE4MDoKK15JXkl9IGVsc2UgeyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxODE6CiteSV5JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTgyOgorXkleSV5JXkkiICAgdW5pcXVlOiAlbGx1LCBzdWNj ZXNzLCBvdXRzaXplOiAlaVxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTgzOgor XkleSV5JXkkodW5zaWduZWQgbG9uZyBsb25nKSBvdXQtPnVuaXF1ZSwgb3V0LT5sZW4pOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODQ6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxODU6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg3Ogor Xklzc2l6ZV90IHJlcyA9IHdyaXRldihjaCA/IGNoLT5mZCA6IHNlLT5mZCwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTg4OgorXkleSV5JICAgICBpb3YsIGNvdW50KTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg5OgorXklpbnQgZXJyID0gZXJybm87JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE5MToKK15JaWYgKHJlcyA9PSAtMSkgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxOTI6CiteSV5JYXNzZXJ0KHNlICE9IE5VTEwpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTQ6CiteSV5JLyogRU5PRU5UIG1lYW5zIHRoZSBvcGVyYXRp b24gd2FzIGludGVycnVwdGVkICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NToK K15JXklpZiAoIWZ1c2Vfc2Vzc2lvbl9leGl0ZWQoc2UpICYmIGVyciAhPSBFTk9FTlQpJAoKRVJS T1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVu dAojMjE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NToKKyAgICAg ICAgICAgICAgIGlmICghZnVzZV9zZXNzaW9uX2V4aXRlZChzZSkgJiYgZXJyICE9IEVOT0VOVCkK Wy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTY6CiteSV5JXklwZXJyb3IoImZ1 c2U6IHdyaXRpbmcgZGV2aWNlIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NzoK K15JXklyZXR1cm4gLWVycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyMjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk4OgorXkl9 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwMDoKK15JcmV0dXJuIDA7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNToKK15JXkleSSAgICAgICBpbnQgY291bnQpJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNzoKK15Jc3RydWN0IGZ1c2Vfb3V0X2hlYWRlciBv dXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMxOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwOToKK15JaWYgKGVycm9yIDw9IC0x MDAwIHx8IGVycm9yID4gMCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTA6Cite SV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVzZTogYmFkIGVycm9yIHZhbHVlOiAlaVxuIixe SWVycm9yKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjExOgorXkleSWVycm9yID0g LUVSQU5HRTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjEyOgorXkl9JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxNDoKK15Jb3V0LnVuaXF1ZSA9IHJlcS0+dW5pcXVlOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTU6CiteSW91dC5lcnJvciA9IGVycm9yOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzOTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTc6CiteSWlvdlswXS5pb3ZfYmFzZSA9ICZv dXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxODoKK15JaW92WzBdLmlvdl9sZW4g PSBzaXplb2Yoc3RydWN0IGZ1c2Vfb3V0X2hlYWRlcik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIyMDoKK15JcmV0dXJuIGZ1c2Vfc2VuZF9tc2cocmVxLT5zZSwgcmVxLT5jaCwgaW92 LCBjb3VudCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyNDoKK15JXkleSSAgaW50 IGNvdW50KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjY6CiteSWludCByZXM7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjUwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyODoKK15JcmVzID0gZnVzZV9zZW5kX3JlcGx5 X2lvdl9ub2ZyZWUocmVxLCBlcnJvciwgaW92LCBjb3VudCk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIyOToKK15JZnVzZV9mcmVlX3JlcShyZXEpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyMzA6CiteSXJldHVybiByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjIzNDoKK15JXkkgICAgICBzaXplX3QgYXJnc2l6ZSkkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjM2OgorXklzdHJ1Y3QgaW92ZWMgaW92WzJdOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyMzc6CiteSWludCBjb3VudCA9IDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIzODoKK15JaWYgKGFyZ3NpemUpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjM5OgorXkleSWlvdlsxXS5pb3ZfYmFzZSA9ICh2b2lkICopIGFyZzskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjQwOgorXkleSWlvdlsxXS5pb3ZfbGVuID0gYXJnc2l6ZTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQxOgorXkleSWNvdW50Kys7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI0MjoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyNDM6CiteSXJldHVybiBzZW5kX3JlcGx5X2lvdihyZXEsIGVycm9yLCBpb3YsIGNvdW50KTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ4OgorXklpbnQgcmVzOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDk6CiteSXN0cnVjdCBpb3ZlYyAqcGFkZGVkX2lvdjskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjUxOgorXklwYWRkZWRfaW92ID0gbWFsbG9jKChj b3VudCArIDEpICogc2l6ZW9mKHN0cnVjdCBpb3ZlYykpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyNTI6CiteSWlmIChwYWRkZWRfaW92ID09IE5VTEwpJAoKRVJST1I6IGJyYWNlcyB7 fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjc0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1MjoKKyAgICAgICBpZiAocGFkZGVk X2lvdiA9PSBOVUxMKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1MzoKK15J XklyZXR1cm4gZnVzZV9yZXBseV9lcnIocmVxLCBFTk9NRU0pOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyNTU6CiteSW1lbWNweShwYWRkZWRfaW92ICsgMSwgaW92LCBjb3VudCAqIHNp emVvZihzdHJ1Y3QgaW92ZWMpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU2Ogor Xkljb3VudCsrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4 MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTg6CiteSXJlcyA9IHNl bmRfcmVwbHlfaW92KHJlcSwgMCwgcGFkZGVkX2lvdiwgY291bnQpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyNTk6CiteSWZyZWUocGFkZGVkX2lvdik7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI2MToKK15JcmV0dXJuIHJlczskCgpXQVJOSU5HOiBCbG9jayBjb21tZW50 cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMjg3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2NToKKy8qIGBidWZgIGlzIGFsbG93ZWQgdG8gYmUg ZW1wdHkgc28gdGhhdCB0aGUgcHJvcGVyIHNpemUgbWF5IGJlCgpXQVJOSU5HOiBCbG9jayBjb21t ZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiMyODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjY2OgorLyogYGJ1ZmAgaXMgYWxsb3dlZCB0byBiZSBlbXB0eSBz byB0aGF0IHRoZSBwcm9wZXIgc2l6ZSBtYXkgYmUKKyAgIGFsbG9jYXRlZCBieSB0aGUgY2FsbGVy ICovCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFy YXRlIGxpbmUKIzI4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjY6 CisgICBhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlciAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI2ODoKK15JXkleSSBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBzdHJ1Y3Qgc3RhdCAqc3Ri dWYsIG9mZl90IG9mZikkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyOTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjcwOgorXkkodm9p ZClyZXE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3MToKK15Jc2l6ZV90IG5hbWVs ZW47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3MjoKK15Jc2l6ZV90IGVudGxlbjsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjczOgorXklzaXplX3QgZW50bGVuX3BhZGRl ZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc0OgorXklzdHJ1Y3QgZnVzZV9kaXJl bnQgKmRpcmVudDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy OTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc2OgorXkluYW1lbGVu ID0gc3RybGVuKG5hbWUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI5OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzc6CiteSWVu dGxlbiA9IEZVU0VfTkFNRV9PRkZTRVQgKyBuYW1lbGVuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyNzg6CiteSWVudGxlbl9wYWRkZWQgPSBGVVNFX0RJUkVOVF9BTElHTihlbnRsZW4p OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODA6CiteSWlmICgoYnVmID09IE5VTEwp IHx8IChlbnRsZW5fcGFkZGVkID4gYnVmc2l6ZSkpJAoKRVJST1I6IHN1c3BlY3QgY29kZSBpbmRl bnQgZm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgKDgsIDEwKQojMzAyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4MDoKKyAgICAgICBpZiAoKGJ1ZiA9PSBOVUxMKSB8 fCAoZW50bGVuX3BhZGRlZCA+IGJ1ZnNpemUpKQorICAgICAgICAgcmV0dXJuIGVudGxlbl9wYWRk ZWQ7CgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMg c3RhdGVtZW50CiMzMDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjgw OgorICAgICAgIGlmICgoYnVmID09IE5VTEwpIHx8IChlbnRsZW5fcGFkZGVkID4gYnVmc2l6ZSkp ClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjgxOgorXkkgIHJldHVybiBlbnRs ZW5fcGFkZGVkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMw NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODM6CiteSWRpcmVudCA9 IChzdHJ1Y3QgZnVzZV9kaXJlbnQqKSBidWY7JAoKRVJST1I6ICIoZm9vKikiIHNob3VsZCBiZSAi KGZvbyAqKSIKIzMwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODM6 CisgICAgICAgZGlyZW50ID0gKHN0cnVjdCBmdXNlX2RpcmVudCopIGJ1ZjsKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyODQ6CiteSWRpcmVudC0+aW5vID0gc3RidWYtPnN0X2lubzskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg1OgorXklkaXJlbnQtPm9mZiA9IG9mZjskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg2OgorXklkaXJlbnQtPm5hbWVsZW4gPSBuYW1l bGVuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwOTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODc6CiteSWRpcmVudC0+dHlwZSA9 IChzdGJ1Zi0+c3RfbW9kZSAmIFNfSUZNVCkgPj4gMTI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI4ODoKK15JbWVtY3B5KGRpcmVudC0+bmFtZSwgbmFtZSwgbmFtZWxlbik7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzExOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4OToKK15JbWVtc2V0KGRpcmVudC0+bmFtZSArIG5h bWVsZW4sIDAsIGVudGxlbl9wYWRkZWQgLSBlbnRsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyOTE6CiteSXJldHVybiBlbnRsZW5fcGFkZGVkOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyOTU6CiteSV5JXkkgICBzdHJ1Y3QgZnVzZV9rc3RhdGZzICprc3RhdGZzKSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxOTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTc6CiteSWtzdGF0ZnMtPmJzaXplXkkgPSBz dGJ1Zi0+Zl9ic2l6ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk4OgorXklrc3Rh dGZzLT5mcnNpemVeSSA9IHN0YnVmLT5mX2Zyc2l6ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6Mjk5OgorXklrc3RhdGZzLT5ibG9ja3NeSSA9IHN0YnVmLT5mX2Jsb2NrczskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzAwOgorXklrc3RhdGZzLT5iZnJlZV5JID0gc3RidWYt PmZfYmZyZWU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzIz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwMToKK15Ja3N0YXRmcy0+ YmF2YWlsXkkgPSBzdGJ1Zi0+Zl9iYXZhaWw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjMwMjoKK15Ja3N0YXRmcy0+ZmlsZXNeSSA9IHN0YnVmLT5mX2ZpbGVzOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyNTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzozMDM6CiteSWtzdGF0ZnMtPmZmcmVlXkkgPSBzdGJ1Zi0+Zl9mZnJl ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA0OgorXklrc3RhdGZzLT5uYW1lbGVu ID0gc3RidWYtPmZfbmFtZW1heDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA5Ogor XklyZXR1cm4gc2VuZF9yZXBseShyZXEsIDAsIGFyZywgYXJnc2l6ZSk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjMxNDoKK15JcmV0dXJuIHNlbmRfcmVwbHkocmVxLCAtZXJyLCBOVUxM LCAwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzE5OgorXklmdXNlX2ZyZWVfcmVx KHJlcSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMyNDoKK15JaWYgKHQgPiAoZG91 YmxlKSBVTE9OR19NQVgpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwg YXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMzQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjMyNDoKKyAgICAgICBpZiAodCA+IChkb3VibGUpIFVMT05HX01BWCkKWy4uLl0K KyAgICAgICBlbHNlIGlmICh0IDwgMC4wKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMjU6CiteSV5JcmV0dXJuIFVMT05HX01BWDskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzI2OgorXkllbHNlIGlmICh0IDwgMC4wKSQKCkVSUk9S OiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQK IzM0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMjY6CisgICAgICAg ZWxzZSBpZiAodCA8IDAuMCkKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MzI3OgorXkleSXJldHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzozMjg6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzNTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzI5Ogor XkleSXJldHVybiAodW5zaWduZWQgbG9uZykgdDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzNTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MzM0OgorXklkb3VibGUgZiA9IHQgLSAoZG91YmxlKSBjYWxjX3RpbWVvdXRfc2VjKHQpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1NzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMzU6CiteSWlmIChmIDwgMC4wKSQKCkVSUk9S OiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQK IzM1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMzU6CisgICAgICAg aWYgKGYgPCAwLjApClsuLi5dCisgICAgICAgZWxzZSBpZiAoZiA+PSAwLjk5OTk5OTk5OSkKWy4u Ll0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzM2Ogor XkleSXJldHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMzc6CiteSWVsc2Ug aWYgKGYgPj0gMC45OTk5OTk5OTkpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZv ciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMzU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjMzNzoKKyAgICAgICBlbHNlIGlmIChmID49IDAuOTk5OTk5OTk5KQpb Li4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzM2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMzg6 CiteSV5JcmV0dXJuIDk5OTk5OTk5OTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzM5 OgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzYy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM0MDoKK15JXklyZXR1cm4g KHVuc2lnbmVkIGludCkgKGYgKiAxLjBlOSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjM0NDoKK15JXkkgICAgICAgY29uc3Qgc3RydWN0IGZ1c2VfZW50cnlfcGFyYW0gKmUpJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzY4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM0NjoKK15JYXJnLT5ub2RlaWQgPSBlLT5pbm87JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzY5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM0NzoKK15JYXJnLT5nZW5lcmF0aW9uID0gZS0+ Z2VuZXJhdGlvbjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz NzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzQ4OgorXklhcmctPmVu dHJ5X3ZhbGlkID0gY2FsY190aW1lb3V0X3NlYyhlLT5lbnRyeV90aW1lb3V0KTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNzE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MzQ5OgorXklhcmctPmVudHJ5X3ZhbGlkX25zZWMgPSBjYWxj X3RpbWVvdXRfbnNlYyhlLT5lbnRyeV90aW1lb3V0KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzNzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MzUwOgorXklhcmctPmF0dHJfdmFsaWQgPSBjYWxjX3RpbWVvdXRfc2VjKGUtPmF0dHJf dGltZW91dCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzcz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM1MToKK15JYXJnLT5hdHRy X3ZhbGlkX25zZWMgPSBjYWxjX3RpbWVvdXRfbnNlYyhlLT5hdHRyX3RpbWVvdXQpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM3NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozNTI6CiteSWNvbnZlcnRfc3RhdCgmZS0+YXR0ciwgJmFy Zy0+YXR0cik7JAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBh IHNlcGFyYXRlIGxpbmUKIzM3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzozNTU6CisvKiBgYnVmYCBpcyBhbGxvd2VkIHRvIGJlIGVtcHR5IHNvIHRoYXQgdGhlIHByb3Bl ciBzaXplIG1heSBiZQoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlICogb24gc3Vic2VxdWVu dCBsaW5lcwojMzc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM1NjoK Ky8qIGBidWZgIGlzIGFsbG93ZWQgdG8gYmUgZW1wdHkgc28gdGhhdCB0aGUgcHJvcGVyIHNpemUg bWF5IGJlCisgICBhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlciAqLwoKV0FSTklORzogQmxvY2sgY29t bWVudHMgdXNlIGEgdHJhaWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiMzNzg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzU2OgorICAgYWxsb2NhdGVkIGJ5IHRoZSBj YWxsZXIgKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4MDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozNTg6CiteSV5JXkkgICAgICBj b25zdCBjaGFyICpuYW1lLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzM4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozNTk6CiteSV5J XkkgICAgICBjb25zdCBzdHJ1Y3QgZnVzZV9lbnRyeV9wYXJhbSAqZSwgb2ZmX3Qgb2ZmKSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4MzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozNjE6CiteSSh2b2lkKXJlcTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MzYyOgorXklzaXplX3QgbmFtZWxlbjskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MzYzOgorXklzaXplX3QgZW50bGVuOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzozNjQ6CiteSXNpemVfdCBlbnRsZW5fcGFkZGVkOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzozNjY6CiteSW5hbWVsZW4gPSBzdHJsZW4obmFtZSk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzg5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjM2NzoKK15JZW50bGVuID0gRlVTRV9OQU1FX09GRlNFVF9ESVJF TlRQTFVTICsgbmFtZWxlbjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzOTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzY4OgorXkll bnRsZW5fcGFkZGVkID0gRlVTRV9ESVJFTlRfQUxJR04oZW50bGVuKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzOTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MzY5OgorXklpZiAoKGJ1ZiA9PSBOVUxMKSB8fCAoZW50bGVuX3BhZGRl ZCA+IGJ1ZnNpemUpKSQKCkVSUk9SOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25h bCBzdGF0ZW1lbnRzICg4LCAxMCkKIzM5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzozNjk6CisgICAgICAgaWYgKChidWYgPT0gTlVMTCkgfHwgKGVudGxlbl9wYWRkZWQg PiBidWZzaXplKSkKKyAgICAgICAgIHJldHVybiBlbnRsZW5fcGFkZGVkOwoKRVJST1I6IGJyYWNl cyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMzkxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM2OToKKyAgICAgICBpZiAoKGJ1 ZiA9PSBOVUxMKSB8fCAoZW50bGVuX3BhZGRlZCA+IGJ1ZnNpemUpKQpbLi4uXQoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzkyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjM3MDoKK15JICByZXR1cm4gZW50bGVuX3BhZGRlZDskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzOTQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzcyOgorXklzdHJ1Y3QgZnVzZV9kaXJlbnRwbHVzICpk cCA9IChzdHJ1Y3QgZnVzZV9kaXJlbnRwbHVzICopIGJ1ZjskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzOTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MzczOgorXkltZW1zZXQoJmRwLT5lbnRyeV9vdXQsIDAsIHNpemVvZihkcC0+ZW50 cnlfb3V0KSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzk2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM3NDoKK15JZmlsbF9lbnRy eSgmZHAtPmVudHJ5X291dCwgZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM3NjoK K15Jc3RydWN0IGZ1c2VfZGlyZW50ICpkaXJlbnQgPSAmZHAtPmRpcmVudDskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzOTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6Mzc3OgorXklkaXJlbnQtPmlubyA9IGUtPmF0dHIuc3RfaW5vOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQwMDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozNzg6CiteSWRpcmVudC0+b2ZmID0gb2ZmOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQwMTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozNzk6CiteSWRpcmVudC0+bmFtZWxlbiA9IG5h bWVsZW47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDAyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM4MDoKK15JZGlyZW50LT50eXBl ID0gKGUtPmF0dHIuc3RfbW9kZSAmIFNfSUZNVCkgPj4gMTI7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjM4MToKK15JbWVtY3B5KGRpcmVudC0+bmFtZSwgbmFtZSwgbmFtZWxlbik7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDA0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM4MjoKK15JbWVtc2V0KGRpcmVudC0+bmFtZSAr IG5hbWVsZW4sIDAsIGVudGxlbl9wYWRkZWQgLSBlbnRsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzozODQ6CiteSXJldHVybiBlbnRsZW5fcGFkZGVkOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzozODg6CiteSV5JICAgICAgY29uc3Qgc3RydWN0IGZ1c2VfZmlsZV9pbmZv ICpmKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxMjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozOTA6CiteSWFyZy0+ZmggPSBmLT5m aDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MTM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzkxOgorXklpZiAoZi0+ZGlyZWN0X2lv KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBz dGF0ZW1lbnQKIzQxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozOTE6 CisgICAgICAgaWYgKGYtPmRpcmVjdF9pbykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzQxNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzozOTI6CiteSV5JYXJnLT5vcGVuX2ZsYWdzIHw9IEZPUEVOX0RJUkVDVF9JTzskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MTU6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzkzOgorXklpZiAoZi0+a2VlcF9jYWNoZSkkCgpFUlJP UjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50 CiM0MTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzkzOgorICAgICAg IGlmIChmLT5rZWVwX2NhY2hlKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNDE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM5 NDoKK15JXklhcmctPm9wZW5fZmxhZ3MgfD0gRk9QRU5fS0VFUF9DQUNIRTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6Mzk1OgorXklpZiAoZi0+Y2FjaGVfcmVhZGRpcikkCgpFUlJPUjog YnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM0 MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mzk1OgorICAgICAgIGlm IChmLT5jYWNoZV9yZWFkZGlyKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNDE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjM5 NjoKK15JXklhcmctPm9wZW5fZmxhZ3MgfD0gRk9QRU5fQ0FDSEVfRElSOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxOTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzozOTc6CiteSWlmIChmLT5ub25zZWVrYWJsZSkkCgpFUlJPUjogYnJh Y2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM0MTk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mzk3OgorICAgICAgIGlmIChm LT5ub25zZWVrYWJsZSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzQyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozOTg6Cite SV5JYXJnLT5vcGVuX2ZsYWdzIHw9IEZPUEVOX05PTlNFRUtBQkxFOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo0MDM6CiteSXN0cnVjdCBmdXNlX2VudHJ5X291dCBhcmc7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDI2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQwNDoKK15Jc2l6ZV90IHNpemUgPSByZXEtPnNlLT5jb25u LnByb3RvX21pbm9yIDwgOSA/JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNDI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQwNToKK15J XklGVVNFX0NPTVBBVF9FTlRSWV9PVVRfU0laRSA6IHNpemVvZihhcmcpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQyOTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo0MDc6CiteSS8qIGJlZm9yZSBBQkkgNy40IGUtPmlubyA9PSAwIHdh cyBpbnZhbGlkLCBvbmx5IEVOT0VOVCBtZWFudCQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVz ZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiM0Mjk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6NDA3OgorICAgICAgIC8qIGJlZm9yZSBBQkkgNy40IGUtPmlu byA9PSAwIHdhcyBpbnZhbGlkLCBvbmx5IEVOT0VOVCBtZWFudAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjQwODoKK15JICAgbmVnYXRpdmUgZW50cnkgKi8kCgpXQVJOSU5HOiBCbG9jayBj b21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiM0MzA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6NDA4OgorICAgICAgIC8qIGJlZm9yZSBBQkkgNy40IGUtPmlu byA9PSAwIHdhcyBpbnZhbGlkLCBvbmx5IEVOT0VOVCBtZWFudAorICAgICAgICAgIG5lZ2F0aXZl IGVudHJ5ICovCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBh IHNlcGFyYXRlIGxpbmUKIzQzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo0MDg6CisgICAgICAgICAgbmVnYXRpdmUgZW50cnkgKi8KCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo0MDk6CiteSWlmICghZS0+aW5vICYmIHJlcS0+c2UtPmNvbm4ucHJvdG9fbWlub3Ig PCA0KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhp cyBzdGF0ZW1lbnQKIzQzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0 MDk6CisgICAgICAgaWYgKCFlLT5pbm8gJiYgcmVxLT5zZS0+Y29ubi5wcm90b19taW5vciA8IDQp ClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MzI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDEwOgorXkleSXJldHVybiBmdXNl X3JlcGx5X2VycihyZXEsIEVOT0VOVCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNDM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQx MjoKK15JbWVtc2V0KCZhcmcsIDAsIHNpemVvZihhcmcpKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6NDEzOgorXklmaWxsX2VudHJ5KCZhcmcsIGUpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQzNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo0MTQ6CiteSXJldHVybiBzZW5kX3JlcGx5X29rKHJlcSwgJmFyZywgc2l6ZSk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDQwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQxODoKK15JXkkgICAgICBjb25zdCBzdHJ1 Y3QgZnVzZV9maWxlX2luZm8gKmYpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNDQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQyMDoK K15JY2hhciBidWZbc2l6ZW9mKHN0cnVjdCBmdXNlX2VudHJ5X291dCkgKyBzaXplb2Yoc3RydWN0 IGZ1c2Vfb3Blbl9vdXQpXTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM0NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDIxOgorXklz aXplX3QgZW50cnlzaXplID0gcmVxLT5zZS0+Y29ubi5wcm90b19taW5vciA8IDkgPyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ0NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0MjI6CiteSV5JRlVTRV9DT01QQVRfRU5UUllfT1VUX1NJ WkUgOiBzaXplb2Yoc3RydWN0IGZ1c2VfZW50cnlfb3V0KTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6NDIzOgorXklzdHJ1Y3QgZnVzZV9lbnRyeV9vdXQgKmVhcmcgPSAoc3RydWN0IGZ1 c2VfZW50cnlfb3V0ICopIGJ1ZjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM0NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDI0Ogor XklzdHJ1Y3QgZnVzZV9vcGVuX291dCAqb2FyZyA9IChzdHJ1Y3QgZnVzZV9vcGVuX291dCAqKSAo YnVmICsgZW50cnlzaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM0NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDI2OgorXklt ZW1zZXQoYnVmLCAwLCBzaXplb2YoYnVmKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNDQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjQyNzoKK15JZmlsbF9lbnRyeShlYXJnLCBlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM0NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6NDI4OgorXklmaWxsX29wZW4ob2FyZywgZik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNDUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjQyOToKK15JcmV0dXJuIHNlbmRfcmVwbHlfb2socmVxLCBidWYsJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjQzMDoKK15JXkleSSAgICAgZW50cnlzaXplICsgc2l6ZW9mKHN0cnVj dCBmdXNlX29wZW5fb3V0KSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNDU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQzNDoKK15J XkkgICAgZG91YmxlIGF0dHJfdGltZW91dCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM0NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 NDM2OgorXklzdHJ1Y3QgZnVzZV9hdHRyX291dCBhcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNDU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjQzNzoKK15Jc2l6ZV90IHNpemUgPSByZXEtPnNlLT5jb25uLnByb3RvX21pbm9yIDwg OSA/JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDYwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQzODoKK15JXklGVVNFX0NPTVBBVF9B VFRSX09VVF9TSVpFIDogc2l6ZW9mKGFyZyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNDYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjQ0MDoKK15JbWVtc2V0KCZhcmcsIDAsIHNpemVvZihhcmcpKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6NDQxOgorXklhcmcuYXR0cl92YWxpZCA9IGNhbGNfdGltZW91dF9zZWMoYXR0 cl90aW1lb3V0KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0 NjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDQyOgorXklhcmcuYXR0 cl92YWxpZF9uc2VjID0gY2FsY190aW1lb3V0X25zZWMoYXR0cl90aW1lb3V0KTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6NDQzOgorXkljb252ZXJ0X3N0YXQoYXR0ciwgJmFyZy5hdHRy KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0Njc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDQ1OgorXklyZXR1cm4gc2VuZF9yZXBs eV9vayhyZXEsICZhcmcsIHNpemUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzQ3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0NTA6 CiteSXJldHVybiBzZW5kX3JlcGx5X29rKHJlcSwgbGlua25hbWUsIHN0cmxlbihsaW5rbmFtZSkp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ3NzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0NTU6CiteSXN0cnVjdCBmdXNlX29wZW5f b3V0IGFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0Nzk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDU3OgorXkltZW1zZXQoJmFy ZywgMCwgc2l6ZW9mKGFyZykpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzQ4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0NTg6Cite SWZpbGxfb3BlbigmYXJnLCBmKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM0ODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDU5Ogor XklyZXR1cm4gc2VuZF9yZXBseV9vayhyZXEsICZhcmcsIHNpemVvZihhcmcpKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0ODY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6NDY0OgorXklzdHJ1Y3QgZnVzZV93cml0ZV9vdXQgYXJnOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4ODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0NjY6CiteSW1lbXNldCgmYXJnLCAwLCBzaXpl b2YoYXJnKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQ2NzoKK15JYXJnLnNpemUg PSBjb3VudDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0OTE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDY5OgorXklyZXR1cm4gc2Vu ZF9yZXBseV9vayhyZXEsICZhcmcsIHNpemVvZihhcmcpKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0OTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6NDc0OgorXklyZXR1cm4gc2VuZF9yZXBseV9vayhyZXEsIGJ1Ziwgc2l6ZSk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTAwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQ3ODoKK15JXkleSV5JICAgICAgIHN0cnVjdCBm dXNlX2NoYW4gKmNoLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzUwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0Nzk6CiteSV5JXkle SSAgICAgICBzdHJ1Y3QgaW92ZWMgKmlvdiwgaW50IGlvdl9jb3VudCwkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6NDgwOgorXkleSV5JXkkgICAgICAgc3RydWN0IGZ1c2VfYnVmdmVjICpi dWYsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTAzOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQ4MToKK15JXkleSV5JICAgICAgIHNp emVfdCBsZW4pJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTA1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQ4MzoKK15Jc3RydWN0IGZ1 c2VfYnVmdmVjIG1lbV9idWYgPSBGVVNFX0JVRlZFQ19JTklUKGxlbik7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTA2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjQ4NDoKK15Jdm9pZCAqbWJ1ZjskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6NDg1OgorXklpbnQgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzUwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0 ODc6CiteSS8qIE9wdGltaXplIGNvbW1vbiBjYXNlICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNTEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjQ4ODoKK15JaWYgKGJ1Zi0+Y291bnQgPT0gMSAmJiBidWYtPmlkeCA9PSAwICYmIGJ1 Zi0+b2ZmID09IDAgJiYkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM1MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDg5OgorXkkgICAg IShidWYtPmJ1ZlswXS5mbGFncyAmIEZVU0VfQlVGX0lTX0ZEKSkgeyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo0OTA6CiteSV5JLyogRklYTUU6IGFsc28gYXZvaWQgbWVtb3J5IGNvcHkg aWYgdGhlcmUgYXJlIG11bHRpcGxlIGJ1ZmZlcnMkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1 c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojNTEyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQ5MDoKKyAgICAgICAgICAgICAgIC8qIEZJWE1FOiBhbHNv IGF2b2lkIG1lbW9yeSBjb3B5IGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBidWZmZXJzCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MTM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6NDkxOgorXkleSSAgIGJ1dCBub25lIG9mIHRoZW0gY29udGFp biBhbiBmZCAqLyQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQg bGluZXMKIzUxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0OTE6Cisg ICAgICAgICAgICAgICAvKiBGSVhNRTogYWxzbyBhdm9pZCBtZW1vcnkgY29weSBpZiB0aGVyZSBh cmUgbXVsdGlwbGUgYnVmZmVycworICAgICAgICAgICAgICAgICAgYnV0IG5vbmUgb2YgdGhlbSBj b250YWluIGFuIGZkICovCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSB0cmFpbGluZyAq LyBvbiBhIHNlcGFyYXRlIGxpbmUKIzUxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo0OTE6CisgICAgICAgICAgICAgICAgICBidXQgbm9uZSBvZiB0aGVtIGNvbnRhaW4g YW4gZmQgKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUxNTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo0OTM6CiteSV5JaW92W2lvdl9j b3VudF0uaW92X2Jhc2UgPSBidWYtPmJ1ZlswXS5tZW07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNTE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjQ5NDoKK15JXklpb3ZbaW92X2NvdW50XS5pb3ZfbGVuID0gbGVuOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUxNzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo0OTU6CiteSV5JaW92X2NvdW50Kys7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjQ5NjoKK15JXklyZXR1cm4gZnVzZV9zZW5kX21zZyhzZSwgY2gsIGlv diwgaW92X2NvdW50KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM1MTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDk3OgorXkl9JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTIxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjQ5OToKK15JcmVzID0gcG9zaXhfbWVtYWxpZ24o Jm1idWYsIHBhZ2VzaXplLCBsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzUyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1MDA6 CiteSWlmIChyZXMgIT0gMCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM1MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6NTAwOgorICAgICAgIGlmIChyZXMgIT0gMCkKWy4uLl0KCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUyMzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo1MDE6CiteSV5JcmV0dXJuIHJlczskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6NTAzOgorXkltZW1fYnVmLmJ1ZlswXS5tZW0gPSBtYnVmOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUyNjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo1MDQ6CiteSXJlcyA9IGZ1c2VfYnVmX2NvcHkoJm1lbV9idWYs IGJ1ZiwgMCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTI3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjUwNToKK15JaWYgKHJlcyA8 IDApIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Mjg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTA2OgorXkleSWZyZWUobWJ1Zik7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTI5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjUwNzoKK15JXklyZXR1cm4gLXJlczskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MzA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTA4OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjUwOToKK15JbGVuID0gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzUzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo1MTE6CiteSWlvdltpb3ZfY291bnRdLmlvdl9iYXNlID0gbWJ1ZjskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6NTEyOgorXklpb3ZbaW92X2NvdW50XS5pb3ZfbGVuID0gbGVuOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUzNTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1MTM6CiteSWlvdl9jb3VudCsrOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUzNjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo1MTQ6CiteSXJlcyA9IGZ1c2Vfc2VuZF9tc2coc2UsIGNoLCBp b3YsIGlvdl9jb3VudCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNTM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjUxNToKK15JZnJl ZShtYnVmKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Mzk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTE3OgorXklyZXR1cm4gcmVz OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU0MzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1MjE6CiteSXNpemVfdCBzaXplOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU0NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1MjI6CiteSWludCBjYW5fZ3JvdzskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NDU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6NTIzOgorXklpbnQgcGlwZVsyXTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6NTI4OgorXkljbG9zZShsbHAtPnBpcGVbMF0pOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU1MTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo1Mjk6CiteSWNsb3NlKGxscC0+cGlwZVsxXSk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTUyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjUzMDoKK15JZnJlZShsbHApOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo1Mzc6CiteSWludCBydiA9IHBpcGUoZmRzKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6NTM5OgorXklpZiAocnYgPT0gLTEpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUg bmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNTYxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjUzOToKKyAgICAgICBpZiAocnYgPT0gLTEpClsu Li5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NjI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTQwOgorXkleSXJldHVybiBydjskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NjQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTQyOgorXklpZiAoZmNudGwoZmRzWzBdLCBGX1NF VEZMLCBPX05PTkJMT0NLKSA9PSAtMSB8fCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzU2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1 NDM6CiteSSAgICBmY250bChmZHNbMV0sIEZfU0VURkwsIE9fTk9OQkxPQ0spID09IC0xIHx8JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTY2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjU0NDoKK15JICAgIGZjbnRsKGZkc1swXSwgRl9T RVRGRCwgRkRfQ0xPRVhFQykgPT0gLTEgfHwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM1Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 NTQ1OgorXkkgICAgZmNudGwoZmRzWzFdLCBGX1NFVEZELCBGRF9DTE9FWEVDKSA9PSAtMSkgeyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU2ODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1NDY6CiteSV5JY2xvc2UoZmRzWzBdKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Njk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTQ3OgorXkleSWNsb3NlKGZkc1sxXSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTcwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjU0ODoKK15JXklydiA9IC0xOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU3MTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo1NDk6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM1NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 NTUwOgorXklyZXR1cm4gcnY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNTc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjU1NToKK15J cmV0dXJuIHBpcGUyKGZkcywgT19DTE9FWEVDIHwgT19OT05CTE9DSyk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjU2MToKK15Jc3RydWN0IGZ1c2VfbGxfcGlwZSAqbGxwID0gcHRocmVh ZF9nZXRzcGVjaWZpYyhzZS0+cGlwZV9rZXkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzU4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo1NjI6CiteSWlmIChsbHAgPT0gTlVMTCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzU4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo1NjM6CiteSV5JaW50IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM1ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTY1Ogor XkleSWxscCA9IG1hbGxvYyhzaXplb2Yoc3RydWN0IGZ1c2VfbGxfcGlwZSkpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU4ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo1NjY6CiteSV5JaWYgKGxscCA9PSBOVUxMKSQKCkVSUk9SOiBi cmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzU4 ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1NjY6CisgICAgICAgICAg ICAgICBpZiAobGxwID09IE5VTEwpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM1ODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 NTY3OgorXkleSV5JcmV0dXJuIE5VTEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNTkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjU2 OToKK15JXklyZXMgPSBmdXNlX3BpcGUobGxwLT5waXBlKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1OTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6NTcwOgorXkleSWlmIChyZXMgPT0gLTEpIHskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6NTcxOgorXkleSV5JZnJlZShsbHApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzU5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo1NzI6CiteSV5JXklyZXR1cm4gTlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM1OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6NTczOgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM1OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTc1OgorXkleSS8q JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTk4OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjU3NjoKK15JXkkgKnRoZSBkZWZhdWx0IHNp emUgaXMgMTYgcGFnZXMgb24gbGludXgkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM1OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTc3 OgorXkleSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYw MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1Nzg6CiteSV5JbGxwLT5z aXplID0gcGFnZXNpemUgKiAxNjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM2MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTc5Ogor XkleSWxscC0+Y2FuX2dyb3cgPSAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzYwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1ODE6 CiteSV5JcHRocmVhZF9zZXRzcGVjaWZpYyhzZS0+cGlwZV9rZXksIGxscCk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjA0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjU4MjoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzYwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo1ODQ6CiteSXJldHVybiBsbHA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNjEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjU5MDoK K15Jc3RydWN0IGZ1c2VfbGxfcGlwZSAqbGxwID0gcHRocmVhZF9nZXRzcGVjaWZpYyhzZS0+cGlw ZV9rZXkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYxMzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo1OTE6CiteSWlmIChsbHApIHsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MTQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTkyOgorXkleSXB0aHJlYWRfc2V0c3BlY2lm aWMoc2UtPnBpcGVfa2V5LCBOVUxMKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM2MTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NTkz OgorXkleSWZ1c2VfbGxfcGlwZV9mcmVlKGxscCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNjE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjU5NDoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzYyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MDA6CiteSWludCBy ZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjI0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjYwMjoKK15JcmVzID0gcmVhZChmZCwg YnVmLCBsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYy NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MDM6CiteSWlmIChyZXMg PT0gLTEpIHskCgpFUlJPUjogbGluZSBvdmVyIDkwIGNoYXJhY3RlcnMKIzYyNjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MDQ6CisgICAgICAgICAgICAgICBmdXNlX2xv ZyhGVVNFX0xPR19FUlIsICJmdXNlOiBpbnRlcm5hbCBlcnJvcjogZmFpbGVkIHRvIHJlYWQgYmFj ayBmcm9tIHBpcGU6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjYwNDoKK15JXklmdXNlX2xvZyhGVVNFX0xPR19FUlIsICJmdXNlOiBpbnRlcm5h bCBlcnJvcjogZmFpbGVkIHRvIHJlYWQgYmFjayBmcm9tIHBpcGU6ICVzXG4iLCBzdHJlcnJvcihl cnJubykpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYyNzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MDU6CiteSV5JcmV0dXJuIC1F SU87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjI4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjYwNjoKK15JfSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYyOTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo2MDc6CiteSWlmIChyZXMgIT0gbGVuKSB7JAoKRVJST1I6IGxpbmUg b3ZlciA5MCBjaGFyYWN0ZXJzCiM2MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6NjA4OgorICAgICAgICAgICAgICAgZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVzZTog aW50ZXJuYWwgZXJyb3I6IHNob3J0IHJlYWQgYmFjayBmcm9tIHBpcGU6ICVpIGZyb20gJXppXG4i LCByZXMsIGxlbik7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2 MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjA4OgorXkleSWZ1c2Vf bG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6IGludGVybmFsIGVycm9yOiBzaG9ydCByZWFkIGJhY2sg ZnJvbSBwaXBlOiAlaSBmcm9tICV6aVxuIiwgcmVzLCBsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo2MDk6CiteSV5JcmV0dXJuIC1FSU87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNjMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjYxMDoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzYzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MTE6CiteSXJl dHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYzODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MTY6CiteSWludCBtYXg7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjM5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjYxNzoKK15JaW50IHJlczskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6NjE4OgorXklpbnQgbWF4ZmQ7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjYxOToKK15JY2hhciBidWZbMzJdOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzY0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo2MjE6CiteSW1heGZkID0gb3BlbigiL3Byb2Mvc3lzL2ZzL3BpcGUtbWF4LXNpemUiLCBP X1JET05MWSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjQ0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjYyMjoKK15JaWYgKG1heGZk IDwgMCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRo aXMgc3RhdGVtZW50CiM2NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 NjIyOgorICAgICAgIGlmIChtYXhmZCA8IDApClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM2NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6NjIzOgorXkleSXJldHVybiAtZXJybm87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNjQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjYyNToKK15JcmVzID0gcmVhZChtYXhmZCwgYnVmLCBzaXplb2YoYnVmKSAtIDEpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY0ODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MjY6CiteSWlmIChyZXMgPCAwKSB7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjQ5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjYyNzoKK15JXklpbnQgc2F2ZWRfZXJybm87JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjUxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjYyOToKK15JXklzYXZlZF9lcnJubyA9IGVycm5vOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1MjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MzA6CiteSV5JY2xvc2UobWF4ZmQpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1MzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2MzE6CiteSV5JcmV0dXJuIC1zYXZlZF9lcnJubzskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NTQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjMyOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjYzMzoKK15JY2xvc2UobWF4ZmQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzY1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo2MzQ6CiteSWJ1ZltyZXNdID0gJ1wwJzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM2NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6NjM2OgorXkltYXggPSBhdG9pKGJ1Zik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjYzNzoKK15JcmVzID0gZmNudGwocGlwZWZkLCBGX1NFVFBJUEVfU1osIG1heCk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjYwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjYzODoKK15JaWYgKHJlcyA8IDApJAoKRVJST1I6IGJyYWNl cyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNjYwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjYzODoKKyAgICAgICBpZiAocmVz IDwgMCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY2 MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2Mzk6CiteSV5JcmV0dXJu IC1lcnJubzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NjI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjQwOgorXklyZXR1cm4gbWF4 OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY2NjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2NDQ6CiteSV5JXkkgICAgICAgc3RydWN0 IGlvdmVjICppb3YsIGludCBpb3ZfY291bnQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjY0NToKK15JXkleSSAgICAgICBzdHJ1Y3QgZnVzZV9idWZ2ZWMgKmJ1ZiwgdW5zaWduZWQgaW50 IGZsYWdzKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY2OTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2NDc6CiteSWludCByZXM7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjcwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjY0ODoKK15Jc2l6ZV90IGxlbiA9IGZ1c2VfYnVm X3NpemUoYnVmKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2 NzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjQ5OgorXklzdHJ1Y3Qg ZnVzZV9vdXRfaGVhZGVyICpvdXQgPSBpb3ZbMF0uaW92X2Jhc2U7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjY1MDoKK15Jc3RydWN0IGZ1c2VfbGxfcGlwZSAqbGxwOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY3MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo2NTE6CiteSWludCBzcGxpY2VfZmxhZ3M7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjc0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjY1MjoKK15Jc2l6ZV90IHBpcGVzaXplOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY3NTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo2NTM6CiteSXNpemVfdCB0b3RhbF9mZF9zaXplOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY3NjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo2NTQ6CiteSXNpemVfdCBpZHg7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjY1NToKK15Jc2l6ZV90IGhlYWRlcmxlbjskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2Nzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6NjU2OgorXklzdHJ1Y3QgZnVzZV9idWZ2ZWMgcGlwZV9idWYgPSBGVVNFX0JV RlZFQ19JTklUKGxlbik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNjgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjY1ODoKK15JaWYg KHNlLT5icm9rZW5fc3BsaWNlX25vbmJsb2NrKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vz c2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzY4MDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2NTg6CisgICAgICAgaWYgKHNlLT5icm9rZW5fc3BsaWNl X25vbmJsb2NrKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNjgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjY1OToKK15JXkln b3RvIGZhbGxiYWNrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzY4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2NjE6CiteSWlmIChm bGFncyAmIEZVU0VfQlVGX05PX1NQTElDRSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nh cnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM2ODM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6NjYxOgorICAgICAgIGlmIChmbGFncyAmIEZVU0VfQlVGX05P X1NQTElDRSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzY4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2NjI6CiteSV5JZ290 byBmYWxsYmFjazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2 ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjY0OgorXkl0b3RhbF9m ZF9zaXplID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2 ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjY1OgorXklmb3IgKGlk eCA9IGJ1Zi0+aWR4OyBpZHggPCBidWYtPmNvdW50OyBpZHgrKykgeyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo2NjY6CiteSV5JaWYgKGJ1Zi0+YnVmW2lkeF0uZmxhZ3MgJiBGVVNFX0JV Rl9JU19GRCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY4 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2Njc6CiteSV5JXkl0b3Rh bF9mZF9zaXplID0gYnVmLT5idWZbaWR4XS5zaXplOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzY5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo2Njg6CiteSV5JXklpZiAoaWR4ID09IGJ1Zi0+aWR4KSQKCkVSUk9SOiBicmFjZXMge30g YXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzY5MDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2Njg6CisgICAgICAgICAgICAgICAgICAg ICAgIGlmIChpZHggPT0gYnVmLT5pZHgpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM2OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6NjY5OgorXkleSV5JXkl0b3RhbF9mZF9zaXplIC09IGJ1Zi0+b2ZmOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo2NzA6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzY5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo2NzE6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2 OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjcyOgorXklpZiAodG90 YWxfZmRfc2l6ZSA8IDIgKiBwYWdlc2l6ZSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nh cnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM2OTQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6NjcyOgorICAgICAgIGlmICh0b3RhbF9mZF9zaXplIDwgMiAq IHBhZ2VzaXplKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNjk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjY3MzoKK15JXkln b3RvIGZhbGxiYWNrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzY5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2NzU6CiteSWlmIChz ZS0+Y29ubi5wcm90b19taW5vciA8IDE0IHx8JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjY3NjoKK15JICAgICEoc2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX1NQTElDRV9XUklURSkpJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjk5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjY3NzoKK15JXklnb3RvIGZhbGxiYWNrOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcwMTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2Nzk6CiteSWxscCA9IGZ1c2VfbGxfZ2V0X3BpcGUo c2UpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcwMjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2ODA6CiteSWlmIChsbHAgPT0gTlVM TCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMg c3RhdGVtZW50CiM3MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Njgw OgorICAgICAgIGlmIChsbHAgPT0gTlVMTCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzcwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo2ODE6CiteSV5JZ290byBmYWxsYmFjazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM3MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6Njg0OgorXkloZWFkZXJsZW4gPSBpb3ZfbGVuZ3RoKGlvdiwgaW92X2NvdW50KTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MDg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Njg2OgorXklvdXQtPmxlbiA9IGhlYWRlcmxlbiArIGxl bjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Njg4OgorXkkvKiQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcxMTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo2ODk6CiteSSAqIEhldXJpc3RpYyBmb3IgdGhlIHJlcXVpcmVkIHBp cGUgc2l6ZSwgZG9lcyBub3Qgd29yayBpZiB0aGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM3MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6NjkwOgorXkkgKiBzb3VyY2UgY29udGFpbnMgbGVzcyB0aGFuIHBhZ2Ugc2l6ZSBmcmFnbWVu dHMkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NjkxOgorXkkgKi8kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6NjkyOgorXklwaXBlc2l6ZSA9IHBhZ2VzaXplICogKGlvdl9jb3Vu dCArIGJ1Zi0+Y291bnQgKyAxKSArIG91dC0+bGVuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzcxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo2OTQ6CiteSWlmIChsbHAtPnNpemUgPCBwaXBlc2l6ZSkgeyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo2OTU6CiteSV5JaWYgKGxscC0+Y2FuX2dyb3cpIHskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6Njk2OgorXkleSV5JcmVzID0gZmNudGwobGxwLT5waXBlWzBdLCBG X1NFVFBJUEVfU1osIHBpcGVzaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3MTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Njk3 OgorXkleSV5JaWYgKHJlcyA9PSAtMSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzcyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo2 OTg6CiteSV5JXkleSXJlcyA9IGdyb3dfcGlwZV90b19tYXgobGxwLT5waXBlWzBdKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MjE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Njk5OgorXkleSV5JXklpZiAocmVzID4gMCkkCgpFUlJP UjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50 CiM3MjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Njk5OgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgPiAwKQpbLi4uXQoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjcwMDoKK15JXkleSV5JXklsbHAtPnNpemUgPSByZXM7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzIzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcwMToKK15JXkleSV5JbGxwLT5jYW5fZ3JvdyA9IDA7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzI0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcwMjoKK15JXkleSV5JZ290byBmYWxsYmFjazsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MjU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzAzOgorXkleSV5JfSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcyNjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo3MDQ6CiteSV5JXklsbHAtPnNpemUgPSByZXM7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzI3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjcwNToKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjcwNjoKK15JXklpZiAobGxwLT5zaXplIDwgcGlwZXNpemUpJAoKRVJST1I6IGJyYWNlcyB7 fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNzI4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcwNjoKKyAgICAgICAgICAgICAgIGlm IChsbHAtPnNpemUgPCBwaXBlc2l6ZSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzcyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo3MDc6CiteSV5JXklnb3RvIGZhbGxiYWNrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzczMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo3MDg6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3 MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzExOgorXklyZXMgPSB2 bXNwbGljZShsbHAtPnBpcGVbMV0sIGlvdiwgaW92X2NvdW50LCBTUExJQ0VfRl9OT05CTE9DSyk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzM0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcxMjoKK15JaWYgKHJlcyA9PSAtMSkkCgpF UlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVt ZW50CiM3MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzEyOgorICAg ICAgIGlmIChyZXMgPT0gLTEpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3MzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzEz OgorXkleSWdvdG8gZmFsbGJhY2s7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNzM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcxNToK K15JaWYgKHJlcyAhPSBoZWFkZXJsZW4pIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM3Mzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 NzE2OgorXkleSXJlcyA9IC1FSU87JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMK IzczOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3MTc6CisgICAgICAg ICAgICAgICBmdXNlX2xvZyhGVVNFX0xPR19FUlIsICJmdXNlOiBzaG9ydCB2bXNwbGljZSB0byBw aXBlOiAldS8lenVcbiIsIHJlcywKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzczOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3MTc6Cite SV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVzZTogc2hvcnQgdm1zcGxpY2UgdG8gcGlwZTog JXUvJXp1XG4iLCByZXMsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNzQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcxODoKK15JXkle SWhlYWRlcmxlbik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NzQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcxOToKK15JXklnb3Rv IGNsZWFyX3BpcGU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NzQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcyMDoKK15JfSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3MjI6CiteSXBpcGVfYnVmLmJ1ZlswXS5mbGFncyA9 IEZVU0VfQlVGX0lTX0ZEOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzc0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3MjM6CiteSXBp cGVfYnVmLmJ1ZlswXS5mZCA9IGxscC0+cGlwZVsxXTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM3NDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6NzI1OgorXklyZXMgPSBmdXNlX2J1Zl9jb3B5KCZwaXBlX2J1ZiwgYnVmLCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3MjY6CiteSV5JXkkgICAgRlVTRV9CVUZfRk9SQ0VfU1BM SUNFIHwgRlVTRV9CVUZfU1BMSUNFX05PTkJMT0NLKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM3NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6NzI3OgorXklpZiAocmVzIDwgMCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzc1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo3Mjg6CiteSV5JaWYgKHJlcyA9PSAtRUFHQUlOIHx8IHJlcyA9PSAtRUlOVkFMKSB7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzUxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjcyOToKK15JXkleSS8qJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjczMDoKK15JXkleSSAqIFNob3VsZCBvbmx5IGdldCBFQUdBSU4gb24ga2Vy bmVscyB3aXRoJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzUz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjczMToKK15JXkleSSAqIGJy b2tlbiBTUExJQ0VfRl9OT05CTE9DSyBzdXBwb3J0ICg8PSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo3MzI6CiteSV5JXkkgKiAyLjYuMzUpIHdoZXJlIHRoaXMgZXJyb3Igb3IgYSBzaG9y dCByZWFkIGlzJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzU1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjczMzoKK15JXkleSSAqIHJl dHVybmVkIGV2ZW4gaWYgdGhlIHBpcGUgaXRzZWxmIGlzIG5vdCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo3MzQ6CiteSV5JXkkgKiBmdWxsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjczNToKK15JXkleSSAqJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNzU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjczNjoKK15J XkleSSAqIEVJTlZBTCBtaWdodCBtZWFuIHRoYXQgc3BsaWNlIGNhbid0IGhhbmRsZSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc1OTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3Mzc6CiteSV5JXkkgKiB0aGlzIGNvbWJpbmF0aW9uIG9m IGlucHV0IGFuZCBvdXRwdXQuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNzYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjczODoKK15J XkleSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc2MTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3Mzk6CiteSV5JXklpZiAocmVz ID09IC1FQUdBSU4pJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJt cyBvZiB0aGlzIHN0YXRlbWVudAojNzYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjczOToKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyA9PSAtRUFHQUlOKQpb Li4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzYyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc0MDoKK15JXkleSV5Jc2UtPmJyb2tl bl9zcGxpY2Vfbm9uYmxvY2sgPSAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzc2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3NDI6 CiteSV5JXklwdGhyZWFkX3NldHNwZWNpZmljKHNlLT5waXBlX2tleSwgTlVMTCk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzY1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc0MzoKK15JXkleSWZ1c2VfbGxfcGlwZV9mcmVlKGxscCk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzY2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc0NDoKK15JXkleSWdvdG8gZmFsbGJhY2s7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzY3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc0NToKK15JXkl9JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjc0NjoKK15JXklyZXMgPSAtcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo3NDc6CiteSV5JZ290byBjbGVhcl9waXBlOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo3NDg6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM3NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzUwOgor XklpZiAocmVzICE9IDAgJiYgcmVzIDwgbGVuKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjc1MToKK15JXklzdHJ1Y3QgZnVzZV9idWZ2ZWMgbWVtX2J1ZiA9IEZVU0VfQlVGVkVDX0lO SVQobGVuKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NzQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzUyOgorXkleSXZvaWQgKm1i dWY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzc1OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc1MzoKK15JXklzaXplX3Qgbm93X2xl biA9IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NzY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzU0OgorXkleSS8qJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzc3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc1NToKK15JXkkgKiBGb3IgcmVndWxhciBmaWxlcyBh IHNob3J0IGNvdW50IGlzIGVpdGhlciQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzc3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3NTY6 CiteSV5JICogIDEpIGR1ZSB0byBFT0YsIG9yJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNzc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j Ojc1NzoKK15JXkkgKiAgMikgYmVjYXVzZSBvZiBicm9rZW4gU1BMSUNFX0ZfTk9OQkxPQ0sgKHNl ZSBhYm92ZSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3ODA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzU4OgorXkleSSAqJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzgxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc1OToKK15JXkkgKiBGb3Igb3RoZXIgaW5wdXRzIGl0 J3MgcG9zc2libGUgdGhhdCB3ZSBvdmVyZmxvd2VkJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjc2MDoKK15JXkkgKiB0aGUgcGlwZSBiZWNhdXNlIG9mIHNtYWxsIGJ1ZmZlciBmcmFnbWVu dHMuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzgzOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc2MToKK15JXkkgKi8kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3ODU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6NzYzOgorXkleSXJlcyA9IHBvc2l4X21lbWFsaWduKCZtYnVm LCBwYWdlc2l6ZSwgbGVuKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM3ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzY0OgorXkle SWlmIChyZXMgIT0gMCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBh cm1zIG9mIHRoaXMgc3RhdGVtZW50CiM3ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6NzY0OgorICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKQpbLi4uXQoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzg3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc2NToKK15JXkleSWdvdG8gY2xlYXJfcGlwZTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3ODk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzY3OgorXkleSW1lbV9idWYuYnVmWzBdLm1lbSA9IG1i dWY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzkwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc2ODoKK15JXkltZW1fYnVmLm9mZiA9 IG5vd19sZW47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzkx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc2OToKK15JXklyZXMgPSBm dXNlX2J1Zl9jb3B5KCZtZW1fYnVmLCBidWYsIDApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzc5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo3NzA6CiteSV5JaWYgKHJlcyA+IDApIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM3OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6NzcxOgorXkleSV5JY2hhciAqdG1wYnVmOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzc5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo3NzI6CiteSV5JXklzaXplX3QgZXh0cmFfbGVuID0gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo3NzM6CiteSV5JXkkvKiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzc5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3 NzQ6CiteSV5JXkkgKiBUcmlja2llc3QgY2FzZTogZ290IG1vcmUgZGF0YS4gIE5lZWQgdG8gZ2V0 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzk3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc3NToKK15JXkleSSAqIGJhY2sgdGhlIGRh dGEgZnJvbSB0aGUgcGlwZSBhbmQgdGhlbiBmYWxsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjc3NjoKK15JXkleSSAqIGJhY2sgdG8gcmVndWxhciB3cml0ZS4kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6Nzc3OgorXkleSV5JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojODAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjc3ODoKK15JXkleSXRtcGJ1ZiA9IG1hbGxvYyhoZWFkZXJsZW4pOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgwMTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo3Nzk6CiteSV5JXklpZiAodG1wYnVmID09IE5VTEwpIHskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MDI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzgwOgorXkleSV5JXklmcmVlKG1idWYpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgwMzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3ODE6CiteSV5JXkleSXJlcyA9IEVOT01FTTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MDQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NzgyOgorXkleSV5JXklnb3RvIGNsZWFyX3BpcGU7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODA1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc4MzoKK15JXkleSX0kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6Nzg0OgorXkleSV5JcmVzID0gcmVhZF9iYWNrKGxscC0+cGlwZVswXSwg dG1wYnVmLCBoZWFkZXJsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzgwNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3ODU6Cite SV5JXklmcmVlKHRtcGJ1Zik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojODA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc4NjoKK15J XkleSWlmIChyZXMgIT0gMCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzgwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3ODc6Cite SV5JXkleSWZyZWUobWJ1Zik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojODEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc4ODoKK15J XkleSV5JZ290byBjbGVhcl9waXBlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzgxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3ODk6 CiteSV5JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODEy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc5MDoKK15JXkleSXJlcyA9 IHJlYWRfYmFjayhsbHAtPnBpcGVbMF0sIG1idWYsIG5vd19sZW4pOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo3OTE6CiteSV5JXklpZiAocmVzICE9IDApIHskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6NzkyOgorXkleSV5JXklmcmVlKG1idWYpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo3OTM6CiteSV5JXkleSWdvdG8gY2xlYXJfcGlwZTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6Nzk0OgorXkleSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzgxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo3OTU6CiteSV5JXklsZW4gPSBub3dfbGVuICsgZXh0cmFfbGVuOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgxODogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo3OTY6CiteSV5JXklpb3ZbaW92X2NvdW50XS5pb3ZfYmFzZSA9IG1i dWY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODE5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc5NzoKK15JXkleSWlvdltpb3ZfY291 bnRdLmlvdl9sZW4gPSBsZW47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojODIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjc5ODoKK15J XkleSWlvdl9jb3VudCsrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzgyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo3OTk6CiteSV5J XklyZXMgPSBmdXNlX3NlbmRfbXNnKHNlLCBjaCwgaW92LCBpb3ZfY291bnQpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgyMjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo4MDA6CiteSV5JXklmcmVlKG1idWYpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgyMzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo4MDE6CiteSV5JXklyZXR1cm4gcmVzOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo4MDI6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzgyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4 MDM6CiteSV5JZnJlZShtYnVmKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM4MjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODA0Ogor XkleSXJlcyA9IG5vd19sZW47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojODI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgwNToKK15J fSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgyODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4MDY6CiteSWxlbiA9IHJlczskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4Mjk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODA3OgorXklvdXQtPmxlbiA9IGhlYWRlcmxlbiArIGxl bjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MzE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODA5OgorXklpZiAoc2UtPmRlYnVnKSB7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODMyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgxMDoKK15JXklmdXNlX2xvZyhGVVNFX0xP R19ERUJVRywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MzM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODExOgorXkleSV5JIiAgIHVu aXF1ZTogJWxsdSwgc3VjY2Vzcywgb3V0c2l6ZTogJWkgKHNwbGljZSlcbiIsJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODM0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjgxMjoKK15JXkleSSh1bnNpZ25lZCBsb25nIGxvbmcpIG91dC0+ dW5pcXVlLCBvdXQtPmxlbik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojODM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgxMzoKK15J fSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgzNzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4MTU6CiteSXNwbGljZV9mbGFncyA9IDA7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODM4OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgxNjoKK15JaWYgKChmbGFncyAmIEZVU0Vf QlVGX1NQTElDRV9NT1ZFKSAmJiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzgzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4MTc6Cite SSAgICAoc2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX1NQTElDRV9NT1ZFKSkkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6ODE4OgorXkleSXNwbGljZV9mbGFncyB8PSBTUExJQ0VfRl9NT1ZF OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg0MjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4MjA6CiteSXJlcyA9IHNwbGljZShsbHAt PnBpcGVbMF0sIE5VTEwsIGNoID8gY2gtPmZkIDogc2UtPmZkLCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo4MjE6CiteSV5JICAgICBOVUxMLCBvdXQtPmxlbiwgc3BsaWNlX2ZsYWdzKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NDQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODIyOgorXklpZiAocmVzID09IC0xKSB7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODQ1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgyMzoKK15JXklyZXMgPSAtZXJybm87JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODQ2OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgyNDoKK15JXklwZXJyb3IoImZ1c2U6IHNwbGljZSBm cm9tIHBpcGUiKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4 NDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODI1OgorXkleSWdvdG8g Y2xlYXJfcGlwZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4 NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODI2OgorXkl9JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODQ5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgyNzoKK15JaWYgKHJlcyAhPSBvdXQtPmxlbikgeyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg1MDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4Mjg6CiteSV5JcmVzID0gLUVJTzskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NTE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODI5OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwg ImZ1c2U6IHNob3J0IHNwbGljZSBmcm9tIHBpcGU6ICV1LyV1XG4iLCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzo4MzA6CiteSV5JXklyZXMsIG91dC0+bGVuKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6ODMxOgorXkleSWdvdG8gY2xlYXJfcGlwZTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6ODMyOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojODU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgz MzoKK15JcmV0dXJuIDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojODU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjgzNjoKK15JZnVz ZV9sbF9jbGVhcl9waXBlKHNlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM4NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODM3Ogor XklyZXR1cm4gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izg2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4NDA6CiteSXJldHVy biBmdXNlX3NlbmRfZGF0YV9pb3ZfZmFsbGJhY2soc2UsIGNoLCBpb3YsIGlvdl9jb3VudCwgYnVm LCBsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg2Njog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4NDQ6CiteSV5JXkkgICAgICAg c3RydWN0IGlvdmVjICppb3YsIGludCBpb3ZfY291bnQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojODY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjg0NToKK15JXkleSSAgICAgICBzdHJ1Y3QgZnVzZV9idWZ2ZWMgKmJ1ZiwgdW5zaWdu ZWQgaW50IGZsYWdzKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izg2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4NDc6CiteSXNpemVf dCBsZW4gPSBmdXNlX2J1Zl9zaXplKGJ1Zik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojODcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j Ojg0ODoKK15JKHZvaWQpIGZsYWdzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzg3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4NTA6 CiteSXJldHVybiBmdXNlX3NlbmRfZGF0YV9pb3ZfZmFsbGJhY2soc2UsIGNoLCBpb3YsIGlvdl9j b3VudCwgYnVmLCBsZW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzg3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4NTU6CiteSV5J ICAgIGVudW0gZnVzZV9idWZfY29weV9mbGFncyBmbGFncykkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6ODU3OgorXklzdHJ1Y3QgaW92ZWMgaW92WzJdOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo4NTg6CiteSXN0cnVjdCBmdXNlX291dF9oZWFkZXIgb3V0OyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg4MTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo4NTk6CiteSWludCByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojODgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjg2MToKK15JaW92WzBdLmlvdl9iYXNlID0gJm91dDskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6ODYyOgorXklpb3ZbMF0uaW92X2xlbiA9IHNpemVvZihzdHJ1Y3QgZnVz ZV9vdXRfaGVhZGVyKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM4ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODY0OgorXklvdXQu dW5pcXVlID0gcmVxLT51bmlxdWU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojODg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg2NToK K15Jb3V0LmVycm9yID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM4ODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODY3OgorXkly ZXMgPSBmdXNlX3NlbmRfZGF0YV9pb3YocmVxLT5zZSwgcmVxLT5jaCwgaW92LCAxLCBidWZ2LCBm bGFncyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODkwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg2ODoKK15JaWYgKHJlcyA8PSAw KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODkxOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg2OToKK15JXklmdXNlX2ZyZWVfcmVx KHJlcSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODkyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg3MDoKK15JXklyZXR1cm4gcmVz OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg5MzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4NzE6CiteSX0gZWxzZSB7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODk0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg3MjoKK15JXklyZXR1cm4gZnVzZV9yZXBseV9lcnIocmVx LCByZXMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg5NTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo4NzM6CiteSX0kCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MDA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6ODc4OgorXklzdHJ1Y3QgZnVzZV9zdGF0ZnNfb3V0IGFyZzsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MDE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODc5OgorXklzaXplX3Qgc2l6ZSA9IHJlcS0+ c2UtPmNvbm4ucHJvdG9fbWlub3IgPCA0ID8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM5MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 ODgwOgorXkleSUZVU0VfQ09NUEFUX1NUQVRGU19TSVpFIDogc2l6ZW9mKGFyZyk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTA0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg4MjoKK15JbWVtc2V0KCZhcmcsIDAsIHNpemVvZihhcmcp KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MDU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODgzOgorXkljb252ZXJ0X3N0YXRmcyhz dGJ1ZiwgJmFyZy5zdCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojOTA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg4NToKK15JcmV0 dXJuIHNlbmRfcmVwbHlfb2socmVxLCAmYXJnLCBzaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6ODkwOgorXklzdHJ1Y3QgZnVzZV9nZXR4YXR0cl9vdXQgYXJnOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkxNDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo4OTI6CiteSW1lbXNldCgmYXJnLCAwLCBzaXplb2YoYXJnKSk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTE1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjg5MzoKK15JYXJnLnNpemUgPSBjb3VudDsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MTc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6ODk1OgorXklyZXR1cm4gc2VuZF9yZXBseV9v ayhyZXEsICZhcmcsIHNpemVvZihhcmcpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM5MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 OTAwOgorXklzdHJ1Y3QgZnVzZV9sa19vdXQgYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzkyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzo5MDI6CiteSW1lbXNldCgmYXJnLCAwLCBzaXplb2YoYXJnKSk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjkwMzoKK15JYXJnLmxrLnR5cGUgPSBsb2NrLT5sX3R5cGU7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTI2OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjkwNDoKK15JaWYgKGxvY2stPmxfdHlwZSAhPSBGX1VO TENLKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTI3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjkwNToKK15JXklhcmcubGsuc3Rh cnQgPSBsb2NrLT5sX3N0YXJ0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzkyODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5MDY6Cite SV5JaWYgKGxvY2stPmxfbGVuID09IDApJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5 IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojOTI4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjkwNjoKKyAgICAgICAgICAgICAgIGlmIChsb2NrLT5sX2xlbiA9 PSAwKQpbLi4uXQorICAgICAgICAgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjkwNzoKK15JXkleSWFyZy5say5lbmQgPSBPRkZTRVRfTUFYOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkzMDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo5MDg6CiteSV5JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo5MDk6CiteSV5JXklhcmcubGsuZW5kID0gbG9jay0+bF9zdGFydCArIGxvY2stPmxf bGVuIC0gMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MzI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTEwOgorXkl9JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTMzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjkxMToKK15JYXJnLmxrLnBpZCA9IGxvY2stPmxfcGlkOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkzNDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5MTI6CiteSXJldHVybiBzZW5kX3JlcGx5X29r KHJlcSwgJmFyZywgc2l6ZW9mKGFyZykpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzkzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5 MTc6CiteSXN0cnVjdCBmdXNlX2JtYXBfb3V0IGFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM5NDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6OTE5OgorXkltZW1zZXQoJmFyZywgMCwgc2l6ZW9mKGFyZykpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk0MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo5MjA6CiteSWFyZy5ibG9jayA9IGlkeDskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6OTIyOgorXklyZXR1cm4gc2VuZF9yZXBseV9vayhyZXEsICZhcmcsIHNp emVvZihhcmcpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5 NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTI2OgorXkleSV5JXkle SV5JICAgICAgc2l6ZV90IGNvdW50KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzk1MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5Mjg6 CiteSXN0cnVjdCBmdXNlX2lvY3RsX2lvdmVjICpmaW92OyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo5Mjk6CiteSXNpemVfdCBpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzk1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5 MzE6CiteSWZpb3YgPSBtYWxsb2Moc2l6ZW9mKGZpb3ZbMF0pICogY291bnQpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk1NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzo5MzI6CiteSWlmICghZmlvdikkCgpFUlJPUjogYnJhY2VzIHt9 IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM5NTQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTMyOgorICAgICAgIGlmICghZmlvdikK Wy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk1NTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5MzM6CiteSV5JcmV0dXJuIE5VTEw7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTU3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjkzNToKK15JZm9yIChpID0gMDsgaSA8IGNv dW50OyBpKyspIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5 NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTM2OgorXkleSWZpb3Zb aV0uYmFzZSA9ICh1aW50cHRyX3QpIGlvdltpXS5pb3ZfYmFzZTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6OTM3OgorXkleSWZpb3ZbaV0ubGVuID0gaW92W2ldLmlvdl9sZW47JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTYwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjkzODoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzo5NDA6CiteSXJldHVybiBmaW92OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzk2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo5NDQ6CiteSV5JXkkgICBjb25zdCBzdHJ1Y3QgaW92ZWMgKmluX2lvdiwgc2l6ZV90IGluX2Nv dW50LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk2NzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5NDU6CiteSV5JXkkgICBjb25zdCBz dHJ1Y3QgaW92ZWMgKm91dF9pb3YsIHNpemVfdCBvdXRfY291bnQpJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjk0NzoKK15Jc3RydWN0IGZ1c2VfaW9jdGxfb3V0IGFyZzskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NzA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6OTQ4OgorXklzdHJ1Y3QgZnVzZV9pb2N0bF9pb3ZlYyAqaW5f ZmlvdiA9IE5VTEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj OTcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk0OToKK15Jc3RydWN0 IGZ1c2VfaW9jdGxfaW92ZWMgKm91dF9maW92ID0gTlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6OTUwOgorXklzdHJ1Y3QgaW92ZWMgaW92WzRdOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo5NTE6CiteSXNpemVfdCBjb3VudCA9IDE7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjk1MjoKK15JaW50IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM5NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 OTU0OgorXkltZW1zZXQoJmFyZywgMCwgc2l6ZW9mKGFyZykpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo5NTU6CiteSWFyZy5mbGFncyB8PSBGVVNFX0lPQ1RMX1JFVFJZOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk3ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5NTY6CiteSWFyZy5pbl9pb3ZzID0gaW5fY291bnQ7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTc5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk1NzoKK15JYXJnLm91dF9pb3ZzID0gb3V0X2Nv dW50OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk4MDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5NTg6CiteSWlvdltjb3VudF0uaW92 X2Jhc2UgPSAmYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izk4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5NTk6CiteSWlvdltj b3VudF0uaW92X2xlbiA9IHNpemVvZihhcmcpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzk4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu Yzo5NjA6CiteSWNvdW50Kys7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojOTg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk2MjoKK15J aWYgKHJlcS0+c2UtPmNvbm4ucHJvdG9fbWlub3IgPCAxNikgeyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzo5NjM6CiteSV5JaWYgKGluX2NvdW50KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjk2NDoKK15JXkleSWlvdltjb3VudF0uaW92X2Jhc2UgPSAodm9pZCAqKWluX2lv djskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5ODc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTY1OgorXkleSV5JaW92W2NvdW50XS5p b3ZfbGVuID0gc2l6ZW9mKGluX2lvdlswXSkgKiBpbl9jb3VudDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6OTY2OgorXkleSV5JY291bnQrKzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM5ODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6OTY3OgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM5OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTY5OgorXkle SWlmIChvdXRfY291bnQpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM5OTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTcwOgorXkle SV5JaW92W2NvdW50XS5pb3ZfYmFzZSA9ICh2b2lkICopb3V0X2lvdjskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5OTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6OTcxOgorXkleSV5JaW92W2NvdW50XS5pb3ZfbGVuID0gc2l6ZW9mKG91 dF9pb3ZbMF0pICogb3V0X2NvdW50OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzk5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5NzI6 CiteSV5JXkljb3VudCsrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzk5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5NzM6CiteSV5J fSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk5NjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5NzQ6CiteSX0gZWxzZSB7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTk3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk3NToKK15JXkkvKiBDYW4ndCBoYW5kbGUgbm9uLWNvbXBh dCA2NGJpdCBpb2N0bHMgb24gMzJiaXQgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM5OTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 OTc2OgorXkleSWlmIChzaXplb2Yodm9pZCAqKSA9PSA0ICYmIHJlcS0+aW9jdGxfNjRiaXQpIHsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5OTk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTc3OgorXkleSV5JcmVzID0gZnVzZV9yZXBs eV9lcnIocmVxLCBFSU5WQUwpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEwMDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTc4Ogor XkleSV5JZ290byBvdXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTAwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5Nzk6CiteSV5J fSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMDM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTgxOgorXkleSWlmIChpbl9jb3VudCkg eyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMDQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTgyOgorXkleSV5JaW5fZmlvdiA9IGZ1 c2VfaW9jdGxfaW92ZWNfY29weShpbl9pb3YsIGluX2NvdW50KTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjk4MzoKK15JXkleSWlmICghaW5fZmlvdikkCgpFUlJPUjogYnJhY2VzIHt9 IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMDA1OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk4MzoKKyAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCFpbl9maW92KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTAwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5 ODQ6CiteSV5JXkleSWdvdG8gZW5vbWVtOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEwMDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 OTg2OgorXkleSV5JaW92W2NvdW50XS5pb3ZfYmFzZSA9ICh2b2lkICopaW5fZmlvdjskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDA5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk4NzoKK15JXkleSWlvdltjb3VudF0uaW92X2xlbiA9 IHNpemVvZihpbl9maW92WzBdKSAqIGluX2NvdW50OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6OTg4OgorXkleSV5JY291bnQrKzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMDExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j Ojk4OToKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTAxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5OTA6CiteSV5JaWYg KG91dF9jb3VudCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEwMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6OTkxOgorXkleSV5J b3V0X2Zpb3YgPSBmdXNlX2lvY3RsX2lvdmVjX2NvcHkob3V0X2lvdiwgb3V0X2NvdW50KTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDE0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk5MjoKK15JXkleSWlmICghb3V0X2Zpb3YpJAoK RVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRl bWVudAojMTAxNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5OTI6Cisg ICAgICAgICAgICAgICAgICAgICAgIGlmICghb3V0X2Zpb3YpClsuLi5dCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjk5MzoKK15JXkleSV5JZ290byBlbm9tZW07JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAxNzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzo5OTU6CiteSV5JXklpb3ZbY291bnRdLmlvdl9iYXNlID0gKHZvaWQg KilvdXRfZmlvdjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MDE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjk5NjoKK15JXkleSWlv dltjb3VudF0uaW92X2xlbiA9IHNpemVvZihvdXRfZmlvdlswXSkgKiBvdXRfY291bnQ7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAxOTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzo5OTc6CiteSV5JXkljb3VudCsrOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6OTk4OgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMDIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjk5OToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEwMjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTAwMToKK15J cmVzID0gc2VuZF9yZXBseV9pb3YocmVxLCAwLCBpb3YsIGNvdW50KTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjEwMDM6CiteSWZyZWUoaW5fZmlvdik7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxMDA0OgorXklmcmVlKG91dF9maW92KTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjEwMDY6CiteSXJldHVybiByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTAzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxMDA5OgorXklyZXMgPSBmdXNlX3JlcGx5X2VycihyZXEsIEVOT01FTSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAzMjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDEwOgorXklnb3RvIG91dDskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDM3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjEwMTU6CiteSXN0cnVjdCBmdXNlX2lvY3RsX291dCBhcmc7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAzODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDE2OgorXklzdHJ1Y3QgaW92ZWMgaW92WzNd OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMzk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTAxNzoKK15Jc2l6ZV90IGNvdW50ID0g MTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDQxOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwMTk6CiteSW1lbXNldCgmYXJnLCAw LCBzaXplb2YoYXJnKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTA0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDIwOgorXklh cmcucmVzdWx0ID0gcmVzdWx0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEwNDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTAyMToK K15JaW92W2NvdW50XS5pb3ZfYmFzZSA9ICZhcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTA0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxMDIyOgorXklpb3ZbY291bnRdLmlvdl9sZW4gPSBzaXplb2YoYXJnKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDQ1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwMjM6CiteSWNvdW50Kys7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxMDI1OgorXklpZiAoc2l6ZSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTAyNjoKK15JXklpb3ZbY291bnRdLmlvdl9iYXNlID0gKGNoYXIgKikgYnVmOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNDk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTAyNzoKK15JXklpb3ZbY291bnRdLmlvdl9s ZW4gPSBzaXplOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEw NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTAyODoKK15JXkljb3Vu dCsrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNTE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTAyOToKK15JfSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNTM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTAzMToKK15JcmV0dXJuIHNlbmRfcmVwbHlfaW92KHJlcSwg MCwgaW92LCBjb3VudCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTA1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDM1OgorXkle SV5JIGludCBjb3VudCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMDU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwMzc6CiteSXN0 cnVjdCBpb3ZlYyAqcGFkZGVkX2lvdjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMDYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEw Mzg6CiteSXN0cnVjdCBmdXNlX2lvY3RsX291dCBhcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTA2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxMDM5OgorXklpbnQgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEwNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTA0MToKK15JcGFkZGVkX2lvdiA9IG1hbGxvYygoY291bnQgKyAyKSAqIHNpemVvZihzdHJ1Y3Qg aW92ZWMpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDY0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwNDI6CiteSWlmIChwYWRk ZWRfaW92ID09IE5VTEwpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwg YXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTA2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxMDQyOgorICAgICAgIGlmIChwYWRkZWRfaW92ID09IE5VTEwpClsuLi5dCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDY1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwNDM6CiteSV5JcmV0dXJuIGZ1c2VfcmVwbHlf ZXJyKHJlcSwgRU5PTUVNKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMDY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwNDU6Cite SW1lbXNldCgmYXJnLCAwLCBzaXplb2YoYXJnKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTA2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxMDQ2OgorXklhcmcucmVzdWx0ID0gcmVzdWx0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTA0NzoKK15JcGFkZGVkX2lvdlsxXS5pb3ZfYmFzZSA9ICZhcmc7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA3MDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDQ4OgorXklwYWRkZWRfaW92WzFdLmlvdl9sZW4gPSBz aXplb2YoYXJnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MDcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwNTA6CiteSW1lbWNw eSgmcGFkZGVkX2lvdlsyXSwgaW92LCBjb3VudCAqIHNpemVvZihzdHJ1Y3QgaW92ZWMpKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDc0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwNTI6CiteSXJlcyA9IHNlbmRfcmVwbHlfaW92 KHJlcSwgMCwgcGFkZGVkX2lvdiwgY291bnQgKyAyKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMDc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjEwNTM6CiteSWZyZWUocGFkZGVkX2lvdik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTA3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxMDU1OgorXklyZXR1cm4gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEwODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTA2MDoKK15Jc3RydWN0IGZ1c2VfcG9sbF9vdXQgYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTA2MjoKK15JbWVtc2V0KCZhcmcsIDAsIHNpemVvZihhcmcpKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDg1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwNjM6CiteSWFyZy5yZXZlbnRzID0gcmV2ZW50czsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDg3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEwNjU6CiteSXJldHVybiBzZW5kX3JlcGx5 X29rKHJlcSwgJmFyZywgc2l6ZW9mKGFyZykpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEwOTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTA3MDoKK15Jc3RydWN0IGZ1c2VfbHNlZWtfb3V0IGFyZzskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjEwNzI6CiteSW1lbXNldCgmYXJnLCAwLCBzaXplb2YoYXJnKSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA5NTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDczOgorXklhcmcub2Zmc2V0ID0gb2ZmOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwOTc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTA3NToKK15JcmV0dXJuIHNlbmRfcmVwbHlfb2so cmVxLCAmYXJnLCBzaXplb2YoYXJnKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTEwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox MDgwOgorXkljaGFyICpuYW1lID0gKGNoYXIgKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxMDgyOgorXklpZiAocmVxLT5zZS0+b3AubG9va3VwKSQKCkVSUk9SOiBicmFj ZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzExMDQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTA4MjoKKyAgICAgICBpZiAo cmVxLT5zZS0+b3AubG9va3VwKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTA4MzoKK15JXklyZXEtPnNlLT5vcC5sb29rdXAocmVxLCBub2Rl aWQsIG5hbWUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEx MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTA4NDoKK15JZWxzZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMDc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTA4NToKK15JXklmdXNlX3JlcGx5X2Vycihy ZXEsIEVOT1NZUyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTExMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDkwOgorXklzdHJ1 Y3QgZnVzZV9mb3JnZXRfaW4gKmFyZyA9IChzdHJ1Y3QgZnVzZV9mb3JnZXRfaW4gKikgaW5hcmc7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTExNDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDkyOgorXklpZiAocmVxLT5zZS0+b3Au Zm9yZ2V0KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2Yg dGhpcyBzdGF0ZW1lbnQKIzExMTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTA5MjoKKyAgICAgICBpZiAocmVxLT5zZS0+b3AuZm9yZ2V0KQpbLi4uXQorICAgICAgIGVs c2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMTU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTA5MzoKK15JXklyZXEtPnNl LT5vcC5mb3JnZXQocmVxLCBub2RlaWQsIGFyZy0+bmxvb2t1cCk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTExNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxMDk0OgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTExNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxMDk1OgorXkleSWZ1c2VfcmVwbHlfbm9uZShyZXEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTA5OToKK15JXkleSSAgICBjb25zdCB2b2lkICppbmFyZykkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTIzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjExMDE6CiteSXN0cnVjdCBmdXNlX2JhdGNoX2ZvcmdldF9pbiAq YXJnID0gKHZvaWQgKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTEyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTAy OgorXklzdHJ1Y3QgZnVzZV9mb3JnZXRfb25lICpwYXJhbSA9ICh2b2lkICopIFBBUkFNKGFyZyk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEyNTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTAzOgorXkl1bnNpZ25lZCBpbnQgaTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTI3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExMDU6CiteSSh2b2lkKSBub2RlaWQ7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEyOTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTA3OgorXklpZiAocmVxLT5zZS0+b3AuZm9y Z2V0X211bHRpKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTEzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTA4OgorXkleSXJl cS0+c2UtPm9wLmZvcmdldF9tdWx0aShyZXEsIGFyZy0+Y291bnQsJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxMTA5OgorXkleSV5JXkkgICAgIChzdHJ1Y3QgZnVzZV9mb3JnZXRfZGF0 YSAqKSBwYXJhbSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTEzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTEwOgorXkl9IGVs c2UgaWYgKHJlcS0+c2UtPm9wLmZvcmdldCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzExMzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTExMToKK15JXklmb3IgKGkgPSAwOyBpIDwgYXJnLT5jb3VudDsgaSsrKSB7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEzNDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTEyOgorXkleSV5Jc3RydWN0IGZ1c2VfZm9yZ2V0X29u ZSAqZm9yZ2V0ID0gJnBhcmFtW2ldOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzExMzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTEx MzoKK15JXkleSXN0cnVjdCBmdXNlX3JlcSAqZHVtbXlfcmVxOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTExNToKK15JXkleSWR1bW15X3JlcSA9IGZ1c2VfbGxfYWxsb2NfcmVxKHJl cS0+c2UpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMzg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTExNjoKK15JXkleSWlmIChk dW1teV9yZXEgPT0gTlVMTCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMTM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjExMTY6CisgICAgICAgICAgICAgICAgICAgICAgIGlmIChkdW1teV9yZXEg PT0gTlVMTCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzExMzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTExNzoKK15JXkle SV5JYnJlYWs7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0 MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTE5OgorXkleSV5JZHVt bXlfcmVxLT51bmlxdWUgPSByZXEtPnVuaXF1ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMTQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjExMjA6CiteSV5JXklkdW1teV9yZXEtPmN0eCA9IHJlcS0+Y3R4OyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTEyMToKK15JXkleSWR1bW15X3JlcS0+Y2ggPSBOVUxMOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNDU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTEyMzoKK15JXkleSXJlcS0+c2UtPm9wLmZvcmdl dChkdW1teV9yZXEsIGZvcmdldC0+bm9kZWlkLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzExNDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTEyNDoKK15JXkleSV5JXkkgIGZvcmdldC0+bmxvb2t1cCk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxMTI1OgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMTQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjExMjY6CiteSV5JZnVzZV9yZXBseV9ub25lKHJlcSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTE0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxMTI3OgorXkl9IGVsc2UgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzExNTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTEyODoKK15JXklmdXNlX3JlcGx5X25vbmUocmVxKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMTUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjExMjk6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMTU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExMzQ6Cite SXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmlwID0gTlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjExMzU6CiteSXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyBmaTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTU5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjExMzc6CiteSWlmIChyZXEtPnNlLT5jb25uLnByb3RvX21pbm9y ID49IDkpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTYw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExMzg6CiteSV5Jc3RydWN0 IGZ1c2VfZ2V0YXR0cl9pbiAqYXJnID0gKHN0cnVjdCBmdXNlX2dldGF0dHJfaW4gKikgaW5hcmc7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE2MjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTQwOgorXkleSWlmIChhcmctPmdldGF0 dHJfZmxhZ3MgJiBGVVNFX0dFVEFUVFJfRkgpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMTYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjExNDE6CiteSV5JXkltZW1zZXQoJmZpLCAwLCBzaXplb2YoZmkpKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTY0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjExNDI6CiteSV5JXklmaS5maCA9IGFyZy0+Zmg7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE2NTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTQzOgorXkleSV5JZmlwID0gJmZpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNjY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE0NDoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTE2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxMTQ1OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTE2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTQ3Ogor XklpZiAocmVxLT5zZS0+b3AuZ2V0YXR0cikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nh cnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMTY5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExNDc6CisgICAgICAgaWYgKHJlcS0+c2UtPm9wLmdldGF0 dHIpClsuLi5dCisgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTE3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxMTQ4OgorXkleSXJlcS0+c2UtPm9wLmdldGF0dHIocmVxLCBub2RlaWQsIGZpcCk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE3MTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTQ5OgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxMTUwOgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5PU1lTKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTc3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExNTU6CiteSXN0cnVjdCBmdXNlX3NldGF0dHJf aW4gKmFyZyA9IChzdHJ1Y3QgZnVzZV9zZXRhdHRyX2luICopIGluYXJnOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTE1NzoKK15JaWYgKHJlcS0+c2UtPm9wLnNldGF0dHIpIHskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTgwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExNTg6CiteSV5Jc3RydWN0IGZ1c2VfZmlsZV9p bmZvICpmaSA9IE5VTEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTE4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTU5OgorXkle SXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyBmaV9zdG9yZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMTgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjExNjA6CiteSV5Jc3RydWN0IHN0YXQgc3RidWY7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxMTYxOgorXkleSW1lbXNldCgmc3RidWYsIDAsIHNpemVvZihzdGJ1ZikpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE2MjoKK15JXkljb252ZXJ0X2F0dHIoYXJn LCAmc3RidWYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEx ODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE2MzoKK15JXklpZiAo YXJnLT52YWxpZCAmIEZBVFRSX0ZIKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTE4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox MTY0OgorXkleSV5JYXJnLT52YWxpZCAmPSB+RkFUVFJfRkg7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxMTY1OgorXkleSV5JbWVtc2V0KCZmaV9zdG9yZSwgMCwgc2l6ZW9mKGZpX3N0 b3JlKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE4ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTY2OgorXkleSV5JZmkgPSAm Zmlfc3RvcmU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE4 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTY3OgorXkleSV5JZmkt PmZoID0gYXJnLT5maDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExNjg6CiteSV5J fSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExOTE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE2OToKK15JXklhcmctPnZhbGlkICY9 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE5MjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTcwOgorXkleSV5JRlVTRV9TRVRfQVRU Ul9NT0RFXkl8JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE5 MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTcxOgorXkleSV5JRlVT RV9TRVRfQVRUUl9VSUReSXwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMTk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExNzI6Cite SV5JXklGVVNFX1NFVF9BVFRSX0dJRF5JfCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzExOTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTE3MzoKK15JXkleSUZVU0VfU0VUX0FUVFJfU0laRV5JfCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExOTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTE3NDoKK15JXkleSUZVU0VfU0VUX0FUVFJfQVRJTUVeSXwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTk3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjExNzU6CiteSV5JXklGVVNFX1NFVF9BVFRSX01USU1FXkl8JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE5ODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTc2OgorXkleSV5JRlVTRV9TRVRfQVRUUl9B VElNRV9OT1deSXwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MTk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExNzc6CiteSV5JXklG VVNFX1NFVF9BVFRSX01USU1FX05PVyB8JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTIwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox MTc4OgorXkleSV5JRlVTRV9TRVRfQVRUUl9DVElNRTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMjAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjExODA6CiteSV5JcmVxLT5zZS0+b3Auc2V0YXR0cihyZXEsIG5vZGVpZCwgJnN0YnVm LCBhcmctPnZhbGlkLCBmaSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTIwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTgxOgor Xkl9IGVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjA0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExODI6CiteSV5JZnVzZV9y ZXBseV9lcnIocmVxLCBFTk9TWVMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEyMDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE4 NzoKK15Jc3RydWN0IGZ1c2VfYWNjZXNzX2luICphcmcgPSAoc3RydWN0IGZ1c2VfYWNjZXNzX2lu ICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEy MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE4OToKK15JaWYgKHJl cS0+c2UtPm9wLmFjY2VzcykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMjExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjExODk6CisgICAgICAgaWYgKHJlcS0+c2UtPm9wLmFjY2VzcykKWy4uLl0K KyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMjEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjExOTA6Cite SV5JcmVxLT5zZS0+b3AuYWNjZXNzKHJlcSwgbm9kZWlkLCBhcmctPm1hc2spOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMTM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTE5MToKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTE5MjoKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIxOTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTk3OgorXkkodm9pZCkgaW5hcmc7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIyMTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTk5OgorXklpZiAocmVxLT5zZS0+b3AucmVhZGxpbmspJAoK RVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRl bWVudAojMTIyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMTk5Ogor ICAgICAgIGlmIChyZXEtPnNlLT5vcC5yZWFkbGluaykKWy4uLl0KKyAgICAgICBlbHNlClsuLi5d CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjIyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyMDA6CiteSV5JcmVxLT5zZS0+b3AucmVh ZGxpbmsocmVxLCBub2RlaWQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEyMjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTIwMToK K15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTIwMjoKK15JXklmdXNlX3Jl cGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTIyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjA3 OgorXklzdHJ1Y3QgZnVzZV9ta25vZF9pbiAqYXJnID0gKHN0cnVjdCBmdXNlX21rbm9kX2luICop IGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMzA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTIwODoKK15JY2hhciAqbmFt ZSA9IFBBUkFNKGFyZyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTIzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjEwOgorXklp ZiAocmVxLT5zZS0+Y29ubi5wcm90b19taW5vciA+PSAxMikkCgpFUlJPUjogYnJhY2VzIHt9IGFy ZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMjMyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyMTA6CisgICAgICAgaWYgKHJlcS0+c2Ut PmNvbm4ucHJvdG9fbWlub3IgPj0gMTIpClsuLi5dCisgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIzMzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjExOgorXkleSXJlcS0+Y3R4LnVtYXNrID0gYXJnLT51 bWFzazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjM0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyMTI6CiteSWVsc2UkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjM1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyMTM6CiteSV5JbmFtZSA9IChjaGFyICopIGluYXJn ICsgRlVTRV9DT01QQVRfTUtOT0RfSU5fU0laRTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMjM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjEyMTU6CiteSWlmIChyZXEtPnNlLT5vcC5ta25vZCkkCgpFUlJPUjogYnJhY2VzIHt9IGFy ZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMjM3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyMTU6CisgICAgICAgaWYgKHJlcS0+c2Ut Pm9wLm1rbm9kKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTIxNjoKK15JXklyZXEtPnNlLT5vcC5ta25vZChyZXEsIG5vZGVpZCwgbmFtZSwg YXJnLT5tb2RlLCBhcmctPnJkZXYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEyMzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTIx NzoKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEy NDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTIxODoKK15JXklmdXNl X3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTI0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox MjIzOgorXklzdHJ1Y3QgZnVzZV9ta2Rpcl9pbiAqYXJnID0gKHN0cnVjdCBmdXNlX21rZGlyX2lu ICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEy NDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTIyNToKK15JaWYgKHJl cS0+c2UtPmNvbm4ucHJvdG9fbWlub3IgPj0gMTIpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVj ZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTI0NzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjI1OgorICAgICAgIGlmIChyZXEtPnNlLT5jb25u LnByb3RvX21pbm9yID49IDEyKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTI0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox MjI2OgorXkleSXJlcS0+Y3R4LnVtYXNrID0gYXJnLT51bWFzazskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjEyMjg6CiteSWlmIChyZXEtPnNlLT5vcC5ta2RpcikkCgpFUlJPUjogYnJh Y2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMjUw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyMjg6CisgICAgICAgaWYg KHJlcS0+c2UtPm9wLm1rZGlyKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTIyOToKK15JXklyZXEtPnNlLT5vcC5ta2RpcihyZXEsIG5vZGVp ZCwgUEFSQU0oYXJnKSwgYXJnLT5tb2RlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMjUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjEyMzA6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMjUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyMzE6CiteSV5J ZnVzZV9yZXBseV9lcnIocmVxLCBFTk9TWVMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEyNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTIzNjoKK15JY2hhciAqbmFtZSA9IChjaGFyICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTIzODoKK15JaWYgKHJlcS0+c2UtPm9wLnVubGluaykkCgpFUlJPUjog YnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMx MjYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyMzg6CisgICAgICAg aWYgKHJlcS0+c2UtPm9wLnVubGluaykKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjYxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyMzk6CiteSV5JcmVxLT5zZS0+b3AudW5saW5rKHJlcSwg bm9kZWlkLCBuYW1lKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMjYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyNDA6CiteSWVs c2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjYzOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyNDE6CiteSV5JZnVzZV9yZXBseV9l cnIocmVxLCBFTk9TWVMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEyNjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI0NjoKK15J Y2hhciAqbmFtZSA9IChjaGFyICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEyNzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTI0ODoKK15JaWYgKHJlcS0+c2UtPm9wLnJtZGlyKSQKCkVSUk9SOiBicmFjZXMge30gYXJl IG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEyNzA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI0ODoKKyAgICAgICBpZiAocmVxLT5zZS0+ b3Aucm1kaXIpClsuLi5dCisgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTI3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxMjQ5OgorXkleSXJlcS0+c2UtPm9wLnJtZGlyKHJlcSwgbm9kZWlkLCBuYW1lKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjcyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyNTA6CiteSWVsc2UkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjczOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjEyNTE6CiteSV5JZnVzZV9yZXBseV9lcnIocmVxLCBFTk9TWVMp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNzg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI1NjoKK15JY2hhciAqbmFtZSA9IChj aGFyICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEyNzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI1NzoKK15JY2hh ciAqbGlua25hbWUgPSAoKGNoYXIgKikgaW5hcmcpICsgc3RybGVuKChjaGFyICopIGluYXJnKSAr IDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI4MTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjU5OgorXklpZiAocmVxLT5zZS0+ b3Auc3ltbGluaykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1z IG9mIHRoaXMgc3RhdGVtZW50CiMxMjgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjEyNTk6CisgICAgICAgaWYgKHJlcS0+c2UtPm9wLnN5bWxpbmspClsuLi5dCisgICAg ICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTI4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjYwOgorXkleSXJl cS0+c2UtPm9wLnN5bWxpbmsocmVxLCBsaW5rbmFtZSwgbm9kZWlkLCBuYW1lKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjgzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyNjE6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjEyNjI6CiteSV5JZnVzZV9yZXBseV9lcnIocmVxLCBFTk9TWVMpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyODk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI2NzoKK15Jc3RydWN0IGZ1c2VfcmVuYW1lX2luICph cmcgPSAoc3RydWN0IGZ1c2VfcmVuYW1lX2luICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyOTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTI2ODoKK15JY2hhciAqb2xkbmFtZSA9IFBBUkFNKGFyZyk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI5MTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjY5OgorXkljaGFyICpuZXduYW1lID0gb2xkbmFtZSAr IHN0cmxlbihvbGRuYW1lKSArIDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTI5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjcx OgorXklpZiAocmVxLT5zZS0+b3AucmVuYW1lKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEyOTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTI3MjoKK15JXklyZXEtPnNlLT5vcC5yZW5hbWUocmVxLCBub2RlaWQsIG9sZG5hbWUsIGFy Zy0+bmV3ZGlyLCBuZXduYW1lLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEyOTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI3MzoK K15JXkleSV5JICAwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMjk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyNzQ6CiteSWVs c2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjk3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyNzU6CiteSV5JZnVzZV9yZXBseV9l cnIocmVxLCBFTk9TWVMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEzMDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI4MDoKK15J c3RydWN0IGZ1c2VfcmVuYW1lMl9pbiAqYXJnID0gKHN0cnVjdCBmdXNlX3JlbmFtZTJfaW4gKikg aW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMwMzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjgxOgorXkljaGFyICpvbGRu YW1lID0gUEFSQU0oYXJnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMzA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyODI6Cite SWNoYXIgKm5ld25hbWUgPSBvbGRuYW1lICsgc3RybGVuKG9sZG5hbWUpICsgMTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzA2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEyODQ6CiteSWlmIChyZXEtPnNlLT5vcC5yZW5hbWUpJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMwNzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjg1OgorXkleSXJlcS0+c2UtPm9wLnJlbmFt ZShyZXEsIG5vZGVpZCwgb2xkbmFtZSwgYXJnLT5uZXdkaXIsIG5ld25hbWUsJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMwODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjg2OgorXkleSV5JXkkgIGFyZy0+ZmxhZ3MpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMDk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI4NzoKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTI4ODoKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMxNTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMjkzOgorXklzdHJ1Y3QgZnVzZV9saW5rX2luICph cmcgPSAoc3RydWN0IGZ1c2VfbGlua19pbiAqKSBpbmFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjEyOTU6CiteSWlmIChyZXEtPnNlLT5vcC5saW5rKSQKCkVSUk9SOiBicmFjZXMg e30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEzMTc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI5NToKKyAgICAgICBpZiAocmVx LT5zZS0+b3AubGluaykKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjEyOTY6CiteSV5JcmVxLT5zZS0+b3AubGluayhyZXEsIGFyZy0+b2xkbm9k ZWlkLCBub2RlaWQsIFBBUkFNKGFyZykpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEzMTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTI5NzoKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEzMjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTI5ODoKK15JXklm dXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTMyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxMzAzOgorXklzdHJ1Y3QgZnVzZV9jcmVhdGVfaW4gKmFyZyA9IChzdHJ1Y3QgZnVzZV9jcmVh dGVfaW4gKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTMyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzA1OgorXklp ZiAocmVxLT5zZS0+b3AuY3JlYXRlKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTMyODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox MzA2OgorXkleSXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyBmaTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjEzMDc6CiteSV5JY2hhciAqbmFtZSA9IFBBUkFNKGFyZyk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMzMTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzA5OgorXkleSW1lbXNldCgmZmksIDAsIHNpemVvZihmaSkp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMzI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTMxMDoKK15JXklmaS5mbGFncyA9IGFy Zy0+ZmxhZ3M7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMz NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzEyOgorXkleSWlmIChy ZXEtPnNlLT5jb25uLnByb3RvX21pbm9yID49IDEyKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5l Y2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEzMzQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTMxMjoKKyAgICAgICAgICAgICAgIGlmIChyZXEt PnNlLT5jb25uLnByb3RvX21pbm9yID49IDEyKQpbLi4uXQorICAgICAgICAgICAgICAgZWxzZQpb Li4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMzNTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzEzOgorXkleSV5JcmVxLT5jdHgu dW1hc2sgPSBhcmctPnVtYXNrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEzMzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTMxNDoK K15JXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMz NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzE1OgorXkleSV5JbmFt ZSA9IChjaGFyICopIGluYXJnICsgc2l6ZW9mKHN0cnVjdCBmdXNlX29wZW5faW4pOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMzk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTMxNzoKK15JXklyZXEtPnNlLT5vcC5jcmVhdGUocmVx LCBub2RlaWQsIG5hbWUsIGFyZy0+bW9kZSwgJmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMzQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjEzMTg6CiteSX0gZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEzNDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTMx OToKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxMzI0OgorXklzdHJ1Y3QgZnVzZV9vcGVuX2luICphcmcgPSAoc3RydWN0IGZ1 c2Vfb3Blbl9pbiAqKSBpbmFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMzQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzMjU6 CiteSXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyBmaTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMzQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjEzMjc6CiteSW1lbXNldCgmZmksIDAsIHNpemVvZihmaSkpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTMyODoKK15JZmkuZmxhZ3MgPSBhcmctPmZsYWdzOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNTI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTMzMDoKK15JaWYgKHJlcS0+c2UtPm9wLm9wZW4pJAoKRVJS T1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVu dAojMTM1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzMwOgorICAg ICAgIGlmIChyZXEtPnNlLT5vcC5vcGVuKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNTM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTMzMToKK15JXklyZXEtPnNlLT5vcC5vcGVuKHJlcSwg bm9kZWlkLCAmZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEzNTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTMzMjoKK15JZWxz ZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNTU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTMzMzoKK15JXklmdXNlX3JlcGx5X29w ZW4ocmVxLCAmZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEzNjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTMzODoKK15Jc3Ry dWN0IGZ1c2VfcmVhZF9pbiAqYXJnID0gKHN0cnVjdCBmdXNlX3JlYWRfaW4gKikgaW5hcmc7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM2MjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzQwOgorXklpZiAocmVxLT5zZS0+b3AucmVh ZCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNjM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM0MToKK15JXklzdHJ1Y3QgZnVz ZV9maWxlX2luZm8gZmk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTM2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzQzOgorXkle SW1lbXNldCgmZmksIDAsIHNpemVvZihmaSkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzNjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTM0NDoKK15JXklmaS5maCA9IGFyZy0+Zmg7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTM2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxMzQ1OgorXkleSWlmIChyZXEtPnNlLT5jb25uLnByb3RvX21pbm9yID49IDkpIHskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzY4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzNDY6CiteSV5JXklmaS5sb2NrX293bmVyID0g YXJnLT5sb2NrX293bmVyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEzNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM0NzoKK15J XkleSWZpLmZsYWdzID0gYXJnLT5mbGFnczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMzcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjEzNDg6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEzNzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM0OToKK15JXkly ZXEtPnNlLT5vcC5yZWFkKHJlcSwgbm9kZWlkLCBhcmctPnNpemUsIGFyZy0+b2Zmc2V0LCAmZmkp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNzI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM1MDoKK15JfSBlbHNlJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM3MzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzUxOgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5P U1lTKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzc4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzNTY6CiteSXN0cnVjdCBmdXNl X3dyaXRlX2luICphcmcgPSAoc3RydWN0IGZ1c2Vfd3JpdGVfaW4gKikgaW5hcmc7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM3OTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzU3OgorXklzdHJ1Y3QgZnVzZV9maWxlX2luZm8gZmk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM4MDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzU4OgorXkljaGFyICpwYXJhbTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzgyOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzNjA6CiteSW1lbXNldCgmZmksIDAsIHNpemVv ZihmaSkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzODM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM2MToKK15JZmkuZmggPSBh cmctPmZoOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzODQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM2MjoKK15JZmkud3JpdGVw YWdlID0gKGFyZy0+d3JpdGVfZmxhZ3MgJiBGVVNFX1dSSVRFX0NBQ0hFKSAhPSAwOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzODY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM2NDoKK15JaWYgKHJlcS0+c2UtPmNvbm4ucHJvdG9f bWlub3IgPCA5KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTM4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzY1OgorXkleSXBh cmFtID0gKChjaGFyICopIGFyZykgKyBGVVNFX0NPTVBBVF9XUklURV9JTl9TSVpFOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzODg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM2NjoKK15JfSBlbHNlIHskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjEzNjc6CiteSV5JZmkubG9ja19vd25lciA9IGFyZy0+bG9ja19vd25l cjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzkwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzNjg6CiteSV5JZmkuZmxhZ3MgPSBh cmctPmZsYWdzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEz OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM2OToKK15JXklwYXJh bSA9IFBBUkFNKGFyZyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTM5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzcwOgorXkl9 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM5NDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzcyOgorXklpZiAocmVxLT5zZS0+b3Au d3JpdGUpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM5NTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzczOgorXkleSXJlcS0+c2Ut Pm9wLndyaXRlKHJlcSwgbm9kZWlkLCBwYXJhbSwgYXJnLT5zaXplLCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzOTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTM3NDoKK15JXkleSV5JIGFyZy0+b2Zmc2V0LCAmZmkpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzOTc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTM3NToKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzOTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTM3NjoKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQwMjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzgwOgorXkleSV5JIGNvbnN0IHN0cnVjdCBmdXNl X2J1ZiAqaWJ1ZikkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx NDA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzODI6CiteSXN0cnVj dCBmdXNlX3Nlc3Npb24gKnNlID0gcmVxLT5zZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxNDA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjEzODM6CiteSXN0cnVjdCBmdXNlX2J1ZnZlYyBidWZ2ID0geyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTM4NDoKK15JXkkuYnVmWzBdID0gKmlidWYsJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQwNzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxMzg1OgorXkleSS5jb3VudCA9IDEsJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxMzg2OgorXkl9OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE0MDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTM4NzoKK15Jc3RydWN0IGZ1c2Vfd3JpdGVfaW4gKmFyZyA9IChzdHJ1Y3QgZnVzZV93cml0ZV9p biAqKSBpbmFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx NDEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzODg6CiteSXN0cnVj dCBmdXNlX2ZpbGVfaW5mbyBmaTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxNDEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzOTA6 CiteSW1lbXNldCgmZmksIDAsIHNpemVvZihmaSkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTM5MToKK15JZmkuZmggPSBhcmctPmZoOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTM5MjoKK15JZmkud3JpdGVwYWdlID0gYXJnLT53cml0ZV9mbGFncyAmIEZVU0VfV1JJ VEVfQ0FDSEU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQx NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzk0OgorXklpZiAoc2Ut PmNvbm4ucHJvdG9fbWlub3IgPCA5KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTQxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox Mzk1OgorXkleSWJ1ZnYuYnVmWzBdLm1lbSA9ICgoY2hhciAqKSBhcmcpICsgRlVTRV9DT01QQVRf V1JJVEVfSU5fU0laRTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNDE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzOTY6CiteSV5J YnVmdi5idWZbMF0uc2l6ZSAtPSBzaXplb2Yoc3RydWN0IGZ1c2VfaW5faGVhZGVyKSArJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQxOTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMzk3OgorXkleSV5JRlVTRV9DT01QQVRfV1JJVEVf SU5fU0laRTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDIw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjEzOTg6CiteSV5JYXNzZXJ0 KCEoYnVmdi5idWZbMF0uZmxhZ3MgJiBGVVNFX0JVRl9JU19GRCkpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTM5OToKK15JfSBlbHNlIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNDIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE0MDA6CiteSV5JZmkubG9ja19vd25lciA9IGFyZy0+bG9ja19vd25lcjskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDIzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0MDE6CiteSV5JZmkuZmxhZ3MgPSBhcmctPmZsYWdz OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MjQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQwMjoKK15JXklpZiAoIShidWZ2LmJ1 ZlswXS5mbGFncyAmIEZVU0VfQlVGX0lTX0ZEKSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNl c3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxNDI0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0MDI6CisgICAgICAgICAgICAgICBpZiAoIShidWZ2 LmJ1ZlswXS5mbGFncyAmIEZVU0VfQlVGX0lTX0ZEKSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTQwMzoKK15JXkleSWJ1ZnYuYnVmWzBdLm1lbSA9IFBBUkFNKGFyZyk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQyNzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDA1OgorXkleSWJ1ZnYuYnVmWzBdLnNpemUg LT0gc2l6ZW9mKHN0cnVjdCBmdXNlX2luX2hlYWRlcikgKyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTQwNjoKK15JXkleSXNpemVvZihzdHJ1Y3QgZnVzZV93cml0ZV9pbik7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQyOTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDA3OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNDA4OgorXklpZiAoYnVmdi5idWZbMF0uc2l6ZSA8IGFyZy0+c2l6ZSkgeyQK CldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMxNDMxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0MDk6CisgICAgICAgICAgICAgICBmdXNlX2xvZyhGVVNF X0xPR19FUlIsICJmdXNlOiBkb193cml0ZV9idWY6IGJ1ZmZlciBzaXplIHRvbyBzbWFsbFxuIik7 CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDMxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0MDk6CiteSV5JZnVzZV9sb2coRlVTRV9M T0dfRVJSLCAiZnVzZTogZG9fd3JpdGVfYnVmOiBidWZmZXIgc2l6ZSB0b28gc21hbGxcbiIpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MzI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQxMDoKK15JXklmdXNlX3JlcGx5X2Vycihy ZXEsIEVJTyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQz MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDExOgorXkleSWdvdG8g b3V0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MzQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQxMjoKK15JfSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MzU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQxMzoKK15JYnVmdi5idWZbMF0uc2l6ZSA9IGFyZy0+c2l6 ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDM3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0MTU6CiteSXNlLT5vcC53cml0ZV9i dWYocmVxLCBub2RlaWQsICZidWZ2LCBhcmctPm9mZnNldCwgJmZpKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE0MTg6CiteSS8qIE5lZWQgdG8gcmVzZXQgdGhlIHBpcGUgaWYgLT53 cml0ZV9idWYoKSBkaWRuJ3QgY29uc3VtZSBhbGwgZGF0YSAqLyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0NDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTQxOToKK15JaWYgKChpYnVmLT5mbGFncyAmIEZVU0VfQlVGX0lTX0ZEKSAm JiBidWZ2LmlkeCA8IGJ1ZnYuY291bnQpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5 IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTQ0MTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDE5OgorICAgICAgIGlmICgoaWJ1Zi0+ZmxhZ3MgJiBGVVNF X0JVRl9JU19GRCkgJiYgYnVmdi5pZHggPCBidWZ2LmNvdW50KQpbLi4uXQoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ0MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxNDIwOgorXkleSWZ1c2VfbGxfY2xlYXJfcGlwZShzZSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ0NzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDI1OgorXklzdHJ1Y3QgZnVzZV9mbHVzaF9pbiAq YXJnID0gKHN0cnVjdCBmdXNlX2ZsdXNoX2luICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTQyNjoKK15Jc3RydWN0IGZ1c2VfZmlsZV9pbmZvIGZpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0NTA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQyODoKK15JbWVtc2V0KCZmaSwgMCwgc2l6ZW9mKGZpKSk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ1MTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDI5OgorXklmaS5maCA9IGFyZy0+Zmg7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ1MjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDMwOgorXklmaS5mbHVzaCA9IDE7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ1MzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDMxOgorXklpZiAocmVxLT5zZS0+Y29ubi5w cm90b19taW5vciA+PSA3KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxs IGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE0NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTQzMToKKyAgICAgICBpZiAocmVxLT5zZS0+Y29ubi5wcm90b19taW5vciA+ PSA3KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ1 NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDMyOgorXkleSWZpLmxv Y2tfb3duZXIgPSBhcmctPmxvY2tfb3duZXI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTQ1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxNDM0OgorXklpZiAocmVxLT5zZS0+b3AuZmx1c2gpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUg bmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTQ1NjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDM0OgorICAgICAgIGlmIChyZXEtPnNlLT5v cC5mbHVzaCkKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNDU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE0MzU6CiteSV5JcmVxLT5zZS0+b3AuZmx1c2gocmVxLCBub2RlaWQsICZmaSk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ1ODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDM2OgorXkllbHNlJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ1OTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxNDM3OgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5PU1lTKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDY0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0NDI6CiteSXN0cnVjdCBmdXNlX3JlbGVh c2VfaW4gKmFyZyA9IChzdHJ1Y3QgZnVzZV9yZWxlYXNlX2luICopIGluYXJnOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0NjU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQ0MzoKK15Jc3RydWN0IGZ1c2VfZmlsZV9pbmZvIGZpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0Njc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQ0NToKK15JbWVtc2V0KCZmaSwgMCwgc2l6 ZW9mKGZpKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ2 ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDQ2OgorXklmaS5mbGFn cyA9IGFyZy0+ZmxhZ3M7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTQ2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDQ3OgorXklm aS5maCA9IGFyZy0+Zmg7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTQ3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDQ4OgorXklp ZiAocmVxLT5zZS0+Y29ubi5wcm90b19taW5vciA+PSA4KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNDQ5OgorXkleSWZpLmZsdXNoID0gKGFyZy0+cmVsZWFzZV9mbGFncyAmIEZV U0VfUkVMRUFTRV9GTFVTSCkgPyAxIDogMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNDcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE0NTA6CiteSV5JZmkubG9ja19vd25lciA9IGFyZy0+bG9ja19vd25lcjskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDczOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE0NTE6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxNDc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE0NTI6CiteSWlmIChhcmctPnJlbGVhc2VfZmxhZ3MgJiBGVVNFX1JFTEVBU0VfRkxPQ0tf VU5MT0NLKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ3 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDUzOgorXkleSWZpLmZs b2NrX3JlbGVhc2UgPSAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE0NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQ1NDoKK15J XklmaS5sb2NrX293bmVyID0gYXJnLT5sb2NrX293bmVyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0Nzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTQ1NToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE0Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQ1NzoK K15JaWYgKHJlcS0+c2UtPm9wLnJlbGVhc2UpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNz YXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTQ3OTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDU3OgorICAgICAgIGlmIChyZXEtPnNlLT5vcC5yZWxl YXNlKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE0ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTQ1ODoKK15JXklyZXEtPnNlLT5vcC5yZWxlYXNlKHJlcSwgbm9kZWlkLCAmZmkpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0ODE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQ1OToKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTQ2MDoKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIDApOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0ODc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQ2NToKK15Jc3RydWN0IGZ1c2VfZnN5bmNfaW4gKmFy ZyA9IChzdHJ1Y3QgZnVzZV9mc3luY19pbiAqKSBpbmFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE0NjY6CiteSXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyBmaTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDg5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE0Njc6CiteSWludCBkYXRhc3luYyA9IGFyZy0+ZnN5bmNfZmxh Z3MgJiAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0OTE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQ2OToKK15JbWVtc2V0KCZm aSwgMCwgc2l6ZW9mKGZpKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTQ5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDcwOgor XklmaS5maCA9IGFyZy0+Zmg7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTQ5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDcyOgor XklpZiAocmVxLT5zZS0+b3AuZnN5bmMpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5 IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTQ5NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDcyOgorICAgICAgIGlmIChyZXEtPnNlLT5vcC5mc3luYykK Wy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxNDk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0 NzM6CiteSV5JcmVxLT5zZS0+b3AuZnN5bmMocmVxLCBub2RlaWQsIGRhdGFzeW5jLCAmZmkpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0OTY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQ3NDoKK15JZWxzZSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTQ3NToKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTUwMjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNDgwOgorXklzdHJ1Y3QgZnVzZV9vcGVu X2luICphcmcgPSAoc3RydWN0IGZ1c2Vfb3Blbl9pbiAqKSBpbmFyZzskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTAzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE0ODE6CiteSXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyBmaTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTA1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0ODM6CiteSW1lbXNldCgmZmksIDAsIHNpemVvZihm aSkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1MDY6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQ4NDoKK15JZmkuZmxhZ3MgPSBh cmctPmZsYWdzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1 MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQ4NjoKK15JaWYgKHJl cS0+c2UtPm9wLm9wZW5kaXIpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBh bGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTUwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxNDg2OgorICAgICAgIGlmIChyZXEtPnNlLT5vcC5vcGVuZGlyKQpbLi4u XQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE1MDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTQ4NzoK K15JXklyZXEtPnNlLT5vcC5vcGVuZGlyKHJlcSwgbm9kZWlkLCAmZmkpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTQ4ODoKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE1MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTQ4OToKK15JXklmdXNlX3JlcGx5X29wZW4ocmVxLCAmZmkpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1MTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTQ5NDoKK15Jc3RydWN0IGZ1c2VfcmVhZF9pbiAqYXJnID0gKHN0 cnVjdCBmdXNlX3JlYWRfaW4gKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTUxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxNDk1OgorXklzdHJ1Y3QgZnVzZV9maWxlX2luZm8gZmk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTUxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNDk3OgorXkltZW1zZXQoJmZpLCAwLCBzaXplb2YoZmkpKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTIwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE0OTg6CiteSWZpLmZoID0gYXJnLT5maDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTIyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1MDA6CiteSWlmIChyZXEtPnNlLT5vcC5yZWFkZGlyKSQK CkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0 ZW1lbnQKIzE1MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTUwMDoK KyAgICAgICBpZiAocmVxLT5zZS0+b3AucmVhZGRpcikKWy4uLl0KKyAgICAgICBlbHNlClsuLi5d CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTIzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1MDE6CiteSV5JcmVxLT5zZS0+b3AucmVh ZGRpcihyZXEsIG5vZGVpZCwgYXJnLT5zaXplLCBhcmctPm9mZnNldCwgJmZpKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTI0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1MDI6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE1MDM6CiteSV5JZnVzZV9yZXBseV9lcnIocmVxLCBFTk9TWVMpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1MzA6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTUwODoKK15Jc3RydWN0IGZ1c2VfcmVhZF9pbiAqYXJn ID0gKHN0cnVjdCBmdXNlX3JlYWRfaW4gKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTUzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxNTA5OgorXklzdHJ1Y3QgZnVzZV9maWxlX2luZm8gZmk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTUzMzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxNTExOgorXkltZW1zZXQoJmZpLCAwLCBzaXplb2YoZmkpKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTM0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1MTI6CiteSWZpLmZoID0gYXJnLT5maDskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTM2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1MTQ6CiteSWlmIChyZXEtPnNlLT5vcC5yZWFk ZGlycGx1cykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9m IHRoaXMgc3RhdGVtZW50CiMxNTM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE1MTQ6CisgICAgICAgaWYgKHJlcS0+c2UtPm9wLnJlYWRkaXJwbHVzKQpbLi4uXQorICAg ICAgIGVsc2UKWy4uLl0KCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMxNTM3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1MTU6CisgICAgICAgICAgICAg ICByZXEtPnNlLT5vcC5yZWFkZGlycGx1cyhyZXEsIG5vZGVpZCwgYXJnLT5zaXplLCBhcmctPm9m ZnNldCwgJmZpKTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1 Mzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTUxNToKK15JXklyZXEt PnNlLT5vcC5yZWFkZGlycGx1cyhyZXEsIG5vZGVpZCwgYXJnLT5zaXplLCBhcmctPm9mZnNldCwg JmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTM4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1MTY6CiteSWVsc2UkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTM5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1MTc6CiteSV5JZnVzZV9yZXBseV9lcnIocmVxLCBF Tk9TWVMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1NDQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTUyMjoKK15Jc3RydWN0IGZ1 c2VfcmVsZWFzZV9pbiAqYXJnID0gKHN0cnVjdCBmdXNlX3JlbGVhc2VfaW4gKikgaW5hcmc7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU0NTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTIzOgorXklzdHJ1Y3QgZnVzZV9maWxlX2lu Zm8gZmk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU0Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTI1OgorXkltZW1zZXQoJmZp LCAwLCBzaXplb2YoZmkpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxNTQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1MjY6Cite SWZpLmZsYWdzID0gYXJnLT5mbGFnczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxNTQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1 Mjc6CiteSWZpLmZoID0gYXJnLT5maDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxNTUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1 Mjk6CiteSWlmIChyZXEtPnNlLT5vcC5yZWxlYXNlZGlyKSQKCkVSUk9SOiBicmFjZXMge30gYXJl IG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE1NTE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTUyOToKKyAgICAgICBpZiAocmVxLT5zZS0+ b3AucmVsZWFzZWRpcikKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE1MzA6CiteSV5JcmVxLT5zZS0+b3AucmVsZWFzZWRpcihyZXEsIG5vZGVp ZCwgJmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTUz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1MzE6CiteSWVsc2UkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTU0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1MzI6CiteSV5JZnVzZV9yZXBseV9lcnIocmVx LCAwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTU5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1Mzc6CiteSXN0cnVjdCBmdXNl X2ZzeW5jX2luICphcmcgPSAoc3RydWN0IGZ1c2VfZnN5bmNfaW4gKikgaW5hcmc7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU2MDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTM4OgorXklzdHJ1Y3QgZnVzZV9maWxlX2luZm8gZmk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU2MTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTM5OgorXklpbnQgZGF0YXN5bmMgPSBh cmctPmZzeW5jX2ZsYWdzICYgMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxNTYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1NDE6 CiteSW1lbXNldCgmZmksIDAsIHNpemVvZihmaSkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE1NjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTU0MjoKK15JZmkuZmggPSBhcmctPmZoOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE1NjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTU0NDoKK15JaWYgKHJlcS0+c2UtPm9wLmZzeW5jZGlyKSQKCkVSUk9SOiBicmFjZXMg e30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE1NjY6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU0NDoKKyAgICAgICBpZiAocmVx LT5zZS0+b3AuZnN5bmNkaXIpClsuLi5dCisgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU2NzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxNTQ1OgorXkleSXJlcS0+c2UtPm9wLmZzeW5jZGlyKHJlcSwgbm9k ZWlkLCBkYXRhc3luYywgJmZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxNTY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1NDY6 CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTY5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1NDc6CiteSV5JZnVzZV9y ZXBseV9lcnIocmVxLCBFTk9TWVMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE1NzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU1 MjoKK15JKHZvaWQpIG5vZGVpZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxNTc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1NTM6 CiteSSh2b2lkKSBpbmFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxNTc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1NTU6Cite SWlmIChyZXEtPnNlLT5vcC5zdGF0ZnMpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTU3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox NTU2OgorXkleSXJlcS0+c2UtPm9wLnN0YXRmcyhyZXEsIG5vZGVpZCk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU3OTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxNTU3OgorXkllbHNlIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNTgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE1NTg6CiteSV5Jc3RydWN0IHN0YXR2ZnMgYnVmID0geyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1ODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTU1OToKK15JXkleSS5mX25hbWVtYXggPSAyNTUsJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU4MjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTYwOgorXkleSV5JLmZfYnNpemUgPSA1MTIsJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU4MzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTYxOgorXkleSX07JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNTYyOgorXkleSWZ1c2VfcmVwbHlfc3RhdGZzKHJlcSwgJmJ1Zik7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU4NTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTYzOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNTY4OgorXklzdHJ1Y3QgZnVzZV9zZXR4YXR0cl9pbiAqYXJnID0gKHN0cnVj dCBmdXNlX3NldHhhdHRyX2luICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE1OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTU2OToKK15JY2hhciAqbmFtZSA9IFBBUkFNKGFyZyk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNTcwOgorXkljaGFyICp2YWx1ZSA9IG5hbWUgKyBzdHJsZW4obmFtZSkgKyAx OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1OTQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU3MjoKK15JaWYgKHJlcS0+c2UtPm9w LnNldHhhdHRyKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE1 OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU3MzoKK15JXklyZXEt PnNlLT5vcC5zZXR4YXR0cihyZXEsIG5vZGVpZCwgbmFtZSwgdmFsdWUsIGFyZy0+c2l6ZSwkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTk2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1NzQ6CiteSV5JXkleSSAgICBhcmctPmZsYWdz KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTk3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1NzU6CiteSWVsc2UkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTk4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1NzY6CiteSV5JZnVzZV9yZXBseV9lcnIocmVxLCBFTk9T WVMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2MDM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU4MToKK15Jc3RydWN0IGZ1c2Vf Z2V0eGF0dHJfaW4gKmFyZyA9IChzdHJ1Y3QgZnVzZV9nZXR4YXR0cl9pbiAqKSBpbmFyZzskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjA1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1ODM6CiteSWlmIChyZXEtPnNlLT5vcC5nZXR4 YXR0cikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRo aXMgc3RhdGVtZW50CiMxNjA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE1ODM6CisgICAgICAgaWYgKHJlcS0+c2UtPm9wLmdldHhhdHRyKQpbLi4uXQorICAgICAgIGVs c2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2MDY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU4NDoKK15JXklyZXEtPnNl LT5vcC5nZXR4YXR0cihyZXEsIG5vZGVpZCwgUEFSQU0oYXJnKSwgYXJnLT5zaXplKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjA3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1ODU6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE1ODY6CiteSV5JZnVzZV9yZXBseV9lcnIocmVxLCBFTk9TWVMpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2MTM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTU5MToKK15Jc3RydWN0IGZ1c2VfZ2V0eGF0dHJf aW4gKmFyZyA9IChzdHJ1Y3QgZnVzZV9nZXR4YXR0cl9pbiAqKSBpbmFyZzskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjE1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE1OTM6CiteSWlmIChyZXEtPnNlLT5vcC5saXN0eGF0dHIpJAoK RVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRl bWVudAojMTYxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTkzOgor ICAgICAgIGlmIChyZXEtPnNlLT5vcC5saXN0eGF0dHIpClsuLi5dCisgICAgICAgZWxzZQpbLi4u XQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTYxNjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNTk0OgorXkleSXJlcS0+c2UtPm9wLmxp c3R4YXR0cihyZXEsIG5vZGVpZCwgYXJnLT5zaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNjE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE1OTU6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxNjE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE1OTY6 CiteSV5JZnVzZV9yZXBseV9lcnIocmVxLCBFTk9TWVMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTYwMToKK15JY2hhciAqbmFtZSA9IChjaGFyICopIGluYXJnOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2MjU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTYwMzoKK15JaWYgKHJlcS0+c2UtPm9wLnJlbW92ZXhhdHRy KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBz dGF0ZW1lbnQKIzE2MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTYw MzoKKyAgICAgICBpZiAocmVxLT5zZS0+b3AucmVtb3ZleGF0dHIpClsuLi5dCisgICAgICAgZWxz ZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTYyNjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjA0OgorXkleSXJlcS0+c2Ut Pm9wLnJlbW92ZXhhdHRyKHJlcSwgbm9kZWlkLCBuYW1lKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE2MDU6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxNjI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2 MDY6CiteSV5JZnVzZV9yZXBseV9lcnIocmVxLCBFTk9TWVMpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTYxMDoKK15JXkleSV5JICAgc3RydWN0IGZsb2NrICpmbG9jaykkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjM0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2MTI6CiteSW1lbXNldChmbG9jaywgMCwgc2l6ZW9m KHN0cnVjdCBmbG9jaykpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE2MzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTYxMzoKK15J ZmxvY2stPmxfdHlwZSA9IGZsLT50eXBlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE2MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTYxNDoKK15JZmxvY2stPmxfd2hlbmNlID0gU0VFS19TRVQ7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTYzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNjE1OgorXklmbG9jay0+bF9zdGFydCA9IGZsLT5zdGFydDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjM4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2MTY6CiteSWlmIChmbC0+ZW5kID09IE9GRlNFVF9NQVgp JAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0 YXRlbWVudAojMTYzODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjE2 OgorICAgICAgIGlmIChmbC0+ZW5kID09IE9GRlNFVF9NQVgpClsuLi5dCisgICAgICAgZWxzZQpb Li4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTYzOTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjE3OgorXkleSWZsb2NrLT5sX2xl biA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY0MDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjE4OgorXkllbHNlJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY0MTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjE5OgorXkleSWZsb2NrLT5sX2xlbiA9IGZsLT5l bmQgLSBmbC0+c3RhcnQgKyAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE2NDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTYyMDoK K15JZmxvY2stPmxfcGlkID0gZmwtPnBpZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNjQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE2MjU6CiteSXN0cnVjdCBmdXNlX2xrX2luICphcmcgPSAoc3RydWN0IGZ1c2VfbGtfaW4gKikg aW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY0ODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjI2OgorXklzdHJ1Y3QgZnVz ZV9maWxlX2luZm8gZmk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTY0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjI3OgorXklz dHJ1Y3QgZmxvY2sgZmxvY2s7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTY1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjI5Ogor XkltZW1zZXQoJmZpLCAwLCBzaXplb2YoZmkpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxNjUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE2MzA6CiteSWZpLmZoID0gYXJnLT5maDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxNjUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE2MzE6CiteSWZpLmxvY2tfb3duZXIgPSBhcmctPm93bmVyOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTYzMzoKK15JY29udmVydF9mdXNlX2ZpbGVfbG9jaygmYXJnLT5saywg JmZsb2NrKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjU2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2MzQ6CiteSWlmIChyZXEt PnNlLT5vcC5nZXRsaykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBh cm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxNjU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE2MzQ6CisgICAgICAgaWYgKHJlcS0+c2UtPm9wLmdldGxrKQpbLi4uXQorICAg ICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE2NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTYzNToKK15JXkly ZXEtPnNlLT5vcC5nZXRsayhyZXEsIG5vZGVpZCwgJmZpLCAmZmxvY2spOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTYzNjoKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE2NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTYzNzoKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY2MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjQxOgorXkleSV5JICAgIGNvbnN0IHZvaWQgKmluYXJnLCBp bnQgc2xlZXApJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY2 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjQzOgorXklzdHJ1Y3Qg ZnVzZV9sa19pbiAqYXJnID0gKHN0cnVjdCBmdXNlX2xrX2luICopIGluYXJnOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2NjY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTY0NDoKK15Jc3RydWN0IGZ1c2VfZmlsZV9pbmZvIGZpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2Njc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTY0NToKK15Jc3RydWN0IGZsb2NrIGZsb2Nr OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2Njk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTY0NzoKK15JbWVtc2V0KCZmaSwgMCwg c2l6ZW9mKGZpKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTY3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjQ4OgorXklmaS5m aCA9IGFyZy0+Zmg7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTY3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjQ5OgorXklmaS5s b2NrX293bmVyID0gYXJnLT5vd25lcjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxNjczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2 NTE6CiteSWlmIChhcmctPmxrX2ZsYWdzICYgRlVTRV9MS19GTE9DSykgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2NzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTY1MjoKK15JXklpbnQgb3AgPSAwOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTY1NDoKK15JXklzd2l0Y2ggKGFyZy0+bGsudHlwZSkgeyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2Nzc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTY1NToKK15JXkljYXNlIEZfUkRMQ0s6JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY3ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjU2OgorXkleSV5Jb3AgPSBMT0NLX1NIOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2Nzk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTY1NzoKK15JXkleSWJyZWFrOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTY1ODoKK15JXkljYXNlIEZfV1JMQ0s6JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY4MTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxNjU5OgorXkleSV5Jb3AgPSBMT0NLX0VYOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTY2MDoKK15JXkleSWJyZWFrOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTY2MToKK15JXkljYXNlIEZfVU5MQ0s6JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNjYyOgorXkleSV5Jb3AgPSBMT0NLX1VOOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2ODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTY2MzoKK15JXkleSWJyZWFrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE2ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTY2NDoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTY4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjY1Ogor XkleSWlmICghc2xlZXApJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwg YXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTY4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNjY1OgorICAgICAgICAgICAgICAgaWYgKCFzbGVlcCkKWy4uLl0KCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2ODg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTY2NjoKK15JXkleSW9wIHw9IExPQ0tfTkI7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY5MDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjY4OgorXkleSWlmIChyZXEtPnNlLT5vcC5mbG9j aykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMg c3RhdGVtZW50CiMxNjkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2 Njg6CisgICAgICAgICAgICAgICBpZiAocmVxLT5zZS0+b3AuZmxvY2spClsuLi5dCisgICAgICAg ICAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxNjkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2Njk6Cite SV5JXklyZXEtPnNlLT5vcC5mbG9jayhyZXEsIG5vZGVpZCwgJmZpLCBvcCk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY5MjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjcwOgorXkleSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE2NzE6CiteSV5JXklmdXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY5NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjcyOgorXkl9IGVsc2UgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTY3MzoKK15JXkljb252ZXJ0X2Z1c2VfZmlsZV9sb2NrKCZhcmct PmxrLCAmZmxvY2spOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE2OTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTY3NDoKK15JXklp ZiAocmVxLT5zZS0+b3Auc2V0bGspJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZv ciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTY5NjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxNjc0OgorICAgICAgICAgICAgICAgaWYgKHJlcS0+c2UtPm9wLnNl dGxrKQpbLi4uXQorICAgICAgICAgICAgICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTY5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNjc1OgorXkleSV5JcmVxLT5zZS0+b3Auc2V0bGsocmVxLCBub2RlaWQsICZm aSwgJmZsb2NrLCBzbGVlcCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTY5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjc2Ogor XkleSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNjk5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2Nzc6CiteSV5JXklmdXNl X3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTcwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox Njc4OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcw NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjgzOgorXklkb19zZXRs a19jb21tb24ocmVxLCBub2RlaWQsIGluYXJnLCAwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNzEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE2ODg6CiteSWRvX3NldGxrX2NvbW1vbihyZXEsIG5vZGVpZCwgaW5hcmcsIDEpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MTU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTY5MzoKK15Jc3RydWN0IGZ1c2VfcmVxICpj dXJyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MTc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTY5NToKK15JZm9yIChjdXJyID0g c2UtPmxpc3QubmV4dDsgY3VyciAhPSAmc2UtPmxpc3Q7IGN1cnIgPSBjdXJyLT5uZXh0KSB7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcxODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjk2OgorXkleSWlmIChjdXJyLT51bmlxdWUg PT0gcmVxLT51LmkudW5pcXVlKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTcxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNjk3 OgorXkleSV5JZnVzZV9pbnRlcnJ1cHRfZnVuY190IGZ1bmM7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNjk4OgorXkleSV5Jdm9pZCAqZGF0YTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE3MDA6CiteSV5JXkljdXJyLT5jdHIrKzskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE3MDE6CiteSV5JXklwdGhyZWFkX211dGV4X3VubG9jaygmc2UtPmxvY2spOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MjU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTcwMzoKK15JXkleSS8qIFVnaCwgdWdseSBs b2NraW5nICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcy NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzA0OgorXkleSV5JcHRo cmVhZF9tdXRleF9sb2NrKCZjdXJyLT5sb2NrKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxNzI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE3MDU6CiteSV5JXklwdGhyZWFkX211dGV4X2xvY2soJnNlLT5sb2NrKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzI4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MDY6CiteSV5JXkljdXJyLT5pbnRlcnJ1cHRlZCA9IDE7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTcyOTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzA3OgorXkleSV5JZnVuYyA9IGN1cnIt PnUubmkuZnVuYzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx NzMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MDg6CiteSV5JXklk YXRhID0gY3Vyci0+dS5uaS5kYXRhOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE3MzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTcw OToKK15JXkleSXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZzZS0+bG9jayk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTczMjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxNzEwOgorXkleSV5JaWYgKGZ1bmMpJAoKRVJST1I6IGJyYWNlcyB7 fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTczMjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzEwOgorICAgICAgICAgICAgICAg ICAgICAgICBpZiAoZnVuYykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE3MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTcx MToKK15JXkleSV5JZnVuYyhjdXJyLCBkYXRhKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxNzM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE3MTI6CiteSV5JXklwdGhyZWFkX211dGV4X3VubG9jaygmY3Vyci0+bG9jayk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTczNjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzE0OgorXkleSV5JcHRocmVhZF9tdXRleF9sb2Nr KCZzZS0+bG9jayk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTczNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzE1OgorXkleSV5J Y3Vyci0+Y3RyLS07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTczODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzE2OgorXkleSV5J aWYgKCFjdXJyLT5jdHIpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwg YXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTczODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxNzE2OgorICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWN1cnItPmN0cikK Wy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3Mzk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTcxNzoKK15JXkleSV5JZGVzdHJv eV9yZXEoY3Vycik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTc0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzE5OgorXkleSV5J cmV0dXJuIDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc0 MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzIwOgorXkleSX0kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzQzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MjE6CiteSX0kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzQ0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE3MjI6CiteSWZvciAoY3VyciA9IHNlLT5pbnRlcnJ1cHRzLm5leHQ7IGN1 cnIgIT0gJnNlLT5pbnRlcnJ1cHRzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE3NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTcy MzoKK15JICAgICBjdXJyID0gY3Vyci0+bmV4dCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTcyNDoKK15JXklpZiAoY3Vyci0+dS5pLnVuaXF1ZSA9PSByZXEtPnUuaS51bmlxdWUp JAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0 YXRlbWVudAojMTc0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzI0 OgorICAgICAgICAgICAgICAgaWYgKGN1cnItPnUuaS51bmlxdWUgPT0gcmVxLT51LmkudW5pcXVl KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc0Nzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzI1OgorXkleSV5JcmV0dXJu IDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc0ODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzI2OgorXkl9JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc0OTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzI3OgorXklyZXR1cm4gMDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE3MzI6CiteSXN0cnVjdCBmdXNlX2ludGVycnVwdF9pbiAqYXJnID0gKHN0 cnVjdCBmdXNlX2ludGVycnVwdF9pbiAqKSBpbmFyZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxNzU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE3MzM6CiteSXN0cnVjdCBmdXNlX3Nlc3Npb24gKnNlID0gcmVxLT5zZTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzU3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MzU6CiteSSh2b2lkKSBub2RlaWQ7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc1ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzM2OgorXklpZiAoc2UtPmRlYnVnKSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NTk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTczNzoKK15JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywg IklOVEVSUlVQVDogJWxsdVxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxNzYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3Mzg6 CiteSV5JXkkodW5zaWduZWQgbG9uZyBsb25nKSBhcmctPnVuaXF1ZSk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc2MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxNzQwOgorXklyZXEtPnUuaS51bmlxdWUgPSBhcmctPnVuaXF1ZTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzY0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3NDI6CiteSXB0aHJlYWRfbXV0ZXhfbG9j aygmc2UtPmxvY2spOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE3NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc0MzoKK15JaWYg KGZpbmRfaW50ZXJydXB0ZWQoc2UsIHJlcSkpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNz YXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTc2NTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzQzOgorICAgICAgIGlmIChmaW5kX2ludGVycnVwdGVk KHNlLCByZXEpKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3NjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTc0NDoKK15JXklkZXN0cm95X3JlcShyZXEpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTc0NToKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE3Njg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTc0NjoKK15JXklsaXN0X2FkZF9yZXEocmVxLCAmc2UtPmludGVycnVwdHMpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3Njk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc0NzoKK15JcHRocmVhZF9tdXRleF91bmxvY2soJnNlLT5s b2NrKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzczOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3NTE6CiteSV5JXkleSV5Jc3Ry dWN0IGZ1c2VfcmVxICpyZXEpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTc3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzUzOgor XklzdHJ1Y3QgZnVzZV9yZXEgKmN1cnI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTc3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox NzU1OgorXklmb3IgKGN1cnIgPSBzZS0+aW50ZXJydXB0cy5uZXh0OyBjdXJyICE9ICZzZS0+aW50 ZXJydXB0czskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzc4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3NTY6CiteSSAgICAgY3Vy ciA9IGN1cnItPm5leHQpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxNzc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3NTc6Cite SV5JaWYgKGN1cnItPnUuaS51bmlxdWUgPT0gcmVxLT51bmlxdWUpIHskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE3NTg6CiteSV5JXklyZXEtPmludGVycnVwdGVkID0gMTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzgxOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3NTk6CiteSV5JXklsaXN0X2RlbF9yZXEoY3Vycik7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc4MjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzYwOgorXkleSV5JZnJlZShjdXJyKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzgzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3NjE6CiteSV5JXklyZXR1cm4gTlVMTDsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzg0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3NjI6CiteSV5JfSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3ODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTc2MzoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE3ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTc2NDoKK15JY3VyciA9IHNlLT5pbnRlcnJ1cHRzLm5leHQ7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTc4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxNzY1OgorXklpZiAoY3VyciAhPSAmc2UtPmludGVycnVwdHMpIHskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzg4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3NjY6CiteSV5JbGlzdF9kZWxfcmVxKGN1cnIp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3ODk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc2NzoKK15JXklsaXN0X2luaXRfcmVx KGN1cnIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3OTA6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc2ODoKK15JXklyZXR1cm4g Y3VycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzkxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3Njk6CiteSX0gZWxzZSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3OTI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc3MDoKK15JXklyZXR1cm4gTlVMTDskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNzk3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3NzU6CiteSXN0cnVjdCBmdXNlX2JtYXBfaW4gKmFy ZyA9IChzdHJ1Y3QgZnVzZV9ibWFwX2luICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTc3NzoKK15JaWYgKHJlcS0+c2UtPm9wLmJtYXApJAoKRVJST1I6IGJyYWNlcyB7 fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTc5OTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzc3OgorICAgICAgIGlmIChyZXEt PnNlLT5vcC5ibWFwKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4MDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MTc3ODoKK15JXklyZXEtPnNlLT5vcC5ibWFwKHJlcSwgbm9kZWlkLCBhcmct PmJsb2Nrc2l6ZSwgYXJnLT5ibG9jayk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTgwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox Nzc5OgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTgwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzgwOgorXkleSWZ1 c2VfcmVwbHlfZXJyKHJlcSwgRU5PU1lTKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxODA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE3ODU6CiteSXN0cnVjdCBmdXNlX2lvY3RsX2luICphcmcgPSAoc3RydWN0IGZ1c2VfaW9jdGxf aW4gKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTgwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzg2OgorXkl1bnNp Z25lZCBpbnQgZmxhZ3MgPSBhcmctPmZsYWdzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE4MDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTc4NzoKK15Jdm9pZCAqaW5fYnVmID0gYXJnLT5pbl9zaXplID8gUEFSQU0oYXJnKSA6IE5V TEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTgxMDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzg4OgorXklzdHJ1Y3QgZnVzZV9m aWxlX2luZm8gZmk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTgxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzkwOgorXklpZiAo ZmxhZ3MgJiBGVVNFX0lPQ1RMX0RJUiAmJiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE4MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTc5MToKK15JICAgICEocmVxLT5zZS0+Y29ubi53YW50ICYgRlVTRV9DQVBfSU9DVExfRElSKSkg eyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4MTQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc5MjoKK15JXklmdXNlX3JlcGx5X2Vy cihyZXEsIEVOT1RUWSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTgxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxNzkzOgorXkle SXJldHVybjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODE2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3OTQ6CiteSX0kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODE4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3OTY6CiteSW1lbXNldCgmZmksIDAsIHNpemVvZihm aSkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4MTk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc5NzoKK15JZmkuZmggPSBhcmct PmZoOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4MjE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTc5OToKK15JaWYgKHNpemVvZih2 b2lkICopID09IDQgJiYgcmVxLT5zZS0+Y29ubi5wcm90b19taW5vciA+PSAxNiAmJiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4MjI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTgwMDoKK15JICAgICEoZmxhZ3MgJiBGVVNFX0lPQ1RM XzMyQklUKSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4 MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTgwMToKK15JXklyZXEt PmlvY3RsXzY0Yml0ID0gMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxODI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4MDI6Cite SX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODI2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4MDQ6CiteSWlmIChyZXEtPnNlLT5v cC5pb2N0bCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODI3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4MDU6CiteSV5JcmVxLT5z ZS0+b3AuaW9jdGwocmVxLCBub2RlaWQsIGFyZy0+Y21kLCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTgwNjoKK15JXkleSV5JICh2b2lkICopKHVpbnRwdHJfdClhcmctPmFyZywgJmZp LCBmbGFncywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODI5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4MDc6CiteSV5JXkleSSBp bl9idWYsIGFyZy0+aW5fc2l6ZSwgYXJnLT5vdXRfc2l6ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTgzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxODA4OgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTgzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox ODA5OgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5PU1lTKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE4MTQ6CiteSWZyZWUocGgpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTgxOToKK15Jc3RydWN0IGZ1c2VfcG9sbF9pbiAqYXJnID0gKHN0cnVjdCBmdXNlX3Bv bGxfaW4gKikgaW5hcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTg0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODIwOgorXklz dHJ1Y3QgZnVzZV9maWxlX2luZm8gZmk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTg0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox ODIyOgorXkltZW1zZXQoJmZpLCAwLCBzaXplb2YoZmkpKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE4MjM6CiteSWZpLmZoID0gYXJnLT5maDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE4MjQ6CiteSWZpLnBvbGxfZXZlbnRzID0gYXJnLT5ldmVudHM7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg0ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODI2OgorXklpZiAocmVxLT5zZS0+b3AucG9sbCkgeyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NDk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTgyNzoKK15JXklzdHJ1Y3QgZnVzZV9wb2xs aGFuZGxlICpwaCA9IE5VTEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTg1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODI5Ogor XkleSWlmIChhcmctPmZsYWdzICYgRlVTRV9QT0xMX1NDSEVEVUxFX05PVElGWSkgeyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NTI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTgzMDoKK15JXkleSXBoID0gbWFsbG9jKHNpemVvZihz dHJ1Y3QgZnVzZV9wb2xsaGFuZGxlKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTg1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox ODMxOgorXkleSV5JaWYgKHBoID09IE5VTEwpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxODU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE4MzI6CiteSV5JXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5PTUVNKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODU1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4MzM6CiteSV5JXkleSXJldHVybjskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODU2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE4MzQ6CiteSV5JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTg1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxODM1OgorXkleSV5JcGgtPmtoID0gYXJnLT5raDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjE4MzY6CiteSV5JXklwaC0+c2UgPSByZXEtPnNlOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTgzNzoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTg2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxODM5OgorXkleSXJlcS0+c2UtPm9wLnBvbGwocmVxLCBub2RlaWQsICZmaSwgcGgpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NjI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg0MDoKK15JfSBlbHNlIHskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODYzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4NDE6CiteSV5JZnVzZV9yZXBseV9lcnIocmVxLCBFTk9T WVMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NjQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg0MjoKK15JfSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4Njk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg0NzoKK15Jc3RydWN0IGZ1c2VfZmFsbG9jYXRlX2luICph cmcgPSAoc3RydWN0IGZ1c2VfZmFsbG9jYXRlX2luICopIGluYXJnOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTg0ODoKK15Jc3RydWN0IGZ1c2VfZmlsZV9pbmZvIGZpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NzI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg1MDoKK15JbWVtc2V0KCZmaSwgMCwgc2l6ZW9mKGZp KSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg3MzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODUxOgorXklmaS5maCA9IGFyZy0+ Zmg7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg3NTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODUzOgorXklpZiAocmVxLT5zZS0+ b3AuZmFsbG9jYXRlKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFy bXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE4NzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTg1MzoKKyAgICAgICBpZiAocmVxLT5zZS0+b3AuZmFsbG9jYXRlKQpbLi4uXQor ICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBsaW5lIG92ZXIgOTAgY2hhcmFjdGVycwojMTg3Njog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODU0OgorICAgICAgICAgICAg ICAgcmVxLT5zZS0+b3AuZmFsbG9jYXRlKHJlcSwgbm9kZWlkLCBhcmctPm1vZGUsIGFyZy0+b2Zm c2V0LCBhcmctPmxlbmd0aCwgJmZpKTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE4NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg1 NDoKK15JXklyZXEtPnNlLT5vcC5mYWxsb2NhdGUocmVxLCBub2RlaWQsIGFyZy0+bW9kZSwgYXJn LT5vZmZzZXQsIGFyZy0+bGVuZ3RoLCAmZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE4Nzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTg1NToKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE4Nzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg1NjoKK15J XklmdXNlX3JlcGx5X2VycihyZXEsIEVOT1NZUyk7JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNo YXJhY3RlcnMKIzE4ODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg1 OToKK3N0YXRpYyB2b2lkIGRvX2NvcHlfZmlsZV9yYW5nZShmdXNlX3JlcV90IHJlcSwgZnVzZV9p bm9fdCBub2RlaWRfaW4sIGNvbnN0IHZvaWQgKmluYXJnKQoKV0FSTklORzogbGluZSBvdmVyIDgw IGNoYXJhY3RlcnMKIzE4ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MTg2MToKKyAgICAgICBzdHJ1Y3QgZnVzZV9jb3B5X2ZpbGVfcmFuZ2VfaW4gKmFyZyA9IChzdHJ1 Y3QgZnVzZV9jb3B5X2ZpbGVfcmFuZ2VfaW4gKikgaW5hcmc7CgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjE4NjE6CiteSXN0cnVjdCBmdXNlX2NvcHlfZmlsZV9yYW5nZV9pbiAqYXJnID0g KHN0cnVjdCBmdXNlX2NvcHlfZmlsZV9yYW5nZV9pbiAqKSBpbmFyZzskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE4NjI6CiteSXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyBmaV9pbiwgZmlf b3V0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4ODY6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg2NDoKK15JbWVtc2V0KCZmaV9p biwgMCwgc2l6ZW9mKGZpX2luKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTg4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODY1 OgorXklmaV9pbi5maCA9IGFyZy0+ZmhfaW47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTg4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxODY3OgorXkltZW1zZXQoJmZpX291dCwgMCwgc2l6ZW9mKGZpX291dCkpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4OTA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg2ODoKK15JZmlfb3V0LmZoID0gYXJnLT5maF9vdXQ7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg5MzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODcxOgorXklpZiAocmVxLT5zZS0+b3AuY29w eV9maWxlX3JhbmdlKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzE4OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg3MjoKK15JXkly ZXEtPnNlLT5vcC5jb3B5X2ZpbGVfcmFuZ2UocmVxLCBub2RlaWRfaW4sIGFyZy0+b2ZmX2luLCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4OTU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg3MzoKK15JXkleSV5JXkkgICAgJmZpX2lu LCBhcmctPm5vZGVpZF9vdXQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTg5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODc0Ogor XkleSV5JXkleSSAgICBhcmctPm9mZl9vdXQsICZmaV9vdXQsIGFyZy0+bGVuLCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4OTc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg3NToKK15JXkleSV5JXkkgICAgYXJnLT5mbGFncyk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg5ODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODc2OgorXkllbHNlJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTg5OTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxODc3OgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgRU5PU1lTKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTA0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4ODI6CiteSXN0cnVjdCBmdXNlX2xzZWVr X2luICphcmcgPSAoc3RydWN0IGZ1c2VfbHNlZWtfaW4gKikgaW5hcmc7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkwNTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxODgzOgorXklzdHJ1Y3QgZnVzZV9maWxlX2luZm8gZmk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkwNzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODg1OgorXkltZW1zZXQoJmZpLCAwLCBzaXplb2Yo ZmkpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTA4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4ODY6CiteSWZpLmZoID0gYXJn LT5maDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTEwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4ODg6CiteSWlmIChyZXEtPnNl LT5vcC5sc2VlaykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1z IG9mIHRoaXMgc3RhdGVtZW50CiMxOTEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE4ODg6CisgICAgICAgaWYgKHJlcS0+c2UtPm9wLmxzZWVrKQpbLi4uXQorICAgICAg IGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5 MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg4OToKK15JXklyZXEt PnNlLT5vcC5sc2VlayhyZXEsIG5vZGVpZCwgYXJnLT5vZmZzZXQsIGFyZy0+d2hlbmNlLCAmZmkp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MTI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg5MDoKK15JZWxzZSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MTM6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTg5MToKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVOT1NZ Uyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkxODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxODk2OgorXklzdHJ1Y3QgZnVzZV9p bml0X2luICphcmcgPSAoc3RydWN0IGZ1c2VfaW5pdF9pbiAqKSBpbmFyZzskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTE5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE4OTc6CiteSXN0cnVjdCBmdXNlX2luaXRfb3V0IG91dGFyZzsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTIwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4OTg6CiteSXN0cnVjdCBmdXNlX3Nlc3Np b24gKnNlID0gcmVxLT5zZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxOTIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE4OTk6Cite SXNpemVfdCBidWZzaXplID0gc2UtPmJ1ZnNpemU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTkyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxOTAwOgorXklzaXplX3Qgb3V0YXJnc2l6ZSA9IHNpemVvZihvdXRhcmcpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MjQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkwMjoKK15JKHZvaWQpIG5vZGVpZDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTI1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5MDM6CiteSWlmIChzZS0+ZGVidWcpIHskCgpXQVJOSU5H OiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMTkyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxOTA0OgorICAgICAgICAgICAgICAgZnVzZV9sb2coRlVTRV9MT0dfREVC VUcsICJJTklUOiAldS4ldVxuIiwgYXJnLT5tYWpvciwgYXJnLT5taW5vcik7CgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTI2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjE5MDQ6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICJJ TklUOiAldS4ldVxuIiwgYXJnLT5tYWpvciwgYXJnLT5taW5vcik7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkyNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxOTA1OgorXkleSWlmIChhcmctPm1ham9yID09IDcgJiYgYXJnLT5taW5v ciA+PSA2KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTky ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTA2OgorXkleSV5JZnVz ZV9sb2coRlVTRV9MT0dfREVCVUcsICJmbGFncz0weCUwOHhcbiIsIGFyZy0+ZmxhZ3MpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5Mjk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkwNzoKK15JXkleSWZ1c2VfbG9nKEZVU0VfTE9H X0RFQlVHLCAibWF4X3JlYWRhaGVhZD0weCUwOHhcbiIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTkzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxOTA4OgorXkleSV5JXklhcmctPm1heF9yZWFkYWhlYWQpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTkwOToKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTkzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoxOTEwOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTkzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTExOgorXklz ZS0+Y29ubi5wcm90b19tYWpvciA9IGFyZy0+bWFqb3I7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTkzNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxOTEyOgorXklzZS0+Y29ubi5wcm90b19taW5vciA9IGFyZy0+bWlub3I7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTkzNTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTEzOgorXklzZS0+Y29ubi5jYXBhYmxlID0gMDsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTM2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5MTQ6CiteSXNlLT5jb25uLndhbnQgPSAw OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5Mzg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkxNjoKK15JbWVtc2V0KCZvdXRhcmcs IDAsIHNpemVvZihvdXRhcmcpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxOTM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5MTc6 CiteSW91dGFyZy5tYWpvciA9IEZVU0VfS0VSTkVMX1ZFUlNJT047JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxOTE4OgorXklvdXRhcmcubWlub3IgPSBGVVNFX0tFUk5FTF9NSU5PUl9W RVJTSU9OOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NDI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkyMDoKK15JaWYgKGFyZy0+ bWFqb3IgPCA3KSB7JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzE5NDM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkyMToKKyAgICAgICAgICAgICAg IGZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6IHVuc3VwcG9ydGVkIHByb3RvY29sIHZlcnNp b246ICV1LiV1XG4iLAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTk0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTIxOgorXkleSWZ1 c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6IHVuc3VwcG9ydGVkIHByb3RvY29sIHZlcnNpb246 ICV1LiV1XG4iLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5 NDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkyMjoKK15JXkleSWFy Zy0+bWFqb3IsIGFyZy0+bWlub3IpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE5NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTky MzoKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVQUk9UTyk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoxOTI0OgorXkleSXJldHVybjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxOTQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE5MjU6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxOTQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5Mjc6CiteSWlm IChhcmctPm1ham9yID4gNykgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzE5NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkyODoK K15JXkkvKiBXYWl0IGZvciBhIHNlY29uZCBJTklUIHJlcXVlc3Qgd2l0aCBhIDcuWCB2ZXJzaW9u ICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk1MTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTI5OgorXkleSXNlbmRfcmVwbHlf b2socmVxLCAmb3V0YXJnLCBzaXplb2Yob3V0YXJnKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTk1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxOTMwOgorXkleSXJldHVybjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxOTUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE5MzE6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx OTU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5MzM6CiteSWlmIChh cmctPm1pbm9yID49IDYpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxOTU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5MzQ6Cite SV5JaWYgKGFyZy0+bWF4X3JlYWRhaGVhZCA8IHNlLT5jb25uLm1heF9yZWFkYWhlYWQpJAoKRVJS T1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVu dAojMTk1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTM0OgorICAg ICAgICAgICAgICAgaWYgKGFyZy0+bWF4X3JlYWRhaGVhZCA8IHNlLT5jb25uLm1heF9yZWFkYWhl YWQpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTU3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5MzU6CiteSV5JXklzZS0+ Y29ubi5tYXhfcmVhZGFoZWFkID0gYXJnLT5tYXhfcmVhZGFoZWFkOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MTkzNjoKK15JXklpZiAoYXJnLT5mbGFncyAmIEZVU0VfQVNZTkNfUkVB RCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMg c3RhdGVtZW50CiMxOTU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5 MzY6CisgICAgICAgICAgICAgICBpZiAoYXJnLT5mbGFncyAmIEZVU0VfQVNZTkNfUkVBRCkKWy4u Ll0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NTk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkzNzoKK15JXkleSXNlLT5jb25uLmNh cGFibGUgfD0gRlVTRV9DQVBfQVNZTkNfUkVBRDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxOTYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE5Mzg6CiteSV5JaWYgKGFyZy0+ZmxhZ3MgJiBGVVNFX1BPU0lYX0xPQ0tTKSQKCkVSUk9S OiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQK IzE5NjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkzODoKKyAgICAg ICAgICAgICAgIGlmIChhcmctPmZsYWdzICYgRlVTRV9QT1NJWF9MT0NLUykKWy4uLl0KCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NjE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTkzOToKK15JXkleSXNlLT5jb25uLmNhcGFibGUgfD0g RlVTRV9DQVBfUE9TSVhfTE9DS1M7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTk2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTQw OgorXkleSWlmIChhcmctPmZsYWdzICYgRlVTRV9BVE9NSUNfT19UUlVOQykkCgpFUlJPUjogYnJh Y2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxOTYy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NDA6CisgICAgICAgICAg ICAgICBpZiAoYXJnLT5mbGFncyAmIEZVU0VfQVRPTUlDX09fVFJVTkMpClsuLi5dCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTYzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NDE6CiteSV5JXklzZS0+Y29ubi5jYXBhYmxlIHw9IEZV U0VfQ0FQX0FUT01JQ19PX1RSVU5DOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE5NjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk0 MjoKK15JXklpZiAoYXJnLT5mbGFncyAmIEZVU0VfRVhQT1JUX1NVUFBPUlQpJAoKRVJST1I6IGJy YWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTk2 NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTQyOgorICAgICAgICAg ICAgICAgaWYgKGFyZy0+ZmxhZ3MgJiBGVVNFX0VYUE9SVF9TVVBQT1JUKQpbLi4uXQoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk2NTogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTQzOgorXkleSV5Jc2UtPmNvbm4uY2FwYWJsZSB8PSBG VVNFX0NBUF9FWFBPUlRfU1VQUE9SVDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxOTY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5 NDQ6CiteSV5JaWYgKGFyZy0+ZmxhZ3MgJiBGVVNFX0RPTlRfTUFTSykkCgpFUlJPUjogYnJhY2Vz IHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxOTY2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NDQ6CisgICAgICAgICAgICAg ICBpZiAoYXJnLT5mbGFncyAmIEZVU0VfRE9OVF9NQVNLKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxOTQ1OgorXkleSV5Jc2UtPmNvbm4uY2FwYWJsZSB8PSBGVVNFX0NBUF9E T05UX01BU0s7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk2 ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTQ2OgorXkleSWlmIChh cmctPmZsYWdzICYgRlVTRV9GTE9DS19MT0NLUykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNl c3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxOTY4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NDY6CisgICAgICAgICAgICAgICBpZiAoYXJnLT5m bGFncyAmIEZVU0VfRkxPQ0tfTE9DS1MpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxOTY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE5NDc6CiteSV5JXklzZS0+Y29ubi5jYXBhYmxlIHw9IEZVU0VfQ0FQX0ZMT0NLX0xPQ0tT OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NzA6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk0ODoKK15JXklpZiAoYXJnLT5mbGFn cyAmIEZVU0VfQVVUT19JTlZBTF9EQVRBKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2Fy eSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE5NzA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk0ODoKKyAgICAgICAgICAgICAgIGlmIChhcmctPmZsYWdz ICYgRlVTRV9BVVRPX0lOVkFMX0RBVEEpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxOTcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE5NDk6CiteSV5JXklzZS0+Y29ubi5jYXBhYmxlIHw9IEZVU0VfQ0FQX0FVVE9fSU5WQUxf REFUQTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTcyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NTA6CiteSV5JaWYgKGFyZy0+ ZmxhZ3MgJiBGVVNFX0RPX1JFQURESVJQTFVTKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vz c2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE5NzI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk1MDoKKyAgICAgICAgICAgICAgIGlmIChhcmctPmZs YWdzICYgRlVTRV9ET19SRUFERElSUExVUykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MTk1MToKK15JXkleSXNlLT5jb25uLmNhcGFibGUgfD0gRlVTRV9DQVBfUkVBRERJUlBM VVM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk3NDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTUyOgorXkleSWlmIChhcmctPmZs YWdzICYgRlVTRV9SRUFERElSUExVU19BVVRPKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vz c2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE5NzQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk1MjoKKyAgICAgICAgICAgICAgIGlmIChhcmctPmZs YWdzICYgRlVTRV9SRUFERElSUExVU19BVVRPKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTk3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxOTUzOgorXkleSV5Jc2UtPmNvbm4uY2FwYWJsZSB8PSBGVVNFX0NBUF9SRUFERElS UExVU19BVVRPOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5 NzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk1NDoKK15JXklpZiAo YXJnLT5mbGFncyAmIEZVU0VfQVNZTkNfRElPKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vz c2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE5NzY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk1NDoKKyAgICAgICAgICAgICAgIGlmIChhcmctPmZs YWdzICYgRlVTRV9BU1lOQ19ESU8pClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxOTc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE5NTU6CiteSV5JXklzZS0+Y29ubi5jYXBhYmxlIHw9IEZVU0VfQ0FQX0FTWU5DX0RJTzskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTc4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NTY6CiteSV5JaWYgKGFyZy0+ZmxhZ3MgJiBG VVNFX1dSSVRFQkFDS19DQUNIRSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9y IGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxOTc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE5NTY6CisgICAgICAgICAgICAgICBpZiAoYXJnLT5mbGFncyAmIEZV U0VfV1JJVEVCQUNLX0NBQ0hFKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTk3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox OTU3OgorXkleSV5Jc2UtPmNvbm4uY2FwYWJsZSB8PSBGVVNFX0NBUF9XUklURUJBQ0tfQ0FDSEU7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk4MDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTU4OgorXkleSWlmIChhcmctPmZsYWdz ICYgRlVTRV9OT19PUEVOX1NVUFBPUlQpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5 IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTk4MDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTU4OgorICAgICAgICAgICAgICAgaWYgKGFyZy0+ZmxhZ3Mg JiBGVVNFX05PX09QRU5fU1VQUE9SVCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE5ODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MTk1OToKK15JXkleSXNlLT5jb25uLmNhcGFibGUgfD0gRlVTRV9DQVBfTk9fT1BFTl9TVVBQ T1JUOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5ODI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk2MDoKK15JXklpZiAoYXJnLT5m bGFncyAmIEZVU0VfUEFSQUxMRUxfRElST1BTKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vz c2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE5ODI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk2MDoKKyAgICAgICAgICAgICAgIGlmIChhcmctPmZs YWdzICYgRlVTRV9QQVJBTExFTF9ESVJPUFMpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxOTgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE5NjE6CiteSV5JXklzZS0+Y29ubi5jYXBhYmxlIHw9IEZVU0VfQ0FQX1BBUkFMTEVM X0RJUk9QUzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTg0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NjI6CiteSV5JaWYgKGFy Zy0+ZmxhZ3MgJiBGVVNFX1BPU0lYX0FDTCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nh cnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxOTg0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NjI6CisgICAgICAgICAgICAgICBpZiAoYXJnLT5mbGFn cyAmIEZVU0VfUE9TSVhfQUNMKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTk4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzox OTYzOgorXkleSV5Jc2UtPmNvbm4uY2FwYWJsZSB8PSBGVVNFX0NBUF9QT1NJWF9BQ0w7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk4NjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTY0OgorXkleSWlmIChhcmctPmZsYWdzICYgRlVT RV9IQU5ETEVfS0lMTFBSSVYpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBh bGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTk4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoxOTY0OgorICAgICAgICAgICAgICAgaWYgKGFyZy0+ZmxhZ3MgJiBGVVNF X0hBTkRMRV9LSUxMUFJJVikKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzE5ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk2 NToKK15JXkleSXNlLT5jb25uLmNhcGFibGUgfD0gRlVTRV9DQVBfSEFORExFX0tJTExQUklWOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5ODg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk2NjoKK15JXklpZiAoYXJnLT5mbGFncyAm IEZVU0VfTk9fT1BFTkRJUl9TVVBQT1JUKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2Fy eSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE5ODg6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk2NjoKKyAgICAgICAgICAgICAgIGlmIChhcmctPmZsYWdz ICYgRlVTRV9OT19PUEVORElSX1NVUFBPUlQpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxOTg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE5Njc6CiteSV5JXklzZS0+Y29ubi5jYXBhYmxlIHw9IEZVU0VfQ0FQX05PX09QRU5E SVJfU1VQUE9SVDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx OTkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5Njg6CiteSV5JaWYg KCEoYXJnLT5mbGFncyAmIEZVU0VfTUFYX1BBR0VTKSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTk2OToKK15JXkleSXNpemVfdCBtYXhfYnVmc2l6ZSA9JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk5MjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxOTcwOgorXkleSV5JXklGVVNFX0RFRkFVTFRfTUFYX1BBR0VTX1BF Ul9SRVEgKiBnZXRwYWdlc2l6ZSgpJAoKRVJST1I6IHVzZSBxZW11X3JlYWxfaG9zdF9wYWdlX3Np emUgaW5zdGVhZCBvZiBnZXRwYWdlc2l6ZSgpCiMxOTkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjE5NzA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVT RV9ERUZBVUxUX01BWF9QQUdFU19QRVJfUkVRICogZ2V0cGFnZXNpemUoKQoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk5MzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoxOTcxOgorXkleSV5JXkkrIEZVU0VfQlVGRkVSX0hFQURFUl9TSVpF OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5OTQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk3MjoKK15JXkleSWlmIChidWZzaXpl ID4gbWF4X2J1ZnNpemUpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxOTk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NzM6Cite SV5JXkleSWJ1ZnNpemUgPSBtYXhfYnVmc2l6ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxOTk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE5NzQ6CiteSV5JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTk5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTc1Ogor XkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTk4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5NzY6CiteSX0gZWxzZSB7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk5OTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTc3OgorXkleSXNlLT5jb25uLm1heF9yZWFk YWhlYWQgPSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIw MDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk3ODoKK15JfSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMDI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk4MDoKK15JaWYgKHNlLT5jb25uLnByb3RvX21p bm9yID49IDE0KSB7JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzIwMDU6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk4MzoKKyAgICAgICAgICAgICAg IHNlLT5jb25uLmNhcGFibGUgfD0gRlVTRV9DQVBfU1BMSUNFX1dSSVRFIHwgRlVTRV9DQVBfU1BM SUNFX01PVkU7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDA1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5ODM6CiteSV5Jc2UtPmNv bm4uY2FwYWJsZSB8PSBGVVNFX0NBUF9TUExJQ0VfV1JJVEUgfCBGVVNFX0NBUF9TUExJQ0VfTU9W RTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDA3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5ODU6CiteSV5Jc2UtPmNvbm4uY2Fw YWJsZSB8PSBGVVNFX0NBUF9TUExJQ0VfUkVBRDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMDA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjE5ODc6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyMDEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5ODg6CiteSWlm IChzZS0+Y29ubi5wcm90b19taW5vciA+PSAxOCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNl c3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMDEwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5ODg6CisgICAgICAgaWYgKHNlLT5jb25uLnByb3Rv X21pbm9yID49IDE4KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjAxMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTg5Ogor XkleSXNlLT5jb25uLmNhcGFibGUgfD0gRlVTRV9DQVBfSU9DVExfRElSOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTk5MToKK15JLyogRGVmYXVsdCBzZXR0aW5ncyBmb3IgbW9kZXJu IGZpbGVzeXN0ZW1zLiQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyog b24gYSBzZXBhcmF0ZSBsaW5lCiMyMDEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjE5OTE6CisgICAgICAgLyogRGVmYXVsdCBzZXR0aW5ncyBmb3IgbW9kZXJuIGZpbGVz eXN0ZW1zLgoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAxNDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTkyOgorXkkgKiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMTU6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTk5MzoKK15JICogTW9zdCBvZiB0aGVzZSBjYXBhYmls aXRpZXMgd2VyZSBkaXNhYmxlZCBieSBkZWZhdWx0IGluJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjAxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoxOTk0OgorXkkgKiBsaWJmdXNlMiBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkg cmVhc29ucy4gSW4gbGliZnVzZTMsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjAxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoxOTk1 OgorXkkgKiB3ZSBjYW4gZmluYWxseSBlbmFibGUgdGhlbSBieSBkZWZhdWx0IChhcyBsb25nIGFz IHRoZXkncmUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDE4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5OTY6CiteSSAqIHN1cHBv cnRlZCBieSB0aGUga2VybmVsKS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMDE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE5OTc6 CiteSSAqLyQKCkVSUk9SOiBNYWNyb3Mgd2l0aCBjb21wbGV4IHZhbHVlcyBzaG91bGQgYmUgZW5j bG9zZWQgaW4gcGFyZW50aGVzaXMKIzIwMjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MTk5ODoKKyNkZWZpbmUgTExfU0VUX0RFRkFVTFQoY29uZCwgY2FwKSBcCisgICAg ICAgaWYgKChjb25kKSAmJiAoc2UtPmNvbm4uY2FwYWJsZSAmIChjYXApKSkgXAorICAgICAgICAg ICAgICAgc2UtPmNvbm4ud2FudCB8PSAoY2FwKQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjAyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoxOTk5OgorXklpZiAoKGNvbmQpICYmIChzZS0+Y29ubi5jYXBhYmxlICYgKGNhcCkpKSBcJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAyMjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDAwOgorXkleSXNlLT5jb25uLndhbnQgfD0g KGNhcCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDIzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwMDE6CiteSUxMX1NFVF9ERUZB VUxUKDEsIEZVU0VfQ0FQX0FTWU5DX1JFQUQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIwMjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjAwMjoKK15JTExfU0VUX0RFRkFVTFQoMSwgRlVTRV9DQVBfUEFSQUxMRUxfRElST1BTKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDI1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwMDM6CiteSUxMX1NFVF9ERUZBVUxUKDEs IEZVU0VfQ0FQX0FVVE9fSU5WQUxfREFUQSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjAyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyMDA0OgorXklMTF9TRVRfREVGQVVMVCgxLCBGVVNFX0NBUF9IQU5ETEVfS0lMTFBSSVYpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMjc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjAwNToKK15JTExfU0VUX0RFRkFVTFQoMSwg RlVTRV9DQVBfQVNZTkNfRElPKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMDI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwMDY6 CiteSUxMX1NFVF9ERUZBVUxUKDEsIEZVU0VfQ0FQX0lPQ1RMX0RJUik7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAyOTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyMDA3OgorXklMTF9TRVRfREVGQVVMVCgxLCBGVVNFX0NBUF9BVE9N SUNfT19UUlVOQyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjAzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDA4OgorXklMTF9T RVRfREVGQVVMVChzZS0+b3Aud3JpdGVfYnVmLCBGVVNFX0NBUF9TUExJQ0VfUkVBRCk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAzMTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDA5OgorXklMTF9TRVRfREVGQVVMVChzZS0+b3Au Z2V0bGsgJiYgc2UtPm9wLnNldGxrLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIwMzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjAx MDoKK15JXkkgICAgICAgRlVTRV9DQVBfUE9TSVhfTE9DS1MpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjAxMToKK15JTExfU0VUX0RFRkFVTFQoc2UtPm9wLmZsb2NrLCBGVVNFX0NB UF9GTE9DS19MT0NLUyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjAzNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDEyOgorXklM TF9TRVRfREVGQVVMVChzZS0+b3AucmVhZGRpcnBsdXMsIEZVU0VfQ0FQX1JFQURESVJQTFVTKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDM1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwMTM6CiteSUxMX1NFVF9ERUZBVUxUKHNl LT5vcC5yZWFkZGlycGx1cyAmJiBzZS0+b3AucmVhZGRpciwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDM2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIwMTQ6CiteSV5JICAgICAgIEZVU0VfQ0FQX1JFQURESVJQTFVTX0FVVE8pOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwMzc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjAxNToKK15Jc2UtPmNvbm4udGltZV9ncmFu ID0gMTskCgpFUlJPUjogdHJhaWxpbmcgd2hpdGVzcGFjZQojMjAzODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDE2OgorXkkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMDM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIwMTY6CiteSSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzIwMzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjAxNzoKK15J aWYgKGJ1ZnNpemUgPCBGVVNFX01JTl9SRUFEX0JVRkZFUikgeyQKCldBUk5JTkc6IGxpbmUgb3Zl ciA4MCBjaGFyYWN0ZXJzCiMyMDQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjIwMTg6CisgICAgICAgICAgICAgICBmdXNlX2xvZyhGVVNFX0xPR19FUlIsICJmdXNlOiB3 YXJuaW5nOiBidWZmZXIgc2l6ZSB0b28gc21hbGw6ICV6dVxuIiwKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjAxODoKK15JXklmdXNlX2xvZyhGVVNFX0xPR19FUlIsICJmdXNlOiB3YXJu aW5nOiBidWZmZXIgc2l6ZSB0b28gc21hbGw6ICV6dVxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIwMTk6CiteSV5JXklidWZzaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMDQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIwMjA6CiteSV5JYnVmc2l6ZSA9IEZVU0VfTUlOX1JFQURfQlVGRkVSOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNDM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjAyMToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjAyMjoKK15Jc2UtPmJ1ZnNpemUgPSBidWZzaXplOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjAyNDoKK15JaWYgKHNlLT5jb25uLm1heF93cml0ZSA+IGJ1ZnNpemUg LSBGVVNFX0JVRkZFUl9IRUFERVJfU0laRSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nh cnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMDQ2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwMjQ6CisgICAgICAgaWYgKHNlLT5jb25uLm1heF93cml0 ZSA+IGJ1ZnNpemUgLSBGVVNFX0JVRkZFUl9IRUFERVJfU0laRSkKWy4uLl0KCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjAyNToKK15JXklzZS0+Y29ubi5tYXhfd3JpdGUgPSBidWZzaXpl IC0gRlVTRV9CVUZGRVJfSEVBREVSX1NJWkU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjA0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyMDI3OgorXklzZS0+Z290X2luaXQgPSAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIwNTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjAyODoKK15JaWYgKHNlLT5vcC5pbml0KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vz c2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzIwNTA6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjAyODoKKyAgICAgICBpZiAoc2UtPm9wLmluaXQpClsu Li5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDUxOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwMjk6CiteSV5Jc2UtPm9wLmluaXQo c2UtPnVzZXJkYXRhLCAmc2UtPmNvbm4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIwNTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjAzMToKK15JaWYgKHNlLT5jb25uLndhbnQgJiAofnNlLT5jb25uLmNhcGFibGUpKSB7JAoKV0FS TklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzIwNTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjAzMjoKKyAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0VfTE9H X0VSUiwgImZ1c2U6IGVycm9yOiBmaWxlc3lzdGVtIHJlcXVlc3RlZCBjYXBhYmlsaXRpZXMgIgoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA1NDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDMyOgorXkleSWZ1c2VfbG9nKEZVU0VfTE9H X0VSUiwgImZ1c2U6IGVycm9yOiBmaWxlc3lzdGVtIHJlcXVlc3RlZCBjYXBhYmlsaXRpZXMgIiQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNTU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjAzMzoKK15JXkleSSIweCV4IHRoYXQgYXJl IG5vdCBzdXBwb3J0ZWQgYnkga2VybmVsLCBhYm9ydGluZy5cbiIsJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyMDM0OgorXkleSV5Jc2UtPmNvbm4ud2FudCAmICh+c2UtPmNvbm4uY2Fw YWJsZSkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNTc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjAzNToKK15JXklmdXNlX3Jl cGx5X2VycihyZXEsIEVQUk9UTyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjA1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDM2 OgorXkleSXNlLT5lcnJvciA9IC1FUFJPVE87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjA1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyMDM3OgorXkleSWZ1c2Vfc2Vzc2lvbl9leGl0KHNlKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIwMzg6CiteSV5JcmV0dXJuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIwNjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjAzOToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzIwNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA0MToKK15JdW5z aWduZWQgbWF4X3JlYWRfbW8gPSBnZXRfbWF4X3JlYWQoc2UtPm1vKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjIwNDI6CiteSWlmIChzZS0+Y29ubi5tYXhfcmVhZCAhPSBtYXhfcmVh ZF9tbykgeyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMyMDY1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNDM6CisgICAgICAgICAgICAgICBmdXNl X2xvZyhGVVNFX0xPR19FUlIsICJmdXNlOiBlcnJvcjogaW5pdCgpIGFuZCBmdXNlX3Nlc3Npb25f bmV3KCkgIgoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA2NTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDQzOgorXkleSWZ1c2VfbG9n KEZVU0VfTE9HX0VSUiwgImZ1c2U6IGVycm9yOiBpbml0KCkgYW5kIGZ1c2Vfc2Vzc2lvbl9uZXco KSAiJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA2NjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDQ0OgorXkleSV5JInJlcXVlc3Rl ZCBkaWZmZXJlbnQgbWF4aW11bSByZWFkIHNpemUgKCV1IHZzICV1KVxuIiwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDY3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIwNDU6CiteSV5JXklzZS0+Y29ubi5tYXhfcmVhZCwgbWF4X3Jl YWRfbW8pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNjg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA0NjoKK15JXklmdXNlX3Jl cGx5X2VycihyZXEsIEVQUk9UTyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjA2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDQ3 OgorXkleSXNlLT5lcnJvciA9IC1FUFJPVE87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjA3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyMDQ4OgorXkleSWZ1c2Vfc2Vzc2lvbl9leGl0KHNlKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIwNDk6CiteSV5JcmV0dXJuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIwNzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjA1MDoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzIwNzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA1MjoKK15JaWYg KHNlLT5jb25uLm1heF93cml0ZSA8IGJ1ZnNpemUgLSBGVVNFX0JVRkZFUl9IRUFERVJfU0laRSkg eyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNzU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA1MzoKK15JXklzZS0+YnVmc2l6ZSA9 IHNlLT5jb25uLm1heF93cml0ZSArIEZVU0VfQlVGRkVSX0hFQURFUl9TSVpFOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNzY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA1NDoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjA1NToKK15JaWYgKGFyZy0+ZmxhZ3MgJiBGVVNFX01BWF9QQUdFUykgeyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwNzg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA1NjoKK15JXklvdXRhcmcuZmxhZ3MgfD0gRlVTRV9N QVhfUEFHRVM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA3 OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDU3OgorXkleSW91dGFy Zy5tYXhfcGFnZXMgPSAoc2UtPmNvbm4ubWF4X3dyaXRlIC0gMSkgLyBnZXRwYWdlc2l6ZSgpICsg MTskCgpFUlJPUjogdXNlIHFlbXVfcmVhbF9ob3N0X3BhZ2Vfc2l6ZSBpbnN0ZWFkIG9mIGdldHBh Z2VzaXplKCkKIzIwNzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA1 NzoKKyAgICAgICAgICAgICAgIG91dGFyZy5tYXhfcGFnZXMgPSAoc2UtPmNvbm4ubWF4X3dyaXRl IC0gMSkgLyBnZXRwYWdlc2l6ZSgpICsgMTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIwODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjA1ODoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIw ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA2MDoKK15JLyogQWx3 YXlzIGVuYWJsZSBiaWcgd3JpdGVzLCB0aGlzIGlzIHN1cGVyc2VkZWQkCgpXQVJOSU5HOiBCbG9j ayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMjA4MjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDYwOgorICAgICAgIC8qIEFsd2F5 cyBlbmFibGUgYmlnIHdyaXRlcywgdGhpcyBpcyBzdXBlcnNlZGVkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjIwNjE6CiteSSAgIGJ5IHRoZSBtYXhfd3JpdGUgb3B0aW9uICovJAoKV0FS TklORzogQmxvY2sgY29tbWVudHMgdXNlICogb24gc3Vic2VxdWVudCBsaW5lcwojMjA4MzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDYxOgorICAgICAgIC8qIEFsd2F5 cyBlbmFibGUgYmlnIHdyaXRlcywgdGhpcyBpcyBzdXBlcnNlZGVkCisgICAgICAgICAgYnkgdGhl IG1heF93cml0ZSBvcHRpb24gKi8KCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIHRyYWls aW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQojMjA4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyMDYxOgorICAgICAgICAgIGJ5IHRoZSBtYXhfd3JpdGUgb3B0aW9uICov CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDg0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNjI6CiteSW91dGFyZy5mbGFncyB8PSBG VVNFX0JJR19XUklURVM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjA4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDY0OgorXklp ZiAoc2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX0FTWU5DX1JFQUQpJAoKRVJST1I6IGJyYWNlcyB7 fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjA4NjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDY0OgorICAgICAgIGlmIChzZS0+ Y29ubi53YW50ICYgRlVTRV9DQVBfQVNZTkNfUkVBRCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjA2NToKK15JXklvdXRhcmcuZmxhZ3MgfD0gRlVTRV9BU1lOQ19SRUFEOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIwODg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA2NjoKK15JaWYgKHNlLT5jb25uLndhbnQg JiBGVVNFX0NBUF9QT1NJWF9MT0NLUykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nhcnkg Zm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMDg4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIwNjY6CisgICAgICAgaWYgKHNlLT5jb25uLndhbnQgJiBGVVNF X0NBUF9QT1NJWF9MT0NLUykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIwODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA2 NzoKK15JXklvdXRhcmcuZmxhZ3MgfD0gRlVTRV9QT1NJWF9MT0NLUzskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjIwNjg6CiteSWlmIChzZS0+Y29ubi53YW50ICYgRlVTRV9DQVBfQVRP TUlDX09fVFJVTkMpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJt cyBvZiB0aGlzIHN0YXRlbWVudAojMjA5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyMDY4OgorICAgICAgIGlmIChzZS0+Y29ubi53YW50ICYgRlVTRV9DQVBfQVRPTUlD X09fVFJVTkMpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyMDkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNjk6CiteSV5J b3V0YXJnLmZsYWdzIHw9IEZVU0VfQVRPTUlDX09fVFJVTkM7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyMDcwOgorXklpZiAoc2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX0VYUE9SVF9T VVBQT1JUKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2Yg dGhpcyBzdGF0ZW1lbnQKIzIwOTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjA3MDoKKyAgICAgICBpZiAoc2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX0VYUE9SVF9TVVBQ T1JUKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA5 MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDcxOgorXkleSW91dGFy Zy5mbGFncyB8PSBGVVNFX0VYUE9SVF9TVVBQT1JUOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzIwOTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjA3MjoKK15JaWYgKHNlLT5jb25uLndhbnQgJiBGVVNFX0NBUF9ET05UX01BU0spJAoK RVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRl bWVudAojMjA5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDcyOgor ICAgICAgIGlmIChzZS0+Y29ubi53YW50ICYgRlVTRV9DQVBfRE9OVF9NQVNLKQpbLi4uXQoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA5NTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDczOgorXkleSW91dGFyZy5mbGFncyB8PSBGVVNF X0RPTlRfTUFTSzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy MDk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNzQ6CiteSWlmIChz ZS0+Y29ubi53YW50ICYgRlVTRV9DQVBfRkxPQ0tfTE9DS1MpJAoKRVJST1I6IGJyYWNlcyB7fSBh cmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjA5NjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDc0OgorICAgICAgIGlmIChzZS0+Y29u bi53YW50ICYgRlVTRV9DQVBfRkxPQ0tfTE9DS1MpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIwNzU6CiteSV5Jb3V0YXJnLmZsYWdzIHw9IEZVU0VfRkxPQ0tfTE9DS1M7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA5ODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDc2OgorXklpZiAoc2UtPmNvbm4ud2FudCAm IEZVU0VfQ0FQX0FVVE9fSU5WQUxfREFUQSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nh cnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMDk4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwNzY6CisgICAgICAgaWYgKHNlLT5jb25uLndhbnQgJiBG VVNFX0NBUF9BVVRPX0lOVkFMX0RBVEEpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMDk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjIwNzc6CiteSV5Jb3V0YXJnLmZsYWdzIHw9IEZVU0VfQVVUT19JTlZBTF9EQVRBOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMDA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA3ODoKK15JaWYgKHNlLT5jb25uLndhbnQgJiBG VVNFX0NBUF9SRUFERElSUExVUykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9y IGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMTAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjIwNzg6CisgICAgICAgaWYgKHNlLT5jb25uLndhbnQgJiBGVVNFX0NB UF9SRUFERElSUExVUykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIxMDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA3OToK K15JXklvdXRhcmcuZmxhZ3MgfD0gRlVTRV9ET19SRUFERElSUExVUzskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjIwODA6CiteSWlmIChzZS0+Y29ubi53YW50ICYgRlVTRV9DQVBfUkVB RERJUlBMVVNfQVVUTykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBh cm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMTAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIwODA6CisgICAgICAgaWYgKHNlLT5jb25uLndhbnQgJiBGVVNFX0NBUF9SRUFE RElSUExVU19BVVRPKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjEwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDgxOgor XkleSW91dGFyZy5mbGFncyB8PSBGVVNFX1JFQURESVJQTFVTX0FVVE87JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEwNDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyMDgyOgorXklpZiAoc2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX0FT WU5DX0RJTykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9m IHRoaXMgc3RhdGVtZW50CiMyMTA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjIwODI6CisgICAgICAgaWYgKHNlLT5jb25uLndhbnQgJiBGVVNFX0NBUF9BU1lOQ19ESU8p ClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTA1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwODM6CiteSV5Jb3V0YXJnLmZs YWdzIHw9IEZVU0VfQVNZTkNfRElPOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIxMDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA4 NDoKK15JaWYgKHNlLT5jb25uLndhbnQgJiBGVVNFX0NBUF9XUklURUJBQ0tfQ0FDSEUpJAoKRVJS T1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVu dAojMjEwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDg0OgorICAg ICAgIGlmIChzZS0+Y29ubi53YW50ICYgRlVTRV9DQVBfV1JJVEVCQUNLX0NBQ0hFKQpbLi4uXQoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEwNzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDg1OgorXkleSW91dGFyZy5mbGFncyB8PSBG VVNFX1dSSVRFQkFDS19DQUNIRTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMTA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwODY6 CiteSWlmIChzZS0+Y29ubi53YW50ICYgRlVTRV9DQVBfUE9TSVhfQUNMKSQKCkVSUk9SOiBicmFj ZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzIxMDg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA4NjoKKyAgICAgICBpZiAo c2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX1BPU0lYX0FDTCkKWy4uLl0KCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjA4NzoKK15JXklvdXRhcmcuZmxhZ3MgfD0gRlVTRV9QT1NJWF9BQ0w7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjExMDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDg4OgorXklvdXRhcmcubWF4X3JlYWRh aGVhZCA9IHNlLT5jb25uLm1heF9yZWFkYWhlYWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjExMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyMDg5OgorXklvdXRhcmcubWF4X3dyaXRlID0gc2UtPmNvbm4ubWF4X3dyaXRlOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMTI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA5MDoKK15JaWYgKHNlLT5jb25uLnByb3RvX21p bm9yID49IDEzKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjExMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDkxOgorXkleSWlm IChzZS0+Y29ubi5tYXhfYmFja2dyb3VuZCA+PSAoMSA8PCAxNikpJAoKRVJST1I6IGJyYWNlcyB7 fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjExMzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMDkxOgorICAgICAgICAgICAgICAg aWYgKHNlLT5jb25uLm1heF9iYWNrZ3JvdW5kID49ICgxIDw8IDE2KSkKWy4uLl0KCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMTQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA5MjoKK15JXkleSXNlLT5jb25uLm1heF9iYWNrZ3JvdW5k ID0gKDEgPDwgMTYpIC0gMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyMTE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIwOTM6Cite SV5JaWYgKHNlLT5jb25uLmNvbmdlc3Rpb25fdGhyZXNob2xkID4gc2UtPmNvbm4ubWF4X2JhY2tn cm91bmQpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0 aGlzIHN0YXRlbWVudAojMjExNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyMDkzOgorICAgICAgICAgICAgICAgaWYgKHNlLT5jb25uLmNvbmdlc3Rpb25fdGhyZXNob2xk ID4gc2UtPmNvbm4ubWF4X2JhY2tncm91bmQpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMTE2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIwOTQ6CiteSV5JXklzZS0+Y29ubi5jb25nZXN0aW9uX3RocmVzaG9sZCA9IHNlLT5j b25uLm1heF9iYWNrZ3JvdW5kOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIxMTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA5NToK K15JXklpZiAoIXNlLT5jb25uLmNvbmdlc3Rpb25fdGhyZXNob2xkKSB7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjExODogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyMDk2OgorXkleSV5Jc2UtPmNvbm4uY29uZ2VzdGlvbl90aHJlc2hv bGQgPSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMTk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjA5NzoKK15JXkleSV5Jc2UtPmNv bm4ubWF4X2JhY2tncm91bmQgKiAzIC8gNDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyMTIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjIwOTg6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzIxMjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjEwMDoKK15JXklv dXRhcmcubWF4X2JhY2tncm91bmQgPSBzZS0+Y29ubi5tYXhfYmFja2dyb3VuZDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTIzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxMDE6CiteSV5Jb3V0YXJnLmNvbmdlc3Rpb25fdGhyZXNo b2xkID0gc2UtPmNvbm4uY29uZ2VzdGlvbl90aHJlc2hvbGQ7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyMTAyOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjEyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTAz OgorXklpZiAoc2UtPmNvbm4ucHJvdG9fbWlub3IgPj0gMjMpJAoKRVJST1I6IGJyYWNlcyB7fSBh cmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjEyNTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTAzOgorICAgICAgIGlmIChzZS0+Y29u bi5wcm90b19taW5vciA+PSAyMykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIxMjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjEwNDoKK15JXklvdXRhcmcudGltZV9ncmFuID0gc2UtPmNvbm4udGltZV9ncmFuOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMjg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjEwNjoKK15JaWYgKHNlLT5kZWJ1ZykgeyQKCldBUk5J Tkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMyMTI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjIxMDc6CisgICAgICAgICAgICAgICBmdXNlX2xvZyhGVVNFX0xPR19E RUJVRywgIiAgIElOSVQ6ICV1LiV1XG4iLCBvdXRhcmcubWFqb3IsIG91dGFyZy5taW5vcik7CgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTI5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxMDc6CiteSV5JZnVzZV9sb2coRlVTRV9MT0df REVCVUcsICIgICBJTklUOiAldS4ldVxuIiwgb3V0YXJnLm1ham9yLCBvdXRhcmcubWlub3IpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMzA6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjEwODoKK15JXklmdXNlX2xvZyhGVVNFX0xP R19ERUJVRywgIiAgIGZsYWdzPTB4JTA4eFxuIiwgb3V0YXJnLmZsYWdzKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTMxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIxMDk6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICIg ICBtYXhfcmVhZGFoZWFkPTB4JTA4eFxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyMTMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjIxMTA6CiteSV5JXklvdXRhcmcubWF4X3JlYWRhaGVhZCk7JAoKV0FSTklORzogbGluZSBvdmVy IDgwIGNoYXJhY3RlcnMKIzIxMzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjExMToKKyAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCAiICAgbWF4 X3dyaXRlPTB4JTA4eFxuIiwgb3V0YXJnLm1heF93cml0ZSk7CgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIxMTE6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICIgICBtYXhfd3Jp dGU9MHglMDh4XG4iLCBvdXRhcmcubWF4X3dyaXRlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMTM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIxMTI6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICIgICBtYXhfYmFja2dy b3VuZD0laVxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy MTM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxMTM6CiteSV5JXklv dXRhcmcubWF4X2JhY2tncm91bmQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIxMzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjEx NDoKK15JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywgIiAgIGNvbmdlc3Rpb25fdGhyZXNob2xk PSVpXG4iLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMzc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjExNToKK15JXkleSW91dGFy Zy5jb25nZXN0aW9uX3RocmVzaG9sZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjEzODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy MTE2OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCAiICAgdGltZV9ncmFuPSV1XG4iLCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxMzk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjExNzoKK15JXkleSW91dGFyZy50aW1lX2dy YW4pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNDA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjExODoKK15JfSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNDE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjExOToKK15JaWYgKGFyZy0+bWlub3IgPCA1KSQKCkVSUk9S OiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQK IzIxNDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjExOToKKyAgICAg ICBpZiAoYXJnLT5taW5vciA8IDUpClsuLi5dCisgICAgICAgZWxzZSBpZiAoYXJnLT5taW5vciA8 IDIzKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE0 MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTIwOgorXkleSW91dGFy Z3NpemUgPSBGVVNFX0NPTVBBVF9JTklUX09VVF9TSVpFOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjEyMToKK15JZWxzZSBpZiAoYXJnLT5taW5vciA8IDIzKSQKCkVSUk9SOiBicmFj ZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzIxNDM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjEyMToKKyAgICAgICBlbHNl IGlmIChhcmctPm1pbm9yIDwgMjMpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyMTQ0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjIxMjI6CiteSV5Jb3V0YXJnc2l6ZSA9IEZVU0VfQ09NUEFUXzIyX0lOSVRfT1VUX1NJWkU7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE0NjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTI0OgorXklzZW5kX3JlcGx5X29rKHJlcSwg Jm91dGFyZywgb3V0YXJnc2l6ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjE1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTI5 OgorXklzdHJ1Y3QgZnVzZV9zZXNzaW9uICpzZSA9IHJlcS0+c2U7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyMTMxOgorXkkodm9pZCkgbm9kZWlkOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjEzMjoKK15JKHZvaWQpIGluYXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjEzNDoKK15Jc2UtPmdvdF9kZXN0cm95ID0gMTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjIxMzU6CiteSWlmIChzZS0+b3AuZGVzdHJveSkkCgpFUlJPUjogYnJhY2Vz IHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMTU3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxMzU6CisgICAgICAgaWYgKHNl LT5vcC5kZXN0cm95KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjE1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTM2Ogor XkleSXNlLT5vcC5kZXN0cm95KHNlLT51c2VyZGF0YSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjE2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyMTM4OgorXklzZW5kX3JlcGx5X29rKHJlcSwgTlVMTCwgMCk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE2NTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTQzOgorXklzdHJ1Y3QgZnVzZV9ub3RpZnlfcmVxICpwcmV2 ID0gbnJlcS0+cHJldjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyMTY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxNDQ6CiteSXN0 cnVjdCBmdXNlX25vdGlmeV9yZXEgKm5leHQgPSBucmVxLT5uZXh0OyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjE0NToKK15JcHJldi0+bmV4dCA9IG5leHQ7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE2ODogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyMTQ2OgorXkluZXh0LT5wcmV2ID0gcHJldjskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTcyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIxNTA6CiteSV5JXkkgIHN0cnVjdCBmdXNlX25vdGlmeV9yZXEg Km5leHQpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE3NDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTUyOgorXklzdHJ1Y3QgZnVz ZV9ub3RpZnlfcmVxICpwcmV2ID0gbmV4dC0+cHJldjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMTc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIxNTM6CiteSW5yZXEtPm5leHQgPSBuZXh0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjE1NDoKK15JbnJlcS0+cHJldiA9IHByZXY7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyMTU1OgorXklwcmV2LT5uZXh0ID0gbnJlcTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjIxNTY6CiteSW5leHQtPnByZXYgPSBucmVxOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjE2MToKK15JbnJlcS0+bmV4dCA9IG5yZXE7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE4NDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyMTYyOgorXklucmVxLT5wcmV2ID0gbnJlcTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTg4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIxNjY6CiteSV5JXkkgICAgY29uc3Qgdm9pZCAqaW5hcmcsIGNv bnN0IHN0cnVjdCBmdXNlX2J1ZiAqYnVmKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzIxOTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjE2ODoKK15Jc3RydWN0IGZ1c2Vfc2Vzc2lvbiAqc2UgPSByZXEtPnNlOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxOTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjE2OToKK15Jc3RydWN0IGZ1c2Vfbm90aWZ5X3JlcSAqbnJlcTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTkyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxNzA6CiteSXN0cnVjdCBmdXNlX25vdGlm eV9yZXEgKmhlYWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjE5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTcyOgorXklwdGhy ZWFkX211dGV4X2xvY2soJnNlLT5sb2NrKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyMTk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjIxNzM6CiteSWhlYWQgPSAmc2UtPm5vdGlmeV9saXN0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxOTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjE3NDoKK15JZm9yIChucmVxID0gaGVhZC0+bmV4dDsgbnJlcSAhPSBoZWFkOyBu cmVxID0gbnJlcS0+bmV4dCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIxOTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjE3NToK K15JXklpZiAobnJlcS0+dW5pcXVlID09IHJlcS0+dW5pcXVlKSB7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjE5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyMTc2OgorXkleSV5JbGlzdF9kZWxfbnJlcShucmVxKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTk5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxNzc6CiteSV5JXklicmVhazskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjIxNzg6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIyMDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjE3OToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzIyMDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjE4MDoKK15JcHRo cmVhZF9tdXRleF91bmxvY2soJnNlLT5sb2NrKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMjA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjIxODI6CiteSWlmIChucmVxICE9IGhlYWQpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVj ZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjIwNDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTgyOgorICAgICAgIGlmIChucmVxICE9IGhlYWQp ClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjA1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxODM6CiteSV5JbnJlcS0+cmVw bHkobnJlcSwgcmVxLCBub2RlaWQsIGluYXJnLCBidWYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjE4NzoKK15JXkleSSAgIHN0cnVjdCBpb3ZlYyAqaW92LCBpbnQgY291bnQpJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIxMTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTg5OgorXklzdHJ1Y3QgZnVzZV9vdXRfaGVh ZGVyIG91dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjEz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxOTE6CiteSWlmICghc2Ut PmdvdF9pbml0KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMg b2YgdGhpcyBzdGF0ZW1lbnQKIzIyMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjE5MToKKyAgICAgICBpZiAoIXNlLT5nb3RfaW5pdCkKWy4uLl0KCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjE5MjoKK15JXklyZXR1cm4gLUVOT1RDT05OOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMTY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjE5NDoKK15Jb3V0LnVuaXF1ZSA9IDA7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIxNzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTk1OgorXklvdXQuZXJyb3IgPSBub3RpZnlfY29kZTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjE4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIxOTY6CiteSWlvdlswXS5pb3ZfYmFzZSA9ICZv dXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIxOTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMTk3OgorXklpb3ZbMF0uaW92X2xl biA9IHNpemVvZihzdHJ1Y3QgZnVzZV9vdXRfaGVhZGVyKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIxOTk6CiteSXJldHVybiBmdXNlX3NlbmRfbXNnKHNlLCBOVUxMLCBpb3YsIGNv dW50KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjI2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyMDQ6CiteSWlmIChwaCAhPSBO VUxMKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIyNzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjA1OgorXkleSXN0cnVjdCBm dXNlX25vdGlmeV9wb2xsX3dha2V1cF9vdXQgb3V0YXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjIwNjoKK15JXklzdHJ1Y3QgaW92ZWMgaW92WzJdOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjIwODoKK15JXklvdXRhcmcua2ggPSBwaC0+a2g7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIzMjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjEwOgorXkleSWlvdlsxXS5pb3ZfYmFzZSA9ICZvdXRhcmc7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIzMzogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjExOgorXkleSWlvdlsxXS5pb3ZfbGVu ID0gc2l6ZW9mKG91dGFyZyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjIzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjEzOgor XkleSXJldHVybiBzZW5kX25vdGlmeV9pb3YocGgtPnNlLCBGVVNFX05PVElGWV9QT0xMLCBpb3Ys IDIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMzY6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjIxNDoKK15JfSBlbHNlIHskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjM3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyMTU6CiteSV5JcmV0dXJuIDA7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjIzODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjE2OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjI0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyMjIwOgorXkleSV5JXkkgICAgIG9mZl90IG9mZiwgb2ZmX3QgbGVuKSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyNDQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjIyMjoKK15Jc3RydWN0IGZ1c2Vfbm90aWZ5X2ludmFs X2lub2RlX291dCBvdXRhcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjI0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjIzOgor XklzdHJ1Y3QgaW92ZWMgaW92WzJdOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzIyNDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjIy NToKK15JaWYgKCFzZSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBh cm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMjQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIyMjU6CisgICAgICAgaWYgKCFzZSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyNDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjIyNjoKK15JXklyZXR1cm4gLUVJTlZBTDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjIyMjg6CiteSWlmIChzZS0+Y29ubi5wcm90b19tYWpvciA8IDYgfHwgc2Ut PmNvbm4ucHJvdG9fbWlub3IgPCAxMikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nhcnkg Zm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMjUwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIyMjg6CisgICAgICAgaWYgKHNlLT5jb25uLnByb3RvX21ham9y IDwgNiB8fCBzZS0+Y29ubi5wcm90b19taW5vciA8IDEyKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyMjI5OgorXkleSXJldHVybiAtRU5PU1lTOyQKCkVSUk9SOiB0cmFpbGlu ZyB3aGl0ZXNwYWNlCiMyMjUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjIyMzA6CiteSSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIy NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjIzMDoKK15JJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI1MzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjMxOgorXklvdXRhcmcuaW5vID0gaW5vOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyNTQ6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjIzMjoKK15Jb3V0YXJnLm9mZiA9IG9mZjskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjU1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyMzM6CiteSW91dGFyZy5sZW4gPSBsZW47JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI1NzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjM1OgorXklpb3ZbMV0uaW92X2Jhc2UgPSAm b3V0YXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyNTg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjIzNjoKK15JaW92WzFdLmlv dl9sZW4gPSBzaXplb2Yob3V0YXJnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyMjYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIy Mzg6CiteSXJldHVybiBzZW5kX25vdGlmeV9pb3Yoc2UsIEZVU0VfTk9USUZZX0lOVkFMX0lOT0RF LCBpb3YsIDIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIy NjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI0MjoKK15JXkleSV5J ICAgICBjb25zdCBjaGFyICpuYW1lLCBzaXplX3QgbmFtZWxlbikkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjIyNDQ6CiteSXN0cnVjdCBmdXNlX25vdGlmeV9pbnZhbF9lbnRyeV9vdXQg b3V0YXJnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyNjc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI0NToKK15Jc3RydWN0IGlv dmVjIGlvdlszXTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy MjY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyNDc6CiteSWlmICgh c2UpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlz IHN0YXRlbWVudAojMjI2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy MjQ3OgorICAgICAgIGlmICghc2UpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyMjcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjIyNDg6CiteSV5JcmV0dXJuIC1FSU5WQUw7JAoKRVJST1I6IHRyYWlsaW5nIHdoaXRlc3BhY2UK IzIyNzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI0OToKK15JJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI3MTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjQ5OgorXkkkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjIyNTA6CiteSWlmIChzZS0+Y29ubi5wcm90b19tYWpvciA8IDYgfHwgc2Ut PmNvbm4ucHJvdG9fbWlub3IgPCAxMikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nhcnkg Zm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMjcyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjIyNTA6CisgICAgICAgaWYgKHNlLT5jb25uLnByb3RvX21ham9y IDwgNiB8fCBzZS0+Y29ubi5wcm90b19taW5vciA8IDEyKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyMjUxOgorXkleSXJldHVybiAtRU5PU1lTOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyNzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjI1MzoKK15Jb3V0YXJnLnBhcmVudCA9IHBhcmVudDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjc2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyNTQ6CiteSW91dGFyZy5uYW1lbGVuID0gbmFtZWxlbjsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjc3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyNTU6CiteSW91dGFyZy5wYWRkaW5nID0g MDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjc5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyNTc6CiteSWlvdlsxXS5pb3ZfYmFz ZSA9ICZvdXRhcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjI4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjU4OgorXklpb3Zb MV0uaW92X2xlbiA9IHNpemVvZihvdXRhcmcpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIyODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjI1OToKK15JaW92WzJdLmlvdl9iYXNlID0gKHZvaWQgKiluYW1lOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjI2MDoKK15JaW92WzJdLmlvdl9sZW4gPSBuYW1lbGVuICsgMTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjg0OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyNjI6CiteSXJldHVybiBzZW5kX25vdGlm eV9pb3Yoc2UsIEZVU0VfTk9USUZZX0lOVkFMX0VOVFJZLCBpb3YsIDMpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjI2NjoKK15JXkleSV5JZnVzZV9pbm9fdCBwYXJlbnQsIGZ1c2Vf aW5vX3QgY2hpbGQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjI4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjY3OgorXkleSV5J Xkljb25zdCBjaGFyICpuYW1lLCBzaXplX3QgbmFtZWxlbikkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIyNjk6CiteSXN0cnVjdCBmdXNlX25vdGlmeV9kZWxldGVfb3V0IG91dGFyZzsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjkyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyNzA6CiteSXN0cnVjdCBpb3ZlYyBpb3Zb M107JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI5NDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjcyOgorXklpZiAoIXNlKSQKCkVS Uk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1l bnQKIzIyOTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI3MjoKKyAg ICAgICBpZiAoIXNlKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjI5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjczOgor XkleSXJldHVybiAtRUlOVkFMOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIyOTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI3NToK K15JaWYgKHNlLT5jb25uLnByb3RvX21ham9yIDwgNiB8fCBzZS0+Y29ubi5wcm90b19taW5vciA8 IDE4KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhp cyBzdGF0ZW1lbnQKIzIyOTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjI3NToKKyAgICAgICBpZiAoc2UtPmNvbm4ucHJvdG9fbWFqb3IgPCA2IHx8IHNlLT5jb25uLnBy b3RvX21pbm9yIDwgMTgpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyMjk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyNzY6 CiteSV5JcmV0dXJuIC1FTk9TWVM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjMwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjc4 OgorXklvdXRhcmcucGFyZW50ID0gcGFyZW50OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzIzMDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjI3OToKK15Jb3V0YXJnLmNoaWxkID0gY2hpbGQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjMwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyMjgwOgorXklvdXRhcmcubmFtZWxlbiA9IG5hbWVsZW47JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMwMzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyMjgxOgorXklvdXRhcmcucGFkZGluZyA9IDA7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMwNTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMjgzOgorXklpb3ZbMV0uaW92X2Jhc2UgPSAmb3V0YXJnOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzMDY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI4NDoKK15JaW92WzFdLmlvdl9sZW4gPSBz aXplb2Yob3V0YXJnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyMzA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyODU6CiteSWlv dlsyXS5pb3ZfYmFzZSA9ICh2b2lkICopbmFtZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMzA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjIyODY6CiteSWlvdlsyXS5pb3ZfbGVuID0gbmFtZWxlbiArIDE7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMxMDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyMjg4OgorXklyZXR1cm4gc2VuZF9ub3RpZnlfaW92KHNlLCBGVVNF X05PVElGWV9ERUxFVEUsIGlvdiwgMyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjMxNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy MjkyOgorXkleSV5JICAgICAgIG9mZl90IG9mZnNldCwgc3RydWN0IGZ1c2VfYnVmdmVjICpidWZ2 LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzMTU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI5MzoKK15JXkleSSAgICAgICBlbnVt IGZ1c2VfYnVmX2NvcHlfZmxhZ3MgZmxhZ3MpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjMxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyMjk1OgorXklzdHJ1Y3QgZnVzZV9vdXRfaGVhZGVyIG91dDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjIyOTY6CiteSXN0cnVjdCBmdXNlX25vdGlmeV9zdG9yZV9vdXQgb3V0YXJn OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzMTk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjI5NzoKK15Jc3RydWN0IGlvdmVjIGlv dlszXTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzIwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIyOTg6CiteSXNpemVfdCBzaXpl ID0gZnVzZV9idWZfc2l6ZShidWZ2KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyMzIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIy OTk6CiteSWludCByZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjMyMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzAxOgorXklp ZiAoIXNlKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2Yg dGhpcyBzdGF0ZW1lbnQKIzIzMjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjMwMToKKyAgICAgICBpZiAoIXNlKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjMyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyMzAyOgorXkleSXJldHVybiAtRUlOVkFMOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzIzMjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjMwNDoKK15JaWYgKHNlLT5jb25uLnByb3RvX21ham9yIDwgNiB8fCBzZS0+Y29ubi5w cm90b19taW5vciA8IDE1KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxs IGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzIzMjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjMwNDoKKyAgICAgICBpZiAoc2UtPmNvbm4ucHJvdG9fbWFqb3IgPCA2IHx8 IHNlLT5jb25uLnByb3RvX21pbm9yIDwgMTUpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMzI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIzMDU6CiteSV5JcmV0dXJuIC1FTk9TWVM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjMyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyMzA3OgorXklvdXQudW5pcXVlID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMzMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIzMDg6CiteSW91dC5lcnJvciA9IEZVU0VfTk9USUZZX1NUT1JFOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzMzI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjMxMDoKK15Jb3V0YXJnLm5vZGVpZCA9IGlubzskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzMzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzMTE6CiteSW91dGFyZy5vZmZzZXQgPSBvZmZzZXQ7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMzNDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzEyOgorXklvdXRhcmcuc2l6ZSA9IHNp emU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMzNTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzEzOgorXklvdXRhcmcucGFkZGlu ZyA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjMzNzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzE1OgorXklpb3ZbMF0uaW92 X2Jhc2UgPSAmb3V0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzIzMzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjMxNjoKK15JaW92 WzBdLmlvdl9sZW4gPSBzaXplb2Yob3V0KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyMzM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjIzMTc6CiteSWlvdlsxXS5pb3ZfYmFzZSA9ICZvdXRhcmc7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyMzE4OgorXklpb3ZbMV0uaW92X2xlbiA9IHNpemVvZihvdXRhcmcpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNDI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjMyMDoKK15JcmVzID0gZnVzZV9zZW5kX2RhdGFf aW92KHNlLCBOVUxMLCBpb3YsIDIsIGJ1ZnYsIGZsYWdzKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIzMjE6CiteSWlmIChyZXMgPiAwKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5l Y2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzIzNDM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjMyMToKKyAgICAgICBpZiAocmVzID4gMCkKWy4u Ll0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNDQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjMyMjoKK15JXklyZXMgPSAtcmVzOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNDY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjMyNDoKK15JcmV0dXJuIHJlczskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzUwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzMjg6CiteSXN0cnVjdCBmdXNlX25vdGlmeV9yZXEg bnJlcTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzUxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzMjk6CiteSXZvaWQgKmNvb2tp ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzU1OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzMzM6CiteSV5JXkleSSAgIGZ1c2Vf cmVxX3QgcmVxLCBmdXNlX2lub190IGlubywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyMzU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjIzMzQ6CiteSV5JXkleSSAgIGNvbnN0IHZvaWQgKmluYXJnLCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjMzNToKK15JXkleSV5JICAgY29uc3Qgc3RydWN0IGZ1c2VfYnVmICppYnVm KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNTk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjMzNzoKK15Jc3RydWN0IGZ1c2Vfc2Vz c2lvbiAqc2UgPSByZXEtPnNlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzIzNjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjMzODoK K15Jc3RydWN0IGZ1c2VfcmV0cmlldmVfcmVxICpycmVxID0kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIzMzk6CiteSV5JY29udGFpbmVyX29mKG5yZXEsIHN0cnVjdCBmdXNlX3JldHJp ZXZlX3JlcSwgbnJlcSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjM2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzQwOgorXklj b25zdCBzdHJ1Y3QgZnVzZV9ub3RpZnlfcmV0cmlldmVfaW4gKmFyZyA9IGluYXJnOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNjM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM0MToKK15Jc3RydWN0IGZ1c2VfYnVmdmVjIGJ1ZnYg PSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM2NDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzQyOgorXkleSS5idWZbMF0gPSAq aWJ1ZiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzY1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzNDM6CiteSV5JLmNvdW50ID0g MSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzY2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzNDQ6CiteSX07JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM2ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzQ2OgorXklpZiAoIShidWZ2LmJ1ZlswXS5mbGFncyAmIEZV U0VfQlVGX0lTX0ZEKSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBh cm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyMzY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIzNDY6CisgICAgICAgaWYgKCEoYnVmdi5idWZbMF0uZmxhZ3MgJiBGVVNFX0JV Rl9JU19GRCkpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyMzY5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzNDc6CiteSV5J YnVmdi5idWZbMF0ubWVtID0gUEFSQU0oYXJnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyMzcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjIzNDk6CiteSWJ1ZnYuYnVmWzBdLnNpemUgLT0gc2l6ZW9mKHN0cnVjdCBmdXNlX2luX2hl YWRlcikgKyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNzI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM1MDoKK15JXklzaXplb2Yo c3RydWN0IGZ1c2Vfbm90aWZ5X3JldHJpZXZlX2luKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyMzc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjIzNTI6CiteSWlmIChidWZ2LmJ1ZlswXS5zaXplIDwgYXJnLT5zaXplKSB7JAoKV0FS TklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzIzNzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjM1MzoKKyAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0VfTE9H X0VSUiwgImZ1c2U6IHJldHJpZXZlIHJlcGx5OiBidWZmZXIgc2l6ZSB0b28gc21hbGxcbiIpOwoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM3NTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzUzOgorXkleSWZ1c2VfbG9nKEZVU0VfTE9H X0VSUiwgImZ1c2U6IHJldHJpZXZlIHJlcGx5OiBidWZmZXIgc2l6ZSB0b28gc21hbGxcbiIpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzNzY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM1NDoKK15JXklmdXNlX3JlcGx5X25vbmUo cmVxKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzc3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzNTU6CiteSV5JZ290byBvdXQ7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM3ODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzU2OgorXkl9JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM3OTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyMzU3OgorXklidWZ2LmJ1ZlswXS5zaXplID0gYXJnLT5zaXplOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzODE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM1OToKK15JaWYgKHNlLT5vcC5yZXRyaWV2 ZV9yZXBseSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIz ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM2MDoKK15JXklzZS0+ b3AucmV0cmlldmVfcmVwbHkocmVxLCBycmVxLT5jb29raWUsIGlubywkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjIzNjE6CiteSV5JXkleSV5JICBhcmctPm9mZnNldCwgJmJ1ZnYpOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzODQ6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM2MjoKK15JfSBlbHNlIHskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzg1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzNjM6CiteSV5JZnVzZV9yZXBseV9ub25lKHJlcSk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM4NjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzY0OgorXkl9JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyMzY2OgorXklmcmVlKHJyZXEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjM2NzoKK15JaWYgKChpYnVmLT5mbGFncyAmIEZVU0VfQlVGX0lTX0ZEKSAmJiBi dWZ2LmlkeCA8IGJ1ZnYuY291bnQpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZv ciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjM4OTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyMzY3OgorICAgICAgIGlmICgoaWJ1Zi0+ZmxhZ3MgJiBGVVNFX0JV Rl9JU19GRCkgJiYgYnVmdi5pZHggPCBidWZ2LmNvdW50KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyMzY4OgorXkleSWZ1c2VfbGxfY2xlYXJfcGlwZShzZSk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM5NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzcyOgorXkleSV5JXkkgIHNpemVfdCBzaXplLCBvZmZf dCBvZmZzZXQsIHZvaWQgKmNvb2tpZSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyMzk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIz NzQ6CiteSXN0cnVjdCBmdXNlX25vdGlmeV9yZXRyaWV2ZV9vdXQgb3V0YXJnOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzOTc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM3NToKK15Jc3RydWN0IGlvdmVjIGlvdlsyXTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzk4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzNzY6CiteSXN0cnVjdCBmdXNlX3JldHJpZXZlX3Jl cSAqcnJlcTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzk5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzNzc6CiteSWludCBlcnI7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQwMTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzc5OgorXklpZiAoIXNlKSQKCkVSUk9S OiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQK IzI0MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM3OToKKyAgICAg ICBpZiAoIXNlKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjQwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzgwOgorXkle SXJldHVybiAtRUlOVkFMOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI0MDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM4MjoKK15J aWYgKHNlLT5jb25uLnByb3RvX21ham9yIDwgNiB8fCBzZS0+Y29ubi5wcm90b19taW5vciA8IDE1 KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBz dGF0ZW1lbnQKIzI0MDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM4 MjoKKyAgICAgICBpZiAoc2UtPmNvbm4ucHJvdG9fbWFqb3IgPCA2IHx8IHNlLT5jb25uLnByb3Rv X21pbm9yIDwgMTUpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNDA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzODM6Cite SV5JcmV0dXJuIC1FTk9TWVM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjQwNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzg1Ogor XklycmVxID0gbWFsbG9jKHNpemVvZigqcnJlcSkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI0MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjM4NjoKK15JaWYgKHJyZXEgPT0gTlVMTCkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBu ZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyNDA4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzODY6CisgICAgICAgaWYgKHJyZXEgPT0gTlVM TCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0MDk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM4NzoKK15JXklyZXR1cm4g LUVOT01FTTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDEx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzODk6CiteSXB0aHJlYWRf bXV0ZXhfbG9jaygmc2UtPmxvY2spOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI0MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM5 MDoKK15JcnJlcS0+Y29va2llID0gY29va2llOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI0MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjM5MToKK15JcnJlcS0+bnJlcS51bmlxdWUgPSBzZS0+bm90aWZ5X2N0cisrOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0MTQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjM5MjoKK15JcnJlcS0+bnJlcS5yZXBseSA9IGZ1c2Vf bGxfcmV0cmlldmVfcmVwbHk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjQxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzkzOgor XklsaXN0X2FkZF9ucmVxKCZycmVxLT5ucmVxLCAmc2UtPm5vdGlmeV9saXN0KTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDE2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjIzOTQ6CiteSXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZzZS0+ bG9jayk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQxODog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyMzk2OgorXklvdXRhcmcubm90 aWZ5X3VuaXF1ZSA9IHJyZXEtPm5yZXEudW5pcXVlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI0MTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjM5NzoKK15Jb3V0YXJnLm5vZGVpZCA9IGlubzskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjIzOTg6CiteSW91dGFyZy5vZmZzZXQgPSBvZmZzZXQ7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQyMTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyMzk5OgorXklvdXRhcmcuc2l6ZSA9IHNpemU7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQyMjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDAwOgorXklvdXRhcmcucGFkZGluZyA9IDA7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQyNDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDAyOgorXklpb3ZbMV0uaW92X2Jhc2UgPSAmb3V0YXJn OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0MjU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQwMzoKK15JaW92WzFdLmlvdl9sZW4g PSBzaXplb2Yob3V0YXJnKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNDI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0MDU6Cite SWVyciA9IHNlbmRfbm90aWZ5X2lvdihzZSwgRlVTRV9OT1RJRllfUkVUUklFVkUsIGlvdiwgMik7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQyODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDA2OgorXklpZiAoZXJyKSB7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQyOTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDA3OgorXkleSXB0aHJlYWRfbXV0ZXhfbG9jaygm c2UtPmxvY2spOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0 MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQwODoKK15JXklsaXN0 X2RlbF9ucmVxKCZycmVxLT5ucmVxKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNDMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0 MDk6CiteSV5JcHRocmVhZF9tdXRleF91bmxvY2soJnNlLT5sb2NrKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDMyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI0MTA6CiteSV5JZnJlZShycmVxKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI0MTE6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNDM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0 MTM6CiteSXJldHVybiBlcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjQ0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDE4Ogor XklyZXR1cm4gcmVxLT5zZS0+dXNlcmRhdGE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjQ0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyNDIzOgorXklyZXR1cm4gJnJlcS0+Y3R4OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI0NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjQyNzoKK15JXkleSSAgICAgdm9pZCAqZGF0YSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNDUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI0Mjk6CiteSXB0aHJlYWRfbXV0ZXhfbG9jaygmcmVxLT5sb2NrKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDUyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0MzA6CiteSXB0aHJlYWRfbXV0ZXhfbG9jaygmcmVxLT5z ZS0+bG9jayk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ1 MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDMxOgorXklyZXEtPnUu bmkuZnVuYyA9IGZ1bmM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjQ1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDMyOgorXkly ZXEtPnUubmkuZGF0YSA9IGRhdGE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjQ1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDMz OgorXklwdGhyZWFkX211dGV4X3VubG9jaygmcmVxLT5zZS0+bG9jayk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ1NjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyNDM0OgorXklpZiAocmVxLT5pbnRlcnJ1cHRlZCAmJiBmdW5jKSQK CkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0 ZW1lbnQKIzI0NTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQzNDoK KyAgICAgICBpZiAocmVxLT5pbnRlcnJ1cHRlZCAmJiBmdW5jKQpbLi4uXQoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ1NzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyNDM1OgorXkleSWZ1bmMocmVxLCBkYXRhKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDU4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI0MzY6CiteSXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZyZXEtPmxv Y2spOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NjM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ0MToKK15JaW50IGludGVycnVw dGVkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NjU6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ0MzoKK15JcHRocmVhZF9tdXRl eF9sb2NrKCZyZXEtPnNlLT5sb2NrKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNDY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0 NDQ6CiteSWludGVycnVwdGVkID0gcmVxLT5pbnRlcnJ1cHRlZDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI0NDU6CiteSXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZyZXEtPnNlLT5sb2Nr KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDY5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0NDc6CiteSXJldHVybiBpbnRlcnJ1 cHRlZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDczOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0NTE6CiteSXZvaWQgKCpmdW5j KShmdXNlX3JlcV90LCBmdXNlX2lub190LCBjb25zdCB2b2lkICopOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0NzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjQ1MjoKK15JY29uc3QgY2hhciAqbmFtZTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI0NTQ6CiteSVtGVVNFX0xPT0tVUF1eSSAgID0geyBkb19sb29rdXAs ICAgICAgIkxPT0tVUCJeSSAgICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNDc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0 NTU6CiteSVtGVVNFX0ZPUkdFVF1eSSAgID0geyBkb19mb3JnZXQsICAgICAgIkZPUkdFVCJeSSAg ICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDc4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0NTY6CiteSVtGVVNFX0dFVEFU VFJdXkkgICA9IHsgZG9fZ2V0YXR0ciwgICAgICJHRVRBVFRSIiAgICAgfSwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDc5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI0NTc6CiteSVtGVVNFX1NFVEFUVFJdXkkgICA9IHsgZG9fc2V0 YXR0ciwgICAgICJTRVRBVFRSIiAgICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNDgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI0NTg6CiteSVtGVVNFX1JFQURMSU5LXV5JICAgPSB7IGRvX3JlYWRsaW5rLCAgICAiUkVBRExJ TksiICAgIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ4 MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDU5OgorXklbRlVTRV9T WU1MSU5LXV5JICAgPSB7IGRvX3N5bWxpbmssICAgICAiU1lNTElOSyIgICAgIH0sJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ4MjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDYwOgorXklbRlVTRV9NS05PRF1eSSAgID0geyBkb19t a25vZCwgICAgICAgIk1LTk9EIl5JICAgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI0ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjQ2MToKK15JW0ZVU0VfTUtESVJdXkkgICA9IHsgZG9fbWtkaXIsICAgICAgICJNS0RJUiJe SSAgICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDg0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0NjI6CiteSVtGVVNFX1VO TElOS11eSSAgID0geyBkb191bmxpbmssICAgICAgIlVOTElOSyJeSSAgICAgfSwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDg1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0NjM6CiteSVtGVVNFX1JNRElSXV5JICAgPSB7IGRvX3Jt ZGlyLCAgICAgICAiUk1ESVIiXkkgICAgIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjQ4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyNDY0OgorXklbRlVTRV9SRU5BTUVdXkkgICA9IHsgZG9fcmVuYW1lLCAgICAgICJSRU5BTUUi XkkgICAgIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ4 NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDY1OgorXklbRlVTRV9M SU5LXV5JICAgPSB7IGRvX2xpbmssXkkgICAgICAgIkxJTksiXkkgICAgIH0sJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ4ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDY2OgorXklbRlVTRV9PUEVOXV5JICAgPSB7IGRvX29wZW4s XkkgICAgICAgIk9QRU4iXkkgICAgIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjQ4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy NDY3OgorXklbRlVTRV9SRUFEXV5JICAgPSB7IGRvX3JlYWQsXkkgICAgICAgIlJFQUQiXkkgICAg IH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ5MDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDY4OgorXklbRlVTRV9XUklURV1e SSAgID0geyBkb193cml0ZSwgICAgICAgIldSSVRFIl5JICAgICB9LCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjQ2OToKK15JW0ZVU0VfU1RBVEZTXV5JICAgPSB7IGRvX3N0YXRmcywg ICAgICAiU1RBVEZTIl5JICAgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI0OTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ3 MDoKK15JW0ZVU0VfUkVMRUFTRV1eSSAgID0geyBkb19yZWxlYXNlLCAgICAgIlJFTEVBU0UiICAg ICB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0OTM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ3MToKK15JW0ZVU0VfRlNZTkNd XkkgICA9IHsgZG9fZnN5bmMsICAgICAgICJGU1lOQyJeSSAgICAgfSwkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI0NzI6CiteSVtGVVNFX1NFVFhBVFRSXV5JICAgPSB7IGRvX3NldHhh dHRyLCAgICAiU0VUWEFUVFIiICAgIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjQ5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy NDczOgorXklbRlVTRV9HRVRYQVRUUl1eSSAgID0geyBkb19nZXR4YXR0ciwgICAgIkdFVFhBVFRS IiAgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0OTY6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ3NDoKK15JW0ZVU0VfTElT VFhBVFRSXSAgID0geyBkb19saXN0eGF0dHIsICAgIkxJU1RYQVRUUiIgICB9LCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0OTc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ3NToKK15JW0ZVU0VfUkVNT1ZFWEFUVFJdID0geyBkb19y ZW1vdmV4YXR0ciwgIlJFTU9WRVhBVFRSIiB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI0OTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjQ3NjoKK15JW0ZVU0VfRkxVU0hdXkkgICA9IHsgZG9fZmx1c2gsICAgICAgICJGTFVTSCJe SSAgICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDk5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0Nzc6CiteSVtGVVNFX0lO SVRdXkkgICA9IHsgZG9faW5pdCxeSSAgICAgICAiSU5JVCJeSSAgICAgfSwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTAwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI0Nzg6CiteSVtGVVNFX09QRU5ESVJdXkkgICA9IHsgZG9fb3Bl bmRpciwgICAgICJPUEVORElSIiAgICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNTAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI0Nzk6CiteSVtGVVNFX1JFQURESVJdXkkgICA9IHsgZG9fcmVhZGRpciwgICAgICJSRUFERElS IiAgICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTAy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0ODA6CiteSVtGVVNFX1JF TEVBU0VESVJdICA9IHsgZG9fcmVsZWFzZWRpciwgICJSRUxFQVNFRElSIiAgfSwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTAzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0ODE6CiteSVtGVVNFX0ZTWU5DRElSXV5JICAgPSB7IGRv X2ZzeW5jZGlyLCAgICAiRlNZTkNESVIiICAgIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjUwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNDgyOgorXklbRlVTRV9HRVRMS11eSSAgID0geyBkb19nZXRsaywgICAgICAgIkdFVExL Il5JICAgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1 MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ4MzoKK15JW0ZVU0Vf U0VUTEtdXkkgICA9IHsgZG9fc2V0bGssICAgICAgICJTRVRMSyJeSSAgICAgfSwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTA2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0ODQ6CiteSVtGVVNFX1NFVExLV11eSSAgID0geyBkb19z ZXRsa3csICAgICAgIlNFVExLVyJeSSAgICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNTA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI0ODU6CiteSVtGVVNFX0FDQ0VTU11eSSAgID0geyBkb19hY2Nlc3MsICAgICAgIkFDQ0VT UyJeSSAgICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy NTA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0ODY6CiteSVtGVVNF X0NSRUFURV1eSSAgID0geyBkb19jcmVhdGUsICAgICAgIkNSRUFURSJeSSAgICAgfSwkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTA5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0ODc6CiteSVtGVVNFX0lOVEVSUlVQVF0gICA9IHsg ZG9faW50ZXJydXB0LCAgICJJTlRFUlJVUFQiICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNTEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI0ODg6CiteSVtGVVNFX0JNQVBdXkkgICA9IHsgZG9fYm1hcCxeSSAgICAgICAiQk1B UCJeSSAgICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy NTExOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0ODk6CiteSVtGVVNF X0lPQ1RMXV5JICAgPSB7IGRvX2lvY3RsLCAgICAgICAiSU9DVEwiXkkgICAgIH0sJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjUxMjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDkwOgorXklbRlVTRV9QT0xMXV5JICAgPSB7IGRvX3Bv bGwsICAgICAgICAiUE9MTCJeSSAgICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNTEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI0OTE6CiteSVtGVVNFX0ZBTExPQ0FURV0gICA9IHsgZG9fZmFsbG9jYXRlLCAgICJGQUxMT0NB VEUiICAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTE0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0OTI6CiteSVtGVVNFX0RF U1RST1ldXkkgICA9IHsgZG9fZGVzdHJveSwgICAgICJERVNUUk9ZIiAgICAgfSwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTE1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI0OTM6CiteSVtGVVNFX05PVElGWV9SRVBMWV0gPSB7ICh2 b2lkICopIDEsICAgICJOT1RJRllfUkVQTFkiIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjUxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNDk0OgorXklbRlVTRV9CQVRDSF9GT1JHRVRdID0geyBkb19iYXRjaF9mb3JnZXQsICJC QVRDSF9GT1JHRVQiIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjUxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDk1OgorXklb RlVTRV9SRUFERElSUExVU10gPSB7IGRvX3JlYWRkaXJwbHVzLF5JIlJFQURESVJQTFVTIn0sJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjUxODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNDk2OgorXklbRlVTRV9SRU5BTUUyXSAgICAg PSB7IGRvX3JlbmFtZTIsICAgICAgIlJFTkFNRTIiICAgIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjUxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyNDk3OgorXklbRlVTRV9DT1BZX0ZJTEVfUkFOR0VdID0geyBkb19jb3B5X2Zp bGVfcmFuZ2UsICJDT1BZX0ZJTEVfUkFOR0UiIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjUyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNDk4OgorXklbRlVTRV9MU0VFS11eSSAgID0geyBkb19sc2VlaywgICAgICAgIkxTRUVL Il5JICAgICB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1 MjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjQ5OToKK15JW0NVU0Vf SU5JVF1eSSAgID0geyBjdXNlX2xvd2xldmVsX2luaXQsICJDVVNFX0lOSVQiICAgfSwkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTI4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1MDY6CiteSWlmIChvcGNvZGUgPj0gRlVTRV9NQVhP UCB8fCAhZnVzZV9sbF9vcHNbb3Bjb2RlXS5uYW1lKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5l Y2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI1Mjg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjUwNjoKKyAgICAgICBpZiAob3Bjb2RlID49IEZV U0VfTUFYT1AgfHwgIWZ1c2VfbGxfb3BzW29wY29kZV0ubmFtZSkKWy4uLl0KKyAgICAgICBlbHNl ClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTI5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1MDc6CiteSV5JcmV0dXJuICI/ Pz8iOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MzA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjUwODoKK15JZWxzZSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1MzE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjUwOToKK15JXklyZXR1cm4gZnVzZV9sbF9vcHNbb3Bj b2RlXS5uYW1lOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1 MzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjUxMzoKK15JXkleSV5J ICBzdHJ1Y3QgZnVzZV9idWZ2ZWMgKnNyYykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNTM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI1MTU6CiteSXNzaXplX3QgcmVzID0gZnVzZV9idWZfY29weShkc3QsIHNyYywgMCk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjUzODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTE2OgorXklpZiAocmVzIDwgMCkgeyQKCldBUk5J Tkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMyNTM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI1MTc6CisgICAgICAgICAgICAgICBmdXNlX2xvZyhGVVNFX0xPR19F UlIsICJmdXNlOiBjb3B5IGZyb20gcGlwZTogJXNcbiIsIHN0cmVycm9yKC1yZXMpKTsKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1Mzk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjUxNzoKK15JXklmdXNlX2xvZyhGVVNFX0xPR19FUlIs ICJmdXNlOiBjb3B5IGZyb20gcGlwZTogJXNcbiIsIHN0cmVycm9yKC1yZXMpKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTQwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1MTg6CiteSV5JcmV0dXJuIHJlczskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTQxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI1MTk6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNTQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI1MjA6CiteSWlmICgoc2l6ZV90KXJlcyA8IGZ1c2VfYnVmX3NpemUoZHN0KSkgeyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NDM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjUyMToKK15JXklmdXNlX2xvZyhGVVNFX0xPR19F UlIsICJmdXNlOiBjb3B5IGZyb20gcGlwZTogc2hvcnQgcmVhZFxuIik7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU0NDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyNTIyOgorXkleSXJldHVybiAtMTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTQ1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI1MjM6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNTQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1 MjQ6CiteSXJldHVybiAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI1NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjUyODoKK15J XkleSSAgICAgIGNvbnN0IHN0cnVjdCBmdXNlX2J1ZiAqYnVmKSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjUzMDoKK15JZnVzZV9zZXNzaW9uX3Byb2Nlc3NfYnVmX2ludChzZSwgYnVm LCBOVUxMKTskCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMjU1NjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTM0OgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZ1c2VfYnVmICpidWYsIHN0cnVjdCBmdXNlX2No YW4gKmNoKQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU1Njog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTM0OgorXkleSV5JXkkgIGNv bnN0IHN0cnVjdCBmdXNlX2J1ZiAqYnVmLCBzdHJ1Y3QgZnVzZV9jaGFuICpjaCkkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTU4OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1MzY6CiteSWNvbnN0IHNpemVfdCB3cml0ZV9oZWFkZXJf c2l6ZSA9IHNpemVvZihzdHJ1Y3QgZnVzZV9pbl9oZWFkZXIpICskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI1Mzc6CiteSV5Jc2l6ZW9mKHN0cnVjdCBmdXNlX3dyaXRlX2luKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTYwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1Mzg6CiteSXN0cnVjdCBmdXNlX2J1ZnZlYyBi dWZ2ID0geyAuYnVmWzBdID0gKmJ1ZiwgLmNvdW50ID0gMSB9OyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjUzOToKK15Jc3RydWN0IGZ1c2VfYnVmdmVjIHRtcGJ1ZiA9IEZVU0VfQlVG VkVDX0lOSVQod3JpdGVfaGVhZGVyX3NpemUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI1NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjU0MDoKK15Jc3RydWN0IGZ1c2VfaW5faGVhZGVyICppbjskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI1NDE6CiteSWNvbnN0IHZvaWQgKmluYXJnOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjU0MjoKK15Jc3RydWN0IGZ1c2VfcmVxICpyZXE7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU2NTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTQzOgorXkl2b2lkICptYnVmID0gTlVMTDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTY2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1NDQ6CiteSWludCBlcnI7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU2NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyNTQ1OgorXklpbnQgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI1Njk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjU0NzoKK15JaWYgKGJ1Zi0+ZmxhZ3MgJiBGVVNFX0JVRl9JU19GRCkgeyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1NzA6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU0ODoKK15JXklpZiAoYnVmLT5zaXplIDwgdG1wYnVm LmJ1ZlswXS5zaXplKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFy bXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI1NzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjU0ODoKKyAgICAgICAgICAgICAgIGlmIChidWYtPnNpemUgPCB0bXBidWYuYnVm WzBdLnNpemUpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNTcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1NDk6CiteSV5J Xkl0bXBidWYuYnVmWzBdLnNpemUgPSBidWYtPnNpemU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjU3MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyNTUxOgorXkleSW1idWYgPSBtYWxsb2ModG1wYnVmLmJ1ZlswXS5zaXplKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTc0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1NTI6CiteSV5JaWYgKG1idWYgPT0gTlVMTCkg eyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMyNTc1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1NTM6CisgICAgICAgICAgICAgICAgICAgICAgIGZ1 c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6IGZhaWxlZCB0byBhbGxvY2F0ZSBoZWFkZXJcbiIp OwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU3NTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTUzOgorXkleSV5JZnVzZV9sb2coRlVT RV9MT0dfRVJSLCAiZnVzZTogZmFpbGVkIHRvIGFsbG9jYXRlIGhlYWRlclxuIik7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU3NjogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTU0OgorXkleSV5JZ290byBjbGVhcl9waXBlOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1Nzc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU1NToKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyNTU2OgorXkleSXRtcGJ1Zi5idWZbMF0ubWVtID0gbWJ1ZjskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTgwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1NTg6CiteSV5JcmVzID0gZnVzZV9sbF9jb3B5X2Zy b21fcGlwZSgmdG1wYnVmLCAmYnVmdik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjU4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy NTU5OgorXkleSWlmIChyZXMgPCAwKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBm b3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI1ODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjU1OToKKyAgICAgICAgICAgICAgIGlmIChyZXMgPCAwKQpbLi4u XQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU4MjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTYwOgorXkleSV5JZ290byBjbGVhcl9w aXBlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1ODQ6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU2MjoKK15JXklpbiA9IG1idWY7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU4NTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTYzOgorXkl9IGVsc2UgeyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1ODY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU2NDoKK15JXklpbiA9IGJ1Zi0+bWVtOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1ODc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU2NToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1ODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjU2NzoKK15JaWYgKHNlLT5kZWJ1ZykgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1OTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjU2ODoKK15JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTkxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI1Njk6CiteSV5JXkkidW5pcXVlOiAlbGx1LCBvcGNvZGU6ICVz ICglaSksIG5vZGVpZDogJWxsdSwgaW5zaXplOiAlenUsIHBpZDogJXVcbiIsJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU5MjogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTcwOgorXkleSV5JKHVuc2lnbmVkIGxvbmcgbG9uZykgaW4t PnVuaXF1ZSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTkz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1NzE6CiteSV5JXklvcG5h bWUoKGVudW0gZnVzZV9vcGNvZGUpIGluLT5vcGNvZGUpLCBpbi0+b3Bjb2RlLCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI1OTQ6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU3MjoKK15JXkleSSh1bnNpZ25lZCBsb25nIGxvbmcpIGlu LT5ub2RlaWQsIGJ1Zi0+c2l6ZSwgaW4tPnBpZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjU5NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNTczOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjU5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTc1OgorXkly ZXEgPSBmdXNlX2xsX2FsbG9jX3JlcShzZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjU5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyNTc2OgorXklpZiAocmVxID09IE5VTEwpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNTk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI1Nzc6CiteSV5Jc3RydWN0IGZ1c2Vfb3V0X2hlYWRlciBvdXQgPSB7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYwMDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTc4OgorXkleSV5JLnVuaXF1ZSA9IGluLT51bmlxdWUsJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYwMTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTc5OgorXkleSV5JLmVycm9yID0gLUVOT01F TSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjAyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1ODA6CiteSV5JfTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjAzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1ODE6CiteSV5Jc3RydWN0IGlvdmVjIGlvdiA9IHskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjA0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1ODI6CiteSV5JXkkuaW92X2Jhc2UgPSAmb3V0 LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MDU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU4MzoKK15JXkleSS5pb3ZfbGVuID0g c2l6ZW9mKHN0cnVjdCBmdXNlX291dF9oZWFkZXIpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjU4NDoKK15JXkl9OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI2MDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU4NjoK K15JXklmdXNlX3NlbmRfbXNnKHNlLCBjaCwgJmlvdiwgMSk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyNTg3OgorXkleSWdvdG8gY2xlYXJfcGlwZTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI1ODg6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNjEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1 OTA6CiteSXJlcS0+dW5pcXVlID0gaW4tPnVuaXF1ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNjEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI1OTE6CiteSXJlcS0+Y3R4LnVpZCA9IGluLT51aWQ7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYxNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyNTkyOgorXklyZXEtPmN0eC5naWQgPSBpbi0+Z2lkOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MTU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU5MzoKK15JcmVxLT5jdHgucGlkID0gaW4tPnBpZDskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjE2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1OTQ6CiteSXJlcS0+Y2ggPSBjaCA/IGZ1c2Vf Y2hhbl9nZXQoY2gpIDogTlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNjE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1OTY6 CiteSWVyciA9IEVJTzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNjE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI1OTc6CiteSWlm ICghc2UtPmdvdF9pbml0KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjYyMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNTk4Ogor XkleSWVudW0gZnVzZV9vcGNvZGUgZXhwZWN0ZWQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjYyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNjAwOgorXkleSWV4cGVjdGVkID0gc2UtPmN1c2VfZGF0YSA/IENVU0VfSU5JVCA6IEZV U0VfSU5JVDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjIz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2MDE6CiteSV5JaWYgKGlu LT5vcGNvZGUgIT0gZXhwZWN0ZWQpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZv ciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjYyMzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyNjAxOgorICAgICAgICAgICAgICAgaWYgKGluLT5vcGNvZGUgIT0g ZXhwZWN0ZWQpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNjI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2MDI6CiteSV5J Xklnb3RvIHJlcGx5X2VycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNjI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2MDM6Cite SX0gZWxzZSBpZiAoaW4tPm9wY29kZSA9PSBGVVNFX0lOSVQgfHwgaW4tPm9wY29kZSA9PSBDVVNF X0lOSVQpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0 aGlzIHN0YXRlbWVudAojMjYyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyNjAzOgorICAgICAgIH0gZWxzZSBpZiAoaW4tPm9wY29kZSA9PSBGVVNFX0lOSVQgfHwgaW4t Pm9wY29kZSA9PSBDVVNFX0lOSVQpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNjI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI2MDQ6CiteSV5JZ290byByZXBseV9lcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjYyODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyNjA2OgorXkllcnIgPSBFQUNDRVM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjYyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy NjA3OgorXkkvKiBJbXBsZW1lbnQgLW8gYWxsb3dfcm9vdCAqLyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjYwODoKK15JaWYgKHNlLT5kZW55X290aGVycyAmJiBpbi0+dWlkICE9IHNl LT5vd25lciAmJiBpbi0+dWlkICE9IDAgJiYkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNjMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI2MDk6CiteSV5JIGluLT5vcGNvZGUgIT0gRlVTRV9JTklUICYmIGluLT5vcGNvZGUgIT0gRlVT RV9SRUFEICYmJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYz MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjEwOgorXkleSSBpbi0+ b3Bjb2RlICE9IEZVU0VfV1JJVEUgJiYgaW4tPm9wY29kZSAhPSBGVVNFX0ZTWU5DICYmJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYzMzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjExOgorXkleSSBpbi0+b3Bjb2RlICE9IEZVU0Vf UkVMRUFTRSAmJiBpbi0+b3Bjb2RlICE9IEZVU0VfUkVBRERJUiAmJiQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjYxMjoKK15JXkkgaW4tPm9wY29kZSAhPSBGVVNFX0ZTWU5DRElSICYm IGluLT5vcGNvZGUgIT0gRlVTRV9SRUxFQVNFRElSICYmJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjYzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyNjEzOgorXkleSSBpbi0+b3Bjb2RlICE9IEZVU0VfTk9USUZZX1JFUExZICYmJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjYzNjogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjE0OgorXkleSSBpbi0+b3Bjb2RlICE9IEZV U0VfUkVBRERJUlBMVVMpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjYzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjE1OgorXkle SWdvdG8gcmVwbHlfZXJyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI2Mzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjYxNzoKK15J ZXJyID0gRU5PU1lTOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI2NDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjYxODoKK15JaWYg KGluLT5vcGNvZGUgPj0gRlVTRV9NQVhPUCB8fCAhZnVzZV9sbF9vcHNbaW4tPm9wY29kZV0uZnVu YykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMg c3RhdGVtZW50CiMyNjQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2 MTg6CisgICAgICAgaWYgKGluLT5vcGNvZGUgPj0gRlVTRV9NQVhPUCB8fCAhZnVzZV9sbF9vcHNb aW4tPm9wY29kZV0uZnVuYykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI2NDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjYx OToKK15JXklnb3RvIHJlcGx5X2VycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNjQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2 MjA6CiteSWlmIChpbi0+b3Bjb2RlICE9IEZVU0VfSU5URVJSVVBUKSB7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY0MzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyNjIxOgorXkleSXN0cnVjdCBmdXNlX3JlcSAqaW50cjskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjQ0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2MjI6CiteSV5JcHRocmVhZF9tdXRleF9sb2NrKCZz ZS0+bG9jayk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY0 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjIzOgorXkleSWludHIg PSBjaGVja19pbnRlcnJ1cHQoc2UsIHJlcSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjY0NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyNjI0OgorXkleSWxpc3RfYWRkX3JlcShyZXEsICZzZS0+bGlzdCk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY0NzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyNjI1OgorXkleSXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZzZS0+bG9j ayk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY0ODogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjI2OgorXkleSWlmIChpbnRyKSQK CkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0 ZW1lbnQKIzI2NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjYyNjoK KyAgICAgICAgICAgICAgIGlmIChpbnRyKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjY0OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNjI3OgorXkleSV5JZnVzZV9yZXBseV9lcnIoaW50ciwgRUFHQUlOKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjUwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2Mjg6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNjUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI2MzA6CiteSWlmICgoYnVmLT5mbGFncyAmIEZVU0VfQlVGX0lTX0ZEKSAmJiB3cml0 ZV9oZWFkZXJfc2l6ZSA8IGJ1Zi0+c2l6ZSAmJiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI2NTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjYzMToKK15JICAgIChpbi0+b3Bjb2RlICE9IEZVU0VfV1JJVEUgfHwgIXNlLT5vcC53cml0 ZV9idWYpICYmJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY1 NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjMyOgorXkkgICAgaW4t Pm9wY29kZSAhPSBGVVNFX05PVElGWV9SRVBMWSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjYzMzoKK15JXkl2b2lkICpuZXdtYnVmOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjYzNToKK15JXkllcnIgPSBFTk9NRU07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjY1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNjM2OgorXkleSW5ld21idWYgPSByZWFsbG9jKG1idWYsIGJ1Zi0+c2l6ZSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY1OTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjM3OgorXkleSWlmIChuZXdtYnVmID09IE5VTEwp JAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0 YXRlbWVudAojMjY1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjM3 OgorICAgICAgICAgICAgICAgaWYgKG5ld21idWYgPT0gTlVMTCkKWy4uLl0KCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjYzODoKK15JXkleSWdvdG8gcmVwbHlfZXJyOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2NjE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjYzOToKK15JXkltYnVmID0gbmV3bWJ1ZjskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjYzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2NDE6CiteSV5JdG1wYnVmID0gRlVTRV9CVUZWRUNfSU5J VChidWYtPnNpemUgLSB3cml0ZV9oZWFkZXJfc2l6ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjY2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyNjQyOgorXkleSXRtcGJ1Zi5idWZbMF0ubWVtID0gKGNoYXIgKiltYnVmICsgd3Jp dGVfaGVhZGVyX3NpemU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjY2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjQ0OgorXkle SXJlcyA9IGZ1c2VfbGxfY29weV9mcm9tX3BpcGUoJnRtcGJ1ZiwgJmJ1ZnYpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2Njc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY0NToKK15JXkllcnIgPSAtcmVzOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2Njg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MjY0NjoKK15JXklpZiAocmVzIDwgMCkkCgpFUlJPUjogYnJhY2Vz IHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyNjY4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2NDY6CisgICAgICAgICAgICAg ICBpZiAocmVzIDwgMCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI2Njk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY0NzoK K15JXkleSWdvdG8gcmVwbHlfZXJyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI2NzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY0 OToKK15JXklpbiA9IG1idWY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjY3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjUwOgor Xkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY3NDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjUyOgorXklpbmFyZyA9ICh2b2lk ICopICZpblsxXTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy Njc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2NTM6CiteSWlmIChp bi0+b3Bjb2RlID09IEZVU0VfV1JJVEUgJiYgc2UtPm9wLndyaXRlX2J1ZikkCgpFUlJPUjogYnJh Y2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyNjc1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2NTM6CisgICAgICAgaWYg KGluLT5vcGNvZGUgPT0gRlVTRV9XUklURSAmJiBzZS0+b3Aud3JpdGVfYnVmKQpbLi4uXQorICAg ICAgIGVsc2UgaWYgKGluLT5vcGNvZGUgPT0gRlVTRV9OT1RJRllfUkVQTFkpClsuLi5dCisgICAg ICAgZWxzZQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjY3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjU0OgorXkleSWRv X3dyaXRlX2J1ZihyZXEsIGluLT5ub2RlaWQsIGluYXJnLCBidWYpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2Nzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjY1NToKK15JZWxzZSBpZiAoaW4tPm9wY29kZSA9PSBGVVNFX05PVElG WV9SRVBMWSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9m IHRoaXMgc3RhdGVtZW50CiMyNjc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI2NTU6CisgICAgICAgZWxzZSBpZiAoaW4tPm9wY29kZSA9PSBGVVNFX05PVElGWV9SRVBM WSkKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNjc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI2NTY6CiteSV5JZG9fbm90aWZ5X3JlcGx5KHJlcSwgaW4tPm5vZGVpZCwgaW5hcmcsIGJ1Zik7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY3OTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjU3OgorXkllbHNlJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjY4MDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjU4OgorXkleSWZ1c2VfbGxfb3BzW2luLT5vcGNvZGVdLmZ1 bmMocmVxLCBpbi0+bm9kZWlkLCBpbmFyZyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjY4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyNjYxOgorXklmcmVlKG1idWYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI2ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY2 MjoKK15JcmV0dXJuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI2ODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY2NToKK15JZnVz ZV9yZXBseV9lcnIocmVxLCBlcnIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI2ODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY2 NzoKK15JaWYgKGJ1Zi0+ZmxhZ3MgJiBGVVNFX0JVRl9JU19GRCkkCgpFUlJPUjogYnJhY2VzIHt9 IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyNjg5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2Njc6CisgICAgICAgaWYgKGJ1Zi0+ ZmxhZ3MgJiBGVVNFX0JVRl9JU19GRCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI2OTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjY2ODoKK15JXklmdXNlX2xsX2NsZWFyX3BpcGUoc2UpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjY2OToKK15JZ290byBvdXRfZnJlZTskCgpFUlJPUjogc3BhY2UgcmVxdWly ZWQgYWZ0ZXIgdGhhdCAnLCcgKGN0eDpWeFYpCiMyNjk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI2NzI6CisjZGVmaW5lIExMX09QVElPTihuLG8sdikgXAogICAgICAg ICAgICAgICAgICAgIF4KCkVSUk9SOiBzcGFjZSByZXF1aXJlZCBhZnRlciB0aGF0ICcsJyAoY3R4 OlZ4VikKIzI2OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY3MjoK KyNkZWZpbmUgTExfT1BUSU9OKG4sbyx2KSBcCiAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjk1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2NzM6CiteSXsgbiwgb2Zmc2V0b2Yoc3RydWN0IGZ1 c2Vfc2Vzc2lvbiwgbyksIHYgfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzI2OTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY3NjoK K15JTExfT1BUSU9OKCJkZWJ1ZyIsIGRlYnVnLCAxKSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNjk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI2Nzc6CiteSUxMX09QVElPTigiLWQiLCBkZWJ1ZywgMSksJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcwMDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyNjc4OgorXklMTF9PUFRJT04oIi0tZGVidWciLCBkZWJ1ZywgMSks JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcwMTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjc5OgorXklMTF9PUFRJT04oImFsbG93 X3Jvb3QiLCBkZW55X290aGVycywgMSksJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjcwMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy NjgwOgorXklGVVNFX09QVF9FTkQkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNzA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2ODU6 CiteSXByaW50ZigidXNpbmcgRlVTRSBrZXJuZWwgaW50ZXJmYWNlIHZlcnNpb24gJWkuJWlcbiIs JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcwODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjg2OgorXkkgICAgICAgRlVTRV9LRVJO RUxfVkVSU0lPTiwgRlVTRV9LRVJORUxfTUlOT1JfVkVSU0lPTik7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyNjg3OgorXklmdXNlX21vdW50X3ZlcnNpb24oKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzE0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI2OTI6CiteSS8qIFRoZXNlIGFyZSBub3QgYWxsIG9wdGlvbnMs IGJ1dCB0aGUgb25lcyB0aGF0IGFyZSQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxl YWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMyNzE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI2OTI6CisgICAgICAgLyogVGhlc2UgYXJlIG5vdCBhbGwgb3B0aW9u cywgYnV0IHRoZSBvbmVzIHRoYXQgYXJlCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNzE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI2 OTM6CiteSSAgIHBvdGVudGlhbGx5IG9mIGludGVyZXN0IHRvIGFuIGVuZC11c2VyICovJAoKV0FS TklORzogQmxvY2sgY29tbWVudHMgdXNlICogb24gc3Vic2VxdWVudCBsaW5lcwojMjcxNTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNjkzOgorICAgICAgIC8qIFRoZXNl IGFyZSBub3QgYWxsIG9wdGlvbnMsIGJ1dCB0aGUgb25lcyB0aGF0IGFyZQorICAgICAgICAgIHBv dGVudGlhbGx5IG9mIGludGVyZXN0IHRvIGFuIGVuZC11c2VyICovCgpXQVJOSU5HOiBCbG9jayBj b21tZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzI3MTU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjY5MzoKKyAgICAgICAgICBwb3RlbnRp YWxseSBvZiBpbnRlcmVzdCB0byBhbiBlbmQtdXNlciAqLwoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjcxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyNjk0OgorXklwcmludGYoJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjcyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy NzAyOgorXklzdHJ1Y3QgZnVzZV9sbF9waXBlICpsbHA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjcyNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyNzA0OgorXklpZiAoc2UtPmdvdF9pbml0ICYmICFzZS0+Z290X2Rlc3Ryb3kpIHsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzI3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3MDU6CiteSV5JaWYgKHNlLT5vcC5kZXN0 cm95KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhp cyBzdGF0ZW1lbnQKIzI3Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjcwNToKKyAgICAgICAgICAgICAgIGlmIChzZS0+b3AuZGVzdHJveSkKWy4uLl0KCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3Mjg6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjcwNjoKK15JXkleSXNlLT5vcC5kZXN0cm95KHNlLT51c2Vy ZGF0YSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcyOTog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzA3OgorXkl9JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjczMDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzA4OgorXklsbHAgPSBwdGhyZWFkX2dldHNwZWNpZmlj KHNlLT5waXBlX2tleSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjczMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzA5OgorXklp ZiAobGxwICE9IE5VTEwpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwg YXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjczMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyNzA5OgorICAgICAgIGlmIChsbHAgIT0gTlVMTCkKWy4uLl0KCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MzI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6MjcxMDoKK15JXklmdXNlX2xsX3BpcGVfZnJlZShsbHApOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3MzM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjcxMToKK15JcHRocmVhZF9rZXlfZGVsZXRl KHNlLT5waXBlX2tleSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjczNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzEyOgorXklw dGhyZWFkX211dGV4X2Rlc3Ryb3koJnNlLT5sb2NrKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNzM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI3MTM6CiteSWZyZWUoc2UtPmN1c2VfZGF0YSk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjczNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyNzE0OgorXklpZiAoc2UtPmZkICE9IC0xKSQKCkVSUk9SOiBicmFjZXMge30g YXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI3MzY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjcxNDoKKyAgICAgICBpZiAoc2UtPmZk ICE9IC0xKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjczNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzE1OgorXkleSWNs b3NlKHNlLT5mZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjczODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzE2OgorXklkZXN0 cm95X21vdW50X29wdHMoc2UtPm1vKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNzM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3 MTc6CiteSWZyZWUoc2UpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI3NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjcyMzoKK15J c3RydWN0IGZ1c2VfbGxfcGlwZSAqbGxwID0gZGF0YTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNzQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI3MjQ6CiteSWZ1c2VfbGxfcGlwZV9mcmVlKGxscCk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyNzI5OgorXklyZXR1cm4gZnVzZV9zZXNzaW9uX3JlY2VpdmVfYnVmX2lu dChzZSwgYnVmLCBOVUxMKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNzU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3MzM6Cite SV5JXkleSSBzdHJ1Y3QgZnVzZV9jaGFuICpjaCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNzU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI3MzU6CiteSWludCBlcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjc1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzM2 OgorXklzc2l6ZV90IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNzYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3Mzg6Cite SXNpemVfdCBidWZzaXplID0gc2UtPmJ1ZnNpemU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjc2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNzM5OgorXklzdHJ1Y3QgZnVzZV9sbF9waXBlICpsbHA7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyNzQwOgorXklzdHJ1Y3QgZnVzZV9idWYgdG1wYnVmOyQKCldBUk5JTkc6 IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMyNzY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI3NDI6CisgICAgICAgaWYgKHNlLT5jb25uLnByb3RvX21pbm9yIDwgMTQg fHwgIShzZS0+Y29ubi53YW50ICYgRlVTRV9DQVBfU1BMSUNFX1JFQUQpKQoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc2NDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyNzQyOgorXklpZiAoc2UtPmNvbm4ucHJvdG9fbWlub3IgPCAxNCB8 fCAhKHNlLT5jb25uLndhbnQgJiBGVVNFX0NBUF9TUExJQ0VfUkVBRCkpJAoKRVJST1I6IGJyYWNl cyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjc2NDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzQyOgorICAgICAgIGlmIChz ZS0+Y29ubi5wcm90b19taW5vciA8IDE0IHx8ICEoc2UtPmNvbm4ud2FudCAmIEZVU0VfQ0FQX1NQ TElDRV9SRUFEKSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI3NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc0MzoKK15J Xklnb3RvIGZhbGxiYWNrOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI3Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc0NToKK15J bGxwID0gZnVzZV9sbF9nZXRfcGlwZShzZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjc2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyNzQ2OgorXklpZiAobGxwID09IE5VTEwpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNz YXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjc2ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzQ2OgorICAgICAgIGlmIChsbHAgPT0gTlVMTCkKWy4u Ll0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3Njk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc0NzoKK15JXklnb3RvIGZhbGxiYWNr OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NzE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc0OToKK15JaWYgKGxscC0+c2l6ZSA8 IGJ1ZnNpemUpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy NzcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3NTA6CiteSV5JaWYg KGxscC0+Y2FuX2dyb3cpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyNzczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3NTE6Cite SV5JXklyZXMgPSBmY250bChsbHAtPnBpcGVbMF0sIEZfU0VUUElQRV9TWiwgYnVmc2l6ZSk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc3NDogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzUyOgorXkleSV5JaWYgKHJlcyA9PSAtMSkg eyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NzU6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc1MzoKK15JXkleSV5JbGxwLT5jYW5f Z3JvdyA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc3 NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzU0OgorXkleSV5JXkly ZXMgPSBncm93X3BpcGVfdG9fbWF4KGxscC0+cGlwZVswXSk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyNzU1OgorXkleSV5JXklpZiAocmVzID4gMCkkCgpFUlJPUjogYnJhY2VzIHt9 IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyNzc3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3NTU6CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKHJlcyA+IDApClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNzc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI3NTY6CiteSV5JXkleSV5JbGxwLT5zaXplID0gcmVzOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6Mjc1NzoKK15JXkleSV5JZ290byBmYWxsYmFjazskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzgwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI3NTg6CiteSV5JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjc4MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzoyNzU5OgorXkleSV5JbGxwLT5zaXplID0gcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6Mjc2MDoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjc4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy NzYxOgorXkleSWlmIChsbHAtPnNpemUgPCBidWZzaXplKSQKCkVSUk9SOiBicmFjZXMge30gYXJl IG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI3ODM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc2MToKKyAgICAgICAgICAgICAgIGlmIChs bHAtPnNpemUgPCBidWZzaXplKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjc4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy NzYyOgorXkleSV5JZ290byBmYWxsYmFjazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNzg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI3NjM6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy Nzg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3NjU6CiteSXJlcyA9 IHNwbGljZShjaCA/IGNoLT5mZCA6IHNlLT5mZCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyNzg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI3NjY6CiteSV5JICAgICBOVUxMLCBsbHAtPnBpcGVbMV0sIE5VTEwsIGJ1ZnNpemUsIDAp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3ODk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc2NzoKK15JZXJyID0gZXJybm87JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc5MTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzY5OgorXklpZiAoZnVzZV9zZXNzaW9uX2V4 aXRlZChzZSkpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBv ZiB0aGlzIHN0YXRlbWVudAojMjc5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNzY5OgorICAgICAgIGlmIChmdXNlX3Nlc3Npb25fZXhpdGVkKHNlKSkKWy4uLl0KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3OTI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc3MDoKK15JXklyZXR1cm4gMDskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzk0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3NzI6CiteSWlmIChyZXMgPT0gLTEpIHskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzk1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3NzM6CiteSV5JaWYgKGVyciA9PSBFTk9ERVYpIHskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzk2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3NzQ6CiteSV5JXkkvKiBGaWxlc3lzdGVtIHdh cyB1bm1vdW50ZWQsIG9yIGNvbm5lY3Rpb24gd2FzIGFib3J0ZWQkCgpXQVJOSU5HOiBCbG9jayBj b21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMjc5NjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzc0OgorICAgICAgICAgICAgICAgICAg ICAgICAvKiBGaWxlc3lzdGVtIHdhcyB1bm1vdW50ZWQsIG9yIGNvbm5lY3Rpb24gd2FzIGFib3J0 ZWQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3OTc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc3NToKK15JXkleSSAgIHZpYSAvc3lz L2ZzL2Z1c2UvY29ubmVjdGlvbnMgKi8kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBv biBzdWJzZXF1ZW50IGxpbmVzCiMyNzk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI3NzU6CisgICAgICAgICAgICAgICAgICAgICAgIC8qIEZpbGVzeXN0ZW0gd2FzIHVu bW91bnRlZCwgb3IgY29ubmVjdGlvbiB3YXMgYWJvcnRlZAorICAgICAgICAgICAgICAgICAgICAg ICAgICB2aWEgL3N5cy9mcy9mdXNlL2Nvbm5lY3Rpb25zICovCgpXQVJOSU5HOiBCbG9jayBjb21t ZW50cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzI3OTc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc3NToKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgdmlhIC9zeXMvZnMvZnVzZS9jb25uZWN0aW9ucyAqLwoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyNzc2OgorXkleSV5JZnVzZV9zZXNzaW9uX2V4aXQoc2UpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3OTk6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc3NzoKK15JXkleSXJldHVybiAwOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6Mjc3ODoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjgwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyNzc5OgorXkleSWlmIChlcnIgIT0gRUlOVFIgJiYgZXJyICE9IEVBR0FJTikkCgpFUlJP UjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50 CiMyODAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3Nzk6CisgICAg ICAgICAgICAgICBpZiAoZXJyICE9IEVJTlRSICYmIGVyciAhPSBFQUdBSU4pClsuLi5dCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODAyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3ODA6CiteSV5JXklwZXJyb3IoImZ1c2U6IHNwbGlj ZSBmcm9tIGRldmljZSIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI4MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc4MToKK15J XklyZXR1cm4gLWVycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyODA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3ODI6CiteSX0k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODA2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3ODQ6CiteSWlmIChyZXMgPCBzaXplb2Yo c3RydWN0IGZ1c2VfaW5faGVhZGVyKSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI4MDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 Mjc4NToKK15JXklmdXNlX2xvZyhGVVNFX0xPR19FUlIsICJzaG9ydCBzcGxpY2UgZnJvbSBmdXNl IGRldmljZVxuIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MjgwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzg2OgorXkleSXJl dHVybiAtRUlPOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4 MDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc4NzoKK15JfSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MTE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc4OToKK15JdG1wYnVmID0gKHN0cnVjdCBmdXNl X2J1ZikgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MTI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc5MDoKK15JXkkuc2l6ZSA9 IHJlcywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODEzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3OTE6CiteSV5JLmZsYWdzID0g RlVTRV9CVUZfSVNfRkQsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjgxNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzkyOgorXkle SS5mZCA9IGxscC0+cGlwZVswXSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyODE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3OTM6 CiteSX07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgxNzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyNzk1OgorXkkvKiQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MTg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc5NjoKK15JICogRG9uJ3QgYm90aGVyIHdpdGggemVy byBjb3B5IGZvciBzbWFsbCByZXF1ZXN0cy4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyODE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI3OTc6CiteSSAqIGZ1c2VfbG9vcF9tdCgpIG5lZWRzIHRvIGNoZWNrIGZvciBGT1JHRVQgc28g dGhpcyBtb3JlIHRoYW4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyODIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI3OTg6CiteSSAq IGp1c3QgYW4gb3B0aW1pemF0aW9uLiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI4MjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjc5 OToKK15JICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgy MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODAwOgorXklpZiAocmVz IDwgc2l6ZW9mKHN0cnVjdCBmdXNlX2luX2hlYWRlcikgKyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjgwMToKK15JICAgIHNpemVvZihzdHJ1Y3QgZnVzZV93cml0ZV9pbikgKyBwYWdl c2l6ZSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MjQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjgwMjoKK15JXklzdHJ1Y3Qg ZnVzZV9idWZ2ZWMgc3JjID0geyAuYnVmWzBdID0gdG1wYnVmLCAuY291bnQgPSAxIH07JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgyNTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODAzOgorXkleSXN0cnVjdCBmdXNlX2J1ZnZlYyBk c3QgPSB7IC5jb3VudCA9IDEgfTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyODI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4MDU6 CiteSV5JaWYgKCFidWYtPm1lbSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI4Mjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjgw NjoKK15JXkleSWJ1Zi0+bWVtID0gbWFsbG9jKHNlLT5idWZzaXplKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI4MDc6CiteSV5JXklpZiAoIWJ1Zi0+bWVtKSB7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgzMDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODA4OgorXkleSV5JXklmdXNlX2xvZyhGVVNFX0xPR19FUlIs JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgzMTogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODA5OgorXkleSV5JXkleSSJmdXNlOiBm YWlsZWQgdG8gYWxsb2NhdGUgcmVhZCBidWZmZXJcbiIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjgxMDoKK15JXkleSV5JcmV0dXJuIC1FTk9NRU07JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyODExOgorXkleSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI4MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjgxMjoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjgzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODEzOgorXkle SWJ1Zi0+c2l6ZSA9IHNlLT5idWZzaXplOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI4MzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjgxNDoKK15JXklidWYtPmZsYWdzID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyODM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI4MTU6CiteSV5JZHN0LmJ1ZlswXSA9ICpidWY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjgzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyODE3OgorXkleSXJlcyA9IGZ1c2VfYnVmX2NvcHkoJmRzdCwgJnNyYywgMCk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg0MDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODE4OgorXkleSWlmIChyZXMgPCAwKSB7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg0MTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODE5OgorXkleSV5JZnVzZV9sb2coRlVTRV9MT0df RVJSLCAiZnVzZTogY29weSBmcm9tIHBpcGU6ICVzXG4iLCQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjgyMDoKK15JXkleSV5Jc3RyZXJyb3IoLXJlcykpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjgyMToKK15JXkleSWZ1c2VfbGxfY2xlYXJfcGlwZShzZSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg0NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODIyOgorXkleSV5JcmV0dXJuIHJlczskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODQ1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4MjM6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjgyNDoKK15JXklpZiAocmVzIDwgdG1wYnVmLnNpemUpIHskCgpXQVJOSU5H OiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMjg0NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyODI1OgorICAgICAgICAgICAgICAgICAgICAgICBmdXNlX2xvZyhGVVNF X0xPR19FUlIsICJmdXNlOiBjb3B5IGZyb20gcGlwZTogc2hvcnQgcmVhZFxuIik7CgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODQ3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4MjU6CiteSV5JXklmdXNlX2xvZyhGVVNFX0xPR19FUlIs ICJmdXNlOiBjb3B5IGZyb20gcGlwZTogc2hvcnQgcmVhZFxuIik7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyODI2OgorXkleSV5JZnVzZV9sbF9jbGVhcl9waXBlKHNlKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODQ5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4Mjc6CiteSV5JXklyZXR1cm4gLUVJTzskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODUwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4Mjg6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjgyOToKK15JXklhc3NlcnQocmVzID09IHRtcGJ1Zi5zaXplKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODUzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4MzE6CiteSX0gZWxzZSB7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg1NDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyODMyOgorXkleSS8qIERvbid0IG92ZXJ3cml0ZSBidWYtPm1lbSwg YXMgdGhhdCB3b3VsZCBjYXVzZSBhIGxlYWsgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyODU1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI4MzM6CiteSV5JYnVmLT5mZCA9IHRtcGJ1Zi5mZDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjI4MzQ6CiteSV5JYnVmLT5mbGFncyA9IHRtcGJ1Zi5mbGFnczskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODU3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4MzU6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyODU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI4MzY6CiteSWJ1Zi0+c2l6ZSA9IHRtcGJ1Zi5zaXplOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MjgzODoKK15JcmV0dXJuIHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjI4NDI6CiteSWlmICghYnVmLT5tZW0pIHskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjI4NDM6CiteSV5JYnVmLT5tZW0gPSBtYWxsb2Moc2UtPmJ1ZnNpemUpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NjY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg0NDoKK15JXklpZiAoIWJ1Zi0+bWVtKSB7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg2NzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODQ1OgorXkleSV5JZnVzZV9sb2coRlVTRV9M T0dfRVJSLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4Njg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg0NjoKK15JXkleSV5JImZ1 c2U6IGZhaWxlZCB0byBhbGxvY2F0ZSByZWFkIGJ1ZmZlclxuIik7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyODQ3OgorXkleSV5JcmV0dXJuIC1FTk9NRU07JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg3MDogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyODQ4OgorXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyODcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI4NDk6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyODc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4NTI6CiteSXJl cyA9IHJlYWQoY2ggPyBjaC0+ZmQgOiBzZS0+ZmQsIGJ1Zi0+bWVtLCBzZS0+YnVmc2l6ZSk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg3NTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODUzOgorXkllcnIgPSBlcnJubzskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODc3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4NTU6CiteSWlmIChmdXNlX3Nlc3Npb25fZXhpdGVk KHNlKSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRo aXMgc3RhdGVtZW50CiMyODc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI4NTU6CisgICAgICAgaWYgKGZ1c2Vfc2Vzc2lvbl9leGl0ZWQoc2UpKQpbLi4uXQoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg3ODogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODU2OgorXkleSXJldHVybiAwOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6Mjg1NzoKK15JaWYgKHJlcyA9PSAtMSkgeyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6Mjg1ODoKK15JXkkvKiBFTk9FTlQgbWVhbnMgdGhlIG9wZXJhdGlv biB3YXMgaW50ZXJydXB0ZWQsIGl0J3Mgc2FmZSQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVz ZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMyODgwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4NTg6CisgICAgICAgICAgICAgICAvKiBFTk9FTlQgbWVh bnMgdGhlIG9wZXJhdGlvbiB3YXMgaW50ZXJydXB0ZWQsIGl0J3Mgc2FmZQoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg4MTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyODU5OgorXkleSSAgIHRvIHJlc3RhcnQgKi8kCgpXQVJOSU5HOiBC bG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50IGxpbmVzCiMyODgxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4NTk6CisgICAgICAgICAgICAgICAvKiBFTk9F TlQgbWVhbnMgdGhlIG9wZXJhdGlvbiB3YXMgaW50ZXJydXB0ZWQsIGl0J3Mgc2FmZQorICAgICAg ICAgICAgICAgICAgdG8gcmVzdGFydCAqLwoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEg dHJhaWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiMyODgxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI4NTk6CisgICAgICAgICAgICAgICAgICB0byByZXN0YXJ0ICov CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODgyOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4NjA6CiteSV5JaWYgKGVyciA9PSBFTk9F TlQpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlz IHN0YXRlbWVudAojMjg4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy ODYwOgorICAgICAgICAgICAgICAgaWYgKGVyciA9PSBFTk9FTlQpClsuLi5dCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODgzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI4NjE6CiteSV5JXklnb3RvIHJlc3RhcnQ7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg4NTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODYzOgorXkleSWlmIChlcnIgPT0gRU5PREVWKSB7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg4NjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODY0OgorXkleSV5JLyogRmlsZXN5c3RlbSB3YXMg dW5tb3VudGVkLCBvciBjb25uZWN0aW9uIHdhcyBhYm9ydGVkJAoKV0FSTklORzogQmxvY2sgY29t bWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzI4ODY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg2NDoKKyAgICAgICAgICAgICAgICAgICAg ICAgLyogRmlsZXN5c3RlbSB3YXMgdW5tb3VudGVkLCBvciBjb25uZWN0aW9uIHdhcyBhYm9ydGVk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODg3OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4NjU6CiteSV5JXkkgICB2aWEgL3N5cy9m cy9mdXNlL2Nvbm5lY3Rpb25zICovJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlICogb24g c3Vic2VxdWVudCBsaW5lcwojMjg4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyODY1OgorICAgICAgICAgICAgICAgICAgICAgICAvKiBGaWxlc3lzdGVtIHdhcyB1bm1v dW50ZWQsIG9yIGNvbm5lY3Rpb24gd2FzIGFib3J0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgdmlhIC9zeXMvZnMvZnVzZS9jb25uZWN0aW9ucyAqLwoKV0FSTklORzogQmxvY2sgY29tbWVu dHMgdXNlIGEgdHJhaWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCiMyODg3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4NjU6CisgICAgICAgICAgICAgICAgICAgICAg ICAgIHZpYSAvc3lzL2ZzL2Z1c2UvY29ubmVjdGlvbnMgKi8KCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6Mjg2NjoKK15JXkleSWZ1c2Vfc2Vzc2lvbl9leGl0KHNlKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODg5OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI4Njc6CiteSV5JXklyZXR1cm4gMDskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODkwOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI4Njg6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI4OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6Mjg2OToKK15JXkkvKiBFcnJvcnMgb2NjdXJyaW5nIGR1cmluZyBub3JtYWwgb3BlcmF0aW9u OiBFSU5UUiAocmVhZCQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyog b24gYSBzZXBhcmF0ZSBsaW5lCiMyODkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI4Njk6CisgICAgICAgICAgICAgICAvKiBFcnJvcnMgb2NjdXJyaW5nIGR1cmluZyBu b3JtYWwgb3BlcmF0aW9uOiBFSU5UUiAocmVhZAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjg5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyODcwOgorXkleSSAgIGludGVycnVwdGVkKSwgRUFHQUlOIChub25ibG9ja2luZyBJL08pLCBF Tk9ERVYgKGZpbGVzeXN0ZW0kCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJz ZXF1ZW50IGxpbmVzCiMyODkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI4NzA6CisgICAgICAgICAgICAgICAvKiBFcnJvcnMgb2NjdXJyaW5nIGR1cmluZyBub3JtYWwg b3BlcmF0aW9uOiBFSU5UUiAocmVhZAorICAgICAgICAgICAgICAgICAgaW50ZXJydXB0ZWQpLCBF QUdBSU4gKG5vbmJsb2NraW5nIEkvTyksIEVOT0RFViAoZmlsZXN5c3RlbQoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg5MzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyODcxOgorXkleSSAgIHVtb3VudGVkKSAqLyQKCldBUk5JTkc6IEJs b2NrIGNvbW1lbnRzIHVzZSBhIHRyYWlsaW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQojMjg5Mzog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODcxOgorICAgICAgICAgICAg ICAgICAgdW1vdW50ZWQpICovCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyODk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4NzI6Cite SV5JaWYgKGVyciAhPSBFSU5UUiAmJiBlcnIgIT0gRUFHQUlOKSQKCkVSUk9SOiBicmFjZXMge30g YXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI4OTQ6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg3MjoKKyAgICAgICAgICAgICAgIGlm IChlcnIgIT0gRUlOVFIgJiYgZXJyICE9IEVBR0FJTikKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6Mjg3MzoKK15JXkleSXBlcnJvcigiZnVzZTogcmVhZGluZyBkZXZpY2UiKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODk2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4NzQ6CiteSV5JcmV0dXJuIC1lcnI7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg5NzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODc1OgorXkl9JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjg5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyODc2OgorXklpZiAoKHNpemVfdCkgcmVzIDwgc2l6ZW9mKHN0cnVjdCBm dXNlX2luX2hlYWRlcikpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMyODk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4Nzc6Cite SV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAic2hvcnQgcmVhZCBvbiBmdXNlIGRldmljZVxuIik7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkwMDogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODc4OgorXkleSXJldHVybiAtRUlPOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MDE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjg3OToKK15JfSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6Mjg4MToKK15JYnVmLT5zaXplID0gcmVzOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6Mjg4MzoKK15JcmV0dXJuIHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjI4ODc6CiteSV5JXkleSSAgICAgIGNvbnN0IHN0cnVjdCBmdXNlX2xvd2xldmVs X29wcyAqb3AsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkx MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODg4OgorXkleSV5JXkkg ICAgICBzaXplX3Qgb3Bfc2l6ZSwgdm9pZCAqdXNlcmRhdGEpJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyODkwOgorXklpbnQgZXJyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI5MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6Mjg5MToKK15Jc3RydWN0IGZ1c2Vfc2Vzc2lvbiAqc2U7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkxNDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyODkyOgorXklzdHJ1Y3QgbW91bnRfb3B0cyAqbW87JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkxNjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyODk0OgorXklpZiAoc2l6ZW9mKHN0cnVjdCBmdXNlX2xvd2xldmVs X29wcykgPCBvcF9zaXplKSB7JAoKRVJST1I6IGxpbmUgb3ZlciA5MCBjaGFyYWN0ZXJzCiMyOTE3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4OTU6CisgICAgICAgICAg ICAgICBmdXNlX2xvZyhGVVNFX0xPR19FUlIsICJmdXNlOiB3YXJuaW5nOiBsaWJyYXJ5IHRvbyBv bGQsIHNvbWUgb3BlcmF0aW9ucyBtYXkgbm90IHdvcmtcbiIpOwoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyODk1OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6IHdhcm5p bmc6IGxpYnJhcnkgdG9vIG9sZCwgc29tZSBvcGVyYXRpb25zIG1heSBub3Qgd29ya1xuIik7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkxODogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyODk2OgorXkleSW9wX3NpemUgPSBzaXplb2Yo c3RydWN0IGZ1c2VfbG93bGV2ZWxfb3BzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyOTE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjI4OTc6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMy OTIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI4OTk6CiteSWlmIChh cmdzLT5hcmdjID09IDApIHskCgpFUlJPUjogbGluZSBvdmVyIDkwIGNoYXJhY3RlcnMKIzI5MjI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjkwMDoKKyAgICAgICAgICAg ICAgIGZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6IGVtcHR5IGFyZ3YgcGFzc2VkIHRvIGZ1 c2Vfc2Vzc2lvbl9uZXcoKS5cbiIpOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjkyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTAw OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6IGVtcHR5IGFyZ3YgcGFzc2VkIHRv IGZ1c2Vfc2Vzc2lvbl9uZXcoKS5cbiIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI5MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MjkwMToKK15JXklyZXR1cm4gTlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyOTI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5 MDI6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTI2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MDQ6CiteSXNlID0gKHN0 cnVjdCBmdXNlX3Nlc3Npb24gKikgY2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgZnVzZV9zZXNzaW9u KSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkyNzogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTA1OgorXklpZiAoc2UgPT0gTlVM TCkgeyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMyOTI4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MDY6CisgICAgICAgICAgICAgICBmdXNlX2xv ZyhGVVNFX0xPR19FUlIsICJmdXNlOiBmYWlsZWQgdG8gYWxsb2NhdGUgZnVzZSBvYmplY3RcbiIp OwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkyODogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTA2OgorXkleSWZ1c2VfbG9nKEZVU0Vf TE9HX0VSUiwgImZ1c2U6IGZhaWxlZCB0byBhbGxvY2F0ZSBmdXNlIG9iamVjdFxuIik7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkyOTogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTA3OgorXkleSWdvdG8gb3V0MTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTMwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MDg6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyOTMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI5MDk6CiteSXNlLT5mZCA9IC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI5MzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjkxMDoKK15Jc2UtPmNvbm4ubWF4X3dyaXRlID0gVUlOVF9NQVg7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkzMzogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyOTExOgorXklzZS0+Y29ubi5tYXhfcmVhZGFoZWFkID0gVUlOVF9N QVg7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkzNTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTEzOgorXkkvKiBQYXJzZSBvcHRp b25zICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkzNjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTE0OgorXklpZihmdXNlX29w dF9wYXJzZShhcmdzLCBzZSwgZnVzZV9sbF9vcHRzLCBOVUxMKSA9PSAtMSkkCgpFUlJPUjogc3Bh Y2UgcmVxdWlyZWQgYmVmb3JlIHRoZSBvcGVuIHBhcmVudGhlc2lzICcoJwojMjkzNjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTE0OgorICAgICAgIGlmKGZ1c2Vfb3B0 X3BhcnNlKGFyZ3MsIHNlLCBmdXNlX2xsX29wdHMsIE5VTEwpID09IC0xKQoKRVJST1I6IGJyYWNl cyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjkzNjog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTE0OgorICAgICAgIGlmKGZ1 c2Vfb3B0X3BhcnNlKGFyZ3MsIHNlLCBmdXNlX2xsX29wdHMsIE5VTEwpID09IC0xKQpbLi4uXQoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjkzNzogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTE1OgorXkleSWdvdG8gb3V0MjskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTM4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MTY6CiteSWlmKHNlLT5kZW55X290aGVycykgeyQK CkVSUk9SOiBzcGFjZSByZXF1aXJlZCBiZWZvcmUgdGhlIG9wZW4gcGFyZW50aGVzaXMgJygnCiMy OTM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MTY6CisgICAgICAg aWYoc2UtPmRlbnlfb3RoZXJzKSB7CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyOTM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MTc6 CiteSV5JLyogQWxsb3dpbmcgYWNjZXNzIG9ubHkgYnkgcm9vdCBpcyBkb25lIGJ5IGluc3RydWN0 aW5nJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFy YXRlIGxpbmUKIzI5Mzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjkx NzoKKyAgICAgICAgICAgICAgIC8qIEFsbG93aW5nIGFjY2VzcyBvbmx5IGJ5IHJvb3QgaXMgZG9u ZSBieSBpbnN0cnVjdGluZwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjk0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTE4OgorXkle SSAqIGtlcm5lbCB0byBhbGxvdyBhY2Nlc3MgYnkgZXZlcnlvbmUsIGFuZCB0aGVuIHJlc3RyaWN0 aW5nJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk0MTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTE5OgorXkleSSAqIGFjY2VzcyB0 byByb290IGFuZCBtb3VudHBvaW50IG93bmVyIGluIGxpYmZ1c2UuJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk0MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1 c2VfbG93bGV2ZWwuYzoyOTIwOgorXkleSSAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI5NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MjkyMToKK15JXkkvLyBXZSBtYXkgYmUgYWRkaW5nIHRoZSBvcHRpb24gYSBzZWNvbmQgdGlt ZSwgYnV0JAoKRVJST1I6IGRvIG5vdCB1c2UgQzk5IC8vIGNvbW1lbnRzCiMyOTQzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MjE6CisgICAgICAgICAgICAgICAvLyBX ZSBtYXkgYmUgYWRkaW5nIHRoZSBvcHRpb24gYSBzZWNvbmQgdGltZSwgYnV0CgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTQ0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI5MjI6CiteSV5JLy8gdGhhdCBkb2Vzbid0IGh1cnQuJAoKRVJS T1I6IGRvIG5vdCB1c2UgQzk5IC8vIGNvbW1lbnRzCiMyOTQ0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI5MjI6CisgICAgICAgICAgICAgICAvLyB0aGF0IGRvZXNuJ3Qg aHVydC4KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NDU6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjkyMzoKK15JXklpZihmdXNlX29w dF9hZGRfYXJnKGFyZ3MsICItb2FsbG93X290aGVyIikgPT0gLTEpJAoKRVJST1I6IHNwYWNlIHJl cXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBwYXJlbnRoZXNpcyAnKCcKIzI5NDU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjkyMzoKKyAgICAgICAgICAgICAgIGlmKGZ1c2Vf b3B0X2FkZF9hcmcoYXJncywgIi1vYWxsb3dfb3RoZXIiKSA9PSAtMSkKCkVSUk9SOiBicmFjZXMg e30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI5NDU6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjkyMzoKKyAgICAgICAgICAgICAg IGlmKGZ1c2Vfb3B0X2FkZF9hcmcoYXJncywgIi1vYWxsb3dfb3RoZXIiKSA9PSAtMSkKWy4uLl0K CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NDY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjkyNDoKK15JXkleSWdvdG8gb3V0MjskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTQ3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MjU6CiteSX0kCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI5MjY6CiteSW1vID0gcGFyc2VfbW91bnRfb3B0cyhhcmdzKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTQ5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5Mjc6CiteSWlmIChtbyA9PSBOVUxMKSQKCkVSUk9S OiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQK IzI5NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjkyNzoKKyAgICAg ICBpZiAobW8gPT0gTlVMTCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzI5NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjky ODoKK15JXklnb3RvIG91dDM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjk1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTMwOgor XklpZihhcmdzLT5hcmdjID09IDEgJiYkCgpFUlJPUjogc3BhY2UgcmVxdWlyZWQgYmVmb3JlIHRo ZSBvcGVuIHBhcmVudGhlc2lzICcoJwojMjk1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyOTMwOgorICAgICAgIGlmKGFyZ3MtPmFyZ2MgPT0gMSAmJgoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk1MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTMxOgorXkkgICBhcmdzLT5hcmd2WzBdWzBdID09ICctJykg eyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMyOTU0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5MzI6CisgICAgICAgICAgICAgICBmdXNlX2xvZyhG VVNFX0xPR19FUlIsICJmdXNlOiB3YXJuaW5nOiBhcmd2WzBdIGxvb2tzIGxpa2UgYW4gb3B0aW9u LCBidXQgIgoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk1NDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTMyOgorXkleSWZ1c2VfbG9n KEZVU0VfTE9HX0VSUiwgImZ1c2U6IHdhcm5pbmc6IGFyZ3ZbMF0gbG9va3MgbGlrZSBhbiBvcHRp b24sIGJ1dCAiJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk1 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTMzOgorXkleSV5JIndp bGwgYmUgaWdub3JlZFxuIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjk1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTM0Ogor Xkl9IGVsc2UgaWYgKGFyZ3MtPmFyZ2MgIT0gMSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjkzNToKK15JXklpbnQgaTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyOTU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5 MzY6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVzZTogdW5rbm93biBvcHRpb24ocyk6 IGAiKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTU5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5Mzc6CiteSV5JZm9yKGkgPSAx OyBpIDwgYXJncy0+YXJnYy0xOyBpKyspJAoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBhcm91bmQg dGhhdCAnLScgKGN0eDpWeFYpCiMyOTU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI5Mzc6CisgICAgICAgICAgICAgICBmb3IoaSA9IDE7IGkgPCBhcmdzLT5hcmdjLTE7 IGkrKykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJPUjog c3BhY2UgcmVxdWlyZWQgYmVmb3JlIHRoZSBvcGVuIHBhcmVudGhlc2lzICcoJwojMjk1OTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTM3OgorICAgICAgICAgICAgICAg Zm9yKGkgPSAxOyBpIDwgYXJncy0+YXJnYy0xOyBpKyspCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBu ZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyOTU5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5Mzc6CisgICAgICAgICAgICAgICBmb3IoaSA9 IDE7IGkgPCBhcmdzLT5hcmdjLTE7IGkrKykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MjkzODoKK15JXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgIiVzICIsIGFyZ3MtPmFy Z3ZbaV0pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NjE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjkzOToKK15JXklmdXNlX2xv ZyhGVVNFX0xPR19FUlIsICIlcydcbiIsIGFyZ3MtPmFyZ3ZbaV0pOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6Mjk0MDoKK15JXklnb3RvIG91dDQ7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk2MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzoyOTQxOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjk2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTQz OgorXklpZiAoc2UtPmRlYnVnKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3Ig YWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzI5NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6Mjk0MzoKKyAgICAgICBpZiAoc2UtPmRlYnVnKQpbLi4uXQoKV0FSTklO RzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzI5NjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6Mjk0NDoKKyAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0VfTE9HX0RF QlVHLCAiRlVTRSBsaWJyYXJ5IHZlcnNpb246ICVzXG4iLCBQQUNLQUdFX1ZFUlNJT04pOwoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk2NjogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTQ0OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0RF QlVHLCAiRlVTRSBsaWJyYXJ5IHZlcnNpb246ICVzXG4iLCBQQUNLQUdFX1ZFUlNJT04pOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5Njg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk0NjoKK15Jc2UtPmJ1ZnNpemUgPSBGVVNFX01B WF9NQVhfUEFHRVMgKiBnZXRwYWdlc2l6ZSgpICskCgpFUlJPUjogdXNlIHFlbXVfcmVhbF9ob3N0 X3BhZ2Vfc2l6ZSBpbnN0ZWFkIG9mIGdldHBhZ2VzaXplKCkKIzI5Njg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk0NjoKKyAgICAgICBzZS0+YnVmc2l6ZSA9IEZVU0Vf TUFYX01BWF9QQUdFUyAqIGdldHBhZ2VzaXplKCkgKwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjk2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyOTQ3OgorXkleSUZVU0VfQlVGRkVSX0hFQURFUl9TSVpFOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6Mjk0OToKK15JbGlzdF9pbml0X3JlcSgmc2UtPmxpc3QpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NzI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk1MDoKK15JbGlzdF9pbml0X3JlcSgmc2UtPmludGVy cnVwdHMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NzM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk1MToKK15JbGlzdF9pbml0 X25yZXEoJnNlLT5ub3RpZnlfbGlzdCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMjk3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoy OTUyOgorXklzZS0+bm90aWZ5X2N0ciA9IDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjk3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyOTUzOgorXklmdXNlX211dGV4X2luaXQoJnNlLT5sb2NrKTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI5NTU6CiteSWVyciA9IHB0aHJlYWRfa2V5X2NyZWF0ZSgmc2UtPnBpcGVf a2V5LCBmdXNlX2xsX3BpcGVfZGVzdHJ1Y3Rvcik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjk3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyOTU2OgorXklpZiAoZXJyKSB7JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3Rl cnMKIzI5Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk1NzoKKyAg ICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZ1c2U6IGZhaWxlZCB0byBjcmVh dGUgdGhyZWFkIHNwZWNpZmljIGtleTogJXNcbiIsCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyOTc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI5NTc6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfRVJSLCAiZnVzZTogZmFpbGVkIHRvIGNy ZWF0ZSB0aHJlYWQgc3BlY2lmaWMga2V5OiAlc1xuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyOTgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI5NTg6CiteSV5JXklzdHJlcnJvcihlcnIpKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTgxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjI5NTk6CiteSV5JZ290byBvdXQ1OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI5ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6Mjk2MDoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI5ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk2MjoKK15J bWVtY3B5KCZzZS0+b3AsIG9wLCBvcF9zaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMyOTg1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI5NjM6CiteSXNlLT5vd25lciA9IGdldHVpZCgpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5ODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6Mjk2NDoKK15Jc2UtPnVzZXJkYXRhID0gdXNlcmRhdGE7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk4ODogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyOTY2OgorXklzZS0+bW8gPSBtbzskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjI5Njc6CiteSXJldHVybiBzZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyOTkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI5NzA6CiteSXB0aHJlYWRfbXV0ZXhfZGVzdHJveSgmc2UtPmxvY2spOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5OTQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk3MjoKK15JZnVzZV9vcHRfZnJlZV9hcmdzKGFyZ3Mp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5OTY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk3NDoKK15JZnJlZShtbyk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk5ODogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTc2OgorXklmcmVlKHNlKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDAwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjI5Nzg6CiteSXJldHVybiBOVUxMOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6Mjk4MzoKK15JaW50IGZkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6Mjk4NToKK15JLyokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzMDA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5ODY6Cite SSAqIE1ha2Ugc3VyZSBmaWxlIGRlc2NyaXB0b3JzIDAsIDEgYW5kIDIgYXJlIG9wZW4sIG90aGVy d2lzZSBjaGFvcyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMw MDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk4NzoKK15JICogd291 bGQgZW5zdWUuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAx MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTg4OgorXkkgKi8kCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDExOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5ODk6CiteSWRvIHskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv ZnVzZV9sb3dsZXZlbC5jOjI5OTA6CiteSV5JZmQgPSBvcGVuKCIvZGV2L251bGwiLCBPX1JEV1Ip OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMTM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk5MToKK15JXklpZiAoZmQgPiAyKSQK CkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0 ZW1lbnQKIzMwMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6Mjk5MToK KyAgICAgICAgICAgICAgIGlmIChmZCA+IDIpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMDE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjI5OTI6CiteSV5JXkljbG9zZShmZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzAxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzoyOTkzOgorXkl9IHdoaWxlIChmZCA+PSAwICYmIGZkIDw9IDIpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6Mjk5NToKK15JLyokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMDE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjI5OTY6CiteSSAqIFRvIGFsbG93IEZVU0UgZGFlbW9ucyB0byBydW4gd2l0aG91dCBwcml2 aWxlZ2VzLCB0aGUgY2FsbGVyIG1heSBvcGVuJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzAxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzoyOTk3OgorXkkgKiAvZGV2L2Z1c2UgYmVmb3JlIGxhdW5jaGluZyB0aGUgZmlsZSBzeXN0ZW0g YW5kIHBhc3Mgb24gdGhlIGZpbGUkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMDIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjI5OTg6 CiteSSAqIGRlc2NyaXB0b3IgYnkgc3BlY2lmeWluZyAvZGV2L2ZkL04gYXMgdGhlIG1vdW50IHBv aW50LiBOb3RlIHRoYXQgdGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzAyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoyOTk5Ogor XkkgKiBwYXJlbnQgcHJvY2VzcyB0YWtlcyBjYXJlIG9mIHBlcmZvcm1pbmcgdGhlIG1vdW50IGlu IHRoaXMgY2FzZS4kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz MDIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwMDA6CiteSSAqLyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMjM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzAwMToKK15JZmQgPSBmdXNlX21udF9wYXJz ZV9mdXNlX2ZkKG1vdW50cG9pbnQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMwMjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzAw MjoKK15JaWYgKGZkICE9IC0xKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzAyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDAz OgorXkleSWlmIChmY250bChmZCwgRl9HRVRGRCkgPT0gLTEpIHskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVz ZV9sb3dsZXZlbC5jOjMwMDQ6CiteSV5JXklmdXNlX2xvZyhGVVNFX0xPR19FUlIsJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAyNzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDA1OgorXkleSV5JXkkiZnVzZTogSW52YWxpZCBmaWxl IGRlc2NyaXB0b3IgL2Rldi9mZC8ldVxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMDI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjMwMDY6CiteSV5JXkleSWZkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMDI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwMDc6 CiteSV5JXklyZXR1cm4gLTE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzAzMDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDA4Ogor XkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDMxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwMDk6CiteSV5Jc2UtPmZkID0g ZmQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAzMjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDEwOgorXkleSXJldHVybiAwOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMzM6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzAxMToKK15JfSQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMzU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MzAxMzoKK15JLyogT3BlbiBjaGFubmVsICovJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzAzNjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzozMDE0OgorXklmZCA9IGZ1c2Vfa2Vybl9tb3VudChtb3VudHBvaW50 LCBzZS0+bW8pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMw Mzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzAxNToKK15JaWYgKGZk ID09IC0xKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2Yg dGhpcyBzdGF0ZW1lbnQKIzMwMzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MzAxNToKKyAgICAgICBpZiAoZmQgPT0gLTEpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjMwMTY6CiteSV5JcmV0dXJuIC0xOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMwMzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MzAxNzoKK15Jc2UtPmZkID0gZmQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzA0MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzozMDE5OgorXkkvKiBTYXZlIG1vdW50cG9pbnQgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzMDQyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3ds ZXZlbC5jOjMwMjA6CiteSXNlLT5tb3VudHBvaW50ID0gc3RyZHVwKG1vdW50cG9pbnQpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNDM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzAyMToKK15JaWYgKHNlLT5tb3VudHBvaW50ID09 IE5VTEwpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0 aGlzIHN0YXRlbWVudAojMzA0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzozMDIxOgorICAgICAgIGlmIChzZS0+bW91bnRwb2ludCA9PSBOVUxMKQpbLi4uXQoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA0NDogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDIyOgorXkleSWdvdG8gZXJyb3Jfb3V0OyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNDY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzAyNDoKK15JcmV0dXJuIDA7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA0OTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzozMDI3OgorXklmdXNlX2tlcm5fdW5tb3VudChtb3VudHBvaW50LCBm ZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA1MDogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDI4OgorXklyZXR1cm4gLTE7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA1NTogRklMRTogdG9v bHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDMzOgorXklyZXR1cm4gc2UtPmZkOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNjA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzAzODoKK15JaWYgKHNlLT5tb3VudHBvaW50ICE9 IE5VTEwpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDYx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwMzk6CiteSV5JZnVzZV9r ZXJuX3VubW91bnQoc2UtPm1vdW50cG9pbnQsIHNlLT5mZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA2MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzozMDQwOgorXkleSWZyZWUoc2UtPm1vdW50cG9pbnQpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MzA0MToKK15JXklzZS0+bW91bnRwb2ludCA9IE5VTEw7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA2NDogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDQyOgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzozMDQ4OgorXkljaGFyICpidWY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzA3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzozMDQ5OgorXklzaXplX3QgYnVmc2l6ZSA9IDEwMjQ7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA3MjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2Vf bG93bGV2ZWwuYzozMDUwOgorXkljaGFyIHBhdGhbMTI4XTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjMwNTE6CiteSWludCByZXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzA3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzozMDUyOgorXklpbnQgZmQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzA3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDUzOgor Xkl1bnNpZ25lZCBsb25nIHBpZCA9IHJlcS0+Y3R4LnBpZDskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjMwNTQ6CiteSWNoYXIgKnM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzA3ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwu YzozMDU2OgorXklzcHJpbnRmKHBhdGgsICIvcHJvYy8lbHUvdGFzay8lbHUvc3RhdHVzIiwgcGlk LCBwaWQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwODE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA1OToKK15JYnVmID0gbWFs bG9jKGJ1ZnNpemUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMwODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA2MDoKK15JaWYg KGJ1ZiA9PSBOVUxMKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFy bXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzMwODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MzA2MDoKKyAgICAgICBpZiAoYnVmID09IE5VTEwpClsuLi5dCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDgzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9sb3dsZXZlbC5jOjMwNjE6CiteSV5JcmV0dXJuIC1FTk9NRU07JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzA4NTogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDYzOgorXklyZXQgPSAtRUlPOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9m dXNlX2xvd2xldmVsLmM6MzA2NDoKK15JZmQgPSBvcGVuKHBhdGgsIE9fUkRPTkxZKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDg3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwNjU6CiteSWlmIChmZCA9PSAtMSkkCgpFUlJPUjog YnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMz MDg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwNjU6CisgICAgICAg aWYgKGZkID09IC0xKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzA4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDY2Ogor XkleSWdvdG8gb3V0X2ZyZWU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzA5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDY4Ogor XklyZXQgPSByZWFkKGZkLCBidWYsIGJ1ZnNpemUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMwOTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xl dmVsLmM6MzA2OToKK15JY2xvc2UoZmQpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzMwOTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 MzA3MDoKK15JaWYgKHJldCA8IDApIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMDkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMw NzE6CiteSV5JcmV0ID0gLUVJTzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMDk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwNzI6 CiteSV5JZ290byBvdXRfZnJlZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMDk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwNzM6 CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDk3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwNzU6CiteSWlmICgoc2l6ZV90 KXJldCA9PSBidWZzaXplKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzA5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDc2Ogor XkleSWZyZWUoYnVmKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMDk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwNzc6CiteSV5J YnVmc2l6ZSAqPSA0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMxMDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA3ODoKK15JXkln b3RvIHJldHJ5OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMx MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA3OToKK15JfSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMDM6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA4MToKK15JcmV0ID0gLUVJTzskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTA0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwODI6CiteSXMgPSBzdHJzdHIoYnVmLCAiXG5Hcm91cHM6 Iik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzEwNTogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDgzOgorXklpZiAocyA9PSBOVUxM KSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBz dGF0ZW1lbnQKIzMxMDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA4 MzoKKyAgICAgICBpZiAocyA9PSBOVUxMKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzEwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzozMDg0OgorXkleSWdvdG8gb3V0X2ZyZWU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMzEwODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2 ZWwuYzozMDg2OgorXklzICs9IDg7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzEwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDg3 OgorXklyZXQgPSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMxMTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA4ODoKK15Jd2hp bGUgKDEpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTEx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMwODk6CiteSV5JY2hhciAq ZW5kOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMTI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA5MDoKK15JXkl1bnNpZ25lZCBs b25nIHZhbCA9IHN0cnRvdWwocywgJmVuZCwgMCk7JAoKRVJST1I6IGNvbnNpZGVyIHVzaW5nIHFl bXVfc3RydG91bCBpbiBwcmVmZXJlbmNlIHRvIHN0cnRvdWwKIzMxMTI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA5MDoKKyAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgdmFsID0gc3RydG91bChzLCAmZW5kLCAwKTsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMxMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVs LmM6MzA5MToKK15JXklpZiAoZW5kID09IHMpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNz YXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMzExMzogRklMRTogdG9vbHMvdmly dGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDkxOgorICAgICAgICAgICAgICAgaWYgKGVuZCA9PSBz KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzExNDog RklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDkyOgorXkleSV5JYnJlYWs7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzExNjogRklMRTog dG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDk0OgorXkleSXMgPSBlbmQ7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzExNzogRklMRTogdG9vbHMv dmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMDk1OgorXkleSWlmIChyZXQgPCBzaXplKSQKCkVS Uk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1l bnQKIzMxMTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzA5NToKKyAg ICAgICAgICAgICAgIGlmIChyZXQgPCBzaXplKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMzExODogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93 bGV2ZWwuYzozMDk2OgorXkleSV5JbGlzdFtyZXRdID0gdmFsOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxMTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MzA5NzoKK15JXklyZXQrKzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzMTIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZl bC5jOjMwOTg6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzMTIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMxMDE6CiteSWZy ZWUoYnVmKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTI0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMxMDI6CiteSXJldHVybiBy ZXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzEzMjogRklM RTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMTEwOgorXkkodm9pZCkgcmVxOyAo dm9pZCkgc2l6ZTsgKHZvaWQpIGxpc3Q7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMzEzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzoz MTExOgorXklyZXR1cm4gLUVOT1NZUzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzMTM5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjMx MTc6CiteSXNlLT5leGl0ZWQgPSAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzMxNDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzEy MjoKK15Jc2UtPmV4aXRlZCA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMzE0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfbG93bGV2ZWwuYzozMTIz OgorXklzZS0+ZXJyb3IgPSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzMxNTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MzEyODoK K15JcmV0dXJuIHNlLT5leGl0ZWQ7JAoKdG90YWw6IDIzMzggZXJyb3JzLCA1NyB3YXJuaW5ncywg MzEyOSBsaW5lcyBjaGVja2VkCgpQYXRjaCA0LzExMSBoYXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFz ZSByZXZpZXcuICBJZiBhbnkgb2YgdGhlc2UgZXJyb3JzCmFyZSBmYWxzZSBwb3NpdGl2ZXMgcmVw b3J0IHRoZW0gdG8gdGhlIG1haW50YWluZXIsIHNlZQpDSEVDS1BBVENIIGluIE1BSU5UQUlORVJT LgoKNS8xMTEgQ2hlY2tpbmcgY29tbWl0IDkwNzhhOTRkNTcwNyAodmlydGlvZnNkOiBBZGQgcGFz c3Rocm91Z2hfbGwpCldBUk5JTkc6IGFkZGVkLCBtb3ZlZCBvciBkZWxldGVkIGZpbGUocyksIGRv ZXMgTUFJTlRBSU5FUlMgbmVlZCB1cGRhdGluZz8KIzIzOiAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK CldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSAqIG9uIHN1YnNlcXVlbnQgbGluZXMKIzI5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyOgorLyoKKyAgRlVTRTogRmls ZXN5c3RlbSBpbiBVc2Vyc3BhY2UKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRp bmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMzNjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6OToKKy8qKiBAZmlsZQoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3Rl cnMKIzU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozMToKKyAqICAg ICBnY2MgLVdhbGwgcGFzc3Rocm91Z2hfbGwuYyBgcGtnLWNvbmZpZyBmdXNlMyAtLWNmbGFncyAt LWxpYnNgIC1vIHBhc3N0aHJvdWdoX2xsCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBs ZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjYwOgorLyogV2UgYXJlIHJlLXVzaW5nIHBvaW50ZXJzIHRvIG91ciBg c3RydWN0IGxvX2lub2RlYCBhbmQgYHN0cnVjdAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNl ICogb24gc3Vic2VxdWVudCBsaW5lcwojODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjYxOgorLyogV2UgYXJlIHJlLXVzaW5nIHBvaW50ZXJzIHRvIG91ciBgc3RydWN0 IGxvX2lub2RlYCBhbmQgYHN0cnVjdAorICAgbG9fZGlycGAgZWxlbWVudHMgYXMgaW5vZGVzLiBU aGlzIG1lYW5zIHRoYXQgd2UgbXVzdCBiZSBhYmxlIHRvCgpXQVJOSU5HOiBCbG9jayBjb21tZW50 cyB1c2UgYSB0cmFpbGluZyAqLyBvbiBhIHNlcGFyYXRlIGxpbmUKIzkwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2MzoKKyAgIGluY2FudGF0aW9uIGNoZWNrcyB0aGlz IGNvbmRpdGlvbiBhdCBjb21waWxlIHRpbWUuICovCgpFUlJPUjogbGluZSBvdmVyIDkwIGNoYXJh Y3RlcnMKIzkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2NDoKKyNp ZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPiA0IHx8IF9fR05VQ19fID09IDQgJiYg X19HTlVDX01JTk9SX18gPj0gNikgJiYgIWRlZmluZWQgX19jcGx1c3BsdXMKCldBUk5JTkc6IGFy Y2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkCiM5MTogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjQ6CisjaWYgZGVmaW5lZChfX0dOVUNf XykgJiYgKF9fR05VQ19fID4gNCB8fCBfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49 IDYpICYmICFkZWZpbmVkIF9fY3BsdXNwbHVzCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 NjY6CiteSSAgICAgICAiZnVzZV9pbm9fdCB0b28gc21hbGwgdG8gaG9sZCB1aW50cHRyX3QgdmFs dWVzISIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2OToKK15JeyB1bnNpZ25lZCBf dWludHB0cl90b19tdXN0X2hvbGRfZnVzZV9pbm9fdDokCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6NzA6CiteSV5JXkkoKHNpemVvZihmdXNlX2lub190KSA+PSBzaXplb2YodWludHB0cl90 KSkgPyAxIDogLTEpOyB9OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEwMTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzQ6CiteSXN0 cnVjdCBsb19pbm9kZSAqbmV4dDsgLyogcHJvdGVjdGVkIGJ5IGxvLT5tdXRleCAqLyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzU6CiteSXN0cnVjdCBsb19pbm9kZSAqcHJldjsgLyog cHJvdGVjdGVkIGJ5IGxvLT5tdXRleCAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 NzY6CiteSWludCBmZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjc3OgorXklib29s IGlzX3N5bWxpbms7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3ODoKK15JaW5vX3Qg aW5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNjogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Nzk6CiteSWRldl90IGRldjskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjgwOgorXkl1aW50NjRfdCByZWZjb3VudDsgLyog cHJvdGVjdGVkIGJ5IGxvLT5tdXRleCAqLyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzExMTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 ODQ6CiteSUNBQ0hFX05FVkVSLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzExMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODU6Cite SUNBQ0hFX05PUk1BTCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjg2OgorXklDQUNI RV9BTFdBWVMsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5MDoKK15JcHRocmVhZF9t dXRleF90IG11dGV4OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzExODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTE6CiteSWludCBk ZWJ1ZzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjkyOgorXklpbnQgd3JpdGViYWNr OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMDogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTM6CiteSWludCBmbG9jazskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk0OgorXklpbnQgeGF0dHI7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzo5NToKK15JY29uc3QgY2hhciAqc291cmNlOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMzogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6OTY6CiteSWRvdWJsZSB0aW1lb3V0OyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6OTc6CiteSWludCBjYWNoZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjk4OgorXklpbnQgdGltZW91dF9zZXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo5OToKK15Jc3RydWN0IGxvX2lub2RlIHJvb3Q7IC8qIHByb3RlY3RlZCBieSBsby0+bXV0 ZXggKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwMzoKK15JeyAid3JpdGViYWNr IiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzE6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNDoKK15JICBvZmZzZXRvZihzdHJ1 Y3QgbG9fZGF0YSwgd3JpdGViYWNrKSwgMSB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MTA1OgorXkl7ICJub193cml0ZWJhY2siLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MTA2OgorXkkgIG9mZnNldG9mKHN0cnVjdCBsb19kYXRhLCB3cml0ZWJhY2spLCAwIH0sJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDc6CiteSXsgInNvdXJjZT0lcyIsJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM1OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDg6CiteSSAgb2Zmc2V0b2Yoc3RydWN0IGxvX2Rh dGEsIHNvdXJjZSksIDAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwOToKK15J eyAiZmxvY2siLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEz NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTEwOgorXkkgIG9mZnNl dG9mKHN0cnVjdCBsb19kYXRhLCBmbG9jayksIDEgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjExMToKK15JeyAibm9fZmxvY2siLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MTEyOgorXkkgIG9mZnNldG9mKHN0cnVjdCBsb19kYXRhLCBmbG9jayksIDAgfSwkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDA6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExMzoKK15JeyAieGF0dHIiLCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MTogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MTE0OgorXkkgIG9mZnNldG9mKHN0cnVjdCBsb19kYXRhLCB4YXR0 ciksIDEgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNDI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExNToKK15JeyAibm9feGF0 dHIiLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0MzogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE2OgorXkkgIG9mZnNldG9mKHN0 cnVjdCBsb19kYXRhLCB4YXR0ciksIDAgfSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxNDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjExNzoKK15JeyAidGltZW91dD0lbGYiLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzE0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 MTE4OgorXkkgIG9mZnNldG9mKHN0cnVjdCBsb19kYXRhLCB0aW1lb3V0KSwgMCB9LCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE0NjogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE5OgorXkl7ICJ0aW1lb3V0PSIsJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTQ3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzoxMjA6CiteSSAgb2Zmc2V0b2Yoc3RydWN0IGxvX2RhdGEsIHRp bWVvdXRfc2V0KSwgMSB9LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzE0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTIxOgorXkl7 ICJjYWNoZT1uZXZlciIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjI6CiteSSAg b2Zmc2V0b2Yoc3RydWN0IGxvX2RhdGEsIGNhY2hlKSwgQ0FDSEVfTkVWRVIgfSwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxNTA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMzoKK15JeyAiY2FjaGU9YXV0byIsJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTUxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzoxMjQ6CiteSSAgb2Zmc2V0b2Yoc3RydWN0IGxvX2RhdGEsIGNh Y2hlKSwgQ0FDSEVfTk9STUFMIH0sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTUyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjU6 CiteSXsgImNhY2hlPWFsd2F5cyIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjY6 CiteSSAgb2Zmc2V0b2Yoc3RydWN0IGxvX2RhdGEsIGNhY2hlKSwgQ0FDSEVfQUxXQVlTIH0sJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTU1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjg6CiteSUZVU0VfT1BUX0VORCQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2MDogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMzOgorXklyZXR1cm4gKHN0cnVjdCBsb19kYXRhICop IGZ1c2VfcmVxX3VzZXJkYXRhKHJlcSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzox Mzg6CiteSWlmIChpbm8gPT0gRlVTRV9ST09UX0lEKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5l Y2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE2NTogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTM4OgorICAgICAgIGlmIChpbm8gPT0gRlVTRV9S T09UX0lEKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MTM5OgorXkleSXJldHVybiAmbG9fZGF0YShyZXEpLT5yb290OyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE2NzogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MTQwOgorXkllbHNlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzoxNDE6CiteSV5JcmV0dXJuIChzdHJ1Y3QgbG9faW5vZGUgKikgKHVpbnRwdHJfdCkgaW5v OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE3MzogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTQ2OgorXklyZXR1cm4gbG9faW5vZGUo cmVxLCBpbm8pLT5mZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxNzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE1MToKK15JcmV0 dXJuIGxvX2RhdGEocmVxKS0+ZGVidWcgIT0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjE1NToKK15JXkkgICAgc3RydWN0IGZ1c2VfY29ubl9pbmZvICpjb25uKSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE4NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTU3OgorXklzdHJ1Y3QgbG9fZGF0YSAqbG8gPSAoc3RydWN0 IGxvX2RhdGEqKSB1c2VyZGF0YTskCgpFUlJPUjogIihmb28qKSIgc2hvdWxkIGJlICIoZm9vICop IgojMTg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxNTc6CisgICAg ICAgc3RydWN0IGxvX2RhdGEgKmxvID0gKHN0cnVjdCBsb19kYXRhKikgdXNlcmRhdGE7CgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE1OToKK15JaWYoY29ubi0+Y2FwYWJsZSAmIEZVU0Vf Q0FQX0VYUE9SVF9TVVBQT1JUKSQKCkVSUk9SOiBzcGFjZSByZXF1aXJlZCBiZWZvcmUgdGhlIG9w ZW4gcGFyZW50aGVzaXMgJygnCiMxODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjE1OToKKyAgICAgICBpZihjb25uLT5jYXBhYmxlICYgRlVTRV9DQVBfRVhQT1JUX1NV UFBPUlQpCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRo aXMgc3RhdGVtZW50CiMxODY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjE1OToKKyAgICAgICBpZihjb25uLT5jYXBhYmxlICYgRlVTRV9DQVBfRVhQT1JUX1NVUFBPUlQp ClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxODc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE2MDoKK15JXkljb25uLT53YW50 IHw9IEZVU0VfQ0FQX0VYUE9SVF9TVVBQT1JUOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzE4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MTYyOgorXklpZiAobG8tPndyaXRlYmFjayAmJiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MTYzOgorXkkgICAgY29ubi0+Y2FwYWJsZSAmIEZVU0VfQ0FQX1dSSVRFQkFDS19DQUNI RSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MTogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTY0OgorXkleSWlmIChsby0+ZGVi dWcpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlz IHN0YXRlbWVudAojMTkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzox NjQ6CisgICAgICAgICAgICAgICBpZiAobG8tPmRlYnVnKQpbLi4uXQoKV0FSTklORzogbGluZSBv dmVyIDgwIGNoYXJhY3RlcnMKIzE5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MTY1OgorICAgICAgICAgICAgICAgICAgICAgICBmdXNlX2xvZyhGVVNFX0xPR19ERUJV RywgImxvX2luaXQ6IGFjdGl2YXRpbmcgd3JpdGViYWNrXG4iKTsKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MTY1OgorXkleSV5JZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICJsb19pbml0 OiBhY3RpdmF0aW5nIHdyaXRlYmFja1xuIik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTkzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzoxNjY6CiteSV5JY29ubi0+d2FudCB8PSBGVVNFX0NBUF9XUklURUJBQ0tfQ0FDSEU7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTk0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxNjc6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjE2ODoKK15JaWYgKGxvLT5mbG9jayAmJiBjb25uLT5jYXBhYmxlICYgRlVTRV9D QVBfRkxPQ0tfTE9DS1MpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxOTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE2OToKK15J XklpZiAobG8tPmRlYnVnKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxs IGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MTY5OgorICAgICAgICAgICAgICAgaWYgKGxvLT5kZWJ1ZykKWy4uLl0KCldB Uk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMxOTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjE3MDoKKyAgICAgICAgICAgICAgICAgICAgICAgZnVzZV9sb2co RlVTRV9MT0dfREVCVUcsICJsb19pbml0OiBhY3RpdmF0aW5nIGZsb2NrIGxvY2tzXG4iKTsKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5NzogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTcwOgorXkleSV5JZnVzZV9sb2coRlVTRV9MT0df REVCVUcsICJsb19pbml0OiBhY3RpdmF0aW5nIGZsb2NrIGxvY2tzXG4iKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxOTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjE3MToKK15JXkljb25uLT53YW50IHw9IEZVU0VfQ0FQX0ZMT0NL X0xPQ0tTOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzE5OTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTcyOgorXkl9JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjAzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxNzY6CiteSV5JXkkgICAgIHN0cnVjdCBmdXNlX2ZpbGVf aW5mbyAqZmkpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxNzg6CiteSWludCByZXM7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjA2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxNzk6CiteSXN0cnVjdCBzdGF0IGJ1Zjsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMDc6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE4MDoKK15Jc3RydWN0IGxvX2RhdGEgKmxv ID0gbG9fZGF0YShyZXEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzIwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTgyOgorXkko dm9pZCkgZmk7JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzIxMTogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTg0OgorICAgICAgIHJlcyA9IGZzdGF0 YXQobG9fZmQocmVxLCBpbm8pLCAiIiwgJmJ1ZiwgQVRfRU1QVFlfUEFUSCB8IEFUX1NZTUxJTktf Tk9GT0xMT1cpOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjEx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxODQ6CiteSXJlcyA9IGZz dGF0YXQobG9fZmQocmVxLCBpbm8pLCAiIiwgJmJ1ZiwgQVRfRU1QVFlfUEFUSCB8IEFUX1NZTUxJ TktfTk9GT0xMT1cpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzIxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTg1OgorXklpZiAo cmVzID09IC0xKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMg b2YgdGhpcyBzdGF0ZW1lbnQKIzIxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MTg1OgorICAgICAgIGlmIChyZXMgPT0gLTEpClsuLi5dCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjE4NjoKK15JXklyZXR1cm4gKHZvaWQpIGZ1c2VfcmVwbHlfZXJyKHJlcSwg ZXJybm8pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIxNTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTg4OgorXklmdXNlX3JlcGx5 X2F0dHIocmVxLCAmYnVmLCBsby0+dGltZW91dCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzoxOTI6CiteSV5JXkleSSAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKnR2KSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMTogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTk0OgorXklpbnQgcmVzOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MTk1OgorXkljaGFyIHByb2NuYW1lWzY0XTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjE5NzoKK15JaWYgKGlub2RlLT5pc19zeW1saW5rKSB7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI1OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxOTg6CiteSV5JcmVzID0gdXRpbWVuc2F0KGlub2RlLT5m ZCwgIiIsIHR2LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIy NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTk5OgorXkleSV5JXklB VF9FTVBUWV9QQVRIIHwgQVRfU1lNTElOS19OT0ZPTExPVyk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzoyMDA6CiteSV5JaWYgKHJlcyA9PSAtMSAmJiBlcnJubyA9PSBFSU5WQUwpIHsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMjg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjIwMToKK15JXkleSS8qIFNvcnJ5LCBubyBy YWNlIGZyZWUgd2F5IHRvIHNldCB0aW1lcyBvbiBzeW1saW5rLiAqLyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MjAyOgorXkleSV5JZXJybm8gPSBFUEVSTTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyMzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjIwMzoKK15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMjMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzoyMDQ6CiteSV5JcmV0dXJuIHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyMzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjIw NToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzIzMzog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjA2OgorXklzcHJpbnRmKHBy b2NuYW1lLCAiL3Byb2Mvc2VsZi9mZC8laSIsIGlub2RlLT5mZCk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzoyMDg6CiteSXJldHVybiB1dGltZW5zYXQoQVRfRkRDV0QsIHByb2NuYW1l LCB0diwgMCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjM5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyMTI6CiteSV5JICAgICAg IGludCB2YWxpZCwgc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpmaSkkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjIxNDoKK15JaW50IHNhdmVycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMyNDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjIxNToKK15JY2hhciBwcm9jbmFtZVs2NF07JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjQzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzoyMTY6CiteSXN0cnVjdCBsb19pbm9kZSAqaW5vZGUgPSBsb19pbm9kZShyZXEsIGlu byk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyMTc6CiteSWludCBpZmQgPSBpbm9k ZS0+ZmQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyMTg6CiteSWludCByZXM7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjQ3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyMjA6CiteSWlmICh2YWxpZCAmIEZVU0VfU0VU X0FUVFJfTU9ERSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjIxOgorXkleSWlm IChmaSkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI0OTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjIyOgorXkleSV5JcmVzID0g ZmNobW9kKGZpLT5maCwgYXR0ci0+c3RfbW9kZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzoyMjM6CiteSV5JfSBlbHNlIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMyNTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjIy NDoKK15JXkleSXNwcmludGYocHJvY25hbWUsICIvcHJvYy9zZWxmL2ZkLyVpIiwgaWZkKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjIyNToKK15JXkleSXJlcyA9IGNobW9kKHByb2Nu YW1lLCBhdHRyLT5zdF9tb2RlKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMyNTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjIyNjoK K15JXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjU0OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyMjc6CiteSV5JaWYgKHJlcyA9 PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRo aXMgc3RhdGVtZW50CiMyNTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjIyNzoKKyAgICAgICAgICAgICAgIGlmIChyZXMgPT0gLTEpClsuLi5dCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjIyODoKK15JXkleSWdvdG8gb3V0X2VycjskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjIyOToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzI1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 MjMwOgorXklpZiAodmFsaWQgJiAoRlVTRV9TRVRfQVRUUl9VSUQgfCBGVVNFX1NFVF9BVFRSX0dJ RCkpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNTg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjIzMToKK15JXkl1aWRfdCB1aWQg PSAodmFsaWQgJiBGVVNFX1NFVF9BVFRSX1VJRCkgPyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzI1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MjMyOgorXkleSV5JYXR0ci0+c3RfdWlkIDogKHVpZF90KSAtMTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjIzMzoKK15JXklnaWRfdCBnaWQgPSAodmFsaWQgJiBGVVNFX1NF VF9BVFRSX0dJRCkgPyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzI2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjM0OgorXkleSV5J YXR0ci0+c3RfZ2lkIDogKGdpZF90KSAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMyNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjIzNjoKK15JXklyZXMgPSBmY2hvd25hdChpZmQsICIiLCB1aWQsIGdpZCwkCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjIzNzoKK15JXkleSSAgICAgICBBVF9FTVBUWV9QQVRIIHwgQVRf U1lNTElOS19OT0ZPTExPVyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMjY1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyMzg6Cite SV5JaWYgKHJlcyA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMyNjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjIzODoKKyAgICAgICAgICAgICAgIGlmIChyZXMgPT0gLTEpClsuLi5dCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjY6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjIzOToKK15JXkleSWdvdG8gb3V0X2VycjskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI0MDoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MjQxOgorXklpZiAodmFsaWQgJiBGVVNFX1NFVF9BVFRSX1NJWkUpIHskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNjk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI0MjoKK15JXklpZiAoZmkpIHskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyNzA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI0MzoKK15JXkleSXJlcyA9IGZ0cnVuY2F0ZShmaS0+Zmgs IGF0dHItPnN0X3NpemUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzI3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjQ0OgorXkle SX0gZWxzZSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjcy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyNDU6CiteSV5JXklzcHJp bnRmKHByb2NuYW1lLCAiL3Byb2Mvc2VsZi9mZC8laSIsIGlmZCk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzoyNDY6CiteSV5JXklyZXMgPSB0cnVuY2F0ZShwcm9jbmFtZSwgYXR0ci0+ c3Rfc2l6ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjc0 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyNDc6CiteSV5JfSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3NTogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjQ4OgorXkleSWlmIChyZXMgPT0gLTEpJAoKRVJS T1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVu dAojMjc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyNDg6CisgICAg ICAgICAgICAgICBpZiAocmVzID09IC0xKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzoyNDk6CiteSV5JXklnb3RvIG91dF9lcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMjc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzoyNTA6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyNzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI1MToKK15JaWYg KHZhbGlkICYgKEZVU0VfU0VUX0FUVFJfQVRJTUUgfCBGVVNFX1NFVF9BVFRSX01USU1FKSkgeyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI3OTogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjUyOgorXkleSXN0cnVjdCB0aW1lc3BlYyB0 dlsyXTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI1NDoKK15JXkl0dlswXS50dl9z ZWMgPSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4Mjog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjU1OgorXkleSXR2WzFdLnR2 X3NlYyA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjgz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyNTY6CiteSV5JdHZbMF0u dHZfbnNlYyA9IFVUSU1FX09NSVQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMjg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyNTc6 CiteSV5JdHZbMV0udHZfbnNlYyA9IFVUSU1FX09NSVQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMjg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzoyNTk6CiteSV5JaWYgKHZhbGlkICYgRlVTRV9TRVRfQVRUUl9BVElNRV9OT1cpJAoK RVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRl bWVudAojMjg2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyNTk6Cisg ICAgICAgICAgICAgICBpZiAodmFsaWQgJiBGVVNFX1NFVF9BVFRSX0FUSU1FX05PVykKWy4uLl0K KyAgICAgICAgICAgICAgIGVsc2UgaWYgKHZhbGlkICYgRlVTRV9TRVRfQVRUUl9BVElNRSkKWy4u Ll0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI4NzogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjYwOgorXkleSV5JdHZbMF0udHZfbnNl YyA9IFVUSU1FX05PVzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMyODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI2MToKK15JXkll bHNlIGlmICh2YWxpZCAmIEZVU0VfU0VUX0FUVFJfQVRJTUUpJAoKRVJST1I6IGJyYWNlcyB7fSBh cmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMjg4OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyNjE6CisgICAgICAgICAgICAgICBlbHNl IGlmICh2YWxpZCAmIEZVU0VfU0VUX0FUVFJfQVRJTUUpClsuLi5dCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjI2MjoKK15JXkleSXR2WzBdID0gYXR0ci0+c3RfYXRpbTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMyOTE6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI2NDoKK15JXklpZiAodmFsaWQgJiBGVVNFX1NFVF9BVFRS X01USU1FX05PVykkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1z IG9mIHRoaXMgc3RhdGVtZW50CiMyOTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjI2NDoKKyAgICAgICAgICAgICAgIGlmICh2YWxpZCAmIEZVU0VfU0VUX0FUVFJfTVRJ TUVfTk9XKQpbLi4uXQorICAgICAgICAgICAgICAgZWxzZSBpZiAodmFsaWQgJiBGVVNFX1NFVF9B VFRSX01USU1FKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMjkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyNjU6CiteSV5J Xkl0dlsxXS50dl9uc2VjID0gVVRJTUVfTk9XOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzI5MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MjY2OgorXkleSWVsc2UgaWYgKHZhbGlkICYgRlVTRV9TRVRfQVRUUl9NVElNRSkkCgpFUlJP UjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50 CiMyOTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI2NjoKKyAgICAg ICAgICAgICAgIGVsc2UgaWYgKHZhbGlkICYgRlVTRV9TRVRfQVRUUl9NVElNRSkKWy4uLl0KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NDogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjY3OgorXkleSV5JdHZbMV0gPSBhdHRyLT5zdF9t dGltOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NjogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjY5OgorXkleSWlmIChmaSkkCgpF UlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVt ZW50CiMyOTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI2OToKKyAg ICAgICAgICAgICAgIGlmIChmaSkKWy4uLl0KKyAgICAgICAgICAgICAgIGVsc2UKWy4uLl0KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5NzogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjcwOgorXkleSV5JcmVzID0gZnV0aW1lbnMoZmkt PmZoLCB0dik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMjk4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyNzE6CiteSV5JZWxzZSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzI5OTogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjcyOgorXkleSV5JcmVzID0gdXRpbWVuc2F0 X2VtcHR5X25vZm9sbG93KGlub2RlLCB0dik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzoyNzM6CiteSV5JaWYgKHJlcyA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nh cnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMzMDA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI3MzoKKyAgICAgICAgICAgICAgIGlmIChyZXMgPT0gLTEp ClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI3NDoKK15JXkleSWdvdG8gb3V0 X2VycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDI6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI3NToKK15JfSQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNDogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mjc3OgorXklyZXR1cm4gbG9fZ2V0YXR0cihyZXEsIGlubywg ZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMwNzogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjgwOgorXklzYXZlcnIgPSBlcnJu bzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMDg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI4MToKK15JZnVzZV9yZXBseV9lcnIo cmVxLCBzYXZlcnIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzMxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mjg2OgorXklzdHJ1 Y3QgbG9faW5vZGUgKnA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMzE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoyODc6CiteSXN0 cnVjdCBsb19pbm9kZSAqcmV0ID0gTlVMTDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMzMTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjI4OToKK15JcHRocmVhZF9tdXRleF9sb2NrKCZsby0+bXV0ZXgpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MjkwOgorXklmb3IgKHAgPSBsby0+cm9vdC5uZXh0OyBwICE9ICZsby0+ cm9vdDsgcCA9IHAtPm5leHQpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzMTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI5MToK K15JXklpZiAocC0+aW5vID09IHN0LT5zdF9pbm8gJiYgcC0+ZGV2ID09IHN0LT5zdF9kZXYpIHsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMTk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI5MjoKK15JXkleSWFzc2VydChwLT5yZWZj b3VudCA+IDApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMy MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MjkzOgorXkleSV5JcmV0 ID0gcDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI5NDoKK15JXkleSXJldC0+cmVm Y291bnQrKzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjI6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjI5NToKK15JXkleSWJyZWFr OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMyMzogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mjk2OgorXkleSX0kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjI5NzoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzMyNTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6Mjk4OgorXklwdGhyZWFkX211dGV4X3VubG9jaygmbG8tPm11dGV4KTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjI5OToKK15JcmV0dXJuIHJldDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjMwMzoKK15JXkleSSBzdHJ1Y3QgZnVzZV9lbnRyeV9wYXJhbSAqZSkkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjMwNToKK15JaW50IG5ld2ZkOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzMzogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzA2OgorXklpbnQgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MzA3OgorXklpbnQgc2F2ZXJyOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzMzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MzA4OgorXklzdHJ1Y3QgbG9fZGF0YSAqbG8gPSBsb19kYXRhKHJlcSk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM2OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozMDk6CiteSXN0cnVjdCBsb19pbm9kZSAqaW5vZGU7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzM4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozMTE6CiteSW1lbXNldChlLCAwLCBzaXplb2Yo KmUpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzMzk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjMxMjoKK15JZS0+YXR0cl90aW1l b3V0ID0gbG8tPnRpbWVvdXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozMTM6Cite SWUtPmVudHJ5X3RpbWVvdXQgPSBsby0+dGltZW91dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMzNDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjMxNToKK15JbmV3ZmQgPSBvcGVuYXQobG9fZmQocmVxLCBwYXJlbnQpLCBuYW1lLCBP X1BBVEggfCBPX05PRk9MTE9XKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMzNDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjMxNjoK K15JaWYgKG5ld2ZkID09IC0xKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3Ig YWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzM0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MzE2OgorICAgICAgIGlmIChuZXdmZCA9PSAtMSkKWy4uLl0KCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM0NDogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzE3OgorXkleSWdvdG8gb3V0X2VycjskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNDY6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjMxOToKK15JcmVzID0gZnN0YXRhdChuZXdmZCwgIiIsICZl LT5hdHRyLCBBVF9FTVBUWV9QQVRIIHwgQVRfU1lNTElOS19OT0ZPTExPVyk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzQ3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzozMjA6CiteSWlmIChyZXMgPT0gLTEpJAoKRVJST1I6IGJyYWNl cyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMzQ3OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozMjA6CisgICAgICAgaWYgKHJl cyA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM0ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzIxOgorXkleSWdv dG8gb3V0X2VycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMz NTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjMyMzoKK15JaW5vZGUg PSBsb19maW5kKGxvX2RhdGEocmVxKSwgJmUtPmF0dHIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM1MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6MzI0OgorXklpZiAoaW5vZGUpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzNTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjMyNToKK15JXkljbG9zZShuZXdmZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMzUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzozMjY6CiteSV5JbmV3ZmQgPSAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjMy NzoKK15JfSBlbHNlIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzNTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjMyODoKK15JXklz dHJ1Y3QgbG9faW5vZGUgKnByZXYsICpuZXh0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzM1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MzMwOgorXkleSXNhdmVyciA9IEVOT01FTTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzNTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjMzMToKK15JXklpbm9kZSA9IGNhbGxvYygxLCBzaXplb2Yoc3RydWN0IGxvX2lub2RlKSk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzU5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozMzI6CiteSV5JaWYgKCFpbm9kZSkkCgpF UlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVt ZW50CiMzNTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjMzMjoKKyAg ICAgICAgICAgICAgIGlmICghaW5vZGUpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzNjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjMzMzoKK15JXkleSWdvdG8gb3V0X2VycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzNjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjMzNToKK15JXklpbm9kZS0+aXNfc3ltbGluayA9IFNfSVNMTksoZS0+YXR0ci5zdF9tb2Rl KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNjM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjMzNjoKK15JXklpbm9kZS0+cmVmY291 bnQgPSAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM2NDog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzM3OgorXkleSWlub2RlLT5m ZCA9IG5ld2ZkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM2 NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzM4OgorXkleSWlub2Rl LT5pbm8gPSBlLT5hdHRyLnN0X2lubzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzNjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjMz OToKK15JXklpbm9kZS0+ZGV2ID0gZS0+YXR0ci5zdF9kZXY7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzozNDE6CiteSV5JcHRocmVhZF9tdXRleF9sb2NrKCZsby0+bXV0ZXgpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM2OTogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzQyOgorXkleSXByZXYgPSAmbG8tPnJvb3Q7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzcwOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNDM6CiteSV5JbmV4dCA9IHByZXYtPm5leHQ7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzcxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNDQ6CiteSV5JbmV4dC0+cHJldiA9IGlu b2RlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM3MjogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzQ1OgorXkleSWlub2RlLT5uZXh0 ID0gbmV4dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzNzM6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM0NjoKK15JXklpbm9kZS0+ cHJldiA9IHByZXY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj Mzc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNDc6CiteSV5JcHJl di0+bmV4dCA9IGlub2RlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzM3NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzQ4OgorXkle SXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZsby0+bXV0ZXgpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6MzQ5OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMzc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNTA6Cite SWUtPmlubyA9ICh1aW50cHRyX3QpIGlub2RlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzM3OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MzUyOgorXklpZiAobG9fZGVidWcocmVxKSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMzODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjM1MzoKK15JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywgIiAgJWxsaS8lcyAtPiAlbGxp XG4iLCQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMzODE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM1NDoKKyAgICAgICAgICAgICAgICAgICAgICAg KHVuc2lnbmVkIGxvbmcgbG9uZykgcGFyZW50LCBuYW1lLCAodW5zaWduZWQgbG9uZyBsb25nKSBl LT5pbm8pOwoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzgxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNTQ6CiteSV5JXkkodW5zaWdu ZWQgbG9uZyBsb25nKSBwYXJlbnQsIG5hbWUsICh1bnNpZ25lZCBsb25nIGxvbmcpIGUtPmlubyk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzgzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNTY6CiteSXJldHVybiAwOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzM4NjogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzU5OgorXklzYXZlcnIgPSBlcnJubzskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzODc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM2MDoKK15JaWYgKG5ld2ZkICE9IC0xKSQKCkVSUk9SOiBi cmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzM4 NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzYwOgorICAgICAgIGlm IChuZXdmZCAhPSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzM4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzYxOgor XkleSWNsb3NlKG5ld2ZkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMzODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM2MjoKK15J cmV0dXJuIHNhdmVycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzOTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM2NzoKK15Jc3Ry dWN0IGZ1c2VfZW50cnlfcGFyYW0gZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMzOTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM2 ODoKK15JaW50IGVycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMzOTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM3MDoKK15JaWYg KGxvX2RlYnVnKHJlcSkpJAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzM5ODog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzcxOgorICAgICAgICAgICAg ICAgZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICJsb19sb29rdXAocGFyZW50PSUiIFBSSXU2NCAi LCBuYW1lPSVzKVxuIiwKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzM5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzcxOgorXkleSWZ1 c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCAibG9fbG9va3VwKHBhcmVudD0lIiBQUkl1NjQgIiwgbmFt ZT0lcylcbiIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMzk5 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozNzI6CiteSV5JXklwYXJl bnQsIG5hbWUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQw MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mzc0OgorXkllcnIgPSBs b19kb19sb29rdXAocmVxLCBwYXJlbnQsIG5hbWUsICZlKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MDI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjM3NToKK15JaWYgKGVycikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nh cnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM0MDI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM3NToKKyAgICAgICBpZiAoZXJyKQpbLi4uXQorICAgICAg IGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQw MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mzc2OgorXkleSWZ1c2Vf cmVwbHlfZXJyKHJlcSwgZXJyKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM0MDQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM3NzoK K15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQwNTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mzc4OgorXkleSWZ1c2VfcmVw bHlfZW50cnkocmVxLCAmZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNDA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozODI6Cite SV5JXkkgICAgIGNvbnN0IGNoYXIgKm5hbWUsIG1vZGVfdCBtb2RlLCBkZXZfdCByZGV2LCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxMDogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MzgzOgorXkleSV5JICAgICBjb25zdCBjaGFyICps aW5rKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxMjogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mzg1OgorXklpbnQgcmVzOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxMzogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mzg2OgorXklpbnQgc2F2ZXJyOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQxNDogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mzg3OgorXklzdHJ1Y3QgbG9faW5vZGUgKmRpciA9IGxvX2lu b2RlKHJlcSwgcGFyZW50KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM0MTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM4ODoKK15J c3RydWN0IGZ1c2VfZW50cnlfcGFyYW0gZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM0MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjM5MDoKK15Jc2F2ZXJyID0gRU5PTUVNOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzQxOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 MzkyOgorXklyZXMgPSBta25vZF93cmFwcGVyKGRpci0+ZmQsIG5hbWUsIGxpbmssIG1vZGUsIHJk ZXYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQyMTogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mzk0OgorXklzYXZlcnIgPSBlcnJu bzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MjI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM5NToKK15JaWYgKHJlcyA9PSAtMSkk CgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3Rh dGVtZW50CiM0MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjM5NToK KyAgICAgICBpZiAocmVzID09IC0xKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNDIzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzozOTY6CiteSV5JZ290byBvdXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNDI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzozOTg6 CiteSXNhdmVyciA9IGxvX2RvX2xvb2t1cChyZXEsIHBhcmVudCwgbmFtZSwgJmUpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQyNjogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mzk5OgorXklpZiAoc2F2ZXJyKSQKCkVSUk9SOiBicmFj ZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzQyNjog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Mzk5OgorICAgICAgIGlmIChz YXZlcnIpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0 Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQwMDoKK15JXklnb3Rv IG91dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0Mjk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQwMjoKK15JaWYgKGxvX2RlYnVn KHJlcSkpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDMwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0MDM6CiteSV5JZnVzZV9sb2co RlVTRV9MT0dfREVCVUcsICIgICVsbGkvJXMgLT4gJWxsaVxuIiwkCgpXQVJOSU5HOiBsaW5lIG92 ZXIgODAgY2hhcmFjdGVycwojNDMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo0MDQ6CisgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpIHBh cmVudCwgbmFtZSwgKHVuc2lnbmVkIGxvbmcgbG9uZykgZS5pbm8pOwoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo0MDQ6CiteSV5JXkkodW5zaWduZWQgbG9uZyBsb25nKSBwYXJlbnQsIG5h bWUsICh1bnNpZ25lZCBsb25nIGxvbmcpIGUuaW5vKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM0MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjQwNjoKK15JZnVzZV9yZXBseV9lbnRyeShyZXEsICZlKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjQwNzoKK15JcmV0dXJuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzQzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6NDEwOgorXklmdXNlX3JlcGx5X2VycihyZXEsIHNhdmVycik7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDQxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzo0MTQ6CiteSV5JICAgICBjb25zdCBjaGFyICpuYW1lLCBtb2RlX3Qg bW9kZSwgZGV2X3QgcmRldikkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM0NDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQxNjoKK15J bG9fbWtub2Rfc3ltbGluayhyZXEsIHBhcmVudCwgbmFtZSwgbW9kZSwgcmRldiwgTlVMTCk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDQ3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0MjA6CiteSV5JICAgICBtb2RlX3QgbW9kZSkk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NDk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQyMjoKK15JbG9fbWtub2Rfc3ltbGluayhy ZXEsIHBhcmVudCwgbmFtZSwgU19JRkRJUiB8IG1vZGUsIDAsIE5VTEwpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ1MzogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6NDI2OgorXkleSSAgICAgICBmdXNlX2lub190IHBhcmVudCwgY29u c3QgY2hhciAqbmFtZSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM0NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQyODoKK15JbG9f bWtub2Rfc3ltbGluayhyZXEsIHBhcmVudCwgbmFtZSwgU19JRkxOSywgMCwgbGluayk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDU5OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0MzI6CiteSV5JXkleSSBjb25zdCBjaGFyICpuYW1l KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2MTogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDM0OgorXklpbnQgcmVzOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2MjogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDM1OgorXkljaGFyIHByb2NuYW1lWzY0XTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NjQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQzNzoKK15JaWYgKGlub2RlLT5pc19zeW1saW5rKSB7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDY1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0Mzg6CiteSV5JcmVzID0gbGlua2F0KGlu b2RlLT5mZCwgIiIsIGRmZCwgbmFtZSwgQVRfRU1QVFlfUEFUSCk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDY2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo0Mzk6CiteSV5JaWYgKHJlcyA9PSAtMSAmJiAoZXJybm8gPT0gRU5PRU5U IHx8IGVycm5vID09IEVJTlZBTCkpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM0Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ0 MDoKK15JXkleSS8qIFNvcnJ5LCBubyByYWNlIGZyZWUgd2F5IHRvIGhhcmQtbGluayBhIHN5bWxp bmsuICovJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDY4OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0NDE6CiteSV5JXkllcnJubyA9 IEVQRVJNOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ2OTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDQyOgorXkleSX0kCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NzA6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ0MzoKK15JXklyZXR1cm4gcmVzOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ3MTogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDQ0OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNDczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo0NDY6CiteSXNwcmludGYocHJvY25hbWUsICIvcHJvYy9zZWxmL2ZkLyVpIiwgaW5vZGUt PmZkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0NzU6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ0ODoKK15JcmV0dXJuIGxpbmth dChBVF9GRENXRCwgcHJvY25hbWUsIGRmZCwgbmFtZSwgQVRfU1lNTElOS19GT0xMT1cpOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ3OTogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDUyOgorXkleSSAgICBjb25zdCBjaGFyICpuYW1l KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4MTogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDU0OgorXklpbnQgcmVzOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ4MjogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDU1OgorXklzdHJ1Y3QgbG9fZGF0YSAqbG8gPSBsb19k YXRhKHJlcSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDgz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0NTY6CiteSXN0cnVjdCBs b19pbm9kZSAqaW5vZGUgPSBsb19pbm9kZShyZXEsIGlubyk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo0NTc6CiteSXN0cnVjdCBmdXNlX2VudHJ5X3BhcmFtIGU7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg1OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo0NTg6CiteSWludCBzYXZlcnI7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo0NjA6CiteSW1lbXNldCgmZSwgMCwgc2l6ZW9mKHN0cnVjdCBmdXNlX2Vu dHJ5X3BhcmFtKSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NDg4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0NjE6CiteSWUuYXR0 cl90aW1lb3V0ID0gbG8tPnRpbWVvdXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNDg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0 NjI6CiteSWUuZW50cnlfdGltZW91dCA9IGxvLT50aW1lb3V0OyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ5MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6NDY0OgorXklyZXMgPSBsaW5rYXRfZW1wdHlfbm9mb2xsb3coaW5vZGUsIGxv X2ZkKHJlcSwgcGFyZW50KSwgbmFtZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNDkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0 NjU6CiteSWlmIChyZXMgPT0gLTEpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZv ciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNDkyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzo0NjU6CisgICAgICAgaWYgKHJlcyA9PSAtMSkKWy4uLl0KCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzQ5MzogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDY2OgorXkleSWdvdG8gb3V0X2VycjskCgpXQVJOSU5H OiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojNDk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo0Njg6CisgICAgICAgcmVzID0gZnN0YXRhdChpbm9kZS0+ZmQsICIiLCAm ZS5hdHRyLCBBVF9FTVBUWV9QQVRIIHwgQVRfU1lNTElOS19OT0ZPTExPVyk7CgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0OTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjQ2ODoKK15JcmVzID0gZnN0YXRhdChpbm9kZS0+ZmQsICIiLCAm ZS5hdHRyLCBBVF9FTVBUWV9QQVRIIHwgQVRfU1lNTElOS19OT0ZPTExPVyk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNDk2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo0Njk6CiteSWlmIChyZXMgPT0gLTEpJAoKRVJST1I6IGJyYWNl cyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNDk2OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0Njk6CisgICAgICAgaWYgKHJl cyA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzQ5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDcwOgorXkleSWdv dG8gb3V0X2VycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM0 OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ3MjoKK15JcHRocmVh ZF9tdXRleF9sb2NrKCZsby0+bXV0ZXgpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzUwMDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 NDczOgorXklpbm9kZS0+cmVmY291bnQrKzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM1MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjQ3NDoKK15JcHRocmVhZF9tdXRleF91bmxvY2soJmxvLT5tdXRleCk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzo0NzU6CiteSWUuaW5vID0gKHVpbnRwdHJfdCkgaW5vZGU7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTA0OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0Nzc6CiteSWlmIChsb19kZWJ1ZyhyZXEpKSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUwNTogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NDc4OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0RF QlVHLCAiICAlbGxpLyVzIC0+ICVsbGlcbiIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNTA2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu Yzo0Nzk6CiteSV5JXkkodW5zaWduZWQgbG9uZyBsb25nKSBwYXJlbnQsIG5hbWUsJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTA3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0ODA6CiteSV5JXkkodW5zaWduZWQgbG9uZyBsb25nKSBl Lmlubyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTA5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0ODI6CiteSWZ1c2VfcmVwbHlf ZW50cnkocmVxLCAmZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNTEwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0ODM6CiteSXJl dHVybjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MTM6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ4NjoKK15Jc2F2ZXJyID0gZXJy bm87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTE0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo0ODc6CiteSWZ1c2VfcmVwbHlfZXJy KHJlcSwgc2F2ZXJyKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM1MTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ5MjoKK15JaW50 IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MjE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjQ5NDoKK15JcmVzID0gdW5saW5r YXQobG9fZmQocmVxLCBwYXJlbnQpLCBuYW1lLCBBVF9SRU1PVkVESVIpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUyMzogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6NDk2OgorXklmdXNlX3JlcGx5X2VycihyZXEsIHJlcyA9PSAtMSA/ IGVycm5vIDogMCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NTI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1MDA6CiteSV5JICAg ICAgZnVzZV9pbm9fdCBuZXdwYXJlbnQsIGNvbnN0IGNoYXIgKm5ld25hbWUsJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTI4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo1MDE6CiteSV5JICAgICAgdW5zaWduZWQgaW50IGZsYWdzKSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUzMDogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTAzOgorXklpbnQgcmVzOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUzMjogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTA1OgorXklpZiAoZmxhZ3MpIHskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1MzM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjUwNjoKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIEVJTlZBTCk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTM0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1MDc6CiteSV5JcmV0dXJuOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzUzNTogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTA4OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNTM3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo1MTA6CiteSXJlcyA9IHJlbmFtZWF0KGxvX2ZkKHJlcSwgcGFyZW50KSwgbmFtZSwkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Mzg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjUxMToKK15JXkleSWxvX2ZkKHJlcSwgbmV3cGFy ZW50KSwgbmV3bmFtZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNTQwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1MTM6CiteSWZ1 c2VfcmVwbHlfZXJyKHJlcSwgcmVzID09IC0xID8gZXJybm8gOiAwKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjUxODoKK15JaW50IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM1NDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjUyMDoKK15JcmVzID0gdW5saW5rYXQobG9fZmQocmVxLCBwYXJlbnQpLCBuYW1lLCAw KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NDk6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjUyMjoKK15JZnVzZV9yZXBseV9lcnIo cmVxLCByZXMgPT0gLTEgPyBlcnJubyA6IDApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzU1NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6NTI3OgorXklpZiAoIWlub2RlKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBm b3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzU1NDogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6NTI3OgorICAgICAgIGlmICghaW5vZGUpClsuLi5dCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NTU6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjUyODoKK15JXklyZXR1cm47JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTU3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo1MzA6CiteSXB0aHJlYWRfbXV0ZXhfbG9jaygmbG8tPm11dGV4KTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NTg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjUzMToKK15JYXNzZXJ0KGlub2RlLT5yZWZjb3Vu dCA+PSBuKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1NTk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjUzMjoKK15JaW5vZGUtPnJl ZmNvdW50IC09IG47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NTYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1MzM6CiteSWlmICgh aW5vZGUtPnJlZmNvdW50KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNTYxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1MzQ6Cite SV5Jc3RydWN0IGxvX2lub2RlICpwcmV2LCAqbmV4dDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM1NjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjUzNjoKK15JXklwcmV2ID0gaW5vZGUtPnByZXY7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo1Mzc6CiteSV5JbmV4dCA9IGlub2RlLT5uZXh0OyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6NTM4OgorXkleSW5leHQtPnByZXYgPSBwcmV2OyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU2NjogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6NTM5OgorXkleSXByZXYtPm5leHQgPSBuZXh0OyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU2ODogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTQxOgorXkleSXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZsby0+ bXV0ZXgpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU2OTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTQyOgorXkleSWNsb3NlKGlu b2RlLT5mZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTcw OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1NDM6CiteSV5JZnJlZShp bm9kZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTcyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1NDU6CiteSX0gZWxzZSB7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTczOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1NDY6CiteSV5JcHRocmVhZF9tdXRleF91bmxv Y2soJmxvLT5tdXRleCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNTc0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1NDc6CiteSX0k CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1Nzk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjU1MjoKK15Jc3RydWN0IGxvX2RhdGEgKmxv ID0gbG9fZGF0YShyZXEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzU4MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTUzOgorXklz dHJ1Y3QgbG9faW5vZGUgKmlub2RlID0gbG9faW5vZGUocmVxLCBpbm8pOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU4MjogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6NTU1OgorXklpZiAobG9fZGVidWcocmVxKSkgeyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU4MzogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTU2OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCAi ICBmb3JnZXQgJWxsaSAlbGxpIC0lbGxpXG4iLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzU4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6NTU3OgorXkleSV5JKHVuc2lnbmVkIGxvbmcgbG9uZykgaW5vLCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU4NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6NTU4OgorXkleSV5JKHVuc2lnbmVkIGxvbmcgbG9uZykgaW5vZGUtPnJl ZmNvdW50LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU4Njog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NTU5OgorXkleSV5JKHVuc2ln bmVkIGxvbmcgbG9uZykgbmxvb2t1cCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNTg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1 NjA6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM1ODk6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjU2MjoKK15JdW5yZWZfaW5v ZGUobG8sIGlub2RlLCBubG9va3VwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM1OTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjU2 NzoKK15JbG9fZm9yZ2V0X29uZShyZXEsIGlubywgbmxvb2t1cCk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNTk1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo1Njg6CiteSWZ1c2VfcmVwbHlfbm9uZShyZXEpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzU5OTogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6NTcyOgorXkleSV5JXklzdHJ1Y3QgZnVzZV9mb3JnZXRfZGF0YSAq Zm9yZ2V0cykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MDE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjU3NDoKK15JaW50IGk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjAzOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1NzY6CiteSWZvciAoaSA9IDA7IGkgPCBjb3Vu dDsgaSsrKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2Yg dGhpcyBzdGF0ZW1lbnQKIzYwMzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6NTc2OgorICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKQpbLi4uXQoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjA0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1Nzc6CiteSV5JbG9fZm9yZ2V0X29uZShyZXEsIGZvcmdl dHNbaV0uaW5vLCBmb3JnZXRzW2ldLm5sb29rdXApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzYwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6NTc4OgorXklmdXNlX3JlcGx5X25vbmUocmVxKTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjU4MzoKK15JY2hhciBidWZbUEFUSF9NQVggKyAxXTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjU4NDoKK15JaW50IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM2MTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjU4NjoKK15JcmVzID0gcmVhZGxpbmthdChsb19mZChyZXEsIGlubyksICIiLCBidWYs IHNpemVvZihidWYpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM2MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjU4NzoKK15JaWYg KHJlcyA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1z IG9mIHRoaXMgc3RhdGVtZW50CiM2MTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjU4NzoKKyAgICAgICBpZiAocmVzID09IC0xKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo1ODg6CiteSV5JcmV0dXJuICh2b2lkKSBmdXNlX3JlcGx5X2VycihyZXEs IGVycm5vKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2MTc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjU5MDoKK15JaWYgKHJlcyA9 PSBzaXplb2YoYnVmKSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBh cm1zIG9mIHRoaXMgc3RhdGVtZW50CiM2MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjU5MDoKKyAgICAgICBpZiAocmVzID09IHNpemVvZihidWYpKQpbLi4uXQoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjE4OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo1OTE6CiteSV5JcmV0dXJuICh2b2lkKSBmdXNlX3Jl cGx5X2VycihyZXEsIEVOQU1FVE9PTE9ORyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjIwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu Yzo1OTM6CiteSWJ1ZltyZXNdID0gJ1wwJzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM2MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjU5NToKK15JZnVzZV9yZXBseV9yZWFkbGluayhyZXEsIGJ1Zik7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo1OTk6CiteSURJUiAqZHA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNjI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo2MDA6CiteSXN0cnVjdCBkaXJlbnQgKmVudHJ5OyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzYyODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6NjAxOgorXklvZmZfdCBvZmZzZXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNjMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo2MDY6CiteSXJldHVybiAoc3RydWN0IGxvX2RpcnAgKikgKHVpbnRwdHJfdCkgZmktPmZo OyQKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiM2MzY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjYwOToKK3N0YXRpYyB2b2lkIGxvX29wZW5kaXIoZnVz ZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKQoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjM4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2MTE6CiteSWludCBlcnJvciA9IEVOT01FTTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2Mzk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjYxMjoKK15Jc3RydWN0IGxvX2RhdGEgKmxv ID0gbG9fZGF0YShyZXEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzY0MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjEzOgorXklz dHJ1Y3QgbG9fZGlycCAqZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM2NDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjYxNDoKK15J aW50IGZkOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY0Mzog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjE2OgorXklkID0gY2FsbG9j KDEsIHNpemVvZihzdHJ1Y3QgbG9fZGlycCkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzY0NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6NjE3OgorXklpZiAoZCA9PSBOVUxMKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2Fy eSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzY0NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjE3OgorICAgICAgIGlmIChkID09IE5VTEwpClsuLi5dCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NDU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjYxODoKK15JXklnb3RvIG91dF9lcnI7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjQ3OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2MjA6CiteSWZkID0gb3BlbmF0KGxvX2ZkKHJlcSwg aW5vKSwgIi4iLCBPX1JET05MWSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNjQ4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2MjE6 CiteSWlmIChmZCA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFs bCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM2NDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjYyMToKKyAgICAgICBpZiAoZmQgPT0gLTEpClsuLi5dCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjYyMjoKK15JXklnb3RvIG91dF9lcnJubzskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjYyNDoKK15JZC0+ZHAgPSBmZG9wZW5kaXIoZmQpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY1MjogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjI1OgorXklpZiAoZC0+ZHAgPT0gTlVMTCkkCgpFUlJP UjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50 CiM2NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjYyNToKKyAgICAg ICBpZiAoZC0+ZHAgPT0gTlVMTCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzY1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 NjI2OgorXkleSWdvdG8gb3V0X2Vycm5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzY1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 NjI4OgorXklkLT5vZmZzZXQgPSAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzY1NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjI5 OgorXklkLT5lbnRyeSA9IE5VTEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojNjU4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2MzE6 CiteSWZpLT5maCA9ICh1aW50cHRyX3QpIGQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu Yzo2MzI6CiteSWlmIChsby0+Y2FjaGUgPT0gQ0FDSEVfQUxXQVlTKSQKCkVSUk9SOiBicmFjZXMg e30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzY1OTogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjMyOgorICAgICAgIGlmIChsby0+ Y2FjaGUgPT0gQ0FDSEVfQUxXQVlTKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNjYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu Yzo2MzM6CiteSV5JZmktPmtlZXBfY2FjaGUgPSAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzY2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6NjM0OgorXklmdXNlX3JlcGx5X29wZW4ocmVxLCBmaSk7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNjYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo2MzU6CiteSXJldHVybjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM2NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjYzODoKK15JZXJyb3IgPSBlcnJubzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM2Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjY0MDoKK15JaWYgKGQpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM2Njg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY0MToKK15J XklpZiAoZmQgIT0gLTEpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwg YXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNjY4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo2NDE6CisgICAgICAgICAgICAgICBpZiAoZmQgIT0gLTEpClsuLi5dCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2Njk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY0MjoKK15JXkleSWNsb3NlKGZkKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2NzA6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY0MzoKK15JXklmcmVlKGQpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY3MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6NjQ0OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNjcyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2 NDU6CiteSWZ1c2VfcmVwbHlfZXJyKHJlcSwgZXJyb3IpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY3NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6NjUwOgorXklyZXR1cm4gbmFtZVswXSA9PSAnLicgJiYgKG5hbWVbMV0gPT0gJ1ww JyB8fCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY3ODogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjUxOgorXkleSV5JXkkgIChuYW1l WzFdID09ICcuJyAmJiBuYW1lWzJdID09ICdcMCcpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM2ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjY1NToKK15JXkleSSAgb2ZmX3Qgb2Zmc2V0LCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8g KmZpLCBpbnQgcGx1cykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM2ODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY1NzoKK15Jc3Ry dWN0IGxvX2RpcnAgKmQgPSBsb19kaXJwKGZpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM2ODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjY1ODoKK15JY2hhciAqYnVmOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzY4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjU5 OgorXkljaGFyICpwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzY4NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjYwOgorXklzaXpl X3QgcmVtID0gc2l6ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM2ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY2MToKK15JaW50 IGVycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2OTA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY2MzoKK15JKHZvaWQpIGlubzsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2OTI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY2NToKK15JYnVmID0gY2FsbG9jKDEsIHNp emUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5MzogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjY2OgorXklpZiAoIWJ1ZikgeyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5NDogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjY3OgorXkleSWVyciA9IEVOT01FTTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM2OTU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY2ODoKK15JXklnb3RvIGVycm9yOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzY5NjogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NjY5OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNjk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo2NzA6CiteSXAgPSBidWY7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNjk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2 NzI6CiteSWlmIChvZmZzZXQgIT0gZC0+b2Zmc2V0KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNzAwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo2NzM6CiteSV5Jc2Vla2RpcihkLT5kcCwgb2Zmc2V0KTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjY3NDoKK15JXklkLT5lbnRyeSA9IE5VTEw7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzAyOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzo2NzU6CiteSV5JZC0+b2Zmc2V0ID0gb2Zmc2V0OyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcwMzogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Njc2OgorXkl9JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo2Nzc6CiteSXdoaWxlICgxKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNzA1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2 Nzg6CiteSV5Jc2l6ZV90IGVudHNpemU7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojNzA2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2 Nzk6CiteSV5Jb2ZmX3QgbmV4dG9mZjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3MDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY4 MDoKK15JXkljb25zdCBjaGFyICpuYW1lOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzcwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 NjgyOgorXkleSWlmICghZC0+ZW50cnkpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM3MTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjY4MzoKK15JXkleSWVycm5vID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM3MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY4 NDoKK15JXkleSWQtPmVudHJ5ID0gcmVhZGRpcihkLT5kcCk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo2ODU6CiteSV5JXklpZiAoIWQtPmVudHJ5KSB7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo2ODY6CiteSV5JXkleSWlmIChlcnJubykgeyAgLy8gRXJyb3IkCgpFUlJP UjogZG8gbm90IHVzZSBDOTkgLy8gY29tbWVudHMKIzcxMzogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6Njg2OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IChlcnJubykgeyAgLy8gRXJyb3IKCkVSUk9SOiB0cmFpbGluZyBzdGF0ZW1lbnRzIHNob3VsZCBi ZSBvbiBuZXh0IGxpbmUKIzcxMzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6Njg2OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJubykgeyAgLy8g RXJyb3IKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcxNDogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Njg3OgorXkleSV5JXkleSWVyciA9 IGVycm5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcxNTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Njg4OgorXkleSV5JXkleSWdv dG8gZXJyb3I7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzE2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2ODk6CiteSV5JXkleSX0g ZWxzZSB7ICAvLyBFbmQgb2Ygc3RyZWFtJAoKRVJST1I6IGRvIG5vdCB1c2UgQzk5IC8vIGNvbW1l bnRzCiM3MTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY4OToKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeyAgLy8gRW5kIG9mIHN0cmVhbQoK RVJST1I6IHRyYWlsaW5nIHdoaXRlc3BhY2UKIzcxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6NjkwOgorXkleSV5JXkleSWJyZWFrOyAkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjY5MDoKK15JXkleSV5JXklicmVhazsgJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo2OTE6CiteSV5JXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM3MTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjY5MjoKK15JXkleSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM3MjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY5MzoKK15JXkl9 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzIxOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo2OTQ6CiteSV5JbmV4dG9mZiA9IGQtPmVu dHJ5LT5kX29mZjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3 MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY5NToKK15JXkluYW1l ID0gZC0+ZW50cnktPmRfbmFtZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiM3MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjY5NjoK K15JXklmdXNlX2lub190IGVudHJ5X2lubyA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojNzI0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo2OTc6CiteSV5JaWYgKHBsdXMpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM3MjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjY5ODoKK15JXkleSXN0cnVjdCBmdXNlX2VudHJ5X3BhcmFtIGU7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzI2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo2OTk6CiteSV5JXklpZiAoaXNfZG90X29yX2RvdGRvdChuYW1lKSkgeyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcyNzogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzAwOgorXkleSV5JXkllID0gKHN0cnVjdCBm dXNlX2VudHJ5X3BhcmFtKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNzI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MDE6Cite SV5JXkleSV5JLmF0dHIuc3RfaW5vID0gZC0+ZW50cnktPmRfaW5vLCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcyOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6NzAyOgorXkleSV5JXkleSS5hdHRyLnN0X21vZGUgPSBkLT5lbnRyeS0+ ZF90eXBlIDw8IDEyLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzczMDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzAzOgorXkleSV5J Xkl9OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzczMTogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzA0OgorXkleSV5JfSBlbHNlIHsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3MzI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjcwNToKK15JXkleSV5JZXJyID0gbG9fZG9f bG9va3VwKHJlcSwgaW5vLCBuYW1lLCAmZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojNzMzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu Yzo3MDY6CiteSV5JXkleSWlmIChlcnIpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5 IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojNzMzOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo3MDY6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKGVycikKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzczNDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzA3OgorXkleSV5J XkleSWdvdG8gZXJyb3I7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojNzM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MDg6CiteSV5J XkleSWVudHJ5X2lubyA9IGUuaW5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzczNjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzA5 OgorXkleSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzcz ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzExOgorXkleSV5JZW50 c2l6ZSA9IGZ1c2VfYWRkX2RpcmVudHJ5X3BsdXMocmVxLCBwLCByZW0sIG5hbWUsJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzM5OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MTI6CiteSV5JXkleSV5JXkleSSAmZSwgbmV4dG9mZik7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzQwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MTM6CiteSV5JfSBlbHNlIHskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NDE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjcxNDoKK15JXkleSXN0cnVjdCBzdGF0IHN0ID0geyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0MjogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzE1OgorXkleSV5JXkkuc3RfaW5vID0gZC0+ ZW50cnktPmRfaW5vLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izc0MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzE2OgorXkleSV5J Xkkuc3RfbW9kZSA9IGQtPmVudHJ5LT5kX3R5cGUgPDwgMTIsJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzQ0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo3MTc6CiteSV5JXkl9OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzc0NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 NzE4OgorXkleSV5JZW50c2l6ZSA9IGZ1c2VfYWRkX2RpcmVudHJ5KHJlcSwgcCwgcmVtLCBuYW1l LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0NjogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzE5OgorXkleSV5JXkleSV5JICAgICZz dCwgbmV4dG9mZik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NzQ3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MjA6CiteSV5JfSQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc0ODogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzIxOgorXkleSWlmIChlbnRzaXplID4gcmVt KSB7JAoKRVJST1I6IHRyYWlsaW5nIHdoaXRlc3BhY2UKIzc0OTogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzIyOgorXkleSV5JaWYgKGVudHJ5X2lubyAhPSAwKSAkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NDk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjcyMjoKK15JXkleSWlmIChlbnRyeV9pbm8gIT0g MCkgJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlz IHN0YXRlbWVudAojNzQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3 MjI6CisgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeV9pbm8gIT0gMCkgClsuLi5dCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NTA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjcyMzoKK15JXkleSV5JbG9fZm9yZ2V0X29uZShy ZXEsIGVudHJ5X2lubywgMSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojNzUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MjQ6Cite SV5JXklicmVhazskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3 NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjcyNToKK15JXkl9JAoK RVJST1I6IHRyYWlsaW5nIHdoaXRlc3BhY2UKIzc1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6NzI2OgorXkleSSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzc1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 NzI2OgorXkleSSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc1 NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzI3OgorXkleSXAgKz0g ZW50c2l6ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NTU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjcyODoKK15JXklyZW0gLT0g ZW50c2l6ZTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM3NTc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjczMDoKK15JXklkLT5lbnRy eSA9IE5VTEw7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzU4 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MzE6CiteSV5JZC0+b2Zm c2V0ID0gbmV4dG9mZjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiM3NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjczMjoKK15JfSQK CkVSUk9SOiBkbyBub3QgdXNlIEM5OSAvLyBjb21tZW50cwojNzYzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3MzY6CisgICAgLy8gSWYgdGhlcmUncyBhbiBlcnJvciwg d2UgY2FuIG9ubHkgc2lnbmFsIGl0IGlmIHdlIGhhdmVuJ3Qgc3RvcmVkCgpFUlJPUjogZG8gbm90 IHVzZSBDOTkgLy8gY29tbWVudHMKIzc2NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6NzM3OgorICAgIC8vIGFueSBlbnRyaWVzIHlldCAtIG90aGVyd2lzZSB3ZSdkIGVu ZCB1cCB3aXRoIHdyb25nIGxvb2t1cAoKRVJST1I6IGRvIG5vdCB1c2UgQzk5IC8vIGNvbW1lbnRz CiM3NjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjczODoKKyAgICAv LyBjb3VudHMgZm9yIHRoZSBlbnRyaWVzIHRoYXQgYXJlIGFscmVhZHkgaW4gdGhlIGJ1ZmZlci4g U28gd2UKCkVSUk9SOiBkbyBub3QgdXNlIEM5OSAvLyBjb21tZW50cwojNzY2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3Mzk6CisgICAgLy8gcmV0dXJuIHdoYXQgd2Un dmUgY29sbGVjdGVkIHVudGlsIHRoYXQgcG9pbnQuCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNl c3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiM3Njc6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjc0MDoKKyAgICBpZiAoZXJyICYmIHJlbSA9PSBzaXpl KQpbLi4uXQorICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzc2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzQx OgorXkkgICAgZnVzZV9yZXBseV9lcnIocmVxLCBlcnIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6NzQzOgorXkkgICAgZnVzZV9yZXBseV9idWYocmVxLCBidWYsIHNpemUgLSByZW0p OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc3NTogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzQ4OgorXkleSSAgICAgICBvZmZfdCBv ZmZzZXQsIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojNzc3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo3NTA6CiteSWxvX2RvX3JlYWRkaXIocmVxLCBpbm8sIHNpemUsIG9mZnNldCwgZmks IDApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc4MTogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzU0OgorXkleSV5JICAgb2ZmX3Qg b2Zmc2V0LCBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6NzU2OgorXklsb19kb19yZWFkZGlyKHJlcSwgaW5vLCBzaXplLCBvZmZzZXQsIGZp LCAxKTskCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojNzg2OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3NTk6CitzdGF0aWMgdm9pZCBsb19yZWxlYXNl ZGlyKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IGlubywgc3RydWN0IGZ1c2VfZmlsZV9pbmZv ICpmaSkKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc4ODogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzYxOgorXklzdHJ1Y3QgbG9fZGly cCAqZCA9IGxvX2RpcnAoZmkpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzc4OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzYyOgor Xkkodm9pZCkgaW5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK Izc5MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzYzOgorXkljbG9z ZWRpcihkLT5kcCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj NzkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3NjQ6CiteSWZyZWUo ZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzkyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3NjU6CiteSWZ1c2VfcmVwbHlfZXJy KHJlcSwgMCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzk2 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3Njk6CiteSV5JICAgICAg bW9kZV90IG1vZGUsIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojNzk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo3NzE6CiteSWludCBmZDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM3OTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjc3MjoKK15Jc3RydWN0IGxvX2RhdGEgKmxvID0gbG9fZGF0YShyZXEpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgwMDogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6NzczOgorXklzdHJ1Y3QgZnVzZV9lbnRyeV9wYXJhbSBlOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgwMTogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Nzc0OgorXklpbnQgZXJyOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgwMzogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Nzc2OgorXklpZiAobG9fZGVidWcocmVxKSkkCgpXQVJOSU5H OiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojODA0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo3Nzc6CisgICAgICAgICAgICAgICBmdXNlX2xvZyhGVVNFX0xPR19ERUJV RywgImxvX2NyZWF0ZShwYXJlbnQ9JSIgUFJJdTY0ICIsIG5hbWU9JXMpXG4iLAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODA0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo3Nzc6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICJs b19jcmVhdGUocGFyZW50PSUiIFBSSXU2NCAiLCBuYW1lPSVzKVxuIiwkCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjc3ODoKK15JXkleSXBhcmVudCwgbmFtZSk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzo3ODA6CiteSWZkID0gb3BlbmF0KGxvX2ZkKHJlcSwgcGFyZW50KSwg bmFtZSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MDg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjc4MToKK15JXkkgICAgKGZpLT5m bGFncyB8IE9fQ1JFQVQpICYgfk9fTk9GT0xMT1csIG1vZGUpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgwOTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6NzgyOgorXklpZiAoZmQgPT0gLTEpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUg bmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojODA5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3ODI6CisgICAgICAgaWYgKGZkID09IC0xKQpb Li4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODEwOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3ODM6CiteSV5JcmV0dXJuICh2b2lk KSBmdXNlX3JlcGx5X2VycihyZXEsIGVycm5vKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM4MTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjc4NToKK15JZmktPmZoID0gZmQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojODEzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3 ODY6CiteSWlmIChsby0+Y2FjaGUgPT0gQ0FDSEVfTkVWRVIpJAoKRVJST1I6IGJyYWNlcyB7fSBh cmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojODEzOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3ODY6CisgICAgICAgaWYgKGxvLT5jYWNo ZSA9PSBDQUNIRV9ORVZFUikKWy4uLl0KKyAgICAgICBlbHNlIGlmIChsby0+Y2FjaGUgPT0gQ0FD SEVfQUxXQVlTKQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojODE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3ODc6CiteSV5J ZmktPmRpcmVjdF9pbyA9IDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojODE1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3ODg6Cite SWVsc2UgaWYgKGxvLT5jYWNoZSA9PSBDQUNIRV9BTFdBWVMpJAoKRVJST1I6IGJyYWNlcyB7fSBh cmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojODE1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3ODg6CisgICAgICAgZWxzZSBpZiAobG8t PmNhY2hlID09IENBQ0hFX0FMV0FZUykKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzgxNjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6Nzg5OgorXkleSWZpLT5rZWVwX2NhY2hlID0gMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM4MTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjc5MToKK15JZXJyID0gbG9fZG9fbG9va3VwKHJlcSwgcGFyZW50LCBuYW1lLCAmZSk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODE5OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3OTI6CiteSWlmIChlcnIpJAoKRVJST1I6 IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAoj ODE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo3OTI6CisgICAgICAg aWYgKGVycikKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM4MjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjc5MzoKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIGVycik7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODIxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzo3OTQ6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM4MjI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjc5NToKK15JXklmdXNlX3JlcGx5X2NyZWF0ZShyZXEsICZlLCBmaSk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODI2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo3OTk6CiteSV5JXklzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZp KSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgyODogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODAxOgorXklpbnQgcmVzOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgyOTogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODAyOgorXklpbnQgZmQgPSBkaXJmZChsb19kaXJwKGZp KS0+ZHApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgzMDog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODAzOgorXkkodm9pZCkgaW5v OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgzMTogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODA0OgorXklpZiAoZGF0YXN5bmMpJAoK RVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRl bWVudAojODMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MDQ6Cisg ICAgICAgaWYgKGRhdGFzeW5jKQpbLi4uXQorICAgICAgIGVsc2UKWy4uLl0KCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzgzMjogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6ODA1OgorXkleSXJlcyA9IGZkYXRhc3luYyhmZCk7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODMzOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MDY6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4MzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjgwNzoKK15JXklyZXMgPSBmc3luYyhmZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojODM1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo4MDg6CiteSWZ1c2VfcmVwbHlfZXJyKHJlcSwgcmVzID09IC0xID8gZXJybm8g OiAwKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NDA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjgxMzoKK15JaW50IGZkOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg0MTogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODE0OgorXkljaGFyIGJ1Zls2NF07JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODQyOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MTU6CiteSXN0cnVjdCBsb19kYXRhICpsbyA9IGxvX2Rh dGEocmVxKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NDQ6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjgxNzoKK15JaWYgKGxvX2Rl YnVnKHJlcSkpJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODQ1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MTg6CiteSV5JZnVzZV9s b2coRlVTRV9MT0dfREVCVUcsICJsb19vcGVuKGlubz0lIiBQUkl1NjQgIiwgZmxhZ3M9JWQpXG4i LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg0NjogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODE5OgorXkleSV5JaW5vLCBmaS0+Zmxh Z3MpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg0ODogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODIxOgorXkkvKiBXaXRoIHdyaXRl YmFjayBjYWNoZSwga2VybmVsIG1heSBzZW5kIHJlYWQgcmVxdWVzdHMgZXZlbiQKCldBUk5JTkc6 IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiM4NDg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjgyMToKKyAgICAgICAvKiBX aXRoIHdyaXRlYmFjayBjYWNoZSwga2VybmVsIG1heSBzZW5kIHJlYWQgcmVxdWVzdHMgZXZlbgoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODQ5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MjI6CiteSSAgIHdoZW4gdXNlcnNwYWNlIG9w ZW5lZCB3cml0ZS1vbmx5ICovJAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlICogb24gc3Vi c2VxdWVudCBsaW5lcwojODQ5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu Yzo4MjI6CisgICAgICAgLyogV2l0aCB3cml0ZWJhY2sgY2FjaGUsIGtlcm5lbCBtYXkgc2VuZCBy ZWFkIHJlcXVlc3RzIGV2ZW4KKyAgICAgICAgICB3aGVuIHVzZXJzcGFjZSBvcGVuZWQgd3JpdGUt b25seSAqLwoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgdHJhaWxpbmcgKi8gb24gYSBz ZXBhcmF0ZSBsaW5lCiM4NDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjgyMjoKKyAgICAgICAgICB3aGVuIHVzZXJzcGFjZSBvcGVuZWQgd3JpdGUtb25seSAqLwoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODUwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MjM6CiteSWlmIChsby0+d3JpdGViYWNrICYmIChm aS0+ZmxhZ3MgJiBPX0FDQ01PREUpID09IE9fV1JPTkxZKSB7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojODUxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzo4MjQ6CiteSV5JZmktPmZsYWdzICY9IH5PX0FDQ01PREU7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODUyOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo4MjU6CiteSV5JZmktPmZsYWdzIHw9IE9fUkRXUjskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NTM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjgyNjoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6ODI4OgorXkkvKiBXaXRoIHdyaXRlYmFjayBjYWNoZSwgT19BUFBFTkQgaXMgaGFu ZGxlZCBieSB0aGUga2VybmVsLiQKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRp bmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiM4NTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjgyODoKKyAgICAgICAvKiBXaXRoIHdyaXRlYmFjayBjYWNoZSwgT19BUFBF TkQgaXMgaGFuZGxlZCBieSB0aGUga2VybmVsLgoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojODU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu Yzo4Mjk6CiteSSAgIFRoaXMgYnJlYWtzIGF0b21pY2l0eSAoc2luY2UgdGhlIGZpbGUgbWF5IGNo YW5nZSBpbiB0aGUkCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgKiBvbiBzdWJzZXF1ZW50 IGxpbmVzCiM4NTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjgyOToK KyAgICAgICAvKiBXaXRoIHdyaXRlYmFjayBjYWNoZSwgT19BUFBFTkQgaXMgaGFuZGxlZCBieSB0 aGUga2VybmVsLgorICAgICAgICAgIFRoaXMgYnJlYWtzIGF0b21pY2l0eSAoc2luY2UgdGhlIGZp bGUgbWF5IGNoYW5nZSBpbiB0aGUKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzg1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODMwOgor XkkgICB1bmRlcmx5aW5nIGZpbGVzeXN0ZW0sIHNvIHRoYXQgdGhlIGtlcm5lbCdzIGlkZWEgb2Yg dGhlJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODU4OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MzE6CiteSSAgIGVuZCBvZiB0aGUg ZmlsZSBpc24ndCBhY2N1cmF0ZSBhbnltb3JlKS4gSW4gdGhpcyBleGFtcGxlLCQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg1OTogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODMyOgorXkkgICB3ZSBqdXN0IGFjY2VwdCB0aGF0LiBBIG1v cmUgcmlnb3JvdXMgZmlsZXN5c3RlbSBtYXkgd2FudCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzg2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6ODMzOgorXkkgICB0byByZXR1cm4gYW4gZXJyb3IgaGVyZSAqLyQKCldBUk5JTkc6IEJs b2NrIGNvbW1lbnRzIHVzZSBhIHRyYWlsaW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQojODYwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4MzM6CisgICAgICAgICAgdG8g cmV0dXJuIGFuIGVycm9yIGhlcmUgKi8KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzg2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODM0 OgorXklpZiAobG8tPndyaXRlYmFjayAmJiAoZmktPmZsYWdzICYgT19BUFBFTkQpKSQKCkVSUk9S OiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQK Izg2MTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODM0OgorICAgICAg IGlmIChsby0+d3JpdGViYWNrICYmIChmaS0+ZmxhZ3MgJiBPX0FQUEVORCkpClsuLi5dCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NjI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjgzNToKK15JXklmaS0+ZmxhZ3MgJj0gfk9fQVBQRU5E OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg2NDogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODM3OgorXklzcHJpbnRmKGJ1ZiwgIi9w cm9jL3NlbGYvZmQvJWkiLCBsb19mZChyZXEsIGlubykpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg2NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6ODM4OgorXklmZCA9IG9wZW4oYnVmLCBmaS0+ZmxhZ3MgJiB+T19OT0ZPTExPVyk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODY2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4Mzk6CiteSWlmIChmZCA9PSAtMSkkCgpF UlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVt ZW50CiM4NjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjgzOToKKyAg ICAgICBpZiAoZmQgPT0gLTEpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM4Njc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjg0 MDoKK15JXklyZXR1cm4gKHZvaWQpIGZ1c2VfcmVwbHlfZXJyKHJlcSwgZXJybm8pOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg2OTogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODQyOgorXklmaS0+ZmggPSBmZDskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjg0MzoKK15JaWYgKGxvLT5jYWNoZSA9PSBDQUNIRV9ORVZFUikk CgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3Rh dGVtZW50CiM4NzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjg0MzoK KyAgICAgICBpZiAobG8tPmNhY2hlID09IENBQ0hFX05FVkVSKQpbLi4uXQorICAgICAgIGVsc2Ug aWYgKGxvLT5jYWNoZSA9PSBDQUNIRV9BTFdBWVMpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NzE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjg0NDoKK15JXklmaS0+ZGlyZWN0X2lvID0gMTskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjg0NToKK15JZWxzZSBpZiAobG8tPmNhY2hlID09IENBQ0hFX0FMV0FZUykk CgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3Rh dGVtZW50CiM4NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjg0NToK KyAgICAgICBlbHNlIGlmIChsby0+Y2FjaGUgPT0gQ0FDSEVfQUxXQVlTKQpbLi4uXQoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojODczOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4NDY6CiteSV5JZmktPmtlZXBfY2FjaGUgPSAxOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg3NDogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODQ3OgorXklmdXNlX3JlcGx5X29wZW4ocmVxLCBm aSk7JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzg3NzogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODUwOgorc3RhdGljIHZvaWQgbG9fcmVsZWFzZShm dXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkp CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4Nzk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjg1MjoKK15JKHZvaWQpIGlubzskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4ODE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjg1NDoKK15JY2xvc2UoZmktPmZoKTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4ODI6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjg1NToKK15JZnVzZV9yZXBseV9lcnIocmVxLCAwKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4ODc6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjg2MDoKK15JaW50IHJlczskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4ODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjg2MToKK15JKHZvaWQpIGlubzskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4ODk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjg2MjoKK15JcmVzID0gY2xvc2UoZHVwKGZpLT5maCkpOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg5MDogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODYzOgorXklmdXNlX3JlcGx5X2VycihyZXEsIHJlcyA9PSAt MSA/IGVycm5vIDogMCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojODk0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4Njc6CiteSV5J ICAgICBzdHJ1Y3QgZnVzZV9maWxlX2luZm8gKmZpKSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzg5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6ODY5OgorXklpbnQgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzg5NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODcw OgorXkkodm9pZCkgaW5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzg5ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODcxOgorXklp ZiAoZGF0YXN5bmMpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJt cyBvZiB0aGlzIHN0YXRlbWVudAojODk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo4NzE6CisgICAgICAgaWYgKGRhdGFzeW5jKQpbLi4uXQorICAgICAgIGVsc2UKWy4u Ll0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzg5OTogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODcyOgorXkleSXJlcyA9IGZkYXRhc3lu YyhmaS0+ZmgpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkw MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODczOgorXkllbHNlJAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTAxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4NzQ6CiteSV5JcmVzID0gZnN5bmMoZmktPmZo KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MDI6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjg3NToKK15JZnVzZV9yZXBseV9lcnIo cmVxLCByZXMgPT0gLTEgPyBlcnJubyA6IDApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzkwNjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6ODc5OgorXkleSSAgICBvZmZfdCBvZmZzZXQsIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkp JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTA4OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4ODE6CiteSXN0cnVjdCBmdXNlX2J1ZnZl YyBidWYgPSBGVVNFX0JVRlZFQ19JTklUKHNpemUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzkxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6ODgzOgorXklpZiAobG9fZGVidWcocmVxKSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM5MTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjg4NDoKK15JXklmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywgImxvX3JlYWQoaW5vPSUi IFBSSXU2NCAiLCBzaXplPSV6ZCwgIiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzkxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODg1 OgorXkleSV5JIm9mZj0lbHUpXG4iLCBpbm8sIHNpemUsICh1bnNpZ25lZCBsb25nKSBvZmZzZXQp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkxNDogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6ODg3OgorXklidWYuYnVmWzBdLmZsYWdz ID0gRlVTRV9CVUZfSVNfRkQgfCBGVVNFX0JVRl9GRF9TRUVLOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkxNTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6ODg4OgorXklidWYuYnVmWzBdLmZkID0gZmktPmZoOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkxNjogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6ODg5OgorXklidWYuYnVmWzBdLnBvcyA9IG9mZnNldDskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MTg6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjg5MToKK15JZnVzZV9yZXBseV9kYXRhKHJlcSwgJmJ1 ZiwgRlVTRV9CVUZfU1BMSUNFX01PVkUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzkyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 ODk1OgorXkleSV5JIHN0cnVjdCBmdXNlX2J1ZnZlYyAqaW5fYnVmLCBvZmZfdCBvZmYsJAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTIzOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo4OTY6CiteSV5JXkkgc3RydWN0IGZ1c2VfZmlsZV9p bmZvICpmaSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MjU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjg5ODoKK15JKHZvaWQpIGlu bzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MjY6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjg5OToKK15Jc3NpemVfdCByZXM7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTI3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5MDA6CiteSXN0cnVjdCBmdXNlX2J1ZnZlYyBv dXRfYnVmID0gRlVTRV9CVUZWRUNfSU5JVChmdXNlX2J1Zl9zaXplKGluX2J1ZikpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkyOTogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTAyOgorXklvdXRfYnVmLmJ1ZlswXS5mbGFncyA9IEZV U0VfQlVGX0lTX0ZEIHwgRlVTRV9CVUZfRkRfU0VFSzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM5MzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjkwMzoKK15Jb3V0X2J1Zi5idWZbMF0uZmQgPSBmaS0+Zmg7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzo5MDQ6CiteSW91dF9idWYuYnVmWzBdLnBvcyA9IG9mZjskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5MzM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjkwNjoKK15JaWYgKGxvX2RlYnVnKHJlcSkpJAoKV0FS TklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzkzNDogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6OTA3OgorICAgICAgICAgICAgICAgZnVzZV9sb2coRlVTRV9MT0df REVCVUcsICJsb193cml0ZShpbm89JSIgUFJJdTY0ICIsIHNpemU9JXpkLCBvZmY9JWx1KVxuIiwK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkzNDogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTA3OgorXkleSWZ1c2VfbG9nKEZVU0VfTE9H X0RFQlVHLCAibG9fd3JpdGUoaW5vPSUiIFBSSXU2NCAiLCBzaXplPSV6ZCwgb2ZmPSVsdSlcbiIs JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTM1OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5MDg6CiteSV5JXklpbm8sIG91dF9idWYu YnVmWzBdLnNpemUsICh1bnNpZ25lZCBsb25nKSBvZmYpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6OTEwOgorXklyZXMgPSBmdXNlX2J1Zl9jb3B5KCZvdXRfYnVmLCBpbl9idWYsIDAp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzkzODogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTExOgorXklpZihyZXMgPCAwKSQKCkVS Uk9SOiBzcGFjZSByZXF1aXJlZCBiZWZvcmUgdGhlIG9wZW4gcGFyZW50aGVzaXMgJygnCiM5Mzg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjkxMToKKyAgICAgICBpZihy ZXMgPCAwKQoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0 aGlzIHN0YXRlbWVudAojOTM4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu Yzo5MTE6CisgICAgICAgaWYocmVzIDwgMCkKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5Mzk6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjkxMjoKK15JXklmdXNlX3JlcGx5X2VycihyZXEsIC1y ZXMpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk0MDogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTEzOgorXkllbHNlJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTQxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5MTQ6CiteSV5JZnVzZV9yZXBseV93cml0ZShyZXEsIChz aXplX3QpIHJlcyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj OTQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5MTk6CiteSWludCBy ZXM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTQ3OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5MjA6CiteSXN0cnVjdCBzdGF0dmZz IHN0YnVmOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk0OTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTIyOgorXklyZXMgPSBmc3Rh dHZmcyhsb19mZChyZXEsIGlubyksICZzdGJ1Zik7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojOTUwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzo5MjM6CiteSWlmIChyZXMgPT0gLTEpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNz YXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojOTUwOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5MjM6CisgICAgICAgaWYgKHJlcyA9PSAtMSkKWy4uLl0K KyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM5NTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjkyNDoKK15J XklmdXNlX3JlcGx5X2VycihyZXEsIGVycm5vKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM5NTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjkyNToKK15JZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzk1MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTI2OgorXkle SWZ1c2VfcmVwbHlfc3RhdGZzKHJlcSwgJnN0YnVmKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiM5NTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjkzMDoKK15JXkleSSBvZmZfdCBvZmZzZXQsIG9mZl90IGxlbmd0aCwgc3RydWN0IGZ1 c2VfZmlsZV9pbmZvICpmaSkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM5NTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjkzMjoKK15J aW50IGVyciA9IEVPUE5PVFNVUFA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojOTYwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5MzM6 CiteSSh2b2lkKSBpbm87JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojOTYzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5MzY6CiteSWVy ciA9IGZhbGxvY2F0ZShmaS0+ZmgsIG1vZGUsIG9mZnNldCwgbGVuZ3RoKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjkzNzoKK15JaWYgKGVyciA8IDApJAoKRVJST1I6IGJyYWNlcyB7 fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojOTY0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5Mzc6CisgICAgICAgaWYgKGVyciA8 IDApClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NjU6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjkzODoKK15JXkllcnIgPSBl cnJubzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5Njg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk0MToKK15JaWYgKG1vZGUpIHsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5Njk6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk0MjoKK15JXklmdXNlX3JlcGx5X2Vycihy ZXEsIEVPUE5PVFNVUFApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzk3MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTQzOgorXkle SXJldHVybjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5NzE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk0NDoKK15JfSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk3MzogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTQ2OgorXkllcnIgPSBwb3NpeF9mYWxsb2NhdGUoZmkt PmZoLCBvZmZzZXQsIGxlbmd0aCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojOTc2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5NDk6 CiteSWZ1c2VfcmVwbHlfZXJyKHJlcSwgZXJyKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiM5ODA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjk1MzoKK15JXkkgICAgIGludCBvcCkkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiM5ODI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j Ojk1NToKK15JaW50IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiM5ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk1NjoKK15J KHZvaWQpIGlubzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5 ODU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk1ODoKK15JcmVzID0g ZmxvY2soZmktPmZoLCBvcCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojOTg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5NjA6Cite SWZ1c2VfcmVwbHlfZXJyKHJlcSwgcmVzID09IC0xID8gZXJybm8gOiAwKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5OTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjk2NDoKK15JXkleSXNpemVfdCBzaXplKSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk5MzogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6OTY2OgorXkljaGFyICp2YWx1ZSA9IE5VTEw7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojOTk0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo5Njc6CiteSWNoYXIgcHJvY25hbWVbNjRdOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzk5NTogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTY4OgorXklzdHJ1Y3QgbG9faW5vZGUgKmlub2RlID0gbG9f aW5vZGUocmVxLCBpbm8pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzk5NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTY5OgorXklz c2l6ZV90IHJldDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5 OTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk3MDoKK15JaW50IHNh dmVycjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM5OTk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk3MjoKK15Jc2F2ZXJyID0gRU5P U1lTOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMDA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk3MzoKK15JaWYgKCFsb19kYXRh KHJlcSktPnhhdHRyKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFy bXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEwMDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjk3MzoKKyAgICAgICBpZiAoIWxvX2RhdGEocmVxKS0+eGF0dHIpClsuLi5dCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDAxOiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5NzQ6CiteSV5JZ290byBvdXQ7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAwMzogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTc2OgorXklpZiAobG9fZGVidWcocmVxKSkgeyQKCkVS Uk9SOiBsaW5lIG92ZXIgOTAgY2hhcmFjdGVycwojMTAwNDogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6OTc3OgorICAgICAgICAgICAgICAgZnVzZV9sb2coRlVTRV9MT0df REVCVUcsICJsb19nZXR4YXR0cihpbm89JSIgUFJJdTY0ICIsIG5hbWU9JXMgc2l6ZT0lemQpXG4i LAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAwNDogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTc3OgorXkleSWZ1c2VfbG9nKEZVU0Vf TE9HX0RFQlVHLCAibG9fZ2V0eGF0dHIoaW5vPSUiIFBSSXU2NCAiLCBuYW1lPSVzIHNpemU9JXpk KVxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDA1OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5Nzg6CiteSV5JXklpbm8sIG5h bWUsIHNpemUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEw MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk3OToKK15JfSQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMDg6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk4MToKK15JaWYgKGlub2RlLT5pc19zeW1saW5r KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAwOTogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTgyOgorXkleSS8qIFNvcnJ5LCBu byByYWNlIGZyZWUgd2F5IHRvIGdldHhhdHRyIG9uIHN5bWxpbmsuICovJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAxMDogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6OTgzOgorXkleSXNhdmVyciA9IEVQRVJNOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjk4NDoKK15JXklnb3RvIG91dDskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzo5ODU6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMDE0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5 ODc6CiteSXNwcmludGYocHJvY25hbWUsICIvcHJvYy9zZWxmL2ZkLyVpIiwgaW5vZGUtPmZkKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDE2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzo5ODk6CiteSWlmIChzaXplKSB7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAxNzogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTkwOgorXkleSXZhbHVlID0gbWFsbG9jKHNpemUp OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMTg6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk5MToKK15JXklpZiAoIXZhbHVlKSQK CkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0 ZW1lbnQKIzEwMTg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk5MToK KyAgICAgICAgICAgICAgIGlmICghdmFsdWUpClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMDE5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzo5OTI6CiteSV5JXklnb3RvIG91dF9lcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTAyMTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6OTk0OgorXkleSXJldCA9IGdldHhhdHRyKHByb2NuYW1lLCBuYW1lLCB2YWx1ZSwg c2l6ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAyMjog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6OTk1OgorXkleSWlmIChyZXQg PT0gLTEpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0 aGlzIHN0YXRlbWVudAojMTAyMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6OTk1OgorICAgICAgICAgICAgICAgaWYgKHJldCA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjk5NjoKK15JXkleSWdvdG8gb3V0X2VycjskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDI0OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzo5OTc6CiteSV5Jc2F2ZXJyID0gMDskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDI1OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzo5OTg6CiteSV5JaWYgKHJldCA9PSAwKSQKCkVSUk9SOiBicmFjZXMg e30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEwMjU6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk5ODoKKyAgICAgICAgICAgICAg IGlmIChyZXQgPT0gMCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEwMjY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjk5OToK K15JXkleSWdvdG8gb3V0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEwMjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwMDE6Cite SV5JZnVzZV9yZXBseV9idWYocmVxLCB2YWx1ZSwgcmV0KTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDI5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzoxMDAyOgorXkl9IGVsc2UgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEwMzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjEwMDM6CiteSV5JcmV0ID0gZ2V0eGF0dHIocHJvY25hbWUsIG5hbWUsIE5VTEwsIDApOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMzE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwMDQ6CiteSV5JaWYgKHJldCA9PSAtMSkk CgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3Rh dGVtZW50CiMxMDMxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDA0 OgorICAgICAgICAgICAgICAgaWYgKHJldCA9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwMzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjEwMDU6CiteSV5JXklnb3RvIG91dF9lcnI7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAzNDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MTAwNzoKK15JXklmdXNlX3JlcGx5X3hhdHRyKHJlcSwgcmV0KTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDM1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDA4OgorXkl9JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAzNzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MTAxMDoKK15JZnJlZSh2YWx1ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAzODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MTAxMToKK15JcmV0dXJuOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEwNDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjEwMTQ6CiteSXNhdmVyciA9IGVycm5vOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEwNDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjEwMTY6CiteSWZ1c2VfcmVwbHlfZXJyKHJlcSwgc2F2ZXJyKTskCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDQ0OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzoxMDE3OgorXklnb3RvIG91dF9mcmVlOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjEwMjI6CiteSWNoYXIgKnZhbHVlID0gTlVMTDskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDUwOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzoxMDIzOgorXkljaGFyIHByb2NuYW1lWzY0XTskCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDUxOiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDI0OgorXklzdHJ1Y3QgbG9faW5vZGUgKmlub2RlID0g bG9faW5vZGUocmVxLCBpbm8pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEwNTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwMjU6 CiteSXNzaXplX3QgcmV0OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEwNTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwMjY6Cite SWludCBzYXZlcnI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTA1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTAyODoKK15Jc2F2 ZXJyID0gRU5PU1lTOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEwNTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwMjk6CiteSWlm ICghbG9fZGF0YShyZXEpLT54YXR0cikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3Nhcnkg Zm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMDU2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzoxMDI5OgorICAgICAgIGlmICghbG9fZGF0YShyZXEpLT54YXR0 cikKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNTc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwMzA6CiteSV5JZ290byBv dXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA1OTogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTAzMjoKK15JaWYgKGxvX2RlYnVn KHJlcSkpIHskCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMTA2MDogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTAzMzoKKyAgICAgICAgICAgICAgIGZ1 c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCAibG9fbGlzdHhhdHRyKGlubz0lIiBQUkl1NjQgIiwgc2l6 ZT0lemQpXG4iLAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA2 MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTAzMzoKK15JXklmdXNl X2xvZyhGVVNFX0xPR19ERUJVRywgImxvX2xpc3R4YXR0cihpbm89JSIgUFJJdTY0ICIsIHNpemU9 JXpkKVxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDYx OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDM0OgorXkleSV5JaW5v LCBzaXplKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDYy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDM1OgorXkl9JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA2NDogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTAzNzoKK15JaWYgKGlub2RlLT5pc19zeW1saW5r KSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA2NTogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTAzODoKK15JXkkvKiBTb3JyeSwg bm8gcmFjZSBmcmVlIHdheSB0byBsaXN0eGF0dHIgb24gc3ltbGluay4gKi8kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDY2OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzoxMDM5OgorXkleSXNhdmVyciA9IEVQRVJNOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNjc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNDA6CiteSV5JZ290byBvdXQ7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA2ODogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MTA0MToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEwNzA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjEwNDM6CiteSXNwcmludGYocHJvY25hbWUsICIvcHJvYy9zZWxmL2ZkLyVpIiwgaW5vZGUt PmZkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDcyOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDQ1OgorXklpZiAoc2l6ZSkg eyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNzM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNDY6CiteSV5JdmFsdWUgPSBtYWxs b2Moc2l6ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA3 NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTA0NzoKK15JXklpZiAo IXZhbHVlKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2Yg dGhpcyBzdGF0ZW1lbnQKIzEwNzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjEwNDc6CisgICAgICAgICAgICAgICBpZiAoIXZhbHVlKQpbLi4uXQoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA3NTogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MTA0ODoKK15JXkleSWdvdG8gb3V0X2VycjskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDc3OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzoxMDUwOgorXkleSXJldCA9IGxpc3R4YXR0cihwcm9jbmFtZSwg dmFsdWUsIHNpemUpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEwNzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNTE6CiteSV5J aWYgKHJldCA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBh cm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMDc4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzoxMDUxOgorICAgICAgICAgICAgICAgaWYgKHJldCA9PSAtMSkKWy4uLl0KCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwNzk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNTI6CiteSV5JXklnb3RvIG91dF9lcnI7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA4MDogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTA1MzoKK15JXklzYXZlcnIgPSAwOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwODE6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNTQ6CiteSV5JaWYgKHJldCA9PSAwKSQKCkVS Uk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1l bnQKIzEwODE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNTQ6Cisg ICAgICAgICAgICAgICBpZiAocmV0ID09IDApClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hv dWxkIG5ldmVyIHVzZSB0YWJzCiMxMDgyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91 Z2hfbGwuYzoxMDU1OgorXkleSV5JZ290byBvdXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTA4NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MTA1NzoKK15JXklmdXNlX3JlcGx5X2J1ZihyZXEsIHZhbHVlLCByZXQpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwODU6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNTg6CiteSX0gZWxzZSB7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA4NjogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MTA1OToKK15JXklyZXQgPSBsaXN0eGF0dHIocHJvY25hbWUsIE5V TEwsIDApOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwODc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNjA6CiteSV5JaWYgKHJl dCA9PSAtMSkkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9m IHRoaXMgc3RhdGVtZW50CiMxMDg3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzoxMDYwOgorICAgICAgICAgICAgICAgaWYgKHJldCA9PSAtMSkKWy4uLl0KCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwODg6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNjE6CiteSV5JXklnb3RvIG91dF9lcnI7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA5MDogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTA2MzoKK15JXklmdXNlX3JlcGx5X3hhdHRyKHJlcSwg cmV0KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMDkxOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDY0OgorXkl9JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA5MzogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTA2NjoKK15JZnJlZSh2YWx1ZSk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTA5NDogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTA2NzoKK15JcmV0dXJuOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwOTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjEwNzA6CiteSXNhdmVyciA9IGVycm5vOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEwOTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjEwNzI6CiteSWZ1c2VfcmVwbHlfZXJyKHJlcSwgc2F2ZXJyKTskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTAwOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDczOgorXklnb3RvIG91dF9mcmVlOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMDQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwNzc6CiteSV5JXkljb25zdCBjaGFyICp2YWx1ZSwg c2l6ZV90IHNpemUsIGludCBmbGFncykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMTA2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzox MDc5OgorXkljaGFyIHByb2NuYW1lWzY0XTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMTA3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzoxMDgwOgorXklzdHJ1Y3QgbG9faW5vZGUgKmlub2RlID0gbG9faW5vZGUocmVxLCBpbm8pOyQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMDg6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwODE6CiteSXNzaXplX3QgcmV0OyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMDk6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwODI6CiteSWludCBzYXZlcnI7JAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTExMTogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTA4NDoKK15Jc2F2ZXJyID0gRU5PU1lTOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMTI6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwODU6CiteSWlmICghbG9fZGF0YShyZXEpLT54YXR0 cikkCgpFUlJPUjogYnJhY2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMg c3RhdGVtZW50CiMxMTEyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzox MDg1OgorICAgICAgIGlmICghbG9fZGF0YShyZXEpLT54YXR0cikKWy4uLl0KCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjEwODY6CiteSV5JZ290byBvdXQ7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTExNTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MTA4ODoKK15JaWYgKGxvX2RlYnVnKHJlcSkpIHskCgpFUlJPUjogbGlu ZSBvdmVyIDkwIGNoYXJhY3RlcnMKIzExMTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjEwODk6CisgICAgICAgICAgICAgICBmdXNlX2xvZyhGVVNFX0xPR19ERUJVRywg ImxvX3NldHhhdHRyKGlubz0lIiBQUkl1NjQgIiwgbmFtZT0lcyB2YWx1ZT0lcyBzaXplPSV6ZClc biIsCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTE2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDg5OgorXkleSWZ1c2VfbG9nKEZV U0VfTE9HX0RFQlVHLCAibG9fc2V0eGF0dHIoaW5vPSUiIFBSSXU2NCAiLCBuYW1lPSVzIHZhbHVl PSVzIHNpemU9JXpkKVxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMTE3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDkwOgor XkleSV5JaW5vLCBuYW1lLCB2YWx1ZSwgc2l6ZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTExODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MTA5MToKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzExMjA6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwOTM6Cite SWlmIChpbm9kZS0+aXNfc3ltbGluaykgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzExMjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjEwOTQ6CiteSV5JLyogU29ycnksIG5vIHJhY2UgZnJlZSB3YXkgdG8gc2V0eGF0dHIgb24gc3lt bGluay4gKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTIy OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMDk1OgorXkleSXNhdmVy ciA9IEVQRVJNOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEx MjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwOTY6CiteSV5JZ290 byBvdXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEyNDog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTA5NzoKK15JfSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMjY6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEwOTk6CiteSXNwcmludGYocHJvY25hbWUsICIvcHJv Yy9zZWxmL2ZkLyVpIiwgaW5vZGUtPmZkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMTI4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzoxMTAxOgorXklyZXQgPSBzZXR4YXR0cihwcm9jbmFtZSwgbmFtZSwgdmFsdWUsIHNpemUsIGZs YWdzKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTI5OiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTAyOgorXklzYXZlcnIgPSBy ZXQgPT0gLTEgPyBlcnJubyA6IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTEzMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTEw NToKK15JZnVzZV9yZXBseV9lcnIocmVxLCBzYXZlcnIpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjExMTA6CiteSWNoYXIgcHJvY25hbWVbNjRdOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExMzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjExMTE6CiteSXN0cnVjdCBsb19pbm9kZSAqaW5vZGUgPSBsb19pbm9kZShy ZXEsIGlubyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTEz OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTExMjoKK15Jc3NpemVf dCByZXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0MDog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTExMzoKK15JaW50IHNhdmVy cjskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTQyOiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTE1OgorXklzYXZlcnIgPSBFTk9T WVM7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0MzogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTExNjoKK15JaWYgKCFsb19kYXRh KHJlcSktPnhhdHRyKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFy bXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzExNDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjExMTY6CisgICAgICAgaWYgKCFsb19kYXRhKHJlcSktPnhhdHRyKQpbLi4uXQoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0NDogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTExNzoKK15JXklnb3RvIG91dDskCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTQ2OiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTE5OgorXklpZiAobG9fZGVidWcocmVxKSkgeyQK CldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMxMTQ3OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTIwOgorICAgICAgICAgICAgICAgZnVzZV9sb2coRlVT RV9MT0dfREVCVUcsICJsb19yZW1vdmV4YXR0cihpbm89JSIgUFJJdTY0ICIsIG5hbWU9JXMpXG4i LAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0NzogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTEyMDoKK15JXklmdXNlX2xvZyhGVVNF X0xPR19ERUJVRywgImxvX3JlbW92ZXhhdHRyKGlubz0lIiBQUkl1NjQgIiwgbmFtZT0lcylcbiIs JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0ODogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTEyMToKK15JXkleSWlubywgbmFtZSk7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE0OTogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTEyMjoKK15JfSQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjExMjQ6CiteSWlmIChpbm9kZS0+aXNfc3ltbGluaykgeyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNTI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExMjU6CiteSV5JLyogU29ycnksIG5vIHJhY2Ug ZnJlZSB3YXkgdG8gc2V0eGF0dHIgb24gc3ltbGluay4gKi8kCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzoxMTI2OgorXkleSXNhdmVyciA9IEVQRVJNOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExNTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjExMjc6CiteSV5JZ290byBvdXQ7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTE1NTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6MTEyODoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzExNTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExMzA6 CiteSXNwcmludGYocHJvY25hbWUsICIvcHJvYy9zZWxmL2ZkLyVpIiwgaW5vZGUtPmZkKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTU5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTMyOgorXklyZXQgPSByZW1vdmV4YXR0cihw cm9jbmFtZSwgbmFtZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTE2MDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTEzMzoKK15J c2F2ZXJyID0gcmV0ID09IC0xID8gZXJybm8gOiAwOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzExNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjExMzY6CiteSWZ1c2VfcmVwbHlfZXJyKHJlcSwgc2F2ZXJyKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTY4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzoxMTQxOgorXkleSV5JICAgICAgIHN0cnVjdCBmdXNlX2ZpbGVf aW5mbyAqZmlfaW4sJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwoj MTE2OTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE0MjoKK15JXkle SSAgICAgICBmdXNlX2lub190IGlub19vdXQsIG9mZl90IG9mZl9vdXQsJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE3MDogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MTE0MzoKK15JXkleSSAgICAgICBzdHJ1Y3QgZnVzZV9maWxlX2lu Zm8gKmZpX291dCwgc2l6ZV90IGxlbiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMTcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzox MTQ0OgorXkleSV5JICAgICAgIGludCBmbGFncykkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMTczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzoxMTQ2OgorXklzc2l6ZV90IHJlczskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMTc1OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzoxMTQ4OgorXklpZiAobG9fZGVidWcocmVxKSkkCgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hh cmFjdGVycwojMTE3NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE0 OToKKyAgICAgICAgICAgICAgIGZ1c2VfbG9nKEZVU0VfTE9HX0RFQlVHLCAibG9fY29weV9maWxl X3JhbmdlKGlubz0lIiBQUkl1NjQgIi9mZD0lbHUsICIKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzExNzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjExNDk6CiteSV5JZnVzZV9sb2coRlVTRV9MT0dfREVCVUcsICJsb19jb3B5X2ZpbGVf cmFuZ2UoaW5vPSUiIFBSSXU2NCAiL2ZkPSVsdSwgIiQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzExNzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjExNTA6CiteSV5JXkleSSJvZmY9JWx1LCBpbm89JSIgUFJJdTY0ICIvZmQ9JWx1LCAi JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE3ODogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE1MToKK15JXkleSV5JIm9mZj0lbHUs IHNpemU9JXpkLCBmbGFncz0weCV4KVxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMTc5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzoxMTUyOgorXkleSV5JaW5vX2luLCBmaV9pbi0+ZmgsIG9mZl9pbiwgaW5vX291dCwgZmlfb3V0 LT5maCwgb2ZmX291dCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJz CiMxMTgwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTUzOgorXkle SV5JbGVuLCBmbGFncyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTE4MjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE1NToKK15J cmVzID0gY29weV9maWxlX3JhbmdlKGZpX2luLT5maCwgJm9mZl9pbiwgZmlfb3V0LT5maCwgJm9m Zl9vdXQsIGxlbiwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MTgzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTU2OgorXkleSV5J ICAgICAgZmxhZ3MpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzExODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExNTc6CiteSWlm IChyZXMgPCAwKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMg b2YgdGhpcyBzdGF0ZW1lbnQKIzExODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjExNTc6CisgICAgICAgaWYgKHJlcyA8IDApClsuLi5dCisgICAgICAgZWxzZQpbLi4u XQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE4NTogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE1ODoKK15JXklmdXNlX3JlcGx5X2Vy cihyZXEsIC1lcnJubyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTE4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE1OToKK15J ZWxzZSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzExODc6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExNjA6CiteSV5JZnVzZV9yZXBs eV93cml0ZShyZXEsIHJlcyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTE5MjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE2NToK K15JXkkgICAgIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpJAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTE5NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MTE2NzoKK15Jb2ZmX3QgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzExOTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjExNjk6CiteSSh2b2lkKWlubzskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMTk3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzoxMTcwOgorXklyZXMgPSBsc2VlayhmaS0+ZmgsIG9mZiwgd2hlbmNlKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTk4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzoxMTcxOgorXklpZiAocmVzICE9IC0xKSQKCkVSUk9SOiBicmFj ZXMge30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzExOTg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExNzE6CisgICAgICAgaWYg KHJlcyAhPSAtMSkKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMTk5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzoxMTcyOgorXkleSWZ1c2VfcmVwbHlfbHNlZWsocmVxLCByZXMpOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMDA6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExNzM6CiteSWVsc2UkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjAxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzoxMTc0OgorXkleSWZ1c2VfcmVwbHlfZXJyKHJlcSwgZXJybm8pOyQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMDU6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExNzg6CiteSS5pbml0XkleST0gbG9faW5pdCwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjA2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTc5OgorXkkubG9va3VwXkleST0gbG9f bG9va3VwLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMDc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExODA6CiteSS5ta2Rpcl5J Xkk9IGxvX21rZGlyLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEyMDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExODE6CiteSS5t a25vZF5JXkk9IGxvX21rbm9kLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEyMDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExODI6 CiteSS5zeW1saW5rXkk9IGxvX3N5bWxpbmssJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTIxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MTE4MzoKK15JLmxpbmteSV5JPSBsb19saW5rLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjExODQ6CiteSS51bmxpbmteSV5JPSBsb191bmxpbmssJAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIxMjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MTE4NToKK15JLnJtZGlyXkleST0gbG9fcm1kaXIsJAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIxMzogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE4NjoKK15JLnJlbmFtZV5JXkk9IGxvX3JlbmFtZSwkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjE0OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTg3OgorXkkuZm9yZ2V0XkleST0gbG9fZm9y Z2V0LCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMTU6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExODg6CiteSS5mb3JnZXRfbXVs dGleST0gbG9fZm9yZ2V0X211bHRpLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEyMTY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEx ODk6CiteSS5nZXRhdHRyXkk9IGxvX2dldGF0dHIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3Vs ZCBuZXZlciB1c2UgdGFicwojMTIxNzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdo X2xsLmM6MTE5MDoKK15JLnNldGF0dHJeST0gbG9fc2V0YXR0ciwkCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjE4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzoxMTkxOgorXkkucmVhZGxpbmteST0gbG9fcmVhZGxpbmssJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIxOTogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTE5MjoKK15JLm9wZW5kaXJeST0gbG9fb3BlbmRpciwk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjIwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTkzOgorXkkucmVhZGRpcl5JPSBsb19y ZWFkZGlyLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjE6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExOTQ6CiteSS5yZWFkZGly cGx1c15JPSBsb19yZWFkZGlycGx1cywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMjIyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzox MTk1OgorXkkucmVsZWFzZWRpcl5JPSBsb19yZWxlYXNlZGlyLCQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjExOTY6CiteSS5mc3luY2Rpcl5JPSBsb19mc3luY2RpciwkCgpFUlJPUjog Y29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjI0OiBGSUxFOiB0b29scy92aXJ0 aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTk3OgorXkkuY3JlYXRlXkleST0gbG9fY3JlYXRlLCQK CkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMjU6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjExOTg6CiteSS5vcGVuXkleST0gbG9fb3Bl biwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjI2OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMTk5OgorXkkucmVsZWFzZV5JPSBs b19yZWxlYXNlLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEy Mjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMDA6CiteSS5mbHVz aF5JXkk9IGxvX2ZsdXNoLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEyMjg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMDE6Cite SS5mc3luY15JXkk9IGxvX2ZzeW5jLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEyMjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEy MDI6CiteSS5yZWFkXkleST0gbG9fcmVhZCwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMjMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzoxMjAzOgorXkkud3JpdGVfYnVmICAgICAgPSBsb193cml0ZV9idWYsJAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTIzMTogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MTIwNDoKK15JLnN0YXRmc15JXkk9IGxvX3N0YXRmcywkCgpFUlJP UjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjMyOiBGSUxFOiB0b29scy92 aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjA1OgorXkkuZmFsbG9jYXRlXkk9IGxvX2ZhbGxv Y2F0ZSwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjMzOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjA2OgorXkkuZmxvY2teSV5J PSBsb19mbG9jaywkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MjM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjA3OgorXkkuZ2V0 eGF0dHJeST0gbG9fZ2V0eGF0dHIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTIzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTIw ODoKK15JLmxpc3R4YXR0cl5JPSBsb19saXN0eGF0dHIsJAoKRVJST1I6IGNvZGUgaW5kZW50IHNo b3VsZCBuZXZlciB1c2UgdGFicwojMTIzNjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJv dWdoX2xsLmM6MTIwOToKK15JLnNldHhhdHRyXkk9IGxvX3NldHhhdHRyLCQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyMzc6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjEyMTA6CiteSS5yZW1vdmV4YXR0cl5JPSBsb19yZW1vdmV4YXR0 ciwkCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjM5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjEyOgorXkkuY29weV9maWxlX3Jh bmdlID0gbG9fY29weV9maWxlX3JhbmdlLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2 ZXIgdXNlIHRhYnMKIzEyNDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5j OjEyMTQ6CiteSS5sc2Vla15JXkk9IGxvX2xzZWVrLCQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjEyMTk6CiteSXN0cnVjdCBmdXNlX2FyZ3MgYXJncyA9IEZVU0VfQVJHU19JTklUKGFy Z2MsIGFyZ3YpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEy NDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMjA6CiteSXN0cnVj dCBmdXNlX3Nlc3Npb24gKnNlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEyNDg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMjE6 CiteSXN0cnVjdCBmdXNlX2NtZGxpbmVfb3B0cyBvcHRzOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNDk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjEyMjI6CiteSXN0cnVjdCBsb19kYXRhIGxvID0geyAuZGVidWcgPSAwLCQKCkVS Uk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNTA6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMjM6CiteSSAgICAgICAgICAgICAgICAgICAg ICAud3JpdGViYWNrID0gMCB9OyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEyNTE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMjQ6 CiteSWludCByZXQgPSAtMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMjUzOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjI2Ogor XkkvKiBEb24ndCBtYXNrIGNyZWF0aW9uIG1vZGUsIGtlcm5lbCBhbHJlYWR5IGRpZCB0aGF0ICov JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI1NDogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTIyNzoKK15JdW1hc2soMCk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI1NjogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTIyOToKK15JcHRocmVhZF9tdXRleF9pbml0KCZs by5tdXRleCwgTlVMTCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTI1NzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTIzMDoKK15J bG8ucm9vdC5uZXh0ID0gbG8ucm9vdC5wcmV2ID0gJmxvLnJvb3Q7JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI1ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MTIzMToKK15JbG8ucm9vdC5mZCA9IC0xOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjEyMzI6CiteSWxvLmNhY2hlID0gQ0FDSEVfTk9STUFMOyQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNjE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMzQ6CiteSWlmIChmdXNlX3BhcnNlX2NtZGxpbmUo JmFyZ3MsICZvcHRzKSAhPSAwKSQKCkVSUk9SOiBicmFjZXMge30gYXJlIG5lY2Vzc2FyeSBmb3Ig YWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEyNjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjEyMzQ6CisgICAgICAgaWYgKGZ1c2VfcGFyc2VfY21kbGluZSgmYXJn cywgJm9wdHMpICE9IDApClsuLi5dCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMjYyOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjM1 OgorXkleSXJldHVybiAxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRh YnMKIzEyNjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyMzY6Cite SWlmIChvcHRzLnNob3dfaGVscCkgeyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEyNjQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEy Mzc6CiteSV5JcHJpbnRmKCJ1c2FnZTogJXMgW29wdGlvbnNdIDxtb3VudHBvaW50PlxuXG4iLCBh cmd2WzBdKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjY1 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjM4OgorXkleSWZ1c2Vf Y21kbGluZV9oZWxwKCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFi cwojMTI2NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTIzOToKK15J XklmdXNlX2xvd2xldmVsX2hlbHAoKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMjY3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzox MjQwOgorXkleSXJldCA9IDA7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2Ug dGFicwojMTI2ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI0MToK K15JXklnb3RvIGVycl9vdXQxOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNl IHRhYnMKIzEyNjk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNDI6 CiteSX0gZWxzZSBpZiAob3B0cy5zaG93X3ZlcnNpb24pIHskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzoxMjQzOgorXkleSXByaW50ZigiRlVTRSBsaWJyYXJ5IHZlcnNpb24gJXNcbiIs IGZ1c2VfcGtndmVyc2lvbigpKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVz ZSB0YWJzCiMxMjcxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjQ0 OgorXkleSWZ1c2VfbG93bGV2ZWxfdmVyc2lvbigpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjEyNDU6CiteSV5JcmV0ID0gMDskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5l dmVyIHVzZSB0YWJzCiMxMjczOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwu YzoxMjQ2OgorXkleSWdvdG8gZXJyX291dDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojMTI3NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MTI0NzoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMK IzEyNzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNDk6CiteSWlm KG9wdHMubW91bnRwb2ludCA9PSBOVUxMKSB7JAoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJlZm9y ZSB0aGUgb3BlbiBwYXJlbnRoZXNpcyAnKCcKIzEyNzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjEyNDk6CisgICAgICAgaWYob3B0cy5tb3VudHBvaW50ID09IE5VTEwp IHsKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyNzc6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNTA6CiteSV5JcHJpbnRmKCJ1c2Fn ZTogJXMgW29wdGlvbnNdIDxtb3VudHBvaW50PlxuIiwgYXJndlswXSk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI3ODogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MTI1MToKK15JXklwcmludGYoIiAgICAgICAlcyAtLWhlbHBcbiIs IGFyZ3ZbMF0pOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEy Nzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNTI6CiteSV5JcmV0 ID0gMTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjgwOiBG SUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjUzOgorXkleSWdvdG8gZXJy X291dDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI4MTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI1NDoKK15JfSQKCkVSUk9S OiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyODM6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNTY6CiteSWlmIChmdXNlX29wdF9wYXJzZSgmYXJn cywgJmxvLCBsb19vcHRzLCBOVUxMKT09IC0xKSQKCkVSUk9SOiBzcGFjZXMgcmVxdWlyZWQgYXJv dW5kIHRoYXQgJz09JyAoY3R4OlZ4VykKIzEyODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjEyNTY6CisgICAgICAgaWYgKGZ1c2Vfb3B0X3BhcnNlKCZhcmdzLCAmbG8s IGxvX29wdHMsIE5VTEwpPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBh bGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTI4MzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MTI1NjoKKyAgICAgICBpZiAoZnVzZV9vcHRfcGFyc2UoJmFyZ3MsICZs bywgbG9fb3B0cywgTlVMTCk9PSAtMSkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEyODQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjEyNTc6CiteSV5JcmV0dXJuIDE7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTI4NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 MTI1OToKK15JbG8uZGVidWcgPSBvcHRzLmRlYnVnOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEyODc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjEyNjA6CiteSWxvLnJvb3QucmVmY291bnQgPSAyOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjEyNjE6CiteSWlmIChsby5zb3VyY2UpIHskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjg5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFz c3Rocm91Z2hfbGwuYzoxMjYyOgorXkleSXN0cnVjdCBzdGF0IHN0YXQ7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI5MDogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MTI2MzoKK15JXklpbnQgcmVzOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEyOTI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjEyNjU6CiteSV5JcmVzID0gbHN0YXQobG8uc291cmNlLCAmc3RhdCk7JAoK RVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI5MzogRklMRTogdG9v bHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI2NjoKK15JXklpZiAocmVzID09IC0xKSB7 JAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzEyOTQ6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNjc6CisgICAgICAgICAgICAgICAgICAgICAgIGZ1 c2VfbG9nKEZVU0VfTE9HX0VSUiwgImZhaWxlZCB0byBzdGF0IHNvdXJjZSAoXCIlc1wiKTogJW1c biIsCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjk0OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjY3OgorXkleSV5JZnVzZV9sb2co RlVTRV9MT0dfRVJSLCAiZmFpbGVkIHRvIHN0YXQgc291cmNlIChcIiVzXCIpOiAlbVxuIiwkCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjk1OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjY4OgorXkleSV5JXkkgbG8uc291cmNlKTsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjk2OiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjY5OgorXkleSV5JZXhpdCgxKTskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjk3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjcwOgorXkleSX0kCgpFUlJPUjogY29kZSBp bmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMjk4OiBGSUxFOiB0b29scy92aXJ0aW9mc2Qv cGFzc3Rocm91Z2hfbGwuYzoxMjcxOgorXkleSWlmICghU19JU0RJUihzdGF0LnN0X21vZGUpKSB7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTI5OTogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI3MjoKK15JXkleSWZ1c2VfbG9nKEZV U0VfTE9HX0VSUiwgInNvdXJjZSBpcyBub3QgYSBkaXJlY3RvcnlcbiIpOyQKCkVSUk9SOiBjb2Rl IGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMDA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9wYXNzdGhyb3VnaF9sbC5jOjEyNzM6CiteSV5JXklleGl0KDEpOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMDE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjEyNzQ6CiteSV5JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQg bmV2ZXIgdXNlIHRhYnMKIzEzMDM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9s bC5jOjEyNzY6CiteSX0gZWxzZSB7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1 c2UgdGFicwojMTMwNDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI3 NzoKK15JXklsby5zb3VyY2UgPSAiLyI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTMwNTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 MTI3ODoKK15JfSQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEz MDY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyNzk6CiteSWxvLnJv b3QuaXNfc3ltbGluayA9IGZhbHNlOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEzMDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEy ODA6CiteSWlmICghbG8udGltZW91dF9zZXQpIHskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxk IG5ldmVyIHVzZSB0YWJzCiMxMzA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hf bGwuYzoxMjgxOgorXkleSXN3aXRjaCAobG8uY2FjaGUpIHskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzA5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzoxMjgyOgorXkleSWNhc2UgQ0FDSEVfTkVWRVI6JAoKRVJST1I6IGNvZGUgaW5k ZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMxMDogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bh c3N0aHJvdWdoX2xsLmM6MTI4MzoKK15JXkleSWxvLnRpbWVvdXQgPSAwLjA7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMxMTogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI4NDoKK15JXkleSWJyZWFrOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMTM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjEyODY6CiteSV5JY2FzZSBDQUNIRV9OT1JNQUw6JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMxNDogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI4NzoKK15JXkleSWxvLnRpbWVvdXQgPSAxLjA7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMxNTogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI4ODoKK15JXkleSWJyZWFrOyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMTc6IEZJTEU6IHRvb2xzL3ZpcnRp b2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyOTA6CiteSV5JY2FzZSBDQUNIRV9BTFdBWVM6JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMxODogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI5MToKK15JXkleSWxvLnRpbWVvdXQgPSA4NjQw MC4wOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMTk6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEyOTI6CiteSV5JXklicmVhazsk CgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzIwOiBGSUxFOiB0 b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMjkzOgorXkleSX0kCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzIxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzoxMjk0OgorXkl9IGVsc2UgaWYgKGxvLnRpbWVvdXQgPCAwKSB7 JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMyMjogRklMRTog dG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTI5NToKK15JXklmdXNlX2xvZyhGVVNF X0xPR19FUlIsICJ0aW1lb3V0IGlzIG5lZ2F0aXZlICglbGYpXG4iLCQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMjM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjEyOTY6CiteSV5JXkkgbG8udGltZW91dCk7JAoKRVJST1I6IGNvZGUg aW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMyNDogRklMRTogdG9vbHMvdmlydGlvZnNk L3Bhc3N0aHJvdWdoX2xsLmM6MTI5NzoKK15JXklleGl0KDEpOyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMjU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjEyOTg6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiMxMzI3OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzox MzAwOgorXklsby5yb290LmZkID0gb3Blbihsby5zb3VyY2UsIE9fUEFUSCk7JAoKRVJST1I6IGNv ZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMyODogRklMRTogdG9vbHMvdmlydGlv ZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMwMToKK15JaWYgKGxvLnJvb3QuZmQgPT0gLTEpIHskCgpF UlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzI5OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMzAyOgorXkleSWZ1c2VfbG9nKEZVU0VfTE9H X0VSUiwgIm9wZW4oXCIlc1wiLCBPX1BBVEgpOiAlbVxuIiwkCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzMwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Ro cm91Z2hfbGwuYzoxMzAzOgorXkleSV5JIGxvLnNvdXJjZSk7JAoKRVJST1I6IGNvZGUgaW5kZW50 IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMzMTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0 aHJvdWdoX2xsLmM6MTMwNDoKK15JXklleGl0KDEpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91 bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3Vn aF9sbC5jOjEzMDU6CiteSX0kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0 YWJzCiMxMzM0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMzA3Ogor XklzZSA9IGZ1c2Vfc2Vzc2lvbl9uZXcoJmFyZ3MsICZsb19vcGVyLCBzaXplb2YobG9fb3Blciks ICZsbyk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMzNTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMwODoKK15JaWYgKHNlID09 IE5VTEwpJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0 aGlzIHN0YXRlbWVudAojMTMzNTogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MTMwODoKKyAgICAgICBpZiAoc2UgPT0gTlVMTCkKWy4uLl0KCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMzY6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjEzMDk6CiteSSAgICBnb3RvIGVycl9vdXQxOyQKCkVSUk9SOiBjb2RlIGlu ZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzMzg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9w YXNzdGhyb3VnaF9sbC5jOjEzMTE6CiteSWlmIChmdXNlX3NldF9zaWduYWxfaGFuZGxlcnMoc2Up ICE9IDApJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNzYXJ5IGZvciBhbGwgYXJtcyBvZiB0 aGlzIHN0YXRlbWVudAojMTMzODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xs LmM6MTMxMToKKyAgICAgICBpZiAoZnVzZV9zZXRfc2lnbmFsX2hhbmRsZXJzKHNlKSAhPSAwKQpb Li4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTMzOTogRklM RTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMxMjoKK15JICAgIGdvdG8gZXJy X291dDI7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM0MTog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMxNDoKK15JaWYgKGZ1c2Vf c2Vzc2lvbl9tb3VudChzZSwgb3B0cy5tb3VudHBvaW50KSAhPSAwKSQKCkVSUk9SOiBicmFjZXMg e30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzEzNDE6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEzMTQ6CisgICAgICAgaWYgKGZ1 c2Vfc2Vzc2lvbl9tb3VudChzZSwgb3B0cy5tb3VudHBvaW50KSAhPSAwKQpbLi4uXQoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM0MjogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMxNToKK15JICAgIGdvdG8gZXJyX291dDM7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM0NDogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMxNzoKK15JZnVzZV9kYWVtb25pemUob3B0cy5m b3JlZ3JvdW5kKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MzQ2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMzE5OgorXkkvKiBC bG9jayB1bnRpbCBjdHJsK2Mgb3IgZnVzZXJtb3VudCAtdSAqLyQKCkVSUk9SOiBjb2RlIGluZGVu dCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNDc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjEzMjA6CiteSWlmIChvcHRzLnNpbmdsZXRocmVhZCkkCgpFUlJPUjogYnJh Y2VzIHt9IGFyZSBuZWNlc3NhcnkgZm9yIGFsbCBhcm1zIG9mIHRoaXMgc3RhdGVtZW50CiMxMzQ3 OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMzIwOgorICAgICAgIGlm IChvcHRzLnNpbmdsZXRocmVhZCkKWy4uLl0KKyAgICAgICBlbHNlClsuLi5dCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzQ4OiBGSUxFOiB0b29scy92aXJ0aW9m c2QvcGFzc3Rocm91Z2hfbGwuYzoxMzIxOgorXkleSXJldCA9IGZ1c2Vfc2Vzc2lvbl9sb29wKHNl KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMxMzQ5OiBGSUxF OiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMzIyOgorXkllbHNlJAoKRVJST1I6 IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM1MDogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMyMzoKK15JXklyZXQgPSBmdXNlX3Nlc3Npb25fbG9v cF9tdChzZSwgb3B0cy5jbG9uZV9mZCk7JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZl ciB1c2UgdGFicwojMTM1MjogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6 MTMyNToKK15JZnVzZV9zZXNzaW9uX3VubW91bnQoc2UpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBz aG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNTQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhy b3VnaF9sbC5jOjEzMjc6CiteSWZ1c2VfcmVtb3ZlX3NpZ25hbF9oYW5kbGVycyhzZSk7JAoKRVJS T1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM1NjogRklMRTogdG9vbHMv dmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMyOToKK15JZnVzZV9zZXNzaW9uX2Rlc3Ryb3ko c2UpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzEzNTg6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEzMzE6CiteSWZyZWUob3B0cy5t b3VudHBvaW50KTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MzU5OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMzMyOgorXklmdXNl X29wdF9mcmVlX2FyZ3MoJmFyZ3MpOyQKCkVSUk9SOiBjb2RlIGluZGVudCBzaG91bGQgbmV2ZXIg dXNlIHRhYnMKIzEzNjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjEz MzQ6CiteSWlmIChsby5yb290LmZkID49IDApJAoKRVJST1I6IGJyYWNlcyB7fSBhcmUgbmVjZXNz YXJ5IGZvciBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVudAojMTM2MTogRklMRTogdG9vbHMvdmly dGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMzNDoKKyAgICAgICBpZiAobG8ucm9vdC5mZCA+PSAw KQpbLi4uXQoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTM2Mjog RklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6MTMzNToKK15JXkljbG9zZShs by5yb290LmZkKTskCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMx MzY0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvcGFzc3Rocm91Z2hfbGwuYzoxMzM3OgorXklyZXR1 cm4gcmV0ID8gMSA6IDA7JAoKdG90YWw6IDk1NCBlcnJvcnMsIDMwIHdhcm5pbmdzLCAxMzM4IGxp bmVzIGNoZWNrZWQKClBhdGNoIDUvMTExIGhhcyBzdHlsZSBwcm9ibGVtcywgcGxlYXNlIHJldmll dy4gIElmIGFueSBvZiB0aGVzZSBlcnJvcnMKYXJlIGZhbHNlIHBvc2l0aXZlcyByZXBvcnQgdGhl bSB0byB0aGUgbWFpbnRhaW5lciwgc2VlCkNIRUNLUEFUQ0ggaW4gTUFJTlRBSU5FUlMuCgo2LzEx MSBDaGVja2luZyBjb21taXQgZmI0NzQ4YzZhNWYyICh2aXJ0aW9mc2Q6IFRyaW0gZG93biBpbXBv cnRlZCBmaWxlcykKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBuZXZlciB1c2UgdGFicwojMTAz OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvYnVmZmVyLmM6MTg0OgorXkleSXJldHVybiBmdXNlX2J1 Zl9mZF90b19mZChkc3QsIGRzdF9vZmYsIHNyYywgc3JjX29mZiwgbGVuKTskCgpFUlJPUjogY29k ZSBpbmRlbnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiMzOTA6IEZJTEU6IHRvb2xzL3ZpcnRpb2Zz ZC9mdXNlX2xvd2xldmVsLmM6MTc5OgorXklhYm9ydCgpOyAvKiB2aXJ0aW8gc2hvdWxkIGhhdmUg dGFrZW4gaXQgYmVmb3JlIGhlcmUgKi8kCgpFUlJPUjogY29kZSBpbmRlbnQgc2hvdWxkIG5ldmVy IHVzZSB0YWJzCiM1MjE6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6NDc1 OgorXklhYm9ydCgpOyAvKiBXaWxsIGhhdmUgdGFrZW4gdmhvc3QgcGF0aCAqLyQKCkVSUk9SOiBj b2RlIGluZGVudCBzaG91bGQgbmV2ZXIgdXNlIHRhYnMKIzc3MDogRklMRTogdG9vbHMvdmlydGlv ZnNkL2Z1c2VfbG93bGV2ZWwuYzoxMDQ2OgorXkleSXJldHVybjskCgpFUlJPUjogY29kZSBpbmRl bnQgc2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4NzQ6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNl X2xvd2xldmVsLmM6MjE0MjoKK15JaW4gPSBidWYtPm1lbTskCgpFUlJPUjogY29kZSBpbmRlbnQg c2hvdWxkIG5ldmVyIHVzZSB0YWJzCiM4ODM6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xv d2xldmVsLmM6MjE2NDoKK15JXklyZXR1cm47JAoKRVJST1I6IGNvZGUgaW5kZW50IHNob3VsZCBu ZXZlciB1c2UgdGFicwojODkxOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjIxNzE6CiteSXJlcS0+Y2ggPSBjaDskCgp0b3RhbDogNyBlcnJvcnMsIDAgd2FybmluZ3MsIDE0 MjIgbGluZXMgY2hlY2tlZAoKUGF0Y2ggNi8xMTEgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2Ug cmV2aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9y dCB0aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4K CjcvMTExIENoZWNraW5nIGNvbW1pdCAwYmVlMDE3Y2NmZjUgKHZpcnRpb2ZzZDogRm9ybWF0IGlt cG9ydGVkIGZpbGVzIHRvIHFlbXUgc3R5bGUpCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBh IGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMzMTUxOiBGSUxFOiB0b29scy92aXJ0aW9m c2QvZnVzZV9jb21tb24uaDo3MjA6CisgICAgKChzdHJ1Y3QgZnVzZV9idWZ2ZWMpeyAvKiAuY291 bnQ9ICovIDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoKV0FSTklORzogQmxvY2sgY29t bWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzMxNTI6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjcyMToKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIC5pZHggPSAgKi8gMCwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCgpXQVJOSU5H OiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMzE1 MzogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzIyOgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogLm9mZiA9ICAqLyAwLCAvKiAuYnVmID0gICovICAgICAgICAgICAg IFwKCldBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0 ZSBsaW5lCiMzMTU0OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3MjM6Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICB7IC8qIFswXSA9ICovIHsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAoKV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBv biBhIHNlcGFyYXRlIGxpbmUKIzMxNTU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1v bi5oOjcyNDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuc2l6ZSA9ICAqLyAo c2l6ZV9fKSwgICAgICAgICAgICAgICBcCgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBs ZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMzE1NjogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfY29tbW9uLmg6NzI1OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC5m bGFncyA9ICovIChlbnVtIGZ1c2VfYnVmX2ZsYWdzKTAsIFwKCldBUk5JTkc6IEJsb2NrIGNvbW1l bnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMzMTU3OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3MjY6CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogLm1lbSA9ICAgKi8gTlVMTCwgICAgICAgICAgICAgICAgICAgXAoKV0FSTklORzog QmxvY2sgY29tbWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzMxNTg6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2NvbW1vbi5oOjcyNzoKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvKiAuZmQgPSAgICAqLyAtMSwgICAgICAgICAgICAgICAgICAgICBc CgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUg bGluZQojMzE1OTogRklMRTogdG9vbHMvdmlydGlvZnNkL2Z1c2VfY29tbW9uLmg6NzI4OgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC5wb3MgPSAgICovIDAsICAgICAgICAgICAg ICAgICAgICAgIFwKCldBUk5JTkc6IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3Vs ZCBiZSBhdm9pZGVkCiMzMjA4OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9jb21tb24uaDo3 OTk6CisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKCkVSUk9SOiBVc2Ugb2Ygdm9sYXRpbGUgaXMgdXN1YWxseSB3cm9uZywgcGxl YXNlIGFkZCBhIGNvbW1lbnQKIzMzMTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2kuaDo0 NDoKKyAgICB2b2xhdGlsZSBpbnQgZXhpdGVkOwoKRVJST1I6IHNwYWNlcyByZXF1aXJlZCBhcm91 bmQgdGhhdCAnKicgKGN0eDpXeFYpCiMzNTU2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9s b3dsZXZlbC5jOjM2OgorICAgICAgICBjb25zdCB0eXBlb2YoKCh0eXBlICopMCktPm1lbWJlcikg Kl9fbXB0ciA9IChwdHIpOyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCgpFUlJPUjogdXNlIHFlbXVfcmVhbF9ob3N0X3BhZ2Vfc2l6ZSBpbnN0ZWFkIG9mIGdl dHBhZ2VzaXplKCkKIzM1NzI6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6 NDk6CisgICAgcGFnZXNpemUgPSBnZXRwYWdlc2l6ZSgpOwoKRVJST1I6IHVzZSBxZW11X3JlYWxf aG9zdF9wYWdlX3NpemUgaW5zdGVhZCBvZiBnZXRwYWdlc2l6ZSgpCiM2MjI4OiBGSUxFOiB0b29s cy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE2ODM6CisgICAgICAgICAgICAgICAgRlVTRV9E RUZBVUxUX01BWF9QQUdFU19QRVJfUkVRICogZ2V0cGFnZXNpemUoKSArCgpFUlJPUjogTWFjcm9z IHdpdGggY29tcGxleCB2YWx1ZXMgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHBhcmVudGhlc2lzCiM2 Mjk2OiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5jOjE3MTM6CisjZGVmaW5l IExMX1NFVF9ERUZBVUxUKGNvbmQsIGNhcCkgICAgICAgICAgICAgXAorICAgIGlmICgoY29uZCkg JiYgKHNlLT5jb25uLmNhcGFibGUgJiAoY2FwKSkpIFwKKyAgICAgICAgc2UtPmNvbm4ud2FudCB8 PSAoY2FwKQoKRVJST1I6IHVzZSBxZW11X3JlYWxfaG9zdF9wYWdlX3NpemUgaW5zdGVhZCBvZiBn ZXRwYWdlc2l6ZSgpCiM2MzcwOiBGSUxFOiB0b29scy92aXJ0aW9mc2QvZnVzZV9sb3dsZXZlbC5j OjE3NjM6CisgICAgICAgIG91dGFyZy5tYXhfcGFnZXMgPSAoc2UtPmNvbm4ubWF4X3dyaXRlIC0g MSkgLyBnZXRwYWdlc2l6ZSgpICsgMTsKCkVSUk9SOiB1c2UgcWVtdV9yZWFsX2hvc3RfcGFnZV9z aXplIGluc3RlYWQgb2YgZ2V0cGFnZXNpemUoKQojNzQ4OTogRklMRTogdG9vbHMvdmlydGlvZnNk L2Z1c2VfbG93bGV2ZWwuYzoyNDM2OgorICAgIHNlLT5idWZzaXplID0gRlVTRV9NQVhfTUFYX1BB R0VTICogZ2V0cGFnZXNpemUoKSArIEZVU0VfQlVGRkVSX0hFQURFUl9TSVpFOwoKRVJST1I6IGNv bnNpZGVyIHVzaW5nIHFlbXVfc3RydG91bCBpbiBwcmVmZXJlbmNlIHRvIHN0cnRvdWwKIzc3MDc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MjU2NzoKKyAgICAgICAgdW5z aWduZWQgbG9uZyB2YWwgPSBzdHJ0b3VsKHMsICZlbmQsIDApOwoKRVJST1I6IE1hY3JvcyB3aXRo IGNvbXBsZXggdmFsdWVzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNpcwojMTE4ODc6 IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9oZWxwZXIuYzoyNjA6CisjZGVmaW5lIExMX0VOQUJMRShj b25kLCBjYXApIFwKKyAgICBpZiAoY29uZCkgICAgICAgICAgICAgICAgXAorICAgICAgICBjb25u LT53YW50IHw9IChjYXApCgpFUlJPUjogTWFjcm9zIHdpdGggY29tcGxleCB2YWx1ZXMgc2hvdWxk IGJlIGVuY2xvc2VkIGluIHBhcmVudGhlc2lzCiMxMTg5MDogRklMRTogdG9vbHMvdmlydGlvZnNk L2hlbHBlci5jOjI2MzoKKyNkZWZpbmUgTExfRElTQUJMRShjb25kLCBjYXApIFwKKyAgICBpZiAo Y29uZCkgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY29ubi0+d2FudCAmPSB+KGNhcCkKCldB Uk5JTkc6IGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkCiMx MjA4ODogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Njc6CisjaWYgZGVm aW5lZChfX0dOVUNfXykgJiYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK CnRvdGFsOiAxMCBlcnJvcnMsIDExIHdhcm5pbmdzLCAxNDAzOCBsaW5lcyBjaGVja2VkCgpQYXRj aCA3LzExMSBoYXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFzZSByZXZpZXcuICBJZiBhbnkgb2YgdGhl c2UgZXJyb3JzCmFyZSBmYWxzZSBwb3NpdGl2ZXMgcmVwb3J0IHRoZW0gdG8gdGhlIG1haW50YWlu ZXIsIHNlZQpDSEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgoKOC8xMTEgQ2hlY2tpbmcgY29tbWl0 IDEyZGEwODI5ZjBhMSAodmlydGlvZnNkOiByZW1vdmUgbW91bnRwb2ludCBkdW1teSBhcmd1bWVu dCkKOS8xMTEgQ2hlY2tpbmcgY29tbWl0IDYwOWM0OGNhMzQ2NCAodmlydGlvZnNkOiByZW1vdmUg dW51c2VkIG5vdGlmeSByZXBseSBzdXBwb3J0KQoxMC8xMTEgQ2hlY2tpbmcgY29tbWl0IDI3MmYw YWVmNzZiNSAodmlydGlvZnNkOiBSZW1vdmUgdW51c2VkIGVudW0gZnVzZV9idWZfY29weV9mbGFn cykKMTEvMTExIENoZWNraW5nIGNvbW1pdCBmZjllY2NkMDg2ZWIgKHZpcnRpb2ZzZDogRml4IGZ1 c2VfZGFlbW9uaXplIGlnbm9yZWQgcmV0dXJuIHZhbHVlcykKMTIvMTExIENoZWNraW5nIGNvbW1p dCBlYzA1YTUxYmY1MWQgKHZpcnRpb2ZzZDogRml4IGNvbW1vbiBoZWFkZXIgYW5kIGRlZmluZSBm b3IgUUVNVSBidWlsZHMpCjEzLzExMSBDaGVja2luZyBjb21taXQgM2QzYmFhNjBhMTEwICh2aXJ0 aW9mc2Q6IFRyaW0gb3V0IGNvbXBhdGliaWxpdHkgY29kZSkKRVJST1I6IHVzZSBxZW11X3JlYWxf aG9zdF9wYWdlX3NpemUgaW5zdGVhZCBvZiBnZXRwYWdlc2l6ZSgpCiM0MTI6IEZJTEU6IHRvb2xz L3ZpcnRpb2ZzZC9mdXNlX2xvd2xldmVsLmM6MTYxNDoKKyAgICAgICAgc2l6ZV90IG1heF9idWZz aXplID0gRlVTRV9ERUZBVUxUX01BWF9QQUdFU19QRVJfUkVRICogZ2V0cGFnZXNpemUoKSArCgp0 b3RhbDogMSBlcnJvcnMsIDAgd2FybmluZ3MsIDQ4NiBsaW5lcyBjaGVja2VkCgpQYXRjaCAxMy8x MTEgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVy cm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBtYWludGFpbmVyLCBz ZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KCjE0LzExMSBDaGVja2luZyBjb21taXQgNTlm MmMwODlhYzg5ICh2aXRyaW9mc2QvcGFzc3Rocm91Z2hfbGw6IGZpeCBmYWxsb2NhdGUoKSBpZmRl ZnMpCjE1LzExMSBDaGVja2luZyBjb21taXQgNzI3MDc3YTJjYTlmICh2aXJ0aW9mc2Q6IE1ha2Ug ZnN5bmMgd29yayBldmVuIGlmIG9ubHkgaW5vZGUgaXMgcGFzc2VkIGluKQoxNi8xMTEgQ2hlY2tp bmcgY29tbWl0IDhkZDQ1MmUzMTIzNyAodmlydGlvZnNkOiBBZGQgb3B0aW9ucyBmb3IgdmlydGlv KQoxNy8xMTEgQ2hlY2tpbmcgY29tbWl0IDM0YmI0OTg5NzBlNCAodmlydGlvZnNkOiBhZGQgLW8g c291cmNlPVBBVEggdG8gaGVscCBvdXRwdXQpCjE4LzExMSBDaGVja2luZyBjb21taXQgYjRiNDRj MDk3ZjM0ICh2aXJ0aW9mc2Q6IE9wZW4gdmhvc3QgY29ubmVjdGlvbiBpbnN0ZWFkIG9mIG1vdW50 aW5nKQpXQVJOSU5HOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRlZCBmaWxlKHMpLCBkb2VzIE1BSU5U QUlORVJTIG5lZWQgdXBkYXRpbmc/CiMxMjA6IApuZXcgZmlsZSBtb2RlIDEwMDY0NAoKdG90YWw6 IDAgZXJyb3JzLCAxIHdhcm5pbmdzLCAxOTIgbGluZXMgY2hlY2tlZAoKUGF0Y2ggMTgvMTExIGhh cyBzdHlsZSBwcm9ibGVtcywgcGxlYXNlIHJldmlldy4gIElmIGFueSBvZiB0aGVzZSBlcnJvcnMK YXJlIGZhbHNlIHBvc2l0aXZlcyByZXBvcnQgdGhlbSB0byB0aGUgbWFpbnRhaW5lciwgc2VlCkNI RUNLUEFUQ0ggaW4gTUFJTlRBSU5FUlMuCjE5LzExMSBDaGVja2luZyBjb21taXQgMDU1NDIxMzk4 NmRkICh2aXJ0aW9mc2Q6IFN0YXJ0IHdpcmluZyB1cCB2aG9zdC11c2VyKQoyMC8xMTEgQ2hlY2tp bmcgY29tbWl0IDkzNzk0NjBmMWUzYSAodmlydGlvZnNkOiBBZGQgbWFpbiB2aXJ0aW8gbG9vcCkK MjEvMTExIENoZWNraW5nIGNvbW1pdCA1ZTA5MjczM2VjOTggKHZpcnRpb2ZzZDogZ2V0L3NldCBm ZWF0dXJlcyBjYWxsYmFja3MpCjIyLzExMSBDaGVja2luZyBjb21taXQgNDNhMGYwNGUzMGIzICh2 aXJ0aW9mc2Q6IFN0YXJ0IHF1ZXVlIHRocmVhZHMpCjIzLzExMSBDaGVja2luZyBjb21taXQgYWM0 M2NkODU5ZTY3ICh2aXJ0aW9mc2Q6IFBvbGwga2lja19mZCBmb3IgcXVldWUpCjI0LzExMSBDaGVj a2luZyBjb21taXQgNjdiMjkxNmU2MGJlICh2aXJ0aW9mc2Q6IFN0YXJ0IHJlYWRpbmcgY29tbWFu ZHMgZnJvbSBxdWV1ZSkKMjUvMTExIENoZWNraW5nIGNvbW1pdCAyYWFkMzlkOGM4NWMgKHZpcnRp b2ZzZDogU2VuZCByZXBsaWVzIHRvIG1lc3NhZ2VzKQoyNi8xMTEgQ2hlY2tpbmcgY29tbWl0IDk0 NmVmODI2OTQxNiAodmlydGlvZnNkOiBLZWVwIHRyYWNrIG9mIHJlcGxpZXMpCjI3LzExMSBDaGVj a2luZyBjb21taXQgMGQ0ZTYyYjRkZDUxICh2aXJ0aW9mc2Q6IEFkZCBNYWtlZmlsZSB3aXJpbmcg Zm9yIHZpcnRpb2ZzZCBjb250cmliKQpXQVJOSU5HOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRlZCBm aWxlKHMpLCBkb2VzIE1BSU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/CiM3MDogCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cgp0b3RhbDogMCBlcnJvcnMsIDEgd2FybmluZ3MsIDQ0IGxpbmVzIGNoZWNrZWQK ClBhdGNoIDI3LzExMSBoYXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFzZSByZXZpZXcuICBJZiBhbnkg b2YgdGhlc2UgZXJyb3JzCmFyZSBmYWxzZSBwb3NpdGl2ZXMgcmVwb3J0IHRoZW0gdG8gdGhlIG1h aW50YWluZXIsIHNlZQpDSEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgoyOC8xMTEgQ2hlY2tpbmcg Y29tbWl0IGY4MjdjYzliNmNhYSAodmlydGlvZnNkOiBGYXN0IHBhdGggZm9yIHZpcnRpbyByZWFk KQoyOS8xMTEgQ2hlY2tpbmcgY29tbWl0IGJhZDExNTFkZDZkNiAodmlydGlvZnNkOiBhZGQgLS1m ZD1GRE5VTSBmZCBwYXNzaW5nIG9wdGlvbikKMzAvMTExIENoZWNraW5nIGNvbW1pdCBhYmIxZGI0 Mjk5ZjIgKHZpcnRpb2ZzZDogbWFrZSAtZiAoZm9yZWdyb3VuZCkgdGhlIGRlZmF1bHQpCjMxLzEx MSBDaGVja2luZyBjb21taXQgYjg5MWVmODU4MzBlICh2aXJ0aW9mc2Q6IGFkZCB2aG9zdC11c2Vy Lmpzb24gZmlsZSkKV0FSTklORzogYWRkZWQsIG1vdmVkIG9yIGRlbGV0ZWQgZmlsZShzKSwgZG9l cyBNQUlOVEFJTkVSUyBuZWVkIHVwZGF0aW5nPwojNDE6IApuZXcgZmlsZSBtb2RlIDEwMDY0NAoK dG90YWw6IDAgZXJyb3JzLCAxIHdhcm5pbmdzLCAxOSBsaW5lcyBjaGVja2VkCgpQYXRjaCAzMS8x MTEgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVy cm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBtYWludGFpbmVyLCBz ZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KMzIvMTExIENoZWNraW5nIGNvbW1pdCA1MmZk NWNkZWRhNzEgKHZpcnRpb2ZzZDogYWRkIC0tcHJpbnQtY2FwYWJpbGl0aWVzIG9wdGlvbikKMzMv MTExIENoZWNraW5nIGNvbW1pdCAzZTFjMjk0MWM4MWYgKHZpcnRpb2ZzOiBBZGQgbWFpbnRhaW5l cnMgZW50cnkpCjM0LzExMSBDaGVja2luZyBjb21taXQgNjIzN2MyN2FmNzFmICh2aXJ0aW9mc2Q6 IHBhc3N0aHJvdWdoX2xsOiBjcmVhdGUgbmV3IGZpbGVzIGluIGNhbGxlcidzIGNvbnRleHQpCjM1 LzExMSBDaGVja2luZyBjb21taXQgYzQ1ZWEwN2Y1OTMzICh2aXJ0aW9mc2Q6IHBhc3N0aHJvdWdo X2xsOiBhZGQgbG9fbWFwIGZvciBpbm8vZmggaW5kaXJlY3Rpb24pCkVSUk9SOiBzdG9yYWdlIGNs YXNzIHNob3VsZCBiZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBkZWNsYXJhdGlvbgojNTA6IEZJ TEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE0ODoKK19fYXR0cmlidXRlX18o KHVudXNlZCkpIHN0YXRpYyB2b2lkIGxvX21hcF9pbml0KHN0cnVjdCBsb19tYXAgKm1hcCkKCkVS Uk9SOiBzdG9yYWdlIGNsYXNzIHNob3VsZCBiZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBkZWNs YXJhdGlvbgojNTc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE1NToK K19fYXR0cmlidXRlX18oKHVudXNlZCkpIHN0YXRpYyB2b2lkIGxvX21hcF9kZXN0cm95KHN0cnVj dCBsb19tYXAgKm1hcCkKCkVSUk9SOiBzdG9yYWdlIGNsYXNzIHNob3VsZCBiZSBhdCB0aGUgYmVn aW5uaW5nIG9mIHRoZSBkZWNsYXJhdGlvbgojODg6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjE4NjoKK19fYXR0cmlidXRlX18oKHVudXNlZCkpIHN0YXRpYyBzdHJ1Y3Qg bG9fbWFwX2VsZW0gKgoKRVJST1I6IHN0b3JhZ2UgY2xhc3Mgc2hvdWxkIGJlIGF0IHRoZSBiZWdp bm5pbmcgb2YgdGhlIGRlY2xhcmF0aW9uCiMxMDU6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjIwMzoKK19fYXR0cmlidXRlX18oKHVudXNlZCkpIHN0YXRpYyBzdHJ1Y3Qg bG9fbWFwX2VsZW0gKgoKRVJST1I6IHN0b3JhZ2UgY2xhc3Mgc2hvdWxkIGJlIGF0IHRoZSBiZWdp bm5pbmcgb2YgdGhlIGRlY2xhcmF0aW9uCiMxMjc6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjIyNToKK19fYXR0cmlidXRlX18oKHVudXNlZCkpIHN0YXRpYyBzdHJ1Y3Qg bG9fbWFwX2VsZW0gKgoKRVJST1I6IHN0b3JhZ2UgY2xhc3Mgc2hvdWxkIGJlIGF0IHRoZSBiZWdp bm5pbmcgb2YgdGhlIGRlY2xhcmF0aW9uCiMxMzk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNz dGhyb3VnaF9sbC5jOjIzNzoKK19fYXR0cmlidXRlX18oKHVudXNlZCkpIHN0YXRpYyB2b2lkIGxv X21hcF9yZW1vdmUoc3RydWN0IGxvX21hcCAqbWFwLAoKdG90YWw6IDYgZXJyb3JzLCAwIHdhcm5p bmdzLCAxMzYgbGluZXMgY2hlY2tlZAoKUGF0Y2ggMzUvMTExIGhhcyBzdHlsZSBwcm9ibGVtcywg cGxlYXNlIHJldmlldy4gIElmIGFueSBvZiB0aGVzZSBlcnJvcnMKYXJlIGZhbHNlIHBvc2l0aXZl cyByZXBvcnQgdGhlbSB0byB0aGUgbWFpbnRhaW5lciwgc2VlCkNIRUNLUEFUQ0ggaW4gTUFJTlRB SU5FUlMuCgozNi8xMTEgQ2hlY2tpbmcgY29tbWl0IDM4OTMzY2QyMzJjZCAodmlydGlvZnNkOiBw YXNzdGhyb3VnaF9sbDogYWRkIGlub19tYXAgdG8gaGlkZSBsb19pbm9kZSBwb2ludGVycykKMzcv MTExIENoZWNraW5nIGNvbW1pdCBjNTQ5NGI0YjJjYTkgKHZpcnRpb2ZzZDogcGFzc3Rocm91Z2hf bGw6IGFkZCBkaXJwX21hcCB0byBoaWRlIGxvX2RpcnAgcG9pbnRlcnMpCjM4LzExMSBDaGVja2lu ZyBjb21taXQgYmM0NTVhNzgzZGZlICh2aXJ0aW9mc2Q6IHBhc3N0aHJvdWdoX2xsOiBhZGQgZmRf bWFwIHRvIGhpZGUgZmlsZSBkZXNjcmlwdG9ycykKMzkvMTExIENoZWNraW5nIGNvbW1pdCBmMDIz OTkyZWZhYjQgKHZpcnRpb2ZzZDogcGFzc3Rocm91Z2hfbGw6IGFkZCBmYWxsYmFjayBmb3IgcmFj eSBvcHMpCjQwLzExMSBDaGVja2luZyBjb21taXQgMmI2NDgyNTFkMmU3ICh2aXJ0aW9mc2Q6IHZh bGlkYXRlIHBhdGggY29tcG9uZW50cykKNDEvMTExIENoZWNraW5nIGNvbW1pdCA1ZmIyMWI2YmY0 NDYgKHZpcnRpb2ZzZDogUGx1bWIgZnVzZV9idWZ2ZWMgdGhyb3VnaCB0byBkb193cml0ZV9idWYp CjQyLzExMSBDaGVja2luZyBjb21taXQgZmJhODAxYTJlMTQ0ICh2aXJ0aW9mc2Q6IFBhc3Mgd3Jp dGUgaW92J3MgYWxsIHRoZSB3YXkgdGhyb3VnaCkKNDMvMTExIENoZWNraW5nIGNvbW1pdCA2Mjk3 Zjc3ZjNkYjMgKHZpcnRpb2ZzZDogYWRkIGZ1c2VfbWJ1Zl9pdGVyIEFQSSkKNDQvMTExIENoZWNr aW5nIGNvbW1pdCAxYjAzZTA4MzgyMDIgKHZpcnRpb2ZzZDogdmFsaWRhdGUgaW5wdXQgYnVmZmVy IHNpemVzIGluIGRvX3dyaXRlX2J1ZigpKQo0NS8xMTEgQ2hlY2tpbmcgY29tbWl0IDkxYjA4MjNh ZDdjNiAodmlydGlvZnNkOiBjaGVjayBpbnB1dCBidWZmZXIgc2l6ZSBpbiBmdXNlX2xvd2xldmVs LmMgb3BzKQo0Ni8xMTEgQ2hlY2tpbmcgY29tbWl0IGE3NWM1OTY4MTVmMiAodmlydGlvZnNkOiBw cmV2ZW50ICIuLiIgZXNjYXBlIGluIGxvX2RvX2xvb2t1cCgpKQo0Ny8xMTEgQ2hlY2tpbmcgY29t bWl0IDM4ZTZhOWY1N2Y1YiAodmlydGlvZnNkOiBwcmV2ZW50ICIuLiIgZXNjYXBlIGluIGxvX2Rv X3JlYWRkaXIoKSkKNDgvMTExIENoZWNraW5nIGNvbW1pdCBhZjA4MTVkOThjYzMgKHZpcnRpb2Zz ZDogdXNlIC9wcm9jL3NlbGYvZmQvIE9fUEFUSCBmaWxlIGRlc2NyaXB0b3IpCjQ5LzExMSBDaGVj a2luZyBjb21taXQgYmJlNWZlYmMzNzJlICh2aXJ0aW9mc2Q6IHNhbmRib3ggbW91bnQgbmFtZXNw YWNlKQo1MC8xMTEgQ2hlY2tpbmcgY29tbWl0IDFhMTkzM2I3YjkyOSAodmlydGlvZnNkOiBtb3Zl IHRvIGFuIGVtcHR5IG5ldHdvcmsgbmFtZXNwYWNlKQo1MS8xMTEgQ2hlY2tpbmcgY29tbWl0IDBh NjE4MTMxOGUyZCAodmlydGlvZnNkOiBtb3ZlIHRvIGEgbmV3IHBpZCBuYW1lc3BhY2UpCjUyLzEx MSBDaGVja2luZyBjb21taXQgNDA4OTRmNTlhNzkyICh2aXJ0aW9mc2Q6IGFkZCBzZWNjb21wIHdo aXRlbGlzdCkKV0FSTklORzogYWRkZWQsIG1vdmVkIG9yIGRlbGV0ZWQgZmlsZShzKSwgZG9lcyBN QUlOVEFJTkVSUyBuZWVkIHVwZGF0aW5nPwojODM6IApuZXcgZmlsZSBtb2RlIDEwMDY0NAoKV0FS TklORzogYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRlZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzEw NjogRklMRTogdG9vbHMvdmlydGlvZnNkL3NlY2NvbXAuYzoxOToKKyNpZiAhZGVmaW5lZChfX1NO Ul9wcG9sbCkgJiYgZGVmaW5lZChfX1NOUl9icmspCgpXQVJOSU5HOiBhcmNoaXRlY3R1cmUgc3Bl Y2lmaWMgZGVmaW5lcyBzaG91bGQgYmUgYXZvaWRlZAojMTA3OiBGSUxFOiB0b29scy92aXJ0aW9m c2Qvc2VjY29tcC5jOjIwOgorI2lmZGVmIF9fTlJfcHBvbGwKCldBUk5JTkc6IGFyY2hpdGVjdHVy ZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkCiMxMjE6IEZJTEU6IHRvb2xzL3Zp cnRpb2ZzZC9zZWNjb21wLmM6MzQ6CisjaWZkZWYgX19OUl9jbG9uZTMKCldBUk5JTkc6IGFyY2hp dGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkCiMxODE6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9zZWNjb21wLmM6OTQ6CisjaWZkZWYgX19OUl9zZXRyZXNnaWQzMgoKV0FS TklORzogYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRlZmluZXMgc2hvdWxkIGJlIGF2b2lkZWQKIzE4 NDogRklMRTogdG9vbHMvdmlydGlvZnNkL3NlY2NvbXAuYzo5NzoKKyNpZmRlZiBfX05SX3NldHJl c3VpZDMyCgp0b3RhbDogMCBlcnJvcnMsIDYgd2FybmluZ3MsIDIwNSBsaW5lcyBjaGVja2VkCgpQ YXRjaCA1Mi8xMTEgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55IG9m IHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBtYWlu dGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KNTMvMTExIENoZWNraW5nIGNv bW1pdCA2Nzg4MWE1NTFkNzcgKHZpcnRpb2ZzZDogUGFyc2UgZmxhZyBGVVNFX1dSSVRFX0tJTExf UFJJVikKNTQvMTExIENoZWNraW5nIGNvbW1pdCA3NGMwNmJlNTFkYTUgKHZpcnRpb2ZzZDogY2Fw LW5nIGhlbHBlcnMpCkVSUk9SOiBkbyBub3QgaW5pdGlhbGlzZSBzdGF0aWNzIHRvIDAgb3IgTlVM TAojNTk6IEZJTEU6IHRvb2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE0ODoKK3N0YXRp YyBfX3RocmVhZCBib29sIGNhcF9sb2FkZWQgPSAwOwoKdG90YWw6IDEgZXJyb3JzLCAwIHdhcm5p bmdzLCAxMjQgbGluZXMgY2hlY2tlZAoKUGF0Y2ggNTQvMTExIGhhcyBzdHlsZSBwcm9ibGVtcywg cGxlYXNlIHJldmlldy4gIElmIGFueSBvZiB0aGVzZSBlcnJvcnMKYXJlIGZhbHNlIHBvc2l0aXZl cyByZXBvcnQgdGhlbSB0byB0aGUgbWFpbnRhaW5lciwgc2VlCkNIRUNLUEFUQ0ggaW4gTUFJTlRB SU5FUlMuCgo1NS8xMTEgQ2hlY2tpbmcgY29tbWl0IDE1NDg0ODNhZGQ4YyAodmlydGlvZnNkOiBE cm9wIENBUF9GU0VUSUQgaWYgY2xpZW50IGFza2VkIGZvciBpdCkKNTYvMTExIENoZWNraW5nIGNv bW1pdCBiMzRlZjQ3NzhhY2EgKHZpcnRpb2ZzZDogc2V0IG1heGltdW0gUkxJTUlUX05PRklMRSBs aW1pdCkKNTcvMTExIENoZWNraW5nIGNvbW1pdCAyODA5N2FkMWRmNzkgKHZpcnRpb2ZzZDogZml4 IGxpYmZ1c2UgaW5mb3JtYXRpb24gbGVha3MpCjU4LzExMSBDaGVja2luZyBjb21taXQgOWRmZDgw MzczZjIwIChkb2NzOiBBZGQgZG9jcy90b29scykKV0FSTklORzogYWRkZWQsIG1vdmVkIG9yIGRl bGV0ZWQgZmlsZShzKSwgZG9lcyBNQUlOVEFJTkVSUyBuZWVkIHVwZGF0aW5nPwojNjA6IApuZXcg ZmlsZSBtb2RlIDEwMDY0NAoKdG90YWw6IDAgZXJyb3JzLCAxIHdhcm5pbmdzLCA2MCBsaW5lcyBj aGVja2VkCgpQYXRjaCA1OC8xMTEgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAg SWYgYW55IG9mIHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRv IHRoZSBtYWludGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KNTkvMTExIENo ZWNraW5nIGNvbW1pdCBiMmNiZGViZGZhNzAgKHZpcnRpb2ZzZDogYWRkIHNlY3VyaXR5IGd1aWRl IGRvY3VtZW50KQpXQVJOSU5HOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRlZCBmaWxlKHMpLCBkb2Vz IE1BSU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/CiMyNjogCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cgp0 b3RhbDogMCBlcnJvcnMsIDEgd2FybmluZ3MsIDEyMyBsaW5lcyBjaGVja2VkCgpQYXRjaCA1OS8x MTEgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVy cm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBtYWludGFpbmVyLCBz ZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KNjAvMTExIENoZWNraW5nIGNvbW1pdCBlZDhj NDg5ZmZjYzYgKHZpcnRpb2ZzZDogYWRkIC0tc3lzbG9nIGNvbW1hbmQtbGluZSBvcHRpb24pCkVS Uk9SOiBkbyBub3QgaW5pdGlhbGlzZSBzdGF0aWNzIHRvIDAgb3IgTlVMTAojNjY6IEZJTEU6IHRv b2xzL3ZpcnRpb2ZzZC9wYXNzdGhyb3VnaF9sbC5jOjE0MjoKK3N0YXRpYyBib29sIHVzZV9zeXNs b2cgPSBmYWxzZTsKCnRvdGFsOiAxIGVycm9ycywgMCB3YXJuaW5ncywgMTY1IGxpbmVzIGNoZWNr ZWQKClBhdGNoIDYwLzExMSBoYXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFzZSByZXZpZXcuICBJZiBh bnkgb2YgdGhlc2UgZXJyb3JzCmFyZSBmYWxzZSBwb3NpdGl2ZXMgcmVwb3J0IHRoZW0gdG8gdGhl IG1haW50YWluZXIsIHNlZQpDSEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgoKNjEvMTExIENoZWNr aW5nIGNvbW1pdCBhZWMyMWUzNzU5MDYgKHZpcnRpb2ZzZDogcHJpbnQgbG9nIG9ubHkgd2hlbiBw cmlvcml0eSBpcyBoaWdoIGVub3VnaCkKNjIvMTExIENoZWNraW5nIGNvbW1pdCBlNTc2NDkyNzk1 NjMgKHZpcnRpb2ZzZDogQWRkIElEIHRvIHRoZSBsb2cgd2l0aCBGVVNFX0xPR19ERUJVRyBsZXZl bCkKNjMvMTExIENoZWNraW5nIGNvbW1pdCBlMjQwZTdkMmNkMjUgKHZpcnRpb2ZzZDogQWRkIHRp bWVzdGFtcCB0byB0aGUgbG9nIHdpdGggRlVTRV9MT0dfREVCVUcgbGV2ZWwpCjY0LzExMSBDaGVj a2luZyBjb21taXQgM2ZiNmVkMjk1MzE0ICh2aXJ0aW9mc2Q6IEhhbmRsZSByZWluaXQpCjY1LzEx MSBDaGVja2luZyBjb21taXQgYzFiYmU5OThlOGM3ICh2aXJ0aW9mc2Q6IEhhbmRsZSBoYXJkIHJl Ym9vdCkKNjYvMTExIENoZWNraW5nIGNvbW1pdCA5OWJjMDAwMjExNjkgKHZpcnRpb2ZzZDogS2ls bCB0aHJlYWRzIHdoZW4gcXVldWVzIGFyZSBzdG9wcGVkKQo2Ny8xMTEgQ2hlY2tpbmcgY29tbWl0 IGZlODI1MzhlYTM2NCAodmhvc3QtdXNlcjogUHJpbnQgdW5leHBlY3RlZCBzbGF2ZSBtZXNzYWdl IHR5cGVzKQo2OC8xMTEgQ2hlY2tpbmcgY29tbWl0IDQ0NjgxNDg1OTc4MyAoY29udHJpYi9saWJ2 aG9zdC11c2VyOiBQcm90ZWN0IHNsYXZlIGZkIHdpdGggbXV0ZXgpCjY5LzExMSBDaGVja2luZyBj b21taXQgM2MwZjAyZmVhZWNjICh2aXJ0aW9mc2Q6IHBhc3N0aHJvdWdoX2xsOiBhZGQgcmVuYW1l YXQyIHN1cHBvcnQpCjcwLzExMSBDaGVja2luZyBjb21taXQgNWJjYjQxMThkMzNlICh2aXJ0aW9m c2Q6IHBhc3N0aHJvdWdoX2xsOiBkaXNhYmxlIHJlYWRkaXJwbHVzIG9uIGNhY2hlPW5ldmVyKQo3 MS8xMTEgQ2hlY2tpbmcgY29tbWl0IGZkYWZkMGI0NTE3NCAodmlydGlvZnNkOiBwYXNzdGhyb3Vn aF9sbDogY29udHJvbCByZWFkZGlycGx1cykKNzIvMTExIENoZWNraW5nIGNvbW1pdCA0NzEzN2Nl YzlkNGYgKHZpcnRpb2ZzZDogcmVuYW1lIHVucmVmX2lub2RlKCkgdG8gdW5yZWZfaW5vZGVfbG9s b2NrZWQoKSkKNzMvMTExIENoZWNraW5nIGNvbW1pdCBhMWY3Y2QxY2NlNTYgKHZpcnRpb2ZzZDog ZmFpbCB3aGVuIHBhcmVudCBpbm9kZSBpc24ndCBrbm93biBpbiBsb19kb19sb29rdXAoKSkKRVJS T1I6IHJldHVybiBvZiBhbiBlcnJubyBzaG91bGQgdHlwaWNhbGx5IGJlIC12ZSAocmV0dXJuIC1F Tk9FTlQpCiMzMzogRklMRTogdG9vbHMvdmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsLmM6Nzg2Ogor ICAgICAgICByZXR1cm4gRU5PRU5UOwoKdG90YWw6IDEgZXJyb3JzLCAwIHdhcm5pbmdzLCAzOCBs aW5lcyBjaGVja2VkCgpQYXRjaCA3My8xMTEgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2 aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0 aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KCjc0 LzExMSBDaGVja2luZyBjb21taXQgYjUwZDM3OTVkMmVjICh2aXJ0aW9mc2Q6IGV4dHJhY3Qgcm9v dCBpbm9kZSBpbml0IGludG8gc2V0dXBfcm9vdCgpKQo3NS8xMTEgQ2hlY2tpbmcgY29tbWl0IGU1 NWMwYTI3ZWU1YyAodmlydGlvZnNkOiBwYXNzdGhyb3VnaF9sbDogY2xlYW4gdXAgY2FjaGUgcmVs YXRlZCBvcHRpb25zKQo3Ni8xMTEgQ2hlY2tpbmcgY29tbWl0IDAxODdlY2I1YmIwYiAodmlydGlv ZnNkOiBwYXNzdGhyb3VnaF9sbDogdXNlIGhhc2h0YWJsZSkKNzcvMTExIENoZWNraW5nIGNvbW1p dCA5ZThiMDJlMjliN2IgKHZpcnRpb2ZzZDogQ2xlYW4gdXAgaW5vZGVzIG9uIGRlc3Ryb3kpCjc4 LzExMSBDaGVja2luZyBjb21taXQgZDA3MDgxYjRjMWNlICh2aXJ0aW9mc2Q6IHN1cHBvcnQgbmFu b3NlY29uZCByZXNvbHV0aW9uIGZvciBmaWxlIHRpbWVzdGFtcCkKNzkvMTExIENoZWNraW5nIGNv bW1pdCA5N2I3YmE2YzE2ZmIgKHZpcnRpb2ZzZDogZml4IGVycm9yIGhhbmRsaW5nIGluIG1haW4o KSkKODAvMTExIENoZWNraW5nIGNvbW1pdCA0ZTIzYjg4NjM3ZDMgKHZpcnRpb2ZzZDogY2xlYW51 cCBhbGxvY2F0ZWQgcmVzb3VyY2UgaW4gc2UpCjgxLzExMSBDaGVja2luZyBjb21taXQgMzQ5Mzdh ZDIyZmJiICh2aXJ0aW9mc2Q6IGZpeCBtZW1vcnkgbGVhayBvbiBsby5zb3VyY2UpCjgyLzExMSBD aGVja2luZyBjb21taXQgYjk2YTYzY2I3MTAyICh2aXJ0aW9mc2Q6IGFkZCBoZWxwZXIgZm9yIGxv X2RhdGEgY2xlYW51cCkKODMvMTExIENoZWNraW5nIGNvbW1pdCBlZDE5MTcyYjgyNjggKHZpcnRp b2ZzZDogUHJldmVudCBtdWx0aXBseSBydW5uaW5nIHdpdGggc2FtZSB2aG9zdF91c2VyX3NvY2tl dCkKODQvMTExIENoZWNraW5nIGNvbW1pdCA0NWI4NGZlZDA3MDUgKHZpcnRpb2ZzZDogZW5hYmxl IFBBUkFMTEVMX0RJUk9QUyBkdXJpbmcgSU5JVCkKODUvMTExIENoZWNraW5nIGNvbW1pdCBiMDM0 MDY3NzcyZTYgKHZpcnRpb2ZzZDogZml4IGluY29ycmVjdCBlcnJvciBoYW5kbGluZyBpbiBsb19k b19sb29rdXApCjg2LzExMSBDaGVja2luZyBjb21taXQgOTdiMzdlNDBkNjNjIChWaXJ0aW9mc2Q6 IGZpeCBtZW1vcnkgbGVhayBvbiBmdXNlIHF1ZXVlaW5mbykKODcvMTExIENoZWNraW5nIGNvbW1p dCBiMjdiZDg5YjlmMDIgKHZpcnRpb2ZzZDogU3VwcG9ydCByZW1vdGUgcG9zaXggbG9ja3MpCjg4 LzExMSBDaGVja2luZyBjb21taXQgZjE4NzcxNWZlYjA1ICh2aXJ0aW9mc2Q6IHVzZSBmdXNlX2xv d2xldmVsX2lzX3ZpcnRpbygpIGluIGZ1c2Vfc2Vzc2lvbl9kZXN0cm95KCkpCjg5LzExMSBDaGVj a2luZyBjb21taXQgMTQ4ZTBiOGFiODEyICh2aXJ0aW9mc2Q6IHByZXZlbnQgZnZfcXVldWVfdGhy ZWFkKCkgdnMgdmlydGlvX2xvb3AoKSByYWNlcykKOTAvMTExIENoZWNraW5nIGNvbW1pdCA3YWQ2 M2NlYzg2M2QgKHZpcnRpb2ZzZDogbWFrZSBsb19yZWxlYXNlKCkgYXRvbWljKQo5MS8xMTEgQ2hl Y2tpbmcgY29tbWl0IDQwMzM5NjM0ZjJhNiAodmlydGlvZnNkOiBwcmV2ZW50IHJhY2VzIHdpdGgg bG9fZGlycF9wdXQoKSkKOTIvMTExIENoZWNraW5nIGNvbW1pdCAxMzVmZDIwZjhhOTAgKHZpcnRp b2ZzZDogcmVuYW1lIGlub2RlLT5yZWZjb3VudCB0byBpbm9kZS0+bmxvb2t1cCkKOTMvMTExIENo ZWNraW5nIGNvbW1pdCA3YWQ5ZjkyMTYzNjcgKGxpYnZob3N0LXVzZXI6IEZpeCBzb21lIG1lbXRh YmxlIHJlbWFwIGNhc2VzKQo5NC8xMTEgQ2hlY2tpbmcgY29tbWl0IDZhNTJhOWM5NDEzZSAodmly dGlvZnNkOiBhZGQgbWFuIHBhZ2UpCldBUk5JTkc6IGFkZGVkLCBtb3ZlZCBvciBkZWxldGVkIGZp bGUocyksIGRvZXMgTUFJTlRBSU5FUlMgbmVlZCB1cGRhdGluZz8KIzUxOiAKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKCnRvdGFsOiAwIGVycm9ycywgMSB3YXJuaW5ncywgMTI5IGxpbmVzIGNoZWNrZWQK ClBhdGNoIDk0LzExMSBoYXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFzZSByZXZpZXcuICBJZiBhbnkg b2YgdGhlc2UgZXJyb3JzCmFyZSBmYWxzZSBwb3NpdGl2ZXMgcmVwb3J0IHRoZW0gdG8gdGhlIG1h aW50YWluZXIsIHNlZQpDSEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgo5NS8xMTEgQ2hlY2tpbmcg Y29tbWl0IGIzMGRhMTdmOGNhYiAodmlydGlvZnNkOiBwYXNzdGhyb3VnaF9sbDogZml4IHJlZmNv dW50aW5nIG9uIHJlbW92ZS9yZW5hbWUpCjk2LzExMSBDaGVja2luZyBjb21taXQgOTFiMjA5NTRj MWU0ICh2aXJ0aW9mc2Q6IGludHJvZHVjZSBpbm9kZSByZWZjb3VudCB0byBwcmV2ZW50IHVzZS1h ZnRlci1mcmVlKQo5Ny8xMTEgQ2hlY2tpbmcgY29tbWl0IDU0YWY4ZmFlMmU2ZCAodmlydGlvZnNk OiBkbyBub3QgYWx3YXlzIHNldCBGVVNFX0ZMT0NLX0xPQ0tTKQo5OC8xMTEgQ2hlY2tpbmcgY29t bWl0IDIyZmYzODYxYzQ2MyAodmlydGlvZnNkOiBjb252ZXJ0IG1vcmUgZnByaW50ZiBhbmQgcGVy cm9yIHRvIHVzZSBmdXNlIGxvZyBpbmZyYSkKOTkvMTExIENoZWNraW5nIGNvbW1pdCA3ZDk2MmZm YmI2YzggKHZpcnRpb2ZzZDogUmVzZXQgT19ESVJFQ1QgZmxhZyBkdXJpbmcgZmlsZSBvcGVuKQox MDAvMTExIENoZWNraW5nIGNvbW1pdCA3Yzc0Y2EzYmQ5OTYgKHZpcnRpb2ZzZDogRml4IGRhdGEg Y29ycnVwdGlvbiB3aXRoIE9fQVBQRU5EIHdyaXRlIGluIHdyaXRlYmFjayBtb2RlKQoxMDEvMTEx IENoZWNraW5nIGNvbW1pdCA5MGU0MWM3MDg2NzQgKHZpcnRpb2ZzZDogcGFzc3Rocm91Z2hfbGw6 IFVzZSBjYWNoZV9yZWFkZGlyIGZvciBkaXJlY3Rvcnkgb3BlbikKMTAyLzExMSBDaGVja2luZyBj b21taXQgNWUwYmM2NTAzY2M5ICh2aXJ0aW9mc2Q6IGFkZCBkZWZpbml0aW9uIG9mIGZ1c2VfYnVm X3dyaXRldigpKQoxMDMvMTExIENoZWNraW5nIGNvbW1pdCA1ZDUzMmE0MmRiZTUgKHZpcnRpb2Zz ZDogdXNlIGZ1c2VfYnVmX3dyaXRldiB0byByZXBsYWNlIGZ1c2VfYnVmX3dyaXRlIGZvciBiZXR0 ZXIgcGVyZm9ybWFuY2UpCjEwNC8xMTEgQ2hlY2tpbmcgY29tbWl0IGU1MGE1MDE3YWI0MiAodmly dGlvZnNkOiBwcm9jZXNzIHJlcXVlc3RzIGluIGEgdGhyZWFkIHBvb2wpCldBUk5JTkc6IEJsb2Nr IGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMzMzM6IEZJTEU6 IHRvb2xzL3ZpcnRpb2ZzZC9mdXNlX3ZpcnRpby5jOjU3NzoKKyAgICBwb29sID0gZ190aHJlYWRf cG9vbF9uZXcoZnZfcXVldWVfd29ya2VyLCBxaSwgMSAvKiBUT0RPIG1heF90aHJlYWRzICovLAoK dG90YWw6IDAgZXJyb3JzLCAxIHdhcm5pbmdzLCA0NjYgbGluZXMgY2hlY2tlZAoKUGF0Y2ggMTA0 LzExMSBoYXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFzZSByZXZpZXcuICBJZiBhbnkgb2YgdGhlc2Ug ZXJyb3JzCmFyZSBmYWxzZSBwb3NpdGl2ZXMgcmVwb3J0IHRoZW0gdG8gdGhlIG1haW50YWluZXIs IHNlZQpDSEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgoxMDUvMTExIENoZWNraW5nIGNvbW1pdCBk NmQxNWIzNGEwNWQgKHZpcnRpb2ZzZDogcHJldmVudCBGVVNFX0lOSVQvRlVTRV9ERVNUUk9ZIHJh Y2VzKQoxMDYvMTExIENoZWNraW5nIGNvbW1pdCAzNmQyMjk2NWY0MzQgKHZpcnRpb2ZzZDogZml4 IGxvX2Rlc3Ryb3koKSByZXNvdXJjZSBsZWFrcykKMTA3LzExMSBDaGVja2luZyBjb21taXQgMWYz ZTM2YzQ4ODA0ICh2aXJ0aW9mc2Q6IGFkZCAtLXRocmVhZC1wb29sLXNpemU9TlVNIG9wdGlvbikK MTA4LzExMSBDaGVja2luZyBjb21taXQgMWQzNzQ5MmNjMGQ0ICh2aXJ0aW9mc2Q6IENvbnZlcnQg bG9fZGVzdHJveSB0byB0YWtlIHRoZSBsby0+bXV0ZXggbG9jayBpdHNlbGYpCjEwOS8xMTEgQ2hl Y2tpbmcgY29tbWl0IGRjMmNkM2QxYTc1ZiAodmlydGlvZnNkL3Bhc3N0aHJvdWdoX2xsOiBQYXNz IGVycm5vIHRvIGZ1c2VfcmVwbHlfZXJyKCkpCjExMC8xMTEgQ2hlY2tpbmcgY29tbWl0IDU3MTE2 NmFlZDM1OCAodmlydGlvZnNkOiBzdG9wIGFsbCBxdWV1ZSB0aHJlYWRzIG9uIGV4aXQgaW4gdmly dGlvX2xvb3AoKSkKMTExLzExMSBDaGVja2luZyBjb21taXQgMDFmMjQyZmVmMWU4ICh2aXJ0aW9m c2Q6IGFkZCBzb21lIG9wdGlvbnMgdG8gdGhlIGhlbHAgbWVzc2FnZSkKPT09IE9VVFBVVCBFTkQg PT09CgpUZXN0IGNvbW1hbmQgZXhpdGVkIHdpdGggY29kZTogMQoKClRoZSBmdWxsIGxvZyBpcyBh dmFpbGFibGUgYXQKaHR0cDovL3BhdGNoZXcub3JnL2xvZ3MvMjAyMDAxMjMxMTU4NDEuMTM4ODQ5 LTEtZGdpbGJlcnRAcmVkaGF0LmNvbS90ZXN0aW5nLmNoZWNrcGF0Y2gvP3R5cGU9bWVzc2FnZS4K LS0tCkVtYWlsIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IFBhdGNoZXcgW2h0dHBzOi8vcGF0 Y2hldy5vcmcvXS4KUGxlYXNlIHNlbmQgeW91ciBmZWVkYmFjayB0byBwYXRjaGV3LWRldmVsQHJl ZGhhdC5jb20=