From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web10.38811.1607968357125058530 for ; Mon, 14 Dec 2020 09:52:37 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=PanQ/JIh; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: michael.d.kinney@intel.com) IronPort-SDR: l0reuYHQLN/RQSLRBF+flSt53W13RlzbtXNo/tsOHRUGNIb6vfnBMpHKSQqQ3Onoqnfdj03Pmc Mkm5heXTNagQ== X-IronPort-AV: E=McAfee;i="6000,8403,9834"; a="238850988" X-IronPort-AV: E=Sophos;i="5.78,420,1599548400"; d="scan'208";a="238850988" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Dec 2020 09:52:35 -0800 IronPort-SDR: 384J8wYTuElxJOzVD/7g/+NmRdiixilNOtj86AbIbFQpmExvPtRgZgyBeJQHzalPOeGVBKyueC 2L32cGms+JvQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,420,1599548400"; d="scan'208";a="333714733" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by fmsmga008.fm.intel.com with ESMTP; 14 Dec 2020 09:52:34 -0800 Received: from orsmsx605.amr.corp.intel.com (10.22.229.18) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 14 Dec 2020 09:52:34 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 14 Dec 2020 09:52:34 -0800 Received: from NAM04-CO1-obe.outbound.protection.outlook.com (104.47.45.50) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Mon, 14 Dec 2020 09:52:34 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f+BIbOvbpcqc5N94KMFdXnMO9bcSL5tsPtubJU7Ypncs2iMAdLi5kqUNqW1oKtifiqpANpC/58Xfj2XV5lzLP8LtVf0xm1Tmm2B7TtVngKuSyLzPoAD0gyMXuRjimcw372np1MdB1AHOtF345ZHTSrFtUCe3HDW5I3qG2PayPEInL/bPpph2+mfWbg3xI8kGORfgI4WI5eXomTZfOWE+WiVdSmsN6w2vm3P+ZH+blIITQoZ1DSNMxSR/QHsPqNmnLzwuY3XBXTbFo528BGedW/VmPh4e5OTD39kuHw9Dya3u8iGM0vB4KC3XtbSSZvMIoDreV75ZMfCpClSRbNJfEw== 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=pabDpcHFzv8L02AD8XAfzhC6ZyRJ861Zay7dEwmJytQ=; b=KKiTiUuWx0x0GibkMciv+DCLIJJyYMGc2KGwk0/jacouhIH316Q74w1bFM94ZxJBoeXpfDwVX8/24M1jaxhHXniHreh/MV5Q6oAUpb6XiAwn1nZe6uaXSMyq9YP9K66hc/4xWX3pwOhqjGvPifbVqtNBg36LbjgmRKfFC0jtInn/4I9qbGyXfMakS07nUlwdC7XFJIHifpC+pG2MF7e8gf3TX5X+1rGqsJXT1h8WYLFewWybiWrLvb4iQtZWkVyTjqHM+vIRi+p27ZzTaVZ1El5u9S2cwxqZLxS0G2BIWNiWfxFvRMxLjiJyTjAzp65oZzSZVsVm8wmRDK5IpYuOqw== 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=pabDpcHFzv8L02AD8XAfzhC6ZyRJ861Zay7dEwmJytQ=; b=PanQ/JIh0QaBe9E3fSPO4JxQjc+GEFtoDK4SIIAwC62LtCsXabpumZs3qmqH346qS0QrwnEmCWnbRIKfEOhY4pDML+Yb/IiaRf+3pngUfhbWwF9GOxcdO0rTFX2fu5Z1r9OYZZfWg/9GdzuOmL9dIhvZTKY1Xc+hXy/w/YYloug= Received: from BL0PR11MB3236.namprd11.prod.outlook.com (2603:10b6:208:60::18) by MN2PR11MB4173.namprd11.prod.outlook.com (2603:10b6:208:137::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3654.17; Mon, 14 Dec 2020 17:52:32 +0000 Received: from BL0PR11MB3236.namprd11.prod.outlook.com ([fe80::dcf8:f2f2:db7c:1cec]) by BL0PR11MB3236.namprd11.prod.outlook.com ([fe80::dcf8:f2f2:db7c:1cec%7]) with mapi id 15.20.3654.025; Mon, 14 Dec 2020 17:52:32 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "gaoliming@byosoft.com.cn" , "Kinney, Michael D" CC: "Wu, Hao A" , 'Bret Barkelew' Subject: Re: [edk2-devel] [Patch v4 2/2] MdeModulePkg/Variable/RuntimeDxe: Add Variable Lock Protocol Unit Tests Thread-Topic: [edk2-devel] [Patch v4 2/2] MdeModulePkg/Variable/RuntimeDxe: Add Variable Lock Protocol Unit Tests Thread-Index: AQHWz5PnJy0SNzjNmUiU1fixtHwDMKn12WOAgAEIFxA= Date: Mon, 14 Dec 2020 17:52:32 +0000 Message-ID: References: <20201211080118.1885-1-michael.d.kinney@intel.com> <20201211080118.1885-3-michael.d.kinney@intel.com> <005001d6d1bc$487da920$d978fb60$@byosoft.com.cn> In-Reply-To: <005001d6d1bc$487da920$d978fb60$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 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: [24.19.191.44] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 05ea5fc1-bf5d-47c7-523f-08d8a059088b x-ms-traffictypediagnostic: MN2PR11MB4173: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: B8gsCCsm5LXXoNR7bGKosun2DeYcUtZYrbgmF1ugAizt0BWh4txdtCojleGtpFjUN35T8SzqUf7WSgl0SmBKsTXuT63aTJ/NnFVoVu9cQqyAuZRdF/VHA6gOZk9yhDJ8wkuu4ETm8P64wBnlhlsYwiajPB3ZlJZsy70LoDqhJHq9su3G1O7+HDu5gw5uZyZ2EkTbnEWf+i+4YpxOWRz0AP5jj1am6xHW8WpeEbJ/hnZJjB2eI/c47Urg5iYo6CfUgSWC8EioqeiMNgatezOeYUk/ro/JDgIMKZ6zpmYar29FzvtiTNTu8wdKTxYctEcMrDMNsISTrDaTBoXfV4M2vMGkQKMc4zxBB52DxSMDTqRQD+5Wq1HRKI8plGvQVDSP1Z0+RYp3Zn0gSG9NTKgnpQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR11MB3236.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(376002)(136003)(346002)(45080400002)(54906003)(66476007)(7696005)(8676002)(4326008)(110136005)(86362001)(33656002)(966005)(83380400001)(9686003)(55016002)(508600001)(5660300002)(186003)(2906002)(30864003)(6506007)(71200400001)(8936002)(66446008)(26005)(53546011)(66556008)(64756008)(66946007)(76116006)(52536014)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?N1Y3eWVRbDBpYXF2L2Y1M0NQcUxHUTB6MU9wNXJmY3RhM3YxTzQyU3NPVFor?= =?utf-8?B?UFd0QzhYcHhpWTZHM2lvdkhBS2orelRVT2xuZHl2aFlnUk1mN3ZOME42dFVK?= =?utf-8?B?Z3FLMHd3Ty9LcythRGpibG9KTlJiUzh2RXFBcmVWWU9hVm5Ha2pSSG9pNmsy?= =?utf-8?B?UnJvMmJtN0t2bysxbkxnNFBCMXlxTmRQRFdacnhyM25XZU1Va0Y3UVRVQTZI?= =?utf-8?B?aFdvWlFJd3pXQkhWMEQ2VVpsSkZRK2RxWWhWcHBLSVFxc3FkNTJxOWE5RGF4?= =?utf-8?B?VVpKa0RXcGJ4a0tjTWw3dWNZdlRZTW1pU3I0WXNMY3JPTmhTOEplRnhyanY5?= =?utf-8?B?dUFmamhXckRtMXZ0ejkwUnhFS0l1NXgwREMxNGt0ZVhnb3F0QW5pa1BYb2tt?= =?utf-8?B?WmIzOFg3eld4ajBnaUpmRWJyYXVJLzlyZGhqdGRpMENwUDE1c2Z4WXNJUy83?= =?utf-8?B?VFBQaUQxVGNZSzZUdzhIYkp6UjZMcEp5RDRaUDVaM3hkNUxzaVJjQ0xHb2VE?= =?utf-8?B?UHRpTUhUTVJNQ2N1bU9mVU5PYitDdml2amcwaUJIb2RYWmUzY3hBNkt6cVRC?= =?utf-8?B?eUdBZEJyZDQ1bmo2N0ZuYlYrVDhHa2N5bnh0UFFNVkJmUWQzUU9RNi9nV21E?= =?utf-8?B?c0tXOVFlNjZkTEwyNHo0RGhxSGRLZGFKeFBpWDFDZ2xBbElqTzZBRHZvb0tZ?= =?utf-8?B?eUY5UUdrTnNPUUw4WDBOTzVpZXN6aFdNb29qSFg0VUNnTE1JeUh1N3hzYkE2?= =?utf-8?B?Qi9tclJhV3ROK0sxM0ROMStoaFMzMHNzMjRGNlRldEo1Y3VYbHBOUnZWTDh3?= =?utf-8?B?WW9HNjNNUW1Zd1hnMnFQTlNKUmRlV2x5TkV1b2RwV0d1ZHJtRUJjOTg4blM5?= =?utf-8?B?M2Y0R2g5OWo4RGY0S2orYURWcFo0Z0ZuNVdhbjNKcFdvVk1wMUs5V3JSRFJX?= =?utf-8?B?Yi8yUEIySUVFR2tmbmlrMVp3N2VMZ3ZuSDdSWk9jbmtJSHgrcnZYdGtFT2t6?= =?utf-8?B?VlFPeWRKaUFKOW91OWNxdEN3VHRCazhQTnUrVDlRN2ZhY3kwcCt3ZS9mTU5U?= =?utf-8?B?c3VlUzNIQU4reVE2S0duY0dvamZqWUJuN0VrY0dkK1YrK0p4N0RqU2xBVTQ2?= =?utf-8?B?bjdYVDNMSThEK0VkVVlhQWQ1UmQzTkpTOWRDb3Fva04yWlFTOUxOOXI2ZXNV?= =?utf-8?B?aExrNUc2SkxvVXZmM01pQko3L1Y0bEM0aWdvM015bXZrUlpCR0J1cWd5TVUv?= =?utf-8?B?RWFuSElTZm5mNEx1Q0F4Q2xoNFRWSk05L2FHaGphVy9TVGZJVXZQM0RvdVM1?= =?utf-8?Q?RRuNhfQFkcAoE=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL0PR11MB3236.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 05ea5fc1-bf5d-47c7-523f-08d8a059088b X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Dec 2020 17:52:32.7337 (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: lOedmjw/2obD9UfRCJW2nOAf9GJ9vF5jT3JLPw5e3NeAGBNPJY8+l+qQhVD09ZvFj5jVpKuM0p80kWxrjosjz6EUR6SA3N1Lbx+XQ7p5qjY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4173 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGltaW5nLA0KDQpJIGFncmVlIGl0IGJyZWFrcyB0aGUgcnVsZXMgdG8gdXNlIC4uIGluIHRo ZSBbU291cmNlc10gc2VjdGlvbiBvZiBhbiBJTkYgZmlsZS4NCg0KSG93ZXZlciwgSSBkbyB0aGlu ayBpdCBpcyBpbXBvcnRhbnQgdG8gaXNvbGF0ZSBhbGwgdW5pdCB0ZXN0IHJlbGF0ZWQgY29kZSAo aW5jbHVkaW5nIElORnMpDQppbnRvIHRoZWlyIG93biBUZXN0IGRpcmVjdG9yaWVzIHNvIGRldmVs b3BlcnMgY2FuIGVhc2lseSBkaXN0aW5ndWlzaCBzb3VyY2UgY29kZSBhbmQgSU5Gcw0KYXNzb2Np YXRlZCB3aXRoIEZXIGltcGxlbWVudGF0aW9ucyBmcm9tIHVuaXQgdGVzdHMgYW5kIHBvdGVudGlh bGx5IHNldCB1cCBzcGFyc2UgY2hlY2sgb3V0DQpydWxlcyBvciBmaWx0ZXJzIHNvIGNvZGUgc2Vh cmNoZXMgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gb25seSBzZWFyY2ggRlcgY29kZSBhcnRpZmFjdHMu DQoNClRoZXJlIGlzIGEgaG9zdCBiYXNlZCB1bml0IHRlc3QgZmVhdHVyZSBnYXAgdGhhdCBuZWVk cyB0byBiZSBhZGRyZXNzZXMgZm9yIG1vZHVsZSBzY29wZWQNCnRlc3RpbmcgdnMgbGlicmFyeSBz Y29wZWQgdGVzdGluZy4gIExpYnJhcnkgc2NvcGVkIHRlc3RpbmcgY2FuIHVzZSBsaWIgY2xhc3Mv bGliIGluc3RhbmNlDQptYXBwaW5nIGluIGhvc3QgYmFzZWQgdW5pdCB0ZXN0IERTQyBmaWxlIHRv IHB1bGwgbGliIGludGVyZmFjZXMgaW50byBhIGhvc3QgYmFzZWQgdW5pdCB0ZXN0Lg0KRm9yIG1v ZHVsZSBzY29wZWQgdGVzdGluZyB0b2RheSwgd2UgZG8gbm90IGhhdmUgYWNjZXNzIHRvIHRoZSBt b2R1bGUgY29kZSBhcyBhIGxpYnJhcnksIHNvDQp5b3Ugc2VlIHRoZSBleGFtcGxlIGhlcmUgb2Yg cmVmZXJlbmNpbmcgYSBtb2R1bGUgc291cmNlIGZpbGUgZnJvbSBhIHVuaXQgdGVzdC4NCg0KSSB3 b3VsZCBwcmVmZXIgd2UgYWxsb3cgdGhpcyBjb2RlIHJlbWFpbiAiYXMgaXMiIHRvZGF5IGFuZCBl bnRlciAyIG5ldyBCWnM6DQoNCiogQWRkIGJldHRlciBzdXBwb3J0IGZvciBtb2R1bGUgc2NvcGVk IHRlc3RpbmcgdG8gVW5pdFRlc3RGcmFtZXdvcmtQa2cgdGhhdCBhdm9pZHMgdGhlDQogIG5lZWQg dG8gdXNlIC4uIGluIFtTb3VyY2VzXSBzZWN0aW9ucyBvZiBob3N0IGJhc2VkIHVuaXQgdGVzdCBJ TkYgZmlsZXMuDQoNCiogUmVtb3ZlIHVzZSBvZiAuLiBmcm9tIElORiBpbiBob3N0IGJhc2VkIHVu aXQgdGVzdCBvZiBWYXJpYWJsZSBMb2NrIFByb3RvY29sIGFuZCANCiAgVmFyaWFibGUgUG9saWN5 IFByb3RvY29sIGluIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9U ZXN0Lg0KDQpCZXN0IHJlZ2FyZHMsDQoNCk1pa2UNCg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5p bz4gT24gQmVoYWxmIE9mIGdhb2xpbWluZw0KPiBTZW50OiBTdW5kYXksIERlY2VtYmVyIDEzLCAy MDIwIDU6NTYgUE0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBLaW5uZXksIE1pY2hhZWwg RCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IENjOiBXdSwgSGFvIEEgPGhhby5hLnd1 QGludGVsLmNvbT47ICdCcmV0IEJhcmtlbGV3JyA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29t Pg0KPiBTdWJqZWN0OiDlm57lpI06IFtlZGsyLWRldmVsXSBbUGF0Y2ggdjQgMi8yXSBNZGVNb2R1 bGVQa2cvVmFyaWFibGUvUnVudGltZUR4ZTogQWRkIFZhcmlhYmxlIExvY2sgUHJvdG9jb2wgVW5p dCBUZXN0cw0KPiANCj4gTWlrZSBhbmQgQnJldDoNCj4gICBTZWVtbHksIHRoaXMgaXMgdGhlIGZp cnN0IHVuaXQgdGVzdCBjYXNlIGZvciB0aGUgbG9naWMgaW4gdGhlIGRyaXZlci4gVGhpcw0KPiB1 bml0IHRlc3QgbW9kdWxlIG5lZWRzIHRvIGluY2x1ZGUgdGhlIGRyaXZlciBzb3VyY2UgZmlsZS4g VGhlbiwgaXRzIElORiBmaWxlDQo+IGhhcyB0byB1c2UgdGhlIGJlbG93IHN0eWxlIHRvIGluY2x1 ZGUgdGhlIHNvdXJjZSBmaWxlLiBCdXQsIGVkazIgbW9kdWxlIElORg0KPiBkb2Vzbid0IHJlY29t bWVuZCB0byBzcGVjaWZ5IHRoZSBzb3VyY2UgZmlsZSB3aXRoIHRoZSByZWxhdGl2ZSB1cHBlcg0K PiBkaXJlY3RvcnkgKC4uKS4gSG93IGFib3V0IGFkZCBWYXJpYWJsZUxvY2tSZXF1ZXN0VG9Mb2Nr VW5pdFRlc3QuaW5mIGludG8NCj4gTWRlTW9kdWxlUGtnXFVuaXZlcnNhbFxWYXJpYWJsZVxSdW50 aW1lRHhlXCBkaXJlY3Rvcnk/IElmIHNvLCB0aGlzIElORiBjYW4NCj4gZGlyZWN0bHkgc3BlY2lm eSB0aGUgc291cmNlIGZpbGUgaW4gW1NvdXJjZXNdIHNlY3Rpb24uDQo+IA0KPiA+ICtbU291cmNl c10NCj4gPiArICBWYXJpYWJsZUxvY2tSZXF1ZXN0VG9Mb2NrVW5pdFRlc3QuYw0KPiA+ICsgIC4u L1ZhcmlhYmxlTG9ja1JlcXVlc3RUb0xvY2suYw0KPiA+ICsNCj4gDQo+IFRoYW5rcw0KPiBMaW1p bmcNCj4gPiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+ID4g5Y+R5Lu25Lq6OiBib3VuY2UrMjc5 NTIrNjg3MDMrNDkwNTk1Mys4NzYxMDQ1QGdyb3Vwcy5pbw0KPiA+IDxib3VuY2UrMjc5NTIrNjg3 MDMrNDkwNTk1Mys4NzYxMDQ1QGdyb3Vwcy5pbz4g5Luj6KGoIE1pY2hhZWwgRA0KPiA+IEtpbm5l eQ0KPiA+IOWPkemAgeaXtumXtDogMjAyMOW5tDEy5pyIMTHml6UgMTY6MDENCj4gPiDmlLbku7bk uro6IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4g5oqE6YCBOiBIYW8gQSBXdSA8aGFvLmEud3VA aW50ZWwuY29tPjsgTGltaW5nIEdhbw0KPiA+IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBC cmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+DQo+ID4g5Li76aKYOiBb ZWRrMi1kZXZlbF0gW1BhdGNoIHY0IDIvMl0gTWRlTW9kdWxlUGtnL1ZhcmlhYmxlL1J1bnRpbWVE eGU6IEFkZA0KPiA+IFZhcmlhYmxlIExvY2sgUHJvdG9jb2wgVW5pdCBUZXN0cw0KPiA+DQo+ID4g aHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTExDQo+ID4N Cj4gPiBBZGQgaG9zdCBiYXNlZCB1bml0IHRlc3RzIGZvciB0aGUgbXVsdGlwbGUgbG9jayBjYXNl IHVzaW5nIFZhcmlhYmxlIExvY2sNCj4gPiBQcm90b2NvbCwgVmFyaWFibGUgUG9saWN5IFByb3Rv Y29sLCBhbmQgbWl4ZXMgb2YgVmFyaWFibGUgTG9jayBQcm90b2NvbA0KPiA+IGFuZCBWYXJpYWJs ZSBQb2xpY3kgUHJvdG9jb2wuDQo+ID4NCj4gPiBDYzogTWljaGFlbCBEIEtpbm5leSA8bWljaGFl bC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gQ2M6IEhhbyBBIFd1IDxoYW8uYS53dUBpbnRlbC5j b20+DQo+ID4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gPiBT aWduZWQtb2ZmLWJ5OiBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+ DQo+ID4gLS0tDQo+ID4gIE1kZU1vZHVsZVBrZy9UZXN0L01kZU1vZHVsZVBrZ0hvc3RUZXN0LmRz YyAgICB8ICAxMSArDQo+ID4gIC4uLi9WYXJpYWJsZUxvY2tSZXF1ZXN0VG9Mb2NrVW5pdFRlc3Qu YyAgICAgICB8IDU2NQ0KPiA+ICsrKysrKysrKysrKysrKysrKw0KPiA+ICAuLi4vVmFyaWFibGVM b2NrUmVxdWVzdFRvTG9ja1VuaXRUZXN0LmluZiAgICAgfCAgMzYgKysNCj4gPiAgMyBmaWxlcyBj aGFuZ2VkLCA2MTIgaW5zZXJ0aW9ucygrKQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBN ZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvUnVudGltZUR4ZVVuaXRU ZXN0L1ZhcmlhYg0KPiA+IGxlTG9ja1JlcXVlc3RUb0xvY2tVbml0VGVzdC5jDQo+ID4gIGNyZWF0 ZSBtb2RlIDEwMDY0NA0KPiA+IE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGlt ZUR4ZS9SdW50aW1lRHhlVW5pdFRlc3QvVmFyaWFiDQo+ID4gbGVMb2NrUmVxdWVzdFRvTG9ja1Vu aXRUZXN0LmluZg0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9UZXN0L01kZU1v ZHVsZVBrZ0hvc3RUZXN0LmRzYw0KPiA+IGIvTWRlTW9kdWxlUGtnL1Rlc3QvTWRlTW9kdWxlUGtn SG9zdFRlc3QuZHNjDQo+ID4gaW5kZXggNzJhMTE5ZGI0NTY4Li40ZGE0NjkyYzg0NTEgMTAwNjQ0 DQo+ID4gLS0tIGEvTWRlTW9kdWxlUGtnL1Rlc3QvTWRlTW9kdWxlUGtnSG9zdFRlc3QuZHNjDQo+ ID4gKysrIGIvTWRlTW9kdWxlUGtnL1Rlc3QvTWRlTW9kdWxlUGtnSG9zdFRlc3QuZHNjDQo+ID4g QEAgLTE5LDYgKzE5LDkgQEAgW0RlZmluZXNdDQo+ID4NCj4gPiAgIWluY2x1ZGUgVW5pdFRlc3RG cmFtZXdvcmtQa2cvVW5pdFRlc3RGcmFtZXdvcmtQa2dIb3N0LmRzYy5pbmMNCj4gPg0KPiA+ICtb TGlicmFyeUNsYXNzZXNdDQo+ID4gKyAgU2FmZUludExpYnxNZGVQa2cvTGlicmFyeS9CYXNlU2Fm ZUludExpYi9CYXNlU2FmZUludExpYi5pbmYNCj4gPiArDQo+ID4gIFtDb21wb25lbnRzXQ0KPiA+ DQo+ID4gTWRlTW9kdWxlUGtnL0xpYnJhcnkvRHhlUmVzZXRTeXN0ZW1MaWIvVW5pdFRlc3QvTW9j a1VlZmlSdW50aW1lU2VydmkNCj4gPiBjZXNUYWJsZUxpYi5pbmYNCj4gPg0KPiA+IEBAIC0zMCwz ICszMywxMSBAQCBbQ29tcG9uZW50c10NCj4gPg0KPiA+IFJlc2V0U3lzdGVtTGlifE1kZU1vZHVs ZVBrZy9MaWJyYXJ5L0R4ZVJlc2V0U3lzdGVtTGliL0R4ZVJlc2V0U3lzdGUNCj4gPiBtTGliLmlu Zg0KPiA+DQo+ID4gVWVmaVJ1bnRpbWVTZXJ2aWNlc1RhYmxlTGlifE1kZU1vZHVsZVBrZy9MaWJy YXJ5L0R4ZVJlc2V0U3lzdGVtTGliL1UNCj4gPiBuaXRUZXN0L01vY2tVZWZpUnVudGltZVNlcnZp Y2VzVGFibGVMaWIuaW5mDQo+ID4gICAgfQ0KPiA+ICsNCj4gPiArDQo+ID4gTWRlTW9kdWxlUGtn L1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1J1bnRpbWVEeGVVbml0VGVzdC9WYXJpYWIN Cj4gPiBsZUxvY2tSZXF1ZXN0VG9Mb2NrVW5pdFRlc3QuaW5mIHsNCj4gPiArICAgIDxMaWJyYXJ5 Q2xhc3Nlcz4NCj4gPiArDQo+ID4gVmFyaWFibGVQb2xpY3lMaWJ8TWRlTW9kdWxlUGtnL0xpYnJh cnkvVmFyaWFibGVQb2xpY3lMaWIvVmFyaWFibGVQb2xpY3lMaWINCj4gPiAuaW5mDQo+ID4gKw0K PiA+IFZhcmlhYmxlUG9saWN5SGVscGVyTGlifE1kZU1vZHVsZVBrZy9MaWJyYXJ5L1ZhcmlhYmxl UG9saWN5SGVscGVyTGliL1ZhcmkNCj4gPiBhYmxlUG9saWN5SGVscGVyTGliLmluZg0KPiA+ICsg ICAgPFBjZHNGaXhlZEF0QnVpbGQ+DQo+ID4gKw0KPiA+IGdFZmlNZGVNb2R1bGVQa2dUb2tlblNw YWNlR3VpZC5QY2RBbGxvd1ZhcmlhYmxlUG9saWN5RW5mb3JjZW1lbnREaXNhYg0KPiA+IGxlfFRS VUUNCj4gPiArICB9DQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNh bC9WYXJpYWJsZS9SdW50aW1lRHhlL1J1bnRpbWVEeGVVbml0VGVzdC9WYXJpDQo+ID4gYWJsZUxv Y2tSZXF1ZXN0VG9Mb2NrVW5pdFRlc3QuYw0KPiA+IGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9W YXJpYWJsZS9SdW50aW1lRHhlL1J1bnRpbWVEeGVVbml0VGVzdC9WYXJpDQo+ID4gYWJsZUxvY2tS ZXF1ZXN0VG9Mb2NrVW5pdFRlc3QuYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5k ZXggMDAwMDAwMDAwMDAwLi40NGQ3MGU2MzlkNzcNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysr DQo+ID4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvUnVudGlt ZUR4ZVVuaXRUZXN0L1ZhcmkNCj4gPiBhYmxlTG9ja1JlcXVlc3RUb0xvY2tVbml0VGVzdC5jDQo+ ID4gQEAgLTAsMCArMSw1NjUgQEANCj4gPiArLyoqIEBmaWxlDQo+ID4gKyAgVGhpcyBpcyBhIGhv c3QtYmFzZWQgdW5pdCB0ZXN0IGZvciB0aGUgVmFyaWFibGVMb2NrUmVxdWVzdFRvTG9jayBzaGlt Lg0KPiA+ICsNCj4gPiArICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4NCj4g PiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ICsN Cj4gPiArKiovDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8c3RkaW8uaD4NCj4gPiArI2luY2x1ZGUg PHN0cmluZy5oPg0KPiA+ICsjaW5jbHVkZSA8c3RkYXJnLmg+DQo+ID4gKyNpbmNsdWRlIDxzdGRk ZWYuaD4NCj4gPiArI2luY2x1ZGUgPHNldGptcC5oPg0KPiA+ICsjaW5jbHVkZSA8Y21vY2thLmg+ DQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8VWVmaS5oPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9E ZWJ1Z0xpYi5oPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTWVtb3J5TGliLmg+DQo+ID4g KyNpbmNsdWRlIDxMaWJyYXJ5L01lbW9yeUFsbG9jYXRpb25MaWIuaD4NCj4gPiArI2luY2x1ZGUg PExpYnJhcnkvVW5pdFRlc3RMaWIuaD4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvVmFyaWFibGVQ b2xpY3lMaWIuaD4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvVmFyaWFibGVQb2xpY3lIZWxwZXJM aWIuaD4NCj4gPiArDQo+ID4gKyNpbmNsdWRlIDxQcm90b2NvbC9WYXJpYWJsZUxvY2suaD4NCj4g PiArDQo+ID4gKyNkZWZpbmUgVU5JVF9URVNUX05BTUUgICAgICAgICJWYXJQb2wvVmFyTG9jayBT aGltIFVuaXQgVGVzdCINCj4gPiArI2RlZmluZSBVTklUX1RFU1RfVkVSU0lPTiAgICAgIjEuMCIN Cj4gPiArDQo+ID4gKy8vLz09PSBDT0RFIFVOREVSIFRFU1QNCj4gPiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+ID09PT09 PT09PT09PT0NCj4gPiArDQo+ID4gK0VGSV9TVEFUVVMNCj4gPiArRUZJQVBJDQo+ID4gK1Zhcmlh YmxlTG9ja1JlcXVlc3RUb0xvY2sgKA0KPiA+ICsgIElOIENPTlNUIEVES0lJX1ZBUklBQkxFX0xP Q0tfUFJPVE9DT0wgICpUaGlzLA0KPiA+ICsgIElOICAgICAgIENIQVIxNiAgICAgICAgICAgICAg ICAgICAgICAgICpWYXJpYWJsZU5hbWUsDQo+ID4gKyAgSU4gICAgICAgRUZJX0dVSUQgICAgICAg ICAgICAgICAgICAgICAgKlZlbmRvckd1aWQNCj4gPiArICApOw0KPiA+ICsNCj4gPiArLy8vPT09 IFRFU1QgREFUQQ0KPiA+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQo+ID4gPT09PT09PT09PT09PT09PT09PT0NCj4gPiArDQo+ ID4gKy8vDQo+ID4gKy8vIFRlc3QgR1VJRCAxIHtGOTU1QkEyRC00QTJDLTQ4MEMtQkZEMS0zQ0M1 MjI2MTA1OTJ9DQo+ID4gKy8vDQo+ID4gK0VGSV9HVUlEICBtVGVzdEd1aWQxID0gew0KPiA+ICsg IDB4Zjk1NWJhMmQsIDB4NGEyYywgMHg0ODBjLCB7MHhiZiwgMHhkMSwgMHgzYywgMHhjNSwgMHgy MiwgMHg2MSwgMHg1LA0KPiA+IDB4OTJ9DQo+ID4gK307DQo+ID4gKw0KPiA+ICsvLw0KPiA+ICsv LyBUZXN0IEdVSUQgMiB7MkRFQTc5OUUtNUU3My00M0I5LTg3MEUtQzk0NUNFODJBRjNBfQ0KPiA+ ICsvLw0KPiA+ICtFRklfR1VJRCAgbVRlc3RHdWlkMiA9IHsNCj4gPiArICAweDJkZWE3OTllLCAw eDVlNzMsIDB4NDNiOSwgezB4ODcsIDB4ZSwgMHhjOSwgMHg0NSwgMHhjZSwgMHg4MiwgMHhhZiwN Cj4gPiAweDNhfQ0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArLy8NCj4gPiArLy8gVGVzdCBHVUlEIDMg ezY5OEEyQkZELUE2MTYtNDgyRC1CODhDLTcxMDBCRDY2ODJBOX0NCj4gPiArLy8NCj4gPiArRUZJ X0dVSUQgIG1UZXN0R3VpZDMgPSB7DQo+ID4gKyAgMHg2OThhMmJmZCwgMHhhNjE2LCAweDQ4MmQs IHsweGI4LCAweDhjLCAweDcxLCAweDAsIDB4YmQsIDB4NjYsIDB4ODIsDQo+ID4gMHhhOX0NCj4g PiArfTsNCj4gPiArDQo+ID4gKyNkZWZpbmUgVEVTVF9WQVJfMV9OQU1FICAgICAgICAgICAgICBM IlRlc3RWYXIxIg0KPiA+ICsjZGVmaW5lIFRFU1RfVkFSXzJfTkFNRSAgICAgICAgICAgICAgTCJU ZXN0VmFyMiINCj4gPiArI2RlZmluZSBURVNUX1ZBUl8zX05BTUUgICAgICAgICAgICAgIEwiVGVz dFZhcjMiDQo+ID4gKw0KPiA+ICsjZGVmaW5lIFRFU1RfUE9MSUNZX0FUVFJJQlVURVNfTlVMTCAg MA0KPiA+ICsjZGVmaW5lIFRFU1RfUE9MSUNZX01JTl9TSVpFX05VTEwgICAgMA0KPiA+ICsjZGVm aW5lIFRFU1RfUE9MSUNZX01BWF9TSVpFX05VTEwgICAgTUFYX1VJTlQzMg0KPiA+ICsNCj4gPiAr I2RlZmluZSBURVNUX1BPTElDWV9NSU5fU0laRV8xMCAgICAgIDEwDQo+ID4gKyNkZWZpbmUgVEVT VF9QT0xJQ1lfTUFYX1NJWkVfMjAwICAgICAyMDANCj4gPiArDQo+ID4gKy8vLz09PSBIRUxQRVIg RlVOQ1RJT05TDQo+ID4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0NCj4gPiA9PT09PT09PT09PT09DQo+ID4gKw0KPiA+ICsvKioN Cj4gPiArICBNb2NrZWQgdmVyc2lvbiBvZiBHZXRWYXJpYWJsZSwgZm9yIHRlc3RpbmcuDQo+ID4g Kw0KPiA+ICsgIEBwYXJhbSAgVmFyaWFibGVOYW1lDQo+ID4gKyAgQHBhcmFtICBWZW5kb3JHdWlk DQo+ID4gKyAgQHBhcmFtICBBdHRyaWJ1dGVzDQo+ID4gKyAgQHBhcmFtICBEYXRhU2l6ZQ0KPiA+ ICsgIEBwYXJhbSAgRGF0YQ0KPiA+ICsqKi8NCj4gPiArRUZJX1NUQVRVUw0KPiA+ICtFRklBUEkN Cj4gPiArU3R1YkdldFZhcmlhYmxlTnVsbCAoDQo+ID4gKyAgSU4gICAgIENIQVIxNiAgICAqVmFy aWFibGVOYW1lLA0KPiA+ICsgIElOICAgICBFRklfR1VJRCAgKlZlbmRvckd1aWQsDQo+ID4gKyAg T1VUICAgIFVJTlQzMiAgICAqQXR0cmlidXRlcywgIE9QVElPTkFMDQo+ID4gKyAgSU4gT1VUIFVJ TlROICAgICAqRGF0YVNpemUsDQo+ID4gKyAgT1VUICAgIFZPSUQgICAgICAqRGF0YSAgICAgICAg IE9QVElPTkFMDQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgVUlOVDMyICAgICAgTW9ja2VkQXR0 cjsNCj4gPiArICBVSU5UTiAgICAgICBNb2NrZWREYXRhU2l6ZTsNCj4gPiArICBWT0lEICAgICAg ICAqTW9ja2VkRGF0YTsNCj4gPiArICBFRklfU1RBVFVTICBNb2NrZWRSZXR1cm47DQo+ID4gKw0K PiA+ICsgIGNoZWNrX2V4cGVjdGVkX3B0ciAoVmFyaWFibGVOYW1lKTsNCj4gPiArICBjaGVja19l eHBlY3RlZF9wdHIgKFZlbmRvckd1aWQpOw0KPiA+ICsgIGNoZWNrX2V4cGVjdGVkX3B0ciAoRGF0 YVNpemUpOw0KPiA+ICsNCj4gPiArICBNb2NrZWRBdHRyICAgICA9IChVSU5UMzIpbW9jaygpOw0K PiA+ICsgIE1vY2tlZERhdGFTaXplID0gKFVJTlROKW1vY2soKTsNCj4gPiArICBNb2NrZWREYXRh ICAgICA9IChWT0lEKikoVUlOVE4pbW9jaygpOw0KPiA+ICsgIE1vY2tlZFJldHVybiAgID0gKEVG SV9TVEFUVVMpbW9jaygpOw0KPiA+ICsNCj4gPiArICBpZiAoQXR0cmlidXRlcyAhPSBOVUxMKSB7 DQo+ID4gKyAgICAqQXR0cmlidXRlcyA9IE1vY2tlZEF0dHI7DQo+ID4gKyAgfQ0KPiA+ICsgIGlm IChEYXRhICE9IE5VTEwgJiYgIUVGSV9FUlJPUiAoTW9ja2VkUmV0dXJuKSkgew0KPiA+ICsgICAg Q29weU1lbSAoRGF0YSwgTW9ja2VkRGF0YSwgTW9ja2VkRGF0YVNpemUpOw0KPiA+ICsgIH0NCj4g PiArDQo+ID4gKyAgKkRhdGFTaXplID0gTW9ja2VkRGF0YVNpemU7DQo+ID4gKw0KPiA+ICsgIHJl dHVybiBNb2NrZWRSZXR1cm47DQo+ID4gK30NCj4gPiArDQo+ID4gKy8vDQo+ID4gKy8vIEFueXRo aW5nIHlvdSB0aGluayBtaWdodCBiZSBoZWxwZnVsIHRoYXQgaXNuJ3QgYSB0ZXN0IGl0c2VsZi4N Cj4gPiArLy8NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgIFRoaXMgaXMgYSBjb21tb24gc2V0dXAg ZnVuY3Rpb24gdGhhdCB3aWxsIGVuc3VyZSB0aGUgbGlicmFyeSBpcyBhbHdheXMNCj4gPiArICBp bml0aWFsaXplZCB3aXRoIHRoZSBzdHViYmVkIEdldFZhcmlhYmxlLg0KPiA+ICsNCj4gPiArICBO b3QgdXNlZCBieSBhbGwgdGVzdCBjYXNlcywgYnV0IGJ5IG1vc3QuDQo+ID4gKw0KPiA+ICsgIEBw YXJhbVtpbl0gIENvbnRleHQgIFVuaXQgdGVzdCBjYXNlIGNvbnRleHQNCj4gPiArKiovDQo+ID4g K1NUQVRJQw0KPiA+ICtVTklUX1RFU1RfU1RBVFVTDQo+ID4gK0VGSUFQSQ0KPiA+ICtMaWJJbml0 TW9ja2VkICgNCj4gPiArICBJTiBVTklUX1RFU1RfQ09OVEVYVCAgQ29udGV4dA0KPiA+ICsgICkN Cj4gPiArew0KPiA+ICsgIHJldHVybiBFRklfRVJST1IgKEluaXRWYXJpYWJsZVBvbGljeUxpYiAo U3R1YkdldFZhcmlhYmxlTnVsbCkpID8NCj4gPiBVTklUX1RFU1RfRVJST1JfUFJFUkVRVUlTSVRF X05PVF9NRVQgOiBVTklUX1RFU1RfUEFTU0VEOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4g PiArICBDb21tb24gY2xlYW51cCBmdW5jdGlvbiB0byBtYWtlIHN1cmUgdGhhdCB0aGUgbGlicmFy eSBpcyBhbHdheXMNCj4gPiBkZS1pbml0aWFsaXplZA0KPiA+ICsgIHByaW9yIHRvIHRoZSBuZXh0 IHRlc3QgY2FzZS4NCj4gPiArDQo+ID4gKyAgQHBhcmFtW2luXSAgQ29udGV4dCAgVW5pdCB0ZXN0 IGNhc2UgY29udGV4dA0KPiA+ICsqKi8NCj4gPiArU1RBVElDDQo+ID4gK1ZPSUQNCj4gPiArRUZJ QVBJDQo+ID4gK0xpYkNsZWFudXAgKA0KPiA+ICsgIElOIFVOSVRfVEVTVF9DT05URVhUICBDb250 ZXh0DQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgRGVpbml0VmFyaWFibGVQb2xpY3lMaWIoKTsN Cj4gPiArfQ0KPiA+ICsNCj4gPiArLy8vPT09IFRFU1QgQ0FTRVMNCj4gPiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+ID09 PT09PT09PT09PT09PT09PT0NCj4gPiArDQo+ID4gKy8vLz09PT09IFNISU0gU1VJVEUNCj4gPiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgVGVzdCBDYXNlIHRoYXQgbG9ja3MgYSBzaW5nbGUg dmFyaWFibGUgdXNpbmcgdGhlIFZhcmlhYmxlIExvY2sNCj4gUHJvdG9jb2wuDQo+ID4gKyAgVGhl IGNhbGwgaXMgZXhwZWN0ZWQgdG8gc3VjY2VlZC4NCj4gPiArDQo+ID4gKyAgQHBhcmFtW2luXSAg Q29udGV4dCAgVW5pdCB0ZXN0IGNhc2UgY29udGV4dA0KPiA+ICsqKi8NCj4gPiArVU5JVF9URVNU X1NUQVRVUw0KPiA+ICtFRklBUEkNCj4gPiArTG9ja2luZ1dpdGhvdXRBbnlQb2xpY2llc1Nob3Vs ZFN1Y2NlZWQgKA0KPiA+ICsgIElOIFVOSVRfVEVTVF9DT05URVhUICBDb250ZXh0DQo+ID4gKyAg KQ0KPiA+ICt7DQo+ID4gKyAgRUZJX1NUQVRVUyAgU3RhdHVzOw0KPiA+ICsNCj4gPiArICBTdGF0 dXMgPSBWYXJpYWJsZUxvY2tSZXF1ZXN0VG9Mb2NrIChOVUxMLCBURVNUX1ZBUl8xX05BTUUsDQo+ ID4gJm1UZXN0R3VpZDEpOw0KPiA+ICsgIFVUX0FTU0VSVF9OT1RfRUZJX0VSUk9SIChTdGF0dXMp Ow0KPiA+ICsNCj4gPiArICByZXR1cm4gVU5JVF9URVNUX1BBU1NFRDsNCj4gPiArfQ0KPiA+ICsN Cj4gPiArLyoqDQo+ID4gKyAgVGVzdCBDYXNlIHRoYXQgbG9ja3MgdGhlIHNhbWUgdmFyaWFibGUg dHdpY2UgdXNpbmcgdGhlIFZhcmlhYmxlIExvY2sNCj4gPiBQcm90b2NvbC4NCj4gPiArICBCb3Ro IGNhbGxzIGFyZSBleHBlY3RlZCB0byBzdWNjZWVkLg0KPiA+ICsNCj4gPiArICBAcGFyYW1baW5d ICBDb250ZXh0ICBVbml0IHRlc3QgY2FzZSBjb250ZXh0DQo+ID4gKyAgKiovDQo+ID4gK1VOSVRf VEVTVF9TVEFUVVMNCj4gPiArRUZJQVBJDQo+ID4gK0xvY2tpbmdUd2ljZVNob3VsZFN1Y2NlZWQg KA0KPiA+ICsgIElOIFVOSVRfVEVTVF9DT05URVhUICBDb250ZXh0DQo+ID4gKyAgKQ0KPiA+ICt7 DQo+ID4gKyAgRUZJX1NUQVRVUyAgU3RhdHVzOw0KPiA+ICsNCj4gPiArICBTdGF0dXMgPSBWYXJp YWJsZUxvY2tSZXF1ZXN0VG9Mb2NrIChOVUxMLCBURVNUX1ZBUl8xX05BTUUsDQo+ID4gJm1UZXN0 R3VpZDEpOw0KPiA+ICsgIFVUX0FTU0VSVF9OT1RfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiA+ICsN Cj4gPiArICBTdGF0dXMgPSBWYXJpYWJsZUxvY2tSZXF1ZXN0VG9Mb2NrIChOVUxMLCBURVNUX1ZB Ul8xX05BTUUsDQo+ID4gJm1UZXN0R3VpZDEpOw0KPiA+ICsgIFVUX0FTU0VSVF9OT1RfRUZJX0VS Uk9SIChTdGF0dXMpOw0KPiA+ICsNCj4gPiArICByZXR1cm4gVU5JVF9URVNUX1BBU1NFRDsNCj4g PiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgVGVzdCBDYXNlIHRoYXQgbG9ja3MgYSB2YXJp YWJsZSB1c2luZyB0aGUgVmFyaWFibGUgUG9saWN5IFByb3RvY29sIHRoZW4NCj4gbG9ja3MNCj4g PiArICB0aGUgc2FtZSB2YXJpYWJsZSB1c2luZyB0aGUgVmFyaWFibGUgTG9jayBQcm90b2NvbC4N Cj4gPiArICBCb3RoIGNhbGxzIGFyZSBleHBlY3RlZCB0byBzdWNjZWVkLg0KPiA+ICsNCj4gPiAr ICBAcGFyYW1baW5dICBDb250ZXh0ICBVbml0IHRlc3QgY2FzZSBjb250ZXh0DQo+ID4gKyAgKiov DQo+ID4gK1VOSVRfVEVTVF9TVEFUVVMNCj4gPiArRUZJQVBJDQo+ID4gK0xvY2tpbmdBTG9ja2Vk VmFyaWFibGVTaG91bGRTdWNjZWVkICgNCj4gPiArICBJTiBVTklUX1RFU1RfQ09OVEVYVCAgQ29u dGV4dA0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAgU3Rh dHVzOw0KPiA+ICsgIFZBUklBQkxFX1BPTElDWV9FTlRSWSAgKk5ld0VudHJ5Ow0KPiA+ICsNCj4g PiArICAvLw0KPiA+ICsgIC8vIENyZWF0ZSBhIHZhcmlhYmxlIHBvbGljeSB0aGF0IGxvY2tzIHRo ZSB2YXJpYWJsZS4NCj4gPiArICAvLw0KPiA+ICsgIFN0YXR1cyA9IENyZWF0ZUJhc2ljVmFyaWFi bGVQb2xpY3kgKA0KPiA+ICsgICAgICAgICAgICAgJm1UZXN0R3VpZDEsDQo+ID4gKyAgICAgICAg ICAgICBURVNUX1ZBUl8xX05BTUUsDQo+ID4gKyAgICAgICAgICAgICBURVNUX1BPTElDWV9NSU5f U0laRV9OVUxMLA0KPiA+ICsgICAgICAgICAgICAgVEVTVF9QT0xJQ1lfTUFYX1NJWkVfMjAwLA0K PiA+ICsgICAgICAgICAgICAgVEVTVF9QT0xJQ1lfQVRUUklCVVRFU19OVUxMLA0KPiA+ICsgICAg ICAgICAgICAgVEVTVF9QT0xJQ1lfQVRUUklCVVRFU19OVUxMLA0KPiA+ICsgICAgICAgICAgICAg VkFSSUFCTEVfUE9MSUNZX1RZUEVfTE9DS19OT1csDQo+ID4gKyAgICAgICAgICAgICAmTmV3RW50 cnkNCj4gPiArICAgICAgICAgICAgICk7DQo+ID4gKyAgVVRfQVNTRVJUX05PVF9FRklfRVJST1Ig KFN0YXR1cyk7DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gUmVnaXN0ZXIgdGhlIG5ldyBw b2xpY3kuDQo+ID4gKyAgLy8NCj4gPiArICBTdGF0dXMgPSBSZWdpc3RlclZhcmlhYmxlUG9saWN5 IChOZXdFbnRyeSk7DQo+ID4gKw0KPiA+ICsgIFN0YXR1cyA9IFZhcmlhYmxlTG9ja1JlcXVlc3RU b0xvY2sgKE5VTEwsIFRFU1RfVkFSXzFfTkFNRSwNCj4gPiAmbVRlc3RHdWlkMSk7DQo+ID4gKyAg VVRfQVNTRVJUX05PVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ID4gKw0KPiA+ICsgIEZyZWVQb29s IChOZXdFbnRyeSk7DQo+ID4gKw0KPiA+ICsgIHJldHVybiBVTklUX1RFU1RfUEFTU0VEOw0KPiA+ ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBUZXN0IENhc2UgdGhhdCBsb2NrcyBhIHZhcmlh YmxlIHVzaW5nIHRoZSBWYXJpYWJsZSBQb2xpY3kgUHJvdG9jb2wgd2l0aA0KPiBhDQo+ID4gKyAg cG9saWN5IG90aGVyIHRoYW4gTE9DS19OT1cgdGhlbiBhdHRlbXB0cyB0byBsb2NrIHRoZSBzYW1l IHZhcmlhYmxlDQo+ID4gdXNpbmcgdGhlDQo+ID4gKyAgVmFyaWFibGUgTG9jayBQcm90b2NvbC4g IFRoZSBjYWxsIHRvIFZhcmlhYmxlIFBvbGljeSBpcyBleHBlY3RlZCB0bw0KPiBzdWNjZWVkDQo+ ID4gKyAgYW5kIHRoZSBjYWxsIHRvIFZhcmlhYmxlIExvY2sgaXMgZXhwZWN0ZWQgdG8gZmFpbC4N Cj4gPiArDQo+ID4gKyAgQHBhcmFtW2luXSAgQ29udGV4dCAgVW5pdCB0ZXN0IGNhc2UgY29udGV4 dA0KPiA+ICsgICoqLw0KPiA+ICtVTklUX1RFU1RfU1RBVFVTDQo+ID4gK0VGSUFQSQ0KPiA+ICtM b2NraW5nQW5VbmxvY2tlZFZhcmlhYmxlU2hvdWxkRmFpbCAoDQo+ID4gKyAgSU4gVU5JVF9URVNU X0NPTlRFWFQgICAgICBDb250ZXh0DQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgRUZJX1NUQVRV UyAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ID4gKyAgVkFSSUFCTEVfUE9MSUNZX0VOVFJZICAg ICAqTmV3RW50cnk7DQo+ID4gKw0KPiA+ICsgIC8vIENyZWF0ZSBhIHZhcmlhYmxlIHBvbGljeSB0 aGF0IGxvY2tzIHRoZSB2YXJpYWJsZS4NCj4gPiArICBTdGF0dXMgPSBDcmVhdGVWYXJTdGF0ZVZh cmlhYmxlUG9saWN5ICgmbVRlc3RHdWlkMSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBURVNUX1ZBUl8xX05BTUUsDQo+ID4gKw0KPiA+IFRFU1RfUE9MSUNZ X01JTl9TSVpFX05VTEwsDQo+ID4gKw0KPiA+IFRFU1RfUE9MSUNZX01BWF9TSVpFXzIwMCwNCj4g PiArDQo+ID4gVEVTVF9QT0xJQ1lfQVRUUklCVVRFU19OVUxMLA0KPiA+ICsNCj4gPiBURVNUX1BP TElDWV9BVFRSSUJVVEVTX05VTEwsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJm1UZXN0R3VpZDIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBURVNUX1ZBUl8yX05BTUUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJk5ld0VudHJ5KTsNCj4gPiArICBVVF9BU1NFUlRfTk9UX0VGSV9FUlJP UiAoU3RhdHVzKTsNCj4gPiArDQo+ID4gKyAgLy8gUmVnaXN0ZXIgdGhlIG5ldyBwb2xpY3kuDQo+ ID4gKyAgU3RhdHVzID0gUmVnaXN0ZXJWYXJpYWJsZVBvbGljeSAoTmV3RW50cnkpOw0KPiA+ICsN Cj4gPiArIC8vIENvbmZpZ3VyZSB0aGUgc3R1YiB0byBub3QgY2FyZSBhYm91dCBwYXJhbWV0ZXJz LiBXZSdyZSB0ZXN0aW5nDQo+IGVycm9ycy4NCj4gPiArICBleHBlY3RfYW55X2Fsd2F5cyggU3R1 YkdldFZhcmlhYmxlTnVsbCwgVmFyaWFibGVOYW1lICk7DQo+ID4gKyAgZXhwZWN0X2FueV9hbHdh eXMoIFN0dWJHZXRWYXJpYWJsZU51bGwsIFZlbmRvckd1aWQgKTsNCj4gPiArICBleHBlY3RfYW55 X2Fsd2F5cyggU3R1YkdldFZhcmlhYmxlTnVsbCwgRGF0YVNpemUgKTsNCj4gPiArDQo+ID4gKyAg Ly8gV2l0aCBhIHBvbGljeSwgbWFrZSBzdXJlIHRoYXQgd3JpdGVzIHN0aWxsIHdvcmssIHNpbmNl IHRoZSB2YXJpYWJsZQ0KPiA+IGRvZXNuJ3QgZXhpc3QuDQo+ID4gKyAgd2lsbF9yZXR1cm4oIFN0 dWJHZXRWYXJpYWJsZU51bGwsIFRFU1RfUE9MSUNZX0FUVFJJQlVURVNfTlVMTCApOw0KPiA+IC8v IEF0dHJpYnV0ZXMNCj4gPiArICB3aWxsX3JldHVybiggU3R1YkdldFZhcmlhYmxlTnVsbCwgMCAp Ow0KPiA+IC8vIFNpemUNCj4gPiArICB3aWxsX3JldHVybiggU3R1YkdldFZhcmlhYmxlTnVsbCwg TlVMTCApOw0KPiA+IC8vIERhdGFQdHINCj4gPiArICB3aWxsX3JldHVybiggU3R1YkdldFZhcmlh YmxlTnVsbCwgRUZJX05PVF9GT1VORCk7DQo+ID4gLy8gU3RhdHVzDQo+ID4gKw0KPiA+ICsgIFN0 YXR1cyA9IFZhcmlhYmxlTG9ja1JlcXVlc3RUb0xvY2sgKE5VTEwsIFRFU1RfVkFSXzFfTkFNRSwN Cj4gPiAmbVRlc3RHdWlkMSk7DQo+ID4gKyAgVVRfQVNTRVJUX1RSVUUgKEVGSV9FUlJPUiAoU3Rh dHVzKSk7DQo+ID4gKw0KPiA+ICsgIEZyZWVQb29sIChOZXdFbnRyeSk7DQo+ID4gKw0KPiA+ICsg IHJldHVybiBVTklUX1RFU1RfUEFTU0VEOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiAr ICBUZXN0IENhc2UgdGhhdCBsb2NrcyBhIHZhcmlhYmxlIHVzaW5nIHRoZSBWYXJpYWJsZSBQb2xp Y3kgUHJvdG9jb2wgd2l0aA0KPiBhDQo+ID4gKyAgcG9saWN5IG90aGVyIHRoYW4gTE9DS19OT1cs IGJ1dCBpcyBjdXJyZW50bHkgbG9ja2VkLiAgVGhlbiBhdHRlbXB0cyB0bw0KPiA+IGxvY2sNCj4g PiArICB0aGUgc2FtZSB2YXJpYWJsZSB1c2luZyB0aGUgVmFyaWFibGUgTG9jayBQcm90b2NvbC4g IFRoZSBjYWxsIHRvDQo+IFZhcmlhYmxlDQo+ID4gKyAgUG9saWN5IGlzIGV4cGVjdGVkIHRvIHN1 Y2NlZWQgYW5kIHRoZSBjYWxsIHRvIFZhcmlhYmxlIExvY2sgYWxzbw0KPiBleHBlY3RlZA0KPiA+ IHRvDQo+ID4gKyAgc3VjY2VlZC4NCj4gPiArDQo+ID4gKyAgQHBhcmFtW2luXSAgQ29udGV4dCAg VW5pdCB0ZXN0IGNhc2UgY29udGV4dA0KPiA+ICsgICoqLw0KPiA+ICtVTklUX1RFU1RfU1RBVFVT DQo+ID4gK0VGSUFQSQ0KPiA+ICtMb2NraW5nQUxvY2tlZFZhcmlhYmxlV2l0aE1hdGNoaW5nRGF0 YVNob3VsZFN1Y2NlZWQgKA0KPiA+ICsgIElOIFVOSVRfVEVTVF9DT05URVhUICAgICAgQ29udGV4 dA0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgU3Rh dHVzOw0KPiA+ICsgIFZBUklBQkxFX1BPTElDWV9FTlRSWSAgICAgKk5ld0VudHJ5Ow0KPiA+ICsg IFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgRGF0YTsNCj4gPiArDQo+ID4gKyAgLy8gQ3JlYXRl IGEgdmFyaWFibGUgcG9saWN5IHRoYXQgbG9ja3MgdGhlIHZhcmlhYmxlLg0KPiA+ICsgIFN0YXR1 cyA9IENyZWF0ZVZhclN0YXRlVmFyaWFibGVQb2xpY3kgKCZtVGVzdEd1aWQxLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRFU1RfVkFSXzFfTkFNRSwNCj4g PiArDQo+ID4gVEVTVF9QT0xJQ1lfTUlOX1NJWkVfTlVMTCwNCj4gPiArDQo+ID4gVEVTVF9QT0xJ Q1lfTUFYX1NJWkVfMjAwLA0KPiA+ICsNCj4gPiBURVNUX1BPTElDWV9BVFRSSUJVVEVTX05VTEws DQo+ID4gKw0KPiA+IFRFU1RfUE9MSUNZX0FUVFJJQlVURVNfTlVMTCwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbVRlc3RHdWlkMiwNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRFU1RfVkFSXzJfTkFNRSwNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmTmV3RW50cnkpOw0KPiA+ICsgIFVU X0FTU0VSVF9OT1RfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiA+ICsNCj4gPiArICAvLyBSZWdpc3Rl ciB0aGUgbmV3IHBvbGljeS4NCj4gPiArICBTdGF0dXMgPSBSZWdpc3RlclZhcmlhYmxlUG9saWN5 IChOZXdFbnRyeSk7DQo+ID4gKw0KPiA+ICsgLy8gQ29uZmlndXJlIHRoZSBzdHViIHRvIG5vdCBj YXJlIGFib3V0IHBhcmFtZXRlcnMuIFdlJ3JlIHRlc3RpbmcNCj4gZXJyb3JzLg0KPiA+ICsgIGV4 cGVjdF9hbnlfYWx3YXlzKCBTdHViR2V0VmFyaWFibGVOdWxsLCBWYXJpYWJsZU5hbWUgKTsNCj4g PiArICBleHBlY3RfYW55X2Fsd2F5cyggU3R1YkdldFZhcmlhYmxlTnVsbCwgVmVuZG9yR3VpZCAp Ow0KPiA+ICsgIGV4cGVjdF9hbnlfYWx3YXlzKCBTdHViR2V0VmFyaWFibGVOdWxsLCBEYXRhU2l6 ZSApOw0KPiA+ICsNCj4gPiArICAvLyBXaXRoIGEgcG9saWN5LCBtYWtlIHN1cmUgdGhhdCB3cml0 ZXMgc3RpbGwgd29yaywgc2luY2UgdGhlIHZhcmlhYmxlDQo+ID4gZG9lc24ndCBleGlzdC4NCj4g PiArICBEYXRhID0gMTsNCj4gPiArICB3aWxsX3JldHVybiggU3R1YkdldFZhcmlhYmxlTnVsbCwg VEVTVF9QT0xJQ1lfQVRUUklCVVRFU19OVUxMICk7DQo+ID4gLy8gQXR0cmlidXRlcw0KPiA+ICsg IHdpbGxfcmV0dXJuKCBTdHViR2V0VmFyaWFibGVOdWxsLCBzaXplb2YgKERhdGEpICk7ICAgICAg ICAgICAgICAgICAgLy8NCj4gPiBTaXplDQo+ID4gKyAgd2lsbF9yZXR1cm4oIFN0dWJHZXRWYXJp YWJsZU51bGwsICZEYXRhICk7DQo+ID4gLy8gRGF0YVB0cg0KPiA+ICsgIHdpbGxfcmV0dXJuKCBT dHViR2V0VmFyaWFibGVOdWxsLCBFRklfU1VDQ0VTUyk7DQo+ID4gLy8gU3RhdHVzDQo+ID4gKw0K PiA+ICsgIFN0YXR1cyA9IFZhcmlhYmxlTG9ja1JlcXVlc3RUb0xvY2sgKE5VTEwsIFRFU1RfVkFS XzFfTkFNRSwNCj4gPiAmbVRlc3RHdWlkMSk7DQo+ID4gKyAgVVRfQVNTRVJUX1RSVUUgKCFFRklf RVJST1IgKFN0YXR1cykpOw0KPiA+ICsNCj4gPiArICBGcmVlUG9vbCAoTmV3RW50cnkpOw0KPiA+ ICsNCj4gPiArICByZXR1cm4gVU5JVF9URVNUX1BBU1NFRDsNCj4gPiArfQ0KPiA+ICsNCj4gPiAr LyoqDQo+ID4gKyAgVGVzdCBDYXNlIHRoYXQgbG9ja3MgYSB2YXJpYWJsZSB1c2luZyB0aGUgVmFy aWFibGUgUG9saWN5IFByb3RvY29sIHdpdGgNCj4gYQ0KPiA+ICsgIHBvbGljeSBvdGhlciB0aGFu IExPQ0tfTk9XLCBidXQgdmFyaWFibGUgZGF0YSBkb2VzIG5vdCBtYXRjaC4gIFRoZW4NCj4gPiBh dHRlbXB0cw0KPiA+ICsgIHRvIGxvY2sgdGhlIHNhbWUgdmFyaWFibGUgdXNpbmcgdGhlIFZhcmlh YmxlIExvY2sgUHJvdG9jb2wuICBUaGUgY2FsbA0KPiB0bw0KPiA+ICsgIFZhcmlhYmxlIFBvbGlj eSBpcyBleHBlY3RlZCB0byBzdWNjZWVkIGFuZCB0aGUgY2FsbCB0byBWYXJpYWJsZSBMb2NrIGlz DQo+ID4gKyAgZXhwZWN0ZWQgdG8gZmFpbC4NCj4gPiArDQo+ID4gKyAgQHBhcmFtW2luXSAgQ29u dGV4dCAgVW5pdCB0ZXN0IGNhc2UgY29udGV4dA0KPiA+ICsgICoqLw0KPiA+ICtVTklUX1RFU1Rf U1RBVFVTDQo+ID4gK0VGSUFQSQ0KPiA+ICtMb2NraW5nQUxvY2tlZFZhcmlhYmxlV2l0aE5vbk1h dGNoaW5nRGF0YVNob3VsZEZhaWwgKA0KPiA+ICsgIElOIFVOSVRfVEVTVF9DT05URVhUICAgICAg Q29udGV4dA0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAg ICAgU3RhdHVzOw0KPiA+ICsgIFZBUklBQkxFX1BPTElDWV9FTlRSWSAgICAgKk5ld0VudHJ5Ow0K PiA+ICsgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgRGF0YTsNCj4gPiArDQo+ID4gKyAgLy8g Q3JlYXRlIGEgdmFyaWFibGUgcG9saWN5IHRoYXQgbG9ja3MgdGhlIHZhcmlhYmxlLg0KPiA+ICsg IFN0YXR1cyA9IENyZWF0ZVZhclN0YXRlVmFyaWFibGVQb2xpY3kgKCZtVGVzdEd1aWQxLA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRFU1RfVkFSXzFfTkFN RSwNCj4gPiArDQo+ID4gVEVTVF9QT0xJQ1lfTUlOX1NJWkVfTlVMTCwNCj4gPiArDQo+ID4gVEVT VF9QT0xJQ1lfTUFYX1NJWkVfMjAwLA0KPiA+ICsNCj4gPiBURVNUX1BPTElDWV9BVFRSSUJVVEVT X05VTEwsDQo+ID4gKw0KPiA+IFRFU1RfUE9MSUNZX0FUVFJJQlVURVNfTlVMTCwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbVRlc3RHdWlkMiwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRFU1RfVkFSXzJfTkFNRSwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmTmV3RW50cnkpOw0KPiA+ ICsgIFVUX0FTU0VSVF9OT1RfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiA+ICsNCj4gPiArICAvLyBS ZWdpc3RlciB0aGUgbmV3IHBvbGljeS4NCj4gPiArICBTdGF0dXMgPSBSZWdpc3RlclZhcmlhYmxl UG9saWN5IChOZXdFbnRyeSk7DQo+ID4gKw0KPiA+ICsgLy8gQ29uZmlndXJlIHRoZSBzdHViIHRv IG5vdCBjYXJlIGFib3V0IHBhcmFtZXRlcnMuIFdlJ3JlIHRlc3RpbmcNCj4gZXJyb3JzLg0KPiA+ ICsgIGV4cGVjdF9hbnlfYWx3YXlzKCBTdHViR2V0VmFyaWFibGVOdWxsLCBWYXJpYWJsZU5hbWUg KTsNCj4gPiArICBleHBlY3RfYW55X2Fsd2F5cyggU3R1YkdldFZhcmlhYmxlTnVsbCwgVmVuZG9y R3VpZCApOw0KPiA+ICsgIGV4cGVjdF9hbnlfYWx3YXlzKCBTdHViR2V0VmFyaWFibGVOdWxsLCBE YXRhU2l6ZSApOw0KPiA+ICsNCj4gPiArICAvLyBXaXRoIGEgcG9saWN5LCBtYWtlIHN1cmUgdGhh dCB3cml0ZXMgc3RpbGwgd29yaywgc2luY2UgdGhlIHZhcmlhYmxlDQo+ID4gZG9lc24ndCBleGlz dC4NCj4gPiArICBEYXRhID0gMjsNCj4gPiArICB3aWxsX3JldHVybiggU3R1YkdldFZhcmlhYmxl TnVsbCwgVEVTVF9QT0xJQ1lfQVRUUklCVVRFU19OVUxMICk7DQo+ID4gLy8gQXR0cmlidXRlcw0K PiA+ICsgIHdpbGxfcmV0dXJuKCBTdHViR2V0VmFyaWFibGVOdWxsLCBzaXplb2YgKERhdGEpICk7 ICAgICAgICAgICAgICAgICAgLy8NCj4gPiBTaXplDQo+ID4gKyAgd2lsbF9yZXR1cm4oIFN0dWJH ZXRWYXJpYWJsZU51bGwsICZEYXRhICk7DQo+ID4gLy8gRGF0YVB0cg0KPiA+ICsgIHdpbGxfcmV0 dXJuKCBTdHViR2V0VmFyaWFibGVOdWxsLCBFRklfU1VDQ0VTUyk7DQo+ID4gLy8gU3RhdHVzDQo+ ID4gKw0KPiA+ICsgIFN0YXR1cyA9IFZhcmlhYmxlTG9ja1JlcXVlc3RUb0xvY2sgKE5VTEwsIFRF U1RfVkFSXzFfTkFNRSwNCj4gPiAmbVRlc3RHdWlkMSk7DQo+ID4gKyAgVVRfQVNTRVJUX1RSVUUg KEVGSV9FUlJPUiAoU3RhdHVzKSk7DQo+ID4gKw0KPiA+ICsgIEZyZWVQb29sIChOZXdFbnRyeSk7 DQo+ID4gKw0KPiA+ICsgIHJldHVybiBVTklUX1RFU1RfUEFTU0VEOw0KPiA+ICt9DQo+ID4gKw0K PiA+ICsvKioNCj4gPiArICBUZXN0IENhc2UgdGhhdCBsb2NrcyBhIHZhcmlhYmxlIHVzaW5nIFZh cmlhYmxlIExvY2sgUHJvdG9jb2wgUG9saWN5DQo+IFByb3RvY29sDQo+ID4gKyAgdGhlbiBhbmQg dGhlbiBhdHRlbXB0cyB0byBsb2NrIHRoZSBzYW1lIHZhcmlhYmxlIHVzaW5nIHRoZSBWYXJpYWJs ZQ0KPiBQb2xpY3kNCj4gPiArICBQcm90b2NvbC4gIFRoZSBjYWxsIHRvIFZhcmlhYmxlIExvY2sg aXMgZXhwZWN0ZWQgdG8gc3VjY2VlZCBhbmQgdGhlDQo+IGNhbGwgdG8NCj4gPiArICBWYXJpYWJs ZSBQb2xpY3kgaXMgZXhwZWN0ZWQgdG8gZmFpbC4NCj4gPiArDQo+ID4gKyAgQHBhcmFtW2luXSAg Q29udGV4dCAgVW5pdCB0ZXN0IGNhc2UgY29udGV4dA0KPiA+ICsgICoqLw0KPiA+ICtVTklUX1RF U1RfU1RBVFVTDQo+ID4gK0VGSUFQSQ0KPiA+ICtTZXR0aW5nUG9saWN5Rm9yQUxvY2tlZFZhcmlh YmxlU2hvdWxkRmFpbCAoDQo+ID4gKyAgSU4gVU5JVF9URVNUX0NPTlRFWFQgICAgICBDb250ZXh0 DQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICBTdGF0 dXM7DQo+ID4gKyAgVkFSSUFCTEVfUE9MSUNZX0VOVFJZICAgICAqTmV3RW50cnk7DQo+ID4gKw0K PiA+ICsgIC8vIExvY2sgdGhlIHZhcmlhYmxlLg0KPiA+ICsgIFN0YXR1cyA9IFZhcmlhYmxlTG9j a1JlcXVlc3RUb0xvY2sgKE5VTEwsIFRFU1RfVkFSXzFfTkFNRSwNCj4gPiAmbVRlc3RHdWlkMSk7 DQo+ID4gKyAgVVRfQVNTRVJUX05PVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ID4gKw0KPiA+ICsg IC8vIENyZWF0ZSBhIHZhcmlhYmxlIHBvbGljeSB0aGF0IGxvY2tzIHRoZSB2YXJpYWJsZS4NCj4g PiArICBTdGF0dXMgPSBDcmVhdGVWYXJTdGF0ZVZhcmlhYmxlUG9saWN5ICgmbVRlc3RHdWlkMSwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBURVNUX1ZBUl8x X05BTUUsDQo+ID4gKw0KPiA+IFRFU1RfUE9MSUNZX01JTl9TSVpFX05VTEwsDQo+ID4gKw0KPiA+ IFRFU1RfUE9MSUNZX01BWF9TSVpFXzIwMCwNCj4gPiArDQo+ID4gVEVTVF9QT0xJQ1lfQVRUUklC VVRFU19OVUxMLA0KPiA+ICsNCj4gPiBURVNUX1BPTElDWV9BVFRSSUJVVEVTX05VTEwsDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1UZXN0R3VpZDIsDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBURVNUX1ZBUl8yX05BTUUsDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJk5ld0VudHJ5KTsN Cj4gPiArICBVVF9BU1NFUlRfTk9UX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gPiArDQo+ID4gKyAg Ly8gUmVnaXN0ZXIgdGhlIG5ldyBwb2xpY3kuDQo+ID4gKyAgU3RhdHVzID0gUmVnaXN0ZXJWYXJp YWJsZVBvbGljeSAoTmV3RW50cnkpOw0KPiA+ICsgIFVUX0FTU0VSVF9UUlVFIChFRklfRVJST1Ig KFN0YXR1cykpOw0KPiA+ICsNCj4gPiArICBGcmVlUG9vbCAoTmV3RW50cnkpOw0KPiA+ICsNCj4g PiArICByZXR1cm4gVU5JVF9URVNUX1BBU1NFRDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ ID4gKyAgTWFpbiBlbnRyeSBwb2ludCB0byB0aGlzIHVuaXQgdGVzdCBhcHBsaWNhdGlvbi4NCj4g PiArDQo+ID4gKyAgU2V0cyB1cCBhbmQgcnVucyB0aGUgdGVzdCBzdWl0ZXMuDQo+ID4gKyoqLw0K PiA+ICtWT0lEDQo+ID4gK0VGSUFQSQ0KPiA+ICtVbml0VGVzdE1haW4gKA0KPiA+ICsgIFZPSUQN Cj4gPiArICApDQo+ID4gK3sNCj4gPiArICBFRklfU1RBVFVTICAgICAgICAgICAgICAgICAgU3Rh dHVzOw0KPiA+ICsgIFVOSVRfVEVTVF9GUkFNRVdPUktfSEFORExFICBGcmFtZXdvcms7DQo+ID4g KyAgVU5JVF9URVNUX1NVSVRFX0hBTkRMRSAgICAgIFNoaW1UZXN0czsNCj4gPiArDQo+ID4gKyAg RnJhbWV3b3JrID0gTlVMTDsNCj4gPiArDQo+ID4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiJWEg diVhXG4iLCBVTklUX1RFU1RfTkFNRSwNCj4gPiBVTklUX1RFU1RfVkVSU0lPTikpOw0KPiA+ICsN Cj4gPiArICAvLw0KPiA+ICsgIC8vIFN0YXJ0IHNldHRpbmcgdXAgdGhlIHRlc3QgZnJhbWV3b3Jr IGZvciBydW5uaW5nIHRoZSB0ZXN0cy4NCj4gPiArICAvLw0KPiA+ICsgIFN0YXR1cyA9IEluaXRV bml0VGVzdEZyYW1ld29yayAoJkZyYW1ld29yaywgVU5JVF9URVNUX05BTUUsDQo+ID4gZ0VmaUNh bGxlckJhc2VOYW1lLCBVTklUX1RFU1RfVkVSU0lPTik7DQo+ID4gKyAgaWYgKEVGSV9FUlJPUiAo U3RhdHVzKSkgew0KPiA+ICsgICAgREVCVUcgKChERUJVR19FUlJPUiwgIkZhaWxlZCBpbiBJbml0 VW5pdFRlc3RGcmFtZXdvcmsuIFN0YXR1cw0KPiA+ID0gJXJcbiIsIFN0YXR1cykpOw0KPiA+ICsg ICAgZ290byBFWElUOw0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBBZGQg YWxsIHRlc3Qgc3VpdGVzIGFuZCB0ZXN0cy4NCj4gPiArICAvLw0KPiA+ICsgIFN0YXR1cyA9IENy ZWF0ZVVuaXRUZXN0U3VpdGUgKA0KPiA+ICsgICAgICAgICAgICAgJlNoaW1UZXN0cywgRnJhbWV3 b3JrLA0KPiA+ICsgICAgICAgICAgICAgIlZhcmlhYmxlIExvY2sgU2hpbSBUZXN0cyIsICJWYXJQ b2xpY3kuVmFyTG9ja1NoaW0iLCBOVUxMLA0KPiA+IE5VTEwNCj4gPiArICAgICAgICAgICAgICk7 DQo+ID4gKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ICsgICAgREVCVUcgKChERUJV R19FUlJPUiwgIkZhaWxlZCBpbiBDcmVhdGVVbml0VGVzdFN1aXRlIGZvcg0KPiA+IFNoaW1UZXN0 c1xuIikpOw0KPiA+ICsgICAgU3RhdHVzID0gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQo+ID4gKyAg ICBnb3RvIEVYSVQ7DQo+ID4gKyAgfQ0KPiA+ICsgIEFkZFRlc3RDYXNlICgNCj4gPiArICAgIFNo aW1UZXN0cywNCj4gPiArICAgICJMb2NraW5nIGEgdmFyaWFibGUgd2l0aCBubyBtYXRjaGluZyBw b2xpY2llcyBzaG91bGQgYWx3YXlzIHdvcmsiLA0KPiA+ICJFbXB0eVBvbGljaWVzIiwNCj4gPiAr ICAgIExvY2tpbmdXaXRob3V0QW55UG9saWNpZXNTaG91bGRTdWNjZWVkLCBMaWJJbml0TW9ja2Vk LCBMaWJDbGVhbnVwLA0KPiA+IE5VTEwNCj4gPiArICAgICk7DQo+ID4gKyAgQWRkVGVzdENhc2Ug KA0KPiA+ICsgICAgU2hpbVRlc3RzLA0KPiA+ICsgICAgIkxvY2tpbmcgYSB2YXJpYWJsZSB0d2lj ZSBzaG91bGQgYWx3YXlzIHdvcmsiLCAiRG91YmxlTG9jayIsDQo+ID4gKyAgICBMb2NraW5nVHdp Y2VTaG91bGRTdWNjZWVkLCBMaWJJbml0TW9ja2VkLCBMaWJDbGVhbnVwLCBOVUxMDQo+ID4gKyAg ICApOw0KPiA+ICsgIEFkZFRlc3RDYXNlICgNCj4gPiArICAgIFNoaW1UZXN0cywNCj4gPiArICAg ICJMb2NraW5nIGEgdmFyaWFibGUgdGhhdCdzIGFscmVhZHkgbG9ja2VkIGJ5IGFub3RoZXIgcG9s aWN5IHNob3VsZA0KPiB3b3JrIiwNCj4gPiAiTG9ja0FmdGVyUG9saWN5IiwNCj4gPiArICAgIExv Y2tpbmdBTG9ja2VkVmFyaWFibGVTaG91bGRTdWNjZWVkLCBMaWJJbml0TW9ja2VkLCBMaWJDbGVh bnVwLA0KPiA+IE5VTEwNCj4gPiArICAgICk7DQo+ID4gKyAgQWRkVGVzdENhc2UgKA0KPiA+ICsg ICAgU2hpbVRlc3RzLA0KPiA+ICsgICAgIkxvY2tpbmcgYSB2YXJpYWJsZSB0aGF0IGFscmVhZHkg aGFzIGFuIHVubG9ja2VkIHBvbGljeSBzaG91bGQgZmFpbCIsDQo+ID4gIkxvY2tBZnRlclVubG9j a2VkUG9saWN5IiwNCj4gPiArICAgIExvY2tpbmdBblVubG9ja2VkVmFyaWFibGVTaG91bGRGYWls LCBMaWJJbml0TW9ja2VkLCBMaWJDbGVhbnVwLA0KPiA+IE5VTEwNCj4gPiArICAgICk7DQo+ID4g KyAgQWRkVGVzdENhc2UgKA0KPiA+ICsgICAgU2hpbVRlc3RzLA0KPiA+ICsgICAgIkxvY2tpbmcg YSB2YXJpYWJsZSB0aGF0IGFscmVhZHkgaGFzIGFuIGxvY2tlZCBwb2xpY3kgc2hvdWxkDQo+IHN1 Y2NlZWQiLA0KPiA+ICJMb2NrQWZ0ZXJMb2NrZWRQb2xpY3lNYXRjaGluZ0RhdGEiLA0KPiA+ICsg ICAgTG9ja2luZ0FMb2NrZWRWYXJpYWJsZVdpdGhNYXRjaGluZ0RhdGFTaG91bGRTdWNjZWVkLA0K PiA+IExpYkluaXRNb2NrZWQsIExpYkNsZWFudXAsIE5VTEwNCj4gPiArICAgICk7DQo+ID4gKyAg QWRkVGVzdENhc2UgKA0KPiA+ICsgICAgU2hpbVRlc3RzLA0KPiA+ICsgICAgIkxvY2tpbmcgYSB2 YXJpYWJsZSB0aGF0IGFscmVhZHkgaGFzIGFuIGxvY2tlZCBwb2xpY3kgd2l0aCBtYXRjaGluZw0K PiA+IGRhdGEgc2hvdWxkIHN1Y2NlZWQiLCAiTG9ja0FmdGVyTG9ja2VkUG9saWN5Tm9uTWF0Y2hp bmdEYXRhIiwNCj4gPiArICAgIExvY2tpbmdBTG9ja2VkVmFyaWFibGVXaXRoTm9uTWF0Y2hpbmdE YXRhU2hvdWxkRmFpbCwNCj4gPiBMaWJJbml0TW9ja2VkLCBMaWJDbGVhbnVwLCBOVUxMDQo+ID4g KyAgICApOw0KPiA+ICsgIEFkZFRlc3RDYXNlICgNCj4gPiArICAgIFNoaW1UZXN0cywNCj4gPiAr ICAgICJBZGRpbmcgYSBwb2xpY3kgZm9yIGEgdmFyaWFibGUgdGhhdCBoYXMgcHJldmlvdXNseSBi ZWVuIGxvY2tlZA0KPiBzaG91bGQNCj4gPiBhbHdheXMgZmFpbCIsICJTZXRQb2xpY3lBZnRlckxv Y2siLA0KPiA+ICsgICAgU2V0dGluZ1BvbGljeUZvckFMb2NrZWRWYXJpYWJsZVNob3VsZEZhaWws IExpYkluaXRNb2NrZWQsIExpYkNsZWFudXAsDQo+ID4gTlVMTA0KPiA+ICsgICAgKTsNCj4gPiAr DQo+ID4gKyAgLy8NCj4gPiArICAvLyBFeGVjdXRlIHRoZSB0ZXN0cy4NCj4gPiArICAvLw0KPiA+ ICsgIFN0YXR1cyA9IFJ1bkFsbFRlc3RTdWl0ZXMgKEZyYW1ld29yayk7DQo+ID4gKw0KPiA+ICtF WElUOg0KPiA+ICsgIGlmIChGcmFtZXdvcmsgIT0gTlVMTCkgew0KPiA+ICsgICAgRnJlZVVuaXRU ZXN0RnJhbWV3b3JrIChGcmFtZXdvcmspOw0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgcmV0dXJu Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvLy8NCj4gPiArLy8vIEF2b2lkIEVDQyBlcnJvciBmb3Ig ZnVuY3Rpb24gbmFtZSB0aGF0IHN0YXJ0cyB3aXRoIGxvd2VyIGNhc2UgbGV0dGVyDQo+ID4gKy8v Lw0KPiA+ICsjZGVmaW5lIE1haW4gbWFpbg0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgU3RhbmRh cmQgUE9TSVggQyBlbnRyeSBwb2ludCBmb3IgaG9zdCBiYXNlZCB1bml0IHRlc3QgZXhlY3V0aW9u Lg0KPiA+ICsNCj4gPiArICBAcGFyYW1baW5dIEFyZ2MgIE51bWJlciBvZiBhcmd1bWVudHMNCj4g PiArICBAcGFyYW1baW5dIEFyZ3YgIEFycmF5IG9mIHBvaW50ZXJzIHRvIGFyZ3VtZW50cw0KPiA+ ICsNCj4gPiArICBAcmV0dmFsIDAgICAgICBTdWNjZXNzDQo+ID4gKyAgQHJldHZhbCBvdGhlciAg RXJyb3INCj4gPiArKiovDQo+ID4gK0lOVDMyDQo+ID4gK01haW4gKA0KPiA+ICsgIElOIElOVDMy ICBBcmdjLA0KPiA+ICsgIElOIENIQVI4ICAqQXJndltdDQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4g KyAgVW5pdFRlc3RNYWluICgpOw0KPiA+ICsgIHJldHVybiAwOw0KPiA+ICt9DQo+ID4gZGlmZiAt LWdpdA0KPiA+IGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1J1 bnRpbWVEeGVVbml0VGVzdC9WYXJpDQo+ID4gYWJsZUxvY2tSZXF1ZXN0VG9Mb2NrVW5pdFRlc3Qu aW5mDQo+ID4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvUnVu dGltZUR4ZVVuaXRUZXN0L1ZhcmkNCj4gPiBhYmxlTG9ja1JlcXVlc3RUb0xvY2tVbml0VGVzdC5p bmYNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uMmE2 NTlkN2UxMzcwDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKw0KPiA+IGIvTWRlTW9kdWxlUGtn L1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1J1bnRpbWVEeGVVbml0VGVzdC9WYXJpDQo+ ID4gYWJsZUxvY2tSZXF1ZXN0VG9Mb2NrVW5pdFRlc3QuaW5mDQo+ID4gQEAgLTAsMCArMSwzNiBA QA0KPiA+ICsjIyBAZmlsZQ0KPiA+ICsjIFRoaXMgaXMgYSBob3N0LWJhc2VkIHVuaXQgdGVzdCBm b3IgdGhlIFZhcmlhYmxlTG9ja1JlcXVlc3RUb0xvY2sgc2hpbS4NCj4gPiArIw0KPiA+ICsjIENv cHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KPiA+ICsjIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gKyMjDQo+ID4gKw0KPiA+ICtbRGVm aW5lc10NCj4gPiArICBJTkZfVkVSU0lPTiAgICAgICAgID0gMHgwMDAxMDAxNw0KPiA+ICsgIEJB U0VfTkFNRSAgICAgICAgICAgPSBWYXJpYWJsZUxvY2tSZXF1ZXN0VG9Mb2NrVW5pdFRlc3QNCj4g PiArICBGSUxFX0dVSUQgICAgICAgICAgID0gQTczODhCNkMtNzI3NC00NzE3LTk2NDktQkRDNURG RDFGQ0JFDQo+ID4gKyAgVkVSU0lPTl9TVFJJTkcgICAgICA9IDEuMA0KPiA+ICsgIE1PRFVMRV9U WVBFICAgICAgICAgPSBIT1NUX0FQUExJQ0FUSU9ODQo+ID4gKw0KPiA+ICsjDQo+ID4gKyMgVGhl IGZvbGxvd2luZyBpbmZvcm1hdGlvbiBpcyBmb3IgcmVmZXJlbmNlIG9ubHkgYW5kIG5vdCByZXF1 aXJlZCBieSB0aGUNCj4gPiBidWlsZCB0b29scy4NCj4gPiArIw0KPiA+ICsjICBWQUxJRF9BUkNI SVRFQ1RVUkVTICAgICAgICAgICA9IElBMzIgWDY0IEFSTSBBQVJDSDY0DQo+ID4gKyMNCj4gPiAr DQo+ID4gK1tTb3VyY2VzXQ0KPiA+ICsgIFZhcmlhYmxlTG9ja1JlcXVlc3RUb0xvY2tVbml0VGVz dC5jDQo+ID4gKyAgLi4vVmFyaWFibGVMb2NrUmVxdWVzdFRvTG9jay5jDQo+ID4gKw0KPiA+ICtb UGFja2FnZXNdDQo+ID4gKyAgTWRlUGtnL01kZVBrZy5kZWMNCj4gPiArICBNZGVNb2R1bGVQa2cv TWRlTW9kdWxlUGtnLmRlYw0KPiA+ICsgIFVuaXRUZXN0RnJhbWV3b3JrUGtnL1VuaXRUZXN0RnJh bWV3b3JrUGtnLmRlYw0KPiA+ICsNCj4gPiArW0xpYnJhcnlDbGFzc2VzXQ0KPiA+ICsgIFVuaXRU ZXN0TGliDQo+ID4gKyAgRGVidWdMaWINCj4gPiArICBWYXJpYWJsZVBvbGljeUxpYg0KPiA+ICsg IFZhcmlhYmxlUG9saWN5SGVscGVyTGliDQo+ID4gKyAgQmFzZU1lbW9yeUxpYg0KPiA+ICsgIE1l bW9yeUFsbG9jYXRpb25MaWINCj4gPiAtLQ0KPiA+IDIuMjkuMi53aW5kb3dzLjINCj4gPg0KPiA+ DQo+ID4NCj4gPg0KPiA+DQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+IA0KDQo=