From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kJBcw-0005V1-OO for barebox@lists.infradead.org; Fri, 18 Sep 2020 08:20:38 +0000 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= Date: Fri, 18 Sep 2020 10:19:51 +0200 Message-Id: <20200918081956.24971-3-u.kleine-koenig@pengutronix.de> In-Reply-To: <20200918081956.24971-1-u.kleine-koenig@pengutronix.de> References: <20200918081956.24971-1-u.kleine-koenig@pengutronix.de> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "barebox" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH v2 2/7] LICENSES: add used licenses to make spdxcheck happy To: barebox@lists.infradead.org VGhlc2UgYXJlIGNvcGllZCBmcm9tIHRoZSBMaW51eCBrZXJuZWwgKDUuOS1yYzMpLiBGcm9tIHRo ZQpMaW51eC1zeXNjYWxsLW5vdGUgZXhjZXB0aW9uIGEgZmV3IGl0ZW1zIGhhZCB0byBiZSByZW1v dmVkIGZyb20gdGhlClNQRFgtTGljZW5zZXM6IGxpc3QgdG8gbWFrZSBzcGR4Y2hlY2sgaGFwcHku IEFsc28gZHJvcCBkZXByZWNhdGVkIG5hbWVzCmxpa2UgTEdQTC0yLjEgKHVzZSBMR1BMLTIuMS1v bmx5IGluc3RlYWQpIGFuZCBMR1BMLTIuMSsgKHVzZQpMR1BMLTIuMS1vci1sYXRlciBpbnN0ZWFk KS4gQWxzbyBkcm9wIHRoZSBMR1BMLTIuMS1vci1sYXRlciBmaWxlLCB0aGlzCmxpY2Vuc2UgaXMg aGFuZGxlZCBpbiB0aGUgTEdQTC0yLjEgZmlsZS4KClNpZ25lZC1vZmYtYnk6IFV3ZSBLbGVpbmUt S8O2bmlnIDx1LmtsZWluZS1rb2VuaWdAcGVuZ3V0cm9uaXguZGU+Ci0tLQogTElDRU5TRVMvZGVw cmVjYXRlZC9JU0MgICAgICAgICAgICAgICAgfCAgMjQgKysKIExJQ0VOU0VTL2RlcHJlY2F0ZWQv WDExICAgICAgICAgICAgICAgIHwgIDM3ICsrCiBMSUNFTlNFUy9kdWFsL0FwYWNoZS0yLjAgICAg ICAgICAgICAgICB8IDE4NyArKysrKysrKysKIExJQ0VOU0VTL2V4Y2VwdGlvbnMvTGludXgtc3lz Y2FsbC1ub3RlIHwgIDI1ICsrCiBMSUNFTlNFUy9wcmVmZXJyZWQvQlNELTItQ2xhdXNlICAgICAg ICB8ICAzMiArKwogTElDRU5TRVMvcHJlZmVycmVkL0dQTC0yLjAgICAgICAgICAgICAgfCAgIDgg Ky0KIExJQ0VOU0VTL3ByZWZlcnJlZC9MR1BMLTIuMSAgICAgICAgICAgIHwgNTAzICsrKysrKysr KysrKysrKysrKysrKysrKysKIExJQ0VOU0VTL3ByZWZlcnJlZC9MR1BMLTIuMS1vci1sYXRlciAg IHwgNDY4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzY3JpcHRzL3NwZHhjaGVjay5weSAgICAg ICAgICAgICAgICAgICB8ICAgMyArLQogOSBmaWxlcyBjaGFuZ2VkLCA4MTIgaW5zZXJ0aW9ucygr KSwgNDc1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExJQ0VOU0VTL2RlcHJlY2F0 ZWQvSVNDCiBjcmVhdGUgbW9kZSAxMDA2NDQgTElDRU5TRVMvZGVwcmVjYXRlZC9YMTEKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBMSUNFTlNFUy9kdWFsL0FwYWNoZS0yLjAKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBMSUNFTlNFUy9leGNlcHRpb25zL0xpbnV4LXN5c2NhbGwtbm90ZQogY3JlYXRlIG1vZGUgMTAw NjQ0IExJQ0VOU0VTL3ByZWZlcnJlZC9CU0QtMi1DbGF1c2UKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM SUNFTlNFUy9wcmVmZXJyZWQvTEdQTC0yLjEKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMSUNFTlNFUy9w cmVmZXJyZWQvTEdQTC0yLjEtb3ItbGF0ZXIKCmRpZmYgLS1naXQgYS9MSUNFTlNFUy9kZXByZWNh dGVkL0lTQyBiL0xJQ0VOU0VTL2RlcHJlY2F0ZWQvSVNDCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uODk1M2MzMTQyMDc5Ci0tLSAvZGV2L251bGwKKysrIGIvTElDRU5T RVMvZGVwcmVjYXRlZC9JU0MKQEAgLTAsMCArMSwyNCBAQAorVmFsaWQtTGljZW5zZS1JZGVudGlm aWVyOiBJU0MKK1NQRFgtVVJMOiBodHRwczovL3NwZHgub3JnL2xpY2Vuc2VzL0lTQy5odG1sCitV c2FnZS1HdWlkZToKKyAgVG8gdXNlIHRoZSBJU0MgTGljZW5zZSBwdXQgdGhlIGZvbGxvd2luZyBT UERYIHRhZy92YWx1ZSBwYWlyIGludG8gYQorICBjb21tZW50IGFjY29yZGluZyB0byB0aGUgcGxh Y2VtZW50IGd1aWRlbGluZXMgaW4gdGhlIGxpY2Vuc2luZyBydWxlcworICBkb2N1bWVudGF0aW9u OgorICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBJU0MKK0xpY2Vuc2UtVGV4dDoKKworSVND IExpY2Vuc2UKKworQ29weXJpZ2h0IChjKSA8eWVhcj4gPGNvcHlyaWdodCBob2xkZXJzPgorCitQ ZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNv ZnR3YXJlIGZvciBhbnkKK3B1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3Jh bnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKK2NvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg cGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisKK1RIRSBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElF UworV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FS UkFOVElFUyBPRgorTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFM TCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZCitTUEVDSUFMLCBESVJFQ1QsIElORElSRUNU LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKK1dIQVRTT0VWRVIgUkVT VUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBB Q1RJT04KK09GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwg QVJJU0lORyBPVVQgT0YgT1IgSU4KK0NPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1B TkNFIE9GIFRISVMgU09GVFdBUkUuCmRpZmYgLS1naXQgYS9MSUNFTlNFUy9kZXByZWNhdGVkL1gx MSBiL0xJQ0VOU0VTL2RlcHJlY2F0ZWQvWDExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uZmU0MzUzZmQwMDAwCi0tLSAvZGV2L251bGwKKysrIGIvTElDRU5TRVMvZGVw cmVjYXRlZC9YMTEKQEAgLTAsMCArMSwzNyBAQAorVmFsaWQtTGljZW5zZS1JZGVudGlmaWVyOiBY MTEKK1NQRFgtVVJMOiBodHRwczovL3NwZHgub3JnL2xpY2Vuc2VzL1gxMS5odG1sCitVc2FnZS1H dWlkZToKKyAgVG8gdXNlIHRoZSBYMTEgcHV0IHRoZSBmb2xsb3dpbmcgU1BEWCB0YWcvdmFsdWUg cGFpciBpbnRvIGEgY29tbWVudAorICBhY2NvcmRpbmcgdG8gdGhlIHBsYWNlbWVudCBndWlkZWxp bmVzIGluIHRoZSBsaWNlbnNpbmcgcnVsZXMKKyAgZG9jdW1lbnRhdGlvbjoKKyAgICBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogWDExCitMaWNlbnNlLVRleHQ6CisKKworWDExIExpY2Vuc2UKKwor Q29weXJpZ2h0IChDKSAxOTk2IFggQ29uc29ydGl1bQorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBn cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorY29weSBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAi U29mdHdhcmUiKSwKK3RvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KK3RoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBt b2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorYW5kL29yIHNl bGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20g dGhlCitTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv d2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorYWxsIGNvcGllcyBvciBzdWJz dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9W SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJ TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F UkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J TkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorWCBDT05TT1JUSVVNIEJFIExJQUJM RSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUgorSU4g QU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBP VVQgT0YgT1IgSU4KK0NPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBP VEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisKK0V4Y2VwdCBhcyBjb250YWluZWQgaW4g dGhpcyBub3RpY2UsIHRoZSBuYW1lIG9mIHRoZSBYIENvbnNvcnRpdW0gc2hhbGwgbm90CitiZSB1 c2VkIGluIGFkdmVydGlzaW5nIG9yIG90aGVyd2lzZSB0byBwcm9tb3RlIHRoZSBzYWxlLCB1c2Ug b3Igb3RoZXIKK2RlYWxpbmdzIGluIHRoaXMgU29mdHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVu IGF1dGhvcml6YXRpb24gZnJvbSB0aGUgWAorQ29uc29ydGl1bS4KKworWCBXaW5kb3cgU3lzdGVt IGlzIGEgdHJhZGVtYXJrIG9mIFggQ29uc29ydGl1bSwgSW5jLgpkaWZmIC0tZ2l0IGEvTElDRU5T RVMvZHVhbC9BcGFjaGUtMi4wIGIvTElDRU5TRVMvZHVhbC9BcGFjaGUtMi4wCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNmU4OWRkZWFiMTg3Ci0tLSAvZGV2L251bGwK KysrIGIvTElDRU5TRVMvZHVhbC9BcGFjaGUtMi4wCkBAIC0wLDAgKzEsMTg3IEBACitWYWxpZC1M aWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKK1NQRFgtVVJMOiBodHRwczovL3NwZHgub3Jn L2xpY2Vuc2VzL0FwYWNoZS0yLjAuaHRtbAorVXNhZ2UtR3VpZGU6CisgIERvIE5PVCB1c2UuIFRo ZSBBcGFjaGUtMi4wIGlzIG5vdCBHUEwyIGNvbXBhdGlibGUuIEl0IG1heSBvbmx5IGJlIHVzZWQK KyAgZm9yIGR1YWwtbGljZW5zZWQgZmlsZXMgd2hlcmUgdGhlIG90aGVyIGxpY2Vuc2UgaXMgR1BM MiBjb21wYXRpYmxlLgorICBJZiB5b3UgZW5kIHVwIHVzaW5nIHRoaXMgaXQgTVVTVCBiZSB1c2Vk IHRvZ2V0aGVyIHdpdGggYSBHUEwyIGNvbXBhdGlibGUKKyAgbGljZW5zZSB1c2luZyAiT1IiLgor ICBUbyB1c2UgdGhlIEFwYWNoZSBMaWNlbnNlIHZlcnNpb24gMi4wIHB1dCB0aGUgZm9sbG93aW5n IFNQRFggdGFnL3ZhbHVlCisgIHBhaXIgaW50byBhIGNvbW1lbnQgYWNjb3JkaW5nIHRvIHRoZSBw bGFjZW1lbnQgZ3VpZGVsaW5lcyBpbiB0aGUKKyAgbGljZW5zaW5nIHJ1bGVzIGRvY3VtZW50YXRp b246CisgICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKK0xpY2Vuc2UtVGV4 dDoKKworQXBhY2hlIExpY2Vuc2UKKworVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAorCitodHRw Oi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCisKK1RFUk1TIEFORCBDT05ESVRJT05TIEZPUiBV U0UsIFJFUFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgorCisxLiBEZWZpbml0aW9ucy4KKwor IkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJl cHJvZHVjdGlvbiwgYW5kCitkaXN0cmlidXRpb24gYXMgZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRo cm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50LgorCisiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNv cHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieSB0aGUKK2NvcHlyaWdodCBvd25l ciB0aGF0IGlzIGdyYW50aW5nIHRoZSBMaWNlbnNlLgorCisiTGVnYWwgRW50aXR5IiBzaGFsbCBt ZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsIG90aGVyCitlbnRpdGll cyB0aGF0IGNvbnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uIGNv bnRyb2wgd2l0aAordGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0 aW9uLCAiY29udHJvbCIgbWVhbnMgKGkpIHRoZQorcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwg dG8gY2F1c2UgdGhlIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2gKK2VudGl0eSwgd2hl dGhlciBieSBjb250cmFjdCBvciBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5 CitwZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlp aSkgYmVuZWZpY2lhbAorb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgorCisiWW91IiAob3IgIllv dXIiKSBzaGFsbCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGV4ZXJjaXNpbmcK K3Blcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgorCisiU291cmNlIiBmb3JtIHNo YWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucywKK2lu Y2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50 YXRpb24gc291cmNlLAorYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisKKyJPYmplY3QiIGZvcm0g c2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsIHRyYW5zZm9ybWF0 aW9uCitvciB0cmFuc2xhdGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0IG5vdCBs aW1pdGVkIHRvIGNvbXBpbGVkCitvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24s IGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKworIldvcmsiIHNoYWxsIG1l YW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZv cm0sCittYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEg Y29weXJpZ2h0IG5vdGljZSB0aGF0CitpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUg d29yayAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUKK0FwcGVuZGl4IGJlbG93KS4KKwor IkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNl IG9yIE9iamVjdCBmb3JtLAordGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUg V29yayBhbmQgZm9yIHdoaWNoIHRoZSBlZGl0b3JpYWwKK3JldmlzaW9ucywgYW5ub3RhdGlvbnMs IGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucyByZXByZXNlbnQsIGFzCithIHdo b2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMgb2Yg dGhpcyBMaWNlbnNlLAorRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0 aGF0IHJlbWFpbiBzZXBhcmFibGUgZnJvbSwgb3IKK21lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5h bWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLCB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZQorV29ya3Mg dGhlcmVvZi4KKworIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3Jz aGlwLCBpbmNsdWRpbmcgdGhlIG9yaWdpbmFsCit2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkg bW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMgdG8gdGhhdCBXb3JrIG9yCitEZXJpdmF0aXZlIFdv cmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgdG8gTGljZW5zb3Ig Zm9yCitpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lciBvciBieSBh biBpbmRpdmlkdWFsIG9yIExlZ2FsCitFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVo YWxmIG9mIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUKK3B1cnBvc2VzIG9mIHRoaXMgZGVm aW5pdGlvbiwgInN1Ym1pdHRlZCIgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywKK3ZlcmJh bCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQgdG8gdGhlIExpY2Vuc29yIG9yIGl0cwor cmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGNvbW11bmljYXRp b24gb24gZWxlY3Ryb25pYworbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0 ZW1zLCBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0CithcmUgbWFuYWdlZCBieSwgb3Ig b24gYmVoYWxmIG9mLCB0aGUgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcK K2FuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dCBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0 IGlzIGNvbnNwaWN1b3VzbHkKK21hcmtlZCBvciBvdGhlcndpc2UgZGVzaWduYXRlZCBpbiB3cml0 aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhCitDb250cmlidXRpb24uIgorCisi Q29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExl Z2FsIEVudGl0eSBvbgorYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVj ZWl2ZWQgYnkgTGljZW5zb3IgYW5kCitzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0 aGUgV29yay4KKworMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhl IHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMKKyAgIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0 b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsIHdvcmxkd2lkZSwKKyAgIG5vbi1l eGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZSBjb3B5cmlnaHQg bGljZW5zZSB0bworICAgcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsIHB1 YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5CisgICBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlz dHJpYnV0ZSB0aGUgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzCisgICBpbiBTb3VyY2Ug b3IgT2JqZWN0IGZvcm0uCisKKzMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRv IHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzCisgICBMaWNlbnNlLCBlYWNoIENvbnRy aWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLCB3b3JsZHdpZGUsCisgICBu b24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUgKGV4Y2Vw dCBhcyBzdGF0ZWQgaW4KKyAgIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwg aGF2ZSBtYWRlLCB1c2UsIG9mZmVyIHRvIHNlbGwsCisgICBzZWxsLCBpbXBvcnQsIGFuZCBvdGhl cndpc2UgdHJhbnNmZXIgdGhlIFdvcmssIHdoZXJlIHN1Y2ggbGljZW5zZQorICAgYXBwbGllcyBv bmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBzdWNoIENvbnRyaWJ1dG9y IHRoYXQKKyAgIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIgQ29udHJpYnV0aW9u KHMpIGFsb25lIG9yIGJ5CisgICBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykg d2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoCisgICBDb250cmlidXRpb24ocykgd2FzIHN1Ym1p dHRlZC4gSWYgWW91IGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbgorICAgYWdhaW5zdCBhbnkg ZW50aXR5IChpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYQorICAg bGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yayBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBv cmF0ZWQgd2l0aGluCisgICB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3Qgb3IgY29udHJpYnV0 b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4KKyAgIGFueSBwYXRlbnQgbGljZW5zZXMgZ3Jh bnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsKKyAgIHNoYWxsIHRl cm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisKKzQuIFJl ZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2Yg dGhlIFdvcmsgb3IKKyAgIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3 aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywKKyAgIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0 IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91IG1lZXQgdGhlIGZvbGxvd2luZworICAgY29uZGl0aW9u czoKKworICAgYS4gWW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgV29y ayBvciBEZXJpdmF0aXZlIFdvcmtzIGEKKyAgICAgIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQK KworICAgYi4gWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21p bmVudCBub3RpY2VzIHN0YXRpbmcKKyAgICAgIHRoYXQgWW91IGNoYW5nZWQgdGhlIGZpbGVzOyBh bmQKKworICAgYy4gWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERl cml2YXRpdmUgV29ya3MgdGhhdCBZb3UKKyAgICAgIGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQs IHBhdGVudCwgdHJhZGVtYXJrLCBhbmQgYXR0cmlidXRpb24gbm90aWNlcworICAgICAgZnJvbSB0 aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQg ZG8gbm90CisgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtz OyBhbmQKKworICAgZC4gSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUg YXMgcGFydCBvZiBpdHMKKyAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBX b3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKKyAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBj b3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZCB3aXRoaW4KKyAgICAgIHN1 Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRh aW4gdG8gYW55CisgICAgICBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFz dCBvbmUgb2YgdGhlIGZvbGxvd2luZworICAgICAgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4 dCBmaWxlIGRpc3RyaWJ1dGVkIGFzIHBhcnQgb2YgdGhlCisgICAgICBEZXJpdmF0aXZlIFdvcmtz OyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yIGRvY3VtZW50YXRpb24sIGlmCisgICAgICBwcm92 aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwgd2l0aGluIGEgZGlzcGxh eQorICAgICAgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQgd2hlcmV2 ZXIgc3VjaCB0aGlyZC1wYXJ0eQorICAgICAgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBj b250ZW50cyBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvcgorICAgICAgaW5mb3JtYXRpb25hbCBw dXJwb3NlcyBvbmx5IGFuZCBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5CisgICAg ICBhZGQgWW91ciBvd24gYXR0cmlidXRpb24gbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3Jr cyB0aGF0IFlvdQorICAgICAgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlIG9yIGFzIGFuIGFkZGVuZHVt IHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZQorICAgICAgV29yaywgcHJvdmlkZWQgdGhhdCBz dWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUKKyAgICAgIGNvbnN0 cnVlZCBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuCisKKyAgICBZb3UgbWF5IGFkZCBZb3VyIG93 biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQgbWF5CisgICAg cHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRp b25zIGZvciB1c2UsCisgICAgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBt b2RpZmljYXRpb25zLCBvciBmb3IgYW55IHN1Y2gKKyAgICBEZXJpdmF0aXZlIFdvcmtzIGFzIGEg d2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLCByZXByb2R1Y3Rpb24sIGFuZAorICAgIGRpc3RyaWJ1 dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aCB0aGUgY29uZGl0aW9ucyBz dGF0ZWQKKyAgICBpbiB0aGlzIExpY2Vuc2UuCisKKzUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0 aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwgYW55CisgICBDb250 cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29y ayBieSBZb3UgdG8KKyAgIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5k IGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLAorICAgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0 ZXJtcyBvciBjb25kaXRpb25zLiBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLAorICAgbm90aGlu ZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeSB0aGUgdGVybXMgb2YgYW55IHNlcGFy YXRlCisgICBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQgd2l0aCBMaWNl bnNvciByZWdhcmRpbmcgc3VjaAorICAgQ29udHJpYnV0aW9ucy4KKworNi4gVHJhZGVtYXJrcy4g VGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQor ICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2Yg dGhlIExpY2Vuc29yLAorICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBj dXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCisgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5k IHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KKworNy4gRGlzY2xh aW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFn cmVlZCB0bworICAgaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBl YWNoIENvbnRyaWJ1dG9yIHByb3ZpZGVzCisgICBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFT IElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMKKyAgIE9GIEFOWSBL SU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRh dGlvbiwKKyAgIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgVElUTEUsIE5PTi1JTkZS SU5HRU1FTlQsCisgICBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiBZb3UgYXJlIHNvbGVseQorICAgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5n IHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IKKyAgIHJlZGlzdHJpYnV0aW5nIHRoZSBX b3JrIGFuZCBhc3N1bWUgYW55IHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyCisgICBleGVyY2lz ZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCisKKzguIExpbWl0YXRpb24gb2Yg TGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LCB3aGV0aGVy CisgICBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndp c2UsIHVubGVzcyByZXF1aXJlZAorICAgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJl cmF0ZSBhbmQgZ3Jvc3NseSBuZWdsaWdlbnQgYWN0cykgb3IKKyAgIGFncmVlZCB0byBpbiB3cml0 aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUgbGlhYmxlIHRvIFlvdSBmb3IKKyAgIGRhbWFn ZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwgaW5jaWRlbnRhbCwg b3IKKyAgIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMg YSByZXN1bHQgb2YgdGhpcworICAgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxp dHkgdG8gdXNlIHRoZSBXb3JrIChpbmNsdWRpbmcgYnV0CisgICBub3QgbGltaXRlZCB0byBkYW1h Z2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLCB3b3JrIHN0b3BwYWdlLCBjb21wdXRlcgorICAgZmFp bHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwgb3RoZXIgY29tbWVyY2lhbCBkYW1h Z2VzIG9yCisgICBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IgaGFzIGJlZW4gYWR2 aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YKKyAgIHN1Y2ggZGFtYWdlcy4KKworOS4gQWNjZXB0 aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGlu ZyB0aGUKKyAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29z ZSB0byBvZmZlciwgYW5kIGNoYXJnZSBhCisgICBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBv cnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksIG9yIG90aGVyIGxpYWJpbGl0eQorICAgb2JsaWdhdGlv bnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcyBMaWNlbnNlLiBIb3dldmVyLCBp bgorICAgYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkgb24gWW91 ciBvd24gYmVoYWxmIGFuZCBvbgorICAgWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24g YmVoYWxmIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kCisgICBvbmx5IGlmIFlvdSBhZ3Jl ZSB0byBpbmRlbW5pZnksIGRlZmVuZCwgYW5kIGhvbGQgZWFjaCBDb250cmlidXRvcgorICAgaGFy bWxlc3MgZm9yIGFueSBsaWFiaWxpdHkgaW5jdXJyZWQgYnksIG9yIGNsYWltcyBhc3NlcnRlZCBh Z2FpbnN0LCBzdWNoCisgICBDb250cmlidXRvciBieSByZWFzb24gb2YgeW91ciBhY2NlcHRpbmcg YW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbAorICAgbGlhYmlsaXR5LgorCitFTkQgT0Yg VEVSTVMgQU5EIENPTkRJVElPTlMKZGlmZiAtLWdpdCBhL0xJQ0VOU0VTL2V4Y2VwdGlvbnMvTGlu dXgtc3lzY2FsbC1ub3RlIGIvTElDRU5TRVMvZXhjZXB0aW9ucy9MaW51eC1zeXNjYWxsLW5vdGUK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wMmFhY2JkNDBmNWYKLS0t IC9kZXYvbnVsbAorKysgYi9MSUNFTlNFUy9leGNlcHRpb25zL0xpbnV4LXN5c2NhbGwtbm90ZQpA QCAtMCwwICsxLDI1IEBACitTUERYLUV4Y2VwdGlvbi1JZGVudGlmaWVyOiBMaW51eC1zeXNjYWxs LW5vdGUKK1NQRFgtVVJMOiBodHRwczovL3NwZHgub3JnL2xpY2Vuc2VzL0xpbnV4LXN5c2NhbGwt bm90ZS5odG1sCitTUERYLUxpY2Vuc2VzOiBHUEwtMi4wLW9ubHksIEdQTC0yLjAtb3ItbGF0ZXIs IEdQTC0yLjAsIEdQTC0yLjArCitVc2FnZS1HdWlkZToKKyAgVGhpcyBleGNlcHRpb24gaXMgdXNl ZCB0b2dldGhlciB3aXRoIG9uZSBvZiB0aGUgYWJvdmUgU1BEWC1MaWNlbnNlcworICB0byBtYXJr IHVzZXIgc3BhY2UgQVBJICh1YXBpKSBoZWFkZXIgZmlsZXMgc28gdGhleSBjYW4gYmUgaW5jbHVk ZWQKKyAgaW50byBub24gR1BMIGNvbXBsaWFudCB1c2VyIHNwYWNlIGFwcGxpY2F0aW9uIGNvZGUu CisgIFRvIHVzZSB0aGlzIGV4Y2VwdGlvbiBhZGQgaXQgd2l0aCB0aGUga2V5d29yZCBXSVRIIHRv IG9uZSBvZiB0aGUKKyAgaWRlbnRpZmllcnMgaW4gdGhlIFNQRFgtTGljZW5zZXMgdGFnOgorICAg IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiA8U1BEWC1MaWNlbnNlPiBXSVRIIExpbnV4LXN5c2Nh bGwtbm90ZQorTGljZW5zZS1UZXh0OgorCisgICBOT1RFISBUaGlzIGNvcHlyaWdodCBkb2VzICpu b3QqIGNvdmVyIHVzZXIgcHJvZ3JhbXMgdGhhdCB1c2Uga2VybmVsCisgc2VydmljZXMgYnkgbm9y bWFsIHN5c3RlbSBjYWxscyAtIHRoaXMgaXMgbWVyZWx5IGNvbnNpZGVyZWQgbm9ybWFsIHVzZQor IG9mIHRoZSBrZXJuZWwsIGFuZCBkb2VzICpub3QqIGZhbGwgdW5kZXIgdGhlIGhlYWRpbmcgb2Yg ImRlcml2ZWQgd29yayIuCisgQWxzbyBub3RlIHRoYXQgdGhlIEdQTCBiZWxvdyBpcyBjb3B5cmln aHRlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQorIEZvdW5kYXRpb24sIGJ1dCB0aGUgaW5zdGFuY2Ug b2YgY29kZSB0aGF0IGl0IHJlZmVycyB0byAodGhlIExpbnV4Cisga2VybmVsKSBpcyBjb3B5cmln aHRlZCBieSBtZSBhbmQgb3RoZXJzIHdobyBhY3R1YWxseSB3cm90ZSBpdC4KKworIEFsc28gbm90 ZSB0aGF0IHRoZSBvbmx5IHZhbGlkIHZlcnNpb24gb2YgdGhlIEdQTCBhcyBmYXIgYXMgdGhlIGtl cm5lbAorIGlzIGNvbmNlcm5lZCBpcyBfdGhpc18gcGFydGljdWxhciB2ZXJzaW9uIG9mIHRoZSBs aWNlbnNlIChpZSB2Miwgbm90CisgdjIuMiBvciB2My54IG9yIHdoYXRldmVyKSwgdW5sZXNzIGV4 cGxpY2l0bHkgb3RoZXJ3aXNlIHN0YXRlZC4KKworCQkJTGludXMgVG9ydmFsZHMKKwpkaWZmIC0t Z2l0IGEvTElDRU5TRVMvcHJlZmVycmVkL0JTRC0yLUNsYXVzZSBiL0xJQ0VOU0VTL3ByZWZlcnJl ZC9CU0QtMi1DbGF1c2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5k YTM2NmUyY2U1MGIKLS0tIC9kZXYvbnVsbAorKysgYi9MSUNFTlNFUy9wcmVmZXJyZWQvQlNELTIt Q2xhdXNlCkBAIC0wLDAgKzEsMzIgQEAKK1ZhbGlkLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlCitTUERYLVVSTDogaHR0cHM6Ly9zcGR4Lm9yZy9saWNlbnNlcy9CU0QtMi1DbGF1c2Uu aHRtbAorVXNhZ2UtR3VpZGU6CisgIFRvIHVzZSB0aGUgQlNEIDItY2xhdXNlICJTaW1wbGlmaWVk IiBMaWNlbnNlIHB1dCB0aGUgZm9sbG93aW5nIFNQRFgKKyAgdGFnL3ZhbHVlIHBhaXIgaW50byBh IGNvbW1lbnQgYWNjb3JkaW5nIHRvIHRoZSBwbGFjZW1lbnQgZ3VpZGVsaW5lcyBpbgorICB0aGUg bGljZW5zaW5nIHJ1bGVzIGRvY3VtZW50YXRpb246CisgICAgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZQorTGljZW5zZS1UZXh0OgorCitDb3B5cmlnaHQgKGMpIDx5ZWFyPiA8 b3duZXI+IC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cittb2RpZmljYXRpb24s IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl IG1ldDoKKworMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKworMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgIG5vdGljZSwgdGhp cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK KyAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo ZSBkaXN0cmlidXRpb24uCisKK1RISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgorQU5EIEFOWSBFWFBSRVNTIE9S IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UKK0FSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg Q09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUKK0xJQUJMRSBGT1IgQU5ZIERJUkVD VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKK0NPTlNFUVVF TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U IE9GCitTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig UFJPRklUUzsgT1IgQlVTSU5FU1MKK0lOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCitDT05UUkFDVCwgU1RSSUNUIExJ QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorQVJJ U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg QURWSVNFRCBPRiBUSEUKK1BPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgpkaWZmIC0tZ2l0IGEv TElDRU5TRVMvcHJlZmVycmVkL0dQTC0yLjAgYi9MSUNFTlNFUy9wcmVmZXJyZWQvR1BMLTIuMApp bmRleCBjMWMxMGU4MmRhZmUuLmI5OTMyMDE4M2UyOSAxMDA2NDQKLS0tIGEvTElDRU5TRVMvcHJl ZmVycmVkL0dQTC0yLjAKKysrIGIvTElDRU5TRVMvcHJlZmVycmVkL0dQTC0yLjAKQEAgLTEsMTkg KzEsMTUgQEAKLVZhbGlkLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogVmFsaWQtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLVZhbGlkLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMCsKIFZhbGlkLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgorVmFsaWQt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCitWYWxpZC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ TC0yLjArCiBTUERYLVVSTDogaHR0cHM6Ly9zcGR4Lm9yZy9saWNlbnNlcy9HUEwtMi4wLmh0bWwK IFVzYWdlLUd1aWRlOgogICBUbyB1c2UgdGhpcyBsaWNlbnNlIGluIHNvdXJjZSBjb2RlLCBwdXQg b25lIG9mIHRoZSBmb2xsb3dpbmcgU1BEWAogICB0YWcvdmFsdWUgcGFpcnMgaW50byBhIGNvbW1l bnQgYWNjb3JkaW5nIHRvIHRoZSBwbGFjZW1lbnQKICAgZ3VpZGVsaW5lcyBpbiB0aGUgbGljZW5z aW5nIHJ1bGVzIGRvY3VtZW50YXRpb24uCiAgIEZvciAnR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgKEdQTCkgdmVyc2lvbiAyIG9ubHknIHVzZToKLSAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogR1BMLTIuMAotICBvcgogICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9u bHkKICAgRm9yICdHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSB2ZXJzaW9uIDIgb3Ig YW55IGxhdGVyIHZlcnNpb24nIHVzZToKLSAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMCsKLSAgb3IKICAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRl cgogTGljZW5zZS1UZXh0OgogCmRpZmYgLS1naXQgYS9MSUNFTlNFUy9wcmVmZXJyZWQvTEdQTC0y LjEgYi9MSUNFTlNFUy9wcmVmZXJyZWQvTEdQTC0yLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi44NzM4YThkNTc4ZmEKLS0tIC9kZXYvbnVsbAorKysgYi9MSUNFTlNF Uy9wcmVmZXJyZWQvTEdQTC0yLjEKQEAgLTAsMCArMSw1MDMgQEAKK1ZhbGlkLUxpY2Vuc2UtSWRl bnRpZmllcjogTEdQTC0yLjEtb25seQorVmFsaWQtTGljZW5zZS1JZGVudGlmaWVyOiBMR1BMLTIu MS1vci1sYXRlcgorU1BEWC1VUkw6IGh0dHBzOi8vc3BkeC5vcmcvbGljZW5zZXMvTEdQTC0yLjEu aHRtbAorVXNhZ2UtR3VpZGU6CisgIFRvIHVzZSB0aGlzIGxpY2Vuc2UgaW4gc291cmNlIGNvZGUs IHB1dCBvbmUgb2YgdGhlIGZvbGxvd2luZyBTUERYCisgIHRhZy92YWx1ZSBwYWlycyBpbnRvIGEg Y29tbWVudCBhY2NvcmRpbmcgdG8gdGhlIHBsYWNlbWVudAorICBndWlkZWxpbmVzIGluIHRoZSBs aWNlbnNpbmcgcnVsZXMgZG9jdW1lbnRhdGlvbi4KKyAgRm9yICdHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgKExHUEwpIHZlcnNpb24gMi4xIG9ubHknIHVzZToKKyAgICBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogTEdQTC0yLjEtb25seQorICBGb3IgJ0dOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSAoTEdQTCkgdmVyc2lvbiAyLjEgb3IgYW55IGxhdGVyCisgIHZlcnNp b24nIHVzZToKKyAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTEdQTC0yLjEtb3ItbGF0ZXIK K0xpY2Vuc2UtVGV4dDoKKworR05VIExFU1NFUiBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFCitWZXJz aW9uIDIuMSwgRmVicnVhcnkgMTk5OQorCitDb3B5cmlnaHQgKEMpIDE5OTEsIDE5OTkgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCis1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y LCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisKK0V2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBj b3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcyBvZiB0aGlzCitsaWNlbnNlIGRvY3Vt ZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCisKK1tUaGlzIGlzIHRoZSBmaXJz dCByZWxlYXNlZCB2ZXJzaW9uIG9mIHRoZSBMZXNzZXIgR1BMLiBJdCBhbHNvIGNvdW50cyBhcwor dGhlIHN1Y2Nlc3NvciBvZiB0aGUgR05VIExpYnJhcnkgUHVibGljIExpY2Vuc2UsIHZlcnNpb24g MiwgaGVuY2UgdGhlCit2ZXJzaW9uIG51bWJlciAyLjEuXQorCitQcmVhbWJsZQorCitUaGUgbGlj ZW5zZXMgZm9yIG1vc3Qgc29mdHdhcmUgYXJlIGRlc2lnbmVkIHRvIHRha2UgYXdheSB5b3VyIGZy ZWVkb20gdG8KK3NoYXJlIGFuZCBjaGFuZ2UgaXQuIEJ5IGNvbnRyYXN0LCB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2VzIGFyZQoraW50ZW5kZWQgdG8gZ3VhcmFudGVlIHlvdXIgZnJlZWRv bSB0byBzaGFyZSBhbmQgY2hhbmdlIGZyZWUgc29mdHdhcmUtLXRvCittYWtlIHN1cmUgdGhlIHNv ZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuCisKK1RoaXMgbGljZW5zZSwgdGhlIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBhcHBsaWVzIHRvIHNvbWUgc3BlY2lhbGx5Citk ZXNpZ25hdGVkIHNvZnR3YXJlIHBhY2thZ2VzLS10eXBpY2FsbHkgbGlicmFyaWVzLS1vZiB0aGUg RnJlZSBTb2Z0d2FyZQorRm91bmRhdGlvbiBhbmQgb3RoZXIgYXV0aG9ycyB3aG8gZGVjaWRlIHRv IHVzZSBpdC4gWW91IGNhbiB1c2UgaXQgdG9vLCBidXQKK3dlIHN1Z2dlc3QgeW91IGZpcnN0IHRo aW5rIGNhcmVmdWxseSBhYm91dCB3aGV0aGVyIHRoaXMgbGljZW5zZSBvciB0aGUKK29yZGluYXJ5 IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgdGhlIGJldHRlciBzdHJhdGVneSB0byB1c2UgaW4g YW55CitwYXJ0aWN1bGFyIGNhc2UsIGJhc2VkIG9uIHRoZSBleHBsYW5hdGlvbnMgYmVsb3cuCisK K1doZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVl ZG9tIG9mIHVzZSwgbm90CitwcmljZS4gT3VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIGFyZSBk ZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdCB5b3UgaGF2ZQordGhlIGZyZWVkb20gdG8gZGlzdHJp YnV0ZSBjb3BpZXMgb2YgZnJlZSBzb2Z0d2FyZSAoYW5kIGNoYXJnZSBmb3IgdGhpcworc2Vydmlj ZSBpZiB5b3Ugd2lzaCk7IHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBp dCBpZiB5b3UKK3dhbnQgaXQ7IHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIGFuZCB1 c2UgcGllY2VzIG9mIGl0IGluIG5ldyBmcmVlCitwcm9ncmFtczsgYW5kIHRoYXQgeW91IGFyZSBp bmZvcm1lZCB0aGF0IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgorCitUbyBwcm90ZWN0IHlvdXIg cmlnaHRzLCB3ZSBuZWVkIHRvIG1ha2UgcmVzdHJpY3Rpb25zIHRoYXQgZm9yYmlkCitkaXN0cmli dXRvcnMgdG8gZGVueSB5b3UgdGhlc2UgcmlnaHRzIG9yIHRvIGFzayB5b3UgdG8gc3VycmVuZGVy IHRoZXNlCityaWdodHMuIFRoZXNlIHJlc3RyaWN0aW9ucyB0cmFuc2xhdGUgdG8gY2VydGFpbiBy ZXNwb25zaWJpbGl0aWVzIGZvciB5b3UgaWYKK3lvdSBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUg bGlicmFyeSBvciBpZiB5b3UgbW9kaWZ5IGl0LgorCitGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3Ry aWJ1dGUgY29waWVzIG9mIHRoZSBsaWJyYXJ5LCB3aGV0aGVyIGdyYXRpcyBvciBmb3IKK2EgZmVl LCB5b3UgbXVzdCBnaXZlIHRoZSByZWNpcGllbnRzIGFsbCB0aGUgcmlnaHRzIHRoYXQgd2UgZ2F2 ZSB5b3UuIFlvdQorbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUgb3IgY2Fu IGdldCB0aGUgc291cmNlIGNvZGUuIElmIHlvdQorbGluayBvdGhlciBjb2RlIHdpdGggdGhlIGxp YnJhcnksIHlvdSBtdXN0IHByb3ZpZGUgY29tcGxldGUgb2JqZWN0IGZpbGVzIHRvCit0aGUgcmVj aXBpZW50cywgc28gdGhhdCB0aGV5IGNhbiByZWxpbmsgdGhlbSB3aXRoIHRoZSBsaWJyYXJ5IGFm dGVyIG1ha2luZworY2hhbmdlcyB0byB0aGUgbGlicmFyeSBhbmQgcmVjb21waWxpbmcgaXQuIEFu ZCB5b3UgbXVzdCBzaG93IHRoZW0gdGhlc2UKK3Rlcm1zIHNvIHRoZXkga25vdyB0aGVpciByaWdo dHMuCisKK1dlIHByb3RlY3QgeW91ciByaWdodHMgd2l0aCBhIHR3by1zdGVwIG1ldGhvZDogKDEp IHdlIGNvcHlyaWdodCB0aGUKK2xpYnJhcnksIGFuZCAoMikgd2Ugb2ZmZXIgeW91IHRoaXMgbGlj ZW5zZSwgd2hpY2ggZ2l2ZXMgeW91IGxlZ2FsCitwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1 dGUgYW5kL29yIG1vZGlmeSB0aGUgbGlicmFyeS4KKworVG8gcHJvdGVjdCBlYWNoIGRpc3RyaWJ1 dG9yLCB3ZSB3YW50IHRvIG1ha2UgaXQgdmVyeSBjbGVhciB0aGF0IHRoZXJlIGlzIG5vCit3YXJy YW50eSBmb3IgdGhlIGZyZWUgbGlicmFyeS4gQWxzbywgaWYgdGhlIGxpYnJhcnkgaXMgbW9kaWZp ZWQgYnkgc29tZW9uZQorZWxzZSBhbmQgcGFzc2VkIG9uLCB0aGUgcmVjaXBpZW50cyBzaG91bGQg a25vdyB0aGF0IHdoYXQgdGhleSBoYXZlIGlzIG5vdAordGhlIG9yaWdpbmFsIHZlcnNpb24sIHNv IHRoYXQgdGhlIG9yaWdpbmFsIGF1dGhvcidzIHJlcHV0YXRpb24gd2lsbCBub3QgYmUKK2FmZmVj dGVkIGJ5IHByb2JsZW1zIHRoYXQgbWlnaHQgYmUgaW50cm9kdWNlZCBieSBvdGhlcnMuCisKK0Zp bmFsbHksIHNvZnR3YXJlIHBhdGVudHMgcG9zZSBhIGNvbnN0YW50IHRocmVhdCB0byB0aGUgZXhp c3RlbmNlIG9mIGFueQorZnJlZSBwcm9ncmFtLiBXZSB3aXNoIHRvIG1ha2Ugc3VyZSB0aGF0IGEg Y29tcGFueSBjYW5ub3QgZWZmZWN0aXZlbHkKK3Jlc3RyaWN0IHRoZSB1c2VycyBvZiBhIGZyZWUg cHJvZ3JhbSBieSBvYnRhaW5pbmcgYSByZXN0cmljdGl2ZSBsaWNlbnNlCitmcm9tIGEgcGF0ZW50 IGhvbGRlci4gVGhlcmVmb3JlLCB3ZSBpbnNpc3QgdGhhdCBhbnkgcGF0ZW50IGxpY2Vuc2Ugb2J0 YWluZWQKK2ZvciBhIHZlcnNpb24gb2YgdGhlIGxpYnJhcnkgbXVzdCBiZSBjb25zaXN0ZW50IHdp dGggdGhlIGZ1bGwgZnJlZWRvbSBvZgordXNlIHNwZWNpZmllZCBpbiB0aGlzIGxpY2Vuc2UuCisK K01vc3QgR05VIHNvZnR3YXJlLCBpbmNsdWRpbmcgc29tZSBsaWJyYXJpZXMsIGlzIGNvdmVyZWQg YnkgdGhlIG9yZGluYXJ5IEdOVQorR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyBsaWNlbnNl LCB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworTGljZW5zZSwgYXBwbGllcyB0byBjZXJ0 YWluIGRlc2lnbmF0ZWQgbGlicmFyaWVzLCBhbmQgaXMgcXVpdGUgZGlmZmVyZW50Citmcm9tIHRo ZSBvcmRpbmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBXZSB1c2UgdGhpcyBsaWNlbnNlIGZv ciBjZXJ0YWluCitsaWJyYXJpZXMgaW4gb3JkZXIgdG8gcGVybWl0IGxpbmtpbmcgdGhvc2UgbGli cmFyaWVzIGludG8gbm9uLWZyZWUKK3Byb2dyYW1zLgorCitXaGVuIGEgcHJvZ3JhbSBpcyBsaW5r ZWQgd2l0aCBhIGxpYnJhcnksIHdoZXRoZXIgc3RhdGljYWxseSBvciB1c2luZyBhCitzaGFyZWQg bGlicmFyeSwgdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSB0d28gaXMgbGVnYWxseSBzcGVha2luZyBh IGNvbWJpbmVkCit3b3JrLCBhIGRlcml2YXRpdmUgb2YgdGhlIG9yaWdpbmFsIGxpYnJhcnkuIFRo ZSBvcmRpbmFyeSBHZW5lcmFsIFB1YmxpYworTGljZW5zZSB0aGVyZWZvcmUgcGVybWl0cyBzdWNo IGxpbmtpbmcgb25seSBpZiB0aGUgZW50aXJlIGNvbWJpbmF0aW9uIGZpdHMKK2l0cyBjcml0ZXJp YSBvZiBmcmVlZG9tLiBUaGUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgcGVybWl0cyBt b3JlIGxheAorY3JpdGVyaWEgZm9yIGxpbmtpbmcgb3RoZXIgY29kZSB3aXRoIHRoZSBsaWJyYXJ5 LgorCitXZSBjYWxsIHRoaXMgbGljZW5zZSB0aGUgIkxlc3NlciIgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBiZWNhdXNlIGl0IGRvZXMKK0xlc3MgdG8gcHJvdGVjdCB0aGUgdXNlcidzIGZyZWVkb20g dGhhbiB0aGUgb3JkaW5hcnkgR2VuZXJhbCBQdWJsaWMKK0xpY2Vuc2UuIEl0IGFsc28gcHJvdmlk ZXMgb3RoZXIgZnJlZSBzb2Z0d2FyZSBkZXZlbG9wZXJzIExlc3Mgb2YgYW4KK2FkdmFudGFnZSBv dmVyIGNvbXBldGluZyBub24tZnJlZSBwcm9ncmFtcy4gVGhlc2UgZGlzYWR2YW50YWdlcyBhcmUg dGhlCityZWFzb24gd2UgdXNlIHRoZSBvcmRpbmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtYW55CitsaWJyYXJpZXMuIEhvd2V2ZXIsIHRoZSBMZXNzZXIgbGljZW5zZSBwcm92aWRlcyBh ZHZhbnRhZ2VzIGluIGNlcnRhaW4KK3NwZWNpYWwgY2lyY3Vtc3RhbmNlcy4KKworRm9yIGV4YW1w bGUsIG9uIHJhcmUgb2NjYXNpb25zLCB0aGVyZSBtYXkgYmUgYSBzcGVjaWFsIG5lZWQgdG8gZW5j b3VyYWdlCit0aGUgd2lkZXN0IHBvc3NpYmxlIHVzZSBvZiBhIGNlcnRhaW4gbGlicmFyeSwgc28g dGhhdCBpdCBiZWNvbWVzIGEgZGUtZmFjdG8KK3N0YW5kYXJkLiBUbyBhY2hpZXZlIHRoaXMsIG5v bi1mcmVlIHByb2dyYW1zIG11c3QgYmUgYWxsb3dlZCB0byB1c2UgdGhlCitsaWJyYXJ5LiBBIG1v cmUgZnJlcXVlbnQgY2FzZSBpcyB0aGF0IGEgZnJlZSBsaWJyYXJ5IGRvZXMgdGhlIHNhbWUgam9i IGFzCit3aWRlbHkgdXNlZCBub24tZnJlZSBsaWJyYXJpZXMuIEluIHRoaXMgY2FzZSwgdGhlcmUg aXMgbGl0dGxlIHRvIGdhaW4gYnkKK2xpbWl0aW5nIHRoZSBmcmVlIGxpYnJhcnkgdG8gZnJlZSBz b2Z0d2FyZSBvbmx5LCBzbyB3ZSB1c2UgdGhlIExlc3NlcgorR2VuZXJhbCBQdWJsaWMgTGljZW5z ZS4KKworSW4gb3RoZXIgY2FzZXMsIHBlcm1pc3Npb24gdG8gdXNlIGEgcGFydGljdWxhciBsaWJy YXJ5IGluIG5vbi1mcmVlIHByb2dyYW1zCitlbmFibGVzIGEgZ3JlYXRlciBudW1iZXIgb2YgcGVv cGxlIHRvIHVzZSBhIGxhcmdlIGJvZHkgb2YgZnJlZQorc29mdHdhcmUuIEZvciBleGFtcGxlLCBw ZXJtaXNzaW9uIHRvIHVzZSB0aGUgR05VIEMgTGlicmFyeSBpbiBub24tZnJlZQorcHJvZ3JhbXMg ZW5hYmxlcyBtYW55IG1vcmUgcGVvcGxlIHRvIHVzZSB0aGUgd2hvbGUgR05VIG9wZXJhdGluZyBz eXN0ZW0sIGFzCit3ZWxsIGFzIGl0cyB2YXJpYW50LCB0aGUgR05VL0xpbnV4IG9wZXJhdGluZyBz eXN0ZW0uCisKK0FsdGhvdWdoIHRoZSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBM ZXNzIHByb3RlY3RpdmUgb2YgdGhlIHVzZXJzJworZnJlZWRvbSwgaXQgZG9lcyBlbnN1cmUgdGhh dCB0aGUgdXNlciBvZiBhIHByb2dyYW0gdGhhdCBpcyBsaW5rZWQgd2l0aCB0aGUKK0xpYnJhcnkg aGFzIHRoZSBmcmVlZG9tIGFuZCB0aGUgd2hlcmV3aXRoYWwgdG8gcnVuIHRoYXQgcHJvZ3JhbSB1 c2luZyBhCittb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBMaWJyYXJ5LgorCitUaGUgcHJlY2lzZSB0 ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZCBtb2RpZmlj YXRpb24KK2ZvbGxvdy4gUGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgZGlmZmVyZW5jZSBiZXR3 ZWVuIGEgIndvcmsgYmFzZWQgb24gdGhlCitsaWJyYXJ5IiBhbmQgYSAid29yayB0aGF0IHVzZXMg dGhlIGxpYnJhcnkiLiBUaGUgZm9ybWVyIGNvbnRhaW5zIGNvZGUKK2Rlcml2ZWQgZnJvbSB0aGUg bGlicmFyeSwgd2hlcmVhcyB0aGUgbGF0dGVyIG11c3QgYmUgY29tYmluZWQgd2l0aCB0aGUKK2xp YnJhcnkgaW4gb3JkZXIgdG8gcnVuLgorCitURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgQ09QWUlO RywgRElTVFJJQlVUSU9OIEFORCBNT0RJRklDQVRJT04KKworMC4gVGhpcyBMaWNlbnNlIEFncmVl bWVudCBhcHBsaWVzIHRvIGFueSBzb2Z0d2FyZSBsaWJyYXJ5IG9yIG90aGVyIHByb2dyYW0KKyAg IHdoaWNoIGNvbnRhaW5zIGEgbm90aWNlIHBsYWNlZCBieSB0aGUgY29weXJpZ2h0IGhvbGRlciBv ciBvdGhlcgorICAgYXV0aG9yaXplZCBwYXJ0eSBzYXlpbmcgaXQgbWF5IGJlIGRpc3RyaWJ1dGVk IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSAoYWxzbyBjYWxsZWQgInRoaXMgTGljZW5zZSIpLiBFYWNoCisgICBsaWNlbnNlZSBpcyBhZGRy ZXNzZWQgYXMgInlvdSIuCisKKyAgIEEgImxpYnJhcnkiIG1lYW5zIGEgY29sbGVjdGlvbiBvZiBz b2Z0d2FyZSBmdW5jdGlvbnMgYW5kL29yIGRhdGEKKyAgIHByZXBhcmVkIHNvIGFzIHRvIGJlIGNv bnZlbmllbnRseSBsaW5rZWQgd2l0aCBhcHBsaWNhdGlvbiBwcm9ncmFtcworICAgKHdoaWNoIHVz ZSBzb21lIG9mIHRob3NlIGZ1bmN0aW9ucyBhbmQgZGF0YSkgdG8gZm9ybSBleGVjdXRhYmxlcy4K KworICAgVGhlICJMaWJyYXJ5IiwgYmVsb3csIHJlZmVycyB0byBhbnkgc3VjaCBzb2Z0d2FyZSBs aWJyYXJ5IG9yIHdvcmsgd2hpY2gKKyAgIGhhcyBiZWVuIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZXNl IHRlcm1zLiBBICJ3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5IgorICAgbWVhbnMgZWl0aGVyIHRo ZSBMaWJyYXJ5IG9yIGFueSBkZXJpdmF0aXZlIHdvcmsgdW5kZXIgY29weXJpZ2h0IGxhdzoKKyAg IHRoYXQgaXMgdG8gc2F5LCBhIHdvcmsgY29udGFpbmluZyB0aGUgTGlicmFyeSBvciBhIHBvcnRp b24gb2YgaXQsIGVpdGhlcgorICAgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zIGFuZC9v ciB0cmFuc2xhdGVkIHN0cmFpZ2h0Zm9yd2FyZGx5IGludG8KKyAgIGFub3RoZXIgbGFuZ3VhZ2Uu IChIZXJlaW5hZnRlciwgdHJhbnNsYXRpb24gaXMgaW5jbHVkZWQgd2l0aG91dAorICAgbGltaXRh dGlvbiBpbiB0aGUgdGVybSAibW9kaWZpY2F0aW9uIi4pCisKKyAgICJTb3VyY2UgY29kZSIgZm9y IGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsgZm9yIG1ha2luZwor ICAgbW9kaWZpY2F0aW9ucyB0byBpdC4gRm9yIGEgbGlicmFyeSwgY29tcGxldGUgc291cmNlIGNv ZGUgbWVhbnMgYWxsIHRoZQorICAgc291cmNlIGNvZGUgZm9yIGFsbCBtb2R1bGVzIGl0IGNvbnRh aW5zLCBwbHVzIGFueSBhc3NvY2lhdGVkIGludGVyZmFjZQorICAgZGVmaW5pdGlvbiBmaWxlcywg cGx1cyB0aGUgc2NyaXB0cyB1c2VkIHRvIGNvbnRyb2wgY29tcGlsYXRpb24gYW5kCisgICBpbnN0 YWxsYXRpb24gb2YgdGhlIGxpYnJhcnkuCisKKyAgICBBY3Rpdml0aWVzIG90aGVyIHRoYW4gY29w eWluZywgZGlzdHJpYnV0aW9uIGFuZCBtb2RpZmljYXRpb24gYXJlIG5vdAorICAgIGNvdmVyZWQg YnkgdGhpcyBMaWNlbnNlOyB0aGV5IGFyZSBvdXRzaWRlIGl0cyBzY29wZS4gVGhlIGFjdCBvZiBy dW5uaW5nCisgICAgYSBwcm9ncmFtIHVzaW5nIHRoZSBMaWJyYXJ5IGlzIG5vdCByZXN0cmljdGVk LCBhbmQgb3V0cHV0IGZyb20gc3VjaCBhCisgICAgcHJvZ3JhbSBpcyBjb3ZlcmVkIG9ubHkgaWYg aXRzIGNvbnRlbnRzIGNvbnN0aXR1dGUgYSB3b3JrIGJhc2VkIG9uIHRoZQorICAgIExpYnJhcnkg KGluZGVwZW5kZW50IG9mIHRoZSB1c2Ugb2YgdGhlIExpYnJhcnkgaW4gYSB0b29sIGZvciB3cml0 aW5nCisgICAgaXQpLiBXaGV0aGVyIHRoYXQgaXMgdHJ1ZSBkZXBlbmRzIG9uIHdoYXQgdGhlIExp YnJhcnkgZG9lcyBhbmQgd2hhdCB0aGUKKyAgICBwcm9ncmFtIHRoYXQgdXNlcyB0aGUgTGlicmFy eSBkb2VzLgorCisxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVz IG9mIHRoZSBMaWJyYXJ5J3MgY29tcGxldGUKKyAgIHNvdXJjZSBjb2RlIGFzIHlvdSByZWNlaXZl IGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdQorICAgY29uc3BpY3VvdXNseSBh bmQgYXBwcm9wcmlhdGVseSBwdWJsaXNoIG9uIGVhY2ggY29weSBhbiBhcHByb3ByaWF0ZQorICAg Y29weXJpZ2h0IG5vdGljZSBhbmQgZGlzY2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3Qg YWxsIHRoZSBub3RpY2VzCisgICB0aGF0IHJlZmVyIHRvIHRoaXMgTGljZW5zZSBhbmQgdG8gdGhl IGFic2VuY2Ugb2YgYW55IHdhcnJhbnR5OyBhbmQKKyAgIGRpc3RyaWJ1dGUgYSBjb3B5IG9mIHRo aXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBMaWJyYXJ5LgorCisgICBZb3UgbWF5IGNoYXJnZSBh IGZlZSBmb3IgdGhlIHBoeXNpY2FsIGFjdCBvZiB0cmFuc2ZlcnJpbmcgYSBjb3B5LCBhbmQKKyAg IHlvdSBtYXkgYXQgeW91ciBvcHRpb24gb2ZmZXIgd2FycmFudHkgcHJvdGVjdGlvbiBpbiBleGNo YW5nZSBmb3IgYSBmZWUuCisKKzIuIFlvdSBtYXkgbW9kaWZ5IHlvdXIgY29weSBvciBjb3BpZXMg b2YgdGhlIExpYnJhcnkgb3IgYW55IHBvcnRpb24gb2YgaXQsCisgICB0aHVzIGZvcm1pbmcgYSB3 b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5LCBhbmQgY29weSBhbmQgZGlzdHJpYnV0ZSBzdWNoCisg ICBtb2RpZmljYXRpb25zIG9yIHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMSBhYm92 ZSwgcHJvdmlkZWQgdGhhdAorICAgeW91IGFsc28gbWVldCBhbGwgb2YgdGhlc2UgY29uZGl0aW9u czoKKworICAgYSkgVGhlIG1vZGlmaWVkIHdvcmsgbXVzdCBpdHNlbGYgYmUgYSBzb2Z0d2FyZSBs aWJyYXJ5LgorCisgICBiKSBZb3UgbXVzdCBjYXVzZSB0aGUgZmlsZXMgbW9kaWZpZWQgdG8gY2Fy cnkgcHJvbWluZW50IG5vdGljZXMgc3RhdGluZworICAgICAgdGhhdCB5b3UgY2hhbmdlZCB0aGUg ZmlsZXMgYW5kIHRoZSBkYXRlIG9mIGFueSBjaGFuZ2UuCisKKyAgIGMpIFlvdSBtdXN0IGNhdXNl IHRoZSB3aG9sZSBvZiB0aGUgd29yayB0byBiZSBsaWNlbnNlZCBhdCBubyBjaGFyZ2UgdG8KKyAg ICAgIGFsbCB0aGlyZCBwYXJ0aWVzIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UuCisK KyAgIGQpIElmIGEgZmFjaWxpdHkgaW4gdGhlIG1vZGlmaWVkIExpYnJhcnkgcmVmZXJzIHRvIGEg ZnVuY3Rpb24gb3IgYSB0YWJsZQorICAgICAgb2YgZGF0YSB0byBiZSBzdXBwbGllZCBieSBhbiBh cHBsaWNhdGlvbiBwcm9ncmFtIHRoYXQgdXNlcyB0aGUKKyAgICAgIGZhY2lsaXR5LCBvdGhlciB0 aGFuIGFzIGFuIGFyZ3VtZW50IHBhc3NlZCB3aGVuIHRoZSBmYWNpbGl0eSBpcworICAgICAgaW52 b2tlZCwgdGhlbiB5b3UgbXVzdCBtYWtlIGEgZ29vZCBmYWl0aCBlZmZvcnQgdG8gZW5zdXJlIHRo YXQsIGluCisgICAgICB0aGUgZXZlbnQgYW4gYXBwbGljYXRpb24gZG9lcyBub3Qgc3VwcGx5IHN1 Y2ggZnVuY3Rpb24gb3IgdGFibGUsIHRoZQorICAgICAgZmFjaWxpdHkgc3RpbGwgb3BlcmF0ZXMs IGFuZCBwZXJmb3JtcyB3aGF0ZXZlciBwYXJ0IG9mIGl0cyBwdXJwb3NlCisgICAgICByZW1haW5z IG1lYW5pbmdmdWwuCisKKyAgIChGb3IgZXhhbXBsZSwgYSBmdW5jdGlvbiBpbiBhIGxpYnJhcnkg dG8gY29tcHV0ZSBzcXVhcmUgcm9vdHMgaGFzIGEKKyAgICBwdXJwb3NlIHRoYXQgaXMgZW50aXJl bHkgd2VsbC1kZWZpbmVkIGluZGVwZW5kZW50IG9mIHRoZQorICAgIGFwcGxpY2F0aW9uLiBUaGVy ZWZvcmUsIFN1YnNlY3Rpb24gMmQgcmVxdWlyZXMgdGhhdCBhbnkKKyAgICBhcHBsaWNhdGlvbi1z dXBwbGllZCBmdW5jdGlvbiBvciB0YWJsZSB1c2VkIGJ5IHRoaXMgZnVuY3Rpb24gbXVzdCBiZQor ICAgIG9wdGlvbmFsOiBpZiB0aGUgYXBwbGljYXRpb24gZG9lcyBub3Qgc3VwcGx5IGl0LCB0aGUg c3F1YXJlIHJvb3QKKyAgICBmdW5jdGlvbiBtdXN0IHN0aWxsIGNvbXB1dGUgc3F1YXJlIHJvb3Rz LikKKworICAgVGhlc2UgcmVxdWlyZW1lbnRzIGFwcGx5IHRvIHRoZSBtb2RpZmllZCB3b3JrIGFz IGEgd2hvbGUuIElmCisgICBpZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBu b3QgZGVyaXZlZCBmcm9tIHRoZSBMaWJyYXJ5LCBhbmQKKyAgIGNhbiBiZSByZWFzb25hYmx5IGNv bnNpZGVyZWQgaW5kZXBlbmRlbnQgYW5kIHNlcGFyYXRlIHdvcmtzIGluCisgICB0aGVtc2VsdmVz LCB0aGVuIHRoaXMgTGljZW5zZSwgYW5kIGl0cyB0ZXJtcywgZG8gbm90IGFwcGx5IHRvIHRob3Nl CisgICBzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3Mu IEJ1dCB3aGVuIHlvdQorICAgZGlzdHJpYnV0ZSB0aGUgc2FtZSBzZWN0aW9ucyBhcyBwYXJ0IG9m IGEgd2hvbGUgd2hpY2ggaXMgYSB3b3JrIGJhc2VkIG9uCisgICB0aGUgTGlicmFyeSwgdGhlIGRp c3RyaWJ1dGlvbiBvZiB0aGUgd2hvbGUgbXVzdCBiZSBvbiB0aGUgdGVybXMgb2YgdGhpcworICAg TGljZW5zZSwgd2hvc2UgcGVybWlzc2lvbnMgZm9yIG90aGVyIGxpY2Vuc2VlcyBleHRlbmQgdG8g dGhlIGVudGlyZQorICAgd2hvbGUsIGFuZCB0aHVzIHRvIGVhY2ggYW5kIGV2ZXJ5IHBhcnQgcmVn YXJkbGVzcyBvZiB3aG8gd3JvdGUgaXQuCisKKyAgIFRodXMsIGl0IGlzIG5vdCB0aGUgaW50ZW50 IG9mIHRoaXMgc2VjdGlvbiB0byBjbGFpbSByaWdodHMgb3IgY29udGVzdAorICAgeW91ciByaWdo dHMgdG8gd29yayB3cml0dGVuIGVudGlyZWx5IGJ5IHlvdTsgcmF0aGVyLCB0aGUgaW50ZW50IGlz IHRvCisgICBleGVyY2lzZSB0aGUgcmlnaHQgdG8gY29udHJvbCB0aGUgZGlzdHJpYnV0aW9uIG9m IGRlcml2YXRpdmUgb3IKKyAgIGNvbGxlY3RpdmUgd29ya3MgYmFzZWQgb24gdGhlIExpYnJhcnku CisKKyAgIEluIGFkZGl0aW9uLCBtZXJlIGFnZ3JlZ2F0aW9uIG9mIGFub3RoZXIgd29yayBub3Qg YmFzZWQgb24gdGhlIExpYnJhcnkKKyAgIHdpdGggdGhlIExpYnJhcnkgKG9yIHdpdGggYSB3b3Jr IGJhc2VkIG9uIHRoZSBMaWJyYXJ5KSBvbiBhIHZvbHVtZSBvZiBhCisgICBzdG9yYWdlIG9yIGRp c3RyaWJ1dGlvbiBtZWRpdW0gZG9lcyBub3QgYnJpbmcgdGhlIG90aGVyIHdvcmsgdW5kZXIgdGhl CisgICBzY29wZSBvZiB0aGlzIExpY2Vuc2UuCisKKzMuIFlvdSBtYXkgb3B0IHRvIGFwcGx5IHRo ZSB0ZXJtcyBvZiB0aGUgb3JkaW5hcnkgR05VIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGlu c3RlYWQgb2YgdGhpcyBMaWNlbnNlIHRvIGEgZ2l2ZW4gY29weSBvZiB0aGUgTGlicmFyeS4gVG8g ZG8KKyAgIHRoaXMsIHlvdSBtdXN0IGFsdGVyIGFsbCB0aGUgbm90aWNlcyB0aGF0IHJlZmVyIHRv IHRoaXMgTGljZW5zZSwgc28gdGhhdAorICAgdGhleSByZWZlciB0byB0aGUgb3JkaW5hcnkgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHZlcnNpb24gMiwKKyAgIGluc3RlYWQgb2YgdG8gdGhp cyBMaWNlbnNlLiAoSWYgYSBuZXdlciB2ZXJzaW9uIHRoYW4gdmVyc2lvbiAyIG9mIHRoZQorICAg b3JkaW5hcnkgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaGFzIGFwcGVhcmVkLCB0aGVuIHlv dSBjYW4gc3BlY2lmeQorICAgdGhhdCB2ZXJzaW9uIGluc3RlYWQgaWYgeW91IHdpc2guKSBEbyBu b3QgbWFrZSBhbnkgb3RoZXIgY2hhbmdlIGluIHRoZXNlCisgICBub3RpY2VzLgorCisgICBPbmNl IHRoaXMgY2hhbmdlIGlzIG1hZGUgaW4gYSBnaXZlbiBjb3B5LCBpdCBpcyBpcnJldmVyc2libGUg Zm9yIHRoYXQKKyAgIGNvcHksIHNvIHRoZSBvcmRpbmFyeSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcHBsaWVzIHRvIGFsbAorICAgc3Vic2VxdWVudCBjb3BpZXMgYW5kIGRlcml2YXRpdmUg d29ya3MgbWFkZSBmcm9tIHRoYXQgY29weS4KKworICAgVGhpcyBvcHRpb24gaXMgdXNlZnVsIHdo ZW4geW91IHdpc2ggdG8gY29weSBwYXJ0IG9mIHRoZSBjb2RlIG9mIHRoZQorICAgTGlicmFyeSBp bnRvIGEgcHJvZ3JhbSB0aGF0IGlzIG5vdCBhIGxpYnJhcnkuCisKKzQuIFlvdSBtYXkgY29weSBh bmQgZGlzdHJpYnV0ZSB0aGUgTGlicmFyeSAob3IgYSBwb3J0aW9uIG9yIGRlcml2YXRpdmUgb2YK KyAgIGl0LCB1bmRlciBTZWN0aW9uIDIpIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUgZm9y bSB1bmRlciB0aGUgdGVybXMKKyAgIG9mIFNlY3Rpb25zIDEgYW5kIDIgYWJvdmUgcHJvdmlkZWQg dGhhdCB5b3UgYWNjb21wYW55IGl0IHdpdGggdGhlCisgICBjb21wbGV0ZSBjb3JyZXNwb25kaW5n IG1hY2hpbmUtcmVhZGFibGUgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUKKyAgIGRpc3RyaWJ1 dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVt CisgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZS4KKworICAgSWYg ZGlzdHJpYnV0aW9uIG9mIG9iamVjdCBjb2RlIGlzIG1hZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIHRv IGNvcHkgZnJvbSBhCisgICBkZXNpZ25hdGVkIHBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2YWxl bnQgYWNjZXNzIHRvIGNvcHkgdGhlIHNvdXJjZQorICAgY29kZSBmcm9tIHRoZSBzYW1lIHBsYWNl IHNhdGlzZmllcyB0aGUgcmVxdWlyZW1lbnQgdG8gZGlzdHJpYnV0ZSB0aGUKKyAgIHNvdXJjZSBj b2RlLCBldmVuIHRob3VnaCB0aGlyZCBwYXJ0aWVzIGFyZSBub3QgY29tcGVsbGVkIHRvIGNvcHkg dGhlCisgICBzb3VyY2UgYWxvbmcgd2l0aCB0aGUgb2JqZWN0IGNvZGUuCisKKzUuIEEgcHJvZ3Jh bSB0aGF0IGNvbnRhaW5zIG5vIGRlcml2YXRpdmUgb2YgYW55IHBvcnRpb24gb2YgdGhlIExpYnJh cnksIGJ1dAorICAgaXMgZGVzaWduZWQgdG8gd29yayB3aXRoIHRoZSBMaWJyYXJ5IGJ5IGJlaW5n IGNvbXBpbGVkIG9yIGxpbmtlZCB3aXRoCisgICBpdCwgaXMgY2FsbGVkIGEgIndvcmsgdGhhdCB1 c2VzIHRoZSBMaWJyYXJ5Ii4gU3VjaCBhIHdvcmssIGluIGlzb2xhdGlvbiwKKyAgIGlzIG5vdCBh IGRlcml2YXRpdmUgd29yayBvZiB0aGUgTGlicmFyeSwgYW5kIHRoZXJlZm9yZSBmYWxscyBvdXRz aWRlIHRoZQorICAgc2NvcGUgb2YgdGhpcyBMaWNlbnNlLgorCisgICBIb3dldmVyLCBsaW5raW5n IGEgIndvcmsgdGhhdCB1c2VzIHRoZSBMaWJyYXJ5IiB3aXRoIHRoZSBMaWJyYXJ5IGNyZWF0ZXMK KyAgIGFuIGV4ZWN1dGFibGUgdGhhdCBpcyBhIGRlcml2YXRpdmUgb2YgdGhlIExpYnJhcnkgKGJl Y2F1c2UgaXQgY29udGFpbnMKKyAgIHBvcnRpb25zIG9mIHRoZSBMaWJyYXJ5KSwgcmF0aGVyIHRo YW4gYSAid29yayB0aGF0IHVzZXMgdGhlCisgICBsaWJyYXJ5Ii4gVGhlIGV4ZWN1dGFibGUgaXMg dGhlcmVmb3JlIGNvdmVyZWQgYnkgdGhpcyBMaWNlbnNlLiBTZWN0aW9uIDYKKyAgIHN0YXRlcyB0 ZXJtcyBmb3IgZGlzdHJpYnV0aW9uIG9mIHN1Y2ggZXhlY3V0YWJsZXMuCisKKyAgIFdoZW4gYSAi d29yayB0aGF0IHVzZXMgdGhlIExpYnJhcnkiIHVzZXMgbWF0ZXJpYWwgZnJvbSBhIGhlYWRlciBm aWxlCisgICB0aGF0IGlzIHBhcnQgb2YgdGhlIExpYnJhcnksIHRoZSBvYmplY3QgY29kZSBmb3Ig dGhlIHdvcmsgbWF5IGJlIGEKKyAgIGRlcml2YXRpdmUgd29yayBvZiB0aGUgTGlicmFyeSBldmVu IHRob3VnaCB0aGUgc291cmNlIGNvZGUgaXMKKyAgIG5vdC4gV2hldGhlciB0aGlzIGlzIHRydWUg aXMgZXNwZWNpYWxseSBzaWduaWZpY2FudCBpZiB0aGUgd29yayBjYW4gYmUKKyAgIGxpbmtlZCB3 aXRob3V0IHRoZSBMaWJyYXJ5LCBvciBpZiB0aGUgd29yayBpcyBpdHNlbGYgYSBsaWJyYXJ5LiBU aGUKKyAgIHRocmVzaG9sZCBmb3IgdGhpcyB0byBiZSB0cnVlIGlzIG5vdCBwcmVjaXNlbHkgZGVm aW5lZCBieSBsYXcuCisKKyAgIElmIHN1Y2ggYW4gb2JqZWN0IGZpbGUgdXNlcyBvbmx5IG51bWVy aWNhbCBwYXJhbWV0ZXJzLCBkYXRhIHN0cnVjdHVyZQorICAgbGF5b3V0cyBhbmQgYWNjZXNzb3Jz LCBhbmQgc21hbGwgbWFjcm9zIGFuZCBzbWFsbCBpbmxpbmUgZnVuY3Rpb25zICh0ZW4KKyAgIGxp bmVzIG9yIGxlc3MgaW4gbGVuZ3RoKSwgdGhlbiB0aGUgdXNlIG9mIHRoZSBvYmplY3QgZmlsZSBp cworICAgdW5yZXN0cmljdGVkLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgaXMgbGVnYWxseSBh IGRlcml2YXRpdmUKKyAgIHdvcmsuIChFeGVjdXRhYmxlcyBjb250YWluaW5nIHRoaXMgb2JqZWN0 IGNvZGUgcGx1cyBwb3J0aW9ucyBvZiB0aGUKKyAgIExpYnJhcnkgd2lsbCBzdGlsbCBmYWxsIHVu ZGVyIFNlY3Rpb24gNi4pCisKKyAgIE90aGVyd2lzZSwgaWYgdGhlIHdvcmsgaXMgYSBkZXJpdmF0 aXZlIG9mIHRoZSBMaWJyYXJ5LCB5b3UgbWF5CisgICBkaXN0cmlidXRlIHRoZSBvYmplY3QgY29k ZSBmb3IgdGhlIHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb24KKyAgIDYuIEFueSBleGVj dXRhYmxlcyBjb250YWluaW5nIHRoYXQgd29yayBhbHNvIGZhbGwgdW5kZXIgU2VjdGlvbiA2LAor ICAgd2hldGhlciBvciBub3QgdGhleSBhcmUgbGlua2VkIGRpcmVjdGx5IHdpdGggdGhlIExpYnJh cnkgaXRzZWxmLgorCis2LiBBcyBhbiBleGNlcHRpb24gdG8gdGhlIFNlY3Rpb25zIGFib3ZlLCB5 b3UgbWF5IGFsc28gY29tYmluZSBvciBsaW5rIGEKKyAgICJ3b3JrIHRoYXQgdXNlcyB0aGUgTGli cmFyeSIgd2l0aCB0aGUgTGlicmFyeSB0byBwcm9kdWNlIGEgd29yaworICAgY29udGFpbmluZyBw b3J0aW9ucyBvZiB0aGUgTGlicmFyeSwgYW5kIGRpc3RyaWJ1dGUgdGhhdCB3b3JrIHVuZGVyIHRl cm1zCisgICBvZiB5b3VyIGNob2ljZSwgcHJvdmlkZWQgdGhhdCB0aGUgdGVybXMgcGVybWl0IG1v ZGlmaWNhdGlvbiBvZiB0aGUgd29yaworICAgZm9yIHRoZSBjdXN0b21lcidzIG93biB1c2UgYW5k IHJldmVyc2UgZW5naW5lZXJpbmcgZm9yIGRlYnVnZ2luZyBzdWNoCisgICBtb2RpZmljYXRpb25z LgorCisgICBZb3UgbXVzdCBnaXZlIHByb21pbmVudCBub3RpY2Ugd2l0aCBlYWNoIGNvcHkgb2Yg dGhlIHdvcmsgdGhhdCB0aGUKKyAgIExpYnJhcnkgaXMgdXNlZCBpbiBpdCBhbmQgdGhhdCB0aGUg TGlicmFyeSBhbmQgaXRzIHVzZSBhcmUgY292ZXJlZCBieQorICAgdGhpcyBMaWNlbnNlLiBZb3Ug bXVzdCBzdXBwbHkgYSBjb3B5IG9mIHRoaXMgTGljZW5zZS4gSWYgdGhlIHdvcmsgZHVyaW5nCisg ICBleGVjdXRpb24gZGlzcGxheXMgY29weXJpZ2h0IG5vdGljZXMsIHlvdSBtdXN0IGluY2x1ZGUg dGhlIGNvcHlyaWdodAorICAgbm90aWNlIGZvciB0aGUgTGlicmFyeSBhbW9uZyB0aGVtLCBhcyB3 ZWxsIGFzIGEgcmVmZXJlbmNlIGRpcmVjdGluZyB0aGUKKyAgIHVzZXIgdG8gdGhlIGNvcHkgb2Yg dGhpcyBMaWNlbnNlLiBBbHNvLCB5b3UgbXVzdCBkbyBvbmUgb2YgdGhlc2UgdGhpbmdzOgorCisg ICBhKSBBY2NvbXBhbnkgdGhlIHdvcmsgd2l0aCB0aGUgY29tcGxldGUgY29ycmVzcG9uZGluZyBt YWNoaW5lLXJlYWRhYmxlCisgICAgICBzb3VyY2UgY29kZSBmb3IgdGhlIExpYnJhcnkgaW5jbHVk aW5nIHdoYXRldmVyIGNoYW5nZXMgd2VyZSB1c2VkIGluCisgICAgICB0aGUgd29yayAod2hpY2gg bXVzdCBiZSBkaXN0cmlidXRlZCB1bmRlciBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlKTsKKyAgICAg IGFuZCwgaWYgdGhlIHdvcmsgaXMgYW4gZXhlY3V0YWJsZSBsaW5rZWQgd2l0aCB0aGUgTGlicmFy eSwgd2l0aCB0aGUKKyAgICAgIGNvbXBsZXRlIG1hY2hpbmUtcmVhZGFibGUgIndvcmsgdGhhdCB1 c2VzIHRoZSBMaWJyYXJ5IiwgYXMgb2JqZWN0CisgICAgICBjb2RlIGFuZC9vciBzb3VyY2UgY29k ZSwgc28gdGhhdCB0aGUgdXNlciBjYW4gbW9kaWZ5IHRoZSBMaWJyYXJ5IGFuZAorICAgICAgdGhl biByZWxpbmsgdG8gcHJvZHVjZSBhIG1vZGlmaWVkIGV4ZWN1dGFibGUgY29udGFpbmluZyB0aGUg bW9kaWZpZWQKKyAgICAgIExpYnJhcnkuIChJdCBpcyB1bmRlcnN0b29kIHRoYXQgdGhlIHVzZXIg d2hvIGNoYW5nZXMgdGhlIGNvbnRlbnRzIG9mCisgICAgICBkZWZpbml0aW9ucyBmaWxlcyBpbiB0 aGUgTGlicmFyeSB3aWxsIG5vdCBuZWNlc3NhcmlseSBiZSBhYmxlIHRvCisgICAgICByZWNvbXBp bGUgdGhlIGFwcGxpY2F0aW9uIHRvIHVzZSB0aGUgbW9kaWZpZWQgZGVmaW5pdGlvbnMuKQorCisg ICBiKSBVc2UgYSBzdWl0YWJsZSBzaGFyZWQgbGlicmFyeSBtZWNoYW5pc20gZm9yIGxpbmtpbmcg d2l0aCB0aGUKKyAgICAgIExpYnJhcnkuIEEgc3VpdGFibGUgbWVjaGFuaXNtIGlzIG9uZSB0aGF0 ICgxKSB1c2VzIGF0IHJ1biB0aW1lIGEgY29weQorICAgICAgb2YgdGhlIGxpYnJhcnkgYWxyZWFk eSBwcmVzZW50IG9uIHRoZSB1c2VyJ3MgY29tcHV0ZXIgc3lzdGVtLCByYXRoZXIKKyAgICAgIHRo YW4gY29weWluZyBsaWJyYXJ5IGZ1bmN0aW9ucyBpbnRvIHRoZSBleGVjdXRhYmxlLCBhbmQgKDIp IHdpbGwKKyAgICAgIG9wZXJhdGUgcHJvcGVybHkgd2l0aCBhIG1vZGlmaWVkIHZlcnNpb24gb2Yg dGhlIGxpYnJhcnksIGlmIHRoZSB1c2VyCisgICAgICBpbnN0YWxscyBvbmUsIGFzIGxvbmcgYXMg dGhlIG1vZGlmaWVkIHZlcnNpb24gaXMgaW50ZXJmYWNlLWNvbXBhdGlibGUKKyAgICAgIHdpdGgg dGhlIHZlcnNpb24gdGhhdCB0aGUgd29yayB3YXMgbWFkZSB3aXRoLgorCisgICBjKSBBY2NvbXBh bnkgdGhlIHdvcmsgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJl ZQorICAgICAgeWVhcnMsIHRvIGdpdmUgdGhlIHNhbWUgdXNlciB0aGUgbWF0ZXJpYWxzIHNwZWNp ZmllZCBpbiBTdWJzZWN0aW9uCisgICAgICA2YSwgYWJvdmUsIGZvciBhIGNoYXJnZSBubyBtb3Jl IHRoYW4gdGhlIGNvc3Qgb2YgcGVyZm9ybWluZyB0aGlzCisgICAgICBkaXN0cmlidXRpb24uCisK KyAgIGQpIElmIGRpc3RyaWJ1dGlvbiBvZiB0aGUgd29yayBpcyBtYWRlIGJ5IG9mZmVyaW5nIGFj Y2VzcyB0byBjb3B5IGZyb20gYQorICAgICAgZGVzaWduYXRlZCBwbGFjZSwgb2ZmZXIgZXF1aXZh bGVudCBhY2Nlc3MgdG8gY29weSB0aGUgYWJvdmUgc3BlY2lmaWVkCisgICAgICBtYXRlcmlhbHMg ZnJvbSB0aGUgc2FtZSBwbGFjZS4KKworICAgZSkgVmVyaWZ5IHRoYXQgdGhlIHVzZXIgaGFzIGFs cmVhZHkgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZXNlIG1hdGVyaWFscworICAgICAgb3IgdGhhdCB5 b3UgaGF2ZSBhbHJlYWR5IHNlbnQgdGhpcyB1c2VyIGEgY29weS4KKworICAgRm9yIGFuIGV4ZWN1 dGFibGUsIHRoZSByZXF1aXJlZCBmb3JtIG9mIHRoZSAid29yayB0aGF0IHVzZXMgdGhlIExpYnJh cnkiCisgICBtdXN0IGluY2x1ZGUgYW55IGRhdGEgYW5kIHV0aWxpdHkgcHJvZ3JhbXMgbmVlZGVk IGZvciByZXByb2R1Y2luZyB0aGUKKyAgIGV4ZWN1dGFibGUgZnJvbSBpdC4gSG93ZXZlciwgYXMg YSBzcGVjaWFsIGV4Y2VwdGlvbiwgdGhlIG1hdGVyaWFscyB0byBiZQorICAgZGlzdHJpYnV0ZWQg bmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IGlzIG5vcm1hbGx5IGRpc3RyaWJ1dGVkIChp bgorICAgZWl0aGVyIHNvdXJjZSBvciBiaW5hcnkgZm9ybSkgd2l0aCB0aGUgbWFqb3IgY29tcG9u ZW50cyAoY29tcGlsZXIsCisgICBrZXJuZWwsIGFuZCBzbyBvbikgb2YgdGhlIG9wZXJhdGluZyBz eXN0ZW0gb24gd2hpY2ggdGhlIGV4ZWN1dGFibGUgcnVucywKKyAgIHVubGVzcyB0aGF0IGNvbXBv bmVudCBpdHNlbGYgYWNjb21wYW5pZXMgdGhlIGV4ZWN1dGFibGUuCisKKyAgIEl0IG1heSBoYXBw ZW4gdGhhdCB0aGlzIHJlcXVpcmVtZW50IGNvbnRyYWRpY3RzIHRoZSBsaWNlbnNlIHJlc3RyaWN0 aW9ucworICAgb2Ygb3RoZXIgcHJvcHJpZXRhcnkgbGlicmFyaWVzIHRoYXQgZG8gbm90IG5vcm1h bGx5IGFjY29tcGFueSB0aGUKKyAgIG9wZXJhdGluZyBzeXN0ZW0uIFN1Y2ggYSBjb250cmFkaWN0 aW9uIG1lYW5zIHlvdSBjYW5ub3QgdXNlIGJvdGggdGhlbQorICAgYW5kIHRoZSBMaWJyYXJ5IHRv Z2V0aGVyIGluIGFuIGV4ZWN1dGFibGUgdGhhdCB5b3UgZGlzdHJpYnV0ZS4KKworNy4gWW91IG1h eSBwbGFjZSBsaWJyYXJ5IGZhY2lsaXRpZXMgdGhhdCBhcmUgYSB3b3JrIGJhc2VkIG9uIHRoZSBM aWJyYXJ5CisgICBzaWRlLWJ5LXNpZGUgaW4gYSBzaW5nbGUgbGlicmFyeSB0b2dldGhlciB3aXRo IG90aGVyIGxpYnJhcnkgZmFjaWxpdGllcworICAgbm90IGNvdmVyZWQgYnkgdGhpcyBMaWNlbnNl LCBhbmQgZGlzdHJpYnV0ZSBzdWNoIGEgY29tYmluZWQgbGlicmFyeSwKKyAgIHByb3ZpZGVkIHRo YXQgdGhlIHNlcGFyYXRlIGRpc3RyaWJ1dGlvbiBvZiB0aGUgd29yayBiYXNlZCBvbiB0aGUgTGli cmFyeQorICAgYW5kIG9mIHRoZSBvdGhlciBsaWJyYXJ5IGZhY2lsaXRpZXMgaXMgb3RoZXJ3aXNl IHBlcm1pdHRlZCwgYW5kIHByb3ZpZGVkCisgICB0aGF0IHlvdSBkbyB0aGVzZSB0d28gdGhpbmdz OgorCisgICBhKSBBY2NvbXBhbnkgdGhlIGNvbWJpbmVkIGxpYnJhcnkgd2l0aCBhIGNvcHkgb2Yg dGhlIHNhbWUgd29yayBiYXNlZCBvbgorICAgICAgdGhlIExpYnJhcnksIHVuY29tYmluZWQgd2l0 aCBhbnkgb3RoZXIgbGlicmFyeSBmYWNpbGl0aWVzLiBUaGlzIG11c3QKKyAgICAgIGJlIGRpc3Ry aWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgU2VjdGlvbnMgYWJvdmUuCisKKyAgIGIpIEdp dmUgcHJvbWluZW50IG5vdGljZSB3aXRoIHRoZSBjb21iaW5lZCBsaWJyYXJ5IG9mIHRoZSBmYWN0 IHRoYXQgcGFydAorICAgICAgb2YgaXQgaXMgYSB3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5LCBh bmQgZXhwbGFpbmluZyB3aGVyZSB0byBmaW5kCisgICAgICB0aGUgYWNjb21wYW55aW5nIHVuY29t YmluZWQgZm9ybSBvZiB0aGUgc2FtZSB3b3JrLgorCis4LiBZb3UgbWF5IG5vdCBjb3B5LCBtb2Rp ZnksIHN1YmxpY2Vuc2UsIGxpbmsgd2l0aCwgb3IgZGlzdHJpYnV0ZSB0aGUKKyAgIExpYnJhcnkg ZXhjZXB0IGFzIGV4cHJlc3NseSBwcm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2UuIEFueSBhdHRl bXB0CisgICBvdGhlcndpc2UgdG8gY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBsaW5rIHdpdGgs IG9yIGRpc3RyaWJ1dGUgdGhlCisgICBMaWJyYXJ5IGlzIHZvaWQsIGFuZCB3aWxsIGF1dG9tYXRp Y2FsbHkgdGVybWluYXRlIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMKKyAgIExpY2Vuc2UuIEhvd2V2 ZXIsIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzLCBvciByaWdodHMsIGZyb20geW91 CisgICB1bmRlciB0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcyB0ZXJt aW5hdGVkIHNvIGxvbmcgYXMKKyAgIHN1Y2ggcGFydGllcyByZW1haW4gaW4gZnVsbCBjb21wbGlh bmNlLgorCis5LiBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBhY2NlcHQgdGhpcyBMaWNlbnNlLCBz aW5jZSB5b3UgaGF2ZSBub3Qgc2lnbmVkCisgICBpdC4gSG93ZXZlciwgbm90aGluZyBlbHNlIGdy YW50cyB5b3UgcGVybWlzc2lvbiB0byBtb2RpZnkgb3IgZGlzdHJpYnV0ZQorICAgdGhlIExpYnJh cnkgb3IgaXRzIGRlcml2YXRpdmUgd29ya3MuIFRoZXNlIGFjdGlvbnMgYXJlIHByb2hpYml0ZWQg YnkgbGF3CisgICBpZiB5b3UgZG8gbm90IGFjY2VwdCB0aGlzIExpY2Vuc2UuIFRoZXJlZm9yZSwg YnkgbW9kaWZ5aW5nIG9yCisgICBkaXN0cmlidXRpbmcgdGhlIExpYnJhcnkgKG9yIGFueSB3b3Jr IGJhc2VkIG9uIHRoZSBMaWJyYXJ5KSwgeW91CisgICBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ug b2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLCBhbmQgYWxsIGl0cyB0ZXJtcyBhbmQKKyAgIGNvbmRp dGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGluZyBvciBtb2RpZnlpbmcgdGhlIExpYnJhcnkg b3Igd29ya3MKKyAgIGJhc2VkIG9uIGl0LgorCisxMC4gRWFjaCB0aW1lIHlvdSByZWRpc3RyaWJ1 dGUgdGhlIExpYnJhcnkgKG9yIGFueSB3b3JrIGJhc2VkIG9uIHRoZQorICAgIExpYnJhcnkpLCB0 aGUgcmVjaXBpZW50IGF1dG9tYXRpY2FsbHkgcmVjZWl2ZXMgYSBsaWNlbnNlIGZyb20gdGhlCisg ICAgb3JpZ2luYWwgbGljZW5zb3IgdG8gY29weSwgZGlzdHJpYnV0ZSwgbGluayB3aXRoIG9yIG1v ZGlmeSB0aGUgTGlicmFyeQorICAgIHN1YmplY3QgdG8gdGhlc2UgdGVybXMgYW5kIGNvbmRpdGlv bnMuIFlvdSBtYXkgbm90IGltcG9zZSBhbnkgZnVydGhlcgorICAgIHJlc3RyaWN0aW9ucyBvbiB0 aGUgcmVjaXBpZW50cycgZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cyBncmFudGVkCisgICAgaGVyZWlu LiBZb3UgYXJlIG5vdCByZXNwb25zaWJsZSBmb3IgZW5mb3JjaW5nIGNvbXBsaWFuY2UgYnkgdGhp cmQKKyAgICBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgorCisxMS4gSWYsIGFzIGEgY29uc2Vx dWVuY2Ugb2YgYSBjb3VydCBqdWRnbWVudCBvciBhbGxlZ2F0aW9uIG9mIHBhdGVudAorICAgIGlu ZnJpbmdlbWVudCBvciBmb3IgYW55IG90aGVyIHJlYXNvbiAobm90IGxpbWl0ZWQgdG8gcGF0ZW50 IGlzc3VlcyksCisgICAgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkg Y291cnQgb3JkZXIsIGFncmVlbWVudCBvcgorICAgIG90aGVyd2lzZSkgdGhhdCBjb250cmFkaWN0 IHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgdGhleSBkbyBub3QKKyAgICBleGN1c2Ug eW91IGZyb20gdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLiBJZiB5b3UgY2Fubm90Cisg ICAgZGlzdHJpYnV0ZSBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdh dGlvbnMgdW5kZXIgdGhpcworICAgIExpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2Js aWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UKKyAgICBtYXkgbm90IGRpc3RyaWJ1 dGUgdGhlIExpYnJhcnkgYXQgYWxsLiBGb3IgZXhhbXBsZSwgaWYgYSBwYXRlbnQgbGljZW5zZQor ICAgIHdvdWxkIG5vdCBwZXJtaXQgcm95YWx0eS1mcmVlIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBM aWJyYXJ5IGJ5IGFsbAorICAgIHRob3NlIHdobyByZWNlaXZlIGNvcGllcyBkaXJlY3RseSBvciBp bmRpcmVjdGx5IHRocm91Z2ggeW91LCB0aGVuIHRoZQorICAgIG9ubHkgd2F5IHlvdSBjb3VsZCBz YXRpc2Z5IGJvdGggaXQgYW5kIHRoaXMgTGljZW5zZSB3b3VsZCBiZSB0byByZWZyYWluCisgICAg ZW50aXJlbHkgZnJvbSBkaXN0cmlidXRpb24gb2YgdGhlIExpYnJhcnkuCisKKyAgICBJZiBhbnkg cG9ydGlvbiBvZiB0aGlzIHNlY3Rpb24gaXMgaGVsZCBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUg dW5kZXIKKyAgICBhbnkgcGFydGljdWxhciBjaXJjdW1zdGFuY2UsIHRoZSBiYWxhbmNlIG9mIHRo ZSBzZWN0aW9uIGlzIGludGVuZGVkIHRvCisgICAgYXBwbHksIGFuZCB0aGUgc2VjdGlvbiBhcyBh IHdob2xlIGlzIGludGVuZGVkIHRvIGFwcGx5IGluIG90aGVyCisgICAgY2lyY3Vtc3RhbmNlcy4K KworICAgIEl0IGlzIG5vdCB0aGUgcHVycG9zZSBvZiB0aGlzIHNlY3Rpb24gdG8gaW5kdWNlIHlv dSB0byBpbmZyaW5nZSBhbnkKKyAgICBwYXRlbnRzIG9yIG90aGVyIHByb3BlcnR5IHJpZ2h0IGNs YWltcyBvciB0byBjb250ZXN0IHZhbGlkaXR5IG9mIGFueQorICAgIHN1Y2ggY2xhaW1zOyB0aGlz IHNlY3Rpb24gaGFzIHRoZSBzb2xlIHB1cnBvc2Ugb2YgcHJvdGVjdGluZyB0aGUKKyAgICBpbnRl Z3JpdHkgb2YgdGhlIGZyZWUgc29mdHdhcmUgZGlzdHJpYnV0aW9uIHN5c3RlbSB3aGljaCBpcyBp bXBsZW1lbnRlZAorICAgIGJ5IHB1YmxpYyBsaWNlbnNlIHByYWN0aWNlcy4gTWFueSBwZW9wbGUg aGF2ZSBtYWRlIGdlbmVyb3VzCisgICAgY29udHJpYnV0aW9ucyB0byB0aGUgd2lkZSByYW5nZSBv ZiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB0aHJvdWdoIHRoYXQKKyAgICBzeXN0ZW0gaW4gcmVsaWFu Y2Ugb24gY29uc2lzdGVudCBhcHBsaWNhdGlvbiBvZiB0aGF0IHN5c3RlbTsgaXQgaXMgdXAKKyAg ICB0byB0aGUgYXV0aG9yL2Rvbm9yIHRvIGRlY2lkZSBpZiBoZSBvciBzaGUgaXMgd2lsbGluZyB0 byBkaXN0cmlidXRlCisgICAgc29mdHdhcmUgdGhyb3VnaCBhbnkgb3RoZXIgc3lzdGVtIGFuZCBh IGxpY2Vuc2VlIGNhbm5vdCBpbXBvc2UgdGhhdAorICAgIGNob2ljZS4KKworICAgIFRoaXMgc2Vj dGlvbiBpcyBpbnRlbmRlZCB0byBtYWtlIHRob3JvdWdobHkgY2xlYXIgd2hhdCBpcyBiZWxpZXZl ZCB0bworICAgIGJlIGEgY29uc2VxdWVuY2Ugb2YgdGhlIHJlc3Qgb2YgdGhpcyBMaWNlbnNlLgor CisxMi4gSWYgdGhlIGRpc3RyaWJ1dGlvbiBhbmQvb3IgdXNlIG9mIHRoZSBMaWJyYXJ5IGlzIHJl c3RyaWN0ZWQgaW4gY2VydGFpbgorICAgIGNvdW50cmllcyBlaXRoZXIgYnkgcGF0ZW50cyBvciBi eSBjb3B5cmlnaHRlZCBpbnRlcmZhY2VzLCB0aGUgb3JpZ2luYWwKKyAgICBjb3B5cmlnaHQgaG9s ZGVyIHdobyBwbGFjZXMgdGhlIExpYnJhcnkgdW5kZXIgdGhpcyBMaWNlbnNlIG1heSBhZGQgYW4K KyAgICBleHBsaWNpdCBnZW9ncmFwaGljYWwgZGlzdHJpYnV0aW9uIGxpbWl0YXRpb24gZXhjbHVk aW5nIHRob3NlCisgICAgY291bnRyaWVzLCBzbyB0aGF0IGRpc3RyaWJ1dGlvbiBpcyBwZXJtaXR0 ZWQgb25seSBpbiBvciBhbW9uZyBjb3VudHJpZXMKKyAgICBub3QgdGh1cyBleGNsdWRlZC4gSW4g c3VjaCBjYXNlLCB0aGlzIExpY2Vuc2UgaW5jb3Jwb3JhdGVzIHRoZQorICAgIGxpbWl0YXRpb24g YXMgaWYgd3JpdHRlbiBpbiB0aGUgYm9keSBvZiB0aGlzIExpY2Vuc2UuCisKKzEzLiBUaGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJz aW9ucyBvZgorICAgIHRoZSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmcm9tIHRpbWUg dG8gdGltZS4gU3VjaCBuZXcgdmVyc2lvbnMKKyAgICB3aWxsIGJlIHNpbWlsYXIgaW4gc3Bpcml0 IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluCisgICAgZGV0YWlsIHRv IGFkZHJlc3MgbmV3IHByb2JsZW1zIG9yIGNvbmNlcm5zLgorCisgICAgRWFjaCB2ZXJzaW9uIGlz IGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuIElmIHRoZSBMaWJyYXJ5Cisg ICAgc3BlY2lmaWVzIGEgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBMaWNlbnNlIHdoaWNoIGFwcGxp ZXMgdG8gaXQgYW5kICJhbnkKKyAgICBsYXRlciB2ZXJzaW9uIiwgeW91IGhhdmUgdGhlIG9wdGlv biBvZiBmb2xsb3dpbmcgdGhlIHRlcm1zIGFuZAorICAgIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRo YXQgdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkKKyAgICB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiBJZiB0aGUgTGlicmFyeSBkb2VzIG5vdCBzcGVjaWZ5 IGEgbGljZW5zZQorICAgIHZlcnNpb24gbnVtYmVyLCB5b3UgbWF5IGNob29zZSBhbnkgdmVyc2lv biBldmVyIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQorICAgIFNvZnR3YXJlIEZvdW5kYXRpb24uCisK KzE0LiBJZiB5b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSBwYXJ0cyBvZiB0aGUgTGlicmFyeSBpbnRv IG90aGVyIGZyZWUKKyAgICBwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBh cmUgaW5jb21wYXRpYmxlIHdpdGggdGhlc2UsCisgICAgd3JpdGUgdG8gdGhlIGF1dGhvciB0byBh c2sgZm9yIHBlcm1pc3Npb24uIEZvciBzb2Z0d2FyZSB3aGljaCBpcworICAgIGNvcHlyaWdodGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3 YXJlCisgICAgRm91bmRhdGlvbjsgd2Ugc29tZXRpbWVzIG1ha2UgZXhjZXB0aW9ucyBmb3IgdGhp cy4gT3VyIGRlY2lzaW9uIHdpbGwgYmUKKyAgICBndWlkZWQgYnkgdGhlIHR3byBnb2FscyBvZiBw cmVzZXJ2aW5nIHRoZSBmcmVlIHN0YXR1cyBvZiBhbGwKKyAgICBkZXJpdmF0aXZlcyBvZiBvdXIg ZnJlZSBzb2Z0d2FyZSBhbmQgb2YgcHJvbW90aW5nIHRoZSBzaGFyaW5nIGFuZCByZXVzZQorICAg IG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KKworTk8gV0FSUkFOVFkKKworMTUuIEJFQ0FVU0UgVEhF IExJQlJBUlkgSVMgTElDRU5TRUQgRlJFRSBPRiBDSEFSR0UsIFRIRVJFIElTIE5PIFdBUlJBTlRZ CisgICAgRk9SIFRIRSBMSUJSQVJZLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWSBBUFBMSUNB QkxFIExBVy4gRVhDRVBUIFdIRU4KKyAgICBPVEhFUldJU0UgU1RBVEVEIElOIFdSSVRJTkcgVEhF IENPUFlSSUdIVCBIT0xERVJTIEFORC9PUiBPVEhFUiBQQVJUSUVTCisgICAgUFJPVklERSBUSEUg TElCUkFSWSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVJVEhFUgorICAg IEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF IElNUExJRUQKKyAgICBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFRIRQorICAgIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBR VUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgTElCUkFSWSBJUyBXSVRICisgICAgWU9VLiBT SE9VTEQgVEhFIExJQlJBUlkgUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FIFRIRSBDT1NUIE9G IEFMTAorICAgIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgorCisx Ni4gSU4gTk8gRVZFTlQgVU5MRVNTIFJFUVVJUkVEIEJZIEFQUExJQ0FCTEUgTEFXIE9SIEFHUkVF RCBUTyBJTiBXUklUSU5HCisgICAgV0lMTCBBTlkgQ09QWVJJR0hUIEhPTERFUiwgT1IgQU5ZIE9U SEVSIFBBUlRZIFdITyBNQVkgTU9ESUZZIEFORC9PUgorICAgIFJFRElTVFJJQlVURSBUSEUgTElC UkFSWSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UgRk9SCisgICAgREFNQUdF UywgSU5DTFVESU5HIEFOWSBHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVF TlRJQUwKKyAgICBEQU1BR0VTIEFSSVNJTkcgT1VUIE9GIFRIRSBVU0UgT1IgSU5BQklMSVRZIFRP IFVTRSBUSEUgTElCUkFSWQorICAgIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIExPU1Mg T0YgREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVECisgICAgSU5BQ0NVUkFURSBPUiBMT1NTRVMg U1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRCBQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRgorICAgIFRI RSBMSUJSQVJZIFRPIE9QRVJBVEUgV0lUSCBBTlkgT1RIRVIgU09GVFdBUkUpLCBFVkVOIElGIFNV Q0ggSE9MREVSIE9SCisgICAgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUgUE9T U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgorCitFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMK KworSG93IHRvIEFwcGx5IFRoZXNlIFRlcm1zIHRvIFlvdXIgTmV3IExpYnJhcmllcworCitJZiB5 b3UgZGV2ZWxvcCBhIG5ldyBsaWJyYXJ5LCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdy ZWF0ZXN0Citwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgd2UgcmVjb21tZW5kIG1ha2luZyBp dCBmcmVlIHNvZnR3YXJlIHRoYXQKK2V2ZXJ5b25lIGNhbiByZWRpc3RyaWJ1dGUgYW5kIGNoYW5n ZS4gWW91IGNhbiBkbyBzbyBieSBwZXJtaXR0aW5nCityZWRpc3RyaWJ1dGlvbiB1bmRlciB0aGVz ZSB0ZXJtcyAob3IsIGFsdGVybmF0aXZlbHksIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKK29yZGlu YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UpLgorCitUbyBhcHBseSB0aGVzZSB0ZXJtcywgYXR0 YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgbGlicmFyeS4gSXQgaXMKK3NhZmVzdCB0 byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVm ZmVjdGl2ZWx5Citjb252ZXkgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmls ZSBzaG91bGQgaGF2ZSBhdCBsZWFzdCB0aGUKKyJjb3B5cmlnaHQiIGxpbmUgYW5kIGEgcG9pbnRl ciB0byB3aGVyZSB0aGUgZnVsbCBub3RpY2UgaXMgZm91bmQuCisKK29uZSBsaW5lIHRvIGdpdmUg dGhlIGxpYnJhcnkncyBuYW1lIGFuZCBhbiBpZGVhIG9mIHdoYXQgaXQgZG9lcy4KK0NvcHlyaWdo dCAoQykgeWVhciBuYW1lIG9mIGF1dGhvcgorCitUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAordW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5Cit0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEgb2Yg dGhlIExpY2Vuc2UsIG9yIChhdAoreW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCitU aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwgYnV0IFdJVEhPVVQKK0FOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvcgorRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuIFNlZSB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCitmb3Ig bW9yZSBkZXRhaWxzLgorCitZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKK2Fsb25nIHdpdGggdGhpcyBsaWJyYXJ5 OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCitJbmMuLCA1 MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNB IEFsc28gYWRkCitpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25p YyBhbmQgcGFwZXIgbWFpbC4KKworWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChp ZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKK3NjaG9vbCwgaWYgYW55LCB0byBz aWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIGxpYnJhcnksIGlmCituZWNlc3Nh cnkuIEhlcmUgaXMgYSBzYW1wbGU7IGFsdGVyIHRoZSBuYW1lczoKKworWW95b2R5bmUsIEluYy4s IGhlcmVieSBkaXNjbGFpbXMgYWxsIGNvcHlyaWdodCBpbnRlcmVzdCBpbgordGhlIGxpYnJhcnkg YEZyb2InIChhIGxpYnJhcnkgZm9yIHR3ZWFraW5nIGtub2JzKSB3cml0dGVuCitieSBKYW1lcyBS YW5kb20gSGFja2VyLgorCitzaWduYXR1cmUgb2YgVHkgQ29vbiwgMSBBcHJpbCAxOTkwCitUeSBD b29uLCBQcmVzaWRlbnQgb2YgVmljZQorVGhhdCdzIGFsbCB0aGVyZSBpcyB0byBpdCEKZGlmZiAt LWdpdCBhL0xJQ0VOU0VTL3ByZWZlcnJlZC9MR1BMLTIuMS1vci1sYXRlciBiL0xJQ0VOU0VTL3By ZWZlcnJlZC9MR1BMLTIuMS1vci1sYXRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDRiYjE1NmU3N2Q1Li4wMDAwMDAwMDAwMDAKLS0tIGEvTElDRU5TRVMvcHJlZmVycmVkL0xHUEwt Mi4xLW9yLWxhdGVyCisrKyAvZGV2L251bGwKQEAgLTEsNDY4ICswLDAgQEAKLUdOVSBMRVNTRVIg R0VORVJBTCBQVUJMSUMgTElDRU5TRQotCi1WZXJzaW9uIDIuMSwgRmVicnVhcnkgMTk5OQotCi1D b3B5cmlnaHQgKEMpIDE5OTEsIDE5OTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0K LTUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBV U0EKLQotRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0 aW0gY29waWVzIG9mIHRoaXMgbGljZW5zZQotZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBu b3QgYWxsb3dlZC4KLQotW1RoaXMgaXMgdGhlIGZpcnN0IHJlbGVhc2VkIHZlcnNpb24gb2YgdGhl IExlc3NlciBHUEwuIEl0IGFsc28gY291bnRzIGFzIHRoZQotc3VjY2Vzc29yIG9mIHRoZSBHTlUg TGlicmFyeSBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLCBoZW5jZSB0aGUgdmVyc2lvbgotbnVt YmVyIDIuMS5dCi0KLVByZWFtYmxlCi0KLVRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBh cmUgZGVzaWduZWQgdG8gdGFrZSBhd2F5IHlvdXIgZnJlZWRvbSB0byBzaGFyZQotYW5kIGNoYW5n ZSBpdC4gQnkgY29udHJhc3QsIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGlu dGVuZGVkIHRvCi1ndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgZnJl ZSBzb2Z0d2FyZS0tdG8gbWFrZSBzdXJlIHRoZQotc29mdHdhcmUgaXMgZnJlZSBmb3IgYWxsIGl0 cyB1c2Vycy4KLQotVGhpcyBsaWNlbnNlLCB0aGUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UsIGFwcGxpZXMgdG8gc29tZSBzcGVjaWFsbHkKLWRlc2lnbmF0ZWQgc29mdHdhcmUgcGFja2Fn ZXMtLXR5cGljYWxseSBsaWJyYXJpZXMtLW9mIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24K LWFuZCBvdGhlciBhdXRob3JzIHdobyBkZWNpZGUgdG8gdXNlIGl0LiBZb3UgY2FuIHVzZSBpdCB0 b28sIGJ1dCB3ZSBzdWdnZXN0Ci15b3UgZmlyc3QgdGhpbmsgY2FyZWZ1bGx5IGFib3V0IHdoZXRo ZXIgdGhpcyBsaWNlbnNlIG9yIHRoZSBvcmRpbmFyeSBHZW5lcmFsCi1QdWJsaWMgTGljZW5zZSBp cyB0aGUgYmV0dGVyIHN0cmF0ZWd5IHRvIHVzZSBpbiBhbnkgcGFydGljdWxhciBjYXNlLCBiYXNl ZAotb24gdGhlIGV4cGxhbmF0aW9ucyBiZWxvdy4KLQotV2hlbiB3ZSBzcGVhayBvZiBmcmVlIHNv ZnR3YXJlLCB3ZSBhcmUgcmVmZXJyaW5nIHRvIGZyZWVkb20gb2YgdXNlLCBub3QgcHJpY2UuCi1P dXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0 IHlvdSBoYXZlIHRoZSBmcmVlZG9tCi10byBkaXN0cmlidXRlIGNvcGllcyBvZiBmcmVlIHNvZnR3 YXJlIChhbmQgY2hhcmdlIGZvciB0aGlzIHNlcnZpY2UgaWYgeW91Ci13aXNoKTsgdGhhdCB5b3Ug cmVjZWl2ZSBzb3VyY2UgY29kZSBvciBjYW4gZ2V0IGl0IGlmIHlvdSB3YW50IGl0OyB0aGF0IHlv dQotY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgYW5kIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3IGZy ZWUgcHJvZ3JhbXM7IGFuZCB0aGF0Ci15b3UgYXJlIGluZm9ybWVkIHRoYXQgeW91IGNhbiBkbyB0 aGVzZSB0aGluZ3MuCi0KLVRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSBy ZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQgZGlzdHJpYnV0b3JzCi10byBkZW55IHlvdSB0aGVzZSBy aWdodHMgb3IgdG8gYXNrIHlvdSB0byBzdXJyZW5kZXIgdGhlc2UgcmlnaHRzLiBUaGVzZSByZXN0 cmljdGlvbnMKLXRyYW5zbGF0ZSB0byBjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMgZm9yIHlvdSBp ZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YKLXRoZSBsaWJyYXJ5IG9yIGlmIHlvdSBtb2RpZnkg aXQuCi0KLUZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIGxpYnJh cnksIHdoZXRoZXIgZ3JhdGlzIG9yIGZvcgotYSBmZWUsIHlvdSBtdXN0IGdpdmUgdGhlIHJlY2lw aWVudHMgYWxsIHRoZSByaWdodHMgdGhhdCB3ZSBnYXZlIHlvdS4gWW91IG11c3QKLW1ha2Ugc3Vy ZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZSBvciBjYW4gZ2V0IHRoZSBzb3VyY2UgY29kZS4gSWYg eW91IGxpbmsKLW90aGVyIGNvZGUgd2l0aCB0aGUgbGlicmFyeSwgeW91IG11c3QgcHJvdmlkZSBj b21wbGV0ZSBvYmplY3QgZmlsZXMgdG8gdGhlCi1yZWNpcGllbnRzLCBzbyB0aGF0IHRoZXkgY2Fu IHJlbGluayB0aGVtIHdpdGggdGhlIGxpYnJhcnkgYWZ0ZXIgbWFraW5nIGNoYW5nZXMKLXRvIHRo ZSBsaWJyYXJ5IGFuZCByZWNvbXBpbGluZyBpdC4gQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVz ZSB0ZXJtcyBzbyB0aGV5Ci1rbm93IHRoZWlyIHJpZ2h0cy4KLQotV2UgcHJvdGVjdCB5b3VyIHJp Z2h0cyB3aXRoIGEgdHdvLXN0ZXAgbWV0aG9kOiAoMSkgd2UgY29weXJpZ2h0IHRoZSBsaWJyYXJ5 LAotYW5kICgyKSB3ZSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlLCB3aGljaCBnaXZlcyB5b3UgbGVn YWwgcGVybWlzc2lvbiB0byBjb3B5LAotZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoZSBsaWJy YXJ5LgotCi1UbyBwcm90ZWN0IGVhY2ggZGlzdHJpYnV0b3IsIHdlIHdhbnQgdG8gbWFrZSBpdCB2 ZXJ5IGNsZWFyIHRoYXQgdGhlcmUgaXMgbm8KLXdhcnJhbnR5IGZvciB0aGUgZnJlZSBsaWJyYXJ5 LiBBbHNvLCBpZiB0aGUgbGlicmFyeSBpcyBtb2RpZmllZCBieSBzb21lb25lCi1lbHNlIGFuZCBw YXNzZWQgb24sIHRoZSByZWNpcGllbnRzIHNob3VsZCBrbm93IHRoYXQgd2hhdCB0aGV5IGhhdmUg aXMgbm90Ci10aGUgb3JpZ2luYWwgdmVyc2lvbiwgc28gdGhhdCB0aGUgb3JpZ2luYWwgYXV0aG9y J3MgcmVwdXRhdGlvbiB3aWxsIG5vdCBiZQotYWZmZWN0ZWQgYnkgcHJvYmxlbXMgdGhhdCBtaWdo dCBiZSBpbnRyb2R1Y2VkIGJ5IG90aGVycy4KLQotRmluYWxseSwgc29mdHdhcmUgcGF0ZW50cyBw b3NlIGEgY29uc3RhbnQgdGhyZWF0IHRvIHRoZSBleGlzdGVuY2Ugb2YgYW55IGZyZWUKLXByb2dy YW0uIFdlIHdpc2ggdG8gbWFrZSBzdXJlIHRoYXQgYSBjb21wYW55IGNhbm5vdCBlZmZlY3RpdmVs eSByZXN0cmljdCB0aGUKLXVzZXJzIG9mIGEgZnJlZSBwcm9ncmFtIGJ5IG9idGFpbmluZyBhIHJl c3RyaWN0aXZlIGxpY2Vuc2UgZnJvbSBhIHBhdGVudCBob2xkZXIuCi1UaGVyZWZvcmUsIHdlIGlu c2lzdCB0aGF0IGFueSBwYXRlbnQgbGljZW5zZSBvYnRhaW5lZCBmb3IgYSB2ZXJzaW9uIG9mIHRo ZQotbGlicmFyeSBtdXN0IGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgZnVsbCBmcmVlZG9tIG9mIHVz ZSBzcGVjaWZpZWQgaW4gdGhpcwotbGljZW5zZS4KLQotTW9zdCBHTlUgc29mdHdhcmUsIGluY2x1 ZGluZyBzb21lIGxpYnJhcmllcywgaXMgY292ZXJlZCBieSB0aGUgb3JkaW5hcnkgR05VCi1HZW5l cmFsIFB1YmxpYyBMaWNlbnNlLiBUaGlzIGxpY2Vuc2UsIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UsCi1hcHBsaWVzIHRvIGNlcnRhaW4gZGVzaWduYXRlZCBsaWJyYXJpZXMs IGFuZCBpcyBxdWl0ZSBkaWZmZXJlbnQgZnJvbSB0aGUgb3JkaW5hcnkKLUdlbmVyYWwgUHVibGlj IExpY2Vuc2UuIFdlIHVzZSB0aGlzIGxpY2Vuc2UgZm9yIGNlcnRhaW4gbGlicmFyaWVzIGluIG9y ZGVyCi10byBwZXJtaXQgbGlua2luZyB0aG9zZSBsaWJyYXJpZXMgaW50byBub24tZnJlZSBwcm9n cmFtcy4KLQotV2hlbiBhIHByb2dyYW0gaXMgbGlua2VkIHdpdGggYSBsaWJyYXJ5LCB3aGV0aGVy IHN0YXRpY2FsbHkgb3IgdXNpbmcgYSBzaGFyZWQKLWxpYnJhcnksIHRoZSBjb21iaW5hdGlvbiBv ZiB0aGUgdHdvIGlzIGxlZ2FsbHkgc3BlYWtpbmcgYSBjb21iaW5lZCB3b3JrLCBhCi1kZXJpdmF0 aXZlIG9mIHRoZSBvcmlnaW5hbCBsaWJyYXJ5LiBUaGUgb3JkaW5hcnkgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSB0aGVyZWZvcmUKLXBlcm1pdHMgc3VjaCBsaW5raW5nIG9ubHkgaWYgdGhlIGVudGly ZSBjb21iaW5hdGlvbiBmaXRzIGl0cyBjcml0ZXJpYSBvZiBmcmVlZG9tLgotVGhlIExlc3NlciBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHBlcm1pdHMgbW9yZSBsYXggY3JpdGVyaWEgZm9yIGxpbmtp bmcgb3RoZXIKLWNvZGUgd2l0aCB0aGUgbGlicmFyeS4KLQotV2UgY2FsbCB0aGlzIGxpY2Vuc2Ug dGhlICJMZXNzZXIiIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYmVjYXVzZSBpdCBkb2VzIExlc3MK LXRvIHByb3RlY3QgdGhlIHVzZXIncyBmcmVlZG9tIHRoYW4gdGhlIG9yZGluYXJ5IEdlbmVyYWwg UHVibGljIExpY2Vuc2UuIEl0Ci1hbHNvIHByb3ZpZGVzIG90aGVyIGZyZWUgc29mdHdhcmUgZGV2 ZWxvcGVycyBMZXNzIG9mIGFuIGFkdmFudGFnZSBvdmVyIGNvbXBldGluZwotbm9uLWZyZWUgcHJv Z3JhbXMuIFRoZXNlIGRpc2FkdmFudGFnZXMgYXJlIHRoZSByZWFzb24gd2UgdXNlIHRoZSBvcmRp bmFyeQotR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbWFueSBsaWJyYXJpZXMuIEhvd2V2ZXIs IHRoZSBMZXNzZXIgbGljZW5zZSBwcm92aWRlcwotYWR2YW50YWdlcyBpbiBjZXJ0YWluIHNwZWNp YWwgY2lyY3Vtc3RhbmNlcy4KLQotRm9yIGV4YW1wbGUsIG9uIHJhcmUgb2NjYXNpb25zLCB0aGVy ZSBtYXkgYmUgYSBzcGVjaWFsIG5lZWQgdG8gZW5jb3VyYWdlIHRoZQotd2lkZXN0IHBvc3NpYmxl IHVzZSBvZiBhIGNlcnRhaW4gbGlicmFyeSwgc28gdGhhdCBpdCBiZWNvbWVzIGEgZGUtZmFjdG8g c3RhbmRhcmQuCi1UbyBhY2hpZXZlIHRoaXMsIG5vbi1mcmVlIHByb2dyYW1zIG11c3QgYmUgYWxs b3dlZCB0byB1c2UgdGhlIGxpYnJhcnkuIEEgbW9yZQotZnJlcXVlbnQgY2FzZSBpcyB0aGF0IGEg ZnJlZSBsaWJyYXJ5IGRvZXMgdGhlIHNhbWUgam9iIGFzIHdpZGVseSB1c2VkIG5vbi1mcmVlCi1s aWJyYXJpZXMuIEluIHRoaXMgY2FzZSwgdGhlcmUgaXMgbGl0dGxlIHRvIGdhaW4gYnkgbGltaXRp bmcgdGhlIGZyZWUgbGlicmFyeQotdG8gZnJlZSBzb2Z0d2FyZSBvbmx5LCBzbyB3ZSB1c2UgdGhl IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgotCi1JbiBvdGhlciBjYXNlcywgcGVybWlz c2lvbiB0byB1c2UgYSBwYXJ0aWN1bGFyIGxpYnJhcnkgaW4gbm9uLWZyZWUgcHJvZ3JhbXMKLWVu YWJsZXMgYSBncmVhdGVyIG51bWJlciBvZiBwZW9wbGUgdG8gdXNlIGEgbGFyZ2UgYm9keSBvZiBm cmVlIHNvZnR3YXJlLiBGb3IKLWV4YW1wbGUsIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBHTlUgQyBM aWJyYXJ5IGluIG5vbi1mcmVlIHByb2dyYW1zIGVuYWJsZXMKLW1hbnkgbW9yZSBwZW9wbGUgdG8g dXNlIHRoZSB3aG9sZSBHTlUgb3BlcmF0aW5nIHN5c3RlbSwgYXMgd2VsbCBhcyBpdHMgdmFyaWFu dCwKLXRoZSBHTlUvTGludXggb3BlcmF0aW5nIHN5c3RlbS4KLQotQWx0aG91Z2ggdGhlIExlc3Nl ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIExlc3MgcHJvdGVjdGl2ZSBvZiB0aGUgdXNlcnMn Ci1mcmVlZG9tLCBpdCBkb2VzIGVuc3VyZSB0aGF0IHRoZSB1c2VyIG9mIGEgcHJvZ3JhbSB0aGF0 IGlzIGxpbmtlZCB3aXRoIHRoZQotTGlicmFyeSBoYXMgdGhlIGZyZWVkb20gYW5kIHRoZSB3aGVy ZXdpdGhhbCB0byBydW4gdGhhdCBwcm9ncmFtIHVzaW5nIGEgbW9kaWZpZWQKLXZlcnNpb24gb2Yg dGhlIExpYnJhcnkuCi0KLVRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5 aW5nLCBkaXN0cmlidXRpb24gYW5kIG1vZGlmaWNhdGlvbgotZm9sbG93LiBQYXkgY2xvc2UgYXR0 ZW50aW9uIHRvIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYSAid29yayBiYXNlZCBvbiB0aGUKLWxp YnJhcnkiIGFuZCBhICJ3b3JrIHRoYXQgdXNlcyB0aGUgbGlicmFyeSIuIFRoZSBmb3JtZXIgY29u dGFpbnMgY29kZSBkZXJpdmVkCi1mcm9tIHRoZSBsaWJyYXJ5LCB3aGVyZWFzIHRoZSBsYXR0ZXIg bXVzdCBiZSBjb21iaW5lZCB3aXRoIHRoZSBsaWJyYXJ5IGluCi1vcmRlciB0byBydW4uCi0KLVRF Uk1TIEFORCBDT05ESVRJT05TIEZPUiBDT1BZSU5HLCBESVNUUklCVVRJT04gQU5EIE1PRElGSUNB VElPTgotCi0wLiBUaGlzIExpY2Vuc2UgQWdyZWVtZW50IGFwcGxpZXMgdG8gYW55IHNvZnR3YXJl IGxpYnJhcnkgb3Igb3RoZXIgcHJvZ3JhbQotd2hpY2ggY29udGFpbnMgYSBub3RpY2UgcGxhY2Vk IGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVyIG9yIG90aGVyIGF1dGhvcml6ZWQKLXBhcnR5IHNheWlu ZyBpdCBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGVzc2VyIEdl bmVyYWwKLVB1YmxpYyBMaWNlbnNlIChhbHNvIGNhbGxlZCAidGhpcyBMaWNlbnNlIikuIEVhY2gg bGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzCi0ieW91Ii4KLQotQSAibGlicmFyeSIgbWVhbnMgYSBj b2xsZWN0aW9uIG9mIHNvZnR3YXJlIGZ1bmN0aW9ucyBhbmQvb3IgZGF0YSBwcmVwYXJlZAotc28g YXMgdG8gYmUgY29udmVuaWVudGx5IGxpbmtlZCB3aXRoIGFwcGxpY2F0aW9uIHByb2dyYW1zICh3 aGljaCB1c2Ugc29tZQotb2YgdGhvc2UgZnVuY3Rpb25zIGFuZCBkYXRhKSB0byBmb3JtIGV4ZWN1 dGFibGVzLgotCi1UaGUgIkxpYnJhcnkiLCBiZWxvdywgcmVmZXJzIHRvIGFueSBzdWNoIHNvZnR3 YXJlIGxpYnJhcnkgb3Igd29yayB3aGljaCBoYXMKLWJlZW4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhl c2UgdGVybXMuIEEgIndvcmsgYmFzZWQgb24gdGhlIExpYnJhcnkiIG1lYW5zIGVpdGhlcgotdGhl IExpYnJhcnkgb3IgYW55IGRlcml2YXRpdmUgd29yayB1bmRlciBjb3B5cmlnaHQgbGF3OiB0aGF0 IGlzIHRvIHNheSwgYQotd29yayBjb250YWluaW5nIHRoZSBMaWJyYXJ5IG9yIGEgcG9ydGlvbiBv ZiBpdCwgZWl0aGVyIHZlcmJhdGltIG9yIHdpdGggbW9kaWZpY2F0aW9ucwotYW5kL29yIHRyYW5z bGF0ZWQgc3RyYWlnaHRmb3J3YXJkbHkgaW50byBhbm90aGVyIGxhbmd1YWdlLiAoSGVyZWluYWZ0 ZXIsIHRyYW5zbGF0aW9uCi1pcyBpbmNsdWRlZCB3aXRob3V0IGxpbWl0YXRpb24gaW4gdGhlIHRl cm0gIm1vZGlmaWNhdGlvbiIuKQotCi0iU291cmNlIGNvZGUiIGZvciBhIHdvcmsgbWVhbnMgdGhl IHByZWZlcnJlZCBmb3JtIG9mIHRoZSB3b3JrIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucwotdG8g aXQuIEZvciBhIGxpYnJhcnksIGNvbXBsZXRlIHNvdXJjZSBjb2RlIG1lYW5zIGFsbCB0aGUgc291 cmNlIGNvZGUgZm9yIGFsbAotbW9kdWxlcyBpdCBjb250YWlucywgcGx1cyBhbnkgYXNzb2NpYXRl ZCBpbnRlcmZhY2UgZGVmaW5pdGlvbiBmaWxlcywgcGx1cwotdGhlIHNjcmlwdHMgdXNlZCB0byBj b250cm9sIGNvbXBpbGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gb2YgdGhlIGxpYnJhcnkuCi0KLUFj dGl2aXRpZXMgb3RoZXIgdGhhbiBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kIG1vZGlmaWNhdGlv biBhcmUgbm90IGNvdmVyZWQKLWJ5IHRoaXMgTGljZW5zZTsgdGhleSBhcmUgb3V0c2lkZSBpdHMg c2NvcGUuIFRoZSBhY3Qgb2YgcnVubmluZyBhIHByb2dyYW0KLXVzaW5nIHRoZSBMaWJyYXJ5IGlz IG5vdCByZXN0cmljdGVkLCBhbmQgb3V0cHV0IGZyb20gc3VjaCBhIHByb2dyYW0gaXMgY292ZXJl ZAotb25seSBpZiBpdHMgY29udGVudHMgY29uc3RpdHV0ZSBhIHdvcmsgYmFzZWQgb24gdGhlIExp YnJhcnkgKGluZGVwZW5kZW50IG9mCi10aGUgdXNlIG9mIHRoZSBMaWJyYXJ5IGluIGEgdG9vbCBm b3Igd3JpdGluZyBpdCkuIFdoZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMKLW9uIHdoYXQgdGhl IExpYnJhcnkgZG9lcyBhbmQgd2hhdCB0aGUgcHJvZ3JhbSB0aGF0IHVzZXMgdGhlIExpYnJhcnkg ZG9lcy4KLQotMS4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcyBv ZiB0aGUgTGlicmFyeSdzIGNvbXBsZXRlIHNvdXJjZQotY29kZSBhcyB5b3UgcmVjZWl2ZSBpdCwg aW4gYW55IG1lZGl1bSwgcHJvdmlkZWQgdGhhdCB5b3UgY29uc3BpY3VvdXNseSBhbmQKLWFwcHJv cHJpYXRlbHkgcHVibGlzaCBvbiBlYWNoIGNvcHkgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5v dGljZSBhbmQgZGlzY2xhaW1lcgotb2Ygd2FycmFudHk7IGtlZXAgaW50YWN0IGFsbCB0aGUgbm90 aWNlcyB0aGF0IHJlZmVyIHRvIHRoaXMgTGljZW5zZSBhbmQgdG8KLXRoZSBhYnNlbmNlIG9mIGFu eSB3YXJyYW50eTsgYW5kIGRpc3RyaWJ1dGUgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3 aXRoCi10aGUgTGlicmFyeS4KLQotWW91IG1heSBjaGFyZ2UgYSBmZWUgZm9yIHRoZSBwaHlzaWNh bCBhY3Qgb2YgdHJhbnNmZXJyaW5nIGEgY29weSwgYW5kIHlvdQotbWF5IGF0IHlvdXIgb3B0aW9u IG9mZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEgZmVlLgotCi0yLiBZ b3UgbWF5IG1vZGlmeSB5b3VyIGNvcHkgb3IgY29waWVzIG9mIHRoZSBMaWJyYXJ5IG9yIGFueSBw b3J0aW9uIG9mIGl0LAotdGh1cyBmb3JtaW5nIGEgd29yayBiYXNlZCBvbiB0aGUgTGlicmFyeSwg YW5kIGNvcHkgYW5kIGRpc3RyaWJ1dGUgc3VjaCBtb2RpZmljYXRpb25zCi1vciB3b3JrIHVuZGVy IHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDEgYWJvdmUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gbWVl dCBhbGwKLW9mIHRoZXNlIGNvbmRpdGlvbnM6Ci0KLSAgICAgIGEpIFRoZSBtb2RpZmllZCB3b3Jr IG11c3QgaXRzZWxmIGJlIGEgc29mdHdhcmUgbGlicmFyeS4KLQotYikgWW91IG11c3QgY2F1c2Ug dGhlIGZpbGVzIG1vZGlmaWVkIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzIHN0YXRpbmcgdGhh dAoteW91IGNoYW5nZWQgdGhlIGZpbGVzIGFuZCB0aGUgZGF0ZSBvZiBhbnkgY2hhbmdlLgotCi1j KSBZb3UgbXVzdCBjYXVzZSB0aGUgd2hvbGUgb2YgdGhlIHdvcmsgdG8gYmUgbGljZW5zZWQgYXQg bm8gY2hhcmdlIHRvIGFsbAotdGhpcmQgcGFydGllcyB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBM aWNlbnNlLgotCi1kKSBJZiBhIGZhY2lsaXR5IGluIHRoZSBtb2RpZmllZCBMaWJyYXJ5IHJlZmVy cyB0byBhIGZ1bmN0aW9uIG9yIGEgdGFibGUgb2YKLWRhdGEgdG8gYmUgc3VwcGxpZWQgYnkgYW4g YXBwbGljYXRpb24gcHJvZ3JhbSB0aGF0IHVzZXMgdGhlIGZhY2lsaXR5LCBvdGhlcgotdGhhbiBh cyBhbiBhcmd1bWVudCBwYXNzZWQgd2hlbiB0aGUgZmFjaWxpdHkgaXMgaW52b2tlZCwgdGhlbiB5 b3UgbXVzdCBtYWtlCi1hIGdvb2QgZmFpdGggZWZmb3J0IHRvIGVuc3VyZSB0aGF0LCBpbiB0aGUg ZXZlbnQgYW4gYXBwbGljYXRpb24gZG9lcyBub3Qgc3VwcGx5Ci1zdWNoIGZ1bmN0aW9uIG9yIHRh YmxlLCB0aGUgZmFjaWxpdHkgc3RpbGwgb3BlcmF0ZXMsIGFuZCBwZXJmb3JtcyB3aGF0ZXZlcgot cGFydCBvZiBpdHMgcHVycG9zZSByZW1haW5zIG1lYW5pbmdmdWwuCi0KLShGb3IgZXhhbXBsZSwg YSBmdW5jdGlvbiBpbiBhIGxpYnJhcnkgdG8gY29tcHV0ZSBzcXVhcmUgcm9vdHMgaGFzIGEgcHVy cG9zZQotdGhhdCBpcyBlbnRpcmVseSB3ZWxsLWRlZmluZWQgaW5kZXBlbmRlbnQgb2YgdGhlIGFw cGxpY2F0aW9uLiBUaGVyZWZvcmUsIFN1YnNlY3Rpb24KLTJkIHJlcXVpcmVzIHRoYXQgYW55IGFw cGxpY2F0aW9uLXN1cHBsaWVkIGZ1bmN0aW9uIG9yIHRhYmxlIHVzZWQgYnkgdGhpcyBmdW5jdGlv bgotbXVzdCBiZSBvcHRpb25hbDogaWYgdGhlIGFwcGxpY2F0aW9uIGRvZXMgbm90IHN1cHBseSBp dCwgdGhlIHNxdWFyZSByb290IGZ1bmN0aW9uCi1tdXN0IHN0aWxsIGNvbXB1dGUgc3F1YXJlIHJv b3RzLikKLQotVGhlc2UgcmVxdWlyZW1lbnRzIGFwcGx5IHRvIHRoZSBtb2RpZmllZCB3b3JrIGFz IGEgd2hvbGUuIElmIGlkZW50aWZpYWJsZQotc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3Qg ZGVyaXZlZCBmcm9tIHRoZSBMaWJyYXJ5LCBhbmQgY2FuIGJlIHJlYXNvbmFibHkKLWNvbnNpZGVy ZWQgaW5kZXBlbmRlbnQgYW5kIHNlcGFyYXRlIHdvcmtzIGluIHRoZW1zZWx2ZXMsIHRoZW4gdGhp cyBMaWNlbnNlLAotYW5kIGl0cyB0ZXJtcywgZG8gbm90IGFwcGx5IHRvIHRob3NlIHNlY3Rpb25z IHdoZW4geW91IGRpc3RyaWJ1dGUgdGhlbSBhcwotc2VwYXJhdGUgd29ya3MuIEJ1dCB3aGVuIHlv dSBkaXN0cmlidXRlIHRoZSBzYW1lIHNlY3Rpb25zIGFzIHBhcnQgb2YgYSB3aG9sZQotd2hpY2gg aXMgYSB3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5LCB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3 aG9sZSBtdXN0IGJlCi1vbiB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLCB3aG9zZSBwZXJtaXNz aW9ucyBmb3Igb3RoZXIgbGljZW5zZWVzIGV4dGVuZAotdG8gdGhlIGVudGlyZSB3aG9sZSwgYW5k IHRodXMgdG8gZWFjaCBhbmQgZXZlcnkgcGFydCByZWdhcmRsZXNzIG9mIHdobyB3cm90ZQotaXQu Ci0KLVRodXMsIGl0IGlzIG5vdCB0aGUgaW50ZW50IG9mIHRoaXMgc2VjdGlvbiB0byBjbGFpbSBy aWdodHMgb3IgY29udGVzdCB5b3VyCi1yaWdodHMgdG8gd29yayB3cml0dGVuIGVudGlyZWx5IGJ5 IHlvdTsgcmF0aGVyLCB0aGUgaW50ZW50IGlzIHRvIGV4ZXJjaXNlCi10aGUgcmlnaHQgdG8gY29u dHJvbCB0aGUgZGlzdHJpYnV0aW9uIG9mIGRlcml2YXRpdmUgb3IgY29sbGVjdGl2ZSB3b3JrcyBi YXNlZAotb24gdGhlIExpYnJhcnkuCi0KLUluIGFkZGl0aW9uLCBtZXJlIGFnZ3JlZ2F0aW9uIG9m IGFub3RoZXIgd29yayBub3QgYmFzZWQgb24gdGhlIExpYnJhcnkgd2l0aAotdGhlIExpYnJhcnkg KG9yIHdpdGggYSB3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5KSBvbiBhIHZvbHVtZSBvZiBhIHN0 b3JhZ2UKLW9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0gZG9lcyBub3QgYnJpbmcgdGhlIG90aGVyIHdv cmsgdW5kZXIgdGhlIHNjb3BlIG9mIHRoaXMKLUxpY2Vuc2UuCi0KLTMuIFlvdSBtYXkgb3B0IHRv IGFwcGx5IHRoZSB0ZXJtcyBvZiB0aGUgb3JkaW5hcnkgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKLWluc3RlYWQgb2YgdGhpcyBMaWNlbnNlIHRvIGEgZ2l2ZW4gY29weSBvZiB0aGUgTGlicmFy eS4gVG8gZG8gdGhpcywgeW91IG11c3QKLWFsdGVyIGFsbCB0aGUgbm90aWNlcyB0aGF0IHJlZmVy IHRvIHRoaXMgTGljZW5zZSwgc28gdGhhdCB0aGV5IHJlZmVyIHRvIHRoZQotb3JkaW5hcnkgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHZlcnNpb24gMiwgaW5zdGVhZCBvZiB0byB0aGlzIExp Y2Vuc2UuCi0oSWYgYSBuZXdlciB2ZXJzaW9uIHRoYW4gdmVyc2lvbiAyIG9mIHRoZSBvcmRpbmFy eSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotaGFzIGFwcGVhcmVkLCB0aGVuIHlvdSBjYW4g c3BlY2lmeSB0aGF0IHZlcnNpb24gaW5zdGVhZCBpZiB5b3Ugd2lzaC4pIERvIG5vdAotbWFrZSBh bnkgb3RoZXIgY2hhbmdlIGluIHRoZXNlIG5vdGljZXMuCi0KLU9uY2UgdGhpcyBjaGFuZ2UgaXMg bWFkZSBpbiBhIGdpdmVuIGNvcHksIGl0IGlzIGlycmV2ZXJzaWJsZSBmb3IgdGhhdCBjb3B5LAot c28gdGhlIG9yZGluYXJ5IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFwcGxpZXMgdG8gYWxs IHN1YnNlcXVlbnQgY29waWVzCi1hbmQgZGVyaXZhdGl2ZSB3b3JrcyBtYWRlIGZyb20gdGhhdCBj b3B5LgotCi1UaGlzIG9wdGlvbiBpcyB1c2VmdWwgd2hlbiB5b3Ugd2lzaCB0byBjb3B5IHBhcnQg b2YgdGhlIGNvZGUgb2YgdGhlIExpYnJhcnkKLWludG8gYSBwcm9ncmFtIHRoYXQgaXMgbm90IGEg bGlicmFyeS4KLQotNC4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBMaWJyYXJ5IChv ciBhIHBvcnRpb24gb3IgZGVyaXZhdGl2ZSBvZgotaXQsIHVuZGVyIFNlY3Rpb24gMikgaW4gb2Jq ZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHVuZGVyIHRoZSB0ZXJtcyBvZgotU2VjdGlvbnMg MSBhbmQgMiBhYm92ZSBwcm92aWRlZCB0aGF0IHlvdSBhY2NvbXBhbnkgaXQgd2l0aCB0aGUgY29t cGxldGUgY29ycmVzcG9uZGluZwotbWFjaGluZS1yZWFkYWJsZSBzb3VyY2UgY29kZSwgd2hpY2gg bXVzdCBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YKLVNlY3Rpb25zIDEgYW5kIDIg YWJvdmUgb24gYSBtZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFu Z2UuCi0KLUlmIGRpc3RyaWJ1dGlvbiBvZiBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5n IGFjY2VzcyB0byBjb3B5IGZyb20gYSBkZXNpZ25hdGVkCi1wbGFjZSwgdGhlbiBvZmZlcmluZyBl cXVpdmFsZW50IGFjY2VzcyB0byBjb3B5IHRoZSBzb3VyY2UgY29kZSBmcm9tIHRoZSBzYW1lCi1w bGFjZSBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50IHRvIGRpc3RyaWJ1dGUgdGhlIHNvdXJjZSBj b2RlLCBldmVuIHRob3VnaAotdGhpcmQgcGFydGllcyBhcmUgbm90IGNvbXBlbGxlZCB0byBjb3B5 IHRoZSBzb3VyY2UgYWxvbmcgd2l0aCB0aGUgb2JqZWN0IGNvZGUuCi0KLTUuIEEgcHJvZ3JhbSB0 aGF0IGNvbnRhaW5zIG5vIGRlcml2YXRpdmUgb2YgYW55IHBvcnRpb24gb2YgdGhlIExpYnJhcnks IGJ1dAotaXMgZGVzaWduZWQgdG8gd29yayB3aXRoIHRoZSBMaWJyYXJ5IGJ5IGJlaW5nIGNvbXBp bGVkIG9yIGxpbmtlZCB3aXRoIGl0LAotaXMgY2FsbGVkIGEgIndvcmsgdGhhdCB1c2VzIHRoZSBM aWJyYXJ5Ii4gU3VjaCBhIHdvcmssIGluIGlzb2xhdGlvbiwgaXMgbm90Ci1hIGRlcml2YXRpdmUg d29yayBvZiB0aGUgTGlicmFyeSwgYW5kIHRoZXJlZm9yZSBmYWxscyBvdXRzaWRlIHRoZSBzY29w ZSBvZgotdGhpcyBMaWNlbnNlLgotCi1Ib3dldmVyLCBsaW5raW5nIGEgIndvcmsgdGhhdCB1c2Vz IHRoZSBMaWJyYXJ5IiB3aXRoIHRoZSBMaWJyYXJ5IGNyZWF0ZXMgYW4KLWV4ZWN1dGFibGUgdGhh dCBpcyBhIGRlcml2YXRpdmUgb2YgdGhlIExpYnJhcnkgKGJlY2F1c2UgaXQgY29udGFpbnMgcG9y dGlvbnMKLW9mIHRoZSBMaWJyYXJ5KSwgcmF0aGVyIHRoYW4gYSAid29yayB0aGF0IHVzZXMgdGhl IGxpYnJhcnkiLiBUaGUgZXhlY3V0YWJsZQotaXMgdGhlcmVmb3JlIGNvdmVyZWQgYnkgdGhpcyBM aWNlbnNlLiBTZWN0aW9uIDYgc3RhdGVzIHRlcm1zIGZvciBkaXN0cmlidXRpb24KLW9mIHN1Y2gg ZXhlY3V0YWJsZXMuCi0KLVdoZW4gYSAid29yayB0aGF0IHVzZXMgdGhlIExpYnJhcnkiIHVzZXMg bWF0ZXJpYWwgZnJvbSBhIGhlYWRlciBmaWxlIHRoYXQKLWlzIHBhcnQgb2YgdGhlIExpYnJhcnks IHRoZSBvYmplY3QgY29kZSBmb3IgdGhlIHdvcmsgbWF5IGJlIGEgZGVyaXZhdGl2ZSB3b3JrCi1v ZiB0aGUgTGlicmFyeSBldmVuIHRob3VnaCB0aGUgc291cmNlIGNvZGUgaXMgbm90LiBXaGV0aGVy IHRoaXMgaXMgdHJ1ZSBpcwotZXNwZWNpYWxseSBzaWduaWZpY2FudCBpZiB0aGUgd29yayBjYW4g YmUgbGlua2VkIHdpdGhvdXQgdGhlIExpYnJhcnksIG9yIGlmCi10aGUgd29yayBpcyBpdHNlbGYg YSBsaWJyYXJ5LiBUaGUgdGhyZXNob2xkIGZvciB0aGlzIHRvIGJlIHRydWUgaXMgbm90IHByZWNp c2VseQotZGVmaW5lZCBieSBsYXcuCi0KLUlmIHN1Y2ggYW4gb2JqZWN0IGZpbGUgdXNlcyBvbmx5 IG51bWVyaWNhbCBwYXJhbWV0ZXJzLCBkYXRhIHN0cnVjdHVyZSBsYXlvdXRzCi1hbmQgYWNjZXNz b3JzLCBhbmQgc21hbGwgbWFjcm9zIGFuZCBzbWFsbCBpbmxpbmUgZnVuY3Rpb25zICh0ZW4gbGlu ZXMgb3IgbGVzcwotaW4gbGVuZ3RoKSwgdGhlbiB0aGUgdXNlIG9mIHRoZSBvYmplY3QgZmlsZSBp cyB1bnJlc3RyaWN0ZWQsIHJlZ2FyZGxlc3Mgb2YKLXdoZXRoZXIgaXQgaXMgbGVnYWxseSBhIGRl cml2YXRpdmUgd29yay4gKEV4ZWN1dGFibGVzIGNvbnRhaW5pbmcgdGhpcyBvYmplY3QKLWNvZGUg cGx1cyBwb3J0aW9ucyBvZiB0aGUgTGlicmFyeSB3aWxsIHN0aWxsIGZhbGwgdW5kZXIgU2VjdGlv biA2LikKLQotT3RoZXJ3aXNlLCBpZiB0aGUgd29yayBpcyBhIGRlcml2YXRpdmUgb2YgdGhlIExp YnJhcnksIHlvdSBtYXkgZGlzdHJpYnV0ZQotdGhlIG9iamVjdCBjb2RlIGZvciB0aGUgd29yayB1 bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiA2LiBBbnkgZXhlY3V0YWJsZXMKLWNvbnRhaW5pbmcg dGhhdCB3b3JrIGFsc28gZmFsbCB1bmRlciBTZWN0aW9uIDYsIHdoZXRoZXIgb3Igbm90IHRoZXkg YXJlIGxpbmtlZAotZGlyZWN0bHkgd2l0aCB0aGUgTGlicmFyeSBpdHNlbGYuCi0KLTYuIEFzIGFu IGV4Y2VwdGlvbiB0byB0aGUgU2VjdGlvbnMgYWJvdmUsIHlvdSBtYXkgYWxzbyBjb21iaW5lIG9y IGxpbmsgYSAid29yawotdGhhdCB1c2VzIHRoZSBMaWJyYXJ5IiB3aXRoIHRoZSBMaWJyYXJ5IHRv IHByb2R1Y2UgYSB3b3JrIGNvbnRhaW5pbmcgcG9ydGlvbnMKLW9mIHRoZSBMaWJyYXJ5LCBhbmQg ZGlzdHJpYnV0ZSB0aGF0IHdvcmsgdW5kZXIgdGVybXMgb2YgeW91ciBjaG9pY2UsIHByb3ZpZGVk Ci10aGF0IHRoZSB0ZXJtcyBwZXJtaXQgbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGZvciB0aGUg Y3VzdG9tZXIncyBvd24gdXNlCi1hbmQgcmV2ZXJzZSBlbmdpbmVlcmluZyBmb3IgZGVidWdnaW5n IHN1Y2ggbW9kaWZpY2F0aW9ucy4KLQotWW91IG11c3QgZ2l2ZSBwcm9taW5lbnQgbm90aWNlIHdp dGggZWFjaCBjb3B5IG9mIHRoZSB3b3JrIHRoYXQgdGhlIExpYnJhcnkKLWlzIHVzZWQgaW4gaXQg YW5kIHRoYXQgdGhlIExpYnJhcnkgYW5kIGl0cyB1c2UgYXJlIGNvdmVyZWQgYnkgdGhpcyBMaWNl bnNlLgotWW91IG11c3Qgc3VwcGx5IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuIElmIHRoZSB3b3Jr IGR1cmluZyBleGVjdXRpb24gZGlzcGxheXMKLWNvcHlyaWdodCBub3RpY2VzLCB5b3UgbXVzdCBp bmNsdWRlIHRoZSBjb3B5cmlnaHQgbm90aWNlIGZvciB0aGUgTGlicmFyeSBhbW9uZwotdGhlbSwg YXMgd2VsbCBhcyBhIHJlZmVyZW5jZSBkaXJlY3RpbmcgdGhlIHVzZXIgdG8gdGhlIGNvcHkgb2Yg dGhpcyBMaWNlbnNlLgotQWxzbywgeW91IG11c3QgZG8gb25lIG9mIHRoZXNlIHRoaW5nczoKLQot YSkgQWNjb21wYW55IHRoZSB3b3JrIHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcgbWFj aGluZS1yZWFkYWJsZSBzb3VyY2UKLWNvZGUgZm9yIHRoZSBMaWJyYXJ5IGluY2x1ZGluZyB3aGF0 ZXZlciBjaGFuZ2VzIHdlcmUgdXNlZCBpbiB0aGUgd29yayAod2hpY2gKLW11c3QgYmUgZGlzdHJp YnV0ZWQgdW5kZXIgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSk7IGFuZCwgaWYgdGhlIHdvcmsgaXMg YW4KLWV4ZWN1dGFibGUgbGlua2VkIHdpdGggdGhlIExpYnJhcnksIHdpdGggdGhlIGNvbXBsZXRl IG1hY2hpbmUtcmVhZGFibGUgIndvcmsKLXRoYXQgdXNlcyB0aGUgTGlicmFyeSIsIGFzIG9iamVj dCBjb2RlIGFuZC9vciBzb3VyY2UgY29kZSwgc28gdGhhdCB0aGUgdXNlcgotY2FuIG1vZGlmeSB0 aGUgTGlicmFyeSBhbmQgdGhlbiByZWxpbmsgdG8gcHJvZHVjZSBhIG1vZGlmaWVkIGV4ZWN1dGFi bGUgY29udGFpbmluZwotdGhlIG1vZGlmaWVkIExpYnJhcnkuIChJdCBpcyB1bmRlcnN0b29kIHRo YXQgdGhlIHVzZXIgd2hvIGNoYW5nZXMgdGhlIGNvbnRlbnRzCi1vZiBkZWZpbml0aW9ucyBmaWxl cyBpbiB0aGUgTGlicmFyeSB3aWxsIG5vdCBuZWNlc3NhcmlseSBiZSBhYmxlIHRvIHJlY29tcGls ZQotdGhlIGFwcGxpY2F0aW9uIHRvIHVzZSB0aGUgbW9kaWZpZWQgZGVmaW5pdGlvbnMuKQotCi1i KSBVc2UgYSBzdWl0YWJsZSBzaGFyZWQgbGlicmFyeSBtZWNoYW5pc20gZm9yIGxpbmtpbmcgd2l0 aCB0aGUgTGlicmFyeS4gQQotc3VpdGFibGUgbWVjaGFuaXNtIGlzIG9uZSB0aGF0ICgxKSB1c2Vz IGF0IHJ1biB0aW1lIGEgY29weSBvZiB0aGUgbGlicmFyeQotYWxyZWFkeSBwcmVzZW50IG9uIHRo ZSB1c2VyJ3MgY29tcHV0ZXIgc3lzdGVtLCByYXRoZXIgdGhhbiBjb3B5aW5nIGxpYnJhcnkKLWZ1 bmN0aW9ucyBpbnRvIHRoZSBleGVjdXRhYmxlLCBhbmQgKDIpIHdpbGwgb3BlcmF0ZSBwcm9wZXJs eSB3aXRoIGEgbW9kaWZpZWQKLXZlcnNpb24gb2YgdGhlIGxpYnJhcnksIGlmIHRoZSB1c2VyIGlu c3RhbGxzIG9uZSwgYXMgbG9uZyBhcyB0aGUgbW9kaWZpZWQKLXZlcnNpb24gaXMgaW50ZXJmYWNl LWNvbXBhdGlibGUgd2l0aCB0aGUgdmVyc2lvbiB0aGF0IHRoZSB3b3JrIHdhcyBtYWRlIHdpdGgu Ci0KLWMpIEFjY29tcGFueSB0aGUgd29yayB3aXRoIGEgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9y IGF0IGxlYXN0IHRocmVlIHllYXJzLAotdG8gZ2l2ZSB0aGUgc2FtZSB1c2VyIHRoZSBtYXRlcmlh bHMgc3BlY2lmaWVkIGluIFN1YnNlY3Rpb24gNmEsIGFib3ZlLCBmb3IKLWEgY2hhcmdlIG5vIG1v cmUgdGhhbiB0aGUgY29zdCBvZiBwZXJmb3JtaW5nIHRoaXMgZGlzdHJpYnV0aW9uLgotCi1kKSBJ ZiBkaXN0cmlidXRpb24gb2YgdGhlIHdvcmsgaXMgbWFkZSBieSBvZmZlcmluZyBhY2Nlc3MgdG8g Y29weSBmcm9tIGEgZGVzaWduYXRlZAotcGxhY2UsIG9mZmVyIGVxdWl2YWxlbnQgYWNjZXNzIHRv IGNvcHkgdGhlIGFib3ZlIHNwZWNpZmllZCBtYXRlcmlhbHMgZnJvbQotdGhlIHNhbWUgcGxhY2Uu Ci0KLWUpIFZlcmlmeSB0aGF0IHRoZSB1c2VyIGhhcyBhbHJlYWR5IHJlY2VpdmVkIGEgY29weSBv ZiB0aGVzZSBtYXRlcmlhbHMgb3IKLXRoYXQgeW91IGhhdmUgYWxyZWFkeSBzZW50IHRoaXMgdXNl ciBhIGNvcHkuCi0KLUZvciBhbiBleGVjdXRhYmxlLCB0aGUgcmVxdWlyZWQgZm9ybSBvZiB0aGUg IndvcmsgdGhhdCB1c2VzIHRoZSBMaWJyYXJ5IiBtdXN0Ci1pbmNsdWRlIGFueSBkYXRhIGFuZCB1 dGlsaXR5IHByb2dyYW1zIG5lZWRlZCBmb3IgcmVwcm9kdWNpbmcgdGhlIGV4ZWN1dGFibGUKLWZy b20gaXQuIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24sIHRoZSBtYXRlcmlhbHMgdG8g YmUgZGlzdHJpYnV0ZWQKLW5lZWQgbm90IGluY2x1ZGUgYW55dGhpbmcgdGhhdCBpcyBub3JtYWxs eSBkaXN0cmlidXRlZCAoaW4gZWl0aGVyIHNvdXJjZSBvcgotYmluYXJ5IGZvcm0pIHdpdGggdGhl IG1ham9yIGNvbXBvbmVudHMgKGNvbXBpbGVyLCBrZXJuZWwsIGFuZCBzbyBvbikgb2YgdGhlCi1v cGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0 IGNvbXBvbmVudCBpdHNlbGYKLWFjY29tcGFuaWVzIHRoZSBleGVjdXRhYmxlLgotCi1JdCBtYXkg aGFwcGVuIHRoYXQgdGhpcyByZXF1aXJlbWVudCBjb250cmFkaWN0cyB0aGUgbGljZW5zZSByZXN0 cmljdGlvbnMgb2YKLW90aGVyIHByb3ByaWV0YXJ5IGxpYnJhcmllcyB0aGF0IGRvIG5vdCBub3Jt YWxseSBhY2NvbXBhbnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0uCi1TdWNoIGEgY29udHJhZGljdGlv biBtZWFucyB5b3UgY2Fubm90IHVzZSBib3RoIHRoZW0gYW5kIHRoZSBMaWJyYXJ5IHRvZ2V0aGVy Ci1pbiBhbiBleGVjdXRhYmxlIHRoYXQgeW91IGRpc3RyaWJ1dGUuCi0KLTcuIFlvdSBtYXkgcGxh Y2UgbGlicmFyeSBmYWNpbGl0aWVzIHRoYXQgYXJlIGEgd29yayBiYXNlZCBvbiB0aGUgTGlicmFy eSBzaWRlLWJ5LXNpZGUKLWluIGEgc2luZ2xlIGxpYnJhcnkgdG9nZXRoZXIgd2l0aCBvdGhlciBs aWJyYXJ5IGZhY2lsaXRpZXMgbm90IGNvdmVyZWQgYnkKLXRoaXMgTGljZW5zZSwgYW5kIGRpc3Ry aWJ1dGUgc3VjaCBhIGNvbWJpbmVkIGxpYnJhcnksIHByb3ZpZGVkIHRoYXQgdGhlIHNlcGFyYXRl Ci1kaXN0cmlidXRpb24gb2YgdGhlIHdvcmsgYmFzZWQgb24gdGhlIExpYnJhcnkgYW5kIG9mIHRo ZSBvdGhlciBsaWJyYXJ5IGZhY2lsaXRpZXMKLWlzIG90aGVyd2lzZSBwZXJtaXR0ZWQsIGFuZCBw cm92aWRlZCB0aGF0IHlvdSBkbyB0aGVzZSB0d28gdGhpbmdzOgotCi1hKSBBY2NvbXBhbnkgdGhl IGNvbWJpbmVkIGxpYnJhcnkgd2l0aCBhIGNvcHkgb2YgdGhlIHNhbWUgd29yayBiYXNlZCBvbiB0 aGUKLUxpYnJhcnksIHVuY29tYmluZWQgd2l0aCBhbnkgb3RoZXIgbGlicmFyeSBmYWNpbGl0aWVz LiBUaGlzIG11c3QgYmUgZGlzdHJpYnV0ZWQKLXVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgU2VjdGlv bnMgYWJvdmUuCi0KLWIpIEdpdmUgcHJvbWluZW50IG5vdGljZSB3aXRoIHRoZSBjb21iaW5lZCBs aWJyYXJ5IG9mIHRoZSBmYWN0IHRoYXQgcGFydCBvZgotaXQgaXMgYSB3b3JrIGJhc2VkIG9uIHRo ZSBMaWJyYXJ5LCBhbmQgZXhwbGFpbmluZyB3aGVyZSB0byBmaW5kIHRoZSBhY2NvbXBhbnlpbmcK LXVuY29tYmluZWQgZm9ybSBvZiB0aGUgc2FtZSB3b3JrLgotCi04LiBZb3UgbWF5IG5vdCBjb3B5 LCBtb2RpZnksIHN1YmxpY2Vuc2UsIGxpbmsgd2l0aCwgb3IgZGlzdHJpYnV0ZSB0aGUgTGlicmFy eQotZXhjZXB0IGFzIGV4cHJlc3NseSBwcm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2UuIEFueSBh dHRlbXB0IG90aGVyd2lzZSB0bwotY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBsaW5rIHdpdGgs IG9yIGRpc3RyaWJ1dGUgdGhlIExpYnJhcnkgaXMgdm9pZCwgYW5kCi13aWxsIGF1dG9tYXRpY2Fs bHkgdGVybWluYXRlIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZS4gSG93ZXZlciwgcGFy dGllcwotd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzLCBvciByaWdodHMsIGZyb20geW91IHVuZGVy IHRoaXMgTGljZW5zZSB3aWxsIG5vdAotaGF2ZSB0aGVpciBsaWNlbnNlcyB0ZXJtaW5hdGVkIHNv IGxvbmcgYXMgc3VjaCBwYXJ0aWVzIHJlbWFpbiBpbiBmdWxsIGNvbXBsaWFuY2UuCi0KLTkuIFlv dSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZl IG5vdCBzaWduZWQKLWl0LiBIb3dldmVyLCBub3RoaW5nIGVsc2UgZ3JhbnRzIHlvdSBwZXJtaXNz aW9uIHRvIG1vZGlmeSBvciBkaXN0cmlidXRlIHRoZQotTGlicmFyeSBvciBpdHMgZGVyaXZhdGl2 ZSB3b3Jrcy4gVGhlc2UgYWN0aW9ucyBhcmUgcHJvaGliaXRlZCBieSBsYXcgaWYgeW91Ci1kbyBu b3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gVGhlcmVmb3JlLCBieSBtb2RpZnlpbmcgb3IgZGlzdHJp YnV0aW5nIHRoZSBMaWJyYXJ5Ci0ob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlIExpYnJhcnkpLCB5 b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZQotdG8gZG8gc28sIGFu ZCBhbGwgaXRzIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpbmcg b3IgbW9kaWZ5aW5nCi10aGUgTGlicmFyeSBvciB3b3JrcyBiYXNlZCBvbiBpdC4KLQotMTAuIEVh Y2ggdGltZSB5b3UgcmVkaXN0cmlidXRlIHRoZSBMaWJyYXJ5IChvciBhbnkgd29yayBiYXNlZCBv biB0aGUgTGlicmFyeSksCi10aGUgcmVjaXBpZW50IGF1dG9tYXRpY2FsbHkgcmVjZWl2ZXMgYSBs aWNlbnNlIGZyb20gdGhlIG9yaWdpbmFsIGxpY2Vuc29yCi10byBjb3B5LCBkaXN0cmlidXRlLCBs aW5rIHdpdGggb3IgbW9kaWZ5IHRoZSBMaWJyYXJ5IHN1YmplY3QgdG8gdGhlc2UgdGVybXMKLWFu ZCBjb25kaXRpb25zLiBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25z IG9uIHRoZSByZWNpcGllbnRzJwotZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cyBncmFudGVkIGhlcmVp bi4gWW91IGFyZSBub3QgcmVzcG9uc2libGUgZm9yIGVuZm9yY2luZwotY29tcGxpYW5jZSBieSB0 aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgotCi0xMS4gSWYsIGFzIGEgY29uc2VxdWVu Y2Ugb2YgYSBjb3VydCBqdWRnbWVudCBvciBhbGxlZ2F0aW9uIG9mIHBhdGVudCBpbmZyaW5nZW1l bnQKLW9yIGZvciBhbnkgb3RoZXIgcmVhc29uIChub3QgbGltaXRlZCB0byBwYXRlbnQgaXNzdWVz KSwgY29uZGl0aW9ucyBhcmUgaW1wb3NlZAotb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVy LCBhZ3JlZW1lbnQgb3Igb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlCi1jb25kaXRpb25z IG9mIHRoaXMgTGljZW5zZSwgdGhleSBkbyBub3QgZXhjdXNlIHlvdSBmcm9tIHRoZSBjb25kaXRp b25zIG9mCi10aGlzIExpY2Vuc2UuIElmIHlvdSBjYW5ub3QgZGlzdHJpYnV0ZSBzbyBhcyB0byBz YXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIKLW9ibGlnYXRpb25zIHVuZGVyIHRoaXMgTGljZW5z ZSBhbmQgYW55IG90aGVyIHBlcnRpbmVudCBvYmxpZ2F0aW9ucywgdGhlbiBhcwotYSBjb25zZXF1 ZW5jZSB5b3UgbWF5IG5vdCBkaXN0cmlidXRlIHRoZSBMaWJyYXJ5IGF0IGFsbC4gRm9yIGV4YW1w bGUsIGlmIGEKLXBhdGVudCBsaWNlbnNlIHdvdWxkIG5vdCBwZXJtaXQgcm95YWx0eS1mcmVlIHJl ZGlzdHJpYnV0aW9uIG9mIHRoZSBMaWJyYXJ5Ci1ieSBhbGwgdGhvc2Ugd2hvIHJlY2VpdmUgY29w aWVzIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgdGhyb3VnaCB5b3UsIHRoZW4gdGhlCi1vbmx5IHdh eSB5b3UgY291bGQgc2F0aXNmeSBib3RoIGl0IGFuZCB0aGlzIExpY2Vuc2Ugd291bGQgYmUgdG8g cmVmcmFpbiBlbnRpcmVseQotZnJvbSBkaXN0cmlidXRpb24gb2YgdGhlIExpYnJhcnkuCi0KLUlm IGFueSBwb3J0aW9uIG9mIHRoaXMgc2VjdGlvbiBpcyBoZWxkIGludmFsaWQgb3IgdW5lbmZvcmNl YWJsZSB1bmRlciBhbnkKLXBhcnRpY3VsYXIgY2lyY3Vtc3RhbmNlLCB0aGUgYmFsYW5jZSBvZiB0 aGUgc2VjdGlvbiBpcyBpbnRlbmRlZCB0byBhcHBseSwKLWFuZCB0aGUgc2VjdGlvbiBhcyBhIHdo b2xlIGlzIGludGVuZGVkIHRvIGFwcGx5IGluIG90aGVyIGNpcmN1bXN0YW5jZXMuCi0KLUl0IGlz IG5vdCB0aGUgcHVycG9zZSBvZiB0aGlzIHNlY3Rpb24gdG8gaW5kdWNlIHlvdSB0byBpbmZyaW5n ZSBhbnkgcGF0ZW50cwotb3Igb3RoZXIgcHJvcGVydHkgcmlnaHQgY2xhaW1zIG9yIHRvIGNvbnRl c3QgdmFsaWRpdHkgb2YgYW55IHN1Y2ggY2xhaW1zOwotdGhpcyBzZWN0aW9uIGhhcyB0aGUgc29s ZSBwdXJwb3NlIG9mIHByb3RlY3RpbmcgdGhlIGludGVncml0eSBvZiB0aGUgZnJlZQotc29mdHdh cmUgZGlzdHJpYnV0aW9uIHN5c3RlbSB3aGljaCBpcyBpbXBsZW1lbnRlZCBieSBwdWJsaWMgbGlj ZW5zZSBwcmFjdGljZXMuCi1NYW55IHBlb3BsZSBoYXZlIG1hZGUgZ2VuZXJvdXMgY29udHJpYnV0 aW9ucyB0byB0aGUgd2lkZSByYW5nZSBvZiBzb2Z0d2FyZQotZGlzdHJpYnV0ZWQgdGhyb3VnaCB0 aGF0IHN5c3RlbSBpbiByZWxpYW5jZSBvbiBjb25zaXN0ZW50IGFwcGxpY2F0aW9uIG9mIHRoYXQK LXN5c3RlbTsgaXQgaXMgdXAgdG8gdGhlIGF1dGhvci9kb25vciB0byBkZWNpZGUgaWYgaGUgb3Ig c2hlIGlzIHdpbGxpbmcgdG8KLWRpc3RyaWJ1dGUgc29mdHdhcmUgdGhyb3VnaCBhbnkgb3RoZXIg c3lzdGVtIGFuZCBhIGxpY2Vuc2VlIGNhbm5vdCBpbXBvc2UKLXRoYXQgY2hvaWNlLgotCi1UaGlz IHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8gbWFrZSB0aG9yb3VnaGx5IGNsZWFyIHdoYXQgaXMgYmVs aWV2ZWQgdG8gYmUgYQotY29uc2VxdWVuY2Ugb2YgdGhlIHJlc3Qgb2YgdGhpcyBMaWNlbnNlLgot Ci0xMi4gSWYgdGhlIGRpc3RyaWJ1dGlvbiBhbmQvb3IgdXNlIG9mIHRoZSBMaWJyYXJ5IGlzIHJl c3RyaWN0ZWQgaW4gY2VydGFpbgotY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNv cHlyaWdodGVkIGludGVyZmFjZXMsIHRoZSBvcmlnaW5hbCBjb3B5cmlnaHQKLWhvbGRlciB3aG8g cGxhY2VzIHRoZSBMaWJyYXJ5IHVuZGVyIHRoaXMgTGljZW5zZSBtYXkgYWRkIGFuIGV4cGxpY2l0 IGdlb2dyYXBoaWNhbAotZGlzdHJpYnV0aW9uIGxpbWl0YXRpb24gZXhjbHVkaW5nIHRob3NlIGNv dW50cmllcywgc28gdGhhdCBkaXN0cmlidXRpb24gaXMKLXBlcm1pdHRlZCBvbmx5IGluIG9yIGFt b25nIGNvdW50cmllcyBub3QgdGh1cyBleGNsdWRlZC4gSW4gc3VjaCBjYXNlLCB0aGlzCi1MaWNl bnNlIGluY29ycG9yYXRlcyB0aGUgbGltaXRhdGlvbiBhcyBpZiB3cml0dGVuIGluIHRoZSBib2R5 IG9mIHRoaXMgTGljZW5zZS4KLQotMTMuIFRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gbWF5 IHB1Ymxpc2ggcmV2aXNlZCBhbmQvb3IgbmV3IHZlcnNpb25zIG9mCi10aGUgTGVzc2VyIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuIFN1Y2ggbmV3IHZlcnNpb25zIHdp bGwKLWJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkg ZGlmZmVyIGluIGRldGFpbCB0byBhZGRyZXNzCi1uZXcgcHJvYmxlbXMgb3IgY29uY2VybnMuCi0K LUVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBJ ZiB0aGUgTGlicmFyeSBzcGVjaWZpZXMKLWEgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBMaWNlbnNl IHdoaWNoIGFwcGxpZXMgdG8gaXQgYW5kICJhbnkgbGF0ZXIgdmVyc2lvbiIsCi15b3UgaGF2ZSB0 aGUgb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9m IHRoYXQgdmVyc2lvbgotb3Igb2YgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uIElmIHRoZQotTGlicmFyeSBkb2VzIG5vdCBzcGVjaWZ5 IGEgbGljZW5zZSB2ZXJzaW9uIG51bWJlciwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24KLWV2 ZXIgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCi0KLTE0LiBJZiB5 b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSBwYXJ0cyBvZiB0aGUgTGlicmFyeSBpbnRvIG90aGVyIGZy ZWUgcHJvZ3JhbXMKLXdob3NlIGRpc3RyaWJ1dGlvbiBjb25kaXRpb25zIGFyZSBpbmNvbXBhdGli bGUgd2l0aCB0aGVzZSwgd3JpdGUgdG8gdGhlIGF1dGhvcgotdG8gYXNrIGZvciBwZXJtaXNzaW9u LiBGb3Igc29mdHdhcmUgd2hpY2ggaXMgY29weXJpZ2h0ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUK LUZvdW5kYXRpb24sIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHdlIHNv bWV0aW1lcyBtYWtlIGV4Y2VwdGlvbnMKLWZvciB0aGlzLiBPdXIgZGVjaXNpb24gd2lsbCBiZSBn dWlkZWQgYnkgdGhlIHR3byBnb2FscyBvZiBwcmVzZXJ2aW5nIHRoZSBmcmVlCi1zdGF0dXMgb2Yg YWxsIGRlcml2YXRpdmVzIG9mIG91ciBmcmVlIHNvZnR3YXJlIGFuZCBvZiBwcm9tb3RpbmcgdGhl IHNoYXJpbmcKLWFuZCByZXVzZSBvZiBzb2Z0d2FyZSBnZW5lcmFsbHkuCi0KLSAgIE5PIFdBUlJB TlRZCi0KLTE1LiBCRUNBVVNFIFRIRSBMSUJSQVJZIElTIExJQ0VOU0VEIEZSRUUgT0YgQ0hBUkdF LCBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IKLVRIRSBMSUJSQVJZLCBUTyBUSEUgRVhURU5UIFBF Uk1JVFRFRCBCWSBBUFBMSUNBQkxFIExBVy4gRVhDRVBUIFdIRU4gT1RIRVJXSVNFCi1TVEFURUQg SU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMgUFJP VklERSBUSEUgTElCUkFSWQotIkFTIElTIiBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF SVRIRVIgRVhQUkVTU0VEIE9SIElNUExJRUQsIElOQ0xVRElORywKLUJVVCBOT1QgTElNSVRFRCBU TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MK LUZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFM SVRZIEFORCBQRVJGT1JNQU5DRQotT0YgVEhFIExJQlJBUlkgSVMgV0lUSCBZT1UuIFNIT1VMRCBU SEUgTElCUkFSWSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUKLVRIRSBDT1NUIE9GIEFMTCBO RUNFU1NBUlkgU0VSVklDSU5HLCBSRVBBSVIgT1IgQ09SUkVDVElPTi4KLQotMTYuIElOIE5PIEVW RU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJ VElORwotV0lMTCBBTlkgQ09QWVJJR0hUIEhPTERFUiwgT1IgQU5ZIE9USEVSIFBBUlRZIFdITyBN QVkgTU9ESUZZIEFORC9PUiBSRURJU1RSSUJVVEUKLVRIRSBMSUJSQVJZIEFTIFBFUk1JVFRFRCBB Qk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQotR0VORVJB TCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORyBP VVQgT0YgVEhFIFVTRQotT1IgSU5BQklMSVRZIFRPIFVTRSBUSEUgTElCUkFSWSAoSU5DTFVESU5H IEJVVCBOT1QgTElNSVRFRCBUTyBMT1NTIE9GIERBVEEKLU9SIERBVEEgQkVJTkcgUkVOREVSRUQg SU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRCBQQVJUSUVTCi1P UiBBIEZBSUxVUkUgT0YgVEhFIExJQlJBUlkgVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUiBTT0ZU V0FSRSksIEVWRU4gSUYgU1VDSAotSE9MREVSIE9SIE9USEVSIFBBUlRZIEhBUyBCRUVOIEFEVklT RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy4KLUVORCBPRiBURVJNUyBBTkQg Q09ORElUSU9OUwotCi1Ib3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgTGlicmFy aWVzCi0KLUlmIHlvdSBkZXZlbG9wIGEgbmV3IGxpYnJhcnksIGFuZCB5b3Ugd2FudCBpdCB0byBi ZSBvZiB0aGUgZ3JlYXRlc3QgcG9zc2libGUKLXVzZSB0byB0aGUgcHVibGljLCB3ZSByZWNvbW1l bmQgbWFraW5nIGl0IGZyZWUgc29mdHdhcmUgdGhhdCBldmVyeW9uZSBjYW4KLXJlZGlzdHJpYnV0 ZSBhbmQgY2hhbmdlLiBZb3UgY2FuIGRvIHNvIGJ5IHBlcm1pdHRpbmcgcmVkaXN0cmlidXRpb24g dW5kZXIKLXRoZXNlIHRlcm1zIChvciwgYWx0ZXJuYXRpdmVseSwgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBvcmRpbmFyeSBHZW5lcmFsIFB1YmxpYwotTGljZW5zZSkuCi0KLVRvIGFwcGx5IHRoZXNl IHRlcm1zLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBsaWJyYXJ5LiBJdCBp cyBzYWZlc3QKLXRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxl IHRvIG1vc3QgZWZmZWN0aXZlbHkgY29udmV5Ci10aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBh bmQgZWFjaCBmaWxlIHNob3VsZCBoYXZlIGF0IGxlYXN0IHRoZSAiY29weXJpZ2h0IgotbGluZSBh bmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KLQotPG9uZSBs aW5lIHRvIGdpdmUgdGhlIGxpYnJhcnkncyBuYW1lIGFuZCBhbiBpZGVhIG9mIHdoYXQgaXQgZG9l cy4+Ci0KLUNvcHlyaWdodCAoQykgPHllYXI+IDxuYW1lIG9mIGF1dGhvcj4KLQotVGhpcyBsaWJy YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkgaXQgdW5kZXIKLXRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQotU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pCi1hbnkg bGF0ZXIgdmVyc2lvbi4KLQotVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCi1BTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UwotRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZQotZGV0YWlscy4KLQotWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25n Ci13aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuLCA1MQotRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u LCBNQSAwMjExMC0xMzAxIFVTQQotCi1BbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29u dGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KLQotWW91IHNob3VsZCBhbHNv IGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIg c2Nob29sLAotaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhl IGxpYnJhcnksIGlmIG5lY2Vzc2FyeS4gSGVyZQotaXMgYSBzYW1wbGU7IGFsdGVyIHRoZSBuYW1l czoKLQotWW95b2R5bmUsIEluYy4sIGhlcmVieSBkaXNjbGFpbXMgYWxsIGNvcHlyaWdodCBpbnRl cmVzdCBpbgotCi10aGUgbGlicmFyeSBgRnJvYicgKGEgbGlicmFyeSBmb3IgdHdlYWtpbmcga25v YnMpIHdyaXR0ZW4KLQotYnkgSmFtZXMgUmFuZG9tIEhhY2tlci4KLQotPCBzaWduYXR1cmUgb2Yg VHkgQ29vbiA+ICwgMSBBcHJpbCAxOTkwCi0KLVR5IENvb24sIFByZXNpZGVudCBvZiBWaWNlCi0K LVRoYXQncyBhbGwgdGhlcmUgaXMgdG8gaXQhCmRpZmYgLS1naXQgYS9zY3JpcHRzL3NwZHhjaGVj ay5weSBiL3NjcmlwdHMvc3BkeGNoZWNrLnB5CmluZGV4IDdlMDhjNmU0MTM2ZS4uNjM3NGUwNzhh NWYyIDEwMDc1NQotLS0gYS9zY3JpcHRzL3NwZHhjaGVjay5weQorKysgYi9zY3JpcHRzL3NwZHhj aGVjay5weQpAQCAtMzIsNyArMzIsOCBAQCBjbGFzcyBTUERYZGF0YShvYmplY3QpOgogZGVmIHJl YWRfc3BkeGRhdGEocmVwbyk6CiAKICAgICAjIFRoZSBzdWJkaXJlY3RvcmllcyBvZiBMSUNFTlNF UyBpbiB0aGUga2VybmVsIHNvdXJjZQotICAgIGxpY2Vuc2VfZGlycyA9IFsgInByZWZlcnJlZCIg XQorICAgICMgTm90ZTogZXhjZXB0aW9ucyBuZWVkcyB0byBiZSBwYXJzZWQgYXMgbGFzdCBkaXJl Y3RvcnkuCisgICAgbGljZW5zZV9kaXJzID0gWyAicHJlZmVycmVkIiwgImR1YWwiLCAiZGVwcmVj YXRlZCIsICJleGNlcHRpb25zIiBdCiAgICAgbGljdHJlZSA9IHJlcG8uaGVhZC5jb21taXQudHJl ZVsnTElDRU5TRVMnXQogCiAgICAgc3BkeCA9IFNQRFhkYXRhKCkKLS0gCjIuMjcuMAoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmJhcmVib3ggbWFpbGlu ZyBsaXN0CmJhcmVib3hAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2JhcmVib3gK