blob: 7ba944b0d4f6e045b581f894b3bd75e9e34336b2 [file] [log] [blame]
// INFO: rcu detected stall in __snd_pcm_lib_xfer (2)
// https://syzkaller.appspot.com/bug?id=c505a082aa798ae2ba448744218a31b07e8ebcc2
// status:fixed
// autogenerated by syzkaller (http://github.com/google/syzkaller)
#define _GNU_SOURCE
#include <endian.h>
#include <fcntl.h>
#include <linux/futex.h>
#include <pthread.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/syscall.h>
#include <unistd.h>
#define BITMASK_LEN(type, bf_len) (type)((1ull << (bf_len)) - 1)
#define BITMASK_LEN_OFF(type, bf_off, bf_len) \
(type)(BITMASK_LEN(type, (bf_len)) << (bf_off))
#define STORE_BY_BITMASK(type, addr, val, bf_off, bf_len) \
if ((bf_off) == 0 && (bf_len) == 0) { \
*(type*)(addr) = (type)(val); \
} else { \
type new_val = *(type*)(addr); \
new_val &= ~BITMASK_LEN_OFF(type, (bf_off), (bf_len)); \
new_val |= ((type)(val)&BITMASK_LEN(type, (bf_len))) << (bf_off); \
*(type*)(addr) = new_val; \
}
static uintptr_t syz_open_dev(uintptr_t a0, uintptr_t a1, uintptr_t a2)
{
if (a0 == 0xc || a0 == 0xb) {
char buf[128];
sprintf(buf, "/dev/%s/%d:%d", a0 == 0xc ? "char" : "block", (uint8_t)a1,
(uint8_t)a2);
return open(buf, O_RDWR, 0);
} else {
char buf[1024];
char* hash;
strncpy(buf, (char*)a0, sizeof(buf));
buf[sizeof(buf) - 1] = 0;
while ((hash = strchr(buf, '#'))) {
*hash = '0' + (char)(a1 % 10);
a1 /= 10;
}
return open(buf, a2, 0);
}
}
struct thread_t {
int created, running, call;
pthread_t th;
};
static struct thread_t threads[16];
static void execute_call(int call);
static int running;
static int collide;
static void* thr(void* arg)
{
struct thread_t* th = (struct thread_t*)arg;
for (;;) {
while (!__atomic_load_n(&th->running, __ATOMIC_ACQUIRE))
syscall(SYS_futex, &th->running, FUTEX_WAIT, 0, 0);
execute_call(th->call);
__atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED);
__atomic_store_n(&th->running, 0, __ATOMIC_RELEASE);
syscall(SYS_futex, &th->running, FUTEX_WAKE);
}
return 0;
}
static void execute(int num_calls)
{
int call, thread;
running = 0;
for (call = 0; call < num_calls; call++) {
for (thread = 0; thread < sizeof(threads) / sizeof(threads[0]); thread++) {
struct thread_t* th = &threads[thread];
if (!th->created) {
th->created = 1;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setstacksize(&attr, 128 << 10);
pthread_create(&th->th, &attr, thr, th);
}
if (!__atomic_load_n(&th->running, __ATOMIC_ACQUIRE)) {
th->call = call;
__atomic_fetch_add(&running, 1, __ATOMIC_RELAXED);
__atomic_store_n(&th->running, 1, __ATOMIC_RELEASE);
syscall(SYS_futex, &th->running, FUTEX_WAKE);
if (collide && call % 2)
break;
struct timespec ts;
ts.tv_sec = 0;
ts.tv_nsec = 20 * 1000 * 1000;
syscall(SYS_futex, &th->running, FUTEX_WAIT, 1, &ts);
if (running)
usleep((call == num_calls - 1) ? 10000 : 1000);
break;
}
}
}
}
uint64_t r[4] = {0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff,
0x0};
void execute_call(int call)
{
long res;
switch (call) {
case 0:
memcpy((void*)0x20000040, "/dev/dsp", 9);
res = syscall(__NR_openat, 0xffffffffffffff9c, 0x20000040, 0x101002, 0);
if (res != -1)
r[0] = res;
break;
case 1:
res = syscall(__NR_socketpair, 2, 3, 1, 0x20000080);
if (res != -1)
r[1] = *(uint32_t*)0x20000080;
break;
case 2:
*(uint32_t*)0x200000c0 = 0x81;
syscall(__NR_setsockopt, -1, 0x10c, 0xf, 0x200000c0, 4);
break;
case 3:
res = syscall(__NR_dup, r[1]);
if (res != -1)
r[2] = res;
break;
case 4:
memcpy((void*)0x20000100, "/dev/snd/seq", 13);
syz_open_dev(0x20000100, 0, 0x8000);
break;
case 5:
*(uint32_t*)0x20000200 = 0xac;
syscall(__NR_getsockopt, r[2], 0x10e, 4, 0x20000140, 0x20000200);
break;
case 6:
res = syscall(__NR_shmget, 0, 0x2000, 0x200, 0x20ffc000);
if (res != -1)
r[3] = res;
break;
case 7:
syscall(__NR_shmctl, r[3], 0xb);
break;
case 8:
*(uint8_t*)0x20000240 = 3;
*(uint8_t*)0x20000241 = 3;
*(uint16_t*)0x20000242 = 2;
*(uint16_t*)0x20000244 = 3;
*(uint16_t*)0x20000246 = 0;
*(uint16_t*)0x20000248 = 0x80;
STORE_BY_BITMASK(uint8_t, 0x2000024a, 1, 0, 4);
STORE_BY_BITMASK(uint8_t, 0x2000024a, 6, 4, 4);
memcpy((void*)0x2000024b, "\x16\xe7\x22", 3);
*(uint16_t*)0x2000024e = htobe16(0x11d8);
*(uint8_t*)0x20000250 = 0x33;
*(uint8_t*)0x20000251 = -1;
*(uint8_t*)0x20000252 = 0xfe;
*(uint8_t*)0x20000253 = 0x80;
*(uint8_t*)0x20000254 = 0;
*(uint8_t*)0x20000255 = 0;
*(uint8_t*)0x20000256 = 0;
*(uint8_t*)0x20000257 = 0;
*(uint8_t*)0x20000258 = 0;
*(uint8_t*)0x20000259 = 0;
*(uint8_t*)0x2000025a = 0;
*(uint8_t*)0x2000025b = 0;
*(uint8_t*)0x2000025c = 0;
*(uint8_t*)0x2000025d = 0;
*(uint8_t*)0x2000025e = 0;
*(uint8_t*)0x2000025f = 0;
*(uint8_t*)0x20000260 = 0;
*(uint8_t*)0x20000261 = 0xbb;
*(uint8_t*)0x20000262 = -1;
*(uint8_t*)0x20000263 = 2;
*(uint8_t*)0x20000264 = 0;
*(uint8_t*)0x20000265 = 0;
*(uint8_t*)0x20000266 = 0;
*(uint8_t*)0x20000267 = 0;
*(uint8_t*)0x20000268 = 0;
*(uint8_t*)0x20000269 = 0;
*(uint8_t*)0x2000026a = 0;
*(uint8_t*)0x2000026b = 0;
*(uint8_t*)0x2000026c = 0;
*(uint8_t*)0x2000026d = 0;
*(uint8_t*)0x2000026e = 0;
*(uint8_t*)0x2000026f = 0;
*(uint8_t*)0x20000270 = 0;
*(uint8_t*)0x20000271 = 1;
*(uint8_t*)0x20000272 = 0x67;
*(uint8_t*)0x20000273 = 0xa;
*(uint8_t*)0x20000274 = 0;
*(uint8_t*)0x20000275 = 0xb1;
*(uint32_t*)0x20000276 = 0;
*(uint64_t*)0x2000027a = htobe64(0);
*(uint64_t*)0x20000282 = htobe64(1);
*(uint8_t*)0x2000028a = 0xfe;
*(uint8_t*)0x2000028b = 0x80;
*(uint8_t*)0x2000028c = 0;
*(uint8_t*)0x2000028d = 0;
*(uint8_t*)0x2000028e = 0;
*(uint8_t*)0x2000028f = 0;
*(uint8_t*)0x20000290 = 0;
*(uint8_t*)0x20000291 = 0;
*(uint8_t*)0x20000292 = 0;
*(uint8_t*)0x20000293 = 0;
*(uint8_t*)0x20000294 = 0;
*(uint8_t*)0x20000295 = 0;
*(uint8_t*)0x20000296 = 0;
*(uint8_t*)0x20000297 = 0;
*(uint8_t*)0x20000298 = 0;
*(uint8_t*)0x20000299 = 0xbb;
*(uint8_t*)0x2000029a = 0xfe;
*(uint8_t*)0x2000029b = 0x80;
*(uint8_t*)0x2000029c = 0;
*(uint8_t*)0x2000029d = 0;
*(uint8_t*)0x2000029e = 0;
*(uint8_t*)0x2000029f = 0;
*(uint8_t*)0x200002a0 = 0;
*(uint8_t*)0x200002a1 = 0;
*(uint8_t*)0x200002a2 = 0;
*(uint8_t*)0x200002a3 = 0;
*(uint8_t*)0x200002a4 = 0;
*(uint8_t*)0x200002a5 = 0;
*(uint8_t*)0x200002a6 = 0;
*(uint8_t*)0x200002a7 = 0;
*(uint8_t*)0x200002a8 = 0;
*(uint8_t*)0x200002a9 = 0xbb;
*(uint8_t*)0x200002aa = -1;
*(uint8_t*)0x200002ab = 1;
*(uint8_t*)0x200002ac = 0;
*(uint8_t*)0x200002ad = 0;
*(uint8_t*)0x200002ae = 0;
*(uint8_t*)0x200002af = 0;
*(uint8_t*)0x200002b0 = 0;
*(uint8_t*)0x200002b1 = 0;
*(uint8_t*)0x200002b2 = 0;
*(uint8_t*)0x200002b3 = 0;
*(uint8_t*)0x200002b4 = 0;
*(uint8_t*)0x200002b5 = 0;
*(uint8_t*)0x200002b6 = 0;
*(uint8_t*)0x200002b7 = 0;
*(uint8_t*)0x200002b8 = 0;
*(uint8_t*)0x200002b9 = 1;
*(uint64_t*)0x200002ba = htobe64(0);
*(uint64_t*)0x200002c2 = htobe64(1);
*(uint8_t*)0x200002ca = 0;
*(uint8_t*)0x200002cb = 0;
*(uint8_t*)0x200002cc = 0x6a;
STORE_BY_BITMASK(uint8_t, 0x200002cd, 0xae, 0, 1);
STORE_BY_BITMASK(uint8_t, 0x200002cd, 0, 1, 2);
STORE_BY_BITMASK(uint8_t, 0x200002cd, 6, 3, 5);
*(uint32_t*)0x200002ce = 0x68;
*(uint8_t*)0x200002d2 = 0x3b;
*(uint8_t*)0x200002d3 = 0x12;
*(uint8_t*)0x200002d4 = 0;
*(uint8_t*)0x200002d5 = 0;
*(uint8_t*)0x200002d6 = 0;
*(uint8_t*)0x200002d7 = 0;
*(uint8_t*)0x200002d8 = 0;
*(uint8_t*)0x200002d9 = 0;
*(uint8_t*)0x200002da = 7;
*(uint8_t*)0x200002db = 0x10;
*(uint32_t*)0x200002dc = htobe32(0xfffffffa);
*(uint8_t*)0x200002e0 = 2;
*(uint8_t*)0x200002e1 = 1;
*(uint16_t*)0x200002e2 = 0xd;
*(uint64_t*)0x200002e4 = 3;
*(uint8_t*)0x200002ec = 7;
*(uint8_t*)0x200002ed = 0x38;
*(uint32_t*)0x200002ee = htobe32(0xfe);
*(uint8_t*)0x200002f2 = 0xc;
*(uint8_t*)0x200002f3 = 0;
*(uint16_t*)0x200002f4 = 0x800;
*(uint64_t*)0x200002f6 = 0x410;
*(uint64_t*)0x200002fe = 0x6f1;
*(uint64_t*)0x20000306 = 0x401;
*(uint64_t*)0x2000030e = 0x101;
*(uint64_t*)0x20000316 = 9;
*(uint64_t*)0x2000031e = 1;
*(uint8_t*)0x20000326 = 0xc9;
*(uint8_t*)0x20000327 = 0x10;
*(uint8_t*)0x20000328 = -1;
*(uint8_t*)0x20000329 = 1;
*(uint8_t*)0x2000032a = 0;
*(uint8_t*)0x2000032b = 0;
*(uint8_t*)0x2000032c = 0;
*(uint8_t*)0x2000032d = 0;
*(uint8_t*)0x2000032e = 0;
*(uint8_t*)0x2000032f = 0;
*(uint8_t*)0x20000330 = 0;
*(uint8_t*)0x20000331 = 0;
*(uint8_t*)0x20000332 = 0;
*(uint8_t*)0x20000333 = 0;
*(uint8_t*)0x20000334 = 0;
*(uint8_t*)0x20000335 = 0;
*(uint8_t*)0x20000336 = 0;
*(uint8_t*)0x20000337 = 1;
*(uint8_t*)0x20000338 = 1;
*(uint8_t*)0x20000339 = 1;
*(uint8_t*)0x2000033a = 0;
*(uint8_t*)0x2000033b = 0;
*(uint8_t*)0x2000033c = 1;
*(uint8_t*)0x2000033d = 0;
*(uint8_t*)0x2000033e = 7;
*(uint8_t*)0x2000033f = 0x28;
*(uint32_t*)0x20000340 = htobe32(8);
*(uint8_t*)0x20000344 = 8;
*(uint8_t*)0x20000345 = 0x3f;
*(uint16_t*)0x20000346 = 8;
*(uint64_t*)0x20000348 = 5;
*(uint64_t*)0x20000350 = 0x1000;
*(uint64_t*)0x20000358 = 0x52f5c951;
*(uint64_t*)0x20000360 = 0xffffffffffff8e97;
*(uint8_t*)0x20000368 = 0;
*(uint8_t*)0x20000369 = 1;
*(uint8_t*)0x2000036a = 0;
*(uint8_t*)0x20000372 = 0xc;
*(uint8_t*)0x20000373 = 2;
*(uint8_t*)0x20000374 = 0;
*(uint8_t*)0x20000375 = 0;
*(uint8_t*)0x20000376 = 0;
*(uint8_t*)0x20000377 = 0;
*(uint8_t*)0x20000378 = 0;
*(uint8_t*)0x20000379 = 0;
*(uint8_t*)0x2000037a = 0xc9;
*(uint8_t*)0x2000037b = 0x10;
*(uint8_t*)0x2000037c = -1;
*(uint8_t*)0x2000037d = 2;
*(uint8_t*)0x2000037e = 0;
*(uint8_t*)0x2000037f = 0;
*(uint8_t*)0x20000380 = 0;
*(uint8_t*)0x20000381 = 0;
*(uint8_t*)0x20000382 = 0;
*(uint8_t*)0x20000383 = 0;
*(uint8_t*)0x20000384 = 0;
*(uint8_t*)0x20000385 = 0;
*(uint8_t*)0x20000386 = 0;
*(uint8_t*)0x20000387 = 0;
*(uint8_t*)0x20000388 = 0;
*(uint8_t*)0x20000389 = 0;
*(uint8_t*)0x2000038a = 0;
*(uint8_t*)0x2000038b = 1;
*(uint8_t*)0x20000392 = 0x87;
*(uint8_t*)0x20000393 = 0;
*(uint8_t*)0x20000394 = 0;
*(uint8_t*)0x20000395 = 0;
*(uint8_t*)0x20000396 = 0;
*(uint8_t*)0x20000397 = 0;
*(uint8_t*)0x20000398 = 0;
*(uint8_t*)0x20000399 = 0;
*(uint8_t*)0x2000039a = 0xc2;
*(uint8_t*)0x2000039b = 4;
*(uint32_t*)0x2000039c = htobe32(3);
*(uint8_t*)0x200003a2 = 0;
*(uint8_t*)0x200003a3 = 0;
*(uint8_t*)0x200003a4 = 2;
STORE_BY_BITMASK(uint8_t, 0x200003a5, 0, 0, 1);
STORE_BY_BITMASK(uint8_t, 0x200003a5, 0, 1, 2);
STORE_BY_BITMASK(uint8_t, 0x200003a5, 1, 3, 5);
*(uint32_t*)0x200003a6 = 0x68;
*(uint8_t*)0x200003aa = 0x3e;
*(uint8_t*)0x200003ab = 0xa;
*(uint8_t*)0x200003ac = 2;
*(uint8_t*)0x200003ad = 1;
*(uint32_t*)0x200003ae = 0;
*(uint8_t*)0x200003b2 = 0;
*(uint8_t*)0x200003b3 = 0;
*(uint8_t*)0x200003b4 = 0;
*(uint8_t*)0x200003b5 = 0;
*(uint8_t*)0x200003b6 = 0;
*(uint8_t*)0x200003b7 = 0;
*(uint8_t*)0x200003b8 = 0;
*(uint8_t*)0x200003b9 = 0;
*(uint8_t*)0x200003ba = 0;
*(uint8_t*)0x200003bb = 0;
*(uint8_t*)0x200003bc = -1;
*(uint8_t*)0x200003bd = -1;
*(uint32_t*)0x200003be = htobe32(0);
*(uint8_t*)0x200003c2 = 0xfe;
*(uint8_t*)0x200003c3 = 0x80;
*(uint8_t*)0x200003c4 = 0;
*(uint8_t*)0x200003c5 = 0;
*(uint8_t*)0x200003c6 = 0;
*(uint8_t*)0x200003c7 = 0;
*(uint8_t*)0x200003c8 = 0;
*(uint8_t*)0x200003c9 = 0;
*(uint8_t*)0x200003ca = 0;
*(uint8_t*)0x200003cb = 0;
*(uint8_t*)0x200003cc = 0;
*(uint8_t*)0x200003cd = 0;
*(uint8_t*)0x200003ce = 0;
*(uint8_t*)0x200003cf = 0;
*(uint8_t*)0x200003d0 = 0;
*(uint8_t*)0x200003d1 = 0xaa;
*(uint8_t*)0x200003d2 = -1;
*(uint8_t*)0x200003d3 = 2;
*(uint8_t*)0x200003d4 = 0;
*(uint8_t*)0x200003d5 = 0;
*(uint8_t*)0x200003d6 = 0;
*(uint8_t*)0x200003d7 = 0;
*(uint8_t*)0x200003d8 = 0;
*(uint8_t*)0x200003d9 = 0;
*(uint8_t*)0x200003da = 0;
*(uint8_t*)0x200003db = 0;
*(uint8_t*)0x200003dc = 0;
*(uint8_t*)0x200003dd = 0;
*(uint8_t*)0x200003de = 0;
*(uint8_t*)0x200003df = 0;
*(uint8_t*)0x200003e0 = 0;
*(uint8_t*)0x200003e1 = 1;
*(uint8_t*)0x200003e2 = 0xfe;
*(uint8_t*)0x200003e3 = 0x80;
*(uint8_t*)0x200003e4 = 0;
*(uint8_t*)0x200003e5 = 0;
*(uint8_t*)0x200003e6 = 0;
*(uint8_t*)0x200003e7 = 0;
*(uint8_t*)0x200003e8 = 0;
*(uint8_t*)0x200003e9 = 0;
*(uint8_t*)0x200003ea = 0;
*(uint8_t*)0x200003eb = 0;
*(uint8_t*)0x200003ec = 0;
*(uint8_t*)0x200003ed = 0;
*(uint8_t*)0x200003ee = 0;
*(uint8_t*)0x200003ef = 0;
*(uint8_t*)0x200003f0 = 0;
*(uint8_t*)0x200003f1 = 0xaa;
*(uint8_t*)0x200003f2 = 0xfe;
*(uint8_t*)0x200003f3 = 0x80;
*(uint8_t*)0x200003f4 = 0;
*(uint8_t*)0x200003f5 = 0;
*(uint8_t*)0x200003f6 = 0;
*(uint8_t*)0x200003f7 = 0;
*(uint8_t*)0x200003f8 = 0;
*(uint8_t*)0x200003f9 = 0;
*(uint8_t*)0x200003fa = 0;
*(uint8_t*)0x200003fb = 0;
*(uint8_t*)0x200003fc = 0;
*(uint8_t*)0x200003fd = 0;
*(uint8_t*)0x200003fe = 0;
*(uint8_t*)0x200003ff = 0;
*(uint8_t*)0x20000400 = 0;
*(uint8_t*)0x20000401 = 0x19;
STORE_BY_BITMASK(uint16_t, 0x20000402, 0, 0, 1);
STORE_BY_BITMASK(uint16_t, 0x20000402, 0, 1, 1);
STORE_BY_BITMASK(uint16_t, 0x20000402, 1, 2, 1);
STORE_BY_BITMASK(uint16_t, 0x20000402, 0x400, 3, 1);
STORE_BY_BITMASK(uint16_t, 0x20000402, 0, 4, 4);
STORE_BY_BITMASK(uint16_t, 0x20000402, 0, 8, 1);
STORE_BY_BITMASK(uint16_t, 0x20000402, 0, 9, 4);
STORE_BY_BITMASK(uint16_t, 0x20000402, 1, 13, 3);
*(uint16_t*)0x20000404 = htobe16(0x880b);
*(uint16_t*)0x20000406 = htobe16(0);
*(uint16_t*)0x20000408 = htobe16(1);
*(uint16_t*)0x2000040a = htobe16(0x1f);
*(uint16_t*)0x2000040c = htobe16(3);
STORE_BY_BITMASK(uint16_t, 0x2000040e, 4, 0, 1);
STORE_BY_BITMASK(uint16_t, 0x2000040e, 0, 1, 1);
STORE_BY_BITMASK(uint16_t, 0x2000040e, 0xa99, 2, 1);
STORE_BY_BITMASK(uint16_t, 0x2000040e, 1, 3, 1);
STORE_BY_BITMASK(uint16_t, 0x2000040e, 0, 4, 9);
STORE_BY_BITMASK(uint16_t, 0x2000040e, 0, 13, 3);
*(uint16_t*)0x20000410 = htobe16(0x800);
STORE_BY_BITMASK(uint16_t, 0x20000412, 7, 0, 1);
STORE_BY_BITMASK(uint16_t, 0x20000412, 0, 1, 1);
STORE_BY_BITMASK(uint16_t, 0x20000412, 6, 2, 1);
STORE_BY_BITMASK(uint16_t, 0x20000412, 0xfff9, 3, 1);
STORE_BY_BITMASK(uint16_t, 0x20000412, 0, 4, 9);
STORE_BY_BITMASK(uint16_t, 0x20000412, 0, 13, 3);
*(uint16_t*)0x20000414 = htobe16(0x86dd);
*(uint16_t*)0x20000416 = 8;
*(uint16_t*)0x20000418 = htobe16(0x88be);
*(uint32_t*)0x2000041a = htobe32(1);
STORE_BY_BITMASK(uint8_t, 0x2000041e, 2, 0, 4);
STORE_BY_BITMASK(uint8_t, 0x2000041e, 1, 4, 4);
*(uint8_t*)0x2000041f = 2;
STORE_BY_BITMASK(uint8_t, 0x20000420, -1, 0, 2);
STORE_BY_BITMASK(uint8_t, 0x20000420, 0x4c, 2, 1);
STORE_BY_BITMASK(uint8_t, 0x20000420, 4, 3, 2);
STORE_BY_BITMASK(uint8_t, 0x20000420, 4, 5, 3);
*(uint8_t*)0x20000421 = 5;
*(uint32_t*)0x20000422 = 1;
*(uint32_t*)0x20000426 = htobe32(0x401);
*(uint16_t*)0x2000042a = 8;
*(uint16_t*)0x2000042c = htobe16(0x22eb);
*(uint32_t*)0x2000042e = htobe32(3);
STORE_BY_BITMASK(uint8_t, 0x20000432, 1, 0, 4);
STORE_BY_BITMASK(uint8_t, 0x20000432, 2, 4, 4);
*(uint8_t*)0x20000433 = 0;
STORE_BY_BITMASK(uint8_t, 0x20000434, 3, 0, 2);
STORE_BY_BITMASK(uint8_t, 0x20000434, 8, 2, 1);
STORE_BY_BITMASK(uint8_t, 0x20000434, 0x81, 3, 2);
STORE_BY_BITMASK(uint8_t, 0x20000434, 1, 5, 3);
*(uint8_t*)0x20000435 = 0xd5;
*(uint32_t*)0x20000436 = 2;
*(uint32_t*)0x2000043a = htobe32(4);
*(uint16_t*)0x2000043e = htobe16(0xa1f0);
STORE_BY_BITMASK(uint8_t, 0x20000440, 6, 0, 2);
STORE_BY_BITMASK(uint8_t, 0x20000440, 9, 2, 5);
STORE_BY_BITMASK(uint8_t, 0x20000440, 0, 7, 1);
STORE_BY_BITMASK(uint8_t, 0x20000441, 0x34, 0, 1);
STORE_BY_BITMASK(uint8_t, 0x20000441, 2, 1, 2);
STORE_BY_BITMASK(uint8_t, 0x20000441, 0xc6, 3, 1);
STORE_BY_BITMASK(uint8_t, 0x20000441, 0x2c, 4, 1);
*(uint16_t*)0x20000442 = 8;
*(uint16_t*)0x20000444 = htobe16(0x6558);
*(uint32_t*)0x20000446 = htobe32(0);
memcpy(
(void*)0x2000044a,
"\x51\xd8\x82\xb0\x5a\xa5\x7f\x25\x95\x70\xd1\x66\xfd\xd8\x14\x70\xc3"
"\xe2\x17\xb2\x85\xbe\x82\xf9\x43\x09\x81\xd0\x26\x94\xdb\x07\x5a\xa8"
"\xdb\xbd\xe8\xa5\x06\x0e\xbf\xf0\x46\x05\x24\xcb\x6d\xcd\xf0\x7b\x34"
"\x3e\xb2\x76\xae\x04\x2d\x7d\x8f\xca\x8c\xae\x67\xbd\x54\xe7\x69\x04"
"\x9d\xdc\x3f\x76\x1c\xa1\x59\xd8\x9b\x97\x9e\x9c\x0e\x0a\x26\xf8\x72"
"\x2b\xfd\x8d\xd8\xa1\xb0\xcb\x19\xa0\x10\xcf\x44\x85\x4e\xa3\x6a\x4c"
"\xa9\xda\x4f\x8f\x1b\xa5\xab\xc9\x36\x13\xba\x68\x56\x9c\x02\x86\xb2"
"\xce\xb6\x18\xd9\x56\xca\x85\x91\xf2\x71\xfe\x08\x1e\xf4\x05\x67\x7d"
"\xb7\x5b\xde\x59\x44\xbb\xce\xaf\x71\xe2\xf5\xbd\xd0\xa0\x6c\x54\xb4"
"\xc5\xd5\x67\xbf\xf1\xc4\xda\xe5\xd2\x4a\x05\x1e\x4c\xed\x3c\x7b\x9d"
"\xc4\xf9\xd9\xaf\xbb\x23\xc5\xea\xf8\xa7\x4a\x65\xc1\x91\x8c\xec\x93"
"\x64\xa4\xe8\x8b\x0b\x50\xef\xec\x22\x50\x2e\xdc\x70\x1e\xac\x3c\xd5"
"\xe4\xea\xf2\xf6\xbb\xa2\x2d\xf3\x71\x25\xbf\xaf\x2f\x44\xff\x8b\x80"
"\xeb\xd4\x16\x51\x3a\xc0\xff\x52\x6a\x56\x7d\xe4\x01\x89\xf6\xd9\x65"
"\x90\xb8\x1c\x9c\xec\xe1\x73\xe7\x65\xf8\x72\xc8\x8e\xa3\xa4\x01\xa1"
"\x82\xac\x99\x78\xc6\x83\x22\xfd\xdf\x22\xef\x54\xbe\x50\xf8\xea\x8b"
"\xef\x91\x34\x94\xe8\xa9\xa7\x57\x4d\xf3\xf4\xc3\x50\xe3\xd4\x31\x8a"
"\xca\xe0\x84\x2d\x7c\x80\x16\x02\x74\xce\x70\xda\x92\xcd\x66\x35\x89"
"\xb9\x21\x4b\xfb\xf0\x9e\xe3\xc0\xdb\x25\x54\x7a\xc7\xd5\x00\x5d\x8b"
"\x3c\xd6\xfa\x78\xa0\x89\x7e\xf9\xfb\x73\x01\x32\x8f\xb5\xb9\x7c\x23"
"\xf7\xca\x34\x4e\xbb\x0c\x7e\xe6\x97\xf4\x02\x81\x69\xcc\xac\xdb\xce"
"\xd4\x2a\x5c\x50\x69\x4b\x03\x9c\xb9\x5d\x6b\xbd\xdd\x1e\xf1\xf5\x7a"
"\xb4\xf5\xe5\x91\x0e\xe3\xd0\x2f\x3b\x46\x5d\x46\xae\x7f\x58\x01\xd3"
"\xb2\x04\xab\x98\x20\xe8\xe3\xe6\x6a\xdb\xfa\x58\xc8\x1c\xa7\x37\xb7"
"\x63\x47\xa8\xec\xc8\xd8\x81\x65\x84\x40\xfd\x66\xc6\xc2\xdf\xc3\xfa"
"\xb8\xf5\x62\x7f\xfd\xb3\xe4\xc1\xf7\xaf\x7b\xed\x13\xe8\x23\x8b\x78"
"\x04\x43\x8d\xad\x3d\x30\x80\x06\x9d\x9e\x67\xea\x0a\x6a\x0a\xe1\x2a"
"\xa3\x40\x92\x32\xb4\x20\x41\xe5\x36\x7e\xbb\x40\x44\x9b\xd8\xb2\x82"
"\x0f\x7c\x20\xa2\x0d\xad\x8f\xd7\x0a\x30\xef\xde\x58\x67\x28\x2a\xa1"
"\x49\xb2\xa0\x95\x47\x5a\x66\xea\x20\xcf\xca\x1f\x49\x37\xe5\x35\x31"
"\xc3\x26\x59\xf4\x2b\xce\x78\x28\x60\x43\xa0\x9f\xfa\x8a\x5e\xcb\xb5"
"\x3c\xb1\x9f\xf8\x31\x81\x71\x5c\xe5\x0a\x91\x39\x39\x75\x37\x3b\xa0"
"\x09\x3e\xc9\x56\xc5\x2d\xa7\xac\x6c\x88\x53\x24\x67\xd0\xfd\x33\xea"
"\x44\x32\x82\x4e\xb6\xb7\x23\x65\xc6\x2c\x64\x32\x9c\xed\x81\x53\x4b"
"\x50\x75\x9b\xc0\x32\x36\x2d\x66\x44\xd1\xb9\x76\x3c\x6a\x28\x68\x7e"
"\x67\xe1\x78\x8e\x0e\x0e\x0c\xa4\xd7\xbd\x27\xe3\x83\x67\x38\x6a\xd7"
"\xc8\x77\xef\xc9\xbf\x8d\x73\x7b\xbe\xac\x65\xc5\x63\x80\x7e\x32\x9a"
"\x50\xcd\x6e\x66\xd2\x39\x71\x98\x78\xc1\xb7\x14\x98\x9a\x06\x97\xfc"
"\x89\x74\xe6\x2b\x97\x32\xaf\x3e\xfc\x2c\xc1\x92\x84\x61\xf5\x07\x06"
"\x00\x30\x94\x75\x25\xce\x50\xa1\x3a\x52\x44\xff\xf6\xa4\x5b\x1e\x54"
"\x58\xbc\x1f\x44\x84\x67\x75\x8f\x6f\xab\x38\x70\x92\xc3\x50\xb7\x65"
"\xaa\x84\x0f\x02\x8f\xcc\xf7\x6a\x0f\x9b\x1a\xc8\x97\xed\x37\xb2\xa7"
"\x1d\xaf\x0c\xc4\xc0\xf8\x98\xd6\xa2\xa0\x24\x1a\xb8\xc1\x83\xe3\x38"
"\xf4\x29\xd2\x84\xa4\xb2\x29\x5f\xd9\x3c\xe5\x38\xf8\xa0\x7a\x31\xf7"
"\x3d\xde\x2b\x92\x84\x03\x6b\x5f\x77\x77\x85\xa4\xa4\x2d\xcf\xe8\x1b"
"\x66\x24\x97\x72\xe0\x4d\x78\xb3\xd8\x5c\x4a\x68\xe3\x42\x11\x94\xf0"
"\x54\x89\x11\x51\x9c\x75\x33\x3a\xba\xed\x30\x34\x04\x9e\x73\xe9\xd6"
"\x05\x2b\x9e\xc2\x49\x5f\x5e\xe1\x7b\x92\x47\x66\x1e\x24\x68\x2d\xf6"
"\x43\x36\x32\x3b\x7b\x85\xdd\xd6\xf0\x6b\x14\xd4\x10\x3b\xe7\x4f\x6d"
"\xaa\x44\x84\xed\xa4\x33\x9c\x24\xee\xbc\x05\xca\xc3\x54\x09\x1d\x40"
"\x2c\xc3\x5d\x00\xb9\xa5\xff\xbc\x0a\xe8\xd2\x5a\xf9\xe9\x03\xa0\x2f"
"\x01\x89\xde\x57\xb1\xfd\x62\xca\xf5\xcf\xa7\xb2\xd3\x15\x9c\xcc\x52"
"\x80\x70\xce\x3d\xbd\xb3\x51\xc3\x5f\x92\xdd\xef\x90\x43\x05\xab\xae"
"\x1b\x66\xd0\xe2\x34\x42\x14\x04\x65\xdf\xf7\x40\xcd\xb9\xe6\x01\x87"
"\x9a\x6c\x35\xc1\x50\xeb\xac\x76\x14\xfd\x8a\x4c\xce\x5b\x5b\x6e\xa8"
"\x8f\x7e\x29\x90\xe8\x26\x00\xdf\x56\xf4\xce\x67\xf7\xc0\xd8\xa9\xda"
"\x61\xd7\xa3\xb7\x38\x86\xe8\xde\x5c\x1c\x86\x06\x44\xbc\x1f\xa1\x20"
"\xb0\xae\x21\xc8\x60\xfb\x89\xd5\x88\x01\x90\x95\x7d\x8c\xd3\xc8\xc0"
"\x8a\xee\xdf\x48\x0a\x1e\x3e\x46\x55\xfb\xa1\xf8\xcd\xbd\x6c\x1b\x03"
"\x21\xd8\x0f\x3d\x5f\x9e\x0a\xf1\x7b\x81\x74\x9d\x9c\x3f\x48\x66\xfa"
"\xcf\xbe\x43\xb0\xd2\x82\x69\x31\x22\x56\x3a\x80\x5d\x9a\x8f\x4e\xe5"
"\xce\x4a\xe5\x8f\x22\x5c\x3a\x8b\x9b\xfb\xe7\xc3\x6c\x27\xd0\xbe\xd2"
"\x21\xd4\x8f\xae\xef\x03\x60\x3e\xa4\xc4\xce\x5a\xd8\x45\x30\xa6\x9e"
"\xf7\x47\x11\xd5\x40\x04\xa0\xa2\x7d\x54\x45\xc9\x76\x9a\x44\x0a\x3b"
"\xa4\xd2\x0e\x3c\x6b\x6b\x63\x35\x3e\x19\x95\xb5\x1d\xc2\xdc\x7c\x96"
"\xc7\x11\x2e\xa5\xbc\x6f\x53\xe5\x5c\xd3\xf2\x36\x8e\xea\xad\xfe\x49"
"\x0e\xa5\xec\xbd\x44\x5a\x45\xfa\x47\x69\xb4\x88\x96\xaa\x88\xfc\xd2"
"\xb0\x72\xe6\xc3\x62\x42\x37\x9c\x40\x2c\x0a\x48\xbb\x11\xde\xf2\x92"
"\x80\x28\x1d\x3a\xc5\x10\xd8\xb9\x94\x5d\xc6\xc7\x34\xc2\xc6\x53\x62"
"\x66\x3e\xcb\x96\x0e\x99\x75\xb0\xf1\xe7\x33\x42\x91\x43\x54\xa7\x34"
"\xbe\xc8\xd3\x79\x93\x09\x62\xe9\xe0\x3c\x66\x08\xb4\xaf\xd3\xea\x7c"
"\xb6\x9c\x23\x01\x4d\x0f\x0a\x84\x47\x8e\x5e\xa6\x30\x6e\xb0\xa2\x68"
"\x67\xd4\x53\x62\x63\x9e\x4c\x4c\x5f\xdb\x4e\x20\x56\x12\x2a\x85\x73"
"\x5a\x21\x46\x99\x8a\x17\x0f\x21\x6f\x8e\x98\x8d\x1e\xf2\x72\xfe\x60"
"\xf3\x3a\x2d\xdc\x74\xcb\xb0\xc3\xa8\x4b\x03\xa8\xf8\xfe\x52\xe1\x41"
"\xd1\x71\x79\x4a\x8f\xa3\x9e\x00\x95\xd6\x9f\xc8\xf6\x59\x5f\x8d\xeb"
"\x62\x45\x4e\xb2\x5b\x0b\xf2\xfb\xf5\x72\x0e\xa0\x2a\xe2\xa9\x92\xde"
"\xb2\xc6\xb5\xf5\x2a\x3d\x24\xd1\x79\xd2\xae\x8f\xe0\x1c\x33\x94\x7f"
"\xca\xb9\xab\x32\x4e\x14\x1e\x18\x00\x27\xa7\x07\x4f\x02\x18\xb4\x4a"
"\x50\x20\xa6\xea\x11\x25\x3d\x98\x43\xf7\x85\x3c\x07\x54\xc6\xd6\x8f"
"\x3e\x0f\x32\x86\xb3\xf1\x10\x07\x62\x0d\x01\xb1\x1b\x42\x5a\x4f\x5d"
"\xe4\x40\xc4\x07\x01\x07\xd7\x36\x28\x6d\x68\xe2\x8b\x17\xfb\xff\x9a"
"\xbf\x42\xdf\xa6\xaa\x74\x8e\x49\x98\xba\x53\x8b\x8e\xc2\x49\x4a\x45"
"\x32\x0e\x54\x62\x56\xa9\xa9\x55\xc0\xa8\x59\x01\x8b\xf2\x43\x1a\x6d"
"\x18\x5d\xff\x0e\xa6\xd9\xe4\xe8\xf4\x7b\xac\x33\x71\x79\x47\xb3\xf8"
"\x96\x02\x62\xb9\x53\x13\x63\x38\x05\xfb\x05\x73\x6e\x54\xa0\x55\x60"
"\xd9\xbe\x84\xdd\x62\x66\x64\x5b\xd2\xe3\xdd\x95\x09\x3e\x8e\x2b\x9b"
"\x7a\x19\x67\x18\xd0\xf5\xc1\xdd\x99\xe3\x5b\xb1\x27\xa1\x3d\xed\x5f"
"\x1c\xb9\x98\xb2\xf5\x40\x8d\xdc\x90\x65\x87\xfd\x3b\xbd\xe2\x0d\xba"
"\xb5\x6e\x25\xac\x79\x81\x58\xdd\xdb\x56\x90\x20\x27\x8a\x27\x34\x4f"
"\x4c\x9f\xb0\x42\xd9\xff\x18\x7f\x1e\x03\xb9\xab\x37\x77\x28\xe2\xc9"
"\x68\xd2\x51\xd0\x3f\x5e\x0b\x95\xc1\x6e\x80\x79\x29\xcd\xfc\x16\xc5"
"\x71\x4b\x24\xab\xce\xe1\x11\x37\xb8\x15\x13\x2e\x50\xd9\x03\x72\xf3"
"\xd9\x3b\x9b\x3d\xf7\xbb\xd2\xa2\x5e\x4d\x9b\x6f\x1a\xcf\xfb\x7b\x9e"
"\x9d\x08\x00\x01\x2e\xf0\x0c\xeb\xd6\x6c\x43\xab\x28\x28\x11\x55\x14"
"\xe9\x5b\x12\x21\x6c\x85\xc2\xd9\xd7\x8b\x5e\x80\x0b\xc6\x97\x77\xa9"
"\x11\xa7\x41\x54\xdd\xee\x71\x6e\xa1\xf2\x5b\xe6\x80\x66\x28\xe9\x71"
"\xb9\x1e\xcc\x60\x02\xe9\xca\x43\x5d\xf8\x2c\x3a\x03\x60\xa7\xa9\xee"
"\x9e\x1f\x81\x83\x6a\x79\xcf\x67\x8f\xc9\x61\xf1\x82\xd5\xd3\x1e\x8b"
"\x4a\xd2\xb1\xd1\xb6\x9b\x73\x1f\xf0\x05\xb3\x95\xa6\x5e\x00\x80\x86"
"\xd8\x7b\x93\x3d\x27\x3c\x8f\x02\xab\xd1\xf8\x43\xfb\x83\xa8\xec\x6f"
"\x67\xe9\xe8\xbf\x8d\x45\x4a\xf1\x22\xb2\xf9\x4f\x81\x14\x41\x5e\x99"
"\xba\x1e\xb8\xcc\x47\x16\xee\xfa\x06\x5b\xdf\xb0\x45\x7c\x24\x52\x8d"
"\xde\xb1\xb5\xa7\x44\xdb\x3e\x7d\xef\x78\xd5\xee\x32\x4f\xbe\x78\xb3"
"\x70\xf4\x72\x2c\x10\xbb\x08\xc2\x9f\x56\xb8\xe9\x64\x7a\x88\x79\x1b"
"\x53\x2a\x1f\x17\x94\xac\xc3\xe9\x20\x30\xfd\xc4\xdf\xef\x5d\xa0\xc8"
"\x59\xae\x89\x91\x7f\x3f\x07\xcc\x2f\xf2\xee\x36\x62\xd3\x9b\x29\x30"
"\xd9\x73\x56\x98\x5f\x9e\x04\x3c\x04\x71\x10\xe9\xe1\xfe\x20\x5f\x7a"
"\x63\xbe\x97\x83\x86\x1d\x02\x68\x49\xe2\x9b\x87\x88\x72\x1f\x9c\xfc"
"\x0b\xe8\x5d\x0b\xcc\x90\x48\xf0\x94\xd1\x4b\xfb\x62\x54\xfc\xd8\xf0"
"\x69\x4e\xcb\xa8\x4d\x31\x98\x05\xea\x29\x4d\x85\x7c\x99\xa1\x5c\xe4"
"\xb8\x87\x5c\xa8\xf8\x0b\x4e\xb8\x32\x37\x18\x49\xe3\x51\x15\x4a\xd2"
"\xb4\x03\xa3\x36\xc7\xeb\x8e\x9c\x50\x4b\x85\x39\x99\x47\x1b\x1e\x14"
"\xaf\xde\xf0\x46\x33\xb1\x78\xab\x60\x91\x8d\xab\x04\xbd\x0b\xd9\xf8"
"\x03\xbc\x38\x81\xab\x12\x80\x1f\x69\xa7\x7e\xab\x42\xa3\x7b\xbe\x2f"
"\xb1\x87\x6a\xf4\xc8\x3c\xd7\x7b\x74\xb7\xdc\x42\xd3\xb5\x90\x87\x34"
"\x77\xe9\x83\xf6\x4b\x29\xee\xaa\x45\x06\x20\x55\x27\x3b\x48\xaf\xee"
"\x77\x3f\x1f\x11\x2c\xf6\x28\xd5\x09\x1d\xb2\x93\x0e\xc4\xf3\xe8\x09"
"\x0e\x49\x68\x51\x87\x9a\xa1\x7d\xbc\x4f\xa6\x25\xe2\x53\xd0\x86\xa8"
"\x37\x87\x06\x76\x50\x9e\xdd\xca\x6f\x32\x92\x43\x06\x90\x4f\xcc\x1e"
"\x8d\x55\xdd\x67\xa8\xbc\xef\x7a\x3c\xe6\x09\xb1\x7f\x67\xdd\x42\xcc"
"\x2f\xb7\x63\x24\x12\x9a\x1f\x32\x3e\xc1\x85\x5d\x9e\x9d\x74\x3b\x03"
"\x2e\xbd\x09\x5c\x75\x5c\xd5\x10\x0a\xbd\x1d\x8a\xb0\x7b\x3a\xb3\xfa"
"\x26\x9b\x51\xf0\x7c\xba\x50\x2c\xdd\x41\x5e\x70\x05\x9a\x97\xd3\x55"
"\xbb\xf1\x9b\x27\xe8\x0d\x1a\x3e\x25\x2c\xef\x55\x3d\xf7\x97\xcc\x15"
"\x7e\x63\xc6\x39\x61\x5d\xb0\x70\x7b\xbb\x06\x9b\x47\x02\x04\x3e\xb1"
"\xef\x82\xcd\xe9\xac\x06\xdd\xd0\x7d\x12\x0c\x17\xed\x4f\xea\x72\x9c"
"\x42\xc3\x1d\x1d\x16\x79\x85\x77\x86\x2f\x4e\xde\xbb\x2e\x75\xc0\x18"
"\xb4\xc5\x3a\x5b\x4b\xdb\x1a\xdf\x75\x53\xbd\x78\x13\xd5\xe2\x59\x15"
"\xd0\x81\x80\x4e\x93\xce\x21\x92\x7a\x5c\x0d\x2b\x49\x0d\xbe\x0d\x08"
"\xe9\x0f\xa8\x0f\xed\xef\xbd\xa8\x47\x7b\xfc\x92\x95\x9d\xb5\x9d\x2a"
"\xb5\x74\x60\x42\x80\x27\xbd\xe3\x41\x0c\x2e\x85\x53\x7b\xf6\xe4\x64"
"\x22\xe9\x57\x25\xe8\xa6\x10\x6e\x11\x6d\xf0\x92\x0f\x46\x08\xa8\xb2"
"\xd8\x41\x83\x7d\x0a\x59\x31\x2b\x36\xb0\xc7\xa0\x32\x2e\x45\x77\x53"
"\x82\xdd\xb1\xf8\x1a\xe8\x8b\x24\x52\x90\x6e\x31\x70\xb5\x05\xa1\x3d"
"\x43\xab\xa7\xf6\x7b\x03\x33\x83\x28\x70\xb3\x18\x1c\x82\x23\x8d\xf4"
"\x5a\x1c\x58\x88\x38\xa1\x00\xea\xfd\xe4\xd3\x78\x19\x68\x4f\x9c\xd0"
"\x11\x79\xa9\x85\xd7\x0b\xe9\xa0\x46\x7f\x1f\x1f\x18\xbd\x55\x41\x82"
"\x1a\x1c\xb7\x10\xb7\x55\x0d\x1a\x8c\x2f\x10\xab\x68\x61\x31\xe2\xf8"
"\xd6\x64\x18\x40\x68\x52\xa9\x82\x7c\x9b\xb9\x11\xe1\xf9\x0c\xc3\xe3"
"\x11\xc3\xb4\x3a\x7d\xa1\xf6\x7e\xb8\xae\xa6\x0b\xa9\x67\x16\xaf\x60"
"\xc1\x41\x4d\xe6\x6a\x5f\x22\x8f\x60\xd8\x5c\xce\xf4\xf6\x8b\x96\xbd"
"\xf1\xf7\x4e\xfd\xdc\x9b\x3c\x3f\xa4\x18\x3b\x3c\xf0\x60\xa6\x83\xd1"
"\x3a\x47\xff\x21\x8e\x27\x62\x67\x76\xa6\x8e\xc8\x42\x79\xc5\xf9\x47"
"\x36\xb7\x2e\x84\x3e\xe6\x62\xa3\x51\x95\xef\xb9\x83\xfc\x32\xee\x25"
"\xa5\x19\x72\x15\x20\xde\xca\x83\xe7\x76\x34\xfe\x95\x97\xd8\x66\x5a"
"\x39\x81\x15\x92\x38\x3b\x74\x3a\x42\xe9\xd8\xe0\x4b\x1c\xfa\x5d\x96"
"\x35\x03\x2d\x93\x79\x99\x70\xa0\x34\x57\x56\x00\x39\x57\x1e\x2d\xab"
"\x50\xb1\x85\xa7\x70\x6d\xe0\xa9\xb6\x2c\x8b\x05\x41\xed\x36\x4e\xdc"
"\x63\x50\xec\xe3\x0f\x97\x05\x36\xe9\x41\x8a\xc0\xa3\xee\x66\xc6\x23"
"\x65\x03\xfd\x1a\x9f\x99\x93\xce\xc7\xce\x4e\x9d\xe2\xf7\x1f\xf9\x6a"
"\x79\x1b\x26\x1b\xad\x57\x46\x07\x39\xb8\xf7\xe7\x90\x05\x05\x19\xd8"
"\x1d\x48\xc7\x9d\x8f\x58\xf7\x28\x26\x45\x94\xc2\xef\x58\x88\x61\xc9"
"\xc6\x3a\x4f\xb2\xa3\x89\x9f\xf8\x64\x3a\x67\x28\x2d\x62\x26\xa7\xc8"
"\x1d\xbb\x99\x74\x5f\x5d\x7a\xef\x6e\x5d\xb5\xb9\xe2\xef\x67\xa7\x33"
"\x97\xb3\x2f\x88\x73\xfb\x96\xaf\x12\xcb\x68\xd8\x9e\x36\xd6\x73\x6c"
"\xa0\x00\x3d\xf1\x21\x86\x53\x76\xe5\x95\xf1\x72\x3a\x60\xcb\x3b\xc1"
"\xfa\xe0\x74\x8c\xa8\xef\xbc\xc0\x2d\xd5\x14\x60\xfc\xb1\xff\xe7\x0b"
"\x1a\xc7\x08\x58\xbb\xf9\x25\xed\xba\xdf\xcc\x36\x63\x8c\xb1\x96\x00"
"\x8b\x8a\x73\xdd\x62\xed\x97\x67\x02\x0d\x7a\xe4\x83\x34\x14\xec\xe1"
"\x54\x51\xf5\x54\xb1\x2e\x3c\x9f\x9a\xe9\x62\x05\x37\xe6\xc2\x6c\x50"
"\x82\x56\x8a\xed\xd0\x26\x79\x12\x86\xeb\xb5\xe6\xee\x17\x65\xc2\x13"
"\x61\x16\x52\x92\xa4\x44\x52\x61\x8a\x2d\x5b\x74\x23\x0e\x39\x17\x74"
"\x0f\xbb\x7b\xb3\xc2\xc7\x77\x2b\xce\xa9\x18\x6f\xb4\xff\x91\x7a\x79"
"\x86\x6b\x90\xfb\xfa\x2d\xe5\xf3\x7e\x99\x85\xa1\xd5\xc3\x6e\x85\xe1"
"\xab\x84\xe3\x67\x3f\x1c\xc2\x4e\x43\xa7\x4f\x92\xa9\xb3\x97\x76\xb4"
"\x12\x23\xab\x44\x96\x9c\x2c\x28\x6b\x7d\x6c\x78\x53\x56\x58\x62\x79"
"\x91\x36\xfe\x68\x27\xdc\xdd\x9a\x83\x30\x9c\x5c\x0a\x79\x5c\x2b\x01"
"\x7f\x2d\xb7\xd8\x0a\x7f\xeb\x06\x6e\x2e\xee\x46\x9a\x31\xdc\x06\x6b"
"\x22\xf7\x65\x85\x63\x6a\x2a\xd1\x26\xaa\xb2\xba\xab\x0a\x13\x1e\xc1"
"\xb0\xa9\xe0\xec\x04\xcd\x8f\xea\xa5\x73\xfe\xf2\xfc\x8d\x96\x5e\x23"
"\x37\xcb\x36\x57\xf8\x26\x14\xb2\x31\x35\x59\x5c\x33\xbb\x8e\x5f\xac"
"\x0e\xa0\xeb\x3a\xd5\xf5\xff\x6c\xdf\x35\x32\xc1\x84\xb4\x0a\x50\x12"
"\xcd\xe4\x81\xbb\x0b\xc7\x0e\xd5\x7d\x83\x16\x97\x7a\x19\x69\x10\x9f"
"\x60\x27\xe1\x95\x87\xcb\xa4\x8d\x4e\xec\xc1\xc5\x0c\xc8\xa4\xf2\xff"
"\x52\x35\x0d\xef\x78\x1c\xfe\x79\x61\x0e\xd1\x5d\xf5\x47\xe9\x4e\x6a"
"\x83\x4b\xcf\xae\x03\x57\x39\xe5\x07\xb1\x98\xc2\xc7\x79\x34\xa9\xd6"
"\xaf\xa4\xe6\xea\xc6\x2d\xf4\x6e\x08\x12\x81\x73\xd7\xe5\x65\x62\x9e"
"\xae\x9d\x56\xf6\xaa\xe0\x81\x43\xc2\x30\xb1\x2d\xaf\x6b\x0e\x5b\xa6"
"\x9b\x72\x22\xf1\x5a\x51\x8f\xba\xa4\x93\xa2\x5f\xa5\x6b\x2e\x16\xb8"
"\x5f\xe8\x0e\xe1\x91\xea\xe7\x69\xef\xb1\x87\xab\x47\xef\x35\x83\xa6"
"\xc0\x75\x08\xca\xde\x73\x1a\x57\xe6\x1c\x0e\xa9\xcc\x2b\xc8\x29\xae"
"\xef\x86\x5e\xee\x2e\x6e\x7d\x77\x45\x65\xdb\x02\xae\x56\x84\xeb\xdb"
"\x12\x01\xd6\x32\xbf\x7d\xdc\x16\xf1\xa2\x5d\x48\xad\xbb\xff\x04\x9b"
"\x6f\x5f\xd6\x6d\x04\x96\x84\x2c\xf4\xa5\x7d\xca\xaa\xeb\x1e\xc0\x15"
"\x02\x27\x2d\x4f\xc7\xed\x2b\xce\xc0\x8d\x70\xd5\x20\xae\x07\x2e\xbd"
"\x5b\x44\x77\xa7\xbb\x53\x6b\x71\xe2\xc4\x6d\x68\x6c\x18\xb3\xb2\x0c"
"\x7b\x7d\xd3\x70\x0f\xef\x0d\xa4\xb8\x37\x4f\x32\x79\x7b\x82\x2b\xef"
"\x04\x05\xc9\x12\x80\x69\xb7\xef\xc5\x68\x96\xfb\x88\xbe\x04\xbd\xf3"
"\x9c\x6c\xdc\xe6\xf6\x73\xf0\x3c\x38\xa4\x2a\xde\xb4\x36\xb3\xdd\x6f"
"\xfc\xda\x17\x50\xf2\x3d\x84\x87\x7d\xb6\x93\xf4\x5c\xbf\xf7\x2c\x65"
"\xfa\xe9\xe4\x1f\xbb\xe0\xf5\x9d\xaf\x38\x82\x3d\xfd\xf5\x84\xda\x70"
"\xf0\xd6\xc2\xb5\x44\xf4\xc9\x74\x46\xd2\xec\x59\xbd\xa8\xee\xc0\x51"
"\xc6\x6c\x65\x13\xbf\xda\x8e\xf0\x1f\x08\xfa\x8d\x8d\x9e\xed\xbe\x1e"
"\x98\xd3\x8a\x10\xd5\x77\x16\xe4\xd0\x74\xc7\xb1\xb9\x3a\xde\xeb\xbe"
"\x93\x33\xda\x24\xff\xd4\x35\x13\xef\xb8\x80\x84\xb4\xf6\x61\x82\xc7"
"\xe6\x9c\x88\xa9\xca\xf3\xf0\x1f\x50\xb1\x1d\xd7\x2e\x9d\x7a\x22\x54"
"\xcc\x3a\x88\x8e\xb6\x93\x5a\x08\x6f\x4b\xdf\x21\x0a\xe3\x7d\x5a\xce"
"\xf2\x42\xe8\xe8\x1b\x8a\xe3\xa0\x85\x7f\x7d\x4f\x12\x6a\xd2\x37\xae"
"\xa3\x8a\x2d\xa4\xdc\xd7\xed\x91\x16\x83\x1c\xd6\xcf\x18\x4b\xfb\xfe"
"\xc9\x55\x53\x55\x06\x8a\x37\x5a\xef\x62\x2b\x5e\x75\x2f\xce\x85\xff"
"\x31\xc5\x76\x71\xf7\x17\x80\xd4\x81\x57\x03\x24\xe8\x44\x5a\x4c\xc5"
"\x5a\x87\x6c\xe3\x24\x27\xcc\xbe\xc8\x3a\x27\xe6\xfa\xa2\x16\x1c\xda"
"\xe8\x58\x18\x56\xa0\xac\x4c\x18\x1e\x15\x62\x51\xb1\xa7\x33\x5a\x36"
"\x6e\xf0\x0c\x38\x41\x6e\xb0\x51\x21\xa1\x6e\x01\x1e\x80\x24\x8a\x20"
"\x5e\xc6\x3d\x03\x90\xa8\x2e\x9b\x47\x4b\xc2\xec\x8e\x5d\x16\x9f\xe2"
"\x3d\x8c\xc5\xbc\xc3\xf0\x30\x81\x14\x14\x15\xb7\x2c\x28\xf6\x4f\x25"
"\x8c\x0f\x9b\x16\x55\x14\x3d\x28\x58\x3e\x97\x2e\x4c\x9e\xe1\xbf\xb0"
"\x65\xf0\x43\xa1\xeb\x76\xb6\x4e\x28\x50\x22\xff\x26\xa2\x29\xaa\xcc"
"\x19\xd5\x41\xe3\x96\xd5\x71\x08\x09\x88\x18\x99\xed\xb5\x80\x82\x46"
"\xea\x3d\x61\xd9\xfc\x97\x3c\x22\xad\x74\x66\xc6\x04\xee\x47\xce\x64"
"\xda\x92\xad\x3b\x33\xd0\x32\x2a\x5a\xd8\x07\xea\x08\x00\xc6\x0f\x85"
"\x1e\x1f\x82\x8f\x5a\x63\xb6\xb7\x98\x84\x5b\xf4\x86\xd2\x84\x64\xe9"
"\x82\xc1\xa8\x90\xa0\x38\x06\x32\xed\xd4\xae\x7e\xd0\xa8\x39\x74\x05"
"\xaf\x74\x86\xab\x18\xcc\xb7\x92\x0b\x94\xda\x23\xeb\x85\x8c\xc4\x92"
"\xff\x33\x45\xd1\x37\x7e\x37\x92\xfd\x44\x99\xd4\x36\xb8\x26\x2d\x8c"
"\xe9\xb0\xbe\x43\x06\x8e\x35\x7f\x4a\x24\xe6\xd1\x1f\xeb\x37\x99\x63"
"\x73\x4c\x1d\x5c\x8d\x05\xc0\x4c\x00\x49\x81\xb2\x14\x6e\xa2\x48\x7b"
"\x34\xd7\xfe\xb2\x48\x00\x2a\x7a\x15\x4d\x26\x03\xf9\xfb\x78\x49\xdb"
"\x57\xc5\x6f\x09\xf8\xfd\xf5\xf9\xd3\x1e\x19\xfd\xc1\x11\x7e\xa0\x5f"
"\xcd\xf3\x1c\x01\xdd\xbe\x39\x5a\x3c\x3f\x61\x84\x04\x46\xae\x74\x52"
"\x0e\x89\x94\xfd\x91\x01\x7e\x4f\x49\x4e\x7a\x80\x47\xd2\xd4\xbd\x5b"
"\x36\xa8\xfe\xa7\x81\x30\x59\x9c\x9a\xc8\xc6\x21\x32\xa9\xfb\x66\x5e"
"\x15\x9a\xb3\x53\x4d\xa5\x46\xb6\xa3\xdb\x6a\x87\x33\x51\x67\xf4\x40"
"\x1a\x1c\xdf\x08\x09\x82\x72\x3f\x0d\x2d\x0d\x16\x9c\x93\x7e\x10\xa0"
"\x40\x09\x11\x79\x87\xc0\xb4\x26\x3e\xbc\x66\x88\x96\xc8\xcc\xd0\x74"
"\x84\x6f\xc4\xde\x8f\x90\x8c\x99\xe2\xa5\xa1\xcc\xc1\xed\xd2\x67\x8a"
"\x44\xcf\x2f\x5c\x73\xb6\x0e\x2f\x20\xdf\xb3\x77\xdb\xde\xc2\x7c\x54"
"\x7a\xe8\x94\xc8\x61\x47\xbd\x74\x5f\x87\x44\xac\xba\xf2\x38\x97\x24"
"\xc3\x10\xb1\xc8\x99\x9a\xc5\x94\xd1\xdb\x93\xcd\x16\xa4\x33\x49\x49"
"\x7c\xc5\x59\x56\x1f\xdf\x7e\x70\xcd\xea\x7f\x98\xb7\x1f\x5f\xb1\xc3"
"\x67\x34\x47\x34\x8a\xb8\x03\xeb\x89\x5e\xc7\x60\xbb\xd3\x40\xcf\xf8"
"\x80\xd9\xcf\x0e\xf5\x24\x65\x63\x1c\xc4\x47\x3a\x9e\x59\x73\xc6\x50"
"\xf7\xcd\x54\x8c\xa8\x6c\x27\xcb\x2f\x7d\xa4\x4f\xa5\x56\x57\x8a\x63"
"\x05\x17\x77\x84\x31\xc6\x4f\x3d\xe5\xe8\x84\xd4\xa6\x83\x28\x1d\x25"
"\xb3\x44\x56\x86\x8c\x14\xd4\xc4\x11\x1f\x19\x17\xc7\x16\x64\xd3\xa7"
"\xe9\x05\x4e\x0c\x64\x09\x1d\xae\x8a\x0b\xc5\x61\xb6\xc9\xbc\x1f\x6b"
"\x69\x8f\x5e\x16\x54\x95\x25\x66\x93\xa4\x9b\x40\xda\xce\x3f\xb7\xe2"
"\x82\x02\x67\xc6\xe2\xa8\x17\x53\x3f\xb0\xe4\xa0\x0a\x8b\xc1\x51\x06"
"\x0b\x61\xb2\xd2\x68\xb0\xf6\xf8\x5e\xd7\x36\xa0\xf5\x24\x5e\x9f\x35"
"\xae\xca\x6e\x00\xa9\x78\x83\x90\xbf\x31\xb7\x2e\x75\x63\xd0\x82",
4096);
syscall(__NR_write, r[0], 0x20000240, 0x120a);
break;
}
}
void loop()
{
execute(9);
collide = 1;
execute(9);
}
int main()
{
syscall(__NR_mmap, 0x20000000, 0x1000000, 3, 0x32, -1, 0);
loop();
return 0;
}