From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id A2A3F4BAC5 for ; Sat, 30 Aug 2025 12:45:58 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'lx+U0urbJMy/xRBJZqDBdzXJzHqnmws3G88R1HRdp6E=', expected b'Xc/R2he2w2DRc2PxB6KhrIglzUe81fswlXS29voAJGE=')) header.d=gmail.com header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1756557937; h=mime-version : references : in-reply-to : date : message-id : to : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=lx+U0urbJMy/xRBJZqDBdzXJzHqnmws3G88R1HRdp6E=; b=ydYaC2VYRPU2u6Qdwo5DqY3vwKYoTQgZEjT7G2s1++lng7yPg8hia5dOMI5ssGJv473X0 TCP98XEQ9655JumKfBYzJcuD33RZUWc8X0LnBdplhvUDxhaEC25mt8OApC1H6tE/vb8k3yx rqVUj2nbbNciZ/hhnIN3hgcfLLjH9br/uNwA/psGF4I1fDQATUZig1PZXEAw0PqVB50Z/dK y/TxNi3Uwb1vZc8qZp0S4k7zUXUiYa6gBV2z0LpwJ+SiwZUohuE5/ykYIoGV2YxrWQPkkE5 E7lkCPfglLxZXWguTQJaE+8lULTjsHHd/4dHxdJX6xRgUnYx3Zmvcdb6EoZQ== Received: from [172.19.0.4] (unknown [172.19.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 5A2BB68D766; Sat, 30 Aug 2025 15:45:37 +0300 (EEST) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1756557925; b=DXGEGo/jTEYDHWpZNTFZmOYEsN2iVJHJKxw4snMS7vIF2bIeC1CNTz3isjuJgi1BdZD/r vZqix8CIbvWsi8pRbLTqJl6uj51eCekeLgKyGk2Edab03vHLABsGmBJnw/awBcfEKbxnf/m CxQGUtMD3RKu9ljhczDu0DQbVU3NWXhlBQhZvXjiwQSbr88HfBOR5mpzUSArhTFhwuTS9Ar LVEe6ZZj81HdoW+XIEbMb5zrB4EAq8JQbVfwfedV1cgHalun3X89kJUoAssGksczL/mTP4Q KuHTbjpWtenRlxehMwSIkjnEJXJpMKjThfOv6Sufw3QSSK8fLdPol4HDgSJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1756557925; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=lx+U0urbJMy/xRBJZqDBdzXJzHqnmws3G88R1HRdp6E=; b=X6+Njf3hvzl7pul1aCYSuiyOFLOJ7peoY9R0s+C5Bqeh9Kkco8OdTyrxo5Xwo4nyJ6Nt7 f3NnwxOzn/D3xO8hNDepAXtQSsA84t5Hb3M+L7XAFwkn3IwR+tTgHfimo63xyVSDbJ/Sz2x UU2/VVDwturmpqvW/PdbiQCcZmCYNCk7VNl3Aba1G5/OekyK9uRI0yxePwFT3cxgA0JkSRz 6MLzAVHy+EHhJHSHFisMjGDyO7aULJNOKZwTd7Wf8eouXMeX0GswcZuYJTUcwxm0FTipZFI XdOaYIwFbqULKKO5V4Dmqa/nQx7U3g7YrVpIkKY50aS3+p1xT3aonFxXH+lA== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=gmail.com; arc=none; dmarc=pass header.from=gmail.com policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=gmail.com; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=gmail.com policy.dmarc=quarantine Received: from mail-yb1-f174.google.com (mail-yb1-f174.google.com [209.85.219.174]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 7995C68D766 for ; Sat, 30 Aug 2025 15:45:11 +0300 (EEST) Received: by mail-yb1-f174.google.com with SMTP id 3f1490d57ef6-e96f14a6e97so2523259276.2 for ; Sat, 30 Aug 2025 05:45:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756557910; x=1757162710; darn=ffmpeg.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Xc/R2he2w2DRc2PxB6KhrIglzUe81fswlXS29voAJGE=; b=aTPzU36j0V2hM5gqQ89iFjCWhN1e/zU+J8EmHu3QQ4M6TOsuXa/7/zOCykh02bMo4L Kg0NXeoGLJU6XLFZnli78AitrPziQMgHzVGJwTYofS08rtE5TmEez7orx5gbcGESku0w Zl9iyjvxdp7bbwWgarpljEhrukWgNDrcaWNF2/sEvJ1WuV8SMZb89FZrJ9WirmcEBfUw u81qCqnvRLdMbxtwf+/AnVz1bEO23ubSOGS0zobFzmBKKWWkIZudppgiDb08JRUkB7zg GC4rmc/CCVWLv11qKHR8w3/gHsPKlJhupdEAWnQGAKzZV3/3pDFZoihUZZCKn43uM2zb iJlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756557910; x=1757162710; h=cc: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=Xc/R2he2w2DRc2PxB6KhrIglzUe81fswlXS29voAJGE=; b=PsH0RCsRS85PX9OlGYI3eY75Hl2nxsdgfRm5YfSQCg6cJpnzRe2/UiSkgjQ3a8XzuP 1rzQgpp3gUx8L81frEH6hpPPT7xHFLwiNUHnKZRPvfs9yHBo5zPaaTl7aN43oGkOm/Ps S2upjmu1L7i6b5c7Q53j9/1+qeCvLI5AwehBQr8+U2Ewwmb2dwqZUEKaypziCnVywkrL nItaLK34v+dBdEXEkxHPv6A7kd6UDiBYtEftjE6nAQ9681oFLaqxA4++2t7K9hd7aOxv UT0/vBoTmiCv7yosHpspDoFNa1ITy9LqlUc3MJ+AKh8YViKYDyKosNQy9pBa6BF5P8xP j2zw== X-Gm-Message-State: AOJu0Yx4nmNVLjteL1Iykaj6N/xuWeE7FcL26PJxrjq1MU3+9CC2dFEf zxqCgvUDSo1zJU6v6HlTmm2XHgRGM7AJawjWeWMfldEumdyadyi1cc2DWgK4O32T+/vdrPgT1Rm laxEOiOctF9usyfNVzpG2FoFpg73aw35RhQ== X-Gm-Gg: ASbGncviguUkq6DxBcfdzlPWVZtMQrl9K/fzJXhnyaopPU1OqTNhyjApLtAIrWBWJlI jKJnkimlcVAd4cYdUmw3ZO5zpwRaXEiTVIX6VwkJLYA72x/HBqQ6zCslKpCPuwhomntveEN6E49 QSRI0Fz1tCCjY/7+0b6CanKiaFCWqDkl+HkH6iRHDLdRlazn6BlHpKdg17Ob6aTUZjaEpYloR4Z l7Iud1VIdpdoo2FTZDlOmELrNfzeoL6KdZYV/HVyFsbny8K7DjOJtKdnA== X-Google-Smtp-Source: AGHT+IHU8Ezdtdyx5vtJ2q+rXXl4Mp+ZjTd2P9v9uYjeOCZ98GSzTbUSlQlyTdo5qd35gu6/ap60LwTYQ57DvitmC+I= X-Received: by 2002:a05:6902:20c3:b0:e98:9c6d:978d with SMTP id 3f1490d57ef6-e98a585c7a2mr1609518276.48.1756557909651; Sat, 30 Aug 2025 05:45:09 -0700 (PDT) MIME-Version: 1.0 References: <20250709075652.5636-1-george.zaguri@gmail.com> <2f1aa58f-826a-bd98-7ac2-5918d17ca2d@martin.st> In-Reply-To: Date: Sat, 30 Aug 2025 13:44:58 +0100 X-Gm-Features: Ac12FXybztsTzWVuHBH1IM04ps4f6FHo26b217U6ProAN6KcHdEVIDVkIcy0Xj4 Message-ID: To: =?UTF-8?Q?Martin_Storsj=C3=B6?= Message-ID-Hash: HXVHZY7VXMTPNSKVM6QJO23MJI6MKP3A X-Message-ID-Hash: HXVHZY7VXMTPNSKVM6QJO23MJI6MKP3A X-MailFrom: SRS0=pBaC=3K=gmail.com=george.zaguri@ffmpeg.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Content-Filtered-By: Mailman/MimeDel 3.3.10 X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] Re: [PATCH] avcodec/aarch64/vvc: optimised alf_classify function 8/10/12bit of vvc codec for aarch64 List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: George Zaguri via ffmpeg-devel Cc: FFmpeg development discussions and patches , George Zaguri Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Archived-At: List-Archive: List-Post: SGVsbG8gTWFydGluLA0KSSBqdXN0IGZvdW5kIGEgdGltZSB0byBoYXZlIGEgbG9vayBhdCB5b3Vy IGNvbW1lbnRzLCBtb3N0bHkgSSBmaXhlZCBpdCwNCmFkZGl0aW9uYWxseSBJIG9wdGltaXNlZCBj b2RlIGEgYml0IGRlZXBlciBiZWNhdXNlIG9uIE1hYyBwbGF0Zm9ybSBpdA0Kc2hvd2VkIG1lIHJl ZHVjdGlvbiBpbiBwZXJmb3JtYW5jZSAodHVybmVkIG9uIGF1dG8tdmVjdG9yaXNhdGlvbiBieQ0K ZGVmYXVsdCkgKyBleGNsdWRlZCB1bnVzZWQgY29kZS4NCllvdSBtZW50aW9uZWQgc3VibWl0aW9u IG9mIHBhdGNoIGFzIGEgUFIsIHlvdSBtZWFuIG9wZW4gbWVyZ2UgcmVxdWVzdCBJDQpndWVzcywg aG93IGl0IHdvcmtzIHdpdGggbWFpbGluZyBsaXN0PyBEbyBJIG5lZWQgdG8gdXBkYXRlIHRoZSBw YXRjaCBpbg0KbWFpbGluZyBsaXN0IGFzIHdlbGw/IFNob3VsZCBJIHJlZmxlY3Qgb3BlbmVkIFBS IHNvbWV3aGVyZT8NCg0KQWxsIHRoZSBiZXN0LA0KR2VvcmdpaSBaYWdvcnVpa28NCg0KT24gU3Vu LCBBdWcgMywgMjAyNSBhdCA2OjU04oCvUE0gR2VvcmdlIFphZ3VyaSA8Z2VvcmdlLnphZ3VyaUBn bWFpbC5jb20+DQp3cm90ZToNCg0KPiBUaGFuayB5b3UsIE1hcnRpbiEgSSB3aWxsIGhhdmUgYSBs b29rIGF0IGl0IG92ZXIgdGhlIG5leHQgd2VlayENCj4NCj4gT24gRnJpLCBBdWcgMSwgMjAyNSBh dCA2OjUw4oCvUE0gTWFydGluIFN0b3JzasO2IDxtYXJ0aW5AbWFydGluLnN0PiB3cm90ZToNCj4N Cj4+IE9uIFdlZCwgOSBKdWwgMjAyNSwgR2VvcmdpaSBaYWdvcnVpa28gd3JvdGU6DQo+Pg0KPj4g PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hYXJjaDY0L3Z2Yy9hbGYuUyBiL2xpYmF2Y29kZWMv YWFyY2g2NC92dmMvYWxmLlMNCj4+ID4gaW5kZXggODgwMWIzYWZiNi4uOWM5NzY1ZWFkMSAxMDA2 NDQNCj4+ID4gLS0tIGEvbGliYXZjb2RlYy9hYXJjaDY0L3Z2Yy9hbGYuUw0KPj4gPiArKysgYi9s aWJhdmNvZGVjL2FhcmNoNjQvdnZjL2FsZi5TDQo+PiA+IEBAIC0yOTEsMyArMjkxLDI4MSBAQCBm dW5jdGlvbiBmZl9hbGZfZmlsdGVyX2Nocm9tYV9rZXJuZWxfMTBfbmVvbiwNCj4+IGV4cG9ydD0x DQo+PiA+IDE6DQo+PiA+ICAgICAgICAgYWxmX2ZpbHRlcl9jaHJvbWFfa2VybmVsIDINCj4+ID4g ZW5kZnVuYw0KPj4gPiArDQo+PiA+ICsNCj4+ID4gKw0KPj4gPiArLm1hY3JvIGFsZl9jbGFzc2lm eV9hcmd2YXIydjMwDQo+PiA+ICsgICAgICAgIG1vdiAgICAgICAgICAgICB3MTYsICMwDQo+PiA+ ICsgICAgICAgIG1vdiAgICAgICAgICAgICB2MzAuYlswXSwgdzE2DQo+PiA+ICsgICAgICAgIG1v diAgICAgICAgICAgICB3MTYsICMxDQo+PiA+ICsgICAgICAgIG1vdiAgICAgICAgICAgICB2MzAu YlsxXSwgdzE2DQo+PiA+ICsgICAgICAgIG1vdiAgICAgICAgICAgICB3MTYsICMyDQo+PiA+ICsg ICAgICAgIG1vdiAgICAgICAgICAgICB2MzAuYlsyXSwgdzE2DQo+PiA+ICsgICAgICAgIG1vdiAg ICAgICAgICAgICB2MzAuYlszXSwgdzE2DQo+PiA+ICsgICAgICAgIG1vdiAgICAgICAgICAgICB2 MzAuYls0XSwgdzE2DQo+PiA+ICsgICAgICAgIG1vdiAgICAgICAgICAgICB2MzAuYls1XSwgdzE2 DQo+PiA+ICsgICAgICAgIG1vdiAgICAgICAgICAgICB2MzAuYls2XSwgdzE2DQo+PiA+ICsgICAg ICAgIG1vdiAgICAgICAgICAgICB3MTYsICMzDQo+PiA+ICsgICAgICAgIG1vdiAgICAgICAgICAg ICB2MzAuYls3XSwgdzE2DQo+PiA+ICsgICAgICAgIG1vdiAgICAgICAgICAgICB2MzAuYls4XSwg dzE2DQo+PiA+ICsgICAgICAgIG1vdiAgICAgICAgICAgICB2MzAuYls5XSwgdzE2DQo+PiA+ICsg ICAgICAgIG1vdiAgICAgICAgICAgICB2MzAuYlsxMF0sIHcxNg0KPj4gPiArICAgICAgICBtb3Yg ICAgICAgICAgICAgdjMwLmJbMTFdLCB3MTYNCj4+ID4gKyAgICAgICAgbW92ICAgICAgICAgICAg IHYzMC5iWzEyXSwgdzE2DQo+PiA+ICsgICAgICAgIG1vdiAgICAgICAgICAgICB2MzAuYlsxM10s IHcxNg0KPj4gPiArICAgICAgICBtb3YgICAgICAgICAgICAgdjMwLmJbMTRdLCB3MTYNCj4+ID4g KyAgICAgICAgbW92ICAgICAgICAgICAgIHcxNiwgIzQNCj4+ID4gKyAgICAgICAgbW92ICAgICAg ICAgICAgIHYzMC5iWzE1XSwgdzE2DQo+Pg0KPj4gV291bGRuJ3QgaXQgYmUgbW9yZSBlZmZpY2ll bnQgdG8ganVzdCBoYXZlIHRoaXMgcGF0dGVybiBzdG9yZWQgYXMgYQ0KPj4gY29uc3RhbnQgc29t ZXdoZXJlLCBhbmQgZG8gYSBzaW5nbGUgbG9hZCBpbnN0cnVjdGlvbiAod2l0aCBzb21lIGxhdGVu Y3kpDQo+PiB0byBsb2FkIGl0LCByYXRoZXIgdGhhbiBhIDE5IGluc3RydWN0aW9uIHNlcXVlbmNl IHRvIGluaXRpYWxpemUgaXQ/DQo+Pg0KPj4gPiArLmVuZG0NCj4+ID4gKw0KPj4gPiArLm1hY3Jv IGFsZl9jbGFzc2lmeV9sb2FkX3BpeGVsIHBpeF9zaXplLCBkc3QsIHNyYw0KPj4gPiArICAgIC5p ZiBccGl4X3NpemUgPT0gMQ0KPj4gPiArICAgICAgICBsZHJiICAgICAgICAgICAgXGRzdCwgW1xz cmNdLCAjMQ0KPj4gPiArICAgIC5lbHNlDQo+PiA+ICsgICAgICAgIGxkcmggICAgICAgICAgICBc ZHN0LCBbXHNyY10sICMyDQo+PiA+ICsgICAgLmVuZGlmDQo+PiA+ICsuZW5kbQ0KPj4gPiArDQo+ PiA+ICsubWFjcm8gYWxmX2NsYXNzaWZ5X2xvYWRfcGl4ZWxfd2l0aF9vZmZzZXQgcGl4X3NpemUs IGRzdCwgc3JjLCBvZmZzZXQNCj4+ID4gKyAgICAuaWYgXHBpeF9zaXplID09IDENCj4+ID4gKyAg ICAgICAgbGRyYiAgICAgICAgICAgIFxkc3QsIFtcc3JjLCAjKFxvZmZzZXQpXQ0KPj4gPiArICAg IC5lbHNlDQo+PiA+ICsgICAgICAgIGxkcmggICAgICAgICAgICBcZHN0LCBbXHNyYywgIygyKlxv ZmZzZXQpXQ0KPj4gPiArICAgIC5lbmRpZg0KPj4gPiArLmVuZG0NCj4+ID4gKw0KPj4gPiArI2Rl ZmluZSBBTEZfQkxPQ0tfU0laRSAgICAgICAgICA0DQo+PiA+ICsjZGVmaW5lIEFMRl9HUkFESUVO VF9TVEVQICAgICAgIDINCj4+ID4gKyNkZWZpbmUgQUxGX0dSQURJRU5UX0JPUkRFUiAgICAgMg0K Pj4gPiArI2RlZmluZSBBTEZfTlVNX0RJUiAgICAgICAgICAgICA0DQo+PiA+ICsjZGVmaW5lIEFM Rl9HUkFEX0JPUkRFUl9YMiAgICAgIChBTEZfR1JBRElFTlRfQk9SREVSICogMikNCj4+ID4gKyNk ZWZpbmUgQUxGX1NUUklERV9NVUwgICAgICAgICAgKEFMRl9HUkFESUVOVF9CT1JERVIgKyAxKQ0K Pj4gPiArI2RlZmluZSBBTEZfR1JBRF9YX1ZTVEVQICAgICAgICAoQUxGX0dSQURJRU5UX1NURVAg KiA4KQ0KPj4gPiArI2RlZmluZSBBTEZfR1NUUklERV9NVUwgICAgICAgICAoQUxGX05VTV9ESVIg LyBBTEZfR1JBRElFTlRfU1RFUCkNCj4+ID4gKw0KPj4gPiArLy8gU2hpZnQgcmlnaHQ6IGVxdWFs IHRvIGRpdmlzaW9uIGJ5IDIgKHNlZSBBTEZfR1JBRElFTlRfU1RFUCkNCj4+ID4gKyNkZWZpbmUg QUxGX0dTVFJJREVfWEdfQllURVMgICAgKDIgKiBBTEZfTlVNX0RJUiAvIEFMRl9HUkFESUVOVF9T VEVQKQ0KPj4gPiArDQo+PiA+ICsjZGVmaW5lIEFMRl9HU1RSSURFX1NVQl9CWVRFUyAgICgyICog KChBTEZfQkxPQ0tfU0laRSArDQo+PiBBTEZfR1JBRElFTlRfQk9SREVSICogMikgLyBBTEZfR1JB RElFTlRfU1RFUCkgKiBBTEZfTlVNX0RJUikNCj4+ID4gKw0KPj4gPiArI2RlZmluZSBBTEZfQ0xB U1NfSU5DICAgICAgICAgICAoQUxGX0dSQURJRU5UX0JPUkRFUiAvDQo+PiBBTEZfR1JBRElFTlRf U1RFUCkNCj4+ID4gKyNkZWZpbmUgQUxGX0NMQVNTX0VORCAgICAgICAgICAgKChBTEZfQkxPQ0tf U0laRSArIEFMRl9HUkFESUVOVF9CT1JERVINCj4+ICogMikgLyBBTEZfR1JBRElFTlRfU1RFUCkN Cj4+ID4gKw0KPj4gPiArLm1hY3JvIGZmX2FsZl9jbGFzc2lmeV9ncmFkIHBpeF9zaXplDQo+PiA+ ICsgICAgICAgIC8vIGNsYXNzX2lkeCAgICAgLnJlcSB4MA0KPj4gPiArICAgICAgICAvLyB0cmFu c3Bvc2VfaWR4IC5yZXEgeDENCj4+ID4gKyAgICAgICAgLy8gX3NyYyAgICAgICAgICAucmVxIHgy DQo+PiA+ICsgICAgICAgIC8vIF9zcmNfc3RyaWRlICAgLnJlcSB4Mw0KPj4gPiArICAgICAgICAv LyB3aWR0aCAgICAgICAgIC5yZXEgdzQNCj4+ID4gKyAgICAgICAgLy8gaGVpZ2h0ICAgICAgICAu cmVxIHc1DQo+PiA+ICsgICAgICAgIC8vIHZiX3BvcyAgICAgICAgLnJlcSB3Ng0KPj4gPiArICAg ICAgICAvLyBncmFkaWVudF90bXAgIC5yZXEgeDcNCj4+ID4gKw0KPj4gPiArICAgICAgICBtb3Yg ICAgICAgICAgICAgdzE2LCAjQUxGX1NUUklERV9NVUwNCj4+ID4gKyAgICAgICAgYWRkICAgICAg ICAgICAgIHc1LCB3NSwgI0FMRl9HUkFEX0JPUkRFUl9YMiAvLyBoID0gaGVpZ2h0ICsgNA0KPj4g PiArICAgICAgICBtdWwgICAgICAgICAgICAgeDE2LCB4MywgeDE2ICAgICAgICAgICAgICAgIC8v IDMgKiBzdHJpZGUNCj4+ID4gKyAgICAgICAgYWRkICAgICAgICAgICAgIHc0LCB3NCwgI0FMRl9H UkFEX0JPUkRFUl9YMiAvLyB3ID0gd2lkdGggKyA0DQo+PiA+ICsgICAgICAgIHN1YiAgICAgICAg ICAgICB4MTUsIHgyLCB4MTYgICAgICAgICAgICAgICAgLy8gc3JjIC09ICgzICoNCj4+IHN0cmlk ZSkNCj4+ID4gKyAgICAgICAgbW92ICAgICAgICAgICAgIHgxNywgeDcNCj4+ID4gKyAgICAuaWYg XHBpeF9zaXplID09IDENCj4+ID4gKyAgICAgICAgc3ViICAgICAgICAgICAgIHgxNSwgeDE1LCAj QUxGX0dSQURJRU5UX0JPUkRFUg0KPj4gPiArICAgIC5lbHNlDQo+PiA+ICsgICAgICAgIHN1YiAg ICAgICAgICAgICB4MTUsIHgxNSwgIzQNCj4+ID4gKyAgICAuZW5kaWYNCj4+ID4gKyAgICAgICAg bW92ICAgICAgICAgICAgIHc4LCAjMCAgICAgICAgICAgICAgICAgICAgICAvLyB5IGxvb3A6IHkg PSAwDQo+PiA+ICsxOg0KPj4gPiArICAgICAgICBjbXAgICAgICAgICAgICAgdzgsIHc1DQo+PiA+ ICsgICAgICAgIGJnZSAgICAgICAgICAgICAxMGYNCj4+ID4gKw0KPj4gPiArICAgICAgICBhZGQg ICAgICAgICAgICAgeDE2LCB4OCwgIzENCj4+ID4gKyAgICAgICAgbXVsICAgICAgICAgICAgIHgx NCwgeDgsIHgzICAgICAgICAgICAgICAgICAvLyB5ICogc3RyaWRlDQo+PiA+ICsgICAgICAgIG11 bCAgICAgICAgICAgICB4MTYsIHgxNiwgeDMNCj4+ID4gKyAgICAgICAgYWRkICAgICAgICAgICAg IHgxMCwgeDE1LCB4MTQgICAgICAgICAgICAgICAvLyBzMCA9IHNyYyArIHkgKg0KPj4gc3RyaWRl DQo+PiA+ICsgICAgICAgIGFkZCAgICAgICAgICAgICB4MTQsIHgxNiwgeDMNCj4+ID4gKyAgICAg ICAgYWRkICAgICAgICAgICAgIHgxMSwgeDE1LCB4MTYgICAgICAgICAgICAgICAvLyBzMQ0KPj4g PiArICAgICAgICBhZGQgICAgICAgICAgICAgeDE2LCB4MTQsIHgzDQo+PiA+ICsgICAgICAgIGFk ZCAgICAgICAgICAgICB4MTIsIHgxNSwgeDE0ICAgICAgICAgICAgICAgLy8gczINCj4+ID4gKyAg ICAgICAgYWRkICAgICAgICAgICAgIHgxMywgeDE1LCB4MTYgICAgICAgICAgICAgICAvLyBzMw0K Pj4gPiArDQo+PiA+ICsgICAgICAgIC8vIGlmICh5ID09IHZiX3Bvcyk6IHMzID0gczINCj4+ID4g KyAgICAgICAgY21wICAgICAgICAgICAgIHc4LCB3Ng0KPj4gPiArICAgICAgICBhZGQgICAgICAg ICAgICAgdzE2LCB3NiwgI0FMRl9HUkFESUVOVF9CT1JERVINCj4+ID4gKyAgICAgICAgY3NlbCAg ICAgICAgICAgIHgxMywgeDEyLCB4MTMsIGVxDQo+PiA+ICsgICAgICAgIC8vIGlmICh5ID09IHZi X3BvcyArIDIpOiBzMCA9IHMxDQo+PiA+ICsgICAgICAgIGNtcCAgICAgICAgICAgICB3OCwgdzE2 DQo+PiA+ICsgICAgICAgIGNzZWwgICAgICAgICAgICB4MTAsIHgxMSwgeDEwLCBlcQ0KPj4gPiAr DQo+PiA+ICsgICAgICAgIGFsZl9jbGFzc2lmeV9sb2FkX3BpeGVsX3dpdGhfb2Zmc2V0IFxwaXhf c2l6ZSwgdzE2LCB4MTAsIC0xDQo+PiA+ICsgICAgICAgIGFsZl9jbGFzc2lmeV9sb2FkX3BpeGVs IFxwaXhfc2l6ZSwgdzE0LCB4MTMNCj4+ID4gKyAgICAgICAgbW92ICAgICAgICAgICAgIHYxNi5o WzddLCB3MTYNCj4+ID4gKyAgICAgICAgbW92ICAgICAgICAgICAgIHYyOC5oWzddLCB3MTQNCj4+ ID4gKw0KPj4gPiArICAgICAgICAvLyBsb2FkIDQgcGl4ZWxzIGZyb20gKihzMS0yKSAmICooczIt MikNCj4+ID4gKyAgICAuaWYgXHBpeF9zaXplID09IDENCj4+ID4gKyAgICAgICAgc3ViICAgICAg ICAgICAgIHgxMSwgeDExLCAjMg0KPj4gPiArICAgICAgICBzdWIgICAgICAgICAgICAgeDEyLCB4 MTIsICMyDQo+PiA+ICsgICAgICAgIGxkMSAgICAgICAgICAgICB7djAuOGJ9LCBbeDExXQ0KPj4g PiArICAgICAgICBsZDEgICAgICAgICAgICAge3YxLjhifSwgW3gxMl0NCj4+ID4gKyAgICAgICAg dXh0bCAgICAgICAgICAgIHYxNy44aCwgdjAuOGINCj4+ID4gKyAgICAgICAgdXh0bCAgICAgICAg ICAgIHYxOC44aCwgdjEuOGINCj4+ID4gKyAgICAuZWxzZQ0KPj4gPiArICAgICAgICBzdWIgICAg ICAgICAgICAgeDExLCB4MTEsICM0DQo+PiA+ICsgICAgICAgIHN1YiAgICAgICAgICAgICB4MTIs IHgxMiwgIzQNCj4+ID4gKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MTcuOGh9LCBbeDExXQ0K Pj4gPiArICAgICAgICBsZDEgICAgICAgICAgICAge3YxOC44aH0sIFt4MTJdDQo+PiA+ICsgICAg LmVuZGlmDQo+PiA+ICsgICAgICAgIGV4dCAgICAgICAgICAgICB2MjIuMTZiLCB2MjIuMTZiLCB2 MTcuMTZiLCAjOA0KPj4gPiArICAgICAgICBleHQgICAgICAgICAgICAgdjI0LjE2YiwgdjI0LjE2 YiwgdjE4LjE2YiwgIzgNCj4+ID4gKyAgICAuaWYgXHBpeF9zaXplID09IDENCj4+ID4gKyAgICAg ICAgYWRkICAgICAgICAgICAgIHgxMSwgeDExLCAjNA0KPj4gPiArICAgICAgICBhZGQgICAgICAg ICAgICAgeDEyLCB4MTIsICM0DQo+PiA+ICsgICAgLmVsc2UNCj4+ID4gKyAgICAgICAgYWRkICAg ICAgICAgICAgIHgxMSwgeDExLCAjOA0KPj4gPiArICAgICAgICBhZGQgICAgICAgICAgICAgeDEy LCB4MTIsICM4DQo+PiA+ICsgICAgLmVuZGlmDQo+PiA+ICsNCj4+ID4gKyAgICAgICAgLy8geCBs b29wDQo+PiA+ICsgICAgICAgIG1vdiAgICAgICAgICAgICB3OSwgIzANCj4+ID4gKyAgICAgICAg YiAgICAgICAgICAgICAgIDExZg0KPj4gPiArMjoNCj4+ID4gKyAgICAgICAgY21wICAgICAgICAg ICAgIHc5LCB3NA0KPj4gPiArICAgICAgICBiZ2UgICAgICAgICAgICAgMjBmDQo+Pg0KPj4gSW5z dGVhZCBvZiBoYXZpbmcgdzkgY291bnQgdXAgdG8gdzQsIGl0J2QgYmUgbW9yZSBjb21tb24gdG8g anVzdA0KPj4gZGVjcmVtZW50DQo+PiBvbmUgcmVnaXN0ZXIgaW5zdGVhZC4gSGVyZSB5b3UgY291 bGQgZG8gIm1vdiB3OSwgdzQiIGluc3RlYWQgb2YgIm1vdiB3OSwNCj4+ICMwIiwgYW5kIGp1c3Qg ZGVjcmVtZW50IHc5IHdpdGggInN1YnMgdzksIHc5LCAjOCIgYXQgdGhlIGVuZCwgd2hpY2gNCj4+ IGFsbG93cw0KPj4geW91IHRvIGRvIHRoZSBicmFuY2ggYXMgImIuZ3QgMmIiLCBhdm9pZGluZyBz b21lIGV4dHJhIGp1bXBpbmcgYXJvdW5kIGF0DQo+PiB0aGUgZW5kIG9mIHRoZSBsb29wLiBTYW1l IGZvciB0aGUgb3V0ZXIgbG9vcCBmb3IgdzgvdzUuDQo+Pg0KPj4gPiArDQo+PiA+ICsgICAgICAg IC8vIFN0b3JlIG9wZXJhdGlvbiBzdGFydHMgZnJvbSB0aGUgc2Vjb25kIGN5Y2xlDQo+PiA+ICsg ICAgICAgIHN0MiAgICAgICAgICAgICB7djQuOGgsIHY1LjhofSwgW3gxN10sICMzMg0KPj4gPiAr MTE6DQo+PiA+ICsgICAgLmlmIFxwaXhfc2l6ZSA9PSAxDQo+PiA+ICsgICAgICAgIC8vIExvYWQg OCBwaXhlbHM6IHMwICYgczErMg0KPj4gPiArICAgICAgICBsZDEgICAgICAgICAgICAge3YwLjhi fSwgW3gxMF0sICM4DQo+PiA+ICsgICAgICAgIGxkMSAgICAgICAgICAgICB7djEuOGJ9LCBbeDEx XSwgIzgNCj4+ID4gKyAgICAgICAgdXh0bCAgICAgICAgICAgIHYyMC44aCwgdjAuOGINCj4+ID4g KyAgICAgICAgdXh0bCAgICAgICAgICAgIHYyNi44aCwgdjEuOGINCj4+ID4gKyAgICAgICAgLy8g TG9hZCA4IHBpeGVsczogczIrMiAmIHMzKzENCj4+ID4gKyAgICAgICAgbGQxICAgICAgICAgICAg IHt2MC44Yn0sIFt4MTJdLCAjOA0KPj4gPiArICAgICAgICBsZDEgICAgICAgICAgICAge3YxLjhi fSwgW3gxM10sICM4DQo+PiA+ICsgICAgICAgIHV4dGwgICAgICAgICAgICB2MjcuOGgsIHYwLjhi DQo+PiA+ICsgICAgICAgIHV4dGwgICAgICAgICAgICB2MTkuOGgsIHYxLjhiDQo+PiA+ICsgICAg LmVsc2UNCj4+ID4gKyAgICAgICAgLy8gTG9hZCA4IHBpeGVsczogczANCj4+ID4gKyAgICAgICAg bGQxICAgICAgICAgICAgIHt2MjAuOGh9LCBbeDEwXSwgIzE2DQo+PiA+ICsgICAgICAgIC8vIExv YWQgOCBwaXhlbHM6IHMxKzINCj4+ID4gKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MjYuOGh9 LCBbeDExXSwgIzE2DQo+PiA+ICsgICAgICAgIC8vIExvYWQgOCBwaXhlbHM6IHMyKzINCj4+ID4g KyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MjcuOGh9LCBbeDEyXSwgIzE2DQo+PiA+ICsgICAg ICAgIC8vIExvYWQgOCBwaXhlbHM6IHMzKzENCj4+ID4gKyAgICAgICAgbGQxICAgICAgICAgICAg IHt2MTkuOGh9LCBbeDEzXSwgIzE2DQo+PiA+ICsgICAgLmVuZGlmDQo+PiA+ICsNCj4+ID4gKyAg ICAgICAgZXh0ICAgICAgICAgICAgIHYxNi4xNmIsIHYxNi4xNmIsIHYyMC4xNmIsICMxNA0KPj4g PiArICAgICAgICBleHQgICAgICAgICAgICAgdjI4LjE2YiwgdjI4LjE2YiwgdjE5LjE2YiwgIzE0 DQo+PiA+ICsNCj4+ID4gKyAgICAgICAgZXh0ICAgICAgICAgICAgIHYxNy4xNmIsIHYyMi4xNmIs IHYyNi4xNmIsICM4DQo+PiA+ICsgICAgICAgIGV4dCAgICAgICAgICAgICB2MjIuMTZiLCB2MjIu MTZiLCB2MjYuMTZiLCAjMTINCj4+ID4gKw0KPj4gPiArICAgICAgICBleHQgICAgICAgICAgICAg djE4LjE2YiwgdjI0LjE2YiwgdjI3LjE2YiwgIzgNCj4+ID4gKyAgICAgICAgZXh0ICAgICAgICAg ICAgIHYyNC4xNmIsIHYyNC4xNmIsIHYyNy4xNmIsICMxMg0KPj4gPiArDQo+PiA+ICsgICAgICAg IC8vIEdyYWQ6IFZlcnRpY2FsICYgRDAgKGludGVybGVhdmVkKQ0KPj4gPiArICAgICAgICB0cm4x ICAgICAgICAgICAgdjIxLjhoLCB2MjAuOGgsIHYxNi44aCAgICAgIC8vIGZpcnN0IGFiczoNCj4+ IG9wZXJhbmQgMQ0KPj4gPiArICAgICAgICByZXYzMiAgICAgICAgICAgdjIzLjhoLCB2MjIuOGgg ICAgICAgICAgICAgIC8vIHNlY29uZCBhYnM6DQo+PiBvcGVyYW5kIDENCj4+ID4gKyAgICAgICAg dHJuMiAgICAgICAgICAgIHYyOS44aCwgdjI4LjhoLCB2MTkuOGggICAgICAvLyBzZWNvbmQgYWJz Og0KPj4gb3BlcmFuZCAyDQo+PiA+ICsgICAgICAgIHRybjEgICAgICAgICAgICB2MzAuOGgsIHYy Mi44aCwgdjIyLjhoDQo+PiA+ICsgICAgICAgIHRybjIgICAgICAgICAgICB2MzEuOGgsIHYyNC44 aCwgdjI0LjhoDQo+PiA+ICsgICAgICAgIGFkZCAgICAgICAgICAgICB2MzAuOGgsIHYzMC44aCwg djMwLjhoDQo+PiA+ICsgICAgICAgIGFkZCAgICAgICAgICAgICB2MzEuOGgsIHYzMS44aCwgdjMx LjhoDQo+PiA+ICsgICAgICAgIHN1YiAgICAgICAgICAgICB2MC44aCwgdjMwLjhoLCB2MjEuOGgN Cj4+ID4gKyAgICAgICAgc3ViICAgICAgICAgICAgIHYxLjhoLCB2MzEuOGgsIHYyMy44aA0KPj4g PiArICAgICAgICBzYWJkICAgICAgICAgICAgdjQuOGgsIHYwLjhoLCB2MjQuOGgNCj4+ID4gKw0K Pj4gPiArICAgICAgICAvLyBHcmFkOiBIb3Jpem9udGFsICYgRDEgKGludGVybGVhdmVkKQ0KPj4g PiArICAgICAgICB0cm4yICAgICAgICAgICAgdjIxLjhoLCB2MTcuOGgsIHYyMC44aCAgICAgIC8v IGZpcnN0IGFiczoNCj4+IG9wZXJhbmQgMQ0KPj4gPiArICAgICAgICBzYWJhICAgICAgICAgICAg djQuOGgsIHYxLjhoLCB2MjkuOGgNCj4+ID4gKyAgICAgICAgdHJuMiAgICAgICAgICAgIHYyMy44 aCwgdjIyLjhoLCB2MTguOGggICAgICAvLyBmaXJzdCBhYnM6DQo+PiBvcGVyYW5kIDINCj4+ID4g KyAgICAgICAgdHJuMSAgICAgICAgICAgIHYyNS44aCwgdjI0LjhoLCB2MjYuOGggICAgICAvLyBz ZWNvbmQgYWJzOg0KPj4gb3BlcmFuZCAxDQo+PiA+ICsgICAgICAgIHRybjEgICAgICAgICAgICB2 MjkuOGgsIHYyNy44aCwgdjI4LjhoICAgICAgLy8gc2Vjb25kIGFiczoNCj4+IG9wZXJhbmQgMg0K Pj4gPiArICAgICAgICBzdWIgICAgICAgICAgICAgdjAuOGgsIHYzMC44aCwgdjIxLjhoDQo+PiA+ ICsgICAgICAgIHN1YiAgICAgICAgICAgICB2MS44aCwgdjMxLjhoLCB2MjUuOGgNCj4+ID4gKyAg ICAgICAgc2FiZCAgICAgICAgICAgIHY1LjhoLCB2MC44aCwgdjIzLjhoDQo+PiA+ICsNCj4+ID4g KyAgICAgICAgLy8gUHJlcGFyZSBmb3IgdGhlIG5leHQgaW50ZXJhdGlvbjoNCj4+ID4gKyAgICAg ICAgbW92ICAgICAgICAgICAgIHYxNi4xNmIsIHYyMC4xNmINCj4+ID4gKyAgICAgICAgc2FiYSAg ICAgICAgICAgIHY1LjhoLCB2MS44aCwgdjI5LjhoDQo+PiA+ICsgICAgICAgIG1vdiAgICAgICAg ICAgICB2MjguMTZiLCB2MTkuMTZiDQo+PiA+ICsgICAgICAgIG1vdiAgICAgICAgICAgICB2MjIu MTZiLCB2MjYuMTZiDQo+PiA+ICsgICAgICAgIG1vdiAgICAgICAgICAgICB2MjQuMTZiLCB2Mjcu MTZiDQo+PiA+ICsNCj4+ID4gKyAgICAgICAgYWRkICAgICAgICAgICAgIHc5LCB3OSwgIzggICAg ICAgICAgICAgICAgICAvLyB4ICs9IDgNCj4+ID4gKyAgICAgICAgYiAgICAgICAgICAgICAgIDJi DQo+PiA+ICsyMDoNCj4+ID4gKyAgICAgICAgLy8gOCBwaXhlbHMgLT4gNCBjeWNsZXMgb2YgZ2Vu ZXJpYw0KPj4gPiArICAgICAgICAvLyA0IHBpeGVscyAtPiBwYWRkaW5ncyA9PiBoYWxmIG5lZWRz IHRvIGJlIHNhdmVkDQo+PiA+ICsgICAgICAgIHN0MiAgICAgICAgICAgICB7djQuNGgsIHY1LjRo fSwgW3gxN10sICMxNg0KPj4gPiArDQo+PiA+ICsgICAgICAgIGFkZCAgICAgICAgICAgICB3OCwg dzgsICNBTEZfR1JBRElFTlRfU1RFUCAgLy8geSArPSAyDQo+PiA+ICsgICAgICAgIGIgICAgICAg ICAgICAgICAxYg0KPj4gPiArMTA6DQo+PiA+ICsgICAgICAgIHJldA0KPj4gPiArLmVuZG0NCj4+ ID4gKw0KPj4gPiArLm1hY3JvIGZmX2FsZl9jbGFzc2lmeV9zdW0NCj4+DQo+PiBUaGlzIGRvZXNu J3Qgc2VlbSB0byBuZWVkIHRvIGJlIGEgbWFjcm8sIGFzIGl0IGlzIG9ubHkgaW52b2tlZCBvbmNl LA0KPj4gd2l0aG91dCBhbnkgcGFyYW1ldGVycz8NCj4+DQo+PiA+ICsgICAgICAgIC8vIHN1bTAg ICAgICAgICAgLnJlcSB4MA0KPj4gPiArICAgICAgICAvLyBzdW0xICAgICAgICAgIC5yZXEgeDEN Cj4+ID4gKyAgICAgICAgLy8gZ3JhZCAgICAgICAgICAucmVxIHgyDQo+PiA+ICsgICAgICAgIC8v IGdzaGlmdCAgICAgICAgLnJlcSB3Mw0KPj4gPiArICAgICAgICAvLyBzdGVwcyAgICAgICAgIC5y ZXEgdzQNCj4+ID4gKyAgICAgICAgbW92ICAgICAgICAgICAgIHc1LCAjMg0KPj4gPiArICAgICAg ICBtb3YgICAgICAgICAgICAgdzYsICMwDQo+PiA+ICsgICAgICAgIG11bCAgICAgICAgICAgICB3 MywgdzMsIHc1DQo+Pg0KPj4gSWYgeW91IHdhbnQgdG8gbXVsdGlwbHkgYnkgMiwgdGhlbiBqdXN0 IGRvICJsc2wgdzMsIHczLCAjMSIuDQo+Pg0KPj4gPiArICAgICAgICBtb3ZpICAgICAgICAgICAg djE2LjRzLCAjMA0KPj4gPiArICAgICAgICBtb3ZpICAgICAgICAgICAgdjIxLjRzLCAjMA0KPj4g PiArNjoNCj4+ID4gKyAgICAgICAgcHJmbSAgICAgICAgICAgIHBsZGwxa2VlcCwgW3gyXQ0KPj4N Cj4+IE5vIHByZWZldGNoIGluc3RydWN0aW9ucyBwbGVhc2UuIElmIHlvdSBmZWVsIHN0cm9uZ2x5 IGFib3V0IGl0LCBzZW5kIGENCj4+IHNlcGFyYXRlIHBhdGNoIGFmdGVyd2FyZHMgdG8gYWRkIHRo ZSBwcmVmZXRjaCBpbnN0cnVjdGlvbnMsIHdpdGgNCj4+IHJlcGVhdGFibGUgYmVuY2htYXJrIG51 Ym1lcnMuDQo+Pg0KPj4gPiArICAgICAgICBjbXAgICAgICAgICAgICAgdzYsIHc0DQo+PiA+ICsg ICAgICAgIGJnZSAgICAgICAgICAgICA2MGYNCj4+ID4gKw0KPj4gPiArICAgICAgICBsZDEgICAg ICAgICAgICAge3YxNy40aH0sIFt4Ml0sICM4DQo+PiA+ICsgICAgICAgIGxkMSAgICAgICAgICAg ICB7djE4LjRofSwgW3gyXSwgIzgNCj4+ID4gKyAgICAgICAgdXh0bCAgICAgICAgICAgIHYxNy40 cywgdjE3LjRoDQo+PiA+ICsgICAgICAgIGxkMSAgICAgICAgICAgICB7djE5LjRofSwgW3gyXSwg IzgNCj4+ID4gKyAgICAgICAgdXh0bCAgICAgICAgICAgIHYxOC40cywgdjE4LjRoDQo+PiA+ICsg ICAgICAgIGxkMSAgICAgICAgICAgICB7djIwLjRofSwgW3gyXSwgIzgNCj4+ID4gKyAgICAgICAg dXh0bCAgICAgICAgICAgIHYxOS40cywgdjE5LjRoDQo+PiA+ICsgICAgICAgIGxkMSAgICAgICAg ICAgICB7djIyLjRofSwgW3gyXSwgIzgNCj4+ID4gKyAgICAgICAgdXh0bCAgICAgICAgICAgIHYy MC40cywgdjIwLjRoDQo+PiA+ICsgICAgICAgIGxkMSAgICAgICAgICAgICB7djIzLjRofSwgW3gy XQ0KPj4NCj4+IFRoaXMgc2VxdWVuY2Ugb2YgNiBzZXBhcmF0ZSBzZXF1ZW50aWFsIGxvYWRzIG9m IC40aCByZWdpc3RlcnMgY291bGQgYmUNCj4+IGV4cHJlc3NlZCBhcyB0d28gbG9hZHMsIHdpdGgg ey40aCwgLjRoLCAuNGgsIC40aH0gYW5kIHsuNGgsIC40aH0sIG9yDQo+PiB0aHJlZQ0KPj4gbG9h ZHMgb2Ygey40aCwgLjRofSAtIHRoYXQgc2hvdWxkIHByb2JhYmx5IGJlIG1vcmUgZWZmaWNpZW50 IHRoYW4gZG9pbmcgNg0KPj4gc2VwYXJhdGUgbG9hZHMuDQo+Pg0KPj4gPiArICAgICAgICB1eHRs ICAgICAgICAgICAgdjIyLjRzLCB2MjIuNGgNCj4+ID4gKyAgICAgICAgdXh0bCAgICAgICAgICAg IHYyMy40cywgdjIzLjRoDQo+PiA+ICsgICAgICAgIGFkZCAgICAgICAgICAgICB2MTcuNHMsIHYx Ny40cywgdjE4LjRzDQo+PiA+ICsgICAgICAgIGFkZCAgICAgICAgICAgICB2MTYuNHMsIHYxNi40 cywgdjE3LjRzDQo+Pg0KPj4gQXMgdGhpcyBhZGRpdGlvbiB0byB2MTYgdXNlcyB2MTcsIHdoaWNo IHdhcyB1cGRhdGVkIGluIHRoZSBkaXJlY3RseQ0KPj4gcHJlY2VkaW5nIGluc3RydWN0aW9uLCB0 aGlzIGNhdXNlcyBzdGFsbHMgb24gaW4tb3JkZXIgY29yZXMuIEl0J2QgYmUNCj4+IGJldHRlciB0 byBtb3ZlIHRoaXMgYWRkIGluc3RydWN0aW9uIGRvd24gYnkgb25lIG9yIHR3byBpbnN0cnVjdGlv bnMuDQo+Pg0KPj4gPiArICAgICAgICBhZGQgICAgICAgICAgICAgdjE5LjRzLCB2MTkuNHMsIHYy MC40cw0KPj4gPiArICAgICAgICBhZGQgICAgICAgICAgICAgdjIyLjRzLCB2MjIuNHMsIHYyMy40 cw0KPj4gPiArICAgICAgICBhZGQgICAgICAgICAgICAgdjIxLjRzLCB2MjEuNHMsIHYxOS40cw0K Pj4gPiArICAgICAgICBhZGQgICAgICAgICAgICAgdjE2LjRzLCB2MTYuNHMsIHYxOS40cw0KPj4g PiArICAgICAgICBhZGQgICAgICAgICAgICAgdjIxLjRzLCB2MjEuNHMsIHYyMi40cw0KPj4gPiAr DQo+PiA+ICsgICAgICAgIHN1YiAgICAgICAgICAgICB4MiwgeDIsICM4DQo+PiA+ICsgICAgICAg IGFkZCAgICAgICAgICAgICB3NiwgdzYsICMxICAgICAgICAgICAgICAgICAgLy8gaSArPSAxDQo+ Pg0KPj4gSW5zdGVhZCBvZiB0aGlzIHJlZ2lzdGVyIHc2IGNvdW50aW5nIHVwIHRvIHc0LCBpdCdk IGJlIG1vcmUgaWRpb21hdGljIGFuZA0KPj4gcmVxdWlyaW5nIG9uZSByZWdpc3RlciBsZXNzLCBp ZiB5b3UnZCBqdXN0IGRlY3JlbWVudCB3NCBpbnN0ZWFkLCB3aXRoIGENCj4+ICJzdWJzIHc0LCB3 NCwgIzEiIGluc3RydWN0aW9uLiBUaGVuIHlvdSBjYW4ganVzdCBkbyAiYi5ndCA2YiIgYXQgdGhl DQo+PiBlbmQsDQo+PiByYXRoZXIgdGhhbiBoYXZpbmcgdG8ganVtcCBiYWNrIHRvIDYgdG8gZG8g dGhlIGNvbXBhcmlzb24gdGhlcmUuDQo+Pg0KPj4gPiArICAgICAgICBhZGQgICAgICAgICAgICAg eDIsIHgyLCB4MyAgICAgICAgICAgICAgICAgIC8vIGdyYWQgKz0gZ3N0cmlkZQ0KPj4gLSBzaXpl ICogQUxGX05VTV9ESVINCj4+DQo+PiBJbnN0ZWFkIG9mIGhhdmluZyB0byBzdWJ0cmFjdCA4IGZy b20geDIgYXQgdGhlIGVuZCBvZiBlYWNoIGxvb3AsIGp1c3QNCj4+IHN1YnRyYWN0IDggZnJvbSB4 MyBiZWZvcmUgdGhlIGxvb3AuDQo+Pg0KPj4gPiArICAgICAgICBiICAgICAgICAgICAgICAgNmIN Cj4+ID4gKzYwOg0KPj4gPiArICAgICAgICBzdDEgICAgICAgICAgICAge3YxNi40c30sIFt4MF0N Cj4+ID4gKyAgICAgICAgc3QxICAgICAgICAgICAgIHt2MjEuNHN9LCBbeDFdDQo+PiA+ICsgICAg ICAgIHJldA0KPj4gPiArLmVuZG0NCj4+ID4gKw0KPj4gPiArDQo+PiA+ICtmdW5jdGlvbiBmZl9h bGZfY2xhc3NpZnlfc3VtX25lb24sIGV4cG9ydD0xDQo+PiA+ICsgICAgICAgIGZmX2FsZl9jbGFz c2lmeV9zdW0NCj4+ID4gK2VuZGZ1bmMNCj4+ID4gKw0KPj4gPiArZnVuY3Rpb24gZmZfYWxmX2Ns YXNzaWZ5X2dyYWRfOF9uZW9uLCBleHBvcnQ9MQ0KPj4gPiArICAgICAgICBmZl9hbGZfY2xhc3Np ZnlfZ3JhZCAxDQo+PiA+ICtlbmRmdW5jDQo+PiA+ICsNCj4+ID4gK2Z1bmN0aW9uIGZmX2FsZl9j bGFzc2lmeV9ncmFkXzEwX25lb24sIGV4cG9ydD0xDQo+PiA+ICsgICAgICAgIGZmX2FsZl9jbGFz c2lmeV9ncmFkIDINCj4+ID4gK2VuZGZ1bmMNCj4+ID4gKw0KPj4gPiArZnVuY3Rpb24gZmZfYWxm X2NsYXNzaWZ5X2dyYWRfMTJfbmVvbiwgZXhwb3J0PTENCj4+ID4gKyAgICAgICAgZmZfYWxmX2Ns YXNzaWZ5X2dyYWQgMg0KPj4gPiArZW5kZnVuYw0KPj4gPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2Rl Yy9hYXJjaDY0L3Z2Yy9hbGZfdGVtcGxhdGUuYw0KPj4gYi9saWJhdmNvZGVjL2FhcmNoNjQvdnZj L2FsZl90ZW1wbGF0ZS5jDQo+PiA+IGluZGV4IDQxZjdiZjg5OTUuLjQ3MDIyMmE2MzQgMTAwNjQ0 DQo+PiA+IC0tLSBhL2xpYmF2Y29kZWMvYWFyY2g2NC92dmMvYWxmX3RlbXBsYXRlLmMNCj4+ID4g KysrIGIvbGliYXZjb2RlYy9hYXJjaDY0L3Z2Yy9hbGZfdGVtcGxhdGUuYw0KPj4gPiBAQCAtMTU1 LDMgKzE1NSw5MCBAQCBzdGF0aWMgdm9pZCBGVU5DMihhbGZfZmlsdGVyX2Nocm9tYSwgQklUX0RF UFRILA0KPj4gX25lb24pKHVpbnQ4X3QgKl9kc3QsDQo+PiA+ICAgICAgICAgfQ0KPj4gPiAgICAg fQ0KPj4gPiB9DQo+PiA+ICsNCj4+ID4gKyNkZWZpbmUgQUxGX0RJUl9WRVJUICAgICAgICAwDQo+ PiA+ICsjZGVmaW5lIEFMRl9ESVJfSE9SWiAgICAgICAgMQ0KPj4gPiArI2RlZmluZSBBTEZfRElS X0RJR0EwICAgICAgIDINCj4+ID4gKyNkZWZpbmUgQUxGX0RJUl9ESUdBMSAgICAgICAzDQo+PiA+ ICsNCj4+ID4gK3N0YXRpYyB2b2lkIEZVTkMoZmZfYWxmX2dldF9pZHgpKGludCAqY2xhc3NfaWR4 LCBpbnQgKnRyYW5zcG9zZV9pZHgsDQo+PiBjb25zdCBpbnQgKnN1bSwgY29uc3QgaW50IGFjKQ0K Pj4gPiArew0KPj4NCj4+IFN0YXRpYyBmdW5jdGlvbnMgZG9uJ3QgbmVlZCBhbiBmZl8gcHJlZml4 DQo+Pg0KPj4gPiArICAgIHN0YXRpYyBjb25zdCBpbnQgYXJnX3ZhcltdID0gezAsIDEsIDIsIDIs IDIsIDIsIDIsIDMsIDMsIDMsIDMsIDMsDQo+PiAzLCAzLCAzLCA0IH07DQo+PiA+ICsNCj4+ID4g KyAgICBpbnQgaHYwLCBodjEsIGRpcl9odiwgZDAsIGQxLCBkaXJfZCwgaHZkMSwgaHZkMCwgc3Vt X2h2LCBkaXIxOw0KPj4gPiArDQo+PiA+ICsgICAgZGlyX2h2ID0gc3VtW0FMRl9ESVJfVkVSVF0g PD0gc3VtW0FMRl9ESVJfSE9SWl07DQo+PiA+ICsgICAgaHYxICAgID0gRkZNQVgoc3VtW0FMRl9E SVJfVkVSVF0sIHN1bVtBTEZfRElSX0hPUlpdKTsNCj4+ID4gKyAgICBodjAgICAgPSBGRk1JTihz dW1bQUxGX0RJUl9WRVJUXSwgc3VtW0FMRl9ESVJfSE9SWl0pOw0KPj4gPiArDQo+PiA+ICsgICAg ZGlyX2QgID0gc3VtW0FMRl9ESVJfRElHQTBdIDw9IHN1bVtBTEZfRElSX0RJR0ExXTsNCj4+ID4g KyAgICBkMSAgICAgPSBGRk1BWChzdW1bQUxGX0RJUl9ESUdBMF0sIHN1bVtBTEZfRElSX0RJR0Ex XSk7DQo+PiA+ICsgICAgZDAgICAgID0gRkZNSU4oc3VtW0FMRl9ESVJfRElHQTBdLCBzdW1bQUxG X0RJUl9ESUdBMV0pOw0KPj4gPiArDQo+PiA+ICsgICAgLy9wcm9tb3RlIHRvIGF2b2lkIG92ZXJm bG93DQo+PiA+ICsgICAgZGlyMSA9ICh1aW50NjRfdClkMSAqIGh2MCA8PSAodWludDY0X3QpaHYx ICogZDA7DQo+PiA+ICsgICAgaHZkMSA9IGRpcjEgPyBodjEgOiBkMTsNCj4+ID4gKyAgICBodmQw ID0gZGlyMSA/IGh2MCA6IGQwOw0KPj4gPiArDQo+PiA+ICsgICAgc3VtX2h2ID0gc3VtW0FMRl9E SVJfSE9SWl0gKyBzdW1bQUxGX0RJUl9WRVJUXTsNCj4+ID4gKyAgICAqY2xhc3NfaWR4ID0gYXJn X3Zhclthdl9jbGlwX3VpbnRwMihzdW1faHYgKiBhYyA+PiAoQklUX0RFUFRIIC0NCj4+IDEpLCA0 KV07DQo+PiA+ICsgICAgaWYgKGh2ZDEgKiAyID4gOSAqIGh2ZDApDQo+PiA+ICsgICAgICAgICpj bGFzc19pZHggKz0gKChkaXIxIDw8IDEpICsgMikgKiA1Ow0KPj4gPiArICAgIGVsc2UgaWYgKGh2 ZDEgPiAyICogaHZkMCkNCj4+ID4gKyAgICAgICAgKmNsYXNzX2lkeCArPSAoKGRpcjEgPDwgMSkg KyAxKSAqIDU7DQo+PiA+ICsNCj4+ID4gKyAgICAqdHJhbnNwb3NlX2lkeCA9IGRpcl9kICogMiAr IGRpcl9odjsNCj4+ID4gK30NCj4+ID4gKw0KPj4gPiArc3RhdGljIHZvaWQgRlVOQyhmZl9hbGZf Y2xhc3NpZnkpKGludCAqY2xhc3NfaWR4LCBpbnQgKnRyYW5zcG9zZV9pZHgsDQo+Pg0KPj4gRGl0 dG8NCj4+DQo+PiA+ICsgICAgY29uc3QgdWludDhfdCAqX3NyYywgY29uc3QgcHRyZGlmZl90IF9z cmNfc3RyaWRlLCBjb25zdCBpbnQgd2lkdGgsDQo+PiBjb25zdCBpbnQgaGVpZ2h0LA0KPj4gPiAr ICAgIGNvbnN0IGludCB2Yl9wb3MsIGludDE2X3QgKmdyYWRpZW50X3RtcCkNCj4+ID4gK3sNCj4+ ID4gKyAgICBpbnQxNl90ICpncmFkOw0KPj4gPiArDQo+PiA+ICsgICAgY29uc3QgaW50IHcgPSB3 aWR0aCAgKyBBTEZfR1JBRElFTlRfQk9SREVSICogMjsNCj4+ID4gKyAgICBjb25zdCBpbnQgc2l6 ZSA9IChBTEZfQkxPQ0tfU0laRSArIEFMRl9HUkFESUVOVF9CT1JERVIgKiAyKSAvDQo+PiBBTEZf R1JBRElFTlRfU1RFUDsNCj4+ID4gKyAgICBjb25zdCBpbnQgZ3N0cmlkZSA9ICh3IC8gQUxGX0dS QURJRU5UX1NURVApICogQUxGX05VTV9ESVI7DQo+PiA+ICsgICAgY29uc3QgaW50IGdzaGlmdCA9 IGdzdHJpZGUgLSBzaXplICogQUxGX05VTV9ESVI7DQo+PiA+ICsNCj4+ID4gKyAgICBmb3IgKGlu dCB5ID0gMDsgeSA8IGhlaWdodCA7IHkgKz0gQUxGX0JMT0NLX1NJWkUgKSB7DQo+PiA+ICsgICAg ICAgIGludCBzdGFydCA9IDA7DQo+PiA+ICsgICAgICAgIGludCBlbmQgICA9IChBTEZfQkxPQ0tf U0laRSArIEFMRl9HUkFESUVOVF9CT1JERVIgKiAyKSAvDQo+PiBBTEZfR1JBRElFTlRfU1RFUDsN Cj4+ID4gKyAgICAgICAgaW50IGFjICAgID0gMjsNCj4+ID4gKyAgICAgICAgaWYgKHkgKyBBTEZf QkxPQ0tfU0laRSA9PSB2Yl9wb3MpIHsNCj4+ID4gKyAgICAgICAgICAgIGVuZCAtPSBBTEZfR1JB RElFTlRfQk9SREVSIC8gQUxGX0dSQURJRU5UX1NURVA7DQo+PiA+ICsgICAgICAgICAgICBhYyA9 IDM7DQo+PiA+ICsgICAgICAgIH0gZWxzZSBpZiAoeSA9PSB2Yl9wb3MpIHsNCj4+ID4gKyAgICAg ICAgICAgIHN0YXJ0ICs9IEFMRl9HUkFESUVOVF9CT1JERVIgLyBBTEZfR1JBRElFTlRfU1RFUDsN Cj4+ID4gKyAgICAgICAgICAgIGFjID0gMzsNCj4+ID4gKyAgICAgICAgfQ0KPj4gPiArICAgICAg ICBmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyB4ICs9ICgyKkFMRl9CTE9DS19TSVpFKSkgew0K Pj4gPiArICAgICAgICAgICAgY29uc3QgaW50IHhnID0geCAvIEFMRl9HUkFESUVOVF9TVEVQOw0K Pj4gPiArICAgICAgICAgICAgY29uc3QgaW50IHlnID0geSAvIEFMRl9HUkFESUVOVF9TVEVQOw0K Pj4gPiArICAgICAgICAgICAgaW50IHN1bTBbQUxGX05VTV9ESVJdOw0KPj4gPiArICAgICAgICAg ICAgaW50IHN1bTFbQUxGX05VTV9ESVJdOw0KPj4gPiArICAgICAgICAgICAgZ3JhZCA9IGdyYWRp ZW50X3RtcCArICh5ZyArIHN0YXJ0KSAqIGdzdHJpZGUgKyB4ZyAqDQo+PiBBTEZfTlVNX0RJUjsN Cj4+ID4gKyAgICAgICAgIGZmX2FsZl9jbGFzc2lmeV9zdW1fbmVvbihzdW0wLCBzdW0xLCBncmFk LCBnc2hpZnQsIGVuZC1zdGFydCk7DQo+Pg0KPj4gVGhpcyBsaW5lIHNlZW1zIHRvIGJlIGluZGVu dGVkIGRpZmZlcmVudGx5IHRoYW4gdGhlIHJlc3QNCj4+DQo+PiA+ICsgICAgICAgICAgICBGVU5D KGZmX2FsZl9nZXRfaWR4KShjbGFzc19pZHgsIHRyYW5zcG9zZV9pZHgsIHN1bTAsIGFjKTsNCj4+ ID4gKyAgICAgICAgICAgIGNsYXNzX2lkeCsrOw0KPj4gPiArICAgICAgICAgICAgdHJhbnNwb3Nl X2lkeCsrOw0KPj4gPiArICAgICAgICAgICAgRlVOQyhmZl9hbGZfZ2V0X2lkeCkoY2xhc3NfaWR4 LCB0cmFuc3Bvc2VfaWR4LCBzdW0xLCBhYyk7DQo+PiA+ICsgICAgICAgICAgICBjbGFzc19pZHgr KzsNCj4+ID4gKyAgICAgICAgICAgIHRyYW5zcG9zZV9pZHgrKzsNCj4+ID4gKyAgICAgICAgfQ0K Pj4gPiArICAgIH0NCj4+ID4gKw0KPj4gPiArfQ0KPj4gPiArDQo+PiA+ICt2b2lkIEZVTkMyKGZm X2FsZl9jbGFzc2lmeV9ncmFkLCBCSVRfREVQVEgsIF9uZW9uKShpbnQgKmNsYXNzX2lkeCwgaW50 DQo+PiAqdHJhbnNwb3NlX2lkeCwNCj4+ID4gKyAgICBjb25zdCB1aW50OF90ICpfc3JjLCBjb25z dCBwdHJkaWZmX3QgX3NyY19zdHJpZGUsIGNvbnN0IGludCB3aWR0aCwNCj4+IGNvbnN0IGludCBo ZWlnaHQsDQo+PiA+ICsgICAgY29uc3QgaW50IHZiX3BvcywgaW50MTZfdCAqZ3JhZGllbnRfdG1w KTsNCj4+ID4gKw0KPj4gPiArDQo+PiA+ICtzdGF0aWMgdm9pZCBGVU5DMihhbGZfY2xhc3NpZnks IEJJVF9ERVBUSCwgX25lb24pKGludCAqY2xhc3NfaWR4LCBpbnQNCj4+ICp0cmFuc3Bvc2VfaWR4 LA0KPj4gPiArICAgIGNvbnN0IHVpbnQ4X3QgKl9zcmMsIGNvbnN0IHB0cmRpZmZfdCBfc3JjX3N0 cmlkZSwgY29uc3QgaW50IHdpZHRoLA0KPj4gY29uc3QgaW50IGhlaWdodCwNCj4+ID4gKyAgICBj b25zdCBpbnQgdmJfcG9zLCBpbnQgKmdyYWRpZW50X3RtcCkgew0KPj4NCj4+IE1vdmUgdGhlIG9w ZW5pbmcgYnJhY2Ugb2YgYSBmdW5jdGlvbiB0byB0aGUgbmV4dCBsaW5lDQo+Pg0KPj4gPiArICAg ICAgICBGVU5DMihmZl9hbGZfY2xhc3NpZnlfZ3JhZCwgQklUX0RFUFRILCBfbmVvbikoY2xhc3Nf aWR4LA0KPj4gdHJhbnNwb3NlX2lkeCwgX3NyYywgX3NyY19zdHJpZGUsIHdpZHRoLCBoZWlnaHQs IHZiX3BvcywNCj4+IChpbnQxNl90KilncmFkaWVudF90bXApOw0KPj4NCj4+IFRoaXMgaXMgaW5k ZW50ZWQgb25lIGxldmVsIHRvbyBtdWNoLiBXaXRoIHRoZSBvcGVuaW5nIGJyYWNlIG9uIGl0cyBv d24NCj4+IGxpbmUsIHRoYXQgd291bGQgYmUgY2xlYXJlciB0byBzZWUuDQo+Pg0KPj4NCj4+IElm IHlvdSB3YW50IHRvLCB5b3UgY2FuIHNpZ24gdXAgYXQgaHR0cHM6Ly9jb2RlLmZmbXBlZy5vcmcg YW5kIHN1Ym1pdA0KPj4geW91cg0KPj4gcGF0Y2ggYXMgYSBQUiB0byBodHRwczovL2NvZGUuZmZt cGVnLm9yZy9GRm1wZWcvRkZtcGVnLCBmb3IgZWFzaWVyDQo+PiBmb2xsb3d1cC9yZXZpZXdpbmcg b2YgeW91ciBzdWJtaXNzaW9uLg0KPj4NCj4+DQo+PiAvLyBNYXJ0aW4NCj4+DQo+Pg0KX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1h aWxpbmcgbGlzdCAtLSBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpUbyB1bnN1YnNjcmliZSBzZW5k IGFuIGVtYWlsIHRvIGZmbXBlZy1kZXZlbC1sZWF2ZUBmZm1wZWcub3JnCg==