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.1066.1618337326763427872 for ; Tue, 13 Apr 2021 11:08:47 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=Bfc9wOfD; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: nathaniel.l.desimone@intel.com) IronPort-SDR: r7z88tZBj+ojcweepTnTYszsryOuv9Rs/ik+55NntxgW9UGxdiTwREQR1ILIMU9RzZgNs0G9ST SHMWDT5/UHtA== X-IronPort-AV: E=McAfee;i="6200,9189,9953"; a="181984179" X-IronPort-AV: E=Sophos;i="5.82,220,1613462400"; d="scan'208";a="181984179" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Apr 2021 11:04:37 -0700 IronPort-SDR: ou9fUFU22jgYRCShJcrCZgm0cIgc8/LVu9BRlhPMs44DGln9qWuvafpcnn5R9yCdYOy+h7Npaw 0uXOL5dEPHcQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,219,1613462400"; d="scan'208";a="383394057" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by orsmga006.jf.intel.com with ESMTP; 13 Apr 2021 11:04:36 -0700 Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) 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.2106.2; Tue, 13 Apr 2021 11:04:36 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Tue, 13 Apr 2021 11:04:33 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.175) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2106.2; Tue, 13 Apr 2021 11:04:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VNMjBqhM9vfv5gELLxQ6jkJCKWdNPkbKys33y9aowvcN6tLHCwhi5rn27yFcKZs02/+HlfbBK7dIKhWxPWzNzvRgUDUh3SfZ0rlhgpnCLLQIPgDpHqFZEnmJCnL8AmWG0zi8XHXM/dqJklWPSAnO8sBMbhDWAygFodFOBSXmjdxJZI/p1UfHmzTs9Z+eCZZDOL2ILZzii6BcEATUg38jlIh2qprqpaWNmcWxHzdzysHW29faK79BfHQHB3tu+DetdMlTGn/s9h5r+yvvo5D2zyw9CTCEHys++2Y2I7tb8/fSEsbKm/MmxySwiwid1VlY61jQGzie6pPhspWJsg6BAg== 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=PLHJbZxoQi3bG/ry3Z84WEGB5+IQJz99stNnzzu0yQw=; b=NzR74kSW852R61jFynQBS5KxqyypfBR4GSDJ1LeINZKAt1eXrESkIDoxTpL4Ax8mEjAmPF/oYoObC+2CdKgKLNDg/ot4BK751TrFAdLG/3HlMGQgJVgLUk6mYCVLIVpEuiRinZikaXk8QdCO5tCuWNaxb4pBfU2+YLj8P7SvbNaFj4RR7U/LSco7XL+u8H96ts9ylK8y5EQGCx5dbhMH//F8DpBFMJCwnr5uYQHXp/F7DD6PSoQjQlm7FhaGCPglsZicVgJZy0gCF9FsZRcadtkNugpnarwfX05Hs3ld3tWqSKgt1mMmgf8rK9zH9CFSxV7REFsvxZ56XlbI/2QoEw== 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=PLHJbZxoQi3bG/ry3Z84WEGB5+IQJz99stNnzzu0yQw=; b=Bfc9wOfDDEJd8OUYHKgFrP3vU8/4+BvYHoLmqsb2I5Ynb0lo66wAMVjfTeyce1XGqAJJ8PQjsdMHre9XxQnoimCQTAkbNTKP5BiSuwTyIr9LG3zVNnBNmsGnKZpdqhkZg4bOLjA8eGiJR9ZvI+A1IGUMwzbF3soKBqyn68kRvxY= Received: from MWHPR1101MB2160.namprd11.prod.outlook.com (2603:10b6:301:5b::12) by MWHPR11MB1807.namprd11.prod.outlook.com (2603:10b6:300:112::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.18; Tue, 13 Apr 2021 18:04:31 +0000 Received: from MWHPR1101MB2160.namprd11.prod.outlook.com ([fe80::6540:bca7:645a:6788]) by MWHPR1101MB2160.namprd11.prod.outlook.com ([fe80::6540:bca7:645a:6788%5]) with mapi id 15.20.4020.022; Tue, 13 Apr 2021 18:04:31 +0000 From: "Nate DeSimone" To: =?utf-8?B?TWFydmluIEjDpHVzZXI=?= CC: "Kinney, Michael D" , "devel@edk2.groups.io" , Laszlo Ersek , Andrew Fish Subject: Re: [edk2-devel] [GSoC proposal] Secure Image Loader Thread-Topic: [edk2-devel] [GSoC proposal] Secure Image Loader Thread-Index: AQHXKacD5Hl5SDcSBUG2XYljo7F1u6qnNHHQgAn5BoCAAHS0gIAAB9LQgABw4oCAAK2kYA== Date: Tue, 13 Apr 2021 18:04:31 +0000 Message-ID: References: <055bcd6f-c055-25a8-f258-6581ccbbd591@posteo.de> <4fa3c0fc-8865-447e-96ec-7286b0fd9a7f@posteo.de> In-Reply-To: <4fa3c0fc-8865-447e-96ec-7286b0fd9a7f@posteo.de> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.5.1.3 dlp-product: dlpe-windows authentication-results: posteo.de; dkim=none (message not signed) header.d=none;posteo.de; 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: 57a2aa22-37c9-43ed-df2b-08d8fea6964c x-ms-traffictypediagnostic: MWHPR11MB1807: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: jsuQwSaEVJoC23O8AXsX8lgDseEhIeBi+pXcPR1J3CU1BioMfenvSrnJfbG28N7aQ8perac75VNa5mHsPZofJOJb+P+1APz/ABufnzk92ZAw1EcQihvCzecDUyQYbbbyINhz0XsusUaaBPSpZjUCBcIGwtOiN/u6lZ/zrrkANFYtGU4ZrUjSI/rSBiXC1Woh2NRJDrLuYtVm5Usy8ga46RWMgS16gmf8grj2QYEt4FSFH0GPwnL9OqWHI8M+qklDOwCDPVy4TiTu1Si6cxGi3HInujzWsgt4sDWaz/Sn3cSm9Dq2Ox0L5VS0Ncxw4fEoE+oV+r3hVolp2LvABOVyYb83gxucGq/c/x9uZIvNJwFWFulhgEol8Vc/wMkZ7y/rk60Qf/OZTkffVscPK1qfx2cgbuBhYTwZj1QoDdtpLXPTZAtOJgPrjE7mPvLWXhJr+w4JRcrDV1APIzGJZjms0zjQDBz0WecRqW54O1/j4HSSbkTDDrATUQCSyeYzjDlH5T5I+7Si19RVn4zENt0zeTGPo6UBi8As075MK6iBXKNkklOWqxddD5lvh76v9kK1kjcSvmjSGade3shP8Mt2VllvpTJKWNrlF3S0ToYGI6l1TN9CxpPZp1WspveCkJuyoJMFm+0r6f9rODw2zCWnVTQXbbq+3ryUV0ZxyqDzVPGrX8T97jAY5ayU1SVj+JBy x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR1101MB2160.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(366004)(39860400002)(346002)(396003)(136003)(9686003)(54906003)(7696005)(2906002)(5660300002)(186003)(53546011)(316002)(83380400001)(64756008)(26005)(71200400001)(6916009)(66556008)(30864003)(66476007)(4326008)(66946007)(8676002)(8936002)(122000001)(76116006)(55016002)(52536014)(86362001)(966005)(66574015)(33656002)(66446008)(478600001)(38100700002)(6506007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?NDJ0amp3Y3pqS3NyMjlCZ1dHdzIwYVJNSEwzd3c2dS9UOWNqMTgxQUNZQW1o?= =?utf-8?B?TjdjSFlwYjZ2d1RQOFVHREJuNjE1TnVsVy9ta3Ixd1h2bFExMVQvcVNGVWNG?= =?utf-8?B?UkVIa1FJUzVZVjF1TTU3U0pVak9iYmpmNENzYjIxL2YvV1h5b1FXQWFuQ0Fs?= =?utf-8?B?TEsvNGlTd01OK3lKQkhiT01taWNlbDlYL0RCVmxyU2lobmZtUVlMWXJHdGdK?= =?utf-8?B?eDZTM25DVDFEK01OU1gvZDVjR1R2UW1Xalh5TnNVZkc4dVltNjhKUlBVQXBt?= =?utf-8?B?WVRQWHcvRFkzeTNsZE1rVGlKTG5zYk4wL1BEcXYrNU8zeisyR0pwdTR6UTJE?= =?utf-8?B?NzEvQ01JS05CMENzZUxmRUcrVHRYMTBMVWlqVEcwc3ArS2x0TDZSekdTOGlp?= =?utf-8?B?UmUzWEZYQ3NKU1RQeDgzc3NYc2ZRQ01JRU53NmVZbHhOY0tHNTM3VGpQVFpq?= =?utf-8?B?ckJTY1Irdkw0aGlFd2tJVU1xaE1ZU0hiS3UrR1lLM0RIRjlVUitaL0NOMGhy?= =?utf-8?B?YlREV2VBa1JIZmNsbmMzRnA0VTBmNnhBeGdveCtkcTlVOVZOTnVidlJRRGJ2?= =?utf-8?B?Q0drbVN1RW5HVnJzblNYcVloa05qL3p0KzdMU2E0SUJaZ2pTc0VsREZqOUZM?= =?utf-8?B?YVU4YTVxaDNlQU9reG1tdEswUi9HMGlRaVlqc2ZoRHZoNWs2SERweFVFK3k5?= =?utf-8?B?amVJY0ZjcUZTUUYzQjFjY0dHUitEM1lzcGQ4S3FyaDFkdmFuVWkxcndsQ2U5?= =?utf-8?B?L1lJZUw1dUJubnNuempqSDhjM3ZyL3FTbmxXdk1nT2tkVWtVSURvVHJIOUZ5?= =?utf-8?B?cW8yQzZ3Ri8vV3d4WE1ISHZKbWp3MVk5ZkFwcDZoQXZMMUE2S3R6ekYyeFh5?= =?utf-8?B?c3MwcWE4UlBuY0Z3NE1wQ0xiY0RQMC8vRnAvZm5xVDQvQUZva282L1djbm9w?= =?utf-8?B?RVpYajc0emVUT0puTEIwcEhpZ0YxY0tLMHU3YU5JNTdPY3NDQzlnZlNvR1BN?= =?utf-8?B?eFVob2p2RENPWHdaZGtGSWdRSEx3QTRhaUhUNUNyUHZBUFNKNmNFbUdGS0RP?= =?utf-8?B?R1RNaEQzRXFZVEtsZUJQVExhL0cwQlFCeTRONzhrNDQ3WW56eDkwQzhZT2No?= =?utf-8?B?MHRHdUV2T3ladUVVQXFpbWxXaTVJTTZ6Wjh1TnRLRllnZ0VrS2VJc0tTbWs4?= =?utf-8?B?SktjRklZbFpzN2c1SnlOdTl2U2M5N3R3Rm1CYkI4d2dCdGEvZDhvWEJMZlha?= =?utf-8?B?YU5HYjhNY3c0WnAzdTJVay96aUlGVlhPWTllMWM0dnFPWDNQd2NiY2xIb0tz?= =?utf-8?B?VWtQdWkwUFFYUklwdlFnY2lLMnlwZjV0RUFwMWdLcERxNFNlRFNudzk5ejVF?= =?utf-8?B?VFlMSjYyWThXVER5UnNlcGMyb1hhU0FIZ0swYWZ3VHJaUVlUZG1Sb2dTdTh0?= =?utf-8?B?Ullaa1gyYlprWWZrbEZ5NEptMnZwWURic0tiYytOcndtTUEyV29abVZBMWdZ?= =?utf-8?B?TXRDWktmaVg1dlVCdHBwazJjbjVSQVRWSkRxcEYrSEJ1cTF5VHVaRjRJTWdV?= =?utf-8?B?TlRKbWhhSC9KOHB1TDZIc1VVU3JSZVV4RjgrQ1AxU25CUE9OU3RnOHRwV1dF?= =?utf-8?B?WjhPbkdaUVhZbmVqMnkzcXloL0FKRmhJNy93Qk9WbFdLR3gxYzU3OWVWQklq?= =?utf-8?B?YTc5QzgxSktBendhMUpSWThERnQwZVYvQWRQRTdDZEdKS2oyNjFRN3hrL1lr?= =?utf-8?Q?Cvokxvm9RltcAMGmlRGYnhcc1hYd1ewtnEDZNu/?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR1101MB2160.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 57a2aa22-37c9-43ed-df2b-08d8fea6964c X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Apr 2021 18:04:31.1292 (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: qiinhRyKX2ms8Gg0QoFRQRRWduKH7B+X/H9z3vd+o+mbxXz2GYaf1Blmx3NuHacHWsjTVWBJHWhuosq0TzKM7ZG3HQ2roeJdjqz1xS+48lI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1807 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 SGkgTWFydmluLA0KDQpXaGF0IE1pa2UgYW5kIEkgd2VyZSB0aGlua2luZyBpcyBoYXZpbmcgYSBG aXhlZEF0QnVpbGRQY2Qgd2hpY2ggY2hvb3NlcyB3aGV0aGVyIHRvIHVzZSB0aGUgbmV3IGxvYWRl ciBvciB0aGUgb2xkIGxvYWRlciBhdCBjb21waWxlIHRpbWUuIFdlIHdlcmUgYWxzbyB0aGlua2lu ZyB0aGUgc2FtZSB0aGluZyBvZiBzaGltbWluZyB0aGUgb2xkIGxvYWRlciBpbnRvIHRoZSBuZXcg aW50ZXJmYWNlLiBJIGNvbXBsZXRlbHkgYWdyZWUgd2l0aCB5b3UgdGhhdCBpdCBpcyB1bmxpa2Vs eSB0aGUgbmV3IGxvYWRlciBpcyAiYnJva2VuIi4uLiBpdCBpcyBtb3JlIGxpa2VseSB0aGF0IGJy b2tlbiBpbWFnZXMgZXhpc3Qgb3V0IGluIHRoZSB3b3JsZCBzb21ld2hlcmUgYW5kIHRoYXQgd2Ug d29uJ3Qga25vdyB0aGF0IHRoZXkgYXJlIGJyb2tlbiB1bnRpbCBzb21lb25lIHRyaWVzIHRvIGJ1 aWxkIHRoZWlyIHN5c3RlbSdzIGZpcm13YXJlIHdpdGggdGhlIG5ldyBsb2FkZXIgaW5jbHVkZWQu IE9uY2UgdGhlIGJyb2tlbiBpbWFnZXMgYXJlIGZvdW5kLCBpdCBjYW4gdGFrZSBzb21lIHRpbWUg dG8gZ2V0IHRoZW0gZml4ZWQuIEEgbG90IG9mIHRpbWVzIHRoZXkgY29tZSBmcm9tIG91dHNpZGUg dmVuZG9ycyBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciB0aG9zZSBiaW5hcmllcyBpcyBub3QgcmVh ZGlseSBhdmFpbGFibGUuIEJlY2F1c2Ugb2YgdGhhdCwgdGhlcmUgbWF5IGJlIGEgbmVlZCB0byBm YWxsYmFjayB0byB0aGUgb2xkIGxvYWRlciBpbiB0aGUgaW50ZXJpbSBwZXJpb2Qgd2hpbGUgYSBm aXhlZCBiaW5hcnkgaXMgYmVpbmcgYWNxdWlyZWQuDQoNClRoaXMgY291bGQgYmVjb21lIHZlcnkg ZGlmZmljdWx0IGZvciBPcFJPTXMgb24gUENJZSBhZGQtaW4gY2FyZHMgc2luY2UgdGhleSBhcmUg c3RvcmVkIG9uIGEgc2VwYXJhdGUgZGV2aWNlIHJvbSBhbmQgbW9zdCBvZiB0aGUgdGltZSBhcmUg Y29tcGxldGVseSBub24tdXBncmFkYWJsZS4gV2Ugc2hvdWxkIHRoaW5rIGFib3V0IGhvdyB3ZSBj YW4gaGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlIGZpbmQgYW4gb2xkIGdyYXBoaWNzIG9yIG5ldHdv cmsgY2FyZCBidWlsdCBpbiAyMDE0IHRoYXQgaGFzIGEgVUVGSSBPcFJPTSB0aGF0IGNvbnRhaW5z IGEgYnJva2VuIFBFL0NPRkYgaGVhZGVyIHdoaWNoIGNhbm5vdCBiZSBmaXhlZC4NCg0KVGhhbmtz LA0KTmF0ZQ0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogTWFydmluIEjDpHVz ZXIgPG1oYWV1c2VyQHBvc3Rlby5kZT4gDQpTZW50OiBUdWVzZGF5LCBBcHJpbCAxMywgMjAyMSAx MjozMiBBTQ0KVG86IERlc2ltb25lLCBOYXRoYW5pZWwgTCA8bmF0aGFuaWVsLmwuZGVzaW1vbmVA aW50ZWwuY29tPg0KQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQu Y29tPjsgQW5kcmV3IEZpc2ggPGFmaXNoQGFwcGxlLmNvbT4NClN1YmplY3Q6IFJlOiBbZWRrMi1k ZXZlbF0gW0dTb0MgcHJvcG9zYWxdIFNlY3VyZSBJbWFnZSBMb2FkZXINCg0KSGV5IE1pa2UsDQpI ZXkgTmF0ZSwNCg0KSSdtIG5vdCAxMDAgJSBzdXJlIEkgZ2V0IHdoYXQgeW91IG1lYW4uIFRoZSBp bnRlcmZhY2VzIG9mIHRoZSB0d28gc29sdXRpb25zIGFyZSBub3QgY29tcGF0aWJsZSAoaG93ZXZl ciBJIGNvdWxkIHdyaXRlIHdyYXBwZXIgY29kZSB0byBzaGltIHRoZSBvbGQgaW50byB0aGUgbmV3 IEkgc3VwcG9zZT8pLCBzbyBvbi10aGUtZmx5IHN3aXRjaGluZyBiZXR3ZWVuIHRoZSB0d28gd291 bGQgYmUgaW5jb252ZW5pZW50LiBJIGRvIHBsYW4gdG8ga2VlcCB0aGUgb2xkIGxpYnJhcnkgYXJv dW5kIGFuZCBndWFyZCBpdCB3aXRoIHRoZSBkZXByZWNhdGVkIGludGVyZmFjZXMgbWFjcm8sIGZv ciBvdXQtb2YtdHJlZSBjb2RlLCBob3dldmVyLiBUaGUgbmV3IGxpYnJhcnkgaW50ZXJmYWNlcyB3 aWxsIHByb2JhYmx5IGJlIHNvbWV0aGluZyBsaWtlIFBlQ29mZkxpYjIsIFBlQ29mZkRlYnVnTGli MiwgbWF5YmUgbW9yZS4NCg0KSSdtIGFsc28gbm90IHN1cmUgd2hhdCBvbi10aGUtZmx5IHN3aXRj aGluZyB3b3VsZCBhY2NvbXBsaXNoLCBhcyB0ZXN0aW5nIHdpdGggdGhlIG9sZCBsb2FkZXIgYWxs b3dzIGJyb2tlbiBpbWFnZXMgdG8gYmUgbG9hZGVkLCBpLmUuIGp1c3QgYmVjYXVzZSBzb21ldGhp bmcgIndvcmtzIiB3aXRoIHRoZSBvbGQgY29kZSBidXQgbm90IHRoZSBuZXcsIGl0IGRvZXNuJ3Qg bWVhbiB0aGF0IHRoZSBuZXcgY29kZSBpcyBicm9rZW4uDQoNCkluc3RlYWQgb2YgZGVidWdnaW5n IHdpdGggdHdvIGxpYnJhcmllcywgSSByYXRoZXIgd2FudCB0byBtYWtlIHN1cmUgdGhpcyB0aGlu ZyBpcyByb2NrLXNvbGlkIGJlZm9yZSBldmVuIHNlbmRpbmcgb3V0IHRoZSBwYXRjaGVzLiBGb3Ig dGhpcyBJIHdvdWxkIGxpa2UgdG8gYnVpbGQgYSBzbWFsbCBFRkkgZmlsZSBkYXRhYmFzZSB0byBw YXJzZSBhbmQgbG9hZCBmcm9tIHVzZXJsYW5kLCBjaGVja2luZyBmb3IgaW1hZ2UgYWNjZXB0YW5j ZSBhbmQgbWVtb3J5IHNhZmV0eS4gVGhpcyB3b3VsZCBpbmNsdWRlIHNldmVyYWwgdmVyc2lvbnMg b2YgV2luZG93cyBhbmQgbWFjT1MgYm9vdGxvYWRlcnMsIE9wdGlvbiBST01zIChOVklESUEgYW5k IEFNRCBHT1AsIGlQWEUpLCB0b29scyAobWVtdGVzdCksIGFuZCBzbyBvbi4gSWYgeW91IGhhdmUg YW55dGhpbmcgeW91IHdhbnQgdG8gaGF2ZSBlc3BlY2lhbGx5IHRlc3RlZCwgcGxlYXNlIGxldCBt ZSBrbm93Lg0KDQpCZXN0IHJlZ2FyZHMsDQpNYXJ2aW4NCg0KMTMuMDQuMjAyMSAwMjo1NjoyMiBE ZXNpbW9uZSwgTmF0aGFuaWVsIEwgPG5hdGhhbmllbC5sLmRlc2ltb25lQGludGVsLmNvbT46DQoN Cj4gSGkgTWFydmluLA0KPiANCj4gSSBhZ3JlZSB3aXRoIE1pa2UgSyB0aGF0IGhhdmluZyBib3Ro IHRoZSBuZXcgc3RyaWN0IGxvYWRlciBhbmQgdGhlIG9sZCBsb2FkZXIgY28tZXhpc3QgZm9yIHNv bWUgdGltZSBtYXkgYmUgdGhlIGJlc3Qgb3B0aW9uLiBUaGF0IHdpbGwgZ2l2ZSB0aGUgZWNvc3lz dGVtIHRpbWUgdG8gdGVzdCB0aGUgbmV3IGxvYWRlciBhbmQgY29ycmVjdCBhbnkgaXNzdWVzIHRo YXQgYXJpc2UgZnJvbSBpdHMgaW50cm9kdWN0aW9uLg0KPiANCj4gQmVzdCBSZWdhcmRzLA0KPiBO YXRlDQo+IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBLaW5uZXksIE1p Y2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IFNlbnQ6IE1vbmRheSwgQXBy aWwgMTIsIDIwMjEgNToyMCBQTQ0KPiBUbzogTWFydmluIEjDpHVzZXIgPG1oYWV1c2VyQHBvc3Rl by5kZT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyANCj4gRGVzaW1vbmUsIE5hdGhhbmllbCBMIDxu YXRoYW5pZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+OyBMYXN6bG8gRXJzZWsgDQo+IDxsZXJzZWtA cmVkaGF0LmNvbT47IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+OyBLaW5uZXksIE1pY2hh ZWwgRCANCj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW2Vk azItZGV2ZWxdIFtHU29DIHByb3Bvc2FsXSBTZWN1cmUgSW1hZ2UgTG9hZGVyDQo+IA0KPiBIaSBN YXJ2aW4sDQo+IA0KPiBJZiBpdCBoYXMgbm90IGFscmVhZHkgYmVlbiBjb25zaWRlcmVkLCBvbmUg b3B0aW9uIGlzIHRvIHN1Ym1pdCBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgUEUvQ09GRiBMaWJyYXJ5 LCBzbyBib3RoIHRoZSBleGlzdGluZyBvbmUgYW5kIHRoZSBuZXcgb25lIGFyZSBhdmFpbGFibGUg dG8gdGhlIGVjb3N5c3RlbS4NCj4gDQo+IFRoaXMgYWxsb3dzIHlvdSB0byBiZSBzdWNjZXNzZnVs IGluIHN1Ym1pdHRpbmcgY29kZSBvdXRsaW5lZCBpbiB5b3VyIHByb3Bvc2FsIGFuZCBnaXZlcyB0 aGUgZWNvc3lzdGVtIHRpbWUgdG8gZXZhbHVhdGUgYW5kIGRlY2lkZSB3aGVuL2lmIHRvIHN3aXRj aCBmcm9tIHRoZSBvbGQgdG8gdGhlIG5ldy4NCj4gDQo+IE1pa2UNCj4gDQo+PiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPj4gRnJvbTogTWFydmluIEjDpHVzZXIgPG1oYWV1c2VyQHBvc3Rl by5kZT4NCj4+IFNlbnQ6IE1vbmRheSwgQXByaWwgMTIsIDIwMjEgMTA6MjIgQU0NCj4+IFRvOiBk ZXZlbEBlZGsyLmdyb3Vwcy5pbzsgRGVzaW1vbmUsIE5hdGhhbmllbCBMIA0KPj4gPG5hdGhhbmll bC5sLmRlc2ltb25lQGludGVsLmNvbT47IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+ OyANCj4+IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+OyBLaW5uZXksIE1pY2hhZWwgRCAN Cj4+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4+IFN1YmplY3Q6IFJlOiBbZWRrMi1k ZXZlbF0gW0dTb0MgcHJvcG9zYWxdIFNlY3VyZSBJbWFnZSBMb2FkZXINCj4+IA0KPj4gR29vZCBk YXkgTmF0ZSwNCj4+IA0KPj4gQXMgeW91IHNlZW0gdG8gYmUgbW9zdGx5IGluIGNoYXJnZSBvZiB0 aGUgR1NvQyBzaWRlIG9mIHRoaW5ncywgSSANCj4+IGRpcmVjdCB0aGlzIGF0IHlvdSwgYnV0IG9m IGNvdXJzZSBldmVyeW9uZSBpcyB3ZWxjb21lIHRvIGNvbW1lbnQuDQo+PiANCj4+IEkgdGhpbmsg SSBmaW5pc2hlZCBteSBmaXJzdCByb3VuZCBvZiBpbnZlc3RpZ2F0aW9ucyBqdXN0IGluIHRpbWUg Zm9yIA0KPj4gdGhlIGRlYWRsaW5lLiBZb3UgY2FuIGZpbmQgYSBsaXN0IG9mIEJacyBhdHRhY2hl ZFsxXS4gUGxlYXNlIG5vdGUgDQo+PiB0aGF0DQo+PiAxKSBzb21lIGFyZSBkZWNsYXJlZCBzZWN1 cml0eSBpc3N1ZXMgYW5kIG1heSBub3QgYmUgcHVibGljbHkgDQo+PiBhY2Nlc3NpYmxlLCBhbmQg MikgdGhhdCB0aGlzIGxpc3QgaXMgZmFyIGZyb20gY29tcGxldGUuIEkgb25seSBhZGRlZCANCj4+ IGl0ZW1zIHRoYXQgYXJlDQo+PiBhKSBub3QgaW1wbGljaXRseSBmaXhlZCBieSAic2ltcGx5IiBk ZXBsb3lpbmcgdGhlIG5ldyBJbWFnZSBMb2FkZXINCj4+ICgqc29tZSogaW1wb3J0YW50IHByZXJl cXVpc2l0ZXMgYXJlIGxpc3RlZCksIGFuZCBiKSBJIGFtIGNvbmZpZGVudCANCj4+IGFyZSBhY3R1 YWwgaXNzdWVzIChvciB0aGluZ3MgdG8gY29uc2lkZXIpIEkgYmVsaWV2ZSB0byBrbm93IGhvdyB0 byBhcHByb2FjaC4NCj4+IA0KPj4gSSBoYXZlIHRha2VuIG5vdGVzIGFib3V0IG1vcmUgdGhpbmdz LCBlLmcuIHRoZSBleGlzdGVuY2Ugb2YgdGhlIA0KPj4gc2VjdXJpdHkgYXJjaGl0ZWN0dXJhbCBw cm90b2NvbHMsIHdoaWNoIEkgY291bGQgbm90IGZpbmQgYSByYXRpb25hbGUgDQo+PiBmb3IuIEkg Y2FuIHByZXBhcmUgc29tZXRoaW5nIGZvciB0aGlzIG1hdHRlciwgYnV0IGl0IHJlYWxseSBuZWVk cyBhbiANCj4+IGFjdGl2ZSBkaXNjdXNzaW9uIHdpdGggc29tZSBvZiB0aGUgY29yZSBwZW9wbGUu IEknbSBub3Qgc3VyZSBkZWxheWVkIA0KPj4gZS1tYWlsIGRpc2N1c3Npb24gaXMgZ29pbmcgdG8g YmUgZW5vdWdoLCBidXQgdGhlcmUgaXMgYW4gb2ZmaWNpYWwgSVJDIA0KPj4gSSBzdXBwb3NlLiA6 KSBJIGhvcGUgd2UgY2FuIHdvcmsgc29tZXRoaW5nIG91dCBmb3IgdGhpcy4NCj4+IA0KPj4gSSBh bHNvIGhvcGUgdGhpcyBtYWtlcyBpdCBjbGVhcmVyIHdoeSBJIGRvbid0IGJlbGlldmUgdGhhdCB3 ZSBuZWVkIHRvIA0KPj4gImZpbGwiIDEwIHdlZWtzLCBidXQgcmF0aGVyIHRoZSBvcHBvc2l0ZS4g VGhpcyBpcyBub3QgYSBtYXR0ZXIgb2YgDQo+PiByZXBsYWNpbmcgYSBsaWJyYXJ5IGluc3RhbmNl LCBidXQgdGhlIHdob2xlIHN1cnJvdW5kaW5nIGVjb3N5c3RlbSANCj4+IG5lZWRzIHRvIGZvbGxv dyBmb3IgdGhlIGNoYW5nZXMgdG8gbWFrZSBzZW5zZS4gQW5kIGFzIEkgdHJpZWQgdG8gbWFrZSAN Cj4+IGNsZWFyIGluIG15IGRpc2N1c3Npb24gd2l0aCBNaWNoYWVsIEJyb3duLCBJIGFtIG5vdCBr ZWVuIG9uIA0KPj4gcHJlc2VydmluZyBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSB3aXRoIHBsYXRm b3JtIGNvZGUgKGkuZS4gUEVJLCBEWEUsIA0KPj4gdGhpbmdzIHdlIGNvbnNpZGVyICJpbnRlcm5h bCIpLCBhcyBtb3N0IG9mIGl0IHNob3VsZCBiZSBjb250cm9sbGVkIGJ5IA0KPj4gRURLIElJIGFs cmVhZHkuIFRoaXMgb2YgY291cnNlIGRvZXMgKm5vdCogaW5jbHVkZSB1c2VyIGNvZGUgKE9ST01z LCANCj4+IGJvb3Rsb2FkZXJzLCAuLi4pLCBmb3Igd2hpY2ggSSB3YW50IHRvIHByb3ZpZGUgdGhl ICpvcHRpb24qIHRvIGxvY2sgDQo+PiBzb21lIG9mIHRoZW0gb3V0IGZvciBzZWN1cml0eSwgYnV0 IHdpdGggc2FuZSBkZWZhdWx0cyB0aGF0IHdpbGwgDQo+PiBlbnN1cmUgZ29vZCBjb21wYXRpYmls aXR5Lg0KPj4gDQo+PiBJJ2QgbGlrZSB0byB0aGFuayBNaWNoYWVsIEJyb3duIGZvciBoaXMgY29v cGVyYXRpb24gYW5kIHN1cHBvcnQsIA0KPj4gYmVjYXVzZSB3ZSByZWNlbnRseSBsYW5kZWQgY2hh bmdlcyBpbiBpUFhFIHRvIGFsbG93IGZvciB0aGUgc3RyaWN0ZXN0IA0KPj4gaW1hZ2UgZm9ybWF0 IGFuZCBwZXJtaXNzaW9uIGNvbnN0cmFpbnRzIGN1cnJlbnRseSBwb3NzaWJsZVsyXS4NCj4+IA0K Pj4gSSB3aWxsIGhhdmUgdG8gcmV3b3JrIHRoZSBzdWJtaXR0ZWQgcHJvcG9zYWwgdG8gcmVmbGVj dCB0aGUgbmV3IA0KPj4ga25vd2xlZGdlLiBUbyBiZSBob25lc3QsIHNlZWluZyBob3cgdGhlIEJa cyBrZXB0IHJvbGxpbmcgaW4sIEkgYW0gbm90IA0KPj4gY29udmluY2VkIGFuIGFtYXppbmcgYW1v dW50IG9mIG1haW5saW5pbmcgY2FuIGJlIGFjY29tcGxpc2hlZCBkdXJpbmcgDQo+PiB0aGUNCj4+ IDEwIHdlZWtzLiBJdCBtYXkgaGF2ZSB0byBzdWZmaWNlIHRvIGhhdmUgYSBwdWJsaWNseSBhY2Nl c3NpYmxlIA0KPj4gcHJvdG90eXBlIChlLmcuIE9WTUYpIGFuZCBhIHN1YnNldCBvZiB0aGUgcGxh bm5lZCBwYXRjaGVzIG9uIHRoZSBsaXN0Lg0KPj4gSSBob3BlIHlvdSBjYW4gbWFuYWdlIHRvIHBy b3ZpZGUgc29tZSBmZWVkYmFjayBiZWZvcmUgdGhlIGRlYWRsaW5lIHBhc3NlcyB0b21vcnJvdy4N Cj4+IA0KPj4gVGhhbmsgeW91IGluIGFkdmFuY2UhDQo+PiANCj4+IEJlc3QgcmVnYXJkcywNCj4+ IE1hcnZpbg0KPj4gDQo+PiBbMV0NCj4+IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9z aG93X2J1Zy5jZ2k/aWQ9MzMxNQ0KPj4gaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3No b3dfYnVnLmNnaT9pZD0zMzE2DQo+PiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hv d19idWcuY2dpP2lkPTMzMTcNCj4+IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93 X2J1Zy5jZ2k/aWQ9MzMxOA0KPj4gaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3df YnVnLmNnaT9pZD0zMzE5DQo+PiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19i dWcuY2dpP2lkPTMzMjANCj4+IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1 Zy5jZ2k/aWQ9MzMyMQ0KPj4gaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVn LmNnaT9pZD0zMzIyDQo+PiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcu Y2dpP2lkPTMzMjMNCj4+IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5j Z2k/aWQ9MzMyNA0KPj4gaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNn aT9pZD0zMzI2DQo+PiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dp P2lkPTMzMjcNCj4+IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/ aWQ9MzMyOA0KPj4gaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9p ZD0zMzI5DQo+PiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lk PTMzMzANCj4+IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9 MzMzMQ0KPj4gDQo+PiBbMl0gaHR0cHM6Ly9naXRodWIuY29tL2lweGUvaXB4ZS9wdWxsLzMxMw0K Pj4gDQo+PiBPbiAwNi4wNC4yMSAxMTo0MSwgTmF0ZSBEZVNpbW9uZSB3cm90ZToNCj4+PiBIaSBN YXJ2aW4sDQo+Pj4gDQo+Pj4gR3JlYXQgdG8gbWVldCB5b3UgYW5kIHdlbGNvbWUgYmFjayEgR2xh ZCB5b3UgaGVhciB5b3UgYXJlIA0KPj4+IGludGVyZXN0ZWQhIENvbXBsZXRpbmcgYSBmb3JtYWwg dmVyaWZpY2F0aW9uIG9mIGEgUEUvQ09GRg0KPj4gbG9hZGVyIGlzIGNlcnRhaW5seSBpbXByZXNz aXZlLiBXYXMgdGhpcyBkb25lIHdpdGggc29tZSBzb3J0IG9mIA0KPj4gYXV0b21hdGVkIHRoZW9y ZW0gcHJvdmluZz8gSXQgd291bGQgc2VlbSBhIHJhdGhlciBhcmR1b3VzIHRhc2sgZG9pbmcgDQo+ PiBhbiBpbmR1Y3RpdmUgcHJvb2YgZm9yIGFuIGFsZ29yaXRobSBsaWtlIHRoYXQgYnkgaGFuZCEg SSBjb21wbGV0ZWx5IGFncmVlIHdpdGggeW91IHRoYXQgZ2V0dGluZyBhIGZvcm1hbGx5IHZlcmlm aWVkIFBFL0NPRkYgbG9hZGVyIGludG8gbWFpbmxpbmUgaXMgdW5kb3VidGFibHkgdmFsdWFibGUg YW5kIHdvdWxkIHBheSBzZWN1cml0eSBkaXZpZGVuZHMgZm9yIHllYXJzIHRvIGNvbWUuDQo+Pj4g DQo+Pj4gQWRtaXR0ZWRseSwgdGhpcyBpcyBhbiBhcmVhIG9mIGNvbXB1dGVyIHNjaWVuY2UgdGhh dCBJIGRvbid0IGhhdmUgYSANCj4+PiBncmVhdCBkZWFsIG9mIGV4cGVyaWVuY2Ugd2l0aC4gVGhl IGZ1cnRoZXN0IEkgaGF2ZQ0KPj4gZ29uZSBvbiB0aGlzIHRvcGljIGlzIHdyaXRpbmcgb3V0IHBy b29mcyBmb3Igc2ltcGxlIGFsZ29yaXRobXMgb24gDQo+PiBleGFtcyBpbiBteSBBbGdvcml0aG1z IGNsYXNzIGluIGNvbGxlZ2UuIFJlZ2FyZGxlc3MgeW91IGhhdmUgYSBtdWNoIA0KPj4gYmV0dGVy IGlkZWEgb2Ygd2hhdCB0aGUgY3VycmVudCBzdGF0dXMgaXMgb2YgdGhlIHdvcmsgdGhhdCB5b3Ug YW5kIA0KPj4gVml0YWx5IGhhdmUgZG9uZS4gSSBndWVzcyBteSBvbmx5IHF1ZXN0aW9uIGlzIGRv IHlvdSB0aGluayB0aGVyZSBpcyANCj4+IHN1ZmZpY2llbnQgd29yayByZW1haW5pbmcgdG8gZmls bCB0aGUgMTAgd2VlayBHU29DIGRldmVsb3BtZW50IHdpbmRvdz8gQ2VydGFpbmx5IHdlIGNhbiB1 c2Ugc29tZSBvZiB0aGF0IHRpbWUgdG8gcGVyZm9ybSB0aGUgY29kZSByZXZpZXdzIHlvdSBtZW50 aW9uIGFuZCB3cml0ZSB1cCBmb3JtYWwgRUNScyBmb3IgdGhlIFVFRkkgc3BlYyBjaGFuZ2VzIHRo YXQgeW91IGJlbGlldmUgYXJlIG5lZWRlZC4NCj4+PiANCj4+PiBUaGFuayB5b3UgZm9yIHNlbmRp bmcgdGhlIGFwcGxpY2F0aW9uIGFuZCBhbGVydGluZyB1cyB0byB0aGUgZ3JlYXQgDQo+Pj4gd29y ayB5b3UgYW5kIFZpdGFseSBoYXZlIGRvbmUhIEknbGwgcmVhZCB5b3VyIHBhcGVyDQo+PiBtb3Jl IGNsb3NlbHkgYW5kIGNvbWUgYmFjayB3aXRoIGFueSBxdWVzdGlvbnMgSSBzdGlsbCBoYXZlLg0K Pj4+IA0KPj4+IFdpdGggQmVzdCBSZWdhcmRzLA0KPj4+IE5hdGUNCj4+PiANCj4+Pj4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRl dmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgDQo+Pj4+IE1hcnZpbiBIw6R1c2VyDQo+ Pj4+IFNlbnQ6IFN1bmRheSwgQXByaWwgNCwgMjAyMSA0OjAyIFBNDQo+Pj4+IFRvOiBkZXZlbEBl ZGsyLmdyb3Vwcy5pbzsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IEFuZHJldyAN Cj4+Pj4gRmlzaCA8YWZpc2hAYXBwbGUuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQgDQo+Pj4+IDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4+Pj4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtH U29DIHByb3Bvc2FsXSBTZWN1cmUgSW1hZ2UgTG9hZGVyDQo+Pj4+IA0KPj4+PiBHb29kIGRheSBl dmVyeW9uZSwNCj4+Pj4gDQo+Pj4+IEknbGwga2VlcCB0aGUgaW50cm9kdWN0aW9uIGJyaWVmIGJl Y2F1c2UgSSd2ZSBiZWVuIGFyb3VuZCBmb3IgYSANCj4+Pj4gd2hpbGUgbm93LiA6KSBJJ20gTWFy dmluIEjDpHVzZXIsIGEgdGhpcmQteWVhciBDb21wdXRlciBTY2llbmNlIA0KPj4+PiBzdHVkZW50 IGZyb20gVFUgS2Fpc2Vyc2xhdXRlcm4sIEdlcm1hbnkuIExhdGUgbGFzdCB5ZWFyLCBteSANCj4+ Pj4gY29sbGVhZ3VlIFZpdGFseSBmcm9tIElTUCBSQVMgYW5kIG1lIGludHJvZHVjZWQgYSBmb3Jt YWxseSB2ZXJpZmllZCANCj4+Pj4gSW1hZ2UgTG9hZGVyIGZvciBVRUZJIHVzYWdlIGF0IElTUCBS QVMgT3BlblsxXSBkdWUgdG8gdmFyaW91cyANCj4+Pj4gZGVmZWN0cyB3ZSBvdXRsaW5lZCBpbiB0 aGUgY29ycmVzcG9uZGluZyBwYXBlci4gVGhhbmsgeW91IG9uY2UgYWdhaW4gTGFzemxvIGZvciB5 b3VyICppbmNyZWRpYmxlKiByZXZpZXcgd29yayBvbiB0aGUgcHVibGljYXRpb24gcGFydC4NCj4+ Pj4gDQo+Pj4+IEkgbm93IHdhbnQgdG8gbWFrZSBhbiBlZmZvcnQgdG8gbWFpbmxpbmUgaXQsIHBy ZWZlcmFibHkgYXMgcGFydCBvZiANCj4+Pj4gdGhlIGN1cnJlbnQgR29vZ2xlIFN1bW1lciBvZiBD b2RlIGV2ZW50LiBUbyBiZSBjbGVhciwgbXkgaW50ZXJuc2hpcCANCj4+Pj4gYXQgSVNQIFJBUyBo YXMgY29uY2x1ZGVkLCBhbmQgd2hpbGUgVml0YWx5IHdpbGwgYmUgYXZhaWxhYmxlIGZvciANCj4+ Pj4gZGVzaWduIGRpc2N1c3Npb24sIGhlIGhhcyBvdGhlciBwcmlvcml0aWVzIGF0IHRoZSBtb21l bnQgYW5kIHRoZSANCj4+Pj4gcHJhY3RpY2FsIHBhcnQgd2lsbCBiZSBvbiBtZS4gSSBoYXZlIHBy ZXZpb3VzbHkgc3VibWl0dGVkIGEgcHJvcG9zYWwgdmlhIHRoZSBHU29DIHdlYnNpdGUgZm9yIHlv dXIgcmV2aWV3Lg0KPj4+PiANCj4+Pj4gVGhlcmUgYXJlIG1hbnkgdGhpbmdzIHRvIGNvbnNpZGVy Og0KPj4+PiAxLiBUaGUgSW1hZ2UgTG9hZGVyIGlzIGEgY29yZSBjb21wb25lbnQsIGFuZCB0aGVy ZSBuZWVkcyB0byBiZSBhIA0KPj4+PiBzaWduaWZpY2FudCBsZXZlbCBvZiBxdWFsaXR5IGFuZCBz ZWN1cml0eSBhc3N1cmFuY2UuDQo+Pj4+IDIuIEJlaW5nIGNvbnN1bWVkIGJ5IG1hbnkgcGFja2Fn ZXMsIHRoZSBwcm9wb3NlZCBwYXRjaCBzZXQgd2lsbCANCj4+Pj4gdGFrZSBhIGxvdCBvZiB0aW1l IHRvIHJldmlldyBhbmQgaW50ZWdyYXRlLg0KPj4+PiAzLiBEdXJpbmcgbXkgaW5pdGlhbCBleHBs b3JhdGlvbiwgSSBkaXNjb3ZlcmVkIGRlZmVjdGl2ZSBQUElzIGFuZCBwcm90b2NvbHMgKGUuZy4N Cj4+Pj4gcmV0dXJuaW5nIGRhdGEgd2l0aCBubyBjb3JyZXNwb25kaW5nIHNpemUpIG9yaWdpbmF0 aW5nIGZyb20gdGhlIA0KPj4+PiBVRUZJIFBJIGFuZCBVRUZJIHNwZWNpZmljYXRpb25zLiBDaGFu Z2VzIG5lZWQgdG8gYmUgZGlzY3Vzc2VkLCANCj4+Pj4gc2V0dGxlZCBvbiwgYW5kIHN1Ym1pdHRl ZCB0byB0aGUgVUVGSSBGb3J1bS4NCj4+Pj4gNC4gU29tZSBVRUZJIEFQSXMgbGlrZSB0aGUgU2Vj dXJpdHkgQXJjaGl0ZWN0dXJlIHByb3RvY29scyBhcmUgDQo+Pj4+IGluY29udmVuaWVudGx5IGFi c3RyYWN0LCBzZWUgNS4NCj4+Pj4gNS4gU29tZSBvZiB0aGUgY3VycmVudCBjb2RlIGRvZXMgbm90 IHVzZSB0aGUgZXhpc3RpbmcgY29udGV4dCwgb3IgDQo+Pj4+IGFjY2Vzc2VzIGl0IG91dHNpZGUg b2YgdGhlIGV4cG9zZWQgQVBJcy4gVGhlIGNvbnRyb2wgZmxvdyBvZiB0aGUgDQo+Pj4+IGRpc3Bh dGNoZXJzIG1heSBuZWVkIHRvIGJlIGFkYXB0ZWQgdG8gbWFrZSB0aGUgY29udGV4dCBhdmFpbGFi bGUgdG8gYXBwcm9wcmlhdGUgQVBJcy4NCj4+Pj4gDQo+Pj4+IEJ1dCBvYnZpb3VzbHkgdGhlcmUg YXJlIG5vdCBvbmx5IHVucGxlYXNhbnQgY29uc2lkZXJhdGlvbnM6DQo+Pj4+IEEuIFRoZSBJbWFn ZSBMb2FkZXIgaXMgbW9zdGx5IGZvcm1hbGx5IHZlcmlmaWVkLCBhbmQgb25seSB2ZXJ5IGZldyAN Cj4+Pj4gY2hhbmdlcyB3aWxsIGJlIHJlcXVpcmVkIGZyb20gdGhlIGxhc3QgcHJvdmVuIHN0YXRl LiBUaGlzIGdpdmVzIGEgDQo+Pj4+IGxvdCBvZiB0cnVzdCBpbiBpdHMgY29ycmVjdG5lc3MgYW5k IHNhZmV0eS4NCj4+Pj4gQi4gQWxsIG91dGxpbmVkIGRlZmVjdHMgdGhhdCBhcmUgb2YgY3JpdGlj YWwgbmF0dXJlIGhhdmUgYmVlbiBmaXhlZCBzdWNjZXNzZnVsbHkuDQo+Pj4+IEMuIFRoZSBJbWFn ZSBMb2FkZXIgaGFzIGJlZW4gdGVzdGVkIHdpdGggcmVhbC13b3JsZCBjb2RlIGxvYWRpbmcgDQo+ Pj4+IHJlYWwtd29ybGQgT1NlcyBvbiB0aG91c2FuZHMgb2YgbWFjaGluZXMgaW4gdGhlIHBhc3Qg ZmV3IG1vbnRocywgDQo+Pj4+IGluY2x1ZGluZyByZWplY3RpbmcgbWFsZm9ybWVkIGltYWdlcyAo Y29uZmlndXJhYmxlIGJ5IFBDRCkuDQo+Pj4+IEQuIFRoZSBuZXcgQVBJcyB3aWxsIGNlbnRyYWxp c2UgZXZlcnl0aGluZyBQRSwgcmVkdWNpbmcgY29kZSANCj4+Pj4gZHVwbGljYXRpb24gYW5kIHBv dGVudGlhbGx5IHVuc2FmZSBvcGVyYXRpb25zLg0KPj4+PiBFLiBDZW50cmFsaXNpbmcgYW5kIHJl ZHVjZWQgcGFyc2UgZHVwbGljYXRpb24gbWF5IGltcHJvdmUgb3ZlcmFsbCANCj4+Pj4gYm9vdCBw ZXJmb3JtYW5jZS4NCj4+Pj4gRi4gVGhlIGNvZGUgaGFzIGJlZW4gY292ZXJhZ2UtdGVzdGVkIHRv IG5vdCBjb250YWluIGRlYWQgY29kZS4NCj4+Pj4gRy4gVGhlIGNvZGUgaGFzIGJlZW4gZnV6ei10 ZXN0ZWQgaW5jbHVkaW5nIHNhbml0aXplcnMgdG8gbm90IGludm9rZSANCj4+Pj4gdW5kZWZpbmVk IGJlaGF2aW91ci4NCj4+Pj4gSC4gSSBhbHJlYWR5IG1hbmFnZWQgdG8gaWRlbnRpZnkgYSBtYWxm b3JtZWQgaW1hZ2UgaW4gT1ZNRiB3aXRoIGl0cyANCj4+Pj4gaGVscCAoaW5jb3JyZWN0bHkgcmVw b3J0ZWQgc2VjdGlvbiBhbGlnbm1lbnQgb2YgYW4gSW50ZWwgSVBYRSANCj4+Pj4gZHJpdmVyKS4g QSBmaXggd2lsbCBiZSBzdWJtaXR0ZWQgc2hvcnRseS4NCj4+Pj4gSS4gSSBwbGFuIHRvIHN1cHBv cnQgUEUgc2VjdGlvbiBwZXJtaXNzaW9ucywgYWxsb3dpbmcgZm9yIHJlYWQtb25seSANCj4+Pj4g ZGF0YSBzZWdtZW50cyB3aGVuIGVuYWJsZWQuDQo+Pj4+IA0KPj4+PiBUaGVyZSBhcmUgbGlrZWx5 IG1vcmUgcG9pbnRzIGZvciBib3RoIGxpc3RzLCBidXQgSSBob3BlIHRoaXMgZ2l2ZXMgDQo+Pj4+ IGEgZGVjZW50IHN0YXJ0aW5nIHBvaW50IGZvciBkaXNjdXNzaW9uLiBXaGF0IGFyZSB5b3VyIHRo b3VnaHRzIG9uIA0KPj4+PiB0aGUgbWF0dGVyPyBJIHN0cm9uZ2x5IGVuY291cmFnZSBldmVyeW9u ZSB0byByZWFkIHRoZSBzZWN0aW9uIA0KPj4+PiByZWdhcmRpbmcgZGVmZWN0cyBvZiBvdXIgcHVi bGljYXRpb25bMl0gdG8gYmV0dGVyIHVuZGVyc3RhbmQgdGhlIA0KPj4+PiBtb3RpdmF0aW9uLiBU aGUgdmFndWUgcG9pbnRzIGFib3ZlIGNhbiBvZiBjb3Vyc2UgYmUgZWxhYm9yYXRlZCBpbiBkdWUg dGltZSwgYXMgeW91IHNlZSBmaXQuDQo+Pj4+IA0KPj4+PiBUaGFuayB5b3UgZm9yIHlvdXIgdGlt ZSENCj4+Pj4gDQo+Pj4+IEJlc3QgcmVnYXJkcywNCj4+Pj4gTWFydmluDQo+Pj4+IA0KPj4+PiAN Cj4+Pj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9taGFldXNlci9JU1BSQVNPcGVuLVNlY3VyZVBF DQo+Pj4+IFsyXSBodHRwczovL2FyeGl2Lm9yZy9wZGYvMjAxMi4wNTQ3MS5wZGYNCj4+Pj4gDQo+ Pj4+IA0KPj4+PiANCj4+Pj4gDQo+Pj4gDQo+Pj4gDQo+Pj4gDQo+Pj4gDQo+Pj4gDQo=