From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04olkn2019.outbound.protection.outlook.com [40.92.46.19]) by sourceware.org (Postfix) with ESMTPS id 0C9AA3858D3C for ; Wed, 1 Mar 2023 12:27:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0C9AA3858D3C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=outlook.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=outlook.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gmPAv+1g2iBnsOqfFBbRLIv0dLUblzQp9rgCN6KU9oKppj8EIGUeiJ5T8YQzoNNUh7vUqAD6ReBnWlsh5twFuX/YUWpUb0GCeH39RUUz9TfQzHDp5lwg9bbZDOKL4kYZKEEFzG/0XUai1lpkfSikCYyio6O42MOXMQsac8QCJVcBQMlNyZ97+F7RSd3BtwiSfsLZ0b1YvBdxe9UnD1b1qWHimalVDdGdLXTtZmnhA7ol19723TRF5SUDBsGfaB2hnxStl14oS6+VsFYNafDSPePfbFivQLOoXqsdP3Au5IvRQDcddUu2+B+inyagWrL0pb1tBMV2kNm0RCoypaYYFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=1lUfr7TNr0xBN8hLi3X6N405DVX2YSKW0TS8C9D5sl8=; b=DbLLBtGO5z94O7r0exOrG3imUDVJkDi/4/SxNoGQ4MVBen8aQvid/1bu1XWF5ZNPky2eoyfcjFzOEtJ+M+UpCcu2Qy25BIhd1cDezwIJB2bkR90LM0832Nir99TVpwkXA4SPWejVCYbTJ9+ETCTxdOOhP5Twc8dTfxrMI9VaLtROXZnriGiMJT89rmMoxCJ2S+lTnOxCAOycCzb9s2V4XtA0qKN1mIpD+a8vj+qNHAhCaXRP5yTPAVKUmRVDhUkb3006cL2AwsRbTQdJ1todChLVITPKrR8UwqN+aPQL5g2QTcLVMWeb1Dm0EjZW3UInG3dDd6KOQcuRedyBM3vTQQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1lUfr7TNr0xBN8hLi3X6N405DVX2YSKW0TS8C9D5sl8=; b=eNU+UQ4F6wHtj3UavFFrp7ZnNgL8zc7mAZgQzMFH8QZupvLDQf/eCrvttCrkvwdLUxaLvFfe1BhFnvdSPdUYbDYbSkUYk0Y2iBWCkJbd+x5/umPGbfSiOCT+O//lq6LdgeV/a9O9/21V/pJ6sOKOSF6vmMYnXa3F+/ezcVtPFfG2NNiV7fB5MCy9+9v0Ocb0Vm41FMvZMc8OAURGX10VBAZNW8Xf5X3J6yhpZsdP8op8UhmZ0AKmoXEiq/9YWcesJCExe7RhhkCPAleCBy16OP/uD/dAdDfDybCb/XGUdWE/V0ImwjFH4szqVurrW0fdF4WddtZ3Du/k8hG2vYD3ug== Received: from BYAPR04MB4824.namprd04.prod.outlook.com (2603:10b6:a03:5e::19) by BN6PR04MB0692.namprd04.prod.outlook.com (2603:10b6:404:d3::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.18; Wed, 1 Mar 2023 12:27:19 +0000 Received: from BYAPR04MB4824.namprd04.prod.outlook.com ([fe80::1649:a6f8:5e44:43b4]) by BYAPR04MB4824.namprd04.prod.outlook.com ([fe80::1649:a6f8:5e44:43b4%3]) with mapi id 15.20.6134.024; Wed, 1 Mar 2023 12:27:19 +0000 From: =?utf-8?B?55u8IOadjg==?= To: "juzhe.zhong@rivai.ai" , richard.sandiford , gcc-patches CC: pan2.li , Kito.cheng , rguenther Subject: Re: Re: [PATCH] RISC-V: Bugfix for rvv bool mode precision adjustment Thread-Topic: Re: [PATCH] RISC-V: Bugfix for rvv bool mode precision adjustment Thread-Index: AQHZTC6elNoYPmDEs0WlhZAo09h3kq7lz97qgAADV/+AAAMkfYAAARg2 Date: Wed, 1 Mar 2023 12:27:19 +0000 Message-ID: References: , , , , , , , , <6F429B8CF9C3B3EF+2023030118462950633032@rivai.ai>, , , , <57D5114CA3C3BC82+2023030120135151352039@rivai.ai> In-Reply-To: <57D5114CA3C3BC82+2023030120135151352039@rivai.ai> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [K0jXMOrI82H5glJyCgkRWexUeXmYAwxN] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BYAPR04MB4824:EE_|BN6PR04MB0692:EE_ x-ms-office365-filtering-correlation-id: 7a373444-f8bf-4e29-3b85-08db1a504cc6 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Miyoxwpq78v9iGKLODa0fVBoeymdr8v8V20eun/HbvGFmecJD4/OueLNM768rgd655aojQ8Mq5qH4ptATruxJGP4uIQd6k3gIeKeml5XWZn4DETBzOhd/U2knfPzkVzd2qH7jv97NGJY8/NhEos1A94D/mApv6s/Gg9ZrRa2k/L4Qh2yOOM+rMfyyiT66tZctjUs8TYNasZ8F0PEiadHrTwP1RUkx+CjqEog2KTA1KzIqvKbiN197xvhSSAsJU2xeoywtbftCqY1KA8f2Vz6L7dlsK3H8g7M29feMA5m0rN/uwaItqYqBQgfSROX8BrtHbdl1Q/XmQ6MdKS6cFS5ea6VY/6qh94ssq9VBEEs3rfCvJXDh/8UlwJx7URfZOvdlJz4nLin+bYuX2936a7t97Mi3Z1X+Bb5B6WqYselw5xDlq7D5YVcdpbCR+eiYFgMiJnYxbOiWpGUqOPOY7MWI7z2u3/mrJ9ugm4JFtm94wu/lvJ0Dz1qO387bdg9GjlITEuOLgP2u8/9i+90XEKuO1PwzjJlGqjUsDse+tX5yKeRWQ9NnUS/MCAlEL4APSbXkQQZYq+jUdmTUow5tr/VCnhbjPRmnP285+wuB2wipCf2g6ooXBSPjCoaOCfRzuCTE0o81dvw74zwGPxPESnGPg== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RFNTNVlTSlY3RVBRZ2pRYklQU3Zoa3BFNERJajNROWtjMWxMWjB2cWIwcXpx?= =?utf-8?B?SUMrRFFsbVhKT1VpN2N3WFQwQTdqdWYydUcwdDFNSXp2ZDFReDlETlR5Ym1Z?= =?utf-8?B?NXVJbitrTGF4WW8wVmlZdVFZeVU3VW1xZXVZa3p1cE1ld2xXYisxRmswY1Vt?= =?utf-8?B?eUQrd2NwKzUvcllTVEFTZU5wMDNwUVJQaEFBTEFvNUlWN3djbFhhVHRzbXJj?= =?utf-8?B?Y0NLdWxMZkJqbStwaTNtMHdhQy9jeDZjMk8vUjA1UXpEU25SU3loMVdQZG1R?= =?utf-8?B?TFI0NysyTGQxZVExWEk2MFUza1BueExFRVQwVkhvWERnNk1zOFRESnVsU1Mw?= =?utf-8?B?M1RPZEZWeEdYczRuNC9LcjFPN1AxOHRsbkI5bkdyWUkxQlFKM3NxRmNPQkFQ?= =?utf-8?B?WXJyTUlvd1VYUVpLSXpaYk5qM0lzYS9CNmlpMjY0ZE9MNTcxVVhZNkg2a3hV?= =?utf-8?B?WHVlNWUvTC9OeHpFaHZCUzBpWE02enJ0cFdmUUlJWWE3MWFyV1l0YzEvcW1y?= =?utf-8?B?cjhUSnhoZGNjTDdDTS9TUCtaSlpsMHJFdTVGVnoyRUU4NG5wUTVZbkwvV0Rn?= =?utf-8?B?WENZRmlqTDRkR01pMEFaSURGL0hrZFM3TE84RWpNNDRBWlRxckpLTmQxSHor?= =?utf-8?B?MkpIaFRXbWxmTEd4Zld3MkpEUlJ3Q0FDdlJCQ0NGWGF3a3F3c3pESWEya3NS?= =?utf-8?B?RTZxWXkvdDVHcnljSVZqb3p5ZGs0UDNIWGRNMmxub2xPY2ZNNmhNMUNUb0Yw?= =?utf-8?B?MG5zakVmV29vcEl0RkVEWHN5Rk05Y1JRTXE5SE9vLzJqQXIxNTY1NTJLV0t3?= =?utf-8?B?R2t6ZytVVk82TEJzVXJMclYwNlZEMHIrWjZUSUNVTzU2TGdJRWJnNHNCd2gx?= =?utf-8?B?QTBOOGtvTWE0VE80N1VaVnhwdHdudXJQSE4wM1R3RmU5M1V0aUc5OTl2VGFK?= =?utf-8?B?ZWhMaVpJWE1RYVM1bEs3U0xSRGdvM056NkQwMHlNZkViMndGczlMekNNR3pT?= =?utf-8?B?YXorTzUyTnlIbXg1cTR2U1BIVGVSczY1UlN5RU5Hb0ZlQ3Y0VDg5NVM1Q0pY?= =?utf-8?B?WUpPSUR5bHRULzM3ekNGQVFCaGZZQVYyQmRUMWFxeEQ3bVJaSFhVb1VEUVdW?= =?utf-8?B?SnRaM3pMVzR5aWZETytvWDk4VUU1c29HU1Zld3dIeHdsTVkrTkJydS9OUFc2?= =?utf-8?B?VEdCclFLenF1V2hBTFAxY3dFNDcvdkt4OCtvYUcvSjFyRDhNSzlWUExndlRT?= =?utf-8?B?R3lRelQ2ZVR1NWZMR2ZpU3lYN294K21RRktSOXVmK0k3N0ZmNmFFcGRKTnRM?= =?utf-8?B?dGwrcEc0OXZCNTFlSExTUWV4ZzJjWjZ3bEk5U3VkNVo2dG5wMDdleFJ4Z1BY?= =?utf-8?B?bkhWTkl0OUFxMVRrQ1MrVDF6dmhDckp5Nytpb3pxS3UrbFRnWnArQ1cxbWdu?= =?utf-8?B?M1ZjakdtVkZxNVYyazUzdXc4Z2xrU2FKOEpzbzBQbTFoVmxueS9PL1RIbzND?= =?utf-8?B?MW5kWVJwenpmM1FVMkpJaXFtZDBJT1pHYjg5aUtNOGt3QURqakhSNHRlS2JI?= =?utf-8?B?L2dkcGhQS3NuSnVYbWE2SFFnWE45Mk9qa0VPa0FCd0R1L3hhaGtXVWhkTlBw?= =?utf-8?B?QkV6RnZ2NzRLbk9IS2krc3VlcmdzOFNaZm8xa1N6aDJLL2pVNVNvOXJqZCty?= =?utf-8?B?WGFjTzQrWjNsTmM1NCtmakNBSm01RGlCdVN2WHIyNkZibVROTjdkSjlnPT0=?= Content-Type: multipart/alternative; boundary="_000_BYAPR04MB4824B72A51DEC93214D26DC7B7AD9BYAPR04MB4824namp_" MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR04MB4824.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 7a373444-f8bf-4e29-3b85-08db1a504cc6 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2023 12:27:19.0197 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR04MB0692 X-Spam-Status: No, score=-9.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,KAM_SHORT,RCVD_IN_DNSWL_NONE,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_PASS,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --_000_BYAPR04MB4824B72A51DEC93214D26DC7B7AD9BYAPR04MB4824namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 bGV0IG1lIGV4cGxhaW4gbW9yZSBhYm91dCB0aGUgdGVzdCBbNCw0XS4gQXMg SSB1bmRlcnN0YW5kLCB0aGUgc2VsZiB0ZXN0IHdpbGwgcnVuIG1vcmUgdGhh biAxIHRpbWUgZm9yIFZOeDRCSS4NCg0KVGhlIGZpcnN0IHRpbWUsIHByZWNp c2lvbltWTng0QkldID0gWzgsIDhdLCB0aGVuIHRoZSBQUiBwcmVjaXNpb24g cGFydCB3aWxsIGFkanVzdCBpdCB0byBbNCwgNF0uDQpUaGUgcmVzdCB0aW1l cywgcHJlY2lzaW9uW1ZOeDRCSV0gPSBbNCwgNF0sIHRoZW4gY2FuXyogd2ls bCByZXR1cm4gZmFsc2UgYW5kIGhpdCB0aGUgZ2NjX3VucmVlYWNoYWJsZSgp Lg0KDQpJIGFncmVlIHRoYXQgdGhlIGN1cnJlbnQgaW5mcmFzdHJ1Y3R1cmUg Y2Fubm90IHJlcHJlc2VudCB0aGlzIGNhc2UuIEFzIG1lbnRpb25lZCBieSBq dXpoZSwgd2UganVzdCB3b3VsZCBsaWtlIHRvDQpoYXZlIHNvbWUgZGlmZmVy ZW5jZXMgZm9yIFZOeFsxLTRdQkkuIFNvIHdlIHRyeSB0byBhZGp1c3QgdGhl IHByZWNpc2lvbiBhbmQgbWVldCBzb21lIHNlbGYtdGVzdCBmYWlsdXJlLCB0 aGF0IGlzIHRoZSB3aG9sZQ0Kc3Rvcnkgb2YgdGhlIGdlbm1vZGUgcHJpbnRm KCIgeHh4IikgcGFydHMgY2hhbmdlcy4NCg0KSXQgaXMgcGVyZmVjdCBpZiB5 b3UgaGF2ZSBzb21lIGVsZWdhbnQgd2F5IGZvciB0aGlzLCBpbmNsdWRpbmcg Ym90aCB0aGUgc2VsZi10ZXN0IGFuZCB0aGUgcHJlY2lzaW9uIHBhcnQuDQoN ClRoYW5rIHlvdSBzbyBtdWNoDQoNClBhbg0KDQoNCg0KX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18NCkZyb206IGp1emhlLnpob25nQHJpdmFp LmFpIDxqdXpoZS56aG9uZ0ByaXZhaS5haT4NClNlbnQ6IFdlZG5lc2RheSwg TWFyY2ggMSwgMjAyMyAyMDoxMw0KVG86IHJpY2hhcmQuc2FuZGlmb3JkIDxy aWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPjsgZ2NjLXBhdGNoZXMgPGdjYy1w YXRjaGVzQGdjYy5nbnUub3JnPg0KQ2M6IGluY2FybmF0aW9uLnAubGVlIDxp bmNhcm5hdGlvbi5wLmxlZUBvdXRsb29rLmNvbT47IHBhbjIubGkgPHBhbjIu bGlAaW50ZWwuY29tPjsgS2l0by5jaGVuZyA8a2l0by5jaGVuZ0BzaWZpdmUu Y29tPjsgcmd1ZW50aGVyIDxyZ3VlbnRoZXJAc3VzZS5kZT4NClN1YmplY3Q6 IFJlOiBSZTogW1BBVENIXSBSSVNDLVY6IEJ1Z2ZpeCBmb3IgcnZ2IGJvb2wg bW9kZSBwcmVjaXNpb24gYWRqdXN0bWVudA0KDQpBY3R1YWxseSwgd2UganVz dCB3YW50IHRvIGRpZmZlcmVudGlhdGUgVk54MUJJIFZOeDJCSSBWTng0Qkkg Vk54OEJJLCBhbmQgdGhleSBhcmUgY29uc2lkZXJlZCB0aGUgc2FtZSBpbiBH Q0Mgd2hpY2ggcHJvZHVjZSBCVUcgaW4gUlZWIGN1cnJlbnRseS4NClRoaXMg cGF0Y2ggaXMganVzdCBhZGp1c3QgcHJlY2lzaW9uIHRvIGRpZmZlcmVudGlh dGUgdGhlbSBidXQgbWF5IG5vdCBiZSAobGlrZSB5b3Ugc2F5KSwgdGhleSBt YXkgbm90IGJlIGhhbmRsZWQgYWNjdXJhdGVseSBhY2NvcmRpbmcgcHJlY2lz aW9uLg0KSG93ZXZlciwgYXQgbGVhc3QgaXQgY2FuIGhlbHAgdXMgZGlmZmVy ZW50aWF0ZSB0aGVzZSA0IG1hc2sgbW9kZXMgYW5kIGF2b2lkIGVuY291bnRl ciB0aGUgYnVncy4NClRoZSBpcyB0aGUgY3VycmVudCBzb2x1dGlvbiB0aGF0 IHdlIGhhdmUgdG8gZml4IHRoZSBidWcgb2YgUlZWIGFuZCBhdm9pZCBpbmZs dWVuY2Ugb3RoZXIgdGFyZ2V0cy4NCg0KRG8geW91IGhhdmUgb3RoZXIgaWRl YXMgdG8gZml4IHRoaXMgaXNzdWU/IE9yIHN1Y2ggcGF0Y2ggd2l0aCBhZGRp bmcgYWRqdXN0X3ByZWNpc2lvbiBzdXBwb3J0IGlzIE9LIHRvIEdDQz8NCg0K VGhhbmtzLg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCmp1 emhlLnpob25nQHJpdmFpLmFpDQoNCkZyb206IFJpY2hhcmQgU2FuZGlmb3Jk PG1haWx0bzpyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPg0KRGF0ZTogMjAy My0wMy0wMSAyMDowMw0KVG86IOebvCDmnY4gdmlhIEdjYy1wYXRjaGVzPG1h aWx0bzpnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4NCkNDOiDnm7wg5p2OPG1h aWx0bzppbmNhcm5hdGlvbi5wLmxlZUBvdXRsb29rLmNvbT47IGp1emhlLnpo b25nXEByaXZhaS5haTxtYWlsdG86anV6aGUuemhvbmdAcml2YWkuYWk+OyBw YW4yLmxpPG1haWx0bzpwYW4yLmxpQGludGVsLmNvbT47IEtpdG8uY2hlbmc8 bWFpbHRvOmtpdG8uY2hlbmdAc2lmaXZlLmNvbT47IHJndWVudGhlcjxtYWls dG86cmd1ZW50aGVyQHN1c2UuZGU+DQpTdWJqZWN0OiBSZTogW1BBVENIXSBS SVNDLVY6IEJ1Z2ZpeCBmb3IgcnZ2IGJvb2wgbW9kZSBwcmVjaXNpb24gYWRq dXN0bWVudA0K55u8IOadjiB2aWEgR2NjLXBhdGNoZXMgPGdjYy1wYXRjaGVz QGdjYy5nbnUub3JnPiB3cml0ZXM6DQo+IEp1c3QgaGF2ZSBhIHRlc3Qgd2l0 aCB0aGUgYmVsb3cgY29kZSwgdGhlIFsweDQsIDB4NF0gdGVzdCBjb21lcyBm cm9tIFZOeDRCSS4gWW91IGNhbiBub3RpY2UgdGhhdCB0aGUgbW9kZSBzaXpl IGlzIHVuY2hhbmdlZC4NCj4NCj4gcHJpbnRmICgiICAgIGNhbl9kaXZfYXdh eV9mcm9tX3plcm9fcCAobW9kZV9wcmVjaXNpb25bRV8lc21vZGVdLCAiDQo+ ICAgIkJJVFNfUEVSX1VOSVQsICZtb2RlX3NpemVbRV8lc21vZGVdKTtcbiIs IG0tPm5hbWUsIG0tPm5hbWUpOw0KPg0KPiBWTng0QkkgQmVmb3JlIHByZWNp c2lvbiBbMHg0LCAweDRdLCBzaXplIFsweDQsIDBdDQo+IFZOeDRCSSBBZnRl ciBwcmVjaXNpb24gWzB4NCwgMHg0XSwgc2l6ZSBbMHg0LCAwXQ0KDQpZZWFo LCB0aGUgcmVzdWx0IGlzIGV4cGVjdGVkIHRvIGJlIHVuY2hhbmdlZCBpZiB0 aGUgZGl2aXNpb24gZmFpbHMuDQpUaGF0J3MgYSBkZWxpYmVyYXRlIHBhcnQg b2YgdGhlIGludGVyZmFjZS4gIFRoZSBjYW5fKiBmdW5jdGlvbnMNCnNob3Vs ZCBuZXZlciBiZSB1c2VkIHdpdGhvdXQgdGVzdGluZyB0aGUgYm9vbGVhbiBy ZXR1cm4gdmFsdWUuDQoNCkJ1dCB0aGlzIHByZWNpc2lvbiBvZiBbNCw0XSBm b3IgVk54NEJJIGlzIGRpZmZlcmVudCBmcm9tIHdoYXQgeW91DQpsaXN0ZWQg YmVsb3cuICBMaWtlIEkgc2F5LCBpZiB0aGUgcHJlY2lzaW9uIHJlYWxseSBp cyBbNCw0XSwgYW5kIGlmDQp0aGUgc2l6ZSByZWFsbHkgaXMgY2VpbChbNCw0 XS84KSwgdGhlbiBJIGRvbid0IHRoaW5rIHdlIGNhbiByZXByZXNlbnQNCnRo YXQgd2l0aCBjdXJyZW50IGluZnJhc3RydWN0dXJlLg0KDQpUaGFua3MsDQpS aWNoYXJkDQoNCj4NCj4gUGFuDQo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fDQo+IEZyb206IFJpY2hhcmQgU2FuZGlmb3JkIDxyaWNoYXJk LnNhbmRpZm9yZEBhcm0uY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIE1hcmNo IDEsIDIwMjMgMTk6MTENCj4gVG86IOebvCDmnY4gdmlhIEdjYy1wYXRjaGVz IDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4NCj4gQ2M6IGp1emhlLnpob25n QHJpdmFpLmFpIDxqdXpoZS56aG9uZ0ByaXZhaS5haT47IHBhbjIubGkgPHBh bjIubGlAaW50ZWwuY29tPjsg55u8IOadjiA8aW5jYXJuYXRpb24ucC5sZWVA b3V0bG9vay5jb20+OyBLaXRvLmNoZW5nIDxraXRvLmNoZW5nQHNpZml2ZS5j b20+OyByZ3VlbnRoZXIgPHJndWVudGhlckBzdXNlLmRlPg0KPiBTdWJqZWN0 OiBSZTogW1BBVENIXSBSSVNDLVY6IEJ1Z2ZpeCBmb3IgcnZ2IGJvb2wgbW9k ZSBwcmVjaXNpb24gYWRqdXN0bWVudA0KPg0KPiDnm7wg5p2OIHZpYSBHY2Mt cGF0Y2hlcyA8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+IHdyaXRlczoNCj4+ IFRoYW5rIHlvdSBhbGwgZm9yIHlvdXIgcXVpY2sgcmVzcG9uc2UuDQo+Pg0K Pj4gQXMganV6aGUgbWVudGlvbmVkLCB0aGUgbWVtb3J5IGFjY2VzcyBvZiBS SVNDLVYgd2lsbCBiZSBhbHdheXMgYWxpZ25lZCB0byB0aGUgYnl0ZXMgYm91 bmRhcnkgd2l0aCB0aGUgY29tcGFjdCBtb2RlLCBha2EgY2VpbCh2bCAvIDgp IGJ5dGVzIGZvciB2Ym9vbCouDQo+DQo+IE9LLCB0aGFua3MgdG8gYm90aCBv ZiB5b3UuICBUaGlzIGlzIHdoYXQgSSdkIGhhdmUgZXhwZWN0ZWQuDQo+DQo+ IEluIHRoYXQgY2FzZSwgSSB0aGluayBib3RoIHRoZSBjYW5fZGl2X2F3YXlf ZnJvbV96ZXJvX3AgYW5kIHRoZQ0KPiBvcmlnaW5hbCBwYXRjaCAodXNpbmcg c2l6ZV9vbmUpIHdpbGwgZ2l2ZSB0aGUgd3JvbmcgcmVzdWx0cy4NCj4gVGhl cmUgaXNuJ3QgYSB3YXkgb2YgcmVwcmVzZW50aW5nIGNlaWwoWzQsNF0vOCkg YXMgYSBwb2x5X2ludC4NCj4gVGhlIHJlc3VsdCBpcyAoNCs0WCkvOCB3aGVu IFggaXMgb2RkIGFuZCAoOCs0WCkvOCB3aGVuIFggaXMgZXZlbi4NCj4NCj4+ IEFjdHVhbGx5LCB0aGUgZGF0YSBbNCw0XSBjb21lcyBmcm9tIHRoZSBzZWxm LXRlc3QsIHRoZSBSSVNDLVYgcHJlY2lzaW9uIG1vZGUgYXMgYmVsb3cuDQo+ Pg0KPj4gVk54NjRCSSBwcmVjaXNpb24gWzB4NDAsIDB4NDBdLg0KPj4gVk54 MzJCSSBwcmVjaXNpb24gWzB4MjAsIDB4MjBdLg0KPj4gVk54MTZCSSBwcmVj aXNpb24gWzB4MTAsIDB4MTBdLg0KPj4gVk54OEJJIHByZWNpc2lvbiBbMHg4 LCAweDhdLg0KPj4gVk54NEJJIHByZWNpc2lvbiBbMHg4LCAweDhdLg0KPj4g Vk54MkJJIHByZWNpc2lvbiBbMHg4LCAweDhdLg0KPj4gVk54MUJJIHByZWNp c2lvbiBbMHg4LCAweDhdLg0KPg0KPiBBaCwgT0suICBXaGljaCBzZWxmLXRl c3QgY2F1c2VzIHRoaXM/DQo+DQo+IFJpY2hhcmQNCj4NCj4+IFRoZSBpbXBh Y3Qgb2YgZGF0YSBbNCwgNF0gd2lsbCBpbXBhY3QgdGhlIGdlbm1vZGUgcGFy dCwgd2UgY2Fubm90IHdyaXRlIGxpa2UgYmVsb3cgYXMgdGhlIGdjY191bnJl YWNoYWJsZSB3aWxsIGJlIGhpdHRlbi4NCj4+DQo+PiBpZiAoIWNhbl9kaXZf YXdheV9mcm9tX3plcm9fcCAobW9kZV9wcmVjaXNpb25bRV8lc21vZGVdLCBC SVRTX1BFUl9VTklULCAgJm1vZGVfc2l6ZVtFXyVzbW9kZV0pKQ0KPj4gICBn Y2NfdW5yZWFjaGFibGUgKCk7IC8vIEhpdCBvbiBbNCwgNF0gb2YgdGhlIHNl bGYtdGVzdC4NCj4+DQo+PiBQYW4NCj4+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fDQo+PiBGcm9tOiBqdXpoZS56aG9uZ0ByaXZhaS5haSA8 anV6aGUuemhvbmdAcml2YWkuYWk+DQo+PiBTZW50OiBXZWRuZXNkYXksIE1h cmNoIDEsIDIwMjMgMTg6NDYNCj4+IFRvOiByaWNoYXJkLnNhbmRpZm9yZCA8 cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbT47IHBhbjIubGkgPHBhbjIubGlA aW50ZWwuY29tPg0KPj4gQ2M6IGluY2FybmF0aW9uLnAubGVlIDxpbmNhcm5h dGlvbi5wLmxlZUBvdXRsb29rLmNvbT47IGdjYy1wYXRjaGVzIDxnY2MtcGF0 Y2hlc0BnY2MuZ251Lm9yZz47IEtpdG8uY2hlbmcgPGtpdG8uY2hlbmdAc2lm aXZlLmNvbT47IHJndWVudGhlciA8cmd1ZW50aGVyQHN1c2UuZGU+DQo+PiBT dWJqZWN0OiBSZTogUmU6IFtQQVRDSF0gUklTQy1WOiBCdWdmaXggZm9yIHJ2 diBib29sIG1vZGUgcHJlY2lzaW9uIGFkanVzdG1lbnQNCj4+DQo+Pj4+IElz IGl0IHJpZ2h0IHRoYXQsIGZvciBSVlYsIGEgbG9hZCBvciBzdG9yZSBvZiBb NCw0XSB3aWxsIGFjY2VzcyBbOCw4XQ0KPj4+PmJpdHMsIGV2ZW4gd2hlbiB0 aGF0IG1lYW5zIGFjY2Vzc2luZyBmdWxseS11bnVzZWQgYnl0ZXM/ICBFLmcu IDQrNFgNCj4+Pj53aGVuIFg9MyB3b3VsZCBiZSAxNiBiaXRzLzIgYnl0ZXMg b2YgdXNlZnVsIGRhdGEsIGJ1dCBhIGJpdHNpemUgb2YNCj4+Pj44KzhYIHdv dWxkIGJlIDMyIGJpdHMvNCBieXRlcy4gIFNvIGEgc3RvcmUgb2YgWzgsOF0g Zm9yIGEgcHJlY2lzaW9uDQo+Pj4+b2YgWzQsNF0gd291bGQgc3RvcmUgMiBi eXRlcyBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgdXNlZnVsIGRhdGEgd2hlbiBY PT0zPw0KPj4NCj4+IEhpLCBSaWNoYXJkLiBUaGFuayB5b3UgZm9yIGhlbHBp bmcgdXMuDQo+PiBNeSB1bmRlcnN0YW5kaW5nIG9mIFJWViBJU0E6DQo+Pg0K Pj4gSW4gUlZWLCB3ZSBoYXZlIG1hc2sgbW9kZSAoVk54MUJJLCBWTngyQkks Li4uLmV0YyksIGRhdGEgbW9kZSAoVk54MVFJLFZOeDRRSSwgVk54MkRJLC4u LmV0YykNCj4+IEZvciBkYXRhIG1vZGUsIHdlIGZ1bGx5IGFjY2VzcyB0aGUg ZGF0YSBhbmQgd2UgZG9uJ3QgaGF2ZSB1bnVzZWQgYnl0ZXMsIHNvIHdlIGRv bid0IG5lZWQgdG8gYWRqdXN0IHByZWNpc2lvbi4NCj4+IEhvd2V2ZXIsIGZv ciBtYXNrIG1vZGUgd2UgYWNjZXNzIG1hc2sgYml0IGluIGNvbXBhY3QgbW9k ZWwgKHNpbmNlIGVhY2ggbWFzayBiaXQgZm9yIGNvcnJlc3BvbmRpbmcgZWxl bWVudCBhcmUgY29uc2VjdXRpdmUpLg0KPj4gZm9yIGV4YW1wbGUsIGN1cnJl bnQgY29uZmlndXJhdGlvbjogVk54MUJJLCBWTngyQkksIFZOeDRCSSwgVk54 OEJJLCB0aGVzZSA0IG1vZGVzIGhhdmUgc2FtZSBieXRlc2l6ZSAoMSwxKSAg YnV0IGRpZmZlcmVudCBiaXRzaXplLg0KPj4NCj4+IFZOeDhCSSBpcyBhY2Nl c3NlZCBmdWxseSwgYnV0IFZOeDRCSSBpcyBvbmx5IGFjY2Vzc2VkIDEvMiwg Vk54MkJJIDEvNCwgVk54MUJJIDEvOCBidXQgYnl0ZSBhbGlnbm1lbnQgKEkg YW0gbm90IHN1cmUgd2hldGhlciBSVlYgc3VwcG9ydCBiaXQgYWxpZ25tZW50 LCBJIGd1ZXNzIGl0IGNhbiBub3QpLg0KPj4NCj4+IElmIFZOeDhCSSBvbmx5 IG9jY3VweSAxIGJ5dGUgKERlcGVuZCBvbiBtYWNoaW5lIHZlY3Rvci1sZW5n dGgpLCBzbyBWTngyQkksVk40QkksIFZOeDFCSSwgYXJlIDIvOCBieXRlLCA0 LzggYnl0ZSwgMS84IGJ5dGVzLiBJIHRoaW5rIHdlIGNhbid0IGFjY2VzcyBp biBiaXQgYWxpZ25tZW50LiBzbyB0aGV5IHdpbGwgdGhlIHNhbWUgaW4gdGhl IGFjY2Vzcy4NCj4+IEhvd2V2ZXIsIGlmIFZOeDhCSSBvY2N1cHR5IDggYnl0 ZSwgV2VsbCwgVk54MkJJLFZONEJJLCBWTngxQkkgYXJlIDFieXRlLCAyYnl0 ZXMsIDRieXRlcy4gVGhleSBhcmUgYWNjZXNzaW5nIGRpZmZlcmVudCBzaXpl Lg0KPj4NCj4+IFRoaXMgaXMgbXkgY29tcHJlaGVuc2lvbiBvZiBSVlYgSVNB LCBmZWVsIGZyZWUgdG8gY29ycmVjdCBtZS4NCj4+IFRoYW5rcy4NCj4+DQo+ PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4ganV6aGUu emhvbmdAcml2YWkuYWkNCj4+DQo+PiBGcm9tOiBSaWNoYXJkIFNhbmRpZm9y ZDxtYWlsdG86cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbT4NCj4+IERhdGU6 IDIwMjMtMDMtMDEgMTg6MTENCj4+IFRvOiBMaVwsIFBhbjI8bWFpbHRvOnBh bjIubGlAaW50ZWwuY29tPg0KPj4gQ0M6IOebvCDmnY48bWFpbHRvOmluY2Fy bmF0aW9uLnAubGVlQG91dGxvb2suY29tPjsgaW5jYXJuYXRpb24ucC5sZWUt LS0gdmlhIEdjYy1wYXRjaGVzPG1haWx0bzpnY2MtcGF0Y2hlc0BnY2MuZ251 Lm9yZz47IGp1emhlLnpob25nXEByaXZhaS5haTxtYWlsdG86anV6aGUuemhv bmdAcml2YWkuYWk+OyBraXRvLmNoZW5nXEBzaWZpdmUuY29tPG1haWx0bzpr aXRvLmNoZW5nQHNpZml2ZS5jb20+OyByZ3VlbnRoZXJcQHN1c2UuZGU8bWFp bHRvOnJndWVudGhlckBzdXNlLmRlPg0KPj4gU3ViamVjdDogUmU6IFtQQVRD SF0gUklTQy1WOiBCdWdmaXggZm9yIHJ2diBib29sIG1vZGUgcHJlY2lzaW9u IGFkanVzdG1lbnQNCj4+ICJMaSwgUGFuMiIgPHBhbjIubGlAaW50ZWwuY29t PiB3cml0ZXM6DQo+Pj4gSGkgUmljaGFyZCBTYW5kaWZvcmQsDQo+Pj4NCj4+ PiBKdXN0IHRyaWVkIHRoZSBvdmVybG9hZGVkIGNvbnN0YW50IGRpdmlzb3Jz IHdpdGggYmVsb3cgcHJpbnQgZGl2LCBpdCB3b3JrcyBhcyB5b3UgbWVudGlv bmVkLCDvmIkhDQo+Pj4NCj4+PiBwcmludGYgKCIgICAgY2FuX2Rpdl9hd2F5 X2Zyb21femVyb19wIChtb2RlX3ByZWNpc2lvbltFXyVzbW9kZV0sICINCj4+ PiAgICAgICJCSVRTX1BFUl9VTklULCAmbW9kZV9zaXplW0VfJXNtb2RlXSk7 XG4iLCBtLT5uYW1lLCBtLT5uYW1lKTsNCj4+Pg0KPj4+IHRlbXBsYXRlPHVu c2lnbmVkIGludCBOLCB0eXBlbmFtZSBDYSwgdHlwZW5hbWUgQ2IsIHR5cGVu YW1lIENxPg0KPj4+IGlubGluZSB0eXBlbmFtZSBpZl9ub25wb2x5PENiLCBi b29sPjo6dHlwZQ0KPj4+IGNhbl9kaXZfYXdheV9mcm9tX3plcm9fcCAoY29u c3QgcG9seV9pbnRfcG9kPE4sIENhPiAmYSwNCj4+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2IgYiwNCj4+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgcG9seV9pbnRfcG9kPE4sIENxPiAqcXVvdGllbnQpDQo+Pj4gew0KPj4+ ICAgaWYgKCFjYW5fZGl2X3RydW5jX3AgKGEsIGIsIHF1b3RpZW50KSkNCj4+ PiAgICAgcmV0dXJuIGZhbHNlOw0KPj4+ICAgaWYgKG1heWJlX25lICgqcXVv dGllbnQgKiBiLCBhKSkNCj4+PiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9 IDA7IGkgPCBOOyArK2kpDQo+Pj4gICAgICAgcXVvdGllbnQtPmNvZWZmc1tp XSArPSAocXVvdGllbnQtPmNvZWZmc1tpXSA8IDAgPyAtMSA6IDEpOw0KPj4+ ICAgcmV0dXJuIHRydWU7DQo+Pj4gfQ0KPj4+DQo+Pj4gQnV0IEkgbWF5IGhh dmUgYSBxdWVzdGlvbiBhYm91dCB0aGUgb25lIGNhc2UgYXMgYmVsb3cuDQo+ Pj4NCj4+PiBBc3N1bWU6DQo+Pj4gYSA9IFs0LCA0XSwgYiA9IDguDQo+Pj4N Cj4+PiBXaGVuIG1lZXQgY2FuX2Rpdl90cnVuY19wLCBpdCB3aWxsIGNoZWNr IGlmIHRoZSByZW1pbmRlciBpcyBjb25zdGFudCBvciBub3QsIGFrYSBhLmNv ZWZmc1tpXSAlIDggPT0gMCAoaSA+PSAxKS4gSWYgbm90IGNvbnN0YW50IHJl bWluZGVyLCB0aGUgY2FuX2Rpdl90cnVuY19wIHdpbGwgZG8gbm90aGluZyBh Ym91dCBxdW90aWVudCBhbmQgcmV0dXJuIGZhbHNlLg0KPj4+DQo+Pj4gVGh1 cywgd2hlbiBhID0gWzQsIDRdIGZvciBjYW5fZGl2X2F3YXlfZnJvbV96ZXJv X3AsIHRoZSBvdXRwdXQgKnF1b3RpZW50IHdpbGwgYmUgdW5jaGFuZ2VkLCBh a2EgdGhlIG1vZF9zaXplW0VfJXNtb2RlXSB3aWxsIGJlIHVuY2hhbmdlZCBm b3IgdGhpcyBjYXNlLiBIb3dldmVyLCB0aGUgdW5kZXJseWluZyBtb2RlX3Np emUgd2lsbCBhZGp1c3QgaXQgdG8gdGhlIHJlYWwgYnl0ZSBzaXplLCBhbmQg SSBhbSBub3Qgc3VyZSBpZiBpdCBpcyBieSBkZXNpZ24gb3IgcmVxdWlyZXMg YWRkaXRpb25hbCBoYW5kbGluZy4NCj4+DQo+PiBJcyBpdCByaWdodCB0aGF0 LCBmb3IgUlZWLCBhIGxvYWQgb3Igc3RvcmUgb2YgWzQsNF0gd2lsbCBhY2Nl c3MgWzgsOF0NCj4+IGJpdHMsIGV2ZW4gd2hlbiB0aGF0IG1lYW5zIGFjY2Vz c2luZyBmdWxseS11bnVzZWQgYnl0ZXM/ICBFLmcuIDQrNFgNCj4+IHdoZW4g WD0zIHdvdWxkIGJlIDE2IGJpdHMvMiBieXRlcyBvZiB1c2VmdWwgZGF0YSwg YnV0IGEgYml0c2l6ZSBvZg0KPj4gOCs4WCB3b3VsZCBiZSAzMiBiaXRzLzQg Ynl0ZXMuICBTbyBhIHN0b3JlIG9mIFs4LDhdIGZvciBhIHByZWNpc2lvbg0K Pj4gb2YgWzQsNF0gd291bGQgc3RvcmUgMiBieXRlcyBiZXlvbmQgdGhlIGVu ZCBvZiB0aGUgdXNlZnVsIGRhdGEgd2hlbiBYPT0zPw0KPj4NCj4+IFJpY2hh cmQNCj4+DQo+Pj4gUGFuDQo+Pj4NCj4+PiBGcm9tOiDnm7wg5p2OIDxpbmNh cm5hdGlvbi5wLmxlZUBvdXRsb29rLmNvbT4NCj4+PiBTZW50OiBUdWVzZGF5 LCBGZWJydWFyeSAyOCwgMjAyMyA1OjU5IFBNDQo+Pj4gVG86IFJpY2hhcmQg U2FuZGlmb3JkIDxyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPjsgTGksIFBh bjIgPHBhbjIubGlAaW50ZWwuY29tPg0KPj4+IENjOiBpbmNhcm5hdGlvbi5w LmxlZS0tLSB2aWEgR2NjLXBhdGNoZXMgPGdjYy1wYXRjaGVzQGdjYy5nbnUu b3JnPjsganV6aGUuemhvbmdAcml2YWkuYWk7IGtpdG8uY2hlbmdAc2lmaXZl LmNvbTsgcmd1ZW50aGVyQHN1c2UuZGUNCj4+PiBTdWJqZWN0OiBSZTogW1BB VENIXSBSSVNDLVY6IEJ1Z2ZpeCBmb3IgcnZ2IGJvb2wgbW9kZSBwcmVjaXNp b24gYWRqdXN0bWVudA0KPj4+DQo+Pj4gVW5kZXJzdG9vZCwgdGhhbmtzIGZv ciB0aGUgZXhwbGFuYXRpb25zIGFuZCBzdWdnZXN0aW9ucy4gTGV0IG1lIGhh dmUgYSB0cnkgYW5kIGtlZXAgeW91IHBvc3RlZC4NCj4+Pg0KPj4+IFBhbg0K Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+Pj4gRnJv bTogUmljaGFyZCBTYW5kaWZvcmQgPHJpY2hhcmQuc2FuZGlmb3JkQGFybS5j b208bWFpbHRvOnJpY2hhcmQuc2FuZGlmb3JkQGFybS5jb20+Pg0KPj4+IFNl bnQ6IFR1ZXNkYXksIEZlYnJ1YXJ5IDI4LCAyMDIzIDE3OjUwDQo+Pj4gVG86 IExpLCBQYW4yIDxwYW4yLmxpQGludGVsLmNvbTxtYWlsdG86cGFuMi5saUBp bnRlbC5jb20+Pg0KPj4+IENjOiDnm7wg5p2OIDxpbmNhcm5hdGlvbi5wLmxl ZUBvdXRsb29rLmNvbTxtYWlsdG86aW5jYXJuYXRpb24ucC5sZWVAb3V0bG9v ay5jb20+PjsgaW5jYXJuYXRpb24ucC5sZWUtLS0gdmlhIEdjYy1wYXRjaGVz IDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzxtYWlsdG86Z2NjLXBhdGNoZXNA Z2NjLmdudS5vcmc+PjsganV6aGUuemhvbmdAcml2YWkuYWk8bWFpbHRvOmp1 emhlLnpob25nQHJpdmFpLmFpPiA8anV6aGUuemhvbmdAcml2YWkuYWk8bWFp bHRvOmp1emhlLnpob25nQHJpdmFpLmFpPj47IGtpdG8uY2hlbmdAc2lmaXZl LmNvbTxtYWlsdG86a2l0by5jaGVuZ0BzaWZpdmUuY29tPiA8a2l0by5jaGVu Z0BzaWZpdmUuY29tPG1haWx0bzpraXRvLmNoZW5nQHNpZml2ZS5jb20+Pjsg cmd1ZW50aGVyQHN1c2UuZGU8bWFpbHRvOnJndWVudGhlckBzdXNlLmRlPiA8 cmd1ZW50aGVyQHN1c2UuZGU8bWFpbHRvOnJndWVudGhlckBzdXNlLmRlPj4N Cj4+PiBTdWJqZWN0OiBSZTogW1BBVENIXSBSSVNDLVY6IEJ1Z2ZpeCBmb3Ig cnZ2IGJvb2wgbW9kZSBwcmVjaXNpb24gYWRqdXN0bWVudA0KPj4+DQo+Pj4g IkxpLCBQYW4yIiA8cGFuMi5saUBpbnRlbC5jb208bWFpbHRvOnBhbjIubGlA aW50ZWwuY29tPj4gd3JpdGVzOg0KPj4+PiBIaSBSaWNoYXJkIFNhbmRpZm9y ZCwNCj4+Pj4NCj4+Pj4gQWZ0ZXIgc29tZSBpbnZlc3RpZ2F0aW9uLCBJIGFt IG5vdCBzdXJlIGlmIGl0IGlzIHBvc3NpYmxlIHRvIG1ha2UgaXQgZ2VuZXJh bCB3aXRob3V0IGFueSBjaGFuZ2VzIHRvIGV4YWN0X2Rpdi4gV2UgY2FuIGFk ZCBvbmUgbWV0aG9kIGxpa2UgYmVsb3cgdG8gZ2V0IHRoZSB1bml0IHBvbHkg Zm9yIGFsbCBwb3NzaWJsZSBOLg0KPj4+Pg0KPj4+PiB0ZW1wbGF0ZTx1bnNp Z25lZCBpbnQgTiwgdHlwZW5hbWUgQ2E+DQo+Pj4+IGlubGluZSBQT0xZX0NP TlNUX1JFU1VMVCAoTiwgQ2EsIENhKQ0KPj4+PiBub3JtYWxpemVfdG9fdW5p dCAoY29uc3QgcG9seV9pbnRfcG9kPE4sIENhPiAmYSkNCj4+Pj4gew0KPj4+ PiAgIHR5cGVkZWYgUE9MWV9DT05TVF9DT0VGRiAoQ2EsIENhKSBDOw0KPj4+ Pg0KPj4+PiAgIHBvbHlfaW50PE4sIEM+IG5vcm1hbGl6ZWQgPSBhOw0KPj4+ Pg0KPj4+PiAgIGlmIChub3JtYWxpemVkLmlzX2NvbnN0YW50KCkpDQo+Pj4+ ICAgICBub3JtYWxpemVkLmNvZWZmc1swXSA9IDE7DQo+Pj4+ICAgZWxzZQ0K Pj4+PiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBOOyBpKysp DQo+Pj4+ICAgICAgIFBPTFlfU0VUX0NPRUZGIChDLCBub3JtYWxpemVkLCBp LCAxKTsNCj4+Pj4NCj4+Pj4gICByZXR1cm4gbm9ybWFsaXplZDsNCj4+Pj4g fQ0KPj4+Pg0KPj4+PiBBbmQgdGhlbiBhZGp1c3QgdGhlIGdlbm1vZGVzIGxp a2UgYmVsb3cgdG8gY29uc3VtZSB0aGUgdW5pdCBwb2x5Lg0KPj4+Pg0KPj4+ PiAgICAgICBwcmludGYgKCIgICAgcG9seV91aW50MTYgdW5pdF9wb2x5ID0g Ig0KPj4+PiAgICAgICAgICAgICAgIm5vcm1hbGl6ZV90b191bml0IChtb2Rl X3ByZWNpc2lvbltFXyVzbW9kZV0pO1xuIiwgbS0+bmFtZSk7DQo+Pj4+ICAg ICAgIHByaW50ZiAoIiAgICBpZiAoa25vd25fbHQgKG1vZGVfcHJlY2lzaW9u W0VfJXNtb2RlXSwgIg0KPj4+PiAgICAgICAgICAgICAgInVuaXRfcG9seSAq IEJJVFNfUEVSX1VOSVQpKVxuIiwgbS0+bmFtZSk7DQo+Pj4+ICAgICAgIHBy aW50ZiAoIiAgICAgIG1vZGVfc2l6ZVtFXyVzbW9kZV0gPSB1bml0X3BvbHk7 XG4iLCBtLT5uYW1lKTsNCj4+Pj4NCj4+Pj4gSSBhbSBub3Qgc3VyZSBpZiBp dCBpcyBhIGdvb2QgaWRlYSB0byBpbnRyb2R1Y2UgYWJvdmUgbm9ybWFsaXpl IGNvZGUgaW50byBleGFjdF9kaXYuIEdpdmVuIHRoZSBjb21tZW50IG9mIHRo ZSBleGFjdF9kaXYgaW5kaWNhdGVzIHRoYXQg4oCcLyogUmV0dXJuIEEgLyBC LCBnaXZlbiB0aGF0IEEgaXMga25vd24gdG8gYmUgYSBtdWx0aXBsZSBvZiBC LiAqL+KAnS4NCj4+Pg0KPj4+IE15IHBvaW50IHdhcyB0aGF0IHdlIGhhdmUg bXVsdGlwbGUgd2F5cyBvZiBkaXZpZGluZyBwb2x5X2ludHM6DQo+Pj4NCj4+ PiAtIGV4YWN0X2RpdiwgZm9yIHdoZW4gdGhlIGNhbGxlciBrbm93cyB0aGF0 IHRoZSByZXN1bHQgaXMgYWx3YXlzIGV4YWN0DQo+Pj4gLSBjYW5fZGl2X3Ry dW5jX3AsIGZvciB0cnVuY2F0aW5nIGRpdmlzaW9uIChyb3VuZCB0b3dhcmRz IDApDQo+Pj4gLSBjYW5fZGl2X2F3YXlfZnJvbV96ZXJvX3AsIGZvciByb3Vu ZGluZyBhd2F5IGZyb20gMA0KPj4+IC0gLi4uDQo+Pj4NCj4+PiBUaGlzIGlz IGxpa2UgaG93IHdlIGhhdmUgbXVsdGlwbGUgZGl2aXNpb24gKl9FWFBScyBv biB0cmVlcy4NCj4+Pg0KPj4+IFVudGlsIG5vdywgZXhhY3RfZGl2IHdhcyB0 aGUgY29ycmVjdCBjaG9pY2UgZm9yIG1vZGVzIGJlY2F1c2UgdmVjdG9yDQo+ Pj4gbW9kZXMgZGlkbid0IGhhdmUgcGFkZGluZy4gIFdlJ3JlIG5vdyBjaGFu Z2luZyB0aGF0LCBzbyBteSBzdWdnZXN0aW9uDQo+Pj4gaW4gdGhlIHJldmll dyB3YXMgdG8gY2hhbmdlIHRoZSBkaXZpc2lvbiBvcGVyYXRpb24gdGhhdCB3 ZSB1c2UuDQo+Pj4gUmF0aGVyIHRoYW4gdXNlIGV4YWN0X2Rpdiwgd2Ugc2hv dWxkIG5vdyB1c2UgY2FuX2Rpdl9hd2F5X2Zyb21femVyb19wLA0KPj4+IHdo aWNoIHdvdWxkIGhhdmUgdGhlIGVmZmVjdCBvZiByb3VuZGluZyB0aGUgcXVv dGllbnQgdXAuDQo+Pj4NCj4+PiBTb21ldGhpbmcgbGlrZToNCj4+Pg0KPj4+ ICAgICAgIGlmICghY2FuX2Rpdl9hd2F5X2Zyb21femVyb19wIChtb2RlX3By ZWNpc2lvbltFXyVzbW9kZV0sIEJJVFNfUEVSX1VOSVQsDQo+Pj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtb2RlX3NpemVbRV8l c21vZGVdKSkNCj4+PiAgICAgICAgIGdjY191bnJlYWNoYWJsZSAoKTsNCj4+ Pg0KPj4+IEJ1dCB0aGlzIHdpbGwgcmVxdWlyZSBhIG5ldyBvdmVybG9hZCBv ZiBjYW5fZGl2X2F3YXlfZnJvbV96ZXJvX3AsIHNpbmNlDQo+Pj4gdGhlIGV4 aXN0aW5nIG9uZSBpcyBmb3IgY29uc3RhbnQgcXVvdGllbnRzIHJhdGhlciB0 aGFuIGNvbnN0YW50IGRpdmlzb3JzLg0KPj4+DQo+Pj4gVGhhbmtzLA0KPj4+ IFJpY2hhcmQNCj4+Pg0KPj4+Pg0KPj4+PiBDb3VsZCB5b3UgcGxlYXNlIGhl bHAgdG8gc2hhcmUgeW91ciBvcGluaW9uIGFib3V0IHRoaXMgZnJvbSB0aGUg ZXhwZXJ04oCZcyBwZXJzcGVjdGl2ZSA/IFRoYW5rIHlvdSENCj4+Pj4NCj4+ Pj4gUGFuDQo+Pj4+DQo+Pj4+IEZyb206IOebvCDmnY4gPGluY2FybmF0aW9u LnAubGVlQG91dGxvb2suY29tPG1haWx0bzppbmNhcm5hdGlvbi5wLmxlZUBv dXRsb29rLmNvbT4+DQo+Pj4+IFNlbnQ6IE1vbmRheSwgRmVicnVhcnkgMjcs IDIwMjMgMTE6MTMgUE0NCj4+Pj4gVG86IFJpY2hhcmQgU2FuZGlmb3JkIDxy aWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPG1haWx0bzpyaWNoYXJkLnNhbmRp Zm9yZEBhcm0uY29tPj47IGluY2FybmF0aW9uLnAubGVlLS0tIHZpYSBHY2Mt cGF0Y2hlcyA8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc8bWFpbHRvOmdjYy1w YXRjaGVzQGdjYy5nbnUub3JnPj4NCj4+Pj4gQ2M6IGp1emhlLnpob25nQHJp dmFpLmFpPG1haWx0bzpqdXpoZS56aG9uZ0ByaXZhaS5haT47IGtpdG8uY2hl bmdAc2lmaXZlLmNvbTxtYWlsdG86a2l0by5jaGVuZ0BzaWZpdmUuY29tPjsg cmd1ZW50aGVyQHN1c2UuZGU8bWFpbHRvOnJndWVudGhlckBzdXNlLmRlPjsg TGksIFBhbjIgPHBhbjIubGlAaW50ZWwuY29tPG1haWx0bzpwYW4yLmxpQGlu dGVsLmNvbT4+DQo+Pj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIFJJU0MtVjog QnVnZml4IGZvciBydnYgYm9vbCBtb2RlIHByZWNpc2lvbiBhZGp1c3RtZW50 DQo+Pj4+DQo+Pj4+IE5ldmVyIG1pbmQsIHdpc2ggeW91IGhhdmUgYSBnb29k IGhvbGlkYXkuDQo+Pj4+DQo+Pj4+IFRoYW5rcyBmb3IgcG9pbnRpbmcgdGhp cyBvdXQsIHRoZSBpZiBwYXJ0IGNhbm5vdCB0YWtlIGNhcmUgb2YgcG9seV9p bnQgd2l0aCBOID4gMi4gQXMgSSB1bmRlcnN0YW5kLCB3ZSBuZWVkIHRvIG1h a2UgaXQgZ2VuZXJhbCBmb3IgYWxsIHRoZSBOIG9mIHBvbHlfaW50Lg0KPj4+ Pg0KPj4+PiBUaHVzIEkgd291bGQgbGlrZSB0byBkb3VibGUgY29uZmlybSB3 aXRoIHlvdSBhYm91dCBob3cgdG8gbWFrZSBpdCBnZW5lcmFsLiBJIHN1cHBv c2UgdGhlcmUgd2lsbCBiZSBhIG5ldyBmdW5jdGlvbiBjYW5fZGl2X2F3YXlf ZnJvbV96ZXJvX3AgdG8gcmVwbGFjZSB0aGUgaWYgKGtub3duX2x0KCwpKSBw YXJ0IGluIGdlbm1vZGVzLmNjLCBhbmQgbGVhdmUgZXhhY3RfZGl2IHVuY2hh bmdlZChjb25zaWRlciB0aGUgd29yZCBleGFjdCwgSSBzdXBwb3NlIHdlIHNo b3VsZCBub3QgdG91Y2ggaGVyZSksIHJpZ2h0PyBUaGVuIHdlIHN0aWxsIG5l ZWQgb25lIHBvbHlfaW50IHdpdGggYWxsIDEgZm9yIE4gYXMgdGhlIHJldHVy biBpZiBjYW5fZGl2X2F3YXlfZnJvbV96ZXJvX3AgaXMgdHJ1ZS4NCj4+Pj4N Cj4+Pj4gVGhhbmtzIGFnYWluIGZvciB5b3VyIHByb2Zlc3Npb25hbCBzdWdn ZXN0aW9uLCBoYXZlIGEgbmljZSBkYXksIO+YiSENCj4+Pj4NCj4+Pj4gUGFu DQo+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+Pj4+ IEZyb206IFJpY2hhcmQgU2FuZGlmb3JkIDxyaWNoYXJkLnNhbmRpZm9yZEBh cm0uY29tPG1haWx0bzpyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPG1haWx0 bzpyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tJTNjbWFpbHRvOnJpY2hhcmQu c2FuZGlmb3JkQGFybS5jb20+Pj4NCj4+Pj4gU2VudDogTW9uZGF5LCBGZWJy dWFyeSAyNywgMjAyMyAyMjoyNA0KPj4+PiBUbzogaW5jYXJuYXRpb24ucC5s ZWUtLS0gdmlhIEdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9y ZzxtYWlsdG86Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc8bWFpbHRvOmdjYy1w YXRjaGVzQGdjYy5nbnUub3JnJTNjbWFpbHRvOmdjYy1wYXRjaGVzQGdjYy5n bnUub3JnPj4+DQo+Pj4+IENjOiBpbmNhcm5hdGlvbi5wLmxlZUBvdXRsb29r LmNvbTxtYWlsdG86aW5jYXJuYXRpb24ucC5sZWVAb3V0bG9vay5jb208bWFp bHRvOmluY2FybmF0aW9uLnAubGVlQG91dGxvb2suY29tJTNjbWFpbHRvOmlu Y2FybmF0aW9uLnAubGVlQG91dGxvb2suY29tPj4gPGluY2FybmF0aW9uLnAu bGVlQG91dGxvb2suY29tPG1haWx0bzppbmNhcm5hdGlvbi5wLmxlZUBvdXRs b29rLmNvbTxtYWlsdG86aW5jYXJuYXRpb24ucC5sZWVAb3V0bG9vay5jb20l M2NtYWlsdG86aW5jYXJuYXRpb24ucC5sZWVAb3V0bG9vay5jb20+Pj47IGp1 emhlLnpob25nQHJpdmFpLmFpPG1haWx0bzpqdXpoZS56aG9uZ0ByaXZhaS5h aTxtYWlsdG86anV6aGUuemhvbmdAcml2YWkuYWklM2NtYWlsdG86anV6aGUu emhvbmdAcml2YWkuYWk+PiA8anV6aGUuemhvbmdAcml2YWkuYWk8bWFpbHRv Omp1emhlLnpob25nQHJpdmFpLmFpPG1haWx0bzpqdXpoZS56aG9uZ0ByaXZh aS5haSUzY21haWx0bzpqdXpoZS56aG9uZ0ByaXZhaS5haT4+Pjsga2l0by5j aGVuZ0BzaWZpdmUuY29tPG1haWx0bzpraXRvLmNoZW5nQHNpZml2ZS5jb208 bWFpbHRvOmtpdG8uY2hlbmdAc2lmaXZlLmNvbSUzY21haWx0bzpraXRvLmNo ZW5nQHNpZml2ZS5jb20+PiA8a2l0by5jaGVuZ0BzaWZpdmUuY29tPG1haWx0 bzpraXRvLmNoZW5nQHNpZml2ZS5jb208bWFpbHRvOmtpdG8uY2hlbmdAc2lm aXZlLmNvbSUzY21haWx0bzpraXRvLmNoZW5nQHNpZml2ZS5jb20+Pj47IHJn dWVudGhlckBzdXNlLmRlPG1haWx0bzpyZ3VlbnRoZXJAc3VzZS5kZT4gPHJn dWVudGhlckBzdXNlLmRlPG1haWx0bzpyZ3VlbnRoZXJAc3VzZS5kZTxtYWls dG86cmd1ZW50aGVyQHN1c2UuZGUlM2NtYWlsdG86cmd1ZW50aGVyQHN1c2Uu ZGU+Pj47IHBhbjIubGlAaW50ZWwuY29tPG1haWx0bzpwYW4yLmxpQGludGVs LmNvbT4gPHBhbjIubGlAaW50ZWwuY29tPG1haWx0bzpwYW4yLmxpQGludGVs LmNvbTxtYWlsdG86cGFuMi5saUBpbnRlbC5jb20lM2NtYWlsdG86cGFuMi5s aUBpbnRlbC5jb20+Pj4NCj4+Pj4gU3ViamVjdDogUmU6IFtQQVRDSF0gUklT Qy1WOiBCdWdmaXggZm9yIHJ2diBib29sIG1vZGUgcHJlY2lzaW9uIGFkanVz dG1lbnQNCj4+Pj4NCj4+Pj4gU29ycnkgZm9yIHRoZSBzbG93IHJlcGx5LCBi ZWVuIGF3YXkgZm9yIGEgY291cGxlIG9mIHdlZWtzLg0KPj4+Pg0KPj4+PiAi aW5jYXJuYXRpb24ucC5sZWUtLS0gdmlhIEdjYy1wYXRjaGVzIiA8Z2NjLXBh dGNoZXNAZ2NjLmdudS5vcmc8bWFpbHRvOmdjYy1wYXRjaGVzQGdjYy5nbnUu b3JnPG1haWx0bzpnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZyUzY21haWx0bzpn Y2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4+PiB3cml0ZXM6DQo+Pj4+PiBGcm9t OiBQYW4gTGkgPHBhbjIubGlAaW50ZWwuY29tPG1haWx0bzpwYW4yLmxpQGlu dGVsLmNvbTxtYWlsdG86cGFuMi5saUBpbnRlbC5jb20lM2NtYWlsdG86cGFu Mi5saUBpbnRlbC5jb20+Pj4NCj4+Pj4+DQo+Pj4+PiAgICAgICAgRml4IHRo ZSBidWcgb2YgdGhlIHJ2diBib29sIG1vZGUgcHJlY2lzaW9uIHdpdGggdGhl IGFkanVzdG1lbnQuDQo+Pj4+PiAgICAgICAgVGhlIGJpdHMgc2l6ZSBvZiB2 Ym9vbCpfdCB3aWxsIGJlIGFkanVzdGVkIHRvDQo+Pj4+PiAgICAgICAgWzEs IDIsIDQsIDgsIDE2LCAzMiwgNjRdIGFjY29yZGluZyB0byB0aGUgcnZ2IHNw ZWMgMS4wIGlzYS4gVGhlDQo+Pj4+PiAgICAgICAgYWRqdXN0ZWQgbW9kZSBw cmVjaXNvbiBvZiB2Ym9vbCpfdCB3aWxsIGhlbHAgdW5kZXJseWluZyBwYXNz IHRvDQo+Pj4+PiAgICAgICAgbWFrZSB0aGUgcmlnaHQgZGVjaXNpb24gZm9y IGJvdGggdGhlIGNvcnJlY3RuZXNzIGFuZCBvcHRpbWl6YXRpb24uDQo+Pj4+ Pg0KPj4+Pj4gICAgICAgIEdpdmVuIGJlbG93IHNhbXBsZSBjb2RlOg0KPj4+ Pj4gICAgICAgIHZvaWQgdGVzdF8xKGludDhfdCAqIHJlc3RyaWN0IGluLCBp bnQ4X3QgKiByZXN0cmljdCBvdXQpDQo+Pj4+PiAgICAgICAgew0KPj4+Pj4g ICAgICAgICAgdmJvb2w4X3QgdjIgPSAqKHZib29sOF90KilpbjsNCj4+Pj4+ ICAgICAgICAgIHZib29sMTZfdCB2NSA9ICoodmJvb2wxNl90KilpbjsNCj4+ Pj4+ICAgICAgICAgICoodmJvb2wxNl90Kikob3V0ICsgMjAwKSA9IHY1Ow0K Pj4+Pj4gICAgICAgICAgKih2Ym9vbDhfdCopKG91dCArIDEwMCkgPSB2MjsN Cj4+Pj4+ICAgICAgICB9DQo+Pj4+Pg0KPj4+Pj4gICAgICAgIEJlZm9yZSB0 aGUgcHJlY2lzaW9uIGFkanVzdG1lbnQ6DQo+Pj4+PiAgICAgICAgYWRkaSAg ICBhNCxhMSwxMDANCj4+Pj4+ICAgICAgICB2c2V0dmxpIGE1LHplcm8sZTgs bTEsdGEsbWENCj4+Pj4+ICAgICAgICBhZGRpICAgIGExLGExLDIwMA0KPj4+ Pj4gICAgICAgIHZsbS52ICAgdjI0LDAoYTApDQo+Pj4+PiAgICAgICAgdnNt LnYgICB2MjQsMChhNCkNCj4+Pj4+ICAgICAgICAvLyBOZWVkIG9uZSB2c2V0 dmxpIGFuZCB2bG0udiBmb3IgY29ycmVjdG5lc3MgaGVyZS4NCj4+Pj4+ICAg ICAgICB2c20udiAgIHYyNCwwKGExKQ0KPj4+Pj4NCj4+Pj4+ICAgICAgICBB ZnRlciB0aGUgcHJlY2lzaW9uIGFkanVzdG1lbnQ6DQo+Pj4+PiAgICAgICAg Y3NyciAgICB0MCx2bGVuYg0KPj4+Pj4gICAgICAgIHNsbGkgICAgdDEsdDAs MQ0KPj4+Pj4gICAgICAgIGNzcnIgICAgYTMsdmxlbmINCj4+Pj4+ICAgICAg ICBzdWIgICAgIHNwLHNwLHQxDQo+Pj4+PiAgICAgICAgc2xsaSAgICBhNCxh MywxDQo+Pj4+PiAgICAgICAgYWRkICAgICBhNCxhNCxzcA0KPj4+Pj4gICAg ICAgIHN1YiAgICAgYTMsYTQsYTMNCj4+Pj4+ICAgICAgICB2c2V0dmxpIGE1 LHplcm8sZTgsbTEsdGEsbWENCj4+Pj4+ICAgICAgICBhZGRpICAgIGEyLGEx LDIwMA0KPj4+Pj4gICAgICAgIHZsbS52ICAgdjI0LDAoYTApDQo+Pj4+PiAg ICAgICAgdnNtLnYgICB2MjQsMChhMykNCj4+Pj4+ICAgICAgICBhZGRpICAg IGExLGExLDEwMA0KPj4+Pj4gICAgICAgIHZzZXR2bGkgYTQsemVybyxlOCxt ZjIsdGEsbWENCj4+Pj4+ICAgICAgICBjc3JyICAgIHQwLHZsZW5iDQo+Pj4+ PiAgICAgICAgdmxtLnYgICB2MjUsMChhMykNCj4+Pj4+ICAgICAgICB2c20u diAgIHYyNSwwKGEyKQ0KPj4+Pj4gICAgICAgIHNsbGkgICAgdDEsdDAsMQ0K Pj4+Pj4gICAgICAgIHZzZXR2bGkgYTUsemVybyxlOCxtMSx0YSxtYQ0KPj4+ Pj4gICAgICAgIHZzbS52ICAgdjI0LDAoYTEpDQo+Pj4+PiAgICAgICAgYWRk ICAgICBzcCxzcCx0MQ0KPj4+Pj4gICAgICAgIGpyICAgICAgcmENCj4+Pj4+ DQo+Pj4+PiAgICAgICAgSG93ZXZlciwgdGhlcmUgbWF5IGJlIHNvbWUgb3B0 aW1pemF0aW9uIG9wcG9ydHVuYXRlcyBhZnRlcg0KPj4+Pj4gICAgICAgIHRo ZSBtb2RlIHByZWNpc2lvbiBhZGp1c3RtZW50LiBJdCBjYW4gYmUgdG9rZW4g Y2FyZSBvZiBpbg0KPj4+Pj4gICAgICAgIHRoZSBSSVNDLVYgYmFja2VuZCBp biB0aGUgdW5kZXJseWluZyBzZXBhcnRlZCBQUihzKS4NCj4+Pj4+DQo+Pj4+ PiAgICAgICAgUFIgMTA4MTg1DQo+Pj4+PiAgICAgICAgUFIgMTA4NjU0DQo+ Pj4+Pg0KPj4+Pj4gZ2NjL0NoYW5nZUxvZzoNCj4+Pj4+DQo+Pj4+PiAgICAg ICAgKiBjb25maWcvcmlzY3YvcmlzY3YtbW9kZXMuZGVmIChBREpVU1RfUFJF Q0lTSU9OKToNCj4+Pj4+ICAgICAgICAqIGNvbmZpZy9yaXNjdi9yaXNjdi5j YyAocmlzY3Zfdl9hZGp1c3RfcHJlY2lzaW9uKToNCj4+Pj4+ICAgICAgICAq IGNvbmZpZy9yaXNjdi9yaXNjdi5oIChyaXNjdl92X2FkanVzdF9wcmVjaXNp b24pOg0KPj4+Pj4gICAgICAgICogZ2VubW9kZXMuY2MgKEFESlVTVF9QUkVD SVNJT04pOg0KPj4+Pj4gICAgICAgIChlbWl0X21vZGVfYWRqdXN0bWVudHMp Og0KPj4+Pj4NCj4+Pj4+IGdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOg0KPj4+ Pj4NCj4+Pj4+ICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcHIxMDgxODUt MS5jOiBOZXcgdGVzdC4NCj4+Pj4+ICAgICAgICAqIGdjYy50YXJnZXQvcmlz Y3YvcHIxMDgxODUtMi5jOiBOZXcgdGVzdC4NCj4+Pj4+ICAgICAgICAqIGdj Yy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMy5jOiBOZXcgdGVzdC4NCj4+Pj4+ ICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNC5jOiBOZXcg dGVzdC4NCj4+Pj4+ICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcHIxMDgx ODUtNS5jOiBOZXcgdGVzdC4NCj4+Pj4+ICAgICAgICAqIGdjYy50YXJnZXQv cmlzY3YvcHIxMDgxODUtNi5jOiBOZXcgdGVzdC4NCj4+Pj4+ICAgICAgICAq IGdjYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNy5jOiBOZXcgdGVzdC4NCj4+ Pj4+ICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtOC5jOiBO ZXcgdGVzdC4NCj4+Pj4+DQo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBQYW4gTGkg PHBhbjIubGlAaW50ZWwuY29tPG1haWx0bzpwYW4yLmxpQGludGVsLmNvbTxt YWlsdG86cGFuMi5saUBpbnRlbC5jb20lM2NtYWlsdG86cGFuMi5saUBpbnRl bC5jb20+Pj4NCj4+Pj4+IC0tLQ0KPj4+Pj4gIGdjYy9jb25maWcvcmlzY3Yv cmlzY3YtbW9kZXMuZGVmICAgICAgICAgICAgfCAgOCArKysNCj4+Pj4+ICBn Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjICAgICAgICAgICAgICAgICAgIHwg MTIgKysrKw0KPj4+Pj4gIGdjYy9jb25maWcvcmlzY3YvcmlzY3YuaCAgICAg ICAgICAgICAgICAgICAgfCAgMSArDQo+Pj4+PiAgZ2NjL2dlbm1vZGVzLmNj ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI1ICsrKysrKy0NCj4+ Pj4+ICBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUt MS5jIHwgNjggKysrKysrKysrKysrKysrKysrDQo+Pj4+PiAgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTIuYyB8IDY4ICsrKysr KysrKysrKysrKysrKw0KPj4+Pj4gIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9wcjEwODE4NS0zLmMgfCA2OCArKysrKysrKysrKysrKysrKysN Cj4+Pj4+ICBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgx ODUtNC5jIHwgNjggKysrKysrKysrKysrKysrKysrDQo+Pj4+PiAgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTUuYyB8IDY4ICsr KysrKysrKysrKysrKysrKw0KPj4+Pj4gIGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9wcjEwODE4NS02LmMgfCA2OCArKysrKysrKysrKysrKysr KysNCj4+Pj4+ICBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIx MDgxODUtNy5jIHwgNjggKysrKysrKysrKysrKysrKysrDQo+Pj4+PiAgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTguYyB8IDc3 ICsrKysrKysrKysrKysrKysrKysrKw0KPj4+Pj4gIDEyIGZpbGVzIGNoYW5n ZWQsIDU5OCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+Pj4+PiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9wcjEwODE4NS0xLmMNCj4+Pj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTIuYw0K Pj4+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcHIxMDgxODUtMy5jDQo+Pj4+PiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4 NS00LmMNCj4+Pj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTUuYw0KPj4+Pj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cHIxMDgxODUtNi5jDQo+Pj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS03LmMNCj4+Pj4+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3ByMTA4MTg1LTguYw0KPj4+Pj4NCj4+Pj4+IGRpZmYgLS1naXQg YS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LW1vZGVzLmRlZiBiL2djYy9jb25m aWcvcmlzY3YvcmlzY3YtbW9kZXMuZGVmDQo+Pj4+PiBpbmRleCBkNTMwNWVm YThhNi4uMTEwYmRkY2U4NTEgMTAwNjQ0DQo+Pj4+PiAtLS0gYS9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LW1vZGVzLmRlZg0KPj4+Pj4gKysrIGIvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi1tb2Rlcy5kZWYNCj4+Pj4+IEBAIC03Miw2ICs3 MiwxNCBAQCBBREpVU1RfQllURVNJWkUgKFZOeDE2QkksIHJpc2N2X3ZlY3Rv cl9jaHVua3MgKiByaXNjdl9ieXRlc19wZXJfdmVjdG9yX2NodW5rKTsNCj4+ Pj4+ICBBREpVU1RfQllURVNJWkUgKFZOeDMyQkksIHJpc2N2X3ZlY3Rvcl9j aHVua3MgKiByaXNjdl9ieXRlc19wZXJfdmVjdG9yX2NodW5rKTsNCj4+Pj4+ ICBBREpVU1RfQllURVNJWkUgKFZOeDY0QkksIHJpc2N2X3ZfYWRqdXN0X251 bml0cyAoVk54NjRCSW1vZGUsIDgpKTsNCj4+Pj4+DQo+Pj4+PiArQURKVVNU X1BSRUNJU0lPTiAoVk54MUJJLCByaXNjdl92X2FkanVzdF9wcmVjaXNpb24g KFZOeDFCSW1vZGUsIDEpKTsNCj4+Pj4+ICtBREpVU1RfUFJFQ0lTSU9OIChW TngyQkksIHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAoVk54MkJJbW9kZSwg MikpOw0KPj4+Pj4gK0FESlVTVF9QUkVDSVNJT04gKFZOeDRCSSwgcmlzY3Zf dl9hZGp1c3RfcHJlY2lzaW9uIChWTng0Qkltb2RlLCA0KSk7DQo+Pj4+PiAr QURKVVNUX1BSRUNJU0lPTiAoVk54OEJJLCByaXNjdl92X2FkanVzdF9wcmVj aXNpb24gKFZOeDhCSW1vZGUsIDgpKTsNCj4+Pj4+ICtBREpVU1RfUFJFQ0lT SU9OIChWTngxNkJJLCByaXNjdl92X2FkanVzdF9wcmVjaXNpb24gKFZOeDE2 Qkltb2RlLCAxNikpOw0KPj4+Pj4gK0FESlVTVF9QUkVDSVNJT04gKFZOeDMy QkksIHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAoVk54MzJCSW1vZGUsIDMy KSk7DQo+Pj4+PiArQURKVVNUX1BSRUNJU0lPTiAoVk54NjRCSSwgcmlzY3Zf dl9hZGp1c3RfcHJlY2lzaW9uIChWTng2NEJJbW9kZSwgNjQpKTsNCj4+Pj4+ ICsNCj4+Pj4+ICAvKg0KPj4+Pj4gICAgIHwgTW9kZSAgICAgICAgfCBNSU5f VkxFTj0zMiB8IE1JTl9WTEVOPTMyIHwgTUlOX1ZMRU49NjQgfCBNSU5fVkxF Tj02NCB8DQo+Pj4+PiAgICAgfCAgICAgICAgICAgICB8IExNVUwgICAgICAg IHwgU0VXL0xNVUwgICAgfCBMTVVMICAgICAgICB8IFNFVy9MTVVMICAgIHwN Cj4+Pj4+IGRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNj IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYw0KPj4+Pj4gaW5kZXggZGUz ZTFmOTAzYzcuLmNiZTY2YzBlMzViIDEwMDY0NA0KPj4+Pj4gLS0tIGEvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi5jYw0KPj4+Pj4gKysrIGIvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi5jYw0KPj4+Pj4gQEAgLTEwMDMsNiArMTAwMywxOCBA QCByaXNjdl92X2FkanVzdF9udW5pdHMgKG1hY2hpbmVfbW9kZSBtb2RlLCBp bnQgc2NhbGUpDQo+Pj4+PiAgICByZXR1cm4gc2NhbGU7DQo+Pj4+PiAgfQ0K Pj4+Pj4NCj4+Pj4+ICsvKiBDYWxsIGZyb20gQURKVVNUX1BSRUNJU0lPTiBp biByaXNjdi1tb2Rlcy5kZWYuICBSZXR1cm4gdGhlIGNvcnJlY3QNCj4+Pj4+ ICsgICBQUkVDSVNJT04gc2l6ZSBmb3IgY29ycmVzcG9uZGluZyBtYWNoaW5l X21vZGUuICAqLw0KPj4+Pj4gKw0KPj4+Pj4gK3BvbHlfaW50NjQNCj4+Pj4+ ICtyaXNjdl92X2FkanVzdF9wcmVjaXNpb24gKG1hY2hpbmVfbW9kZSBtb2Rl LCBpbnQgc2NhbGUpDQo+Pj4+PiArew0KPj4+Pj4gKyAgaWYgKHJpc2N2X3Zf ZXh0X3ZlY3Rvcl9tb2RlX3AgKG1vZGUpKQ0KPj4+Pj4gKyAgICByZXR1cm4g cmlzY3ZfdmVjdG9yX2NodW5rcyAqIHNjYWxlOw0KPj4+Pj4gKw0KPj4+Pj4g KyAgcmV0dXJuIHNjYWxlOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICAv KiBSZXR1cm4gdHJ1ZSBpZiBYIGlzIGEgdmFsaWQgYWRkcmVzcyBmb3IgbWFj aGluZSBtb2RlIE1PREUuICBJZiBpdCBpcywNCj4+Pj4+ICAgICBmaWxsIGlu IElORk8gYXBwcm9wcmlhdGVseS4gIFNUUklDVF9QIGlzIHRydWUgaWYgUkVH X09LX1NUUklDVCBpcyBpbg0KPj4+Pj4gICAgIGVmZmVjdC4gICovDQo+Pj4+ PiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5oIGIvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi5oDQo+Pj4+PiBpbmRleCA1YmM3ZjJmNDY3 ZC4uMTViOTMxN2E4Y2UgMTAwNjQ0DQo+Pj4+PiAtLS0gYS9nY2MvY29uZmln L3Jpc2N2L3Jpc2N2LmgNCj4+Pj4+ICsrKyBiL2djYy9jb25maWcvcmlzY3Yv cmlzY3YuaA0KPj4+Pj4gQEAgLTEwMjUsNiArMTAyNSw3IEBAIGV4dGVybiB1 bnNpZ25lZCByaXNjdl9zdGFja19ib3VuZGFyeTsNCj4+Pj4+ICBleHRlcm4g dW5zaWduZWQgcmlzY3ZfYnl0ZXNfcGVyX3ZlY3Rvcl9jaHVuazsNCj4+Pj4+ ICBleHRlcm4gcG9seV91aW50MTYgcmlzY3ZfdmVjdG9yX2NodW5rczsNCj4+ Pj4+ICBleHRlcm4gcG9seV9pbnQ2NCByaXNjdl92X2FkanVzdF9udW5pdHMg KGVudW0gbWFjaGluZV9tb2RlLCBpbnQpOw0KPj4+Pj4gK2V4dGVybiBwb2x5 X2ludDY0IHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAoZW51bSBtYWNoaW5l X21vZGUsIGludCk7DQo+Pj4+PiAgLyogVGhlIG51bWJlciBvZiBiaXRzIGFu ZCBieXRlcyBpbiBhIFJWViB2ZWN0b3IuICAqLw0KPj4+Pj4gICNkZWZpbmUg QklUU19QRVJfUklTQ1ZfVkVDVE9SIChwb2x5X3VpbnQxNiAocmlzY3ZfdmVj dG9yX2NodW5rcyAqIHJpc2N2X2J5dGVzX3Blcl92ZWN0b3JfY2h1bmsgKiA4 KSkNCj4+Pj4+ICAjZGVmaW5lIEJZVEVTX1BFUl9SSVNDVl9WRUNUT1IgKHBv bHlfdWludDE2IChyaXNjdl92ZWN0b3JfY2h1bmtzICogcmlzY3ZfYnl0ZXNf cGVyX3ZlY3Rvcl9jaHVuaykpDQo+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL2dl bm1vZGVzLmNjIGIvZ2NjL2dlbm1vZGVzLmNjDQo+Pj4+PiBpbmRleCAyZDQx OGYwOWFhYi4uMTJmNGU2MzM1ZTYgMTAwNjQ0DQo+Pj4+PiAtLS0gYS9nY2Mv Z2VubW9kZXMuY2MNCj4+Pj4+ICsrKyBiL2djYy9nZW5tb2Rlcy5jYw0KPj4+ Pj4gQEAgLTExNCw2ICsxMTQsNyBAQCBzdGF0aWMgc3RydWN0IG1vZGVfYWRq dXN0ICphZGpfYWxpZ25tZW50Ow0KPj4+Pj4gIHN0YXRpYyBzdHJ1Y3QgbW9k ZV9hZGp1c3QgKmFkal9mb3JtYXQ7DQo+Pj4+PiAgc3RhdGljIHN0cnVjdCBt b2RlX2FkanVzdCAqYWRqX2liaXQ7DQo+Pj4+PiAgc3RhdGljIHN0cnVjdCBt b2RlX2FkanVzdCAqYWRqX2ZiaXQ7DQo+Pj4+PiArc3RhdGljIHN0cnVjdCBt b2RlX2FkanVzdCAqYWRqX3ByZWNpc2lvbjsNCj4+Pj4+DQo+Pj4+PiAgLyog TW9kZSBjbGFzcyBvcGVyYXRpb25zLiAgKi8NCj4+Pj4+ICBzdGF0aWMgZW51 bSBtb2RlX2NsYXNzDQo+Pj4+PiBAQCAtODE5LDYgKzgyMCw3IEBAIG1ha2Vf dmVjdG9yX21vZGUgKGVudW0gbW9kZV9jbGFzcyBiY2xhc3MsDQo+Pj4+PiAg I2RlZmluZSBBREpVU1RfTlVOSVRTKE0sIFgpICAgIF9BRERfQURKVVNUIChu dW5pdHMsIE0sIFgsIFJBTkRPTSwgUkFORE9NKQ0KPj4+Pj4gICNkZWZpbmUg QURKVVNUX0JZVEVTSVpFKE0sIFgpICBfQUREX0FESlVTVCAoYnl0ZXNpemUs IE0sIFgsIFJBTkRPTSwgUkFORE9NKQ0KPj4+Pj4gICNkZWZpbmUgQURKVVNU X0FMSUdOTUVOVChNLCBYKSBfQUREX0FESlVTVCAoYWxpZ25tZW50LCBNLCBY LCBSQU5ET00sIFJBTkRPTSkNCj4+Pj4+ICsjZGVmaW5lIEFESlVTVF9QUkVD SVNJT04oTSwgWCkgX0FERF9BREpVU1QgKHByZWNpc2lvbiwgTSwgWCwgUkFO RE9NLCBSQU5ET00pDQo+Pj4+PiAgI2RlZmluZSBBREpVU1RfRkxPQVRfRk9S TUFUKE0sIFgpICAgIF9BRERfQURKVVNUIChmb3JtYXQsIE0sIFgsIEZMT0FU LCBGTE9BVCkNCj4+Pj4+ICAjZGVmaW5lIEFESlVTVF9JQklUKE0sIFgpICBf QUREX0FESlVTVCAoaWJpdCwgTSwgWCwgQUNDVU0sIFVBQ0NVTSkNCj4+Pj4+ ICAjZGVmaW5lIEFESlVTVF9GQklUKE0sIFgpICBfQUREX0FESlVTVCAoZmJp dCwgTSwgWCwgRlJBQ1QsIFVBQ0NVTSkNCj4+Pj4+IEBAIC0xODI5LDcgKzE4 MzEsMTUgQEAgZW1pdF9tb2RlX2FkanVzdG1lbnRzICh2b2lkKQ0KPj4+Pj4g ICAgICAgICAgICAgICIgKG1vZGVfcHJlY2lzaW9uW0VfJXNtb2RlXSwgbW9k ZV9udW5pdHNbRV8lc21vZGVdKTtcbiIsDQo+Pj4+PiAgICAgICAgICAgICAg bS0+bmFtZSwgbS0+bmFtZSk7DQo+Pj4+PiAgICAgICAgcHJpbnRmICgiICAg IG1vZGVfcHJlY2lzaW9uW0VfJXNtb2RlXSA9IHBzICogb2xkX2ZhY3Rvcjtc biIsIG0tPm5hbWUpOw0KPj4+Pj4gLSAgICAgIHByaW50ZiAoIiAgICBtb2Rl X3NpemVbRV8lc21vZGVdID0gZXhhY3RfZGl2IChtb2RlX3ByZWNpc2lvbltF XyVzbW9kZV0sIg0KPj4+Pj4gKyAgICAgIC8qIE5vcm1hbGl6ZSB0aGUgc2l6 ZSB0byAxIGlmIHByZWNpc29uIGlzIGxlc3MgdGhhbiBCSVRTX1BFUl9VTklU LiAgKi8NCj4+Pj4+ICsgICAgICBwcmludGYgKCIgICAgcG9seV91aW50MTYg c2l6ZV9vbmUgPSAiDQo+Pj4+PiArICAgICAgICAgICAibW9kZV9wcmVjaXNp b25bRV8lc21vZGVdLmlzX2NvbnN0YW50ICgpXG4iLCBtLT5uYW1lKTsNCj4+ Pj4+ICsgICAgICBwcmludGYgKCIgICAgICA/IHBvbHlfdWludDE2ICgxLCAw KSA6IHBvbHlfdWludDE2ICgxLCAxKTtcbiIpOw0KPj4+Pg0KPj4+PiBIYXZl IHlvdSB0cmllZCB0aGlzIG9uIGFuIHg4Nl82NCBzeXN0ZW0/ICBJIHdvdWxk bid0IGV4cGVjdCBpdCB0byB3b3JrDQo+Pj4+IGJlY2F1c2Ugb2YgdGhlOg0K Pj4+Pg0KPj4+PiAgIFNUQVRJQ19BU1NFUlQgKE4gPj0gMik7DQo+Pj4+DQo+ Pj4+IGluIHRoZSBwb2x5X3VpbnQxNiBjb25zdHJ1Y3Rvci4NCj4+Pj4NCj4+ Pj4+ICsgICAgICBwcmludGYgKCIgICAgaWYgKGtub3duX2x0IChtb2RlX3By ZWNpc2lvbltFXyVzbW9kZV0sICINCj4+Pj4+ICsgICAgICAgICAgICJzaXpl X29uZSAqIEJJVFNfUEVSX1VOSVQpKVxuIiwgbS0+bmFtZSk7DQo+Pj4+PiAr ICAgICAgcHJpbnRmICgiICAgICAgbW9kZV9zaXplW0VfJXNtb2RlXSA9IHNp emVfb25lO1xuIiwgbS0+bmFtZSk7DQo+Pj4+PiArICAgICAgcHJpbnRmICgi ICAgIGVsc2VcbiIpOw0KPj4+Pj4gKyAgICAgIHByaW50ZiAoIiAgICAgIG1v ZGVfc2l6ZVtFXyVzbW9kZV0gPSBleGFjdF9kaXYgKG1vZGVfcHJlY2lzaW9u W0VfJXNtb2RlXSwiDQo+Pj4+DQo+Pj4+IE5vdyB0aGF0IHRoZSBhc3NlcnQg aW1wbGljaXQgaW4gdGhlIG9yaWdpbmFsIGV4YWN0X2RpdiBubyBsb25nZXIg aG9sZHMsDQo+Pj4+IEkgdGhpbmsgd2Ugc2hvdWxkIGluc3RlYWQgZ2VuZXJh bGlzZSBpdCB0byBjYW5fZGl2X2F3YXlfZnJvbV96ZXJvX3ANCj4+Pj4gKHdo aWNoIHdpbGwgaW52b2x2ZSBkZWZpbmluZyBhIG5ldyBvdmVybG9hZCBvZiBj YW5fZGl2X2F3YXlfZnJvbV96ZXJvX3ApLg0KPj4+PiBJIHRoaW5rIHRoYXQg d2lsbCBnaXZlIHRoZSBzYW1lIHJlc3VsdCBhcyB0aGUgY29kZSBhYm92ZSBm b3IgdGhlIGNhc2VzDQo+Pj4+IHRoYXQgdGhlIGNvZGUgYWJvdmUgaGFuZGxl cy4gIEJ1dCBpdCBzaG91bGQgYmUgbW9yZSBnZW5lcmFsIHRvby4NCj4+Pj4N Cj4+Pj4gVEJILCBJJ20gc3RpbGwgc2NlcHRpY2FsIHRoYXQgdGhpcyBpcyBh bGwgdGhhdCBpcyBuZWVkZWQuICBJdCBzZWVtcw0KPj4+PiB1bmxpa2VseSB0 aGF0IHdlJ3ZlIGJlZW4gc28gZ29vZCBhdCB3cml0aW5nIHZlY3RvciBzdXBw b3J0IGNvZGUgdGhhdA0KPj4+PiB3ZSd2ZSBtYWRlIGl0IHdvcmsgZm9yIHBy ZWNpc2lvbiA8IGJpdHNpemUsIGRlc3BpdGUgdGhhdCBiZWluZyBhbg0KPj4+ PiB1bnN1cHBvcnRlZCBjb21iaW5hdGlvbiB1bnRpbCBub3cuICBCdXQgSSBn dWVzcyB3ZSBjYW4gZml4IHByb2JsZW1zDQo+Pj4+IG9uIGEgY2FzZS1ieS1j YXNlIGJhc2lzLg0KPj4+Pg0KPj4+PiBUaGFua3MsDQo+Pj4+IFJpY2hhcmQN Cj4+Pj4NCj4+Pj4+ICAgICAgICAgICAgICAiIEJJVFNfUEVSX1VOSVQpO1xu IiwgbS0+bmFtZSwgbS0+bmFtZSk7DQo+Pj4+PiAgICAgICAgcHJpbnRmICgi ICAgIG1vZGVfbnVuaXRzW0VfJXNtb2RlXSA9IHBzO1xuIiwgbS0+bmFtZSk7 DQo+Pj4+PiAgICAgICAgcHJpbnRmICgiICAgIGFkanVzdF9tb2RlX21hc2sg KEVfJXNtb2RlKTtcbiIsIG0tPm5hbWUpOw0KPj4+Pj4gQEAgLTE5NjMsNiAr MTk3MywxOSBAQCBlbWl0X21vZGVfYWRqdXN0bWVudHMgKHZvaWQpDQo+Pj4+ PiAgICAgIHByaW50ZiAoIlxuICAvKiAlczolZCAqL1xuICBSRUFMX01PREVf Rk9STUFUIChFXyVzbW9kZSkgPSAlcztcbiIsDQo+Pj4+PiAgICAgICAgICAg IGEtPmZpbGUsIGEtPmxpbmUsIGEtPm1vZGUtPm5hbWUsIGEtPmFkanVzdG1l bnQpOw0KPj4+Pj4NCj4+Pj4+ICsgIC8qIEFkanVzdCBwcmVjaXNpb24gdG8g dGhlIGFjdHVhbCBiaXRzIHNpemUuICAqLw0KPj4+Pj4gKyAgZm9yIChhID0g YWRqX3ByZWNpc2lvbjsgYTsgYSA9IGEtPm5leHQpDQo+Pj4+PiArICAgIHN3 aXRjaCAoYS0+bW9kZS0+Y2wpDQo+Pj4+PiArICAgICAgew0KPj4+Pj4gKyAg ICAgY2FzZSBNT0RFX1ZFQ1RPUl9CT09MOg0KPj4+Pj4gKyAgICAgICBwcmlu dGYgKCJcbiAgLyogJXM6JWQuICAqL1xuICBwcyA9ICVzO1xuIiwgYS0+Zmls ZSwgYS0+bGluZSwNCj4+Pj4+ICsgICAgICAgICAgICAgICBhLT5hZGp1c3Rt ZW50KTsNCj4+Pj4+ICsgICAgICAgcHJpbnRmICgiICBtb2RlX3ByZWNpc2lv bltFXyVzbW9kZV0gPSBwcztcbiIsIGEtPm1vZGUtPm5hbWUpOw0KPj4+Pj4g KyAgICAgICBicmVhazsNCj4+Pj4+ICsgICAgIGRlZmF1bHQ6DQo+Pj4+PiAr ICAgICAgIGJyZWFrOw0KPj4+Pj4gKyAgICAgIH0NCj4+Pj4+ICsNCj4+Pj4+ ICAgIHB1dHMgKCJ9Iik7DQo+Pj4+PiAgfQ0KPj4+Pj4NCj4+Pj4+IGRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgx ODUtMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4 MTg1LTEuYw0KPj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+Pj4+IGlu ZGV4IDAwMDAwMDAwMDAwLi5lNzA5NjBjNWI2ZA0KPj4+Pj4gLS0tIC9kZXYv bnVsbA0KPj4+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3ByMTA4MTg1LTEuYw0KPj4+Pj4gQEAgLTAsMCArMSw2OCBAQA0KPj4+ Pj4gKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+Pj4+PiArLyogeyBkZy1v cHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyIgfSAqLw0K Pj4+Pj4gKw0KPj4+Pj4gKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCj4+ Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDFfdGhlbl92 Ym9vbDIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0 IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDFfdCB2MSA9ICoodmJvb2wxX3Qq KWluOw0KPj4+Pj4gKyAgICB2Ym9vbDJfdCB2MiA9ICoodmJvb2wyX3QqKWlu Ow0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZib29sMV90Kikob3V0ICsgMTAw KSA9IHYxOw0KPj4+Pj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMjAwKSA9 IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiAr dGVzdF92Ym9vbDFfdGhlbl92Ym9vbDQoaW50OF90ICogcmVzdHJpY3QgaW4s IGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDFf dCB2MSA9ICoodmJvb2wxX3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDRfdCB2 MiA9ICoodmJvb2w0X3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZi b29sMV90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAqKHZib29s NF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+ Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDFfdGhlbl92Ym9vbDgoaW50 OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0K Pj4+Pj4gKyAgICB2Ym9vbDFfdCB2MSA9ICoodmJvb2wxX3QqKWluOw0KPj4+ Pj4gKyAgICB2Ym9vbDhfdCB2MiA9ICoodmJvb2w4X3QqKWluOw0KPj4+Pj4g Kw0KPj4+Pj4gKyAgICAqKHZib29sMV90Kikob3V0ICsgMTAwKSA9IHYxOw0K Pj4+Pj4gKyAgICAqKHZib29sOF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+ Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9v bDFfdGhlbl92Ym9vbDE2KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3Qg KiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAgdmJvb2wxX3QgdjEgPSAq KHZib29sMV90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2wxNl90IHYyID0gKih2 Ym9vbDE2X3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZib29sMV90 Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAqKHZib29sMTZfdCop KG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiAr dm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2wxX3RoZW5fdmJvb2wzMihpbnQ4X3Qg KiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+ PiArICAgIHZib29sMV90IHYxID0gKih2Ym9vbDFfdCopaW47DQo+Pj4+PiAr ICAgIHZib29sMzJfdCB2MiA9ICoodmJvb2wzMl90KilpbjsNCj4+Pj4+ICsN Cj4+Pj4+ICsgICAgKih2Ym9vbDFfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+ Pj4+ICsgICAgKih2Ym9vbDMyX3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+ PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ICt0ZXN0X3Zib29s MV90aGVuX3Zib29sNjQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAq IHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDFfdCB2MSA9ICoo dmJvb2wxX3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDY0X3QgdjIgPSAqKHZi b29sNjRfdCopaW47DQo+Pj4+PiArDQo+Pj4+PiArICAgICoodmJvb2wxX3Qq KShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2w2NF90Kiko b3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICsv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlc cytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm04LFxzKnRhLFxzKm1h fSA2IH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMq ZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+PiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2Et eF1bMC05XSssXHMqemVybyxccyplOCxccyptMixccyp0YSxccyptYX0gMSB9 IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxz Km0xLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAt OV0rLFxzKnplcm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSAxIH0gfSAq Lw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY0 LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0r LFxzKnplcm8sXHMqZTgsXHMqbWY4LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0K Pj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dmxtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAxMiB9IH0g Ki8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge3ZzbVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05XStcKX0gMTgg fSB9ICovDQo+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTIuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9wcjEwODE4NS0yLmMNCj4+Pj4+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+Pj4+PiBpbmRleCAwMDAwMDAwMDAwMC4uZGNjN2E2NDRh ODgNCj4+Pj4+IC0tLSAvZGV2L251bGwNCj4+Pj4+ICsrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0yLmMNCj4+Pj4+IEBA IC0wLDAgKzEsNjggQEANCj4+Pj4+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAq Lw0KPj4+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1h Ymk9bHA2NCAtTzMiIH0gKi8NCj4+Pj4+ICsNCj4+Pj4+ICsjaW5jbHVkZSAi cmlzY3ZfdmVjdG9yLmgiDQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4g K3Rlc3RfdmJvb2wyX3RoZW5fdmJvb2wxKGludDhfdCAqIHJlc3RyaWN0IGlu LCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAgdmJvb2wy X3QgdjEgPSAqKHZib29sMl90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2wxX3Qg djIgPSAqKHZib29sMV90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2 Ym9vbDJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9v bDFfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+ Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2wyX3RoZW5fdmJvb2w0KGlu dDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsN Cj4+Pj4+ICsgICAgdmJvb2wyX3QgdjEgPSAqKHZib29sMl90KilpbjsNCj4+ Pj4+ICsgICAgdmJvb2w0X3QgdjIgPSAqKHZib29sNF90KilpbjsNCj4+Pj4+ ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDJfdCopKG91dCArIDEwMCkgPSB2MTsN Cj4+Pj4+ICsgICAgKih2Ym9vbDRfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+ Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJv b2wyX3RoZW5fdmJvb2w4KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3Qg KiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAgdmJvb2wyX3QgdjEgPSAq KHZib29sMl90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2w4X3QgdjIgPSAqKHZi b29sOF90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDJfdCop KG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9vbDhfdCopKG91 dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArdm9p ZA0KPj4+Pj4gK3Rlc3RfdmJvb2wyX3RoZW5fdmJvb2wxNihpbnQ4X3QgKiBy ZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+PiAr ICAgIHZib29sMl90IHYxID0gKih2Ym9vbDJfdCopaW47DQo+Pj4+PiArICAg IHZib29sMTZfdCB2MiA9ICoodmJvb2wxNl90KilpbjsNCj4+Pj4+ICsNCj4+ Pj4+ICsgICAgKih2Ym9vbDJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ ICsgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+PiAr fQ0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ICt0ZXN0X3Zib29sMl90 aGVuX3Zib29sMzIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJl c3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDJfdCB2MSA9ICoodmJv b2wyX3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDMyX3QgdjIgPSAqKHZib29s MzJfdCopaW47DQo+Pj4+PiArDQo+Pj4+PiArICAgICoodmJvb2wyX3QqKShv dXQgKyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2wzMl90Kikob3V0 ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICt2b2lk DQo+Pj4+PiArdGVzdF92Ym9vbDJfdGhlbl92Ym9vbDY0KGludDhfdCAqIHJl c3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsg ICAgdmJvb2wyX3QgdjEgPSAqKHZib29sMl90KilpbjsNCj4+Pj4+ICsgICAg dmJvb2w2NF90IHYyID0gKih2Ym9vbDY0X3QqKWluOw0KPj4+Pj4gKw0KPj4+ Pj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4g KyAgICAqKHZib29sNjRfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9 DQo+Pj4+PiArDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccypl OCxccyptNCxccyp0YSxccyptYX0gNiB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14 XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0yLFxzKnRhLFxzKm1hfSAxIH0g fSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMq bTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+PiArLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05 XSssXHMqemVybyxccyplOCxccyptOCxccyp0YSxccyptYX0gMSB9IH0gKi8N Cj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mMixc cyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxc cyp6ZXJvLFxzKmU4LFxzKm1mNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4+ Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mOCxccyp0 YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZsbVwudlxzK3ZbMC05XSssXHMqMFwoW2Et eF1bMC05XStcKX0gMTIgfSB9ICovDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c21cLnZccyt2WzAtOV0rLFxzKjBc KFthLXhdWzAtOV0rXCl9IDE3IH0gfSAqLw0KPj4+Pj4gZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0zLmMg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMy5j DQo+Pj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4+Pj4gaW5kZXggMDAw MDAwMDAwMDAuLjNhZjA1MTNlMDA2DQo+Pj4+PiAtLS0gL2Rldi9udWxsDQo+ Pj4+PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIx MDgxODUtMy5jDQo+Pj4+PiBAQCAtMCwwICsxLDY4IEBADQo+Pj4+PiArLyog eyBkZy1kbyBjb21waWxlIH0gKi8NCj4+Pj4+ICsvKiB7IGRnLW9wdGlvbnMg Ii1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIiB9ICovDQo+Pj4+PiAr DQo+Pj4+PiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KPj4+Pj4gKw0K Pj4+Pj4gK3ZvaWQNCj4+Pj4+ICt0ZXN0X3Zib29sNF90aGVuX3Zib29sMShp bnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7 DQo+Pj4+PiArICAgIHZib29sNF90IHYxID0gKih2Ym9vbDRfdCopaW47DQo+ Pj4+PiArICAgIHZib29sMV90IHYyID0gKih2Ym9vbDFfdCopaW47DQo+Pj4+ PiArDQo+Pj4+PiArICAgICoodmJvb2w0X3QqKShvdXQgKyAxMDApID0gdjE7 DQo+Pj4+PiArICAgICoodmJvb2wxX3QqKShvdXQgKyAyMDApID0gdjI7DQo+ Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ICt0ZXN0X3Zi b29sNF90aGVuX3Zib29sMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90 ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29sNF90IHYxID0g Kih2Ym9vbDRfdCopaW47DQo+Pj4+PiArICAgIHZib29sMl90IHYyID0gKih2 Ym9vbDJfdCopaW47DQo+Pj4+PiArDQo+Pj4+PiArICAgICoodmJvb2w0X3Qq KShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2wyX3QqKShv dXQgKyAyMDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK3Zv aWQNCj4+Pj4+ICt0ZXN0X3Zib29sNF90aGVuX3Zib29sOChpbnQ4X3QgKiBy ZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+PiAr ICAgIHZib29sNF90IHYxID0gKih2Ym9vbDRfdCopaW47DQo+Pj4+PiArICAg IHZib29sOF90IHYyID0gKih2Ym9vbDhfdCopaW47DQo+Pj4+PiArDQo+Pj4+ PiArICAgICoodmJvb2w0X3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiAr ICAgICoodmJvb2w4X3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+PiArfQ0K Pj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ICt0ZXN0X3Zib29sNF90aGVu X3Zib29sMTYoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3Ry aWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDRfdCB2MSA9ICoodmJvb2w0 X3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDE2X3QgdjIgPSAqKHZib29sMTZf dCopaW47DQo+Pj4+PiArDQo+Pj4+PiArICAgICoodmJvb2w0X3QqKShvdXQg KyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2wxNl90Kikob3V0ICsg MjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+ Pj4+PiArdGVzdF92Ym9vbDRfdGhlbl92Ym9vbDMyKGludDhfdCAqIHJlc3Ry aWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAg dmJvb2w0X3QgdjEgPSAqKHZib29sNF90KilpbjsNCj4+Pj4+ICsgICAgdmJv b2wzMl90IHYyID0gKih2Ym9vbDMyX3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4g KyAgICAqKHZib29sNF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4gKyAg ICAqKHZib29sMzJfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9DQo+ Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2w0X3RoZW5f dmJvb2w2NChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJp Y3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29sNF90IHYxID0gKih2Ym9vbDRf dCopaW47DQo+Pj4+PiArICAgIHZib29sNjRfdCB2MiA9ICoodmJvb2w2NF90 KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDRfdCopKG91dCAr IDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9vbDY0X3QqKShvdXQgKyAy MDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhd WzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTIsXHMqdGEsXHMqbWF9IDYgfSB9 ICovDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccypt OCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTld Kyxccyp6ZXJvLFxzKmU4LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0K Pj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTEsXHMq dGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMq emVybyxccyplOCxccyptZjIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+ PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0 dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjQsXHMqdGEs XHMqbWF9IDEgfSB9ICovDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVy byxccyplOCxccyptZjgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+PiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2bG1cLnZc cyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9IDEyIH0gfSAqLw0KPj4+ Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNt XC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAxNiB9IH0gKi8N Cj4+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcHIxMDgxODUtNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3ByMTA4MTg1LTQuYw0KPj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCj4+Pj4+IGluZGV4IDAwMDAwMDAwMDAwLi5lYTNjMzYwZDc1Ng0KPj4+ Pj4gLS0tIC9kZXYvbnVsbA0KPj4+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTQuYw0KPj4+Pj4gQEAgLTAsMCAr MSw2OCBAQA0KPj4+Pj4gKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+Pj4+ PiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0 IC1PMyIgfSAqLw0KPj4+Pj4gKw0KPj4+Pj4gKyNpbmNsdWRlICJyaXNjdl92 ZWN0b3IuaCINCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92 Ym9vbDhfdGhlbl92Ym9vbDEoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhf dCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDhfdCB2MSA9 ICoodmJvb2w4X3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDFfdCB2MiA9ICoo dmJvb2wxX3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZib29sOF90 Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAqKHZib29sMV90Kiko b3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICt2 b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDhfdGhlbl92Ym9vbDIoaW50OF90ICog cmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4g KyAgICB2Ym9vbDhfdCB2MSA9ICoodmJvb2w4X3QqKWluOw0KPj4+Pj4gKyAg ICB2Ym9vbDJfdCB2MiA9ICoodmJvb2wyX3QqKWluOw0KPj4+Pj4gKw0KPj4+ Pj4gKyAgICAqKHZib29sOF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4g KyAgICAqKHZib29sMl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30N Cj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDhfdGhl bl92Ym9vbDQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3Ry aWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDhfdCB2MSA9ICoodmJvb2w4 X3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDRfdCB2MiA9ICoodmJvb2w0X3Qq KWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZib29sOF90Kikob3V0ICsg MTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAqKHZib29sNF90Kikob3V0ICsgMjAw KSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+ PiArdGVzdF92Ym9vbDhfdGhlbl92Ym9vbDE2KGludDhfdCAqIHJlc3RyaWN0 IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAgdmJv b2w4X3QgdjEgPSAqKHZib29sOF90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2wx Nl90IHYyID0gKih2Ym9vbDE2X3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAg ICAqKHZib29sOF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAq KHZib29sMTZfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9DQo+Pj4+ PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2w4X3RoZW5fdmJv b2wzMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qg b3V0KSB7DQo+Pj4+PiArICAgIHZib29sOF90IHYxID0gKih2Ym9vbDhfdCop aW47DQo+Pj4+PiArICAgIHZib29sMzJfdCB2MiA9ICoodmJvb2wzMl90Kilp bjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDhfdCopKG91dCArIDEw MCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9vbDMyX3QqKShvdXQgKyAyMDAp ID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ ICt0ZXN0X3Zib29sOF90aGVuX3Zib29sNjQoaW50OF90ICogcmVzdHJpY3Qg aW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9v bDhfdCB2MSA9ICoodmJvb2w4X3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDY0 X3QgdjIgPSAqKHZib29sNjRfdCopaW47DQo+Pj4+PiArDQo+Pj4+PiArICAg ICoodmJvb2w4X3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoo dmJvb2w2NF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ ICsNCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0x LFxzKnRhLFxzKm1hfSA2IH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0r LFxzKnplcm8sXHMqZTgsXHMqbTIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptOCxccyp0 YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6 ZXJvLFxzKmU4LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZs aVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxz Km1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8s XHMqZTgsXHMqbWY0LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxz K1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY4LFxzKnRhLFxzKm1h fSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dmxtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTld K1wpfSAxMiB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzbVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1b MC05XStcKX0gMTUgfSB9ICovDQo+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTUuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS01LmMNCj4+Pj4+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+Pj4+PiBpbmRleCAwMDAwMDAwMDAw MC4uOWZjNjU5ZDI0MDINCj4+Pj4+IC0tLSAvZGV2L251bGwNCj4+Pj4+ICsr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS01 LmMNCj4+Pj4+IEBAIC0wLDAgKzEsNjggQEANCj4+Pj4+ICsvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLw0KPj4+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNo PXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMiIH0gKi8NCj4+Pj4+ICsNCj4+Pj4+ ICsjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQo+Pj4+PiArDQo+Pj4+PiAr dm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2wxNl90aGVuX3Zib29sMShpbnQ4X3Qg KiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+ PiArICAgIHZib29sMTZfdCB2MSA9ICoodmJvb2wxNl90KilpbjsNCj4+Pj4+ ICsgICAgdmJvb2wxX3QgdjIgPSAqKHZib29sMV90KilpbjsNCj4+Pj4+ICsN Cj4+Pj4+ICsgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ Pj4+PiArICAgICoodmJvb2wxX3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+ PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ICt0ZXN0X3Zib29s MTZfdGhlbl92Ym9vbDIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAq IHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDE2X3QgdjEgPSAq KHZib29sMTZfdCopaW47DQo+Pj4+PiArICAgIHZib29sMl90IHYyID0gKih2 Ym9vbDJfdCopaW47DQo+Pj4+PiArDQo+Pj4+PiArICAgICoodmJvb2wxNl90 Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAqKHZib29sMl90Kiko b3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICt2 b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDE2X3RoZW5fdmJvb2w0KGludDhfdCAq IHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ ICsgICAgdmJvb2wxNl90IHYxID0gKih2Ym9vbDE2X3QqKWluOw0KPj4+Pj4g KyAgICB2Ym9vbDRfdCB2MiA9ICoodmJvb2w0X3QqKWluOw0KPj4+Pj4gKw0K Pj4+Pj4gKyAgICAqKHZib29sMTZfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+ Pj4+ICsgICAgKih2Ym9vbDRfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ ICt9DQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2wx Nl90aGVuX3Zib29sOChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICog cmVzdHJpY3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29sMTZfdCB2MSA9ICoo dmJvb2wxNl90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2w4X3QgdjIgPSAqKHZi b29sOF90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDE2X3Qq KShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2w4X3QqKShv dXQgKyAyMDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK3Zv aWQNCj4+Pj4+ICt0ZXN0X3Zib29sMTZfdGhlbl92Ym9vbDMyKGludDhfdCAq IHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ ICsgICAgdmJvb2wxNl90IHYxID0gKih2Ym9vbDE2X3QqKWluOw0KPj4+Pj4g KyAgICB2Ym9vbDMyX3QgdjIgPSAqKHZib29sMzJfdCopaW47DQo+Pj4+PiAr DQo+Pj4+PiArICAgICoodmJvb2wxNl90Kikob3V0ICsgMTAwKSA9IHYxOw0K Pj4+Pj4gKyAgICAqKHZib29sMzJfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+ Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJv b2wxNl90aGVuX3Zib29sNjQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhf dCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDE2X3QgdjEg PSAqKHZib29sMTZfdCopaW47DQo+Pj4+PiArICAgIHZib29sNjRfdCB2MiA9 ICoodmJvb2w2NF90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9v bDE2X3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2w2 NF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+ Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mMixccyp0 YSxccyptYX0gNiB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6 ZXJvLFxzKmU4LFxzKm0yLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZs aVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTgsXHMqdGEsXHMq bWF9IDEgfSB9ICovDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxc cyplOCxccyptNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4+ICsvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytb YS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0xLFxzKnRhLFxzKm1hfSAx IH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgs XHMqbWY0LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhd WzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY4LFxzKnRhLFxzKm1hfSAxIH0g fSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dmxtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAx MiB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZzbVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05XStc KX0gMTQgfSB9ICovDQo+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTYuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS02LmMNCj4+Pj4+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+Pj4+PiBpbmRleCAwMDAwMDAwMDAwMC4uOTgy NzVlNTI2N2QNCj4+Pj4+IC0tLSAvZGV2L251bGwNCj4+Pj4+ICsrKyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS02LmMNCj4+ Pj4+IEBAIC0wLDAgKzEsNjggQEANCj4+Pj4+ICsvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLw0KPj4+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRn Y3YgLW1hYmk9bHA2NCAtTzMiIH0gKi8NCj4+Pj4+ICsNCj4+Pj4+ICsjaW5j bHVkZSAicmlzY3ZfdmVjdG9yLmgiDQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0K Pj4+Pj4gK3Rlc3RfdmJvb2wzMl90aGVuX3Zib29sMShpbnQ4X3QgKiByZXN0 cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+PiArICAg IHZib29sMzJfdCB2MSA9ICoodmJvb2wzMl90KilpbjsNCj4+Pj4+ICsgICAg dmJvb2wxX3QgdjIgPSAqKHZib29sMV90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ ICsgICAgKih2Ym9vbDMyX3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiAr ICAgICoodmJvb2wxX3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+PiArfQ0K Pj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ICt0ZXN0X3Zib29sMzJfdGhl bl92Ym9vbDIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3Ry aWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDMyX3QgdjEgPSAqKHZib29s MzJfdCopaW47DQo+Pj4+PiArICAgIHZib29sMl90IHYyID0gKih2Ym9vbDJf dCopaW47DQo+Pj4+PiArDQo+Pj4+PiArICAgICoodmJvb2wzMl90Kikob3V0 ICsgMTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAqKHZib29sMl90Kikob3V0ICsg MjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+ Pj4+PiArdGVzdF92Ym9vbDMyX3RoZW5fdmJvb2w0KGludDhfdCAqIHJlc3Ry aWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAg dmJvb2wzMl90IHYxID0gKih2Ym9vbDMyX3QqKWluOw0KPj4+Pj4gKyAgICB2 Ym9vbDRfdCB2MiA9ICoodmJvb2w0X3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4g KyAgICAqKHZib29sMzJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsg ICAgKih2Ym9vbDRfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9DQo+ Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2wzMl90aGVu X3Zib29sOChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJp Y3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29sMzJfdCB2MSA9ICoodmJvb2wz Ml90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2w4X3QgdjIgPSAqKHZib29sOF90 KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDMyX3QqKShvdXQg KyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2w4X3QqKShvdXQgKyAy MDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+ Pj4+ICt0ZXN0X3Zib29sMzJfdGhlbl92Ym9vbDE2KGludDhfdCAqIHJlc3Ry aWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAg dmJvb2wzMl90IHYxID0gKih2Ym9vbDMyX3QqKWluOw0KPj4+Pj4gKyAgICB2 Ym9vbDE2X3QgdjIgPSAqKHZib29sMTZfdCopaW47DQo+Pj4+PiArDQo+Pj4+ PiArICAgICoodmJvb2wzMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4g KyAgICAqKHZib29sMTZfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9 DQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2wzMl90 aGVuX3Zib29sNjQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJl c3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDMyX3QgdjEgPSAqKHZi b29sMzJfdCopaW47DQo+Pj4+PiArICAgIHZib29sNjRfdCB2MiA9ICoodmJv b2w2NF90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDMyX3Qq KShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2w2NF90Kiko b3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICsv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlc cytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mNCxccyp0YSxccypt YX0gNiB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxz KmU4LFxzKm04LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1th LXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDEg fSB9ICovDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxc cyptMixccyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVsw LTldKyxccyp6ZXJvLFxzKmU4LFxzKm0xLFxzKnRhLFxzKm1hfSAxIH0gfSAq Lw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWYy LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0r LFxzKnplcm8sXHMqZTgsXHMqbWY4LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0K Pj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dmxtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAxMiB9IH0g Ki8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge3ZzbVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05XStcKX0gMTMg fSB9ICovDQo+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTcuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9wcjEwODE4NS03LmMNCj4+Pj4+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+Pj4+PiBpbmRleCAwMDAwMDAwMDAwMC4uOGY2ZjBiMTFm MDkNCj4+Pj4+IC0tLSAvZGV2L251bGwNCj4+Pj4+ICsrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS03LmMNCj4+Pj4+IEBA IC0wLDAgKzEsNjggQEANCj4+Pj4+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAq Lw0KPj4+Pj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1h Ymk9bHA2NCAtTzMiIH0gKi8NCj4+Pj4+ICsNCj4+Pj4+ICsjaW5jbHVkZSAi cmlzY3ZfdmVjdG9yLmgiDQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4g K3Rlc3RfdmJvb2w2NF90aGVuX3Zib29sMShpbnQ4X3QgKiByZXN0cmljdCBp biwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29s NjRfdCB2MSA9ICoodmJvb2w2NF90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2wx X3QgdjIgPSAqKHZib29sMV90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAg Kih2Ym9vbDY0X3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoo dmJvb2wxX3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4g Kw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ICt0ZXN0X3Zib29sNjRfdGhlbl92Ym9v bDIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91 dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDY0X3QgdjEgPSAqKHZib29sNjRfdCop aW47DQo+Pj4+PiArICAgIHZib29sMl90IHYyID0gKih2Ym9vbDJfdCopaW47 DQo+Pj4+PiArDQo+Pj4+PiArICAgICoodmJvb2w2NF90Kikob3V0ICsgMTAw KSA9IHYxOw0KPj4+Pj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMjAwKSA9 IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiAr dGVzdF92Ym9vbDY0X3RoZW5fdmJvb2w0KGludDhfdCAqIHJlc3RyaWN0IGlu LCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAgdmJvb2w2 NF90IHYxID0gKih2Ym9vbDY0X3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDRf dCB2MiA9ICoodmJvb2w0X3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAq KHZib29sNjRfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2 Ym9vbDRfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9DQo+Pj4+PiAr DQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2w2NF90aGVuX3Zib29s OChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0 KSB7DQo+Pj4+PiArICAgIHZib29sNjRfdCB2MSA9ICoodmJvb2w2NF90Kilp bjsNCj4+Pj4+ICsgICAgdmJvb2w4X3QgdjIgPSAqKHZib29sOF90KilpbjsN Cj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDY0X3QqKShvdXQgKyAxMDAp ID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2w4X3QqKShvdXQgKyAyMDApID0g djI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ICt0 ZXN0X3Zib29sNjRfdGhlbl92Ym9vbDE2KGludDhfdCAqIHJlc3RyaWN0IGlu LCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAgdmJvb2w2 NF90IHYxID0gKih2Ym9vbDY0X3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDE2 X3QgdjIgPSAqKHZib29sMTZfdCopaW47DQo+Pj4+PiArDQo+Pj4+PiArICAg ICoodmJvb2w2NF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAq KHZib29sMTZfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9DQo+Pj4+ PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2w2NF90aGVuX3Zi b29sMzIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0 IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDY0X3QgdjEgPSAqKHZib29sNjRf dCopaW47DQo+Pj4+PiArICAgIHZib29sMzJfdCB2MiA9ICoodmJvb2wzMl90 KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDY0X3QqKShvdXQg KyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2wzMl90Kikob3V0ICsg MjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICsvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14 XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mOCxccyp0YSxccyptYX0gNiB9 IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxz Km04LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAt OV0rLFxzKnplcm8sXHMqZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDEgfSB9ICov DQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptMixc cyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxc cyp6ZXJvLFxzKmU4LFxzKm0xLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+ Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNl dHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWYyLFxzKnRh LFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnpl cm8sXHMqZTgsXHMqbWY0LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmxtXC52 XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAxMiB9IH0gKi8NCj4+ Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz bVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05XStcKX0gMTIgfSB9ICov DQo+Pj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3ByMTA4MTg1LTguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9wcjEwODE4NS04LmMNCj4+Pj4+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+Pj4+PiBpbmRleCAwMDAwMDAwMDAwMC4uZDk2OTU5ZGQwNjQNCj4+ Pj4+IC0tLSAvZGV2L251bGwNCj4+Pj4+ICsrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS04LmMNCj4+Pj4+IEBAIC0wLDAg KzEsNzcgQEANCj4+Pj4+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPj4+ Pj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2 NCAtTzMiIH0gKi8NCj4+Pj4+ICsNCj4+Pj4+ICsjaW5jbHVkZSAicmlzY3Zf dmVjdG9yLmgiDQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3Rf dmJvb2wxX3RoZW5fdmJvb2wxKGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4 X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAgdmJvb2wxX3QgdjEg PSAqKHZib29sMV90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2wxX3QgdjIgPSAq KHZib29sMV90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDFf dCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9vbDFfdCop KG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiAr dm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2wyX3RoZW5fdmJvb2wyKGludDhfdCAq IHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ ICsgICAgdmJvb2wyX3QgdjEgPSAqKHZib29sMl90KilpbjsNCj4+Pj4+ICsg ICAgdmJvb2wyX3QgdjIgPSAqKHZib29sMl90KilpbjsNCj4+Pj4+ICsNCj4+ Pj4+ICsgICAgKih2Ym9vbDJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ ICsgICAgKih2Ym9vbDJfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9 DQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2w0X3Ro ZW5fdmJvb2w0KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0 cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAgdmJvb2w0X3QgdjEgPSAqKHZib29s NF90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2w0X3QgdjIgPSAqKHZib29sNF90 KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDRfdCopKG91dCAr IDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9vbDRfdCopKG91dCArIDIw MCkgPSB2MjsNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+ Pj4gK3Rlc3RfdmJvb2w4X3RoZW5fdmJvb2w4KGludDhfdCAqIHJlc3RyaWN0 IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAgdmJv b2w4X3QgdjEgPSAqKHZib29sOF90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2w4 X3QgdjIgPSAqKHZib29sOF90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAg Kih2Ym9vbDhfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2 Ym9vbDhfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9DQo+Pj4+PiAr DQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2wxNl90aGVuX3Zib29s MTYoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91 dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDE2X3QgdjEgPSAqKHZib29sMTZfdCop aW47DQo+Pj4+PiArICAgIHZib29sMTZfdCB2MiA9ICoodmJvb2wxNl90Kilp bjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAx MDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2wxNl90Kikob3V0ICsgMjAw KSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+ PiArdGVzdF92Ym9vbDMyX3RoZW5fdmJvb2wzMihpbnQ4X3QgKiByZXN0cmlj dCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZi b29sMzJfdCB2MSA9ICoodmJvb2wzMl90KilpbjsNCj4+Pj4+ICsgICAgdmJv b2wzMl90IHYyID0gKih2Ym9vbDMyX3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4g KyAgICAqKHZib29sMzJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsg ICAgKih2Ym9vbDMyX3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+PiArfQ0K Pj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ICt0ZXN0X3Zib29sNjRfdGhl bl92Ym9vbDY0KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0 cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAgdmJvb2w2NF90IHYxID0gKih2Ym9v bDY0X3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDY0X3QgdjIgPSAqKHZib29s NjRfdCopaW47DQo+Pj4+PiArDQo+Pj4+PiArICAgICoodmJvb2w2NF90Kiko b3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAqKHZib29sNjRfdCopKG91 dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMr W2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptOCxccyp0YSxccyptYX0g MSB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4 LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhd WzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTIsXHMqdGEsXHMqbWF9IDEgfSB9 ICovDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccypt MSxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTld Kyxccyp6ZXJvLFxzKmU4LFxzKm1mMixccyp0YSxccyptYX0gMSB9IH0gKi8N Cj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mNCxc cyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxc cyp6ZXJvLFxzKmU4LFxzKm1mOCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4+ Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zs bVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05XStcKX0gNyB9IH0gKi8N Cj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3ZzbVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05XStcKX0gMTQgfSB9 ICovDQoNCg== --_000_BYAPR04MB4824B72A51DEC93214D26DC7B7AD9BYAPR04MB4824namp_--