From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0691DC7EE30 for ; Sat, 25 Feb 2023 07:33:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229632AbjBYHdS (ORCPT ); Sat, 25 Feb 2023 02:33:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35466 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229538AbjBYHdR (ORCPT ); Sat, 25 Feb 2023 02:33:17 -0500 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 87466193DD; Fri, 24 Feb 2023 23:33:14 -0800 (PST) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 31P4IkQb024674; Sat, 25 Feb 2023 07:32:58 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=juQrgEsNW4XCzRNdzLYMceYNfEuY8RE+6VCNplF7XzU=; b=BUlEFy9SoQSpeB3F2/S+gjvVk9uj4UW20ZDjEVWmBnRCSr7kgwrwHUR1+Qbt7M25AHwU UOfgmGJpyCAn/xUBkJ4uHrY/Bv+MK9gKlqnhNv+yekNScypq0tuaKac87TVU0GNJG495 tu1U4mPClJ9I0+k/ORLQa7WsIdE523jirTggdJYAGTdjlAuNnwKmyUWF3mn5ZuuFRG/z eRky3qVD/qujIoA4VMR+bkbDsq0a+MY6Xq3vW19COlQrlzuB74v1m9NtwXq6zDRkEfYL BtHFwN1cWaS50SU2V1jsoIUG9qB0URLOEwm5gzTyAemiPjS95Q0Vzv+PyAOgbN2Jqmec 9A== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3nyb6e83g5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 25 Feb 2023 07:32:58 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 31P6AP6O013855; Sat, 25 Feb 2023 07:32:57 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2176.outbound.protection.outlook.com [104.47.73.176]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3ny8s2xc48-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 25 Feb 2023 07:32:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=isdJxBv2yp//x7s5CTrYznImigbGO2fLaaK8hP2OMsR7lxHWcKSk0JYDvOOAte/FoIoG8wYLDn1qDhENI3BHtTleTzv54+4TDthofwnUTAwlnGrNtfRMuSQCVdVVna6xh+g/rtd2UsbKrLSlUR605d+B4vc5vmaNoWt3vjpN216jsv3Ti9RHpAHmVA1bJshrVx8nSiqSgeSOjz5n9oLvIpKFpvxmIQXrnp9qghmm2/5bZ/dcCUhV+aw/kTcQnTAsUIqKJ+4t3Pf+RFHHjMkDpQPkbsRuvAm2lmpXjq9LsOOvYeb+7QrwzryxDZwC/G67Ncf/CTCz4tsNeNa0iQF2mA== 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=juQrgEsNW4XCzRNdzLYMceYNfEuY8RE+6VCNplF7XzU=; b=H4uzWbnMcxN/pmU/l4c45i2s0UF6MYedtRh+lahYyp+9nj3MvZ1Am2fyQvewtyZLnn/eWNrkVwoLxeyFmKK+XI1k0VFuo60I8goWNt7mZOoT+jvWHDgDD/GS9m4Z0q/aXul48GljD4LFM00+uUPweH3ulfD2RD4rC/rcD5/cJh3BIAXL6At2eTugrscngoNuywNiUH+Df+JQbcUrrJX/kodtnMXjs9yCoX1lfp6c7ndtWITxn2xV1YT/RiVR2m1LzSe29rAbm75rqBO87lb04RJZWpiwKkb5pFCXvbbOjTCHH095YCIMOoPuGdvTxcRUce0B7NGRDvUHKlA8oOpyxA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=juQrgEsNW4XCzRNdzLYMceYNfEuY8RE+6VCNplF7XzU=; b=RpMaru78tCanZfE+oEXMA07uQCACkxyl63baRiBZyn1pzGx3U/ObWinBMOokTTDduzrUFGus55Za1VJLU1+EsZw8jy/VZzx+L64ye1UGm0KNWQ0gk4TqkNecjJ6nVqdSrgy8MtFon+CPXbUn2lMYJq8jFN0ZzuChPpTf6/n+ZQA= Received: from CH2PR10MB4312.namprd10.prod.outlook.com (2603:10b6:610:7b::9) by CO1PR10MB4738.namprd10.prod.outlook.com (2603:10b6:303:93::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.12; Sat, 25 Feb 2023 07:32:52 +0000 Received: from CH2PR10MB4312.namprd10.prod.outlook.com ([fe80::2b08:15c4:ba38:6b44]) by CH2PR10MB4312.namprd10.prod.outlook.com ([fe80::2b08:15c4:ba38:6b44%9]) with mapi id 15.20.6156.011; Sat, 25 Feb 2023 07:32:52 +0000 From: Allison Henderson To: "djwong@kernel.org" CC: Catherine Hoang , "david@fromorbit.com" , "willy@infradead.org" , "linux-xfs@vger.kernel.org" , Chandan Babu , "linux-fsdevel@vger.kernel.org" , "hch@infradead.org" Subject: Re: [PATCH 07/14] xfs: document pageable kernel memory Thread-Topic: [PATCH 07/14] xfs: document pageable kernel memory Thread-Index: AQHZHJ5ucNYU/AxLTki98W2EOxjFj667b8EAgAEPQgCACdoIAIABJlSAgBgeHgA= Date: Sat, 25 Feb 2023 07:32:51 +0000 Message-ID: <5430923c0bdd4c82efe41a53f248499de0e9b49f.camel@oracle.com> References: <167243825144.682859.12802259329489258661.stgit@magnolia> <167243825260.682859.10235142095680268936.stgit@magnolia> <50fe53916b09566a2738db3bcba01a96f0a0de1f.camel@oracle.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4-0ubuntu1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR10MB4312:EE_|CO1PR10MB4738:EE_ x-ms-office365-filtering-correlation-id: c3a3787e-2a70-4515-92d1-08db17028099 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YK5m53MFigqQ4jog3RX50cHoxeNnCf8LWnpv/zl2X59sD9MCx+WcUnXz3tCl/rnVF1ska7hSaQWAJ4Vaw6VANsMvkqiecJX6KTj92zs96eQAt/Lgfgz97X2w73o71WcK/oJWKC4mojsgJxF3CXFtMVjUaJWeHmKD+HJTpifqUQy+dKiwbmw5BM6VBHcVbyf/FIcGEfrHbnJV0F0FHk+oG6tMrl8CG9hXQfaunpHgVfoCqiGqOeyr9ZqOxJz743H98hriW2iukRaiw8iUXUjjw5zic6nzP1CUEoQOaGL1Sq4bJey1A1Vx9FFFBQ5KZc+9WPv3UEEwCqGtMgVWhdmLO8CnUl0yxAToE263+dEVcu9ZEEGPke0JYduC/Z5EWB5PP5KBcSuRJWQcvMxGqaSxS2HY1Aypefwo/b9vivGpfpwL1WbGsosbZF3noTzUy0oUOkUrNcCjjyDkPMSnhy/+0WmTIbtlLeW+Byo2x69nGqvug4ZdaJqXlp3f0OGGOP0BxIvrvJBhmjufkQrBa6/auw1MfjbK4eF954IMkwZ1fgQyLOdOihqRxZxRPoYSn6uSPpvWaKcI+ryM1ZwumWHZOb5LYBhEYcB08F+vmNDIyx2ove+gKs7o9b72+NzMrG2dgoTUCJblGWQDn6siRipPrF0An06M4gphJe0AKfbaYzEs1rCtb0Fu/EWlibQykCo2 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR10MB4312.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(136003)(346002)(376002)(396003)(39860400002)(366004)(451199018)(66899018)(316002)(38070700005)(41300700001)(186003)(26005)(30864003)(8936002)(2616005)(44832011)(5660300002)(122000001)(966005)(6486002)(54906003)(6512007)(6506007)(8676002)(64756008)(76116006)(6916009)(91956017)(66446008)(66476007)(66556008)(4326008)(66946007)(71200400001)(83380400001)(38100700002)(86362001)(478600001)(36756003)(2906002)(4001150100001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Wk5MWHk3RkErNUtmUmxKOGxGMkJHd3EzN0sxOG9ESGVrVzNNblFiUU9hYmFX?= =?utf-8?B?RWZubm84VFJ1bEZMcXJibzY5ZW92Q2xNdjVETjlIZ3R5MTVOMFZxSU9wQVVO?= =?utf-8?B?N3kvYXR0ekVGUlJFM2pBemdIT1ZFSjhzeVJnQ3lWdzQxSmRaUHlSd3J4MFcy?= =?utf-8?B?dExTN2lxRGh3cHVHQmNIT3dxRWozUW5FenZDQittZmxKbTVubVZjSkxSK0ZT?= =?utf-8?B?eUlwaE1wOXI0bkdybWpGVEN2VzZYbW5aMHJaUm1tTngrYy9TOG01U0d3QlFx?= =?utf-8?B?M2R5czdvbEU1Q0VLM0dKc0hqV0VTUXQzRFpxK0tRQmJsUEdlL1RjZGtUa0lr?= =?utf-8?B?YUxHdWkvQWVaeFhtYmpVSElZdDNmTEtidzU5T1VibVltZUc1dlp6eU5Ob0pw?= =?utf-8?B?ZXJqQkwrT1ZSRHdNWjdmaWp1Q0RKVXJhc3d5THpKeXFoR0g4N2VXaC9nNEMw?= =?utf-8?B?RjBINVNiMVNJdk5CeEtXbkJlVGx0Vlk2NTFBRVcrK1JzQXd3ZlNJNUowc3hp?= =?utf-8?B?ZWlVZnRVQWpacG5XMnBHSjJZV2c4NzNYRmRCNEVhSjJaWWFGVWNCR1c2Z1J4?= =?utf-8?B?MzJpM0syUTY3T3BBbnYzMGN1M0JHdElxendCOWJsbmdXRjJQVkhaYmo3bm5h?= =?utf-8?B?eEpGYk52bUZQZVNkTHBWZ25NcHpnMGFqdmlNWFVxRXRvZzE1SXBVVGxVUUM3?= =?utf-8?B?L1pMWDZJNFNzTXFZM2VIRnBBdmNXaG9ZVDN2czB0TTNwRktkbWhpaWRQTmVu?= =?utf-8?B?UGlCRXlTVlVxVVdKRk1mWk5YS0FzaFRqSjlTWE1RTlVVNDRRMGI5cFhyTDR0?= =?utf-8?B?RXphcSs5Y1FobWJhN3UxUXNhOHFFaFZwWnpuS05ZSHZsVWFhZnVyQnFwRlpa?= =?utf-8?B?cVFkSUMzUXRYaTZjcy9jVVR0TjF5azdmMmxweXFLcmo3YmpJeUJ6TkVLZkpm?= =?utf-8?B?bk55S3VQWmt3aHBLWjFRak4ySzBIc2RGQlp2K0szL2NzOXNjUTBwQTZ6c05i?= =?utf-8?B?QStuZ2tXRkJpTE9Td3BuRmZUUzJ6dGh2bnozTTdvRFRuWWFSWnpoK21Ic3hN?= =?utf-8?B?Y2kxekVCZk5keHh5U2JLU0gzR3FKd0gwUzJkTkVNazJWS3lLMHVRNlVyRkpZ?= =?utf-8?B?QUpqTCtqTENnMS8rS25vVmllQkFvaDBIOGlGeFVKUVlWWDVPS0t3MWhnS0l4?= =?utf-8?B?RXByZkExWWpZVFBYditLdGgwczJxckkwbWlzbDd5VFJPRzJTZTJpQmx6UEQz?= =?utf-8?B?WVpnYjByMnIrbEozMXZnUFZWRnNMb0h4a3ExbG9JWCtkdXhHZzBSWnloZ2tC?= =?utf-8?B?dFhGdDZXaTlUQ01jTGR1MG81YTNURHUxK1ViNGtBNWpGMEw4bkdZVmNPUjdM?= =?utf-8?B?b2VLc0ZXK1NPMWNOYzh3cm03cXJUdXhNeWtWQWVTdSswQXlGNVoxNXJtZzFD?= =?utf-8?B?UXhLMEo2QU1GTUpKOTZSM1ZNUGpVOG01RS9pcDZPUUtZNHR2ZHJoeXZHb2Y3?= =?utf-8?B?eVU4R3ZYT3dPWFA0UDdxUHdua092S3lieC9hSXdjWmZkODI1TVBUZjZYMkJD?= =?utf-8?B?Rlh1T3F1L3cvUXJCTTd5enRkK3FyUVlHNVFsUVk0R1diRzZJU0pPeXgzNE9W?= =?utf-8?B?NHRNWUE2RnZLc2RMOThDZEpBckRRdEZHQ3BjS25iNDdKMXBmclBGWkIwYnVJ?= =?utf-8?B?dzlOdHdBTEFVcFB5SDErVGlid3BKQ0hRNWthU1B2SW9Yek1KUVp0YU9WUHJi?= =?utf-8?B?elFyTkMzcHEvek41eHVESS8va3JvU2RwK0haWUY0NlpBWUpyL2x6Y0NTN3hF?= =?utf-8?B?cHNqOXJMZkZtTUhJQTYrWnFxQ0w3WVU4VnVMODN0UjdhdlFsamZGVGY3ZmRn?= =?utf-8?B?Qm8vc1RhaHNDdHBwSHdsWFVYaHc1T3dPV0JMWWRjQWJCSVVTbTlkMHhoR29G?= =?utf-8?B?bDlBWkUzak9BZjNDTEI2eUgxMVlEUFNGRW1abDkxZ3hZeHVzSVRrcmlQL3FI?= =?utf-8?B?T3BKSHpNbnVCcVZMSnJjOCtHb1VYQ2xhcTNtTmFIWXM2RTYzVVByS2RLeEFP?= =?utf-8?B?OEpZN0hpcWRxQkRRT1ZYemdhQ2Y1RUZkcDNmbjMwYVoxbUlFMWlkdWtpVEZT?= =?utf-8?B?QTNRMHhjMDd4TGp2QUhFRm1MSm1SditQdFVMRmRLbktPMkg1R0x4QTh1VGlp?= =?utf-8?Q?+GW1wskEeCJga4EObX1LXLM=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <4E34ECB1F0218743B0079530A9139352@namprd10.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 0P7aRTmsRwCpxIYdIYhsFaDiUmoH1JUNhme3vrQs5osobln0QLLcKmb9+GqDBVpYMzmwhfF2cpBB1zNVJ+sUGVqSD2h2DXGekGnWmuufCE/qzl0agaV3Cdiko6htoqOymsH0koOdf48T2bze7ISRZyCdUH00hvptTPktrQw+wJpCoHVWEyp7DkARhh2x7syh33bSHVSnf8qJMBK0mS8RYbqbpsadkaW7Wb5c+wre7Xf0xJJlt9FRZUj6VnrPTT6RtV3ytBBrg8H9DnHi73rudB9ZDwrAhJsoJdguM3rh/DL4E39Uqgn5x/Kyu9Sj3NCSpV43TwfBZCXItYvWGRHhhlpqCh82IgQgIdKhr0PZ/GSmvtS9VjMvrPRzAAuv7aBjwSaGImBEK9o71T+0/dU3/CxlUfjVWSaV0yhIn8aen49INJZkZQSs4DJLCBt2epU33hHpbqt73FmZ1QWkniVoauXOtpfbtmZNXAJvKW51hIjvKgz9HBvDHO025UQnlRCBdR84WGQbPQLxAdskeYoCtQWtA2Z1YztfJ1jcQORzLy0OfjOt72zBn9whhXBfXlbPNh4cBLYhmUNh5E+rdyZpFVIh9QLNHpNtFmiAp9CTUZDTxnM4rc8adUDyISyH5P8AdmnB3pUAa9Xj8CFahC2P2xJykEM0WlyMuBHTqjdPLspDnSPyz283tIjEDkV8MplEC3EunWLsLwB722KLD5Hjpup6aaFavJ6CqfXA5t9Chg4dtme4+1zEeVpunFAtixNlzZAgYJ8U9repnaLLGTuNOkHMjYDkUSnES2pLTgTOfi9VXtWiSHyU0Za+ErAC7WFioTt4XYLzRsa2+DNyUT7kgcogwyvLZyxJWSNejI7bC2A= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR10MB4312.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c3a3787e-2a70-4515-92d1-08db17028099 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Feb 2023 07:32:51.7665 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ybS0brOCZDGGTgjLMgAucl7amuUrAP+0CWKOxPqWh9MddXGICdIsAPrzNS6xEC8nFlrXWoPvYPYVjEKy+fwUno4U1nUbOyyEzGbaIKhM5OM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4738 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.170.22 definitions=2023-02-25_04,2023-02-24_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 spamscore=0 mlxscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302250059 X-Proofpoint-ORIG-GUID: Ez6QBYsYIBZ9ip9zBbh2P819_nz1JgSX X-Proofpoint-GUID: Ez6QBYsYIBZ9ip9zBbh2P819_nz1JgSX Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org T24gVGh1LCAyMDIzLTAyLTA5IGF0IDE1OjE0IC0wODAwLCBEYXJyaWNrIEouIFdvbmcgd3JvdGU6 DQo+IE9uIFRodSwgRmViIDA5LCAyMDIzIGF0IDA1OjQxOjIyQU0gKzAwMDAsIEFsbGlzb24gSGVu ZGVyc29uIHdyb3RlOg0KPiA+IE9uIFRodSwgMjAyMy0wMi0wMiBhdCAxNToxNCAtMDgwMCwgRGFy cmljayBKLiBXb25nIHdyb3RlOg0KPiA+ID4gT24gVGh1LCBGZWIgMDIsIDIwMjMgYXQgMDc6MTQ6 MjJBTSArMDAwMCwgQWxsaXNvbiBIZW5kZXJzb24NCj4gPiA+IHdyb3RlOg0KPiA+ID4gPiBPbiBG cmksIDIwMjItMTItMzAgYXQgMTQ6MTAgLTA4MDAsIERhcnJpY2sgSi4gV29uZyB3cm90ZToNCj4g PiA+ID4gPiBGcm9tOiBEYXJyaWNrIEouIFdvbmcgPGRqd29uZ0BrZXJuZWwub3JnPg0KPiA+ID4g PiA+IA0KPiA+ID4gPiA+IEFkZCBhIGRpc2N1c3Npb24gb2YgcGFnZWFibGUga2VybmVsIG1lbW9y eSwgc2luY2Ugb25saW5lIGZzY2sNCj4gPiA+ID4gPiBuZWVkcw0KPiA+ID4gPiA+IHF1aXRlIGEg Yml0IG1vcmUgbWVtb3J5IHRoYW4gbW9zdCBvdGhlciBwYXJ0cyBvZiB0aGUNCj4gPiA+ID4gPiBm aWxlc3lzdGVtDQo+ID4gPiA+ID4gdG8NCj4gPiA+ID4gPiBzdGFnZQ0KPiA+ID4gPiA+IHJlY29y ZHMgYW5kIG90aGVyIGluZm9ybWF0aW9uLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IFNpZ25lZC1v ZmYtYnk6IERhcnJpY2sgSi4gV29uZyA8ZGp3b25nQGtlcm5lbC5vcmc+DQo+ID4gPiA+ID4gLS0t DQo+ID4gPiA+ID4gwqAuLi4vZmlsZXN5c3RlbXMveGZzLW9ubGluZS1mc2NrLWRlc2lnbi5yc3TC oMKgwqDCoMKgwqDCoMKgIHzCoCA0OTANCj4gPiA+ID4gPiArKysrKysrKysrKysrKysrKysrKw0K PiA+ID4gPiA+IMKgMSBmaWxlIGNoYW5nZWQsIDQ5MCBpbnNlcnRpb25zKCspDQo+ID4gPiA+ID4g DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmlsZXN5 c3RlbXMveGZzLW9ubGluZS1mc2NrLQ0KPiA+ID4gPiA+IGRlc2lnbi5yc3QNCj4gPiA+ID4gPiBi L0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMveGZzLW9ubGluZS1mc2NrLWRlc2lnbi5yc3QNCj4g PiA+ID4gPiBpbmRleCA0MTllYjU0ZWUyMDAuLjlkN2EyZWYxZDBkZCAxMDA2NDQNCj4gPiA+ID4g PiAtLS0gYS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3hmcy1vbmxpbmUtZnNjay1kZXNpZ24u cnN0DQo+ID4gPiA+ID4gKysrIGIvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy94ZnMtb25saW5l LWZzY2stZGVzaWduLnJzdA0KPiA+ID4gPiA+IEBAIC0zODMsNiArMzgzLDggQEAgQWxnb3JpdGht cyIpIG9mIFNyaW5pdmFzYW4uDQo+ID4gPiA+ID4gwqBIb3dldmVyLCBhbnkgZGF0YSBzdHJ1Y3R1 cmUgYnVpbGRlciB0aGF0IG1haW50YWlucyBhDQo+ID4gPiA+ID4gcmVzb3VyY2UNCj4gPiA+ID4g PiBsb2NrDQo+ID4gPiA+ID4gZm9yIHRoZQ0KPiA+ID4gPiA+IMKgZHVyYXRpb24gb2YgdGhlIHJl cGFpciBpcyAqYWx3YXlzKiBhbiBvZmZsaW5lIGFsZ29yaXRobS4NCj4gPiA+ID4gPiDCoA0KPiA+ ID4gPiA+ICsuLiBfc2Vjb25kYXJ5X21ldGFkYXRhOg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiDC oFNlY29uZGFyeSBNZXRhZGF0YQ0KPiA+ID4gPiA+IMKgYGBgYGBgYGBgYGBgYGBgYGBgDQo+ID4g PiA+ID4gwqANCj4gPiA+ID4gPiBAQCAtMTc0NiwzICsxNzQ4LDQ5MSBAQCBTY3J1YiB0ZWFyZG93 biBkaXNhYmxlcyBhbGwgc3RhdGljDQo+ID4gPiA+ID4ga2V5cw0KPiA+ID4gPiA+IG9idGFpbmVk IGJ5IGBgeGNoa19mc2hvb2tzX2VuYWJsZWBgLg0KPiA+ID4gPiA+IMKgDQo+ID4gPiA+ID4gwqBG b3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHNlZSB0aGUga2VybmVsIGRvY3VtZW50YXRpb24g b2YNCj4gPiA+ID4gPiDCoERvY3VtZW50YXRpb24vc3RhZ2luZy9zdGF0aWMta2V5cy5yc3QuDQo+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsuLiBfeGZpbGU6DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ICtQYWdlYWJsZSBLZXJuZWwgTWVtb3J5DQo+ID4gPiA+ID4gKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gK0RlbW9uc3RyYXRpb25zIG9mIHRoZSBmaXJzdCBm ZXcgcHJvdG90eXBlcyBvZiBvbmxpbmUgcmVwYWlyDQo+ID4gPiA+ID4gcmV2ZWFsZWQNCj4gPiA+ ID4gPiBuZXcNCj4gPiA+ID4gPiArdGVjaG5pY2FsIHJlcXVpcmVtZW50cyB0aGF0IHdlcmUgbm90 IG9yaWdpbmFsbHkgaWRlbnRpZmllZC4NCj4gPiA+ID4gPiArRm9yIHRoZSBmaXJzdCBkZW1vbnN0 cmF0aW9uLCB0aGUgY29kZSB3YWxrZWQgd2hhdGV2ZXINCj4gPiA+ID4gPiBmaWxlc3lzdGVtDQo+ ID4gPiA+ID4gK21ldGFkYXRhIGl0IG5lZWRlZCB0byBzeW50aGVzaXplIG5ldyByZWNvcmRzIGFu ZCBpbnNlcnRlZA0KPiA+ID4gPiA+IHJlY29yZHMNCj4gPiA+ID4gPiBpbnRvIGEgbmV3DQo+ID4g PiA+ID4gK2J0cmVlIGFzIGl0IGZvdW5kIHRoZW0uDQo+ID4gPiA+ID4gK1RoaXMgd2FzIHN1YnBh ciBzaW5jZSBhbnkgYWRkaXRpb25hbCBjb3JydXB0aW9uIG9yIHJ1bnRpbWUNCj4gPiA+ID4gPiBl cnJvcnMNCj4gPiA+ID4gPiBlbmNvdW50ZXJlZA0KPiA+ID4gPiA+ICtkdXJpbmcgdGhlIHdhbGsg d291bGQgc2h1dCBkb3duIHRoZSBmaWxlc3lzdGVtLg0KPiA+ID4gPiA+ICtBZnRlciByZW1vdW50 LCB0aGUgYmxvY2tzIGNvbnRhaW5pbmcgdGhlIGhhbGYtcmVidWlsdCBkYXRhDQo+ID4gPiA+ID4g c3RydWN0dXJlDQo+ID4gPiA+ID4gd291bGQgbm90DQo+ID4gPiA+ID4gK2JlIGFjY2Vzc2libGUg dW50aWwgYW5vdGhlciByZXBhaXIgd2FzIGF0dGVtcHRlZC4NCj4gPiA+ID4gPiArU29sdmluZyB0 aGUgcHJvYmxlbSBvZiBoYWxmLXJlYnVpbHQgZGF0YSBzdHJ1Y3R1cmVzIHdpbGwgYmUNCj4gPiA+ ID4gPiBkaXNjdXNzZWQgaW4gdGhlDQo+ID4gPiA+ID4gK25leHQgc2VjdGlvbi4NCj4gPiA+ID4g PiArDQo+ID4gPiA+ID4gK0ZvciB0aGUgc2Vjb25kIGRlbW9uc3RyYXRpb24sIHRoZSBzeW50aGVz aXplZCByZWNvcmRzIHdlcmUNCj4gPiA+ID4gPiBpbnN0ZWFkDQo+ID4gPiA+ID4gc3RvcmVkIGlu DQo+ID4gPiA+ID4gK2tlcm5lbCBzbGFiIG1lbW9yeS4NCj4gPiA+ID4gPiArRG9pbmcgc28gZW5h YmxlZCBvbmxpbmUgcmVwYWlyIHRvIGFib3J0IHdpdGhvdXQgd3JpdGluZyB0bw0KPiA+ID4gPiA+ IHRoZQ0KPiA+ID4gPiA+IGZpbGVzeXN0ZW0gaWYNCj4gPiA+ID4gPiArdGhlIG1ldGFkYXRhIHdh bGsgZmFpbGVkLCB3aGljaCBwcmV2ZW50ZWQgb25saW5lIGZzY2sgZnJvbQ0KPiA+ID4gPiA+IG1h a2luZw0KPiA+ID4gPiA+IHRoaW5ncyB3b3JzZS4NCj4gPiA+ID4gPiArSG93ZXZlciwgZXZlbiB0 aGlzIGFwcHJvYWNoIG5lZWRlZCBpbXByb3ZpbmcgdXBvbi4NCj4gPiA+ID4gPiArDQo+ID4gPiA+ ID4gK1RoZXJlIGFyZSBmb3VyIHJlYXNvbnMgd2h5IHRyYWRpdGlvbmFsIExpbnV4IGtlcm5lbCBt ZW1vcnkNCj4gPiA+ID4gPiBtYW5hZ2VtZW50IGlzbid0DQo+ID4gPiA+ID4gK3N1aXRhYmxlIGZv ciBzdG9yaW5nIGxhcmdlIGRhdGFzZXRzOg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArMS4gQWx0 aG91Z2ggaXQgaXMgdGVtcHRpbmcgdG8gYWxsb2NhdGUgYSBjb250aWd1b3VzIGJsb2NrIG9mDQo+ ID4gPiA+ID4gbWVtb3J5DQo+ID4gPiA+ID4gdG8gY3JlYXRlIGENCj4gPiA+ID4gPiArwqDCoCBD IGFycmF5LCB0aGlzIGNhbm5vdCBlYXNpbHkgYmUgZG9uZSBpbiB0aGUga2VybmVsIGJlY2F1c2UN Cj4gPiA+ID4gPiBpdA0KPiA+ID4gPiA+IGNhbm5vdCBiZQ0KPiA+ID4gPiA+ICvCoMKgIHJlbGll ZCB1cG9uIHRvIGFsbG9jYXRlIG11bHRpcGxlIGNvbnRpZ3VvdXMgbWVtb3J5IHBhZ2VzLg0KPiA+ ID4gPiA+ICsNCj4gPiA+ID4gPiArMi4gV2hpbGUgZGlzcGFyYXRlIHBoeXNpY2FsIHBhZ2VzIGNh biBiZSB2aXJ0dWFsbHkgbWFwcGVkDQo+ID4gPiA+ID4gdG9nZXRoZXIsDQo+ID4gPiA+ID4gaW5z dGFsbGVkDQo+ID4gPiA+ID4gK8KgwqAgbWVtb3J5IG1pZ2h0IHN0aWxsIG5vdCBiZSBsYXJnZSBl bm91Z2ggdG8gc3RhZ2UgdGhlDQo+ID4gPiA+ID4gZW50aXJlDQo+ID4gPiA+ID4gcmVjb3JkDQo+ ID4gPiA+ID4gc2V0IGluDQo+ID4gPiA+ID4gK8KgwqAgbWVtb3J5IHdoaWxlIGNvbnN0cnVjdGlu ZyBhIG5ldyBidHJlZS4NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKzMuIFRvIG92ZXJjb21lIHRo ZXNlIHR3byBkaWZmaWN1bHRpZXMsIHRoZSBpbXBsZW1lbnRhdGlvbg0KPiA+ID4gPiA+IHdhcw0K PiA+ID4gPiA+IGFkanVzdGVkIHRvIHVzZQ0KPiA+ID4gPiA+ICvCoMKgIGRvdWJseSBsaW5rZWQg bGlzdHMsIHdoaWNoIG1lYW5zIGV2ZXJ5IHJlY29yZCBvYmplY3QNCj4gPiA+ID4gPiBuZWVkZWQN Cj4gPiA+ID4gPiB0d28NCj4gPiA+ID4gPiA2NC1iaXQgbGlzdA0KPiA+ID4gPiA+ICvCoMKgIGhl YWQgcG9pbnRlcnMsIHdoaWNoIGlzIGEgbG90IG9mIG92ZXJoZWFkLg0KPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiArNC4gS2VybmVsIG1lbW9yeSBpcyBwaW5uZWQsIHdoaWNoIGNhbiBkcml2ZSB0aGUg c3lzdGVtIG91dA0KPiA+ID4gPiA+IG9mDQo+ID4gPiA+ID4gbWVtb3J5LCBsZWFkaW5nDQo+ID4g PiA+ID4gK8KgwqAgdG8gT09NIGtpbGxzIG9mIHVucmVsYXRlZCBwcm9jZXNzZXMuDQo+ID4gPiA+ ID4gKw0KPiA+ID4gPiBJIHRoaW5rIEkgbWF5YmUgbWlnaHQganVzdCBqdW1wIHRvIHdoYXQgZXZl ciB0aGUgY3VycmVudCBwbGFuDQo+ID4gPiA+IGlzDQo+ID4gPiA+IGluc3RlYWQgb2YgdHJ5aW5n IHRvIGtlZXAgYSByZWNvcmQgb2YgdGhlIGRldiBoaXN0b3J5IGluIHRoZQ0KPiA+ID4gPiBkb2N1 bWVudC4NCj4gPiA+ID4gSSdtIHN1cmUgd2UncmUgbm90IGRvbmUgeWV0LCBkZXYgcmVhbGx5IG5l dmVyIGlzLCBzbyBpbiBvcmRlcg0KPiA+ID4gPiBmb3INCj4gPiA+ID4gdGhlDQo+ID4gPiA+IGRv Y3VtZW50YXRpb24gdG8gYmUgbWFpbnRhaW5lZCwgaXQgd291bGQganVzdCBnZXQgYmlnZ2VyIGFu ZA0KPiA+ID4gPiBiaWdnZXINCj4gPiA+ID4gdG8NCj4gPiA+ID4ga2VlcCBkb2N1bWVudGluZyBp dCB0aGlzIHdheS7CoCBJdCdzIG5vdCB0aGF0IHRoZSBhYm92ZSBpc250DQo+ID4gPiA+IHZhbHVh YmxlLA0KPiA+ID4gPiBidXQgbWF5YmUgYSBkaWZmZXJlbnQga2luZCBvZiBkb2N1bWVudCByZWFs bHkuDQo+ID4gPiANCj4gPiA+IE9LLCBJJ3ZlIHNob3J0ZW5lZCB0aGlzIGludHJvZHVjdGlvbiB0 byBvdXRsaW5lIHRoZSByZXF1aXJlbWVudHMsDQo+ID4gPiBhbmQNCj4gPiA+IHRyaW1tZWQgdGhl IGhpc3RvcmljYWwgaW5mb3JtYXRpb24gdG8gYSBzaWRlYmFyOg0KPiA+ID4gDQo+ID4gPiAiU29t ZSBvbmxpbmUgY2hlY2tpbmcgZnVuY3Rpb25zIHdvcmsgYnkgc2Nhbm5pbmcgdGhlIGZpbGVzeXN0 ZW0NCj4gPiA+IHRvDQo+ID4gPiBidWlsZA0KPiA+ID4gYSBzaGFkb3cgY29weSBvZiBhbiBvbmRp c2sgbWV0YWRhdGEgc3RydWN0dXJlIGluIG1lbW9yeSBhbmQNCj4gPiA+IGNvbXBhcmluZw0KPiA+ ID4gdGhlIHR3byBjb3BpZXMuIEZvciBvbmxpbmUgcmVwYWlyIHRvIHJlYnVpbGQgYSBtZXRhZGF0 YQ0KPiA+ID4gc3RydWN0dXJlLCBpdA0KPiA+ID4gbXVzdCBjb21wdXRlIHRoZSByZWNvcmQgc2V0 IHRoYXQgd2lsbCBiZSBzdG9yZWQgaW4gdGhlIG5ldw0KPiA+ID4gc3RydWN0dXJlDQo+ID4gPiBi ZWZvcmUgaXQgY2FuIHBlcnNpc3QgdGhhdCBuZXcgc3RydWN0dXJlIHRvIGRpc2suIElkZWFsbHks DQo+ID4gPiByZXBhaXJzDQo+ID4gPiBjb21wbGV0ZSB3aXRoIGEgc2luZ2xlIGF0b21pYyBjb21t aXQgdGhhdCBpbnRyb2R1Y2VzIGEgbmV3IGRhdGENCj4gPiA+IHN0cnVjdHVyZS4gVG8gbWVldCB0 aGVzZSBnb2FscywgdGhlIGtlcm5lbCBuZWVkcyB0byBjb2xsZWN0IGENCj4gPiA+IGxhcmdlDQo+ ID4gPiBhbW91bnQgb2YgaW5mb3JtYXRpb24gaW4gYSBwbGFjZSB0aGF0IGRvZXNu4oCZdCByZXF1 aXJlIHRoZSBjb3JyZWN0DQo+ID4gPiBvcGVyYXRpb24gb2YgdGhlIGZpbGVzeXN0ZW0uDQo+ID4g PiANCj4gPiA+ICJLZXJuZWwgbWVtb3J5IGlzbuKAmXQgc3VpdGFibGUgYmVjYXVzZToNCj4gPiA+ IA0KPiA+ID4gKsKgwqAgQWxsb2NhdGluZyBhIGNvbnRpZ3VvdXMgcmVnaW9uIG9mIG1lbW9yeSB0 byBjcmVhdGUgYSBDIGFycmF5DQo+ID4gPiBpcw0KPiA+ID4gdmVyeQ0KPiA+ID4gwqDCoMKgIGRp ZmZpY3VsdCwgZXNwZWNpYWxseSBvbiAzMi1iaXQgc3lzdGVtcy4NCj4gPiA+IA0KPiA+ID4gKsKg wqAgTGlua2VkIGxpc3RzIG9mIHJlY29yZHMgaW50cm9kdWNlIGRvdWJsZSBwb2ludGVyIG92ZXJo ZWFkDQo+ID4gPiB3aGljaA0KPiA+ID4gaXMNCj4gPiA+IMKgwqDCoCB2ZXJ5IGhpZ2ggYW5kIGVs aW1pbmF0ZSB0aGUgcG9zc2liaWxpdHkgb2YgaW5kZXhlZCBsb29rdXBzLg0KPiA+ID4gDQo+ID4g PiAqwqDCoCBLZXJuZWwgbWVtb3J5IGlzIHBpbm5lZCwgd2hpY2ggY2FuIGRyaXZlIHRoZSBzeXN0 ZW0gaW50byBPT00NCj4gPiA+IMKgwqDCoCBjb25kaXRpb25zLg0KPiA+ID4gDQo+ID4gPiAqwqDC oCBUaGUgc3lzdGVtIG1pZ2h0IG5vdCBoYXZlIHN1ZmZpY2llbnQgbWVtb3J5IHRvIHN0YWdlIGFs bCB0aGUNCj4gPiA+IMKgwqDCoCBpbmZvcm1hdGlvbi4NCj4gPiA+IA0KPiA+ID4gIkF0IGFueSBn aXZlbiB0aW1lLCBvbmxpbmUgZnNjayBkb2VzIG5vdCBuZWVkIHRvIGtlZXAgdGhlIGVudGlyZQ0K PiA+ID4gcmVjb3JkDQo+ID4gPiBzZXQgaW4gbWVtb3J5LCB3aGljaCBtZWFucyB0aGF0IGluZGl2 aWR1YWwgcmVjb3JkcyBjYW4gYmUgcGFnZWQNCj4gPiA+IG91dA0KPiA+ID4gaWYNCj4gPiA+IG5l Y2Vzc2FyeS4gQ29udGludWVkIGRldmVsb3BtZW50IG9mIG9ubGluZSBmc2NrIGRlbW9uc3RyYXRl ZCB0aGF0DQo+ID4gPiB0aGUNCj4gPiA+IGFiaWxpdHkgdG8gcGVyZm9ybSBpbmRleGVkIGRhdGEg c3RvcmFnZSB3b3VsZCBhbHNvIGJlIHZlcnkNCj4gPiA+IHVzZWZ1bC4NCj4gPiA+IEZvcnR1bmF0 ZWx5LCB0aGUgTGludXgga2VybmVsIGFscmVhZHkgaGFzIGEgZmFjaWxpdHkgZm9yDQo+ID4gPiBi eXRlLWFkZHJlc3NhYmxlIGFuZCBwYWdlYWJsZSBzdG9yYWdlOiB0bXBmcy4gSW4ta2VybmVsIGdy YXBoaWNzDQo+ID4gPiBkcml2ZXJzDQo+ID4gPiAobW9zdCBub3RhYmx5IGk5MTUpIHRha2UgYWR2 YW50YWdlIG9mIHRtcGZzIGZpbGVzIHRvIHN0b3JlDQo+ID4gPiBpbnRlcm1lZGlhdGUNCj4gPiA+ IGRhdGEgdGhhdCBkb2VzbuKAmXQgbmVlZCB0byBiZSBpbiBtZW1vcnkgYXQgYWxsIHRpbWVzLCBz byB0aGF0DQo+ID4gPiB1c2FnZQ0KPiA+ID4gcHJlY2VkZW50IGlzIGFscmVhZHkgZXN0YWJsaXNo ZWQuIEhlbmNlLCB0aGUgeGZpbGUgd2FzIGJvcm4hDQo+ID4gPiANCj4gPiA+IEhpc3RvcmljYWwg U2lkZWJhcg0KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiANCj4gPiA+ICJUaGUgZmly c3QgZWRpdGlvbiBvZiBvbmxpbmUgcmVwYWlyIGluc2VydGVkIHJlY29yZHMgaW50byBhIG5ldw0K PiA+ID4gYnRyZWUNCj4gPiA+IGFzDQo+ID4gPiBpdCBmb3VuZCB0aGVtLCB3aGljaCBmYWlsZWQg YmVjYXVzZSBmaWxlc3lzdGVtIGNvdWxkIHNodXQgZG93bg0KPiA+ID4gd2l0aCBhDQo+ID4gPiBi dWlsdCBkYXRhIHN0cnVjdHVyZSwgd2hpY2ggd291bGQgYmUgbGl2ZSBhZnRlciByZWNvdmVyeQ0K PiA+ID4gZmluaXNoZWQuDQo+ID4gPiANCj4gPiA+ICJUaGUgc2Vjb25kIGVkaXRpb24gc29sdmVk IHRoZSBoYWxmLXJlYnVpbHQgc3RydWN0dXJlIHByb2JsZW0gYnkNCj4gPiA+IHN0b3JpbmcNCj4g PiA+IGV2ZXJ5dGhpbmcgaW4gbWVtb3J5LCBidXQgZnJlcXVlbnRseSByYW4gdGhlIHN5c3RlbSBv dXQgb2YNCj4gPiA+IG1lbW9yeS4NCj4gPiA+IA0KPiA+ID4gIlRoZSB0aGlyZCBlZGl0aW9uIHNv bHZlZCB0aGUgT09NIHByb2JsZW0gYnkgdXNpbmcgbGlua2VkIGxpc3RzLA0KPiA+ID4gYnV0DQo+ ID4gPiB0aGUNCj4gPiA+IGxpc3Qgb3ZlcmhlYWQgd2FzIGV4dHJlbWUuIg0KPiA+IE9rLCBJIHRo aW5rIHRoYXQncyBjbGVhbmVyDQo+ID4gDQo+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IA0KPiA+ ID4gPiA+ICtGb3IgdGhlIHRoaXJkIGl0ZXJhdGlvbiwgYXR0ZW50aW9uIHN3dW5nIGJhY2sgdG8g dGhlDQo+ID4gPiA+ID4gcG9zc2liaWxpdHkNCj4gPiA+ID4gPiBvZg0KPiA+ID4gPiA+IHVzaW5n DQo+ID4gPiA+IA0KPiA+ID4gPiBEdWUgdG8gdGhlIGxhcmdlIHZvbHVtZSBvZiBtZXRhZGF0YSB0 aGF0IG5lZWRzIHRvIGJlIHByb2Nlc3NlZCwNCj4gPiA+ID4gb2ZzY2sNCj4gPiA+ID4gdXNlcy4u Lg0KPiA+ID4gPiANCj4gPiA+ID4gPiArYnl0ZS1pbmRleGVkIGFycmF5LWxpa2Ugc3RvcmFnZSB0 byByZWR1Y2UgdGhlIG92ZXJoZWFkIG9mDQo+ID4gPiA+ID4gaW4tDQo+ID4gPiA+ID4gbWVtb3J5 DQo+ID4gPiA+ID4gcmVjb3Jkcy4NCj4gPiA+ID4gPiArQXQgYW55IGdpdmVuIHRpbWUsIG9ubGlu ZSByZXBhaXIgZG9lcyBub3QgbmVlZCB0byBrZWVwIHRoZQ0KPiA+ID4gPiA+IGVudGlyZQ0KPiA+ ID4gPiA+IHJlY29yZCBzZXQgaW4NCj4gPiA+ID4gPiArbWVtb3J5LCB3aGljaCBtZWFucyB0aGF0 IGluZGl2aWR1YWwgcmVjb3JkcyBjYW4gYmUgcGFnZWQNCj4gPiA+ID4gPiBvdXQuDQo+ID4gPiA+ ID4gK0NyZWF0aW5nIG5ldyB0ZW1wb3JhcnkgZmlsZXMgaW4gdGhlIFhGUyBmaWxlc3lzdGVtIHRv IHN0b3JlDQo+ID4gPiA+ID4gaW50ZXJtZWRpYXRlIGRhdGENCj4gPiA+ID4gPiArd2FzIGV4cGxv cmVkIGFuZCByZWplY3RlZCBmb3Igc29tZSB0eXBlcyBvZiByZXBhaXJzIGJlY2F1c2UNCj4gPiA+ ID4gPiBhDQo+ID4gPiA+ID4gZmlsZXN5c3RlbSB3aXRoDQo+ID4gPiA+ID4gK2NvbXByb21pc2Vk IHNwYWNlIGFuZCBpbm9kZSBtZXRhZGF0YSBzaG91bGQgbmV2ZXIgYmUgdXNlZCB0bw0KPiA+ID4g PiA+IGZpeA0KPiA+ID4gPiA+IGNvbXByb21pc2VkDQo+ID4gPiA+ID4gK3NwYWNlIG9yIGlub2Rl IG1ldGFkYXRhLg0KPiA+ID4gPiA+ICtIb3dldmVyLCB0aGUga2VybmVsIGFscmVhZHkgaGFzIGEg ZmFjaWxpdHkgZm9yIGJ5dGUtDQo+ID4gPiA+ID4gYWRkcmVzc2FibGUNCj4gPiA+ID4gPiBhbmQN Cj4gPiA+ID4gPiBwYWdlYWJsZQ0KPiA+ID4gPiA+ICtzdG9yYWdlOiBzaG1mcy4NCj4gPiA+ID4g PiArSW4ta2VybmVsIGdyYXBoaWNzIGRyaXZlcnMgKG1vc3Qgbm90YWJseSBpOTE1KSB0YWtlDQo+ ID4gPiA+ID4gYWR2YW50YWdlIG9mDQo+ID4gPiA+ID4gc2htZnMgZmlsZXMNCj4gPiA+ID4gPiAr dG8gc3RvcmUgaW50ZXJtZWRpYXRlIGRhdGEgdGhhdCBkb2Vzbid0IG5lZWQgdG8gYmUgaW4gbWVt b3J5DQo+ID4gPiA+ID4gYXQNCj4gPiA+ID4gPiBhbGwNCj4gPiA+ID4gPiB0aW1lcywgc28NCj4g PiA+ID4gPiArdGhhdCB1c2FnZSBwcmVjZWRlbnQgaXMgYWxyZWFkeSBlc3RhYmxpc2hlZC4NCj4g PiA+ID4gPiArSGVuY2UsIHRoZSBgYHhmaWxlYGAgd2FzIGJvcm4hDQo+ID4gPiA+ID4gKw0KPiA+ ID4gPiA+ICt4ZmlsZSBBY2Nlc3MgTW9kZWxzDQo+ID4gPiA+ID4gK2BgYGBgYGBgYGBgYGBgYGBg YGANCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gK0Egc3VydmV5IG9mIHRoZSBpbnRlbmRlZCB1c2Vz IG9mIHhmaWxlcyBzdWdnZXN0ZWQgdGhlc2UgdXNlDQo+ID4gPiA+ID4gY2FzZXM6DQo+ID4gPiA+ ID4gKw0KPiA+ID4gPiA+ICsxLiBBcnJheXMgb2YgZml4ZWQtc2l6ZWQgcmVjb3JkcyAoc3BhY2Ug bWFuYWdlbWVudCBidHJlZXMsDQo+ID4gPiA+ID4gZGlyZWN0b3J5DQo+ID4gPiA+ID4gYW5kDQo+ ID4gPiA+ID4gK8KgwqAgZXh0ZW5kZWQgYXR0cmlidXRlIGVudHJpZXMpDQo+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ICsyLiBTcGFyc2UgYXJyYXlzIG9mIGZpeGVkLXNpemVkIHJlY29yZHMgKHF1b3Rh cyBhbmQgbGluaw0KPiA+ID4gPiA+IGNvdW50cykNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKzMu IExhcmdlIGJpbmFyeSBvYmplY3RzIChCTE9Ccykgb2YgdmFyaWFibGUgc2l6ZXMgKGRpcmVjdG9y eQ0KPiA+ID4gPiA+IGFuZA0KPiA+ID4gPiA+IGV4dGVuZGVkDQo+ID4gPiA+ID4gK8KgwqAgYXR0 cmlidXRlIG5hbWVzIGFuZCB2YWx1ZXMpDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICs0LiBTdGFn aW5nIGJ0cmVlcyBpbiBtZW1vcnkgKHJldmVyc2UgbWFwcGluZyBidHJlZXMpDQo+ID4gPiA+ID4g Kw0KPiA+ID4gPiA+ICs1LiBBcmJpdHJhcnkgY29udGVudHMgKHJlYWx0aW1lIHNwYWNlIG1hbmFn ZW1lbnQpDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICtUbyBzdXBwb3J0IHRoZSBmaXJzdCBmb3Vy IHVzZSBjYXNlcywgaGlnaCBsZXZlbCBkYXRhDQo+ID4gPiA+ID4gc3RydWN0dXJlcw0KPiA+ID4g PiA+IHdyYXANCj4gPiA+ID4gPiB0aGUgeGZpbGUNCj4gPiA+ID4gPiArdG8gc2hhcmUgZnVuY3Rp b25hbGl0eSBiZXR3ZWVuIG9ubGluZSBmc2NrIGZ1bmN0aW9ucy4NCj4gPiA+ID4gPiArVGhlIHJl c3Qgb2YgdGhpcyBzZWN0aW9uIGRpc2N1c3NlcyB0aGUgaW50ZXJmYWNlcyB0aGF0IHRoZQ0KPiA+ ID4gPiA+IHhmaWxlDQo+ID4gPiA+ID4gcHJlc2VudHMgdG8NCj4gPiA+ID4gPiArZm91ciBvZiB0 aG9zZSBmaXZlIGhpZ2hlciBsZXZlbCBkYXRhIHN0cnVjdHVyZXMuDQo+ID4gPiA+ID4gK1RoZSBm aWZ0aCB1c2UgY2FzZSBpcyBkaXNjdXNzZWQgaW4gdGhlIDpyZWY6YHJlYWx0aW1lDQo+ID4gPiA+ ID4gc3VtbWFyeQ0KPiA+ID4gPiA+IDxydHN1bW1hcnk+YCBjYXNlDQo+ID4gPiA+ID4gK3N0dWR5 Lg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArVGhlIG1vc3QgZ2VuZXJhbCBzdG9yYWdlIGludGVy ZmFjZSBzdXBwb3J0ZWQgYnkgdGhlIHhmaWxlDQo+ID4gPiA+ID4gZW5hYmxlcw0KPiA+ID4gPiA+ IHRoZSByZWFkaW5nDQo+ID4gPiA+ID4gK2FuZCB3cml0aW5nIG9mIGFyYml0cmFyeSBxdWFudGl0 aWVzIG9mIGRhdGEgYXQgYXJiaXRyYXJ5DQo+ID4gPiA+ID4gb2Zmc2V0cw0KPiA+ID4gPiA+IGlu DQo+ID4gPiA+ID4gdGhlIHhmaWxlLg0KPiA+ID4gPiA+ICtUaGlzIGNhcGFiaWxpdHkgaXMgcHJv dmlkZWQgYnkgYGB4ZmlsZV9wcmVhZGBgIGFuZA0KPiA+ID4gPiA+IGBgeGZpbGVfcHdyaXRlYGAN Cj4gPiA+ID4gPiBmdW5jdGlvbnMsDQo+ID4gPiA+ID4gK3doaWNoIGJlaGF2ZSBzaW1pbGFybHkg dG8gdGhlaXIgdXNlcnNwYWNlIGNvdW50ZXJwYXJ0cy4NCj4gPiA+ID4gPiArWEZTIGlzIHZlcnkg cmVjb3JkLWJhc2VkLCB3aGljaCBzdWdnZXN0cyB0aGF0IHRoZSBhYmlsaXR5IHRvDQo+ID4gPiA+ ID4gbG9hZA0KPiA+ID4gPiA+IGFuZCBzdG9yZQ0KPiA+ID4gPiA+ICtjb21wbGV0ZSByZWNvcmRz IGlzIGltcG9ydGFudC4NCj4gPiA+ID4gPiArVG8gc3VwcG9ydCB0aGVzZSBjYXNlcywgYSBwYWly IG9mIGBgeGZpbGVfb2JqX2xvYWRgYCBhbmQNCj4gPiA+ID4gPiBgYHhmaWxlX29ial9zdG9yZWBg DQo+ID4gPiA+ID4gK2Z1bmN0aW9ucyBhcmUgcHJvdmlkZWQgdG8gcmVhZCBhbmQgcGVyc2lzdCBv YmplY3RzIGludG8gYW4NCj4gPiA+ID4gPiB4ZmlsZS4NCj4gPiA+ID4gPiArVGhleSBhcmUgaW50 ZXJuYWxseSB0aGUgc2FtZSBhcyBwcmVhZCBhbmQgcHdyaXRlLCBleGNlcHQNCj4gPiA+ID4gPiB0 aGF0DQo+ID4gPiA+ID4gdGhleQ0KPiA+ID4gPiA+IHRyZWF0IGFueQ0KPiA+ID4gPiA+ICtlcnJv ciBhcyBhbiBvdXQgb2YgbWVtb3J5IGVycm9yLg0KPiA+ID4gPiA+ICtGb3Igb25saW5lIHJlcGFp ciwgc3F1YXNoaW5nIGVycm9yIGNvbmRpdGlvbnMgaW4gdGhpcyBtYW5uZXINCj4gPiA+ID4gPiBp cw0KPiA+ID4gPiA+IGFuDQo+ID4gPiA+ID4gYWNjZXB0YWJsZQ0KPiA+ID4gPiA+ICtiZWhhdmlv ciBiZWNhdXNlIHRoZSBvbmx5IHJlYWN0aW9uIGlzIHRvIGFib3J0IHRoZSBvcGVyYXRpb24NCj4g PiA+ID4gPiBiYWNrIHRvDQo+ID4gPiA+ID4gdXNlcnNwYWNlLg0KPiA+ID4gPiA+ICtBbGwgZml2 ZSB4ZmlsZSB1c2VjYXNlcyBjYW4gYmUgc2VydmljZWQgYnkgdGhlc2UgZm91cg0KPiA+ID4gPiA+ IGZ1bmN0aW9ucy4NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gK0hvd2V2ZXIsIG5vIGRpc2N1c3Np b24gb2YgZmlsZSBhY2Nlc3MgaWRpb21zIGlzIGNvbXBsZXRlDQo+ID4gPiA+ID4gd2l0aG91dA0K PiA+ID4gPiA+IGFuc3dlcmluZyB0aGUNCj4gPiA+ID4gPiArcXVlc3Rpb24sICJCdXQgd2hhdCBh Ym91dCBtbWFwPyINCj4gPiA+ID4gSSBhY3R1YWxseSB3b3VsZG4ndCBzcGVuZCB0b28gbXVjaCB0 aW1lIGRpc2N1c3Npbmcgc29sdXRpb25zDQo+ID4gPiA+IHRoYXQNCj4gPiA+ID4gZGlkbid0IHdv cmsgZm9yIHdoYXQgZXZlciByZWFzb24sIHVubGVzcyBzb21lb25lcyByZWFsbHkgYXNraW5nDQo+ ID4gPiA+IGZvcg0KPiA+ID4gPiBpdC4NCj4gPiA+ID4gwqBJIHRoaW5rIHRoaXMgc2VjdGlvbiB3 b3VsZCByZWFkIGp1c3QgZmluZSB0byB0cmltIG9mZiB0aGUgbGFzdA0KPiA+ID4gPiBwYXJhZ3Jh cGggaGVyZQ0KPiA+ID4gDQo+ID4gPiBTaW5jZSBJIHdyb3RlIHRoaXMsIEkndmUgYmVlbiBleHBl cmltZW50aW5nIHdpdGggd2lyaW5nIHVwIHRoZQ0KPiA+ID4gdG1wZnMNCj4gPiA+IGZpbGUgcGFn ZSBjYWNoZSBmb2xpb3MgdG8gdGhlIHhmcyBidWZmZXIgY2FjaGUuwqAgUGlubmluZyB0aGUNCj4g PiA+IGZvbGlvcw0KPiA+ID4gaW4NCj4gPiA+IHRoaXMgbWFubmVyIG1ha2VzIGl0IHNvIHRoYXQg b25saW5lIGZzY2sgY2FuIChtb3JlIG9yIGxlc3MpDQo+ID4gPiBkaXJlY3RseQ0KPiA+ID4gYWNj ZXNzIHRoZSB4ZmlsZSBjb250ZW50cy7CoCBNdWNoIHRvIG15IHN1cnByaXNlLCB0aGlzIGhhcw0K PiA+ID4gYWN0dWFsbHkNCj4gPiA+IGhlbGQNCj4gPiA+IHVwIGluIHRlc3RpbmcsIHNvIC4uLiBp dCdzIG5vIGxvbmdlciBhIHNvbHV0aW9uIHRoYXQgImRpZG4ndA0KPiA+ID4gcmVhbGx5DQo+ID4g PiB3b3JrIi4gOikNCj4gPiA+IA0KPiA+ID4gSSBhbHNvIG5lZWQgdG8gcy9wYWdlL2ZvbGlvLyBu b3cgdGhhdCB3aWxseSBoYXMgZmluaXNoZWQgdGhhdA0KPiA+ID4gY29udmVyc2lvbi7CoCBUaGlz IHNlY3Rpb24gaGFzIGJlZW4gcmV3cml0dGVuIGFzIHN1Y2g6DQo+ID4gPiANCj4gPiA+ICJIb3dl dmVyLCBubyBkaXNjdXNzaW9uIG9mIGZpbGUgYWNjZXNzIGlkaW9tcyBpcyBjb21wbGV0ZSB3aXRo b3V0DQo+ID4gPiBhbnN3ZXJpbmcgdGhlIHF1ZXN0aW9uLCDigJxCdXQgd2hhdCBhYm91dCBtbWFw P+KAnSBJdCBpcyBjb252ZW5pZW50DQo+ID4gPiB0bw0KPiA+ID4gYWNjZXNzIHN0b3JhZ2UgZGly ZWN0bHkgd2l0aCBwb2ludGVycywganVzdCBsaWtlIHVzZXJzcGFjZSBjb2RlDQo+ID4gPiBkb2Vz DQo+ID4gPiB3aXRoIHJlZ3VsYXIgbWVtb3J5LiBPbmxpbmUgZnNjayBtdXN0IG5vdCBkcml2ZSB0 aGUgc3lzdGVtIGludG8NCj4gPiA+IE9PTQ0KPiA+ID4gY29uZGl0aW9ucywgd2hpY2ggbWVhbnMg dGhhdCB4ZmlsZXMgbXVzdCBiZSByZXNwb25zaXZlIHRvIG1lbW9yeQ0KPiA+ID4gcmVjbGFtYXRp b24uIHRtcGZzIGNhbiBvbmx5IHB1c2ggYSBwYWdlY2FjaGUgZm9saW8gdG8gdGhlIHN3YXANCj4g PiA+IGNhY2hlDQo+ID4gPiBpZg0KPiA+ID4gdGhlIGZvbGlvIGlzIG5laXRoZXIgcGlubmVkIG5v ciBsb2NrZWQsIHdoaWNoIG1lYW5zIHRoZSB4ZmlsZQ0KPiA+ID4gbXVzdA0KPiA+ID4gbm90DQo+ ID4gPiBwaW4gdG9vIG1hbnkgZm9saW9zLg0KPiA+ID4gDQo+ID4gPiAiU2hvcnQgdGVybSBkaXJl Y3QgYWNjZXNzIHRvIHhmaWxlIGNvbnRlbnRzIGlzIGRvbmUgYnkgbG9ja2luZw0KPiA+ID4gdGhl DQo+ID4gPiBwYWdlY2FjaGUgZm9saW8gYW5kIG1hcHBpbmcgaXQgaW50byBrZXJuZWwgYWRkcmVz cyBzcGFjZS4NCj4gPiA+IFByb2dyYW1tYXRpYw0KPiA+ID4gYWNjZXNzIChlLmcuIHByZWFkIGFu ZCBwd3JpdGUpIHVzZXMgdGhpcyBtZWNoYW5pc20uIEZvbGlvIGxvY2tzDQo+ID4gPiBhcmUNCj4g PiA+IG5vdA0KPiA+ID4gc3VwcG9zZWQgdG8gYmUgaGVsZCBmb3IgbG9uZyBwZXJpb2RzIG9mIHRp bWUsIHNvIGxvbmcgdGVybSBkaXJlY3QNCj4gPiA+IGFjY2Vzcw0KPiA+ID4gdG8geGZpbGUgY29u dGVudHMgaXMgZG9uZSBieSBidW1waW5nIHRoZSBmb2xpbyByZWZjb3VudCwgbWFwcGluZw0KPiA+ ID4gaXQNCj4gPiA+IGludG8NCj4gPiA+IGtlcm5lbCBhZGRyZXNzIHNwYWNlLCBhbmQgZHJvcHBp bmcgdGhlIGZvbGlvIGxvY2suIFRoZXNlIGxvbmcNCj4gPiA+IHRlcm0NCj4gPiA+IHVzZXJzDQo+ ID4gPiBtdXN0IGJlIHJlc3BvbnNpdmUgdG8gbWVtb3J5IHJlY2xhaW0gYnkgaG9va2luZyBpbnRv IHRoZSBzaHJpbmtlcg0KPiA+ID4gaW5mcmFzdHJ1Y3R1cmUgdG8ga25vdyB3aGVuIHRvIHJlbGVh c2UgZm9saW9zLg0KPiA+ID4gDQo+ID4gPiAiVGhlIHhmaWxlX2dldF9wYWdlIGFuZCB4ZmlsZV9w dXRfcGFnZSBmdW5jdGlvbnMgYXJlIHByb3ZpZGVkIHRvDQo+ID4gPiByZXRyaWV2ZSB0aGUgKGxv Y2tlZCkgZm9saW8gdGhhdCBiYWNrcyBwYXJ0IG9mIGFuIHhmaWxlIGFuZCB0bw0KPiA+ID4gcmVs ZWFzZQ0KPiA+ID4gaXQuIFRoZSBvbmx5IGNvZGUgdG8gdXNlIHRoZXNlIGZvbGlvIGxlYXNlIGZ1 bmN0aW9ucyBhcmUgdGhlDQo+ID4gPiB4ZmFycmF5DQo+ID4gPiBzb3J0aW5nIGFsZ29yaXRobXMg YW5kIHRoZSBpbi1tZW1vcnkgYnRyZWVzLiINCj4gPiBBbHJpZ2h0eSwgc291bmRzIGxpa2UgYSBn b29kIHVwYXRlIHRoZW4NCj4gPiANCj4gPiA+IA0KPiA+ID4gPiA+ICtJdCB3b3VsZCBiZSAqbXVj aCogbW9yZSBjb252ZW5pZW50IGlmIGtlcm5lbCBjb2RlIGNvdWxkDQo+ID4gPiA+ID4gYWNjZXNz DQo+ID4gPiA+ID4gcGFnZWFibGUga2VybmVsDQo+ID4gPiA+ID4gK21lbW9yeSB3aXRoIHBvaW50 ZXJzLCBqdXN0IGxpa2UgdXNlcnNwYWNlIGNvZGUgZG9lcyB3aXRoDQo+ID4gPiA+ID4gcmVndWxh cg0KPiA+ID4gPiA+IG1lbW9yeS4NCj4gPiA+ID4gPiArTGlrZSBhbnkgb3RoZXIgZmlsZXN5c3Rl bSB0aGF0IHVzZXMgdGhlIHBhZ2UgY2FjaGUsIHJlYWRzDQo+ID4gPiA+ID4gYW5kDQo+ID4gPiA+ ID4gd3JpdGVzDQo+ID4gPiA+ID4gb2YgeGZpbGUNCj4gPiA+ID4gPiArZGF0YSBsb2NrIHRoZSBj YWNoZSBwYWdlIGFuZCBtYXAgaXQgaW50byB0aGUga2VybmVsIGFkZHJlc3MNCj4gPiA+ID4gPiBz cGFjZQ0KPiA+ID4gPiA+IGZvciB0aGUNCj4gPiA+ID4gPiArZHVyYXRpb24gb2YgdGhlIG9wZXJh dGlvbi4NCj4gPiA+ID4gPiArVW5mb3J0dW5hdGVseSwgc2htZnMgY2FuIG9ubHkgd3JpdGUgYSBm aWxlIHBhZ2UgdG8gdGhlIHN3YXANCj4gPiA+ID4gPiBkZXZpY2UNCj4gPiA+ID4gPiBpZiB0aGUg cGFnZQ0KPiA+ID4gPiA+ICtpcyB1bm1hcHBlZCBhbmQgdW5sb2NrZWQsIHdoaWNoIG1lYW5zIHRo ZSB4ZmlsZSByaXNrcw0KPiA+ID4gPiA+IGNhdXNpbmcNCj4gPiA+ID4gPiBPT00NCj4gPiA+ID4g PiBwcm9ibGVtcw0KPiA+ID4gPiA+ICt1bmxlc3MgaXQgaXMgY2FyZWZ1bCBub3QgdG8gcGluIHRv byBtYW55IHBhZ2VzLg0KPiA+ID4gPiA+ICtUaGVyZWZvcmUsIHRoZSB4ZmlsZSBzdGVlcnMgbW9z dCBvZiBpdHMgdXNlcnMgdG93YXJkcw0KPiA+ID4gPiA+IHByb2dyYW1tYXRpYw0KPiA+ID4gPiA+ IGFjY2VzcyBzbw0KPiA+ID4gPiA+ICt0aGF0IGJhY2tpbmcgcGFnZXMgYXJlIG5vdCBrZXB0IGxv Y2tlZCBpbiBtZW1vcnkgZm9yIGxvbmdlcg0KPiA+ID4gPiA+IHRoYW4NCj4gPiA+ID4gPiBpcw0K PiA+ID4gPiA+IG5lY2Vzc2FyeS4NCj4gPiA+ID4gPiArSG93ZXZlciwgZm9yIGNhbGxlcnMgcGVy Zm9ybWluZyBxdWljayBsaW5lYXIgc2NhbnMgb2YgeGZpbGUNCj4gPiA+ID4gPiBkYXRhLA0KPiA+ ID4gPiA+ICtgYHhmaWxlX2dldF9wYWdlYGAgYW5kIGBgeGZpbGVfcHV0X3BhZ2VgYCBmdW5jdGlv bnMgYXJlDQo+ID4gPiA+ID4gcHJvdmlkZWQNCj4gPiA+ID4gPiB0bw0KPiA+ID4gPiA+IHBpbiBh IHBhZ2UNCj4gPiA+ID4gPiAraW4gbWVtb3J5Lg0KPiA+ID4gPiA+ICtTbyBmYXIsIHRoZSBvbmx5 IGNvZGUgdG8gdXNlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgdGhlIHhmYXJyYXkNCj4gPiA+ID4gPiA6 cmVmOmBzb3J0aW5nDQo+ID4gPiA+ID4gKzx4ZmFycmF5X3NvcnQ+YCBhbGdvcml0aG1zLg0KPiA+ ID4gPiA+ICsNCj4gPiA+ID4gPiAreGZpbGUgQWNjZXNzIENvb3JkaW5hdGlvbg0KPiA+ID4gPiA+ ICtgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICtGb3Ig c2VjdXJpdHkgcmVhc29ucywgeGZpbGVzIG11c3QgYmUgb3duZWQgcHJpdmF0ZWx5IGJ5IHRoZQ0K PiA+ID4gPiA+IGtlcm5lbC4NCj4gPiA+ID4gPiArVGhleSBhcmUgbWFya2VkIGBgU19QUklWQVRF YGAgdG8gcHJldmVudCBpbnRlcmZlcmVuY2UgZnJvbQ0KPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ IHNlY3VyaXR5IHN5c3RlbSwNCj4gPiA+ID4gPiArbXVzdCBuZXZlciBiZSBtYXBwZWQgaW50byBw cm9jZXNzIGZpbGUgZGVzY3JpcHRvciB0YWJsZXMsDQo+ID4gPiA+ID4gYW5kDQo+ID4gPiA+ID4g dGhlaXINCj4gPiA+ID4gPiBwYWdlcyBtdXN0DQo+ID4gPiA+ID4gK25ldmVyIGJlIG1hcHBlZCBp bnRvIHVzZXJzcGFjZSBwcm9jZXNzZXMuDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICtUbyBhdm9p ZCBsb2NraW5nIHJlY3Vyc2lvbiBpc3N1ZXMgd2l0aCB0aGUgVkZTLCBhbGwgYWNjZXNzZXMNCj4g PiA+ID4gPiB0bw0KPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+IHNobWZzIGZpbGUNCj4gPiA+ID4g PiArYXJlIHBlcmZvcm1lZCBieSBtYW5pcHVsYXRpbmcgdGhlIHBhZ2UgY2FjaGUgZGlyZWN0bHku DQo+ID4gPiA+ID4gK3hmaWxlIHdyaXRlcyBjYWxsIHRoZSBgYC0+d3JpdGVfYmVnaW5gYCBhbmQg YGAtPndyaXRlX2VuZGBgDQo+ID4gPiA+ID4gZnVuY3Rpb25zIG9mIHRoZQ0KPiA+ID4gPiA+ICt4 ZmlsZSdzIGFkZHJlc3Mgc3BhY2UgdG8gZ3JhYiB3cml0YWJsZSBwYWdlcywgY29weSB0aGUNCj4g PiA+ID4gPiBjYWxsZXIncw0KPiA+ID4gPiA+IGJ1ZmZlciBpbnRvIHRoZQ0KPiA+ID4gPiA+ICtw YWdlLCBhbmQgcmVsZWFzZSB0aGUgcGFnZXMuDQo+ID4gPiA+ID4gK3hmaWxlIHJlYWRzIGNhbGwg YGBzaG1lbV9yZWFkX21hcHBpbmdfcGFnZV9nZnBgYCB0byBncmFiDQo+ID4gPiA+ID4gcGFnZXMN Cj4gPiA+ID4geGZpbGUgcmVhZGVycw0KPiA+ID4gDQo+ID4gPiBPSy4NCj4gPiA+IA0KPiA+ID4g PiA+IGRpcmVjdGx5IGJlZm9yZQ0KPiA+ID4gPiA+ICtjb3B5aW5nIHRoZSBjb250ZW50cyBpbnRv IHRoZSBjYWxsZXIncyBidWZmZXIuDQo+ID4gPiA+ID4gK0luIG90aGVyIHdvcmRzLCB4ZmlsZXMg aWdub3JlIHRoZSBWRlMgcmVhZCBhbmQgd3JpdGUgY29kZQ0KPiA+ID4gPiA+IHBhdGhzDQo+ID4g PiA+ID4gdG8NCj4gPiA+ID4gPiBhdm9pZA0KPiA+ID4gPiA+ICtoYXZpbmcgdG8gY3JlYXRlIGEg ZHVtbXkgYGBzdHJ1Y3Qga2lvY2JgYCBhbmQgdG8gYXZvaWQNCj4gPiA+ID4gPiB0YWtpbmcNCj4g PiA+ID4gPiBpbm9kZQ0KPiA+ID4gPiA+IGFuZA0KPiA+ID4gPiA+ICtmcmVlemUgbG9ja3MuDQo+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICtJZiBhbiB4ZmlsZSBpcyBzaGFyZWQgYmV0d2VlbiB0aHJl YWRzIHRvIHN0YWdlIHJlcGFpcnMsIHRoZQ0KPiA+ID4gPiA+IGNhbGxlcg0KPiA+ID4gPiA+IG11 c3QgcHJvdmlkZQ0KPiA+ID4gPiA+ICtpdHMgb3duIGxvY2tzIHRvIGNvb3JkaW5hdGUgYWNjZXNz Lg0KPiA+ID4gPiBPZnNjayB0aHJlYWRzIHRoYXQgc2hhcmUgYW4geGZpbGUgYmV0d2VlbiBzdGFn ZSByZXBhaXJzIHdpbGwNCj4gPiA+ID4gdXNlDQo+ID4gPiA+IHRoZWlyDQo+ID4gPiA+IG93biBs b2NrcyB0byBjb29yZGluYXRlIGFjY2VzcyB3aXRoIGVhY2ggb3RoZXIuDQo+ID4gPiA+IA0KPiA+ ID4gPiA/DQo+ID4gPiANCj4gPiA+IEhtLsKgIEkgd29uZGVyIGlmIHRoZXJlJ3MgYSBtaXN1bmRl cnN0YW5kaW5nIGhlcmU/DQo+ID4gPiANCj4gPiA+IE9ubGluZSBmc2NrIGZ1bmN0aW9ucyB0aGVt c2VsdmVzIGFyZSBzaW5nbGUtdGhyZWFkZWQsIHdoaWNoIGlzIHRvDQo+ID4gPiBzYXkNCj4gPiA+ IHRoYXQgdGhleSB0aGVtc2VsdmVzIG5laXRoZXIgcXVldWUgd29ya2VycyBub3Igc3RhcnQga3Ro cmVhZHMuwqANCj4gPiA+IEhvd2V2ZXIsDQo+ID4gPiBhbiB4ZmlsZSBjcmVhdGVkIGJ5IGEgcnVu bmluZyBmc2NrIGZ1bmN0aW9uIGNhbiBiZSBhY2Nlc3NlZCBmcm9tDQo+ID4gPiBvdGhlcg0KPiA+ ID4gdGhyZWFkIGlmIHRoZSBmc2NrIGZ1bmN0aW9uIGFsc28gaG9va3MgaXRzZWxmIGludG8gZmls ZXN5c3RlbQ0KPiA+ID4gY29kZS4NCj4gPiA+IA0KPiA+ID4gVGhlIGxpdmUgdXBkYXRlIHNlY3Rp b24gaGFzIGEgbmljZSBkaWFncmFtIG9mIGhvdyB0aGF0IHdvcmtzOg0KPiA+ID4gaHR0cHM6Ly9k andvbmcub3JnL2RvY3MveGZzLW9ubGluZS1mc2NrLWRlc2lnbi8jZmlsZXN5c3RlbS1ob29rcw0K PiA+ID4gDQo+ID4gDQo+ID4gT2ggb2ssIEkgdGhpbmsgSSBnb3QgaHVuZyB1cCBvbiB3aG8gdGhl IGNhbGxlcnMgd2VyZS7CoCBIb3cgYWJvdXQNCj4gPiAieGZpbGVzIHNoYXJlZCBiZXR3ZWVuIHRo cmVhZHMgcnVubmluZyBmcm9tIGhvb2tlZCBmaWxlc3lzdGVtDQo+ID4gZnVuY3Rpb25zDQo+ID4g d2lsbCB1c2UgdGhlaXIgb3duIGxvY2tzIHRvIGNvb3JkaW5hdGUgYWNjZXNzIHdpdGggZWFjaCBv dGhlci4iDQo+IA0KPiBJIGRvbid0IHdhbnQgdG8gbWVudGlvbiBmaWxlc3lzdGVtIGhvb2tzIGJl Zm9yZSB0aGUgY2hhcHRlciB0aGF0DQo+IGludHJvZHVjZXMgdGhlbS7CoCBIb3cgYWJvdXQ6DQo+ IA0KPiAiRm9yIGV4YW1wbGUsIGlmIGEgc2NydWIgZnVuY3Rpb24gc3RvcmVzIHNjYW4gcmVzdWx0 cyBpbiBhbiB4ZmlsZSBhbmQNCj4gbmVlZHMgb3RoZXIgdGhyZWFkcyB0byBwcm92aWRlIHVwZGF0 ZXMgdG8gdGhlIHNjYW5uZWQgZGF0YSwgdGhlIHNjcnViDQo+IGZ1bmN0aW9uIG11c3QgcHJvdmlk ZSBhIGxvY2sgZm9yIGFsbCB0aHJlYWRzIHRvIHNoYXJlLiINCk9oLCBJIGRpZG50IHNlZSB0aGlz IHJlc3BvbnNlLi4uLg0KDQpPaywgaSB0aGluayB0aGF0IHNvdW5kcyBmaW5lLiAgQWx0ZXJuYXRl bHkgSSB0aGluayBpZiBwYXRjaCAxMCB3ZXJlIHRvDQptb3ZlIHVwLCB0aGVuIGl0IHdvdWxkIGhh dmUgc291bmRlZCBmaW5lIHNpbmNlIHdlIGludHJvZHVjZSBob29rcw0KdGhlcmUsIGJ1dCBJIHRo aW5rIGVpdGhlciB3YXkgd29ya3MNCg0KQWxsaXNvbg0KPiANCj4gLS1EDQoNCg==