From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web12.2786.1589911356369840612 for ; Tue, 19 May 2020 11:02:36 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=L95yGQw2; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: nathaniel.l.desimone@intel.com) IronPort-SDR: ke5Co+GYRcEAFmUbTzcCmcaN4oSqTPXqRLVT5MzH4/O4uFIi9ziHUULpaA31zyEnn9qzw3A1/B yW4zy3pQJPyQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2020 11:02:35 -0700 IronPort-SDR: oycwhY8gP2kmTNYUyZhxjCjIFVjfbgausfD6z77wvteYhqYSLyoQKTd+qI0jGOBNsQztvPM24A dZFr8GsyYOUA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,410,1583222400"; d="scan'208";a="267972631" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga006.jf.intel.com with ESMTP; 19 May 2020 11:02:35 -0700 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 19 May 2020 11:02:35 -0700 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 19 May 2020 11:02:34 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 19 May 2020 11:02:34 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.169) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 19 May 2020 11:02:30 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YfivfHMkQYdRpKZmb51JsUfyJ2mjCJZpl3mNuNEJEygF0vGtumJzVW5dcOOI1NMWUggo/l19D/OwU78I+EP5X0x9RcHdC3f6op+SjM4hVKcwHv2LE8R90oC37AUan3yutcFkdNqVfE/7NvC/U4bKdUgBVlDbH94ZLWs7g1aOqozWcLXyFFVrW6XOEksqv6v1DACVQmwO+GE/IxNWucaGxMZzYhzpQZW51CxNj7+0lplfstA2a4R/hmFF6mKgCwLt/QrxuDRTz323eBY81Uq3Zt3IQ3C6w0ClBx5BlycDTnJGcbNljdhnKfFIqPBOhkV8XDRV9TmzANKGpv+7tUPnhA== 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-SenderADCheck; bh=Pj1JktmG+WCp3rKKTPn90Isu/tTvUqxSbcWplDouiqk=; b=OtS62U4GHPmLsDLpXV8phwxhAHPDSLKuPMDUI3qaEOFc+oIWsKPiZs3QxhJRruoifjp2fXiMgDz6w7C7/Q4IS/5hA3h7RgifAG+2xtFNKuCUkioMDZDQClVTDidukYkHQv7qNkiLoqNjlmJpAyl/hhgAgCGFo2RcOy4aTFMSPsm4djiNphScegg65Mt0v+g4CU0r2XXLRCS5k7fHKCmzJa6uX2Pw+bnsyWCt+tD+r9Q98OdYk0Wi8tnJWoZwef4yLcOOMlbHPKAPinDiClE9+cvFIUqht31W9izTba302hofx3vDGl1Rv36yA4M5vtaFd5gNJuMHbyXWJWYcig8FDQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Pj1JktmG+WCp3rKKTPn90Isu/tTvUqxSbcWplDouiqk=; b=L95yGQw2uzRMBvL8VtdX/NaozHXCWsOXWQlu+jSWr7GKNljrGo/BmdYgO7dT1dzTwPNo3avh4IjFgBa5aM4WotJtfI1jVxJWm9Q3CiIqJJ/Wdn5/yplqlVlZcUjl7vyH/byyx+7L50DgrMvtgANbjGBgqkSxJs3K6lJzY2pJZyc= Received: from BL0PR11MB3489.namprd11.prod.outlook.com (2603:10b6:208:75::29) by BL0PR11MB3393.namprd11.prod.outlook.com (2603:10b6:208:62::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.31; Tue, 19 May 2020 18:02:25 +0000 Received: from BL0PR11MB3489.namprd11.prod.outlook.com ([fe80::d0f8:bfd7:bae2:3e42]) by BL0PR11MB3489.namprd11.prod.outlook.com ([fe80::d0f8:bfd7:bae2:3e42%7]) with mapi id 15.20.3000.034; Tue, 19 May 2020 18:02:25 +0000 From: "Nate DeSimone" To: "devel@edk2.groups.io" , "spbrogan@outlook.com" , "rfc@edk2.groups.io" , "lersek@redhat.com" , "bret.barkelew@microsoft.com" , "Kinney, Michael D" Subject: Re: [edk2-devel] [edk2-rfc] GitHub Pull Request based Code Review Process Thread-Topic: [edk2-devel] [edk2-rfc] GitHub Pull Request based Code Review Process Thread-Index: AdYtq0vCPqbiMowAQbSbICPKq6X1VgAUtBSAAAF1CAA= Date: Tue, 19 May 2020 18:02:25 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMGE0OGI3NjItZGU0Yi00YWIwLWE4YzQtMTE2MjkyMTg5OGMyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiNk1MdWNLRnVNVnVyRklvK2Fwc3dHdEJEc29JY1RwRnZOaTZOSE45eGZzc2JMcktFWm1LQ20rb29UZUZ2N3FRVyJ9 dlp-reaction: no-action dlp-version: 11.2.0.6 dlp-product: dlpe-windows x-ctpclassification: CTP_NT authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [50.53.190.176] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 02cc908f-92f7-4b7d-517d-08d7fc1ec9a4 x-ms-traffictypediagnostic: BL0PR11MB3393: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4502; x-forefront-prvs: 040866B734 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pRxkIW6vlBkCAHgAu4eE6LcjXK0oPeBAPcL3oL9r/C6C2vY4EtDMNduJ/VFQuZT9qae9tCtgXBoc/6NJCtB80oLFut5p2h41TaGDDcHK3hPRyu04+ctlisKEuREK62XTVgpZO4zPWV5kqXjDy1utUoEqeojZOkCLLWOfq9hUDg+WEO/0Pz2RUqwXokVTMRp1womLraPOe5jlyDvLEPK+lvOBP/1XJhpASZvesuNcCfk96jOrfnYocl+1atdsn0HtUDgRUNIT2ngrQKTpgPRDV3O3rijbtQjr5vYougRoQs+x4koGyHWpRbIWYeB5eLMKjZZsPktkPOoMn6pt6m22njhwIOJRwPTPZRHQdsy0Z6I+xpy8Z25j6k8P0SEoO23whpOhyRBfNUXeOTFu9am4jrQeFZ7VFMnlsng2YNwIRCnUlbRkcqxWv9lNaYelSP5pfyxXHfd3ASuLhSsbNa0hAbO6aH8rNnIafCCXYNe9fB+Tl81+2AJANiFwHPrXZZCXj93lIpj2MjQ8ZAEdt/3V/g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR11MB3489.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(396003)(366004)(136003)(376002)(346002)(39860400002)(52536014)(30864003)(71200400001)(5660300002)(6506007)(53546011)(478600001)(110136005)(86362001)(186003)(316002)(33656002)(7696005)(26005)(2906002)(8936002)(966005)(76116006)(9686003)(45080400002)(66946007)(66446008)(66556008)(66476007)(64756008)(8676002)(6636002)(55016002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: uiEizQFu7alEjPcDWXeTAfJezyqZDaiUwCa2L9Dw076oUvl4eLKFrXUV8IztT9oc3rOi7EdeyAy26SNKI6fBPotX77xjwZyQ7k+MHpMuFuA/vnRJWItJcx/624l8E+leq34ak5LXx2ikzNa+1KxXSTBjvSv2ysovZS4iSVAICZmDp848juHSqPsDKYiFHLWT677qwvmLFg7fElm7qUmWR57rzwo33Xl/T6EEf7eUCFud8c4//393oXAVzDFHYfh3qGASwPJoEH6Q1OQrlMBQcNcJFcQijJWVqGWDcGypdNiN0uQoDb6f73fSGdmFbamdew63X1LTpefXdr0jPCplHa/ItftOBYKTtFS2lfKBNlPrcYn2YEick8F2GDarfbL3n6P+yJaQRQIkFcr/9YDH8UWGA2/tsKhINdp4H+pl0y5wec1F6cRilIs3ZBl/lmZ93zKnup3L9akw4qOfp20qxUmVyBRcrOlatizcawtwdV2ytdYWQi/xMkl5p181gX/c MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 02cc908f-92f7-4b7d-517d-08d7fc1ec9a4 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 May 2020 18:02:25.6063 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: d9cI9C99Tp+HVM1GINumL/Ctgqkw6315vT1Iu5Hf9sqZGONhansLAm5IsoEJf2XuXcx9TjyayiQWs6Oy88rr7Po9xLFr+B/67WmhLHMBpLo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR11MB3393 Return-Path: nathaniel.l.desimone@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgU2VhbiwNCg0KTXkgcmVjZW50IHNwZWxsaW5nIGZpeCBwYXRjaCBzZXJpZXMgaXMgYSBnb29k IGV4YW1wbGUgb2Ygd2h5IHRoaXMgaXMgYSBiYWQgaWRlYSBhY3R1YWxseToNCg0KaHR0cHM6Ly9l ZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvNTk3NzkNCmh0dHBzOi8vZWRrMi5ncm91cHMu aW8vZy9kZXZlbC9tZXNzYWdlLzU5NzgwDQpodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwv bWVzc2FnZS81OTc4MQ0KaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvNTk3 ODINCmh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzU5NzgzDQpodHRwczov L2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS81OTc4NA0KaHR0cHM6Ly9lZGsyLmdyb3Vw cy5pby9nL2RldmVsL21lc3NhZ2UvNTk3ODUNCg0KTm90aWNlIHRoYXQgSSBzcGxpdCBhbG9uZyBw YWNrYWdlIGJvdW5kYXJpZXMsIGJlY2F1c2UgdGhlIG1haW50YWluZXJzIGZvciBlYWNoIHBhY2th Z2UgaXMgYSBkaWZmZXJlbnQgc2V0IG9mIHBlb3BsZS4gSWYgbXkgcGF0Y2ggc2VyaWVzIHdhcyBz cXVhc2hlZCBhdCBtZXJnZSB0aW1lLi4uIGhvdyBkbyBJIGtub3cgd2hvIHJldmlld2VkIHdoYXQ/ IElmIHRoZSBjb21taXQgc2V0IGlzIG5vdCBjb3JyZWN0Li4gSSB0ZW5kIHRvIHNheSBzbyBpbiBt eSBmZWVkYmFjayA6KS4gVGhlIG9ubHkgc2FuZSB3YXkgdG8gc3F1YXNoIHRoaXMgc2VyaWVzIHdv dWxkIGJlIHRvIGhhdmUgYSBodW1hbiByZS13cml0ZSBhbGwgdGhlIGNvbW1pdCBtZXNzYWdlcywg d2hpY2ggSSBhbSBhZ2FpbnN0Lg0KDQpHZW5lcmFsbHkgdGhvc2UgdGhhdCBwcmVmZXIgYW4gZWFz aWx5IGJpc2VjdGFibGUgaGlzdG9yeSBoYXZlIHN1Y2ggcHJlZmVyZW5jZSBtb3N0bHkgZHVlIHRv IHRoZSB1c2FnZSBvZiB2YWxpZGF0b3JzIHRoYXQgaW1tZWRpYXRlbHkgcmVzb3J0IGJpc2VjdGlu ZyBhcyBhIG1ldGhvZCB0byByb290IGNhdXNlIGFuIGlzc3VlIHNpbmNlIHRoZXkgdGVuZCB0byBu b3QgdW5kZXJzdGFuZCB0aGUgY29kZSB2ZXJ5IHdlbGwuIEVkazIgYWxyZWFkeSBoYXMgMTIgeWVh cnMgb2Ygbm9uLWJpc2VjdGFibGUgaGlzdG9yeSwgc28gdGhpcyBtZXRob2QgaXMgZ29pbmcgdG8g YmUgaW5lZmZlY3RpdmUgYW55d2F5Lg0KDQpXaXRoIHJlZ2FyZCB0byBzZW5kaW5nIHNxdWFzaGVk IGNvbW1pdHMsIEkgdW5kZXJzdGFuZCB0aGF0IHRob3NlIHdobyBhcmUgbmV3IG1heSBoYXZlIGRp ZmZpY3VsdHkgc2VuZGluZyBhIHByb3Blcmx5IGZvcm1hdHRlZCBwYXRjaCBzZXJpZXMsIGJ1dCBm cmFua2x5IGF0dGVtcHRpbmcgdG8gc2hpZWxkIHRoZW0gZnJvbSBoYXZpbmcgdG8gbGVhcm4gSSBh bSBzdHJvbmdseSBhZ2FpbnN0LiBJIHN1Z2dlc3QgdGhhdCBNaWNyb3NvZnQgaW52ZXN0IGluIGl0 cyBodW1hbiBjYXBpdGFsIHNpbWlsYXIgdG8gaG93IEludGVsIGRvZXMuIElmIHlvdSBjYW5ub3Qg ZmlndXJlIG91dCBob3cgdG8gc2VuZCBhIHByb3Blcmx5IGZvcm1hdHRlZCBwYXRjaCBzZXJpZXMu Li4gdGhlbiBkbyB5b3VyIHdvcmsgb24gdGhlIGludGVybmFsIGNvZGViYXNlIChvciBwZXJoYXBz IE1VLikgV2l0aGluIHRoZSBJbnRlbCwgaGF2aW5nIHRoZSBza2lsbHNldCB0byBjb250cmlidXRl IHRvIFRpYW5vQ29yZSBpcyBjb25zaWRlcmVkIGEgbWFyayBvZiBwcmVzdGlnZSwgYW5kIHRodXMg bmVlZHMgdG8gYmUgZWFybmVkLg0KDQpUTERSLCBJIHdpbGwgcmVqZWN0IHNxdWFzaGVkIGNvbW1p dHMgb24gYW55IHBhY2thZ2VzIHRoYXQgSSBtYWludGFpbi4NCg0KVGhhbmtzLA0KTmF0ZQ0KDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlv IDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIFNlYW4NCj4gU2VudDogVHVlc2Rh eSwgTWF5IDE5LCAyMDIwIDk6NTQgQU0NCj4gVG86IHJmY0BlZGsyLmdyb3Vwcy5pbzsgRGVzaW1v bmUsIE5hdGhhbmllbCBMDQo+IDxuYXRoYW5pZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+OyBsZXJz ZWtAcmVkaGF0LmNvbTsNCj4gYnJldC5iYXJrZWxld0BtaWNyb3NvZnQuY29tOyBkZXZlbEBlZGsy Lmdyb3Vwcy5pbzsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtlZGsyLXJmY10gR2l0SHViIFB1bGwg UmVxdWVzdCBiYXNlZCBDb2RlIFJldmlldw0KPiBQcm9jZXNzDQo+IA0KPiBOYXRlL0xhc3psbywN Cj4gDQo+IFJlZ2FyZGluZyBhIHNxdWFzaCBtZXJnZSB3b3JrZmxvdy4gIEkgYWdyZWUgaXQgY2Fu IGJlIGFidXNlZCBhbmQgd2UgYWxsDQo+IGhhdmUgc2VlbiB0ZXJyaWJsZSBleGFtcGxlcy4gIEJ1 dCBhIHBhdGNoIHNlcmllcyB0aGF0IGNvbnRhaW5zIDUwMCsgZmlsZQ0KPiBjaGFuZ2VzIGlzbid0 IHJlYWxseSBtdWNoIGJldHRlci4gIEp1c3QgYmVjYXVzZSBpdCBpcyBicm9rZW4gaW50byBtdWx0 aXBsZQ0KPiBjb21taXRzIGRvZXNuJ3QgbWVhbiBpdCBpcyB0aGUgcmlnaHQgc2V0IG9mIGNvbW1p dHMuDQo+IA0KPiBBbnl3YXkgYSBzcXVhc2ggbWVyZ2Ugd29ya2Zsb3cgd29ya3MgYW1hemluZ2x5 IHdlbGwgd2l0aCBhbmQgaXMNCj4gb3B0aW1pemVkIGZvciBhIHdlYiBiYXNlZCByZXZpZXcgYW5k IFBSIHByb2Nlc3Nlcy4gIEl0IGFsbG93cyBhIHVzZXIgdG8NCj4gcmVzcG9uZCB0byBjaGFuZ2Vz LCBmaXggaXNzdWVzLCBsZWFybiB0aHJ1IHRoZSBQUiBwcm9jZXNzLCBhbGwgd2hpbGUga2VlcGlu Zw0KPiBjb21wbGV0ZSB0cmFjayBvZiB0aGUgcHJvZ3Jlc3Npb24uICBUaGVuIG9uY2UgYWxsICJz dGF0dXMiDQo+IGNoZWNrcyBhbmQgcmV2aWV3cyBhcmUgY29tcGxldGUsIGl0IGlzIHNxdWFzaGVk IGludG8gYSBuZWF0IGNvbW1pdCBmb3INCj4gbWFpbmxpbmUsIGNvbnRhaW5pbmcgb25seSB0aGUg cmVsZXZhbnQgZGF0YSBpbiB0aGUgbWVzc2FnZS4NCj4gDQo+IFNvLCB0aGUgYXNrIGlzIHRoYXQg d2UgZG9uJ3QgZXhjbHVkZSBzcXVhc2ggbWVyZ2Ugd29ya2Zsb3dzLiAgVGhvc2UNCj4gcmV2aWV3 aW5nIHRoZSBQUiBjYW4gZGVjaWRlIHdoYXQgaXMgYXBwcm9wcmlhdGUgZm9yIHRoZSBQUiBjb250 ZW50DQo+IHN1Ym1pdHRlZC4gIEp1c3QgYXMgeW91IHdvdWxkIHJlcXVlc3QgY2hhbmdlcyB0byB0 aGUgY29udGVudHMgKG9yDQo+IG9yZGVyaW5nKSBvZiBhIGNvbW1pdCBpbiBhIHNlcmllcywgaWYg dGhlIHJldmlld2VycyBkb24ndCBhZ3JlZSB0aGF0IHRoZSBQUg0KPiBjb250ZW50cyBzaG91bGQg YmUgaW4gYSBzaW5nbGUgY29tbWl0IHRoZW4gb2J2aW91c2x5IGl0IHNob3VsZG4ndCBiZQ0KPiBz cXVhc2hlZCB0byBvbmUuDQo+IA0KPiBDb250cmlidXRpb25zIGxpa2Ugc3BlbGxpbmcgZml4ZXMs IHR5cG9zLCBtaW5vciBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24NCj4gYWRkaXRpb25zL2ZpeGVz LCBldGMgYWxsIGFyZSBncmVhdCBleGFtcGxlcyBvZiBQUnMgdGhhdCBjYW4gZWFzaWx5IGxldmVy YWdlDQo+IHNxdWFzaCBtZXJnZXMgYW5kIHRoaXMgd29ya2Zsb3cgc2lnbmlmaWNhbnRseSBsb3dl cnMgdGhlIGJ1cmRlbiBvZiB0aGUNCj4gY29udHJpYnV0aW9uIGFuZCByZXZpZXcgcHJvY2Vzcy4g IFRoaXMgd29ya2Zsb3cgaXMgYWxzbyBhcmUgbXVjaCBlYXNpZXIgZm9yDQo+IGNhc3VhbCBvciBm aXJzdCB0aW1lIGNvbnRyaWJ1dG9ycy4NCj4gDQo+IEkgZG9uJ3QgZXhhY3RseSBrbm93IGhvdyB3 ZSB3b3VsZCBlbmFibGUgdGhpcyBidXQgSSBhc3N1bWUgd2UgY291bGQNCj4gbGV2ZXJhZ2UgdGFn cyBvciBtYWtlIGl0IGNsZWFyIGluIHRoZSBQUiBkZXNjcmlwdGlvbi4gIEZpcnN0IHN0ZXAgaXMg dG8gZ2V0DQo+IGFsaWdubWVudCB0aGF0IGEgc3F1YXNoIG1lcmdlIHdvcmtmbG93LCB3aGlsZSBu b3QgYXBwcm9wcmlhdGUgZm9yIGFsbA0KPiBjb250cmlidXRpb25zLCBpcyBub3Qgc29tZXRoaW5n IHRvIGJlIGV4Y2x1ZGVkLg0KPiANCj4gVGhhbmtzDQo+IFNlYW4NCj4gDQo+IA0KPiANCj4gT24g NS8xOS8yMDIwIDEyOjIxIEFNLCBOYXRlIERlU2ltb25lIHdyb3RlOg0KPiA+IEhpIEFsbCwNCj4g Pg0KPiA+DQo+ID4NCj4gPiBJIHRlbmQgdG8gYWdyZWUgd2l0aCBtb3N0IG9mIExhc3psbydzIHBv aW50cy4gU3BlY2lmaWNhbGx5LCB0aGF0IG1vdmluZyB0byBwdWxsDQo+IHJlcXVlc3RzIHdpbGwg bm90IGZpeCB0aGUgZmFjdCB0aGF0IG1haW50YWluZXJzIGFyZSB1c3VhbGx5IGJ1c3kgcGVvcGxl IGFuZA0KPiBkb24ndCBhbHdheXMgZ2l2ZSBmZWVkYmFjayBpbiBhIHB1bmN0dWFsIG1hbm5lci4g TGlrZSBMYXN6bG8sIEkgd291bGQgYWxzbw0KPiBwcmVmZXIgdGhhdCB3ZSBkbyBub3Qgc3F1YXNo IHBhdGNoIHNlcmllcy4gTXkgYmlnZ2VzdCByZWFzb24gZm9yIG5vdA0KPiBzcXVhc2hpbmcgcGF0 Y2ggc2VyaWVzIGlzIGJlY2F1c2Ugd2hlbiB5b3UgcHV0IGV2ZXJ5dGhpbmcgaW50byBhIHNpbmds ZQ0KPiBjb21taXQsIEkgaGF2ZSBoYWQgdG8gcmV2aWV3IGNvbW1pdHMgd2l0aCA1MDArIGZpbGVz IGNoYW5nZWQuIE9wZW5pbmcgZ2l0DQo+IGRpZmZ0b29sIG9uIGEgY29tbWl0IGxpa2UgdGhhdCBp cyBhd2Z1bC4NCj4gPg0KPiA+DQo+ID4NCj4gPiBIb3dldmVyLCBJIHdvdWxkIGxpa2UgdG8gcmVn aXN0ZXIgbXkgZ2VuZXJhbCBlbmRvcnNlbWVudCBmb3IgcHVsbCByZXF1ZXN0cw0KPiBvciBzb21l IG90aGVyIHdlYiBiYXNlZCBzeXN0ZW0gb2YgY29kZSByZXZpZXfigKYgYW5kIEkgZG9u4oCZdCBo YXZlIGFuDQo+IEluc3RhZ3JhbSBhY2NvdW50IGJ5IHRoZSB3YXkgOikgUGVyc29uYWxseSwgSSBw cmVmZXIgR2Vycml0IGFzIEkgdXNlIGl0IGEgbG90IHdpdGgNCj4gY29yZWJvb3QgYW5kIG90aGVy IHByb2plY3RzLiBCdXQgc2luY2Ugd2UgYXJlIHVzaW5nIEdpdGh1YiBmb3IgaG9zdGluZywgcHVs bA0KPiByZXF1ZXN0cyBhcmUgYW4gZWFzeSBzd2l0Y2ggYW5kIGEgbG9naWNhbCBjaG9pY2UuIE15 IG1haW4gcmVhc29uIGZvciBiZWluZw0KPiBleGNpdGVkIGFib3V0IHB1bGwgcmVxdWVzdHMgbW9z dGx5IGhhcyB0byBkbyB3aXRoIHRoZSBhbW91bnQgb2YgbWFudWFsDQo+IGVmZm9ydCByZXF1aXJl ZCB0byBiZSBhIFRpYW5vQ29yZSBtYWludGFpbmVyIHJpZ2h0IG5vdy4gSSBoYXZlIHNldCB1cCBt eQ0KPiBlbWFpbCBmaWx0ZXIgc28gdGhhdCB0aGUgbWFpbGluZyBsaXN0IGlzIGNhdGVnb3JpemVk IGxpa2Ugc286DQo+ID4NCj4gPg0KPiA+DQo+ID4gW2NpZDppbWFnZTAwMS5wbmdAMDFENjJENzEu NTAyQjU1RTBdDQo+ID4NCj4gPg0KPiA+DQo+ID4gSW1wbGVtZW50aW5nIHRoZSBsb2dpYyB0byBw YXJzZSB0aGUgY29udGVudHMgb2YgZW1haWxzIHRvIGNhdGVnb3JpemUgdGhlbQ0KPiBsaWtlIHRo aXMgcmVxdWlyZWQgbWUgdG8gZGVmaW5lIG5vIGxlc3MgdGhhbiAxMiBlbWFpbCBmaWx0ZXIgcnVs ZXMgaW4gTWljcm9zb2Z0DQo+IE91dGxvb2ssIGFuZCBJIGhhdmUgdG8gY2hhbmdlIG15IGZpbHRl cmluZyBsb2dpYyBldmVyeSB0aW1lIEkgYW0NCj4gYWRkZWQvcmVtb3ZlZCBmcm9tIGEgTWFpbnRh aW5lcnMudHh0IGZpbGUuIEnigJltIHN1cmUgZXZlcnkgb3RoZXIgbWFpbnRhaW5lcg0KPiBoYXMg c3BlbnQgYSB0aW1lIHNlcGFyYXRlbHkgaW1wbGVtZW50aW5nIGZpbHRlcmluZyBsb2dpYyBsaWtl IEkgaGF2ZS4gVGhpcyBoZWxwcywNCj4gYnV0IHN0aWxsIGZvciBldmVyeSB0aHJlYWQsIEkgaGF2 ZSB0byBnbyBhbmQgY2hlY2sgaWYgb25lIG9mIHRoZSBvdGhlcg0KPiBtYWludGFpbmVycyBoYXMg YWxyZWFkeSByZXZpZXdlZC9wdXNoZWQgdGhhdCBwYXRjaCBzZXJpZXMgeWV0LCBhbmQgaWYgbm90 DQo+IHJldmlldy9wdXNoIGl0LiBJZiBJIGhhdmUgXSBmZWVkYmFjayBvbiBhIHBhdGNoIHNlcmll cywgSSBoYXZlIHRvIGNhdGVnb3JpemUgaXQNCj4gYXMgYXdhaXRpbmcgcmVzcG9uc2UgZnJvbSBh dXRob3IgYW5kIGNoZWNrIHVwIG9uIGl0IGZyb20gdGltZSB0byB0aW1lLA0KPiBzb21ldGltZXMg SSBwaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIHJlbWluZCB0aGVtIHRvIHNlbmQgYSBuZXcg cGF0Y2gNCj4gc2VyaWVzLiBJbXBsZW1lbnRpbmcgdGhpcyBzdGF0ZSBtYWNoaW5lIGlzIGEgbG90 IG9mIG1hbnVhbCB3b3JrIGFuZCBpdCBraW5kIG9mDQo+IGZlZWxzIGxpa2UgSeKAmW0gYSB0ZWxl cGhvbmUgb3BlcmF0b3IgaW4gdGhlIDE5NTBzLiBJIGdyZWF0bHkgd2VsY29tZQ0KPiBhdXRvbWF0 aW9uIGhlcmUgYXMgSSBhbSBzdXJlIGl0IHdpbGwgaW5jcmVhc2UgdGhlIG51bWJlciBvZiBwYXRj aCBzZXJpZXMgSSBhbQ0KPiBhYmxlIHRvIHJldmlldyBwZXIgaG91ci4NCj4gPg0KPiA+DQo+ID4N Cj4gPiBUaGFua3MsDQo+ID4NCj4gPiBOYXRlDQo+ID4NCj4gPg0KPiA+DQo+ID4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiByZmNAZWRrMi5ncm91cHMuaW8gPHJmY0BlZGsy Lmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIExhc3psbw0KPiA+IEVyc2VrDQo+ID4gU2VudDogRnJp ZGF5LCBNYXkgMTUsIDIwMjAgMjowOCBBTQ0KPiA+IFRvOiByZmNAZWRrMi5ncm91cHMuaW87IGJy ZXQuYmFya2VsZXdAbWljcm9zb2Z0LmNvbTsNCj4gPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgS2lu bmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6 IFJlOiBbRVhURVJOQUxdIFJlOiBbZWRrMi1kZXZlbF0gW2VkazItcmZjXSBHaXRIdWIgUHVsbA0K PiA+IFJlcXVlc3QgYmFzZWQgQ29kZSBSZXZpZXcgUHJvY2Vzcw0KPiA+DQo+ID4NCj4gPg0KPiA+ IE9uIDA1LzE1LzIwIDA2OjQ5LCBCcmV0IEJhcmtlbGV3IHZpYSBncm91cHMuaW8gd3JvdGU6DQo+ ID4NCj4gPg0KPiA+DQo+ID4+IEkgd291bGQgZmFyIHByZWZlciB0aGUgYXBwcm9hY2ggb2YgaW5k aXZpZHVhbCBQUnMgZm9yIGNvbW1pdHMgdG8NCj4gPj4gYWxsb3cNCj4gPg0KPiA+PiBmb3IgdGhl IHNxdWFzaCBmbGV4aWJpbGl0eSAoYW5kIGlzIHRoZSBzdHJhdGVneSBJIHRoaW5rIEkgd291bGQN Cj4gPj4gcHVyc3VlDQo+ID4NCj4gPj4gd2l0aCBteSBQUnMpLiBGb3IgZXhhbXBsZSwgdGhlIFZh clBvbCBQUiB3b3VsZCBiZSBicm9rZW4gdXAgaW50byA5DQo+ID4+IFBScw0KPiA+DQo+ID4+IGZv ciBlYWNoIGZpbmFsIGNvbW1pdCwgYW5kIHdlIGNhbiBnZXQgdGhlbSBpbiBvbmUgYnkgb25lLg0K PiA+DQo+ID4+IElkZWFsbHksIGVhY2ggb25lIHdvdWxkIGJlIGEgc21hbGwgYmFjayBhbmQgZm9y dGggYW5kIHRoZW4gaW4uIElmIGl0DQo+ID4NCj4gPj4gaGFkIGJlZW4gZG9uZSB0aGF0IHdheSB0 byBiZWdpbiB3aXRoLCBpdCB3b3VsZCBiZSBvdmVyIGluIGEgd2VlayBhbmQNCj4gPj4gYQ0KPiA+ DQo+ID4+IGhhbGYgb3Igc28sIHJhdGhlciB0aGFuIHRoZSBtdWx0aXBsZSBtb250aHMgdGhhdCB3 ZcOi4oKs4oSicmUgbm93IHZlcmdpbmcNCj4gPg0KPiA+PiBvbi4NCj4gPg0KPiA+DQo+ID4NCj4g PiBUaGlzIGRpZmZlcnMgZXh0cmVtZWx5IGZyb20gaG93IHdlJ3ZlIGJlZW4gd29ya2luZyBvbiBl ZGsyLWRldmVsIChvcg0KPiBmcm9tIGhvdyBhbnkgZ2l0LWJhc2VkIHByb2plY3Qgd29ya3MgdGhh dCBJJ3ZlIGV2ZXIgYmVlbiBpbnZvbHZlZCB3aXRoKS4NCj4gPg0KPiA+IEFuZCBJIHRoaW5rIHRo ZSBhYm92ZSB3b3JrZmxvdyBpcyBvdXQgb2Ygc2NvcGUsIGZvciBtaWdyYXRpbmcgdGhlIGVkazIN Cj4gcHJvY2VzcyB0byBnaXRodWIuDQo+ID4NCj4gPg0KPiA+DQo+ID4gQWdhaW4sIHRoZSBzdHJ1 Y3R1cmluZyBvZiBhIHBhdGNoIHNlcmllcyBpcyBhIHByaW1hcnkgdHJhaXQuIEl0ZXJhdGluZyBv bmx5IG9uDQo+IGluZGl2aWR1YWwgcGF0Y2hlcyBkb2VzIG5vdCBhbGxvdyBmb3IgdGhlIHJlb3Jk ZXJpbmcgLyByZXN0cnVjdHVyaW5nIG9mIHRoZQ0KPiBwYXRjaCBzZXJpZXMgKGRyb3BwaW5nIHBh dGNoZXMsIHJlb3JkZXJpbmcgcGF0Y2hlcywgaW5zZXJ0aW5nIHBhdGNoZXMsDQo+IG1vdmluZyBo dW5rcyBiZXR3ZWVuIHBhdGNoZXMpLg0KPiA+DQo+ID4NCj4gPg0KPiA+IEl0J3MgY29tbW9uIHRo YXQgdGhlIG5lY2Vzc2l0eSB0byByZXZpc2UgYW4gZWFybGllciBwYXRjaCBlbWVyZ2VzIHdoaWxl DQo+IHJld29ya2luZyBhIGxhdGVyIHBhdGNoLiBGb3IgaW5zdGFuY2UsIHRoZSBnaXQtcmViYXNl KDEpIG1hbnVhbCBkZWRpY2F0ZXMgYQ0KPiBzZXBhcmF0ZSBzZWN0aW9uIHRvICJzcGxpdHRpbmcg Y29tbWl0cyIuDQo+ID4NCj4gPg0KPiA+DQo+ID4gSW4gdGhlIGluaXRpYWwgZXZhbHVhdGlvbiBv ZiAid2ViIGZvcmdlcyIsIFBoYWJyaWNhdG9yIHdhcyBvbmUgb2YgdGhlDQo+ICJjb250ZXN0YW50 cyIuIFBoYWJyaWNhdG9yIGRpZG4ndCBzdXBwb3J0IHRoZSAicGF0Y2ggc2VyaWVzIiBjb25jZXB0 IGF0IGFsbCwgaXQNCj4gb25seSBzdXBwb3J0ZWQgcmV2aWV3IHJlcXVlc3RzIGZvciBpbmRpdmlk dWFsIHBhdGNoZXMsIGFuZCBpdCBzdXBwb3J0ZWQNCj4gc2V0dGluZyB1cCBkZXBlbmRlbmNpZXMg YmV0d2VlbiB0aGVtLiBTbywgZm9yIGV4YW1wbGUsIGEgMjctcGF0Y2ggc2VyaWVzDQo+IHdvdWxk IHJlcXVpcmUgMjcgc3VibWlzc2lvbnMgYW5kIDI2IGRlcGVuZGVuY2llcy4NCj4gPg0KPiA+DQo+ ID4NCj4gPiBMYWNraW5nIHN1cHBvcnQgZm9yIHRoZSBwYXRjaCBzZXJpZXMgY29uY2VwdCB3YXMg YW4gaW1tZWRpYXRlIGRlYWwNCj4gYnJlYWtlciB3aXRoIFBoYWJyaWNhdG9yLg0KPiA+DQo+ID4N Cj4gPg0KPiA+IFRoZSBsb25nZXN0IHBhdGNoIHNlcmllcyBJJ3ZlIGV2ZXIgc3VibWl0dGVkIHRv IGVkazItZGV2ZWwgaGFkIDU4IHBhdGNoZXMuDQo+IEl0IHdhcyBTTU0gZW5hYmxlbWVudCBmb3Ig T1ZNRi4gSXQgd2VudCBmcm9tIHYxIHRvIHY1ICh2NSB3YXMgbWVyZ2VkKSwNCj4gYW5kIHRoZSBw YXRjaCBjb3VudCB2YXJpZWQgc2lnbmlmaWNhbnRseToNCj4gPg0KPiA+DQo+ID4NCj4gPiB2MTog NTggcGF0Y2hlcyAoMjUgSnVsIDIwMTUpDQo+ID4NCj4gPiB2MjogNDEgcGF0Y2hlcyAoIDkgT2N0 IDIwMTUpDQo+ID4NCj4gPiB2MzogNTIgcGF0Y2hlcyAoMTUgT2N0IDIwMTUpDQo+ID4NCj4gPiB2 NDogNDEgcGF0Y2hlcyAoIDMgTm92IDIwMTUpDQo+ID4NCj4gPiB2NTogMzMgcGF0Y2hlcyAoMjcg Tm92IDIwMTUpDQo+ID4NCj4gPg0KPiA+DQo+ID4gKFRoZSBzaWduaWZpY2FudCBkcm9wIGluIHRo ZSBwYXRjaCBjb3VudCB3YXMgZHVlIHRvIE1pa2UgS2lubmV5IG9wZW4NCj4gPiBzb3VyY2luZyBh bmQgdXBzdHJlYW1pbmcgdGhlICpyZWFsKiBQaVNtbUNwdUR4ZVNtbSBkcml2ZXIgKHdoaWNoIHdh cw0KPiA+IGh1Z2Ugd29yayBpbiBpdHMgb3duIHJpZ2h0KSwgYWxsb3dpbmcgbWUgdG8gZHJvcCB0 aGUgUXVhcmstb3JpZ2luYXRlZA0KPiA+IDMyLWJpdC1vbmx5IFBpU21tQ3B1RHhlU21tIHZhcmlh bnQsIGZyb20gbXkgc2VyaWVzLikNCj4gPg0KPiA+DQo+ID4NCj4gPiBUaGUgY29udHJpYnV0aW9u IHByb2Nlc3Mgc2hvdWxkIG1ha2UgZGlmZmljdWx0IHRoaW5ncyBwb3NzaWJsZSwgZXZlbiBpZiB0 aGF0DQo+IGNvbXBsaWNhdGVzIHNpbXBsZSB0aGluZ3Mgc29tZXdoYXQuIEEgcHJvY2VzcyB0aGF0 IG1ha2VzIHNpbXBsZSB0aGluZ3MNCj4gc2ltcGxlIGFuZCBkaWZmaWN1bHQgdGhpbmdzIGltcG9z c2libGUgaXMgdXNlbGVzcy4gVGhpcyBpcyB3aGF0IHRoZSBJbnN0YWdyYW0NCj4gZ2VuZXJhdGlv biBzZWVtcyB0byBiZSBtaXNzaW5nLg0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPiBJIGRv bid0IGtub3cgd2h5IHRoZSBWYXJpYWJsZVBvbGljeSB3b3JrIHRvb2sgbW9udGhzLiBJIGNhbiBz ZWUgdGhlDQo+IGZvbGxvd2luZyB0aHJlYWRzIG9uIHRoZSBsaXN0Og0KPiA+DQo+ID4NCj4gPg0K PiA+ICogW2VkazItZGV2ZWxdIFtQQVRDSCB2MSAwLzldIEFkZCB0aGUgVmFyaWFibGVQb2xpY3kg ZmVhdHVyZQ0KPiA+DQo+ID4gICAgRnJpLCAxMCBBcHIgMjAyMCAxMTozNjowMSAtMDcwMA0KPiA+ DQo+ID4NCj4gPg0KPiA+ICogW2VkazItZGV2ZWxdIFtQQVRDSCB2MiAwMC8xMl0gQWRkIHRoZSBW YXJpYWJsZVBvbGljeSBmZWF0dXJlDQo+ID4NCj4gPiAgICBNb24sIDExIE1heSAyMDIwIDIzOjQ2 OjIzIC0wNzAwDQo+ID4NCj4gPg0KPiA+DQo+ID4gSSBoYXZlIHR3byBzZXRzIG9mIGNvbW1lbnRz Og0KPiA+DQo+ID4NCj4gPg0KPiA+ICgxKSBJdCdzIGRpZmZpY3VsdCB0byB0ZWxsIGluIHJldHJv c3BlY3QgKGJlY2F1c2UgdGhlIHNlcmllcyBzZWVtIHRvIGhhdmUgYmVlbg0KPiBwb3N0ZWQgd2l0 aCBzb21ld2hhdCBwcm9ibGVtYXRpYyB0aHJlYWRpbmcpLCBidXQgdGhlIGRlbGF5IGFwcGFyZW50 bHkNCj4gY2FtZSBmcm9tIG11bHRpcGxlIHNvdXJjZXMuDQo+ID4NCj4gPg0KPiA+DQo+ID4gKDFh KSBSZXZpZXcgd2FzIHNsb3cgYW5kIHNwb3R0eS4NCj4gPg0KPiA+DQo+ID4NCj4gPiBUaGUgdjEg Ymx1cmIgcmVjZWl2ZWQgc29tZSBjb21tZW50cyBpbiB0aGUgZmlyc3Qgd2VlayBhZnRlciBpdCB3 YXMgcG9zdGVkLg0KPiBCdXQgdGhlIHJlc3Qgb2YgdGhlIHYxIHNlcmllcyAodGhlIGFjdHVhbCBw YXRjaGVzKSByZWNlaXZlZCBmZWVkYmFjayBsaWtlIHRoaXM6DQo+ID4NCj4gPg0KPiA+DQo+ID4g LSB2MSAxLzk6IG5vIGZlZWRiYWNrDQo+ID4NCj4gPiAtIHYxIDIvOTogMTIgZGF5cyBhZnRlciBw b3N0aW5nDQo+ID4NCj4gPiAtIHYxIDMvOTogMTYgZGF5cyBhZnRlciBwb3N0aW5nDQo+ID4NCj4g PiAtIHYxIDQvOTogbm8gZmVlZGJhY2sNCj4gPg0KPiA+IC0gdjEgNS85OiBubyBmZWVkYmFjaw0K PiA+DQo+ID4gLSB2MSA2Lzk6IG5vIGZlZWRiYWNrDQo+ID4NCj4gPiAtIHYxIDcvOTogbm8gZmVl ZGJhY2sNCj4gPg0KPiA+IC0gdjEgOC85OiBubyBmZWVkYmFjaw0KPiA+DQo+ID4gLSB2MSA5Lzk6 IG5vIGZlZWRiYWNrDQo+ID4NCj4gPg0KPiA+DQo+ID4gKDFiKSBUaGVyZSB3YXMgYWxzbyBxdWl0 ZSBzb21lIHRpbWUgYmV0d2VlbiB0aGUgbGFzdCByZXNwb25zZSBpbiB0aGUgdjENCj4gdGhyZWFk IChBcHIgMjZ0aCwgYXMgZmFyIGFzIEkgY2FuIHNlZSksIGFuZCB0aGUgcG9zdGluZyBvZiB0aGUg djIgc2VyaWVzIChNYXkNCj4gMTF0aCkuDQo+ID4NCj4gPg0KPiA+DQo+ID4gKDFjKSBUaGUgdjIg Ymx1cmIgZ290IGFsbW9zdCBpbW1lZGlhdGUsIGFuZCBudW1lcm91cyBmZWVkYmFjayAob24gdGhl DQo+IGRheSBvZiBwb3N0aW5nLCBhbmQgdGhlIGRheSBhZnRlcikuIFJlZ2FyZGluZyB0aGUgaW5k aXZpZHVhbCBwYXRjaGVzLCB0aGV5DQo+IGRpZG4ndCBmYXJlIHRvbyB3ZWxsOg0KPiA+DQo+ID4N Cj4gPg0KPiA+IC0gdjIgMDEvMTI6IHN1cGVyZmljaWFsIGNvbW1lbnQgb24gdGhlIGRheSBvZiBw b3N0aW5nIGZyb20gbWUgKG5vdCBhDQo+ID4NCj4gPiAgICAgICAgICAgICAgZGVzaWduYXRlZCBN ZGVNb2R1bGVQa2cgcmV2aWV3KSwgb24gdGhlIGRheSBvZiBwb3N0aW5nOw0KPiA+IG5vDQo+ID4N Cj4gPiAgICAgICAgICAgICAgb3RoZXIgZmVlZGJhY2sgdGh1cyBmYXINCj4gPg0KPiA+IC0gdjIg MDIvMTI6IGRpdHRvDQo+ID4NCj4gPiAtIHYyIDAzLzEyOiBubyBmZWVkYmFjaw0KPiA+DQo+ID4g LSB2MiAwNC8xMjogc3VwZXJmaWNpYWwgKGNvZGluZyBzdHlsZSkgY29tbWVudHMgb24gdGhlIGRh eSBvZiBwb3N0aW5nDQo+ID4NCj4gPiAtIHYyIDA1LzEyOiBubyBmZWVkYmFjaw0KPiA+DQo+ID4g LSB2MiAwNi8xMjogbm8gZmVlZGJhY2sNCj4gPg0KPiA+IC0gdjIgMDcvMTI6IG5vIGZlZWRiYWNr DQo+ID4NCj4gPiAtIHYyIDA4LzEyOiBubyBmZWVkYmFjaw0KPiA+DQo+ID4gLSB2MiAwOS8xMjog bm8gZmVlZGJhY2sNCj4gPg0KPiA+IC0gdjIgMTAvMTI6IG5vIGZlZWRiYWNrDQo+ID4NCj4gPiAt IHYyIDExLzEyOiByZWFzb25hYmx5IGluLWRlcHRoIHJldmlldyBmcm9tIHJlc3BvbnNpYmxlIGNv LW1haW50YWluZXINCj4gPg0KPiA+ICAgICAgICAgICAgICAoeW91cnMgdHJ1bHkpLCBvbiB0aGUg ZGF5IG9mIHBvc3RpbmcNCj4gPg0KPiA+IC0gdjIgMTIvMTI6IG5vIGZlZWRiYWNrDQo+ID4NCj4g Pg0KPiA+DQo+ID4gSW4gdG90YWwsIEkgZG9uJ3QgdGhpbmsgdGhlIGN1cnJlbnQgcHJvY2VzcyB0 YWtlcyB0aGUgYmxhbWUgZm9yIHRoZSBkZWxheS4gSWYNCj4gcmV2aWV3ZXJzIGRvbid0IGNhcmUg KG9yIGhhdmUgbm8gdGltZSkgbm93LCB0aGF0IHByb2JsZW0gd2lsbCBub3QgY2hhbmdlDQo+IHdp dGggdGhlIHRyYW5zaXRpb24gdG8gZ2l0aHViLmNvbS4NCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+ DQo+ID4gKDIpIFRoZSBWYXJpYWJsZVBvbGljeSBzZXJpZXMgaXMgYWN0dWFsbHkgYSBnb29kIGV4 YW1wbGUgdGhhdCBwYXRjaCBzZXJpZXMNCj4gcmVzdHJ1Y3R1cmluZyBpcyBpbXBvcnRhbnQuDQo+ ID4NCj4gPg0KPiA+DQo+ID4gKDJhKSBUaGUgcGF0Y2ggY291bnQgd2VudCBmcm9tIDkgKGluIHYx KSB0byAxMiAoaW4gdjIpLg0KPiA+DQo+ID4NCj4gPg0KPiA+ICgyYikgQW5kIHVuZGVyIHYyLCBM aW1pbmcgc3RpbGwgcG9pbnRlZCBvdXQ6ICJUbyBrZWVwIGVhY2ggY29tbWl0IGJ1aWxkDQo+IHBh c3MsIHRoZSBwYXRjaCBzZXQgc2hvdWxkIGZpcnN0IGFkZCBuZXcgbGlicmFyeSBpbnN0YW5jZSwg dGhlbiBhZGQgdGhlIGxpYnJhcnkNCj4gaW5zdGFuY2UgaW50byBlYWNoIHBsYXRmb3JtIERTQywg bGFzdCB1cGRhdGUgVmFyaWFibGUgZHJpdmVyIHRvIGNvbnN1bWUgbmV3DQo+IGxpYnJhcnkgaW5z dGFuY2UuIg0KPiA+DQo+ID4NCj4gPg0KPiA+IEZ1cnRoZXJtb3JlLCBJIHJlcXVlc3RlZCBlbmFi bGluZyB0aGUgZmVhdHVyZSBpbiBBcm1WaXJ0UGtnIHRvbywgYW5kDQo+IG1heWJlIChiYXNlZCBv biBvd25lciBmZWVkYmFjaykgVWVmaVBheWxvYWRQa2cuDQo+ID4NCj4gPg0KPiA+DQo+ID4gVGh1 cywgdGhlIHYyLT52MyB1cGRhdGUgd2lsbCBtb3N0IGxpa2VseSBicmluZyBhYm91dCBib3RoIHBh dGNoIG9yZGVyDQo+IGNoYW5nZXMsIGFuZCBhbiBpbmNyZWFzZWQgcGF0Y2ggY291bnQuDQo+ID4N Cj4gPg0KPiA+DQo+ID4gVGhhbmtzDQo+ID4NCj4gPiBMYXN6bG8NCj4gPg0KPiA+DQo+ID4NCj4g Pg0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+IA0KPiANCg0K