Received: by 2002:a05:7412:b995:b0:f9:9502:5bb8 with SMTP id it21csp7885025rdb; Thu, 4 Jan 2024 10:35:14 -0800 (PST) X-Google-Smtp-Source: AGHT+IGBaWXTEjgzCcSSAZE5GNdzXQtQeX0mqXcX64ImOb+xO9RaG+VI+9rdFBWIKnLg/n7S0j7E X-Received: by 2002:a50:9354:0:b0:553:a9bc:dcf3 with SMTP id n20-20020a509354000000b00553a9bcdcf3mr294495eda.104.1704393314342; Thu, 04 Jan 2024 10:35:14 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1704393314; cv=pass; d=google.com; s=arc-20160816; b=Z1S3qJw2Rc+oZIdy0BdQ/vYzgi3H/2kILWa/bOYjn8RbbuNv/taUwo+cerigZNZ2Jp lmEjyjL16PzX2UsMLHkUC4M9TKH1NTDXBxzvhsNHbUtAFkNE4YrxpFff4IQL0c4kiHMl +jAiH/iwErwAdafo17NxNKyp7pnb3H8h+jEuSxGPiTQxM9SpyhVfPbCKBRO+ERSMFFDa idCPdp3HyN9mhHuf1E0YEGRolaVbRKmCfAbxdnaSiyC2cTMv+ZiH80HKxP9ZPXTSGQjE nEb0kOZy+n0miaQOdaOgUNfu8pYHBBOGWP+YKPobDOiaKQZFanfCwXrfVZvJvK99D19e OFLg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :content-transfer-encoding:content-language:accept-language :in-reply-to:references:message-id:date:thread-index:thread-topic :subject:cc:to:from:dkim-signature; bh=AwWY8ILXJpJ8WfFFbt1Gq7pCHe7xXaXsF9t9gA9rkl0=; fh=Han7u2Oa31PFeB/kD9fIFcBoU5wud0WlUOYbfwZ8A58=; b=YndcS8jn64aige64W33lO5jExjiE8XjZlstGlGoXZC0HVXGLIdKJbBR/rEQiwpzuco TpATPPZascJR+GklNMQebJlHpo0A/bfOYDbGYGLYpMejtYgJmCO6eRiTUDdEMm0B6sA5 F/n4lalw9T66AfWFTzArZQEjduATLlPvRP6r5vETmY+GRF2fY4E6LKwWOatkqq7Wu+6j T5dAAH63JEAC0+Jrtpb+D9l5LxIkPZyz/EbqziMx7IulPj/uA5nFmEEq/h4q4Whe6Tum Q+PIF7ygLB7YKB9dSymp37mOfzgF4F2lYQ8WFTPKoxwmCbnX36TlCdJLuyy7P61Mkvbk UFvQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@marvell.onmicrosoft.com header.s=selector1-marvell-onmicrosoft-com header.b=T8Y4oTKW; arc=pass (i=1 spf=pass spfdomain=marvell.com dkim=pass dkdomain=marvell.com dmarc=pass fromdomain=marvell.com); spf=pass (google.com: domain of linux-kernel+bounces-17101-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-17101-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=REJECT dis=NONE) header.from=marvell.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id cw8-20020a056402228800b005566b5f57f8si4739edb.61.2024.01.04.10.35.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Jan 2024 10:35:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-17101-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@marvell.onmicrosoft.com header.s=selector1-marvell-onmicrosoft-com header.b=T8Y4oTKW; arc=pass (i=1 spf=pass spfdomain=marvell.com dkim=pass dkdomain=marvell.com dmarc=pass fromdomain=marvell.com); spf=pass (google.com: domain of linux-kernel+bounces-17101-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-17101-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=REJECT dis=NONE) header.from=marvell.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id D83E81F23BD7 for ; Thu, 4 Jan 2024 18:35:13 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B9F2528E1B; Thu, 4 Jan 2024 18:35:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=marvell.onmicrosoft.com header.i=@marvell.onmicrosoft.com header.b="T8Y4oTKW" X-Original-To: linux-kernel@vger.kernel.org Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 163C528E02 for ; Thu, 4 Jan 2024 18:35:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=marvell.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=marvell.com Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 404Hhoc6008533; Thu, 4 Jan 2024 10:34:22 -0800 Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2168.outbound.protection.outlook.com [104.47.58.168]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3ve1aes1py-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 04 Jan 2024 10:34:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ULeRJlETuVKlIez4hmdDFYWVf0xzD0LwjLBZhCEm7znAL5idJVUR5SMdsIjNAPGh7dueMFd7FMIpxWkQkd1IUXoumYpDNoF/VZLBjUHkHY2pMEcm1De9N8ZBfrfNq47p0WiHaJ25V/w4hWSpmi4uEatD/aMtZPTNqYmo1M/KSpnY4mUyX0vwcE8QIKHRS16QIOnz+nlgehmkCOOkCR2D5Zh36eaWr5Qo0+fiHoddGd1JGaEbMkmoBdKry0LKs07zuVUcZn1xkmDaZOYKTWZ177f9Okn8AyhfW7PPYkCDas1+H1/D4uu2Oin4eAfhhg0OSN78OjbJTdNQorbyRWWcxQ== 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=AwWY8ILXJpJ8WfFFbt1Gq7pCHe7xXaXsF9t9gA9rkl0=; b=U+HroUt7aAjj2QWC93OUavMBeiRKaVGxogOvENmZ669l5IpUhzMd8qdSrTkuQ9i9WqVM+X0PceRXJeZZxIHVwiFb0pUWReaBjRxhdyIooXTss9wocRbv+URNBxsRz6C2ZFx8vUwknKeT1IzHpmp8/d2+CyFX+RKM4qrzLt79PZl6lEG/n/LEg9Rgg2xUEMQRIaaZ6BD3crIM7OuhpoB6s/WDraVxovwgBQrG7KaIc2jtT2RGg9jHtJ2w1H+r5vEreju67tiLGtIeX2Vq8q60B7G9DMIJPw8PN1vFDAniftffVbhHTZhAspwvDn0kBZtmg9ZQPnRQvgM1qowj560s5g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AwWY8ILXJpJ8WfFFbt1Gq7pCHe7xXaXsF9t9gA9rkl0=; b=T8Y4oTKWgAl3IrqEOEGe4ZQQ3ZekYyxdpQgaAN89VBQBaUMxRvIdegtzoSPmTQuCO2bNSZNMnBtbUaz0vo5Eppc3lChm1IV7x9ks2Urw7nEutfytW0wEV8kgWfrqGkgR0JwMbXgTbmiXvuue6SkAKyvvtecjycftPpfw0lucnFQ= Received: from BN9PR18MB4251.namprd18.prod.outlook.com (2603:10b6:408:11c::10) by PH7PR18MB5798.namprd18.prod.outlook.com (2603:10b6:510:2fd::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.14; Thu, 4 Jan 2024 18:34:18 +0000 Received: from BN9PR18MB4251.namprd18.prod.outlook.com ([fe80::cbda:8123:48d4:6632]) by BN9PR18MB4251.namprd18.prod.outlook.com ([fe80::cbda:8123:48d4:6632%6]) with mapi id 15.20.7159.015; Thu, 4 Jan 2024 18:34:18 +0000 From: Elad Nachman To: Florian Fainelli , Will Deacon CC: "catalin.marinas@arm.com" , "thunder.leizhen@huawei.com" , "bhe@redhat.com" , "akpm@linux-foundation.org" , "yajun.deng@linux.dev" , "chris.zjh@huawei.com" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Subject: RE: [EXT] Re: [PATCH] arm64: mm: Fix SOCs with DDR starting above zero Thread-Topic: [EXT] Re: [PATCH] arm64: mm: Fix SOCs with DDR starting above zero Thread-Index: AQHaPmZY/EHin6dDVUeSHB1g0ELBfbDIXH4AgAANHQCAAS6V4IAAYq4AgAAAoAA= Date: Thu, 4 Jan 2024 18:34:18 +0000 Message-ID: References: <20240103170002.1793197-1-enachman@marvell.com> <20240103174531.GE5954@willie-the-truck> In-Reply-To: Accept-Language: he-IL, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN9PR18MB4251:EE_|PH7PR18MB5798:EE_ x-ms-office365-filtering-correlation-id: c3c46eaf-472f-489f-21ad-08dc0d53c2f4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ZAtnJgV1j2cJkn0Z/xIGy2hftnUXPFqjvK0/FmT3V38eT5+9OcHfwhneTepFW/KkldC9DzdWbF222/1tJW2PhE58tZnNhYigRjACJFjTiDAc+KIBZPhLR6nPP1Px6DakBkp9tC02s3/IMy6qizZnogxClOdw2oxz5uANJtLaalStolF9gTnz2fJbjn1EygHFeh2OvL2t42jkqRD4rjn7A62VYeibCMpAEld4O2/PE7NG1R6DC6k0tjdAi9a679DHZYwxFkZSXgGMKpmHd5WkuZ0kDr8u73Dvl8GdEsBnOpDstDYMU4+iIp2q0kU6MXc4aYA/VUylZh1PZXBAmCv+ft2pOj50FKJWULlEEvboxLSv3kwE+fqmpGUem6AsnLz7/hTg41WZhc8JepFDG+BmhitwXPItyxsJoqiJ2h4774fCWbM0rN+wOJqIDbWHXXJDCJzYCHXa1fU/eWuJuwmoZGcCI4an/3Zo1sLkNdMve7F5DXFaC7iMraMDt/W9mcPviaBpiRd+cBF1cxMolQ+rkFCr4W1YWPHUIjOTeKjXv6vhWVw638DtHcW6DMkG8dpLyjsXGrP8ARXhN03XGLCxPhNeueUovcoK3j6393ZRig4x0VgIT5Zn18azFKsOPNtusaIiiVF57WFhl+xzVmFW82HJt209VyCQdkU6tBdIElg= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR18MB4251.namprd18.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(376002)(39860400002)(346002)(366004)(396003)(230922051799003)(230173577357003)(230273577357003)(186009)(64100799003)(451199024)(1800799012)(7416002)(5660300002)(8936002)(8676002)(33656002)(55016003)(76116006)(38100700002)(71200400001)(54906003)(83380400001)(478600001)(4326008)(66476007)(66446008)(64756008)(53546011)(66556008)(6506007)(316002)(66946007)(110136005)(7696005)(9686003)(86362001)(2906002)(52536014)(122000001)(38070700009)(41300700001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SlFSQXd5eUlFUTZSM1RwenlhajQ0MVphd0NSZnhWM09naGUrNExyckNpdnR0?= =?utf-8?B?RjlVa254VnJocTlraWJ5TkZVbEI0S3FjQnhsbkV2SFhldHNaS0hlV1hZU1hn?= =?utf-8?B?U0JEcmVkci9vMkt6djUrYnNYWlhyNFlFRlV5TmRZZ2pDZUFHK2M5ejJyc1A4?= =?utf-8?B?ZmhRRjhXcTNRWmlsL01XdHZ4SDdDQTg4YThHaU9XcVNTVU9XeERCRlA3c3Bp?= =?utf-8?B?TGhEazAyNFZyWXEvL1U3K1NFaU0venNaMXhLU3VhdERWY0VFS2xXS1Y1V2Nj?= =?utf-8?B?YjkvQkhMMEtDY0NSdFpacFFFVmtPbjZPdG43aDREZHpWaU1SY0VmWFptZmYv?= =?utf-8?B?WTVPamQ4Qjdna3ZLbmVuRXNuRW5BTzVIemdkOXdXYzhRQm9JRHlHTDJJT0NI?= =?utf-8?B?NkVLallIUXBFVnRPMng4L0FFUlFsekc5QzFBTWJuZ2phVXF6c3dkVGlValZH?= =?utf-8?B?OUlCYjZPbWt6a3BrSXNoaVJRcm0ycmQ1MmNQKzBDVk1UNVZSMFlqOVBUc3NQ?= =?utf-8?B?R0JYVGhjVWIxZWdNOFZCV2J4eGxvbTZDcW9rbFRJaXlrVDZtOXMrZ0h6bGtO?= =?utf-8?B?bkxaQXh6UU5EaGtrM0NZKzZ0anV4NkpvWW1kWHA4SkVIeTZvRjcwZkhldnRF?= =?utf-8?B?YUY4SkhkOHZIZ01yVW9yS0hsOEhrSW1udTBJY2h0VUEvVUcvZUxmRURFVlNC?= =?utf-8?B?cU9hUDV4bXNvcWxyNzJXOGQ5WnhQWWhkUkZ0SEsxb1I1UDJWTWZ1SnFVQXdn?= =?utf-8?B?VXgzd0E5MGtZRkkzdjR6UVRUQVR6eUh0UTlnVytVQnYyUlRkQlhWRXc3NmVY?= =?utf-8?B?OGVIeFBlMkUyY3JmSWRCeHpCWm1CR2NjTVdVbkpDNnVCZ1hYQTVqbW1JSjFZ?= =?utf-8?B?YkRmdE52dGI4bmI0YklSUEEvbk5laTNoUlAvaEFmVjgzMTBva3Fra0VCZlVI?= =?utf-8?B?RG9tVmZPTUQ0VW5pMUtxZXNGSHdHVll1QXlUUXZ2ZDFiK3NSYmxTNHB1TEhs?= =?utf-8?B?cVhPMnE4ZCtFOXlvcmJMY0ZOeFpvYmRud0p3eG43UTlUaWh5Nkw2N002a2dw?= =?utf-8?B?eEtDQ0wzZ3I3OUZ5VC94Wk5EeVA5ejFDeDZLczVuZnhwdGlsN0JJVXcya0JF?= =?utf-8?B?QWQyNzlHS2RnTiszQ1dZY1NxZkVFYU1uNWNIMC90U1RnTWo4UVJiR1ZSTDFX?= =?utf-8?B?ZTg1MkRqT2k1TWU3UHIwelM1UHVIUFFZOXR4R1F2Wldmbk9BZWozUWpOZFBj?= =?utf-8?B?WTFDQ2d6L1ZWdmU5ZUlOaHliU1ZPS1RzaVhzNUhoZzlmK2JjTTFCbTVCbStX?= =?utf-8?B?Q3ZIemorSTMvMU16emZYM3BaMWhRNzRwRERVNG41WmlwaHl0MityWUtBUFlq?= =?utf-8?B?dzB5ZGw4ZjZwQXNYQUZJWlRiQm5RL0JUYktEY0RjNlM1RzMzRjEvNmRHTVR6?= =?utf-8?B?R25ZY2FKREJ1a2c0eHVqWUd1blhzL1E5V1VGVkdPcXR5bXczRXB6amY0bUpa?= =?utf-8?B?ZFJ0TiswSTgxbjBDVjd1MTVVYlhDcHRnNC9QcHEwV2I3WlozZ1ZFTjNEWkRt?= =?utf-8?B?R2J3Q3JrRDRobVdBZHEyUnBKejhWczl2UnIwajhHdjZOWUllUmUwQUlJRmc0?= =?utf-8?B?RFVXcVczR280MjE4MFpJYXQrRzQrUzcxa2ZWUEhpcy9EYk9mVEFmTHVZZzJr?= =?utf-8?B?VVo4R3o5YVNLbnVZdnJ6SG5JZ3lDdWhDQVpGcVVNWHNZVmNxdFgvU1l4VFAy?= =?utf-8?B?Q3lkNXZvNWVSYnlXQ0s2amY4WXN2R0g0c2prSkxDV3BzWjhsaXpEWEZhTy9L?= =?utf-8?B?cy9Kd1hSanN6SW9uQm5yUDVJME9vV0RJMVVVTk82MWc4eC9WRjFwY2lqUk50?= =?utf-8?B?OFU3ZEJmaXk1SExYSG90TEZ5bXBHTnRuZUdseHJ0SUhqWlhmYkpzdjlQT3Zy?= =?utf-8?B?dENaSVBCM1dMenp5K29WcG1YMGlTeVFDNkxFdTNLck1XaUNlU3ZyN2xsd1V3?= =?utf-8?B?c01udjJxOFhWTjZGUnBjQVRPUUNyQjVrckYydHlZbXB0Mkx0cUZLckN0aFo3?= =?utf-8?B?TGxPSzJZQkZSMzhRdXBsY3NlbG50UEJEZVhHRFBTOUc0ZVZJSTFWQ25NVFpJ?= =?utf-8?B?eWdtaERZUDVVazRIeFJ1OVlFc2Z2R2U0YURmcUdRUFhjenlwc3I5cjZHUUh4?= =?utf-8?Q?owCa+UTkjP3Aqg1ADDO+KO44Yc/QAjScKTzWKOusNh/k?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR18MB4251.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c3c46eaf-472f-489f-21ad-08dc0d53c2f4 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jan 2024 18:34:18.3371 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: LT1nVk9NmZH6bnRt8H6Z8y3UCPOKnd2pnZURmvjpNHfz8ZQ0kvULAcZXg1jDUzBXEqA35Yl43n0FpUQiuCjX4w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR18MB5798 X-Proofpoint-GUID: U_hrZxIcFhaF2mqIqZdIut1jXybL8Ewf X-Proofpoint-ORIG-GUID: U_hrZxIcFhaF2mqIqZdIut1jXybL8Ewf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-09_02,2023-12-07_01,2023-05-22_02 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmxvcmlhbiBGYWluZWxs aSA8Zmxvcmlhbi5mYWluZWxsaUBicm9hZGNvbS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBKYW51 YXJ5IDQsIDIwMjQgODoyOSBQTQ0KPiBUbzogRWxhZCBOYWNobWFuIDxlbmFjaG1hbkBtYXJ2ZWxs LmNvbT47IFdpbGwgRGVhY29uDQo+IDx3aWxsQGtlcm5lbC5vcmc+DQo+IENjOiBjYXRhbGluLm1h cmluYXNAYXJtLmNvbTsgdGh1bmRlci5sZWl6aGVuQGh1YXdlaS5jb207DQo+IGJoZUByZWRoYXQu Y29tOyBha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnOyB5YWp1bi5kZW5nQGxpbnV4LmRldjsNCj4g Y2hyaXMuempoQGh1YXdlaS5jb207IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4 LWFybS0NCj4ga2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcNCj4gU3ViamVjdDogUmU6IFtFWFRd IFJlOiBbUEFUQ0hdIGFybTY0OiBtbTogRml4IFNPQ3Mgd2l0aCBERFIgc3RhcnRpbmcgYWJvdmUN Cj4gemVybw0KPiANCj4gT24gMS80LzI0IDA0OjM4LCBFbGFkIE5hY2htYW4gd3JvdGU6DQo+ID4N Cj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBGbG9yaWFu IEZhaW5lbGxpIDxmbG9yaWFuLmZhaW5lbGxpQGJyb2FkY29tLmNvbT4NCj4gPj4gU2VudDogV2Vk bmVzZGF5LCBKYW51YXJ5IDMsIDIwMjQgODozMiBQTQ0KPiA+PiBUbzogV2lsbCBEZWFjb24gPHdp bGxAa2VybmVsLm9yZz47IEVsYWQgTmFjaG1hbg0KPiA+PiA8ZW5hY2htYW5AbWFydmVsbC5jb20+ DQo+ID4+IENjOiBjYXRhbGluLm1hcmluYXNAYXJtLmNvbTsgdGh1bmRlci5sZWl6aGVuQGh1YXdl aS5jb207DQo+ID4+IGJoZUByZWRoYXQuY29tOyBha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnOyB5 YWp1bi5kZW5nQGxpbnV4LmRldjsNCj4gPj4gY2hyaXMuempoQGh1YXdlaS5jb207IGxpbnV4LWtl cm5lbEB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWFybS0NCj4gPj4ga2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcNCj4gPj4gU3ViamVjdDogW0VYVF0gUmU6IFtQQVRDSF0gYXJtNjQ6IG1tOiBGaXgg U09DcyB3aXRoIEREUiBzdGFydGluZyBhYm92ZQ0KPiA+PiB6ZXJvDQo+ID4+DQo+ID4+IEV4dGVy bmFsIEVtYWlsDQo+ID4+DQo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPj4gT24gMS8zLzI0IDA5OjQ1 LCBXaWxsIERlYWNvbiB3cm90ZToNCj4gPj4+IE9uIFdlZCwgSmFuIDAzLCAyMDI0IGF0IDA3OjAw OjAyUE0gKzAyMDAsIEVsYWQgTmFjaG1hbiB3cm90ZToNCj4gPj4+PiBGcm9tOiBFbGFkIE5hY2ht YW4gPGVuYWNobWFuQG1hcnZlbGwuY29tPg0KPiA+Pj4+DQo+ID4+Pj4gU29tZSBTT0NzLCBsaWtl IHRoZSBNYXJ2ZWxsIEFDNS9YL0lNLCBoYXZlIGEgY29tYmluYXRpb24NCj4gPj4+PiBvZiBERFIg c3RhcnRpbmcgYXQgMHgyXzAwMDBfMDAwMCBjb3VwbGVkIHdpdGggRE1BIGNvbnRyb2xsZXJzDQo+ ID4+Pj4gbGltaXRlZCB0byAzMSBhbmQgMzIgYml0IG9mIGFkZHJlc3NpbmcuDQo+ID4+Pj4gVGhp cyByZXF1aXJlcyB0byBwcm9wZXJseSBhcnJhbmdlIFpPTkVfRE1BIGFuZCBaT05FX0RNQTMyIGZv cg0KPiA+Pj4+IHRoZXNlIFNPQ3MsIHNvIHN3aW90bGIgYW5kIGNvaGVyZW50IERNQSBhbGxvY2F0 aW9uIHdvdWxkIHdvcmsNCj4gPj4+PiBwcm9wZXJseS4NCj4gPj4+PiBDaGFuZ2UgaW5pdGlhbGl6 YXRpb24gc28gZGV2aWNlIHRyZWUgZG1hIHpvbmUgYml0cyBhcmUgdGFrZW4gYXMNCj4gPj4+PiBm dW5jdGlvbiBvZiBvZmZzZXQgZnJvbSBEUkFNIHN0YXJ0LCBhbmQgd2hlbiBjYWxjdWxhdGluZyB0 aGUNCj4gPj4+PiBtYXhpbWFsIHpvbmUgcGh5c2ljYWwgUkFNIGFkZHJlc3MgZm9yIHBoeXNpY2Fs IEREUiBzdGFydGluZyBhYm92ZQ0KPiA+Pj4+IDMyLWJpdCwgY29tYmluZSB0aGUgcGh5c2ljYWwg YWRkcmVzcyBzdGFydCBwbHVzIHRoZSB6b25lIG1hc2sNCj4gPj4+PiBwYXNzZWQgYXMgcGFyYW1l dGVyLg0KPiA+Pj4+IFRoaXMgY3JlYXRlcyB0aGUgcHJvcGVyIHpvbmUgc3BsaXR0aW5nIGZvciB0 aGVzZSBTT0NzOg0KPiA+Pj4+IDAuLjJHQiBmb3IgWk9ORV9ETUENCj4gPj4+PiAyR0IuLjRHQiBm b3IgWk9ORV9ETUEzMg0KPiA+Pj4+IDRHQi4uOEdCIGZvciBaT05FX05PUk1BTA0KPiA+Pj4+DQo+ ID4+Pj4gU2lnbmVkLW9mZi1ieTogRWxhZCBOYWNobWFuIDxlbmFjaG1hbkBtYXJ2ZWxsLmNvbT4N Cj4gPj4+PiAtLS0NCj4gPj4+PiAgICBhcmNoL2FybTY0L21tL2luaXQuYyB8IDIwICsrKysrKysr KysrKysrKy0tLS0tDQo+ID4+Pj4gICAgMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyks IDUgZGVsZXRpb25zKC0pDQo+ID4+Pj4NCj4gPj4+PiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9t bS9pbml0LmMgYi9hcmNoL2FybTY0L21tL2luaXQuYw0KPiA+Pj4+IGluZGV4IDc0YzFkYjhjZTI3 MS4uODI4OGM3Nzg5MTZlIDEwMDY0NA0KPiA+Pj4+IC0tLSBhL2FyY2gvYXJtNjQvbW0vaW5pdC5j DQo+ID4+Pj4gKysrIGIvYXJjaC9hcm02NC9tbS9pbml0LmMNCj4gPj4+PiBAQCAtMTE1LDIwICsx MTUsMjEgQEAgc3RhdGljIHZvaWQgX19pbml0DQo+ID4+IGFyY2hfcmVzZXJ2ZV9jcmFzaGtlcm5l bCh2b2lkKQ0KPiA+Pj4+DQo+ID4+Pj4gICAgLyoNCj4gPj4+PiAgICAgKiBSZXR1cm4gdGhlIG1h eGltdW0gcGh5c2ljYWwgYWRkcmVzcyBmb3IgYSB6b25lIGFjY2Vzc2libGUgYnkgdGhlDQo+ID4+ IGdpdmVuIGJpdHMNCj4gPj4+PiAtICogbGltaXQuIElmIERSQU0gc3RhcnRzIGFib3ZlIDMyLWJp dCwgZXhwYW5kIHRoZSB6b25lIHRvIHRoZSBtYXhpbXVtDQo+ID4+Pj4gLSAqIGF2YWlsYWJsZSBt ZW1vcnksIG90aGVyd2lzZSBjYXAgaXQgYXQgMzItYml0Lg0KPiA+Pj4+ICsgKiBsaW1pdC4gSWYg RFJBTSBzdGFydHMgYWJvdmUgMzItYml0LCBleHBhbmQgdGhlIHpvbmUgdG8gdGhlIGF2YWlsYWJs ZQ0KPiA+PiBtZW1vcnkNCj4gPj4+PiArICogc3RhcnQgbGltaXRlZCBieSB0aGUgem9uZSBiaXRz IG1hc2ssIG90aGVyd2lzZSBjYXAgaXQgYXQgMzItYml0Lg0KPiA+Pj4+ICAgICAqLw0KPiA+Pj4+ ICAgIHN0YXRpYyBwaHlzX2FkZHJfdCBfX2luaXQgbWF4X3pvbmVfcGh5cyh1bnNpZ25lZCBpbnQg em9uZV9iaXRzKQ0KPiA+Pj4+ICAgIHsNCj4gPj4+PiAgICAJcGh5c19hZGRyX3Qgem9uZV9tYXNr ID0gRE1BX0JJVF9NQVNLKHpvbmVfYml0cyk7DQo+ID4+Pj4gICAgCXBoeXNfYWRkcl90IHBoeXNf c3RhcnQgPSBtZW1ibG9ja19zdGFydF9vZl9EUkFNKCk7DQo+ID4+Pj4gKwlwaHlzX2FkZHJfdCBw aHlzX2VuZCA9IG1lbWJsb2NrX2VuZF9vZl9EUkFNKCk7DQo+ID4+Pj4NCj4gPj4+PiAgICAJaWYg KHBoeXNfc3RhcnQgPiBVMzJfTUFYKQ0KPiA+Pj4+IC0JCXpvbmVfbWFzayA9IFBIWVNfQUREUl9N QVg7DQo+ID4+Pj4gKwkJem9uZV9tYXNrID0gcGh5c19zdGFydCB8IHpvbmVfbWFzazsNCj4gPj4+ PiAgICAJZWxzZSBpZiAocGh5c19zdGFydCA+IHpvbmVfbWFzaykNCj4gPj4+PiAgICAJCXpvbmVf bWFzayA9IFUzMl9NQVg7DQo+ID4+Pj4NCj4gPj4+PiAtCXJldHVybiBtaW4oem9uZV9tYXNrLCBt ZW1ibG9ja19lbmRfb2ZfRFJBTSgpIC0gMSkgKyAxOw0KPiA+Pj4+ICsJcmV0dXJuIG1pbih6b25l X21hc2ssIHBoeXNfZW5kIC0gMSkgKyAxOw0KPiA+Pj4+ICAgIH0NCj4gPj4+Pg0KPiA+Pj4+ICAg IHN0YXRpYyB2b2lkIF9faW5pdCB6b25lX3NpemVzX2luaXQodm9pZCkNCj4gPj4+PiBAQCAtMTQw LDcgKzE0MSwxNiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgem9uZV9zaXplc19pbml0KHZvaWQpDQo+ ID4+Pj4NCj4gPj4+PiAgICAjaWZkZWYgQ09ORklHX1pPTkVfRE1BDQo+ID4+Pj4gICAgCWFjcGlf em9uZV9kbWFfYml0cyA9DQo+ID4+IGZsczY0KGFjcGlfaW9ydF9kbWFfZ2V0X21heF9jcHVfYWRk cmVzcygpKTsNCj4gPj4+PiAtCWR0X3pvbmVfZG1hX2JpdHMgPSBmbHM2NChvZl9kbWFfZ2V0X21h eF9jcHVfYWRkcmVzcyhOVUxMKSk7DQo+ID4+Pj4gKwkvKg0KPiA+Pj4+ICsJICogV2hlbiBjYWxj dWxhdGluZyB0aGUgZG1hIHpvbmUgYml0cyBmcm9tIHRoZSBkZXZpY2UgdHJlZSwgc3VidHJhY3QN Cj4gPj4+PiArCSAqIHRoZSBEUkFNIHN0YXJ0IGFkZHJlc3MsIGluIGNhc2UgaXQgZG9lcyBub3Qg c3RhcnQgZnJvbSBhZGRyZXNzDQo+ID4+Pj4gKwkgKiB6ZXJvLiBUaGlzIHdheS4gd2UgcGFzcyBv bmx5IHRoZSB6b25lIHNpemUgcmVsYXRlZCBiaXRzIHRvDQo+ID4+Pj4gKwkgKiBtYXhfem9uZV9w aHlzKCksIHdoaWNoIHdpbGwgYWRkIHRoZW0gdG8gdGhlIGJhc2Ugb2YgdGhlIERSQU0uDQo+ID4+ Pj4gKwkgKiBUaGlzIHByZXZlbnRzIG1pc2NhbGN1bGF0aW9ucyBvbiBhcm02NCBTT0NzIHdoaWNo IGNvbWJpbmVzDQo+ID4+Pj4gKwkgKiBERFIgc3RhcnRpbmcgYWJvdmUgNEdCIHdpdGggbWVtb3J5 IGNvbnRyb2xsZXJzIGxpbWl0ZWQgdG8NCj4gPj4+PiArCSAqIDMyLWJpdHMgb3IgbGVzczoNCj4g Pj4+PiArCSAqLw0KPiA+Pj4+ICsJZHRfem9uZV9kbWFfYml0cyA9IGZsczY0KG9mX2RtYV9nZXRf bWF4X2NwdV9hZGRyZXNzKE5VTEwpIC0NCj4gPj4gbWVtYmxvY2tfc3RhcnRfb2ZfRFJBTSgpKTsN Cj4gPj4+PiAgICAJem9uZV9kbWFfYml0cyA9IG1pbjMoMzJVLCBkdF96b25lX2RtYV9iaXRzLA0K PiA+PiBhY3BpX3pvbmVfZG1hX2JpdHMpOw0KPiA+Pj4+ICAgIAlhcm02NF9kbWFfcGh5c19saW1p dCA9IG1heF96b25lX3BoeXMoem9uZV9kbWFfYml0cyk7DQo+ID4+Pj4gICAgCW1heF96b25lX3Bm bnNbWk9ORV9ETUFdID0gUEZOX0RPV04oYXJtNjRfZG1hX3BoeXNfbGltaXQpOw0KPiA+Pj4NCj4g Pj4+IEhtbSwgSSdtIGEgYml0IHdvcnJpZWQgdGhpcyBjb3VsZCByZWdyZXNzIG90aGVyIHBsYXRm b3JtcyBzaW5jZSB5b3UNCj4gc2VlbQ0KPiA+Pj4gdG8gYmUgYXNzdW1pbmcgdGhhdCBETUEgYWRk cmVzcyAwIGNvcnJlc3BvbmRzIHRvIHRoZSBwaHlzaWNhbCBzdGFydCBvZg0KPiA+Pj4gRFJBTS4g V2hhdCBpZiB0aGF0IGlzbid0IHRoZSBjYXNlPw0KPiA+Pg0KPiA+PiBBbGwgb2Ygb3VyIG1vc3Qg cmVjZW50IFNldC10b3AtYm94IFNvQ3MgbWFwIERSQU0gc3RhcnRpbmcgYXQgUEENCj4gPj4gMHg0 MDAwXzAwMDAgRldJVy4gV2UgaGF2ZSB0aGUgZm9sbG93aW5nIG1lbW9yeSBtYXBzOg0KPiA+DQo+ ID4gVGhhdCBpcyBiZWxvdyA0R0INCj4gDQo+IFJpZ2h0LCBJIHdhcyBqdXN0IG1ha2luZyBzdXJl IHRoYXQgdGhlcmUgd291bGQgYmUgbm8gcmVncmVzc2lvbnMgd2l0aA0KPiBub24temVybyBiYXNl IGFkZHJlc3NlcyBmb3IgRFJBTSwgbm90IHRoYXQgdGhlcmUgc2hvdWxkIGJlLCBidXQgZ2V0dGlu Zw0KPiBUZXN0ZWQtYnkgdGFncyBmb3Igc3VjaCBjaGFuZ2VzIGlzIGFsd2F5cyBhIGdvb2QgdGhp bmcgSU1ITy4NCg0KSSBkbyBub3QgaGF2ZSBzdWNoIGJvYXJkIG5vciBhY2Nlc3MgdG8gb25lLg0K UGVyaGFwcyBzb21lb25lIG9uIHlvdXIgc2lkZSBjYW4gdGVzdCB0aGlzIHBhdGNoIG9uIHRoZSBT T0Mgd2hpY2ggaGFzIEREUiBzdGFydGluZyBhdCAweDQwMDBfMDAwMCBmb3IgcmVncmVzc2lvbj8N ClByb2JhYmx5IGEgcXVpY2sgb25lLCBib290ICsgRE1BIHNhbml0eSB0ZXN0Lg0KDQpUaGFua3Ms DQoNCj4gDQo+ID4NCj4gPj4NCj4gPj4gMS4gRFJBTSBtYXBwZWQgYXQgUEEgMHgwMDAwXzAwMDAN Cj4gPj4gMi4gRFJBTSBtYXBwZWQgYXQgUEEgMHg0MDAwXzAwMDAgd2l0aCBhbm90aGVyIG1lbW9y eSBjb250cm9sbGVyDQo+ID4+IHN0YXJ0aW5nDQo+ID4+IGF0IDB4M18wMDAwXzAwMDANCj4gPj4g My4gRFJBTSBtYXBwZWQgYXQgUEEgMHg0MDAwXzAwMDAgd2l0aCBhIHNpbmdsZSBtZW1vcnkgY29u dHJvbGxlci4NCj4gPj4NCj4gPj4gSGVyZSBpcyB0aGUgYmVmb3JlL2FmdGVyIGRpZmYgd2l0aCBk ZWJ1Z2dpbmcgcHJpbnRzIGludHJvZHVjZWQgdG8gcHJpbnQNCj4gPj4gc3RhcnQsIGVuZCwgbWlu LCBtYXNrIGFuZCB0aGUgZHRfem9uZV9kbWFfYml0cyB2YWx1ZToNCj4gPj4NCj4gPj4gTWVtb3J5 IG1hcCAxLiB3aXRoIDJHQiAtPiBubyBjaGFuZ2UgaW4gb3V0cHV0DQo+ID4+DQo+ID4+IE1lbW9y eSBtYXAgMi4gd2l0aCAyKzJHQiAtPiBubyBjaGFuZ2UgaW4gb3V0cHV0DQo+ID4+DQo+ID4+IE1l bW9yeSBtYXAgMy4gd2l0aCA0R0I6DQo+ID4+DQo+ID4+IEBAIC0zOSw3ICszOSw3IEBADQo+ID4+ ICAgIFsgICAgMC4wMDAwMDBdIE9GOiByZXNlcnZlZCBtZW06DQo+ID4+IDB4MDAwMDAwMDBmZGZm ZjAwMC4uMHgwMDAwMDAwMGZkZmZmZmZmICg0IEtpQikgbm9tYXAgbm9uLXJldXNhYmxlDQo+ID4+ IE5XTUJPWA0KPiA+PiAgICBbICAgIDAuMDAwMDAwXSBPRjogcmVzZXJ2ZWQgbWVtOg0KPiA+PiAw eDAwMDAwMDAwZmUwMDAwMDAuLjB4MDAwMDAwMDBmZmZmZmZmZiAoMzI3NjggS2lCKSBub21hcCBu b24tcmV1c2FibGUNCj4gPj4gU1JSQGZlMDAwMDAwDQo+ID4+ICAgIFsgICAgMC4wMDAwMDBdIG1h eF96b25lX3BoeXM6IHN0YXJ0OiAweDAwMDAwMDAwNDAwMDAwMDAsIGVuZDoNCj4gPj4gMHgwMDAw MDAwMTQwMDAwMDAwLCBtaW46IDB4MDAwMDAwMDEwMDAwMDAwMCwgbWFzazoNCj4gMHgwMDAwMDAw MGZmZmZmZmZmDQo+ID4+IC1bICAgIDAuMDAwMDAwXSB6b25lX3NpemVzX2luaXQ6IGR0X3pvbmVf ZG1hX2JpdHM6IDB4MDAwMDAwMjENCj4gPj4gK1sgICAgMC4wMDAwMDBdIHpvbmVfc2l6ZXNfaW5p dDogZHRfem9uZV9kbWFfYml0czogMHgwMDAwMDAyMA0KPiA+PiAgICBbICAgIDAuMDAwMDAwXSBt YXhfem9uZV9waHlzOiBzdGFydDogMHgwMDAwMDAwMDQwMDAwMDAwLCBlbmQ6DQo+ID4+IDB4MDAw MDAwMDE0MDAwMDAwMCwgbWluOiAweDAwMDAwMDAxMDAwMDAwMDAsIG1hc2s6DQo+IDB4MDAwMDAw MDBmZmZmZmZmZg0KPiA+PiAgICBbICAgIDAuMDAwMDAwXSBab25lIHJhbmdlczoNCj4gPj4gICAg WyAgICAwLjAwMDAwMF0gICBETUEgICAgICBbbWVtIDB4MDAwMDAwMDA0MDAwMDAwMC0weDAwMDAw MDAwZmZmZmZmZmZdDQo+ID4+IEBAIC04OCwyNDMgKzg4LDI0MyBAQA0KPiA+Pg0KPiA+PiBNZW1v cnkgbWFwIDMuIHdpdGggMkdCOg0KPiA+Pg0KPiA+PiBAQCAtMzksMTEgKzM5LDExIEBADQo+ID4+ ICAgIFsgICAgMC4wMDAwMDBdIE9GOiByZXNlcnZlZCBtZW06DQo+ID4+IDB4MDAwMDAwMDBiZGZm ZjAwMC4uMHgwMDAwMDAwMGJkZmZmZmZmICg0IEtpQikgbm9tYXAgbm9uLXJldXNhYmxlDQo+ID4+ IE5XTUJPWA0KPiA+PiAgICBbICAgIDAuMDAwMDAwXSBPRjogcmVzZXJ2ZWQgbWVtOg0KPiA+PiAw eDAwMDAwMDAwYmUwMDAwMDAuLjB4MDAwMDAwMDBiZmZmZmZmZiAoMzI3NjggS2lCKSBub21hcCBu b24tDQo+IHJldXNhYmxlDQo+ID4+IFNSUkBiZTAwMDAwMA0KPiA+PiAgICBbICAgIDAuMDAwMDAw XSBtYXhfem9uZV9waHlzOiBzdGFydDogMHgwMDAwMDAwMDQwMDAwMDAwLCBlbmQ6DQo+ID4+IDB4 MDAwMDAwMDBjMDAwMDAwMCwgbWluOiAweDAwMDAwMDAwYzAwMDAwMDAsIG1hc2s6DQo+IDB4MDAw MDAwMDBmZmZmZmZmZg0KPiA+PiAtWyAgICAwLjAwMDAwMF0gem9uZV9zaXplc19pbml0OiBkdF96 b25lX2RtYV9iaXRzOiAweDAwMDAwMDIwDQo+ID4+IC1bICAgIDAuMDAwMDAwXSBtYXhfem9uZV9w aHlzOiBzdGFydDogMHgwMDAwMDAwMDQwMDAwMDAwLCBlbmQ6DQo+ID4+IDB4MDAwMDAwMDBjMDAw MDAwMCwgbWluOiAweDAwMDAwMDAwYzAwMDAwMDAsIG1hc2s6DQo+IDB4MDAwMDAwMDBmZmZmZmZm Zg0KPiA+PiArWyAgICAwLjAwMDAwMF0gem9uZV9zaXplc19pbml0OiBkdF96b25lX2RtYV9iaXRz OiAweDAwMDAwMDFmDQo+ID4+ICtbICAgIDAuMDAwMDAwXSBtYXhfem9uZV9waHlzOiBzdGFydDog MHgwMDAwMDAwMDQwMDAwMDAwLCBlbmQ6DQo+ID4+IDB4MDAwMDAwMDBjMDAwMDAwMCwgbWluOiAw eDAwMDAwMDAwODAwMDAwMDAsIG1hc2s6DQo+IDB4MDAwMDAwMDA3ZmZmZmZmZg0KPiA+PiAgICBb ICAgIDAuMDAwMDAwXSBab25lIHJhbmdlczoNCj4gPj4gLVsgICAgMC4wMDAwMDBdICAgRE1BICAg ICAgW21lbSAweDAwMDAwMDAwNDAwMDAwMDAtMHgwMDAwMDAwMGJmZmZmZmZmXQ0KPiA+PiAtWyAg ICAwLjAwMDAwMF0gICBETUEzMiAgICBlbXB0eQ0KPiA+PiArWyAgICAwLjAwMDAwMF0gICBETUEg ICAgICBbbWVtIDB4MDAwMDAwMDA0MDAwMDAwMC0weDAwMDAwMDAwN2ZmZmZmZmZdDQo+ID4+ICtb ICAgIDAuMDAwMDAwXSAgIERNQTMyICAgIFttZW0gMHgwMDAwMDAwMDgwMDAwMDAwLTB4MDAwMDAw MDBiZmZmZmZmZl0NCj4gPj4gICAgWyAgICAwLjAwMDAwMF0gICBOb3JtYWwgICBlbXB0eQ0KPiA+ PiAgICBbICAgIDAuMDAwMDAwXSBNb3ZhYmxlIHpvbmUgc3RhcnQgZm9yIGVhY2ggbm9kZQ0KPiA+ PiAgICBbICAgIDAuMDAwMDAwXSBFYXJseSBtZW1vcnkgbm9kZSByYW5nZXMNCj4gPj4gQEAgLTU0 LDcgKzU0LDcgQEANCj4gPj4gLS0NCj4gPj4gRmxvcmlhbg0KPiA+DQo+ID4gRG8geW91IGhhdmUg YW4gZXhhbXBsZSB3aGVyZSB0aGlzIHdvcmtzIHdoZW4gRERSIG1lbW9yeSBzdGFydHMgYWJvdmUN Cj4gNEdCPw0KPiA+IFRoZSBjb2RlIGluIG1heF96b25lX3BoeXMoKSBoYXMgc2VwYXJhdGUgaWYg Y2xhdXNlcyBmb3IgbWVtb3J5IHN0YXJ0aW5nDQo+IGFib3ZlIDRHQiwNCj4gPiBhbmQgZm9yIG1l bW9yeSBzdGFydGluZyBhYm92ZSB6b25lIG1hc2sgYnV0IGJlbG93IDRHQi4uLg0KPiANCj4gSSBh bSBhZnJhaWQgSSBkb24ndCBoYXZlIHN1Y2ggYSBzeXN0ZW0gaGFuZHkuIFRoZSBvbmUgd2l0aCAy KzJHQiB3aXRoDQo+IHRoZSBzZWNvbmQgMkdCIHN0YXJ0aW5nIGF0IDEyR0IgbWlnaHQgYmUgYSB0 YWQgZGlmZmljdWx0IHRvIHN0YXJ0DQo+IHdpdGhvdXQgdGhlIGZpcnN0IDJHQiBkdWUgdG8gYSBu dW1iZXIgb2YgY3JpdGljYWwgcmVzZXJ2ZWQgbWVtb3J5DQo+IHJlZ2lvbnMgYmVpbmcgdGhlcmUu DQo+IC0tDQo+IEZsb3JpYW4NCg0KRWxhZC4NCg==