#!/bin/bash
export STANDALONE=yes
export ENVIRON_DEFAULT=yes
export HOST=$(uname -m | sed -e 's/i.86/i386/;s/arm.*/arm/;s/ppc64.*/ppc64/')
export PRETTY_PRINT_STACKS=no
export ARCH=arm
export ARCH_NAME=arm
export PROCESSOR=cortex-a15
echo BUILD_HEAD=
trap 'rm -f $cleanup' EXIT
ERRATATXT=`mktemp`
cleanup="$ERRATATXT $cleanup"
base64 -d << 'BIN_EOF' | zcat > $ERRATATXT || exit 2
H4sICIvjOl4AA2VycmF0YS50eHQAvZE/b8IwEMX3fIqTMtPWTnAabwywtF27Ro45iEXOifwnIt++
VoFKRS1VF9769O737i5ffJdc3NZf/k/KctADkQlwlgQy1lAkOKCz2MOVJPhIpNyckoxDh0fYmr0J
PjkTOm8Gex25JLP8HgvVWOwqxWtRl0+nwuVD/Uulk68ciVLCy/ubhJGihI05wmrldFdw0LPuMd0o
2oAOlNbofVa1oi1FwZh6Xl4YjN1ifA5PoMczbE2xVwEhdAjrVwZjN3sIhhLD4d74BPOZ0JVabjVy
3hZfGP4fzC5t4lTqDMbCYaJm9No0kx5jM9j7/OMDNZHCJsYCAAA=
BIN_EOF
chmod +x $ERRATATXT
export ERRATATXT
bin=`mktemp`
cleanup="$bin $cleanup"
base64 -d << 'BIN_EOF' | zcat > $bin || exit 2
H4sICNtQO14AA2dpYy5mbGF0AOy9f3hV1ZU3vs+9N8klXJITEjUFKgcEjTbIBUEjRblAsNCgXJKA
qFSCJChvgcQkWOzrTG9IwB8F3yigrdrhWtsZx+l07I93puNM+15BbcdhLFZrrbWdc+7hGCQKscWW
WuS+n8/e+yQ3lwT6zvN9n+/7R87D5eaes87ea6+99tprrb322ocO7fOm/SLpjMHnD7/elR5jJ52A
SDpBMe3dInyPEaJ3Kj5B8cMj7xeL3rFB0StE3BVCjPv5GNG7R+zzhOj2us19Xre1z/v7CtH7dJHo
HR8UR83pJccCl+13zenGsa14Zk6PHBNWsbNYJNK/6pvkNvd96UNxKCl//yLn989yfr+a9TvQN93h
30V9Sac4P+nGi41j/G0YSdcsPHKM9/sywdji3wZiS/GpOB6IJZ82YqFnp3ni2V3pGwB7cm6xa1hJ
NxCtdsXkmCuiuz0xvdMTh76cDj37tcMXZqY7w8JPGhremJJ0jblJ138vMn3hewrnARgRTfaXK6xu
bxmfi1rQMxk0hDFW0TZZWgj6GqLVLRaikPUL03aFifrM3fIdQ9Q6If+ZNRiPm8flud8877MuYUZp
GP9ebhnHMplxrD+/v57kGTAeYAyRdPF9tG/BJkfEk44RSzonG/7DCTSA1h3/4ZQ/u8ubgDZNsHd5
Rssh7wstx9/h+4GEYQtTuKu6enoCZrVbIBbbZnGzkwwkndZC0VsgVsl2lAvhFljkvWo33wzZT+FZ
puoFlzhNTIDuiRc90bJX4jSxqtOdhTKDDfm2KvO6/jI/J8tc6aA94yYcqkkfiv2H8ybwPCRx/Jo3
4dCudKjva4eX6vrCpqpzSFj7a54F+EShONpuCfcE2t5XV+wGrGqXbY83Frts++KtAfBD0j35JOgR
r3aN7qRjgQ6Bhmo30ILPl6e9XwHalB26Pt1dGD5mXhY+VhUd7UXxaQRdRcx2/+Y80RsQ4mjtWDW+
osBfRPd6+cAvJOpA7650COPx95nMywL0CIJuN4FuVdHxnhHtTM8UdS7LPIq+ilcXu6LFdgMx1I0y
r9Flfl6XGUKZBSyz5d50gV9mQ9LNTySdaMNoLwXadl9Wfgx86JK+YdA0ao733gbN8sG/Yd1PFaBZ
4Ms/fC+bbm+CBhboNgV0mwm6sb6gqHdezWSeSSaFS9wDyWr3FvTjKNm2pHMe8AtNerSHOIZmgLes
BWPHTm92vj4Z9STus4PWvfapSx72OB7Ip7PQTiPKsV5+jG0hHXfmi95ZoEUweq99cvpuCUu+Ihxh
CoWC2wa4oej6TCbz1u9KFJ1Aj0JJJzx/HbR5CnwfRdk+XUgTQ1yU3j9K9JL+ArQvAG2HpYfmuUaM
rRdAQ9LuoaBhn4t+6VGgn7XXK8AYfAT4sY8WPx1w2b/sK9KRfcw+GyX7NOns120omPFYTynaT9zK
gFtU8wlpQJ74gYbLPwtP3IN28xnvv4PfW/kb5RkNO8Z+gL8N/p24bz9kyNFIbJpXZgi3byF4b/Gu
d8Pg92rwO9tKHBeBViK1B7Ra7Y4W4q3FVQH3W5w7bCVTv4H5Q1i2G3m+0w7ZnYcjqDNkJQ6HrI7D
H4Gnb5ayie8vd8N4n+MtCDwPgEciqZq0hbYFJu20gZMTEwHvZCbz3Bjw6lKzJp255oA7L3oAcnW3
V4F2x6pCss5QValHOX4FZOYE4E5Y4hvMZHonAd8w+kfEvuZBrnph3YfV0UAsVhWIBZck3UgL5HhW
WzPLlrmsMxQN2qKFPHijG0Ef/DPG9p7xGDsYTwZ451sYTwkR/oCwPxi7zwvGQrYQezwDuAX7LPdj
0PNbOe/sy3qnC+9QDvG92B0hl+9S7lDe9JmQf6mkI8Rej/0LHnjLMGNpy4qlJ5rPU05xfNlBM2Y/
PxZ/l+ywxZES4PqXbh5wnYg+3SjEyxNK8cycnzbErc4d4BEruhC0qcO8mhnXCfrcYyg+/mmY/bp3
UL8eMQb61S45d7/Gy4rdGObWpQL0R1uTGKNsJ3m/v+9ioGcsBBzqKduf4Zhlf/3aVOM5gHFMOcN+
533OV/8JGlZk9euu05nevwO+VRr35BC4V2bhPiUH96BYfU7c79S45/Ld94BnqOp8L6T5rToLr9uB
13bgQpkYby+W8wHnDfTHUcqnAi0n/93MGbOgJcfp7/FuTUT0GuCdBHinvkO4LCeQUPOPL4NPQAaH
Ju2wU5eM9TjnQ2YVFubU8V1dxwfUC/R7qOO5X6OOmaiDciIMuH/Bb9w/GothdOsxQb1G9hvGA9vO
PpDthy7h6yeN54mjg+CmHXA5HudZ+5VuZT3sBWZ0AsdSz7C2pVOXBL2bc3SovvmbHIw5L0IdC/Ps
GPTzZHwyV0AnEHEHdBsX0fN5GGM3AnlqYvzalF/QW+4v41wbdy20n3gQh9dnFZ+BwxT0lVHVKfW/
APo4cVGnxz7iO4aod/keeab/PfGwJ0p29xhmR1qUdPYEKH91WSeXdcp2DMJLyxTqlvJ91OcCx5No
H/ULE20so96ANr4OnCH/nSNlA+0kH5Rl6S0myixDW8tR7jd1WyE/nA/KFG8F705K+ZT50jJ38aqA
WwA5RbkhrN3AcW8P54fAjO098zV9ijh/op15Pp18fgaeweXb0abtsk1n4KDbtTIv3WOgnPcxn/L9
YEuBLaKPesEZ2+1TBZ1eD3A8FdgHPu6G/BFp6u0YV5L/guRxzJd2QNkX0GN73xzLvx/yaAP0nMr0
ZvD5MWRmFDzxM1Mc9WXnBdPDxz4DvL41eZ8Xnx6QtsE38PfY6YXHkvieie9A8Xypm9NGCVnbXOMy
fPBNW8W3LczikmOGSLlm8cA9gToGfcQuzJ27vLnoIyGWYe7hd7EzEe+VigRgmh3qUWMwbirS+7yi
vmed/9P3Df3+EefM90P2Dek/p4ygLuMbOWWE/8z3Q/r9xpz3/9z68/X7U/6L7xfo9w/bOe+b07xp
F2A84vOHT2LciQ7w09cOh/A91+7Q5XVA50m6T8t3YU9irg6JT7qhQ9ePzUzcdURYD0EuP+TNjT3k
xeLgLwv4RHd5ixvAx9B1ZjXs8qqA29zYLjzfJeeEasBMNPPSJvQR8O64WSbsuYbnjxDHFGQj38kD
3pnMr4+cwTNZn9OUoRWQnScCscX4iNkiIaqfOQbdNXOiyIhR1mEcSJsrW+aJ2CGvEGNTiPrSIMdp
7EO0td7FvdI/SdmddJMhNc+J6IveC7Db8yALROxFb0gZhHoW1xa7b18BWRRX9s1PvmC4nB8pm5be
VqxsGegYUi4RB/NROVdSflBOFUHeRJ6HPhH9mWdBjxgl6ojbOCP6W4zfOsjbOuImdVLYe4Uhc+dh
wkqdUiQNyM0A2j0uzDkpOt/je1q3LvTLA5xD+fp72qSsO5by0qBhIJpIy2e4FyS9cP9t3M+PLoVu
dau7EHaFMO89T0S3e8PJK9LgJzca7uIFigbUW0kH6iFLZ2JeZrnQYaWshizOls/0mUQmdfa8CTpT
5v4T/SRR6HQikeb7lK3C2gbadIF/hscB86gr+xy0ZD2D+hx6xM+lfKynDlwo+4q4xDq9oea7+6mX
D9HXtOHZLqMlYdN+hU02yH4X0UOS7py/DOuk1BVOgd4FmHPmCnFZWNzo9K3dB30M9I8nZV8Sfrb8
vtEJGTt67hTiMcNMYJyJo4V4hneMAv18PZ7JOizOo6o/+f4J6Yu4UdpkIr7fmwQ41mWAR96Rz+rc
CeQF64A731qQXoPfnxC1pReyPOsQeK4WPFJbGogmS9BXJSE1h+D9DwbxX6Hkt44AbcmL8PccfE8h
Xa1Dsq1yPLHfNB3AX2f1JRiAY1sN6N3X2HVp8GAp37sG9WF8lMp5WvL0Ke8aC8+tgecRqYMBN90m
/vbbBbhO0Gg3dO7HotC/2YaAnex4D/1aZG9z/tI+/g55m3buCeiQPr4/Bb4/k7ab+i3EqpJXUAb7
JYn7hdLfVFt6ALQwrD7ZZtyTcuNHcixtS7NvaF89xnJkPyXSj+LvKccDMY4TEa9LC+0DMnLGwnjY
DyL6hqzb5DjHmOGYoJ6dL3UijAsTdZgYC9H9Hp8bqaXpUKrLC/MZ9L6w1YUx0yfL6JN9v8K9cCh9
x+8DlB9oSTq/DGDcxRfZhP81bOaQtjllvRyPFsch6m05MLhePouvSHOchjFGlf77Rj89qTuyDc+z
fLHXhmy5me9b9JcNVb45RPmie1D5/44y6VMKgI7BuKJlXnSP9KfRl2SBnvQjVWK+mpWsSYfNX3nV
YrRnWr/yFlujvZg52iPvhhKPe+YW4VYlYdtDRs9tGe39ZJ/S5/NM5a8ZBf3rlcmid250PMbCCsfg
fCLqDSVnXuupsugf2H+4CuWC3peBH6RvbzLKX4x3QhbqIN9Ek6VGNBggXSaiPwrt62Bz3+p++/iD
9is2yxRvFaI++omMVBvo8DPYEIBJ7T9cBPlButBGE6mkWy3Ge4XAL4a6I9HHPZF6ybsd49DKGWvZ
PpQo5rUrGmrSs6I13vucO4FbFLiQ/qxzK/ojSj+teeCwYb3kBdEGyMyjrCsU7Zb9eaHsq27dVwmP
9QvrgBcR3e/CNpZ9xDEREYl3CzTsVot2OO6biUGwsAe9CGjjv1ONssLRbd4PwHtsU4BjNpr8XgDj
NxL9svdd4hIlzG75znHpU6mVvkWfB0T0tTR5op8POL9oH+IE8IJZGD4WSv7Ku0aI58gv7JNYdPR5
1wLXud01afLCqAaOh2rX5wH0ifRRloMHAqlf9Pj3eY++JD43Ui8dNvGcPEH+YNn0D8e0j4vzwbQo
y3nJCzTcB3m0UvLHqCF4YNSfwQP035EPwqATeWaUnF9f8t6BLDuXL41+PRFrxTzhpdF2LwU6su3k
j0+DP+aCP97R/mrSkr4M0jbXV10Beor4zzgXubMwtqIYU5UWfWQrnB+gbUHIlGgiSTkmfYBC8xp9
jeSfWYAV8QOe8q8tlP61So6l+OtePuuFLGN5lEdP4b0I+wE8WiFq0kZDV/pGyBMLOE/F8wrgTF87
51Sjm3rVGyhzRzqIcr4IHgl8sO/RrwEPMcGIVf4/8jn0SfX9g0+eHe7Z8QN/J8er3+f6/P/dtj/n
04J2zzpH2ytynp/I+vtNfl9oxLqz7t3h/437BnggEAMPYDxXJGq8aVyriSVLwP9BYb3ucexHIYdG
qTWcByhTQtZCOxTdZhvmCfDzfDxb7sKufozzV7Bhh30BeG4KeH09xscsyEUhx3TKq8TfZ9NzzuB/
yMNZGC+Uh4P4n3/H35DyrRK/50kZB/62b8F8eYs3JTXe2yp1rBXu7fguaLkXdlSSOu0ZcI0ark7D
FQKuoOXH7pvWj20jtuvILIyjcAo6MuzHT0FusN6LUF+FdYvHZ1M4d5mPHn71Y/VsAp+JW9T6AWTP
FHO8Z2HchaxHDwuUM1rsepf04LsX6PKK6euOb5d98Am/LSngh3enavwu0vjxPR8/lke7docu5+PT
ah0hZN2b9u0a0pF2lCFAS/QJZWMuLanXZNOzV5fDMp6CDjeVsgu/qasRR6u7xjsOGLaJ+Ph47J+X
dNZpXN46TT1QzQmEy6Xlm5pehwDHvjmhy8a84L6py86DfC+MK1pZeN9/99/0u88DjjBmXNXBMiJi
2rvhZ6d5IcjfEORvGPI3HP1ymvpFGG17GPiF6HcH34Vs5Xfnh34/rjFIXZS+Q+13/4vfwJZHGX9R
VJP+iwuTmLNj6Q7qwpCZvMffR/JFL+e7ofz5xcBHvhcb8OWzzIjGyy+D+NlXjfb+W07Zrw5Vtq1s
LVPjnZzHeZD2+zTvQvQV2x3lOEVdl8BeNaIHD9PXK6K3pYOi1DXsg3mB1M6Akdo5ljoG9YPoTLY7
mOZ7InrQ+x3miYujS2FLHPS45kE7u59uum0vzBLu4TLhnqAfAHYi/dNzJimfAObL3iOwUd83RG92
f3A+rDRr0q/ieUoIt1L7qL+fyeoXXT79uLB9Dsu1bPBiSOpKaI916LCvD9GmoB0xeA38kNe/Bk77
JMr1RNqav+u3Ncn/hvXqYf42LNeTPo3sMiylu/jlGNEFqJPwsO2i6TPhUY4Pez7rSkHPg2yMpBK2
EY2B7pQ9cZfr5VyjGKXxMcQHxMn5g/RbLLBzcfijlAcYR1n36Qsgr8v1E5TNegOpWJp1/39Zz53m
8Xf62y/LrZN+gQHbmj6ROq6JjAvk9EHQUnEeg+IXcG8o37PR8jPQ9Ub3Yr9/4z87TJ1E9fEKzi3j
+vVqmzrPb2S/fULS+TeHKTtpI7FP8oAPjN8HgtGYTR9KKJaw8+Kddr7y3UidketXpBPXHvrpkzoN
nWw16VCYB72TPgJDPvu9d1zTZjjbMLvv8+U7C9KkXcBSfW+YLvV059RZeKZAv2dE56cDqQ7bsPje
7zz2oWGend/GDMFv7K+IGreYP9A+6wPgELfZvlxe+ki2b3l/3AgYZA7Lp18+YHWo8lKvHmashpEa
YqxQd4wmbMKepM2fakVdywG7zjuR8xv8N4709Onj18n+MFKvoY7VMl6DYzpAXR79dVL2/2DezJYp
5MfB/sC+Qf6Yafj7kyjzU/g+T/oHlB/mfMVPrlrrRf1Wn7cz2mFL2uJZ1FyQDj7fad9pHX+H+s/v
oePQHyKi68YSv1x5Bbmk/HGAPcIxEdXjNOs+fTf094AORw9eZbjK16F8cbnjgmu8Qjwq11nHqbHh
qHFY68q1d+s1L2iqcXIN7kk6NSy3z5O8xD5bpOXBrdJPki/aHLnmYp/yjNhvYRPboPWtTjC63f4Q
dAqJf5J1HUY5w/tBOtLE/YT2IYYbMH4xziLAG7inTeDNuc2IviFl5TrWy/Vi2n/224fJb7RZiBPH
9ahUIn0ZdZXUQbdIJEvwrj0mLscn+vFVKWcYS8E1CsYncAznsbyGF4ErfV6nlX8Xc9yfdKxRUI+H
iPlqz2XQTWdJv2Ac/fY6xsGiQCC+KHCx9ikaJuMztNwhj0uZs1rPK7VcW+kE7R6AfW0bcdAz2gW9
d2Ga9nZQ98VMOcbqHDn27Q9Qx4fg91ulrC2CrPVjh0zfV9qA+ftZ5UNV8kPxZx7q+6SMKTkB3fe3
sGmXyzLIa1InEQv7y+qVYzbu0saORF+U9jb9kd+k/iCq++EcwCXlvTj916W/xu/yeE06qP1vf0u9
C989Mt4i6dKXEQCND+F7HnXmrHH2coi+qbp+ns3l11DD494E+kRBkzmSvsvd5fSnbhHSt9+4NCR9
3sQ1CBshFN3jVeUJt0DHSEnbItrlfQf6XVh0pR9Gfex7ris8yntBQ+oWO3HfnLFH6qvmjC4P4/ho
dtnvGars6HnCZfnUS7LL/6ou/4tZ5X8pq/x23A/r8sMovzESkveHWwuFjkP56VZsEUG0M/gC+iwb
n59ofBYPg88Wjc/KLHxuycInjvvst+wyv6fLjA1TZoMuc35Wmddllflp3I/oNkbQxhfpy0C/+nX4
6wKsi2sDj+r6QkLJG9Yx1JrAM6AFdV6fZpQT7cv3eZQT2TKCsWrbDLVm1AW8MhyfkCeTMNaoF4uG
7TZ1YmNCY5pzdzl096f+BB0R83lG1LufBpx5voxfcdj2no/Vuu5l4D/zYuHyPcbRhcR2+4+n8J7g
e3HK/AfCYlE6gbrPGI+2knO+Xm1UJt34bAG8dnl3gM5b8wb03JDFNZlq92LItTzUPQ3lzYQO679D
eMLmiV1Htur+mU2/Id4hPpMAfzHgkxpWgD4Hs8qfrmGPAfZ8wI7PKvts+EzDe1A0ekfhnSK8s3Fp
IMY1CuraUk/keh31Yj2X7vb7fXVIrkn5/Z6n+/0T1N+jP5cyFvcMzi2ke1hsl/Eo96PtAcy/gVhC
6tqcl8yVQpbl+wAThMEcGKIeHlPzIPUA8ojQ7ZQ+zyH4CW0/Go5uT/+OaxLgK6F9ir5cohwLaX4K
p9AmQT8v2pAa7b02hK0X8W09lmUNLovlmDnlhFHO82exGYtVOegDKaPPWda3hyjLzCqLdiLHoG8r
ci71x/w/CozZfGVf1cC24vhewm9T1WGao73rTw2M8QVBZTu+KHJizXLsx7ON+6/i3TLUGTL3SN75
LMo3S1ScXDnjYPTf47muqv/mOoqPw7Uce9Yej/KU8+l48sf8Pf0yVcTq00YsWfqEULgOtZ5Yodv8
KZTl1+dCxlbr+1PZZn3fxv3V+v5E3OcaLeu6OKb4bBvqgX6jZFR/m3WfCcVL9BncAriNupy+gKL1
scAArcOg9W//NEDrnoDC/7/hvWcw7qajnzlPGrHJacP3u0NPakeZxBOy7jUjFtrPd7PnUJbJ9ddS
2ttihfR1h+bvsPOW77C71gu5Po6+OEy51wPYPNgw1KN8PIabo97+U+boPazbfESuqxL2F3ifMdd+
+8tM5TuIo/31oia9EmNfmHGuJ0JPmj82jnv/NoSd7r8vY8/1+1wvK8V7cdj39ZDdFsriGibHCsv+
pyHKsc62Ns14eMiXCOiyb/oe6EIzlR2P8h6e1+VIvQS/bxkmBupvQiruTPo1o115tEu4zunbH3xP
+SkTXm4sGPHZA9r5+FRCZ4zodkoejifdQvOhI1Xkc8aZYKwwviOG+ZLj/i9A5yN434qqMTQFcBWA
+QLum6k9XqRA8VkZnpfj2QRTvddMXsDzufo551+uX0b089vxPIa/77lUuDtfEjJuvPtK4S6O18gY
gkCK889yZ6Iw0jfYye9ttpNPiUkP9xhGiXszdMEvimRwqQ3YQIm7MJ4sXRdPBmtEjWfg90bUyTiV
lbBX7rKTwc+izIQokXhA5pZErKSxBO/GcI9xhpFo0lhIfIBjsSil/TRuqH4wJ5YcM6ePPWbOKz22
R7drNt6jfC9A/4DmHblxfjImbEanHTE7z+gbji1ph2TxyqzoQ/1xnSGLcbJjpd+iQMV9PSDL0vyE
++OyY88KMPamACaUBZMvdfMc2aTnp1Lgcc/Vwv3XAjUXM36R77JdCdR9+iPIIN3OP32UkfrOBvI+
6jlP2rn1klbxiecfi04/71g0rGUOYCvNvd5csdejnjAec+hJlFNl7vNCltKXe7LKPqzLrgVsH2hp
ojwT5ZXp8t7G86O4P6EwEKvEmOmnnZns52vSkfR7Gf3xbLF5jM8OQK5NEl1HhovzCN4EWYL3MmuW
qViWFrWumJcI2LQLwzL+Iulmr4kVxF7g2rmMYw3G8+xwdK8Xjt7XH5NlypisSXIPTr60s5NOQV/S
OdvawVA8ExK7ZdzfcH6Dre9D/tuMX/or2c/n0eZMcb09LuMXROpBxgW+FUrNTwuzW84vIfNbHu3F
kDD1mix5qrZE7nHg2pv1oDeUbyBaqPrhix8xjiLpfpgle+gXo14zOstf9rryyXA8GCe1DDLiCZs0
vmdTaCBOyre9qBcJyPbPdqUzmPffod5fLOT88Iez2PPkg3uuD7nSBzFo/lcy7quYx8JS7+9K5125
0GZswXd4T+wZMs7LKIy7Q/n4OKfCNnwgc2tHuji+PT11pbJJfiPjjVa45Bv6sdi2vJUJm+1jmxcX
id49lN2+Xx66L9vItv6D1G9WOB/K2KGkM1wbl84RbuO4wX7qa7XeeT7641q0ZyF0Bdq//X5j3Q//
iH6455pQ/305L4nBcihz+bY0x0LmhpRbbG1L+zErk+86c+8S6UBck7LdN7qiOyl9MvfsCrkFdyXs
YowNxlWzP0J6jVswJlB8xTNu3p5uRZuNz+6BffTX0NFvlG0fJc49NrLbRJzZR9HFAffQjYYct3Iv
T3wwT1F/ZcwJfar0tU6AnJ+CufvaMaL39UCN8/akGoc+ioCIGxV4vmGM0hfoD3HQPh9+Ju6/bdQ4
zwP31yfXOPd8MuS+vbZG2m2MpyyQvpNaQ8adx7uGjV0jnYvnJN3MvGWSzkERsLlHi3KK640WdLIJ
DaO9cnxfDJ7h2twEc7wXNOfbS4EDfRyxMUoPeA10ax+CL5o0X3T/MdP7A8jcH0IWThHjveLLkq4s
H2Vmpi9zWUemKJEuFgnwRBDyXtjEYQJ0nYKcuqehzuey9CzfNkib6EvR4lYL8dwFaPsTkBFlej2k
F2PXkDGHdfQvPaD3WhQ+nQWTzoK5VMMUcs/WBMCMHvAJfA5t+TLaUWZBJoFWC4sVDcbKOP8kyhvv
mRb3Nj3sfAr33r7KcEeFlqvYP8y59KcdRnmjpijaLEF5G0rEGfpb/aeF+3YOPWOannPxTiPouQF4
vDfnTLiZGm4m4G4G3BrAfX8IuEoNVwG4OOBWAK4B9d43fjDcfg13IeDo96gBnK/L3TdG2R7ZOsMa
+g+ir/s6QeHbFxiyHMbmG9brh0X0IbkO7cNQ1/TLGUovuONjFR+f3efcO/OpPGUnfP5EpveEjpP0
YyS5r8+Py7L/xnAZl7PsP69PR98Xcp7ifiyResxbVlyTLkY/HrJewRh5xemzDjp9DSnnkJVyluDZ
obWvOCd5b+1B57+zr1Px9GPc06RjdJZNBP/Y9KHach/fqhmjvT7reWcF7hupnemdqZ02fy+fXpPe
+XzS+cy8mnRfw36nDr/LUW9fYj9l9dHl8ndH+hB+m5gLC8RNGMerDMB2LMOzQ3iHMiokVhp9sf0z
IpAVXMN5s2GhI6zHvA8atjnhhNyHYTP2VMS+YodEqRdK7PbC8aRdx7YkUs7J2H5nlLSF6g3I6E4h
krtHodwwyqV/Fv89TH5+Czq9KR72VhyvSa+6E22KveLk23KdCjrFNo8xi3XzWOYBZwW/rQMOeX4J
cFqG37FJ4z36mA+JAw5ja6S/PVoHGfg8xnink4kfcBmzdAXGCN8/cqBYwlLPPtmm4pfzqVPZOyUO
YStuU/8ZFX3eZuzRocQrzipnvNeX+DHspJ3e34wWvTGh4nUO4O/r0d4a9ME7+HvW85AzxUL2V9RR
8qdi7WivskTJn4jotouiT0m5w7WygGnYedYeZ5Yx2ovOINxo7xIZnzrfHhMRvedDBp0t7q19rnDj
EwaPoe16DF1/MtO7BfMjdZeGIeC6NNxCwH0ecC2Aqx4CboOGuxpwawG3HnDPDgHXreGmA+5GwK0G
nD+O+kqLXd9GJ+xph/b0Q56RSqRl7Feqw4MMfNn+seFy7xT7hnCJ53faHBO5vpe5QXE0M0m4r2s8
DkcG8BDap3YV8IkAl1nA5Wrg0ufHRVu75TpSOccW+rAhus87oXWfTGPKNVpU/LGp/Z7cF8l1IK5r
cd3xzdgBuwB8nQ++pjwxh5j31PqaTX/ZUX7z95ELAjEbMpp1Za8b0UZmPW82HHAKrEccrvn4sXbk
U9qCIczV0Dd3QxZ0+nXj74sMKzBTxemKcYduO+CUczyjDMbGBrjvfRjcTIxbfz2IPl7RIFzfzxui
jqrXg+R+2Gi3d9HSpFP3Qk9PXUVPT3BplxNZ3OUEqrukrvP1UjUvrQEO1Pt36XlqOX5DGIDOkFvQ
UfJjXTb9inOy5r9r9fxH3SNT1CXnOc7NmSLoZLApnjqt+o33SbPFRUHXEGp+6yxiTGI8vQL17CHP
oO//MaD22VGvzoyBPYEynkX/j0E5E4DHq0Wcu1l33L2GdVcXuxOgJ1CPmnoiI2Pz+9fLYcN9LULd
CPdiat/hl05m5DwgYOPNBPywa0OziqXvrxxztOK5vR7j8R8+mZH7EoOgxX7Qn3Nq7jj6Vz2OPveH
TO92zH8PYC7kHJ0L9wMNVwe4/w64xDBw/6jhlgDuTsDd9Uc1l+fC/VTDzQMcfRQbhylvoYabDbjP
Ae62Pyqf2aQ1A/v/ty8fHPv9cyvhBM2HJW+/fvORnszm/S5hihtecn8udkBed8tn7Pf66470sO+7
jIQ97No99PTpo5l/IiF540OU8XNrh1wPuzT3Pj5HtL9c2pqm8hvEY7091CVoc/r6RBjj4t+p49Nu
hAzPXP48dNb96MuHoa8+lR7KdgprG9a+IOCyXF9vYLlKV97t3Qa+9Nf2cvUv4mV/JjDYj2sqm35P
QI0lxsHQR8P4l1juGs6fUU79QDnjVDmdw5bDdvi0Iv6Zzx1Q5dn0jT0kx8K8+IuSZhwrhdLnmXT+
GnSb+lvaR3u9cGz7kOsCB6Q83OtdqPHpk+vXyp/B+IL+umOqbtabueYFV9ZtPdTfVyKuZPgYXfe9
GWWfcz1XQDbS30g79Z9xfyg8xvw2c5TPTxkKD+5F/C3qX3wNbItPCrd9zAC/L9H8fvfvM71PYh75
65OK37fcsM31Y7OLY139NhjXU8nzlJ1V9OvEUs5noY+2NYeP1eC7+Sx7I6V/J8cvdonmx3qYQtk8
Kc7Ck9RRaXPJOQ12F3XVYCJg+3pqMGnYlpbxxDeSetwzo497+Q0P2OGG6+x8cbPDmMKK1GivTIjL
BOOOMS9WRFVsPm3hsNXpMA6xYCnogPaPinc6p05ntfcfBtprPPCVtPHMA2nR/bfpQrHSeS+TeeBs
eo30UZUY6eCkgLTLfVucuLIttMkjLcA5QZw77IDEeblTDFyNR4U76afgH/teZ1TsQYe6cDB+n3Mq
llB4TczCa9LDaaOkA7riU5gTVnLefOBsNrnMc8K4k0mKtqFG5tQQkr5+Xo9sv4HFuDnYlxWwO98O
DNjdpybXdGRGiV7qA0LsUHNEarf3ZuIg9M6vOFOY+wQ6/fweyN5tNYwROPom9CDeOwFbnPov12TC
0QnQdUqpZxSW42/GnpZ1T/CCk4JpI7HNZixLILEY+qzM6XLZ5IlJpyjW6YwC33aUJJ0PfJpMz6LJ
jN1pY9I22VcBscr5ADSh3+Y3GB9HOBe3cJ+hmo/fTqh9fuSPUGyXdzIBmkCfWc373Wp97RbwL9su
LOHKtUSr2u0ToJf2ffGdWulXecT7z9Pq+2x94MsIkSUj/LEi5ZPy/Y47Y11Kj/17TmeODtq3DPn8
kejf394vj4bznfq6Gfvfvj2g8isAx1j0EW/QfjngUaTxWMN2aV9YEPpbADLqk/rZ2dqavTeb8oR7
s4nvK8Q3EU+rfRiPyLoO6/3UhJN7qsWj3gu6Xb9mu1B/OCp9d0d/ouVc9rz+7/78/yHmf8zpGzG/
21cFzoh1onzKnttjWp9mbpop8xTtqEN3TtrbYzQE0gXRR7g/sLD45aT7eiHm/p8ucxMO+sYK2IkZ
D/cQtkhss+V+74ZguiD+iHOxjkMJ4jfGZTDWcCAI+WOcbthG2V4YAR3qLz7Ss+353T3bJoGuLfSt
Mx8Dy4ikC8xHnJg4WFpkJkt+KzpLWJ7k82XnlsFjGGNDHWHafrmHn/v3WzUdXwId6acPX3sm/X6l
6XcceuEFoN8E0O/kEHT+pYbzADcGcGMBVz5EeYc13K8AFwRcGHBca5P9wblc98fEWCIt7YhY8knG
YcsYNPZJtCU9MRpMTxQi/cICjrV1tefRzmWc3J0dNvtvNNfl5j3q5MFO3j39XvnsI70eN2wsGXSv
53XcBubscSHjkZ48kZD7O0mb/3s4Hvg/wvErZ+CY6seR9yfCBpE+1mjyyYmWSB+YyXpbJC7BGQ/1
CKuhlmsg9MGWzCy1YROWMB/X4BhKlGMl0mzvxKjgOumTcj0F5ey/TY0TlifbG0V5kJty3CzEOEX7
2AbSy8/zwHFcLNdKH4UcDdgha5vz8ES2ebn7R93mkCilfVpKXIZtP2i4Sre/F+/lz9jbE7S6nPxJ
23ve99v/fxXv/f9lvC/LwTtkHejH2/eJt4jYGTHK/XHfplpPcoIDsafs8yOYa/uyZFn2vJGYv7un
OyKkbbley2qhc0SxHJvzE2zNvKHmFT/eoUjIuD5/ne/936n1UZbzZFDFmMi4F20fUMa8rNfTWB/n
o2qUIe0GaePu9nL9Hm/+TpU3Sq95sDwZh8s2hxb3t/f7ut6wGLpewv5dTt0bz1H3P/9O5SDx507y
C+EHxb42kBdWyjwd3bOycuNZB7wwbHQ/7usg42n6LLdyTcjdMWOHzDfSuXy7nQ1znqY5x79a52du
m70yT46IqRwj2fD/pMsknwTw3av3+am1Zrt/ndPPTde3u9gNdA/W1+jr+YOKu5QxCyL6VU/2aU6u
tbPN2ZX/I6TWgvAuY9V/x/w64kbGtxd2lXTZ+ZbSnztK7rPDZkda7t3Xe4rps+eewjc0Du/L/cZD
48DYwq8UDcRhLge/GXof5huMHy0Skn/PlcduIfq1K7rPSzyfsLP3u9A2kHHWmO/HWDJ3krOzpNMe
Y9d4T0veucXT+zvGDbWH5ltZ9V8G3FJXGO7BCwfPcW16jpuM55/F/LYMusesZWov+Z/BZ1IHThD3
OxO2n9cmXK/yNNx7Z6dN2swgX5jq2QtSzxSSPxRNk85/17RmjH2BhhsuHucz0B2Hk13Eu2/+gH5o
FEIP+kRykJz5YYHoXYxx8YdpCbkmyfqniM4jxaeUX+nnGhfatXt0O3LxXZaF71ByiD6bXDov0nT+
CezzPtixH55Q6yraH+Jmrj/Qj+e8mLK3WZeDPolpOU+93oCtwfVetoE+N5ljzI9ljO323vhYjcHh
ZGRo1sA7nDe4Lv2jP6kYB592FcWhflzkOo32G5OmLnBnvSE95iOaFr4PgjT6GvqYZQy3xnP895mj
b1+raMR16b6iATrdoOn0l6DTX6OuvyOdFgzmRe67Iz9ShhiJ3BwZci50qvzY9biK76YsVG1+TY6Z
q/Hcx/Hbuk15uk2/0PPfZA2zfe12W8XcJZ0UYCvnqTx1O9Z22txXwHY/93sVRxLNKD766u8pU5Rd
wJwoLEckdki/eKhlh8c6w1l1PqT77WxyrdzMk/DMO1eNen5BOTuc/aJlSwlk9ZR5itax4gE6f13T
eQrovBS4LD8xsM6XPV726fYM1Y8fnlbynX3DvHd+/zDHmZzH4souo+z3c5lwra5f1rcwX8tuKfO/
qGl+jc6hVjCEvOV6vcyfxvdQZpXchyOOfl6/e8tZ3g13qbxrcl9bC+dv8VZBTI1n5hq9+WPlF5ax
btzD1HLvWD/HGn1+XGtHXW9RDhCOMXDZOeGIx5IBvhkWj7P1b3/bdH63/XLeWslYxkLu2w9r+TMH
fcL6pun6fpuVEy47Zxxx/w7w5HyYm3eOeP0qk3lLzodZc+HxU6rs83XZv9NlD9WWfx+mbOLxdeCe
j++IP+dm1fH3pwbmg9hpVd9Hp1R9x87Sll3MS6bXieh/NloG4kTwSdOmvHB6ncwfdmHx8vcCibgd
7H7e9tc8C5j7Bv3X/zyG5/Hn+9eS/pDJzCkfpn9k3FzWunO2zDEnXngsNjkk1xy7jQ672Iq5vyxR
eeGI438VL38N+A/n8IkJFf9nZONnJGLpj/YNjh+jDDeLFa7dozps4ktcv52LK3DwcRapWtuIHrCn
pEZ7VnS0xziUIPAK5OJN2Bhg4wcG4W0kVqWdTOayPyfOZkLxhGPLcnIK+s/mFkeO5eZs9vdSBeJD
76difpYqUZOeijm/yqxJR7nnGnLv0gKVL5G/ry5QsSTXCfEc94zLmBiLsKM9PjcL1BrXLPpWzPEy
Ft/SMR+h+KKAMHfkfYLxb+BVvueXG9DljtLz0DgVM+LIfe36/dEyp1Y9dLRvesd0Lufh9zol5Vrm
2WI2vtOX6f0l5PhvfqvWjd6eOBjO96P/DeB+CrjXh4FboOG+BrgXAfcy4L4/70y4ORpuN+D+BXAp
wFVY+7z3ioW0eeRcp22ekLkg/fAQscunTgVifEcIY8h3tg/xzpsnArHDl4+R9teUGYaM3+3P80hb
TOVgLORaLP8O0mdAu3fw/s1B+yIPngXvRp37kH15+Nox7pRJhqIB62U5VqeXi2NCt0mWhTLqdBn0
RxL3XLyJpzkEzrnlVqJc4sC8gcquO7Nu4vQWZSVoS1rNLVF68eEbxgxam+Jaa0T7SdX+ZOVHGE3/
3jAxu9/P9NtmMq8S36GNXR41zuCPds0fo8EfV4A/qsAfkSHgWjWcAbhLAXc54NjGbN8G7bKQ/hv6
eCFxqdJlsc9Ynt9nfrlf1OX2Hs/0lqLc8mHKDeeU23iOchO63J+j3I9hNwWGKTeSU273Ocrdocv9
Xyi3B+W+98HQ5Zo55abOUe5OXe7fotxXUe4bw5RbllPuiXOU+7A//lHuv9C+RLknJxTLnA1y3VXb
scJ+yAvFmMvxr1Se+GhQ5nLqnAmdvrjOzcxLdoajHdvx2ZsUhXIeTYrPusa/PyhzvAatnbYQ27yw
zAfJ8VHLvc0P8FlmHnSwGQ96Mt5M2t7q7z7mc7C65N/M7TeUfcz8rtnxqeSviFD59bNlQ1y82zNU
LGjuOQR+GWZOnGsBc2NnxbPBfnu5GGPoPHxnn2FgQjdiGWNLEo7sl4lnju16yI3VJcag8XO57ocZ
6Ieb0A+3oh9ahoDz98ZdArhlgKsHXLHc3/uQF9a4BKuSzslKlUs/UxVMM0+uEJ2OKN7msS1+ucPx
xFW6jiLUcSXq+PQHg+P1svOnMT/Is//DPPb64WIZpxfS8eTM/5vp+olcvwonH5RzNtffzIZImrYf
1xZEtNPmXp9wSvVXRJ+LMAq8ERbLDeqtXEfoX0Ngvl/nQXsK+ONs656h6GNyXzH3odNfck8ODT+p
2/fGsUzvaYz74AdqLZrte72x+Iz4ctHyCHj20WH53qraoXmUvHuvJ2KwGSFX1fkTde6+leHvGfHY
96AjPyfzb8ZXpK/nXmfoXcwTc9PHKmbGh6eezPJK/w/KuzqrvEVDlGdVKTs2AZuIeY2EaZf651Lw
DABhbvOsikcGjU3mYZc2+7Jlrsy7ztzEM3bI3M1+H6szMmzXKO9MJ6wOSYekVejO/3RnOml9Vs5t
vBfS32H9HdHfaux3eH1o6/nzQsc4/k/NU3ricD6ibkPNyevRf3sw3wTCSXelv6eC+d7R9uBa4vmI
9OFlQqkzYtvVnsO4ewZfZ+WDm8XcNxhTMu9+g/JHiW5bzr8yf3j3/Wn6SmjT/ssf1Zw6WuqIe5iD
QdpXbMe58q3Rp56/MemYN4ePkUfp21wMPf2leUnn1FSu+bK8Wu57f4v5Amn7GsmkWwB8zC+WH2M+
ulh8tHf/pN09meh+txrv9kUDaZ7lIGMoqfMHa2R80FzgV2wF0uNqtztb4pl38mHLGw070r7P7n7d
jolyLztzS8YZZ/9yXouK+SE8c+zVhXt6glOSzmrGhFcE0kFrm1MQ3eZwv9sqeVZEwomzXuDPs1rM
m8vZt9TpBtFtk67vRWkzcp/kTdJOfJa+9xTabcMegP18gRDPsO2vh2qcHbqdc3X7eDbH2501KG85
5Ebc+F/MYwJ8I6ijCPgy9vVp8AzXdFut4++Qd/j8jfczvWwPY9P+DTD+O7zHPeGUk7my43otO36M
d49TLkJGcq6U8XWxgdxJ8nyGKM+yYN693TJPZv/ZCrY+W8H0z1bosJmvJGarsxW4p+znJzO9/Kbd
XA/eHmruE0Pxr5bLq1H/3TKfQiwtRKlzF/rzyF+O4Z5jh7ktlZ0PHiJ+4KUTF9U4v0Z73rR+LPcs
0VY5NB9/A68T5EFRy3gL51SgpoNxCH485X+j/dhQn2aeR5Vv68V0sOEROyp54EmbfMf1MGE6adGQ
b58KMQ6j1l4s9wcYdl70ZTs/0W0b3U/ZjIMJRets9itjZPJgs8q+vYj26k3Q91cZnxLigXLI4nBq
D2zvb9pm6l6vTNzrZVQ+1LcmRH8hZRP3bBwpGuNWsq3orwMfcE/ZeJkrdci5Q58L8os/ZI4G98MW
LR7jsk3Kd8q8Mp3pSEOiJ2Q+CB3mQS+SfNArh2zmHtJEwOivZ/77av2AdU2I/tjj+sIEPC8E7zNG
4/WFNdKXz7L7gMPb+N03H/cX1Tgn8f32Avxe8B/OdJRD/Am75wOOkaR7tjnvIHj1ZA6v3qd5dQLK
qkYZS8irM8+EW6HhxgJuDuDmAc730RzZPMY1E+q8nTLto5E5CfS+8zjgp1QE3IMBZQuRp+T+AszV
p9+Dvq79p+ejb8LLxriRNtS9zVDn59Dnpvb7uIesF+R+uXDLLi9sMl/s9rRJP1WqzDPMh+1I6inb
MJenRepgOmDuOtKjy+b+nOP0DZqPeGUuygYekdQjntwzADwOTXrJ6X8vvuvIL98boGu2n8hMYH7B
2Cq3lU/jqg+UX/QI7S29P8z3WckcHi2D9zfRhy3jqUCPvPgj0i9T0PK0LX2T8S4v0tLlmQ1dXlmi
C3zTNXRsjvb3ln8w4Mf3c4Vm+3O5BmaYcehUPP/pxXRe1LDpi+B6h9+2o5gXp/C8kCJlI8g+GSaX
9ak+8OgVZ/LFfM0XO0Gz76O8fz6m9KQj2gYlPd5Ev/m60qG1LzjUl+hb4p4M+pe4l2KC3DMImYoy
uIc3PG+MjutVaxgRyHkzvscra8A3cxOnVd7qslSXl2fV2uVml5efOmgXxTt78LFDDdsxBrd7kdQQ
ub71GtOP+4ZfYwrPKxpkM8j9FzpHzCCbIdrbc0qvdct9L5JPZFvlOCjXsX9zQPflsd4e8gD3r39K
zp3LOYcWGqIF82uCawyFnEvnMMf3l4pclT/23nQCNDEu256W+d7j90KGrHSYD4sxZ6Ert/cYczrT
hjx/ZaXc6x64eXE6L77NPsjzfczt3tl4eAdowLb6e5mGhPXXGdH/jaWGK9C+F4JGPw9Yvv0PHrgC
uFaBB+b6sPFd3tYsWF+vFoCtAOw0wJ7SsJax68jS0ADsZA37YW+m95OAnQzYyPFALFdP+xpz82As
RcAP/rPSkoG9onv1mld4WdFgv0jc94uskPvCuIdzKurhfRmbRv95NHH4mj615mNcpvaivPye+j1c
PCjpORHzrt7nKNtzfkPyjPmXsjF/B+fW3Z7MfSvP1VqcrsA387fIHJOQe3nQNfLAN9Q9QqIzfQqy
txK6HM+OqZB5KEtVPqibE+lCwFa2oJxE0s0Xq5zCFrV/MpQk393sThLMd851+se8fK5diVUyJhc0
kLBG4r6ASCRLjZu3B/g+9zdwzu2S5wzWQU8cn8f4+pPH+e5NMgeazEWqaUN9bexFSacDNBo13Dyq
aRVFmcTXO67iN+6bpfggW77cpnmgHTzwBOCefF/xgNxrrPtaxrNf25Euxvx70ZVqHJYWNzsTRUNa
0oW5xTQvPCLzjTE31ViVN03f71b5nZzc/fPkmeH2/j52XNlQ/M19mTzbYCjZ+ffHM0ejkLOzMAfK
HDNRlWNGzoU5ZwcSbpDcgR3l+8NI67BleiHThAyI9ecopA9ncKzUcu53LAwy7nuItb4p1Me0zjeJ
Z5PlxBfJmEAda8i8qozVz4+ChvGGNGw/zFdxyF5+J2cY8Ty512SmjtEifxVEQQ+rEbpopx2Qtla1
nOMqROjdIfdE4xnx/hb6/3DZ4P6fpfv/xNFM7wTQexL6v28IOD930FHAjQXcBYArm30m3Kc1nA24
MODGvM+Ybzlfn2H/fctfK4+r5z4NH8rLs0lHtvspHTvDfQN5llrj3987xFpqvz4+wLdo93fweSq7
78yh5p2c576PSfqhbHUuxeV5w+974PxE/aR8qtrLbHJuAe9JnY06PmSLP19xbcWfs0gXK4qyxKPe
TWHh23yFkVi3V4Gy+Eye30g+BsyUg7BDDvf0hA7udOoX9/QU/WSnE6re6XxWv8txGrGYJ4CxLju8
yXOTTu0LPT215T09gbmdTqSq0zFmdTocR2ebhywx3vu9PqfJXxeqsJK+vJV9kO2buRX9IaBXhc6y
d5p6HGnLXA0y9gC0nYU2ynhztI9rZr4eR7r462ykPelQEu4/N7JQQEcJYQ7h+k9edIe9u4C6V4c9
2ahzLpP7sFbK2I5RTgfPWUgXOQk7/85tdij1I68SNFm9p6dn9X09PRHQZBRoEgZNQtFthwN6Pzvn
q1Frd8i8lvlmh12OMoyShJ33PGN7v+NZKCNe3dMTP9LTI1BGCGUU9ZexWpeRPGsMgk9j7qk7oeO7
SB8/r520W7V+S3ow1it7DTKqaXP3KLWuFhLiucVWTZr26s16zBRone+s54R2j5e5G9i/ixPjvWpR
k+YYr0ZZ9EdwHq7uHu3FEqO9XXrNAjzxnSOwkemDMJRdUchzAIRllwbMZAnPC5oL24tnLsjc+tYO
1LFDwoZ92KhdyjwuhGU++Qp5ZsAOLwLYV9WZHC7nReaFJX5zAdPrx02K7kFy5B8YE3meAXtHyRjp
M896/sLRwbwcOQsv/x3aHgIvh8/CyzKvkpUcyEGI8c6y5Fg37f7yOGZZ5kHdR5hfnoHdcFTue8ez
l/R96A/PhfQZlfIMI32GnjwvlL4Q1PVBJvPMcPiwj/09kDL/fkyv48Z1/L9ey+XeYj/3nYV+bkFb
j0CGs47yhtFy3uR95hB4UcbyKb6i3M2Xsmq0V6/2J8ncjcOtsZ5Qe0ucqjyd20EM8HLuuR/0LXzj
3UwveZ97aIlDbKoh5bKUe6Anzz+omq30VuYdmpsa7b0ZVvsG0Affw1z8XGyv4VZ905BxkNynzvNA
qNuFof8EqdthbJfB/pXnmYIOeQs67VE6VzHt3PEo4/WLaiQcbV76V/omVTsnRbVcA2X7Z2FMUOei
r24s8+GJFhlnEcNY5v5q+hfmyrM2ILvIH+DTbxPP7nj6N+i/UQnux93KWNYS5rI7m+5GGpprihT9
GDun6Uf7Zil43aejtA9Ay6VSHuz1NnGdPRlPz0d74sC3HvJgpY4tE8nkd6D3PlffgPFmKX0yHhvv
8WzH99EH3A/FMpaCFxbHRnvdIbX2Tn6q5L69JsOtB53l/qBu5X8N6Xe+kgVLHWUVZHa+pZ4R5sl8
4cfYFNI3GYIMYDw76RaB/vj5dxVfLWWOCBmLqfYuNKDveWbEZrYhqez+BqmT30xZ8lw95AztpWrp
J2LOiKQRs8bnXYXxw7gu+tUKz6Enc9yY0ENXUYbIPcRJacf0jxv6ePWcLWVLQ8KjX3ZsgfBj9p5r
AM+WR2V+Cz1f7/EadZvLxfi8SDQxNp9x99Ht5w03bujD9PHwfZhlOv+e2n+5x/swX+U4iaDOjajT
lPrDHjlWmBPkM36dJs/BgT7AnGd43iPfU/vBh/Jjbs0pa7Yuh/xtoqw+Xx/AmCKOvvwkbr68I95+
3haJL/3VcUUrEd/hvaRxB388t9Onl66PuU3K81WuCAv1UQ9K5sBEYk94xRov+hYjGF9TKpVOJGNK
K7dJvUjOz9B7iiq2OZyf42HM9ZijQ1Pwm/qPBRs/uhB6M+ek4fP2kIaco/ltiDtlDNf3IYcOnTdY
571C55y/6EimtwZ2Wfzo0DGAX9N7RdEvzx1GGX7sZ0K3CbbUc1IH8GMScn1Fvi6Fssu03dQfXxob
iC9lucQjpPeAc34O0598seHyvAKpb4ku+7UelaO1+ojaJxA2u2Dr0f8z2vsy9wmR7/H7LblnaAXX
Dp8zIU94z99n9hHGc1lxkcoJ+V7OHtWs8bVqpSFjLTi+KM+Ivz++JA8Bd579c8h60eG+QFPvZ4Xt
5zH3dDiFvkbdEygfuCZnohzmDmt4wrtSz5XQd54rh2wwo13ecGMsBBpU5WOcm9vTKu6k2v2fPWrP
LXPKks8JY+bAfAsw7+pzoAOpjrQR60xzjBppnnm3Lh2WPtnEkZ2pB+2wnfBCqZ12MBWxI6nE0Gvm
OTmqEubj78pz9uxt6Ujscc+MP+4FbttpP2jvsDmGjHhtOtyS8MpaHvcwpuXZJKzXAATleNAuskN4
bloJrxyfCajXgpyaAlwqAF+Jz7OlKWdWLOExLmWWnWDeS5kzlHHZE0BfAzhz7fxH0YMyxy5zxodi
35Y504ui2+X6cXBSome48SLn/fjy/nOIcteor5UxXLUuddkZMv6iW+UjAI9+ivmdLLUvnGeoV7Qw
7xP4D31S8DBzmGyz/zVxwJmQ3OM9+0Gmt8i6N/1H8YAzget8sJnDDZ2e/Lu70/5R9JdOBd4LLO/q
KY/STlDlftf8Gc+YsDtR1vdbDjhc++Qz+ry/G/2ZbPN3o/udSr2vvBJlnG3eoO5O+dB9peEmzh8s
E6728/+Ab66DfVSD+a19CLgqDVcGuLmAmw843z7l2vEs0ijLD1EU7ZD9IG1U0pVxWuiTCdwvOPNB
+1+t1xw/36Bpdcuz5n4Ufc0hX/DvIGFShJkgcwhVAOZH1gGHfUE+kTmto4kz4iVEKulk76kgbuXE
zWacX7f3bPCQI/uO9J0BOym2GzrQbi80Y6ctrA6vCvpclY0+sp/wQmfg+UQWnjsH8DQJU6LxfELi
+exFbwPXJ7yKmIJT+O70nr3o4JDzWq7P4YQ+R4JxnsZBjGOeW4Z2Me9QMIaxjPYFUktttpHnIQSi
O+2I2e0F7Vd72GbDTkN3kWvzQ+4V6S+b53ukFqQp+4LxbbbUx9cO5CahvJNr8FHmmjjl5YOHI+xD
fHNuCsZe6cnTtuSwsky3LYx+UOv53R5jpeJWp2fkxOXRLzLcOmWlPBNltHcLfVrQl98uC7uL5wh5
Lruah7j3WunTXM/mGWITQEfWyRiuCPOo61gCYw79xHu8uVEVh8D1BiufZ9hjTBUmnJjY6UVTmE8B
J3MzW2r9U641le06UoFnEdDKhJ7/P6HzyfXIlvsOc43pChm79rhHv2gVZF7e2q9eMKohaci20n83
Y/cFs6Lj8+jfvYO5S1tU3v47P6J9wXOKb3Sf4jkzVjJIXZL2J+UR19lVX+zxonHMufiepeNgvgS6
8ZxO3ovpe6Ql17fnXoCxjHmCzyjTOJ5pK3E8W+9Q57ahK953DhmSlDLkCciGp88f2pc2BmXNhk4x
B/P0vw4BN0/DBQH3KcBFAcfzeE6os3XdoXKfM8ZWcG5q6PYu1THjF8n8d0mHueMs2AXM51TG/SjQ
k+ivZNvvujrfbZ31Geac5DnkhcPyZvQROf4VvR6R/lTff/bBOeJvX/UyvX+EHDzdo+Jqc9vr54X6
MeCOA+5Ej1r/z177n4I2jv6TahdzA/I8ug/x++SVYbeCa/4xrgVUy5w+FmhBnuFzC31ars+6D51S
Nt44lR+v0OR+cPTXqx+pcplLjPn4oNsPtJXnJWI8RvTve6L7PJ6zKMfGZRwrkLMYK0PLjiRl3VHG
COe22d9n8gDa/F20+Z/Q5sqrzuSFpzVcAnBPA+7vAbf4gkCM88X7Fxb3x5kJyIox5vWu9BFCf679
ifIRFkFPjkBHZswB/Yljodv+dvoCl7oA+YOyXr4TGvArCulX3M2zKkrzhR3MnTvK/HeG8EUWq/22
j5UPW26nM1bGUiavGCXsi87I/YwxxvOR8Yx7W/vzQA3id+g20u9X3dOz+ojy+/k+O1PF6T5m2A/z
vB7mEb9sig9fD/jFCj6P9gPgg+JW0uUB6qOUHRIO9FtdoeBIvwDpZ3JPUyIJvL833BjJ134b9jvz
sRZEbdffe0B5EmKe3A611/PM/Vk7vAPaH2cJdYZnoWW7odh9afrbLlqddOqm9PQEV2936qpAz1Xb
nWD9dszRi9Jhxql+sO/RsZDh8S8bsWfxadffG3M+vOfv9eIYoC1v+DI71pX+uvYTyTygmB8u0D6B
kIZ5TOMoz33i/AT8ZD+XqT6uBd0MTbNQrNNW+Viqbfq9v6zfPcIzSLj+GntB+rXzzuHTFNHl6TPO
YDPlet5zPH+MOZfDGPNflz6cuNr3yfNTc3grCJ6S51L9meU9iPKCf0Z5er+FjGkIMV5K+RzOOMOm
PCZz6D1TrvdDkF+2yD1LcblWNUr6Fri+rfJulkNm/06f3yfPIY/uVfq09Ldupy37DGFC+hzCgOQb
fXY3nofO4tPje1xXh+36DN8Ni/YgRHqQsvzrA35hp1yMZp7DZ+T5MDHbfTcr76i0sXz6oU08D+9f
9Lv5jKPU/mTMm2fE6wtNO7kOnSPrSSsTZcnY1oEzHN8yVE4n6JcqhkvmvDUlrz7D8oaSwfQHnMxe
+xADOVI4JrN9xXcdBv+0JNIF8UV2XnyPDft9DteM1d6uFYwhmFOgfaesf4an2sp9jHL9W/bD8Od6
ZZ9zI/OC5NR//+mBfeUhc683CeNqOeTnco4pLT8DUzoZA8J8f3Oob3F8XeSp9bPh6g3ElF3jr83l
5nGS+580T3IsHjqt+H6U5slRPAOF525KvrSfGnL/rKZziOtW4K2jco3cpo9lUJ7aiD8vDDVHKRlr
n5GHjDmXYskzaOfLTz/v0tXaLzqb+HJv3tjt9kUHITcP6/yAB3c6XGMLvLDTidgP9URSHXYo9YRX
NCvpXN6VdCorkw5ju4s4n7Vj/FZuczI7w+nKF5ifptPJbC1IX45nmYORdIG1zYng02e9BBtn77Bt
Cpoddjj1EHQIfKagjnr01wTUw/jOw6qO4IQOJ7M6L30R8MhDmZkjRelK3C8ycX9uMB2MdjiM1Wfc
/tnk5MmBPYCD8y77NIeMrj2i8DP0fBm0E7Y896phRzqc+ivPtB9Mh6wLvQhwqSxLOpMjiiYB0gPv
BSIJJzPBSE+eIs/tkTSpXN0JPsT9ykA6EEvI2KqjzJFxFp6U+Q+y+pTx68GGofNbH9B7Li+W6yz1
mB9He5MhX4zEDsmz1PfIt0+g/y3YG8oHwZzrq5+yCCdWc01uHH34IbNLwh5hmd1x6dPmuth74Ndr
Dqt63iXu0V/25Mu4Th3PqeMJGjWMrWFiuP9rPf7PvhdxNffEfo9wJ7TfyZdH2XKvzBwt/XV1bqaX
eZTlGRiU4zynO1u+6TNXvpWzruv7cQflSm/p9lo/7o+lZuyKmxejnSXzeYJOaq4Yrq98eTfhdP9e
1OcuAQ/fOKunh2UVgH9v3IrxVd7hFJR1OMx7xpyaIcjNIzpv1USX7273Dmftp8+WQXmnlSznvDHc
vupXToNuw/hP/yvlPTdMeSf1+r+IDU3PYx8rHamcc5y1R8ZDDafr5kuZ1mXLtduz6M2cr4c/D3KF
PCvp91KmJuXcT7nq2/9+3GSgeyDfM+1h308XSjzuPcm5Mq7WLKdhvMsz1kGXf9D3K2Rb9NnruP9D
3m+Qvv1CxoFGrMe8SUsxHwF3tsGIdDlS34PMiyxOSHm3HG2S+l91l9T/gpIHHpCxLPvSmd4CEXds
PVY4j3KtqMFVPPWWlhdns60jcdjfYhX3DZSGG5JQk+4774MsfuJY8nmA+Q8jeu2iDOOJZxn9ZZo5
y7PGFMdXfJf3rdxcjL4tkqMjhlLq3KVk/16/xNihcmaSd5jXJvccjDv0e6V6DJraDx4BD/l2x+QJ
Ws5iTJGmpG8RxtXqnyjack4JYIwxPoJnB8oYKpEYMtdin/RVDT7PhDTKpUtVWq3VSR0G9CCNSJv1
We0crvz6Swx3UPnWwLoF15+oa72tbYqA1N2or8q8wIWrL1FrVH7+EL77qoYtyoKV+z9gf3MuknMY
7R/MQ0Y44QRDiWHihpTtfUKfS7LxArUWKNexYgO6udTBtH4+Vqj1LK7f0w/KsxLo/5F0AczkAd22
kDQ/155kf47z8/tQF82d337pZOQec84xo+i3ScTTn5T7XV738hu67OmYXybJeU/Za9N1Xhue6ci/
T0mZIOP0C6fzvCWUMyWt8KTNhfm1JD+eNJj7KRRdJO2xiadVPVyfEtGfe3naZ9/DOfIc85hfx2hd
RyirDpYdshbZT2q9nPMl77F8aRfQ54j6mB8hlLB55lb/PGjkzIPky4dBGzlGdR8MNf/t0HIwGBus
G/o58HPjRxkz+g9/UnP/PBnrWO9ezz0k4ka3snu0NyqZfHJUCp8YPvHkk4sZLyFWO8zJXSBu5nkG
hVxXr6S9A5y+pH1teP9JytyZgK+kzxP2Ql8m85ZhrmcMBHS4HXYwxnN46w5P1+dM8/xPwv1enjO8
2nknk3m5UMbuqLLDeg5jTGFUcI2fezmY217mqHgmJHbY8qxi9AXjbaZLG/1mR54pGutMB62Xel7T
8aj6HONn2F6ZjzZWvT8UfannXDGn9Jdh7kJdLdx3WFLYrWzEiu7x8hzjQLct81oF8d2r81AYWboI
5yby91Ax3tf/SbWvXPL3Cncq+ZH6nUlfXvLJSMJ+CmPtGYyHo1P76Vz/JNe90ZbnLO6HAf2o/xkJ
6jP10qaWuTl4Fkr03vP4HOPgVWHaB8hjZ4uTY1sDuq2Fph1k3t2gabsyLx++j2XbvlaW7QsZltKy
YThfQQR201BzhfDje7T8NPS85ctPnv0mLCmTxlEe6nOUn5NnCVgL+mWnnJMsNQcOJQ8jlv2UL5P6
dW49TgwdU5Ord4daHvd4DtSfG3sW0nO6zG/8J/Ue+69Px3yxrXz2Xf3sKPdQ6rgS3/Zcfro/d0sh
+7dA7UUZR32B8qzeUc9pX7wl/QfzIcfa6DN7YLjzu9iW7340IJOMYWhk+LIefR3W+Ysoh6pPq/lR
yL3IaizJc2GB45c0DzOXGnN55+FdPz7Xz8k6yOfQcqbduspmfHyc4+RV2DQ/Yw6eMubNcXTMlrVQ
jmeuj3FeDNA/IVYyT8bLYU07ytkxjsbTVPmm/bnrPZ1Dw/dPnK0P5Xo4cN56iTH4zEjGv6Kv3v14
IOcD+5v0YO4yfy1gKB8MfQe+D2aQzZejVy/5SLU3X6jzuofTh4NZ/AIaHM3mn1d0PJv0a4IvfJ4j
rwVUrqLCsZr/+ihDAetKHxv9VLXBAr3PJFCS/B59vQEpk+LBQAm3VdulVahPxrE2THuXcPnyeZ1b
gu/ZPHPSPxdU/PCIWqdrSXeYz9s+TGUOTP9zqzXdGT1gy3f035OGgc2GKc+FyS5Htymk28R2cI8y
25Gf1Y6CIfAOxKa9yxyN9XgWSPzwCPNDn+jn57jRfwalSF6hY1pn+Ht9p6Csa+WZ73Uu5f/YnzYb
pT9tLrFSOwOU82Xzmo3z5uF3tDMQTC21rWeXpi94AvNQcmN67OP3O2N3Yh597P7+M1pYB8vH2J0j
z0SN1duj4i/apeMxD0AnvGJch0P7mrbK0+Cpv0Wd9zfvYOwkfXZH86P1dkHiRejLu+1w4mmMpd1p
EX8a46lW8pqf5wh2+WWh2B47L/5Nm89OSlul254F3Xx2ZdI5b04n7KMn7dmf7lQ6PmgxFs/KDuKD
exERt2fNoc+H/X2r64+vvtgrJZKPs+bVrgJjIC5dqLj0gv/M9M52BuIFhsqpMCjPT07O56H2yzx4
TI1XTByFXzimYvd/YKj4pqdRV+sx5X/+hd7/cEjKx3r3KkO89XqJcJnXkjrzF/5TjZmxMp/dXu9j
J+vcEpl/r86dhneqClRuReYr/eF7maHPiNH7QtvT0N2y6rj1PxWuPwIOp7Lur9J1f8JQdf8GdVdr
vP8X8PFzTIju3XJPUMi6P3361vvTYehGFbBxQomvqjwDDeF0KCBc+rrY/h23Yf7T5+xY5nXpN7el
e2ZAl5oS4Lmmj3pG4j4JF07en/6U1Hcf9aJjhY7dW9y//vke8Ambqo6lAUXbidTJLBWLTflf+YtM
72r9ru2oPF+0sy/G/XZ9/y3K78ReWY4vzy7E8514btxyv1zDXPDt+9OHAPcN1CP3EpB3UJc166se
1zz5bkrjsAdwfi4Ba8r9ntWlcAxbttNqZt6ZHF4u90FNrp5st8eOv1O2rNn5xoKkcxD1VYJuhgjJ
Or+Pco5k1ReOJd0e3GOcN2M+uP+beVK+btG3XJ3mPXXePXTNUp6nk9zNc5ZY1pN4b0pwIP/mz30c
UaZVDRxDCsdqvOfTl+/tBly+2G5zH/Uv38j0ripVNNul3w9Z16UD8e02868yRpVlbM0pY5uGnbds
tPulZctUfVNUfSERtneyTBGzCeu/t4V9q+cX9tdR1H2dLoc6tzXrfo97rAJqvb1wHp7Nx3zy+qR9
XqxK5UMMVQS9S3lWHH7/4JKBHEm8fxH3cenxWPCbDM/8PnpC/56Csrif/vvj5LnkMn7j39DXCRH+
4BXwBZ9fTB0Vda9E3V/Se3NSQfU+bUu5Jy6229v2V11p6z6Vv8LGc4gqtQdR6gyPUs9yz6uznbz6
7U7equ2MzXhZ5d8A71R1eVaVevc90Cgv+pqkp6FzMVWyDIwXM6TqDZtr02twLzB6R1rte++yN2b1
maXpVzxTuMEZMVX+VlV+sCHPXlrG9n5mUD+Uyv5n/jRReAfq8ddhWF81nhWDZ6nv0J4JlsTcxBuq
Duu+Lu8t6Fdfoc2i8ZvqqByRKU3n/4Hfb/JvU621fxm/72MOF3Ov3H9+L34/rWnahb9TF3A/3dDX
xb/MHJ2NTxc+C/Gpxec7+DTg0/xL6hkj18g1co1cI9fINXKNXCPXyDVyjVwj18g1co1cI9fINXKN
XCPXyDVyjVwj18g1co1cI9fINXKNXCPXyDVyjVwj18g1co1cI9fINXKNXCPXyDVyjVwj18g1co1c
I9fINXKNXCPXyDVyjVwj18g1co1cI9fINXKNXCPXyDVyjVwj18g1co1cI9fINXKNXCPXyDVyjVwj
18j1/951293tTVZr09rGNqtty7p1TW1t67ds9O/PsJrXW9GtU6NVW61rrpV/zdyqn32hdUN70+CX
eGvD5ts1nLVhc3uzRdg2a6b/ehVeF+tatkxtRKXrmjbc1dRoLYkvsda3Nm9Ckc14u61pc2NTqzW1
sVCcCatANrTe6T+f2iZEe3Pz561Nza1NVvsdazfjibWpjc/qN2xqapzWvKXdqpjddunl1vyFNXVz
rE0b2tqA5TUAa9ra3rqWf2zZ3LS1pWlde1Mjfom2po3r+T4Qm2PpH/Lvxg2tEoj0aW1e27hubVu7
/yzrxo3za2+YYynMb29uJ0JtLVtaNzRvaSNRmlpbt7S0E++1rbc3tU/buAEv3dAMUra0NLeieOv2
DeusltYmUKK90mr7/IaWFpIVhGxvu/zyy2W7AXIXUBWbm+V9VNC0bsP6DRK3DS0bxPx2a2MTsGHl
wKQNJLxzC9Dn87Xr2kFMITZt2tDMsjZv2XQbKI6+3rCpZWPTJlQLJOriS9rmWLKO1jUsgqQRazdu
tBbGV7RZd6y9q2lQa0CHJdW1cwa6WXxmycLqNfU3xRfVWhvaJJNNa9688W51n8CDb4slC+O4OTPn
rhB3rd24pYnoaYDsOpbEa5csq11Sf1MteKV5cxtoCfRBvQ3N4Ma7rU1rQb/Nt4tBN1iDLqK/xW3W
Wp9kswZev20DmgYSDrqRTSbJo3itlT2koTY0tYHGHBZg/dua7m7e3Ght3LBpQ7tVO//m6TcuEbIP
+JwvbWSVJLYYeN1aC2aWHNB6l6oDNLvrCuv665csU3xg3XDTEn3fuquptW1Ds2T8zWC3fj6S9Kmf
X/uZRfV1teRZ4r6+uRVQm6c1bdWkkr1JqsgXZBk5T1kOvn1aWhX9TJBFiEuFaG26nW+1WugI3Qv9
LfBlg5QlSt7ctnbd5621bfKWWLH585ubv7AZyN8m+fmSqW2XSPw3o/c3YKhuvmsDxj7rsu4Ctdfe
trEJ3NnGwbDO+hRE1TTrYgz1W6Kfs665xlqw5Ia6+to1dTezjI0bbpsO2m5uX3/5OiUz5kxtnIOq
gVy7tX7tho1NjX5Z0Rkzr5g1+8qrqq5ee9u6xqb1q+Lz6+pw/7r5S5by3bqaJXFdhsXvVfqBBhMb
mzZbc622DV9sal5fgfav37C1qe1ShUNrE/vl7DhwxFnXXmNN/eIWOc4ntbW34l/FxX5Zt7RBbLR/
rtKK1y66bsmqNdWLli65fkn9otpLz1JmXL5sTZ7aNll2ztoNm9usxibJlOivyXOsyahtyQ3XLWOr
6lZcf/382pskKpLZgEelNUhMytK3oHuF/2yIJ/K+FF+KF+cvWFZbjwpG1dVDFM8RVmzqRg5iS32J
zfish7BtWWfNsW6ZC77YuPXaz1m4Nrbm3mlpa51jyd+FbS2W/tOyNmT9vb7/b7StdUa0/0Hr1QNA
rVUDQK1XZd2/Muvv2Vl/z8qCvyLr/sysv2dk/R0dgL9u49rb2cFtlrWkdnmb1cy/rlvi/3V9c2OT
5MKF6KHW5o1z1GCx6jWvyx/V8xeqP3ni4WZMd43oZBB/XVNLu5YBFVPbLpW8s6j/7vrWtZs4zavx
2TanELxircMw5pS6of0OiJB17c2t16hJtfq6+bX9DUCV19XV9rdhyeBnS7KfgVHFls2YP+9aJ1rW
3sapUTTq77WNja3AsqUdnYzpW6zfcKdYUbeods3MKwVIwC8BosjvupUL5feKmln6e7b+vlJ/X6W/
q/T31fp7RpR/4HuG/p6pv6/Q37P0tyxQ1n/FTFk/vmT9/Gb9/Gb96nu2/r5Sfs9fUK9/V+nvq/U3
6scfK26o9n/PlL9Zv/qWBdbdVCef3xMOxLrw2YnPHnyewOcb+HwLn+/j86/4vIDPQXxex+dtfA7j
8x4+J/A5hU9oVCAWwacMnwn4TMGnEp9Z+MzFpxqfpfjU47Man0Z8NuLTzvt4P45PPT6r8GnA5w58
2vHZik9j8xrFYGv6+UvULlq4orZuycpFlhzE1o3zl9ZMmjRJ8hsE9e1KQs+9xorP/8yiNXVLbl6k
ZN9dm8Btzeuk8LttbVuTNekaq725xbrnHqtl7e1Na+TTNRs2Y5ZAMV9saqy4VKxt3VTZsjE6YwZl
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
BIN_EOF
chmod +x $bin
RUNTIME_arch_run=`mktemp`
cleanup="$RUNTIME_arch_run $cleanup"
base64 -d << 'BIN_EOF' | zcat > $RUNTIME_arch_run || exit 2
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
BIN_EOF
chmod +x $RUNTIME_arch_run
exec {stdout}>&1
RUNTIME_log_stdout () { cat >&$stdout; }
RUNTIME_log_stderr () { cat >&2; }
: "${RUNTIME_arch_run?}"
: ${MAX_SMP:=$(getconf _NPROCESSORS_ONLN)}
: ${TIMEOUT:=90s}

