From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web08.8262.1632793787715654946 for ; Mon, 27 Sep 2021 18:49:48 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=zWdI+MK/; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: ray.ni@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10120"; a="310148403" X-IronPort-AV: E=Sophos;i="5.85,328,1624345200"; d="scan'208";a="310148403" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Sep 2021 18:49:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,328,1624345200"; d="scan'208";a="520276324" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga001.jf.intel.com with ESMTP; 27 Sep 2021 18:49:46 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Mon, 27 Sep 2021 18:49:46 -0700 Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Mon, 27 Sep 2021 18:49:45 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Mon, 27 Sep 2021 18:49:45 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.174) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Mon, 27 Sep 2021 18:49:45 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZEsvA7PIRXdkejvdeFGbB7qla2hTZIIsIQQW4JhSpbk48egc+Bzs78o7tnAuk/fckCHlFM32hNmBpSQeAx4v2KiJYFeGoD0zQskPO3Y+5iV1tCGDFBf7TgZGidtQgTjWfXoAONoc2lMRHjnLhVed5iZb64Hf7aYt+GEuQsV782pLJXj+xO+AcsmkvSoa7OXvTmqcr1SWWqfXGr6uJ42XsIuS9N/fRqmVNnNevKTiv0sCp4rwtViad0EvxweVQarw0QY3BmRsbnkDEDyDY6l1J2hyRkWQKCoB/NweMp1kcIFQRyQ94Ozr98DE4hLzAR8Oo3skcwdVfQT/8irxmK+fOQ== 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; bh=h6m2UhllnoEheIE8V4MtgLsTDGrfAqFhwCScGuSaVSU=; b=MYxKooyMENFnsQWFO7EwyIjwkbUXZ07BU+CJRDiK6uwawMKQNtLVc1eq+pUz01On5SVGPj3USMF1XvF0ggxZ0E2TkCynKNOz3iVIokbel+XsSo3QfdRHJa0WarOhUiUwdfM5Vn7EDyV5SxDw5d40TfPHr7KHfVa9dQrKIGgPBYPc8S/o314tjHvJ1BKOUPDYh46tc+n5YdKDURoNymT50BNw4JDWNh/hEcJbsxOeNaugNG9x5D9DxiTUIS+N9klYWHtesk4uN0z3CW91zxIILS8yhagCIDGpTy8J/H9OjR6kBRJOX1f1GAWdLVsxWFVWZO+Bl+hEiZ+yl/BbTWL+8A== 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=h6m2UhllnoEheIE8V4MtgLsTDGrfAqFhwCScGuSaVSU=; b=zWdI+MK/URb2D2r14iUcS6WpfymcgvbTdV2tBCDRAAAazCWaKOtFoh5HcSsxckKHOp72DD/bar9KD2H8wR/RLdVSz5QxYS1TsBiz/+paQWW6FETNQLElS+QmNdNK1aOqjEeunqFN5w/JWbC7GQs5Vi/TkGRzmBJBKLUuX7XUVCU= Received: from CY4PR1101MB2072.namprd11.prod.outlook.com (2603:10b6:910:1d::15) by CY4PR11MB1495.namprd11.prod.outlook.com (2603:10b6:910:c::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.18; Tue, 28 Sep 2021 01:49:44 +0000 Received: from CY4PR1101MB2072.namprd11.prod.outlook.com ([fe80::7dc5:34b5:bbff:832f]) by CY4PR1101MB2072.namprd11.prod.outlook.com ([fe80::7dc5:34b5:bbff:832f%8]) with mapi id 15.20.4544.022; Tue, 28 Sep 2021 01:49:43 +0000 From: "Ni, Ray" To: =?utf-8?B?TWFydmluIEjDpHVzZXI=?= , "fanjianfeng@byosoft.com.cn" , "devel@edk2.groups.io" , 'gaoliming' , "Chan, Amy" , 'Andrew Fish' CC: "Kinney, Michael D" , "'Gao, Liming'" , "Liu, Zhiguang" , "Wang, Jian J" , "Gao, Zhichao" Subject: Re: [edk2-devel] RFC: Add BaseLib/QuickSort in MdePkg Thread-Topic: [edk2-devel] RFC: Add BaseLib/QuickSort in MdePkg Thread-Index: AdepLqSqNr3XR8BzRta7Fw6/X0zQqwBazIQAAAGkXIAAAFefgAAAsAngAAAnB9ABNIM2cABf0RqAAGD5EYAAAErRIAATQjCAABxIFe4AD4PZgAABQcV5AACm1wAAIjqJ8A== Date: Tue, 28 Sep 2021 01:49:43 +0000 Message-ID: References: <001a01d7aa99$d744af80$85ce0e80$@byosoft.com.cn> <003401d7aaa1$c7166830$55433890$@byosoft.com.cn> <16A70FAC1585C7C1.27516@groups.io> <00cf01d7b27a$59145d20$0b3d1760$@byosoft.com.cn> <2021092708451371303013@byosoft.com.cn> <7c260e5d-363e-8579-5a38-3cc5e2336bdb@posteo.de> <2021092716501903570820@byosoft.com.cn> <57dc418a-6620-629c-c448-777994c280d6@posteo.de> In-Reply-To: <57dc418a-6620-629c-c448-777994c280d6@posteo.de> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.200.16 dlp-reaction: no-action 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-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 01d5da83-5bf2-4086-191c-08d982223e8d x-ms-traffictypediagnostic: CY4PR11MB1495: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +unQzqVIG2uKvFV47fmkI7mt74e/9AU6uijnFRXD6Zpu3kHo+pO3x4+K1E+vXGvm1sfxUQno9TBX8m3eGWM9YETHr5ywaExRMFoToTQ12+BbejOTVWCGFLL/h4FnfU/x9PFoe9wXN2VHP6/q3WFiBrVDb1bNm7tvUMkxtrv5jqnJcuGPl9AYXFmAi1grdf3anLQe8XiTZrLtGQKJ5AVujYb/eL/iIxR+F1DoCIatYM/xcpiPggqv6b7ThWoJEnrXNBBqD9mCzJfWZ/Nb9+SxqiFERfQ9QfQJHYSsi8YKrq9aPVifzBuevs6MoymBLEVYj/xNhQfkV6z+EHMXnymfqeSfXRdNiQT8BgnlqZr6kb8ABbBxgSMWUccus6lqL3/FXkmR+tmaimUd7lTOFm46e1AFKQ5U+p0D9P0EHb7p6LmfYTimSRzrBWPYpXxWtbxmo8Q033iE7F10rjU9L0LdO8U7i7knCv7KRHFRpnrDqBRQp9E6Sfc0ECCeT8/h05uUwgtfehxSy/KcQVB9LUp/ZNC08+Ve3v2Hzmb6PbQRwu0IO0CNSLo1jIrqcu4l838F/ncymo2l4ArLeqPsF0SlWMR0dyrIlTjVWPwPn84EcHt/LLJpm+4E88cYIG6sRzqIkWs9bfp4578gynRwvcwCwu1rRxXLTvl/pexx9T1aR4L7ZpXUGRt1FZYpJ2XkmArHXeXkBEQronUVf9rDxFby8xgo0QSjOboevksWWnxCo2VWJHyS/NT/hBtjES6EHytHWDHfSbYIW4u/+S1cgLTHgt27Gmb/ak3Y2suUwYxGnluMpQyjE7r/j+5VCtHcC149lraZ8xyrqZqshgeFP+T6MA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR1101MB2072.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(38070700005)(76116006)(2906002)(53546011)(9686003)(7696005)(508600001)(122000001)(966005)(66446008)(107886003)(64756008)(66574015)(6506007)(55016002)(83380400001)(66946007)(66476007)(66556008)(5660300002)(71200400001)(86362001)(52536014)(8936002)(54906003)(110136005)(4326008)(26005)(33656002)(8676002)(186003)(38100700002)(316002)(30864003)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SzhBejJFZTJSMkw5RlBTeDZhenF6K01VTU51RVRjUDFyemtjMWRLaHB2eDBE?= =?utf-8?B?KzdrTWVQZE1XOTltbnVnc0FOc2dTZFdscUZuWnQ0Mlg4N1haQ2VNalBVTjJz?= =?utf-8?B?RUE0VW1FM05KMUhUVXVEdW9jUzFwZllOTXYyN2NZODJFQU95aEhLYnZ0SVdj?= =?utf-8?B?YUo2bURENmF6TGZSam82aGs5YmkwMnBFVnZrS3U0NkJOZ2hDU3YrckIvMEJl?= =?utf-8?B?L2xDVVNCdWlyeDR2SnBHV21CUDdHVkVKOEQyNHpFRGxpMnQxNmEvNEFkTEhB?= =?utf-8?B?cm9VNmU2U1lSQWxNUXRJL21la2owWnNIZnBMVElhdSsxUU1VMm5ncFYrMy9C?= =?utf-8?B?ekxIMlZsaXRUNlErV1RTU1RGMDJ6QXNKNStzaGs5OGs5V2FDQ1ZLaHB1V3dG?= =?utf-8?B?ekpOVE5vcGdObFNYVTZKdExYL21WOTVrdE1VT3RxS2VybklaakZKdWxVaXJr?= =?utf-8?B?dU51NkZFdVdmM1FvOHlDTDBESnNqZmxveEpvWjd0ZGxBT1ViS05DdXp3REhh?= =?utf-8?B?L0lNeFRoTytzL3pLNUJkYU5YS3lwbngzcVpsZW1ISDBKdTBQUG5qZW9sYTFa?= =?utf-8?B?aER6L2FOdk1zd09tRnFKYXNTYlRrVU0zemdZNW1ScWdYc0MxT05Bd0ptYndW?= =?utf-8?B?MDRpd2ptaWRqMktZNW5UQUYxbmtDU0R1bk0zWkY0OVBwU0RWNURlUG5kSEkz?= =?utf-8?B?cmVwV1V0Yjg1bFFkcWNlOGdoTEpOSmhvSU1ObTJwUFRYZm1HaUNUV2o4Q0tK?= =?utf-8?B?aGF2aFpOaVg0R3doZDJkdHJrVW9iQ05PZXBJT2J6RDBqNzd0TUdTWGNvRVhB?= =?utf-8?B?SWJ1SC9rUkVFQlBlMUkrK0RveUFsQ2xUaW9OOTg0Y1VMTTZDd3hXb0VwTnlM?= =?utf-8?B?ajBNS2JOa3JUZlB3TkJaUnJoK0xJcWpUWC9XODV6Y0FBRDJFZ2NjdGc4N2ww?= =?utf-8?B?Y0RUNndGSDRoVHBGZWpaZFRFYlp4WU1MaXA5NktYS0ZJR2tSNXpKQU1OanVL?= =?utf-8?B?SG1PTEJSR3FpdUZyODZ3TUVpWEo4SU0wL200a0g1d0JudGl1NVQwZm9hRG0z?= =?utf-8?B?Z2xtVFZ1b0hEeXI4STVIU3RUTVlvTzdLVDB3cUdFZzZ0bnN1UkRvQnBMNkY0?= =?utf-8?B?WTVIUkxnM2puSmx3UWVMaHdBUFlpU3h1T1p0ZzEvR2wreExMRTRkaUx6MGlr?= =?utf-8?B?bmQ0RVdSK2srRXVSbE1WK3ZoaEUrWGVtcHluR3pCUkRGbnJ0NXlSenNXaDl1?= =?utf-8?B?SVFHcEN3WXJvRXlhLzVZcFZjMkcrYW9rU0hrRG5VVk52Q0t3dTRTOVJuV2R2?= =?utf-8?B?N3VKbUlmVXJQT0dKZ0pRUDBDN2tqbmZWdzRpWThtU3RQR21CVWk0UkY0VkMz?= =?utf-8?B?dklNcjEwVmNjL2lHM3MvTGVLUWQ3NUhXZHN2TjlyZnk2dHRkODRwb254QUFJ?= =?utf-8?B?YkZxWUdLVXZ5RURRV0VLbW9NN2tkd3ptVmxNRVZrSDhHNlRvYk5IcE1mcTlm?= =?utf-8?B?bytVTXdSVXBhdWxtQ3B1aTJlTHBScktTNE1tYjZjUmRLYUtrVHZuZVJrcDZQ?= =?utf-8?B?MFF5aXJCdXVpamdka1NKOCt3aGJPOUpYaVBWOEFHd1FVQVNxY1FUSmVFU3BR?= =?utf-8?B?U09Wa20rMDZ1T3VLRVVQaXVESWhDbURYZnFyaVh3Zk95T3MwMWdOUmJQYklE?= =?utf-8?B?QUFwbkNKaHJ6b0VPeFBjVmhPWFZjeXBLeVdLQVNEQXhJWHJ4bHdVdzU5bDMw?= =?utf-8?Q?nAkyvr9UpnKRfkiFtFdhYYRaoqJhHvqJyjCT/rT?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR1101MB2072.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 01d5da83-5bf2-4086-191c-08d982223e8d X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Sep 2021 01:49:43.7630 (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: L+sbK835EXEKnT2besBT0QZMfcXp4f9Al9hYJs80BuQlv2Gyitwz+T8WAb0gZq8BnlmJGtZORBPEn3Foa+0TOw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1495 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TWFydmluLA0KSSBhZ3JlZSB3aXRoIHlvdXIgY29uY2VybnMsIGluIGEgY2VydGFpbiBsZXZlbC4g QnV0IEkgZGlkbid0IHRyZWF0IGl0DQphcyBhIHZlcnkgYmlnIHByb2JsZW0gb2YgaGF2aW5nIGNh bGxlciBwYXNzIHRoZSBCdWZmZXJPbmVFbGVtZW50DQoiaW50ZWxsaWdlbnRseSIuDQoNCkkgYW0g b2sgdG8gdXNlIHlvdXIgb3B0aW9uIDEpLCBtYWtpbmcgQnVmZmVyT25lRWxlbWVudCBtYW5kYXRv cnkuDQpDYWxsZXIgc2hvdWxkIGFsd2F5cyBzdXBwbHkgdGhlIGJ1ZmZlciB0aGF0J3Mgc3VmZmlj aWVudCB0byBob2xkIG9uZQ0KZWxlbWVudC4NCg0KQnkgdGhlIHdheSwgSSBkb24ndCB3YW50IHRv IHByb3Bvc2UgInN3YXAtd2l0aG91dC11c2luZy10ZW1wb3JhcnktdmFsdWUiDQptZXRob2QgdG8g YXZvaWQgdXNpbmcgdGhlICJCdWZmZXJPbmVFbGVtZW50Ij8NCkJlY2F1c2UgdGhhdCBtYWtlcyB0 aGUgc2ltcGxlIHRoaW5nIGNvbXBsaWNhdGVkIQ0KDQpUaGFua3MsDQpSYXkNCg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXJ2aW4gSMOkdXNlciA8bWhhZXVzZXJAcG9z dGVvLmRlPg0KPiBTZW50OiBNb25kYXksIFNlcHRlbWJlciAyNywgMjAyMSA1OjA5IFBNDQo+IFRv OiBmYW5qaWFuZmVuZ0BieW9zb2Z0LmNvbS5jbjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IE5pLCBS YXkgPHJheS5uaUBpbnRlbC5jb20+OyAnZ2FvbGltaW5nJw0KPiA8Z2FvbGltaW5nQGJ5b3NvZnQu Y29tLmNuPjsgQ2hhbiwgQW15IDxhbXkuY2hhbkBpbnRlbC5jb20+OyAnQW5kcmV3IEZpc2gnIDxh ZmlzaEBhcHBsZS5jb20+DQo+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5l eUBpbnRlbC5jb20+OyAnR2FvLCBMaW1pbmcnIDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IExpdSwg WmhpZ3VhbmcNCj4gPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+OyBXYW5nLCBKaWFuIEogPGppYW4u ai53YW5nQGludGVsLmNvbT47IEdhbywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPg0K PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFJGQzogQWRkIEJhc2VMaWIvUXVpY2tTb3J0IGlu IE1kZVBrZw0KPiANCj4gT24gMjcvMDkvMjAyMSAxMDo1MCwgZmFuamlhbmZlbmdAYnlvc29mdC5j b20uY24gd3JvdGU6DQo+ID4gRm9yIGZvcm1lciBjYWxsZXIsIHRoZXkgY291bGQgc3RpbGwga2Vl cCBhcyBpcyB0byBjYWxsIHRoZSBvbGQgQVBJIGluDQo+ID4gTWRlTW9kdWxlUGtnLiBJIHRoaW5r IFJheSdzIGRlc2lnbiBpcyBjb21wYXRpYmxlIGNoYW5nZSBmb3IgZXhpc3RpbmcgY29kZS4NCj4g PiBPbmx5IHdoZW4gdGhlIGV4aXN0aW5nIGNvZGUgd2FudHMgdG8gcmVtb3ZlIHRoZSBkZXBlbmRl bmN5IG9uDQo+ID4gTWRlTW9kdWVsUGtnLCB0aGV5IGNvdWxkIG1pZ3JhdGUgdG8gdGhlIG5ldyBB UEkgaW4gYmFzZWxpYi4NCj4gPg0KPiA+IEnCoGFncmVlIHdpdGjCoG9uZcKgc3BsaXQtQVBJIGRl c2dpbiB3aGF0IHlvdSBtZW50aW9uZWQuDQo+ID4gQnV0IG15wqBwb2ludMKgaXPCoHRvIGRlZmlu ZSBvbmUgQVBJIGluIGJhc2VsaWIgYW5kwqB0byBtYWtlIHRoZSBiYXNlbGliDQo+ID4gbm90IGRl cGVuZCBvbiBtZW1vcnkgYWxsb2NhdGlvbi4gQW5kIGFub3RoZXIgd3JhcHBlciBBUEkgY291bGQg YmUNCj4gPiBkZXNpZ25lZCB0byBiZSBwbGFjZWQgaW4gYW55IG90aGVyIGNsYXNzLg0KPiANCj4g T2ggc3VyZSwgaXQgY291bGQgdG90YWxseSBsaXZlIGluIGFub3RoZXIgY2xhc3MuIEknZCBqdXN0 IGxpa2UgdG8gaGF2ZQ0KPiB0aG9zZSB0d28gbW9kZWxzIChjYWxsZXItIGFuZCBjYWxsZWUtb3du ZWQgYnVmZmVyKSBzdHJpY3RseSBzZXBhcmF0ZSwgSQ0KPiBwZXJzb25hbGx5IGRvIG5vdCBtaW5k IHdoZXJlIGV4YWN0bHkgdGhleSBhcmUgaW1wbGVtZW50ZWQuIFRoYW5rcyENCj4gDQo+IEJlc3Qg cmVnYXJkcywNCj4gTWFydmluDQo+IA0KPiA+DQo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gSmVm Zg0KPiA+IGZhbmppYW5mZW5nQGJ5b3NvZnQuY29tLmNuDQo+ID4NCj4gPiAgICAgKkZyb206KiBN YXJ2aW4gSMOkdXNlciA8bWFpbHRvOm1oYWV1c2VyQHBvc3Rlby5kZT4NCj4gPiAgICAgKkRhdGU6 KsKgMjAyMS0wOS0yN8KgMTY6MTQNCj4gPiAgICAgKlRvOiogZmFuamlhbmZlbmdAYnlvc29mdC5j b20uY24NCj4gPiAgICAgPG1haWx0bzpmYW5qaWFuZmVuZ0BieW9zb2Z0LmNvbS5jbj47IGRldmVs QGVkazIuZ3JvdXBzLmlvDQo+ID4gICAgIDxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+OyBO aSwgUmF5IDxtYWlsdG86cmF5Lm5pQGludGVsLmNvbT47DQo+ID4gICAgICdnYW9saW1pbmcnIDxt YWlsdG86Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgQ2hhbiwgQW15DQo+ID4gICAgIDxtYWls dG86YW15LmNoYW5AaW50ZWwuY29tPjsgJ0FuZHJldyBGaXNoJyA8bWFpbHRvOmFmaXNoQGFwcGxl LmNvbT4NCj4gPiAgICAgKkNDOiogS2lubmV5LCBNaWNoYWVsIEQgPG1haWx0bzptaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT47ICdHYW8sDQo+ID4gICAgIExpbWluZycgPG1haWx0bzpsaW1pbmcu Z2FvQGludGVsLmNvbT47IExpdSwgWmhpZ3VhbmcNCj4gPiAgICAgPG1haWx0bzp6aGlndWFuZy5s aXVAaW50ZWwuY29tPjsgV2FuZywgSmlhbiBKDQo+ID4gICAgIDxtYWlsdG86amlhbi5qLndhbmdA aW50ZWwuY29tPjsgR2FvLCBaaGljaGFvDQo+ID4gICAgIDxtYWlsdG86emhpY2hhby5nYW9AaW50 ZWwuY29tPg0KPiA+ICAgICAqU3ViamVjdDoqwqBSZTogW2VkazItZGV2ZWxdIFJGQzogQWRkIEJh c2VMaWIvUXVpY2tTb3J0IGluIE1kZVBrZw0KPiA+ICAgICBPbiAyNy8wOS8yMDIxIDAyOjQ1LCBm YW5qaWFuZmVuZ0BieW9zb2Z0LmNvbS5jbiB3cm90ZToNCj4gPiAgICAgPiBNYWtpbmcgYmFzZWxp YiBpbXBsZW1lbnRhdGlvbiBkZXBlbmQgb24gTWVtb3J5QWxsb2NhdGlvbkxpYg0KPiA+ICAgICA+ IChpbmRpcmVjdGx5IG9uIFBlaSBTZXJ2aWNlIGFuZCBnQlMpLCBpdCBtYXkgcHJldmVudA0KPiA+ ICAgICA+IHRoaXPCoGJhc2XCoEFQScKgdXNpbmfCoGF0IHNvbWXCoHNlbmVyYWlvLiBpIGRvbid0 IHRoaW5rIGl0J3MgYmV0dGVyLg0KPiA+ICAgICBUaGF0IGlzIHdoeSBJIGFza2VkIGFib3V0IGEg c3BsaXQtQVBJIHNjZW5hcmlvLCBvbmUgb2Ygd2hpY2ggZG9lcyBub3QNCj4gPiAgICAgZGVwZW5k IG9uIGR5bmFtaWMgbWVtb3J5IGFsbG9jYXRpb24gKFNldFZhcmlhYmxlLWxpa2UpIGFuZCBvbmUg ZG9lcw0KPiA+ICAgICAod3JhcHBlci1saWtlKS4NCj4gPiAgICAgPiBBZGQgdGhpcyBwYXJhbWV0 ZXIgYW5kIG1ha2UgdGhpcyBwYXJhbWV0ZXIgaXMgb3B0aW9uYWwsDQo+ID4gICAgID4gMSwgd2hl biBOVUxMLCB1c2UgdGhlIGxvY2FsIDI1NiBieXRlcyBzdGFjaw0KPiA+ICAgICA+IDIsIGlmIDI1 NiBieXRlcyBzdGFjayBpcyBub3QgZW5vdWdoLCByZXR1cm4gUkVUVVJFX0JVRkZFUl9UT09fU0FN TEwsDQo+ID4gICAgID4gMywgY2FsbGVyIGNoZWNrIHRoZSByZXR1cm4gc3RhdHVzLCB0byBkbyBu b3RoaW5nwqBvciB0byBhbGxvY2F0ZQ0KPiA+ICAgICBlbm91Z2gNCj4gPiAgICAgPiBidWZmZXIg Zm9yIHJldHJ5DQo+ID4gICAgID4NCj4gPiAgICAgPiBUaGlzIGlzIGp1c3QgbGlrZSBTZXRWYXJp YWJsZSgpJ3MgaW1wbGVtZW50YXRpb24uDQo+ID4gICAgIFllcywgYW5kIGJlY2F1c2UgdGhhdCBp cyBTZXRWYXJpYWJsZSdzIGltcGxlbWVudGF0aW9uLCB3ZSBoYXZlDQo+ID4gICAgIGxpYnJhcnkN Cj4gPiAgICAgZnVuY3Rpb25zIHRvIG1ha2UgaXQgbGVzcyBlcnJvci1wcm9uZSBhbmQgbW9yZSBj b252ZW5pZW50IFsxXS4gQXMgYQ0KPiA+ICAgICBtYXR0ZXIgb2YgZmFjdCwgd2UgaGF2ZSBhIChz ZW1pLWxheCkgcG9saWN5IGluIG91ciBjb2RlYmFzZXMgdG8gYXZvaWQNCj4gPiAgICAgc3VjaCBm dW5jdGlvbnMgbGlrZSB0aGUgcGxhZ3VlIGFuZCB1c2UgdGhvc2UgbGlicmFyeSB3cmFwcGVycw0K PiA+ICAgICB3aGVyZS1ldmVyDQo+ID4gICAgIGl0IGNhbiBtYWtlIHNlbnNlLiBUaGUgb25seSBz dXBlci1yYXJlIGV4Y2VwdGlvbnMgSSBjYW4gdGhpbmsgb2YgYXJlDQo+ID4gICAgIHdoZW4gd2Ug a25vdyB0aGUgc2l6ZSBvZiB0aGUgZWxlbWVudCBhaGVhZCBvZiB0aW1lLiBBbHNvDQo+ID4gICAg IFNldFZhcmlhYmxlIGhhcw0KPiA+ICAgICBubyBhcmJpdHJhcnkgY29uc3RyYWludCBvbiB3aGVu IGl0IG1heSB3b3JrIHRoZSBmaXJzdCB0aW1lLCBhbmQNCj4gPiAgICAgdGhlcmUgaXMNCj4gPiAg ICAgY29kZSB0aGF0IHdpbGwgZmFpbCB3aGVuIHRoZSBmaXJzdCByZXR1cm4gaXMgbm90IEVGSV9C VUZGRVJfVE9PX1NNQUxMLg0KPiA+ICAgICBUaGlzIHNvbHV0aW9uIGhvbmVzdGx5IHlpZWxkcyBl dmVuIG1vcmUgcHJvYmxlbXMsIGJlY2F1c2UgaXQNCj4gPiAgICAgaW50cm9kdWNlcw0KPiA+ICAg ICBhIFN0YXR1cyByZXR1cm4gd2hpY2ggd2FzIG5vdCB0aGVyZSBiZWZvcmUuIEZvciBjb21tb24g Y29kZSBzYWZldHkNCj4gPiAgICAgYW5kDQo+ID4gICAgIHF1YWxpdHkgcG9saWN5LCB0aGlzIHJl cXVpcmVzIHRoZSB2YWx1ZSAqbXVzdCogYmUgcmV0cmlldmVkIGFuZA0KPiA+ICAgICBjaGVja2Vk DQo+ID4gICAgIGluIHNvbWUgZmFzaGlvbi4gU28gYWxsIGNhbGxlcnMsIG5vIG1hdHRlciB0aGUg cHJpb3Iga25vd2xlZGdlIG9mIHRoZQ0KPiA+ICAgICBlbGVtZW50IHNpemUsIG5vdyBuZWVkIGVp dGhlciBhIHJ1bnRpbWUgY2hlY2sgYW5kIGhhbmRsaW5nIGZvciBhDQo+ID4gICAgIHN0YXR1cw0K PiA+ICAgICB0aGF0IHRoZXkgKG1heSkga25vdyBjYW4gbmV2ZXIgYmUgcmV0dXJuZWQsIG9yIEFT U0VSVHMgaWYgdGhlDQo+ID4gICAgIGZ1bmN0aW9uDQo+ID4gICAgIHNwZWMgcmVhbGx5IGltcG9z ZXMgdGhlIGFyYml0cmFyeSAyNTYgQnl0ZXMgY29uc3RyYWludC4gTGF0dGVyDQo+ID4gICAgIGRv ZXNuJ3QNCj4gPiAgICAgcmVhbGx5IHdvcmsgSSB0aGluay4gV2hhdCBpZiBzb21lb25lIHdhbnRz IHRvIHNvcnQgaW4gU0VDIGFuZCBub3RpY2VkDQo+ID4gICAgIHRoZXkgb25seSBoYXZlIDY0IEJ5 dGVzIG9uIHRoZSBzdGFjayB0byB3b3JrIHdpdGgsIHJlYWxpc3RpY2FsbHk/IEFueQ0KPiA+ICAg ICBjb2RlIGRlcGVuZGluZyBvbiB0aGUgMjU2IEJ5dGUgY29uc3RyYWludCwgcGFzc2luZyBOVUxM IGFuZCBub3QgZG9pbmcNCj4gPiAgICAgYWRkaXRpb25hbCBoYW5kbGluZywgd291bGQgc2VpemUg dG8gd29yay4gRm9ybWVyIGlzIHRvbw0KPiA+ICAgICBjb21wbGljYXRlZCwgc2VlDQo+ID4gICAg IHdyYXBwZXJzLiBJbiBteSBvcGluaW9uLCB0aGUgbWVtb3J5IG11c3QgKmVpdGhlciogYmUgZnVs bHkgbWFuYWdlZCBieQ0KPiA+ICAgICB0aGUgY2FsbGVyICpvciogdGhlIGNhbGxlZSAoYW5kIHlv dSBtYXkgaGF2ZSBib3RoIGluIHNlcGFyYXRlDQo+ID4gICAgIGZ1bmN0aW9ucywNCj4gPiAgICAg YXMgSSBzdWdnZXN0ZWQpLCBidXQgbm90IHNvbWV0aW1lcyBoZXJlLCBzb21ldGltZXMgdGhlcmUu DQo+ID4gICAgIEJlc3QgcmVnYXJkcywNCj4gPiAgICAgTWFydmluDQo+ID4gICAgIFsxXQ0KPiA+ DQo+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9ibG9iLzQ2YjQ2MDZiYTIzNDk4 ZDNkMGU2NmI1M2U0OThlYjNkNWQ1OTI1ODYvTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9VZWZpTGli LmMjTA0KPiAxMzA5LUwxMzYwDQo+ID4gICAgID4NCj4gPiAgICAgPg0KPiA+ICAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gPiAgICAgPiBKZWZmDQo+ID4gICAgID4gZmFuamlhbmZlbmdAYnlvc29mdC5j b20uY24NCj4gPiAgICAgPg0KPiA+ICAgICA+wqDCoMKgwqAgKkZyb206KiBNYXJ2aW4gSMOkdXNl ciA8bWFpbHRvOm1oYWV1c2VyQHBvc3Rlby5kZT4NCj4gPiAgICAgPsKgwqDCoMKgICpEYXRlOirC oDIwMjEtMDktMjbCoDE5OjIwDQo+ID4gICAgID7CoMKgwqDCoCAqVG86KiBkZXZlbCA8bWFpbHRv OmRldmVsQGVkazIuZ3JvdXBzLmlvPjsgcmF5Lm5pDQo+ID4gICAgID7CoMKgwqDCoCA8bWFpbHRv OnJheS5uaUBpbnRlbC5jb20+OyBnYW9saW1pbmcNCj4gPiAgICAgPsKgwqDCoMKgIDxtYWlsdG86 Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgQ2hhbiwgQW15DQo+ID4gICAgID7CoMKgwqDCoCA8 bWFpbHRvOmFteS5jaGFuQGludGVsLmNvbT47ICdBbmRyZXcgRmlzaCcNCj4gPiAgICAgPG1haWx0 bzphZmlzaEBhcHBsZS5jb20+DQo+ID4gICAgID7CoMKgwqDCoCAqQ0M6KiBLaW5uZXksIE1pY2hh ZWwgRCA8bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4gPiAgICAgJ0dhbywN Cj4gPiAgICAgPsKgwqDCoMKgIExpbWluZycgPG1haWx0bzpsaW1pbmcuZ2FvQGludGVsLmNvbT47 IExpdSwgWmhpZ3VhbmcNCj4gPiAgICAgPsKgwqDCoMKgIDxtYWlsdG86emhpZ3VhbmcubGl1QGlu dGVsLmNvbT47IFdhbmcsIEppYW4gSg0KPiA+ICAgICA+wqDCoMKgwqAgPG1haWx0bzpqaWFuLmou d2FuZ0BpbnRlbC5jb20+OyBHYW8sIFpoaWNoYW8NCj4gPiAgICAgPsKgwqDCoMKgIDxtYWlsdG86 emhpY2hhby5nYW9AaW50ZWwuY29tPg0KPiA+ICAgICA+wqDCoMKgwqAgKlN1YmplY3Q6KsKgUmU6 IFtlZGsyLWRldmVsXSBSRkM6IEFkZCBCYXNlTGliL1F1aWNrU29ydCBpbiBNZGVQa2cNCj4gPiAg ICAgPsKgwqDCoMKgIEhleSBSYXksDQo+ID4gICAgID7CoMKgwqDCoCBJbiBteSBvcGluaW9uIHRo YXQgc3BlYyBpcyB0b28gY29tcGxpY2F0ZWQuIEZvciBzb21lIGNhc2VzIGl0IGlzDQo+ID4gICAg ID7CoMKgwqDCoCBvYnZpb3VzLCBidXQgSSB0aGluayB0aGUgbGFzdCBhbnlvbmUgd2FudHMgdG8g c2VlIGlzIGENCj4gPiAgICAgPsKgwqDCoMKgIChTVEFUSUNfKUFTU0VSVA0KPiA+ICAgICA+wqDC oMKgwqAgYmVmb3JlIG1vc3QgUXVpY2tTb3J0IGNhbGxzIHRvIGVuc3VyZSB0aGUgZWxlbWVudCBz aXplDQo+ID4gICAgICpyZWFsbHkqIGlzIDw9DQo+ID4gICAgID7CoMKgwqDCoCAyNTYgQnl0ZXMu IEluIG15IG9waW5pb24sIHRoZXJlIGFyZSB0d28gcm9hZHM6DQo+ID4gICAgID7CoMKgwqDCoCAx KSBNYWtlIHRoZSBwYXJhbWV0ZXIgcmVxdWlyZWQgKEkgdGhpbmsgdGhpcyBpcyB3aGF0IExpbWlu Zw0KPiA+ICAgICA+wqDCoMKgwqAgc3VnZ2VzdGVkKS4NCj4gPiAgICAgPsKgwqDCoMKgIFRoZSBj YWxsZXIgd291bGQgYWx3YXlzIG5lZWQgdG8gcHJvdmlkZSBzYWlkIGJ1ZmZlciwgYW5kIGl0DQo+ ID4gICAgIGNhbiBkbw0KPiA+ICAgICA+wqDCoMKgwqAgYXMgaXQNCj4gPiAgICAgPsKgwqDCoMKg IHNlZXMgZml0IC0gb24gdGhlIHN0YWNrLCBpbiBhIHBvb2wsIGluIGEgcGFnZSwgd2hvIGtub3dz Lg0KPiA+ICAgICA+wqDCoMKgwqAgMikgUmVtb3ZlIHRoZSBwYXJhbWV0ZXIgZW50aXJlbHkuIFRo ZSBsaWJyYXJ5IHdvdWxkIGRlcGVuZCBvbg0KPiA+ICAgICA+wqDCoMKgwqAgTWVtb3J5QWxsb2Nh dGlvbkxpYiBhZ2FpbiwgYnV0IGFsc28gd291bGQgaGF2ZSBhbg0KPiA+ICAgICBvcHRpbWlzYXRp b24gYnkNCj4gPiAgICAgPsKgwqDCoMKgIGNob29zaW5nIHN0YWNrIHZzIHBvb2wgYmFzZWQgb24g RWxlbWVudFNpemUuDQo+ID4gICAgID7CoMKgwqDCoCBVc3VhbGx5IEkgd291bGQgcHJlZmVyIDIp LCBhcyBpdCBpcyBsZXNzIHByb25lIHRvIGNhbGxlcg0KPiA+ICAgICBlcnJvcnMsIGJ1dA0KPiA+ ICAgICA+wqDCoMKgwqAgY29uc2lkZXJpbmcgdGhlIGxvdy1sZXZlbCBuYXR1cmUgb2YgZWRrMiwg SSBjYW4gdG90YWxseSBzZWUgdGhlDQo+ID4gICAgID7CoMKgwqDCoCBwb2ludCB0bw0KPiA+ICAg ICA+wqDCoMKgwqAgYWxsb3cgdGhlIGNhbGxlciB0byBjb250cm9sIHdoZXRoZXIgdGhlcmUgYXJl IGR5bmFtaWMgbWVtb3J5DQo+ID4gICAgID7CoMKgwqDCoCBhbGxvY2F0aW9ucw0KPiA+ICAgICA+ wqDCoMKgwqAgbWFkZSBvciBub3QgYXMgcG9zc2libGUgd2l0aCAxKS4gMikgY291bGQgdGVjaG5p Y2FsbHkgYWxzbyBiZSBhDQo+ID4gICAgID7CoMKgwqDCoCB3cmFwcGVyDQo+ID4gICAgID7CoMKg wqDCoCBmb3IgMSkgaWYgeW91IHdhbnQgZ3JhbnVsYXIgY29udHJvbCBhbmQgY29udmVuaWVuY2Uv c2FmZXR5DQo+ID4gICAgICh3aHkgbm90DQo+ID4gICAgID7CoMKgwqDCoCBhY3R1YWxseT8pLg0K PiA+ICAgICA+wqDCoMKgwqAgQm90aCBhcHByb2FjaGVzIGhhdmUgdGhlIGFkdmFudGFnZSB0aGF0 IGl0IGlzIGNyeXN0YWwtY2xlYXINCj4gPiAgICAgd2hhdCB0aGUNCj4gPiAgICAgPsKgwqDCoMKg IGNhbGxlcidzIGpvYiBpcyAtIHRvIGFsd2F5cyBvciB0byBuZXZlciBhbGxvY2F0ZSB0aGUgYnVm ZmVyLg0KPiA+ICAgICA+wqDCoMKgwqAgQmVzdCByZWdhcmRzLA0KPiA+ICAgICA+wqDCoMKgwqAg TWFydmluDQo+ID4gICAgID7CoMKgwqDCoCBPbiAyNi8wOS8yMDIxIDA0OjI0LCBOaSwgUmF5IHdy b3RlOg0KPiA+ICAgICA+wqDCoMKgwqAgPg0KPiA+ICAgICA+wqDCoMKgwqAgPiBMaW1pbmcsDQo+ ID4gICAgID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKgwqDCoCA+IFRoZSBwdXJwb3NlIG9mIHRo ZSBvcHRpb25hbCBCdWZmZXJPbmVFbGVtZW50IGlzIHRvIGVhc2UNCj4gPiAgICAgY29uc3VtZXLi gJlzDQo+ID4gICAgID7CoMKgwqDCoCA+IGxpZmUgYXNzdW1pbmcgbW9zdCBvZiB0aGUgdGltZSB0 aGUgZWxlbWVudCBzaXplIHNob3VsZCBiZQ0KPiA+ICAgICA+wqDCoMKgwqAgc21hbGxlciB0aGFu DQo+ID4gICAgID7CoMKgwqDCoCA+IDI1Ni4NCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAg PsKgwqDCoMKgID4gQXJlIHlvdSBzYXlpbmcgdGhhdCBpdOKAmXMgYSBiaXQgaGFyZCB0byBjYWxj dWxhdGUgdGhlIGFjdHVhbA0KPiA+ICAgICA+wqDCoMKgwqAgdmFsdWUgb2YNCj4gPiAgICAgPsKg wqDCoMKgID4gc2l6ZW9mIChFbGVtZW50KSB3aGVuIHdyaXRpbmcgY29kZT8NCj4gPiAgICAgPsKg wqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID4gSSByZWNvbW1lbmQgY29uc3VtZXIgYWx3YXlz IGFsbG9jYXRlcyBtZW1vcnkgaWYgaXTigJlzIGhhcmQNCj4gPiAgICAgdG8ganVkZ2UNCj4gPiAg ICAgPsKgwqDCoMKgID4gc2l6ZW9mIChFbGVtZW50KSA8IDI1Ni4NCj4gPiAgICAgPsKgwqDCoMKg ID4NCj4gPiAgICAgPsKgwqDCoMKgID4gU2VhcmNoaW5nIGVkazIgY29kZSwgSSBjYW4gZmluZCBi ZWxvdyBjb2RlIHVzaW5nDQo+ID4gICAgIFBlcmZvcm1RdWlja1NvcnQoKToNCj4gPiAgICAgPsKg wqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID7CoCAxLiBTaGVsbFBrZy9VZWZpU2hlbGxDb21t YW5kTGliOiBJdOKAmXMgc29ydGluZyBhcnJheSBvZg0KPiA+ICAgICA+wqDCoMKgwqAgPsKgwqDC oMKgIChFRklfREVWSUNFX1BBVEhfUFJPVE9DT0wgKikuDQo+ID4gICAgID7CoMKgwqDCoCA+wqAg Mi4gVWVmaUNwdVBrZy9DcHVDYWNoZUluZm9MaWI6IEl04oCZcyBzb3J0aW5nIGFycmF5IG9mDQo+ ID4gICAgID7CoMKgwqDCoCDCoENQVV9DQUNIRV9JTkZPLg0KPiA+ICAgICA+wqDCoMKgwqAgPsKg IDMuIE1pblBsYXRmb3JtUGtnL0FjcGlUYWJsZXM6IEl04oCZcyBzb3J0aW5nIGFycmF5IG9mDQo+ ID4gICAgID7CoMKgwqDCoCBFRklfQ1BVX0lEX09SREVSX01BUC4NCj4gPiAgICAgPsKgwqDCoMKg ID7CoCA0LiBNZGVNb2R1bGVQa2cvVWVmaUJvb3RNYW5hZ2VyTGliOiBJdOKAmXMgc29ydGluZyBh cnJheSBvZg0KPiA+ICAgICA+wqDCoMKgwqAgPsKgwqDCoMKgIEVGSV9CT09UX01BTkFHRVJfTE9B RF9PUFRJT04uDQo+ID4gICAgID7CoMKgwqDCoCA+wqAgNS4gTWRlTW9kdWxlUGtnL0NhcHN1bGVB cHA6IEl04oCZcyBzb3J0aW5nIGFycmF5IG9mDQo+ID4gICAgIChFRklfRklMRV9JTkZPICopDQo+ ID4gICAgID7CoMKgwqDCoCA+wqAgNi4gQ3J5cHRvUGtnL0NydFdyYXBwZXI6IEl04oCZcyBzb3J0 aW5nIGFycmF5IG9mICh1bmtub3duDQo+ID4gICAgIHR5cGUpLg0KPiA+ICAgICA+wqDCoMKgwqAg PsKgIDcuIFJlZGZpc2hQa2cvUmVkZmlzaENydExpYjogSXTigJlzIHNvcnRpbmcgYXJyYXkgb2YN Cj4gPiAgICAgKHVua25vd24gdHlwZSkuDQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ID4gICAgID7C oMKgwqDCoCA+IEZvciAxfjUsIGl04oCZcyBlYXN5IHRvIGtub3cgdGhhdCB0aGUgc2l6ZSBvZiB0 aGUgZWxlbWVudCBpcw0KPiA+ICAgICBzbWFsbGVyDQo+ID4gICAgID7CoMKgwqDCoCA+IHRoYW4g MjU2LiBUaGUgQWxsb2NhdGVQb29sKCkgY2FuIGJlIHNraXBwZWQuDQo+ID4gICAgID7CoMKgwqDC oCA+DQo+ID4gICAgID7CoMKgwqDCoCA+IFRoYW5rcywNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4g PiAgICAgPsKgwqDCoMKgID4gUmF5DQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKg wqDCoCA+ICpGcm9tOipnYW9saW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gPiAg ICAgPsKgwqDCoMKgID4gKlNlbnQ6KiBTdW5kYXksIFNlcHRlbWJlciAyNiwgMjAyMSAxMDowMSBB TQ0KPiA+ICAgICA+wqDCoMKgwqAgPiAqVG86KiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsg ZGV2ZWxAZWRrMi5ncm91cHMuaW87DQo+ID4gICAgIENoYW4sIEFteQ0KPiA+ICAgICA+wqDCoMKg wqAgPiA8YW15LmNoYW5AaW50ZWwuY29tPjsgJ0FuZHJldyBGaXNoJyA8YWZpc2hAYXBwbGUuY29t Pg0KPiA+ICAgICA+wqDCoMKgwqAgPiAqQ2M6KiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb20+Ow0KPiA+ICAgICAnR2FvLCBMaW1pbmcnDQo+ID4gICAgID7CoMKg wqDCoCA+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IExpdSwgWmhpZ3VhbmcNCj4gPiAgICAgPHpo aWd1YW5nLmxpdUBpbnRlbC5jb20+Ow0KPiA+ICAgICA+wqDCoMKgwqAgV2FuZywNCj4gPiAgICAg PsKgwqDCoMKgID4gSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBHYW8sIFpoaWNoYW8N Cj4gPiAgICAgPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4gPiAgICAgPsKgwqDCoMKgID4gKlN1 YmplY3Q6KiDlm57lpI06IFtlZGsyLWRldmVsXSBSRkM6IEFkZCBCYXNlTGliL1F1aWNrU29ydCBp bg0KPiA+ICAgICBNZGVQa2cNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKg ID4gUmF5Og0KPiA+ICAgICA+wqDCoMKgwqAgPg0KPiA+ICAgICA+wqDCoMKgwqAgPiBJIG1heSBz dWdnZXN0IHRvIGFsd2F5cyByZXF1aXJlIEJ1ZmZlck9uZUVsZW1lbnQuIFRoZQ0KPiA+ICAgICBj b25zdW1lciBjb2RlDQo+ID4gICAgID7CoMKgwqDCoCA+IG1heSBub3Qga25vdyBFbGVtZW50U2l6 ZS4gVG8gYXZvaWQgdGhlIGVycm9yLCB0aGUgY29uc3VtZXINCj4gPiAgICAgbXVzdA0KPiA+ICAg ICA+wqDCoMKgwqAgPiBhbGxvY2F0ZSBidWZmZXIgZm9yIEJ1ZmZlck9uZUVsZW1lbnQuIElmIHNv LA0KPiA+ICAgICBCdWZmZXJPbmVFbGVtZW50IGlzDQo+ID4gICAgID7CoMKgwqDCoCB0aGUNCj4g PiAgICAgPsKgwqDCoMKgID4gcmVxdWlyZWQgcGFyYW1ldGVyLg0KPiA+ICAgICA+wqDCoMKgwqAg Pg0KPiA+ICAgICA+wqDCoMKgwqAgPiBUaGFua3MNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAg ICAgPsKgwqDCoMKgID4gTGltaW5nDQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKg wqDCoCA+ICrlj5Hku7bkuroqKjoqTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbQ0KPiA+ICAgICA8 bWFpbHRvOnJheS5uaUBpbnRlbC5jb20+Pg0KPiA+ICAgICA+wqDCoMKgwqAgPiAq5Y+R6YCB5pe2 6Ze0OiogMjAyMeW5tDnmnIgyNOaXpSAxMTo1Mw0KPiA+ICAgICA+wqDCoMKgwqAgPiAq5pS25Lu2 5Lq6OiogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz47 DQo+ID4gICAgIE5pLA0KPiA+ICAgICA+wqDCoMKgwqAgUmF5DQo+ID4gICAgID7CoMKgwqDCoCA+ IDxyYXkubmlAaW50ZWwuY29tIDxtYWlsdG86cmF5Lm5pQGludGVsLmNvbT4+OyBDaGFuLCBBbXkN Cj4gPiAgICAgPsKgwqDCoMKgID4gPGFteS5jaGFuQGludGVsLmNvbSA8bWFpbHRvOmFteS5jaGFu QGludGVsLmNvbT4+OyBnYW9saW1pbmcNCj4gPiAgICAgPsKgwqDCoMKgID4gPGdhb2xpbWluZ0Bi eW9zb2Z0LmNvbS5jbiA8bWFpbHRvOmdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4+Ow0KPiA+ICAg ICA+wqDCoMKgwqAgJ0FuZHJldw0KPiA+ICAgICA+wqDCoMKgwqAgPiBGaXNoJyA8YWZpc2hAYXBw bGUuY29tIDxtYWlsdG86YWZpc2hAYXBwbGUuY29tPj4NCj4gPiAgICAgPsKgwqDCoMKgID4gKuaK hOmAgToqIEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbQ0KPiA+ ICAgICA+wqDCoMKgwqAgPiA8bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPj47ICdH YW8sIExpbWluZycNCj4gPiAgICAgPsKgwqDCoMKgID4gPGxpbWluZy5nYW9AaW50ZWwuY29tIDxt YWlsdG86bGltaW5nLmdhb0BpbnRlbC5jb20+PjsgTGl1LA0KPiA+ICAgICBaaGlndWFuZw0KPiA+ ICAgICA+wqDCoMKgwqAgPiA8emhpZ3VhbmcubGl1QGludGVsLmNvbSA8bWFpbHRvOnpoaWd1YW5n LmxpdUBpbnRlbC5jb20+PjsNCj4gPiAgICAgV2FuZywNCj4gPiAgICAgPsKgwqDCoMKgIEppYW4g Sg0KPiA+ICAgICA+wqDCoMKgwqAgPiA8amlhbi5qLndhbmdAaW50ZWwuY29tIDxtYWlsdG86amlh bi5qLndhbmdAaW50ZWwuY29tPj47IEdhbywNCj4gPiAgICAgPsKgwqDCoMKgIFpoaWNoYW8NCj4g PiAgICAgPsKgwqDCoMKgID4gPHpoaWNoYW8uZ2FvQGludGVsLmNvbSA8bWFpbHRvOnpoaWNoYW8u Z2FvQGludGVsLmNvbT4+DQo+ID4gICAgID7CoMKgwqDCoCA+ICrkuLvpopg6KiBSRTogW2VkazIt ZGV2ZWxdIFJGQzogQWRkIEJhc2VMaWIvUXVpY2tTb3J0IGluIE1kZVBrZw0KPiA+ICAgICA+wqDC oMKgwqAgPg0KPiA+ICAgICA+wqDCoMKgwqAgPiBNb3JlIGRldGFpbHMgb24gbmV3IFF1aWNrU29y dCgpIEFQSToNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID4gVGhlIG5l dyBBUEkgbmVlZHMgdG8gY2FycnkgYWRkaXRpb25hbCBwYXJhbWV0ZXINCj4gPiAgICAg4oCcQnVm ZmVyT25lRWxlbWVudOKAnS4NCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKg ID4gVGhpcyBwYXJhbWV0ZXIgZ2l2ZXMgUXVpY2tTb3J0KCkgdGhlIHRlbXBvcmFyeSBidWZmZXIg Zm9yDQo+ID4gICAgID7CoMKgwqDCoCBzd2FwcGluZyBpbg0KPiA+ICAgICA+wqDCoMKgwqAgPiBz b3J0aW5nLg0KPiA+ICAgICA+wqDCoMKgwqAgPg0KPiA+ICAgICA+wqDCoMKgwqAgPiBJdOKAmXMg dG8gYXZvaWQgQmFzZUxpYiBkZXBlbmRzIG9uIE1lbW9yeUFsbG9jYXRpb25MaWIuDQo+ID4gICAg ID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKgwqDCoCA+IOKApg0KPiA+ICAgICA+wqDCoMKgwqAg Pg0KPiA+ICAgICA+wqDCoMKgwqAgPiBAcGFyYW0gW2luXSBCdWZmZXJPbmVFbGVtZW50IMKgV2hl biBFbGVtZW50U2l6ZSA+IDI1NiwgY2FsbGVyDQo+ID4gICAgID7CoMKgwqDCoCBuZWVkcyB0bw0K PiA+ICAgICA+wqDCoMKgwqAgPiBwcm92aWRlIGEgYnVmZmVyIHdob3NlIHNpemUNCj4gPiAgICAg PsKgwqDCoMKgID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgwqBlcXVhbHMgdG8gRWxlbWVudFNpemUuIEl04oCZcw0KPiA+ICAgICB1c2Vk IGJ5DQo+ID4gICAgID7CoMKgwqDCoCA+IFF1aWNrU29ydCgpIGZvciBzd2FwcGluZyBpbiBzb3J0 aW5nLg0KPiA+ICAgICA+wqDCoMKgwqAgPg0KPiA+ICAgICA+wqDCoMKgwqAgPiBXaGVuIEVsZW1l bnRTaXplIDw9IDI1NiwgUXVpY2tTb3J0KCkgdXNlcyBhIGxvY2FsIHN0YWNrDQo+ID4gICAgIDI1 Ni1ieXRlDQo+ID4gICAgID7CoMKgwqDCoCBidWZmZXIuDQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ ID4gICAgID7CoMKgwqDCoCA+IEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSIFdoZW4gKEVs ZW1lbnRTaXplID4gMjU2KSBhbmQNCj4gPiAgICAgPsKgwqDCoMKgID4gKEJ1ZmZlck9uZUVsZW1l bnQgPT0gTlVMTCkuDQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKgwqDCoCA+IOKA pg0KPiA+ICAgICA+wqDCoMKgwqAgPg0KPiA+ICAgICA+wqDCoMKgwqAgPiBWT0lEDQo+ID4gICAg ID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKgwqDCoCA+IEVGSUFQSQ0KPiA+ICAgICA+wqDCoMKg wqAgPg0KPiA+ICAgICA+wqDCoMKgwqAgPiBRdWlja1NvcnTCoCgNCj4gPiAgICAgPsKgwqDCoMKg ID4NCj4gPiAgICAgPsKgwqDCoMKgID4gwqDCoElOwqBPVVQgVk9JRMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKkJ1ZmZlclRvU29ydCwNCj4gPiAgICAg PsKgwqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID4gwqDCoElOwqBDT05TVMKgVUlOVE4gRWxl bWVudENvdW50LA0KPiA+ICAgICA+wqDCoMKgwqAgPg0KPiA+ICAgICA+wqDCoMKgwqAgPiDCoMKg SU7CoENPTlNUwqBVSU5UTiBFbGVtZW50U2l6ZSwNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAg ICAgPsKgwqDCoMKgID4gwqDCoElOwqDCoMKgwqDCoMKgwqBTT1JUX0NPTVBBUkUgQ29tcGFyZUZ1 bmN0aW9uLA0KPiA+ICAgICA+wqDCoMKgwqAgPg0KPiA+ICAgICA+wqDCoMKgwqAgPiBJTiBWT0lE ICpCdWZmZXJPbmVFbGVtZW50IE9QVElPTkFMDQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ID4gICAg ID7CoMKgwqDCoCA+ICk7DQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKgwqDCoCA+ IEFueSBjb21tZW50cz8NCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID4g KkZyb206KmRldmVsQGVkazIuZ3JvdXBzLmlvIDxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+ DQo+ID4gICAgID7CoMKgwqDCoCA+IDxkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8bWFpbHRvOmRldmVs QGVkazIuZ3JvdXBzLmlvPj4gKk9uDQo+ID4gICAgIEJlaGFsZiBPZg0KPiA+ICAgICA+wqDCoMKg wqAgPiAqTmksIFJheQ0KPiA+ICAgICA+wqDCoMKgwqAgPiAqU2VudDoqIFdlZG5lc2RheSwgU2Vw dGVtYmVyIDIyLCAyMDIxIDI6MDQgUE0NCj4gPiAgICAgPsKgwqDCoMKgID4gKlRvOiogQ2hhbiwg QW15IDxhbXkuY2hhbkBpbnRlbC5jb20NCj4gPiAgICAgPG1haWx0bzphbXkuY2hhbkBpbnRlbC5j b20+PjsNCj4gPiAgICAgPsKgwqDCoMKgID4gZ2FvbGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5j b20uY24NCj4gPiAgICAgPsKgwqDCoMKgID4gPG1haWx0bzpnYW9saW1pbmdAYnlvc29mdC5jb20u Y24+PjsgJ0FuZHJldyBGaXNoJw0KPiA+ICAgICA8YWZpc2hAYXBwbGUuY29tDQo+ID4gICAgID7C oMKgwqDCoCA+IDxtYWlsdG86YWZpc2hAYXBwbGUuY29tPj47ICdlZGsyLWRldmVsLWdyb3Vwcy1p bycNCj4gPiAgICAgPsKgwqDCoMKgID4gPGRldmVsQGVkazIuZ3JvdXBzLmlvIDxtYWlsdG86ZGV2 ZWxAZWRrMi5ncm91cHMuaW8+Pg0KPiA+ICAgICA+wqDCoMKgwqAgPiAqQ2M6KiBLaW5uZXksIE1p Y2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20NCj4gPiAgICAgPsKgwqDCoMKgID4g PG1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4+OyAnR2FvLCBMaW1pbmcnDQo+ID4g ICAgID7CoMKgwqDCoCA+IDxsaW1pbmcuZ2FvQGludGVsLmNvbSA8bWFpbHRvOmxpbWluZy5nYW9A aW50ZWwuY29tPj47IExpdSwNCj4gPiAgICAgWmhpZ3VhbmcNCj4gPiAgICAgPsKgwqDCoMKgID4g PHpoaWd1YW5nLmxpdUBpbnRlbC5jb20gPG1haWx0bzp6aGlndWFuZy5saXVAaW50ZWwuY29tPj47 DQo+ID4gICAgIFdhbmcsDQo+ID4gICAgID7CoMKgwqDCoCBKaWFuIEoNCj4gPiAgICAgPsKgwqDC oMKgID4gPGppYW4uai53YW5nQGludGVsLmNvbSA8bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNv bT4+OyBHYW8sDQo+ID4gICAgID7CoMKgwqDCoCBaaGljaGFvDQo+ID4gICAgID7CoMKgwqDCoCA+ IDx6aGljaGFvLmdhb0BpbnRlbC5jb20gPG1haWx0bzp6aGljaGFvLmdhb0BpbnRlbC5jb20+Pg0K PiA+ICAgICA+wqDCoMKgwqAgPiAqU3ViamVjdDoqIFJlOiBbZWRrMi1kZXZlbF0gUkZDOiBBZGQg QmFzZUxpYi9RdWlja1NvcnQgaW4NCj4gPiAgICAgTWRlUGtnDQo+ID4gICAgID7CoMKgwqDCoCA+ DQo+ID4gICAgID7CoMKgwqDCoCA+IEkgZG9u4oCZdCBzZWUgb2JqZWN0aW9uIHNvIGZhci4NCj4g PiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID4gU28sIHRoZSBmaW5hbCBzb2x1 dGlvbiBpczoNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID7CoCAxLiBB ZGQgUXVpY2tTb3J0KCkgQVBJIHRvIEJhc2VMaWIgaW4gTWRlUGtnLg0KPiA+ICAgICA+wqDCoMKg wqAgPsKgIDIuIFVwZGF0ZSBleGlzdGluZ8KgTWRlTW9kdWxlUGtnL1NvcnRMaWIgdG8gdXNlDQo+ ID4gICAgIFF1aWNrU29ydCgpIGluIHRoZQ0KPiA+ICAgICA+wqDCoMKgwqAgPsKgwqDCoMKgIGlt cGxlbWVudGF0aW9uIChwcm9wb3NlZCBieSBBbmRyZXcgRmlzaCBhbmQgTGltaW5nIEdhbykNCj4g PiAgICAgPsKgwqDCoMKgID7CoCAzLiBVcGRhdGUgVWVmaUNwdVBrZyB0byB1c2UgUXVpY2tTb3J0 TGliIHRvIHJlbW92ZSBpbXByb3Blcg0KPiA+ICAgICA+wqDCoMKgwqAgPsKgwqDCoMKgIGRlcGVu ZGVuY3kgb24gTWRlTW9kdWxlUGtnDQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKg wqDCoCA+IFRoYW5rcywNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID4g UmF5DQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKgwqDCoCA+ICpGcm9tOipOaSwg UmF5DQo+ID4gICAgID7CoMKgwqDCoCA+ICpTZW50OiogVGh1cnNkYXksIFNlcHRlbWJlciAxNiwg MjAyMSAxMDo0OCBBTQ0KPiA+ICAgICA+wqDCoMKgwqAgPiAqVG86KiBDaGFuLCBBbXkgPGFteS5j aGFuQGludGVsLmNvbQ0KPiA+ICAgICA8bWFpbHRvOmFteS5jaGFuQGludGVsLmNvbT4+Ow0KPiA+ ICAgICA+wqDCoMKgwqAgPiBnYW9saW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbg0KPiA+ ICAgICA+wqDCoMKgwqAgPiA8bWFpbHRvOmdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4+OyAnQW5k cmV3IEZpc2gnDQo+ID4gICAgIDxhZmlzaEBhcHBsZS5jb20NCj4gPiAgICAgPsKgwqDCoMKgID4g PG1haWx0bzphZmlzaEBhcHBsZS5jb20+PjsgJ2VkazItZGV2ZWwtZ3JvdXBzLWlvJw0KPiA+ICAg ICA+wqDCoMKgwqAgPiA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8gPG1haWx0bzpkZXZlbEBlZGsyLmdy b3Vwcy5pbz4+DQo+ID4gICAgID7CoMKgwqDCoCA+ICpDYzoqIEtpbm5leSwgTWljaGFlbCBEIDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbQ0KPiA+ICAgICA+wqDCoMKgwqAgPiA8bWFpbHRvOm1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPj47ICdHYW8sIExpbWluZycNCj4gPiAgICAgPsKgwqDC oMKgID4gPGxpbWluZy5nYW9AaW50ZWwuY29tIDxtYWlsdG86bGltaW5nLmdhb0BpbnRlbC5jb20+ PjsgTGl1LA0KPiA+ICAgICBaaGlndWFuZw0KPiA+ICAgICA+wqDCoMKgwqAgPiA8WmhpZ3Vhbmcu TGl1QGludGVsLmNvbSA8bWFpbHRvOlpoaWd1YW5nLkxpdUBpbnRlbC5jb20+PjsNCj4gPiAgICAg V2FuZywNCj4gPiAgICAgPsKgwqDCoMKgIEppYW4gSg0KPiA+ICAgICA+wqDCoMKgwqAgPiA8amlh bi5qLndhbmdAaW50ZWwuY29tIDxtYWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29tPj47IEdhbywN Cj4gPiAgICAgPsKgwqDCoMKgIFpoaWNoYW8NCj4gPiAgICAgPsKgwqDCoMKgID4gPHpoaWNoYW8u Z2FvQGludGVsLmNvbSA8bWFpbHRvOnpoaWNoYW8uZ2FvQGludGVsLmNvbT4+DQo+ID4gICAgID7C oMKgwqDCoCA+ICpTdWJqZWN0OiogUkU6IFtlZGsyLWRldmVsXSBSRkM6IEFkZCBCYXNlTGliL1F1 aWNrU29ydCBpbg0KPiA+ICAgICBNZGVQa2cNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAg PsKgwqDCoMKgID4gQW15LA0KPiA+ICAgICA+wqDCoMKgwqAgPg0KPiA+ICAgICA+wqDCoMKgwqAg PiBOby4gV2Ugb25seSBBZGQgUXVpY2tTb3J0KCkgZnVuY3Rpb24gQVBJIGludG8gQmFzZUxpYi5o Lg0KPiA+ICAgICA+wqDCoMKgwqAgPg0KPiA+ICAgICA+wqDCoMKgwqAgPiAqRnJvbToqQ2hhbiwg QW15IDxhbXkuY2hhbkBpbnRlbC5jb20NCj4gPiAgICAgPG1haWx0bzphbXkuY2hhbkBpbnRlbC5j b20+Pg0KPiA+ICAgICA+wqDCoMKgwqAgPiAqU2VudDoqIFRodXJzZGF5LCBTZXB0ZW1iZXIgMTYs IDIwMjEgMTA6NDYgQU0NCj4gPiAgICAgPsKgwqDCoMKgID4gKlRvOiogZ2FvbGltaW5nIDxnYW9s aW1pbmdAYnlvc29mdC5jb20uY24NCj4gPiAgICAgPsKgwqDCoMKgID4gPG1haWx0bzpnYW9saW1p bmdAYnlvc29mdC5jb20uY24+PjsgJ0FuZHJldyBGaXNoJw0KPiA+ICAgICA8YWZpc2hAYXBwbGUu Y29tDQo+ID4gICAgID7CoMKgwqDCoCA+IDxtYWlsdG86YWZpc2hAYXBwbGUuY29tPj47ICdlZGsy LWRldmVsLWdyb3Vwcy1pbycNCj4gPiAgICAgPsKgwqDCoMKgID4gPGRldmVsQGVkazIuZ3JvdXBz LmlvIDxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+Pg0KPiA+ICAgICA+wqDCoMKgwqAgPiAq Q2M6KiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tDQo+ID4gICAgIDxtYWlsdG86cmF5Lm5pQGlu dGVsLmNvbT4+OyBLaW5uZXksDQo+ID4gICAgID7CoMKgwqDCoCA+IE1pY2hhZWwgRCA8bWljaGFl bC5kLmtpbm5leUBpbnRlbC5jb20NCj4gPiAgICAgPsKgwqDCoMKgID4gPG1haWx0bzptaWNoYWVs LmQua2lubmV5QGludGVsLmNvbT4+OyAnR2FvLCBMaW1pbmcnDQo+ID4gICAgID7CoMKgwqDCoCA+ IDxsaW1pbmcuZ2FvQGludGVsLmNvbSA8bWFpbHRvOmxpbWluZy5nYW9AaW50ZWwuY29tPj47IExp dSwNCj4gPiAgICAgWmhpZ3VhbmcNCj4gPiAgICAgPsKgwqDCoMKgID4gPHpoaWd1YW5nLmxpdUBp bnRlbC5jb20gPG1haWx0bzp6aGlndWFuZy5saXVAaW50ZWwuY29tPj47DQo+ID4gICAgIFdhbmcs DQo+ID4gICAgID7CoMKgwqDCoCBKaWFuIEoNCj4gPiAgICAgPsKgwqDCoMKgID4gPGppYW4uai53 YW5nQGludGVsLmNvbSA8bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNvbT4+OyBHYW8sDQo+ID4g ICAgID7CoMKgwqDCoCBaaGljaGFvDQo+ID4gICAgID7CoMKgwqDCoCA+IDx6aGljaGFvLmdhb0Bp bnRlbC5jb20gPG1haWx0bzp6aGljaGFvLmdhb0BpbnRlbC5jb20+Pg0KPiA+ICAgICA+wqDCoMKg wqAgPiAqU3ViamVjdDoqIFJFOiBbZWRrMi1kZXZlbF0gUkZDOiBBZGQgQmFzZUxpYi9RdWlja1Nv cnQgaW4NCj4gPiAgICAgTWRlUGtnDQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKg wqDCoCA+IEp1c3QgdG8gZG91YmxlIGNvbmZpcm0sIHdpbGwgd2UgaGF2ZSB0aGUgbnVsbCBpbnN0 YW5jZSBvZg0KPiA+ICAgICA+wqDCoMKgwqAgUXVpY2tTb3J0IGluDQo+ID4gICAgID7CoMKgwqDC oCA+IE1kZVBrZz8NCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID4gUmVn YXJkcywNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID4gQW15DQo+ID4g ICAgID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKgwqDCoCA+ICpGcm9tOipnYW9saW1pbmcgPGdh b2xpbWluZ0BieW9zb2Z0LmNvbS5jbg0KPiA+ICAgICA+wqDCoMKgwqAgPiA8bWFpbHRvOmdhb2xp bWluZ0BieW9zb2Z0LmNvbS5jbj4+DQo+ID4gICAgID7CoMKgwqDCoCA+ICpTZW50OiogVGh1cnNk YXksIFNlcHRlbWJlciAxNiwgMjAyMSAxMDoyMyBBTQ0KPiA+ICAgICA+wqDCoMKgwqAgPiAqVG86 KiAnQW5kcmV3IEZpc2gnIDxhZmlzaEBhcHBsZS5jb20NCj4gPiAgICAgPG1haWx0bzphZmlzaEBh cHBsZS5jb20+PjsNCj4gPiAgICAgPsKgwqDCoMKgID4gJ2VkazItZGV2ZWwtZ3JvdXBzLWlvJyA8 ZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiAgICAgPsKgwqDCoMKgID4gPG1haWx0bzpkZXZlbEBl ZGsyLmdyb3Vwcy5pbz4+DQo+ID4gICAgID7CoMKgwqDCoCA+ICpDYzoqIE5pLCBSYXkgPHJheS5u aUBpbnRlbC5jb20NCj4gPiAgICAgPG1haWx0bzpyYXkubmlAaW50ZWwuY29tPj47IEtpbm5leSwN Cj4gPiAgICAgPsKgwqDCoMKgID4gTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bQ0KPiA+ICAgICA+wqDCoMKgwqAgPiA8bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pj47ICdHYW8sIExpbWluZycNCj4gPiAgICAgPsKgwqDCoMKgID4gPGxpbWluZy5nYW9AaW50ZWwu Y29tIDxtYWlsdG86bGltaW5nLmdhb0BpbnRlbC5jb20+PjsgTGl1LA0KPiA+ICAgICBaaGlndWFu Zw0KPiA+ICAgICA+wqDCoMKgwqAgPiA8emhpZ3VhbmcubGl1QGludGVsLmNvbSA8bWFpbHRvOnpo aWd1YW5nLmxpdUBpbnRlbC5jb20+PjsNCj4gPiAgICAgV2FuZywNCj4gPiAgICAgPsKgwqDCoMKg IEppYW4gSg0KPiA+ICAgICA+wqDCoMKgwqAgPiA8amlhbi5qLndhbmdAaW50ZWwuY29tIDxtYWls dG86amlhbi5qLndhbmdAaW50ZWwuY29tPj47IEdhbywNCj4gPiAgICAgPsKgwqDCoMKgIFpoaWNo YW8NCj4gPiAgICAgPsKgwqDCoMKgID4gPHpoaWNoYW8uZ2FvQGludGVsLmNvbSA8bWFpbHRvOnpo aWNoYW8uZ2FvQGludGVsLmNvbT4+Ow0KPiA+ICAgICBDaGFuLCBBbXkNCj4gPiAgICAgPsKgwqDC oMKgID4gPGFteS5jaGFuQGludGVsLmNvbSA8bWFpbHRvOmFteS5jaGFuQGludGVsLmNvbT4+DQo+ ID4gICAgID7CoMKgwqDCoCA+ICpTdWJqZWN0Oiog5Zue5aSNOiBbZWRrMi1kZXZlbF0gUkZDOiBB ZGQgQmFzZUxpYi9RdWlja1NvcnQgaW4NCj4gPiAgICAgTWRlUGtnDQo+ID4gICAgID7CoMKgwqDC oCA+DQo+ID4gICAgID7CoMKgwqDCoCA+IEFuZHJldzoNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4g PiAgICAgPsKgwqDCoMKgID4gVGhhbmtzIGZvciB5b3VyIHN1Z2dlc3Rpb24uIEkgdGhpbmsgeW91 ciBpZGVhIGlzIGJldHRlci4NCj4gPiAgICAgV2UgYWRkIG5ldw0KPiA+ICAgICA+wqDCoMKgwqAg PiBRdWlja1NvcnQoKSBBUEkgdG8gQmFzZUxpYiwgYW5kIHVwZGF0ZSBTb3J0TGliIGxpYnJhcnkN Cj4gPiAgICAgaW5zdGFuY2UgdG8NCj4gPiAgICAgPsKgwqDCoMKgID4gY29uc3VtZSBCYXNlTGli IFF1aWNrU29ydCgpIEFQSS4gVGhpcyB3YXkgaGFzIG5vIGNoYW5nZSBpbg0KPiA+ICAgICBjdXJy ZW50DQo+ID4gICAgID7CoMKgwqDCoCA+IFNvcnRMaWIgbGlicmFyeSBjbGFzcy4gSXQgaXMgdGhl IGNvbXBhdGlibGUgc29sdXRpb24uDQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKg wqDCoCA+IFRoYW5rcw0KPiA+ICAgICA+wqDCoMKgwqAgPg0KPiA+ICAgICA+wqDCoMKgwqAgPiBM aW1pbmcNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID4gKuWPkeS7tuS6 uioqOipBbmRyZXcgRmlzaCA8YWZpc2hAYXBwbGUuY29tDQo+ID4gICAgIDxtYWlsdG86YWZpc2hA YXBwbGUuY29tPj4NCj4gPiAgICAgPsKgwqDCoMKgID4gKuWPkemAgeaXtumXtDoqIDIwMjHlubQ5 5pyIMTbml6UgMTA6MTMNCj4gPiAgICAgPsKgwqDCoMKgID4gKuaUtuS7tuS6ujoqIGVkazItZGV2 ZWwtZ3JvdXBzLWlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ICAgICA+wqDCoMKgwqAgPiA8 bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPj47IExpbWluZyBHYW8NCj4gPiAgICAgPsKgwqDC oMKgIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24NCj4gPiAgICAgPsKgwqDCoMKgID4gPG1haWx0 bzpnYW9saW1pbmdAYnlvc29mdC5jb20uY24+Pg0KPiA+ICAgICA+wqDCoMKgwqAgPiAq5oqE6YCB OiogTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbQ0KPiA+ICAgICA8bWFpbHRvOnJheS5uaUBpbnRl bC5jb20+PjsgTWlrZQ0KPiA+ICAgICA+wqDCoMKgwqAgPiBLaW5uZXkgPG1pY2hhZWwuZC5raW5u ZXlAaW50ZWwuY29tDQo+ID4gICAgID7CoMKgwqDCoCA+IDxtYWlsdG86bWljaGFlbC5kLmtpbm5l eUBpbnRlbC5jb20+PjsgR2FvLCBMaW1pbmcNCj4gPiAgICAgPsKgwqDCoMKgID4gPGxpbWluZy5n YW9AaW50ZWwuY29tIDxtYWlsdG86bGltaW5nLmdhb0BpbnRlbC5jb20+PjsgTGl1LA0KPiA+ICAg ICBaaGlndWFuZw0KPiA+ICAgICA+wqDCoMKgwqAgPiA8emhpZ3VhbmcubGl1QGludGVsLmNvbSA8 bWFpbHRvOnpoaWd1YW5nLmxpdUBpbnRlbC5jb20+PjsNCj4gPiAgICAgV2FuZywNCj4gPiAgICAg PsKgwqDCoMKgIEppYW4gSg0KPiA+ICAgICA+wqDCoMKgwqAgPiA8amlhbi5qLndhbmdAaW50ZWwu Y29tIDxtYWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29tPj47IEdhbywNCj4gPiAgICAgPsKgwqDC oMKgIFpoaWNoYW8NCj4gPiAgICAgPsKgwqDCoMKgID4gPHpoaWNoYW8uZ2FvQGludGVsLmNvbSA8 bWFpbHRvOnpoaWNoYW8uZ2FvQGludGVsLmNvbT4+Ow0KPiA+ICAgICBDaGFuLCBBbXkNCj4gPiAg ICAgPsKgwqDCoMKgID4gPGFteS5jaGFuQGludGVsLmNvbSA8bWFpbHRvOmFteS5jaGFuQGludGVs LmNvbT4+DQo+ID4gICAgID7CoMKgwqDCoCA+ICrkuLvpopg6KiBSZTogW2VkazItZGV2ZWxdIFJG QzogQWRkIEJhc2VMaWIvUXVpY2tTb3J0IGluIE1kZVBrZw0KPiA+ICAgICA+wqDCoMKgwqAgPg0K PiA+ICAgICA+wqDCoMKgwqAgPsKgwqDCoMKgIE9uIFNlcCAxNSwgMjAyMSwgYXQgNjoyNiBQTSwg Z2FvbGltaW5nDQo+ID4gICAgIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24NCj4gPiAgICAgPsKg wqDCoMKgID4gPG1haWx0bzpnYW9saW1pbmdAYnlvc29mdC5jb20uY24+PiB3cm90ZToNCj4gPiAg ICAgPsKgwqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID7CoMKgwqDCoCBSYXk6DQo+ID4gICAg ID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKgwqDCoCA+wqDCoMKgwqAgU29ydExpYiBoYXMgYmVl biBhZGRlZCBzaW5jZSAyMDE1LiBJIHdvdWxkIHN1Z2dlc3QgdG8NCj4gPiAgICAgc3RpbGwga2Vl cA0KPiA+ICAgICA+wqDCoMKgwqAgPsKgwqDCoMKgIHRoaXMgbGlicmFyeSBjbGFzcy4gVG8gcmVz b2x2ZSB0aGUgcGFja2FnZSBkZXBlbmRlbmN5LCBteQ0KPiA+ICAgICA+wqDCoMKgwqAgcHJvcG9z YWwNCj4gPiAgICAgPsKgwqDCoMKgID7CoMKgwqDCoCBpcyB0byBtb3ZlIHRoZSBsaWJyYXJ5IGNs YXNzIGhlYWRlciBmaWxlIFNvcnRMaWIuaCBmcm9tDQo+ID4gICAgID7CoMKgwqDCoCA+wqDCoMKg wqAgTWRlTW9kdWxlUGtnIHRvIE1kZVBrZywgYW5kIHN0aWxsIGtlZXAgdGhlIGxpYnJhcnkNCj4g PiAgICAgaW5zdGFuY2UgaW4NCj4gPiAgICAgPsKgwqDCoMKgID7CoMKgwqDCoCBNZGVNb2R1bGVQ a2cuIFRoaXMgcHJvcG9zYWwgaGFzIG5vIGltcGFjdCBvbiB0aGUgZXhpc3RpbmcNCj4gPiAgICAg PsKgwqDCoMKgIHBsYXRmb3JtLg0KPiA+ICAgICA+wqDCoMKgwqAgPg0KPiA+ICAgICA+wqDCoMKg wqAgPiBJZiB3ZSBhZGQgUXVpY2tTb3J0KCkgQVBJIHRvIHRoZSBCYXNlTGliIGNhbiB3ZSBub3Qg anVzdA0KPiA+ICAgICBwb3J0IHRoZQ0KPiA+ICAgICA+wqDCoMKgwqAgPiBleGlzdGluZ8KgTWRl TW9kdWxlUGtnL1NvcnRMaWIgdG8gdXNlIFF1aWNrU29ydCgpIGluIHRoZQ0KPiA+ICAgICA+wqDC oMKgwqAgPiBpbXBsZW1lbnRhdGlvbj8gT3IgaXMgdGhlcmUgc29tZSBvdGhlciB3YXkgdG8gYWRk IHRoZSBuZXcNCj4gPiAgICAgdGhpbmcNCj4gPiAgICAgPsKgwqDCoMKgIGluIGENCj4gPiAgICAg PsKgwqDCoMKgID4gYmFja3dhcmQgY29tcGF0aWJsZSB3YXkuDQo+ID4gICAgID7CoMKgwqDCoCA+ DQo+ID4gICAgID7CoMKgwqDCoCA+IFRoYW5rcywNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAg ICAgPsKgwqDCoMKgID4gQW5kcmV3IEZpc2gNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAg PsKgwqDCoMKgID7CoMKgwqDCoCBUaGFua3MNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAg PsKgwqDCoMKgID7CoMKgwqDCoCBMaW1pbmcNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAg PsKgwqDCoMKgID7CoMKgwqDCoCAq5Y+R5Lu25Lq6Kio6KmRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ ID4gICAgID7CoMKgwqDCoCA+IDxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+PGRldmVsQGVk azIuZ3JvdXBzLmlvDQo+ID4gICAgID7CoMKgwqDCoCA+IDxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91 cHMuaW8+Pirku6PooagqKipOaSwgUmF5DQo+ID4gICAgID7CoMKgwqDCoCA+wqDCoMKgwqAgKuWP kemAgeaXtumXtDoqMjAyMeW5tDnmnIgxNOaXpTE0OjE1DQo+ID4gICAgID7CoMKgwqDCoCA+wqDC oMKgwqAgKuaUtuS7tuS6ujoqS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tDQo+ID4gICAgID7CoMKgwqDCoCA+IDxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb20+PjsgR2FvLCBMaW1pbmcNCj4gPiAgICAgPsKgwqDCoMKgID7CoMKgwqDCoCA8bGltaW5n Lmdhb0BpbnRlbC5jb20gPG1haWx0bzpsaW1pbmcuZ2FvQGludGVsLmNvbT4+OyBMaXUsDQo+ID4g ICAgID7CoMKgwqDCoCA+wqDCoMKgwqAgWmhpZ3VhbmcgPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20N Cj4gPiAgICAgPsKgwqDCoMKgIDxtYWlsdG86emhpZ3VhbmcubGl1QGludGVsLmNvbT4+Ow0KPiA+ ICAgICA+wqDCoMKgwqAgPsKgwqDCoMKgIFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwu Y29tDQo+ID4gICAgID7CoMKgwqDCoCA+IDxtYWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29tPj47 IEdhbywgWmhpY2hhbw0KPiA+ICAgICA+wqDCoMKgwqAgPsKgwqDCoMKgIDx6aGljaGFvLmdhb0Bp bnRlbC5jb20gPG1haWx0bzp6aGljaGFvLmdhb0BpbnRlbC5jb20+Pg0KPiA+ICAgICA+wqDCoMKg wqAgPsKgwqDCoMKgICrmioTpgIE6KmRldmVsQGVkazIuZ3JvdXBzLmlvIDxtYWlsdG86ZGV2ZWxA ZWRrMi5ncm91cHMuaW8+Ow0KPiA+ICAgICA+wqDCoMKgwqAgQ2hhbiwgQW15DQo+ID4gICAgID7C oMKgwqDCoCA+wqDCoMKgwqAgPGFteS5jaGFuQGludGVsLmNvbSA8bWFpbHRvOmFteS5jaGFuQGlu dGVsLmNvbT4+DQo+ID4gICAgID7CoMKgwqDCoCA+wqDCoMKgwqAgKuS4u+mimDoqW2VkazItZGV2 ZWxdIFJGQzogQWRkIEJhc2VMaWIvUXVpY2tTb3J0IGluIE1kZVBrZw0KPiA+ICAgICA+wqDCoMKg wqAgPg0KPiA+ICAgICA+wqDCoMKgwqAgPsKgwqDCoMKgIEhpIHBhY2thZ2UgbWFpbnRhaW5lcnMg b2YgTWRlUGtnLCBNZGVNb2R1bGVQa2cgYW5kDQo+ID4gICAgIFNoZWxsUGtnLA0KPiA+ICAgICA+ wqDCoMKgwqAgPsKgwqDCoMKgIGNvbW11bml0eSwNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAg ICAgPsKgwqDCoMKgID7CoMKgwqDCoCBBIGNvbW1pdCAoVWVmaUNwdVBrZy9DcHVDYWNoZUluZm9M aWI6IFNvcnQNCj4gPiAgICAgQ3B1Q2FjaGVJbmZvIGFycmF5DQo+ID4gICAgID7CoMKgwqDCoCA+ DQo+ID4gICAgID4NCj4gPiAgICAgPGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9j b21taXQvNGRlNzdhZTk4OTBkMjQxMjcxZjU0M2U5MTk1YWIzNTE2ZjNhYmVjNj4pDQo+ID4gICAg ID7CoMKgwqDCoCA+wqDCoMKgwqAgdG8gVWVmaUNwdVBrZyBsZXQNCj4gPiAgICAgPsKgwqDCoMKg ID7CoMKgwqDCoCBVZWZpQ3B1UGtnIGRlcGVuZCBvbiBNZGVNb2R1bGVQa2cgYmVjYXVzZSB0aGUg U29ydExpYg0KPiA+ICAgICBjbGFzcyBhbmQNCj4gPiAgICAgPsKgwqDCoMKgID7CoMKgwqDCoCBp bnN0YW5jZXMgYXJlIGFsbCBpbiBNZGVNb2R1bGVQa2cuDQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ ID4gICAgID7CoMKgwqDCoCA+wqDCoMKgwqAgVWVmaUNwdVBrZyBkZXBlbmRpbmcgb24gTWRlTW9k dWxlUGtnIGJyZWFrcyB0aGUgcnVsZSB0aGF0DQo+ID4gICAgID7CoMKgwqDCoCA+wqDCoMKgwqAg 4oCcVWVmaUNwdVBrZyBzaG91bGQgT05MWSBkZXBlbmQgb24gTWRlUGtn4oCdLg0KPiA+ICAgICA+ wqDCoMKgwqAgPg0KPiA+ICAgICA+wqDCoMKgwqAgPsKgwqDCoMKgIFRvIGFkZHJlc3MgdGhpcyBp c3N1ZSwgdGhlcmUgYXJlIHR3byBhcHByb2FjaGVzOg0KPiA+ICAgICA+wqDCoMKgwqAgPg0KPiA+ ICAgICA+wqDCoMKgwqAgPsKgwqDCoMKgwqAgMS4gRHVwbGljYXRlIHRoZSBzb3J0IGxvZ2ljIGlu IFVlZmlDcHVQa2cgdG8gbm90DQo+ID4gICAgIGRlcGVuZCBvbg0KPiA+ICAgICA+wqDCoMKgwqAg PsKgwqDCoMKgwqDCoMKgwqAgTWRlTW9kdWxlUGtnL1NvcnRMaWINCj4gPiAgICAgPsKgwqDCoMKg ID7CoMKgwqDCoMKgIDIuIEFkZCBRdWlja1NvcnQoKSBBUEkgdG8gQmFzZUxpYiBpbiBNZGVQa2cu DQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKgwqDCoCA+wqDCoMKgwqAgQXBwcm9h Y2ggIzIgKE1kZVBrZy9CYXNlTGliL1F1aWNrU29ydCkgbWFrZXMgbW9yZQ0KPiA+ICAgICBzZW5z ZSBiZWNhdXNlDQo+ID4gICAgID7CoMKgwqDCoCA+wqDCoMKgwqAgcXVpY2sgc29ydCBpcyBhIHN0 YW5kYXJkIGFsZ29yaXRobS4NCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKg ID7CoMKgwqDCoCBXZSBlbmNvdXJhZ2UgY29uc3VtZXJzIHRvIHVwZGF0ZSB0aGVpciBjb2RlIHRv IHVzZSB0aGUNCj4gPiAgICAgcXVpY2sNCj4gPiAgICAgPsKgwqDCoMKgIHNvcnQNCj4gPiAgICAg PsKgwqDCoMKgID7CoMKgwqDCoCBpbiBNZGVQa2cgYW5kIGdyYWR1YWxseSBkZXByZWNhdGUgdG9k YXnigJlzDQo+ID4gICAgIE1kZU1vZHVsZVBrZy9Tb3J0TGliLg0KPiA+ICAgICA+wqDCoMKgwqAg Pg0KPiA+ICAgICA+wqDCoMKgwqAgPsKgwqDCoMKgIElmIHlvdSBkb27igJl0IGhhdmUgY29uY2Vy bnMsIEkgcGxhbiB0bzoNCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID7C oMKgwqDCoMKgIDEuIOKAnEFkZCBRdWlja1NvcnQoKSB0byBCYXNlTGli4oCdIGFuZCB1cGRhdGUg YWxsIGV4aXN0aW5nDQo+ID4gICAgID7CoMKgwqDCoCBjb25zdW1lcnMNCj4gPiAgICAgPsKgwqDC oMKgID7CoMKgwqDCoMKgwqDCoMKgIHRvIHVzZSB0aGlzIEFQSSBpbnN0ZWFkLg0KPiA+ICAgICA+ wqDCoMKgwqAgPg0KPiA+ICAgICA+wqDCoMKgwqAgPsKgwqDCoMKgIFZPSUQNCj4gPiAgICAgPsKg wqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID7CoMKgwqDCoCBFRklBUEkNCj4gPiAgICAgPsKg wqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID7CoMKgwqDCoCBRdWlja1NvcnTCoCgNCj4gPiAg ICAgPsKgwqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID4gwqDCoElOwqBPVVTCoFZPSUTCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCpCdWZmZXJUb1NvcnQsDQo+ID4gICAg ID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKgwqDCoCA+wqDCoMKgwqAgwqDCoElOwqBDT05TVMKg VUlOVE4gQ291bnQsDQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKgwqDCoCA+wqDC oMKgwqAgwqDCoElOwqBDT05TVMKgVUlOVE4gRWxlbWVudFNpemUsDQo+ID4gICAgID7CoMKgwqDC oCA+DQo+ID4gICAgID7CoMKgwqDCoCA+IMKgwqBJTsKgwqDCoMKgwqDCoMKgU09SVF9DT01QQVJF wqDCoMKgwqDCoMKgwqDCoMKgQ29tcGFyZUZ1bmN0aW9uDQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ ID4gICAgID7CoMKgwqDCoCA+wqDCoMKgwqAgwqDCoCk7DQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ ID4gICAgID7CoMKgwqDCoCA+wqDCoMKgwqDCoCAyLiDigJxBZGQgbmV3IFNoZWxsUGtnL1NvcnRD b21wYXJlTGli4oCdDQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKgwqDCoCA+wqDC oMKgwqAgQmFja2dyb3VuZDogU2hlbGxQa2cgcmVxdWlyZXMgdG8gc29ydA0KPiA+ICAgICBkZXZp Y2VwYXRoL3N0cmluZyBzbyAzDQo+ID4gICAgID7CoMKgwqDCoCBBUElzDQo+ID4gICAgID7CoMKg wqDCoCA+wqDCoMKgwqAgaW4gVWVmaVNvcnRMaWIgKERldmljZVBhdGhDb21wYXJlLCBTdHJpbmdO b0Nhc2VDb21wYXJlLA0KPiA+ICAgICA+wqDCoMKgwqAgPsKgwqDCoMKgIFN0cmluZ0NvbXBhcmUp IGFyZSBwcm92aWRlZCBmb3IgU2hlbGwgdXNhZ2UuIHdlIGNhbg0KPiA+ICAgICBtb3ZlIHRoZSAz DQo+ID4gICAgID7CoMKgwqDCoCA+wqDCoMKgwqAgQVBJcyB0byB0aGUgU29ydENvbXBhcmVMaWIg YW5kIHVwZGF0ZSBTaGVsbCBjb2RlIHRvIHVzZQ0KPiA+ICAgICA+wqDCoMKgwqAgPsKgwqDCoMKg IEJhc2VMaWIvUXVpY2tTb3J0IGRpcmVjdGx5LCB3aXRoIHRoZSBzb3J0IGNvbXBhcmUNCj4gPiAg ICAgZnVuY3Rpb24gZnJvbQ0KPiA+ICAgICA+wqDCoMKgwqAgPsKgwqDCoMKgIFNvcnRDb21wYXJl TGliLg0KPiA+ICAgICA+wqDCoMKgwqAgPg0KPiA+ICAgICA+wqDCoMKgwqAgPsKgwqDCoMKgIEFu eSBjb25jZXJucz8NCj4gPiAgICAgPsKgwqDCoMKgID4NCj4gPiAgICAgPsKgwqDCoMKgID7CoMKg wqDCoCBUaGFua3MsDQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKgwqDCoCA+wqDC oMKgwqAgUmF5DQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ID4gICAgID7CoMKgwqDCoCA+DQo+ID4g ICAgID4NCj4gPiAgICAgPg0KPiA+ICAgICANCj4gPg0KDQo=