From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from metis.ext.pengutronix.de ([2001:6f8:1178:4:290:27ff:fe1d:cc33]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1XU8XC-0007WE-FL for barebox@lists.infradead.org; Wed, 17 Sep 2014 06:16:12 +0000 From: Steffen Trumtrar Date: Wed, 17 Sep 2014 08:15:29 +0200 Message-Id: <1410934529-20576-4-git-send-email-s.trumtrar@pengutronix.de> In-Reply-To: <1410934529-20576-1-git-send-email-s.trumtrar@pengutronix.de> References: <1410934529-20576-1-git-send-email-s.trumtrar@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 4/4] ARM: i.MX6: add support for Karo TX6X family To: barebox@lists.infradead.org Cc: Steffen Trumtrar VGhlIEthcm8gVFg2WCBmYW1pbHkgY29uc2lzdHMgb2YgZGlmZmVyZW50IGkuTVg2US9ETCBiYXNl ZCBTeXN0ZW0tb24tTW9kdWxlcy4KQWRkIHN1cHBvcnQgZm9yIHRoZSBUWDZ1IDgwMXggbW9kdWxl cywgdGhhdCBoYXZlIGFuIGkuTVg2REwgU29DLgoKU2lnbmVkLW9mZi1ieTogU3RlZmZlbiBUcnVt dHJhciA8cy50cnVtdHJhckBwZW5ndXRyb25peC5kZT4KLS0tCiBEb2N1bWVudGF0aW9uL2JvYXJk cy9pbXgvS2Fyby1UWDYgICAgICAgICAgICAgICAgICB8ICAxMyArKwogYXJjaC9hcm0vYm9hcmRz L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogYXJjaC9hcm0vYm9h cmRzL2thcm8tdHg2eC8xNjAwbWh6XzR4MTI4bXgxNi5pbXhjZmcgfCAxMDEgKysrKysrKysrKysK IGFyY2gvYXJtL2JvYXJkcy9rYXJvLXR4NngvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAy ICsKIGFyY2gvYXJtL2JvYXJkcy9rYXJvLXR4NngvYm9hcmQuYyAgICAgICAgICAgICAgICAgIHwg MjAyICsrKysrKysrKysrKysrKysrKysrKwogYXJjaC9hcm0vYm9hcmRzL2thcm8tdHg2eC9jbG9j a3MuaW14Y2ZnICAgICAgICAgICAgfCAgMTEgKysKIC4uLi9ib2FyZHMva2Fyby10eDZ4L2ZsYXNo LWhlYWRlci10eDZkbC0xZy5pbXhjZmcgIHwgIDM5ICsrKysKIGFyY2gvYXJtL2JvYXJkcy9rYXJv LXR4NngvbG93bGV2ZWwuYyAgICAgICAgICAgICAgIHwgIDc1ICsrKysrKysrCiBhcmNoL2FybS9i b2FyZHMva2Fyby10eDZ4L3JhbS1iYXNlLmlteGNmZyAgICAgICAgICB8ICA3MSArKysrKysrKwog YXJjaC9hcm0vZHRzL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEg KwogYXJjaC9hcm0vZHRzL2lteDZkbC10eDZ1LTgwMXguZHRzICAgICAgICAgICAgICAgICAgfCAg OTggKysrKysrKysrKwogYXJjaC9hcm0vbWFjaC1pbXgvS2NvbmZpZyAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDQgKwogaW1hZ2VzL01ha2VmaWxlLmlteCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDUgKwogMTMgZmlsZXMgY2hhbmdlZCwgNjIzIGluc2VydGlvbnMoKykK IGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2JvYXJkcy9pbXgvS2Fyby1UWDYKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9ib2FyZHMva2Fyby10eDZ4LzE2MDBtaHpfNHgxMjht eDE2LmlteGNmZwogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2JvYXJkcy9rYXJvLXR4Nngv TWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9ib2FyZHMva2Fyby10eDZ4L2Jv YXJkLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9ib2FyZHMva2Fyby10eDZ4L2Nsb2Nr cy5pbXhjZmcKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9ib2FyZHMva2Fyby10eDZ4L2Zs YXNoLWhlYWRlci10eDZkbC0xZy5pbXhjZmcKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9i b2FyZHMva2Fyby10eDZ4L2xvd2xldmVsLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9i b2FyZHMva2Fyby10eDZ4L3JhbS1iYXNlLmlteGNmZwogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gv YXJtL2R0cy9pbXg2ZGwtdHg2dS04MDF4LmR0cwoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24v Ym9hcmRzL2lteC9LYXJvLVRYNiBiL0RvY3VtZW50YXRpb24vYm9hcmRzL2lteC9LYXJvLVRYNgpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhkZDI2YjU5NjQ0YQotLS0g L2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYm9hcmRzL2lteC9LYXJvLVRYNgpAQCAtMCww ICsxLDEzIEBACitLYVJvIFRYNngKKz09PT09PT09PQorCitUaGlzIENQVSBjYXJkcyBhcmUgYmFz ZWQgb24gYSBGcmVlc2NhbGUgaS5NWDYgU29DLgorVGhlcmUgYXJlIGN1cnJlbnRseSBzaXggdmFy aWFudHMgb2YgdGhpcyBtb2R1bGUsIHRoYXQgYXJlIGRpc3Rpbmd1aXNoZWQKK2J5IHRoZSBzdWZm aXg6ICdRJyB1c2UgYW4gaS5NWDZRIGFuZCAnVScgYW4gaS5NWDZETC4KKworVGhlIFRYNlUtODAx eCBtb2R1bGVzIGFyZSBzaGlwcGVkIHdpdGg6CisKKyAgKiAxMjhNaUIgTkFORCBmbGFzaAorICAq IDEwMjRNaUIgRERSMyBTRFJBTQorCitzZWUgaHR0cDovL3d3dy5rYXJvLWVsZWN0cm9uaWNzLmRl L3R4Ni5odG1sIGZvciBtb3JlIGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2Fy ZHMvTWFrZWZpbGUgYi9hcmNoL2FybS9ib2FyZHMvTWFrZWZpbGUKaW5kZXggYzYwZGE4MTI2MWYw Li43NDgxZTE1ZWNhZjEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2JvYXJkcy9NYWtlZmlsZQorKysg Yi9hcmNoL2FybS9ib2FyZHMvTWFrZWZpbGUKQEAgLTEwNyw2ICsxMDcsNyBAQCBvYmotJChDT05G SUdfTUFDSF9UWDI1KQkJCQkrPSBrYXJvLXR4MjUvCiBvYmotJChDT05GSUdfTUFDSF9UWDI4KQkJ CQkrPSBrYXJvLXR4MjgvCiBvYmotJChDT05GSUdfTUFDSF9UWDUxKQkJCQkrPSBrYXJvLXR4NTEv CiBvYmotJChDT05GSUdfTUFDSF9UWDUzKQkJCQkrPSBrYXJvLXR4NTMvCitvYmotJChDT05GSUdf TUFDSF9UWDZYKQkJCQkrPSBrYXJvLXR4NngvCiBvYmotJChDT05GSUdfTUFDSF9VRE9PKQkJCQkr PSB1ZG9vLwogb2JqLSQoQ09ORklHX01BQ0hfVVNCX0E5MjYwKQkJCSs9IHVzYi1hOTI2eC8KIG9i ai0kKENPTkZJR19NQUNIX1VTQl9BOTI2MykJCQkrPSB1c2ItYTkyNngvCmRpZmYgLS1naXQgYS9h cmNoL2FybS9ib2FyZHMva2Fyby10eDZ4LzE2MDBtaHpfNHgxMjhteDE2LmlteGNmZyBiL2FyY2gv YXJtL2JvYXJkcy9rYXJvLXR4NngvMTYwMG1oel80eDEyOG14MTYuaW14Y2ZnCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjVjNTllM2MzY2IwCi0tLSAvZGV2L251bGwK KysrIGIvYXJjaC9hcm0vYm9hcmRzL2thcm8tdHg2eC8xNjAwbWh6XzR4MTI4bXgxNi5pbXhjZmcK QEAgLTAsMCArMSwxMDEgQEAKKy8qIE1ETUlTQwltaXJyb3JpbmcJaW50ZXJsZWF2ZWQgKHJvdy9i YW5rL2NvbCkgKi8KK3dtIDMyIE1YNl9NTURDX1AwX01ETUlTQwkJMHgwMDAwMDc0MgorY2hlY2sg MzIgd2hpbGVfYWxsX2JpdHNfY2xlYXIgTVg2X01NRENfUDBfTURNSVNDIDB4MDAwMDAwMDIKKwor d20gMzIgTVg2X01NRENfUDBfTURTQ1IJCQkweDAwMDA4MDAwCitjaGVjayAzMiB3aGlsZV9hbnlf Yml0X2NsZWFyIE1YNl9NTURDX1AwX01EU0NSIDB4MDAwMDQwMDAKKword20gMzIgTVg2X01NRENf UDBfTURDVEwJCQkweDgzMWEwMDAwCitjaGVjayAzMiB3aGlsZV9hbnlfYml0X2NsZWFyIE1YNl9N TURDX1AwX01ETUlTQyAweDQwMDAwMDAwCisKK3dtIDMyIE1YNl9NTURDX1AwX01EQ0ZHMAkJMHgz ZjQzNTMzMword20gMzIgTVg2X01NRENfUDBfTURDRkcxCQkweDkyNmU4YTYzCit3bSAzMiBNWDZf TU1EQ19QMF9NRENGRzIJCTB4MDFmZjAwZGIKK3dtIDMyIE1YNl9NTURDX1AwX01EUldECQkJMHgw MDAwMjZkMgord20gMzIgTVg2X01NRENfUDBfTURPUgkJCTB4MDA0MzEwMjMKK3dtIDMyIE1YNl9N TURDX1AwX01ET1RDCQkJMHgxYjMzMzAzMAord20gMzIgTVg2X01NRENfUDBfTURQREMJCQkweDAw MDIwMDZkCit3bSAzMiBNWDZfTU1EQ19QMV9NRFBEQwkJCTB4MDAwMjAwNmQKK3dtIDMyIE1YNl9N TURDX1AwX01EQVNQCQkJMHgwMDAwMDAyNworCit3bSAzMiBNWDZfTU1EQ19QMF9NRFNDUgkJCTB4 MDUyMDgwMzAKK3dtIDMyIE1YNl9NTURDX1AwX01EU0NSCQkJMHgwMDA0ODAzMQord20gMzIgTVg2 X01NRENfUDBfTURTQ1IJCQkweDAwNDA4MDMyCit3bSAzMiBNWDZfTU1EQ19QMF9NRFNDUgkJCTB4 MDAwMDgwMzMKK3dtIDMyIE1YNl9NTURDX1AwX01EUkVGCQkJMHgwMDAwYzAwMAord20gMzIgTVg2 X01NRENfUDBfTURTQ1IJCQkweDAwMDA4MDIwCisKK3dtIDMyIE1YNl9NTURDX1AwX01QT0RUQ1RS TAkJMHgwMDAyMjIyMgord20gMzIgTVg2X01NRENfUDFfTVBPRFRDVFJMCQkweDAwMDIyMjIyCisK K3dtIDMyIE1YNl9NTURDX1AwX01QUERDTVBSMgkJMHgwMDAwMDAwMword20gMzIgTVg2X01NRENf UDBfTUFQU1IJCQkweDAwMDAxMDA3Cit3bSAzMiBNWDZfTU1EQ19QMF9NRFNDUgkJCTB4MDQwMDgw MTAKK3dtIDMyIE1YNl9NTURDX1AwX01EU0NSCQkJMHgwNDAwODA0MAorCit3bSAzMiBNWDZfTU1E Q19QMF9NUFpRSFdDVFJMCQkweEExMzkwMDAxCitjaGVjayAzMiB3aGlsZV9hbGxfYml0c19jbGVh ciBNWDZfTU1EQ19QMF9NUFpRSFdDVFJMIDB4MDAwMTAwMDAKK3dtIDMyIE1YNl9NTURDX1AwX01Q WlFIV0NUUkwJCTB4QTEzODAwMDAKKword20gMzIgTVg2X01NRENfUDBfTVBXTERFQ1RSTDAJMHgw MDFlMDAxZQord20gMzIgTVg2X01NRENfUDBfTVBXTERFQ1RSTDEJMHgwMDFlMDAxZQord20gMzIg TVg2X01NRENfUDFfTVBXTERFQ1RSTDAJMHgwMDFlMDAxZQord20gMzIgTVg2X01NRENfUDFfTVBX TERFQ1RSTDEJMHgwMDFlMDAxZQorCit3bSAzMiBNWDZfTU1EQ19QMF9NRFNDUgkJCTB4MDAwNDgw MzMKK3dtIDMyIE1YNl9JT01fRFJBTV9TRFFTMAkJMHgwMDAwNzAzMAord20gMzIgTVg2X0lPTV9E UkFNX1NEUVMxCQkweDAwMDA3MDMwCit3bSAzMiBNWDZfSU9NX0RSQU1fU0RRUzIJCTB4MDAwMDcw MzAKK3dtIDMyIE1YNl9JT01fRFJBTV9TRFFTMwkJMHgwMDAwNzAzMAord20gMzIgTVg2X0lPTV9E UkFNX1NEUVM0CQkweDAwMDA3MDMwCit3bSAzMiBNWDZfSU9NX0RSQU1fU0RRUzUJCTB4MDAwMDcw MzAKK3dtIDMyIE1YNl9JT01fRFJBTV9TRFFTNgkJMHgwMDAwNzAzMAord20gMzIgTVg2X0lPTV9E UkFNX1NEUVM3CQkweDAwMDA3MDMwCisKK3dtIDMyIE1YNl9NTURDX1AwX01EU0NSCQkJMHgwMDAw ODAyMAord20gMzIgTVg2X01NRENfUDBfTURTQ1IJCQkweDA0MDA4MDUwCisKK3dtIDMyIE1YNl9N TURDX1AwX01QUkRETENUTAkJMHg0MDQwNDA0MAord20gMzIgTVg2X01NRENfUDBfTVBXUkRMQ1RM CQkweDQwNDA0MDQwCit3bSAzMiBNWDZfTU1EQ19QMV9NUFJERExDVEwJCTB4NDA0MDQwNDAKK3dt IDMyIE1YNl9NTURDX1AxX01QV1JETENUTAkJMHg0MDQwNDA0MAord20gMzIgTVg2X01NRENfUDBf TVBNVVIwCQkweDAwMDAwODAwCisKK3dtIDMyIE1YNl9NTURDX1AwX01QREdDVFJMMAkJMHg4MDAw MDAwMAorY2hlY2sgMzIgd2hpbGVfYWxsX2JpdHNfY2xlYXIgTVg2X01NRENfUDBfTVBER0NUUkww IDB4ODAwMDAwMDAKK3dtIDMyIE1YNl9NTURDX1AwX01QREdDVFJMMAkJMHg4MDAwMDAwMAorY2hl Y2sgMzIgd2hpbGVfYWxsX2JpdHNfY2xlYXIgTVg2X01NRENfUDBfTVBER0NUUkwwIDB4ODAwMDAw MDAKK3dtIDMyIE1YNl9NTURDX1AwX01QREdDVFJMMAkJMHg1MDgwMDAwMAorY2hlY2sgMzIgd2hp bGVfYWxsX2JpdHNfY2xlYXIgTVg2X01NRENfUDBfTVBER0NUUkwwIDB4MTAwMDEwMDAKKword20g MzIgTVg2X0lPTV9EUkFNX1NEUVMwCQkweDAwMDAwMDMwCit3bSAzMiBNWDZfSU9NX0RSQU1fU0RR UzEJCTB4MDAwMDAwMzAKK3dtIDMyIE1YNl9JT01fRFJBTV9TRFFTMgkJMHgwMDAwMDAzMAord20g MzIgTVg2X0lPTV9EUkFNX1NEUVMzCQkweDAwMDAwMDMwCit3bSAzMiBNWDZfSU9NX0RSQU1fU0RR UzQJCTB4MDAwMDAwMzAKK3dtIDMyIE1YNl9JT01fRFJBTV9TRFFTNQkJMHgwMDAwMDAzMAord20g MzIgTVg2X0lPTV9EUkFNX1NEUVM2CQkweDAwMDAwMDMwCit3bSAzMiBNWDZfSU9NX0RSQU1fU0RR UzcJCTB4MDAwMDAwMzAKKword20gMzIgTVg2X01NRENfUDBfTURTQ1IJCQkweDA0MDA4MDUwCit3 bSAzMiBNWDZfTU1EQ19QMF9NUFJERExIV0NUTAkJMHgwMDAwMDAzMAord20gMzIgTVg2X01NRENf UDFfTVBSRERMSFdDVEwJCTB4MDAwMDAwMzAKKworY2hlY2sgMzIgd2hpbGVfYWxsX2JpdHNfY2xl YXIgTVg2X01NRENfUDBfTVBSRERMSFdDVEwgMHgwMDAwMDAxZgorY2hlY2sgMzIgd2hpbGVfYWxs X2JpdHNfY2xlYXIgTVg2X01NRENfUDFfTVBSRERMSFdDVEwgMHgwMDAwMDAxZgorCit3bSAzMiBN WDZfTU1EQ19QMF9NRFNDUgkJCTB4MDQwMDgwNTAKK3dtIDMyIE1YNl9NTURDX1AwX01QV1JETEhX Q1RMCQkweDAwMDAwMDMwCitjaGVjayAzMiB3aGlsZV9hbGxfYml0c19jbGVhciBNWDZfTU1EQ19Q MF9NUFdSRExIV0NUTCAweDAwMDAwMDFmCisKK3dtIDMyIE1YNl9NTURDX1AwX01EU0NSCQkJMHgw NDAwODA1MAord20gMzIgTVg2X01NRENfUDFfTVBXUkRMSFdDVEwJCTB4MDAwMDAwMzAKK2NoZWNr IDMyIHdoaWxlX2FsbF9iaXRzX2NsZWFyIE1YNl9NTURDX1AxX01QV1JETEhXQ1RMIDB4MDAwMDAw MWYKK3dtIDMyIE1YNl9NTURDX1AwX01EU0NSCQkJMHgwMDAwODAzMword20gMzIgTVg2X01NRENf UDBfTVBaUUhXQ1RSTAkJMHhhMTM4MDAyYgord20gMzIgTVg2X01NRENfUDBfTURSRUYJCQkweDAw MDAxODAwCit3bSAzMiBNWDZfTU1EQ19QMF9NQVBTUgkJCTB4MDAwMDEwMDYKK3dtIDMyIE1YNl9N TURDX1AwX01EUERDCQkJMHgwMDAyNTU2ZAord20gMzIgTVg2X01NRENfUDFfTURQREMJCQkweDAw MDI1NTZkCit3bSAzMiBNWDZfTU1EQ19QMF9NRFNDUgkJCTB4MDAwMDAwMDAKK2NoZWNrIDMyIHdo aWxlX2FsbF9iaXRzX2NsZWFyIE1YNl9NTURDX1AwX01EU0NSIDB4MDAwMDQwMDAKZGlmZiAtLWdp dCBhL2FyY2gvYXJtL2JvYXJkcy9rYXJvLXR4NngvTWFrZWZpbGUgYi9hcmNoL2FybS9ib2FyZHMv a2Fyby10eDZ4L01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uMDFjN2EyNTllOWE1Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vYm9hcmRzL2thcm8t dHg2eC9NYWtlZmlsZQpAQCAtMCwwICsxLDIgQEAKK29iai15ICs9IGJvYXJkLm8KK2x3bC15ICs9 IGxvd2xldmVsLm8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9rYXJvLXR4NngvYm9hcmQu YyBiL2FyY2gvYXJtL2JvYXJkcy9rYXJvLXR4NngvYm9hcmQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjZkOWRkOWE1MDVmMAotLS0gL2Rldi9udWxsCisrKyBiL2Fy Y2gvYXJtL2JvYXJkcy9rYXJvLXR4NngvYm9hcmQuYwpAQCAtMCwwICsxLDIwMiBAQAorLyoKKyAq IENvcHlyaWdodCAoQykgMjAxNCBTdGVmZmVuIFRydW10cmFyLCBQZW5ndXRyb25peAorICoKKyAq CisgKiB3aXRoIHRoZSBQTUlDIGluaXQgY29kZSB0YWtlbiBmcm9tIHUtYm9vdAorICogQ29weXJp Z2h0IChDKSAyMDEyLDIwMTMgTG90aGFyIFdhw59tYW5uIDxMV0BLQVJPLWVsZWN0cm9uaWNzLmRl PgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKyAqLworCisjaW5jbHVkZSA8Y29tbW9uLmg+CisjaW5jbHVkZSA8Z3Bpby5oPgorI2luY2x1 ZGUgPGluaXQuaD4KKyNpbmNsdWRlIDxpMmMvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+ CisjaW5jbHVkZSA8ZW52aXJvbm1lbnQuaD4KKyNpbmNsdWRlIDxtYWNoL2JidS5oPgorI2luY2x1 ZGUgPG1hY2gvaW14Ni5oPgorI2luY2x1ZGUgPG1mZC9pbXg2cS1pb211eGMtZ3ByLmg+CisKKyNk ZWZpbmUgRVRIX1BIWV9SU1QJSU1YX0dQSU9fTlIoNywgNikKKyNkZWZpbmUgRVRIX1BIWV9QV1IJ SU1YX0dQSU9fTlIoMywgMjApCisjZGVmaW5lIEVUSF9QSFlfSU5UCUlNWF9HUElPX05SKDcsIDEp CisjZGVmaW5lIERJVl9ST1VORF9VUChuLGQpICAgICAgKCgobikgKyAoZCkgLSAxKSAvIChkKSkK KyNkZWZpbmUgRElWX1JPVU5EKG4sZCkgICAgICAgICAoKChuKSArICgoZCkvMikpIC8gKGQpKQor CisjZGVmaW5lIExUQzM2NzZfQlVDSzEJCTB4MDEKKyNkZWZpbmUgTFRDMzY3Nl9CVUNLMgkJMHgw MgorI2RlZmluZSBMVEMzNjc2X0JVQ0szCQkweDAzCisjZGVmaW5lIExUQzM2NzZfQlVDSzQJCTB4 MDQKKyNkZWZpbmUgTFRDMzY3Nl9EVkIxQQkJMHgwQQorI2RlZmluZSBMVEMzNjc2X0RWQjFCCQkw eDBCCisjZGVmaW5lIExUQzM2NzZfRFZCMkEJCTB4MEMKKyNkZWZpbmUgTFRDMzY3Nl9EVkIyQgkJ MHgwRAorI2RlZmluZSBMVEMzNjc2X0RWQjNBCQkweDBFCisjZGVmaW5lIExUQzM2NzZfRFZCM0IJ CTB4MEYKKyNkZWZpbmUgTFRDMzY3Nl9EVkI0QQkJMHgxMAorI2RlZmluZSBMVEMzNjc2X0RWQjRC CQkweDExCisjZGVmaW5lIExUQzM2NzZfTVNLUEcJCTB4MTMKKyNkZWZpbmUgTFRDMzY3Nl9DTElS UQkJMHgxZgorCisjZGVmaW5lIExUQzM2NzZfQlVDS19EVkRUX0ZBU1QJKDEgPDwgMCkKKyNkZWZp bmUgTFRDMzY3Nl9CVUNLX0tFRVBfQUxJVkUJKDEgPDwgMSkKKyNkZWZpbmUgTFRDMzY3Nl9CVUNL X0NMS19SQVRFX0xPVyAoMSA8PCAyKQorI2RlZmluZSBMVEMzNjc2X0JVQ0tfUEhBU0VfU0VMCSgx IDw8IDMpCisjZGVmaW5lIExUQzM2NzZfQlVDS19FTkFCTEVfMzAwCSgxIDw8IDQpCisjZGVmaW5l IExUQzM2NzZfQlVDS19QVUxTRV9TS0lQCSgwIDw8IDUpCisjZGVmaW5lIExUQzM2NzZfQlVDS19C VVJTVF9NT0RFCSgxIDw8IDUpCisjZGVmaW5lIExUQzM2NzZfQlVDS19DT05USU5VT1VTCSgyIDw8 IDUpCisjZGVmaW5lIExUQzM2NzZfQlVDS19FTkFCTEUJKDEgPDwgNykKKworI2RlZmluZSBMVEMz Njc2X1BHT09EX01BU0sJKDEgPDwgNSkKKworI2RlZmluZSBMVEMzNjc2X01TS1BHX0JVQ0sxCSgx IDw8IDApCisjZGVmaW5lIExUQzM2NzZfTVNLUEdfQlVDSzIJKDEgPDwgMSkKKyNkZWZpbmUgTFRD MzY3Nl9NU0tQR19CVUNLMwkoMSA8PCAyKQorI2RlZmluZSBMVEMzNjc2X01TS1BHX0JVQ0s0CSgx IDw8IDMpCisjZGVmaW5lIExUQzM2NzZfTVNLUEdfTERPMgkoMSA8PCA1KQorI2RlZmluZSBMVEMz Njc2X01TS1BHX0xETzMJKDEgPDwgNikKKyNkZWZpbmUgTFRDMzY3Nl9NU0tQR19MRE80CSgxIDw8 IDcpCisKKyNkZWZpbmUgVkREX0lPX1ZBTAkJbVZfdG9fcmVndmFsKHZvdXRfdG9fdnJlZigzMzAw ICogMTAsIDUpKQorI2RlZmluZSBWRERfSU9fVkFMX0xQCQltVl90b19yZWd2YWwodm91dF90b192 cmVmKDMxMDAgKiAxMCwgNSkpCisjZGVmaW5lIFZERF9JT19WQUxfMgkJbVZfdG9fcmVndmFsKHZv dXRfdG9fdnJlZigzMzAwICogMTAsIDVfMikpCisjZGVmaW5lIFZERF9JT19WQUxfMl9MUAkJbVZf dG9fcmVndmFsKHZvdXRfdG9fdnJlZigzMTAwICogMTAsIDVfMikpCisjZGVmaW5lIFZERF9TT0Nf VkFMCQltVl90b19yZWd2YWwodm91dF90b192cmVmKDE0MjUgKiAxMCwgNikpCisjZGVmaW5lIFZE RF9TT0NfVkFMX0xQCQltVl90b19yZWd2YWwodm91dF90b192cmVmKDkwMCAqIDEwLCA2KSkKKyNk ZWZpbmUgVkREX0REUl9WQUwJCW1WX3RvX3JlZ3ZhbCh2b3V0X3RvX3ZyZWYoMTUwMCAqIDEwLCA3 KSkKKyNkZWZpbmUgVkREX0REUl9WQUxfTFAJCW1WX3RvX3JlZ3ZhbCh2b3V0X3RvX3ZyZWYoMTUw MCAqIDEwLCA3KSkKKyNkZWZpbmUgVkREX0NPUkVfVkFMCQltVl90b19yZWd2YWwodm91dF90b192 cmVmKDE0MjUgKiAxMCwgOCkpCisjZGVmaW5lIFZERF9DT1JFX1ZBTF9MUAkJbVZfdG9fcmVndmFs KHZvdXRfdG9fdnJlZig5MDAgKiAxMCwgOCkpCisKKy8qIExETzEgKi8KKyNkZWZpbmUgUjFfMQkJ CTQ3MAorI2RlZmluZSBSMl8xCQkJMTUwCisvKiBMRE80ICovCisjZGVmaW5lIFIxXzQJCQk0NzAK KyNkZWZpbmUgUjJfNAkJCTE1MAorLyogQnVjazEgKi8KKyNkZWZpbmUgUjFfNQkJCTM5MAorI2Rl ZmluZSBSMl81CQkJMTEwCisjZGVmaW5lIFIxXzVfMgkJCTQ3MAorI2RlZmluZSBSMl81XzIJCQkx NTAKKy8qIEJ1Y2syIChTT0MpICovCisjZGVmaW5lIFIxXzYJCQkxNTAKKyNkZWZpbmUgUjJfNgkJ CTE4MAorLyogQnVjazMgKEREUikgKi8KKyNkZWZpbmUgUjFfNwkJCTE1MAorI2RlZmluZSBSMl83 CQkJMTQwCisvKiBCdWNrNCAoQ09SRSkgKi8KKyNkZWZpbmUgUjFfOAkJCTE1MAorI2RlZmluZSBS Ml84CQkJMTgwCisKKy8qIGNhbGN1bGF0ZSB2b2x0YWdlcyBpbiAxMG1WICovCisjZGVmaW5lIFIx KGlkeCkJCQlSMV8jI2lkeAorI2RlZmluZSBSMihpZHgpCQkJUjJfIyNpZHgKKworI2RlZmluZSB2 b3V0X3RvX3ZyZWYodm91dCwgaWR4KQkoKHZvdXQpICogUjIoaWR4KSAvIChSMShpZHgpICsgUjIo aWR4KSkpCisjZGVmaW5lIHZyZWZfdG9fdm91dCh2cmVmLCBpZHgpCURJVl9ST1VORF9VUCgodnJl ZikgKiAoUjEoaWR4KSArIFIyKGlkeCkpLCBSMihpZHgpKQorCisjZGVmaW5lIG1WX3RvX3JlZ3Zh bChtVikJRElWX1JPVU5EKCgoKChtVikgPCA0MTI1KSA/IDQxMjUgOiAobVYpKSAtIDQxMjUpLCAx MjUpCisjZGVmaW5lIHJlZ3ZhbF90b19tVih2KQkJKCgodikgKiAxMjUgKyA0MTI1KSkKKworc3Rh dGljIHN0cnVjdCBsdGMzNjczX3JlZ3MgeworCXU4IGFkZHI7CisJdTggdmFsOworCXU4IG1hc2s7 Cit9IGx0YzM2NzZfcmVnc1tdID0geworCXsgTFRDMzY3Nl9NU0tQRywgfkxUQzM2NzZfTVNLUEdf QlVDSzEsIH0sCisJeyBMVEMzNjc2X0RWQjJCLCBWRERfU09DX1ZBTF9MUCB8IExUQzM2NzZfUEdP T0RfTUFTSywgfjB4M2YsIH0sCisJeyBMVEMzNjc2X0RWQjNCLCBWRERfRERSX1ZBTF9MUCwgfjB4 M2YsIH0sCisJeyBMVEMzNjc2X0RWQjRCLCBWRERfQ09SRV9WQUxfTFAgfCBMVEMzNjc2X1BHT09E X01BU0ssIH4weDNmLCB9LAorCXsgTFRDMzY3Nl9EVkIyQSwgVkREX1NPQ19WQUwsIH4weDNmLCB9 LAorCXsgTFRDMzY3Nl9EVkIzQSwgVkREX0REUl9WQUwsIH4weDNmLCB9LAorCXsgTFRDMzY3Nl9E VkI0QSwgVkREX0NPUkVfVkFMLCB+MHgzZiwgfSwKKwl7IExUQzM2NzZfQlVDSzEsIExUQzM2NzZf QlVDS19CVVJTVF9NT0RFIHwgTFRDMzY3Nl9CVUNLX0NMS19SQVRFX0xPVywgfSwKKwl7IExUQzM2 NzZfQlVDSzIsIExUQzM2NzZfQlVDS19CVVJTVF9NT0RFLCB9LAorCXsgTFRDMzY3Nl9CVUNLMywg TFRDMzY3Nl9CVUNLX0JVUlNUX01PREUsIH0sCisJeyBMVEMzNjc2X0JVQ0s0LCBMVEMzNjc2X0JV Q0tfQlVSU1RfTU9ERSwgfSwKKwl7IExUQzM2NzZfQ0xJUlEsIDAsIH0sIC8qIGNsZWFyIGludGVy cnVwdCBzdGF0dXMgKi8KK307CisKK3N0YXRpYyBzdHJ1Y3QgbHRjMzY3M19yZWdzIGx0YzM2NzZf cmVnc18yW10gPSB7CisJeyBMVEMzNjc2X0RWQjFCLCBWRERfSU9fVkFMXzJfTFAgfCBMVEMzNjc2 X1BHT09EX01BU0ssIH4weDNmLCB9LAorCXsgTFRDMzY3Nl9EVkIxQSwgVkREX0lPX1ZBTF8yLCB+ MHgzZiwgfSwKK307CisKKworc3RhdGljIGludCBzZXR1cF9wbWljX3ZvbHRhZ2VzKHZvaWQpCit7 CisJc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyID0gTlVMTDsKKwlzdHJ1Y3QgaTJjX2NsaWVu dCBjbGllbnQ7CisJaW50IGFkZHIgPSAweDNjOworCWludCBidXMgPSAwOworCWludCBpOworCXN0 cnVjdCBsdGMzNjczX3JlZ3MgKnI7CisKKwlhZGFwdGVyID0gaTJjX2dldF9hZGFwdGVyKGJ1cyk7 CisJaWYgKCFhZGFwdGVyKSB7CisJCXByX2VycigiaTJjIGJ1cyAlZCBub3QgZm91bmRcbiIsIGJ1 cyk7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCWNsaWVudC5hZGFwdGVyID0gYWRhcHRlcjsK KwljbGllbnQuYWRkciA9IGFkZHI7CisKKwlyID0gbHRjMzY3Nl9yZWdzOworCisJZm9yIChpID0g MDsgaSA8IEFSUkFZX1NJWkUobHRjMzY3Nl9yZWdzKTsgaSsrLCByKyspIHsKKwkJaWYgKGkyY193 cml0ZV9yZWcoJmNsaWVudCwgci0+YWRkciwgJnItPnZhbCwgMSkgIT0gMSkgeworCQkJcHJfZXJy KCJpMmMgd3JpdGUgZXJyb3JcbiIpOworCQkJcmV0dXJuIC1FSU87CisJCX0KKwl9CisKKwlyID0g bHRjMzY3Nl9yZWdzXzI7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShsdGMzNjc2X3Jl Z3NfMik7IGkrKywgcisrKSB7CisJCWlmIChpMmNfd3JpdGVfcmVnKCZjbGllbnQsIHItPmFkZHIs ICZyLT52YWwsIDEpICE9IDEpIHsKKwkJCXByX2VycigiaTJjIHdyaXRlIGVycm9yXG4iKTsKKwkJ CXJldHVybiAtRUlPOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGV0 aF9pbml0KHZvaWQpCit7CisJdm9pZCBfX2lvbWVtICppb211eCA9ICh2b2lkICopTVg2X0lPTVVY Q19CQVNFX0FERFI7CisJdWludDMyX3QgdmFsOworCisJdmFsID0gcmVhZGwoaW9tdXggKyBJT01V WENfR1BSMSk7CisJdmFsIHw9IElNWDZRX0dQUjFfRU5FVF9DTEtfU0VMX0FOQVRPUDsKKwl3cml0 ZWwodmFsLCBpb211eCArIElPTVVYQ19HUFIxKTsKK30KKworc3RhdGljIGludCB0eDZ4X2Rldmlj ZXNfaW5pdCh2b2lkKQoreworCWlmICghb2ZfbWFjaGluZV9pc19jb21wYXRpYmxlKCJrYXJvLGlt eDZkbC10eDZkbCIpICYmCisJICAgICFvZl9tYWNoaW5lX2lzX2NvbXBhdGlibGUoImthcm8saW14 NnEtdHg2cSIpKQorCQlyZXR1cm4gMDsKKworCWJhcmVib3hfc2V0X2hvc3RuYW1lKCJ0eDZ1Iik7 CisKKwlldGhfaW5pdCgpOworCisJc2V0dXBfcG1pY192b2x0YWdlcygpOworCisJaW14Nl9iYnVf bmFuZF9yZWdpc3Rlcl9oYW5kbGVyKCJuYW5kIiwgQkJVX0hBTkRMRVJfRkxBR19ERUZBVUxUKTsK KworCXJldHVybiAwOworfQorZGV2aWNlX2luaXRjYWxsKHR4NnhfZGV2aWNlc19pbml0KTsKZGlm ZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9rYXJvLXR4NngvY2xvY2tzLmlteGNmZyBiL2FyY2gv YXJtL2JvYXJkcy9rYXJvLXR4NngvY2xvY2tzLmlteGNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLmI5MzE5ZDZhZTQ3MwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gv YXJtL2JvYXJkcy9rYXJvLXR4NngvY2xvY2tzLmlteGNmZwpAQCAtMCwwICsxLDExIEBACit3bSAz MiAweDAyMGUwMjE4CQkweDAwMDAwMDA1Cit3bSAzMiAweDAyMGM0MDJjCQkweDAwNjMzNmMxCisv KiBFTkVUIFBMTCAqLword20gMzIgMHgwMjBjODBlMAkJMHgwMDAwMjAwMQord20gMzIgTVg2X0ND TV9DQ0dSMAkJMHhmMGMwM2YzZgord20gMzIgTVg2X0NDTV9DQ0dSMQkJMHhmMGZjMEMwMAord20g MzIgTVg2X0NDTV9DQ0dSMgkJMHhmYzNmZjBjYword20gMzIgTVg2X0NDTV9DQ0dSMwkJMHgzZmYw MDAwMAord20gMzIgTVg2X0NDTV9DQ0dSNAkJMHhmZjAwZmYwMAord20gMzIgTVg2X0NDTV9DQ0dS NQkJMHhmZjAzM2YwZgord20gMzIgTVg2X0NDTV9DQ0dSNgkJMHhmZmZmMDNGRgpkaWZmIC0tZ2l0 IGEvYXJjaC9hcm0vYm9hcmRzL2thcm8tdHg2eC9mbGFzaC1oZWFkZXItdHg2ZGwtMWcuaW14Y2Zn IGIvYXJjaC9hcm0vYm9hcmRzL2thcm8tdHg2eC9mbGFzaC1oZWFkZXItdHg2ZGwtMWcuaW14Y2Zn Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGVjZGJlNmYyMzhmCi0t LSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vYm9hcmRzL2thcm8tdHg2eC9mbGFzaC1oZWFkZXIt dHg2ZGwtMWcuaW14Y2ZnCkBAIC0wLDAgKzEsMzkgQEAKK3NvYyBpbXg2Citsb2FkYWRkciAweDIw MDAwMDAwCitkY2RvZnMgMHg0MDAKKworI2luY2x1ZGUgPG1hY2gvaW14Ni1kZHItcmVncy5oPgor I2luY2x1ZGUgPG1hY2gvaW14NmRsLWRkci1yZWdzLmg+CisjaW5jbHVkZSA8bWFjaC9pbXg2LWNj bS1yZWdzLmg+CisKKyNpbmNsdWRlICJjbG9ja3MuaW14Y2ZnIgorCit3bSAzMiAweDAyMGUwMzMw IDB4MDAwMDAwMDEKK3dtIDMyIDB4MDIwZTAzMmMgMHgwMDAwMDAwMQord20gMzIgMHgwMjBlMDhm YyAweDAwMDAwMDAyCit3bSAzMiAweDAyMGUwMzE0IDB4MDAwMDAwMDEKK3dtIDMyIDB4MDIwZTAz MTggMHgwMDAwMDAwMQord20gMzIgMHgwMjBlMDhmOCAweDAwMDAwMDAzCisKK3dtIDMyIDB4MDIw ZTAyNzAgMHgwMDAwMDAwMAord20gMzIgMHgwMjBlMDI2YyAweDAwMDAwMDAwCit3bSAzMiAweDAy MGUwMmE4IDB4MDAwMDAwMDAKK3dtIDMyIDB4MDIwZTAyYTQgMHgwMDAwMDAwMAord20gMzIgMHgw MjBlMDI3NCAweDAwMDAwMDAwCisKK3dtIDMyIDB4MDIwZTAzM2MgMHgwMDAwMDAwMQord20gMzIg MHgwMjBlMDMzOCAweDAwMDAwMDAxCisKK3dtIDMyIDB4MDIwZTAyODQgMHgwMDAwMDAwMAord20g MzIgMHgwMjBlMDI4OCAweDAwMDAwMDAwCit3bSAzMiAweDAyMGUwMjhjIDB4MDAwMDAwMDAKK3dt IDMyIDB4MDIwZTAyOTAgMHgwMDAwMDAwMAord20gMzIgMHgwMjBlMDI5NCAweDAwMDAwMDAwCit3 bSAzMiAweDAyMGUwMjk4IDB4MDAwMDAwMDAKK3dtIDMyIDB4MDIwZTAyOWMgMHgwMDAwMDAwMAor d20gMzIgMHgwMjBlMDJhMCAweDAwMDAwMDAwCit3bSAzMiAweDAyMGUwMjdjIDB4MDAwMDAwMDAK KworI2luY2x1ZGUgInJhbS1iYXNlLmlteGNmZyIKKyNpbmNsdWRlICIxNjAwbWh6XzR4MTI4bXgx Ni5pbXhjZmciCisKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9rYXJvLXR4NngvbG93bGV2 ZWwuYyBiL2FyY2gvYXJtL2JvYXJkcy9rYXJvLXR4NngvbG93bGV2ZWwuYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjAwMDA4ZDQwM2NlMgotLS0gL2Rldi9udWxsCisr KyBiL2FyY2gvYXJtL2JvYXJkcy9rYXJvLXR4NngvbG93bGV2ZWwuYwpAQCAtMCwwICsxLDc1IEBA CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IFN0ZWZmZW4gVHJ1bXRyYXIsIFBlbmd1dHJvbml4 CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorICovCisKKyNpbmNsdWRlIDxkZWJ1Z19sbC5oPgorI2luY2x1ZGUgPGNvbW1vbi5oPgorI2lu Y2x1ZGUgPGFzbS9iYXJlYm94LWFybS1oZWFkLmg+CisjaW5jbHVkZSA8YXNtL2JhcmVib3gtYXJt Lmg+CisjaW5jbHVkZSA8aW1hZ2UtbWV0YWRhdGEuaD4KKyNpbmNsdWRlIDxtYWNoL2dlbmVyaWMu aD4KKyNpbmNsdWRlIDxzaXplcy5oPgorCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfdWFydCh2 b2lkKQoreworCXZvaWQgX19pb21lbSAqY2NtYmFzZSA9ICh2b2lkICopTVg2X0NDTV9CQVNFX0FE RFI7CisJdm9pZCBfX2lvbWVtICp1YXJ0YmFzZSA9ICh2b2lkICopTVg2X1VBUlQxX0JBU0VfQURE UjsKKwl2b2lkIF9faW9tZW0gKmlvbXV4YmFzZSA9ICh2b2lkICopTVg2X0lPTVVYQ19CQVNFX0FE RFI7CisKKwl3cml0ZWwoMHgxLCBpb211eGJhc2UgKyAweDAzMTQpOworCXdyaXRlbCgweDEsIGlv bXV4YmFzZSArIDB4MDMxOCk7CisJd3JpdGVsKDB4MSwgaW9tdXhiYXNlICsgMHgwMzMwKTsKKwl3 cml0ZWwoMHgxLCBpb211eGJhc2UgKyAweDAzMmMpOworCisJd3JpdGVsKDB4ZmZmZmZmZmYsIGNj bWJhc2UgKyAweDY4KTsKKwl3cml0ZWwoMHhmZmZmZmZmZiwgY2NtYmFzZSArIDB4NmMpOworCXdy aXRlbCgweGZmZmZmZmZmLCBjY21iYXNlICsgMHg3MCk7CisJd3JpdGVsKDB4ZmZmZmZmZmYsIGNj bWJhc2UgKyAweDc0KTsKKwl3cml0ZWwoMHhmZmZmZmZmZiwgY2NtYmFzZSArIDB4NzgpOworCXdy aXRlbCgweGZmZmZmZmZmLCBjY21iYXNlICsgMHg3Yyk7CisJd3JpdGVsKDB4ZmZmZmZmZmYsIGNj bWJhc2UgKyAweDgwKTsKKworCXdyaXRlbCgweDAwMDAwMDAwLCB1YXJ0YmFzZSArIDB4ODApOwor CXdyaXRlbCgweDAwMDA0MDI3LCB1YXJ0YmFzZSArIDB4ODQpOworCXdyaXRlbCgweDAwMDAwNzg0 LCB1YXJ0YmFzZSArIDB4ODgpOworCXdyaXRlbCgweDAwMDAwYTgxLCB1YXJ0YmFzZSArIDB4OTAp OworCXdyaXRlbCgweDAwMDAwMDJiLCB1YXJ0YmFzZSArIDB4OWMpOworCXdyaXRlbCgweDAwMDFi MGIwLCB1YXJ0YmFzZSArIDB4YjApOworCXdyaXRlbCgweDAwMDAwNDdmLCB1YXJ0YmFzZSArIDB4 YTQpOworCXdyaXRlbCgweDAwMDBjMzRmLCB1YXJ0YmFzZSArIDB4YTgpOworCXdyaXRlbCgweDAw MDAwMDAxLCB1YXJ0YmFzZSArIDB4ODApOworCisJcHV0Y19sbCgnPicpOworfQorCitleHRlcm4g Y2hhciBfX2R0Yl9pbXg2ZGxfdHg2dV84MDF4X3N0YXJ0W107CisKK0JBUkVCT1hfSU1EX1RBR19T VFJJTkcodHg2eF9teDZfbWVtc2l6ZV8xRywgSU1EX1RZUEVfUEFSQU1FVEVSLCAibWVtc2l6ZT0x MDI0IiwgMCk7CisKK0VOVFJZX0ZVTkNUSU9OKHN0YXJ0X2lteDZkbF90eDZ4XzFnLCByMCwgcjEs IHIyKQoreworCXZvaWQgKmZkdDsKKworCWlteDZfY3B1X2xvd2xldmVsX2luaXQoKTsKKworCWFy bV9zZXR1cF9zdGFjaygweDAwOTIwMDAwIC0gOCk7CisKKwlJTURfVVNFRCh0eDZ4X214Nl9tZW1z aXplXzFHKTsKKworCWlmIChJU19FTkFCTEVEKENPTkZJR19ERUJVR19MTCkpCisJCXNldHVwX3Vh cnQoKTsKKworCWZkdCA9IF9fZHRiX2lteDZkbF90eDZ1XzgwMXhfc3RhcnQgLSBnZXRfcnVudGlt ZV9vZmZzZXQoKTsKKworCWJhcmVib3hfYXJtX2VudHJ5KDB4MTAwMDAwMDAsIFNaXzFHLCBmZHQp OworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2thcm8tdHg2eC9yYW0tYmFzZS5pbXhj ZmcgYi9hcmNoL2FybS9ib2FyZHMva2Fyby10eDZ4L3JhbS1iYXNlLmlteGNmZwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU5MTJmYjBmMmI1MgotLS0gL2Rldi9udWxs CisrKyBiL2FyY2gvYXJtL2JvYXJkcy9rYXJvLXR4NngvcmFtLWJhc2UuaW14Y2ZnCkBAIC0wLDAg KzEsNzEgQEAKK3dtIDMyIE1YNl9JT01fRFJBTV9EUU0wCQkJMHgwMDAyMDAzMAord20gMzIgTVg2 X0lPTV9EUkFNX0RRTTEJCQkweDAwMDIwMDMwCit3bSAzMiBNWDZfSU9NX0RSQU1fRFFNMgkJCTB4 MDAwMjAwMzAKK3dtIDMyIE1YNl9JT01fRFJBTV9EUU0zCQkJMHgwMDAyMDAzMAord20gMzIgTVg2 X0lPTV9EUkFNX0RRTTQJCQkweDAwMDIwMDMwCit3bSAzMiBNWDZfSU9NX0RSQU1fRFFNNQkJCTB4 MDAwMjAwMzAKK3dtIDMyIE1YNl9JT01fRFJBTV9EUU02CQkJMHgwMDAyMDAzMAord20gMzIgTVg2 X0lPTV9EUkFNX0RRTTcJCQkweDAwMDIwMDMwCisKK3dtIDMyIE1YNl9JT01fRFJBTV9BRERSMDAJ CTB4MDAwMDAwMDAKK3dtIDMyIE1YNl9JT01fRFJBTV9BRERSMDEJCTB4MDAwMDAwMDAKK3dtIDMy IE1YNl9JT01fRFJBTV9BRERSMDIJCTB4MDAwMDAwMDAKK3dtIDMyIE1YNl9JT01fRFJBTV9BRERS MDMJCTB4MDAwMDAwMDAKK3dtIDMyIE1YNl9JT01fRFJBTV9BRERSMDQJCTB4MDAwMDAwMDAKK3dt IDMyIE1YNl9JT01fRFJBTV9BRERSMDUJCTB4MDAwMDAwMDAKK3dtIDMyIE1YNl9JT01fRFJBTV9B RERSMDYJCTB4MDAwMDAwMDAKK3dtIDMyIE1YNl9JT01fRFJBTV9BRERSMDcJCTB4MDAwMDAwMDAK K3dtIDMyIE1YNl9JT01fRFJBTV9BRERSMDgJCTB4MDAwMDAwMDAKK3dtIDMyIE1YNl9JT01fRFJB TV9BRERSMDkJCTB4MDAwMDAwMDAKK3dtIDMyIE1YNl9JT01fRFJBTV9BRERSMTAJCTB4MDAwMDAw MDAKK3dtIDMyIE1YNl9JT01fRFJBTV9BRERSMTEJCTB4MDAwMDAwMDAKK3dtIDMyIE1YNl9JT01f RFJBTV9BRERSMTIJCTB4MDAwMDAwMDAKK3dtIDMyIE1YNl9JT01fRFJBTV9BRERSMTMJCTB4MDAw MDAwMDAKK3dtIDMyIE1YNl9JT01fRFJBTV9BRERSMTQJCTB4MDAwMDAwMDAKK3dtIDMyIE1YNl9J T01fRFJBTV9BRERSMTUJCTB4MDAwMDAwMDAKKword20gMzIgTVg2X0lPTV9EUkFNX0NBUwkJCTB4 MDAwMjAwMzAKK3dtIDMyIE1YNl9JT01fRFJBTV9SQVMJCQkweDAwMDIwMDMwCit3bSAzMiBNWDZf SU9NX0RSQU1fU0RDTEtfMAkJMHgwMDAyMDAzMAord20gMzIgTVg2X0lPTV9EUkFNX1NEQ0xLXzEJ CTB4MDAwMjAwMzAKKword20gMzIgTVg2X0lPTV9EUkFNX1JFU0VUCQkweDAwMDIwMDMwCit3bSAz MiBNWDZfSU9NX0RSQU1fU0RDS0UwCQkweDAwMDAzMDAwCit3bSAzMiBNWDZfSU9NX0RSQU1fU0RD S0UxCQkweDAwMDAzMDAwCit3bSAzMiBNWDZfSU9NX0RSQU1fU0RCQTAJCTB4MDAwMDAwMDAKK3dt IDMyIE1YNl9JT01fRFJBTV9TREJBMQkJMHgwMDAwMDAwMAord20gMzIgTVg2X0lPTV9EUkFNX1NE QkEyCQkweDAwMDAwMDAwCit3bSAzMiBNWDZfSU9NX0RSQU1fU0RPRFQwCQkweDAwMDAzMDMwCit3 bSAzMiBNWDZfSU9NX0RSQU1fU0RPRFQxCQkweDAwMDAzMDMwCit3bSAzMiBNWDZfSU9NX0dSUF9C MERTCQkJMHgwMDAwMDAzMAord20gMzIgTVg2X0lPTV9HUlBfQjFEUwkJCTB4MDAwMDAwMzAKK3dt IDMyIE1YNl9JT01fR1JQX0IyRFMJCQkweDAwMDAwMDMwCit3bSAzMiBNWDZfSU9NX0dSUF9CM0RT CQkJMHgwMDAwMDAzMAord20gMzIgTVg2X0lPTV9HUlBfQjREUwkJCTB4MDAwMDAwMzAKK3dtIDMy IE1YNl9JT01fR1JQX0I1RFMJCQkweDAwMDAwMDMwCit3bSAzMiBNWDZfSU9NX0dSUF9CNkRTCQkJ MHgwMDAwMDAzMAord20gMzIgTVg2X0lPTV9HUlBfQjdEUwkJCTB4MDAwMDAwMzAKK3dtIDMyIE1Y Nl9JT01fR1JQX0FERERTCQkJMHgwMDAwMDAzMAorCisvKiAoZGlmZmVyZW50aWFsIGlucHV0KSAq Lword20gMzIgTVg2X0lPTV9ERFJNT0RFX0NUTAkJMHgwMDAyMDAwMAorLyogZGlzYWJsZSBkZHIg cHVsbHVwcyAqLword20gMzIgTVg2X0lPTV9HUlBfRERSUEtFCQkweDAwMDAwMDAwCisvKiAoZGlm ZmVyZW50aWFsIGlucHV0KSAqLword20gMzIgTVg2X0lPTV9HUlBfRERSTU9ERQkJMHgwMDAyMDAw MAord20gMzIgTVg2X0lPTV9HUlBfQ1RMRFMJCQkweDAwMDAwMDMwCisKK3dtIDMyIE1YNl9JT01f R1JQX0REUl9UWVBFCQkweDAwMGMwMDAwCit3bSAzMiBNWDZfSU9NX0dSUF9ERFJQS0UJCTB4MDAw MDIwMDAKKy8qIEdSUF9ERFJIWVMgKi8KK3dtIDMyIE1YNl9JT01fR1JQX0REUkhZUwkJMHgwMDAw MDAwMAorCisvKiBSZWFkIGRhdGEgRFEgQnl0ZTAtMyBkZWxheSAqLword20gMzIgTVg2X01NRENf UDBfTVBSRERRQlkwREwJCTB4MzMzMzMzMzMKK3dtIDMyIE1YNl9NTURDX1AwX01QUkREUUJZMURM CQkweDMzMzMzMzMzCit3bSAzMiBNWDZfTU1EQ19QMF9NUFJERFFCWTJETAkJMHgzMzMzMzMzMwor d20gMzIgTVg2X01NRENfUDBfTVBSRERRQlkzREwJCTB4MzMzMzMzMzMKK3dtIDMyIE1YNl9NTURD X1AxX01QUkREUUJZMERMCQkweDMzMzMzMzMzCit3bSAzMiBNWDZfTU1EQ19QMV9NUFJERFFCWTFE TAkJMHgzMzMzMzMzMword20gMzIgTVg2X01NRENfUDFfTVBSRERRQlkyREwJCTB4MzMzMzMzMzMK K3dtIDMyIE1YNl9NTURDX1AxX01QUkREUUJZM0RMCQkweDMzMzMzMzMzCmRpZmYgLS1naXQgYS9h cmNoL2FybS9kdHMvTWFrZWZpbGUgYi9hcmNoL2FybS9kdHMvTWFrZWZpbGUKaW5kZXggZmFjMmIy NzNjYmZkLi43NmM2MzVjYWE4MjggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2R0cy9NYWtlZmlsZQor KysgYi9hcmNoL2FybS9kdHMvTWFrZWZpbGUKQEAgLTQwLDYgKzQwLDcgQEAgcGJsLWR0Yi0kKENP TkZJR19NQUNIX1RPU0hJQkFfQUMxMDApICs9IHRlZ3JhMjAtcGF6MDAuZHRiLm8KIHBibC1kdGIt JChDT05GSUdfTUFDSF9UUU1BNTMpICs9IGlteDUzLW1iYTUzLmR0Yi5vCiBwYmwtZHRiLSQoQ09O RklHX01BQ0hfVFFNQTZYKSArPSBpbXg2ZGwtbWJhNnguZHRiLm8gaW14NnEtbWJhNnguZHRiLm8K IHBibC1kdGItJChDT05GSUdfTUFDSF9UWDI1KSArPSBpbXgyNS1rYXJvLXR4MjUuZHRiLm8KK3Bi bC1kdGItJChDT05GSUdfTUFDSF9UWDZYKSArPSBpbXg2ZGwtdHg2dS04MDF4LmR0Yi5vCiBwYmwt ZHRiLSQoQ09ORklHX01BQ0hfVURPTykgKz0gaW14NnEtdWRvby5kdGIubwogcGJsLWR0Yi0kKENP TkZJR19NQUNIX1VTSV9UT1BLSUNLKSArPSBraXJrd29vZC10b3BraWNrLWJiLmR0Yi5vCiBwYmwt ZHRiLSQoQ09ORklHX01BQ0hfVkFSSVNDSVRFX01YNikgKz0gaW14NnEtdmFyLWN1c3RvbS5kdGIu bwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vZHRzL2lteDZkbC10eDZ1LTgwMXguZHRzIGIvYXJjaC9h cm0vZHRzL2lteDZkbC10eDZ1LTgwMXguZHRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uOWNkMzQ4NjBjMWQzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vZHRz L2lteDZkbC10eDZ1LTgwMXguZHRzCkBAIC0wLDAgKzEsOTggQEAKKyNpbmNsdWRlIDxhcm0vaW14 NmRsLXR4NnUtODAxeC5kdHM+CisKKy8geworCWNob3NlbiB7CisJCWxpbnV4LHN0ZG91dC1wYXRo ID0gJnVhcnQxOworCisJCWVudmlyb25tZW50LXNkIHsKKwkJCWNvbXBhdGlibGUgPSAiYmFyZWJv eCxlbnZpcm9ubWVudCI7CisJCQlkZXZpY2UtcGF0aCA9ICZ1c2RoYzEsICJwYXJ0bmFtZTpiYXJl Ym94LWVudmlyb25tZW50IjsKKwkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisJCX07CisKKwkJZW52 aXJvbm1lbnQtbmFuZCB7CisJCQljb21wYXRpYmxlID0gImJhcmVib3gsZW52aXJvbm1lbnQiOwor CQkJZGV2aWNlLXBhdGggPSAmZ3BtaSwgInBhcnRuYW1lOmJhcmVib3gtZW52aXJvbm1lbnQiOwor CQl9OworCX07Cit9OworCismZ3BtaSB7CisJcGFydGl0aW9uQDAgeworCQlsYWJlbCA9ICJiYXJl Ym94IjsKKwkJcmVnID0gPDB4MCAweDEwMDAwMD47CisJfTsKKworCXBhcnRpdGlvbkAxIHsKKwkJ bGFiZWwgPSAiYmFyZWJveC1lbnZpcm9ubWVudCI7CisJCXJlZyA9IDwweDEwMDAwMCAweDEwMDAw MD47CisJfTsKK307CisKKyZpb211eGMgeworCWlteDZxZGwtdHg2IHsKKwkJcGluY3RybF9ob2c6 IGhvZ2dycCB7CisJCQlmc2wscGlucyA9IDwKKwkJCQlNWDZRRExfUEFEX0VJTV9BMThfX0dQSU8y X0lPMjAJCTB4MWIwYjEgLyogTEVEICovCisJCQkJTVg2UURMX1BBRF9TRDNfREFUMl9fR1BJTzdf SU8wNgkJMHgxYjBiMSAvKiBFVE4gUEhZIFJFU0VUICovCisJCQkJTVg2UURMX1BBRF9TRDNfREFU NF9fR1BJTzdfSU8wMQkJMHgxYjBiMSAvKiBFVE4gUEhZIElOVCAqLworCQkJCU1YNlFETF9QQURf RUlNX0EyNV9fR1BJTzVfSU8wMgkJMHgxYjBiMSAvKiBQV1IgQlROICovCisJCQkJTVg2UURMX1BB RF9FSU1fRDIwX19HUElPM19JTzIwCQkweDFiMGIxIC8qIEVUTiBQSFkgUE9XRVIgKi8KKwkJCT47 CisJCX07CisKKwkJcGluY3RybF9lbmV0OiBlbmV0Z3JwIHsKKwkJCWZzbCxwaW5zID0gPAorCQkJ CU1YNlFETF9QQURfRU5FVF9NRENfX0VORVRfTURDCQkweDFiMGIwCisJCQkJTVg2UURMX1BBRF9F TkVUX01ESU9fX0VORVRfTURJTwkJMHgxYjBiMAorCQkJCU1YNlFETF9QQURfRU5FVF9SWEQwX19F TkVUX1JYX0RBVEEwCTB4MWIwYjAKKwkJCQlNWDZRRExfUEFEX0VORVRfUlhEMV9fRU5FVF9SWF9E QVRBMQkweDFiMGIwCisJCQkJTVg2UURMX1BBRF9FTkVUX1JYX0VSX19FTkVUX1JYX0VSCTB4MWIw YjAKKwkJCQlNWDZRRExfUEFEX0VORVRfVFhfRU5fX0VORVRfVFhfRU4JMHgxYjBiMAorCQkJCU1Y NlFETF9QQURfRU5FVF9UWEQwX19FTkVUX1RYX0RBVEEwCTB4MWIwYjAKKwkJCQlNWDZRRExfUEFE X0VORVRfVFhEMV9fRU5FVF9UWF9EQVRBMQkweDFiMGIwCisJCQkJTVg2UURMX1BBRF9FTkVUX0NS U19EVl9fRU5FVF9SWF9FTgkweDFiMGIwCisJCQkJTVg2UURMX1BBRF9HUElPXzE2X19FTkVUX1JF Rl9DTEsJMHg0MDAxYjBiMAorCQkJPjsKKwkJfTsKKwl9OworfTsKKworJmZlYyB7CisJcGh5LXJl c2V0LWR1cmF0aW9uID0gPDIyPjsKK307CisKKyZvY290cCB7CisJYmFyZWJveCxwcm92aWRlLW1h Yy1hZGRyZXNzID0gPCZmZWMgMHg2MjA+OworfTsKKworJnB3bTEgeworCXN0YXR1cyA9ICJkaXNh YmxlZCI7Cit9OworCismcHdtMiB7CisJc3RhdHVzID0gImRpc2FibGVkIjsKK307CisKKyZwd20z IHsKKwlzdGF0dXMgPSAiZGlzYWJsZWQiOworfTsKKworJnB3bTQgeworCXN0YXR1cyA9ICJkaXNh YmxlZCI7Cit9OworCismdXNkaGMxIHsKKwkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKwkjc2l6ZS1j ZWxscyA9IDwxPjsKKworCXBhcnRpdGlvbkAwIHsKKwkJbGFiZWwgPSAiYmFyZWJveCI7CisJCXJl ZyA9IDwweDAgMHg0MDAwMDA+OworCX07CisKKwlwYXJ0aXRpb25AMSB7CisJCWxhYmVsID0gImJh cmVib3gtZW52aXJvbm1lbnQiOworCQlyZWcgPSA8MHg0MDAwMDAgMHgxMDAwMDA+OworCX07Cit9 OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gt aW14L0tjb25maWcKaW5kZXggNTNhNDRhMDZlOWUzLi4yYjFiZjg2ZDU1MTEgMTAwNjQ0Ci0tLSBh L2FyY2gvYXJtL21hY2gtaW14L0tjb25maWcKKysrIGIvYXJjaC9hcm0vbWFjaC1pbXgvS2NvbmZp ZwpAQCAtMjYxLDYgKzI2MSwxMCBAQCBjb25maWcgTUFDSF9UUU1BNlgKIAlib29sICJUUSB0cW1h Nnggb24gbWJhNngiCiAJc2VsZWN0IEFSQ0hfSU1YNgogCitjb25maWcgTUFDSF9UWDZYCisJYm9v bCAiS2FybyBUWDZ4IgorCXNlbGVjdCBBUkNIX0lNWDYKKwogY29uZmlnIE1BQ0hfU0FCUkVMSVRF CiAJYm9vbCAiRnJlZXNjYWxlIGkuTVg2IFNhYnJlIExpdGUiCiAJc2VsZWN0IEFSQ0hfSU1YNgpk aWZmIC0tZ2l0IGEvaW1hZ2VzL01ha2VmaWxlLmlteCBiL2ltYWdlcy9NYWtlZmlsZS5pbXgKaW5k ZXggZTU1OWE3NTAwN2JjLi45MjM3OGMyZjFlMzggMTAwNjQ0Ci0tLSBhL2ltYWdlcy9NYWtlZmls ZS5pbXgKKysrIGIvaW1hZ2VzL01ha2VmaWxlLmlteApAQCAtMTYwLDYgKzE2MCwxMSBAQCBDRkdf c3RhcnRfaW14NmRsX25pdHJvZ2VuNnhfMWcucGJseC5pbXhpbWcgPSAkKGJvYXJkKS9ib3VuZGFy eWRldmljZXMtbml0cm9nZW42eAogRklMRV9iYXJlYm94LWJvdW5kYXJ5ZGV2aWNlcy1pbXg2ZGwt bml0cm9nZW42eC0xZy5pbWcgPSBzdGFydF9pbXg2ZGxfbml0cm9nZW42eF8xZy5wYmx4LmlteGlt ZwogaW1hZ2UtJChDT05GSUdfTUFDSF9OSVRST0dFTjZYKSArPSBiYXJlYm94LWJvdW5kYXJ5ZGV2 aWNlcy1pbXg2ZGwtbml0cm9nZW42eC0xZy5pbWcKIAorcGJseC0kKENPTkZJR19NQUNIX1RYNlgp ICs9IHN0YXJ0X2lteDZkbF90eDZ4XzFnCitDRkdfc3RhcnRfaW14NmRsX3R4NnhfMWcucGJseC5p bXhpbWcgPSAkKGJvYXJkKS9rYXJvLXR4NngvZmxhc2gtaGVhZGVyLXR4NmRsLTFnLmlteGNmZwor RklMRV9iYXJlYm94LWthcm8taW14NmRsLXR4NngtMWcuaW1nID0gc3RhcnRfaW14NmRsX3R4Nnhf MWcucGJseC5pbXhpbWcKK2ltYWdlLSQoQ09ORklHX01BQ0hfVFg2WCkgKz0gYmFyZWJveC1rYXJv LWlteDZkbC10eDZ4LTFnLmltZworCiBwYmx4LSQoQ09ORklHX01BQ0hfVURPTykgKz0gc3RhcnRf aW14Nl91ZG9vCiBDRkdfc3RhcnRfaW14Nl91ZG9vLnBibHguaW14aW1nID0gJChib2FyZCkvdWRv by9mbGFzaC1oZWFkZXItbXg2LXVkb28uaW14Y2ZnCiBGSUxFX2JhcmVib3gtdWRvby1pbXg2cS5p bWcgPSBzdGFydF9pbXg2X3Vkb28ucGJseC5pbXhpbWcKLS0gCjIuMS4wCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYmFyZWJveCBtYWlsaW5nIGxpc3QK YmFyZWJveEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vYmFyZWJveAo=