PASS() { echo -ne "\e[32mPASS\e[0m"; }
SKIP() { echo -ne "\e[33mSKIP\e[0m"; }
FAIL() { echo -ne "\e[31mFAIL\e[0m"; }

extract_summary()
{
    local cr=$'\r'
    tail -3 | grep '^SUMMARY: ' | sed 's/^SUMMARY: /(/;s/'"$cr"'\{0,1\}$/)/'
}

# We assume that QEMU is going to work if it tried to load the kernel
premature_failure()
{
    local log="$(eval $(get_cmdline _NO_FILE_4Uhere_) 2>&1)"

    echo "$log" | grep "_NO_FILE_4Uhere_" |
        grep -q -e "could not \(load\|open\) kernel" -e "error loading" &&
        return 1

    RUNTIME_log_stderr <<< "$log"

    echo "$log"
    return 0
}

get_cmdline()
{
    local kernel=$1
    echo "TESTNAME=$testname TIMEOUT=$timeout ACCEL=$accel $RUNTIME_arch_run $kernel -smp $smp $opts"
}

skip_nodefault()
{
    [ "$run_all_tests" = "yes" ] && return 1
    [ "$STANDALONE" != "yes" ] && return 0

    while true; do
        read -r -p "Test marked not to be run by default, are you sure (y/N)? " yn
        case $yn in
            "Y" | "y" | "Yes" | "yes")
                return 1
                ;;
            "" | "N" | "n" | "No" | "no" | "q" | "quit" | "exit")
                return 0
                ;;
        esac
    done
}

