From 97419aa292b00acc606a8688f078d80c1076e569 Mon Sep 17 00:00:00 2001 From: fanta Date: Tue, 21 Dec 2021 21:02:02 +0100 Subject: [PATCH] kernel disquete --- compile_kernel_disquete.sh | 1308 ++++++++++++++++++++++++++++++++++++ 1 file changed, 1308 insertions(+) create mode 100755 compile_kernel_disquete.sh diff --git a/compile_kernel_disquete.sh b/compile_kernel_disquete.sh new file mode 100755 index 0000000..0fb3e63 --- /dev/null +++ b/compile_kernel_disquete.sh @@ -0,0 +1,1308 @@ +#!/bin/bash +# Script un poco tosco pero funcional para descargar y compilar rapidamente un kernel linux. +# En este caso para crear un kernel muy pequeño y poder meterlo en un disquete. + +# Instalamos dependencias +apt install -y wget xz-utils make gcc ncurses-dev flex bison devscripts bc rsync libelf-dev libssl-dev dwarves hwinfo + +# Descargamos el kernel +kernelUrlXz="https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.1.tar.xz" +wget "$kernelUrlXz" + +# Descomprimimos el kernel +tar xfvJ linux-5.15.1.tar.xz +cd linux-5.15.1 +apt clean +apt autoclean +make clean && make mrproper +make ARCH=x86 tinyconfig + +# Config en base64 +echo "IwojIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZpbGU7IERPIE5PVCBFRElULgojIExpbnV4L3g4 +NiA1LjE1LjEgS2VybmVsIENvbmZpZ3VyYXRpb24KIwpDT05GSUdfQ0NfVkVSU0lPTl9URVhUPSJn +Y2MgKERlYmlhbiAxMC4yLjEtNikgMTAuMi4xIDIwMjEwMTEwIgpDT05GSUdfQ0NfSVNfR0NDPXkK +Q09ORklHX0dDQ19WRVJTSU9OPTEwMDIwMQpDT05GSUdfQ0xBTkdfVkVSU0lPTj0wCkNPTkZJR19B +U19JU19HTlU9eQpDT05GSUdfQVNfVkVSU0lPTj0yMzUwMgpDT05GSUdfTERfSVNfQkZEPXkKQ09O +RklHX0xEX1ZFUlNJT049MjM1MDIKQ09ORklHX0xMRF9WRVJTSU9OPTAKQ09ORklHX0NDX0hBU19B +U01fR09UTz15CkNPTkZJR19DQ19IQVNfQVNNX0lOTElORT15CkNPTkZJR19DQ19IQVNfTk9fUFJP +RklMRV9GTl9BVFRSPXkKQ09ORklHX0lSUV9XT1JLPXkKQ09ORklHX0JVSUxEVElNRV9UQUJMRV9T +T1JUPXkKQ09ORklHX1RIUkVBRF9JTkZPX0lOX1RBU0s9eQoKIwojIEdlbmVyYWwgc2V0dXAKIwpD +T05GSUdfQlJPS0VOX09OX1NNUD15CkNPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKIyBDT05G +SUdfQ09NUElMRV9URVNUIGlzIG5vdCBzZXQKIyBDT05GSUdfV0VSUk9SIGlzIG5vdCBzZXQKQ09O +RklHX0xPQ0FMVkVSU0lPTj0iIgojIENPTkZJR19MT0NBTFZFUlNJT05fQVVUTyBpcyBub3Qgc2V0 +CkNPTkZJR19CVUlMRF9TQUxUPSIiCkNPTkZJR19IQVZFX0tFUk5FTF9HWklQPXkKQ09ORklHX0hB +VkVfS0VSTkVMX0JaSVAyPXkKQ09ORklHX0hBVkVfS0VSTkVMX0xaTUE9eQpDT05GSUdfSEFWRV9L +RVJORUxfWFo9eQpDT05GSUdfSEFWRV9LRVJORUxfTFpPPXkKQ09ORklHX0hBVkVfS0VSTkVMX0xa +ND15CkNPTkZJR19IQVZFX0tFUk5FTF9aU1REPXkKIyBDT05GSUdfS0VSTkVMX0daSVAgaXMgbm90 +IHNldAojIENPTkZJR19LRVJORUxfQlpJUDIgaXMgbm90IHNldAojIENPTkZJR19LRVJORUxfTFpN +QSBpcyBub3Qgc2V0CkNPTkZJR19LRVJORUxfWFo9eQojIENPTkZJR19LRVJORUxfTFpPIGlzIG5v +dCBzZXQKIyBDT05GSUdfS0VSTkVMX0xaNCBpcyBub3Qgc2V0CiMgQ09ORklHX0tFUk5FTF9aU1RE +IGlzIG5vdCBzZXQKQ09ORklHX0RFRkFVTFRfSU5JVD0iIgpDT05GSUdfREVGQVVMVF9IT1NUTkFN +RT0iKG5vbmUpIgojIENPTkZJR19TWVNWSVBDIGlzIG5vdCBzZXQKIyBDT05GSUdfV0FUQ0hfUVVF +VUUgaXMgbm90IHNldAojIENPTkZJR19DUk9TU19NRU1PUllfQVRUQUNIIGlzIG5vdCBzZXQKIyBD +T05GSUdfVVNFTElCIGlzIG5vdCBzZXQKQ09ORklHX0hBVkVfQVJDSF9BVURJVFNZU0NBTEw9eQoK +IwojIElSUSBzdWJzeXN0ZW0KIwpDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQpDT05GSUdfR0VO +RVJJQ19JUlFfU0hPVz15CkNPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQpDT05GSUdfR0VORVJJ +Q19JUlFfUkVTRVJWQVRJT05fTU9ERT15CkNPTkZJR19JUlFfRk9SQ0VEX1RIUkVBRElORz15CkNP +TkZJR19TUEFSU0VfSVJRPXkKIyBlbmQgb2YgSVJRIHN1YnN5c3RlbQoKQ09ORklHX0NMT0NLU09V +UkNFX1dBVENIRE9HPXkKQ09ORklHX0FSQ0hfQ0xPQ0tTT1VSQ0VfSU5JVD15CkNPTkZJR19DTE9D +S1NPVVJDRV9WQUxJREFURV9MQVNUX0NZQ0xFPXkKQ09ORklHX0dFTkVSSUNfVElNRV9WU1lTQ0FM +TD15CkNPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVO +VFNfTUlOX0FESlVTVD15CkNPTkZJR19HRU5FUklDX0NNT1NfVVBEQVRFPXkKQ09ORklHX0hBVkVf +UE9TSVhfQ1BVX1RJTUVSU19UQVNLX1dPUks9eQoKIwojIFRpbWVycyBzdWJzeXN0ZW0KIwpDT05G +SUdfSFpfUEVSSU9ESUM9eQojIENPTkZJR19OT19IWl9JRExFIGlzIG5vdCBzZXQKIyBDT05GSUdf +Tk9fSFogaXMgbm90IHNldAojIENPTkZJR19ISUdIX1JFU19USU1FUlMgaXMgbm90IHNldAojIGVu +ZCBvZiBUaW1lcnMgc3Vic3lzdGVtCgpDT05GSUdfSEFWRV9FQlBGX0pJVD15CgojCiMgQlBGIHN1 +YnN5c3RlbQojCiMgQ09ORklHX0JQRl9TWVNDQUxMIGlzIG5vdCBzZXQKIyBlbmQgb2YgQlBGIHN1 +YnN5c3RlbQoKQ09ORklHX1BSRUVNUFRfTk9ORT15CiMgQ09ORklHX1BSRUVNUFRfVk9MVU5UQVJZ +IGlzIG5vdCBzZXQKIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0CgojCiMgQ1BVL1Rhc2sgdGlt +ZSBhbmQgc3RhdHMgYWNjb3VudGluZwojCkNPTkZJR19USUNLX0NQVV9BQ0NPVU5USU5HPXkKIyBD +T05GSUdfSVJRX1RJTUVfQUNDT1VOVElORyBpcyBub3Qgc2V0CiMgQ09ORklHX1BTSSBpcyBub3Qg +c2V0CiMgZW5kIG9mIENQVS9UYXNrIHRpbWUgYW5kIHN0YXRzIGFjY291bnRpbmcKCiMKIyBSQ1Ug +U3Vic3lzdGVtCiMKQ09ORklHX1RJTllfUkNVPXkKIyBDT05GSUdfUkNVX0VYUEVSVCBpcyBub3Qg +c2V0CkNPTkZJR19TUkNVPXkKQ09ORklHX1RJTllfU1JDVT15CiMgZW5kIG9mIFJDVSBTdWJzeXN0 +ZW0KCiMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKQ09ORklHX0xPR19CVUZfU0hJRlQ9MTcK +Q09ORklHX1BSSU5US19TQUZFX0xPR19CVUZfU0hJRlQ9MTMKQ09ORklHX0hBVkVfVU5TVEFCTEVf +U0NIRURfQ0xPQ0s9eQoKIwojIFNjaGVkdWxlciBmZWF0dXJlcwojCiMgZW5kIG9mIFNjaGVkdWxl +ciBmZWF0dXJlcwoKQ09ORklHX0FSQ0hfV0FOVF9CQVRDSEVEX1VOTUFQX1RMQl9GTFVTSD15CiMg +Q09ORklHX0NHUk9VUFMgaXMgbm90IHNldAojIENPTkZJR19DSEVDS1BPSU5UX1JFU1RPUkUgaXMg +bm90IHNldAojIENPTkZJR19TQ0hFRF9BVVRPR1JPVVAgaXMgbm90IHNldAojIENPTkZJR19SRUxB +WSBpcyBub3Qgc2V0CkNPTkZJR19CTEtfREVWX0lOSVRSRD15CkNPTkZJR19JTklUUkFNRlNfU09V +UkNFPSIiCkNPTkZJR19SRF9HWklQPXkKQ09ORklHX1JEX0JaSVAyPXkKQ09ORklHX1JEX0xaTUE9 +eQpDT05GSUdfUkRfWFo9eQpDT05GSUdfUkRfTFpPPXkKQ09ORklHX1JEX0xaND15CkNPTkZJR19S +RF9aU1REPXkKIyBDT05GSUdfQk9PVF9DT05GSUcgaXMgbm90IHNldAojIENPTkZJR19DQ19PUFRJ +TUlaRV9GT1JfUEVSRk9STUFOQ0UgaXMgbm90IHNldApDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJ +WkU9eQpDT05GSUdfTERfT1JQSEFOX1dBUk49eQpDT05GSUdfSEFWRV9VSUQxNj15CkNPTkZJR19T +WVNDVExfRVhDRVBUSU9OX1RSQUNFPXkKQ09ORklHX0hBVkVfUENTUEtSX1BMQVRGT1JNPXkKQ09O +RklHX0VYUEVSVD15CiMgQ09ORklHX01VTFRJVVNFUiBpcyBub3Qgc2V0CiMgQ09ORklHX1NHRVRN +QVNLX1NZU0NBTEwgaXMgbm90IHNldAojIENPTkZJR19TWVNGU19TWVNDQUxMIGlzIG5vdCBzZXQK +IyBDT05GSUdfRkhBTkRMRSBpcyBub3Qgc2V0CiMgQ09ORklHX1BPU0lYX1RJTUVSUyBpcyBub3Qg +c2V0CkNPTkZJR19QUklOVEs9eQojIENPTkZJR19CVUcgaXMgbm90IHNldAojIENPTkZJR19QQ1NQ +S1JfUExBVEZPUk0gaXMgbm90IHNldAojIENPTkZJR19CQVNFX0ZVTEwgaXMgbm90IHNldAojIENP +TkZJR19GVVRFWCBpcyBub3Qgc2V0CiMgQ09ORklHX0VQT0xMIGlzIG5vdCBzZXQKIyBDT05GSUdf +U0lHTkFMRkQgaXMgbm90IHNldAojIENPTkZJR19USU1FUkZEIGlzIG5vdCBzZXQKIyBDT05GSUdf +RVZFTlRGRCBpcyBub3Qgc2V0CiMgQ09ORklHX1NITUVNIGlzIG5vdCBzZXQKIyBDT05GSUdfQUlP +IGlzIG5vdCBzZXQKIyBDT05GSUdfSU9fVVJJTkcgaXMgbm90IHNldAojIENPTkZJR19BRFZJU0Vf +U1lTQ0FMTFMgaXMgbm90IHNldAojIENPTkZJR19NRU1CQVJSSUVSIGlzIG5vdCBzZXQKIyBDT05G +SUdfS0FMTFNZTVMgaXMgbm90IHNldAojIENPTkZJR19VU0VSRkFVTFRGRCBpcyBub3Qgc2V0CkNP +TkZJR19BUkNIX0hBU19NRU1CQVJSSUVSX1NZTkNfQ09SRT15CiMgQ09ORklHX0tDTVAgaXMgbm90 +IHNldAojIENPTkZJR19SU0VRIGlzIG5vdCBzZXQKQ09ORklHX0VNQkVEREVEPXkKQ09ORklHX0hB +VkVfUEVSRl9FVkVOVFM9eQojIENPTkZJR19QQzEwNCBpcyBub3Qgc2V0CgojCiMgS2VybmVsIFBl +cmZvcm1hbmNlIEV2ZW50cyBBbmQgQ291bnRlcnMKIwpDT05GSUdfUEVSRl9FVkVOVFM9eQojIENP +TkZJR19ERUJVR19QRVJGX1VTRV9WTUFMTE9DIGlzIG5vdCBzZXQKIyBlbmQgb2YgS2VybmVsIFBl +cmZvcm1hbmNlIEV2ZW50cyBBbmQgQ291bnRlcnMKCiMgQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJT +IGlzIG5vdCBzZXQKIyBDT05GSUdfQ09NUEFUX0JSSyBpcyBub3Qgc2V0CiMgQ09ORklHX1NMQUIg +aXMgbm90IHNldAojIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKQ09ORklHX1NMT0I9eQojIENPTkZJ +R19TTEFCX01FUkdFX0RFRkFVTFQgaXMgbm90IHNldAojIENPTkZJR19TSFVGRkxFX1BBR0VfQUxM +T0NBVE9SIGlzIG5vdCBzZXQKIyBDT05GSUdfUFJPRklMSU5HIGlzIG5vdCBzZXQKIyBlbmQgb2Yg +R2VuZXJhbCBzZXR1cAoKIyBDT05GSUdfNjRCSVQgaXMgbm90IHNldApDT05GSUdfWDg2XzMyPXkK +Q09ORklHX1g4Nj15CkNPTkZJR19JTlNUUlVDVElPTl9ERUNPREVSPXkKQ09ORklHX09VVFBVVF9G +T1JNQVQ9ImVsZjMyLWkzODYiCkNPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQpDT05GSUdfU1RBQ0tU +UkFDRV9TVVBQT1JUPXkKQ09ORklHX01NVT15CkNPTkZJR19BUkNIX01NQVBfUk5EX0JJVFNfTUlO +PTgKQ09ORklHX0FSQ0hfTU1BUF9STkRfQklUU19NQVg9MTYKQ09ORklHX0FSQ0hfTU1BUF9STkRf +Q09NUEFUX0JJVFNfTUlOPTgKQ09ORklHX0FSQ0hfTU1BUF9STkRfQ09NUEFUX0JJVFNfTUFYPTE2 +CkNPTkZJR19HRU5FUklDX0lTQV9ETUE9eQpDT05GSUdfQVJDSF9NQVlfSEFWRV9QQ19GREM9eQpD +T05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQpDT05GSUdfQVJDSF9IQVNfQ1BVX1JFTEFY +PXkKQ09ORklHX0FSQ0hfSEFTX0ZJTFRFUl9QR1BST1Q9eQpDT05GSUdfSEFWRV9TRVRVUF9QRVJf +Q1BVX0FSRUE9eQpDT05GSUdfTkVFRF9QRVJfQ1BVX0VNQkVEX0ZJUlNUX0NIVU5LPXkKQ09ORklH +X05FRURfUEVSX0NQVV9QQUdFX0ZJUlNUX0NIVU5LPXkKQ09ORklHX0FSQ0hfSElCRVJOQVRJT05f +UE9TU0lCTEU9eQpDT05GSUdfQVJDSF9OUl9HUElPPTUxMgpDT05GSUdfQVJDSF9TVVNQRU5EX1BP +U1NJQkxFPXkKQ09ORklHX0FSQ0hfV0FOVF9HRU5FUkFMX0hVR0VUTEI9eQpDT05GSUdfQVJDSF9T +VVBQT1JUU19VUFJPQkVTPXkKQ09ORklHX0ZJWF9FQVJMWUNPTl9NRU09eQpDT05GSUdfUEdUQUJM +RV9MRVZFTFM9MgpDT05GSUdfQ0NfSEFTX1NBTkVfU1RBQ0tQUk9URUNUT1I9eQoKIwojIFByb2Nl +c3NvciB0eXBlIGFuZCBmZWF0dXJlcwojCiMgQ09ORklHX1NNUCBpcyBub3Qgc2V0CiMgQ09ORklH +X1g4Nl9GRUFUVVJFX05BTUVTIGlzIG5vdCBzZXQKIyBDT05GSUdfR09MREZJU0ggaXMgbm90IHNl +dAojIENPTkZJR19SRVRQT0xJTkUgaXMgbm90IHNldAojIENPTkZJR19YODZfQ1BVX1JFU0NUUkwg +aXMgbm90IHNldAojIENPTkZJR19YODZfRVhURU5ERURfUExBVEZPUk0gaXMgbm90IHNldAojIENP +TkZJR19YODZfMzJfSVJJUyBpcyBub3Qgc2V0CiMgQ09ORklHX1NDSEVEX09NSVRfRlJBTUVfUE9J +TlRFUiBpcyBub3Qgc2V0CiMgQ09ORklHX0hZUEVSVklTT1JfR1VFU1QgaXMgbm90IHNldApDT05G +SUdfTTQ4NlNYPXkKIyBDT05GSUdfTTQ4NiBpcyBub3Qgc2V0CiMgQ09ORklHX001ODYgaXMgbm90 +IHNldAojIENPTkZJR19NNTg2VFNDIGlzIG5vdCBzZXQKIyBDT05GSUdfTTU4Nk1NWCBpcyBub3Qg +c2V0CiMgQ09ORklHX002ODYgaXMgbm90IHNldAojIENPTkZJR19NUEVOVElVTUlJIGlzIG5vdCBz +ZXQKIyBDT05GSUdfTVBFTlRJVU1JSUkgaXMgbm90IHNldAojIENPTkZJR19NUEVOVElVTU0gaXMg +bm90IHNldAojIENPTkZJR19NUEVOVElVTTQgaXMgbm90IHNldAojIENPTkZJR19NSzYgaXMgbm90 +IHNldAojIENPTkZJR19NSzcgaXMgbm90IHNldAojIENPTkZJR19NSzggaXMgbm90IHNldAojIENP +TkZJR19NQ1JVU09FIGlzIG5vdCBzZXQKIyBDT05GSUdfTUVGRklDRU9OIGlzIG5vdCBzZXQKIyBD +T05GSUdfTVdJTkNISVBDNiBpcyBub3Qgc2V0CiMgQ09ORklHX01XSU5DSElQM0QgaXMgbm90IHNl +dAojIENPTkZJR19NRUxBTiBpcyBub3Qgc2V0CiMgQ09ORklHX01HRU9ERUdYMSBpcyBub3Qgc2V0 +CiMgQ09ORklHX01HRU9ERV9MWCBpcyBub3Qgc2V0CiMgQ09ORklHX01DWVJJWElJSSBpcyBub3Qg +c2V0CiMgQ09ORklHX01WSUFDM18yIGlzIG5vdCBzZXQKIyBDT05GSUdfTVZJQUM3IGlzIG5vdCBz +ZXQKIyBDT05GSUdfTUNPUkUyIGlzIG5vdCBzZXQKIyBDT05GSUdfTUFUT00gaXMgbm90IHNldAoj +IENPTkZJR19YODZfR0VORVJJQyBpcyBub3Qgc2V0CkNPTkZJR19YODZfSU5URVJOT0RFX0NBQ0hF +X1NISUZUPTQKQ09ORklHX1g4Nl9MMV9DQUNIRV9TSElGVD00CkNPTkZJR19YODZfRjAwRl9CVUc9 +eQpDT05GSUdfWDg2X0lOVkRfQlVHPXkKQ09ORklHX1g4Nl9BTElHTk1FTlRfMTY9eQpDT05GSUdf +WDg2X01JTklNVU1fQ1BVX0ZBTUlMWT00CkNPTkZJR19JQTMyX0ZFQVRfQ1RMPXkKIyBDT05GSUdf +UFJPQ0VTU09SX1NFTEVDVCBpcyBub3Qgc2V0CkNPTkZJR19DUFVfU1VQX0lOVEVMPXkKQ09ORklH +X0NQVV9TVVBfQ1lSSVhfMzI9eQpDT05GSUdfQ1BVX1NVUF9BTUQ9eQpDT05GSUdfQ1BVX1NVUF9I +WUdPTj15CkNPTkZJR19DUFVfU1VQX0NFTlRBVVI9eQpDT05GSUdfQ1BVX1NVUF9UUkFOU01FVEFf +MzI9eQpDT05GSUdfQ1BVX1NVUF9VTUNfMzI9eQpDT05GSUdfQ1BVX1NVUF9aSEFPWElOPXkKIyBD +T05GSUdfSFBFVF9USU1FUiBpcyBub3Qgc2V0CiMgQ09ORklHX0RNSSBpcyBub3Qgc2V0CkNPTkZJ +R19OUl9DUFVTX1JBTkdFX0JFR0lOPTEKQ09ORklHX05SX0NQVVNfUkFOR0VfRU5EPTEKQ09ORklH +X05SX0NQVVNfREVGQVVMVD0xCkNPTkZJR19OUl9DUFVTPTEKIyBDT05GSUdfWDg2X1VQX0FQSUMg +aXMgbm90IHNldAojIENPTkZJR19YODZfTUNFIGlzIG5vdCBzZXQKCiMKIyBQZXJmb3JtYW5jZSBt +b25pdG9yaW5nCiMKIyBDT05GSUdfUEVSRl9FVkVOVFNfQU1EX1BPV0VSIGlzIG5vdCBzZXQKIyBD +T05GSUdfUEVSRl9FVkVOVFNfQU1EX1VOQ09SRSBpcyBub3Qgc2V0CiMgZW5kIG9mIFBlcmZvcm1h +bmNlIG1vbml0b3JpbmcKCiMgQ09ORklHX1g4Nl9MRUdBQ1lfVk04NiBpcyBub3Qgc2V0CiMgQ09O +RklHX1g4Nl9JT1BMX0lPUEVSTSBpcyBub3Qgc2V0CiMgQ09ORklHX1RPU0hJQkEgaXMgbm90IHNl +dAojIENPTkZJR19JOEsgaXMgbm90IHNldAojIENPTkZJR19YODZfUkVCT09URklYVVBTIGlzIG5v +dCBzZXQKIyBDT05GSUdfTUlDUk9DT0RFIGlzIG5vdCBzZXQKIyBDT05GSUdfWDg2X01TUiBpcyBu +b3Qgc2V0CiMgQ09ORklHX1g4Nl9DUFVJRCBpcyBub3Qgc2V0CkNPTkZJR19OT0hJR0hNRU09eQoj +IENPTkZJR19ISUdITUVNNEcgaXMgbm90IHNldApDT05GSUdfVk1TUExJVF8zRz15CiMgQ09ORklH +X1ZNU1BMSVRfM0dfT1BUIGlzIG5vdCBzZXQKIyBDT05GSUdfVk1TUExJVF8yRyBpcyBub3Qgc2V0 +CiMgQ09ORklHX1ZNU1BMSVRfMkdfT1BUIGlzIG5vdCBzZXQKIyBDT05GSUdfVk1TUExJVF8xRyBp +cyBub3Qgc2V0CkNPTkZJR19QQUdFX09GRlNFVD0weEMwMDAwMDAwCiMgQ09ORklHX1g4Nl9QQUUg +aXMgbm90IHNldApDT05GSUdfQVJDSF9GTEFUTUVNX0VOQUJMRT15CkNPTkZJR19BUkNIX1NQQVJT +RU1FTV9FTkFCTEU9eQpDT05GSUdfQVJDSF9TRUxFQ1RfTUVNT1JZX01PREVMPXkKQ09ORklHX0lM +TEVHQUxfUE9JTlRFUl9WQUxVRT0wCiMgQ09ORklHX1g4Nl9DSEVDS19CSU9TX0NPUlJVUFRJT04g +aXMgbm90IHNldAojIENPTkZJR19NVFJSIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9SQU5ET00g +aXMgbm90IHNldAojIENPTkZJR19YODZfU01BUCBpcyBub3Qgc2V0CiMgQ09ORklHX1g4Nl9VTUlQ +IGlzIG5vdCBzZXQKQ09ORklHX1g4Nl9JTlRFTF9UU1hfTU9ERV9PRkY9eQojIENPTkZJR19YODZf +SU5URUxfVFNYX01PREVfT04gaXMgbm90IHNldAojIENPTkZJR19YODZfSU5URUxfVFNYX01PREVf +QVVUTyBpcyBub3Qgc2V0CiMgQ09ORklHX0haXzEwMCBpcyBub3Qgc2V0CkNPTkZJR19IWl8yNTA9 +eQojIENPTkZJR19IWl8zMDAgaXMgbm90IHNldAojIENPTkZJR19IWl8xMDAwIGlzIG5vdCBzZXQK +Q09ORklHX0haPTI1MAojIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CkNPTkZJR19QSFlTSUNBTF9T +VEFSVD0weDEwMDAwMDAKIyBDT05GSUdfUkVMT0NBVEFCTEUgaXMgbm90IHNldApDT05GSUdfUEhZ +U0lDQUxfQUxJR049MHgyMDAwMDAKIyBDT05GSUdfQ09NUEFUX1ZEU08gaXMgbm90IHNldAojIENP +TkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAojIENPTkZJR19NT0RJRllfTERUX1NZU0NBTEwg +aXMgbm90IHNldAojIGVuZCBvZiBQcm9jZXNzb3IgdHlwZSBhbmQgZmVhdHVyZXMKCkNPTkZJR19B +UkNIX01IUF9NRU1NQVBfT05fTUVNT1JZX0VOQUJMRT15CgojCiMgUG93ZXIgbWFuYWdlbWVudCBh +bmQgQUNQSSBvcHRpb25zCiMKIyBDT05GSUdfU1VTUEVORCBpcyBub3Qgc2V0CiMgQ09ORklHX1BN +IGlzIG5vdCBzZXQKQ09ORklHX0FSQ0hfU1VQUE9SVFNfQUNQST15CiMgQ09ORklHX0FDUEkgaXMg +bm90IHNldAoKIwojIENQVSBGcmVxdWVuY3kgc2NhbGluZwojCiMgQ09ORklHX0NQVV9GUkVRIGlz +IG5vdCBzZXQKIyBlbmQgb2YgQ1BVIEZyZXF1ZW5jeSBzY2FsaW5nCgojCiMgQ1BVIElkbGUKIwoj +IENPTkZJR19DUFVfSURMRSBpcyBub3Qgc2V0CiMgZW5kIG9mIENQVSBJZGxlCiMgZW5kIG9mIFBv +d2VyIG1hbmFnZW1lbnQgYW5kIEFDUEkgb3B0aW9ucwoKIwojIEJ1cyBvcHRpb25zIChQQ0kgZXRj +LikKIwojIENPTkZJR19JU0FfQlVTIGlzIG5vdCBzZXQKQ09ORklHX0lTQV9ETUFfQVBJPXkKIyBD +T05GSUdfSVNBIGlzIG5vdCBzZXQKIyBDT05GSUdfU0N4MjAwIGlzIG5vdCBzZXQKIyBDT05GSUdf +T0xQQyBpcyBub3Qgc2V0CiMgQ09ORklHX0FMSVggaXMgbm90IHNldAojIENPTkZJR19ORVQ1NTAx +IGlzIG5vdCBzZXQKIyBlbmQgb2YgQnVzIG9wdGlvbnMgKFBDSSBldGMuKQoKIwojIEJpbmFyeSBF +bXVsYXRpb25zCiMKQ09ORklHX0NPTVBBVF8zMj15CiMgZW5kIG9mIEJpbmFyeSBFbXVsYXRpb25z +CgpDT05GSUdfSEFWRV9BVE9NSUNfSU9NQVA9eQpDT05GSUdfSEFWRV9LVk09eQojIENPTkZJR19W +SVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CkNPTkZJR19BU19BVlg1MTI9eQpDT05GSUdfQVNfU0hB +MV9OST15CkNPTkZJR19BU19TSEEyNTZfTkk9eQpDT05GSUdfQVNfVFBBVVNFPXkKCiMKIyBHZW5l +cmFsIGFyY2hpdGVjdHVyZS1kZXBlbmRlbnQgb3B0aW9ucwojCkNPTkZJR19HRU5FUklDX0VOVFJZ +PXkKIyBDT05GSUdfSlVNUF9MQUJFTCBpcyBub3Qgc2V0CiMgQ09ORklHX1NUQVRJQ19DQUxMX1NF +TEZURVNUIGlzIG5vdCBzZXQKQ09ORklHX0hBVkVfRUZGSUNJRU5UX1VOQUxJR05FRF9BQ0NFU1M9 +eQpDT05GSUdfQVJDSF9VU0VfQlVJTFRJTl9CU1dBUD15CkNPTkZJR19IQVZFX0lPUkVNQVBfUFJP +VD15CkNPTkZJR19IQVZFX0tQUk9CRVM9eQpDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKQ09ORklH +X0hBVkVfT1BUUFJPQkVTPXkKQ09ORklHX0hBVkVfS1BST0JFU19PTl9GVFJBQ0U9eQpDT05GSUdf +SEFWRV9GVU5DVElPTl9FUlJPUl9JTkpFQ1RJT049eQpDT05GSUdfSEFWRV9OTUk9eQpDT05GSUdf +VFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CkNPTkZJR19IQVZFX0FSQ0hfVFJBQ0VIT09LPXkKQ09O +RklHX0hBVkVfRE1BX0NPTlRJR1VPVVM9eQpDT05GSUdfR0VORVJJQ19TTVBfSURMRV9USFJFQUQ9 +eQpDT05GSUdfQVJDSF9IQVNfRk9SVElGWV9TT1VSQ0U9eQpDT05GSUdfQVJDSF9IQVNfU0VUX01F +TU9SWT15CkNPTkZJR19BUkNIX0hBU19TRVRfRElSRUNUX01BUD15CkNPTkZJR19IQVZFX0FSQ0hf +VEhSRUFEX1NUUlVDVF9XSElURUxJU1Q9eQpDT05GSUdfQVJDSF9XQU5UU19EWU5BTUlDX1RBU0tf +U1RSVUNUPXkKQ09ORklHX0FSQ0hfV0FOVFNfTk9fSU5TVFI9eQpDT05GSUdfQVJDSF8zMkJJVF9P +RkZfVD15CkNPTkZJR19IQVZFX0FTTV9NT0RWRVJTSU9OUz15CkNPTkZJR19IQVZFX1JFR1NfQU5E +X1NUQUNLX0FDQ0VTU19BUEk9eQpDT05GSUdfSEFWRV9SU0VRPXkKQ09ORklHX0hBVkVfRlVOQ1RJ +T05fQVJHX0FDQ0VTU19BUEk9eQpDT05GSUdfSEFWRV9IV19CUkVBS1BPSU5UPXkKQ09ORklHX0hB +VkVfTUlYRURfQlJFQUtQT0lOVFNfUkVHUz15CkNPTkZJR19IQVZFX1VTRVJfUkVUVVJOX05PVElG +SUVSPXkKQ09ORklHX0hBVkVfUEVSRl9FVkVOVFNfTk1JPXkKQ09ORklHX0hBVkVfSEFSRExPQ0tV +UF9ERVRFQ1RPUl9QRVJGPXkKQ09ORklHX0hBVkVfUEVSRl9SRUdTPXkKQ09ORklHX0hBVkVfUEVS +Rl9VU0VSX1NUQUNLX0RVTVA9eQpDT05GSUdfSEFWRV9BUkNIX0pVTVBfTEFCRUw9eQpDT05GSUdf +SEFWRV9BUkNIX0pVTVBfTEFCRUxfUkVMQVRJVkU9eQpDT05GSUdfQVJDSF9IQVZFX05NSV9TQUZF +X0NNUFhDSEc9eQpDT05GSUdfSEFWRV9DTVBYQ0hHX0xPQ0FMPXkKQ09ORklHX0hBVkVfQ01QWENI +R19ET1VCTEU9eQpDT05GSUdfQVJDSF9XQU5UX0lQQ19QQVJTRV9WRVJTSU9OPXkKQ09ORklHX0hB +VkVfQVJDSF9TRUNDT01QPXkKQ09ORklHX0hBVkVfQVJDSF9TRUNDT01QX0ZJTFRFUj15CiMgQ09O +RklHX1NFQ0NPTVAgaXMgbm90IHNldApDT05GSUdfSEFWRV9BUkNIX1NUQUNLTEVBSz15CkNPTkZJ +R19IQVZFX1NUQUNLUFJPVEVDVE9SPXkKIyBDT05GSUdfU1RBQ0tQUk9URUNUT1IgaXMgbm90IHNl +dApDT05GSUdfQVJDSF9TVVBQT1JUU19MVE9fQ0xBTkc9eQpDT05GSUdfQVJDSF9TVVBQT1JUU19M +VE9fQ0xBTkdfVEhJTj15CkNPTkZJR19MVE9fTk9ORT15CkNPTkZJR19IQVZFX0FSQ0hfV0lUSElO +X1NUQUNLX0ZSQU1FUz15CkNPTkZJR19IQVZFX0lSUV9USU1FX0FDQ09VTlRJTkc9eQpDT05GSUdf +SEFWRV9NT1ZFX1BVRD15CkNPTkZJR19IQVZFX01PVkVfUE1EPXkKQ09ORklHX0hBVkVfQVJDSF9U +UkFOU1BBUkVOVF9IVUdFUEFHRT15CkNPTkZJR19BUkNIX1dBTlRfSFVHRV9QTURfU0hBUkU9eQpD +T05GSUdfSEFWRV9NT0RfQVJDSF9TUEVDSUZJQz15CkNPTkZJR19NT0RVTEVTX1VTRV9FTEZfUkVM +PXkKQ09ORklHX0hBVkVfU09GVElSUV9PTl9PV05fU1RBQ0s9eQpDT05GSUdfQVJDSF9IQVNfRUxG +X1JBTkRPTUlaRT15CkNPTkZJR19IQVZFX0FSQ0hfTU1BUF9STkRfQklUUz15CkNPTkZJR19IQVZF +X0VYSVRfVEhSRUFEPXkKQ09ORklHX0FSQ0hfTU1BUF9STkRfQklUUz04CkNPTkZJR19DTE9ORV9C +QUNLV0FSRFM9eQpDT05GSUdfT0xEX1NJR1NVU1BFTkQzPXkKQ09ORklHX09MRF9TSUdBQ1RJT049 +eQojIENPTkZJR19DT01QQVRfMzJCSVRfVElNRSBpcyBub3Qgc2V0CkNPTkZJR19IQVZFX0FSQ0hf +UkFORE9NSVpFX0tTVEFDS19PRkZTRVQ9eQojIENPTkZJR19SQU5ET01JWkVfS1NUQUNLX09GRlNF +VF9ERUZBVUxUIGlzIG5vdCBzZXQKQ09ORklHX0FSQ0hfSEFTX1NUUklDVF9LRVJORUxfUldYPXkK +Q09ORklHX1NUUklDVF9LRVJORUxfUldYPXkKQ09ORklHX0FSQ0hfSEFTX1NUUklDVF9NT0RVTEVf +UldYPXkKQ09ORklHX0hBVkVfQVJDSF9QUkVMMzJfUkVMT0NBVElPTlM9eQpDT05GSUdfQVJDSF9I +QVNfTUVNX0VOQ1JZUFQ9eQpDT05GSUdfSEFWRV9TVEFUSUNfQ0FMTD15CkNPTkZJR19IQVZFX1BS +RUVNUFRfRFlOQU1JQz15CkNPTkZJR19BUkNIX1dBTlRfTERfT1JQSEFOX1dBUk49eQpDT05GSUdf +QVJDSF9TVVBQT1JUU19ERUJVR19QQUdFQUxMT0M9eQpDT05GSUdfQVJDSF9TUExJVF9BUkc2ND15 +CkNPTkZJR19BUkNIX0hBU19QQVJBTk9JRF9MMURfRkxVU0g9eQoKIwojIEdDT1YtYmFzZWQga2Vy +bmVsIHByb2ZpbGluZwojCkNPTkZJR19BUkNIX0hBU19HQ09WX1BST0ZJTEVfQUxMPXkKIyBlbmQg +b2YgR0NPVi1iYXNlZCBrZXJuZWwgcHJvZmlsaW5nCgpDT05GSUdfSEFWRV9HQ0NfUExVR0lOUz15 +CiMgZW5kIG9mIEdlbmVyYWwgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBvcHRpb25zCgpDT05GSUdf +QkFTRV9TTUFMTD0xCiMgQ09ORklHX01PRFVMRVMgaXMgbm90IHNldApDT05GSUdfTU9EVUxFU19U +UkVFX0xPT0tVUD15CiMgQ09ORklHX0JMT0NLIGlzIG5vdCBzZXQKQ09ORklHX0lOTElORV9TUElO +X1VOTE9DS19JUlE9eQpDT05GSUdfSU5MSU5FX1JFQURfVU5MT0NLPXkKQ09ORklHX0lOTElORV9S +RUFEX1VOTE9DS19JUlE9eQpDT05GSUdfSU5MSU5FX1dSSVRFX1VOTE9DSz15CkNPTkZJR19JTkxJ +TkVfV1JJVEVfVU5MT0NLX0lSUT15CkNPTkZJR19BUkNIX1NVUFBPUlRTX0FUT01JQ19STVc9eQpD +T05GSUdfQVJDSF9VU0VfUVVFVUVEX1NQSU5MT0NLUz15CkNPTkZJR19BUkNIX1VTRV9RVUVVRURf +UldMT0NLUz15CkNPTkZJR19BUkNIX0hBU19OT05fT1ZFUkxBUFBJTkdfQUREUkVTU19TUEFDRT15 +CkNPTkZJR19BUkNIX0hBU19TWU5DX0NPUkVfQkVGT1JFX1VTRVJNT0RFPXkKQ09ORklHX0FSQ0hf +SEFTX1NZU0NBTExfV1JBUFBFUj15CgojCiMgRXhlY3V0YWJsZSBmaWxlIGZvcm1hdHMKIwpDT05G +SUdfQklORk1UX0VMRj15CkNPTkZJR19FTEZDT1JFPXkKQ09ORklHX0JJTkZNVF9TQ1JJUFQ9eQoj +IENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CiMgQ09ORklHX0NPUkVEVU1QIGlzIG5vdCBz +ZXQKIyBlbmQgb2YgRXhlY3V0YWJsZSBmaWxlIGZvcm1hdHMKCiMKIyBNZW1vcnkgTWFuYWdlbWVu +dCBvcHRpb25zCiMKQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQpDT05GSUdfRkxBVE1FTV9N +QU5VQUw9eQojIENPTkZJR19TUEFSU0VNRU1fTUFOVUFMIGlzIG5vdCBzZXQKQ09ORklHX0ZMQVRN +RU09eQpDT05GSUdfU1BBUlNFTUVNX1NUQVRJQz15CkNPTkZJR19IQVZFX0ZBU1RfR1VQPXkKQ09O +RklHX1NQTElUX1BUTE9DS19DUFVTPTQKIyBDT05GSUdfQ09NUEFDVElPTiBpcyBub3Qgc2V0CiMg +Q09ORklHX1BBR0VfUkVQT1JUSU5HIGlzIG5vdCBzZXQKQ09ORklHX1ZJUlRfVE9fQlVTPXkKIyBD +T05GSUdfS1NNIGlzIG5vdCBzZXQKQ09ORklHX0RFRkFVTFRfTU1BUF9NSU5fQUREUj00MDk2CiMg +Q09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFIGlzIG5vdCBzZXQKQ09ORklHX05FRURfUEVSX0NQ +VV9LTT15CiMgQ09ORklHX0NMRUFOQ0FDSEUgaXMgbm90IHNldAojIENPTkZJR19DTUEgaXMgbm90 +IHNldAojIENPTkZJR19aUE9PTCBpcyBub3Qgc2V0CiMgQ09ORklHX1pTTUFMTE9DIGlzIG5vdCBz +ZXQKQ09ORklHX0dFTkVSSUNfRUFSTFlfSU9SRU1BUD15CkNPTkZJR19BUkNIX0hBU19DQUNIRV9M +SU5FX1NJWkU9eQpDT05GSUdfQVJDSF9IQVNfWk9ORV9ETUFfU0VUPXkKIyBDT05GSUdfWk9ORV9E +TUEgaXMgbm90IHNldAojIENPTkZJR19QRVJDUFVfU1RBVFMgaXMgbm90IHNldAoKIwojIEdVUF9U +RVNUIG5lZWRzIHRvIGhhdmUgREVCVUdfRlMgZW5hYmxlZAojCkNPTkZJR19BUkNIX0hBU19QVEVf +U1BFQ0lBTD15CkNPTkZJR19LTUFQX0xPQ0FMPXkKCiMKIyBEYXRhIEFjY2VzcyBNb25pdG9yaW5n +CiMKIyBDT05GSUdfREFNT04gaXMgbm90IHNldAojIGVuZCBvZiBEYXRhIEFjY2VzcyBNb25pdG9y +aW5nCiMgZW5kIG9mIE1lbW9yeSBNYW5hZ2VtZW50IG9wdGlvbnMKCiMgQ09ORklHX05FVCBpcyBu +b3Qgc2V0CgojCiMgRGV2aWNlIERyaXZlcnMKIwpDT05GSUdfSEFWRV9FSVNBPXkKIyBDT05GSUdf +RUlTQSBpcyBub3Qgc2V0CkNPTkZJR19IQVZFX1BDST15CiMgQ09ORklHX1BDSSBpcyBub3Qgc2V0 +CiMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CgojCiMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucwoj +CiMgQ09ORklHX1VFVkVOVF9IRUxQRVIgaXMgbm90IHNldAojIENPTkZJR19ERVZUTVBGUyBpcyBu +b3Qgc2V0CiMgQ09ORklHX1NUQU5EQUxPTkUgaXMgbm90IHNldAojIENPTkZJR19QUkVWRU5UX0ZJ +Uk1XQVJFX0JVSUxEIGlzIG5vdCBzZXQKCiMKIyBGaXJtd2FyZSBsb2FkZXIKIwojIENPTkZJR19G +V19MT0FERVIgaXMgbm90IHNldAojIGVuZCBvZiBGaXJtd2FyZSBsb2FkZXIKCiMgQ09ORklHX0FM +TE9XX0RFVl9DT1JFRFVNUCBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX0RSSVZFUiBpcyBub3Qg +c2V0CiMgQ09ORklHX0RFQlVHX0RFVlJFUyBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX1RFU1Rf +RFJJVkVSX1JFTU9WRSBpcyBub3Qgc2V0CkNPTkZJR19HRU5FUklDX0NQVV9BVVRPUFJPQkU9eQpD +T05GSUdfR0VORVJJQ19DUFVfVlVMTkVSQUJJTElUSUVTPXkKIyBlbmQgb2YgR2VuZXJpYyBEcml2 +ZXIgT3B0aW9ucwoKIwojIEJ1cyBkZXZpY2VzCiMKIyBDT05GSUdfTUhJX0JVUyBpcyBub3Qgc2V0 +CiMgZW5kIG9mIEJ1cyBkZXZpY2VzCgojCiMgRmlybXdhcmUgRHJpdmVycwojCgojCiMgQVJNIFN5 +c3RlbSBDb250cm9sIGFuZCBNYW5hZ2VtZW50IEludGVyZmFjZSBQcm90b2NvbAojCiMgZW5kIG9m +IEFSTSBTeXN0ZW0gQ29udHJvbCBhbmQgTWFuYWdlbWVudCBJbnRlcmZhY2UgUHJvdG9jb2wKCiMg +Q09ORklHX0VERCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZJUk1XQVJFX01FTU1BUCBpcyBub3Qgc2V0 +CkNPTkZJR19TWVNGQj15CiMgQ09ORklHX1NZU0ZCX1NJTVBMRUZCIGlzIG5vdCBzZXQKIyBDT05G +SUdfR09PR0xFX0ZJUk1XQVJFIGlzIG5vdCBzZXQKCiMKIyBUZWdyYSBmaXJtd2FyZSBkcml2ZXIK +IwojIGVuZCBvZiBUZWdyYSBmaXJtd2FyZSBkcml2ZXIKIyBlbmQgb2YgRmlybXdhcmUgRHJpdmVy +cwoKIyBDT05GSUdfR05TUyBpcyBub3Qgc2V0CiMgQ09ORklHX01URCBpcyBub3Qgc2V0CiMgQ09O +RklHX09GIGlzIG5vdCBzZXQKQ09ORklHX0FSQ0hfTUlHSFRfSEFWRV9QQ19QQVJQT1JUPXkKIyBD +T05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CgojCiMgTlZNRSBTdXBwb3J0CiMKIyBlbmQgb2YgTlZN +RSBTdXBwb3J0CgojCiMgTWlzYyBkZXZpY2VzCiMKIyBDT05GSUdfRFVNTVlfSVJRIGlzIG5vdCBz +ZXQKIyBDT05GSUdfRU5DTE9TVVJFX1NFUlZJQ0VTIGlzIG5vdCBzZXQKIyBDT05GSUdfU1JBTSBp +cyBub3Qgc2V0CiMgQ09ORklHX1hJTElOWF9TREZFQyBpcyBub3Qgc2V0CiMgQ09ORklHX0MyUE9S +VCBpcyBub3Qgc2V0CgojCiMgRUVQUk9NIHN1cHBvcnQKIwojIENPTkZJR19FRVBST01fOTNDWDYg +aXMgbm90IHNldAojIGVuZCBvZiBFRVBST00gc3VwcG9ydAoKIwojIFRleGFzIEluc3RydW1lbnRz +IHNoYXJlZCB0cmFuc3BvcnQgbGluZSBkaXNjaXBsaW5lCiMKIyBlbmQgb2YgVGV4YXMgSW5zdHJ1 +bWVudHMgc2hhcmVkIHRyYW5zcG9ydCBsaW5lIGRpc2NpcGxpbmUKCiMKIyBBbHRlcmEgRlBHQSBm +aXJtd2FyZSBkb3dubG9hZCBtb2R1bGUgKHJlcXVpcmVzIEkyQykKIwojIENPTkZJR19FQ0hPIGlz +IG5vdCBzZXQKIyBDT05GSUdfUFZQQU5JQyBpcyBub3Qgc2V0CiMgZW5kIG9mIE1pc2MgZGV2aWNl +cwoKIwojIFNDU0kgZGV2aWNlIHN1cHBvcnQKIwpDT05GSUdfU0NTSV9NT0Q9eQojIGVuZCBvZiBT +Q1NJIGRldmljZSBzdXBwb3J0CgojIENPTkZJR19NQUNJTlRPU0hfRFJJVkVSUyBpcyBub3Qgc2V0 +CgojCiMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKIwpDT05GSUdfSU5QVVQ9eQojIENPTkZJR19JTlBV +VF9GRl9NRU1MRVNTIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5QVVRfU1BBUlNFS01BUCBpcyBub3Qg +c2V0CiMgQ09ORklHX0lOUFVUX01BVFJJWEtNQVAgaXMgbm90IHNldAoKIwojIFVzZXJsYW5kIGlu +dGVyZmFjZXMKIwojIENPTkZJR19JTlBVVF9NT1VTRURFViBpcyBub3Qgc2V0CiMgQ09ORklHX0lO +UFVUX0pPWURFViBpcyBub3Qgc2V0CiMgQ09ORklHX0lOUFVUX0VWREVWIGlzIG5vdCBzZXQKIyBD +T05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAoKIwojIElucHV0IERldmljZSBEcml2ZXJzCiMK +Q09ORklHX0lOUFVUX0tFWUJPQVJEPXkKQ09ORklHX0tFWUJPQVJEX0FUS0JEPXkKIyBDT05GSUdf +S0VZQk9BUkRfTEtLQkQgaXMgbm90IHNldAojIENPTkZJR19LRVlCT0FSRF9ORVdUT04gaXMgbm90 +IHNldAojIENPTkZJR19LRVlCT0FSRF9PUEVOQ09SRVMgaXMgbm90IHNldAojIENPTkZJR19LRVlC +T0FSRF9TVE9XQVdBWSBpcyBub3Qgc2V0CiMgQ09ORklHX0tFWUJPQVJEX1NVTktCRCBpcyBub3Qg +c2V0CiMgQ09ORklHX0tFWUJPQVJEX1hUS0JEIGlzIG5vdCBzZXQKQ09ORklHX0lOUFVUX01PVVNF +PXkKQ09ORklHX01PVVNFX1BTMj15CkNPTkZJR19NT1VTRV9QUzJfQUxQUz15CkNPTkZJR19NT1VT +RV9QUzJfQllEPXkKQ09ORklHX01PVVNFX1BTMl9MT0dJUFMyUFA9eQpDT05GSUdfTU9VU0VfUFMy +X1NZTkFQVElDUz15CkNPTkZJR19NT1VTRV9QUzJfQ1lQUkVTUz15CkNPTkZJR19NT1VTRV9QUzJf +VFJBQ0tQT0lOVD15CiMgQ09ORklHX01PVVNFX1BTMl9FTEFOVEVDSCBpcyBub3Qgc2V0CiMgQ09O +RklHX01PVVNFX1BTMl9TRU5URUxJQyBpcyBub3Qgc2V0CiMgQ09ORklHX01PVVNFX1BTMl9UT1VD +SEtJVCBpcyBub3Qgc2V0CkNPTkZJR19NT1VTRV9QUzJfRk9DQUxURUNIPXkKIyBDT05GSUdfTU9V +U0VfU0VSSUFMIGlzIG5vdCBzZXQKIyBDT05GSUdfTU9VU0VfVlNYWFhBQSBpcyBub3Qgc2V0CiMg +Q09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlz +IG5vdCBzZXQKIyBDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU4gaXMgbm90IHNldAojIENPTkZJR19J +TlBVVF9NSVNDIGlzIG5vdCBzZXQKIyBDT05GSUdfUk1JNF9DT1JFIGlzIG5vdCBzZXQKCiMKIyBI +YXJkd2FyZSBJL08gcG9ydHMKIwpDT05GSUdfU0VSSU89eQpDT05GSUdfQVJDSF9NSUdIVF9IQVZF +X1BDX1NFUklPPXkKQ09ORklHX1NFUklPX0k4MDQyPXkKQ09ORklHX1NFUklPX1NFUlBPUlQ9eQoj +IENPTkZJR19TRVJJT19DVDgyQzcxMCBpcyBub3Qgc2V0CkNPTkZJR19TRVJJT19MSUJQUzI9eQoj +IENPTkZJR19TRVJJT19SQVcgaXMgbm90IHNldAojIENPTkZJR19TRVJJT19BTFRFUkFfUFMyIGlz +IG5vdCBzZXQKIyBDT05GSUdfU0VSSU9fUFMyTVVMVCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFUklP +X0FSQ19QUzIgaXMgbm90IHNldAojIENPTkZJR19VU0VSSU8gaXMgbm90IHNldAojIENPTkZJR19H +QU1FUE9SVCBpcyBub3Qgc2V0CiMgZW5kIG9mIEhhcmR3YXJlIEkvTyBwb3J0cwojIGVuZCBvZiBJ +bnB1dCBkZXZpY2Ugc3VwcG9ydAoKIwojIENoYXJhY3RlciBkZXZpY2VzCiMKQ09ORklHX1RUWT15 +CkNPTkZJR19WVD15CkNPTkZJR19DT05TT0xFX1RSQU5TTEFUSU9OUz15CkNPTkZJR19WVF9DT05T +T0xFPXkKQ09ORklHX0hXX0NPTlNPTEU9eQojIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcg +aXMgbm90IHNldApDT05GSUdfVU5JWDk4X1BUWVM9eQpDT05GSUdfTEVHQUNZX1BUWVM9eQpDT05G +SUdfTEVHQUNZX1BUWV9DT1VOVD0yNTYKQ09ORklHX0xESVNDX0FVVE9MT0FEPXkKCiMKIyBTZXJp +YWwgZHJpdmVycwojCiMgQ09ORklHX1NFUklBTF84MjUwIGlzIG5vdCBzZXQKCiMKIyBOb24tODI1 +MCBzZXJpYWwgcG9ydCBzdXBwb3J0CiMKIyBDT05GSUdfU0VSSUFMX1VBUlRMSVRFIGlzIG5vdCBz +ZXQKIyBDT05GSUdfU0VSSUFMX0xBTlRJUSBpcyBub3Qgc2V0CiMgQ09ORklHX1NFUklBTF9TQ0NO +WFAgaXMgbm90IHNldAojIENPTkZJR19TRVJJQUxfVElNQkVSREFMRSBpcyBub3Qgc2V0CiMgQ09O +RklHX1NFUklBTF9BTFRFUkFfSlRBR1VBUlQgaXMgbm90IHNldAojIENPTkZJR19TRVJJQUxfQUxU +RVJBX1VBUlQgaXMgbm90IHNldAojIENPTkZJR19TRVJJQUxfQVJDIGlzIG5vdCBzZXQKIyBDT05G +SUdfU0VSSUFMX0ZTTF9MUFVBUlQgaXMgbm90IHNldAojIENPTkZJR19TRVJJQUxfRlNMX0xJTkZM +RVhVQVJUIGlzIG5vdCBzZXQKIyBlbmQgb2YgU2VyaWFsIGRyaXZlcnMKCiMgQ09ORklHX1NFUklB +TF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiMgQ09ORklHX05VTExfVFRZIGlzIG5vdCBzZXQKIyBD +T05GSUdfU0VSSUFMX0RFVl9CVVMgaXMgbm90IHNldAojIENPTkZJR19UVFlfUFJJTlRLIGlzIG5v +dCBzZXQKIyBDT05GSUdfVklSVElPX0NPTlNPTEUgaXMgbm90IHNldAojIENPTkZJR19JUE1JX0hB +TkRMRVIgaXMgbm90IHNldAojIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAojIENPTkZJR19N +V0FWRSBpcyBub3Qgc2V0CiMgQ09ORklHX1BDODczNnhfR1BJTyBpcyBub3Qgc2V0CiMgQ09ORklH +X05TQ19HUElPIGlzIG5vdCBzZXQKIyBDT05GSUdfREVWTUVNIGlzIG5vdCBzZXQKIyBDT05GSUdf +TlZSQU0gaXMgbm90IHNldAojIENPTkZJR19IQU5HQ0hFQ0tfVElNRVIgaXMgbm90IHNldAojIENP +TkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKIyBDT05GSUdfVEVMQ0xPQ0sgaXMgbm90IHNldAojIENP +TkZJR19SQU5ET01fVFJVU1RfQk9PVExPQURFUiBpcyBub3Qgc2V0CiMgZW5kIG9mIENoYXJhY3Rl +ciBkZXZpY2VzCgojCiMgSTJDIHN1cHBvcnQKIwojIENPTkZJR19JMkMgaXMgbm90IHNldAojIGVu +ZCBvZiBJMkMgc3VwcG9ydAoKIyBDT05GSUdfSTNDIGlzIG5vdCBzZXQKIyBDT05GSUdfU1BJIGlz +IG5vdCBzZXQKIyBDT05GSUdfU1BNSSBpcyBub3Qgc2V0CiMgQ09ORklHX0hTSSBpcyBub3Qgc2V0 +CiMgQ09ORklHX1BQUyBpcyBub3Qgc2V0CgojCiMgUFRQIGNsb2NrIHN1cHBvcnQKIwpDT05GSUdf +UFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUw9eQoKIwojIEVuYWJsZSBQSFlMSUIgYW5kIE5FVFdPUktf +UEhZX1RJTUVTVEFNUElORyB0byBzZWUgdGhlIGFkZGl0aW9uYWwgY2xvY2tzLgojCiMgZW5kIG9m +IFBUUCBjbG9jayBzdXBwb3J0CgojIENPTkZJR19QSU5DVFJMIGlzIG5vdCBzZXQKIyBDT05GSUdf +R1BJT0xJQiBpcyBub3Qgc2V0CiMgQ09ORklHX1cxIGlzIG5vdCBzZXQKIyBDT05GSUdfUE9XRVJf +UkVTRVQgaXMgbm90IHNldAojIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAojIENPTkZJ +R19IV01PTiBpcyBub3Qgc2V0CiMgQ09ORklHX1RIRVJNQUwgaXMgbm90IHNldAojIENPTkZJR19X +QVRDSERPRyBpcyBub3Qgc2V0CkNPTkZJR19TU0JfUE9TU0lCTEU9eQojIENPTkZJR19TU0IgaXMg +bm90IHNldApDT05GSUdfQkNNQV9QT1NTSUJMRT15CiMgQ09ORklHX0JDTUEgaXMgbm90IHNldAoK +IwojIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKIwojIENPTkZJR19NRkRfTUFERVJBIGlz +IG5vdCBzZXQKIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiMgQ09ORklHX01GRF9LRU1Q +TEQgaXMgbm90IHNldAojIENPTkZJR19NRkRfTVQ2Mzk3IGlzIG5vdCBzZXQKIyBDT05GSUdfTUZE +X1NNNTAxIGlzIG5vdCBzZXQKIyBDT05GSUdfTUZEX1NZU0NPTiBpcyBub3Qgc2V0CiMgQ09ORklH +X01GRF9USV9BTTMzNVhfVFNDQURDIGlzIG5vdCBzZXQKIyBDT05GSUdfTUZEX1RRTVg4NiBpcyBu +b3Qgc2V0CiMgZW5kIG9mIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKCiMgQ09ORklHX1JF +R1VMQVRPUiBpcyBub3Qgc2V0CiMgQ09ORklHX1JDX0NPUkUgaXMgbm90IHNldAojIENPTkZJR19N +RURJQV9DRUNfU1VQUE9SVCBpcyBub3Qgc2V0CiMgQ09ORklHX01FRElBX1NVUFBPUlQgaXMgbm90 +IHNldAoKIwojIEdyYXBoaWNzIHN1cHBvcnQKIwojIENPTkZJR19EUk0gaXMgbm90IHNldAoKIwoj +IEFSTSBkZXZpY2VzCiMKIyBlbmQgb2YgQVJNIGRldmljZXMKCiMKIyBGcmFtZSBidWZmZXIgRGV2 +aWNlcwojCiMgQ09ORklHX0ZCIGlzIG5vdCBzZXQKIyBlbmQgb2YgRnJhbWUgYnVmZmVyIERldmlj +ZXMKCiMKIyBCYWNrbGlnaHQgJiBMQ0QgZGV2aWNlIHN1cHBvcnQKIwojIENPTkZJR19MQ0RfQ0xB +U1NfREVWSUNFIGlzIG5vdCBzZXQKIyBDT05GSUdfQkFDS0xJR0hUX0NMQVNTX0RFVklDRSBpcyBu +b3Qgc2V0CiMgZW5kIG9mIEJhY2tsaWdodCAmIExDRCBkZXZpY2Ugc3VwcG9ydAoKIwojIENvbnNv +bGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAojCkNPTkZJR19WR0FfQ09OU09MRT15CkNPTkZJR19E +VU1NWV9DT05TT0xFPXkKQ09ORklHX0RVTU1ZX0NPTlNPTEVfQ09MVU1OUz04MApDT05GSUdfRFVN +TVlfQ09OU09MRV9ST1dTPTI1CiMgZW5kIG9mIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9y +dAojIGVuZCBvZiBHcmFwaGljcyBzdXBwb3J0CgojIENPTkZJR19TT1VORCBpcyBub3Qgc2V0Cgoj +CiMgSElEIHN1cHBvcnQKIwpDT05GSUdfSElEPXkKIyBDT05GSUdfSElEX0JBVFRFUllfU1RSRU5H +VEggaXMgbm90IHNldAojIENPTkZJR19ISURSQVcgaXMgbm90IHNldAojIENPTkZJR19VSElEIGlz +IG5vdCBzZXQKQ09ORklHX0hJRF9HRU5FUklDPXkKCiMKIyBTcGVjaWFsIEhJRCBkcml2ZXJzCiMK +IyBDT05GSUdfSElEX0E0VEVDSCBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9BQ1JVWCBpcyBub3Qg +c2V0CiMgQ09ORklHX0hJRF9BUFBMRSBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9BVVJFQUwgaXMg +bm90IHNldAojIENPTkZJR19ISURfQkVMS0lOIGlzIG5vdCBzZXQKIyBDT05GSUdfSElEX0NIRVJS +WSBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9DSElDT05ZIGlzIG5vdCBzZXQKIyBDT05GSUdfSElE +X0NPVUdBUiBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9NQUNBTExZIGlzIG5vdCBzZXQKIyBDT05G +SUdfSElEX0NNRURJQSBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9DWVBSRVNTIGlzIG5vdCBzZXQK +IyBDT05GSUdfSElEX0RSQUdPTlJJU0UgaXMgbm90IHNldAojIENPTkZJR19ISURfRU1TX0ZGIGlz +IG5vdCBzZXQKIyBDT05GSUdfSElEX0VMRUNPTSBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9FWktF +WSBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9HRU1CSVJEIGlzIG5vdCBzZXQKIyBDT05GSUdfSElE +X0dGUk0gaXMgbm90IHNldAojIENPTkZJR19ISURfR0xPUklPVVMgaXMgbm90IHNldAojIENPTkZJ +R19ISURfVklWQUxESSBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9LRVlUT1VDSCBpcyBub3Qgc2V0 +CiMgQ09ORklHX0hJRF9LWUUgaXMgbm90IHNldAojIENPTkZJR19ISURfV0FMVE9QIGlzIG5vdCBz +ZXQKIyBDT05GSUdfSElEX1ZJRVdTT05JQyBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9HWVJBVElP +TiBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9JQ0FERSBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9J +VEUgaXMgbm90IHNldAojIENPTkZJR19ISURfSkFCUkEgaXMgbm90IHNldAojIENPTkZJR19ISURf +VFdJTkhBTiBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9LRU5TSU5HVE9OIGlzIG5vdCBzZXQKIyBD +T05GSUdfSElEX0xDUE9XRVIgaXMgbm90IHNldAojIENPTkZJR19ISURfTEVOT1ZPIGlzIG5vdCBz +ZXQKIyBDT05GSUdfSElEX01BR0lDTU9VU0UgaXMgbm90IHNldAojIENPTkZJR19ISURfTUFMVFJP +TiBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9NQVlGTEFTSCBpcyBub3Qgc2V0CiMgQ09ORklHX0hJ +RF9SRURSQUdPTiBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9NSUNST1NPRlQgaXMgbm90IHNldAoj +IENPTkZJR19ISURfTU9OVEVSRVkgaXMgbm90IHNldAojIENPTkZJR19ISURfTVVMVElUT1VDSCBp +cyBub3Qgc2V0CiMgQ09ORklHX0hJRF9OVEkgaXMgbm90IHNldAojIENPTkZJR19ISURfT1JURUsg +aXMgbm90IHNldAojIENPTkZJR19ISURfUEFOVEhFUkxPUkQgaXMgbm90IHNldAojIENPTkZJR19I +SURfUEVUQUxZTlggaXMgbm90IHNldAojIENPTkZJR19ISURfUElDT0xDRCBpcyBub3Qgc2V0CiMg +Q09ORklHX0hJRF9QTEFOVFJPTklDUyBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9QTEFZU1RBVElP +TiBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9QUklNQVggaXMgbm90IHNldAojIENPTkZJR19ISURf +U0FJVEVLIGlzIG5vdCBzZXQKIyBDT05GSUdfSElEX1NBTVNVTkcgaXMgbm90IHNldAojIENPTkZJ +R19ISURfU0VNSVRFSyBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9TUEVFRExJTksgaXMgbm90IHNl +dAojIENPTkZJR19ISURfU1RFQU0gaXMgbm90IHNldAojIENPTkZJR19ISURfU1RFRUxTRVJJRVMg +aXMgbm90IHNldAojIENPTkZJR19ISURfU1VOUExVUyBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9S +TUkgaXMgbm90IHNldAojIENPTkZJR19ISURfR1JFRU5BU0lBIGlzIG5vdCBzZXQKIyBDT05GSUdf +SElEX1NNQVJUSk9ZUExVUyBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9USVZPIGlzIG5vdCBzZXQK +IyBDT05GSUdfSElEX1RPUFNFRUQgaXMgbm90IHNldAojIENPTkZJR19ISURfVURSQVdfUFMzIGlz +IG5vdCBzZXQKIyBDT05GSUdfSElEX1hJTk1PIGlzIG5vdCBzZXQKIyBDT05GSUdfSElEX1pFUk9Q +TFVTIGlzIG5vdCBzZXQKIyBDT05GSUdfSElEX1pZREFDUk9OIGlzIG5vdCBzZXQKIyBDT05GSUdf +SElEX1NFTlNPUl9IVUIgaXMgbm90IHNldAojIENPTkZJR19ISURfQUxQUyBpcyBub3Qgc2V0CiMg +ZW5kIG9mIFNwZWNpYWwgSElEIGRyaXZlcnMKIyBlbmQgb2YgSElEIHN1cHBvcnQKCkNPTkZJR19V +U0JfT0hDSV9MSVRUTEVfRU5ESUFOPXkKIyBDT05GSUdfVVNCX1NVUFBPUlQgaXMgbm90IHNldAoj +IENPTkZJR19NTUMgaXMgbm90IHNldAojIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiMgQ09O +RklHX05FV19MRURTIGlzIG5vdCBzZXQKIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0 +CkNPTkZJR19FREFDX0FUT01JQ19TQ1JVQj15CkNPTkZJR19FREFDX1NVUFBPUlQ9eQpDT05GSUdf +UlRDX0xJQj15CkNPTkZJR19SVENfTUMxNDY4MThfTElCPXkKIyBDT05GSUdfUlRDX0NMQVNTIGlz +IG5vdCBzZXQKIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0CgojCiMgRE1BQlVGIG9wdGlv +bnMKIwojIENPTkZJR19TWU5DX0ZJTEUgaXMgbm90IHNldAojIENPTkZJR19ETUFCVUZfSEVBUFMg +aXMgbm90IHNldAojIGVuZCBvZiBETUFCVUYgb3B0aW9ucwoKIyBDT05GSUdfQVVYRElTUExBWSBp +cyBub3Qgc2V0CiMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiMgQ09ORklHX1ZGSU8gaXMgbm90IHNl +dAojIENPTkZJR19WSVJUX0RSSVZFUlMgaXMgbm90IHNldAojIENPTkZJR19WSVJUSU9fTUVOVSBp +cyBub3Qgc2V0CiMgQ09ORklHX1ZIT1NUX01FTlUgaXMgbm90IHNldAoKIwojIE1pY3Jvc29mdCBI +eXBlci1WIGd1ZXN0IHN1cHBvcnQKIwojIGVuZCBvZiBNaWNyb3NvZnQgSHlwZXItViBndWVzdCBz +dXBwb3J0CgojIENPTkZJR19DT01FREkgaXMgbm90IHNldAojIENPTkZJR19TVEFHSU5HIGlzIG5v +dCBzZXQKIyBDT05GSUdfWDg2X1BMQVRGT1JNX0RFVklDRVMgaXMgbm90IHNldAojIENPTkZJR19D +SFJPTUVfUExBVEZPUk1TIGlzIG5vdCBzZXQKIyBDT05GSUdfTUVMTEFOT1hfUExBVEZPUk0gaXMg +bm90IHNldAojIENPTkZJR19DT01NT05fQ0xLIGlzIG5vdCBzZXQKIyBDT05GSUdfSFdTUElOTE9D +SyBpcyBub3Qgc2V0CgojCiMgQ2xvY2sgU291cmNlIGRyaXZlcnMKIwpDT05GSUdfQ0xLU1JDX0k4 +MjUzPXkKQ09ORklHX0NMS0VWVF9JODI1Mz15CkNPTkZJR19DTEtCTERfSTgyNTM9eQojIGVuZCBv +ZiBDbG9jayBTb3VyY2UgZHJpdmVycwoKIyBDT05GSUdfTUFJTEJPWCBpcyBub3Qgc2V0CiMgQ09O +RklHX0lPTU1VX1NVUFBPUlQgaXMgbm90IHNldAoKIwojIFJlbW90ZXByb2MgZHJpdmVycwojCiMg +Q09ORklHX1JFTU9URVBST0MgaXMgbm90IHNldAojIGVuZCBvZiBSZW1vdGVwcm9jIGRyaXZlcnMK +CiMKIyBScG1zZyBkcml2ZXJzCiMKIyBDT05GSUdfUlBNU0dfVklSVElPIGlzIG5vdCBzZXQKIyBl +bmQgb2YgUnBtc2cgZHJpdmVycwoKIwojIFNPQyAoU3lzdGVtIE9uIENoaXApIHNwZWNpZmljIERy +aXZlcnMKIwoKIwojIEFtbG9naWMgU29DIGRyaXZlcnMKIwojIGVuZCBvZiBBbWxvZ2ljIFNvQyBk +cml2ZXJzCgojCiMgQnJvYWRjb20gU29DIGRyaXZlcnMKIwojIGVuZCBvZiBCcm9hZGNvbSBTb0Mg +ZHJpdmVycwoKIwojIE5YUC9GcmVlc2NhbGUgUW9ySVEgU29DIGRyaXZlcnMKIwojIGVuZCBvZiBO +WFAvRnJlZXNjYWxlIFFvcklRIFNvQyBkcml2ZXJzCgojCiMgaS5NWCBTb0MgZHJpdmVycwojCiMg +ZW5kIG9mIGkuTVggU29DIGRyaXZlcnMKCiMKIyBFbmFibGUgTGl0ZVggU29DIEJ1aWxkZXIgc3Bl +Y2lmaWMgZHJpdmVycwojCiMgZW5kIG9mIEVuYWJsZSBMaXRlWCBTb0MgQnVpbGRlciBzcGVjaWZp +YyBkcml2ZXJzCgojCiMgUXVhbGNvbW0gU29DIGRyaXZlcnMKIwojIGVuZCBvZiBRdWFsY29tbSBT +b0MgZHJpdmVycwoKIyBDT05GSUdfU09DX1RJIGlzIG5vdCBzZXQKCiMKIyBYaWxpbnggU29DIGRy +aXZlcnMKIwojIGVuZCBvZiBYaWxpbnggU29DIGRyaXZlcnMKIyBlbmQgb2YgU09DIChTeXN0ZW0g +T24gQ2hpcCkgc3BlY2lmaWMgRHJpdmVycwoKIyBDT05GSUdfUE1fREVWRlJFUSBpcyBub3Qgc2V0 +CiMgQ09ORklHX0VYVENPTiBpcyBub3Qgc2V0CiMgQ09ORklHX01FTU9SWSBpcyBub3Qgc2V0CiMg +Q09ORklHX0lJTyBpcyBub3Qgc2V0CiMgQ09ORklHX1BXTSBpcyBub3Qgc2V0CgojCiMgSVJRIGNo +aXAgc3VwcG9ydAojCiMgZW5kIG9mIElSUSBjaGlwIHN1cHBvcnQKCiMgQ09ORklHX0lQQUNLX0JV +UyBpcyBub3Qgc2V0CiMgQ09ORklHX1JFU0VUX0NPTlRST0xMRVIgaXMgbm90IHNldAoKIwojIFBI +WSBTdWJzeXN0ZW0KIwojIENPTkZJR19HRU5FUklDX1BIWSBpcyBub3Qgc2V0CiMgQ09ORklHX1BI +WV9DQU5fVFJBTlNDRUlWRVIgaXMgbm90IHNldAojIENPTkZJR19CQ01fS09OQV9VU0IyX1BIWSBp +cyBub3Qgc2V0CiMgQ09ORklHX1BIWV9QWEFfMjhOTV9IU0lDIGlzIG5vdCBzZXQKIyBDT05GSUdf +UEhZX1BYQV8yOE5NX1VTQjIgaXMgbm90IHNldAojIENPTkZJR19QSFlfSU5URUxfTEdNX0VNTUMg +aXMgbm90IHNldAojIGVuZCBvZiBQSFkgU3Vic3lzdGVtCgojIENPTkZJR19QT1dFUkNBUCBpcyBu +b3Qgc2V0CiMgQ09ORklHX01DQiBpcyBub3Qgc2V0CgojCiMgUGVyZm9ybWFuY2UgbW9uaXRvciBz +dXBwb3J0CiMKIyBlbmQgb2YgUGVyZm9ybWFuY2UgbW9uaXRvciBzdXBwb3J0CgojIENPTkZJR19S +QVMgaXMgbm90IHNldAoKIwojIEFuZHJvaWQKIwojIENPTkZJR19BTkRST0lEIGlzIG5vdCBzZXQK +IyBlbmQgb2YgQW5kcm9pZAoKIyBDT05GSUdfREFYIGlzIG5vdCBzZXQKIyBDT05GSUdfTlZNRU0g +aXMgbm90IHNldAoKIwojIEhXIHRyYWNpbmcgc3VwcG9ydAojCiMgQ09ORklHX1NUTSBpcyBub3Qg +c2V0CiMgQ09ORklHX0lOVEVMX1RIIGlzIG5vdCBzZXQKIyBlbmQgb2YgSFcgdHJhY2luZyBzdXBw +b3J0CgojIENPTkZJR19GUEdBIGlzIG5vdCBzZXQKIyBDT05GSUdfVEVFIGlzIG5vdCBzZXQKIyBD +T05GSUdfU0lPWCBpcyBub3Qgc2V0CiMgQ09ORklHX1NMSU1CVVMgaXMgbm90IHNldAojIENPTkZJ +R19JTlRFUkNPTk5FQ1QgaXMgbm90IHNldAojIENPTkZJR19DT1VOVEVSIGlzIG5vdCBzZXQKIyBl +bmQgb2YgRGV2aWNlIERyaXZlcnMKCiMKIyBGaWxlIHN5c3RlbXMKIwpDT05GSUdfRENBQ0hFX1dP +UkRfQUNDRVNTPXkKIyBDT05GSUdfVkFMSURBVEVfRlNfUEFSU0VSIGlzIG5vdCBzZXQKIyBDT05G +SUdfRVhQT1JURlNfQkxPQ0tfT1BTIGlzIG5vdCBzZXQKIyBDT05GSUdfRklMRV9MT0NLSU5HIGlz +IG5vdCBzZXQKIyBDT05GSUdfRlNfRU5DUllQVElPTiBpcyBub3Qgc2V0CiMgQ09ORklHX0ZTX1ZF +UklUWSBpcyBub3Qgc2V0CiMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldAojIENPTkZJR19JTk9U +SUZZX1VTRVIgaXMgbm90IHNldAojIENPTkZJR19GQU5PVElGWSBpcyBub3Qgc2V0CiMgQ09ORklH +X1FVT1RBIGlzIG5vdCBzZXQKIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CiMgQ09ORklH +X0FVVE9GU19GUyBpcyBub3Qgc2V0CiMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldAojIENPTkZJ +R19PVkVSTEFZX0ZTIGlzIG5vdCBzZXQKCiMKIyBDYWNoZXMKIwojIENPTkZJR19GU0NBQ0hFIGlz +IG5vdCBzZXQKIyBlbmQgb2YgQ2FjaGVzCgojCiMgUHNldWRvIGZpbGVzeXN0ZW1zCiMKIyBDT05G +SUdfUFJPQ19GUyBpcyBub3Qgc2V0CiMgQ09ORklHX1BST0NfQ0hJTERSRU4gaXMgbm90IHNldAoj +IENPTkZJR19TWVNGUyBpcyBub3Qgc2V0CiMgQ09ORklHX0hVR0VUTEJGUyBpcyBub3Qgc2V0CiMg +Q09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKIyBlbmQgb2YgUHNldWRvIGZpbGVzeXN0ZW1z +CgojIENPTkZJR19NSVNDX0ZJTEVTWVNURU1TIGlzIG5vdCBzZXQKIyBDT05GSUdfTkxTIGlzIG5v +dCBzZXQKIyBDT05GSUdfVU5JQ09ERSBpcyBub3Qgc2V0CiMgZW5kIG9mIEZpbGUgc3lzdGVtcwoK +IwojIFNlY3VyaXR5IG9wdGlvbnMKIwojIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKIyBDT05GSUdf +U0VDVVJJVFlfRE1FU0dfUkVTVFJJQ1QgaXMgbm90IHNldAojIENPTkZJR19TRUNVUklUWUZTIGlz +IG5vdCBzZXQKIyBDT05GSUdfRk9SVElGWV9TT1VSQ0UgaXMgbm90IHNldAojIENPTkZJR19TVEFU +SUNfVVNFUk1PREVIRUxQRVIgaXMgbm90IHNldApDT05GSUdfREVGQVVMVF9TRUNVUklUWV9EQUM9 +eQpDT05GSUdfTFNNPSJsYW5kbG9jayxsb2NrZG93bix5YW1hLGxvYWRwaW4sc2FmZXNldGlkLGlu +dGVncml0eSxicGYiCgojCiMgS2VybmVsIGhhcmRlbmluZyBvcHRpb25zCiMKCiMKIyBNZW1vcnkg +aW5pdGlhbGl6YXRpb24KIwpDT05GSUdfSU5JVF9TVEFDS19OT05FPXkKIyBDT05GSUdfSU5JVF9P +Tl9BTExPQ19ERUZBVUxUX09OIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5JVF9PTl9GUkVFX0RFRkFV +TFRfT04gaXMgbm90IHNldAojIGVuZCBvZiBNZW1vcnkgaW5pdGlhbGl6YXRpb24KIyBlbmQgb2Yg +S2VybmVsIGhhcmRlbmluZyBvcHRpb25zCiMgZW5kIG9mIFNlY3VyaXR5IG9wdGlvbnMKCiMgQ09O +RklHX0NSWVBUTyBpcyBub3Qgc2V0CgojCiMgTGlicmFyeSByb3V0aW5lcwojCiMgQ09ORklHX1BB +Q0tJTkcgaXMgbm90IHNldApDT05GSUdfQklUUkVWRVJTRT15CkNPTkZJR19HRU5FUklDX1NUUk5D +UFlfRlJPTV9VU0VSPXkKQ09ORklHX0dFTkVSSUNfU1RSTkxFTl9VU0VSPXkKQ09ORklHX0dFTkVS +SUNfRklORF9GSVJTVF9CSVQ9eQojIENPTkZJR19DT1JESUMgaXMgbm90IHNldAojIENPTkZJR19Q +UklNRV9OVU1CRVJTIGlzIG5vdCBzZXQKQ09ORklHX0dFTkVSSUNfUENJX0lPTUFQPXkKQ09ORklH +X0dFTkVSSUNfSU9NQVA9eQpDT05GSUdfQVJDSF9IQVNfRkFTVF9NVUxUSVBMSUVSPXkKQ09ORklH +X0FSQ0hfVVNFX1NZTV9BTk5PVEFUSU9OUz15CiMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0 +CiMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JDX1QxMERJRiBpcyBub3Qgc2V0 +CiMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkNPTkZJR19DUkMzMj15CiMgQ09ORklHX0NS +QzMyX1NFTEZURVNUIGlzIG5vdCBzZXQKQ09ORklHX0NSQzMyX1NMSUNFQlk4PXkKIyBDT05GSUdf +Q1JDMzJfU0xJQ0VCWTQgaXMgbm90IHNldAojIENPTkZJR19DUkMzMl9TQVJXQVRFIGlzIG5vdCBz +ZXQKIyBDT05GSUdfQ1JDMzJfQklUIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JDNjQgaXMgbm90IHNl +dAojIENPTkZJR19DUkM0IGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CiMgQ09O +RklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CiMgQ09ORklHX0NSQzggaXMgbm90IHNldApDT05GSUdf +WFhIQVNIPXkKIyBDT05GSUdfUkFORE9NMzJfU0VMRlRFU1QgaXMgbm90IHNldApDT05GSUdfWkxJ +Ql9JTkZMQVRFPXkKQ09ORklHX0xaT19ERUNPTVBSRVNTPXkKQ09ORklHX0xaNF9ERUNPTVBSRVNT +PXkKQ09ORklHX1pTVERfREVDT01QUkVTUz15CkNPTkZJR19YWl9ERUM9eQpDT05GSUdfWFpfREVD +X1g4Nj15CkNPTkZJR19YWl9ERUNfUE9XRVJQQz15CkNPTkZJR19YWl9ERUNfSUE2ND15CkNPTkZJ +R19YWl9ERUNfQVJNPXkKQ09ORklHX1haX0RFQ19BUk1USFVNQj15CkNPTkZJR19YWl9ERUNfU1BB +UkM9eQpDT05GSUdfWFpfREVDX0JDSj15CiMgQ09ORklHX1haX0RFQ19URVNUIGlzIG5vdCBzZXQK +Q09ORklHX0RFQ09NUFJFU1NfR1pJUD15CkNPTkZJR19ERUNPTVBSRVNTX0JaSVAyPXkKQ09ORklH +X0RFQ09NUFJFU1NfTFpNQT15CkNPTkZJR19ERUNPTVBSRVNTX1haPXkKQ09ORklHX0RFQ09NUFJF +U1NfTFpPPXkKQ09ORklHX0RFQ09NUFJFU1NfTFo0PXkKQ09ORklHX0RFQ09NUFJFU1NfWlNURD15 +CkNPTkZJR19IQVNfSU9NRU09eQpDT05GSUdfSEFTX0lPUE9SVF9NQVA9eQpDT05GSUdfSEFTX0RN +QT15CkNPTkZJR19ORUVEX1NHX0RNQV9MRU5HVEg9eQojIENPTkZJR19ETUFfQVBJX0RFQlVHIGlz +IG5vdCBzZXQKIyBDT05GSUdfSVJRX1BPTEwgaXMgbm90IHNldApDT05GSUdfSEFWRV9HRU5FUklD +X1ZEU089eQpDT05GSUdfR0VORVJJQ19HRVRUSU1FT0ZEQVk9eQpDT05GSUdfR0VORVJJQ19WRFNP +XzMyPXkKQ09ORklHX0dFTkVSSUNfVkRTT19USU1FX05TPXkKQ09ORklHX0FSQ0hfU1RBQ0tXQUxL +PXkKIyBlbmQgb2YgTGlicmFyeSByb3V0aW5lcwoKIwojIEtlcm5lbCBoYWNraW5nCiMKCiMKIyBw +cmludGsgYW5kIGRtZXNnIG9wdGlvbnMKIwojIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0 +CiMgQ09ORklHX1BSSU5US19DQUxMRVIgaXMgbm90IHNldAojIENPTkZJR19TVEFDS1RSQUNFX0JV +SUxEX0lEIGlzIG5vdCBzZXQKQ09ORklHX0NPTlNPTEVfTE9HTEVWRUxfREVGQVVMVD03CkNPTkZJ +R19DT05TT0xFX0xPR0xFVkVMX1FVSUVUPTQKQ09ORklHX01FU1NBR0VfTE9HTEVWRUxfREVGQVVM +VD00CiMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKIyBDT05GSUdfU1lNQk9M +SUNfRVJSTkFNRSBpcyBub3Qgc2V0CiMgZW5kIG9mIHByaW50ayBhbmQgZG1lc2cgb3B0aW9ucwoK +IwojIENvbXBpbGUtdGltZSBjaGVja3MgYW5kIGNvbXBpbGVyIG9wdGlvbnMKIwojIENPTkZJR19E +RUJVR19JTkZPIGlzIG5vdCBzZXQKQ09ORklHX0ZSQU1FX1dBUk49MTAyNAojIENPTkZJR19TVFJJ +UF9BU01fU1lNUyBpcyBub3Qgc2V0CiMgQ09ORklHX1JFQURBQkxFX0FTTSBpcyBub3Qgc2V0CiMg +Q09ORklHX0hFQURFUlNfSU5TVEFMTCBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX1NFQ1RJT05f +TUlTTUFUQ0ggaXMgbm90IHNldAojIENPTkZJR19TRUNUSU9OX01JU01BVENIX1dBUk5fT05MWSBp +cyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX0ZPUkNFX0ZVTkNUSU9OX0FMSUdOXzY0QiBpcyBub3Qg +c2V0CiMgQ09ORklHX1ZNTElOVVhfTUFQIGlzIG5vdCBzZXQKIyBDT05GSUdfREVCVUdfRk9SQ0Vf +V0VBS19QRVJfQ1BVIGlzIG5vdCBzZXQKIyBlbmQgb2YgQ29tcGlsZS10aW1lIGNoZWNrcyBhbmQg +Y29tcGlsZXIgb3B0aW9ucwoKIwojIEdlbmVyaWMgS2VybmVsIERlYnVnZ2luZyBJbnN0cnVtZW50 +cwojCiMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKIyBDT05GSUdfREVCVUdfRlMgaXMg +bm90IHNldApDT05GSUdfSEFWRV9BUkNIX0tHREI9eQojIENPTkZJR19LR0RCIGlzIG5vdCBzZXQK +Q09ORklHX0FSQ0hfSEFTX1VCU0FOX1NBTklUSVpFX0FMTD15CiMgQ09ORklHX1VCU0FOIGlzIG5v +dCBzZXQKIyBlbmQgb2YgR2VuZXJpYyBLZXJuZWwgRGVidWdnaW5nIEluc3RydW1lbnRzCgpDT05G +SUdfREVCVUdfS0VSTkVMPXkKIyBDT05GSUdfREVCVUdfTUlTQyBpcyBub3Qgc2V0CgojCiMgTWVt +b3J5IERlYnVnZ2luZwojCiMgQ09ORklHX1BBR0VfRVhURU5TSU9OIGlzIG5vdCBzZXQKIyBDT05G +SUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKIyBDT05GSUdfUEFHRV9PV05FUiBpcyBub3Qg +c2V0CiMgQ09ORklHX1BBR0VfUE9JU09OSU5HIGlzIG5vdCBzZXQKIyBDT05GSUdfREVCVUdfUk9E +QVRBX1RFU1QgaXMgbm90IHNldApDT05GSUdfQVJDSF9IQVNfREVCVUdfV1g9eQojIENPTkZJR19E +RUJVR19XWCBpcyBub3Qgc2V0CkNPTkZJR19HRU5FUklDX1BURFVNUD15CiMgQ09ORklHX0RFQlVH +X09CSkVDVFMgaXMgbm90IHNldApDT05GSUdfSEFWRV9ERUJVR19LTUVNTEVBSz15CiMgQ09ORklH +X0RFQlVHX0tNRU1MRUFLIGlzIG5vdCBzZXQKIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMg +bm90IHNldAojIENPTkZJR19TQ0hFRF9TVEFDS19FTkRfQ0hFQ0sgaXMgbm90IHNldApDT05GSUdf +QVJDSF9IQVNfREVCVUdfVk1fUEdUQUJMRT15CiMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQK +IyBDT05GSUdfREVCVUdfVk1fUEdUQUJMRSBpcyBub3Qgc2V0CkNPTkZJR19BUkNIX0hBU19ERUJV +R19WSVJUVUFMPXkKIyBDT05GSUdfREVCVUdfVklSVFVBTCBpcyBub3Qgc2V0CiMgQ09ORklHX0RF +QlVHX01FTU9SWV9JTklUIGlzIG5vdCBzZXQKIyBDT05GSUdfREVCVUdfS01BUF9MT0NBTCBpcyBu +b3Qgc2V0CkNPTkZJR19BUkNIX1NVUFBPUlRTX0tNQVBfTE9DQUxfRk9SQ0VfTUFQPXkKIyBDT05G +SUdfREVCVUdfS01BUF9MT0NBTF9GT1JDRV9NQVAgaXMgbm90IHNldApDT05GSUdfSEFWRV9ERUJV +R19TVEFDS09WRVJGTE9XPXkKIyBDT05GSUdfREVCVUdfU1RBQ0tPVkVSRkxPVyBpcyBub3Qgc2V0 +CkNPTkZJR19DQ19IQVNfS0FTQU5fR0VORVJJQz15CkNPTkZJR19DQ19IQVNfV09SS0lOR19OT1NB +TklUSVpFX0FERFJFU1M9eQpDT05GSUdfSEFWRV9BUkNIX0tGRU5DRT15CiMgZW5kIG9mIE1lbW9y +eSBEZWJ1Z2dpbmcKCiMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKCiMKIyBEZWJ1ZyBP +b3BzLCBMb2NrdXBzIGFuZCBIYW5ncwojCiMgQ09ORklHX1BBTklDX09OX09PUFMgaXMgbm90IHNl +dApDT05GSUdfUEFOSUNfT05fT09QU19WQUxVRT0wCkNPTkZJR19QQU5JQ19USU1FT1VUPTAKIyBD +T05GSUdfU09GVExPQ0tVUF9ERVRFQ1RPUiBpcyBub3Qgc2V0CiMgQ09ORklHX0hBUkRMT0NLVVBf +REVURUNUT1IgaXMgbm90IHNldAojIENPTkZJR19ERVRFQ1RfSFVOR19UQVNLIGlzIG5vdCBzZXQK +IyBDT05GSUdfV1FfV0FUQ0hET0cgaXMgbm90IHNldAojIGVuZCBvZiBEZWJ1ZyBPb3BzLCBMb2Nr +dXBzIGFuZCBIYW5ncwoKIwojIFNjaGVkdWxlciBEZWJ1Z2dpbmcKIwojIGVuZCBvZiBTY2hlZHVs +ZXIgRGVidWdnaW5nCgojIENPTkZJR19ERUJVR19USU1FS0VFUElORyBpcyBub3Qgc2V0CgojCiMg +TG9jayBEZWJ1Z2dpbmcgKHNwaW5sb2NrcywgbXV0ZXhlcywgZXRjLi4uKQojCkNPTkZJR19MT0NL +X0RFQlVHR0lOR19TVVBQT1JUPXkKIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0CiMg +Q09ORklHX0xPQ0tfU1RBVCBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5v +dCBzZXQKIyBDT05GSUdfREVCVUdfTVVURVhFUyBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX1dX +X01VVEVYX1NMT1dQQVRIIGlzIG5vdCBzZXQKIyBDT05GSUdfREVCVUdfUldTRU1TIGlzIG5vdCBz +ZXQKIyBDT05GSUdfREVCVUdfTE9DS19BTExPQyBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX0FU +T01JQ19TTEVFUCBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX0xPQ0tJTkdfQVBJX1NFTEZURVNU +UyBpcyBub3Qgc2V0CiMgQ09ORklHX0xPQ0tfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKIyBDT05G +SUdfV1dfTVVURVhfU0VMRlRFU1QgaXMgbm90IHNldAojIENPTkZJR19TQ0ZfVE9SVFVSRV9URVNU +IGlzIG5vdCBzZXQKIyBlbmQgb2YgTG9jayBEZWJ1Z2dpbmcgKHNwaW5sb2NrcywgbXV0ZXhlcywg +ZXRjLi4uKQoKIyBDT05GSUdfREVCVUdfSVJRRkxBR1MgaXMgbm90IHNldAojIENPTkZJR19TVEFD +S1RSQUNFIGlzIG5vdCBzZXQKIyBDT05GSUdfV0FSTl9BTExfVU5TRUVERURfUkFORE9NIGlzIG5v +dCBzZXQKIyBDT05GSUdfREVCVUdfS09CSkVDVCBpcyBub3Qgc2V0CgojCiMgRGVidWcga2VybmVs +IGRhdGEgc3RydWN0dXJlcwojCiMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAojIENPTkZJ +R19ERUJVR19QTElTVCBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKIyBD +T05GSUdfREVCVUdfTk9USUZJRVJTIGlzIG5vdCBzZXQKIyBDT05GSUdfQlVHX09OX0RBVEFfQ09S +UlVQVElPTiBpcyBub3Qgc2V0CiMgZW5kIG9mIERlYnVnIGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMK +CiMgQ09ORklHX0RFQlVHX0NSRURFTlRJQUxTIGlzIG5vdCBzZXQKCiMKIyBSQ1UgRGVidWdnaW5n +CiMKIyBDT05GSUdfUkNVX1NDQUxFX1RFU1QgaXMgbm90IHNldAojIENPTkZJR19SQ1VfVE9SVFVS +RV9URVNUIGlzIG5vdCBzZXQKIyBDT05GSUdfUkNVX1JFRl9TQ0FMRV9URVNUIGlzIG5vdCBzZXQK +IyBDT05GSUdfUkNVX1RSQUNFIGlzIG5vdCBzZXQKIyBDT05GSUdfUkNVX0VRU19ERUJVRyBpcyBu +b3Qgc2V0CiMgZW5kIG9mIFJDVSBEZWJ1Z2dpbmcKCiMgQ09ORklHX0RFQlVHX1dRX0ZPUkNFX1JS +X0NQVSBpcyBub3Qgc2V0CkNPTkZJR19VU0VSX1NUQUNLVFJBQ0VfU1VQUE9SVD15CkNPTkZJR19I +QVZFX0ZVTkNUSU9OX1RSQUNFUj15CkNPTkZJR19IQVZFX0ZVTkNUSU9OX0dSQVBIX1RSQUNFUj15 +CkNPTkZJR19IQVZFX0RZTkFNSUNfRlRSQUNFPXkKQ09ORklHX0hBVkVfRFlOQU1JQ19GVFJBQ0Vf +V0lUSF9SRUdTPXkKQ09ORklHX0hBVkVfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFM9 +eQpDT05GSUdfSEFWRV9GVFJBQ0VfTUNPVU5UX1JFQ09SRD15CkNPTkZJR19IQVZFX1NZU0NBTExf +VFJBQ0VQT0lOVFM9eQpDT05GSUdfSEFWRV9DX1JFQ09SRE1DT1VOVD15CkNPTkZJR19UUkFDSU5H +X1NVUFBPUlQ9eQojIENPTkZJR19GVFJBQ0UgaXMgbm90IHNldAojIENPTkZJR19TQU1QTEVTIGlz +IG5vdCBzZXQKQ09ORklHX0FSQ0hfSEFTX0RFVk1FTV9JU19BTExPV0VEPXkKCiMKIyB4ODYgRGVi +dWdnaW5nCiMKQ09ORklHX1RSQUNFX0lSUUZMQUdTX05NSV9TVVBQT1JUPXkKIyBDT05GSUdfWDg2 +X1ZFUkJPU0VfQk9PVFVQIGlzIG5vdCBzZXQKIyBDT05GSUdfRUFSTFlfUFJJTlRLIGlzIG5vdCBz +ZXQKIyBDT05GSUdfREVCVUdfVExCRkxVU0ggaXMgbm90IHNldApDT05GSUdfSEFWRV9NTUlPVFJB +Q0VfU1VQUE9SVD15CiMgQ09ORklHX1g4Nl9ERUNPREVSX1NFTEZURVNUIGlzIG5vdCBzZXQKQ09O +RklHX0lPX0RFTEFZXzBYODA9eQojIENPTkZJR19JT19ERUxBWV8wWEVEIGlzIG5vdCBzZXQKIyBD +T05GSUdfSU9fREVMQVlfVURFTEFZIGlzIG5vdCBzZXQKIyBDT05GSUdfSU9fREVMQVlfTk9ORSBp +cyBub3Qgc2V0CiMgQ09ORklHX0NQQV9ERUJVRyBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX0VO +VFJZIGlzIG5vdCBzZXQKIyBDT05GSUdfWDg2X0RFQlVHX0ZQVSBpcyBub3Qgc2V0CiMgQ09ORklH +X1VOV0lOREVSX0ZSQU1FX1BPSU5URVIgaXMgbm90IHNldApDT05GSUdfVU5XSU5ERVJfR1VFU1M9 +eQojIGVuZCBvZiB4ODYgRGVidWdnaW5nCgojCiMgS2VybmVsIFRlc3RpbmcgYW5kIENvdmVyYWdl +CiMKIyBDT05GSUdfS1VOSVQgaXMgbm90IHNldAojIENPTkZJR19OT1RJRklFUl9FUlJPUl9JTkpF +Q1RJT04gaXMgbm90IHNldAojIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldApDT05G +SUdfQ0NfSEFTX1NBTkNPVl9UUkFDRV9QQz15CiMgQ09ORklHX1JVTlRJTUVfVEVTVElOR19NRU5V +IGlzIG5vdCBzZXQKQ09ORklHX0FSQ0hfVVNFX01FTVRFU1Q9eQojIENPTkZJR19NRU1URVNUIGlz +IG5vdCBzZXQKIyBlbmQgb2YgS2VybmVsIFRlc3RpbmcgYW5kIENvdmVyYWdlCiMgZW5kIG9mIEtl +cm5lbCBoYWNraW5nCg==" | base64 -d | tee .config + +# Compilamos el kernel +echo "a compilar el kernel!" +sleep 2 +make -j$(nproc) ARCH=x86 bzImage +du -ha arch/x86/boot/bzImage +file arch/x86/boot/bzImage +cp -pRv arch/x86/boot/bzImage .. +cd .. +rm -rf linux-5.15.1.tar.xz linux-5.15.1 + +# Compilamos busybox con lo minimo +echo "a compilar busybox!" +sleep 2 +wget https://busybox.net/downloads/busybox-1.33.2.tar.bz2 +tar xfvj busybox-1.33.2.tar.bz2 +cd busybox-1.33.2 +echo "IwojIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CiMgQnVz +eWJveCB2ZXJzaW9uOiAxLjMzLjIKIyBUdWUgRGVjIDIxIDIwOjMxOjI0IDIwMjEKIwpDT05GSUdf +SEFWRV9ET1RfQ09ORklHPXkKCiMKIyBTZXR0aW5ncwojCiMgQ09ORklHX0RFU0tUT1AgaXMgbm90 +IHNldAojIENPTkZJR19FWFRSQV9DT01QQVQgaXMgbm90IHNldAojIENPTkZJR19GRURPUkFfQ09N +UEFUIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5DTFVERV9TVVN2MiBpcyBub3Qgc2V0CiMgQ09ORklH +X0xPTkdfT1BUUyBpcyBub3Qgc2V0CiMgQ09ORklHX1NIT1dfVVNBR0UgaXMgbm90IHNldAojIENP +TkZJR19GRUFUVVJFX1ZFUkJPU0VfVVNBR0UgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0NP +TVBSRVNTX1VTQUdFIGlzIG5vdCBzZXQKIyBDT05GSUdfTEZTIGlzIG5vdCBzZXQKIyBDT05GSUdf +UEFNIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9ERVZQVFMgaXMgbm90IHNldAojIENPTkZJ +R19GRUFUVVJFX1VUTVAgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1dUTVAgaXMgbm90IHNl +dAojIENPTkZJR19GRUFUVVJFX1BJREZJTEUgaXMgbm90IHNldApDT05GSUdfUElEX0ZJTEVfUEFU +SD0iIgojIENPTkZJR19CVVNZQk9YIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9TSE9XX1ND +UklQVCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfSU5TVEFMTEVSIGlzIG5vdCBzZXQKIyBD +T05GSUdfSU5TVEFMTF9OT19VU1IgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1NVSUQgaXMg +bm90IHNldAojIENPTkZJR19GRUFUVVJFX1NVSURfQ09ORklHIGlzIG5vdCBzZXQKIyBDT05GSUdf +RkVBVFVSRV9TVUlEX0NPTkZJR19RVUlFVCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfUFJF +RkVSX0FQUExFVFMgaXMgbm90IHNldApDT05GSUdfQlVTWUJPWF9FWEVDX1BBVEg9Ii9wcm9jL3Nl +bGYvZXhlIgojIENPTkZJR19TRUxJTlVYIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9DTEVB +Tl9VUCBpcyBub3Qgc2V0CkNPTkZJR19GRUFUVVJFX1NZU0xPR19JTkZPPXkKQ09ORklHX0ZFQVRV +UkVfU1lTTE9HPXkKCiMKIyBCdWlsZCBPcHRpb25zCiMKQ09ORklHX1NUQVRJQz15CiMgQ09ORklH +X1BJRSBpcyBub3Qgc2V0CiMgQ09ORklHX05PTU1VIGlzIG5vdCBzZXQKIyBDT05GSUdfQlVJTERf +TElCQlVTWUJPWCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfTElCQlVTWUJPWF9TVEFUSUMg +aXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0lORElWSURVQUwgaXMgbm90IHNldAojIENPTkZJ +R19GRUFUVVJFX1NIQVJFRF9CVVNZQk9YIGlzIG5vdCBzZXQKQ09ORklHX0NST1NTX0NPTVBJTEVS +X1BSRUZJWD0iIgpDT05GSUdfU1lTUk9PVD0iIgpDT05GSUdfRVhUUkFfQ0ZMQUdTPSIiCkNPTkZJ +R19FWFRSQV9MREZMQUdTPSIiCkNPTkZJR19FWFRSQV9MRExJQlM9IiIKIyBDT05GSUdfVVNFX1BP +UlRBQkxFX0NPREUgaXMgbm90IHNldAojIENPTkZJR19TVEFDS19PUFRJTUlaQVRJT05fMzg2IGlz +IG5vdCBzZXQKIyBDT05GSUdfU1RBVElDX0xJQkdDQyBpcyBub3Qgc2V0CgojCiMgSW5zdGFsbGF0 +aW9uIE9wdGlvbnMgKCJtYWtlIGluc3RhbGwiIGJlaGF2aW9yKQojCkNPTkZJR19JTlNUQUxMX0FQ +UExFVF9TWU1MSU5LUz15CiMgQ09ORklHX0lOU1RBTExfQVBQTEVUX0hBUkRMSU5LUyBpcyBub3Qg +c2V0CiMgQ09ORklHX0lOU1RBTExfQVBQTEVUX1NDUklQVF9XUkFQUEVSUyBpcyBub3Qgc2V0CiMg +Q09ORklHX0lOU1RBTExfQVBQTEVUX0RPTlQgaXMgbm90IHNldAojIENPTkZJR19JTlNUQUxMX1NI +X0FQUExFVF9TWU1MSU5LIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5TVEFMTF9TSF9BUFBMRVRfSEFS +RExJTksgaXMgbm90IHNldAojIENPTkZJR19JTlNUQUxMX1NIX0FQUExFVF9TQ1JJUFRfV1JBUFBF +UiBpcyBub3Qgc2V0CkNPTkZJR19QUkVGSVg9Ii4vX2luc3RhbGwiCgojCiMgRGVidWdnaW5nIE9w +dGlvbnMKIwojIENPTkZJR19ERUJVRyBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX1BFU1NJTUla +RSBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX1NBTklUSVpFIGlzIG5vdCBzZXQKIyBDT05GSUdf +VU5JVF9URVNUIGlzIG5vdCBzZXQKIyBDT05GSUdfV0VSUk9SIGlzIG5vdCBzZXQKIyBDT05GSUdf +V0FSTl9TSU1QTEVfTVNHIGlzIG5vdCBzZXQKQ09ORklHX05PX0RFQlVHX0xJQj15CiMgQ09ORklH +X0RNQUxMT0MgaXMgbm90IHNldAojIENPTkZJR19FRkVOQ0UgaXMgbm90IHNldAoKIwojIExpYnJh +cnkgVHVuaW5nCiMKIyBDT05GSUdfRkVBVFVSRV9VU0VfQlNTX1RBSUwgaXMgbm90IHNldAojIENP +TkZJR19GTE9BVF9EVVJBVElPTiBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfUlRNSU5NQVgg +aXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1JUTUlOTUFYX1VTRV9MSUJDX0RFRklOSVRJT05T +IGlzIG5vdCBzZXQKQ09ORklHX0ZFQVRVUkVfQlVGRkVSU19VU0VfTUFMTE9DPXkKIyBDT05GSUdf +RkVBVFVSRV9CVUZGRVJTX0dPX09OX1NUQUNLIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9C +VUZGRVJTX0dPX0lOX0JTUyBpcyBub3Qgc2V0CkNPTkZJR19QQVNTV09SRF9NSU5MRU49NgpDT05G +SUdfTUQ1X1NNQUxMPTEKQ09ORklHX1NIQTNfU01BTEw9MQojIENPTkZJR19GRUFUVVJFX0ZBU1Rf +VE9QIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9FVENfTkVUV09SS1MgaXMgbm90IHNldAoj +IENPTkZJR19GRUFUVVJFX0VUQ19TRVJWSUNFUyBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVf +RURJVElORyBpcyBub3Qgc2V0CkNPTkZJR19GRUFUVVJFX0VESVRJTkdfTUFYX0xFTj0wCiMgQ09O +RklHX0ZFQVRVUkVfRURJVElOR19WSSBpcyBub3Qgc2V0CkNPTkZJR19GRUFUVVJFX0VESVRJTkdf +SElTVE9SWT0wCiMgQ09ORklHX0ZFQVRVUkVfRURJVElOR19TQVZFSElTVE9SWSBpcyBub3Qgc2V0 +CiMgQ09ORklHX0ZFQVRVUkVfRURJVElOR19TQVZFX09OX0VYSVQgaXMgbm90IHNldAojIENPTkZJ +R19GRUFUVVJFX1JFVkVSU0VfU0VBUkNIIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9UQUJf +Q09NUExFVElPTiBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfVVNFUk5BTUVfQ09NUExFVElP +TiBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfRURJVElOR19GQU5DWV9QUk9NUFQgaXMgbm90 +IHNldAojIENPTkZJR19GRUFUVVJFX0VESVRJTkdfV0lOQ0ggaXMgbm90IHNldAojIENPTkZJR19G +RUFUVVJFX0VESVRJTkdfQVNLX1RFUk1JTkFMIGlzIG5vdCBzZXQKIyBDT05GSUdfTE9DQUxFX1NV +UFBPUlQgaXMgbm90IHNldAojIENPTkZJR19VTklDT0RFX1NVUFBPUlQgaXMgbm90IHNldAojIENP +TkZJR19VTklDT0RFX1VTSU5HX0xPQ0FMRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfQ0hF +Q0tfVU5JQ09ERV9JTl9FTlYgaXMgbm90IHNldApDT05GSUdfU1VCU1RfV0NIQVI9MApDT05GSUdf +TEFTVF9TVVBQT1JURURfV0NIQVI9MAojIENPTkZJR19VTklDT0RFX0NPTUJJTklOR19XQ0hBUlMg +aXMgbm90IHNldAojIENPTkZJR19VTklDT0RFX1dJREVfV0NIQVJTIGlzIG5vdCBzZXQKIyBDT05G +SUdfVU5JQ09ERV9CSURJX1NVUFBPUlQgaXMgbm90IHNldAojIENPTkZJR19VTklDT0RFX05FVVRS +QUxfVEFCTEUgaXMgbm90IHNldAojIENPTkZJR19VTklDT0RFX1BSRVNFUlZFX0JST0tFTiBpcyBu +b3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfTk9OX1BPU0lYX0NQIGlzIG5vdCBzZXQKIyBDT05GSUdf +RkVBVFVSRV9WRVJCT1NFX0NQX01FU1NBR0UgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1VT +RV9TRU5ERklMRSBpcyBub3Qgc2V0CkNPTkZJR19GRUFUVVJFX0NPUFlCVUZfS0I9NAojIENPTkZJ +R19GRUFUVVJFX1NLSVBfUk9PVEZTIGlzIG5vdCBzZXQKIyBDT05GSUdfTU9OT1RPTklDX1NZU0NB +TEwgaXMgbm90IHNldAojIENPTkZJR19JT0NUTF9IRVgyU1RSX0VSUk9SIGlzIG5vdCBzZXQKIyBD +T05GSUdfRkVBVFVSRV9IV0lCIGlzIG5vdCBzZXQKCiMKIyBBcHBsZXRzCiMKCiMKIyBBcmNoaXZh +bCBVdGlsaXRpZXMKIwojIENPTkZJR19GRUFUVVJFX1NFQU1MRVNTX1haIGlzIG5vdCBzZXQKIyBD +T05GSUdfRkVBVFVSRV9TRUFNTEVTU19MWk1BIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9T +RUFNTEVTU19CWjIgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1NFQU1MRVNTX0daIGlzIG5v +dCBzZXQKIyBDT05GSUdfRkVBVFVSRV9TRUFNTEVTU19aIGlzIG5vdCBzZXQKIyBDT05GSUdfQVIg +aXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0FSX0xPTkdfRklMRU5BTUVTIGlzIG5vdCBzZXQK +IyBDT05GSUdfRkVBVFVSRV9BUl9DUkVBVEUgaXMgbm90IHNldAojIENPTkZJR19VTkNPTVBSRVNT +IGlzIG5vdCBzZXQKIyBDT05GSUdfR1VOWklQIGlzIG5vdCBzZXQKIyBDT05GSUdfWkNBVCBpcyBu +b3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfR1VOWklQX0xPTkdfT1BUSU9OUyBpcyBub3Qgc2V0CiMg +Q09ORklHX0JVTlpJUDIgaXMgbm90IHNldAojIENPTkZJR19CWkNBVCBpcyBub3Qgc2V0CiMgQ09O +RklHX1VOTFpNQSBpcyBub3Qgc2V0CiMgQ09ORklHX0xaQ0FUIGlzIG5vdCBzZXQKIyBDT05GSUdf +TFpNQSBpcyBub3Qgc2V0CiMgQ09ORklHX1VOWFogaXMgbm90IHNldAojIENPTkZJR19YWkNBVCBp +cyBub3Qgc2V0CiMgQ09ORklHX1haIGlzIG5vdCBzZXQKIyBDT05GSUdfQlpJUDIgaXMgbm90IHNl +dApDT05GSUdfQlpJUDJfU01BTEw9MAojIENPTkZJR19GRUFUVVJFX0JaSVAyX0RFQ09NUFJFU1Mg +aXMgbm90IHNldAojIENPTkZJR19DUElPIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9DUElP +X08gaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0NQSU9fUCBpcyBub3Qgc2V0CiMgQ09ORklH +X0RQS0cgaXMgbm90IHNldAojIENPTkZJR19EUEtHX0RFQiBpcyBub3Qgc2V0CiMgQ09ORklHX0da +SVAgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0daSVBfTE9OR19PUFRJT05TIGlzIG5vdCBz +ZXQKQ09ORklHX0daSVBfRkFTVD0wCiMgQ09ORklHX0ZFQVRVUkVfR1pJUF9MRVZFTFMgaXMgbm90 +IHNldAojIENPTkZJR19GRUFUVVJFX0daSVBfREVDT01QUkVTUyBpcyBub3Qgc2V0CiMgQ09ORklH +X0xaT1AgaXMgbm90IHNldAojIENPTkZJR19VTkxaT1AgaXMgbm90IHNldAojIENPTkZJR19MWk9Q +Q0FUIGlzIG5vdCBzZXQKIyBDT05GSUdfTFpPUF9DT01QUl9ISUdIIGlzIG5vdCBzZXQKIyBDT05G +SUdfUlBNIGlzIG5vdCBzZXQKIyBDT05GSUdfUlBNMkNQSU8gaXMgbm90IHNldAojIENPTkZJR19U +QVIgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1RBUl9MT05HX09QVElPTlMgaXMgbm90IHNl +dAojIENPTkZJR19GRUFUVVJFX1RBUl9DUkVBVEUgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJF +X1RBUl9BVVRPREVURUNUIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9UQVJfRlJPTSBpcyBu +b3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfVEFSX09MREdOVV9DT01QQVRJQklMSVRZIGlzIG5vdCBz +ZXQKIyBDT05GSUdfRkVBVFVSRV9UQVJfT0xEU1VOX0NPTVBBVElCSUxJVFkgaXMgbm90IHNldAoj +IENPTkZJR19GRUFUVVJFX1RBUl9HTlVfRVhURU5TSU9OUyBpcyBub3Qgc2V0CiMgQ09ORklHX0ZF +QVRVUkVfVEFSX1RPX0NPTU1BTkQgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1RBUl9VTkFN +RV9HTkFNRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfVEFSX05PUFJFU0VSVkVfVElNRSBp +cyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfVEFSX1NFTElOVVggaXMgbm90IHNldAojIENPTkZJ +R19VTlpJUCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfVU5aSVBfQ0RGIGlzIG5vdCBzZXQK +IyBDT05GSUdfRkVBVFVSRV9VTlpJUF9CWklQMiBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVf +VU5aSVBfTFpNQSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfVU5aSVBfWFogaXMgbm90IHNl +dAojIENPTkZJR19GRUFUVVJFX0xaTUFfRkFTVCBpcyBub3Qgc2V0CgojCiMgQ29yZXV0aWxzCiMK +IyBDT05GSUdfQkFTRU5BTUUgaXMgbm90IHNldApDT05GSUdfQ0FUPXkKQ09ORklHX0ZFQVRVUkVf +Q0FUTj15CkNPTkZJR19GRUFUVVJFX0NBVFY9eQojIENPTkZJR19DSEdSUCBpcyBub3Qgc2V0CiMg +Q09ORklHX0NITU9EIGlzIG5vdCBzZXQKIyBDT05GSUdfQ0hPV04gaXMgbm90IHNldAojIENPTkZJ +R19GRUFUVVJFX0NIT1dOX0xPTkdfT1BUSU9OUyBpcyBub3Qgc2V0CiMgQ09ORklHX0NIUk9PVCBp +cyBub3Qgc2V0CiMgQ09ORklHX0NLU1VNIGlzIG5vdCBzZXQKIyBDT05GSUdfQ09NTSBpcyBub3Qg +c2V0CiMgQ09ORklHX0NQIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9DUF9MT05HX09QVElP +TlMgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0NQX1JFRkxJTksgaXMgbm90IHNldAojIENP +TkZJR19DVVQgaXMgbm90IHNldAojIENPTkZJR19EQVRFIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVB +VFVSRV9EQVRFX0lTT0ZNVCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfREFURV9OQU5PIGlz +IG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9EQVRFX0NPTVBBVCBpcyBub3Qgc2V0CiMgQ09ORklH +X0REIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9ERF9TSUdOQUxfSEFORExJTkcgaXMgbm90 +IHNldAojIENPTkZJR19GRUFUVVJFX0REX1RISVJEX1NUQVRVU19MSU5FIGlzIG5vdCBzZXQKIyBD +T05GSUdfRkVBVFVSRV9ERF9JQlNfT0JTIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9ERF9T +VEFUVVMgaXMgbm90IHNldAojIENPTkZJR19ERiBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVf +REZfRkFOQ1kgaXMgbm90IHNldAojIENPTkZJR19ESVJOQU1FIGlzIG5vdCBzZXQKIyBDT05GSUdf +RE9TMlVOSVggaXMgbm90IHNldAojIENPTkZJR19VTklYMkRPUyBpcyBub3Qgc2V0CkNPTkZJR19E +VT15CkNPTkZJR19GRUFUVVJFX0RVX0RFRkFVTFRfQkxPQ0tTSVpFXzFLPXkKQ09ORklHX0VDSE89 +eQpDT05GSUdfRkVBVFVSRV9GQU5DWV9FQ0hPPXkKIyBDT05GSUdfRU5WIGlzIG5vdCBzZXQKIyBD +T05GSUdfRVhQQU5EIGlzIG5vdCBzZXQKIyBDT05GSUdfVU5FWFBBTkQgaXMgbm90IHNldAojIENP +TkZJR19FWFBSIGlzIG5vdCBzZXQKIyBDT05GSUdfRVhQUl9NQVRIX1NVUFBPUlRfNjQgaXMgbm90 +IHNldAojIENPTkZJR19GQUNUT1IgaXMgbm90IHNldAojIENPTkZJR19GQUxTRSBpcyBub3Qgc2V0 +CiMgQ09ORklHX0ZPTEQgaXMgbm90IHNldAojIENPTkZJR19IRUFEIGlzIG5vdCBzZXQKIyBDT05G +SUdfRkVBVFVSRV9GQU5DWV9IRUFEIGlzIG5vdCBzZXQKIyBDT05GSUdfSE9TVElEIGlzIG5vdCBz +ZXQKIyBDT05GSUdfSUQgaXMgbm90IHNldAojIENPTkZJR19HUk9VUFMgaXMgbm90IHNldAojIENP +TkZJR19JTlNUQUxMIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9JTlNUQUxMX0xPTkdfT1BU +SU9OUyBpcyBub3Qgc2V0CiMgQ09ORklHX0xJTksgaXMgbm90IHNldAojIENPTkZJR19MTiBpcyBu +b3Qgc2V0CiMgQ09ORklHX0xPR05BTUUgaXMgbm90IHNldApDT05GSUdfTFM9eQpDT05GSUdfRkVB +VFVSRV9MU19GSUxFVFlQRVM9eQpDT05GSUdfRkVBVFVSRV9MU19GT0xMT1dMSU5LUz15CkNPTkZJ +R19GRUFUVVJFX0xTX1JFQ1VSU0lWRT15CkNPTkZJR19GRUFUVVJFX0xTX1dJRFRIPXkKQ09ORklH +X0ZFQVRVUkVfTFNfU09SVEZJTEVTPXkKQ09ORklHX0ZFQVRVUkVfTFNfVElNRVNUQU1QUz15CkNP +TkZJR19GRUFUVVJFX0xTX1VTRVJOQU1FPXkKIyBDT05GSUdfRkVBVFVSRV9MU19DT0xPUiBpcyBu +b3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfTFNfQ09MT1JfSVNfREVGQVVMVCBpcyBub3Qgc2V0CiMg +Q09ORklHX01ENVNVTSBpcyBub3Qgc2V0CiMgQ09ORklHX1NIQTFTVU0gaXMgbm90IHNldAojIENP +TkZJR19TSEEyNTZTVU0gaXMgbm90IHNldAojIENPTkZJR19TSEE1MTJTVU0gaXMgbm90IHNldAoj +IENPTkZJR19TSEEzU1VNIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9NRDVfU0hBMV9TVU1f +Q0hFQ0sgaXMgbm90IHNldAojIENPTkZJR19NS0RJUiBpcyBub3Qgc2V0CiMgQ09ORklHX01LRklG +TyBpcyBub3Qgc2V0CiMgQ09ORklHX01LTk9EIGlzIG5vdCBzZXQKIyBDT05GSUdfTUtURU1QIGlz +IG5vdCBzZXQKIyBDT05GSUdfTVYgaXMgbm90IHNldAojIENPTkZJR19OSUNFIGlzIG5vdCBzZXQK +IyBDT05GSUdfTkwgaXMgbm90IHNldAojIENPTkZJR19OT0hVUCBpcyBub3Qgc2V0CiMgQ09ORklH +X05QUk9DIGlzIG5vdCBzZXQKIyBDT05GSUdfT0QgaXMgbm90IHNldAojIENPTkZJR19QQVNURSBp +cyBub3Qgc2V0CiMgQ09ORklHX1BSSU5URU5WIGlzIG5vdCBzZXQKIyBDT05GSUdfUFJJTlRGIGlz +IG5vdCBzZXQKIyBDT05GSUdfUFdEIGlzIG5vdCBzZXQKIyBDT05GSUdfUkVBRExJTksgaXMgbm90 +IHNldAojIENPTkZJR19GRUFUVVJFX1JFQURMSU5LX0ZPTExPVyBpcyBub3Qgc2V0CiMgQ09ORklH +X1JFQUxQQVRIIGlzIG5vdCBzZXQKIyBDT05GSUdfUk0gaXMgbm90IHNldAojIENPTkZJR19STURJ +UiBpcyBub3Qgc2V0CiMgQ09ORklHX1NFUSBpcyBub3Qgc2V0CiMgQ09ORklHX1NIUkVEIGlzIG5v +dCBzZXQKIyBDT05GSUdfU0hVRiBpcyBub3Qgc2V0CkNPTkZJR19TTEVFUD15CkNPTkZJR19GRUFU +VVJFX0ZBTkNZX1NMRUVQPXkKIyBDT05GSUdfU09SVCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRV +UkVfU09SVF9CSUcgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1NPUlRfT1BUSU1JWkVfTUVN +T1JZIGlzIG5vdCBzZXQKIyBDT05GSUdfU1BMSVQgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJF +X1NQTElUX0ZBTkNZIGlzIG5vdCBzZXQKIyBDT05GSUdfU1RBVCBpcyBub3Qgc2V0CiMgQ09ORklH +X0ZFQVRVUkVfU1RBVF9GT1JNQVQgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1NUQVRfRklM +RVNZU1RFTSBpcyBub3Qgc2V0CiMgQ09ORklHX1NUVFkgaXMgbm90IHNldAojIENPTkZJR19TVU0g +aXMgbm90IHNldAojIENPTkZJR19TWU5DIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9TWU5D +X0ZBTkNZIGlzIG5vdCBzZXQKIyBDT05GSUdfRlNZTkMgaXMgbm90IHNldAojIENPTkZJR19UQUMg +aXMgbm90IHNldAojIENPTkZJR19UQUlMIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9GQU5D +WV9UQUlMIGlzIG5vdCBzZXQKIyBDT05GSUdfVEVFIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVS +RV9URUVfVVNFX0JMT0NLX0lPIGlzIG5vdCBzZXQKIyBDT05GSUdfVEVTVCBpcyBub3Qgc2V0CiMg +Q09ORklHX1RFU1QxIGlzIG5vdCBzZXQKIyBDT05GSUdfVEVTVDIgaXMgbm90IHNldAojIENPTkZJ +R19GRUFUVVJFX1RFU1RfNjQgaXMgbm90IHNldAojIENPTkZJR19USU1FT1VUIGlzIG5vdCBzZXQK +IyBDT05GSUdfVE9VQ0ggaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1RPVUNIX05PREVSRUYg +aXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1RPVUNIX1NVU1YzIGlzIG5vdCBzZXQKIyBDT05G +SUdfVFIgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1RSX0NMQVNTRVMgaXMgbm90IHNldAoj +IENPTkZJR19GRUFUVVJFX1RSX0VRVUlWIGlzIG5vdCBzZXQKIyBDT05GSUdfVFJVRSBpcyBub3Qg +c2V0CiMgQ09ORklHX1RSVU5DQVRFIGlzIG5vdCBzZXQKIyBDT05GSUdfVFRZIGlzIG5vdCBzZXQK +Q09ORklHX1VOQU1FPXkKQ09ORklHX1VOQU1FX09TTkFNRT0iR05VL0xpbnV4IEZhbnRhIgojIENP +TkZJR19CQl9BUkNIIGlzIG5vdCBzZXQKIyBDT05GSUdfVU5JUSBpcyBub3Qgc2V0CiMgQ09ORklH +X1VOTElOSyBpcyBub3Qgc2V0CiMgQ09ORklHX1VTTEVFUCBpcyBub3Qgc2V0CiMgQ09ORklHX1VV +REVDT0RFIGlzIG5vdCBzZXQKIyBDT05GSUdfQkFTRTMyIGlzIG5vdCBzZXQKIyBDT05GSUdfQkFT +RTY0IGlzIG5vdCBzZXQKIyBDT05GSUdfVVVFTkNPREUgaXMgbm90IHNldAojIENPTkZJR19XQyBp +cyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfV0NfTEFSR0UgaXMgbm90IHNldAojIENPTkZJR19X +SE8gaXMgbm90IHNldAojIENPTkZJR19XIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNFUlMgaXMgbm90 +IHNldAojIENPTkZJR19XSE9BTUkgaXMgbm90IHNldAojIENPTkZJR19ZRVMgaXMgbm90IHNldAoK +IwojIENvbW1vbiBvcHRpb25zCiMKIyBDT05GSUdfRkVBVFVSRV9WRVJCT1NFIGlzIG5vdCBzZXQK +IyBDT05GSUdfRkVBVFVSRV9QUkVTRVJWRV9IQVJETElOS1MgaXMgbm90IHNldAoKIwojIENvbW1v +biBvcHRpb25zIGZvciBkZiwgZHUsIGxzCiMKQ09ORklHX0ZFQVRVUkVfSFVNQU5fUkVBREFCTEU9 +eQoKIwojIENvbnNvbGUgVXRpbGl0aWVzCiMKIyBDT05GSUdfQ0hWVCBpcyBub3Qgc2V0CkNPTkZJ +R19DTEVBUj15CiMgQ09ORklHX0RFQUxMT0NWVCBpcyBub3Qgc2V0CiMgQ09ORklHX0RVTVBLTUFQ +IGlzIG5vdCBzZXQKIyBDT05GSUdfRkdDT05TT0xFIGlzIG5vdCBzZXQKIyBDT05GSUdfS0JEX01P +REUgaXMgbm90IHNldAojIENPTkZJR19MT0FERk9OVCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFVEZP +TlQgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1NFVEZPTlRfVEVYVFVBTF9NQVAgaXMgbm90 +IHNldApDT05GSUdfREVGQVVMVF9TRVRGT05UX0RJUj0iIgojIENPTkZJR19GRUFUVVJFX0xPQURG +T05UX1BTRjIgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0xPQURGT05UX1JBVyBpcyBub3Qg +c2V0CiMgQ09ORklHX0xPQURLTUFQIGlzIG5vdCBzZXQKIyBDT05GSUdfT1BFTlZUIGlzIG5vdCBz +ZXQKIyBDT05GSUdfUkVTRVQgaXMgbm90IHNldAojIENPTkZJR19SRVNJWkUgaXMgbm90IHNldAoj +IENPTkZJR19GRUFUVVJFX1JFU0laRV9QUklOVCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFVENPTlNP +TEUgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1NFVENPTlNPTEVfTE9OR19PUFRJT05TIGlz +IG5vdCBzZXQKIyBDT05GSUdfU0VUS0VZQ09ERVMgaXMgbm90IHNldAojIENPTkZJR19TRVRMT0dD +T05TIGlzIG5vdCBzZXQKIyBDT05GSUdfU0hPV0tFWSBpcyBub3Qgc2V0CgojCiMgRGViaWFuIFV0 +aWxpdGllcwojCiMgQ09ORklHX1BJUEVfUFJPR1JFU1MgaXMgbm90IHNldAojIENPTkZJR19SVU5f +UEFSVFMgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1JVTl9QQVJUU19MT05HX09QVElPTlMg +aXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1JVTl9QQVJUU19GQU5DWSBpcyBub3Qgc2V0CiMg +Q09ORklHX1NUQVJUX1NUT1BfREFFTU9OIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9TVEFS +VF9TVE9QX0RBRU1PTl9MT05HX09QVElPTlMgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1NU +QVJUX1NUT1BfREFFTU9OX0ZBTkNZIGlzIG5vdCBzZXQKIyBDT05GSUdfV0hJQ0ggaXMgbm90IHNl +dAoKIwojIGtsaWJjLXV0aWxzCiMKIyBDT05GSUdfTUlOSVBTIGlzIG5vdCBzZXQKIyBDT05GSUdf +TlVLRSBpcyBub3Qgc2V0CiMgQ09ORklHX1JFU1VNRSBpcyBub3Qgc2V0CiMgQ09ORklHX1JVTl9J +TklUIGlzIG5vdCBzZXQKCiMKIyBFZGl0b3JzCiMKIyBDT05GSUdfQVdLIGlzIG5vdCBzZXQKIyBD +T05GSUdfRkVBVFVSRV9BV0tfTElCTSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfQVdLX0dO +VV9FWFRFTlNJT05TIGlzIG5vdCBzZXQKIyBDT05GSUdfQ01QIGlzIG5vdCBzZXQKIyBDT05GSUdf +RElGRiBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfRElGRl9MT05HX09QVElPTlMgaXMgbm90 +IHNldAojIENPTkZJR19GRUFUVVJFX0RJRkZfRElSIGlzIG5vdCBzZXQKIyBDT05GSUdfRUQgaXMg +bm90IHNldAojIENPTkZJR19QQVRDSCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFRCBpcyBub3Qgc2V0 +CkNPTkZJR19WST15CkNPTkZJR19GRUFUVVJFX1ZJX01BWF9MRU49NDA5NgojIENPTkZJR19GRUFU +VVJFX1ZJXzhCSVQgaXMgbm90IHNldApDT05GSUdfRkVBVFVSRV9WSV9DT0xPTj15CkNPTkZJR19G +RUFUVVJFX1ZJX1lBTktNQVJLPXkKQ09ORklHX0ZFQVRVUkVfVklfU0VBUkNIPXkKIyBDT05GSUdf +RkVBVFVSRV9WSV9SRUdFWF9TRUFSQ0ggaXMgbm90IHNldApDT05GSUdfRkVBVFVSRV9WSV9VU0Vf +U0lHTkFMUz15CkNPTkZJR19GRUFUVVJFX1ZJX0RPVF9DTUQ9eQpDT05GSUdfRkVBVFVSRV9WSV9S +RUFET05MWT15CkNPTkZJR19GRUFUVVJFX1ZJX1NFVE9QVFM9eQpDT05GSUdfRkVBVFVSRV9WSV9T +RVQ9eQpDT05GSUdfRkVBVFVSRV9WSV9XSU5fUkVTSVpFPXkKQ09ORklHX0ZFQVRVUkVfVklfQVNL +X1RFUk1JTkFMPXkKQ09ORklHX0ZFQVRVUkVfVklfVU5ETz15CkNPTkZJR19GRUFUVVJFX1ZJX1VO +RE9fUVVFVUU9eQpDT05GSUdfRkVBVFVSRV9WSV9VTkRPX1FVRVVFX01BWD0yNTYKQ09ORklHX0ZF +QVRVUkVfQUxMT1dfRVhFQz15CgojCiMgRmluZGluZyBVdGlsaXRpZXMKIwojIENPTkZJR19GSU5E +IGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9GSU5EX1BSSU5UMCBpcyBub3Qgc2V0CiMgQ09O +RklHX0ZFQVRVUkVfRklORF9NVElNRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfRklORF9N +TUlOIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9GSU5EX1BFUk0gaXMgbm90IHNldAojIENP +TkZJR19GRUFUVVJFX0ZJTkRfVFlQRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfRklORF9F +WEVDVVRBQkxFIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9GSU5EX1hERVYgaXMgbm90IHNl +dAojIENPTkZJR19GRUFUVVJFX0ZJTkRfTUFYREVQVEggaXMgbm90IHNldAojIENPTkZJR19GRUFU +VVJFX0ZJTkRfTkVXRVIgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0ZJTkRfSU5VTSBpcyBu +b3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfRklORF9FWEVDIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVB +VFVSRV9GSU5EX0VYRUNfUExVUyBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfRklORF9VU0VS +IGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9GSU5EX0dST1VQIGlzIG5vdCBzZXQKIyBDT05G +SUdfRkVBVFVSRV9GSU5EX05PVCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfRklORF9ERVBU +SCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfRklORF9QQVJFTiBpcyBub3Qgc2V0CiMgQ09O +RklHX0ZFQVRVUkVfRklORF9TSVpFIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9GSU5EX1BS +VU5FIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9GSU5EX1FVSVQgaXMgbm90IHNldAojIENP +TkZJR19GRUFUVVJFX0ZJTkRfREVMRVRFIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9GSU5E +X0VNUFRZIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9GSU5EX1BBVEggaXMgbm90IHNldAoj +IENPTkZJR19GRUFUVVJFX0ZJTkRfUkVHRVggaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0ZJ +TkRfQ09OVEVYVCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfRklORF9MSU5LUyBpcyBub3Qg +c2V0CiMgQ09ORklHX0dSRVAgaXMgbm90IHNldAojIENPTkZJR19FR1JFUCBpcyBub3Qgc2V0CiMg +Q09ORklHX0ZHUkVQIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9HUkVQX0NPTlRFWFQgaXMg +bm90IHNldAojIENPTkZJR19YQVJHUyBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfWEFSR1Nf +U1VQUE9SVF9DT05GSVJNQVRJT04gaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1hBUkdTX1NV +UFBPUlRfUVVPVEVTIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9YQVJHU19TVVBQT1JUX1RF +Uk1PUFQgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1hBUkdTX1NVUFBPUlRfWkVST19URVJN +IGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9YQVJHU19TVVBQT1JUX1JFUExfU1RSIGlzIG5v +dCBzZXQKIyBDT05GSUdfRkVBVFVSRV9YQVJHU19TVVBQT1JUX1BBUkFMTEVMIGlzIG5vdCBzZXQK +IyBDT05GSUdfRkVBVFVSRV9YQVJHU19TVVBQT1JUX0FSR1NfRklMRSBpcyBub3Qgc2V0CgojCiMg +SW5pdCBVdGlsaXRpZXMKIwojIENPTkZJR19CT09UQ0hBUlREIGlzIG5vdCBzZXQKIyBDT05GSUdf +RkVBVFVSRV9CT09UQ0hBUlREX0JMT0FURURfSEVBREVSIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVB +VFVSRV9CT09UQ0hBUlREX0NPTkZJR19GSUxFIGlzIG5vdCBzZXQKIyBDT05GSUdfSEFMVCBpcyBu +b3Qgc2V0CkNPTkZJR19QT1dFUk9GRj15CkNPTkZJR19SRUJPT1Q9eQpDT05GSUdfRkVBVFVSRV9X +QUlUX0ZPUl9JTklUPXkKIyBDT05GSUdfRkVBVFVSRV9DQUxMX1RFTElOSVQgaXMgbm90IHNldApD +T05GSUdfVEVMSU5JVF9QQVRIPSIiCkNPTkZJR19JTklUPXkKIyBDT05GSUdfTElOVVhSQyBpcyBu +b3Qgc2V0CkNPTkZJR19GRUFUVVJFX1VTRV9JTklUVEFCPXkKIyBDT05GSUdfRkVBVFVSRV9LSUxM +X1JFTU9WRUQgaXMgbm90IHNldApDT05GSUdfRkVBVFVSRV9LSUxMX0RFTEFZPTAKQ09ORklHX0ZF +QVRVUkVfSU5JVF9TQ1RUWT15CkNPTkZJR19GRUFUVVJFX0lOSVRfU1lTTE9HPXkKQ09ORklHX0ZF +QVRVUkVfSU5JVF9RVUlFVD15CiMgQ09ORklHX0ZFQVRVUkVfSU5JVF9DT1JFRFVNUFMgaXMgbm90 +IHNldApDT05GSUdfSU5JVF9URVJNSU5BTF9UWVBFPSJsaW51eCIKQ09ORklHX0ZFQVRVUkVfSU5J +VF9NT0RJRllfQ01ETElORT15CgojCiMgTG9naW4vUGFzc3dvcmQgTWFuYWdlbWVudCBVdGlsaXRp +ZXMKIwojIENPTkZJR19GRUFUVVJFX1NIQURPV1BBU1NXRFMgaXMgbm90IHNldAojIENPTkZJR19V +U0VfQkJfUFdEX0dSUCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTRV9CQl9TSEFET1cgaXMgbm90IHNl +dAojIENPTkZJR19VU0VfQkJfQ1JZUFQgaXMgbm90IHNldAojIENPTkZJR19VU0VfQkJfQ1JZUFRf +U0hBIGlzIG5vdCBzZXQKIyBDT05GSUdfQUREX1NIRUxMIGlzIG5vdCBzZXQKIyBDT05GSUdfUkVN +T1ZFX1NIRUxMIGlzIG5vdCBzZXQKIyBDT05GSUdfQURER1JPVVAgaXMgbm90IHNldAojIENPTkZJ +R19GRUFUVVJFX0FERFVTRVJfVE9fR1JPVVAgaXMgbm90IHNldAojIENPTkZJR19BRERVU0VSIGlz +IG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9DSEVDS19OQU1FUyBpcyBub3Qgc2V0CkNPTkZJR19M +QVNUX0lEPTAKQ09ORklHX0ZJUlNUX1NZU1RFTV9JRD0wCkNPTkZJR19MQVNUX1NZU1RFTV9JRD0w +CiMgQ09ORklHX0NIUEFTU1dEIGlzIG5vdCBzZXQKQ09ORklHX0ZFQVRVUkVfREVGQVVMVF9QQVNT +V0RfQUxHTz0iIgojIENPTkZJR19DUllQVFBXIGlzIG5vdCBzZXQKIyBDT05GSUdfTUtQQVNTV0Qg +aXMgbm90IHNldAojIENPTkZJR19ERUxVU0VSIGlzIG5vdCBzZXQKIyBDT05GSUdfREVMR1JPVVAg +aXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0RFTF9VU0VSX0ZST01fR1JPVVAgaXMgbm90IHNl +dAojIENPTkZJR19HRVRUWSBpcyBub3Qgc2V0CiMgQ09ORklHX0xPR0lOIGlzIG5vdCBzZXQKIyBD +T05GSUdfTE9HSU5fU0VTU0lPTl9BU19DSElMRCBpcyBub3Qgc2V0CiMgQ09ORklHX0xPR0lOX1ND +UklQVFMgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX05PTE9HSU4gaXMgbm90IHNldAojIENP +TkZJR19GRUFUVVJFX1NFQ1VSRVRUWSBpcyBub3Qgc2V0CiMgQ09ORklHX1BBU1NXRCBpcyBub3Qg +c2V0CiMgQ09ORklHX0ZFQVRVUkVfUEFTU1dEX1dFQUtfQ0hFQ0sgaXMgbm90IHNldAojIENPTkZJ +R19TVSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfU1VfU1lTTE9HIGlzIG5vdCBzZXQKIyBD +T05GSUdfRkVBVFVSRV9TVV9DSEVDS1NfU0hFTExTIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVS +RV9TVV9CTEFOS19QV19ORUVEU19TRUNVUkVfVFRZIGlzIG5vdCBzZXQKIyBDT05GSUdfU1VMT0dJ +TiBpcyBub3Qgc2V0CiMgQ09ORklHX1ZMT0NLIGlzIG5vdCBzZXQKCiMKIyBMaW51eCBFeHQyIEZT +IFByb2dzCiMKIyBDT05GSUdfQ0hBVFRSIGlzIG5vdCBzZXQKIyBDT05GSUdfRlNDSyBpcyBub3Qg +c2V0CiMgQ09ORklHX0xTQVRUUiBpcyBub3Qgc2V0CiMgQ09ORklHX1RVTkUyRlMgaXMgbm90IHNl +dAoKIwojIExpbnV4IE1vZHVsZSBVdGlsaXRpZXMKIwojIENPTkZJR19NT0RQUk9CRV9TTUFMTCBp +cyBub3Qgc2V0CiMgQ09ORklHX0RFUE1PRCBpcyBub3Qgc2V0CiMgQ09ORklHX0lOU01PRCBpcyBu +b3Qgc2V0CiMgQ09ORklHX0xTTU9EIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9MU01PRF9Q +UkVUVFlfMl82X09VVFBVVCBpcyBub3Qgc2V0CiMgQ09ORklHX01PRElORk8gaXMgbm90IHNldAoj +IENPTkZJR19NT0RQUk9CRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfTU9EUFJPQkVfQkxB +Q0tMSVNUIGlzIG5vdCBzZXQKIyBDT05GSUdfUk1NT0QgaXMgbm90IHNldAoKIwojIE9wdGlvbnMg +Y29tbW9uIHRvIG11bHRpcGxlIG1vZHV0aWxzCiMKIyBDT05GSUdfRkVBVFVSRV9DTURMSU5FX01P +RFVMRV9PUFRJT05TIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9NT0RQUk9CRV9TTUFMTF9D +SEVDS19BTFJFQURZX0xPQURFRCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfMl80X01PRFVM +RVMgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0lOU01PRF9WRVJTSU9OX0NIRUNLSU5HIGlz +IG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9JTlNNT0RfS1NZTU9PUFNfU1lNQk9MUyBpcyBub3Qg +c2V0CiMgQ09ORklHX0ZFQVRVUkVfSU5TTU9EX0xPQURJTktNRU0gaXMgbm90IHNldAojIENPTkZJ +R19GRUFUVVJFX0lOU01PRF9MT0FEX01BUCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfSU5T +TU9EX0xPQURfTUFQX0ZVTEwgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0NIRUNLX1RBSU5U +RURfTU9EVUxFIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9JTlNNT0RfVFJZX01NQVAgaXMg +bm90IHNldAojIENPTkZJR19GRUFUVVJFX01PRFVUSUxTX0FMSUFTIGlzIG5vdCBzZXQKIyBDT05G +SUdfRkVBVFVSRV9NT0RVVElMU19TWU1CT0xTIGlzIG5vdCBzZXQKQ09ORklHX0RFRkFVTFRfTU9E +VUxFU19ESVI9IiIKQ09ORklHX0RFRkFVTFRfREVQTU9EX0ZJTEU9IiIKCiMKIyBMaW51eCBTeXN0 +ZW0gVXRpbGl0aWVzCiMKIyBDT05GSUdfQUNQSUQgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJF +X0FDUElEX0NPTVBBVCBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS0RJU0NBUkQgaXMgbm90IHNldAoj +IENPTkZJR19CTEtJRCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfQkxLSURfVFlQRSBpcyBu +b3Qgc2V0CiMgQ09ORklHX0JMT0NLREVWIGlzIG5vdCBzZXQKIyBDT05GSUdfQ0FMIGlzIG5vdCBz +ZXQKIyBDT05GSUdfQ0hSVCBpcyBub3Qgc2V0CiMgQ09ORklHX0RNRVNHIGlzIG5vdCBzZXQKIyBD +T05GSUdfRkVBVFVSRV9ETUVTR19QUkVUVFkgaXMgbm90IHNldAojIENPTkZJR19FSkVDVCBpcyBu +b3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfRUpFQ1RfU0NTSSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZB +TExPQ0FURSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZBVEFUVFIgaXMgbm90IHNldAojIENPTkZJR19G +QlNFVCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfRkJTRVRfRkFOQ1kgaXMgbm90IHNldAoj +IENPTkZJR19GRUFUVVJFX0ZCU0VUX1JFQURNT0RFIGlzIG5vdCBzZXQKIyBDT05GSUdfRkRGT1JN +QVQgaXMgbm90IHNldAojIENPTkZJR19GRElTSyBpcyBub3Qgc2V0CiMgQ09ORklHX0ZESVNLX1NV +UFBPUlRfTEFSR0VfRElTS1MgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0ZESVNLX1dSSVRB +QkxFIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9BSVhfTEFCRUwgaXMgbm90IHNldAojIENP +TkZJR19GRUFUVVJFX1NHSV9MQUJFTCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfU1VOX0xB +QkVMIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9PU0ZfTEFCRUwgaXMgbm90IHNldAojIENP +TkZJR19GRUFUVVJFX0dQVF9MQUJFTCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfRkRJU0tf +QURWQU5DRUQgaXMgbm90IHNldAojIENPTkZJR19GSU5ERlMgaXMgbm90IHNldAojIENPTkZJR19G +TE9DSyBpcyBub3Qgc2V0CiMgQ09ORklHX0ZERkxVU0ggaXMgbm90IHNldAojIENPTkZJR19GUkVF +UkFNRElTSyBpcyBub3Qgc2V0CiMgQ09ORklHX0ZTQ0tfTUlOSVggaXMgbm90IHNldAojIENPTkZJ +R19GU0ZSRUVaRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZTVFJJTSBpcyBub3Qgc2V0CiMgQ09ORklH +X0dFVE9QVCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfR0VUT1BUX0xPTkcgaXMgbm90IHNl +dAojIENPTkZJR19IRVhEVU1QIGlzIG5vdCBzZXQKIyBDT05GSUdfSEQgaXMgbm90IHNldAojIENP +TkZJR19YWEQgaXMgbm90IHNldAojIENPTkZJR19IV0NMT0NLIGlzIG5vdCBzZXQKIyBDT05GSUdf +RkVBVFVSRV9IV0NMT0NLX0FESlRJTUVfRkhTIGlzIG5vdCBzZXQKIyBDT05GSUdfSU9OSUNFIGlz +IG5vdCBzZXQKIyBDT05GSUdfSVBDUk0gaXMgbm90IHNldAojIENPTkZJR19JUENTIGlzIG5vdCBz +ZXQKIyBDT05GSUdfTEFTVCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfTEFTVF9GQU5DWSBp +cyBub3Qgc2V0CiMgQ09ORklHX0xPU0VUVVAgaXMgbm90IHNldAojIENPTkZJR19MU1BDSSBpcyBu +b3Qgc2V0CiMgQ09ORklHX0xTVVNCIGlzIG5vdCBzZXQKIyBDT05GSUdfTURFViBpcyBub3Qgc2V0 +CiMgQ09ORklHX0ZFQVRVUkVfTURFVl9DT05GIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9N +REVWX1JFTkFNRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfTURFVl9SRU5BTUVfUkVHRVhQ +IGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9NREVWX0VYRUMgaXMgbm90IHNldAojIENPTkZJ +R19GRUFUVVJFX01ERVZfTE9BRF9GSVJNV0FSRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVf +TURFVl9EQUVNT04gaXMgbm90IHNldAojIENPTkZJR19NRVNHIGlzIG5vdCBzZXQKIyBDT05GSUdf +RkVBVFVSRV9NRVNHX0VOQUJMRV9PTkxZX0dST1VQIGlzIG5vdCBzZXQKIyBDT05GSUdfTUtFMkZT +IGlzIG5vdCBzZXQKIyBDT05GSUdfTUtGU19FWFQyIGlzIG5vdCBzZXQKIyBDT05GSUdfTUtGU19N +SU5JWCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfTUlOSVgyIGlzIG5vdCBzZXQKIyBDT05G +SUdfTUtGU19SRUlTRVIgaXMgbm90IHNldAojIENPTkZJR19NS0RPU0ZTIGlzIG5vdCBzZXQKIyBD +T05GSUdfTUtGU19WRkFUIGlzIG5vdCBzZXQKIyBDT05GSUdfTUtTV0FQIGlzIG5vdCBzZXQKIyBD +T05GSUdfRkVBVFVSRV9NS1NXQVBfVVVJRCBpcyBub3Qgc2V0CiMgQ09ORklHX01PUkUgaXMgbm90 +IHNldApDT05GSUdfTU9VTlQ9eQpDT05GSUdfRkVBVFVSRV9NT1VOVF9GQUtFPXkKQ09ORklHX0ZF +QVRVUkVfTU9VTlRfVkVSQk9TRT15CiMgQ09ORklHX0ZFQVRVUkVfTU9VTlRfSEVMUEVSUyBpcyBu +b3Qgc2V0CkNPTkZJR19GRUFUVVJFX01PVU5UX0xBQkVMPXkKIyBDT05GSUdfRkVBVFVSRV9NT1VO +VF9ORlMgaXMgbm90IHNldApDT05GSUdfRkVBVFVSRV9NT1VOVF9DSUZTPXkKQ09ORklHX0ZFQVRV +UkVfTU9VTlRfRkxBR1M9eQpDT05GSUdfRkVBVFVSRV9NT1VOVF9GU1RBQj15CkNPTkZJR19GRUFU +VVJFX01PVU5UX09USEVSVEFCPXkKIyBDT05GSUdfTU9VTlRQT0lOVCBpcyBub3Qgc2V0CiMgQ09O +RklHX05PTE9HSU4gaXMgbm90IHNldAojIENPTkZJR19OT0xPR0lOX0RFUEVOREVOQ0lFUyBpcyBu +b3Qgc2V0CiMgQ09ORklHX05TRU5URVIgaXMgbm90IHNldAojIENPTkZJR19QSVZPVF9ST09UIGlz +IG5vdCBzZXQKIyBDT05GSUdfUkRBVEUgaXMgbm90IHNldAojIENPTkZJR19SREVWIGlzIG5vdCBz +ZXQKIyBDT05GSUdfUkVBRFBST0ZJTEUgaXMgbm90IHNldAojIENPTkZJR19SRU5JQ0UgaXMgbm90 +IHNldAojIENPTkZJR19SRVYgaXMgbm90IHNldAojIENPTkZJR19SVENXQUtFIGlzIG5vdCBzZXQK +IyBDT05GSUdfU0NSSVBUIGlzIG5vdCBzZXQKIyBDT05GSUdfU0NSSVBUUkVQTEFZIGlzIG5vdCBz +ZXQKIyBDT05GSUdfU0VUQVJDSCBpcyBub3Qgc2V0CiMgQ09ORklHX0xJTlVYMzIgaXMgbm90IHNl +dAojIENPTkZJR19MSU5VWDY0IGlzIG5vdCBzZXQKIyBDT05GSUdfU0VUUFJJViBpcyBub3Qgc2V0 +CiMgQ09ORklHX0ZFQVRVUkVfU0VUUFJJVl9EVU1QIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVS +RV9TRVRQUklWX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfU0VUUFJJ +Vl9DQVBBQklMSVRZX05BTUVTIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VUU0lEIGlzIG5vdCBzZXQK +IyBDT05GSUdfU1dBUE9OIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9TV0FQT05fRElTQ0FS +RCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfU1dBUE9OX1BSSSBpcyBub3Qgc2V0CiMgQ09O +RklHX1NXQVBPRkYgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1NXQVBPTk9GRl9MQUJFTCBp +cyBub3Qgc2V0CiMgQ09ORklHX1NXSVRDSF9ST09UIGlzIG5vdCBzZXQKIyBDT05GSUdfVEFTS1NF +VCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfVEFTS1NFVF9GQU5DWSBpcyBub3Qgc2V0CiMg +Q09ORklHX0ZFQVRVUkVfVEFTS1NFVF9DUFVMSVNUIGlzIG5vdCBzZXQKIyBDT05GSUdfVUVWRU5U +IGlzIG5vdCBzZXQKQ09ORklHX1VNT1VOVD15CkNPTkZJR19GRUFUVVJFX1VNT1VOVF9BTEw9eQoj +IENPTkZJR19VTlNIQVJFIGlzIG5vdCBzZXQKIyBDT05GSUdfV0FMTCBpcyBub3Qgc2V0CgojCiMg +Q29tbW9uIG9wdGlvbnMgZm9yIG1vdW50L3Vtb3VudAojCkNPTkZJR19GRUFUVVJFX01PVU5UX0xP +T1A9eQpDT05GSUdfRkVBVFVSRV9NT1VOVF9MT09QX0NSRUFURT15CiMgQ09ORklHX0ZFQVRVUkVf +TVRBQl9TVVBQT1JUIGlzIG5vdCBzZXQKQ09ORklHX1ZPTFVNRUlEPXkKCiMKIyBGaWxlc3lzdGVt +L1ZvbHVtZSBpZGVudGlmaWNhdGlvbgojCkNPTkZJR19GRUFUVVJFX1ZPTFVNRUlEX0JDQUNIRT15 +CkNPTkZJR19GRUFUVVJFX1ZPTFVNRUlEX0JUUkZTPXkKQ09ORklHX0ZFQVRVUkVfVk9MVU1FSURf +Q1JBTUZTPXkKQ09ORklHX0ZFQVRVUkVfVk9MVU1FSURfRVJPRlM9eQpDT05GSUdfRkVBVFVSRV9W +T0xVTUVJRF9FWEZBVD15CkNPTkZJR19GRUFUVVJFX1ZPTFVNRUlEX0VYVD15CkNPTkZJR19GRUFU +VVJFX1ZPTFVNRUlEX0YyRlM9eQpDT05GSUdfRkVBVFVSRV9WT0xVTUVJRF9GQVQ9eQpDT05GSUdf +RkVBVFVSRV9WT0xVTUVJRF9IRlM9eQpDT05GSUdfRkVBVFVSRV9WT0xVTUVJRF9JU085NjYwPXkK +Q09ORklHX0ZFQVRVUkVfVk9MVU1FSURfSkZTPXkKIyBDT05GSUdfRkVBVFVSRV9WT0xVTUVJRF9M +RlMgaXMgbm90IHNldApDT05GSUdfRkVBVFVSRV9WT0xVTUVJRF9MSU5VWFJBSUQ9eQpDT05GSUdf +RkVBVFVSRV9WT0xVTUVJRF9MSU5VWFNXQVA9eQpDT05GSUdfRkVBVFVSRV9WT0xVTUVJRF9MVUtT +PXkKQ09ORklHX0ZFQVRVUkVfVk9MVU1FSURfTUlOSVg9eQpDT05GSUdfRkVBVFVSRV9WT0xVTUVJ +RF9OSUxGUz15CkNPTkZJR19GRUFUVVJFX1ZPTFVNRUlEX05URlM9eQpDT05GSUdfRkVBVFVSRV9W +T0xVTUVJRF9PQ0ZTMj15CkNPTkZJR19GRUFUVVJFX1ZPTFVNRUlEX1JFSVNFUkZTPXkKQ09ORklH +X0ZFQVRVUkVfVk9MVU1FSURfUk9NRlM9eQojIENPTkZJR19GRUFUVVJFX1ZPTFVNRUlEX1NRVUFT +SEZTIGlzIG5vdCBzZXQKQ09ORklHX0ZFQVRVUkVfVk9MVU1FSURfU1lTVj15CkNPTkZJR19GRUFU +VVJFX1ZPTFVNRUlEX1VCSUZTPXkKQ09ORklHX0ZFQVRVUkVfVk9MVU1FSURfVURGPXkKQ09ORklH +X0ZFQVRVUkVfVk9MVU1FSURfWEZTPXkKCiMKIyBNaXNjZWxsYW5lb3VzIFV0aWxpdGllcwojCiMg +Q09ORklHX0FESlRJTUVYIGlzIG5vdCBzZXQKIyBDT05GSUdfQkJDT05GSUcgaXMgbm90IHNldAoj +IENPTkZJR19GRUFUVVJFX0NPTVBSRVNTX0JCQ09ORklHIGlzIG5vdCBzZXQKIyBDT05GSUdfQkMg +aXMgbm90IHNldAojIENPTkZJR19EQyBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfRENfQklH +IGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9EQ19MSUJNIGlzIG5vdCBzZXQKIyBDT05GSUdf +RkVBVFVSRV9CQ19JTlRFUkFDVElWRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfQkNfTE9O +R19PUFRJT05TIGlzIG5vdCBzZXQKIyBDT05GSUdfQkVFUCBpcyBub3Qgc2V0CkNPTkZJR19GRUFU +VVJFX0JFRVBfRlJFUT0wCkNPTkZJR19GRUFUVVJFX0JFRVBfTEVOR1RIX01TPTAKIyBDT05GSUdf +Q0hBVCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfQ0hBVF9OT0ZBSUwgaXMgbm90IHNldAoj +IENPTkZJR19GRUFUVVJFX0NIQVRfVFRZX0hJRkkgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJF +X0NIQVRfSU1QTElDSVRfQ1IgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0NIQVRfU1dBTExP +V19PUFRTIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9DSEFUX1NFTkRfRVNDQVBFUyBpcyBu +b3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfQ0hBVF9WQVJfQUJPUlRfTEVOIGlzIG5vdCBzZXQKIyBD +T05GSUdfRkVBVFVSRV9DSEFUX0NMUl9BQk9SVCBpcyBub3Qgc2V0CiMgQ09ORklHX0NPTlNQWSBp +cyBub3Qgc2V0CiMgQ09ORklHX0NST05EIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9DUk9O +RF9EIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9DUk9ORF9DQUxMX1NFTkRNQUlMIGlzIG5v +dCBzZXQKIyBDT05GSUdfRkVBVFVSRV9DUk9ORF9TUEVDSUFMX1RJTUVTIGlzIG5vdCBzZXQKQ09O +RklHX0ZFQVRVUkVfQ1JPTkRfRElSPSIiCiMgQ09ORklHX0NST05UQUIgaXMgbm90IHNldAojIENP +TkZJR19ERVZGU0QgaXMgbm90IHNldAojIENPTkZJR19ERVZGU0RfTU9ETE9BRCBpcyBub3Qgc2V0 +CiMgQ09ORklHX0RFVkZTRF9GR19OUCBpcyBub3Qgc2V0CiMgQ09ORklHX0RFVkZTRF9WRVJCT1NF +IGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9ERVZGUyBpcyBub3Qgc2V0CiMgQ09ORklHX0RF +Vk1FTSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZCU1BMQVNIIGlzIG5vdCBzZXQKIyBDT05GSUdfRkxB +U0hfRVJBU0VBTEwgaXMgbm90IHNldAojIENPTkZJR19GTEFTSF9MT0NLIGlzIG5vdCBzZXQKIyBD +T05GSUdfRkxBU0hfVU5MT0NLIGlzIG5vdCBzZXQKIyBDT05GSUdfRkxBU0hDUCBpcyBub3Qgc2V0 +CiMgQ09ORklHX0hEUEFSTSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfSERQQVJNX0dFVF9J +REVOVElUWSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfSERQQVJNX0hESU9fU0NBTl9IV0lG +IGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9IRFBBUk1fSERJT19VTlJFR0lTVEVSX0hXSUYg +aXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0hEUEFSTV9IRElPX0RSSVZFX1JFU0VUIGlzIG5v +dCBzZXQKIyBDT05GSUdfRkVBVFVSRV9IRFBBUk1fSERJT19UUklTVEFURV9IV0lGIGlzIG5vdCBz +ZXQKIyBDT05GSUdfRkVBVFVSRV9IRFBBUk1fSERJT19HRVRTRVRfRE1BIGlzIG5vdCBzZXQKIyBD +T05GSUdfSEVYRURJVCBpcyBub3Qgc2V0CiMgQ09ORklHX0kyQ0dFVCBpcyBub3Qgc2V0CiMgQ09O +RklHX0kyQ1NFVCBpcyBub3Qgc2V0CiMgQ09ORklHX0kyQ0RVTVAgaXMgbm90IHNldAojIENPTkZJ +R19JMkNERVRFQ1QgaXMgbm90IHNldAojIENPTkZJR19JMkNUUkFOU0ZFUiBpcyBub3Qgc2V0CiMg +Q09ORklHX0lOT1RJRllEIGlzIG5vdCBzZXQKQ09ORklHX0xFU1M9eQpDT05GSUdfRkVBVFVSRV9M +RVNTX01BWExJTkVTPTk5OTk5OTkKQ09ORklHX0ZFQVRVUkVfTEVTU19CUkFDS0VUUz15CkNPTkZJ +R19GRUFUVVJFX0xFU1NfRkxBR1M9eQpDT05GSUdfRkVBVFVSRV9MRVNTX1RSVU5DQVRFPXkKQ09O +RklHX0ZFQVRVUkVfTEVTU19NQVJLUz15CkNPTkZJR19GRUFUVVJFX0xFU1NfUkVHRVhQPXkKQ09O +RklHX0ZFQVRVUkVfTEVTU19XSU5DSD15CkNPTkZJR19GRUFUVVJFX0xFU1NfQVNLX1RFUk1JTkFM +PXkKQ09ORklHX0ZFQVRVUkVfTEVTU19EQVNIQ01EPXkKQ09ORklHX0ZFQVRVUkVfTEVTU19MSU5F +TlVNUz15CkNPTkZJR19GRUFUVVJFX0xFU1NfUkFXPXkKQ09ORklHX0ZFQVRVUkVfTEVTU19FTlY9 +eQojIENPTkZJR19MU1NDU0kgaXMgbm90IHNldAojIENPTkZJR19NQUtFREVWUyBpcyBub3Qgc2V0 +CiMgQ09ORklHX0ZFQVRVUkVfTUFLRURFVlNfTEVBRiBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRV +UkVfTUFLRURFVlNfVEFCTEUgaXMgbm90IHNldAojIENPTkZJR19NQU4gaXMgbm90IHNldAojIENP +TkZJR19NSUNST0NPTSBpcyBub3Qgc2V0CiMgQ09ORklHX01JTSBpcyBub3Qgc2V0CiMgQ09ORklH +X01UIGlzIG5vdCBzZXQKIyBDT05GSUdfTkFORFdSSVRFIGlzIG5vdCBzZXQKIyBDT05GSUdfTkFO +RERVTVAgaXMgbm90IHNldAojIENPTkZJR19QQVJUUFJPQkUgaXMgbm90IHNldAojIENPTkZJR19S +QUlEQVVUT1JVTiBpcyBub3Qgc2V0CiMgQ09ORklHX1JFQURBSEVBRCBpcyBub3Qgc2V0CiMgQ09O +RklHX1JGS0lMTCBpcyBub3Qgc2V0CiMgQ09ORklHX1JVTkxFVkVMIGlzIG5vdCBzZXQKIyBDT05G +SUdfUlggaXMgbm90IHNldAojIENPTkZJR19TRVRGQVRUUiBpcyBub3Qgc2V0CiMgQ09ORklHX1NF +VFNFUklBTCBpcyBub3Qgc2V0CiMgQ09ORklHX1NUUklOR1MgaXMgbm90IHNldAojIENPTkZJR19U +SU1FIGlzIG5vdCBzZXQKIyBDT05GSUdfVFMgaXMgbm90IHNldAojIENPTkZJR19UVFlTSVpFIGlz +IG5vdCBzZXQKIyBDT05GSUdfVUJJQVRUQUNIIGlzIG5vdCBzZXQKIyBDT05GSUdfVUJJREVUQUNI +IGlzIG5vdCBzZXQKIyBDT05GSUdfVUJJTUtWT0wgaXMgbm90IHNldAojIENPTkZJR19VQklSTVZP +TCBpcyBub3Qgc2V0CiMgQ09ORklHX1VCSVJTVk9MIGlzIG5vdCBzZXQKIyBDT05GSUdfVUJJVVBE +QVRFVk9MIGlzIG5vdCBzZXQKIyBDT05GSUdfVUJJUkVOQU1FIGlzIG5vdCBzZXQKIyBDT05GSUdf +Vk9MTkFNRSBpcyBub3Qgc2V0CiMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKCiMKIyBOZXR3 +b3JraW5nIFV0aWxpdGllcwojCiMgQ09ORklHX0ZFQVRVUkVfSVBWNiBpcyBub3Qgc2V0CiMgQ09O +RklHX0ZFQVRVUkVfVU5JWF9MT0NBTCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfUFJFRkVS +X0lQVjRfQUREUkVTUyBpcyBub3Qgc2V0CiMgQ09ORklHX1ZFUkJPU0VfUkVTT0xVVElPTl9FUlJP +UlMgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1RMU19TSEExIGlzIG5vdCBzZXQKIyBDT05G +SUdfQVJQIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJQSU5HIGlzIG5vdCBzZXQKIyBDT05GSUdfQlJD +VEwgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0JSQ1RMX0ZBTkNZIGlzIG5vdCBzZXQKIyBD +T05GSUdfRkVBVFVSRV9CUkNUTF9TSE9XIGlzIG5vdCBzZXQKIyBDT05GSUdfRE5TRCBpcyBub3Qg +c2V0CiMgQ09ORklHX0VUSEVSX1dBS0UgaXMgbm90IHNldAojIENPTkZJR19GVFBEIGlzIG5vdCBz +ZXQKIyBDT05GSUdfRkVBVFVSRV9GVFBEX1dSSVRFIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVS +RV9GVFBEX0FDQ0VQVF9CUk9LRU5fTElTVCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfRlRQ +RF9BVVRIRU5USUNBVElPTiBpcyBub3Qgc2V0CiMgQ09ORklHX0ZUUEdFVCBpcyBub3Qgc2V0CiMg +Q09ORklHX0ZUUFBVVCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfRlRQR0VUUFVUX0xPTkdf +T1BUSU9OUyBpcyBub3Qgc2V0CiMgQ09ORklHX0hPU1ROQU1FIGlzIG5vdCBzZXQKIyBDT05GSUdf +RE5TRE9NQUlOTkFNRSBpcyBub3Qgc2V0CiMgQ09ORklHX0hUVFBEIGlzIG5vdCBzZXQKIyBDT05G +SUdfRkVBVFVSRV9IVFRQRF9SQU5HRVMgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0hUVFBE +X1NFVFVJRCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfSFRUUERfQkFTSUNfQVVUSCBpcyBu +b3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfSFRUUERfQVVUSF9NRDUgaXMgbm90IHNldAojIENPTkZJ +R19GRUFUVVJFX0hUVFBEX0NHSSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfSFRUUERfQ09O +RklHX1dJVEhfU0NSSVBUX0lOVEVSUFIgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0hUVFBE +X1NFVF9SRU1PVEVfUE9SVF9UT19FTlYgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0hUVFBE +X0VOQ09ERV9VUkxfU1RSIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9IVFRQRF9FUlJPUl9Q +QUdFUyBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfSFRUUERfUFJPWFkgaXMgbm90IHNldAoj +IENPTkZJR19GRUFUVVJFX0hUVFBEX0daSVAgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0hU +VFBEX0VUQUcgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0hUVFBEX0xBU1RfTU9ESUZJRUQg +aXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0hUVFBEX0RBVEUgaXMgbm90IHNldAojIENPTkZJ +R19GRUFUVVJFX0hUVFBEX0FDTF9JUCBpcyBub3Qgc2V0CiMgQ09ORklHX0lGQ09ORklHIGlzIG5v +dCBzZXQKIyBDT05GSUdfRkVBVFVSRV9JRkNPTkZJR19TVEFUVVMgaXMgbm90IHNldAojIENPTkZJ +R19GRUFUVVJFX0lGQ09ORklHX1NMSVAgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0lGQ09O +RklHX01FTVNUQVJUX0lPQUREUl9JUlEgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0lGQ09O +RklHX0hXIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9JRkNPTkZJR19CUk9BRENBU1RfUExV +UyBpcyBub3Qgc2V0CiMgQ09ORklHX0lGRU5TTEFWRSBpcyBub3Qgc2V0CiMgQ09ORklHX0lGUExV +R0QgaXMgbm90IHNldAojIENPTkZJR19JRlVQIGlzIG5vdCBzZXQKIyBDT05GSUdfSUZET1dOIGlz +IG5vdCBzZXQKQ09ORklHX0lGVVBET1dOX0lGU1RBVEVfUEFUSD0iIgojIENPTkZJR19GRUFUVVJF +X0lGVVBET1dOX0lQIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9JRlVQRE9XTl9JUFY0IGlz +IG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9JRlVQRE9XTl9JUFY2IGlzIG5vdCBzZXQKIyBDT05G +SUdfRkVBVFVSRV9JRlVQRE9XTl9NQVBQSU5HIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9J +RlVQRE9XTl9FWFRFUk5BTF9ESENQIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5FVEQgaXMgbm90IHNl +dAojIENPTkZJR19GRUFUVVJFX0lORVREX1NVUFBPUlRfQlVJTFRJTl9FQ0hPIGlzIG5vdCBzZXQK +IyBDT05GSUdfRkVBVFVSRV9JTkVURF9TVVBQT1JUX0JVSUxUSU5fRElTQ0FSRCBpcyBub3Qgc2V0 +CiMgQ09ORklHX0ZFQVRVUkVfSU5FVERfU1VQUE9SVF9CVUlMVElOX1RJTUUgaXMgbm90IHNldAoj +IENPTkZJR19GRUFUVVJFX0lORVREX1NVUFBPUlRfQlVJTFRJTl9EQVlUSU1FIGlzIG5vdCBzZXQK +IyBDT05GSUdfRkVBVFVSRV9JTkVURF9TVVBQT1JUX0JVSUxUSU5fQ0hBUkdFTiBpcyBub3Qgc2V0 +CiMgQ09ORklHX0ZFQVRVUkVfSU5FVERfUlBDIGlzIG5vdCBzZXQKIyBDT05GSUdfSVAgaXMgbm90 +IHNldAojIENPTkZJR19JUEFERFIgaXMgbm90IHNldAojIENPTkZJR19JUExJTksgaXMgbm90IHNl +dAojIENPTkZJR19JUFJPVVRFIGlzIG5vdCBzZXQKIyBDT05GSUdfSVBUVU5ORUwgaXMgbm90IHNl +dAojIENPTkZJR19JUFJVTEUgaXMgbm90IHNldAojIENPTkZJR19JUE5FSUdIIGlzIG5vdCBzZXQK +IyBDT05GSUdfRkVBVFVSRV9JUF9BRERSRVNTIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9J +UF9MSU5LIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9JUF9ST1VURSBpcyBub3Qgc2V0CkNP +TkZJR19GRUFUVVJFX0lQX1JPVVRFX0RJUj0iIgojIENPTkZJR19GRUFUVVJFX0lQX1RVTk5FTCBp +cyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfSVBfUlVMRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZF +QVRVUkVfSVBfTkVJR0ggaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX0lQX1JBUkVfUFJPVE9D +T0xTIGlzIG5vdCBzZXQKIyBDT05GSUdfSVBDQUxDIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVS +RV9JUENBTENfTE9OR19PUFRJT05TIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9JUENBTENf +RkFOQ1kgaXMgbm90IHNldAojIENPTkZJR19GQUtFSURFTlREIGlzIG5vdCBzZXQKIyBDT05GSUdf +TkFNRUlGIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9OQU1FSUZfRVhURU5ERUQgaXMgbm90 +IHNldAojIENPTkZJR19OQkRDTElFTlQgaXMgbm90IHNldAojIENPTkZJR19OQyBpcyBub3Qgc2V0 +CiMgQ09ORklHX05FVENBVCBpcyBub3Qgc2V0CiMgQ09ORklHX05DX1NFUlZFUiBpcyBub3Qgc2V0 +CiMgQ09ORklHX05DX0VYVFJBIGlzIG5vdCBzZXQKIyBDT05GSUdfTkNfMTEwX0NPTVBBVCBpcyBu +b3Qgc2V0CiMgQ09ORklHX05FVFNUQVQgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX05FVFNU +QVRfV0lERSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfTkVUU1RBVF9QUkcgaXMgbm90IHNl +dAojIENPTkZJR19OU0xPT0tVUCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfTlNMT09LVVBf +QklHIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9OU0xPT0tVUF9MT05HX09QVElPTlMgaXMg +bm90IHNldAojIENPTkZJR19OVFBEIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9OVFBEX1NF +UlZFUiBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfTlRQRF9DT05GIGlzIG5vdCBzZXQKIyBD +T05GSUdfRkVBVFVSRV9OVFBfQVVUSCBpcyBub3Qgc2V0CiMgQ09ORklHX1BJTkcgaXMgbm90IHNl +dAojIENPTkZJR19QSU5HNiBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfRkFOQ1lfUElORyBp +cyBub3Qgc2V0CiMgQ09ORklHX1BTQ0FOIGlzIG5vdCBzZXQKIyBDT05GSUdfUk9VVEUgaXMgbm90 +IHNldAojIENPTkZJR19TTEFUVEFDSCBpcyBub3Qgc2V0CiMgQ09ORklHX1NTTF9DTElFTlQgaXMg +bm90IHNldAojIENPTkZJR19UQyBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfVENfSU5HUkVT +UyBpcyBub3Qgc2V0CiMgQ09ORklHX1RDUFNWRCBpcyBub3Qgc2V0CiMgQ09ORklHX1VEUFNWRCBp +cyBub3Qgc2V0CiMgQ09ORklHX1RFTE5FVCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfVEVM +TkVUX1RUWVBFIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9URUxORVRfQVVUT0xPR0lOIGlz +IG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9URUxORVRfV0lEVEggaXMgbm90IHNldAojIENPTkZJ +R19URUxORVREIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9URUxORVREX1NUQU5EQUxPTkUg +aXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1RFTE5FVERfSU5FVERfV0FJVCBpcyBub3Qgc2V0 +CiMgQ09ORklHX1RGVFAgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1RGVFBfUFJPR1JFU1Nf +QkFSIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9URlRQX0hQQV9DT01QQVQgaXMgbm90IHNl +dAojIENPTkZJR19URlRQRCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfVEZUUF9HRVQgaXMg +bm90IHNldAojIENPTkZJR19GRUFUVVJFX1RGVFBfUFVUIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVB +VFVSRV9URlRQX0JMT0NLU0laRSBpcyBub3Qgc2V0CiMgQ09ORklHX1RGVFBfREVCVUcgaXMgbm90 +IHNldAojIENPTkZJR19UTFMgaXMgbm90IHNldAojIENPTkZJR19UUkFDRVJPVVRFIGlzIG5vdCBz +ZXQKIyBDT05GSUdfVFJBQ0VST1VURTYgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1RSQUNF +Uk9VVEVfVkVSQk9TRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfVFJBQ0VST1VURV9VU0Vf +SUNNUCBpcyBub3Qgc2V0CiMgQ09ORklHX1RVTkNUTCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRV +UkVfVFVOQ1RMX1VHIGlzIG5vdCBzZXQKIyBDT05GSUdfVkNPTkZJRyBpcyBub3Qgc2V0CiMgQ09O +RklHX1dHRVQgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1dHRVRfTE9OR19PUFRJT05TIGlz +IG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9XR0VUX1NUQVRVU0JBUiBpcyBub3Qgc2V0CiMgQ09O +RklHX0ZFQVRVUkVfV0dFVF9BVVRIRU5USUNBVElPTiBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRV +UkVfV0dFVF9USU1FT1VUIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9XR0VUX0hUVFBTIGlz +IG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9XR0VUX09QRU5TU0wgaXMgbm90IHNldAojIENPTkZJ +R19XSE9JUyBpcyBub3Qgc2V0CiMgQ09ORklHX1pDSVAgaXMgbm90IHNldAojIENPTkZJR19VREhD +UEQgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1VESENQRF9CQVNFX0lQX09OX01BQyBpcyBu +b3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfVURIQ1BEX1dSSVRFX0xFQVNFU19FQVJMWSBpcyBub3Qg +c2V0CkNPTkZJR19ESENQRF9MRUFTRVNfRklMRT0iIgojIENPTkZJR19EVU1QTEVBU0VTIGlzIG5v +dCBzZXQKIyBDT05GSUdfREhDUFJFTEFZIGlzIG5vdCBzZXQKIyBDT05GSUdfVURIQ1BDIGlzIG5v +dCBzZXQKIyBDT05GSUdfRkVBVFVSRV9VREhDUENfQVJQSU5HIGlzIG5vdCBzZXQKIyBDT05GSUdf +RkVBVFVSRV9VREhDUENfU0FOSVRJWkVPUFQgaXMgbm90IHNldApDT05GSUdfVURIQ1BDX0RFRkFV +TFRfU0NSSVBUPSIiCiMgQ09ORklHX1VESENQQzYgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJF +X1VESENQQzZfUkZDMzY0NiBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfVURIQ1BDNl9SRkM0 +NzA0IGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9VREhDUEM2X1JGQzQ4MzMgaXMgbm90IHNl +dAojIENPTkZJR19GRUFUVVJFX1VESENQQzZfUkZDNTk3MCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZF +QVRVUkVfVURIQ1BfUE9SVCBpcyBub3Qgc2V0CkNPTkZJR19VREhDUF9ERUJVRz0wCkNPTkZJR19V +REhDUENfU0xBQ0tfRk9SX0JVR0dZX1NFUlZFUlM9MAojIENPTkZJR19GRUFUVVJFX1VESENQX1JG +QzMzOTcgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1VESENQXzgwMjFRIGlzIG5vdCBzZXQK +Q09ORklHX0lGVVBET1dOX1VESENQQ19DTURfT1BUSU9OUz0iIgoKIwojIFByaW50IFV0aWxpdGll +cwojCiMgQ09ORklHX0xQRCBpcyBub3Qgc2V0CiMgQ09ORklHX0xQUiBpcyBub3Qgc2V0CiMgQ09O +RklHX0xQUSBpcyBub3Qgc2V0CgojCiMgTWFpbCBVdGlsaXRpZXMKIwojIENPTkZJR19NQUtFTUlN +RSBpcyBub3Qgc2V0CiMgQ09ORklHX1BPUE1BSUxESVIgaXMgbm90IHNldAojIENPTkZJR19GRUFU +VVJFX1BPUE1BSUxESVJfREVMSVZFUlkgaXMgbm90IHNldAojIENPTkZJR19SRUZPUk1JTUUgaXMg +bm90IHNldAojIENPTkZJR19GRUFUVVJFX1JFRk9STUlNRV9DT01QQVQgaXMgbm90IHNldAojIENP +TkZJR19TRU5ETUFJTCBpcyBub3Qgc2V0CkNPTkZJR19GRUFUVVJFX01JTUVfQ0hBUlNFVD0iIgoK +IwojIFByb2Nlc3MgVXRpbGl0aWVzCiMKIyBDT05GSUdfRlJFRSBpcyBub3Qgc2V0CiMgQ09ORklH +X0ZVU0VSIGlzIG5vdCBzZXQKIyBDT05GSUdfSU9TVEFUIGlzIG5vdCBzZXQKIyBDT05GSUdfS0lM +TCBpcyBub3Qgc2V0CiMgQ09ORklHX0tJTExBTEwgaXMgbm90IHNldAojIENPTkZJR19LSUxMQUxM +NSBpcyBub3Qgc2V0CiMgQ09ORklHX0xTT0YgaXMgbm90IHNldAojIENPTkZJR19NUFNUQVQgaXMg +bm90IHNldAojIENPTkZJR19OTUVURVIgaXMgbm90IHNldAojIENPTkZJR19QR1JFUCBpcyBub3Qg +c2V0CiMgQ09ORklHX1BLSUxMIGlzIG5vdCBzZXQKIyBDT05GSUdfUElET0YgaXMgbm90IHNldAoj +IENPTkZJR19GRUFUVVJFX1BJRE9GX1NJTkdMRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVf +UElET0ZfT01JVCBpcyBub3Qgc2V0CiMgQ09ORklHX1BNQVAgaXMgbm90IHNldAojIENPTkZJR19Q +T1dFUlRPUCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfUE9XRVJUT1BfSU5URVJBQ1RJVkUg +aXMgbm90IHNldAojIENPTkZJR19QUyBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfUFNfV0lE +RSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfUFNfTE9ORyBpcyBub3Qgc2V0CiMgQ09ORklH +X0ZFQVRVUkVfUFNfVElNRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfUFNfVU5VU1VBTF9T +WVNURU1TIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9QU19BRERJVElPTkFMX0NPTFVNTlMg +aXMgbm90IHNldAojIENPTkZJR19QU1RSRUUgaXMgbm90IHNldAojIENPTkZJR19QV0RYIGlzIG5v +dCBzZXQKIyBDT05GSUdfU01FTUNBUCBpcyBub3Qgc2V0CiMgQ09ORklHX0JCX1NZU0NUTCBpcyBu +b3Qgc2V0CiMgQ09ORklHX1RPUCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfVE9QX0lOVEVS +QUNUSVZFIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9UT1BfQ1BVX1VTQUdFX1BFUkNFTlRB +R0UgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1RPUF9DUFVfR0xPQkFMX1BFUkNFTlRTIGlz +IG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9UT1BfU01QX0NQVSBpcyBub3Qgc2V0CiMgQ09ORklH +X0ZFQVRVUkVfVE9QX0RFQ0lNQUxTIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9UT1BfU01Q +X1BST0NFU1MgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1RPUE1FTSBpcyBub3Qgc2V0CiMg +Q09ORklHX1VQVElNRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfVVBUSU1FX1VUTVBfU1VQ +UE9SVCBpcyBub3Qgc2V0CiMgQ09ORklHX1dBVENIIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVS +RV9TSE9XX1RIUkVBRFMgaXMgbm90IHNldAoKIwojIFJ1bml0IFV0aWxpdGllcwojCiMgQ09ORklH +X0NIUFNUIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VUVUlER0lEIGlzIG5vdCBzZXQKIyBDT05GSUdf +RU5WVUlER0lEIGlzIG5vdCBzZXQKIyBDT05GSUdfRU5WRElSIGlzIG5vdCBzZXQKIyBDT05GSUdf +U09GVExJTUlUIGlzIG5vdCBzZXQKIyBDT05GSUdfUlVOU1YgaXMgbm90IHNldAojIENPTkZJR19S +VU5TVkRJUiBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfUlVOU1ZESVJfTE9HIGlzIG5vdCBz +ZXQKIyBDT05GSUdfU1YgaXMgbm90IHNldApDT05GSUdfU1ZfREVGQVVMVF9TRVJWSUNFX0RJUj0i +IgojIENPTkZJR19TVkMgaXMgbm90IHNldAojIENPTkZJR19TVk9LIGlzIG5vdCBzZXQKIyBDT05G +SUdfU1ZMT0dEIGlzIG5vdCBzZXQKIyBDT05GSUdfQ0hDT04gaXMgbm90IHNldAojIENPTkZJR19H +RVRFTkZPUkNFIGlzIG5vdCBzZXQKIyBDT05GSUdfR0VUU0VCT09MIGlzIG5vdCBzZXQKIyBDT05G +SUdfTE9BRF9QT0xJQ1kgaXMgbm90IHNldAojIENPTkZJR19NQVRDSFBBVEhDT04gaXMgbm90IHNl +dAojIENPTkZJR19SVU5DT04gaXMgbm90IHNldAojIENPTkZJR19TRUxJTlVYRU5BQkxFRCBpcyBu +b3Qgc2V0CiMgQ09ORklHX1NFU1RBVFVTIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VURU5GT1JDRSBp +cyBub3Qgc2V0CiMgQ09ORklHX1NFVEZJTEVTIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9T +RVRGSUxFU19DSEVDS19PUFRJT04gaXMgbm90IHNldAojIENPTkZJR19SRVNUT1JFQ09OIGlzIG5v +dCBzZXQKIyBDT05GSUdfU0VUU0VCT09MIGlzIG5vdCBzZXQKCiMKIyBTaGVsbHMKIwpDT05GSUdf +U0hfSVNfQVNIPXkKIyBDT05GSUdfU0hfSVNfSFVTSCBpcyBub3Qgc2V0CiMgQ09ORklHX1NIX0lT +X05PTkUgaXMgbm90IHNldAojIENPTkZJR19CQVNIX0lTX0FTSCBpcyBub3Qgc2V0CiMgQ09ORklH +X0JBU0hfSVNfSFVTSCBpcyBub3Qgc2V0CkNPTkZJR19CQVNIX0lTX05PTkU9eQpDT05GSUdfU0hF +TExfQVNIPXkKQ09ORklHX0FTSD15CiMgQ09ORklHX0FTSF9PUFRJTUlaRV9GT1JfU0laRSBpcyBu +b3Qgc2V0CiMgQ09ORklHX0FTSF9JTlRFUk5BTF9HTE9CIGlzIG5vdCBzZXQKIyBDT05GSUdfQVNI +X0JBU0hfQ09NUEFUIGlzIG5vdCBzZXQKIyBDT05GSUdfQVNIX0JBU0hfU09VUkNFX0NVUkRJUiBp +cyBub3Qgc2V0CiMgQ09ORklHX0FTSF9CQVNIX05PVF9GT1VORF9IT09LIGlzIG5vdCBzZXQKIyBD +T05GSUdfQVNIX0pPQl9DT05UUk9MIGlzIG5vdCBzZXQKIyBDT05GSUdfQVNIX0FMSUFTIGlzIG5v +dCBzZXQKIyBDT05GSUdfQVNIX1JBTkRPTV9TVVBQT1JUIGlzIG5vdCBzZXQKIyBDT05GSUdfQVNI +X0VYUEFORF9QUk1UIGlzIG5vdCBzZXQKIyBDT05GSUdfQVNIX0lETEVfVElNRU9VVCBpcyBub3Qg +c2V0CiMgQ09ORklHX0FTSF9NQUlMIGlzIG5vdCBzZXQKIyBDT05GSUdfQVNIX0VDSE8gaXMgbm90 +IHNldAojIENPTkZJR19BU0hfUFJJTlRGIGlzIG5vdCBzZXQKIyBDT05GSUdfQVNIX1RFU1QgaXMg +bm90IHNldAojIENPTkZJR19BU0hfSEVMUCBpcyBub3Qgc2V0CiMgQ09ORklHX0FTSF9HRVRPUFRT +IGlzIG5vdCBzZXQKIyBDT05GSUdfQVNIX0NNRENNRCBpcyBub3Qgc2V0CiMgQ09ORklHX0NUVFlI +QUNLIGlzIG5vdCBzZXQKIyBDT05GSUdfSFVTSCBpcyBub3Qgc2V0CiMgQ09ORklHX1NIRUxMX0hV +U0ggaXMgbm90IHNldAojIENPTkZJR19IVVNIX0JBU0hfQ09NUEFUIGlzIG5vdCBzZXQKIyBDT05G +SUdfSFVTSF9CUkFDRV9FWFBBTlNJT04gaXMgbm90IHNldAojIENPTkZJR19IVVNIX0xJTkVOT19W +QVIgaXMgbm90IHNldAojIENPTkZJR19IVVNIX0JBU0hfU09VUkNFX0NVUkRJUiBpcyBub3Qgc2V0 +CiMgQ09ORklHX0hVU0hfSU5URVJBQ1RJVkUgaXMgbm90IHNldAojIENPTkZJR19IVVNIX1NBVkVI +SVNUT1JZIGlzIG5vdCBzZXQKIyBDT05GSUdfSFVTSF9KT0IgaXMgbm90IHNldAojIENPTkZJR19I +VVNIX1RJQ0sgaXMgbm90IHNldAojIENPTkZJR19IVVNIX0lGIGlzIG5vdCBzZXQKIyBDT05GSUdf +SFVTSF9MT09QUyBpcyBub3Qgc2V0CiMgQ09ORklHX0hVU0hfQ0FTRSBpcyBub3Qgc2V0CiMgQ09O +RklHX0hVU0hfRlVOQ1RJT05TIGlzIG5vdCBzZXQKIyBDT05GSUdfSFVTSF9MT0NBTCBpcyBub3Qg +c2V0CiMgQ09ORklHX0hVU0hfUkFORE9NX1NVUFBPUlQgaXMgbm90IHNldAojIENPTkZJR19IVVNI +X01PREVfWCBpcyBub3Qgc2V0CiMgQ09ORklHX0hVU0hfRUNITyBpcyBub3Qgc2V0CiMgQ09ORklH +X0hVU0hfUFJJTlRGIGlzIG5vdCBzZXQKIyBDT05GSUdfSFVTSF9URVNUIGlzIG5vdCBzZXQKIyBD +T05GSUdfSFVTSF9IRUxQIGlzIG5vdCBzZXQKIyBDT05GSUdfSFVTSF9FWFBPUlQgaXMgbm90IHNl +dAojIENPTkZJR19IVVNIX0VYUE9SVF9OIGlzIG5vdCBzZXQKIyBDT05GSUdfSFVTSF9SRUFET05M +WSBpcyBub3Qgc2V0CiMgQ09ORklHX0hVU0hfS0lMTCBpcyBub3Qgc2V0CiMgQ09ORklHX0hVU0hf +V0FJVCBpcyBub3Qgc2V0CiMgQ09ORklHX0hVU0hfQ09NTUFORCBpcyBub3Qgc2V0CiMgQ09ORklH +X0hVU0hfVFJBUCBpcyBub3Qgc2V0CiMgQ09ORklHX0hVU0hfVFlQRSBpcyBub3Qgc2V0CiMgQ09O +RklHX0hVU0hfVElNRVMgaXMgbm90IHNldAojIENPTkZJR19IVVNIX1JFQUQgaXMgbm90IHNldAoj +IENPTkZJR19IVVNIX1NFVCBpcyBub3Qgc2V0CiMgQ09ORklHX0hVU0hfVU5TRVQgaXMgbm90IHNl +dAojIENPTkZJR19IVVNIX1VMSU1JVCBpcyBub3Qgc2V0CiMgQ09ORklHX0hVU0hfVU1BU0sgaXMg +bm90IHNldAojIENPTkZJR19IVVNIX0dFVE9QVFMgaXMgbm90IHNldAojIENPTkZJR19IVVNIX01F +TUxFQUsgaXMgbm90IHNldAoKIwojIE9wdGlvbnMgY29tbW9uIHRvIGFsbCBzaGVsbHMKIwojIENP +TkZJR19GRUFUVVJFX1NIX01BVEggaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1NIX01BVEhf +NjQgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1NIX01BVEhfQkFTRSBpcyBub3Qgc2V0CiMg +Q09ORklHX0ZFQVRVUkVfU0hfRVhUUkFfUVVJRVQgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJF +X1NIX1NUQU5EQUxPTkUgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1NIX05PRk9SSyBpcyBu +b3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfU0hfUkVBRF9GUkFDIGlzIG5vdCBzZXQKIyBDT05GSUdf +RkVBVFVSRV9TSF9ISVNURklMRVNJWkUgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJFX1NIX0VN +QkVEREVEX1NDUklQVFMgaXMgbm90IHNldAoKIwojIFN5c3RlbSBMb2dnaW5nIFV0aWxpdGllcwoj +CiMgQ09ORklHX0tMT0dEIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9LTE9HRF9LTE9HQ1RM +IGlzIG5vdCBzZXQKIyBDT05GSUdfTE9HR0VSIGlzIG5vdCBzZXQKIyBDT05GSUdfTE9HUkVBRCBp +cyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfTE9HUkVBRF9SRURVQ0VEX0xPQ0tJTkcgaXMgbm90 +IHNldAojIENPTkZJR19TWVNMT0dEIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9ST1RBVEVf +TE9HRklMRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZFQVRVUkVfUkVNT1RFX0xPRyBpcyBub3Qgc2V0 +CiMgQ09ORklHX0ZFQVRVUkVfU1lTTE9HRF9EVVAgaXMgbm90IHNldAojIENPTkZJR19GRUFUVVJF +X1NZU0xPR0RfQ0ZHIGlzIG5vdCBzZXQKIyBDT05GSUdfRkVBVFVSRV9TWVNMT0dEX1BSRUNJU0Vf +VElNRVNUQU1QUyBpcyBub3Qgc2V0CkNPTkZJR19GRUFUVVJFX1NZU0xPR0RfUkVBRF9CVUZGRVJf +U0laRT0wCiMgQ09ORklHX0ZFQVRVUkVfSVBDX1NZU0xPRyBpcyBub3Qgc2V0CkNPTkZJR19GRUFU +VVJFX0lQQ19TWVNMT0dfQlVGRkVSX1NJWkU9MAojIENPTkZJR19GRUFUVVJFX0tNU0dfU1lTTE9H +IGlzIG5vdCBzZXQK" | base64 -d | tee .config + +make ARCH=x86 +make install +mv _install ../filesystem +cd .. +rm -rf busybox-1.33.2.tar.bz2 busybox-1.33.2 + +cd filesystem +# Creamos estructura de directorios extra que se necesita +mkdir -pv {dev,proc,etc/init.d,sys,tmp} +mknod dev/console c 5 1 +mknod dev/null c 1 3 + +# Archivo de bienvenida +cat >> welcome << EOF +Bienvenido/a/e a GNU Fanta Linux +EOF + +# Archivo etc/inittab +cat >> etc/inittab << EOF +::sysinit:/etc/init.d/rc +::askfirst:/bin/sh +::restart:/sbin/init +::ctrlaltdel:/sbin/reboot +::shutdown:/bin/umount -a -r +EOF + +# Archivo etc/initd.d/rc +cat >> etc/init.d/rc << EOF +#!/bin/sh +mount -t proc none /proc +mount -t sysfs none /sys +clear +cat welcome +/bin/sh +EOF + +# init ejecutable y owner root +chmod +x etc/init.d/rc +chown -R root:root . + +# comprimimos el root file system +find . | cpio -H newc -o | gzip -9 > ../rootfs.cpio.gz +cd .. +rm -rf filesystem