From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id B0F64491E2 for ; Wed, 6 Mar 2024 16:26:22 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0814968CB56; Wed, 6 Mar 2024 18:26:20 +0200 (EET) Received: from mail-pg1-f177.google.com (mail-pg1-f177.google.com [209.85.215.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1CA7768BF87 for ; Wed, 6 Mar 2024 18:26:14 +0200 (EET) Received: by mail-pg1-f177.google.com with SMTP id 41be03b00d2f7-53fa455cd94so1759741a12.2 for ; Wed, 06 Mar 2024 08:26:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709742372; x=1710347172; darn=ffmpeg.org; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=upbDvvLqaoYQBRQqpfWq5ZN5mjZi7HOVctUsDs+W4Zo=; b=aI1L28l1v2EOCogDd+/bWjUqFM09TgfgSm1Q+NtbV4JmT724P47TeJH64X9Y15R5TO QrhR0cK6xN6JTA/mvhMR3/Qj6pFakn/XGbk/+IIUn5YGVd6ZMiZl0xYL+fzCtGU+ETLc moCXDbeNRsjzQfGjmZW0nbGCVb36DGb61r2rHK9QdmXqThi+eqGikmNXMAizrhojiccN Y3JNk1vY2jhK6XlAXZkeqrOlh7V7yzxBXLl3RMiuTYWNXTxavbMEoocDfGMtTfTPnSNm kI1ye48KU+zxptSEcgITYiVK1XFJPXsAne8/mzbAsrN49ipUJA4xJ8h5sQXNGSjshZOK X2JA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709742372; x=1710347172; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=upbDvvLqaoYQBRQqpfWq5ZN5mjZi7HOVctUsDs+W4Zo=; b=LcEliXgMwYXrRr1xY7eyAd3N6e6gMHuvTsZE37Zpeq/tz2+JqUPVlR24ucA5bQ+Hd8 qP5YPElsnnUXDfNZTIxam1psTVFg8fAKuMW0LJ5PES4NUXjP69tTBEuWp9ULaMj/x+EA ncGyyz/s3+nNbEwY4UN38RoIr+P8+bWtv4eQMzOWNMj6ZKWOBPUWMldKeWjhuk43cRy1 abmGZp5F+I1nqNumvZwuWqFuezm7f0pRu6woTODDqmLe9frUtOeTg3P7cxbw7CAf+2VK umECe5x+e7+5sjA2wHOP0Ha48GvauPSUVG2hN77SssnmiPY/v2yVBB5hpqxudeYVdAOt TKNA== X-Gm-Message-State: AOJu0YyPaHJ1pIbC++Xzae3kLqVghkn802l6qw9qZNRPHkTBK9uOLbGw hJnsPr5m30e3Dvn7DBD8AEFwQ+y7yOWeKPMILtn8v3EytplqXuinHV9T7KTCWcYr/qq/9tIxW2X kqFj/SLlZTklHHY2eQ8y9yBlifxqs/8t+ X-Google-Smtp-Source: AGHT+IGQJZoqawpFnElJOcD96pdSdHMajDRaONZ3FlhLk5DjCmrVyW8FeEc+EdmQ/R/2JWQxDjJqiC6QwyhKY1kdEH4= X-Received: by 2002:a17:90a:c7c4:b0:29a:6c13:f0a with SMTP id gf4-20020a17090ac7c400b0029a6c130f0amr12404957pjb.16.1709742371662; Wed, 06 Mar 2024 08:26:11 -0800 (PST) MIME-Version: 1.0 References: <20240204144153.411868-1-ramiro.polla@gmail.com> In-Reply-To: <20240204144153.411868-1-ramiro.polla@gmail.com> From: Ramiro Polla Date: Wed, 6 Mar 2024 17:26:00 +0100 Message-ID: To: ffmpeg-devel@ffmpeg.org Subject: Re: [FFmpeg-devel] [PATCH] lavc/aarch64/fdct: add neon-optimized fdct for aarch64 X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: cGluZwoKT24gU3VuLCBGZWIgNCwgMjAyNCBhdCAzOjQy4oCvUE0gUmFtaXJvIFBvbGxhIDxyYW1p cm8ucG9sbGFAZ21haWwuY29tPiB3cm90ZToKPgo+IFRoZSBjb2RlIGlzIGltcG9ydGVkIGZyb20g bGlianBlZy10dXJiby0zLjAuMS4gVGhlIG5lb24gcmVnaXN0ZXJzIHVzZWQKPiBoYXZlIGJlZW4g Y2hhbmdlZCB0byBhdm9pZCBtb2RpZnlpbmcgdjgtdjE1Lgo+IC0tLQo+ICBsaWJhdmNvZGVjL2Fh cmNoNjQvTWFrZWZpbGUgICAgICAgICAgICAgICB8ICAgMiArCj4gIGxpYmF2Y29kZWMvYWFyY2g2 NC9mZGN0LmggICAgICAgICAgICAgICAgIHwgIDI2ICsrCj4gIGxpYmF2Y29kZWMvYWFyY2g2NC9m ZGN0ZHNwX2luaXRfYWFyY2g2NC5jIHwgIDM5ICsrKwo+ICBsaWJhdmNvZGVjL2FhcmNoNjQvZmRj dGRzcF9uZW9uLlMgICAgICAgICB8IDM2OSArKysrKysrKysrKysrKysrKysrKysrCj4gIGxpYmF2 Y29kZWMvYXZjb2RlYy5oICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKPiAgbGliYXZjb2Rl Yy9mZGN0ZHNwLmMgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KPiAgbGliYXZjb2RlYy9m ZGN0ZHNwLmggICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwo+ICBsaWJhdmNvZGVjL29wdGlv bnNfdGFibGUuaCAgICAgICAgICAgICAgICB8ICAgMSArCj4gIGxpYmF2Y29kZWMvdGVzdHMvYWFy Y2g2NC9kY3QuYyAgICAgICAgICAgIHwgICAyICsKPiAgOSBmaWxlcyBjaGFuZ2VkLCA0NDUgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZjb2Rl Yy9hYXJjaDY0L2ZkY3QuaAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZjb2RlYy9hYXJjaDY0 L2ZkY3Rkc3BfaW5pdF9hYXJjaDY0LmMKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMv YWFyY2g2NC9mZGN0ZHNwX25lb24uUwo+Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYWFyY2g2 NC9NYWtlZmlsZSBiL2xpYmF2Y29kZWMvYWFyY2g2NC9NYWtlZmlsZQo+IGluZGV4IGJlYjZhMDJm NWYuLmVlYmNjYmU0YTUgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9hYXJjaDY0L01ha2VmaWxl Cj4gKysrIGIvbGliYXZjb2RlYy9hYXJjaDY0L01ha2VmaWxlCj4gQEAgLTEsNCArMSw1IEBACj4g ICMgc3Vic3lzdGVtcwo+ICtPQkpTLSQoQ09ORklHX0ZEQ1REU1ApICAgICAgICAgICAgICAgICAg Kz0gYWFyY2g2NC9mZGN0ZHNwX2luaXRfYWFyY2g2NC5vCj4gIE9CSlMtJChDT05GSUdfRk1UQ09O VkVSVCkgICAgICAgICAgICAgICArPSBhYXJjaDY0L2ZtdGNvbnZlcnRfaW5pdC5vCj4gIE9CSlMt JChDT05GSUdfSDI2NENIUk9NQSkgICAgICAgICAgICAgICArPSBhYXJjaDY0L2gyNjRjaHJvbWFf aW5pdF9hYXJjaDY0Lm8KPiAgT0JKUy0kKENPTkZJR19IMjY0RFNQKSAgICAgICAgICAgICAgICAg ICs9IGFhcmNoNjQvaDI2NGRzcF9pbml0X2FhcmNoNjQubwo+IEBAIC0zNSw2ICszNiw3IEBAIEFS TVY4LU9CSlMtJChDT05GSUdfVklERU9EU1ApICAgICAgICAgICArPSBhYXJjaDY0L3ZpZGVvZHNw Lm8KPgo+ICAjIHN1YnN5c3RlbXMKPiAgTkVPTi1PQkpTLSQoQ09ORklHX0FBQ19ERUNPREVSKSAg ICAgICAgICs9IGFhcmNoNjQvc2JyZHNwX25lb24ubwo+ICtORU9OLU9CSlMtJChDT05GSUdfRkRD VERTUCkgICAgICAgICAgICAgKz0gYWFyY2g2NC9mZGN0ZHNwX25lb24ubwo+ICBORU9OLU9CSlMt JChDT05GSUdfRk1UQ09OVkVSVCkgICAgICAgICAgKz0gYWFyY2g2NC9mbXRjb252ZXJ0X25lb24u bwo+ICBORU9OLU9CSlMtJChDT05GSUdfSDI2NENIUk9NQSkgICAgICAgICAgKz0gYWFyY2g2NC9o MjY0Y21jX25lb24ubwo+ICBORU9OLU9CSlMtJChDT05GSUdfSDI2NERTUCkgICAgICAgICAgICAg Kz0gYWFyY2g2NC9oMjY0ZHNwX25lb24ubyAgICAgICAgICAgICAgXAo+IGRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL2FhcmNoNjQvZmRjdC5oIGIvbGliYXZjb2RlYy9hYXJjaDY0L2ZkY3QuaAo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMC4uMDkwMWI1M2E4Mwo+IC0tLSAv ZGV2L251bGwKPiArKysgYi9saWJhdmNvZGVjL2FhcmNoNjQvZmRjdC5oCj4gQEAgLTAsMCArMSwy NiBAQAo+ICsvKgo+ICsgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCj4gKyAqCj4gKyAq IEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK PiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYwo+ICsgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIKPiArICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4gKyAqCj4gKyAqIEZGbXBlZyBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+ICsgKiBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv Zgo+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVQo+ICsgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgo+ICsgKgo+ICsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCj4gKyAqIExpY2Vuc2UgYWxvbmcgd2l0 aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKPiArICogRm91bmRh dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAw MjExMC0xMzAxIFVTQQo+ICsgKi8KPiArCj4gKyNpZm5kZWYgQVZDT0RFQ19BQVJDSDY0X0ZEQ1Rf SAo+ICsjZGVmaW5lIEFWQ09ERUNfQUFSQ0g2NF9GRENUX0gKPiArCj4gKyNpbmNsdWRlIDxzdGRp bnQuaD4KPiArCj4gK3ZvaWQgZmZfZmRjdF9uZW9uKGludDE2X3QgKmJsb2NrKTsKPiArCj4gKyNl bmRpZiAvKiBBVkNPREVDX0FBUkNINjRfRkRDVF9IICovCj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMvYWFyY2g2NC9mZGN0ZHNwX2luaXRfYWFyY2g2NC5jIGIvbGliYXZjb2RlYy9hYXJjaDY0L2Zk Y3Rkc3BfaW5pdF9hYXJjaDY0LmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAw MDAwMDAuLjU5ZDkxYmM4ZmMKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvbGliYXZjb2RlYy9hYXJj aDY0L2ZkY3Rkc3BfaW5pdF9hYXJjaDY0LmMKPiBAQCAtMCwwICsxLDM5IEBACj4gKy8qCj4gKyAq IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KPiArICoKPiArICogRkZtcGVnIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+ICsgKiBtb2RpZnkgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCj4gKyAqIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl cgo+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KPiArICoKPiArICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4gKyAqIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V Cj4gKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4g KyAqCj4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKPiArICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90 LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+ICsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCj4g KyAqLwo+ICsKPiArI2luY2x1ZGUgImxpYmF2dXRpbC9hdHRyaWJ1dGVzLmgiCj4gKyNpbmNsdWRl ICJsaWJhdnV0aWwvY3B1LmgiCj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvYWFyY2g2NC9jcHUuaCIK PiArI2luY2x1ZGUgImxpYmF2Y29kZWMvYXZjb2RlYy5oIgo+ICsjaW5jbHVkZSAibGliYXZjb2Rl Yy9mZGN0ZHNwLmgiCj4gKyNpbmNsdWRlICJmZGN0LmgiCj4gKwo+ICthdl9jb2xkIHZvaWQgZmZf ZmRjdGRzcF9pbml0X2FhcmNoNjQoRkRDVERTUENvbnRleHQgKmMsIEFWQ29kZWNDb250ZXh0ICph dmN0eCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGhp Z2hfYml0X2RlcHRoKQo+ICt7Cj4gKyAgICBpbnQgY3B1X2ZsYWdzID0gYXZfZ2V0X2NwdV9mbGFn cygpOwo+ICsKPiArICAgIGlmIChoYXZlX25lb24oY3B1X2ZsYWdzKSkgewo+ICsgICAgICAgIGlm ICghaGlnaF9iaXRfZGVwdGgpIHsKPiArICAgICAgICAgICAgaWYgKGF2Y3R4LT5kY3RfYWxnbyA9 PSBGRl9EQ1RfQVVUTyB8fAo+ICsgICAgICAgICAgICAgICAgYXZjdHgtPmRjdF9hbGdvID09IEZG X0RDVF9ORU9OKSB7Cj4gKyAgICAgICAgICAgICAgICBjLT5mZGN0ID0gZmZfZmRjdF9uZW9uOwo+ ICsgICAgICAgICAgICB9Cj4gKyAgICAgICAgfQo+ICsgICAgfQo+ICt9Cj4gZGlmZiAtLWdpdCBh L2xpYmF2Y29kZWMvYWFyY2g2NC9mZGN0ZHNwX25lb24uUyBiL2xpYmF2Y29kZWMvYWFyY2g2NC9m ZGN0ZHNwX25lb24uUwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMC4u OTc4YzhkMzAwMgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9saWJhdmNvZGVjL2FhcmNoNjQvZmRj dGRzcF9uZW9uLlMKPiBAQCAtMCwwICsxLDM2OSBAQAo+ICsvKgo+ICsgKiBBcm12OCBOZW9uIG9w dGltaXphdGlvbnMgZm9yIGxpYmpwZWctdHVyYm8KPiArICoKPiArICogQ29weXJpZ2h0IChDKSAy MDA5LTIwMTEsIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K PiArICogICAgICAgICAgICAgICAgICAgICAgICAgIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCj4gKyAq IEF1dGhvcjogIFNpYXJoZWkgU2lhbWFzaGthIDxzaWFyaGVpLnNpYW1hc2hrYUBub2tpYS5jb20+ Cj4gKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE0LCBMaW5hcm8gTGltaXRlZC4gIEFsbCBSaWdo dHMgUmVzZXJ2ZWQuCj4gKyAqIEF1dGhvcjogIFJhZ2VzaCBSYWRoYWtyaXNobmFuIDxyYWdlc2gu ckBsaW5hcm8ub3JnPgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiwgMjAyMCwgRC4gUi4g Q29tbWFuZGVyLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KPiArICogQ29weXJpZ2h0IChDKSAyMDE1 LTIwMTYsIDIwMTgsIE1hdHRoaWV1IERhcmJvaXMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgo+ICsg KiBDb3B5cmlnaHQgKEMpIDIwMTYsIFNpYXJoZWkgU2lhbWFzaGthLiAgQWxsIFJpZ2h0cyBSZXNl cnZlZC4KPiArICoKPiArICogVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRo b3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKPiArICogd2FycmFudHkuICBJbiBubyBldmVudCB3 aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwo+ICsgKiBhcmlz aW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9u IGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9z ZSwKPiArICogaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIg aXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAo+ICsgKiBmcmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxv d2luZyByZXN0cmljdGlvbnM6Cj4gKyAqCj4gKyAqIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0 d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3Qgbm90Cj4gKyAqICAgIGNs YWltIHRoYXQgeW91IHdyb3RlIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlz IHNvZnR3YXJlCj4gKyAqICAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhl IHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQo+ICsgKiAgICBhcHByZWNpYXRlZCBidXQg aXMgbm90IHJlcXVpcmVkLgo+ICsgKiAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJl IHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdCBiZQo+ICsgKiAgICBtaXNyZXBy ZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuCj4gKyAqIDMuIFRoaXMgbm90 aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmli dXRpb24uCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgImxpYmF2dXRpbC9hYXJjaDY0L2FzbS5TIgo+ ICsjaW5jbHVkZSAibmVvbi5TIgo+ICsKPiArLy8gI2RlZmluZSBFSUdIVF9CSVRfU0FNUExFUwo+ ICsKPiArLyogQ29uc3RhbnRzIGZvciBqc2ltZF9mZGN0X2lzbG93X25lb24oKSAqLwo+ICsKPiAr I2RlZmluZSBGXzBfMjk4ICAgMjQ0NiAgLyogRklYKDAuMjk4NjMxMzM2KSAqLwo+ICsjZGVmaW5l IEZfMF8zOTAgICAzMTk2ICAvKiBGSVgoMC4zOTAxODA2NDQpICovCj4gKyNkZWZpbmUgRl8wXzU0 MSAgIDQ0MzMgIC8qIEZJWCgwLjU0MTE5NjEwMCkgKi8KPiArI2RlZmluZSBGXzBfNzY1ICAgNjI3 MCAgLyogRklYKDAuNzY1MzY2ODY1KSAqLwo+ICsjZGVmaW5lIEZfMF84OTkgICA3MzczICAvKiBG SVgoMC44OTk5NzYyMjMpICovCj4gKyNkZWZpbmUgRl8xXzE3NSAgIDk2MzMgIC8qIEZJWCgxLjE3 NTg3NTYwMikgKi8KPiArI2RlZmluZSBGXzFfNTAxICAxMjI5OSAgLyogRklYKDEuNTAxMzIxMTEw KSAqLwo+ICsjZGVmaW5lIEZfMV84NDcgIDE1MTM3ICAvKiBGSVgoMS44NDc3NTkwNjUpICovCj4g KyNkZWZpbmUgRl8xXzk2MSAgMTYwNjkgIC8qIEZJWCgxLjk2MTU3MDU2MCkgKi8KPiArI2RlZmlu ZSBGXzJfMDUzICAxNjgxOSAgLyogRklYKDIuMDUzMTE5ODY5KSAqLwo+ICsjZGVmaW5lIEZfMl81 NjIgIDIwOTk1ICAvKiBGSVgoMi41NjI5MTU0NDcpICovCj4gKyNkZWZpbmUgRl8zXzA3MiAgMjUx NzIgIC8qIEZJWCgzLjA3MjcxMTAyNikgKi8KPiArCj4gK2NvbnN0IGpzaW1kX2ZkY3RfaXNsb3df bmVvbl9jb25zdHMsIGFsaWduPTQKPiArICAuc2hvcnQgRl8wXzI5OAo+ICsgIC5zaG9ydCAtRl8w XzM5MAo+ICsgIC5zaG9ydCBGXzBfNTQxCj4gKyAgLnNob3J0IEZfMF83NjUKPiArICAuc2hvcnQg LSBGXzBfODk5Cj4gKyAgLnNob3J0IEZfMV8xNzUKPiArICAuc2hvcnQgRl8xXzUwMQo+ICsgIC5z aG9ydCAtIEZfMV84NDcKPiArICAuc2hvcnQgLSBGXzFfOTYxCj4gKyAgLnNob3J0IEZfMl8wNTMK PiArICAuc2hvcnQgLSBGXzJfNTYyCj4gKyAgLnNob3J0IEZfM18wNzIKPiArICAuc2hvcnQgMCAg ICAgICAgICAvKiBwYWRkaW5nICovCj4gKyAgLnNob3J0IDAKPiArICAuc2hvcnQgMAo+ICsgIC5z aG9ydCAwCj4gK2VuZGNvbnN0Cj4gKwo+ICsjdW5kZWYgRl8wXzI5OAo+ICsjdW5kZWYgRl8wXzM5 MAo+ICsjdW5kZWYgRl8wXzU0MQo+ICsjdW5kZWYgRl8wXzc2NQo+ICsjdW5kZWYgRl8wXzg5OQo+ ICsjdW5kZWYgRl8xXzE3NQo+ICsjdW5kZWYgRl8xXzUwMQo+ICsjdW5kZWYgRl8xXzg0Nwo+ICsj dW5kZWYgRl8xXzk2MQo+ICsjdW5kZWYgRl8yXzA1Mwo+ICsjdW5kZWYgRl8yXzU2Mgo+ICsjdW5k ZWYgRl8zXzA3Mgo+ICsKPiArLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwo+ICsKPiArLyoKPiArICog anNpbWRfZmRjdF9pc2xvd19uZW9uCj4gKyAqCj4gKyAqIFRoaXMgZmlsZSBjb250YWlucyBhIHNs b3dlciBidXQgbW9yZSBhY2N1cmF0ZSBpbnRlZ2VyIGltcGxlbWVudGF0aW9uIG9mIHRoZQo+ICsg KiBmb3J3YXJkIERDVCAoRGlzY3JldGUgQ29zaW5lIFRyYW5zZm9ybSkuIFRoZSBmb2xsb3dpbmcg Y29kZSBpcyBiYXNlZAo+ICsgKiBkaXJlY3RseSBvbiB0aGUgSUpHJydzIG9yaWdpbmFsIGpmZGN0 aW50LmM7IHNlZSB0aGUgamZkY3RpbnQuYyBmb3IKPiArICogbW9yZSBkZXRhaWxzLgo+ICsgKi8K PiArCj4gKyNkZWZpbmUgQ09OU1RfQklUUyAgMTMKPiArI2lmZGVmIEVJR0hUX0JJVF9TQU1QTEVT Cj4gKyNkZWZpbmUgUEFTUzFfQklUUyAgMgo+ICsjZWxzZQo+ICsjZGVmaW5lIFBBU1MxX0JJVFMg IDEgICAvKiBsb3NlIGEgbGl0dGxlIHByZWNpc2lvbiB0byBhdm9pZCBvdmVyZmxvdyAqLwo+ICsj ZW5kaWYKPiArCj4gKyNkZWZpbmUgREVTQ0FMRV9QMSAgKENPTlNUX0JJVFMgLSBQQVNTMV9CSVRT KQo+ICsjZGVmaW5lIERFU0NBTEVfUDIgIChDT05TVF9CSVRTICsgUEFTUzFfQklUUykKPiArCj4g KyNkZWZpbmUgWEZJWF9QXzBfMjk4ICB2MC5oWzBdCj4gKyNkZWZpbmUgWEZJWF9OXzBfMzkwICB2 MC5oWzFdCj4gKyNkZWZpbmUgWEZJWF9QXzBfNTQxICB2MC5oWzJdCj4gKyNkZWZpbmUgWEZJWF9Q XzBfNzY1ICB2MC5oWzNdCj4gKyNkZWZpbmUgWEZJWF9OXzBfODk5ICB2MC5oWzRdCj4gKyNkZWZp bmUgWEZJWF9QXzFfMTc1ICB2MC5oWzVdCj4gKyNkZWZpbmUgWEZJWF9QXzFfNTAxICB2MC5oWzZd Cj4gKyNkZWZpbmUgWEZJWF9OXzFfODQ3ICB2MC5oWzddCj4gKyNkZWZpbmUgWEZJWF9OXzFfOTYx ICB2MS5oWzBdCj4gKyNkZWZpbmUgWEZJWF9QXzJfMDUzICB2MS5oWzFdCj4gKyNkZWZpbmUgWEZJ WF9OXzJfNTYyICB2MS5oWzJdCj4gKyNkZWZpbmUgWEZJWF9QXzNfMDcyICB2MS5oWzNdCj4gKwo+ ICtmdW5jdGlvbiBmZl9mZGN0X25lb24sIGV4cG9ydD0xCj4gKwo+ICsgICAgREFUQSAgICAgICAg ICAgIC5yZXEgeDAKPiArICAgIFRNUCAgICAgICAgICAgICAucmVxIHg5Cj4gKwo+ICsgICAgLyog TG9hZCBjb25zdGFudHMgKi8KPiArICAgIG1vdnJlbCAgICAgICAgICBUTVAsIGpzaW1kX2ZkY3Rf aXNsb3dfbmVvbl9jb25zdHMKPiArICAgIGxkMSAgICAgICAgICAgICB7djAuOGgsIHYxLjhofSwg W1RNUF0KPiArCj4gKyAgICAvKiBMb2FkIGFsbCBEQVRBIGludG8gTmVvbiByZWdpc3RlcnMgd2l0 aCB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb246Cj4gKyAgICAgKiAgICAgICAwIDEgMiAzIHwgNCA1 IDYgNwo+ICsgICAgICogICAgICAtLS0tLS0tLS0rLS0tLS0tLS0KPiArICAgICAqICAgMCB8IGQx NiAgICAgfCBkMTcgICAgfCB2MTYuOGgKPiArICAgICAqICAgMSB8IGQxOCAgICAgfCBkMTkgICAg fCB2MTcuOGgKPiArICAgICAqICAgMiB8IGQyMCAgICAgfCBkMjEgICAgfCB2MTguOGgKPiArICAg ICAqICAgMyB8IGQyMiAgICAgfCBkMjMgICAgfCB2MTkuOGgKPiArICAgICAqICAgNCB8IGQyNCAg ICAgfCBkMjUgICAgfCB2MjAuOGgKPiArICAgICAqICAgNSB8IGQyNiAgICAgfCBkMjcgICAgfCB2 MjEuOGgKPiArICAgICAqICAgNiB8IGQyOCAgICAgfCBkMjkgICAgfCB2MjIuOGgKPiArICAgICAq ICAgNyB8IGQzMCAgICAgfCBkMzEgICAgfCB2MjMuOGgKPiArICAgICAqLwo+ICsKPiArICAgIGxk MSAgICAgICAgICAgICB7djE2LjhoLCB2MTcuOGgsIHYxOC44aCwgdjE5LjhofSwgW0RBVEFdLCA2 NAo+ICsgICAgbGQxICAgICAgICAgICAgIHt2MjAuOGgsIHYyMS44aCwgdjIyLjhoLCB2MjMuOGh9 LCBbREFUQV0KPiArICAgIHN1YiAgICAgICAgICAgICBEQVRBLCBEQVRBLCAjNjQKPiArCj4gKyAg ICAvKiBUcmFuc3Bvc2UgKi8KPiArICAgIHRyYW5zcG9zZV84eDhIICB2MTYsIHYxNywgdjE4LCB2 MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjMxLCB2Mgo+ICsgICAgLyogMS1EIEZEQ1QgKi8KPiAr ICAgIGFkZCAgICAgICAgICAgICB2MjQuOGgsIHYxNi44aCwgdjIzLjhoICAvKiB0bXAwID0gZGF0 YXB0clswXSArIGRhdGFwdHJbN107ICovCj4gKyAgICBzdWIgICAgICAgICAgICAgdjMxLjhoLCB2 MTYuOGgsIHYyMy44aCAgLyogdG1wNyA9IGRhdGFwdHJbMF0gLSBkYXRhcHRyWzddOyAqLwo+ICsg ICAgYWRkICAgICAgICAgICAgIHYyNS44aCwgdjE3LjhoLCB2MjIuOGggIC8qIHRtcDEgPSBkYXRh cHRyWzFdICsgZGF0YXB0cls2XTsgKi8KPiArICAgIHN1YiAgICAgICAgICAgICB2MzAuOGgsIHYx Ny44aCwgdjIyLjhoICAvKiB0bXA2ID0gZGF0YXB0clsxXSAtIGRhdGFwdHJbNl07ICovCj4gKyAg ICBhZGQgICAgICAgICAgICAgdjI2LjhoLCB2MTguOGgsIHYyMS44aCAgLyogdG1wMiA9IGRhdGFw dHJbMl0gKyBkYXRhcHRyWzVdOyAqLwo+ICsgICAgc3ViICAgICAgICAgICAgIHYyOS44aCwgdjE4 LjhoLCB2MjEuOGggIC8qIHRtcDUgPSBkYXRhcHRyWzJdIC0gZGF0YXB0cls1XTsgKi8KPiArICAg IGFkZCAgICAgICAgICAgICB2MjcuOGgsIHYxOS44aCwgdjIwLjhoICAvKiB0bXAzID0gZGF0YXB0 clszXSArIGRhdGFwdHJbNF07ICovCj4gKyAgICBzdWIgICAgICAgICAgICAgdjI4LjhoLCB2MTku OGgsIHYyMC44aCAgLyogdG1wNCA9IGRhdGFwdHJbM10gLSBkYXRhcHRyWzRdOyAqLwo+ICsKPiAr ICAgIC8qIGV2ZW4gcGFydCAqLwo+ICsKPiArICAgIGFkZCAgICAgICAgICAgICB2NC44aCwgdjI0 LjhoLCB2MjcuOGggICAvKiB0bXAxMCA9IHRtcDAgKyB0bXAzOyAqLwo+ICsgICAgc3ViICAgICAg ICAgICAgIHY1LjhoLCB2MjQuOGgsIHYyNy44aCAgIC8qIHRtcDEzID0gdG1wMCAtIHRtcDM7ICov Cj4gKyAgICBhZGQgICAgICAgICAgICAgdjYuOGgsIHYyNS44aCwgdjI2LjhoICAgLyogdG1wMTEg PSB0bXAxICsgdG1wMjsgKi8KPiArICAgIHN1YiAgICAgICAgICAgICB2Ny44aCwgdjI1LjhoLCB2 MjYuOGggICAvKiB0bXAxMiA9IHRtcDEgLSB0bXAyOyAqLwo+ICsKPiArICAgIGFkZCAgICAgICAg ICAgICB2MTYuOGgsIHY0LjhoLCB2Ni44aCAgIC8qIHRtcDEwICsgdG1wMTEgKi8KPiArICAgIHN1 YiAgICAgICAgICAgICB2MjAuOGgsIHY0LjhoLCB2Ni44aCAgIC8qIHRtcDEwIC0gdG1wMTEgKi8K PiArCj4gKyAgICBhZGQgICAgICAgICAgICAgdjE4LjhoLCB2Ny44aCwgdjUuOGggICAvKiB0bXAx MiArIHRtcDEzICovCj4gKwo+ICsgICAgc2hsICAgICAgICAgICAgIHYxNi44aCwgdjE2LjhoLCAj UEFTUzFfQklUUyAgLyogZGF0YXB0clswXSA9IChEQ1RFTEVNKUxFRlRfU0hJRlQodG1wMTAgKyB0 bXAxMSwgUEFTUzFfQklUUyk7ICovCj4gKyAgICBzaGwgICAgICAgICAgICAgdjIwLjhoLCB2MjAu OGgsICNQQVNTMV9CSVRTICAvKiBkYXRhcHRyWzRdID0gKERDVEVMRU0pTEVGVF9TSElGVCh0bXAx MCAtIHRtcDExLCBQQVNTMV9CSVRTKTsgKi8KPiArCj4gKyAgICBzbXVsbDIgICAgICAgICAgdjI0 LjRzLCB2MTguOGgsIFhGSVhfUF8wXzU0MSAgLyogejEgaGkgPSBNVUxUSVBMWSh0bXAxMiArIHRt cDEzLCBYRklYX1BfMF81NDEpOyAqLwo+ICsgICAgc211bGwgICAgICAgICAgIHYxOC40cywgdjE4 LjRoLCBYRklYX1BfMF81NDEgIC8qIHoxIGxvID0gTVVMVElQTFkodG1wMTIgKyB0bXAxMywgWEZJ WF9QXzBfNTQxKTsgKi8KPiArICAgIG1vdiAgICAgICAgICAgICB2MjIuMTZiLCB2MTguMTZiCj4g KyAgICBtb3YgICAgICAgICAgICAgdjI1LjE2YiwgdjI0LjE2Ygo+ICsKPiArICAgIHNtbGFsICAg ICAgICAgICB2MTguNHMsIHY1LjRoLCBYRklYX1BfMF83NjUgICAvKiBsbyB6MSArIE1VTFRJUExZ KHRtcDEzLCBYRklYX1BfMF83NjUpICovCj4gKyAgICBzbWxhbDIgICAgICAgICAgdjI0LjRzLCB2 NS44aCwgWEZJWF9QXzBfNzY1ICAgLyogaGkgejEgKyBNVUxUSVBMWSh0bXAxMywgWEZJWF9QXzBf NzY1KSAqLwo+ICsgICAgc21sYWwgICAgICAgICAgIHYyMi40cywgdjcuNGgsIFhGSVhfTl8xXzg0 NyAgIC8qIGxvIHoxICsgTVVMVElQTFkodG1wMTIsIFhGSVhfTl8xXzg0NykgKi8KPiArICAgIHNt bGFsMiAgICAgICAgICB2MjUuNHMsIHY3LjhoLCBYRklYX05fMV84NDcgICAvKiBoaSB6MSArIE1V TFRJUExZKHRtcDEyLCBYRklYX05fMV84NDcpICovCj4gKwo+ICsgICAgcnNocm4gICAgICAgICAg IHYxOC40aCwgdjE4LjRzLCAjREVTQ0FMRV9QMQo+ICsgICAgcnNocm4gICAgICAgICAgIHYyMi40 aCwgdjIyLjRzLCAjREVTQ0FMRV9QMQo+ICsgICAgcnNocm4yICAgICAgICAgIHYxOC44aCwgdjI0 LjRzLCAjREVTQ0FMRV9QMSAgLyogZGF0YXB0clsyXSA9IChEQ1RFTEVNKURFU0NBTEUoejEgKyBN VUxUSVBMWSh0bXAxMywgWEZJWF9QXzBfNzY1KSwgQ09OU1RfQklUUy1QQVNTMV9CSVRTKTsgKi8K PiArICAgIHJzaHJuMiAgICAgICAgICB2MjIuOGgsIHYyNS40cywgI0RFU0NBTEVfUDEgIC8qIGRh dGFwdHJbNl0gPSAoRENURUxFTSlERVNDQUxFKHoxICsgTVVMVElQTFkodG1wMTIsIFhGSVhfTl8x Xzg0NyksIENPTlNUX0JJVFMtUEFTUzFfQklUUyk7ICovCj4gKwo+ICsgICAgLyogT2RkIHBhcnQg Ki8KPiArCj4gKyAgICBhZGQgICAgICAgICAgICAgdjIuOGgsIHYyOC44aCwgdjMxLjhoICAgICAg ICAvKiB6MSA9IHRtcDQgKyB0bXA3OyAqLwo+ICsgICAgYWRkICAgICAgICAgICAgIHYzLjhoLCB2 MjkuOGgsIHYzMC44aCAgICAgICAgLyogejIgPSB0bXA1ICsgdG1wNjsgKi8KPiArICAgIGFkZCAg ICAgICAgICAgICB2Ni44aCwgdjI4LjhoLCB2MzAuOGggICAgICAgIC8qIHozID0gdG1wNCArIHRt cDY7ICovCj4gKyAgICBhZGQgICAgICAgICAgICAgdjcuOGgsIHYyOS44aCwgdjMxLjhoICAgICAg ICAvKiB6NCA9IHRtcDUgKyB0bXA3OyAqLwo+ICsgICAgc211bGwgICAgICAgICAgIHY0LjRzLCB2 Ni40aCwgWEZJWF9QXzFfMTc1ICAgLyogejUgbG8gPSB6MyBsbyAqIFhGSVhfUF8xXzE3NSAqLwo+ ICsgICAgc211bGwyICAgICAgICAgIHY1LjRzLCB2Ni44aCwgWEZJWF9QXzFfMTc1Cj4gKyAgICBz bWxhbCAgICAgICAgICAgdjQuNHMsIHY3LjRoLCBYRklYX1BfMV8xNzUgICAvKiB6NSA9IE1VTFRJ UExZKHozICsgejQsIEZJWF8xXzE3NTg3NTYwMik7ICovCj4gKyAgICBzbWxhbDIgICAgICAgICAg djUuNHMsIHY3LjhoLCBYRklYX1BfMV8xNzUKPiArCj4gKyAgICBzbXVsbDIgICAgICAgICAgdjI0 LjRzLCB2MjguOGgsIFhGSVhfUF8wXzI5OAo+ICsgICAgc211bGwyICAgICAgICAgIHYyNS40cywg djI5LjhoLCBYRklYX1BfMl8wNTMKPiArICAgIHNtdWxsMiAgICAgICAgICB2MjYuNHMsIHYzMC44 aCwgWEZJWF9QXzNfMDcyCj4gKyAgICBzbXVsbDIgICAgICAgICAgdjI3LjRzLCB2MzEuOGgsIFhG SVhfUF8xXzUwMQo+ICsgICAgc211bGwgICAgICAgICAgIHYyMy40cywgdjI4LjRoLCBYRklYX1Bf MF8yOTggIC8qIHRtcDQgPSBNVUxUSVBMWSh0bXA0LCBGSVhfMF8yOTg2MzEzMzYpOyAqLwo+ICsg ICAgc211bGwgICAgICAgICAgIHYyMS40cywgdjI5LjRoLCBYRklYX1BfMl8wNTMgIC8qIHRtcDUg PSBNVUxUSVBMWSh0bXA1LCBGSVhfMl8wNTMxMTk4NjkpOyAqLwo+ICsgICAgc211bGwgICAgICAg ICAgIHYxOS40cywgdjMwLjRoLCBYRklYX1BfM18wNzIgIC8qIHRtcDYgPSBNVUxUSVBMWSh0bXA2 LCBGSVhfM18wNzI3MTEwMjYpOyAqLwo+ICsgICAgc211bGwgICAgICAgICAgIHYxNy40cywgdjMx LjRoLCBYRklYX1BfMV81MDEgIC8qIHRtcDcgPSBNVUxUSVBMWSh0bXA3LCBGSVhfMV81MDEzMjEx MTApOyAqLwo+ICsKPiArICAgIHNtdWxsMiAgICAgICAgICB2MjguNHMsIHYyLjhoLCBYRklYX05f MF84OTkKPiArICAgIHNtdWxsMiAgICAgICAgICB2MjkuNHMsIHYzLjhoLCBYRklYX05fMl81NjIK PiArICAgIHNtdWxsMiAgICAgICAgICB2MzAuNHMsIHY2LjhoLCBYRklYX05fMV85NjEKPiArICAg IHNtdWxsMiAgICAgICAgICB2MzEuNHMsIHY3LjhoLCBYRklYX05fMF8zOTAKPiArICAgIHNtdWxs ICAgICAgICAgICB2Mi40cywgdjIuNGgsIFhGSVhfTl8wXzg5OSAgICAvKiB6MSA9IE1VTFRJUExZ KHoxLCAtRklYXzBfODk5OTc2MjIzKTsgKi8KPiArICAgIHNtdWxsICAgICAgICAgICB2My40cywg djMuNGgsIFhGSVhfTl8yXzU2MiAgICAvKiB6MiA9IE1VTFRJUExZKHoyLCAtRklYXzJfNTYyOTE1 NDQ3KTsgKi8KPiArICAgIHNtdWxsICAgICAgICAgICB2Ni40cywgdjYuNGgsIFhGSVhfTl8xXzk2 MSAgICAvKiB6MyA9IE1VTFRJUExZKHozLCAtRklYXzFfOTYxNTcwNTYwKTsgKi8KPiArICAgIHNt dWxsICAgICAgICAgICB2Ny40cywgdjcuNGgsIFhGSVhfTl8wXzM5MCAgICAvKiB6NCA9IE1VTFRJ UExZKHo0LCAtRklYXzBfMzkwMTgwNjQ0KTsgKi8KPiArCj4gKyAgICBhZGQgICAgICAgICAgICAg djYuNHMsIHY2LjRzLCB2NC40cyAgICAvKiB6MyArPSB6NSAqLwo+ICsgICAgYWRkICAgICAgICAg ICAgIHYzMC40cywgdjMwLjRzLCB2NS40cwo+ICsgICAgYWRkICAgICAgICAgICAgIHY3LjRzLCB2 Ny40cywgdjQuNHMgICAgLyogejQgKz0gejUgKi8KPiArICAgIGFkZCAgICAgICAgICAgICB2MzEu NHMsIHYzMS40cywgdjUuNHMKPiArCj4gKyAgICBhZGQgICAgICAgICAgICAgdjIzLjRzLCB2MjMu NHMsIHYyLjRzICAgLyogdG1wNCArPSB6MSAqLwo+ICsgICAgYWRkICAgICAgICAgICAgIHYyNC40 cywgdjI0LjRzLCB2MjguNHMKPiArICAgIGFkZCAgICAgICAgICAgICB2MjEuNHMsIHYyMS40cywg djMuNHMgICAvKiB0bXA1ICs9IHoyICovCj4gKyAgICBhZGQgICAgICAgICAgICAgdjI1LjRzLCB2 MjUuNHMsIHYyOS40cwo+ICsgICAgYWRkICAgICAgICAgICAgIHYxOS40cywgdjE5LjRzLCB2Ni40 cyAgIC8qIHRtcDYgKz0gejMgKi8KPiArICAgIGFkZCAgICAgICAgICAgICB2MjYuNHMsIHYyNi40 cywgdjMwLjRzCj4gKyAgICBhZGQgICAgICAgICAgICAgdjE3LjRzLCB2MTcuNHMsIHY3LjRzICAg LyogdG1wNyArPSB6NCAqLwo+ICsgICAgYWRkICAgICAgICAgICAgIHYyNy40cywgdjI3LjRzLCB2 MzEuNHMKPiArCj4gKyAgICBhZGQgICAgICAgICAgICAgdjIzLjRzLCB2MjMuNHMsIHY2LjRzICAg LyogdG1wNCArPSB6MyAqLwo+ICsgICAgYWRkICAgICAgICAgICAgIHYyNC40cywgdjI0LjRzLCB2 MzAuNHMKPiArICAgIGFkZCAgICAgICAgICAgICB2MjEuNHMsIHYyMS40cywgdjcuNHMgICAvKiB0 bXA1ICs9IHo0ICovCj4gKyAgICBhZGQgICAgICAgICAgICAgdjI1LjRzLCB2MjUuNHMsIHYzMS40 cwo+ICsgICAgYWRkICAgICAgICAgICAgIHYxOS40cywgdjE5LjRzLCB2My40cyAgIC8qIHRtcDYg Kz0gejIgKi8KPiArICAgIGFkZCAgICAgICAgICAgICB2MjYuNHMsIHYyNi40cywgdjI5LjRzCj4g KyAgICBhZGQgICAgICAgICAgICAgdjE3LjRzLCB2MTcuNHMsIHYyLjRzICAgLyogdG1wNyArPSB6 MSAqLwo+ICsgICAgYWRkICAgICAgICAgICAgIHYyNy40cywgdjI3LjRzLCB2MjguNHMKPiArCj4g KyAgICByc2hybiAgICAgICAgICAgdjIzLjRoLCB2MjMuNHMsICNERVNDQUxFX1AxCj4gKyAgICBy c2hybiAgICAgICAgICAgdjIxLjRoLCB2MjEuNHMsICNERVNDQUxFX1AxCj4gKyAgICByc2hybiAg ICAgICAgICAgdjE5LjRoLCB2MTkuNHMsICNERVNDQUxFX1AxCj4gKyAgICByc2hybiAgICAgICAg ICAgdjE3LjRoLCB2MTcuNHMsICNERVNDQUxFX1AxCj4gKyAgICByc2hybjIgICAgICAgICAgdjIz LjhoLCB2MjQuNHMsICNERVNDQUxFX1AxICAvKiBkYXRhcHRyWzddID0gKERDVEVMRU0pREVTQ0FM RSh0bXA0ICsgejEgKyB6MywgQ09OU1RfQklUUy1QQVNTMV9CSVRTKTsgKi8KPiArICAgIHJzaHJu MiAgICAgICAgICB2MjEuOGgsIHYyNS40cywgI0RFU0NBTEVfUDEgIC8qIGRhdGFwdHJbNV0gPSAo RENURUxFTSlERVNDQUxFKHRtcDUgKyB6MiArIHo0LCBDT05TVF9CSVRTLVBBU1MxX0JJVFMpOyAq Lwo+ICsgICAgcnNocm4yICAgICAgICAgIHYxOS44aCwgdjI2LjRzLCAjREVTQ0FMRV9QMSAgLyog ZGF0YXB0clszXSA9IChEQ1RFTEVNKURFU0NBTEUodG1wNiArIHoyICsgejMsIENPTlNUX0JJVFMt UEFTUzFfQklUUyk7ICovCj4gKyAgICByc2hybjIgICAgICAgICAgdjE3LjhoLCB2MjcuNHMsICNE RVNDQUxFX1AxICAvKiBkYXRhcHRyWzFdID0gKERDVEVMRU0pREVTQ0FMRSh0bXA3ICsgejEgKyB6 NCwgQ09OU1RfQklUUy1QQVNTMV9CSVRTKTsgKi8KPiArCj4gKyAgICAvKiBUcmFuc3Bvc2UgKi8K PiArICAgIHRyYW5zcG9zZV84eDhIICB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIs IHYyMywgdjMxLCB2Mgo+ICsKPiArICAgIC8qIDEtRCBGRENUICovCj4gKyAgICBhZGQgICAgICAg ICAgICAgdjI0LjhoLCB2MTYuOGgsIHYyMy44aCAgLyogdG1wMCA9IGRhdGFwdHJbMF0gKyBkYXRh cHRyWzddOyAqLwo+ICsgICAgc3ViICAgICAgICAgICAgIHYzMS44aCwgdjE2LjhoLCB2MjMuOGgg IC8qIHRtcDcgPSBkYXRhcHRyWzBdIC0gZGF0YXB0cls3XTsgKi8KPiArICAgIGFkZCAgICAgICAg ICAgICB2MjUuOGgsIHYxNy44aCwgdjIyLjhoICAvKiB0bXAxID0gZGF0YXB0clsxXSArIGRhdGFw dHJbNl07ICovCj4gKyAgICBzdWIgICAgICAgICAgICAgdjMwLjhoLCB2MTcuOGgsIHYyMi44aCAg LyogdG1wNiA9IGRhdGFwdHJbMV0gLSBkYXRhcHRyWzZdOyAqLwo+ICsgICAgYWRkICAgICAgICAg ICAgIHYyNi44aCwgdjE4LjhoLCB2MjEuOGggIC8qIHRtcDIgPSBkYXRhcHRyWzJdICsgZGF0YXB0 cls1XTsgKi8KPiArICAgIHN1YiAgICAgICAgICAgICB2MjkuOGgsIHYxOC44aCwgdjIxLjhoICAv KiB0bXA1ID0gZGF0YXB0clsyXSAtIGRhdGFwdHJbNV07ICovCj4gKyAgICBhZGQgICAgICAgICAg ICAgdjI3LjhoLCB2MTkuOGgsIHYyMC44aCAgLyogdG1wMyA9IGRhdGFwdHJbM10gKyBkYXRhcHRy WzRdOyAqLwo+ICsgICAgc3ViICAgICAgICAgICAgIHYyOC44aCwgdjE5LjhoLCB2MjAuOGggIC8q IHRtcDQgPSBkYXRhcHRyWzNdIC0gZGF0YXB0cls0XTsgKi8KPiArCj4gKyAgICAvKiBldmVuIHBh cnQgKi8KPiArICAgIGFkZCAgICAgICAgICAgICB2NC44aCwgdjI0LjhoLCB2MjcuOGggICAvKiB0 bXAxMCA9IHRtcDAgKyB0bXAzOyAqLwo+ICsgICAgc3ViICAgICAgICAgICAgIHY1LjhoLCB2MjQu OGgsIHYyNy44aCAgIC8qIHRtcDEzID0gdG1wMCAtIHRtcDM7ICovCj4gKyAgICBhZGQgICAgICAg ICAgICAgdjYuOGgsIHYyNS44aCwgdjI2LjhoICAgLyogdG1wMTEgPSB0bXAxICsgdG1wMjsgKi8K PiArICAgIHN1YiAgICAgICAgICAgICB2Ny44aCwgdjI1LjhoLCB2MjYuOGggICAvKiB0bXAxMiA9 IHRtcDEgLSB0bXAyOyAqLwo+ICsKPiArICAgIGFkZCAgICAgICAgICAgICB2MTYuOGgsIHY0Ljho LCB2Ni44aCAgIC8qIHRtcDEwICsgdG1wMTEgKi8KPiArICAgIHN1YiAgICAgICAgICAgICB2MjAu OGgsIHY0LjhoLCB2Ni44aCAgIC8qIHRtcDEwIC0gdG1wMTEgKi8KPiArCj4gKyAgICBhZGQgICAg ICAgICAgICAgdjE4LjhoLCB2Ny44aCwgdjUuOGggICAvKiB0bXAxMiArIHRtcDEzICovCj4gKwo+ ICsgICAgc3JzaHIgICAgICAgICAgIHYxNi44aCwgdjE2LjhoLCAjUEFTUzFfQklUUyAgLyogZGF0 YXB0clswXSA9IChEQ1RFTEVNKURFU0NBTEUodG1wMTAgKyB0bXAxMSwgUEFTUzFfQklUUyk7ICov Cj4gKyAgICBzcnNociAgICAgICAgICAgdjIwLjhoLCB2MjAuOGgsICNQQVNTMV9CSVRTICAvKiBk YXRhcHRyWzRdID0gKERDVEVMRU0pREVTQ0FMRSh0bXAxMCAtIHRtcDExLCBQQVNTMV9CSVRTKTsg Ki8KPiArCj4gKyAgICBzbXVsbDIgICAgICAgICAgdjI0LjRzLCB2MTguOGgsIFhGSVhfUF8wXzU0 MSAgLyogejEgaGkgPSBNVUxUSVBMWSh0bXAxMiArIHRtcDEzLCBYRklYX1BfMF81NDEpOyAqLwo+ ICsgICAgc211bGwgICAgICAgICAgIHYxOC40cywgdjE4LjRoLCBYRklYX1BfMF81NDEgIC8qIHox IGxvID0gTVVMVElQTFkodG1wMTIgKyB0bXAxMywgWEZJWF9QXzBfNTQxKTsgKi8KPiArICAgIG1v diAgICAgICAgICAgICB2MjIuMTZiLCB2MTguMTZiCj4gKyAgICBtb3YgICAgICAgICAgICAgdjI1 LjE2YiwgdjI0LjE2Ygo+ICsKPiArICAgIHNtbGFsICAgICAgICAgICB2MTguNHMsIHY1LjRoLCBY RklYX1BfMF83NjUgICAvKiBsbyB6MSArIE1VTFRJUExZKHRtcDEzLCBYRklYX1BfMF83NjUpICov Cj4gKyAgICBzbWxhbDIgICAgICAgICAgdjI0LjRzLCB2NS44aCwgWEZJWF9QXzBfNzY1ICAgLyog aGkgejEgKyBNVUxUSVBMWSh0bXAxMywgWEZJWF9QXzBfNzY1KSAqLwo+ICsgICAgc21sYWwgICAg ICAgICAgIHYyMi40cywgdjcuNGgsIFhGSVhfTl8xXzg0NyAgIC8qIGxvIHoxICsgTVVMVElQTFko dG1wMTIsIFhGSVhfTl8xXzg0NykgKi8KPiArICAgIHNtbGFsMiAgICAgICAgICB2MjUuNHMsIHY3 LjhoLCBYRklYX05fMV84NDcgICAvKiBoaSB6MSArIE1VTFRJUExZKHRtcDEyLCBYRklYX05fMV84 NDcpICovCj4gKwo+ICsgICAgcnNocm4gICAgICAgICAgIHYxOC40aCwgdjE4LjRzLCAjREVTQ0FM RV9QMgo+ICsgICAgcnNocm4gICAgICAgICAgIHYyMi40aCwgdjIyLjRzLCAjREVTQ0FMRV9QMgo+ ICsgICAgcnNocm4yICAgICAgICAgIHYxOC44aCwgdjI0LjRzLCAjREVTQ0FMRV9QMiAgLyogZGF0 YXB0clsyXSA9IChEQ1RFTEVNKURFU0NBTEUoejEgKyBNVUxUSVBMWSh0bXAxMywgWEZJWF9QXzBf NzY1KSwgQ09OU1RfQklUUytQQVNTMV9CSVRTKTsgKi8KPiArICAgIHJzaHJuMiAgICAgICAgICB2 MjIuOGgsIHYyNS40cywgI0RFU0NBTEVfUDIgIC8qIGRhdGFwdHJbNl0gPSAoRENURUxFTSlERVND QUxFKHoxICsgTVVMVElQTFkodG1wMTIsIFhGSVhfTl8xXzg0NyksIENPTlNUX0JJVFMrUEFTUzFf QklUUyk7ICovCj4gKwo+ICsgICAgLyogT2RkIHBhcnQgKi8KPiArICAgIGFkZCAgICAgICAgICAg ICB2Mi44aCwgdjI4LjhoLCB2MzEuOGggICAvKiB6MSA9IHRtcDQgKyB0bXA3OyAqLwo+ICsgICAg YWRkICAgICAgICAgICAgIHYzLjhoLCB2MjkuOGgsIHYzMC44aCAgIC8qIHoyID0gdG1wNSArIHRt cDY7ICovCj4gKyAgICBhZGQgICAgICAgICAgICAgdjYuOGgsIHYyOC44aCwgdjMwLjhoICAgLyog ejMgPSB0bXA0ICsgdG1wNjsgKi8KPiArICAgIGFkZCAgICAgICAgICAgICB2Ny44aCwgdjI5Ljho LCB2MzEuOGggICAvKiB6NCA9IHRtcDUgKyB0bXA3OyAqLwo+ICsKPiArICAgIHNtdWxsICAgICAg ICAgICB2NC40cywgdjYuNGgsIFhGSVhfUF8xXzE3NSAgIC8qIHo1IGxvID0gejMgbG8gKiBYRklY X1BfMV8xNzUgKi8KPiArICAgIHNtdWxsMiAgICAgICAgICB2NS40cywgdjYuOGgsIFhGSVhfUF8x XzE3NQo+ICsgICAgc21sYWwgICAgICAgICAgIHY0LjRzLCB2Ny40aCwgWEZJWF9QXzFfMTc1ICAg LyogejUgPSBNVUxUSVBMWSh6MyArIHo0LCBGSVhfMV8xNzU4NzU2MDIpOyAqLwo+ICsgICAgc21s YWwyICAgICAgICAgIHY1LjRzLCB2Ny44aCwgWEZJWF9QXzFfMTc1Cj4gKwo+ICsgICAgc211bGwy ICAgICAgICAgIHYyNC40cywgdjI4LjhoLCBYRklYX1BfMF8yOTgKPiArICAgIHNtdWxsMiAgICAg ICAgICB2MjUuNHMsIHYyOS44aCwgWEZJWF9QXzJfMDUzCj4gKyAgICBzbXVsbDIgICAgICAgICAg djI2LjRzLCB2MzAuOGgsIFhGSVhfUF8zXzA3Mgo+ICsgICAgc211bGwyICAgICAgICAgIHYyNy40 cywgdjMxLjhoLCBYRklYX1BfMV81MDEKPiArICAgIHNtdWxsICAgICAgICAgICB2MjMuNHMsIHYy OC40aCwgWEZJWF9QXzBfMjk4ICAvKiB0bXA0ID0gTVVMVElQTFkodG1wNCwgRklYXzBfMjk4NjMx MzM2KTsgKi8KPiArICAgIHNtdWxsICAgICAgICAgICB2MjEuNHMsIHYyOS40aCwgWEZJWF9QXzJf MDUzICAvKiB0bXA1ID0gTVVMVElQTFkodG1wNSwgRklYXzJfMDUzMTE5ODY5KTsgKi8KPiArICAg IHNtdWxsICAgICAgICAgICB2MTkuNHMsIHYzMC40aCwgWEZJWF9QXzNfMDcyICAvKiB0bXA2ID0g TVVMVElQTFkodG1wNiwgRklYXzNfMDcyNzExMDI2KTsgKi8KPiArICAgIHNtdWxsICAgICAgICAg ICB2MTcuNHMsIHYzMS40aCwgWEZJWF9QXzFfNTAxICAvKiB0bXA3ID0gTVVMVElQTFkodG1wNywg RklYXzFfNTAxMzIxMTEwKTsgKi8KPiArCj4gKyAgICBzbXVsbDIgICAgICAgICAgdjI4LjRzLCB2 Mi44aCwgWEZJWF9OXzBfODk5Cj4gKyAgICBzbXVsbDIgICAgICAgICAgdjI5LjRzLCB2My44aCwg WEZJWF9OXzJfNTYyCj4gKyAgICBzbXVsbDIgICAgICAgICAgdjMwLjRzLCB2Ni44aCwgWEZJWF9O XzFfOTYxCj4gKyAgICBzbXVsbDIgICAgICAgICAgdjMxLjRzLCB2Ny44aCwgWEZJWF9OXzBfMzkw Cj4gKyAgICBzbXVsbCAgICAgICAgICAgdjIuNHMsIHYyLjRoLCBYRklYX05fMF84OTkgICAgLyog ejEgPSBNVUxUSVBMWSh6MSwgLUZJWF8wXzg5OTk3NjIyMyk7ICovCj4gKyAgICBzbXVsbCAgICAg ICAgICAgdjMuNHMsIHYzLjRoLCBYRklYX05fMl81NjIgICAgLyogejIgPSBNVUxUSVBMWSh6Miwg LUZJWF8yXzU2MjkxNTQ0Nyk7ICovCj4gKyAgICBzbXVsbCAgICAgICAgICAgdjYuNHMsIHY2LjRo LCBYRklYX05fMV85NjEgICAgLyogejMgPSBNVUxUSVBMWSh6MywgLUZJWF8xXzk2MTU3MDU2MCk7 ICovCj4gKyAgICBzbXVsbCAgICAgICAgICAgdjcuNHMsIHY3LjRoLCBYRklYX05fMF8zOTAgICAg LyogejQgPSBNVUxUSVBMWSh6NCwgLUZJWF8wXzM5MDE4MDY0NCk7ICovCj4gKwo+ICsgICAgYWRk ICAgICAgICAgICAgIHY2LjRzLCB2Ni40cywgdjQuNHMgICAgLyogejMgKz0gejUgKi8KPiArICAg IGFkZCAgICAgICAgICAgICB2MzAuNHMsIHYzMC40cywgdjUuNHMKPiArICAgIGFkZCAgICAgICAg ICAgICB2Ny40cywgdjcuNHMsIHY0LjRzICAgIC8qIHo0ICs9IHo1ICovCj4gKyAgICBhZGQgICAg ICAgICAgICAgdjMxLjRzLCB2MzEuNHMsIHY1LjRzCj4gKwo+ICsgICAgYWRkICAgICAgICAgICAg IHYyMy40cywgdjIzLjRzLCB2Mi40cyAgIC8qIHRtcDQgKz0gejEgKi8KPiArICAgIGFkZCAgICAg ICAgICAgICB2MjQuNHMsIHYyNC40cywgdjI4LjRzCj4gKyAgICBhZGQgICAgICAgICAgICAgdjIx LjRzLCB2MjEuNHMsIHYzLjRzICAgLyogdG1wNSArPSB6MiAqLwo+ICsgICAgYWRkICAgICAgICAg ICAgIHYyNS40cywgdjI1LjRzLCB2MjkuNHMKPiArICAgIGFkZCAgICAgICAgICAgICB2MTkuNHMs IHYxOS40cywgdjYuNHMgICAvKiB0bXA2ICs9IHozICovCj4gKyAgICBhZGQgICAgICAgICAgICAg djI2LjRzLCB2MjYuNHMsIHYzMC40cwo+ICsgICAgYWRkICAgICAgICAgICAgIHYxNy40cywgdjE3 LjRzLCB2Ny40cyAgIC8qIHRtcDcgKz0gejQgKi8KPiArICAgIGFkZCAgICAgICAgICAgICB2Mjcu NHMsIHYyNy40cywgdjMxLjRzCj4gKwo+ICsgICAgYWRkICAgICAgICAgICAgIHYyMy40cywgdjIz LjRzLCB2Ni40cyAgIC8qIHRtcDQgKz0gejMgKi8KPiArICAgIGFkZCAgICAgICAgICAgICB2MjQu NHMsIHYyNC40cywgdjMwLjRzCj4gKyAgICBhZGQgICAgICAgICAgICAgdjIxLjRzLCB2MjEuNHMs IHY3LjRzICAgLyogdG1wNSArPSB6NCAqLwo+ICsgICAgYWRkICAgICAgICAgICAgIHYyNS40cywg djI1LjRzLCB2MzEuNHMKPiArICAgIGFkZCAgICAgICAgICAgICB2MTkuNHMsIHYxOS40cywgdjMu NHMgICAvKiB0bXA2ICs9IHoyICovCj4gKyAgICBhZGQgICAgICAgICAgICAgdjI2LjRzLCB2MjYu NHMsIHYyOS40cwo+ICsgICAgYWRkICAgICAgICAgICAgIHYxNy40cywgdjE3LjRzLCB2Mi40cyAg IC8qIHRtcDcgKz0gejEgKi8KPiArICAgIGFkZCAgICAgICAgICAgICB2MjcuNHMsIHYyNy40cywg djI4LjRzCj4gKwo+ICsgICAgcnNocm4gICAgICAgICAgIHYyMy40aCwgdjIzLjRzLCAjREVTQ0FM RV9QMgo+ICsgICAgcnNocm4gICAgICAgICAgIHYyMS40aCwgdjIxLjRzLCAjREVTQ0FMRV9QMgo+ ICsgICAgcnNocm4gICAgICAgICAgIHYxOS40aCwgdjE5LjRzLCAjREVTQ0FMRV9QMgo+ICsgICAg cnNocm4gICAgICAgICAgIHYxNy40aCwgdjE3LjRzLCAjREVTQ0FMRV9QMgo+ICsgICAgcnNocm4y ICAgICAgICAgIHYyMy44aCwgdjI0LjRzLCAjREVTQ0FMRV9QMiAgLyogZGF0YXB0cls3XSA9IChE Q1RFTEVNKURFU0NBTEUodG1wNCArIHoxICsgejMsIENPTlNUX0JJVFMrUEFTUzFfQklUUyk7ICov Cj4gKyAgICByc2hybjIgICAgICAgICAgdjIxLjhoLCB2MjUuNHMsICNERVNDQUxFX1AyICAvKiBk YXRhcHRyWzVdID0gKERDVEVMRU0pREVTQ0FMRSh0bXA1ICsgejIgKyB6NCwgQ09OU1RfQklUUytQ QVNTMV9CSVRTKTsgKi8KPiArICAgIHJzaHJuMiAgICAgICAgICB2MTkuOGgsIHYyNi40cywgI0RF U0NBTEVfUDIgIC8qIGRhdGFwdHJbM10gPSAoRENURUxFTSlERVNDQUxFKHRtcDYgKyB6MiArIHoz LCBDT05TVF9CSVRTK1BBU1MxX0JJVFMpOyAqLwo+ICsgICAgcnNocm4yICAgICAgICAgIHYxNy44 aCwgdjI3LjRzLCAjREVTQ0FMRV9QMiAgLyogZGF0YXB0clsxXSA9IChEQ1RFTEVNKURFU0NBTEUo dG1wNyArIHoxICsgejQsIENPTlNUX0JJVFMrUEFTUzFfQklUUyk7ICovCj4gKwo+ICsgICAgLyog c3RvcmUgcmVzdWx0cyAqLwo+ICsgICAgc3QxICAgICAgICAgICAgIHt2MTYuOGgsIHYxNy44aCwg djE4LjhoLCB2MTkuOGh9LCBbREFUQV0sIDY0Cj4gKyAgICBzdDEgICAgICAgICAgICAge3YyMC44 aCwgdjIxLjhoLCB2MjIuOGgsIHYyMy44aH0sIFtEQVRBXQo+ICsKPiArICAgIHJldAo+ICsKPiAr ICAgIC51bnJlcSAgICAgICAgICBEQVRBCj4gKyAgICAudW5yZXEgICAgICAgICAgVE1QCj4gK2Vu ZGZ1bmMKPiArCj4gKyN1bmRlZiBYRklYX1BfMF8yOTgKPiArI3VuZGVmIFhGSVhfTl8wXzM5MAo+ ICsjdW5kZWYgWEZJWF9QXzBfNTQxCj4gKyN1bmRlZiBYRklYX1BfMF83NjUKPiArI3VuZGVmIFhG SVhfTl8wXzg5OQo+ICsjdW5kZWYgWEZJWF9QXzFfMTc1Cj4gKyN1bmRlZiBYRklYX1BfMV81MDEK PiArI3VuZGVmIFhGSVhfTl8xXzg0Nwo+ICsjdW5kZWYgWEZJWF9OXzFfOTYxCj4gKyN1bmRlZiBY RklYX1BfMl8wNTMKPiArI3VuZGVmIFhGSVhfTl8yXzU2Mgo+ICsjdW5kZWYgWEZJWF9QXzNfMDcy Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYXZjb2RlYy5oIGIvbGliYXZjb2RlYy9hdmNvZGVj LmgKPiBpbmRleCA3ZmI0NGUyOGY0Li5mOWI4NmYxZDU4IDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29k ZWMvYXZjb2RlYy5oCj4gKysrIGIvbGliYXZjb2RlYy9hdmNvZGVjLmgKPiBAQCAtMTQ3Nyw2ICsx NDc3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQVZDb2RlY0NvbnRleHQgewo+ICAjZGVmaW5lIEZGX0RD VF9NTVggICAgIDMKPiAgI2RlZmluZSBGRl9EQ1RfQUxUSVZFQyA1Cj4gICNkZWZpbmUgRkZfRENU X0ZBQU4gICAgNgo+ICsjZGVmaW5lIEZGX0RDVF9ORU9OICAgIDcKPgo+ICAgICAgLyoqCj4gICAg ICAgKiBJRENUIGFsZ29yaXRobSwgc2VlIEZGX0lEQ1RfKiBiZWxvdy4KPiBkaWZmIC0tZ2l0IGEv bGliYXZjb2RlYy9mZGN0ZHNwLmMgYi9saWJhdmNvZGVjL2ZkY3Rkc3AuYwo+IGluZGV4IGY4YmEx NzQyNmMuLmQyMDU1OGNlODggMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9mZGN0ZHNwLmMKPiAr KysgYi9saWJhdmNvZGVjL2ZkY3Rkc3AuYwo+IEBAIC00Miw3ICs0Miw5IEBAIGF2X2NvbGQgdm9p ZCBmZl9mZGN0ZHNwX2luaXQoRkRDVERTUENvbnRleHQgKmMsIEFWQ29kZWNDb250ZXh0ICphdmN0 eCkKPiAgICAgICAgICBjLT5mZGN0MjQ4ID0gZmZfZmRjdDI0OF9pc2xvd184Owo+ICAgICAgfQo+ Cj4gLSNpZiBBUkNIX1BQQwo+ICsjaWYgQVJDSF9BQVJDSDY0Cj4gKyAgICBmZl9mZGN0ZHNwX2lu aXRfYWFyY2g2NChjLCBhdmN0eCwgaGlnaF9iaXRfZGVwdGgpOwo+ICsjZWxpZiBBUkNIX1BQQwo+ ICAgICAgZmZfZmRjdGRzcF9pbml0X3BwYyhjLCBhdmN0eCwgaGlnaF9iaXRfZGVwdGgpOwo+ICAj ZWxpZiBBUkNIX1g4Ngo+ICAgICAgZmZfZmRjdGRzcF9pbml0X3g4NihjLCBhdmN0eCwgaGlnaF9i aXRfZGVwdGgpOwo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2ZkY3Rkc3AuaCBiL2xpYmF2Y29k ZWMvZmRjdGRzcC5oCj4gaW5kZXggNzM3OGVhYjg3MC4uY2FkOTllZDdjYSAxMDA2NDQKPiAtLS0g YS9saWJhdmNvZGVjL2ZkY3Rkc3AuaAo+ICsrKyBiL2xpYmF2Y29kZWMvZmRjdGRzcC5oCj4gQEAg LTMyLDYgKzMyLDggQEAgdHlwZWRlZiBzdHJ1Y3QgRkRDVERTUENvbnRleHQgewo+Cj4gIEZGX1ZJ U0lCSUxJVFlfUFVTSF9ISURERU4KPiAgdm9pZCBmZl9mZGN0ZHNwX2luaXQoRkRDVERTUENvbnRl eHQgKmMsIHN0cnVjdCBBVkNvZGVjQ29udGV4dCAqYXZjdHgpOwo+ICt2b2lkIGZmX2ZkY3Rkc3Bf aW5pdF9hYXJjaDY0KEZEQ1REU1BDb250ZXh0ICpjLCBzdHJ1Y3QgQVZDb2RlY0NvbnRleHQgKmF2 Y3R4LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGhpZ2hfYml0X2Rl cHRoKTsKPiAgdm9pZCBmZl9mZGN0ZHNwX2luaXRfcHBjKEZEQ1REU1BDb250ZXh0ICpjLCBzdHJ1 Y3QgQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgaGlnaF9iaXRfZGVwdGgpOwo+ICB2b2lkIGZmX2ZkY3Rkc3BfaW5pdF94ODYoRkRDVERT UENvbnRleHQgKmMsIHN0cnVjdCBBVkNvZGVjQ29udGV4dCAqYXZjdHgsCj4gZGlmZiAtLWdpdCBh L2xpYmF2Y29kZWMvb3B0aW9uc190YWJsZS5oIGIvbGliYXZjb2RlYy9vcHRpb25zX3RhYmxlLmgK PiBpbmRleCBlZTI0M2Q5ODk0Li5kOWEzYzkyZjI4IDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMv b3B0aW9uc190YWJsZS5oCj4gKysrIGIvbGliYXZjb2RlYy9vcHRpb25zX3RhYmxlLmgKPiBAQCAt MTU5LDYgKzE1OSw3IEBAIHN0YXRpYyBjb25zdCBBVk9wdGlvbiBhdmNvZGVjX29wdGlvbnNbXSA9 IHsKPiAgeyJtbXgiLCBOVUxMLCAwLCBBVl9PUFRfVFlQRV9DT05TVCwgey5pNjQgPSBGRl9EQ1Rf TU1YIH0sIElOVF9NSU4sIElOVF9NQVgsIFZ8RSwgImRjdCJ9LAo+ICB7ImFsdGl2ZWMiLCBOVUxM LCAwLCBBVl9PUFRfVFlQRV9DT05TVCwgey5pNjQgPSBGRl9EQ1RfQUxUSVZFQyB9LCBJTlRfTUlO LCBJTlRfTUFYLCBWfEUsICJkY3QifSwKPiAgeyJmYWFuIiwgImZsb2F0aW5nIHBvaW50IEFBTiBE Q1QiLCAwLCBBVl9PUFRfVFlQRV9DT05TVCwgey5pNjQgPSBGRl9EQ1RfRkFBTiB9LCBJTlRfTUlO LCBJTlRfTUFYLCBWfEUsICJkY3QifSwKPiAreyJuZW9uIiwgTlVMTCwgMCwgQVZfT1BUX1RZUEVf Q09OU1QsIHsuaTY0ID0gRkZfRENUX05FT04gfSwgSU5UX01JTiwgSU5UX01BWCwgVnxFLCAiZGN0 In0sCj4gIHsibHVtaV9tYXNrIiwgImNvbXByZXNzZXMgYnJpZ2h0IGFyZWFzIHN0cm9uZ2VyIHRo YW4gbWVkaXVtIG9uZXMiLCBPRkZTRVQobHVtaV9tYXNraW5nKSwgQVZfT1BUX1RZUEVfRkxPQVQs IHsuZGJsID0gMCB9LCAtRkxUX01BWCwgRkxUX01BWCwgVnxFfSwKPiAgeyJ0Y3BseF9tYXNrIiwg InRlbXBvcmFsIGNvbXBsZXhpdHkgbWFza2luZyIsIE9GRlNFVCh0ZW1wb3JhbF9jcGx4X21hc2tp bmcpLCBBVl9PUFRfVFlQRV9GTE9BVCwgey5kYmwgPSAwIH0sIC1GTFRfTUFYLCBGTFRfTUFYLCBW fEV9LAo+ICB7InNjcGx4X21hc2siLCAic3BhdGlhbCBjb21wbGV4aXR5IG1hc2tpbmciLCBPRkZT RVQoc3BhdGlhbF9jcGx4X21hc2tpbmcpLCBBVl9PUFRfVFlQRV9GTE9BVCwgey5kYmwgPSAwIH0s IC1GTFRfTUFYLCBGTFRfTUFYLCBWfEV9LAo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Rlc3Rz L2FhcmNoNjQvZGN0LmMgYi9saWJhdmNvZGVjL3Rlc3RzL2FhcmNoNjQvZGN0LmMKPiBpbmRleCA5 ZTQ3NzMyOGQ1Li5lOThhODg3Y2Q1IDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvdGVzdHMvYWFy Y2g2NC9kY3QuYwo+ICsrKyBiL2xpYmF2Y29kZWMvdGVzdHMvYWFyY2g2NC9kY3QuYwo+IEBAIC0x OSw5ICsxOSwxMSBAQAo+ICAjaW5jbHVkZSAiY29uZmlnLmgiCj4KPiAgI2luY2x1ZGUgImxpYmF2 dXRpbC9jcHUuaCIKPiArI2luY2x1ZGUgImxpYmF2Y29kZWMvYWFyY2g2NC9mZGN0LmgiCj4gICNp bmNsdWRlICJsaWJhdmNvZGVjL2FhcmNoNjQvaWRjdC5oIgo+Cj4gIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgYWxnbyBmZGN0X3RhYl9hcmNoW10gPSB7Cj4gKyAgICB7ICJuZW9uIiwgZmZfZmRjdF9uZW9u LCBGRl9JRENUX1BFUk1fTk9ORSwgQVZfQ1BVX0ZMQUdfTkVPTiB9LAo+ICAgICAgeyAwIH0KPiAg fTsKPgo+IC0tCj4gMi4zMC4yCj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVn Lm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRv IHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVx dWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=