function print_result()
{
    # output test results in a TAP format
    # https://testanything.org/tap-version-13-specification.html

    local status="$1"
    local testname="$2"
    local summary="$3"
    local reason="$4"

    if [ -z "$reason" ]; then
        echo "`$status` $testname $summary"
    else
        echo "`$status` $testname ($reason)"
    fi
}

function run()
{
    local testname="$1"
    local groups="$2"
    local smp="$3"
    local kernel="$4"
    local opts="$5"
    local arch="$6"
    local check="${CHECK:-$7}"
    local accel="${ACCEL:-$8}"
    local timeout="${9:-$TIMEOUT}" # unittests.cfg overrides the default

    if [ -z "$testname" ]; then
        return
    fi

    if [ -n "$only_tests" ] && ! grep -qw "$testname" <<<$only_tests; then
        return
    fi

    if [ -n "$only_group" ] && ! grep -qw "$only_group" <<<$groups; then
        return
    fi

    if [ -z "$only_group" ] && grep -qw "nodefault" <<<$groups &&
            skip_nodefault; then
        print_result "SKIP" $testname "" "test marked as manual run only"
        return;
    fi

    if [ -n "$arch" ] && [ "$arch" != "$ARCH" ]; then
        print_result "SKIP" $testname "" "$arch only"
        return 2
    fi

    # check a file for a particular value before running a test
    # the check line can contain multiple files to check separated by a space
    # but each check parameter needs to be of the form <path>=<value>
    for check_param in "${check[@]}"; do
        path=${check_param%%=*}
        value=${check_param#*=}
        if [ "$path" ] && [ "$(cat $path)" != "$value" ]; then
            print_result "SKIP" $testname "" "$path not equal to $value"
            return 2
        fi
    done

    last_line=$(premature_failure > >(tail -1)) && {
        print_result "SKIP" $testname "" "$last_line"
        return 77
    }

    cmdline=$(get_cmdline $kernel)
    if grep -qw "migration" <<<$groups ; then
        cmdline="MIGRATION=yes $cmdline"
    fi
    if [ "$verbose" = "yes" ]; then
        echo $cmdline
    fi

    # extra_params in the config file may contain backticks that need to be
    # expanded, so use eval to start qemu.  Use "> >(foo)" instead of a pipe to
    # preserve the exit status.
    summary=$(eval $cmdline 2> >(RUNTIME_log_stderr) \
                             > >(tee >(RUNTIME_log_stdout $kernel) | extract_summary))
    ret=$?
    [ "$STANDALONE" != "yes" ] && echo > >(RUNTIME_log_stdout $kernel)

    if [ $ret -eq 0 ]; then
        print_result "PASS" $testname "$summary"
    elif [ $ret -eq 77 ]; then
        print_result "SKIP" $testname "$summary"
    elif [ $ret -eq 124 ]; then
        print_result "FAIL" $testname "" "timeout; duration=$timeout"
    elif [ $ret -gt 127 ]; then
        print_result "FAIL" $testname "" "terminated on SIG$(kill -l $(($ret - 128)))"
    else
        print_result "FAIL" $testname "$summary"
    fi

    return $ret
}

#
# Probe for MAX_SMP, in case it's less than the number of host cpus.
#
# This probing currently only works for ARM, as x86 bails on another
# error first. Also, this probing isn't necessary for any ARM hosts
# running kernels later than v4.3, i.e. those including ef748917b52
# "arm/arm64: KVM: Remove 'config KVM_ARM_MAX_VCPUS'". So, at some
# point when maintaining the while loop gets too tiresome, we can
# just remove it...
while $RUNTIME_arch_run _NO_FILE_4Uhere_ -smp $MAX_SMP \
		|& grep -qi 'exceeds max CPUs'; do
	MAX_SMP=$((MAX_SMP >> 1))
done
run gicv2-mmio gic \$\(\(\(\$MAX_SMP\ \<\ 8\)\?\$MAX_SMP:8\)\) $bin -machine\ gic-version=2\ -append\ \'mmio\' '' '' '' ''
