* #36737: switch back to svn repo, remove assert in sip_transaction.c
diff --git a/jni/pjproject-android/.svn/pristine/54/54023a36c884ec70f1ccac8cccf8661cf6861769.svn-base b/jni/pjproject-android/.svn/pristine/54/54023a36c884ec70f1ccac8cccf8661cf6861769.svn-base
new file mode 100644
index 0000000..565a993
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/54/54023a36c884ec70f1ccac8cccf8661cf6861769.svn-base
@@ -0,0 +1,189 @@
+/* $Id$ */
+/*
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#include <pj/fifobuf.h>
+#include <pj/log.h>
+#include <pj/assert.h>
+#include <pj/os.h>
+
+#define THIS_FILE "fifobuf"
+
+#define SZ sizeof(unsigned)
+
+PJ_DEF(void) pj_fifobuf_init (pj_fifobuf_t *fifobuf, void *buffer, unsigned size)
+{
+ PJ_CHECK_STACK();
+
+ PJ_LOG(6, (THIS_FILE,
+ "fifobuf_init fifobuf=%p buffer=%p, size=%d",
+ fifobuf, buffer, size));
+
+ fifobuf->first = (char*)buffer;
+ fifobuf->last = fifobuf->first + size;
+ fifobuf->ubegin = fifobuf->uend = fifobuf->first;
+ fifobuf->full = 0;
+}
+
+PJ_DEF(unsigned) pj_fifobuf_max_size (pj_fifobuf_t *fifobuf)
+{
+ unsigned s1, s2;
+
+ PJ_CHECK_STACK();
+
+ if (fifobuf->uend >= fifobuf->ubegin) {
+ s1 = (unsigned)(fifobuf->last - fifobuf->uend);
+ s2 = (unsigned)(fifobuf->ubegin - fifobuf->first);
+ } else {
+ s1 = s2 = (unsigned)(fifobuf->ubegin - fifobuf->uend);
+ }
+
+ return s1<s2 ? s2 : s1;
+}
+
+PJ_DEF(void*) pj_fifobuf_alloc (pj_fifobuf_t *fifobuf, unsigned size)
+{
+ unsigned available;
+ char *start;
+
+ PJ_CHECK_STACK();
+
+ if (fifobuf->full) {
+ PJ_LOG(6, (THIS_FILE,
+ "fifobuf_alloc fifobuf=%p, size=%d: full!",
+ fifobuf, size));
+ return NULL;
+ }
+
+ /* try to allocate from the end part of the fifo */
+ if (fifobuf->uend >= fifobuf->ubegin) {
+ available = (unsigned)(fifobuf->last - fifobuf->uend);
+ if (available >= size+SZ) {
+ char *ptr = fifobuf->uend;
+ fifobuf->uend += (size+SZ);
+ if (fifobuf->uend == fifobuf->last)
+ fifobuf->uend = fifobuf->first;
+ if (fifobuf->uend == fifobuf->ubegin)
+ fifobuf->full = 1;
+ *(unsigned*)ptr = size+SZ;
+ ptr += SZ;
+
+ PJ_LOG(6, (THIS_FILE,
+ "fifobuf_alloc fifobuf=%p, size=%d: returning %p, p1=%p, p2=%p",
+ fifobuf, size, ptr, fifobuf->ubegin, fifobuf->uend));
+ return ptr;
+ }
+ }
+
+ /* try to allocate from the start part of the fifo */
+ start = (fifobuf->uend <= fifobuf->ubegin) ? fifobuf->uend : fifobuf->first;
+ available = (unsigned)(fifobuf->ubegin - start);
+ if (available >= size+SZ) {
+ char *ptr = start;
+ fifobuf->uend = start + size + SZ;
+ if (fifobuf->uend == fifobuf->ubegin)
+ fifobuf->full = 1;
+ *(unsigned*)ptr = size+SZ;
+ ptr += SZ;
+
+ PJ_LOG(6, (THIS_FILE,
+ "fifobuf_alloc fifobuf=%p, size=%d: returning %p, p1=%p, p2=%p",
+ fifobuf, size, ptr, fifobuf->ubegin, fifobuf->uend));
+ return ptr;
+ }
+
+ PJ_LOG(6, (THIS_FILE,
+ "fifobuf_alloc fifobuf=%p, size=%d: no space left! p1=%p, p2=%p",
+ fifobuf, size, fifobuf->ubegin, fifobuf->uend));
+ return NULL;
+}
+
+PJ_DEF(pj_status_t) pj_fifobuf_unalloc (pj_fifobuf_t *fifobuf, void *buf)
+{
+ char *ptr = (char*)buf;
+ char *endptr;
+ unsigned sz;
+
+ PJ_CHECK_STACK();
+
+ ptr -= SZ;
+ sz = *(unsigned*)ptr;
+
+ endptr = fifobuf->uend;
+ if (endptr == fifobuf->first)
+ endptr = fifobuf->last;
+
+ if (ptr+sz != endptr) {
+ pj_assert(!"Invalid pointer to undo alloc");
+ return -1;
+ }
+
+ fifobuf->uend = ptr;
+ fifobuf->full = 0;
+
+ PJ_LOG(6, (THIS_FILE,
+ "fifobuf_unalloc fifobuf=%p, ptr=%p, size=%d, p1=%p, p2=%p",
+ fifobuf, buf, sz, fifobuf->ubegin, fifobuf->uend));
+
+ return 0;
+}
+
+PJ_DEF(pj_status_t) pj_fifobuf_free (pj_fifobuf_t *fifobuf, void *buf)
+{
+ char *ptr = (char*)buf;
+ char *end;
+ unsigned sz;
+
+ PJ_CHECK_STACK();
+
+ ptr -= SZ;
+ if (ptr < fifobuf->first || ptr >= fifobuf->last) {
+ pj_assert(!"Invalid pointer to free");
+ return -1;
+ }
+
+ if (ptr != fifobuf->ubegin && ptr != fifobuf->first) {
+ pj_assert(!"Invalid free() sequence!");
+ return -1;
+ }
+
+ end = (fifobuf->uend > fifobuf->ubegin) ? fifobuf->uend : fifobuf->last;
+ sz = *(unsigned*)ptr;
+ if (ptr+sz > end) {
+ pj_assert(!"Invalid size!");
+ return -1;
+ }
+
+ fifobuf->ubegin = ptr + sz;
+
+ /* Rollover */
+ if (fifobuf->ubegin == fifobuf->last)
+ fifobuf->ubegin = fifobuf->first;
+
+ /* Reset if fifobuf is empty */
+ if (fifobuf->ubegin == fifobuf->uend)
+ fifobuf->ubegin = fifobuf->uend = fifobuf->first;
+
+ fifobuf->full = 0;
+
+ PJ_LOG(6, (THIS_FILE,
+ "fifobuf_free fifobuf=%p, ptr=%p, size=%d, p1=%p, p2=%p",
+ fifobuf, buf, sz, fifobuf->ubegin, fifobuf->uend));
+
+ return 0;
+}
diff --git a/jni/pjproject-android/.svn/pristine/54/5469cde0a780d0c6adf42a169c0175bcb721b1ec.svn-base b/jni/pjproject-android/.svn/pristine/54/5469cde0a780d0c6adf42a169c0175bcb721b1ec.svn-base
new file mode 100644
index 0000000..14306ed
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/54/5469cde0a780d0c6adf42a169c0175bcb721b1ec.svn-base
@@ -0,0 +1,4207 @@
+/* $Id$ */
+/*
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/*
+ * The tables here and also the conversion ideas are contributed by
+ * Toni Rutar <toni at aufbix.org>. Many thanks!
+ */
+#include <pjmedia/alaw_ulaw.h>
+
+#if defined(PJMEDIA_HAS_ALAW_ULAW_TABLE) && PJMEDIA_HAS_ALAW_ULAW_TABLE!=0
+
+const pj_uint8_t pjmedia_linear2ulaw_tab[16384] =
+{
+ 0xff,0xfe,0xfe,0xfd,0xfd,0xfc,0xfc,0xfb,
+ 0xfb,0xfa,0xfa,0xf9,0xf9,0xf8,0xf8,0xf7,
+ 0xf7,0xf6,0xf6,0xf5,0xf5,0xf4,0xf4,0xf3,
+ 0xf3,0xf2,0xf2,0xf1,0xf1,0xf0,0xf0,0xef,
+ 0xef,0xef,0xef,0xee,0xee,0xee,0xee,0xed,
+ 0xed,0xed,0xed,0xec,0xec,0xec,0xec,0xeb,
+ 0xeb,0xeb,0xeb,0xea,0xea,0xea,0xea,0xe9,
+ 0xe9,0xe9,0xe9,0xe8,0xe8,0xe8,0xe8,0xe7,
+ 0xe7,0xe7,0xe7,0xe6,0xe6,0xe6,0xe6,0xe5,
+ 0xe5,0xe5,0xe5,0xe4,0xe4,0xe4,0xe4,0xe3,
+ 0xe3,0xe3,0xe3,0xe2,0xe2,0xe2,0xe2,0xe1,
+ 0xe1,0xe1,0xe1,0xe0,0xe0,0xe0,0xe0,0xdf,
+ 0xdf,0xdf,0xdf,0xdf,0xdf,0xdf,0xdf,0xde,
+ 0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xdd,
+ 0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdc,
+ 0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,0xdb,
+ 0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xda,
+ 0xda,0xda,0xda,0xda,0xda,0xda,0xda,0xd9,
+ 0xd9,0xd9,0xd9,0xd9,0xd9,0xd9,0xd9,0xd8,
+ 0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd7,
+ 0xd7,0xd7,0xd7,0xd7,0xd7,0xd7,0xd7,0xd6,
+ 0xd6,0xd6,0xd6,0xd6,0xd6,0xd6,0xd6,0xd5,
+ 0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd4,
+ 0xd4,0xd4,0xd4,0xd4,0xd4,0xd4,0xd4,0xd3,
+ 0xd3,0xd3,0xd3,0xd3,0xd3,0xd3,0xd3,0xd2,
+ 0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd1,
+ 0xd1,0xd1,0xd1,0xd1,0xd1,0xd1,0xd1,0xd0,
+ 0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xcf,
+ 0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,
+ 0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xce,
+ 0xce,0xce,0xce,0xce,0xce,0xce,0xce,0xce,
+ 0xce,0xce,0xce,0xce,0xce,0xce,0xce,0xcd,
+ 0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,
+ 0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcd,0xcc,
+ 0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,
+ 0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcb,
+ 0xcb,0xcb,0xcb,0xcb,0xcb,0xcb,0xcb,0xcb,
+ 0xcb,0xcb,0xcb,0xcb,0xcb,0xcb,0xcb,0xca,
+ 0xca,0xca,0xca,0xca,0xca,0xca,0xca,0xca,
+ 0xca,0xca,0xca,0xca,0xca,0xca,0xca,0xc9,
+ 0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,
+ 0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc8,
+ 0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,
+ 0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc7,
+ 0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,
+ 0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc6,
+ 0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,
+ 0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc5,
+ 0xc5,0xc5,0xc5,0xc5,0xc5,0xc5,0xc5,0xc5,
+ 0xc5,0xc5,0xc5,0xc5,0xc5,0xc5,0xc5,0xc4,
+ 0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+ 0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc3,
+ 0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,
+ 0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc2,
+ 0xc2,0xc2,0xc2,0xc2,0xc2,0xc2,0xc2,0xc2,
+ 0xc2,0xc2,0xc2,0xc2,0xc2,0xc2,0xc2,0xc1,
+ 0xc1,0xc1,0xc1,0xc1,0xc1,0xc1,0xc1,0xc1,
+ 0xc1,0xc1,0xc1,0xc1,0xc1,0xc1,0xc1,0xc0,
+ 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
+ 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xbf,
+ 0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,
+ 0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,
+ 0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,
+ 0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbe,
+ 0xbe,0xbe,0xbe,0xbe,0xbe,0xbe,0xbe,0xbe,
+ 0xbe,0xbe,0xbe,0xbe,0xbe,0xbe,0xbe,0xbe,
+ 0xbe,0xbe,0xbe,0xbe,0xbe,0xbe,0xbe,0xbe,
+ 0xbe,0xbe,0xbe,0xbe,0xbe,0xbe,0xbe,0xbd,
+ 0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,
+ 0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,
+ 0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,
+ 0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbc,
+ 0xbc,0xbc,0xbc,0xbc,0xbc,0xbc,0xbc,0xbc,
+ 0xbc,0xbc,0xbc,0xbc,0xbc,0xbc,0xbc,0xbc,
+ 0xbc,0xbc,0xbc,0xbc,0xbc,0xbc,0xbc,0xbc,
+ 0xbc,0xbc,0xbc,0xbc,0xbc,0xbc,0xbc,0xbb,
+ 0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,
+ 0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,
+ 0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,
+ 0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xbb,0xba,
+ 0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,
+ 0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,
+ 0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,
+ 0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xb9,
+ 0xb9,0xb9,0xb9,0xb9,0xb9,0xb9,0xb9,0xb9,
+ 0xb9,0xb9,0xb9,0xb9,0xb9,0xb9,0xb9,0xb9,
+ 0xb9,0xb9,0xb9,0xb9,0xb9,0xb9,0xb9,0xb9,
+ 0xb9,0xb9,0xb9,0xb9,0xb9,0xb9,0xb9,0xb8,
+ 0xb8,0xb8,0xb8,0xb8,0xb8,0xb8,0xb8,0xb8,
+ 0xb8,0xb8,0xb8,0xb8,0xb8,0xb8,0xb8,0xb8,
+ 0xb8,0xb8,0xb8,0xb8,0xb8,0xb8,0xb8,0xb8,
+ 0xb8,0xb8,0xb8,0xb8,0xb8,0xb8,0xb8,0xb7,
+ 0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,
+ 0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,
+ 0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,
+ 0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb6,
+ 0xb6,0xb6,0xb6,0xb6,0xb6,0xb6,0xb6,0xb6,
+ 0xb6,0xb6,0xb6,0xb6,0xb6,0xb6,0xb6,0xb6,
+ 0xb6,0xb6,0xb6,0xb6,0xb6,0xb6,0xb6,0xb6,
+ 0xb6,0xb6,0xb6,0xb6,0xb6,0xb6,0xb6,0xb5,
+ 0xb5,0xb5,0xb5,0xb5,0xb5,0xb5,0xb5,0xb5,
+ 0xb5,0xb5,0xb5,0xb5,0xb5,0xb5,0xb5,0xb5,
+ 0xb5,0xb5,0xb5,0xb5,0xb5,0xb5,0xb5,0xb5,
+ 0xb5,0xb5,0xb5,0xb5,0xb5,0xb5,0xb5,0xb4,
+ 0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,
+ 0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,
+ 0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,
+ 0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb3,
+ 0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,
+ 0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,
+ 0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,
+ 0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,0xb2,
+ 0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,
+ 0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,
+ 0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,
+ 0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb1,
+ 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+ 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+ 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+ 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb0,
+ 0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,
+ 0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,
+ 0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,
+ 0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xaf,
+ 0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,
+ 0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,
+ 0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,
+ 0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,
+ 0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,
+ 0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,
+ 0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,
+ 0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xae,
+ 0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+ 0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+ 0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+ 0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+ 0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+ 0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+ 0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+ 0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xad,
+ 0xad,0xad,0xad,0xad,0xad,0xad,0xad,0xad,
+ 0xad,0xad,0xad,0xad,0xad,0xad,0xad,0xad,
+ 0xad,0xad,0xad,0xad,0xad,0xad,0xad,0xad,
+ 0xad,0xad,0xad,0xad,0xad,0xad,0xad,0xad,
+ 0xad,0xad,0xad,0xad,0xad,0xad,0xad,0xad,
+ 0xad,0xad,0xad,0xad,0xad,0xad,0xad,0xad,
+ 0xad,0xad,0xad,0xad,0xad,0xad,0xad,0xad,
+ 0xad,0xad,0xad,0xad,0xad,0xad,0xad,0xac,
+ 0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,
+ 0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,
+ 0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,
+ 0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,
+ 0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,
+ 0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,
+ 0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,
+ 0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xab,
+ 0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,
+ 0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,
+ 0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,
+ 0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,
+ 0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,
+ 0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,
+ 0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,
+ 0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xaa,
+ 0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
+ 0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
+ 0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
+ 0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
+ 0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
+ 0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
+ 0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
+ 0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xa9,
+ 0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,
+ 0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,
+ 0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,
+ 0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,
+ 0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,
+ 0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,
+ 0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,
+ 0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa8,
+ 0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,
+ 0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,
+ 0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,
+ 0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,
+ 0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,
+ 0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,
+ 0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,
+ 0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa7,
+ 0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,
+ 0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,
+ 0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,
+ 0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,
+ 0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,
+ 0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,
+ 0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,
+ 0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa6,
+ 0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,
+ 0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,
+ 0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,
+ 0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,
+ 0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,
+ 0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,
+ 0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,
+ 0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa6,0xa5,
+ 0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,
+ 0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,
+ 0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,
+ 0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,
+ 0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,
+ 0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,
+ 0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,
+ 0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa4,
+ 0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,
+ 0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,
+ 0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,
+ 0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,
+ 0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,
+ 0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,
+ 0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,
+ 0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa3,
+ 0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,
+ 0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,
+ 0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,
+ 0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,
+ 0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,
+ 0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,
+ 0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,
+ 0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa2,
+ 0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,
+ 0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,
+ 0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,
+ 0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,
+ 0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,
+ 0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,
+ 0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,
+ 0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa1,
+ 0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,
+ 0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,
+ 0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,
+ 0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,
+ 0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,
+ 0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,
+ 0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,
+ 0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa1,0xa0,
+ 0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,
+ 0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,
+ 0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,
+ 0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,
+ 0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,
+ 0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,
+ 0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,
+ 0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0x9f,
+ 0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+ 0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+ 0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+ 0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+ 0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+ 0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+ 0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+ 0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+ 0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+ 0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+ 0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+ 0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+ 0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+ 0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+ 0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+ 0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9e,
+ 0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,
+ 0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,
+ 0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,
+ 0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,
+ 0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,
+ 0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,
+ 0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,
+ 0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,
+ 0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,
+ 0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,
+ 0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,
+ 0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,
+ 0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,
+ 0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,
+ 0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,
+ 0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9d,
+ 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,
+ 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,
+ 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,
+ 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,
+ 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,
+ 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,
+ 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,
+ 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,
+ 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,
+ 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,
+ 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,
+ 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,
+ 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,
+ 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,
+ 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,
+ 0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9c,
+ 0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+ 0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+ 0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+ 0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+ 0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+ 0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+ 0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+ 0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+ 0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+ 0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+ 0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+ 0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+ 0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+ 0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+ 0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+ 0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9b,
+ 0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+ 0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+ 0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+ 0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+ 0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+ 0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+ 0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+ 0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+ 0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+ 0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+ 0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+ 0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+ 0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+ 0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+ 0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+ 0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9a,
+ 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+ 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+ 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+ 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+ 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+ 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+ 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+ 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+ 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+ 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+ 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+ 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+ 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+ 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+ 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+ 0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+ 0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+ 0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+ 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,
+ 0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+ 0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+ 0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,
+ 0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+ 0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
+ 0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,
+ 0x0e,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
+ 0x0f,0x0f,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+ 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+ 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+ 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+ 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+ 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+ 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+ 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+ 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+ 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+ 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+ 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+ 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+ 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+ 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+ 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+ 0x1a,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+ 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+ 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+ 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+ 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+ 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+ 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+ 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+ 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+ 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+ 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+ 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+ 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+ 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+ 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+ 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+ 0x1b,0x1b,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
+ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
+ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
+ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
+ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
+ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
+ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
+ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
+ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
+ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
+ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
+ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
+ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
+ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
+ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
+ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,
+ 0x1c,0x1c,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,
+ 0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,
+ 0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,
+ 0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,
+ 0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,
+ 0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,
+ 0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,
+ 0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,
+ 0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,
+ 0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,
+ 0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,
+ 0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,
+ 0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,
+ 0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,
+ 0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,
+ 0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,
+ 0x1d,0x1d,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
+ 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
+ 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
+ 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
+ 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
+ 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
+ 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
+ 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
+ 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
+ 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
+ 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
+ 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
+ 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
+ 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
+ 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
+ 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
+ 0x1f,0x1f,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,
+ 0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,
+ 0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,
+ 0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,
+ 0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,
+ 0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,
+ 0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,
+ 0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,
+ 0x2a,0x2a,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,
+ 0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,
+ 0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,
+ 0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,
+ 0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,
+ 0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,
+ 0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,
+ 0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,
+ 0x2b,0x2b,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,
+ 0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,
+ 0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,
+ 0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,
+ 0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,
+ 0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,
+ 0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,
+ 0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,
+ 0x2c,0x2c,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,
+ 0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,
+ 0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,
+ 0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,
+ 0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,
+ 0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,
+ 0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,
+ 0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,
+ 0x2d,0x2d,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,
+ 0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,
+ 0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,
+ 0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,
+ 0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,
+ 0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,
+ 0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,
+ 0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,
+ 0x2e,0x2e,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,
+ 0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,
+ 0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,
+ 0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,
+ 0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,
+ 0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,
+ 0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,
+ 0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,
+ 0x2f,0x2f,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,
+ 0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,
+ 0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,
+ 0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,
+ 0x3a,0x3a,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,
+ 0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,
+ 0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,
+ 0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,
+ 0x3b,0x3b,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,
+ 0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,
+ 0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,
+ 0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,
+ 0x3c,0x3c,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,
+ 0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,
+ 0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,
+ 0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,
+ 0x3d,0x3d,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,
+ 0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,
+ 0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,
+ 0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,
+ 0x3e,0x3e,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
+ 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
+ 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
+ 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
+ 0x3f,0x3f,0x40,0x40,0x40,0x40,0x40,0x40,
+ 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+ 0x40,0x40,0x41,0x41,0x41,0x41,0x41,0x41,
+ 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
+ 0x41,0x41,0x42,0x42,0x42,0x42,0x42,0x42,
+ 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
+ 0x42,0x42,0x43,0x43,0x43,0x43,0x43,0x43,
+ 0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x43,
+ 0x43,0x43,0x44,0x44,0x44,0x44,0x44,0x44,
+ 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
+ 0x44,0x44,0x45,0x45,0x45,0x45,0x45,0x45,
+ 0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,
+ 0x45,0x45,0x46,0x46,0x46,0x46,0x46,0x46,
+ 0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,
+ 0x46,0x46,0x47,0x47,0x47,0x47,0x47,0x47,
+ 0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,
+ 0x47,0x47,0x48,0x48,0x48,0x48,0x48,0x48,
+ 0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,
+ 0x48,0x48,0x49,0x49,0x49,0x49,0x49,0x49,
+ 0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,
+ 0x49,0x49,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,
+ 0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,
+ 0x4a,0x4a,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,
+ 0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,
+ 0x4b,0x4b,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,
+ 0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,
+ 0x4c,0x4c,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+ 0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+ 0x4d,0x4d,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,
+ 0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,
+ 0x4e,0x4e,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,
+ 0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,
+ 0x4f,0x4f,0x50,0x50,0x50,0x50,0x50,0x50,
+ 0x50,0x50,0x51,0x51,0x51,0x51,0x51,0x51,
+ 0x51,0x51,0x52,0x52,0x52,0x52,0x52,0x52,
+ 0x52,0x52,0x53,0x53,0x53,0x53,0x53,0x53,
+ 0x53,0x53,0x54,0x54,0x54,0x54,0x54,0x54,
+ 0x54,0x54,0x55,0x55,0x55,0x55,0x55,0x55,
+ 0x55,0x55,0x56,0x56,0x56,0x56,0x56,0x56,
+ 0x56,0x56,0x57,0x57,0x57,0x57,0x57,0x57,
+ 0x57,0x57,0x58,0x58,0x58,0x58,0x58,0x58,
+ 0x58,0x58,0x59,0x59,0x59,0x59,0x59,0x59,
+ 0x59,0x59,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,
+ 0x5a,0x5a,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,
+ 0x5b,0x5b,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,
+ 0x5c,0x5c,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,
+ 0x5d,0x5d,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,
+ 0x5e,0x5e,0x5f,0x5f,0x5f,0x5f,0x5f,0x5f,
+ 0x5f,0x5f,0x60,0x60,0x60,0x60,0x61,0x61,
+ 0x61,0x61,0x62,0x62,0x62,0x62,0x63,0x63,
+ 0x63,0x63,0x64,0x64,0x64,0x64,0x65,0x65,
+ 0x65,0x65,0x66,0x66,0x66,0x66,0x67,0x67,
+ 0x67,0x67,0x68,0x68,0x68,0x68,0x69,0x69,
+ 0x69,0x69,0x6a,0x6a,0x6a,0x6a,0x6b,0x6b,
+ 0x6b,0x6b,0x6c,0x6c,0x6c,0x6c,0x6d,0x6d,
+ 0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,
+ 0x6f,0x6f,0x70,0x70,0x71,0x71,0x72,0x72,
+ 0x73,0x73,0x74,0x74,0x75,0x75,0x76,0x76,
+ 0x77,0x77,0x78,0x78,0x79,0x79,0x7a,0x7a,
+ 0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e
+};
+
+
+const pj_uint8_t pjmedia_linear2alaw_tab[16384] =
+{
+ 0xD5,0xD5,0xD5,0xD5,0xD4,0xD4,0xD4,0xD4,
+ 0xD7,0xD7,0xD7,0xD7,0xD6,0xD6,0xD6,0xD6,
+ 0xD1,0xD1,0xD1,0xD1,0xD0,0xD0,0xD0,0xD0,
+ 0xD3,0xD3,0xD3,0xD3,0xD2,0xD2,0xD2,0xD2,
+ 0xDD,0xDD,0xDD,0xDD,0xDC,0xDC,0xDC,0xDC,
+ 0xDF,0xDF,0xDF,0xDF,0xDE,0xDE,0xDE,0xDE,
+ 0xD9,0xD9,0xD9,0xD9,0xD8,0xD8,0xD8,0xD8,
+ 0xDB,0xDB,0xDB,0xDB,0xDA,0xDA,0xDA,0xDA,
+ 0xC5,0xC5,0xC5,0xC5,0xC4,0xC4,0xC4,0xC4,
+ 0xC7,0xC7,0xC7,0xC7,0xC6,0xC6,0xC6,0xC6,
+ 0xC1,0xC1,0xC1,0xC1,0xC0,0xC0,0xC0,0xC0,
+ 0xC3,0xC3,0xC3,0xC3,0xC2,0xC2,0xC2,0xC2,
+ 0xCD,0xCD,0xCD,0xCD,0xCC,0xCC,0xCC,0xCC,
+ 0xCF,0xCF,0xCF,0xCF,0xCE,0xCE,0xCE,0xCE,
+ 0xC9,0xC9,0xC9,0xC9,0xC8,0xC8,0xC8,0xC8,
+ 0xCB,0xCB,0xCB,0xCB,0xCA,0xCA,0xCA,0xCA,
+ 0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,
+ 0xF4,0xF4,0xF4,0xF4,0xF4,0xF4,0xF4,0xF4,
+ 0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,
+ 0xF6,0xF6,0xF6,0xF6,0xF6,0xF6,0xF6,0xF6,
+ 0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,
+ 0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
+ 0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,
+ 0xF2,0xF2,0xF2,0xF2,0xF2,0xF2,0xF2,0xF2,
+ 0xFD,0xFD,0xFD,0xFD,0xFD,0xFD,0xFD,0xFD,
+ 0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+ 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,
+ 0xF9,0xF9,0xF9,0xF9,0xF9,0xF9,0xF9,0xF9,
+ 0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,
+ 0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,
+ 0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,
+ 0xE5,0xE5,0xE5,0xE5,0xE5,0xE5,0xE5,0xE5,
+ 0xE5,0xE5,0xE5,0xE5,0xE5,0xE5,0xE5,0xE5,
+ 0xE4,0xE4,0xE4,0xE4,0xE4,0xE4,0xE4,0xE4,
+ 0xE4,0xE4,0xE4,0xE4,0xE4,0xE4,0xE4,0xE4,
+ 0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,
+ 0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,
+ 0xE6,0xE6,0xE6,0xE6,0xE6,0xE6,0xE6,0xE6,
+ 0xE6,0xE6,0xE6,0xE6,0xE6,0xE6,0xE6,0xE6,
+ 0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,
+ 0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,
+ 0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
+ 0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
+ 0xE3,0xE3,0xE3,0xE3,0xE3,0xE3,0xE3,0xE3,
+ 0xE3,0xE3,0xE3,0xE3,0xE3,0xE3,0xE3,0xE3,
+ 0xE2,0xE2,0xE2,0xE2,0xE2,0xE2,0xE2,0xE2,
+ 0xE2,0xE2,0xE2,0xE2,0xE2,0xE2,0xE2,0xE2,
+ 0xED,0xED,0xED,0xED,0xED,0xED,0xED,0xED,
+ 0xED,0xED,0xED,0xED,0xED,0xED,0xED,0xED,
+ 0xEC,0xEC,0xEC,0xEC,0xEC,0xEC,0xEC,0xEC,
+ 0xEC,0xEC,0xEC,0xEC,0xEC,0xEC,0xEC,0xEC,
+ 0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,
+ 0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,
+ 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,
+ 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,
+ 0xE9,0xE9,0xE9,0xE9,0xE9,0xE9,0xE9,0xE9,
+ 0xE9,0xE9,0xE9,0xE9,0xE9,0xE9,0xE9,0xE9,
+ 0xE8,0xE8,0xE8,0xE8,0xE8,0xE8,0xE8,0xE8,
+ 0xE8,0xE8,0xE8,0xE8,0xE8,0xE8,0xE8,0xE8,
+ 0xEB,0xEB,0xEB,0xEB,0xEB,0xEB,0xEB,0xEB,
+ 0xEB,0xEB,0xEB,0xEB,0xEB,0xEB,0xEB,0xEB,
+ 0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,
+ 0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,0xEA,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+ 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,
+ 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,
+ 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,
+ 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,
+ 0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,
+ 0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,
+ 0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,
+ 0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,0x9C,
+ 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,
+ 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,
+ 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,
+ 0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,0x9F,
+ 0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,
+ 0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,
+ 0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,
+ 0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,0x9E,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+ 0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,
+ 0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,
+ 0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,
+ 0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,0x9B,
+ 0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,
+ 0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,
+ 0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,
+ 0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,0x9A,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+ 0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,
+ 0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,
+ 0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,
+ 0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,
+ 0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,
+ 0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,
+ 0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,
+ 0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,0x8D,
+ 0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,
+ 0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,
+ 0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,
+ 0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,
+ 0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,
+ 0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,
+ 0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,
+ 0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,
+ 0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,
+ 0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,
+ 0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,
+ 0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,
+ 0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,
+ 0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,
+ 0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,
+ 0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,
+ 0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,
+ 0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,
+ 0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,
+ 0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,
+ 0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,
+ 0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,
+ 0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,
+ 0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,0x8E,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+ 0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,
+ 0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,
+ 0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,
+ 0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,
+ 0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,
+ 0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,
+ 0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,
+ 0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,
+ 0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,
+ 0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,
+ 0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,
+ 0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,
+ 0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,
+ 0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,
+ 0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,
+ 0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,0x8A,
+ 0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,
+ 0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,
+ 0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,
+ 0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,
+ 0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,
+ 0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,
+ 0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,
+ 0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,
+ 0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,
+ 0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,
+ 0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,
+ 0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,
+ 0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,
+ 0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,
+ 0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,
+ 0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,0xB5,
+ 0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,
+ 0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,
+ 0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,
+ 0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,
+ 0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,
+ 0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,
+ 0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,
+ 0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,
+ 0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,
+ 0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,
+ 0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,
+ 0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,
+ 0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,
+ 0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,
+ 0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,
+ 0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,0xB4,
+ 0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,
+ 0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,
+ 0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,
+ 0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,
+ 0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,
+ 0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,
+ 0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,
+ 0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,
+ 0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,
+ 0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,
+ 0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,
+ 0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,
+ 0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,
+ 0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,
+ 0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,
+ 0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,0xB7,
+ 0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,
+ 0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,
+ 0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,
+ 0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,
+ 0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,
+ 0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,
+ 0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,
+ 0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,
+ 0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,
+ 0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,
+ 0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,
+ 0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,
+ 0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,
+ 0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,
+ 0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,
+ 0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,0xB6,
+ 0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,
+ 0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,
+ 0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,
+ 0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,
+ 0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,
+ 0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,
+ 0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,
+ 0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,
+ 0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,
+ 0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,
+ 0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,
+ 0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,
+ 0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,
+ 0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,
+ 0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,
+ 0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,0xB1,
+ 0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,
+ 0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,
+ 0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,
+ 0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,
+ 0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,
+ 0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,
+ 0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,
+ 0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,
+ 0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,
+ 0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,
+ 0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,
+ 0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,
+ 0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,
+ 0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,
+ 0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,
+ 0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,0xB0,
+ 0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,
+ 0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,
+ 0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,
+ 0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,
+ 0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,
+ 0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,
+ 0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,
+ 0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,
+ 0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,
+ 0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,
+ 0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,
+ 0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,
+ 0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,
+ 0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,
+ 0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,
+ 0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,0xB3,
+ 0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,
+ 0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,
+ 0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,
+ 0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,
+ 0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,
+ 0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,
+ 0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,
+ 0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,
+ 0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,
+ 0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,
+ 0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,
+ 0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,
+ 0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,
+ 0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,
+ 0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,
+ 0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,0xB2,
+ 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,
+ 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,
+ 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,
+ 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,
+ 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,
+ 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,
+ 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,
+ 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,
+ 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,
+ 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,
+ 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,
+ 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,
+ 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,
+ 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,
+ 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,
+ 0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,
+ 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,
+ 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,
+ 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,
+ 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,
+ 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,
+ 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,
+ 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,
+ 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,
+ 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,
+ 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,
+ 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,
+ 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,
+ 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,
+ 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,
+ 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,
+ 0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,
+ 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,
+ 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,
+ 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,
+ 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,
+ 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,
+ 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,
+ 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,
+ 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,
+ 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,
+ 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,
+ 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,
+ 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,
+ 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,
+ 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,
+ 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,
+ 0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,
+ 0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,
+ 0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,
+ 0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,
+ 0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,
+ 0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,
+ 0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,
+ 0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,
+ 0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,
+ 0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,
+ 0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,
+ 0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,
+ 0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,
+ 0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,
+ 0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,
+ 0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,
+ 0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,0xBE,
+ 0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,
+ 0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,
+ 0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,
+ 0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,
+ 0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,
+ 0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,
+ 0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,
+ 0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,
+ 0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,
+ 0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,
+ 0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,
+ 0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,
+ 0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,
+ 0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,
+ 0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,
+ 0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,
+ 0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,
+ 0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,
+ 0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,
+ 0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,
+ 0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,
+ 0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,
+ 0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,
+ 0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,
+ 0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,
+ 0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,
+ 0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,
+ 0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,
+ 0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,
+ 0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,
+ 0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,
+ 0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,0xB8,
+ 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,
+ 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,
+ 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,
+ 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,
+ 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,
+ 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,
+ 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,
+ 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,
+ 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,
+ 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,
+ 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,
+ 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,
+ 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,
+ 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,
+ 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,
+ 0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,
+ 0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,
+ 0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,
+ 0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,
+ 0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,
+ 0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,
+ 0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,
+ 0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,
+ 0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,
+ 0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,
+ 0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,
+ 0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,
+ 0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,
+ 0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,
+ 0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,
+ 0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,
+ 0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,0xBA,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,0xA7,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,0xA6,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,0xA1,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,0xA0,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,0xA3,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,0xAD,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,0xAC,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,0xAF,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,0xAE,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,0xA9,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,0xA8,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x2A,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
+ 0x2B,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,
+ 0x28,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,
+ 0x29,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,
+ 0x2E,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,
+ 0x2F,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,
+ 0x2C,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x2D,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x23,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+ 0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,
+ 0x26,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+ 0x27,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,
+ 0x25,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,
+ 0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,
+ 0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,
+ 0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,
+ 0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,
+ 0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,
+ 0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,
+ 0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,
+ 0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,
+ 0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,
+ 0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,
+ 0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,
+ 0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,
+ 0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,
+ 0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,
+ 0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,0x3A,
+ 0x3A,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,
+ 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,
+ 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,
+ 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,
+ 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,
+ 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,
+ 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,
+ 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,
+ 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,
+ 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,
+ 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,
+ 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,
+ 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,
+ 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,
+ 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,
+ 0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,0x3B,
+ 0x3B,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x38,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+ 0x39,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
+ 0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
+ 0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
+ 0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
+ 0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
+ 0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
+ 0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
+ 0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
+ 0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
+ 0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
+ 0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
+ 0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
+ 0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
+ 0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
+ 0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
+ 0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,0x3E,
+ 0x3E,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
+ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
+ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
+ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
+ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
+ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
+ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
+ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
+ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
+ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
+ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
+ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
+ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
+ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
+ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
+ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
+ 0x3F,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
+ 0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
+ 0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
+ 0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
+ 0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
+ 0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
+ 0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
+ 0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
+ 0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
+ 0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
+ 0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
+ 0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
+ 0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
+ 0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
+ 0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
+ 0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
+ 0x3C,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,
+ 0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,
+ 0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,
+ 0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,
+ 0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,
+ 0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,
+ 0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,
+ 0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,
+ 0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,
+ 0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,
+ 0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,
+ 0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,
+ 0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,
+ 0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,
+ 0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,
+ 0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,0x3D,
+ 0x3D,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,
+ 0x32,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+ 0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+ 0x30,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
+ 0x31,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+ 0x36,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,
+ 0x37,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,
+ 0x34,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,
+ 0x35,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0A,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x0B,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x0F,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0C,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,
+ 0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,
+ 0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,
+ 0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,
+ 0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,
+ 0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,
+ 0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,
+ 0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,
+ 0x0D,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+ 0x01,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,
+ 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,
+ 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,
+ 0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,
+ 0x1A,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,
+ 0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,
+ 0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,
+ 0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,
+ 0x1B,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+ 0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x19,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,
+ 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,
+ 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,
+ 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,
+ 0x1E,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
+ 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
+ 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
+ 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
+ 0x1F,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,
+ 0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,
+ 0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,
+ 0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,
+ 0x1C,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
+ 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
+ 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
+ 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
+ 0x1D,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x12,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,
+ 0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
+ 0x11,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,
+ 0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
+ 0x14,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x15,0x6A,0x6A,0x6A,0x6A,0x6A,0x6A,0x6A,
+ 0x6A,0x6A,0x6A,0x6A,0x6A,0x6A,0x6A,0x6A,
+ 0x6A,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,
+ 0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,0x6B,
+ 0x6B,0x68,0x68,0x68,0x68,0x68,0x68,0x68,
+ 0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,
+ 0x68,0x69,0x69,0x69,0x69,0x69,0x69,0x69,
+ 0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,
+ 0x69,0x6E,0x6E,0x6E,0x6E,0x6E,0x6E,0x6E,
+ 0x6E,0x6E,0x6E,0x6E,0x6E,0x6E,0x6E,0x6E,
+ 0x6E,0x6F,0x6F,0x6F,0x6F,0x6F,0x6F,0x6F,
+ 0x6F,0x6F,0x6F,0x6F,0x6F,0x6F,0x6F,0x6F,
+ 0x6F,0x6C,0x6C,0x6C,0x6C,0x6C,0x6C,0x6C,
+ 0x6C,0x6C,0x6C,0x6C,0x6C,0x6C,0x6C,0x6C,
+ 0x6C,0x6D,0x6D,0x6D,0x6D,0x6D,0x6D,0x6D,
+ 0x6D,0x6D,0x6D,0x6D,0x6D,0x6D,0x6D,0x6D,
+ 0x6D,0x62,0x62,0x62,0x62,0x62,0x62,0x62,
+ 0x62,0x62,0x62,0x62,0x62,0x62,0x62,0x62,
+ 0x62,0x63,0x63,0x63,0x63,0x63,0x63,0x63,
+ 0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,
+ 0x63,0x60,0x60,0x60,0x60,0x60,0x60,0x60,
+ 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,
+ 0x60,0x61,0x61,0x61,0x61,0x61,0x61,0x61,
+ 0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,
+ 0x61,0x66,0x66,0x66,0x66,0x66,0x66,0x66,
+ 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,
+ 0x66,0x67,0x67,0x67,0x67,0x67,0x67,0x67,
+ 0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,
+ 0x67,0x64,0x64,0x64,0x64,0x64,0x64,0x64,
+ 0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,
+ 0x64,0x65,0x65,0x65,0x65,0x65,0x65,0x65,
+ 0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,
+ 0x65,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,0x7A,
+ 0x7A,0x7B,0x7B,0x7B,0x7B,0x7B,0x7B,0x7B,
+ 0x7B,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+ 0x78,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+ 0x79,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,
+ 0x7E,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
+ 0x7F,0x7C,0x7C,0x7C,0x7C,0x7C,0x7C,0x7C,
+ 0x7C,0x7D,0x7D,0x7D,0x7D,0x7D,0x7D,0x7D,
+ 0x7D,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+ 0x72,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+ 0x73,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+ 0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+ 0x71,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+ 0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+ 0x77,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+ 0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+ 0x75,0x4A,0x4A,0x4A,0x4A,0x4B,0x4B,0x4B,
+ 0x4B,0x48,0x48,0x48,0x48,0x49,0x49,0x49,
+ 0x49,0x4E,0x4E,0x4E,0x4E,0x4F,0x4F,0x4F,
+ 0x4F,0x4C,0x4C,0x4C,0x4C,0x4D,0x4D,0x4D,
+ 0x4D,0x42,0x42,0x42,0x42,0x43,0x43,0x43,
+ 0x43,0x40,0x40,0x40,0x40,0x41,0x41,0x41,
+ 0x41,0x46,0x46,0x46,0x46,0x47,0x47,0x47,
+ 0x47,0x44,0x44,0x44,0x44,0x45,0x45,0x45,
+ 0x45,0x5A,0x5A,0x5A,0x5A,0x5B,0x5B,0x5B,
+ 0x5B,0x58,0x58,0x58,0x58,0x59,0x59,0x59,
+ 0x59,0x5E,0x5E,0x5E,0x5E,0x5F,0x5F,0x5F,
+ 0x5F,0x5C,0x5C,0x5C,0x5C,0x5D,0x5D,0x5D,
+ 0x5D,0x52,0x52,0x52,0x52,0x53,0x53,0x53,
+ 0x53,0x50,0x50,0x50,0x50,0x51,0x51,0x51,
+ 0x51,0x56,0x56,0x56,0x56,0x57,0x57,0x57,
+ 0x57,0x54,0x54,0x54,0x54,0x55,0x55,0x55
+};
+
+const pj_int16_t pjmedia_ulaw2linear_tab[256] =
+{
+ -32124,-31100,-30076,-29052,-28028,-27004,-25980,-24956,
+ -23932,-22908,-21884,-20860,-19836,-18812,-17788,-16764,
+ -15996,-15484,-14972,-14460,-13948,-13436,-12924,-12412,
+ -11900,-11388,-10876,-10364, -9852, -9340, -8828, -8316,
+ -7932, -7676, -7420, -7164, -6908, -6652, -6396, -6140,
+ -5884, -5628, -5372, -5116, -4860, -4604, -4348, -4092,
+ -3900, -3772, -3644, -3516, -3388, -3260, -3132, -3004,
+ -2876, -2748, -2620, -2492, -2364, -2236, -2108, -1980,
+ -1884, -1820, -1756, -1692, -1628, -1564, -1500, -1436,
+ -1372, -1308, -1244, -1180, -1116, -1052, -988, -924,
+ -876, -844, -812, -780, -748, -716, -684, -652,
+ -620, -588, -556, -524, -492, -460, -428, -396,
+ -372, -356, -340, -324, -308, -292, -276, -260,
+ -244, -228, -212, -196, -180, -164, -148, -132,
+ -120, -112, -104, -96, -88, -80, -72, -64,
+ -56, -48, -40, -32, -24, -16, -8, 0,
+ 32124, 31100, 30076, 29052, 28028, 27004, 25980, 24956,
+ 23932, 22908, 21884, 20860, 19836, 18812, 17788, 16764,
+ 15996, 15484, 14972, 14460, 13948, 13436, 12924, 12412,
+ 11900, 11388, 10876, 10364, 9852, 9340, 8828, 8316,
+ 7932, 7676, 7420, 7164, 6908, 6652, 6396, 6140,
+ 5884, 5628, 5372, 5116, 4860, 4604, 4348, 4092,
+ 3900, 3772, 3644, 3516, 3388, 3260, 3132, 3004,
+ 2876, 2748, 2620, 2492, 2364, 2236, 2108, 1980,
+ 1884, 1820, 1756, 1692, 1628, 1564, 1500, 1436,
+ 1372, 1308, 1244, 1180, 1116, 1052, 988, 924,
+ 876, 844, 812, 780, 748, 716, 684, 652,
+ 620, 588, 556, 524, 492, 460, 428, 396,
+ 372, 356, 340, 324, 308, 292, 276, 260,
+ 244, 228, 212, 196, 180, 164, 148, 132,
+ 120, 112, 104, 96, 88, 80, 72, 64,
+ 56, 48, 40, 32, 24, 16, 8, 0
+};
+
+const pj_int16_t pjmedia_alaw2linear_tab[256] =
+{
+ -5504, -5248, -6016, -5760, -4480, -4224, -4992, -4736,
+ -7552, -7296, -8064, -7808, -6528, -6272, -7040, -6784,
+ -2752, -2624, -3008, -2880, -2240, -2112, -2496, -2368,
+ -3776, -3648, -4032, -3904, -3264, -3136, -3520, -3392,
+ -22016,-20992,-24064,-23040,-17920,-16896,-19968,-18944,
+ -30208,-29184,-32256,-31232,-26112,-25088,-28160,-27136,
+ -11008,-10496,-12032,-11520, -8960, -8448, -9984, -9472,
+ -15104,-14592,-16128,-15616,-13056,-12544,-14080,-13568,
+ -344, -328, -376, -360, -280, -264, -312, -296,
+ -472, -456, -504, -488, -408, -392, -440, -424,
+ -88, -72, -120, -104, -24, -8, -56, -40,
+ -216, -200, -248, -232, -152, -136, -184, -168,
+ -1376, -1312, -1504, -1440, -1120, -1056, -1248, -1184,
+ -1888, -1824, -2016, -1952, -1632, -1568, -1760, -1696,
+ -688, -656, -752, -720, -560, -528, -624, -592,
+ -944, -912, -1008, -976, -816, -784, -880, -848,
+ 5504, 5248, 6016, 5760, 4480, 4224, 4992, 4736,
+ 7552, 7296, 8064, 7808, 6528, 6272, 7040, 6784,
+ 2752, 2624, 3008, 2880, 2240, 2112, 2496, 2368,
+ 3776, 3648, 4032, 3904, 3264, 3136, 3520, 3392,
+ 22016, 20992, 24064, 23040, 17920, 16896, 19968, 18944,
+ 30208, 29184, 32256, 31232, 26112, 25088, 28160, 27136,
+ 11008, 10496, 12032, 11520, 8960, 8448, 9984, 9472,
+ 15104, 14592, 16128, 15616, 13056, 12544, 14080, 13568,
+ 344, 328, 376, 360, 280, 264, 312, 296,
+ 472, 456, 504, 488, 408, 392, 440, 424,
+ 88, 72, 120, 104, 24, 8, 56, 40,
+ 216, 200, 248, 232, 152, 136, 184, 168,
+ 1376, 1312, 1504, 1440, 1120, 1056, 1248, 1184,
+ 1888, 1824, 2016, 1952, 1632, 1568, 1760, 1696,
+ 688, 656, 752, 720, 560, 528, 624, 592,
+ 944, 912, 1008, 976, 816, 784, 880, 848
+};
+
+#endif
+
diff --git a/jni/pjproject-android/.svn/pristine/54/5471548c4a4166ddfcc490ee3f4c46ee3fd54bc3.svn-base b/jni/pjproject-android/.svn/pristine/54/5471548c4a4166ddfcc490ee3f4c46ee3fd54bc3.svn-base
new file mode 100644
index 0000000..0fb07e7
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/54/5471548c4a4166ddfcc490ee3f4c46ee3fd54bc3.svn-base
@@ -0,0 +1,908 @@
+/* $Id$ */
+/*
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#include <pjsip-ua/sip_100rel.h>
+#include <pjsip/sip_endpoint.h>
+#include <pjsip/sip_event.h>
+#include <pjsip/sip_module.h>
+#include <pjsip/sip_transaction.h>
+#include <pj/assert.h>
+#include <pj/ctype.h>
+#include <pj/log.h>
+#include <pj/os.h>
+#include <pj/pool.h>
+#include <pj/rand.h>
+#include <pj/string.h>
+
+#define THIS_FILE "sip_100rel.c"
+
+/* PRACK method */
+PJ_DEF_DATA(const pjsip_method) pjsip_prack_method =
+{
+ PJSIP_OTHER_METHOD,
+ { "PRACK", 5 }
+};
+
+typedef struct dlg_data dlg_data;
+
+/*
+ * Static prototypes.
+ */
+static pj_status_t mod_100rel_load(pjsip_endpoint *endpt);
+
+static void on_retransmit(pj_timer_heap_t *timer_heap,
+ struct pj_timer_entry *entry);
+
+
+const pj_str_t tag_100rel = { "100rel", 6 };
+const pj_str_t RSEQ = { "RSeq", 4 };
+const pj_str_t RACK = { "RAck", 4 };
+
+
+/* 100rel module */
+static struct mod_100rel
+{
+ pjsip_module mod;
+ pjsip_endpoint *endpt;
+} mod_100rel =
+{
+ {
+ NULL, NULL, /* prev, next. */
+ { "mod-100rel", 10 }, /* Name. */
+ -1, /* Id */
+ PJSIP_MOD_PRIORITY_DIALOG_USAGE, /* Priority */
+ &mod_100rel_load, /* load() */
+ NULL, /* start() */
+ NULL, /* stop() */
+ NULL, /* unload() */
+ NULL, /* on_rx_request() */
+ NULL, /* on_rx_response() */
+ NULL, /* on_tx_request. */
+ NULL, /* on_tx_response() */
+ NULL, /* on_tsx_state() */
+ }
+
+};
+
+/* List of pending transmission (may include the final response as well) */
+typedef struct tx_data_list_t
+{
+ PJ_DECL_LIST_MEMBER(struct tx_data_list_t);
+ pj_uint32_t rseq;
+ pjsip_tx_data *tdata;
+} tx_data_list_t;
+
+
+/* Below, UAS and UAC roles are of the INVITE transaction */
+
+/* UAS state. */
+typedef struct uas_state_t
+{
+ pj_int32_t cseq;
+ pj_uint32_t rseq; /* Initialized to -1 */
+ tx_data_list_t tx_data_list;
+ unsigned retransmit_count;
+ pj_timer_entry retransmit_timer;
+} uas_state_t;
+
+
+/* UAC state */
+typedef struct uac_state_t
+{
+ pj_str_t tag; /* To tag */
+ pj_int32_t cseq;
+ pj_uint32_t rseq; /* Initialized to -1 */
+ struct uac_state_t *next; /* next call leg */
+} uac_state_t;
+
+
+/* State attached to each dialog. */
+struct dlg_data
+{
+ pjsip_inv_session *inv;
+ uas_state_t *uas_state;
+ uac_state_t *uac_state_list;
+};
+
+
+/*****************************************************************************
+ **
+ ** Module
+ **
+ *****************************************************************************
+ */
+static pj_status_t mod_100rel_load(pjsip_endpoint *endpt)
+{
+ mod_100rel.endpt = endpt;
+ pjsip_endpt_add_capability(endpt, &mod_100rel.mod,
+ PJSIP_H_ALLOW, NULL,
+ 1, &pjsip_prack_method.name);
+ pjsip_endpt_add_capability(endpt, &mod_100rel.mod,
+ PJSIP_H_SUPPORTED, NULL,
+ 1, &tag_100rel);
+
+ return PJ_SUCCESS;
+}
+
+static pjsip_require_hdr *find_req_hdr(pjsip_msg *msg)
+{
+ pjsip_require_hdr *hreq;
+
+ hreq = (pjsip_require_hdr*)
+ pjsip_msg_find_hdr(msg, PJSIP_H_REQUIRE, NULL);
+
+ while (hreq) {
+ unsigned i;
+ for (i=0; i<hreq->count; ++i) {
+ if (!pj_stricmp(&hreq->values[i], &tag_100rel)) {
+ return hreq;
+ }
+ }
+
+ if ((void*)hreq->next == (void*)&msg->hdr)
+ return NULL;
+
+ hreq = (pjsip_require_hdr*)
+ pjsip_msg_find_hdr(msg, PJSIP_H_REQUIRE, hreq->next);
+
+ }
+
+ return NULL;
+}
+
+
+/*
+ * Get PRACK method constant.
+ */
+PJ_DEF(const pjsip_method*) pjsip_get_prack_method(void)
+{
+ return &pjsip_prack_method;
+}
+
+
+/*
+ * init module
+ */
+PJ_DEF(pj_status_t) pjsip_100rel_init_module(pjsip_endpoint *endpt)
+{
+ if (mod_100rel.mod.id != -1)
+ return PJ_SUCCESS;
+
+ return pjsip_endpt_register_module(endpt, &mod_100rel.mod);
+}
+
+
+/*
+ * API: attach 100rel support in invite session. Called by
+ * sip_inv.c
+ */
+PJ_DEF(pj_status_t) pjsip_100rel_attach(pjsip_inv_session *inv)
+{
+ dlg_data *dd;
+
+ /* Check that 100rel module has been initialized */
+ PJ_ASSERT_RETURN(mod_100rel.mod.id >= 0, PJ_EINVALIDOP);
+
+ /* Create and attach as dialog usage */
+ dd = PJ_POOL_ZALLOC_T(inv->dlg->pool, dlg_data);
+ dd->inv = inv;
+ pjsip_dlg_add_usage(inv->dlg, &mod_100rel.mod, (void*)dd);
+
+ PJ_LOG(5,(dd->inv->dlg->obj_name, "100rel module attached"));
+
+ return PJ_SUCCESS;
+}
+
+
+/*
+ * Check if incoming response has reliable provisional response feature.
+ */
+PJ_DEF(pj_bool_t) pjsip_100rel_is_reliable(pjsip_rx_data *rdata)
+{
+ pjsip_msg *msg = rdata->msg_info.msg;
+
+ PJ_ASSERT_RETURN(msg->type == PJSIP_RESPONSE_MSG, PJ_FALSE);
+
+ return msg->line.status.code > 100 && msg->line.status.code < 200 &&
+ rdata->msg_info.require != NULL &&
+ find_req_hdr(msg) != NULL;
+}
+
+
+/*
+ * Create PRACK request for the incoming reliable provisional response.
+ */
+PJ_DEF(pj_status_t) pjsip_100rel_create_prack( pjsip_inv_session *inv,
+ pjsip_rx_data *rdata,
+ pjsip_tx_data **p_tdata)
+{
+ dlg_data *dd;
+ uac_state_t *uac_state = NULL;
+ const pj_str_t *to_tag = &rdata->msg_info.to->tag;
+ pjsip_transaction *tsx;
+ pjsip_msg *msg;
+ pjsip_generic_string_hdr *rseq_hdr;
+ pjsip_generic_string_hdr *rack_hdr;
+ unsigned rseq;
+ pj_str_t rack;
+ char rack_buf[80];
+ pjsip_tx_data *tdata;
+ pj_status_t status;
+
+ *p_tdata = NULL;
+
+ dd = (dlg_data*) inv->dlg->mod_data[mod_100rel.mod.id];
+ PJ_ASSERT_RETURN(dd != NULL, PJSIP_ENOTINITIALIZED);
+
+ tsx = pjsip_rdata_get_tsx(rdata);
+ msg = rdata->msg_info.msg;
+
+ /* Check our assumptions */
+ pj_assert( tsx->role == PJSIP_ROLE_UAC &&
+ tsx->method.id == PJSIP_INVITE_METHOD &&
+ msg->line.status.code > 100 &&
+ msg->line.status.code < 200);
+
+
+ /* Get the RSeq header */
+ rseq_hdr = (pjsip_generic_string_hdr*)
+ pjsip_msg_find_hdr_by_name(msg, &RSEQ, NULL);
+ if (rseq_hdr == NULL) {
+ PJ_LOG(4,(dd->inv->dlg->obj_name,
+ "Ignoring 100rel response with no RSeq header"));
+ return PJSIP_EMISSINGHDR;
+ }
+ rseq = (pj_uint32_t) pj_strtoul(&rseq_hdr->hvalue);
+
+ /* Find UAC state for the specified call leg */
+ uac_state = dd->uac_state_list;
+ while (uac_state) {
+ if (pj_stricmp(&uac_state->tag, to_tag)==0)
+ break;
+ uac_state = uac_state->next;
+ }
+
+ /* Create new UAC state if we don't have one */
+ if (uac_state == NULL) {
+ uac_state = PJ_POOL_ZALLOC_T(dd->inv->dlg->pool, uac_state_t);
+ uac_state->cseq = rdata->msg_info.cseq->cseq;
+ uac_state->rseq = rseq - 1;
+ pj_strdup(dd->inv->dlg->pool, &uac_state->tag, to_tag);
+ uac_state->next = dd->uac_state_list;
+ dd->uac_state_list = uac_state;
+ }
+
+ /* If this is from new INVITE transaction, reset UAC state. */
+ if (rdata->msg_info.cseq->cseq != uac_state->cseq) {
+ uac_state->cseq = rdata->msg_info.cseq->cseq;
+ uac_state->rseq = rseq - 1;
+ }
+
+ /* Ignore provisional response retransmission */
+ if (rseq <= uac_state->rseq) {
+ /* This should have been handled before */
+ return PJ_EIGNORED;
+
+ /* Ignore provisional response with out-of-order RSeq */
+ } else if (rseq != uac_state->rseq + 1) {
+ PJ_LOG(4,(dd->inv->dlg->obj_name,
+ "Ignoring 100rel response because RSeq jump "
+ "(expecting %u, got %u)",
+ uac_state->rseq+1, rseq));
+ return PJ_EIGNORED;
+ }
+
+ /* Update our RSeq */
+ uac_state->rseq = rseq;
+
+ /* Create PRACK */
+ status = pjsip_dlg_create_request(dd->inv->dlg, &pjsip_prack_method,
+ -1, &tdata);
+ if (status != PJ_SUCCESS)
+ return status;
+
+ /* If this response is a forked response from a different call-leg,
+ * update the req URI (https://trac.pjsip.org/repos/ticket/1364)
+ */
+ if (pj_stricmp(&uac_state->tag, &dd->inv->dlg->remote.info->tag)) {
+ const pjsip_contact_hdr *mhdr;
+
+ mhdr = (const pjsip_contact_hdr*)
+ pjsip_msg_find_hdr(rdata->msg_info.msg,
+ PJSIP_H_CONTACT, NULL);
+ if (!mhdr || !mhdr->uri) {
+ PJ_LOG(4,(dd->inv->dlg->obj_name,
+ "Ignoring 100rel response with no or "
+ "invalid Contact header"));
+ pjsip_tx_data_dec_ref(tdata);
+ return PJ_EIGNORED;
+ }
+ tdata->msg->line.req.uri = (pjsip_uri*)
+ pjsip_uri_clone(tdata->pool, mhdr->uri);
+ }
+
+ /* Create RAck header */
+ rack.ptr = rack_buf;
+ rack.slen = pj_ansi_snprintf(rack.ptr, sizeof(rack_buf),
+ "%u %u %.*s",
+ rseq, rdata->msg_info.cseq->cseq,
+ (int)tsx->method.name.slen,
+ tsx->method.name.ptr);
+ if (rack.slen < 1 || rack.slen >= (int)sizeof(rack_buf)) {
+ return PJ_ETOOSMALL;
+ }
+ rack_hdr = pjsip_generic_string_hdr_create(tdata->pool, &RACK, &rack);
+ pjsip_msg_add_hdr(tdata->msg, (pjsip_hdr*) rack_hdr);
+
+ /* Done */
+ *p_tdata = tdata;
+
+ return PJ_SUCCESS;
+}
+
+
+/*
+ * Send PRACK request.
+ */
+PJ_DEF(pj_status_t) pjsip_100rel_send_prack( pjsip_inv_session *inv,
+ pjsip_tx_data *tdata)
+{
+ dlg_data *dd;
+
+ dd = (dlg_data*) inv->dlg->mod_data[mod_100rel.mod.id];
+ PJ_ASSERT_ON_FAIL(dd != NULL,
+ {pjsip_tx_data_dec_ref(tdata); return PJSIP_ENOTINITIALIZED; });
+
+ return pjsip_dlg_send_request(inv->dlg, tdata,
+ mod_100rel.mod.id, (void*) dd);
+
+}
+
+
+/*
+ * Notify 100rel module that the invite session has been disconnected.
+ */
+PJ_DEF(pj_status_t) pjsip_100rel_end_session(pjsip_inv_session *inv)
+{
+ dlg_data *dd;
+
+ dd = (dlg_data*) inv->dlg->mod_data[mod_100rel.mod.id];
+ if (!dd)
+ return PJ_SUCCESS;
+
+ /* Make sure we don't have pending transmission */
+ if (dd->uas_state) {
+ pj_assert(!dd->uas_state->retransmit_timer.id);
+ pj_assert(pj_list_empty(&dd->uas_state->tx_data_list));
+ }
+
+ return PJ_SUCCESS;
+}
+
+
+static void parse_rack(const pj_str_t *rack,
+ pj_uint32_t *p_rseq, pj_int32_t *p_seq,
+ pj_str_t *p_method)
+{
+ const char *p = rack->ptr, *end = p + rack->slen;
+ pj_str_t token;
+
+ token.ptr = (char*)p;
+ while (p < end && pj_isdigit(*p))
+ ++p;
+ token.slen = p - token.ptr;
+ *p_rseq = pj_strtoul(&token);
+
+ ++p;
+ token.ptr = (char*)p;
+ while (p < end && pj_isdigit(*p))
+ ++p;
+ token.slen = p - token.ptr;
+ *p_seq = pj_strtoul(&token);
+
+ ++p;
+ if (p < end) {
+ p_method->ptr = (char*)p;
+ p_method->slen = end - p;
+ } else {
+ p_method->ptr = NULL;
+ p_method->slen = 0;
+ }
+}
+
+/* Clear all responses in the transmission list */
+static void clear_all_responses(dlg_data *dd)
+{
+ tx_data_list_t *tl;
+
+ tl = dd->uas_state->tx_data_list.next;
+ while (tl != &dd->uas_state->tx_data_list) {
+ pjsip_tx_data_dec_ref(tl->tdata);
+ tl = tl->next;
+ }
+ pj_list_init(&dd->uas_state->tx_data_list);
+}
+
+
+/*
+ * Handle incoming PRACK request.
+ */
+PJ_DEF(pj_status_t) pjsip_100rel_on_rx_prack( pjsip_inv_session *inv,
+ pjsip_rx_data *rdata)
+{
+ dlg_data *dd;
+ pjsip_transaction *tsx;
+ pjsip_msg *msg;
+ pjsip_generic_string_hdr *rack_hdr;
+ pjsip_tx_data *tdata;
+ pj_uint32_t rseq;
+ pj_int32_t cseq;
+ pj_str_t method;
+ pj_status_t status;
+
+ tsx = pjsip_rdata_get_tsx(rdata);
+ pj_assert(tsx != NULL);
+
+ msg = rdata->msg_info.msg;
+
+ dd = (dlg_data*) inv->dlg->mod_data[mod_100rel.mod.id];
+ if (dd == NULL) {
+ /* UAC sends us PRACK while we didn't send reliable provisional
+ * response. Respond with 400 (?)
+ */
+ const pj_str_t reason = pj_str("Unexpected PRACK");
+
+ status = pjsip_dlg_create_response(inv->dlg, rdata, 400,
+ &reason, &tdata);
+ if (status == PJ_SUCCESS) {
+ status = pjsip_dlg_send_response(inv->dlg, tsx, tdata);
+ }
+ return PJSIP_ENOTINITIALIZED;
+ }
+
+ /* Always reply with 200/OK for PRACK */
+ status = pjsip_dlg_create_response(inv->dlg, rdata, 200, NULL, &tdata);
+ if (status == PJ_SUCCESS) {
+ status = pjsip_dlg_send_response(inv->dlg, tsx, tdata);
+ }
+
+ /* Ignore if we don't have pending transmission */
+ if (dd->uas_state == NULL || pj_list_empty(&dd->uas_state->tx_data_list)) {
+ PJ_LOG(4,(dd->inv->dlg->obj_name,
+ "PRACK ignored - no pending response"));
+ return PJ_EIGNORED;
+ }
+
+ /* Find RAck header */
+ rack_hdr = (pjsip_generic_string_hdr*)
+ pjsip_msg_find_hdr_by_name(msg, &RACK, NULL);
+ if (!rack_hdr) {
+ /* RAck header not found */
+ PJ_LOG(4,(dd->inv->dlg->obj_name, "No RAck header"));
+ return PJSIP_EMISSINGHDR;
+ }
+
+ /* Parse RAck header */
+ parse_rack(&rack_hdr->hvalue, &rseq, &cseq, &method);
+
+
+ /* Match RAck against outgoing transmission */
+ if (rseq == dd->uas_state->tx_data_list.next->rseq &&
+ cseq == dd->uas_state->cseq)
+ {
+ /*
+ * Yes this PRACK matches outgoing transmission.
+ */
+ tx_data_list_t *tl = dd->uas_state->tx_data_list.next;
+
+ if (dd->uas_state->retransmit_timer.id) {
+ pjsip_endpt_cancel_timer(dd->inv->dlg->endpt,
+ &dd->uas_state->retransmit_timer);
+ dd->uas_state->retransmit_timer.id = PJ_FALSE;
+ }
+
+ /* Remove from the list */
+ if (tl != &dd->uas_state->tx_data_list) {
+ pj_list_erase(tl);
+
+ /* Destroy the response */
+ pjsip_tx_data_dec_ref(tl->tdata);
+ }
+
+ /* Schedule next packet */
+ dd->uas_state->retransmit_count = 0;
+ if (!pj_list_empty(&dd->uas_state->tx_data_list)) {
+ on_retransmit(NULL, &dd->uas_state->retransmit_timer);
+ }
+
+ } else {
+ /* No it doesn't match */
+ PJ_LOG(4,(dd->inv->dlg->obj_name,
+ "Rx PRACK with no matching reliable response"));
+ return PJ_EIGNORED;
+ }
+
+ return PJ_SUCCESS;
+}
+
+
+/*
+ * This is retransmit timer callback, called initially to send the response,
+ * and subsequently when the retransmission time elapses.
+ */
+static void on_retransmit(pj_timer_heap_t *timer_heap,
+ struct pj_timer_entry *entry)
+{
+ dlg_data *dd;
+ tx_data_list_t *tl;
+ pjsip_tx_data *tdata;
+ pj_bool_t final;
+ pj_time_val delay;
+
+ PJ_UNUSED_ARG(timer_heap);
+
+ dd = (dlg_data*) entry->user_data;
+
+ entry->id = PJ_FALSE;
+
+ ++dd->uas_state->retransmit_count;
+ if (dd->uas_state->retransmit_count >= 7) {
+ /* If a reliable provisional response is retransmitted for
+ 64*T1 seconds without reception of a corresponding PRACK,
+ the UAS SHOULD reject the original request with a 5xx
+ response.
+ */
+ pj_str_t reason = pj_str("Reliable response timed out");
+ pj_status_t status;
+
+ /* Clear all pending responses */
+ clear_all_responses(dd);
+
+ /* Send 500 response */
+ status = pjsip_inv_end_session(dd->inv, 500, &reason, &tdata);
+ if (status == PJ_SUCCESS) {
+ pjsip_dlg_send_response(dd->inv->dlg,
+ dd->inv->invite_tsx,
+ tdata);
+ }
+ return;
+ }
+
+ pj_assert(!pj_list_empty(&dd->uas_state->tx_data_list));
+ tl = dd->uas_state->tx_data_list.next;
+ tdata = tl->tdata;
+
+ pjsip_tx_data_add_ref(tdata);
+ final = tdata->msg->line.status.code >= 200;
+
+ if (dd->uas_state->retransmit_count == 1) {
+ pjsip_tsx_send_msg(dd->inv->invite_tsx, tdata);
+ } else {
+ pjsip_tsx_retransmit_no_state(dd->inv->invite_tsx, tdata);
+ }
+
+ if (final) {
+ /* This is final response, which will be retransmitted by
+ * UA layer. There's no more task to do, so clear the
+ * transmission list and bail out.
+ */
+ clear_all_responses(dd);
+ return;
+ }
+
+ /* Schedule next retransmission */
+ if (dd->uas_state->retransmit_count < 6) {
+ delay.sec = 0;
+ delay.msec = (1 << dd->uas_state->retransmit_count) *
+ pjsip_cfg()->tsx.t1;
+ pj_time_val_normalize(&delay);
+ } else {
+ delay.sec = 1;
+ delay.msec = 500;
+ }
+
+
+ pjsip_endpt_schedule_timer(dd->inv->dlg->endpt,
+ &dd->uas_state->retransmit_timer,
+ &delay);
+
+ entry->id = PJ_TRUE;
+}
+
+
+/* Clone response. */
+static pjsip_tx_data *clone_tdata(dlg_data *dd,
+ const pjsip_tx_data *src)
+{
+ pjsip_tx_data *dst;
+ const pjsip_hdr *hsrc;
+ pjsip_msg *msg;
+ pj_status_t status;
+
+ status = pjsip_endpt_create_tdata(dd->inv->dlg->endpt, &dst);
+ if (status != PJ_SUCCESS)
+ return NULL;
+
+ msg = pjsip_msg_create(dst->pool, PJSIP_RESPONSE_MSG);
+ dst->msg = msg;
+ pjsip_tx_data_add_ref(dst);
+
+ /* Duplicate status line */
+ msg->line.status.code = src->msg->line.status.code;
+ pj_strdup(dst->pool, &msg->line.status.reason,
+ &src->msg->line.status.reason);
+
+ /* Duplicate all headers */
+ hsrc = src->msg->hdr.next;
+ while (hsrc != &src->msg->hdr) {
+ pjsip_hdr *h = (pjsip_hdr*) pjsip_hdr_clone(dst->pool, hsrc);
+ pjsip_msg_add_hdr(msg, h);
+ hsrc = hsrc->next;
+ }
+
+ /* Duplicate message body */
+ if (src->msg->body)
+ msg->body = pjsip_msg_body_clone(dst->pool, src->msg->body);
+
+ PJ_LOG(5,(dd->inv->dlg->obj_name,
+ "Reliable response %s created",
+ pjsip_tx_data_get_info(dst)));
+
+ return dst;
+}
+
+
+/* Check if any pending response in transmission list has SDP */
+static pj_bool_t has_sdp(dlg_data *dd)
+{
+ tx_data_list_t *tl;
+
+ tl = dd->uas_state->tx_data_list.next;
+ while (tl != &dd->uas_state->tx_data_list) {
+ if (tl->tdata->msg->body)
+ return PJ_TRUE;
+ tl = tl->next;
+ }
+
+ return PJ_FALSE;
+}
+
+
+/* Send response reliably */
+PJ_DEF(pj_status_t) pjsip_100rel_tx_response(pjsip_inv_session *inv,
+ pjsip_tx_data *tdata)
+{
+ pjsip_cseq_hdr *cseq_hdr;
+ pjsip_generic_string_hdr *rseq_hdr;
+ pjsip_require_hdr *req_hdr;
+ int status_code;
+ dlg_data *dd;
+ pjsip_tx_data *old_tdata;
+ pj_status_t status;
+
+ PJ_ASSERT_RETURN(tdata->msg->type == PJSIP_RESPONSE_MSG,
+ PJSIP_ENOTRESPONSEMSG);
+
+ status_code = tdata->msg->line.status.code;
+
+ /* 100 response doesn't need PRACK */
+ if (status_code == 100)
+ return pjsip_dlg_send_response(inv->dlg, inv->invite_tsx, tdata);
+
+
+ /* Get the 100rel data attached to this dialog */
+ dd = (dlg_data*) inv->dlg->mod_data[mod_100rel.mod.id];
+ PJ_ASSERT_RETURN(dd != NULL, PJ_EINVALIDOP);
+
+
+ /* Clone tdata.
+ * We need to clone tdata because we may need to keep it in our
+ * retransmission list, while the original dialog may modify it
+ * if it wants to send another response.
+ */
+ old_tdata = tdata;
+ tdata = clone_tdata(dd, old_tdata);
+ pjsip_tx_data_dec_ref(old_tdata);
+
+
+ /* Get CSeq header, and make sure this is INVITE response */
+ cseq_hdr = (pjsip_cseq_hdr*)
+ pjsip_msg_find_hdr(tdata->msg, PJSIP_H_CSEQ, NULL);
+ PJ_ASSERT_RETURN(cseq_hdr != NULL, PJ_EBUG);
+ PJ_ASSERT_RETURN(cseq_hdr->method.id == PJSIP_INVITE_METHOD,
+ PJ_EINVALIDOP);
+
+ /* Remove existing Require header */
+ req_hdr = find_req_hdr(tdata->msg);
+ if (req_hdr) {
+ pj_list_erase(req_hdr);
+ }
+
+ /* Remove existing RSeq header */
+ rseq_hdr = (pjsip_generic_string_hdr*)
+ pjsip_msg_find_hdr_by_name(tdata->msg, &RSEQ, NULL);
+ if (rseq_hdr)
+ pj_list_erase(rseq_hdr);
+
+ /* Different treatment for provisional and final response */
+ if (status_code/100 == 2) {
+
+ /* RFC 3262 Section 3: UAS Behavior:
+
+ The UAS MAY send a final response to the initial request
+ before having received PRACKs for all unacknowledged
+ reliable provisional responses, unless the final response
+ is 2xx and any of the unacknowledged reliable provisional
+ responses contained a session description. In that case,
+ it MUST NOT send a final response until those provisional
+ responses are acknowledged.
+ */
+
+ if (dd->uas_state && has_sdp(dd)) {
+ /* Yes we have transmitted 1xx with SDP reliably.
+ * In this case, must queue the 2xx response.
+ */
+ tx_data_list_t *tl;
+
+ tl = PJ_POOL_ZALLOC_T(tdata->pool, tx_data_list_t);
+ tl->tdata = tdata;
+ tl->rseq = (pj_uint32_t)-1;
+ pj_list_push_back(&dd->uas_state->tx_data_list, tl);
+
+ /* Will send later */
+ status = PJ_SUCCESS;
+
+ PJ_LOG(4,(dd->inv->dlg->obj_name,
+ "2xx response will be sent after PRACK"));
+
+ } else if (dd->uas_state) {
+ /*
+ RFC 3262 Section 3: UAS Behavior:
+
+ If the UAS does send a final response when reliable
+ responses are still unacknowledged, it SHOULD NOT
+ continue to retransmit the unacknowledged reliable
+ provisional responses, but it MUST be prepared to
+ process PRACK requests for those outstanding
+ responses.
+ */
+
+ PJ_LOG(4,(dd->inv->dlg->obj_name,
+ "No SDP sent so far, sending 2xx now"));
+
+ /* Cancel the retransmit timer */
+ if (dd->uas_state->retransmit_timer.id) {
+ pjsip_endpt_cancel_timer(dd->inv->dlg->endpt,
+ &dd->uas_state->retransmit_timer);
+ dd->uas_state->retransmit_timer.id = PJ_FALSE;
+ }
+
+ /* Clear all pending responses (drop 'em) */
+ clear_all_responses(dd);
+
+ /* And transmit the 2xx response */
+ status=pjsip_dlg_send_response(inv->dlg,
+ inv->invite_tsx, tdata);
+
+ } else {
+ /* We didn't send any reliable provisional response */
+
+ /* Transmit the 2xx response */
+ status=pjsip_dlg_send_response(inv->dlg,
+ inv->invite_tsx, tdata);
+ }
+
+ } else if (status_code >= 300) {
+
+ /*
+ RFC 3262 Section 3: UAS Behavior:
+
+ If the UAS does send a final response when reliable
+ responses are still unacknowledged, it SHOULD NOT
+ continue to retransmit the unacknowledged reliable
+ provisional responses, but it MUST be prepared to
+ process PRACK requests for those outstanding
+ responses.
+ */
+
+ /* Cancel the retransmit timer */
+ if (dd->uas_state && dd->uas_state->retransmit_timer.id) {
+ pjsip_endpt_cancel_timer(dd->inv->dlg->endpt,
+ &dd->uas_state->retransmit_timer);
+ dd->uas_state->retransmit_timer.id = PJ_FALSE;
+
+ /* Clear all pending responses (drop 'em) */
+ clear_all_responses(dd);
+ }
+
+ /* And transmit the 2xx response */
+ status=pjsip_dlg_send_response(inv->dlg,
+ inv->invite_tsx, tdata);
+
+ } else {
+ /*
+ * This is provisional response.
+ */
+ char rseq_str[32];
+ pj_str_t rseq;
+ tx_data_list_t *tl;
+
+ /* Create UAS state if we don't have one */
+ if (dd->uas_state == NULL) {
+ dd->uas_state = PJ_POOL_ZALLOC_T(inv->dlg->pool,
+ uas_state_t);
+ dd->uas_state->cseq = cseq_hdr->cseq;
+ dd->uas_state->rseq = pj_rand() % 0x7FFF;
+ pj_list_init(&dd->uas_state->tx_data_list);
+ dd->uas_state->retransmit_timer.user_data = dd;
+ dd->uas_state->retransmit_timer.cb = &on_retransmit;
+ }
+
+ /* Check that CSeq match */
+ PJ_ASSERT_RETURN(cseq_hdr->cseq == dd->uas_state->cseq,
+ PJ_EINVALIDOP);
+
+ /* Add Require header */
+ req_hdr = pjsip_require_hdr_create(tdata->pool);
+ req_hdr->count = 1;
+ req_hdr->values[0] = tag_100rel;
+ pjsip_msg_add_hdr(tdata->msg, (pjsip_hdr*)req_hdr);
+
+ /* Add RSeq header */
+ pj_ansi_snprintf(rseq_str, sizeof(rseq_str), "%u",
+ dd->uas_state->rseq);
+ rseq = pj_str(rseq_str);
+ rseq_hdr = pjsip_generic_string_hdr_create(tdata->pool,
+ &RSEQ, &rseq);
+ pjsip_msg_add_hdr(tdata->msg, (pjsip_hdr*)rseq_hdr);
+
+ /* Create list entry for this response */
+ tl = PJ_POOL_ZALLOC_T(tdata->pool, tx_data_list_t);
+ tl->tdata = tdata;
+ tl->rseq = dd->uas_state->rseq++;
+
+ /* Add to queue if there's pending response, otherwise
+ * transmit immediately.
+ */
+ if (!pj_list_empty(&dd->uas_state->tx_data_list)) {
+
+ int code = tdata->msg->line.status.code;
+
+ /* Will send later */
+ pj_list_push_back(&dd->uas_state->tx_data_list, tl);
+ status = PJ_SUCCESS;
+
+ PJ_LOG(4,(dd->inv->dlg->obj_name,
+ "Reliable %d response enqueued (%d pending)",
+ code, pj_list_size(&dd->uas_state->tx_data_list)));
+
+ } else {
+ pj_list_push_back(&dd->uas_state->tx_data_list, tl);
+
+ dd->uas_state->retransmit_count = 0;
+ on_retransmit(NULL, &dd->uas_state->retransmit_timer);
+ status = PJ_SUCCESS;
+ }
+
+ }
+
+ return status;
+}
+
+
diff --git a/jni/pjproject-android/.svn/pristine/54/549eb0a216ad8ee13081ad899b11f18da90f142e.svn-base b/jni/pjproject-android/.svn/pristine/54/549eb0a216ad8ee13081ad899b11f18da90f142e.svn-base
new file mode 100644
index 0000000..378ea28
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/54/549eb0a216ad8ee13081ad899b11f18da90f142e.svn-base
@@ -0,0 +1,25 @@
+# $Id$
+import inc_sip as sip
+import inc_sdp as sdp
+
+pjsua = "--null-audio --id=sip:CLIENT --registrar sip:127.0.0.1:$PORT " + \
+ "--realm=python --user=username --password=password " + \
+ "--auto-update-nat=0 --reg-timeout 300"
+
+# 423 without Min-Expires. PJSIP would retry with Expires: 3601
+req1 = sip.RecvfromTransaction("Initial request", 423,
+ include=["REGISTER sip"],
+ exclude=[],
+ resp_hdr=[]
+ )
+
+# Another 423, still without Min-Expires
+req2 = sip.RecvfromTransaction("Retry with guessed Expires header", 423,
+ include=["REGISTER sip", "Expires: 3601"],
+ exclude=[],
+ resp_hdr=[],
+ expect="without Min-Expires header is invalid"
+ )
+
+recvfrom_cfg = sip.RecvfromCfg("Invalid 423 response to REGISTER",
+ pjsua, [req1, req2])
diff --git a/jni/pjproject-android/.svn/pristine/54/54acec77d3b97ad43b763768e872b198914ccb8c.svn-base b/jni/pjproject-android/.svn/pristine/54/54acec77d3b97ad43b763768e872b198914ccb8c.svn-base
new file mode 100644
index 0000000..f2f78e3
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/54/54acec77d3b97ad43b763768e872b198914ccb8c.svn-base
@@ -0,0 +1,725 @@
+/* $Id$ */
+/*
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef __PJMEDIA_AUDIODEV_AUDIODEV_H__
+#define __PJMEDIA_AUDIODEV_AUDIODEV_H__
+
+/**
+ * @file audiodev.h
+ * @brief Audio device API.
+ */
+#include <pjmedia-audiodev/config.h>
+#include <pjmedia-audiodev/errno.h>
+#include <pjmedia/format.h>
+#include <pjmedia/frame.h>
+#include <pjmedia/types.h>
+#include <pj/pool.h>
+
+
+PJ_BEGIN_DECL
+
+/**
+ * @defgroup s2_audio_device_reference Audio Device API Reference
+ * @ingroup audio_device_api
+ * @brief API Reference
+ * @{
+ */
+
+/**
+ * Type for device index.
+ */
+typedef pj_int32_t pjmedia_aud_dev_index;
+
+/**
+ * Device index constants.
+ */
+enum
+{
+ /**
+ * Constant to denote default capture device
+ */
+ PJMEDIA_AUD_DEFAULT_CAPTURE_DEV = -1,
+
+ /**
+ * Constant to denote default playback device
+ */
+ PJMEDIA_AUD_DEFAULT_PLAYBACK_DEV = -2,
+
+ /**
+ * Constant to denote invalid device index.
+ */
+ PJMEDIA_AUD_INVALID_DEV = -3
+};
+
+
+/**
+ * This enumeration identifies various audio device capabilities. These audio
+ * capabilities indicates what features are supported by the underlying
+ * audio device implementation.
+ *
+ * Applications get these capabilities in the #pjmedia_aud_dev_info structure.
+ *
+ * Application can also set the specific features/capabilities when opening
+ * the audio stream by setting the \a flags member of #pjmedia_aud_param
+ * structure.
+ *
+ * Once audio stream is running, application can also retrieve or set some
+ * specific audio capability, by using #pjmedia_aud_stream_get_cap() and
+ * #pjmedia_aud_stream_set_cap() and specifying the desired capability. The
+ * value of the capability is specified as pointer, and application needs to
+ * supply the pointer with the correct value, according to the documentation
+ * of each of the capability.
+ */
+typedef enum pjmedia_aud_dev_cap
+{
+ /**
+ * Support for audio formats other than PCM. The value of this capability
+ * is represented by #pjmedia_format structure.
+ */
+ PJMEDIA_AUD_DEV_CAP_EXT_FORMAT = 1,
+
+ /**
+ * Support for audio input latency control or query. The value of this
+ * capability is an unsigned integer containing milliseconds value of
+ * the latency.
+ */
+ PJMEDIA_AUD_DEV_CAP_INPUT_LATENCY = 2,
+
+ /**
+ * Support for audio output latency control or query. The value of this
+ * capability is an unsigned integer containing milliseconds value of
+ * the latency.
+ */
+ PJMEDIA_AUD_DEV_CAP_OUTPUT_LATENCY = 4,
+
+ /**
+ * Support for setting/retrieving the audio input device volume level.
+ * The value of this capability is an unsigned integer representing
+ * the input audio volume setting in percent.
+ */
+ PJMEDIA_AUD_DEV_CAP_INPUT_VOLUME_SETTING = 8,
+
+ /**
+ * Support for setting/retrieving the audio output device volume level.
+ * The value of this capability is an unsigned integer representing
+ * the output audio volume setting in percent.
+ */
+ PJMEDIA_AUD_DEV_CAP_OUTPUT_VOLUME_SETTING = 16,
+
+ /**
+ * Support for monitoring the current audio input signal volume.
+ * The value of this capability is an unsigned integer representing
+ * the audio volume in percent.
+ */
+ PJMEDIA_AUD_DEV_CAP_INPUT_SIGNAL_METER = 32,
+
+ /**
+ * Support for monitoring the current audio output signal volume.
+ * The value of this capability is an unsigned integer representing
+ * the audio volume in percent.
+ */
+ PJMEDIA_AUD_DEV_CAP_OUTPUT_SIGNAL_METER = 64,
+
+ /**
+ * Support for audio input routing. The value of this capability is an
+ * integer containing #pjmedia_aud_dev_route enumeration.
+ */
+ PJMEDIA_AUD_DEV_CAP_INPUT_ROUTE = 128,
+
+ /**
+ * Support for audio output routing (e.g. loudspeaker vs earpiece). The
+ * value of this capability is an integer containing #pjmedia_aud_dev_route
+ * enumeration.
+ */
+ PJMEDIA_AUD_DEV_CAP_OUTPUT_ROUTE = 256,
+
+ /**
+ * The audio device has echo cancellation feature. The value of this
+ * capability is a pj_bool_t containing boolean PJ_TRUE or PJ_FALSE.
+ */
+ PJMEDIA_AUD_DEV_CAP_EC = 512,
+
+ /**
+ * The audio device supports setting echo cancellation fail length. The
+ * value of this capability is an unsigned integer representing the
+ * echo tail in milliseconds.
+ */
+ PJMEDIA_AUD_DEV_CAP_EC_TAIL = 1024,
+
+ /**
+ * The audio device has voice activity detection feature. The value
+ * of this capability is a pj_bool_t containing boolean PJ_TRUE or
+ * PJ_FALSE.
+ */
+ PJMEDIA_AUD_DEV_CAP_VAD = 2048,
+
+ /**
+ * The audio device has comfort noise generation feature. The value
+ * of this capability is a pj_bool_t containing boolean PJ_TRUE or
+ * PJ_FALSE.
+ */
+ PJMEDIA_AUD_DEV_CAP_CNG = 4096,
+
+ /**
+ * The audio device has packet loss concealment feature. The value
+ * of this capability is a pj_bool_t containing boolean PJ_TRUE or
+ * PJ_FALSE.
+ */
+ PJMEDIA_AUD_DEV_CAP_PLC = 8192,
+
+ /**
+ * End of capability
+ */
+ PJMEDIA_AUD_DEV_CAP_MAX = 16384
+
+} pjmedia_aud_dev_cap;
+
+
+/**
+ * This enumeration describes audio routing setting.
+ */
+typedef enum pjmedia_aud_dev_route
+{
+ /** Default route. */
+ PJMEDIA_AUD_DEV_ROUTE_DEFAULT = 0,
+
+ /** Route to loudspeaker */
+ PJMEDIA_AUD_DEV_ROUTE_LOUDSPEAKER = 1,
+
+ /** Route to earpiece */
+ PJMEDIA_AUD_DEV_ROUTE_EARPIECE = 2,
+
+ /** Route to paired Bluetooth device */
+ PJMEDIA_AUD_DEV_ROUTE_BLUETOOTH = 4
+
+} pjmedia_aud_dev_route;
+
+
+/**
+ * Device information structure returned by #pjmedia_aud_dev_get_info().
+ */
+typedef struct pjmedia_aud_dev_info
+{
+ /**
+ * The device name
+ */
+ char name[64];
+
+ /**
+ * Maximum number of input channels supported by this device. If the
+ * value is zero, the device does not support input operation (i.e.
+ * it is a playback only device).
+ */
+ unsigned input_count;
+
+ /**
+ * Maximum number of output channels supported by this device. If the
+ * value is zero, the device does not support output operation (i.e.
+ * it is an input only device).
+ */
+ unsigned output_count;
+
+ /**
+ * Default sampling rate.
+ */
+ unsigned default_samples_per_sec;
+
+ /**
+ * The underlying driver name
+ */
+ char driver[32];
+
+ /**
+ * Device capabilities, as bitmask combination of #pjmedia_aud_dev_cap.
+ */
+ unsigned caps;
+
+ /**
+ * Supported audio device routes, as bitmask combination of
+ * #pjmedia_aud_dev_route. The value may be zero if the device
+ * does not support audio routing.
+ */
+ unsigned routes;
+
+ /**
+ * Number of audio formats supported by this device. The value may be
+ * zero if the device does not support non-PCM format.
+ */
+ unsigned ext_fmt_cnt;
+
+ /**
+ * Array of supported extended audio formats
+ */
+ pjmedia_format ext_fmt[8];
+
+
+} pjmedia_aud_dev_info;
+
+
+/**
+ * This callback is called by player stream when it needs additional data
+ * to be played by the device. Application must fill in the whole of output
+ * buffer with audio samples.
+ *
+ * The frame argument contains the following values:
+ * - timestamp Playback timestamp, in samples.
+ * - buf Buffer to be filled out by application.
+ * - size The size requested in bytes, which will be equal to
+ * the size of one whole packet.
+ *
+ * @param user_data User data associated with the stream.
+ * @param frame Audio frame, which buffer is to be filled in by
+ * the application.
+ *
+ * @return Returning non-PJ_SUCCESS will cause the audio stream
+ * to stop
+ */
+typedef pj_status_t (*pjmedia_aud_play_cb)(void *user_data,
+ pjmedia_frame *frame);
+
+/**
+ * This callback is called by recorder stream when it has captured the whole
+ * packet worth of audio samples.
+ *
+ * @param user_data User data associated with the stream.
+ * @param frame Captured frame.
+ *
+ * @return Returning non-PJ_SUCCESS will cause the audio stream
+ * to stop
+ */
+typedef pj_status_t (*pjmedia_aud_rec_cb)(void *user_data,
+ pjmedia_frame *frame);
+
+/**
+ * This structure specifies the parameters to open the audio stream.
+ */
+typedef struct pjmedia_aud_param
+{
+ /**
+ * The audio direction. This setting is mandatory.
+ */
+ pjmedia_dir dir;
+
+ /**
+ * The audio recorder device ID. This setting is mandatory if the audio
+ * direction includes input/capture direction.
+ */
+ pjmedia_aud_dev_index rec_id;
+
+ /**
+ * The audio playback device ID. This setting is mandatory if the audio
+ * direction includes output/playback direction.
+ */
+ pjmedia_aud_dev_index play_id;
+
+ /**
+ * Clock rate/sampling rate. This setting is mandatory.
+ */
+ unsigned clock_rate;
+
+ /**
+ * Number of channels. This setting is mandatory.
+ */
+ unsigned channel_count;
+
+ /**
+ * Number of samples per frame. This setting is mandatory.
+ */
+ unsigned samples_per_frame;
+
+ /**
+ * Number of bits per sample. This setting is mandatory.
+ */
+ unsigned bits_per_sample;
+
+ /**
+ * This flags specifies which of the optional settings are valid in this
+ * structure. The flags is bitmask combination of pjmedia_aud_dev_cap.
+ */
+ unsigned flags;
+
+ /**
+ * Set the audio format. This setting is optional, and will only be used
+ * if PJMEDIA_AUD_DEV_CAP_EXT_FORMAT is set in the flags.
+ */
+ pjmedia_format ext_fmt;
+
+ /**
+ * Input latency, in milliseconds. This setting is optional, and will
+ * only be used if PJMEDIA_AUD_DEV_CAP_INPUT_LATENCY is set in the flags.
+ */
+ unsigned input_latency_ms;
+
+ /**
+ * Input latency, in milliseconds. This setting is optional, and will
+ * only be used if PJMEDIA_AUD_DEV_CAP_OUTPUT_LATENCY is set in the flags.
+ */
+ unsigned output_latency_ms;
+
+ /**
+ * Input volume setting, in percent. This setting is optional, and will
+ * only be used if PJMEDIA_AUD_DEV_CAP_INPUT_VOLUME_SETTING is set in
+ * the flags.
+ */
+ unsigned input_vol;
+
+ /**
+ * Output volume setting, in percent. This setting is optional, and will
+ * only be used if PJMEDIA_AUD_DEV_CAP_OUTPUT_VOLUME_SETTING is set in
+ * the flags.
+ */
+ unsigned output_vol;
+
+ /**
+ * Set the audio input route. This setting is optional, and will only be
+ * used if PJMEDIA_AUD_DEV_CAP_INPUT_ROUTE is set in the flags.
+ */
+ pjmedia_aud_dev_route input_route;
+
+ /**
+ * Set the audio output route. This setting is optional, and will only be
+ * used if PJMEDIA_AUD_DEV_CAP_OUTPUT_ROUTE is set in the flags.
+ */
+ pjmedia_aud_dev_route output_route;
+
+ /**
+ * Enable/disable echo canceller, if the device supports it. This setting
+ * is optional, and will only be used if PJMEDIA_AUD_DEV_CAP_EC is set in
+ * the flags.
+ */
+ pj_bool_t ec_enabled;
+
+ /**
+ * Set echo canceller tail length in milliseconds, if the device supports
+ * it. This setting is optional, and will only be used if
+ * PJMEDIA_AUD_DEV_CAP_EC_TAIL is set in the flags.
+ */
+ unsigned ec_tail_ms;
+
+ /**
+ * Enable/disable PLC. This setting is optional, and will only be used
+ * if PJMEDIA_AUD_DEV_CAP_PLC is set in the flags.
+ */
+ pj_bool_t plc_enabled;
+
+ /**
+ * Enable/disable CNG. This setting is optional, and will only be used
+ * if PJMEDIA_AUD_DEV_CAP_CNG is set in the flags.
+ */
+ pj_bool_t cng_enabled;
+
+ /**
+ * Enable/disable VAD. This setting is optional, and will only be used
+ * if PJMEDIA_AUD_DEV_CAP_VAD is set in the flags.
+ */
+ pj_bool_t vad_enabled;
+
+} pjmedia_aud_param;
+
+
+/** Forward declaration for pjmedia_aud_stream */
+typedef struct pjmedia_aud_stream pjmedia_aud_stream;
+
+/** Forward declaration for audio device factory */
+typedef struct pjmedia_aud_dev_factory pjmedia_aud_dev_factory;
+
+/* typedef for factory creation function */
+typedef pjmedia_aud_dev_factory*
+(*pjmedia_aud_dev_factory_create_func_ptr)(pj_pool_factory*);
+
+
+/**
+ * Get string info for the specified capability.
+ *
+ * @param cap The capability ID.
+ * @param p_desc Optional pointer which will be filled with longer
+ * description about the capability.
+ *
+ * @return Capability name.
+ */
+PJ_DECL(const char*) pjmedia_aud_dev_cap_name(pjmedia_aud_dev_cap cap,
+ const char **p_desc);
+
+
+/**
+ * Set a capability field value in #pjmedia_aud_param structure. This will
+ * also set the flags field for the specified capability in the structure.
+ *
+ * @param param The structure.
+ * @param cap The audio capability which value is to be set.
+ * @param pval Pointer to value. Please see the type of value to
+ * be supplied in the pjmedia_aud_dev_cap documentation.
+ *
+ * @return PJ_SUCCESS on successful operation or the appropriate
+ * error code.
+ */
+PJ_DECL(pj_status_t) pjmedia_aud_param_set_cap(pjmedia_aud_param *param,
+ pjmedia_aud_dev_cap cap,
+ const void *pval);
+
+
+/**
+ * Get a capability field value from #pjmedia_aud_param structure. This
+ * function will return PJMEDIA_EAUD_INVCAP error if the flag for that
+ * capability is not set in the flags field in the structure.
+ *
+ * @param param The structure.
+ * @param cap The audio capability which value is to be retrieved.
+ * @param pval Pointer to value. Please see the type of value to
+ * be supplied in the pjmedia_aud_dev_cap documentation.
+ *
+ * @return PJ_SUCCESS on successful operation or the appropriate
+ * error code.
+ */
+PJ_DECL(pj_status_t) pjmedia_aud_param_get_cap(const pjmedia_aud_param *param,
+ pjmedia_aud_dev_cap cap,
+ void *pval);
+
+/**
+ * Initialize the audio subsystem. This will register all supported audio
+ * device factories to the audio subsystem. This function may be called
+ * more than once, but each call to this function must have the
+ * corresponding #pjmedia_aud_subsys_shutdown() call.
+ *
+ * @param pf The pool factory.
+ *
+ * @return PJ_SUCCESS on successful operation or the appropriate
+ * error code.
+ */
+PJ_DECL(pj_status_t) pjmedia_aud_subsys_init(pj_pool_factory *pf);
+
+
+/**
+ * Get the pool factory registered to the audio subsystem.
+ *
+ * @return The pool factory.
+ */
+PJ_DECL(pj_pool_factory*) pjmedia_aud_subsys_get_pool_factory(void);
+
+
+/**
+ * Shutdown the audio subsystem. This will destroy all audio device factories
+ * registered in the audio subsystem. Note that currently opened audio streams
+ * may or may not be closed, depending on the implementation of the audio
+ * device factories.
+ *
+ * @return PJ_SUCCESS on successful operation or the appropriate
+ * error code.
+ */
+PJ_DECL(pj_status_t) pjmedia_aud_subsys_shutdown(void);
+
+
+/**
+ * Register a supported audio device factory to the audio subsystem. This
+ * function can only be called after calling #pjmedia_aud_subsys_init().
+ *
+ * @param adf The audio device factory.
+ *
+ * @return PJ_SUCCESS on successful operation or the appropriate
+ * error code.
+ */
+PJ_DECL(pj_status_t)
+pjmedia_aud_register_factory(pjmedia_aud_dev_factory_create_func_ptr adf);
+
+
+/**
+ * Unregister an audio device factory from the audio subsystem. This
+ * function can only be called after calling #pjmedia_aud_subsys_init().
+ * Devices from this factory will be unlisted. If a device from this factory
+ * is currently in use, then the behavior is undefined.
+ *
+ * @param adf The audio device factory.
+ *
+ * @return PJ_SUCCESS on successful operation or the appropriate
+ * error code.
+ */
+PJ_DECL(pj_status_t)
+pjmedia_aud_unregister_factory(pjmedia_aud_dev_factory_create_func_ptr adf);
+
+
+/**
+ * Refresh the list of sound devices installed in the system. This function
+ * will only refresh the list of audio device so all active audio streams will
+ * be unaffected. After refreshing the device list, application MUST make sure
+ * to update all index references to audio devices (i.e. all variables of type
+ * pjmedia_aud_dev_index) before calling any function that accepts audio device
+ * index as its parameter.
+ *
+ * @return PJ_SUCCESS on successful operation or the appropriate
+ * error code.
+ */
+PJ_DECL(pj_status_t) pjmedia_aud_dev_refresh(void);
+
+
+/**
+ * Get the number of sound devices installed in the system.
+ *
+ * @return The number of sound devices installed in the system.
+ */
+PJ_DECL(unsigned) pjmedia_aud_dev_count(void);
+
+
+/**
+ * Get device information.
+ *
+ * @param id The audio device ID.
+ * @param info The device information which will be filled in by this
+ * function once it returns successfully.
+ *
+ * @return PJ_SUCCESS on successful operation or the appropriate
+ * error code.
+ */
+PJ_DECL(pj_status_t) pjmedia_aud_dev_get_info(pjmedia_aud_dev_index id,
+ pjmedia_aud_dev_info *info);
+
+
+/**
+ * Lookup device index based on the driver and device name.
+ *
+ * @param drv_name The driver name.
+ * @param dev_name The device name.
+ * @param id Pointer to store the returned device ID.
+ *
+ * @return PJ_SUCCESS if the device can be found.
+ */
+PJ_DECL(pj_status_t) pjmedia_aud_dev_lookup(const char *drv_name,
+ const char *dev_name,
+ pjmedia_aud_dev_index *id);
+
+
+/**
+ * Initialize the audio device parameters with default values for the
+ * specified device.
+ *
+ * @param id The audio device ID.
+ * @param param The audio device parameters which will be initialized
+ * by this function once it returns successfully.
+ *
+ * @return PJ_SUCCESS on successful operation or the appropriate
+ * error code.
+ */
+PJ_DECL(pj_status_t) pjmedia_aud_dev_default_param(pjmedia_aud_dev_index id,
+ pjmedia_aud_param *param);
+
+
+/**
+ * Open audio stream object using the specified parameters.
+ *
+ * @param param Sound device parameters to be used for the stream.
+ * @param rec_cb Callback to be called on every input frame captured.
+ * @param play_cb Callback to be called everytime the sound device needs
+ * audio frames to be played back.
+ * @param user_data Arbitrary user data, which will be given back in the
+ * callbacks.
+ * @param p_strm Pointer to receive the audio stream.
+ *
+ * @return PJ_SUCCESS on successful operation or the appropriate
+ * error code.
+ */
+PJ_DECL(pj_status_t) pjmedia_aud_stream_create(const pjmedia_aud_param *param,
+ pjmedia_aud_rec_cb rec_cb,
+ pjmedia_aud_play_cb play_cb,
+ void *user_data,
+ pjmedia_aud_stream **p_strm);
+
+/**
+ * Get the running parameters for the specified audio stream.
+ *
+ * @param strm The audio stream.
+ * @param param Audio stream parameters to be filled in by this
+ * function once it returns successfully.
+ *
+ * @return PJ_SUCCESS on successful operation or the appropriate
+ * error code.
+ */
+PJ_DECL(pj_status_t) pjmedia_aud_stream_get_param(pjmedia_aud_stream *strm,
+ pjmedia_aud_param *param);
+
+/**
+ * Get the value of a specific capability of the audio stream.
+ *
+ * @param strm The audio stream.
+ * @param cap The audio capability which value is to be retrieved.
+ * @param value Pointer to value to be filled in by this function
+ * once it returns successfully. Please see the type
+ * of value to be supplied in the pjmedia_aud_dev_cap
+ * documentation.
+ *
+ * @return PJ_SUCCESS on successful operation or the appropriate
+ * error code.
+ */
+PJ_DECL(pj_status_t) pjmedia_aud_stream_get_cap(pjmedia_aud_stream *strm,
+ pjmedia_aud_dev_cap cap,
+ void *value);
+
+/**
+ * Set the value of a specific capability of the audio stream.
+ *
+ * @param strm The audio stream.
+ * @param cap The audio capability which value is to be set.
+ * @param value Pointer to value. Please see the type of value to
+ * be supplied in the pjmedia_aud_dev_cap documentation.
+ *
+ * @return PJ_SUCCESS on successful operation or the appropriate
+ * error code.
+ */
+PJ_DECL(pj_status_t) pjmedia_aud_stream_set_cap(pjmedia_aud_stream *strm,
+ pjmedia_aud_dev_cap cap,
+ const void *value);
+
+/**
+ * Start the stream.
+ *
+ * @param strm The audio stream.
+ *
+ * @return PJ_SUCCESS on successful operation or the appropriate
+ * error code.
+ */
+PJ_DECL(pj_status_t) pjmedia_aud_stream_start(pjmedia_aud_stream *strm);
+
+/**
+ * Stop the stream.
+ *
+ * @param strm The audio stream.
+ *
+ * @return PJ_SUCCESS on successful operation or the appropriate
+ * error code.
+ */
+PJ_DECL(pj_status_t) pjmedia_aud_stream_stop(pjmedia_aud_stream *strm);
+
+/**
+ * Destroy the stream.
+ *
+ * @param strm The audio stream.
+ *
+ * @return PJ_SUCCESS on successful operation or the appropriate
+ * error code.
+ */
+PJ_DECL(pj_status_t) pjmedia_aud_stream_destroy(pjmedia_aud_stream *strm);
+
+
+/**
+ * @}
+ */
+
+PJ_END_DECL
+
+
+#endif /* __PJMEDIA_AUDIODEV_AUDIODEV_H__ */
+
diff --git a/jni/pjproject-android/.svn/pristine/54/54eda794a6b297f4f40550ffb5c1f06326e4d88b.svn-base b/jni/pjproject-android/.svn/pristine/54/54eda794a6b297f4f40550ffb5c1f06326e4d88b.svn-base
new file mode 100644
index 0000000..531be6b
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/54/54eda794a6b297f4f40550ffb5c1f06326e4d88b.svn-base
@@ -0,0 +1,1457 @@
+/* $Id$ */
+/*
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#include <pj/os.h>
+#include <pj/pool.h>
+#include <pj/log.h>
+#include <pj/string.h>
+#include <pj/guid.h>
+#include <pj/rand.h>
+#include <pj/assert.h>
+#include <pj/errno.h>
+#include <pj/except.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#if defined(PJ_HAS_WINSOCK_H) && PJ_HAS_WINSOCK_H != 0
+# include <winsock.h>
+#endif
+
+#if defined(PJ_HAS_WINSOCK2_H) && PJ_HAS_WINSOCK2_H != 0
+# include <winsock2.h>
+#endif
+
+/* Activate mutex related logging if PJ_DEBUG_MUTEX is set, otherwise
+ * use default level 6 logging.
+ */
+#if defined(PJ_DEBUG_MUTEX) && PJ_DEBUG_MUTEX
+# undef PJ_DEBUG
+# define PJ_DEBUG 1
+# define LOG_MUTEX(expr) PJ_LOG(5,expr)
+#else
+# define LOG_MUTEX(expr) PJ_LOG(6,expr)
+#endif
+
+#define THIS_FILE "os_core_win32.c"
+
+/*
+ * Implementation of pj_thread_t.
+ */
+struct pj_thread_t
+{
+ char obj_name[PJ_MAX_OBJ_NAME];
+ HANDLE hthread;
+ DWORD idthread;
+ pj_thread_proc *proc;
+ void *arg;
+
+#if defined(PJ_OS_HAS_CHECK_STACK) && PJ_OS_HAS_CHECK_STACK!=0
+ pj_uint32_t stk_size;
+ pj_uint32_t stk_max_usage;
+ char *stk_start;
+ const char *caller_file;
+ int caller_line;
+#endif
+};
+
+
+/*
+ * Implementation of pj_mutex_t.
+ */
+struct pj_mutex_t
+{
+#if PJ_WIN32_WINNT >= 0x0400
+ CRITICAL_SECTION crit;
+#else
+ HANDLE hMutex;
+#endif
+ char obj_name[PJ_MAX_OBJ_NAME];
+#if PJ_DEBUG
+ int nesting_level;
+ pj_thread_t *owner;
+#endif
+};
+
+/*
+ * Implementation of pj_sem_t.
+ */
+typedef struct pj_sem_t
+{
+ HANDLE hSemaphore;
+ char obj_name[PJ_MAX_OBJ_NAME];
+} pj_mem_t;
+
+
+/*
+ * Implementation of pj_event_t.
+ */
+struct pj_event_t
+{
+ HANDLE hEvent;
+ char obj_name[PJ_MAX_OBJ_NAME];
+};
+
+/*
+ * Implementation of pj_atomic_t.
+ */
+struct pj_atomic_t
+{
+ long value;
+};
+
+/*
+ * Flag and reference counter for PJLIB instance.
+ */
+static int initialized;
+
+/*
+ * Static global variables.
+ */
+static pj_thread_desc main_thread;
+static long thread_tls_id = -1;
+static pj_mutex_t critical_section_mutex;
+static unsigned atexit_count;
+static void (*atexit_func[32])(void);
+
+/*
+ * Some static prototypes.
+ */
+static pj_status_t init_mutex(pj_mutex_t *mutex, const char *name);
+
+
+/*
+ * pj_init(void).
+ * Init PJLIB!
+ */
+PJ_DEF(pj_status_t) pj_init(void)
+{
+ WSADATA wsa;
+ char dummy_guid[32]; /* use maximum GUID length */
+ pj_str_t guid;
+ pj_status_t rc;
+
+ /* Check if PJLIB have been initialized */
+ if (initialized) {
+ ++initialized;
+ return PJ_SUCCESS;
+ }
+
+ /* Init Winsock.. */
+ if (WSAStartup(MAKEWORD(2,0), &wsa) != 0) {
+ return PJ_RETURN_OS_ERROR(WSAGetLastError());
+ }
+
+ /* Init this thread's TLS. */
+ if ((rc=pj_thread_init()) != PJ_SUCCESS) {
+ return rc;
+ }
+
+ /* Init logging */
+ pj_log_init();
+
+ /* Init random seed. */
+ /* Or probably not. Let application in charge of this */
+ /* pj_srand( GetCurrentProcessId() ); */
+
+ /* Initialize critical section. */
+ if ((rc=init_mutex(&critical_section_mutex, "pj%p")) != PJ_SUCCESS)
+ return rc;
+
+ /* Startup GUID. */
+ guid.ptr = dummy_guid;
+ pj_generate_unique_string( &guid );
+
+ /* Initialize exception ID for the pool.
+ * Must do so after critical section is configured.
+ */
+ rc = pj_exception_id_alloc("PJLIB/No memory", &PJ_NO_MEMORY_EXCEPTION);
+ if (rc != PJ_SUCCESS)
+ return rc;
+
+ /* Startup timestamp */
+#if defined(PJ_HAS_HIGH_RES_TIMER) && PJ_HAS_HIGH_RES_TIMER != 0
+ {
+ pj_timestamp dummy_ts;
+ if ((rc=pj_get_timestamp_freq(&dummy_ts)) != PJ_SUCCESS) {
+ return rc;
+ }
+ if ((rc=pj_get_timestamp(&dummy_ts)) != PJ_SUCCESS) {
+ return rc;
+ }
+ }
+#endif
+
+ /* Flag PJLIB as initialized */
+ ++initialized;
+ pj_assert(initialized == 1);
+
+ PJ_LOG(4,(THIS_FILE, "pjlib %s for win32 initialized",
+ PJ_VERSION));
+
+ return PJ_SUCCESS;
+}
+
+/*
+ * pj_atexit()
+ */
+PJ_DEF(pj_status_t) pj_atexit(void (*func)(void))
+{
+ if (atexit_count >= PJ_ARRAY_SIZE(atexit_func))
+ return PJ_ETOOMANY;
+
+ atexit_func[atexit_count++] = func;
+ return PJ_SUCCESS;
+}
+
+
+/*
+ * pj_shutdown(void)
+ */
+PJ_DEF(void) pj_shutdown()
+{
+ int i;
+
+ /* Only perform shutdown operation when 'initialized' reaches zero */
+ pj_assert(initialized > 0);
+ if (--initialized != 0)
+ return;
+
+ /* Display stack usage */
+#if defined(PJ_OS_HAS_CHECK_STACK) && PJ_OS_HAS_CHECK_STACK!=0
+ {
+ pj_thread_t *rec = (pj_thread_t*)main_thread;
+ PJ_LOG(5,(rec->obj_name, "Main thread stack max usage=%u by %s:%d",
+ rec->stk_max_usage, rec->caller_file, rec->caller_line));
+ }
+#endif
+
+ /* Call atexit() functions */
+ for (i=atexit_count-1; i>=0; --i) {
+ (*atexit_func[i])();
+ }
+ atexit_count = 0;
+
+ /* Free exception ID */
+ if (PJ_NO_MEMORY_EXCEPTION != -1) {
+ pj_exception_id_free(PJ_NO_MEMORY_EXCEPTION);
+ PJ_NO_MEMORY_EXCEPTION = -1;
+ }
+
+ /* Destroy PJLIB critical section */
+ pj_mutex_destroy(&critical_section_mutex);
+
+ /* Free PJLIB TLS */
+ if (thread_tls_id != -1) {
+ pj_thread_local_free(thread_tls_id);
+ thread_tls_id = -1;
+ }
+
+ /* Clear static variables */
+ pj_errno_clear_handlers();
+
+ /* Ticket #1132: Assertion when (re)starting PJLIB on different thread */
+ pj_bzero(main_thread, sizeof(main_thread));
+
+ /* Shutdown Winsock */
+ WSACleanup();
+}
+
+
+/*
+ * pj_getpid(void)
+ */
+PJ_DEF(pj_uint32_t) pj_getpid(void)
+{
+ PJ_CHECK_STACK();
+ return GetCurrentProcessId();
+}
+
+/*
+ * Check if this thread has been registered to PJLIB.
+ */
+PJ_DEF(pj_bool_t) pj_thread_is_registered(void)
+{
+ return pj_thread_local_get(thread_tls_id) != 0;
+}
+
+
+/*
+ * Get thread priority value for the thread.
+ */
+PJ_DEF(int) pj_thread_get_prio(pj_thread_t *thread)
+{
+ return GetThreadPriority(thread->hthread);
+}
+
+
+/*
+ * Set the thread priority.
+ */
+PJ_DEF(pj_status_t) pj_thread_set_prio(pj_thread_t *thread, int prio)
+{
+#if PJ_HAS_THREADS
+ PJ_ASSERT_RETURN(thread, PJ_EINVAL);
+ PJ_ASSERT_RETURN(prio>=THREAD_PRIORITY_IDLE &&
+ prio<=THREAD_PRIORITY_TIME_CRITICAL,
+ PJ_EINVAL);
+
+ if (SetThreadPriority(thread->hthread, prio) == FALSE)
+ return PJ_RETURN_OS_ERROR(GetLastError());
+
+ return PJ_SUCCESS;
+
+#else
+ PJ_UNUSED_ARG(thread);
+ PJ_UNUSED_ARG(prio);
+ pj_assert("pj_thread_set_prio() called in non-threading mode!");
+ return PJ_EINVALIDOP;
+#endif
+}
+
+
+/*
+ * Get the lowest priority value available on this system.
+ */
+PJ_DEF(int) pj_thread_get_prio_min(pj_thread_t *thread)
+{
+ PJ_UNUSED_ARG(thread);
+ return THREAD_PRIORITY_IDLE;
+}
+
+
+/*
+ * Get the highest priority value available on this system.
+ */
+PJ_DEF(int) pj_thread_get_prio_max(pj_thread_t *thread)
+{
+ PJ_UNUSED_ARG(thread);
+ return THREAD_PRIORITY_TIME_CRITICAL;
+}
+
+
+/*
+ * Get native thread handle
+ */
+PJ_DEF(void*) pj_thread_get_os_handle(pj_thread_t *thread)
+{
+ PJ_ASSERT_RETURN(thread, NULL);
+
+#if PJ_HAS_THREADS
+ return thread->hthread;
+#else
+ pj_assert("pj_thread_is_registered() called in non-threading mode!");
+ return NULL;
+#endif
+}
+
+/*
+ * pj_thread_register(..)
+ */
+PJ_DEF(pj_status_t) pj_thread_register ( const char *cstr_thread_name,
+ pj_thread_desc desc,
+ pj_thread_t **thread_ptr)
+{
+ char stack_ptr;
+ pj_status_t rc;
+ pj_thread_t *thread = (pj_thread_t *)desc;
+ pj_str_t thread_name = pj_str((char*)cstr_thread_name);
+
+ /* Size sanity check. */
+ if (sizeof(pj_thread_desc) < sizeof(pj_thread_t)) {
+ pj_assert(!"Not enough pj_thread_desc size!");
+ return PJ_EBUG;
+ }
+
+ /* If a thread descriptor has been registered before, just return it. */
+ if (pj_thread_local_get (thread_tls_id) != 0) {
+ // 2006-02-26 bennylp:
+ // This wouldn't work in all cases!.
+ // If thread is created by external module (e.g. sound thread),
+ // thread may be reused while the pool used for the thread descriptor
+ // has been deleted by application.
+ //*thread_ptr = (pj_thread_t*)pj_thread_local_get (thread_tls_id);
+ //return PJ_SUCCESS;
+ }
+
+ /* Initialize and set the thread entry. */
+ pj_bzero(desc, sizeof(struct pj_thread_t));
+ thread->hthread = GetCurrentThread();
+ thread->idthread = GetCurrentThreadId();
+
+#if defined(PJ_OS_HAS_CHECK_STACK) && PJ_OS_HAS_CHECK_STACK!=0
+ thread->stk_start = &stack_ptr;
+ thread->stk_size = 0xFFFFFFFFUL;
+ thread->stk_max_usage = 0;
+#else
+ stack_ptr = '\0';
+#endif
+
+ if (cstr_thread_name && pj_strlen(&thread_name) < sizeof(thread->obj_name)-1)
+ pj_ansi_snprintf(thread->obj_name, sizeof(thread->obj_name),
+ cstr_thread_name, thread->idthread);
+ else
+ pj_ansi_snprintf(thread->obj_name, sizeof(thread->obj_name),
+ "thr%p", (void*)(pj_ssize_t)thread->idthread);
+
+ rc = pj_thread_local_set(thread_tls_id, thread);
+ if (rc != PJ_SUCCESS)
+ return rc;
+
+ *thread_ptr = thread;
+ return PJ_SUCCESS;
+}
+
+/*
+ * pj_thread_init(void)
+ */
+pj_status_t pj_thread_init(void)
+{
+ pj_status_t rc;
+ pj_thread_t *thread;
+
+ rc = pj_thread_local_alloc(&thread_tls_id);
+ if (rc != PJ_SUCCESS)
+ return rc;
+
+ return pj_thread_register("thr%p", main_thread, &thread);
+}
+
+static DWORD WINAPI thread_main(void *param)
+{
+ pj_thread_t *rec = param;
+ DWORD result;
+
+#if defined(PJ_OS_HAS_CHECK_STACK) && PJ_OS_HAS_CHECK_STACK!=0
+ rec->stk_start = (char*)&rec;
+#endif
+
+ if (pj_thread_local_set(thread_tls_id, rec) != PJ_SUCCESS) {
+ pj_assert(!"TLS is not set (pj_init() error?)");
+ }
+
+ PJ_LOG(6,(rec->obj_name, "Thread started"));
+
+ result = (*rec->proc)(rec->arg);
+
+ PJ_LOG(6,(rec->obj_name, "Thread quitting"));
+#if defined(PJ_OS_HAS_CHECK_STACK) && PJ_OS_HAS_CHECK_STACK!=0
+ PJ_LOG(5,(rec->obj_name, "Thread stack max usage=%u by %s:%d",
+ rec->stk_max_usage, rec->caller_file, rec->caller_line));
+#endif
+
+ return (DWORD)result;
+}
+
+/*
+ * pj_thread_create(...)
+ */
+PJ_DEF(pj_status_t) pj_thread_create( pj_pool_t *pool,
+ const char *thread_name,
+ pj_thread_proc *proc,
+ void *arg,
+ pj_size_t stack_size,
+ unsigned flags,
+ pj_thread_t **thread_ptr)
+{
+ DWORD dwflags = 0;
+ pj_thread_t *rec;
+
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(pool && proc && thread_ptr, PJ_EINVAL);
+
+ /* Set flags */
+ if (flags & PJ_THREAD_SUSPENDED)
+ dwflags |= CREATE_SUSPENDED;
+
+ /* Create thread record and assign name for the thread */
+ rec = (struct pj_thread_t*) pj_pool_calloc(pool, 1, sizeof(pj_thread_t));
+ if (!rec)
+ return PJ_ENOMEM;
+
+ /* Set name. */
+ if (!thread_name)
+ thread_name = "thr%p";
+
+ if (strchr(thread_name, '%')) {
+ pj_ansi_snprintf(rec->obj_name, PJ_MAX_OBJ_NAME, thread_name, rec);
+ } else {
+ pj_ansi_strncpy(rec->obj_name, thread_name, PJ_MAX_OBJ_NAME);
+ rec->obj_name[PJ_MAX_OBJ_NAME-1] = '\0';
+ }
+
+ PJ_LOG(6, (rec->obj_name, "Thread created"));
+
+#if defined(PJ_OS_HAS_CHECK_STACK) && PJ_OS_HAS_CHECK_STACK!=0
+ rec->stk_size = stack_size ? (pj_uint32_t)stack_size : 0xFFFFFFFFUL;
+ rec->stk_max_usage = 0;
+#endif
+
+ /* Create the thread. */
+ rec->proc = proc;
+ rec->arg = arg;
+ rec->hthread = CreateThread(NULL, stack_size,
+ thread_main, rec,
+ dwflags, &rec->idthread);
+ if (rec->hthread == NULL)
+ return PJ_RETURN_OS_ERROR(GetLastError());
+
+ /* Success! */
+ *thread_ptr = rec;
+ return PJ_SUCCESS;
+}
+
+/*
+ * pj_thread-get_name()
+ */
+PJ_DEF(const char*) pj_thread_get_name(pj_thread_t *p)
+{
+ pj_thread_t *rec = (pj_thread_t*)p;
+
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(p, "");
+
+ return rec->obj_name;
+}
+
+/*
+ * pj_thread_resume()
+ */
+PJ_DEF(pj_status_t) pj_thread_resume(pj_thread_t *p)
+{
+ pj_thread_t *rec = (pj_thread_t*)p;
+
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(p, PJ_EINVAL);
+
+ if (ResumeThread(rec->hthread) == (DWORD)-1)
+ return PJ_RETURN_OS_ERROR(GetLastError());
+ else
+ return PJ_SUCCESS;
+}
+
+/*
+ * pj_thread_this()
+ */
+PJ_DEF(pj_thread_t*) pj_thread_this(void)
+{
+ pj_thread_t *rec = pj_thread_local_get(thread_tls_id);
+
+ if (rec == NULL) {
+ pj_assert(!"Calling pjlib from unknown/external thread. You must "
+ "register external threads with pj_thread_register() "
+ "before calling any pjlib functions.");
+ }
+
+ /*
+ * MUST NOT check stack because this function is called
+ * by PJ_CHECK_STACK() itself!!!
+ *
+ */
+
+ return rec;
+}
+
+/*
+ * pj_thread_join()
+ */
+PJ_DEF(pj_status_t) pj_thread_join(pj_thread_t *p)
+{
+ pj_thread_t *rec = (pj_thread_t *)p;
+ DWORD rc;
+
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(p, PJ_EINVAL);
+
+ if (p == pj_thread_this())
+ return PJ_ECANCELLED;
+
+ PJ_LOG(6, (pj_thread_this()->obj_name, "Joining thread %s", p->obj_name));
+
+ rc = WaitForSingleObject(rec->hthread, INFINITE);
+
+ if (rc==WAIT_OBJECT_0)
+ return PJ_SUCCESS;
+ else if (rc==WAIT_TIMEOUT)
+ return PJ_ETIMEDOUT;
+ else
+ return PJ_RETURN_OS_ERROR(GetLastError());
+}
+
+/*
+ * pj_thread_destroy()
+ */
+PJ_DEF(pj_status_t) pj_thread_destroy(pj_thread_t *p)
+{
+ pj_thread_t *rec = (pj_thread_t *)p;
+
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(p, PJ_EINVAL);
+
+ if (CloseHandle(rec->hthread) == TRUE)
+ return PJ_SUCCESS;
+ else
+ return PJ_RETURN_OS_ERROR(GetLastError());
+}
+
+/*
+ * pj_thread_sleep()
+ */
+PJ_DEF(pj_status_t) pj_thread_sleep(unsigned msec)
+{
+ PJ_CHECK_STACK();
+ Sleep(msec);
+ return PJ_SUCCESS;
+}
+
+#if defined(PJ_OS_HAS_CHECK_STACK) && PJ_OS_HAS_CHECK_STACK != 0
+/*
+ * pj_thread_check_stack()
+ * Implementation for PJ_CHECK_STACK()
+ */
+PJ_DEF(void) pj_thread_check_stack(const char *file, int line)
+{
+ char stk_ptr;
+ pj_uint32_t usage;
+ pj_thread_t *thread = pj_thread_this();
+
+ pj_assert(thread);
+
+ /* Calculate current usage. */
+ usage = (&stk_ptr > thread->stk_start) ?
+ (pj_uint32_t)(&stk_ptr - thread->stk_start) :
+ (pj_uint32_t)(thread->stk_start - &stk_ptr);
+
+ /* Assert if stack usage is dangerously high. */
+ pj_assert("STACK OVERFLOW!! " && (usage <= thread->stk_size - 128));
+
+ /* Keep statistic. */
+ if (usage > thread->stk_max_usage) {
+ thread->stk_max_usage = usage;
+ thread->caller_file = file;
+ thread->caller_line = line;
+ }
+
+}
+
+/*
+ * pj_thread_get_stack_max_usage()
+ */
+PJ_DEF(pj_uint32_t) pj_thread_get_stack_max_usage(pj_thread_t *thread)
+{
+ return thread->stk_max_usage;
+}
+
+/*
+ * pj_thread_get_stack_info()
+ */
+PJ_DEF(pj_status_t) pj_thread_get_stack_info( pj_thread_t *thread,
+ const char **file,
+ int *line )
+{
+ pj_assert(thread);
+
+ *file = thread->caller_file;
+ *line = thread->caller_line;
+ return 0;
+}
+
+#endif /* PJ_OS_HAS_CHECK_STACK */
+
+
+///////////////////////////////////////////////////////////////////////////////
+
+/*
+ * pj_atomic_create()
+ */
+PJ_DEF(pj_status_t) pj_atomic_create( pj_pool_t *pool,
+ pj_atomic_value_t initial,
+ pj_atomic_t **atomic_ptr)
+{
+ pj_atomic_t *atomic_var = pj_pool_alloc(pool, sizeof(pj_atomic_t));
+ if (!atomic_var)
+ return PJ_ENOMEM;
+
+ atomic_var->value = initial;
+ *atomic_ptr = atomic_var;
+
+ return PJ_SUCCESS;
+}
+
+/*
+ * pj_atomic_destroy()
+ */
+PJ_DEF(pj_status_t) pj_atomic_destroy( pj_atomic_t *var )
+{
+ PJ_UNUSED_ARG(var);
+ PJ_ASSERT_RETURN(var, PJ_EINVAL);
+
+ return 0;
+}
+
+/*
+ * pj_atomic_set()
+ */
+PJ_DEF(void) pj_atomic_set( pj_atomic_t *atomic_var, pj_atomic_value_t value)
+{
+ PJ_CHECK_STACK();
+
+ InterlockedExchange(&atomic_var->value, value);
+}
+
+/*
+ * pj_atomic_get()
+ */
+PJ_DEF(pj_atomic_value_t) pj_atomic_get(pj_atomic_t *atomic_var)
+{
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(atomic_var, 0);
+
+ return atomic_var->value;
+}
+
+/*
+ * pj_atomic_inc_and_get()
+ */
+PJ_DEF(pj_atomic_value_t) pj_atomic_inc_and_get(pj_atomic_t *atomic_var)
+{
+ PJ_CHECK_STACK();
+
+#if defined(PJ_WIN32_WINNT) && PJ_WIN32_WINNT >= 0x0400
+ return InterlockedIncrement(&atomic_var->value);
+#else
+ return InterlockedIncrement(&atomic_var->value);
+#endif
+}
+
+/*
+ * pj_atomic_inc()
+ */
+PJ_DEF(void) pj_atomic_inc(pj_atomic_t *atomic_var)
+{
+ pj_atomic_inc_and_get(atomic_var);
+}
+
+/*
+ * pj_atomic_dec_and_get()
+ */
+PJ_DEF(pj_atomic_value_t) pj_atomic_dec_and_get(pj_atomic_t *atomic_var)
+{
+ PJ_CHECK_STACK();
+
+#if defined(PJ_WIN32_WINNT) && PJ_WIN32_WINNT >= 0x0400
+ return InterlockedDecrement(&atomic_var->value);
+#else
+ return InterlockedDecrement(&atomic_var->value);
+#endif
+}
+
+/*
+ * pj_atomic_dec()
+ */
+PJ_DEF(void) pj_atomic_dec(pj_atomic_t *atomic_var)
+{
+ pj_atomic_dec_and_get(atomic_var);
+}
+
+/*
+ * pj_atomic_add()
+ */
+PJ_DEF(void) pj_atomic_add( pj_atomic_t *atomic_var,
+ pj_atomic_value_t value )
+{
+#if defined(PJ_WIN32_WINNT) && PJ_WIN32_WINNT >= 0x0400
+ InterlockedExchangeAdd( &atomic_var->value, value );
+#else
+ InterlockedExchangeAdd( &atomic_var->value, value );
+#endif
+}
+
+/*
+ * pj_atomic_add_and_get()
+ */
+PJ_DEF(pj_atomic_value_t) pj_atomic_add_and_get( pj_atomic_t *atomic_var,
+ pj_atomic_value_t value)
+{
+#if defined(PJ_WIN32_WINNT) && PJ_WIN32_WINNT >= 0x0400
+ long oldValue = InterlockedExchangeAdd( &atomic_var->value, value);
+ return oldValue + value;
+#else
+ long oldValue = InterlockedExchangeAdd( &atomic_var->value, value);
+ return oldValue + value;
+#endif
+}
+
+///////////////////////////////////////////////////////////////////////////////
+/*
+ * pj_thread_local_alloc()
+ */
+PJ_DEF(pj_status_t) pj_thread_local_alloc(long *index)
+{
+ PJ_ASSERT_RETURN(index != NULL, PJ_EINVAL);
+
+ //Can't check stack because this function is called in the
+ //beginning before main thread is initialized.
+ //PJ_CHECK_STACK();
+
+ *index = TlsAlloc();
+
+ if (*index == TLS_OUT_OF_INDEXES)
+ return PJ_RETURN_OS_ERROR(GetLastError());
+ else
+ return PJ_SUCCESS;
+}
+
+/*
+ * pj_thread_local_free()
+ */
+PJ_DEF(void) pj_thread_local_free(long index)
+{
+ PJ_CHECK_STACK();
+ TlsFree(index);
+}
+
+/*
+ * pj_thread_local_set()
+ */
+PJ_DEF(pj_status_t) pj_thread_local_set(long index, void *value)
+{
+ BOOL rc;
+
+ //Can't check stack because this function is called in the
+ //beginning before main thread is initialized.
+ //PJ_CHECK_STACK();
+ rc = TlsSetValue(index, value);
+ return rc!=0 ? PJ_SUCCESS : PJ_RETURN_OS_ERROR(GetLastError());
+}
+
+/*
+ * pj_thread_local_get()
+ */
+PJ_DEF(void*) pj_thread_local_get(long index)
+{
+ //Can't check stack because this function is called
+ //by PJ_CHECK_STACK() itself!!!
+ //PJ_CHECK_STACK();
+ return TlsGetValue(index);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+static pj_status_t init_mutex(pj_mutex_t *mutex, const char *name)
+{
+
+ PJ_CHECK_STACK();
+
+#if PJ_WIN32_WINNT >= 0x0400
+ InitializeCriticalSection(&mutex->crit);
+#else
+ mutex->hMutex = CreateMutex(NULL, FALSE, NULL);
+ if (!mutex->hMutex) {
+ return PJ_RETURN_OS_ERROR(GetLastError());
+ }
+#endif
+
+#if PJ_DEBUG
+ /* Set owner. */
+ mutex->nesting_level = 0;
+ mutex->owner = NULL;
+#endif
+
+ /* Set name. */
+ if (!name) {
+ name = "mtx%p";
+ }
+ if (strchr(name, '%')) {
+ pj_ansi_snprintf(mutex->obj_name, PJ_MAX_OBJ_NAME, name, mutex);
+ } else {
+ pj_ansi_strncpy(mutex->obj_name, name, PJ_MAX_OBJ_NAME);
+ mutex->obj_name[PJ_MAX_OBJ_NAME-1] = '\0';
+ }
+
+ PJ_LOG(6, (mutex->obj_name, "Mutex created"));
+ return PJ_SUCCESS;
+}
+
+/*
+ * pj_mutex_create()
+ */
+PJ_DEF(pj_status_t) pj_mutex_create(pj_pool_t *pool,
+ const char *name,
+ int type,
+ pj_mutex_t **mutex_ptr)
+{
+ pj_status_t rc;
+ pj_mutex_t *mutex;
+
+ PJ_UNUSED_ARG(type);
+ PJ_ASSERT_RETURN(pool && mutex_ptr, PJ_EINVAL);
+
+ mutex = pj_pool_alloc(pool, sizeof(*mutex));
+ if (!mutex)
+ return PJ_ENOMEM;
+
+ rc = init_mutex(mutex, name);
+ if (rc != PJ_SUCCESS)
+ return rc;
+
+ *mutex_ptr = mutex;
+
+ return PJ_SUCCESS;
+}
+
+/*
+ * pj_mutex_create_simple()
+ */
+PJ_DEF(pj_status_t) pj_mutex_create_simple( pj_pool_t *pool,
+ const char *name,
+ pj_mutex_t **mutex )
+{
+ return pj_mutex_create(pool, name, PJ_MUTEX_SIMPLE, mutex);
+}
+
+/*
+ * pj_mutex_create_recursive()
+ */
+PJ_DEF(pj_status_t) pj_mutex_create_recursive( pj_pool_t *pool,
+ const char *name,
+ pj_mutex_t **mutex )
+{
+ return pj_mutex_create(pool, name, PJ_MUTEX_RECURSE, mutex);
+}
+
+/*
+ * pj_mutex_lock()
+ */
+PJ_DEF(pj_status_t) pj_mutex_lock(pj_mutex_t *mutex)
+{
+ pj_status_t status;
+
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(mutex, PJ_EINVAL);
+
+ LOG_MUTEX((mutex->obj_name, "Mutex: thread %s is waiting",
+ pj_thread_this()->obj_name));
+
+#if PJ_WIN32_WINNT >= 0x0400
+ EnterCriticalSection(&mutex->crit);
+ status=PJ_SUCCESS;
+#else
+ if (WaitForSingleObject(mutex->hMutex, INFINITE)==WAIT_OBJECT_0)
+ status = PJ_SUCCESS;
+ else
+ status = PJ_STATUS_FROM_OS(GetLastError());
+
+#endif
+ LOG_MUTEX((mutex->obj_name,
+ (status==PJ_SUCCESS ? "Mutex acquired by thread %s" : "FAILED by %s"),
+ pj_thread_this()->obj_name));
+
+#if PJ_DEBUG
+ if (status == PJ_SUCCESS) {
+ mutex->owner = pj_thread_this();
+ ++mutex->nesting_level;
+ }
+#endif
+
+ return status;
+}
+
+/*
+ * pj_mutex_unlock()
+ */
+PJ_DEF(pj_status_t) pj_mutex_unlock(pj_mutex_t *mutex)
+{
+ pj_status_t status;
+
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(mutex, PJ_EINVAL);
+
+#if PJ_DEBUG
+ pj_assert(mutex->owner == pj_thread_this());
+ if (--mutex->nesting_level == 0) {
+ mutex->owner = NULL;
+ }
+#endif
+
+ LOG_MUTEX((mutex->obj_name, "Mutex released by thread %s",
+ pj_thread_this()->obj_name));
+
+#if PJ_WIN32_WINNT >= 0x0400
+ LeaveCriticalSection(&mutex->crit);
+ status=PJ_SUCCESS;
+#else
+ status = ReleaseMutex(mutex->hMutex) ? PJ_SUCCESS :
+ PJ_STATUS_FROM_OS(GetLastError());
+#endif
+ return status;
+}
+
+/*
+ * pj_mutex_trylock()
+ */
+PJ_DEF(pj_status_t) pj_mutex_trylock(pj_mutex_t *mutex)
+{
+ pj_status_t status;
+
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(mutex, PJ_EINVAL);
+
+ LOG_MUTEX((mutex->obj_name, "Mutex: thread %s is trying",
+ pj_thread_this()->obj_name));
+
+#if PJ_WIN32_WINNT >= 0x0400
+ status=TryEnterCriticalSection(&mutex->crit) ? PJ_SUCCESS : PJ_EUNKNOWN;
+#else
+ status = WaitForSingleObject(mutex->hMutex, 0)==WAIT_OBJECT_0 ?
+ PJ_SUCCESS : PJ_ETIMEDOUT;
+#endif
+ if (status==PJ_SUCCESS) {
+ LOG_MUTEX((mutex->obj_name, "Mutex acquired by thread %s",
+ pj_thread_this()->obj_name));
+
+#if PJ_DEBUG
+ mutex->owner = pj_thread_this();
+ ++mutex->nesting_level;
+#endif
+ } else {
+ LOG_MUTEX((mutex->obj_name, "Mutex: thread %s's trylock() failed",
+ pj_thread_this()->obj_name));
+ }
+
+ return status;
+}
+
+/*
+ * pj_mutex_destroy()
+ */
+PJ_DEF(pj_status_t) pj_mutex_destroy(pj_mutex_t *mutex)
+{
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(mutex, PJ_EINVAL);
+
+ LOG_MUTEX((mutex->obj_name, "Mutex destroyed"));
+
+#if PJ_WIN32_WINNT >= 0x0400
+ DeleteCriticalSection(&mutex->crit);
+ return PJ_SUCCESS;
+#else
+ return CloseHandle(mutex->hMutex) ? PJ_SUCCESS :
+ PJ_RETURN_OS_ERROR(GetLastError());
+#endif
+}
+
+/*
+ * pj_mutex_is_locked()
+ */
+PJ_DEF(pj_bool_t) pj_mutex_is_locked(pj_mutex_t *mutex)
+{
+#if PJ_DEBUG
+ return mutex->owner == pj_thread_this();
+#else
+ PJ_UNUSED_ARG(mutex);
+ pj_assert(!"PJ_DEBUG is not set!");
+ return 1;
+#endif
+}
+
+///////////////////////////////////////////////////////////////////////////////
+/*
+ * Win32 lacks Read/Write mutex, so include the emulation.
+ */
+#include "os_rwmutex.c"
+
+///////////////////////////////////////////////////////////////////////////////
+/*
+ * pj_enter_critical_section()
+ */
+PJ_DEF(void) pj_enter_critical_section(void)
+{
+ pj_mutex_lock(&critical_section_mutex);
+}
+
+
+/*
+ * pj_leave_critical_section()
+ */
+PJ_DEF(void) pj_leave_critical_section(void)
+{
+ pj_mutex_unlock(&critical_section_mutex);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+#if defined(PJ_HAS_SEMAPHORE) && PJ_HAS_SEMAPHORE != 0
+
+/*
+ * pj_sem_create()
+ */
+PJ_DEF(pj_status_t) pj_sem_create( pj_pool_t *pool,
+ const char *name,
+ unsigned initial,
+ unsigned max,
+ pj_sem_t **sem_ptr)
+{
+ pj_sem_t *sem;
+
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(pool && sem_ptr, PJ_EINVAL);
+
+ sem = pj_pool_alloc(pool, sizeof(*sem));
+ sem->hSemaphore = CreateSemaphore(NULL, initial, max, NULL);
+ if (!sem->hSemaphore)
+ return PJ_RETURN_OS_ERROR(GetLastError());
+
+ /* Set name. */
+ if (!name) {
+ name = "sem%p";
+ }
+ if (strchr(name, '%')) {
+ pj_ansi_snprintf(sem->obj_name, PJ_MAX_OBJ_NAME, name, sem);
+ } else {
+ pj_ansi_strncpy(sem->obj_name, name, PJ_MAX_OBJ_NAME);
+ sem->obj_name[PJ_MAX_OBJ_NAME-1] = '\0';
+ }
+
+ LOG_MUTEX((sem->obj_name, "Semaphore created"));
+
+ *sem_ptr = sem;
+ return PJ_SUCCESS;
+}
+
+static pj_status_t pj_sem_wait_for(pj_sem_t *sem, unsigned timeout)
+{
+ DWORD result;
+
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(sem, PJ_EINVAL);
+
+ LOG_MUTEX((sem->obj_name, "Semaphore: thread %s is waiting",
+ pj_thread_this()->obj_name));
+
+ result = WaitForSingleObject(sem->hSemaphore, timeout);
+ if (result == WAIT_OBJECT_0) {
+ LOG_MUTEX((sem->obj_name, "Semaphore acquired by thread %s",
+ pj_thread_this()->obj_name));
+ } else {
+ LOG_MUTEX((sem->obj_name, "Semaphore: thread %s FAILED to acquire",
+ pj_thread_this()->obj_name));
+ }
+
+ if (result==WAIT_OBJECT_0)
+ return PJ_SUCCESS;
+ else if (result==WAIT_TIMEOUT)
+ return PJ_ETIMEDOUT;
+ else
+ return PJ_RETURN_OS_ERROR(GetLastError());
+}
+
+/*
+ * pj_sem_wait()
+ */
+PJ_DEF(pj_status_t) pj_sem_wait(pj_sem_t *sem)
+{
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(sem, PJ_EINVAL);
+
+ return pj_sem_wait_for(sem, INFINITE);
+}
+
+/*
+ * pj_sem_trywait()
+ */
+PJ_DEF(pj_status_t) pj_sem_trywait(pj_sem_t *sem)
+{
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(sem, PJ_EINVAL);
+
+ return pj_sem_wait_for(sem, 0);
+}
+
+/*
+ * pj_sem_post()
+ */
+PJ_DEF(pj_status_t) pj_sem_post(pj_sem_t *sem)
+{
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(sem, PJ_EINVAL);
+
+ LOG_MUTEX((sem->obj_name, "Semaphore released by thread %s",
+ pj_thread_this()->obj_name));
+
+ if (ReleaseSemaphore(sem->hSemaphore, 1, NULL))
+ return PJ_SUCCESS;
+ else
+ return PJ_RETURN_OS_ERROR(GetLastError());
+}
+
+/*
+ * pj_sem_destroy()
+ */
+PJ_DEF(pj_status_t) pj_sem_destroy(pj_sem_t *sem)
+{
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(sem, PJ_EINVAL);
+
+ LOG_MUTEX((sem->obj_name, "Semaphore destroyed by thread %s",
+ pj_thread_this()->obj_name));
+
+ if (CloseHandle(sem->hSemaphore))
+ return PJ_SUCCESS;
+ else
+ return PJ_RETURN_OS_ERROR(GetLastError());
+}
+
+#endif /* PJ_HAS_SEMAPHORE */
+///////////////////////////////////////////////////////////////////////////////
+
+
+#if defined(PJ_HAS_EVENT_OBJ) && PJ_HAS_EVENT_OBJ != 0
+
+/*
+ * pj_event_create()
+ */
+PJ_DEF(pj_status_t) pj_event_create( pj_pool_t *pool,
+ const char *name,
+ pj_bool_t manual_reset,
+ pj_bool_t initial,
+ pj_event_t **event_ptr)
+{
+ pj_event_t *event;
+
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(pool && event_ptr, PJ_EINVAL);
+
+ event = pj_pool_alloc(pool, sizeof(*event));
+ if (!event)
+ return PJ_ENOMEM;
+
+ event->hEvent = CreateEvent(NULL, manual_reset?TRUE:FALSE,
+ initial?TRUE:FALSE, NULL);
+
+ if (!event->hEvent)
+ return PJ_RETURN_OS_ERROR(GetLastError());
+
+ /* Set name. */
+ if (!name) {
+ name = "evt%p";
+ }
+ if (strchr(name, '%')) {
+ pj_ansi_snprintf(event->obj_name, PJ_MAX_OBJ_NAME, name, event);
+ } else {
+ pj_ansi_strncpy(event->obj_name, name, PJ_MAX_OBJ_NAME);
+ event->obj_name[PJ_MAX_OBJ_NAME-1] = '\0';
+ }
+
+ PJ_LOG(6, (event->obj_name, "Event created"));
+
+ *event_ptr = event;
+ return PJ_SUCCESS;
+}
+
+static pj_status_t pj_event_wait_for(pj_event_t *event, unsigned timeout)
+{
+ DWORD result;
+
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(event, PJ_EINVAL);
+
+ PJ_LOG(6, (event->obj_name, "Event: thread %s is waiting",
+ pj_thread_this()->obj_name));
+
+ result = WaitForSingleObject(event->hEvent, timeout);
+ if (result == WAIT_OBJECT_0) {
+ PJ_LOG(6, (event->obj_name, "Event: thread %s is released",
+ pj_thread_this()->obj_name));
+ } else {
+ PJ_LOG(6, (event->obj_name, "Event: thread %s FAILED to acquire",
+ pj_thread_this()->obj_name));
+ }
+
+ if (result==WAIT_OBJECT_0)
+ return PJ_SUCCESS;
+ else if (result==WAIT_TIMEOUT)
+ return PJ_ETIMEDOUT;
+ else
+ return PJ_RETURN_OS_ERROR(GetLastError());
+}
+
+/*
+ * pj_event_wait()
+ */
+PJ_DEF(pj_status_t) pj_event_wait(pj_event_t *event)
+{
+ PJ_ASSERT_RETURN(event, PJ_EINVAL);
+
+ return pj_event_wait_for(event, INFINITE);
+}
+
+/*
+ * pj_event_trywait()
+ */
+PJ_DEF(pj_status_t) pj_event_trywait(pj_event_t *event)
+{
+ PJ_ASSERT_RETURN(event, PJ_EINVAL);
+
+ return pj_event_wait_for(event, 0);
+}
+
+/*
+ * pj_event_set()
+ */
+PJ_DEF(pj_status_t) pj_event_set(pj_event_t *event)
+{
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(event, PJ_EINVAL);
+
+ PJ_LOG(6, (event->obj_name, "Setting event"));
+
+ if (SetEvent(event->hEvent))
+ return PJ_SUCCESS;
+ else
+ return PJ_RETURN_OS_ERROR(GetLastError());
+}
+
+/*
+ * pj_event_pulse()
+ */
+PJ_DEF(pj_status_t) pj_event_pulse(pj_event_t *event)
+{
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(event, PJ_EINVAL);
+
+ PJ_LOG(6, (event->obj_name, "Pulsing event"));
+
+ if (PulseEvent(event->hEvent))
+ return PJ_SUCCESS;
+ else
+ return PJ_RETURN_OS_ERROR(GetLastError());
+}
+
+/*
+ * pj_event_reset()
+ */
+PJ_DEF(pj_status_t) pj_event_reset(pj_event_t *event)
+{
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(event, PJ_EINVAL);
+
+ PJ_LOG(6, (event->obj_name, "Event is reset"));
+
+ if (ResetEvent(event->hEvent))
+ return PJ_SUCCESS;
+ else
+ return PJ_RETURN_OS_ERROR(GetLastError());
+}
+
+/*
+ * pj_event_destroy()
+ */
+PJ_DEF(pj_status_t) pj_event_destroy(pj_event_t *event)
+{
+ PJ_CHECK_STACK();
+ PJ_ASSERT_RETURN(event, PJ_EINVAL);
+
+ PJ_LOG(6, (event->obj_name, "Event is destroying"));
+
+ if (CloseHandle(event->hEvent))
+ return PJ_SUCCESS;
+ else
+ return PJ_RETURN_OS_ERROR(GetLastError());
+}
+
+#endif /* PJ_HAS_EVENT_OBJ */
+
+///////////////////////////////////////////////////////////////////////////////
+#if defined(PJ_TERM_HAS_COLOR) && PJ_TERM_HAS_COLOR != 0
+/*
+ * Terminal color
+ */
+
+static WORD pj_color_to_os_attr(pj_color_t color)
+{
+ WORD attr = 0;
+
+ if (color & PJ_TERM_COLOR_R)
+ attr |= FOREGROUND_RED;
+ if (color & PJ_TERM_COLOR_G)
+ attr |= FOREGROUND_GREEN;
+ if (color & PJ_TERM_COLOR_B)
+ attr |= FOREGROUND_BLUE;
+ if (color & PJ_TERM_COLOR_BRIGHT)
+ attr |= FOREGROUND_INTENSITY;
+
+ return attr;
+}
+
+static pj_color_t os_attr_to_pj_color(WORD attr)
+{
+ int color = 0;
+
+ if (attr & FOREGROUND_RED)
+ color |= PJ_TERM_COLOR_R;
+ if (attr & FOREGROUND_GREEN)
+ color |= PJ_TERM_COLOR_G;
+ if (attr & FOREGROUND_BLUE)
+ color |= PJ_TERM_COLOR_B;
+ if (attr & FOREGROUND_INTENSITY)
+ color |= PJ_TERM_COLOR_BRIGHT;
+
+ return color;
+}
+
+
+/*
+ * pj_term_set_color()
+ */
+PJ_DEF(pj_status_t) pj_term_set_color(pj_color_t color)
+{
+ BOOL rc;
+ WORD attr = 0;
+
+ PJ_CHECK_STACK();
+
+ attr = pj_color_to_os_attr(color);
+ rc = SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE), attr);
+ return rc ? PJ_SUCCESS : PJ_RETURN_OS_ERROR(GetLastError());
+}
+
+/*
+ * pj_term_get_color()
+ * Get current terminal foreground color.
+ */
+PJ_DEF(pj_color_t) pj_term_get_color(void)
+{
+ CONSOLE_SCREEN_BUFFER_INFO info;
+
+ PJ_CHECK_STACK();
+
+ GetConsoleScreenBufferInfo( GetStdHandle(STD_OUTPUT_HANDLE), &info);
+ return os_attr_to_pj_color(info.wAttributes);
+}
+
+#endif /* PJ_TERM_HAS_COLOR */
+
+/*
+ * pj_run_app()
+ */
+PJ_DEF(int) pj_run_app(pj_main_func_ptr main_func, int argc, char *argv[],
+ unsigned flags)
+{
+ PJ_UNUSED_ARG(flags);
+ return (*main_func)(argc, argv);
+}
diff --git a/jni/pjproject-android/.svn/pristine/54/54fa60980a30fa878f093461fab2714d314379ba.svn-base b/jni/pjproject-android/.svn/pristine/54/54fa60980a30fa878f093461fab2714d314379ba.svn-base
new file mode 100644
index 0000000..265b7f2
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/54/54fa60980a30fa878f093461fab2714d314379ba.svn-base
@@ -0,0 +1,655 @@
+/* $Id$ */
+/*
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef __PJSIP_SIP_ENDPOINT_H__
+#define __PJSIP_SIP_ENDPOINT_H__
+
+/**
+ * @file sip_endpoint.h
+ * @brief SIP Endpoint.
+ */
+
+#include <pjsip/sip_transport.h>
+#include <pjsip/sip_resolve.h>
+
+/**
+ * @defgroup PJSIP_CORE_CORE At the Very Core
+ * @ingroup PJSIP_CORE
+ * @brief The very core of PJSIP.
+ */
+
+PJ_BEGIN_DECL
+
+/**
+ * @defgroup PJSIP_ENDPT Endpoint
+ * @ingroup PJSIP_CORE_CORE
+ * @brief The master, owner of all objects
+ *
+ * SIP Endpoint instance (pjsip_endpoint) can be viewed as the master/owner of
+ * all SIP objects in an application. It performs the following roles:
+ * - it manages the allocation/deallocation of memory pools for all objects.
+ * - it manages listeners and transports, and how they are used by
+ * transactions.
+ * - it receives incoming messages from transport layer and automatically
+ * dispatches them to the correct transaction (or create a new one).
+ * - it has a single instance of timer management (timer heap).
+ * - it manages modules, which is the primary means of extending the library.
+ * - it provides single polling function for all objects and distributes
+ * events.
+ * - it automatically handles incoming requests which can not be handled by
+ * existing modules (such as when incoming request has unsupported method).
+ * - and so on..
+ *
+ * Application should only instantiate one SIP endpoint instance for every
+ * process.
+ *
+ * @{
+ */
+
+
+/**
+ * Type of callback to register to pjsip_endpt_atexit().
+ */
+typedef void (*pjsip_endpt_exit_callback)(pjsip_endpoint *endpt);
+
+
+/**
+ * Create an instance of SIP endpoint from the specified pool factory.
+ * The pool factory reference then will be kept by the endpoint, so that
+ * future memory allocations by SIP components will be taken from the same
+ * pool factory.
+ *
+ * @param pf Pool factory that will be used for the lifetime of
+ * endpoint.
+ * @param name Optional name to be specified for the endpoint.
+ * If this parameter is NULL, then the name will use
+ * local host name.
+ * @param endpt Pointer to receive endpoint instance.
+ *
+ * @return PJ_SUCCESS on success.
+ */
+PJ_DECL(pj_status_t) pjsip_endpt_create(pj_pool_factory *pf,
+ const char *name,
+ pjsip_endpoint **endpt);
+
+/**
+ * Destroy endpoint instance. Application must make sure that all pending
+ * transactions have been terminated properly, because this function does not
+ * check for the presence of pending transactions.
+ *
+ * @param endpt The SIP endpoint to be destroyed.
+ */
+PJ_DECL(void) pjsip_endpt_destroy(pjsip_endpoint *endpt);
+
+/**
+ * Get endpoint name.
+ *
+ * @param endpt The SIP endpoint instance.
+ *
+ * @return Endpoint name, as was registered during endpoint
+ * creation. The string is NULL terminated.
+ */
+PJ_DECL(const pj_str_t*) pjsip_endpt_name(const pjsip_endpoint *endpt);
+
+/**
+ * Poll for events. Application must call this function periodically to ensure
+ * that all events from both transports and timer heap are handled in timely
+ * manner. This function, like all other endpoint functions, is thread safe,
+ * and application may have more than one thread concurrently calling this function.
+ *
+ * @param endpt The endpoint.
+ * @param max_timeout Maximum time to wait for events, or NULL to wait forever
+ * until event is received.
+ *
+ * @return PJ_SUCCESS on success.
+ */
+PJ_DECL(pj_status_t) pjsip_endpt_handle_events( pjsip_endpoint *endpt,
+ const pj_time_val *max_timeout);
+
+
+/**
+ * Handle events with additional info about number of events that
+ * have been handled.
+ *
+ * @param endpt The endpoint.
+ * @param max_timeout Maximum time to wait for events, or NULL to wait forever
+ * until event is received.
+ * @param count Optional argument to receive the number of events that
+ * have been handled by the function.
+ *
+ * @return PJ_SUCCESS on success.
+ */
+PJ_DECL(pj_status_t) pjsip_endpt_handle_events2(pjsip_endpoint *endpt,
+ const pj_time_val *max_timeout,
+ unsigned *count);
+/**
+ * Schedule timer to endpoint's timer heap. Application must poll the endpoint
+ * periodically (by calling #pjsip_endpt_handle_events) to ensure that the
+ * timer events are handled in timely manner. When the timeout for the timer
+ * has elapsed, the callback specified in the entry argument will be called.
+ * This function, like all other endpoint functions, is thread safe.
+ *
+ * @param endpt The endpoint.
+ * @param entry The timer entry.
+ * @param delay The relative delay of the timer.
+ * @return PJ_OK (zero) if successfull.
+ */
+#if PJ_TIMER_DEBUG
+#define pjsip_endpt_schedule_timer(ept,ent,d) \
+ pjsip_endpt_schedule_timer_dbg(ept, ent, d, \
+ __FILE__, __LINE__)
+
+PJ_DECL(pj_status_t) pjsip_endpt_schedule_timer_dbg(pjsip_endpoint *endpt,
+ pj_timer_entry *entry,
+ const pj_time_val *delay,
+ const char *src_file,
+ int src_line);
+#else
+PJ_DECL(pj_status_t) pjsip_endpt_schedule_timer( pjsip_endpoint *endpt,
+ pj_timer_entry *entry,
+ const pj_time_val *delay );
+#endif
+
+/**
+ * Cancel the previously registered timer.
+ * This function, like all other endpoint functions, is thread safe.
+ *
+ * @param endpt The endpoint.
+ * @param entry The timer entry previously registered.
+ */
+PJ_DECL(void) pjsip_endpt_cancel_timer( pjsip_endpoint *endpt,
+ pj_timer_entry *entry );
+
+/**
+ * Get the timer heap instance of the SIP endpoint.
+ *
+ * @param endpt The endpoint.
+ *
+ * @return The timer heap instance.
+ */
+PJ_DECL(pj_timer_heap_t*) pjsip_endpt_get_timer_heap(pjsip_endpoint *endpt);
+
+
+/**
+ * Register new module to the endpoint.
+ * The endpoint will then call the load and start function in the module to
+ * properly initialize the module, and assign a unique module ID for the
+ * module.
+ *
+ * @param endpt The endpoint.
+ * @param module The module to be registered.
+ *
+ * @return PJ_SUCCESS on success.
+ */
+PJ_DECL(pj_status_t) pjsip_endpt_register_module( pjsip_endpoint *endpt,
+ pjsip_module *module );
+
+/**
+ * Unregister a module from the endpoint.
+ * The endpoint will then call the stop and unload function in the module to
+ * properly shutdown the module.
+ *
+ * @param endpt The endpoint.
+ * @param module The module to be registered.
+ *
+ * @return PJ_SUCCESS on success.
+ */
+PJ_DECL(pj_status_t) pjsip_endpt_unregister_module( pjsip_endpoint *endpt,
+ pjsip_module *module );
+
+/**
+ * This describes additional parameters to pjsip_endpt_process_rx_data()
+ * function. Application MUST call pjsip_process_rdata_param_default() to
+ * initialize this structure.
+ */
+typedef struct pjsip_process_rdata_param
+{
+ /**
+ * Specify the minimum priority number of the modules that are allowed
+ * to process the message. Default is zero to allow all modules to
+ * process the message.
+ */
+ unsigned start_prio;
+
+ /**
+ * Specify the pointer of the module where processing will start.
+ * The default is NULL, meaning processing will start from the start
+ * of the module list.
+ */
+ void *start_mod;
+
+ /**
+ * Set to N, then processing will start at Nth module after start
+ * module (where start module can be an explicit module as specified
+ * by \a start_mod or the start of module list when \a start_mod is
+ * NULL). For example, if set to 1, then processing will start from
+ * the next module after start module. Default is zero.
+ */
+ unsigned idx_after_start;
+
+ /**
+ * Print nothing to log. Default is PJ_FALSE.
+ */
+ pj_bool_t silent;
+
+} pjsip_process_rdata_param;
+
+/**
+ * Initialize with default.
+ *
+ * @param p The param.
+ */
+PJ_DECL(void) pjsip_process_rdata_param_default(pjsip_process_rdata_param *p);
+
+/**
+ * Manually distribute the specified pjsip_rx_data to registered modules.
+ * Normally application does not need to call this function because received
+ * messages will be given to endpoint automatically by transports.
+ *
+ * Application can use this function when it has postponed the processing of
+ * an incoming message, for example to perform long operations such as
+ * database operation or to consult other servers to decide what to do with
+ * the message. In this case, application clones the original rdata, return
+ * from the callback, and perform the long operation. Upon completing the
+ * long operation, it resumes pjsip's module processing by calling this
+ * function, and then free the cloned rdata.
+ *
+ * @param endpt The endpoint instance.
+ * @param rdata The rdata to be distributed.
+ * @param p Optional pointer to param to specify from which module
+ * the processing should start.
+ * @param p_handled Optional pointer to receive last return value of
+ * module's \a on_rx_request() or \a on_rx_response()
+ * callback.
+ *
+ * @return PJ_SUCCESS on success.
+ */
+PJ_DECL(pj_status_t) pjsip_endpt_process_rx_data(pjsip_endpoint *endpt,
+ pjsip_rx_data *rdata,
+ pjsip_process_rdata_param *p,
+ pj_bool_t *p_handled);
+
+/**
+ * Create pool from the endpoint. All SIP components should allocate their
+ * memory pool by calling this function, to make sure that the pools are
+ * allocated from the same pool factory. This function, like all other endpoint
+ * functions, is thread safe.
+ *
+ * @param endpt The SIP endpoint.
+ * @param pool_name Name to be assigned to the pool.
+ * @param initial The initial size of the pool.
+ * @param increment The resize size.
+ * @return Memory pool, or NULL on failure.
+ *
+ * @see pj_pool_create
+ */
+PJ_DECL(pj_pool_t*) pjsip_endpt_create_pool( pjsip_endpoint *endpt,
+ const char *pool_name,
+ pj_size_t initial,
+ pj_size_t increment );
+
+/**
+ * Return back pool to endpoint to be released back to the pool factory.
+ * This function, like all other endpoint functions, is thread safe.
+ *
+ * @param endpt The endpoint.
+ * @param pool The pool to be destroyed.
+ */
+PJ_DECL(void) pjsip_endpt_release_pool( pjsip_endpoint *endpt,
+ pj_pool_t *pool );
+
+/**
+ * Find transaction in endpoint's transaction table by the transaction's key.
+ * This function normally is only used by modules. The key for a transaction
+ * can be created by calling #pjsip_tsx_create_key.
+ *
+ * @param endpt The endpoint instance.
+ * @param key Transaction key, as created with #pjsip_tsx_create_key.
+ *
+ * @return The transaction, or NULL if it's not found.
+ */
+PJ_DECL(pjsip_transaction*) pjsip_endpt_find_tsx( pjsip_endpoint *endpt,
+ const pj_str_t *key );
+
+/**
+ * Register the transaction to the endpoint's transaction table.
+ * This function should only be used internally by the stack.
+ *
+ * @param endpt The SIP endpoint.
+ * @param tsx The transaction.
+ */
+PJ_DECL(void) pjsip_endpt_register_tsx( pjsip_endpoint *endpt,
+ pjsip_transaction *tsx);
+
+/**
+ * Forcefull destroy the transaction. This function should only be used
+ * internally by the stack.
+ *
+ * @param endpt The endpoint.
+ * @param tsx The transaction to destroy.
+ */
+PJ_DECL(void) pjsip_endpt_destroy_tsx( pjsip_endpoint *endpt,
+ pjsip_transaction *tsx);
+
+/**
+ * Create a new transmit data buffer.
+ * This function, like all other endpoint functions, is thread safe.
+ *
+ * @param endpt The endpoint.
+ * @param p_tdata Pointer to receive transmit data buffer.
+ *
+ * @return PJ_SUCCESS or the appropriate error code.
+ */
+PJ_DECL(pj_status_t) pjsip_endpt_create_tdata( pjsip_endpoint *endpt,
+ pjsip_tx_data **p_tdata);
+
+/**
+ * Create the DNS resolver instance. Application creates the DNS
+ * resolver instance, set the nameserver to be used by the DNS
+ * resolver, then set the DNS resolver to be used by the endpoint
+ * by calling #pjsip_endpt_set_resolver().
+ *
+ * @param endpt The SIP endpoint instance.
+ * @param p_resv Pointer to receive the DNS resolver instance.
+ *
+ * @return PJ_SUCCESS on success, or the appropriate error
+ * code.
+ */
+PJ_DECL(pj_status_t) pjsip_endpt_create_resolver(pjsip_endpoint *endpt,
+ pj_dns_resolver **p_resv);
+
+/**
+ * Set DNS resolver to be used by the SIP resolver. Application can set
+ * the resolver instance to NULL to disable DNS resolution (perhaps
+ * temporarily). When DNS resolver is disabled, the endpoint will resolve
+ * hostnames with the normal pj_gethostbyname() function.
+ *
+ * @param endpt The SIP endpoint instance.
+ * @param resv The resolver instance to be used by the SIP
+ * endpoint.
+ *
+ * @return PJ_SUCCESS on success, or the appropriate error
+ * code.
+ */
+PJ_DECL(pj_status_t) pjsip_endpt_set_resolver(pjsip_endpoint *endpt,
+ pj_dns_resolver *resv);
+
+/**
+ * Get the DNS resolver being used by the SIP resolver.
+ *
+ * @param endpt The SIP endpoint instance.
+ *
+ * @return The DNS resolver instance currently being used
+ * by the SIP endpoint.
+ */
+PJ_DECL(pj_dns_resolver*) pjsip_endpt_get_resolver(pjsip_endpoint *endpt);
+
+/**
+ * Asynchronously resolve a SIP target host or domain according to rule
+ * specified in RFC 3263 (Locating SIP Servers). When the resolving operation
+ * has completed, the callback will be called.
+ *
+ * @param endpt The endpoint instance.
+ * @param pool The pool to allocate resolver job.
+ * @param target The target specification to be resolved.
+ * @param token A user defined token to be passed back to callback function.
+ * @param cb The callback function.
+ */
+PJ_DECL(void) pjsip_endpt_resolve( pjsip_endpoint *endpt,
+ pj_pool_t *pool,
+ pjsip_host_info *target,
+ void *token,
+ pjsip_resolver_callback *cb);
+
+/**
+ * Get transport manager instance.
+ *
+ * @param endpt The endpoint.
+ *
+ * @return Transport manager instance.
+ */
+PJ_DECL(pjsip_tpmgr*) pjsip_endpt_get_tpmgr(pjsip_endpoint *endpt);
+
+/**
+ * Get ioqueue instance.
+ *
+ * @param endpt The endpoint.
+ *
+ * @return The ioqueue.
+ */
+PJ_DECL(pj_ioqueue_t*) pjsip_endpt_get_ioqueue(pjsip_endpoint *endpt);
+
+/**
+ * Find a SIP transport suitable for sending SIP message to the specified
+ * address. If transport selector ("sel") is set, then the function will
+ * check if the transport selected is suitable to send requests to the
+ * specified address.
+ *
+ * @see pjsip_tpmgr_acquire_transport
+ *
+ * @param endpt The SIP endpoint instance.
+ * @param type The type of transport to be acquired.
+ * @param remote The remote address to send message to.
+ * @param addr_len Length of the remote address.
+ * @param sel Optional pointer to transport selector instance which is
+ * used to find explicit transport, if required.
+ * @param p_tp Pointer to receive the transport instance, if one is found.
+ *
+ * @return PJ_SUCCESS on success, or the appropriate error code.
+ */
+PJ_DECL(pj_status_t)
+pjsip_endpt_acquire_transport( pjsip_endpoint *endpt,
+ pjsip_transport_type_e type,
+ const pj_sockaddr_t *remote,
+ int addr_len,
+ const pjsip_tpselector *sel,
+ pjsip_transport **p_tp);
+
+
+/**
+ * Find a SIP transport suitable for sending SIP message to the specified
+ * address by also considering the outgoing SIP message data. If transport
+ * selector ("sel") is set, then the function will check if the transport
+ * selected is suitable to send requests to the specified address.
+ *
+ * @see pjsip_tpmgr_acquire_transport
+ *
+ * @param endpt The SIP endpoint instance.
+ * @param type The type of transport to be acquired.
+ * @param remote The remote address to send message to.
+ * @param addr_len Length of the remote address.
+ * @param sel Optional pointer to transport selector instance which is
+ * used to find explicit transport, if required.
+ * @param tdata Optional pointer to SIP message data to be sent.
+ * @param p_tp Pointer to receive the transport instance, if one is found.
+ *
+ * @return PJ_SUCCESS on success, or the appropriate error code.
+ */
+PJ_DECL(pj_status_t)
+pjsip_endpt_acquire_transport2(pjsip_endpoint *endpt,
+ pjsip_transport_type_e type,
+ const pj_sockaddr_t *remote,
+ int addr_len,
+ const pjsip_tpselector *sel,
+ pjsip_tx_data *tdata,
+ pjsip_transport **p_tp);
+
+
+/*****************************************************************************
+ *
+ * Capabilities Management
+ *
+ * Modules may implement new capabilities to the stack. These capabilities
+ * are indicated by the appropriate SIP header fields, such as Accept,
+ * Accept-Encoding, Accept-Language, Allow, Supported, etc.
+ *
+ * When a module provides new capabilities to the stack, it registers these
+ * capabilities to the endpoint by supplying new tags (strings) to the
+ * appropriate header fields. Application (or other modules) can then query
+ * these header fields to get the list of supported capabilities, and may
+ * include these headers in the outgoing message.
+ *****************************************************************************
+ */
+
+/**
+ * Get the value of the specified capability header field.
+ *
+ * @param endpt The endpoint.
+ * @param htype The header type to be retrieved, which value may be:
+ * - PJSIP_H_ACCEPT
+ * - PJSIP_H_ALLOW
+ * - PJSIP_H_SUPPORTED
+ * @param hname If htype specifies PJSIP_H_OTHER, then the header name
+ * must be supplied in this argument. Otherwise the value
+ * must be set to NULL.
+ *
+ * @return The appropriate header, or NULL if the header is not
+ * available.
+ */
+PJ_DECL(const pjsip_hdr*) pjsip_endpt_get_capability( pjsip_endpoint *endpt,
+ int htype,
+ const pj_str_t *hname);
+
+
+/**
+ * Check if we have the specified capability.
+ *
+ * @param endpt The endpoint.
+ * @param htype The header type to be retrieved, which value may be:
+ * - PJSIP_H_ACCEPT
+ * - PJSIP_H_ALLOW
+ * - PJSIP_H_SUPPORTED
+ * @param hname If htype specifies PJSIP_H_OTHER, then the header name
+ * must be supplied in this argument. Otherwise the value
+ * must be set to NULL.
+ * @param token The capability token to check. For example, if \a htype
+ * is PJSIP_H_ALLOW, then \a token specifies the method
+ * names; if \a htype is PJSIP_H_SUPPORTED, then \a token
+ * specifies the extension names such as "100rel".
+ *
+ * @return PJ_TRUE if the specified capability is supported,
+ * otherwise PJ_FALSE..
+ */
+PJ_DECL(pj_bool_t) pjsip_endpt_has_capability( pjsip_endpoint *endpt,
+ int htype,
+ const pj_str_t *hname,
+ const pj_str_t *token);
+
+
+/**
+ * Add or register new capabilities as indicated by the tags to the
+ * appropriate header fields in the endpoint.
+ *
+ * @param endpt The endpoint.
+ * @param mod The module which registers the capability.
+ * @param htype The header type to be set, which value may be:
+ * - PJSIP_H_ACCEPT
+ * - PJSIP_H_ALLOW
+ * - PJSIP_H_SUPPORTED
+ * @param hname If htype specifies PJSIP_H_OTHER, then the header name
+ * must be supplied in this argument. Otherwise the value
+ * must be set to NULL.
+ * @param count The number of tags in the array.
+ * @param tags Array of tags describing the capabilities or extensions
+ * to be added to the appropriate header.
+ *
+ * @return PJ_SUCCESS on success.
+ */
+PJ_DECL(pj_status_t) pjsip_endpt_add_capability( pjsip_endpoint *endpt,
+ pjsip_module *mod,
+ int htype,
+ const pj_str_t *hname,
+ unsigned count,
+ const pj_str_t tags[]);
+
+/**
+ * Get list of additional headers to be put in outgoing request message.
+ * Currently only Max-Forwards are defined.
+ *
+ * @param e The endpoint.
+ *
+ * @return List of headers.
+ */
+PJ_DECL(const pjsip_hdr*) pjsip_endpt_get_request_headers(pjsip_endpoint *e);
+
+
+/**
+ * Dump endpoint status to the log. This will print the status to the log
+ * with log level 3.
+ *
+ * @param endpt The endpoint.
+ * @param detail If non zero, then it will dump a detailed output.
+ * BEWARE that this option may crash the system because
+ * it tries to access all memory pools.
+ */
+PJ_DECL(void) pjsip_endpt_dump( pjsip_endpoint *endpt, pj_bool_t detail );
+
+
+/**
+ * Register cleanup function to be called by SIP endpoint when
+ * #pjsip_endpt_destroy() is called. Note that application should not
+ * use or access any endpoint resource (such as pool, ioqueue, timer heap)
+ * from within the callback as such resource may have been released when
+ * the callback function is invoked.
+ *
+ * @param endpt The SIP endpoint.
+ * @param func The function to be registered.
+ *
+ * @return PJ_SUCCESS on success.
+ */
+PJ_DECL(pj_status_t) pjsip_endpt_atexit(pjsip_endpoint *endpt,
+ pjsip_endpt_exit_callback func);
+
+
+/**
+ * @}
+ */
+
+
+/**
+ * Log an error.
+ */
+PJ_DECL(void) pjsip_endpt_log_error( pjsip_endpoint *endpt,
+ const char *sender,
+ pj_status_t error_code,
+ const char *format,
+ ... );
+
+#define PJSIP_ENDPT_LOG_ERROR(expr) \
+ pjsip_endpt_log_error expr
+
+#define PJSIP_ENDPT_TRACE(tracing,expr) \
+ do { \
+ if ((tracing)) \
+ PJ_LOG(4,expr); \
+ } while (0)
+
+/*
+ * Internal functions.
+ */
+/*
+ * Receive transaction events from transactions and put in the event queue
+ * to be processed later.
+ */
+void pjsip_endpt_send_tsx_event( pjsip_endpoint *endpt, pjsip_event *evt );
+
+PJ_END_DECL
+
+#endif /* __PJSIP_SIP_ENDPOINT_H__ */
+