aboutsummaryrefslogtreecommitdiffstats
path: root/protocols
diff options
context:
space:
mode:
Diffstat (limited to 'protocols')
-rw-r--r--protocols/Makefile2
-rw-r--r--protocols/http_client.c382
-rw-r--r--protocols/http_client.h54
-rw-r--r--protocols/jabber/Makefile8
-rw-r--r--protocols/jabber/jabber.c14
-rw-r--r--protocols/msn/Makefile8
-rw-r--r--protocols/msn/msn.c8
-rw-r--r--protocols/msn/msn.h16
-rw-r--r--protocols/msn/ns.c8
-rw-r--r--protocols/msn/passport.c308
-rw-r--r--protocols/msn/passport.h6
-rw-r--r--protocols/msn/sb.c28
-rw-r--r--protocols/msn/tables.c20
-rw-r--r--protocols/nogaim.h7
-rw-r--r--protocols/oscar/Makefile8
-rw-r--r--protocols/oscar/oscar.c2
-rw-r--r--protocols/proxy.c2
-rw-r--r--protocols/ssl_bogus.c7
-rw-r--r--protocols/ssl_client.h5
-rw-r--r--protocols/ssl_gnutls.c39
-rw-r--r--protocols/ssl_nss.c4
-rw-r--r--protocols/ssl_openssl.c84
-rw-r--r--protocols/util.c413
-rw-r--r--protocols/yahoo/Makefile8
-rw-r--r--protocols/yahoo/yahoo_fn.c380
-rw-r--r--protocols/yahoo/yahoo_util.c50
26 files changed, 926 insertions, 945 deletions
diff --git a/protocols/Makefile b/protocols/Makefile
index c5f938fd..4016e7fd 100644
--- a/protocols/Makefile
+++ b/protocols/Makefile
@@ -9,7 +9,7 @@
-include ../Makefile.settings
# [SH] Program variables
-objects = md5.o nogaim.o proxy.o sha.o util.o $(SSL_CLIENT)
+objects = http_client.o md5.o nogaim.o proxy.o sha.o $(SSL_CLIENT)
# [SH] The next two lines should contain the directory name (in $(subdirs))
# and the name of the object file, which should be linked into
diff --git a/protocols/http_client.c b/protocols/http_client.c
new file mode 100644
index 00000000..9417e200
--- /dev/null
+++ b/protocols/http_client.c
@@ -0,0 +1,382 @@
+ /********************************************************************\
+ * BitlBee -- An IRC to other IM-networks gateway *
+ * *
+ * Copyright 2002-2005 Wilmer van der Gaast and others *
+ \********************************************************************/
+
+/* HTTP(S) module */
+
+/*
+ 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 with
+ the Debian GNU/Linux distribution in /usr/share/common-licenses/GPL;
+ if not, write to the Free Software Foundation, Inc., 59 Temple Place,
+ Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <string.h>
+#include <stdio.h>
+
+#include "http_client.h"
+#include "url.h"
+#include "sock.h"
+
+
+static void http_connected( gpointer data, int source, GaimInputCondition cond );
+static void http_ssl_connected( gpointer data, void *source, GaimInputCondition cond );
+static void http_incoming_data( gpointer data, int source, GaimInputCondition cond );
+
+
+void *http_dorequest( char *host, int port, int ssl, char *request, http_input_function func, gpointer data )
+{
+ struct http_request *req;
+ int error = 0;
+
+ req = g_new0( struct http_request, 1 );
+
+ if( ssl )
+ {
+ req->ssl = ssl_connect( host, port, http_ssl_connected, req );
+ if( req->ssl == NULL )
+ error = 1;
+ }
+ else
+ {
+ req->fd = proxy_connect( host, port, http_connected, req );
+ if( req->fd < 0 )
+ error = 1;
+ }
+
+ if( error )
+ {
+ g_free( req );
+ return( NULL );
+ }
+
+ req->func = func;
+ req->data = data;
+ req->request = g_strdup( request );
+ req->request_length = strlen( request );
+
+ return( req );
+}
+
+/* This one is actually pretty simple... Might get more calls if we can't write
+ the whole request at once. */
+static void http_connected( gpointer data, int source, GaimInputCondition cond )
+{
+ struct http_request *req = data;
+ int st;
+
+ if( source < 0 )
+ goto error;
+
+ if( req->inpa > 0 )
+ gaim_input_remove( req->inpa );
+
+ sock_make_nonblocking( req->fd );
+
+ if( req->ssl )
+ {
+ st = ssl_write( req->ssl, req->request + req->bytes_written,
+ req->request_length - req->bytes_written );
+ if( st < 0 )
+ {
+ if( ssl_errno != SSL_AGAIN )
+ {
+ ssl_disconnect( req->ssl );
+ goto error;
+ }
+ }
+ }
+ else
+ {
+ st = write( source, req->request + req->bytes_written,
+ req->request_length - req->bytes_written );
+ if( st < 0 )
+ {
+ if( !sockerr_again() )
+ {
+ closesocket( req->fd );
+ goto error;
+ }
+ }
+ }
+
+ if( st > 0 )
+ req->bytes_written += st;
+
+ if( req->bytes_written < req->request_length )
+ req->inpa = gaim_input_add( source,
+ req->ssl ? ssl_getdirection( req->ssl ) : GAIM_INPUT_WRITE,
+ http_connected, req );
+ else
+ req->inpa = gaim_input_add( source, GAIM_INPUT_READ, http_incoming_data, req );
+
+ return;
+
+error:
+ req->func( req );
+
+ g_free( req->request );
+ g_free( req );
+
+ return;
+}
+
+static void http_ssl_connected( gpointer data, void *source, GaimInputCondition cond )
+{
+ struct http_request *req = data;
+
+ if( source == NULL )
+ return http_connected( data, -1, cond );
+
+ req->fd = ssl_getfd( source );
+
+ return http_connected( data, req->fd, cond );
+}
+
+static void http_incoming_data( gpointer data, int source, GaimInputCondition cond )
+{
+ struct http_request *req = data;
+ int evil_server = 0;
+ char buffer[2048];
+ char *end1, *end2;
+ int st;
+
+ if( req->inpa > 0 )
+ gaim_input_remove( req->inpa );
+
+ if( req->ssl )
+ {
+ st = ssl_read( req->ssl, buffer, sizeof( buffer ) );
+ if( st < 0 )
+ {
+ if( ssl_errno != SSL_AGAIN )
+ {
+ /* goto cleanup; */
+
+ /* YAY! We have to deal with crappy Microsoft
+ servers that LOVE to send invalid TLS
+ packets that abort connections! \o/ */
+
+ goto got_reply;
+ }
+ }
+ else if( st == 0 )
+ {
+ goto got_reply;
+ }
+ }
+ else
+ {
+ st = read( req->fd, buffer, sizeof( buffer ) );
+ if( st < 0 )
+ {
+ if( !sockerr_again() )
+ {
+ goto cleanup;
+ }
+ }
+ else if( st == 0 )
+ {
+ goto got_reply;
+ }
+ }
+
+ if( st > 0 )
+ {
+ req->reply_headers = g_realloc( req->reply_headers, req->bytes_read + st + 1 );
+ memcpy( req->reply_headers + req->bytes_read, buffer, st );
+ req->bytes_read += st;
+ }
+
+ /* There will be more! */
+ req->inpa = gaim_input_add( req->fd,
+ req->ssl ? ssl_getdirection( req->ssl ) : GAIM_INPUT_READ,
+ http_incoming_data, req );
+
+ return;
+
+got_reply:
+ /* Zero termination is very convenient. */
+ req->reply_headers[req->bytes_read] = 0;
+
+ /* Find the separation between headers and body, and keep stupid
+ webservers in mind. */
+ end1 = strstr( req->reply_headers, "\r\n\r\n" );
+ end2 = strstr( req->reply_headers, "\n\n" );
+
+ if( end2 && end2 < end1 )
+ {
+ end1 = end2 + 1;
+ evil_server = 1;
+ }
+ else
+ {
+ end1 += 2;
+ }
+
+ if( end1 )
+ {
+ *end1 = 0;
+
+ if( evil_server )
+ req->reply_body = end1 + 1;
+ else
+ req->reply_body = end1 + 2;
+ }
+
+ if( ( end1 = strchr( req->reply_headers, ' ' ) ) != NULL )
+ {
+ if( sscanf( end1 + 1, "%d", &req->status_code ) != 1 )
+ req->status_code = -1;
+ }
+ else
+ {
+ req->status_code = -1;
+ }
+
+ if( req->status_code == 301 || req->status_code == 302 )
+ {
+ char *loc, *new_request, *new_host;
+ int error = 0, new_port, new_proto;
+
+ loc = strstr( req->reply_headers, "\nLocation: " );
+ if( loc == NULL ) /* We can't handle this redirect... */
+ goto cleanup;
+
+ loc += 11;
+ while( *loc == ' ' )
+ loc ++;
+
+ /* TODO/FIXME: Possibly have to handle relative redirections,
+ and rewrite Host: headers. Not necessary for now, it's
+ enough for passport authentication like this. */
+
+ if( *loc == '/' )
+ {
+ /* Just a different pathname... */
+
+ /* Since we don't cache the servername, and since we
+ don't need this yet anyway, I won't implement it. */
+
+ goto cleanup;
+ }
+ else
+ {
+ /* A whole URL */
+ url_t *url;
+ char *s;
+
+ s = strstr( loc, "\r\n" );
+ if( s == NULL )
+ goto cleanup;
+
+ url = g_new0( url_t, 1 );
+ *s = 0;
+
+ if( !url_set( url, loc ) )
+ {
+ g_free( url );
+ goto cleanup;
+ }
+
+ /* Okay, this isn't fun! We have to rebuild the request... :-( */
+ new_request = g_malloc( req->request_length + strlen( url->file ) );
+
+ /* So, now I just allocated enough memory, so I'm
+ going to use strcat(), whether you like it or not. :-) */
+
+ /* First, find the GET/POST/whatever from the original request. */
+ s = strchr( req->request, ' ' );
+ if( s == NULL )
+ {
+ g_free( new_request );
+ g_free( url );
+ goto cleanup;
+ }
+
+ *s = 0;
+ sprintf( new_request, "%s %s HTTP/1.0\r\n", req->request, url->file );
+ *s = ' ';
+
+ s = strstr( req->request, "\r\n" );
+ if( s == NULL )
+ {
+ g_free( new_request );
+ g_free( url );
+ goto cleanup;
+ }
+
+ strcat( new_request, s + 2 );
+ new_host = g_strdup( url->host );
+ new_port = url->port;
+ new_proto = url->proto;
+
+ g_free( url );
+ }
+
+ if( req->ssl )
+ ssl_disconnect( req->ssl );
+ else
+ closesocket( req->fd );
+
+ req->fd = -1;
+ req->ssl = 0;
+
+ if( new_proto == PROTO_HTTPS )
+ {
+ req->ssl = ssl_connect( new_host, new_port, http_ssl_connected, req );
+ if( req->ssl == NULL )
+ error = 1;
+ }
+ else
+ {
+ req->fd = proxy_connect( new_host, new_port, http_connected, req );
+ if( req->fd < 0 )
+ error = 1;
+ }
+ g_free( new_host );
+
+ if( error )
+ {
+ g_free( new_request );
+ goto cleanup;
+ }
+
+ g_free( req->request );
+ g_free( req->reply_headers );
+ req->request = new_request;
+ req->request_length = strlen( new_request );
+ req->bytes_read = req->bytes_written = req->inpa = 0;
+ req->reply_headers = req->reply_body = NULL;
+
+ return;
+ }
+
+ /* Assume that a closed connection means we're finished, this indeed
+ breaks with keep-alive connections and faulty connections. */
+ req->finished = 1;
+
+cleanup:
+ if( req->ssl )
+ ssl_disconnect( req->ssl );
+ else
+ closesocket( req->fd );
+
+ req->func( req );
+
+ g_free( req->request );
+ g_free( req->reply_headers );
+ g_free( req );
+}
diff --git a/protocols/http_client.h b/protocols/http_client.h
new file mode 100644
index 00000000..53c6fcd6
--- /dev/null
+++ b/protocols/http_client.h
@@ -0,0 +1,54 @@
+ /********************************************************************\
+ * BitlBee -- An IRC to other IM-networks gateway *
+ * *
+ * Copyright 2002-2005 Wilmer van der Gaast and others *
+ \********************************************************************/
+
+/* HTTP(S) module */
+
+/*
+ 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 with
+ the Debian GNU/Linux distribution in /usr/share/common-licenses/GPL;
+ if not, write to the Free Software Foundation, Inc., 59 Temple Place,
+ Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <glib.h>
+
+#include "ssl_client.h"
+
+struct http_request;
+
+typedef void (*http_input_function)( struct http_request * );
+
+struct http_request
+{
+ char *request;
+ int request_length;
+ int status_code;
+ char *reply_headers;
+ char *reply_body;
+ int finished;
+
+ void *ssl;
+ int fd;
+
+ int inpa;
+ int bytes_written;
+ int bytes_read;
+
+ http_input_function func;
+ gpointer data;
+};
+
+void *http_dorequest( char *host, int port, int ssl, char *request, http_input_function func, gpointer data );
diff --git a/protocols/jabber/Makefile b/protocols/jabber/Makefile
index df326fe6..9b414dc8 100644
--- a/protocols/jabber/Makefile
+++ b/protocols/jabber/Makefile
@@ -15,7 +15,7 @@ CFLAGS += -Wall
LFLAGS += -r
# [SH] Phony targets
-all: jabberr.o
+all: jabber_mod.o
.PHONY: all clean distclean
@@ -32,6 +32,6 @@ $(objects): %.o: %.c
@echo '*' Compiling $<
@$(CC) -c $(CFLAGS) $< -o $@
-jabberr.o: $(objects)
- @echo '*' Linking jabberr.o
- @$(LD) $(LFLAGS) $(objects) -o jabberr.o
+jabber_mod.o: $(objects)
+ @echo '*' Linking jabber_mod.o
+ @$(LD) $(LFLAGS) $(objects) -o jabber_mod.o
diff --git a/protocols/jabber/jabber.c b/protocols/jabber/jabber.c
index fc419124..d4b5bde5 100644
--- a/protocols/jabber/jabber.c
+++ b/protocols/jabber/jabber.c
@@ -1248,14 +1248,10 @@ static void jabber_handleauthresp(gjconn gjc, jpacket p)
}
gjab_auth(gjc);
} else {
+ gjab_reqroster(gjc);
account_online(GJ_GC(gjc));
-
- if (bud_list_cache_exists(GJ_GC(gjc)))
- do_import(GJ_GC(gjc), NULL);
-
+
((struct jabber_data *)GJ_GC(gjc)->proto_data)->did_import = TRUE;
-
- gjab_reqroster(gjc);
}
} else {
xmlnode xerr;
@@ -1859,11 +1855,7 @@ static void jabber_set_away(struct gaim_connection *gc, char *state, char *messa
y = xmlnode_insert_tag(x, "show");
xmlnode_insert_cdata(y, "away", -1);
y = xmlnode_insert_tag(x, "status");
- {
- char *utf8 = str_to_utf8(message);
- xmlnode_insert_cdata(y, utf8, -1);
- g_free(utf8);
- }
+ xmlnode_insert_cdata(y, message, -1);
gc->away = "";
} else {
/* Gaim wants us to not be away */
diff --git a/protocols/msn/Makefile b/protocols/msn/Makefile
index e6620323..873c831c 100644
--- a/protocols/msn/Makefile
+++ b/protocols/msn/Makefile
@@ -15,7 +15,7 @@ CFLAGS += -Wall
LFLAGS += -r
# [SH] Phony targets
-all: msnn.o
+all: msn_mod.o
.PHONY: all clean distclean
@@ -32,8 +32,8 @@ $(objects): %.o: %.c
@echo '*' Compiling $<
@$(CC) -c $(CFLAGS) $< -o $@
-msnn.o: $(objects)
- @echo '*' Linking msnn.o
- @$(LD) $(LFLAGS) $(objects) -o msnn.o
+msn_mod.o: $(objects)
+ @echo '*' Linking msn_mod.o
+ @$(LD) $(LFLAGS) $(objects) -o msn_mod.o
diff --git a/protocols/msn/msn.c b/protocols/msn/msn.c
index b828d31c..b03c898e 100644
--- a/protocols/msn/msn.c
+++ b/protocols/msn/msn.c
@@ -169,17 +169,17 @@ static GList *msn_away_states( struct gaim_connection *gc )
int i;
for( i = 0; msn_away_state_list[i].number > -1; i ++ )
- l = g_list_append( l, msn_away_state_list[i].name );
+ l = g_list_append( l, (void*) msn_away_state_list[i].name );
return( l );
}
static char *msn_get_status_string( struct gaim_connection *gc, int number )
{
- struct msn_away_state *st = msn_away_state_by_number( number );
+ const struct msn_away_state *st = msn_away_state_by_number( number );
if( st )
- return( st->name );
+ return( (char*) st->name );
else
return( "" );
}
@@ -188,7 +188,7 @@ static void msn_set_away( struct gaim_connection *gc, char *state, char *message
{
char buf[1024];
struct msn_data *md = gc->proto_data;
- struct msn_away_state *st;
+ const struct msn_away_state *st;
if( strcmp( state, GAIM_AWAY_CUSTOM ) == 0 )
st = msn_away_state_by_name( "Away" );
diff --git a/protocols/msn/msn.h b/protocols/msn/msn.h
index 61231d8a..9727c537 100644
--- a/protocols/msn/msn.h
+++ b/protocols/msn/msn.h
@@ -66,7 +66,7 @@ struct msn_data
GSList *msgq;
GSList *switchboards;
int buddycount;
- struct msn_away_state *away_state;
+ const struct msn_away_state *away_state;
};
struct msn_switchboard
@@ -126,10 +126,12 @@ struct msn_handler_data
/* Bitfield values for msn_status_code.flags */
#define STATUS_FATAL 1
#define STATUS_SB_FATAL 2
+#define STATUS_SB_IM_SPARE 4 /* Make one-to-one conversation switchboard available again, invite failed. */
+#define STATUS_SB_CHAT_SPARE 8 /* Same, but also for groupchats (not used yet). */
int msn_chat_id;
-extern struct msn_away_state msn_away_state_list[];
-extern struct msn_status_code msn_status_code_list[];
+extern const struct msn_away_state msn_away_state_list[];
+extern const struct msn_status_code msn_status_code_list[];
/* Keep a list of all the active connections. We need these lists because
"connected" callbacks might be called when the connection they belong too
@@ -153,10 +155,10 @@ char **msn_linesplit( char *line );
int msn_handler( struct msn_handler_data *h );
/* tables.c */
-struct msn_away_state *msn_away_state_by_number( int number );
-struct msn_away_state *msn_away_state_by_code( char *code );
-struct msn_away_state *msn_away_state_by_name( char *name );
-struct msn_status_code *msn_status_by_number( int number );
+const struct msn_away_state *msn_away_state_by_number( int number );
+const struct msn_away_state *msn_away_state_by_code( char *code );
+const struct msn_away_state *msn_away_state_by_name( char *name );
+const struct msn_status_code *msn_status_by_number( int number );
/* sb.c */
int msn_sb_write( struct msn_switchboard *sb, char *s, int len );
diff --git a/protocols/msn/ns.c b/protocols/msn/ns.c
index f1bda1a4..4ced58a0 100644
--- a/protocols/msn/ns.c
+++ b/protocols/msn/ns.c
@@ -207,7 +207,7 @@ static int msn_ns_command( gpointer data, char **cmd, int num_parts )
if( num_parts == 5 && strcmp( cmd[2], "TWN" ) == 0 && strcmp( cmd[3], "S" ) == 0 )
{
/* Time for some Passport black magic... */
- if( !passport_get_id( gc, gc->username, gc->password, cmd[4], msn_auth_got_passport_id ) )
+ if( !passport_get_id( msn_auth_got_passport_id, gc, gc->username, gc->password, cmd[4] ) )
{
hide_login_progress_error( gc, "Error while contacting Passport server" );
signoff( gc );
@@ -364,7 +364,7 @@ static int msn_ns_command( gpointer data, char **cmd, int num_parts )
}
else if( strcmp( cmd[0], "ILN" ) == 0 )
{
- struct msn_away_state *st;
+ const struct msn_away_state *st;
if( num_parts != 6 )
{
@@ -392,7 +392,7 @@ static int msn_ns_command( gpointer data, char **cmd, int num_parts )
}
else if( strcmp( cmd[0], "NLN" ) == 0 )
{
- struct msn_away_state *st;
+ const struct msn_away_state *st;
if( num_parts != 5 )
{
@@ -538,7 +538,7 @@ static int msn_ns_command( gpointer data, char **cmd, int num_parts )
else if( isdigit( cmd[0][0] ) )
{
int num = atoi( cmd[0] );
- struct msn_status_code *err = msn_status_by_number( num );
+ const struct msn_status_code *err = msn_status_by_number( num );
g_snprintf( buf, sizeof( buf ), "Error reported by MSN server: %s", err->text );
do_error_dialog( gc, buf, "MSN" );
diff --git a/protocols/msn/passport.c b/protocols/msn/passport.c
index 640126a0..34703432 100644
--- a/protocols/msn/passport.c
+++ b/protocols/msn/passport.c
@@ -19,7 +19,7 @@
*
*/
-#include "ssl_client.h"
+#include "http_client.h"
#include "passport.h"
#include "msn.h"
#include "bitlbee.h"
@@ -30,34 +30,91 @@
static char *prd_cached = NULL;
-static char *passport_create_header( char *reply, char *email, char *pwd );
+static int passport_get_id_real( gpointer func, gpointer data, char *header );
+static void passport_get_id_ready( struct http_request *req );
+
static int passport_retrieve_dalogin( gpointer data, gpointer func, char *header );
-static void passport_retrieve_dalogin_connected( gpointer data, void *ssl, GaimInputCondition cond );
-static int passport_get_id_from( gpointer data, gpointer func, char *header_i, char *url );
-static void passport_get_id_connected( gpointer data, void *ssl, GaimInputCondition cond );
-static void destroy_reply( struct passport_reply *rep );
+static void passport_retrieve_dalogin_ready( struct http_request *req );
+static char *passport_create_header( char *cookie, char *email, char *pwd );
+static void destroy_reply( struct passport_reply *rep );
-int passport_get_id( gpointer data, char *username, char *password, char *cookie, gpointer func )
+int passport_get_id( gpointer func, gpointer data, char *username, char *password, char *cookie )
{
char *header = passport_create_header( cookie, username, password );
- if( prd_cached )
- {
- int st;
-
- st = passport_get_id_from( data, func, header, prd_cached );
- g_free( header );
- return( st );
- }
+ if( prd_cached == NULL )
+ return passport_retrieve_dalogin( func, data, header );
else
+ return passport_get_id_real( func, data, header );
+}
+
+static int passport_get_id_real( gpointer func, gpointer data, char *header )
+{
+ struct passport_reply *rep;
+ char *server, *dummy, *reqs;
+ struct http_request *req;
+
+ rep = g_new0( struct passport_reply, 1 );
+ rep->data = data;
+ rep->func = func;
+
+ server = g_strdup( prd_cached );
+ dummy = strchr( server, '/' );
+
+ if( dummy == NULL )
{
- return( passport_retrieve_dalogin( data, func, header ) );
+ destroy_reply( rep );
+ return( 0 );
}
+
+ reqs = g_malloc( strlen( header ) + strlen( dummy ) + 128 );
+ sprintf( reqs, "GET %s HTTP/1.0\r\n%s\r\n\r\n", dummy, header );
+
+ *dummy = 0;
+ req = http_dorequest( server, 443, 1, reqs, passport_get_id_ready, rep );
+
+ g_free( server );
+ g_free( reqs );
+
+ if( req == NULL )
+ destroy_reply( rep );
+
+ return( req != NULL );
}
+static void passport_get_id_ready( struct http_request *req )
+{
+ struct passport_reply *rep = req->data;
+
+ if( !g_slist_find( msn_connections, rep->data ) || !req->finished || !req->reply_headers )
+ {
+ destroy_reply( rep );
+ return;
+ }
+
+ if( req->status_code == 200 )
+ {
+ char *dummy;
+
+ if( ( dummy = strstr( req->reply_headers, "from-PP='" ) ) )
+ {
+ char *responseend;
+
+ dummy += strlen( "from-PP='" );
+ responseend = strchr( dummy, '\'' );
+ if( responseend )
+ *responseend = 0;
+
+ rep->result = g_strdup( dummy );
+ }
+ }
+
+ rep->func( rep );
+ destroy_reply( rep );
+}
-static char *passport_create_header( char *reply, char *email, char *pwd )
+static char *passport_create_header( char *cookie, char *email, char *pwd )
{
char *buffer = g_new0( char, 2048 );
char *currenttoken;
@@ -71,7 +128,7 @@ static char *passport_create_header( char *reply, char *email, char *pwd )
strcpy( pwd_enc, pwd );
http_encode( pwd_enc );
- currenttoken = strstr( reply, "lc=" );
+ currenttoken = strstr( cookie, "lc=" );
if( currenttoken == NULL )
return( NULL );
@@ -87,227 +144,68 @@ static char *passport_create_header( char *reply, char *email, char *pwd )
return( buffer );
}
-
-static int passport_retrieve_dalogin( gpointer data, gpointer func, char *header )
+#define PPR_REQUEST "GET /rdr/pprdr.asp HTTP/1.0\r\n\r\n"
+static int passport_retrieve_dalogin( gpointer func, gpointer data, char *header )
{
struct passport_reply *rep = g_new0( struct passport_reply, 1 );
- void *ssl;
+ struct http_request *req;
rep->data = data;
rep->func = func;
rep->header = header;
- ssl = ssl_connect( "nexus.passport.com", 443, passport_retrieve_dalogin_connected, rep );
+ req = http_dorequest( "nexus.passport.com", 443, 1, PPR_REQUEST, passport_retrieve_dalogin_ready, rep );
- if( !ssl )
+ if( !req )
destroy_reply( rep );
- return( ssl != NULL );
+ return( req != NULL );
}
-#define PPR_BUFFERSIZE 2048
-#define PPR_REQUEST "GET /rdr/pprdr.asp HTTP/1.0\r\n\r\n"
-static void passport_retrieve_dalogin_connected( gpointer data, void *ssl, GaimInputCondition cond )
+static void passport_retrieve_dalogin_ready( struct http_request *req )
{
- int ret;
- char buffer[PPR_BUFFERSIZE+1];
- struct passport_reply *rep = data;
+ struct passport_reply *rep = req->data;
+ char *dalogin;
+ char *urlend;
- if( !g_slist_find( msn_connections, rep->data ) )
+ if( !g_slist_find( msn_connections, rep->data ) || !req->finished || !req->reply_headers )
{
- if( ssl ) ssl_disconnect( ssl );
destroy_reply( rep );
return;
}
- if( !ssl )
- {
- rep->func( rep );
- destroy_reply( rep );
- return;
- }
-
- ssl_write( ssl, PPR_REQUEST, strlen( PPR_REQUEST ) );
+ dalogin = strstr( req->reply_headers, "DALogin=" );
- if( ( ret = ssl_read( ssl, buffer, PPR_BUFFERSIZE ) ) <= 0 )
- {
+ if( !dalogin )
goto failure;
- }
-
- {
- char *dalogin = strstr( buffer, "DALogin=" );
- char *urlend;
-
- if( !dalogin )
- goto failure;
-
- dalogin += strlen( "DALogin=" );
- urlend = strchr( dalogin, ',' );
- if( urlend )
- *urlend = 0;
-
- /* strip the http(s):// part from the url */
- urlend = strstr( urlend, "://" );
- if( urlend )
- dalogin = urlend + strlen( "://" );
-
- if( prd_cached == NULL )
- prd_cached = g_strdup( dalogin );
- }
-
- if( passport_get_id_from( rep->data, rep->func, rep->header, prd_cached ) )
- {
- ssl_disconnect( ssl );
- destroy_reply( rep );
- return;
- }
-failure:
- ssl_disconnect( ssl );
- rep->func( rep );
- destroy_reply( rep );
-}
-
-
-static int passport_get_id_from( gpointer data, gpointer func, char *header_i, char *url )
-{
- struct passport_reply *rep = g_new0( struct passport_reply, 1 );
- char server[512], *dummy;
- void *ssl;
-
- rep->data = data;
- rep->func = func;
- rep->redirects = 4;
-
- strncpy( server, url, 512 );
- dummy = strchr( server, '/' );
- if( dummy )
- *dummy = 0;
-
- ssl = ssl_connect( server, 443, passport_get_id_connected, rep );
-
- if( ssl )
- {
- rep->header = g_strdup( header_i );
- rep->url = g_strdup( url );
- }
- else
- {
- destroy_reply( rep );
- }
+ dalogin += strlen( "DALogin=" );
+ urlend = strchr( dalogin, ',' );
+ if( urlend )
+ *urlend = 0;
- return( ssl != NULL );
-}
-
-#define PPG_BUFFERSIZE 4096
-static void passport_get_id_connected( gpointer data, void *ssl, GaimInputCondition cond )
-{
- struct passport_reply *rep = data;
- char server[512], buffer[PPG_BUFFERSIZE+1], *dummy;
- int ret;
+ /* strip the http(s):// part from the url */
+ urlend = strstr( urlend, "://" );
+ if( urlend )
+ dalogin = urlend + strlen( "://" );
- if( !g_slist_find( msn_connections, rep->data ) )
- {
- if( ssl ) ssl_disconnect( ssl );
- destroy_reply( rep );
- return;
- }
+ if( prd_cached == NULL )
+ prd_cached = g_strdup( dalogin );
- if( !ssl )
+ if( passport_get_id_real( rep->func, rep->data, rep->header ) )
{
- rep->func( rep );
destroy_reply( rep );
return;
}
- memset( buffer, 0, PPG_BUFFERSIZE + 1 );
-
- strncpy( server, rep->url, 512 );
- dummy = strchr( server, '/' );
- if( dummy == NULL )
- goto end;
-
- g_snprintf( buffer, PPG_BUFFERSIZE - 1, "GET %s HTTP/1.0\r\n"
- "%s\r\n\r\n", dummy, rep->header );
-
- ssl_write( ssl, buffer, strlen( buffer ) );
- memset( buffer, 0, PPG_BUFFERSIZE + 1 );
-
- {
- char *buffer2 = buffer;
-
- while( ( ( ret = ssl_read( ssl, buffer2, 512 ) ) > 0 ) &&
- ( buffer + PPG_BUFFERSIZE - buffer2 - ret - 512 >= 0 ) )
- {
- buffer2 += ret;
- }
- }
-
- if( *buffer == 0 )
- goto end;
-
- if( ( dummy = strstr( buffer, "Location:" ) ) )
- {
- char *urlend;
-
- rep->redirects --;
- if( rep->redirects == 0 )
- goto end;
-
- dummy += strlen( "Location:" );
- while( isspace( *dummy ) ) dummy ++;
- urlend = dummy;
- while( !isspace( *urlend ) ) urlend ++;
- *urlend = 0;
- if( ( urlend = strstr( dummy, "://" ) ) )
- dummy = urlend + strlen( "://" );
-
- g_free( rep->url );
- rep->url = g_strdup( dummy );
-
- strncpy( server, dummy, sizeof( server ) - 1 );
- dummy = strchr( server, '/' );
- if( dummy ) *dummy = 0;
-
- ssl_disconnect( ssl );
-
- if( ssl_connect( server, 443, passport_get_id_connected, rep ) )
- {
- return;
- }
- else
- {
- rep->func( rep );
- destroy_reply( rep );
- return;
- }
- }
- else if( strstr( buffer, "200 OK" ) )
- {
- if( ( dummy = strstr( buffer, "from-PP='" ) ) )
- {
- char *responseend;
-
- dummy += strlen( "from-PP='" );
- responseend = strchr( dummy, '\'' );
- if( responseend )
- *responseend = 0;
-
- rep->result = g_strdup( dummy );
- }
- }
-
-end:
- ssl_disconnect( ssl );
+failure:
rep->func( rep );
destroy_reply( rep );
}
-
static void destroy_reply( struct passport_reply *rep )
{
- if( rep->result ) g_free( rep->result );
- if( rep->url ) g_free( rep->url );
- if( rep->header ) g_free( rep->header );
- if( rep ) g_free( rep );
+ g_free( rep->result );
+ g_free( rep->header );
+ g_free( rep );
}
diff --git a/protocols/msn/passport.h b/protocols/msn/passport.h
index 63fef2e9..f7e6ebb6 100644
--- a/protocols/msn/passport.h
+++ b/protocols/msn/passport.h
@@ -34,14 +34,12 @@
struct passport_reply
{
+ void (*func)( struct passport_reply * );
void *data;
char *result;
- void (*func)( struct passport_reply * );
- char *url;
char *header;
- int redirects;
};
-int passport_get_id( gpointer data, char *username, char *password, char *cookie, gpointer func );
+int passport_get_id( gpointer func, gpointer data, char *username, char *password, char *cookie );
#endif /* __PASSPORT_H__ */
diff --git a/protocols/msn/sb.c b/protocols/msn/sb.c
index 2f4d05d5..9e7ef841 100644
--- a/protocols/msn/sb.c
+++ b/protocols/msn/sb.c
@@ -511,7 +511,7 @@ static int msn_sb_command( gpointer data, char **cmd, int num_parts )
else if( isdigit( cmd[0][0] ) )
{
int num = atoi( cmd[0] );
- struct msn_status_code *err = msn_status_by_number( num );
+ const struct msn_status_code *err = msn_status_by_number( num );
g_snprintf( buf, sizeof( buf ), "Error reported by switchboard server: %s", err->text );
do_error_dialog( gc, buf, "MSN" );
@@ -521,11 +521,35 @@ static int msn_sb_command( gpointer data, char **cmd, int num_parts )
msn_sb_destroy( sb );
return( 0 );
}
- else if( err->flags & STATUS_FATAL )
+ if( err->flags & STATUS_FATAL )
{
signoff( gc );
return( 0 );
}
+ if( err->flags & STATUS_SB_IM_SPARE )
+ {
+ if( sb->who )
+ {
+ struct msn_message *m;
+ GSList *l;
+
+ /* Apparently some invitation failed. We might want to use this
+ board later, so keep it as a spare. */
+ g_free( sb->who );
+ sb->who = NULL;
+
+ /* Also clear the msgq, otherwise someone else might get them. */
+ for( l = sb->msgq; l; l = l->next )
+ {
+ m = l->data;
+ g_free( m->who );
+ g_free( m->text );
+ g_free( m );
+ }
+ g_slist_free( sb->msgq );
+ sb->msgq = NULL;
+ }
+ }
}
else
{
diff --git a/protocols/msn/tables.c b/protocols/msn/tables.c
index 0cd80c01..f8e98350 100644
--- a/protocols/msn/tables.c
+++ b/protocols/msn/tables.c
@@ -26,7 +26,7 @@
#include "nogaim.h"
#include "msn.h"
-struct msn_away_state msn_away_state_list[] =
+const struct msn_away_state msn_away_state_list[] =
{
{ 0, "NLN", "Available" },
{ 1, "BSY", "Busy" },
@@ -39,7 +39,7 @@ struct msn_away_state msn_away_state_list[] =
{ -1, "", "" }
};
-struct msn_away_state *msn_away_state_by_number( int number )
+const struct msn_away_state *msn_away_state_by_number( int number )
{
int i;
@@ -50,7 +50,7 @@ struct msn_away_state *msn_away_state_by_number( int number )
return( NULL );
}
-struct msn_away_state *msn_away_state_by_code( char *code )
+const struct msn_away_state *msn_away_state_by_code( char *code )
{
int i;
@@ -61,7 +61,7 @@ struct msn_away_state *msn_away_state_by_code( char *code )
return( NULL );
}
-struct msn_away_state *msn_away_state_by_name( char *name )
+const struct msn_away_state *msn_away_state_by_name( char *name )
{
int i;
@@ -72,19 +72,19 @@ struct msn_away_state *msn_away_state_by_name( char *name )
return( NULL );
}
-struct msn_status_code msn_status_code_list[] =
+const struct msn_status_code msn_status_code_list[] =
{
{ 200, "Invalid syntax", 0 },
{ 201, "Invalid parameter", 0 },
{ 205, "Invalid (non-existent) handle", 0 },
{ 206, "Domain name missing", 0 },
{ 207, "Already logged in", 0 },
- { 208, "Invalid handle", 0 },
+ { 208, "Invalid handle", STATUS_SB_IM_SPARE },
{ 209, "Forbidden nickname", 0 },
{ 210, "Buddy list too long", 0 },
{ 215, "Handle is already in list", 0 },
- { 216, "Handle is not in list", 0 },
- { 217, "Person is off-line or non-existent", 0 },
+ { 216, "Handle is not in list", STATUS_SB_IM_SPARE },
+ { 217, "Person is off-line or non-existent", STATUS_SB_IM_SPARE },
{ 218, "Already in that mode", 0 },
{ 219, "Handle is already in opposite list", 0 },
{ 223, "Too many groups", 0 },
@@ -117,7 +117,7 @@ struct msn_status_code msn_status_code_list[] =
{ 710, "Invalid CVR parameters", STATUS_FATAL },
{ 711, "Write is blocking", STATUS_FATAL },
{ 712, "Session is overloaded", STATUS_FATAL },
- { 713, "Calling too rapidly", 0 },
+ { 713, "Calling too rapidly", STATUS_SB_IM_SPARE },
{ 714, "Too many sessions", STATUS_FATAL },
{ 715, "Not expected/Invalid argument/action", 0 },
{ 717, "Bad friend file", STATUS_FATAL },
@@ -143,7 +143,7 @@ struct msn_status_code msn_status_code_list[] =
{ -1, NULL, 0 }
};
-struct msn_status_code *msn_status_by_number( int number )
+const struct msn_status_code *msn_status_by_number( int number )
{
static struct msn_status_code *unknown = NULL;
int i;
diff --git a/protocols/nogaim.h b/protocols/nogaim.h
index 8ec65347..afc39a80 100644
--- a/protocols/nogaim.h
+++ b/protocols/nogaim.h
@@ -311,19 +311,18 @@ G_MODULE_EXPORT void serv_got_chat_invite( struct gaim_connection *gc, char *han
G_MODULE_EXPORT struct conversation *serv_got_joined_chat( struct gaim_connection *gc, int id, char *handle );
G_MODULE_EXPORT void serv_got_chat_in( struct gaim_connection *gc, int id, char *who, int whisper, char *msg, time_t mtime );
G_MODULE_EXPORT void serv_got_chat_left( struct gaim_connection *gc, int id );
-/* void serv_finish_login( struct gaim_connection *gc ); */
/* util.c */
-G_MODULE_EXPORT char *utf8_to_str( const char *in );
-G_MODULE_EXPORT char *str_to_utf8( const char *in );
G_MODULE_EXPORT void strip_linefeed( gchar *text );
G_MODULE_EXPORT char *add_cr( char *text );
G_MODULE_EXPORT char *tobase64( const char *text );
G_MODULE_EXPORT char *normalize( const char *s );
G_MODULE_EXPORT time_t get_time( int year, int month, int day, int hour, int min, int sec );
G_MODULE_EXPORT void strip_html( char *msg );
-G_MODULE_EXPORT char * escape_html(const char *html);
+G_MODULE_EXPORT char *escape_html( const char *html );
G_MODULE_EXPORT void info_string_append(GString *str, char *newline, char *name, char *value);
+G_MODULE_EXPORT char *ipv6_wrap( char *src );
+G_MODULE_EXPORT char *ipv6_unwrap( char *src );
/* prefs.c */
G_MODULE_EXPORT void build_block_list();
diff --git a/protocols/oscar/Makefile b/protocols/oscar/Makefile
index 5ef996a1..97a27299 100644
--- a/protocols/oscar/Makefile
+++ b/protocols/oscar/Makefile
@@ -15,7 +15,7 @@ CFLAGS += -Wall
LFLAGS += -r
# [SH] Phony targets
-all: oscarr.o
+all: oscar_mod.o
.PHONY: all clean distclean
@@ -32,6 +32,6 @@ $(objects): %.o: %.c
@echo '*' Compiling $<
@$(CC) -c $(CFLAGS) $< -o $@
-oscarr.o: $(objects)
- @echo '*' Linking oscarr.o
- @$(LD) $(LFLAGS) $(objects) -o oscarr.o
+oscar_mod.o: $(objects)
+ @echo '*' Linking oscar_mod.o
+ @$(LD) $(LFLAGS) $(objects) -o oscar_mod.o
diff --git a/protocols/oscar/oscar.c b/protocols/oscar/oscar.c
index 5f19f12b..b4bfb220 100644
--- a/protocols/oscar/oscar.c
+++ b/protocols/oscar/oscar.c
@@ -20,7 +20,6 @@
*
*/
-#include "sock.h"
#include <errno.h>
#include <ctype.h>
#include <string.h>
@@ -32,6 +31,7 @@
#include "nogaim.h"
#include "bitlbee.h"
#include "proxy.h"
+#include "sock.h"
#include "aim.h"
#include "icq.h"
diff --git a/protocols/proxy.c b/protocols/proxy.c
index c658a163..1ca35dfe 100644
--- a/protocols/proxy.c
+++ b/protocols/proxy.c
@@ -105,8 +105,6 @@ static gboolean gaim_io_invoke(GIOChannel *source, GIOCondition condition, gpoin
gaim_cond |= GAIM_INPUT_READ;
if (condition & GAIM_WRITE_COND)
gaim_cond |= GAIM_INPUT_WRITE;
-// if (condition & GAIM_ERR_COND)
-// fprintf( stderr, "ERROR! fd=%d\n", g_io_channel_unix_get_fd( source ) );
closure->function(closure->data, g_io_channel_unix_get_fd(source), gaim_cond);
diff --git a/protocols/ssl_bogus.c b/protocols/ssl_bogus.c
index 1ee0df4c..52406b75 100644
--- a/protocols/ssl_bogus.c
+++ b/protocols/ssl_bogus.c
@@ -27,7 +27,7 @@
int ssl_errno;
-void *ssl_connect( char *host, int port, SslInputFunction func, gpointer data )
+void *ssl_connect( char *host, int port, ssl_input_function func, gpointer data )
{
return( NULL );
}
@@ -50,3 +50,8 @@ int ssl_getfd( void *conn )
{
return( -1 );
}
+
+GaimInputCondition ssl_getdirection( void *conn )
+{
+ return GAIM_INPUT_READ;
+}
diff --git a/protocols/ssl_client.h b/protocols/ssl_client.h
index 719cd0c4..89189db9 100644
--- a/protocols/ssl_client.h
+++ b/protocols/ssl_client.h
@@ -32,10 +32,11 @@
extern int ssl_errno;
-typedef void (*SslInputFunction)(gpointer, void*, GaimInputCondition);
+typedef void (*ssl_input_function)(gpointer, void*, GaimInputCondition);
-G_MODULE_EXPORT void *ssl_connect( char *host, int port, SslInputFunction func, gpointer data );
+G_MODULE_EXPORT void *ssl_connect( char *host, int port, ssl_input_function func, gpointer data );
G_MODULE_EXPORT int ssl_read( void *conn, char *buf, int len );
G_MODULE_EXPORT int ssl_write( void *conn, const char *buf, int len );
G_MODULE_EXPORT void ssl_disconnect( void *conn_ );
G_MODULE_EXPORT int ssl_getfd( void *conn );
+G_MODULE_EXPORT GaimInputCondition ssl_getdirection( void *conn );
diff --git a/protocols/ssl_gnutls.c b/protocols/ssl_gnutls.c
index c2eb6906..f2cb3e08 100644
--- a/protocols/ssl_gnutls.c
+++ b/protocols/ssl_gnutls.c
@@ -37,7 +37,7 @@ static gboolean initialized = FALSE;
struct scd
{
- SslInputFunction func;
+ ssl_input_function func;
gpointer data;
int fd;
gboolean established;
@@ -50,7 +50,7 @@ struct scd
static void ssl_connected( gpointer data, gint source, GaimInputCondition cond );
-void *ssl_connect( char *host, int port, SslInputFunction func, gpointer data )
+void *ssl_connect( char *host, int port, ssl_input_function func, gpointer data )
{
struct scd *conn = g_new0( struct scd, 1 );
@@ -110,15 +110,16 @@ static void ssl_handshake( gpointer data, gint source, GaimInputCondition cond )
int st;
if( conn->inpa != -1 )
+ {
gaim_input_remove( conn->inpa );
+ conn->inpa = -1;
+ }
if( ( st = gnutls_handshake( conn->session ) ) < 0 )
{
if( st == GNUTLS_E_AGAIN || st == GNUTLS_E_INTERRUPTED )
{
- conn->inpa = gaim_input_add( conn->fd,
- gnutls_record_get_direction( conn->session ) ?
- GAIM_INPUT_WRITE : GAIM_INPUT_READ,
+ conn->inpa = gaim_input_add( conn->fd, ssl_getdirection( conn ),
ssl_handshake, data );
}
else
@@ -144,31 +145,49 @@ static void ssl_handshake( gpointer data, gint source, GaimInputCondition cond )
int ssl_read( void *conn, char *buf, int len )
{
+ int st;
+
if( !((struct scd*)conn)->established )
{
ssl_errno = SSL_NOHANDSHAKE;
return( -1 );
}
- return( gnutls_record_recv( ((struct scd*)conn)->session, buf, len ) );
+ st = gnutls_record_recv( ((struct scd*)conn)->session, buf, len );
+ ssl_errno = SSL_OK;
+ if( st == GNUTLS_E_AGAIN || st == GNUTLS_E_INTERRUPTED )
+ ssl_errno = SSL_AGAIN;
+
+ return st;
}
int ssl_write( void *conn, const char *buf, int len )
{
+ int st;
+
if( !((struct scd*)conn)->established )
{
ssl_errno = SSL_NOHANDSHAKE;
return( -1 );
}
- return( gnutls_record_send( ((struct scd*)conn)->session, buf, len ) );
+ st = gnutls_record_send( ((struct scd*)conn)->session, buf, len );
+
+ ssl_errno = SSL_OK;
+ if( st == GNUTLS_E_AGAIN || st == GNUTLS_E_INTERRUPTED )
+ ssl_errno = SSL_AGAIN;
+
+ return st;
}
void ssl_disconnect( void *conn_ )
{
struct scd *conn = conn_;
+ if( conn->inpa != -1 )
+ gaim_input_remove( conn->inpa );
+
if( conn->established )
gnutls_bye( conn->session, GNUTLS_SHUT_WR );
@@ -183,3 +202,9 @@ int ssl_getfd( void *conn )
{
return( ((struct scd*)conn)->fd );
}
+
+GaimInputCondition ssl_getdirection( void *conn )
+{
+ return( gnutls_record_get_direction( ((struct scd*)conn)->session ) ?
+ GAIM_INPUT_WRITE : GAIM_INPUT_READ );
+}
diff --git a/protocols/ssl_nss.c b/protocols/ssl_nss.c
index d28983fc..dfd32622 100644
--- a/protocols/ssl_nss.c
+++ b/protocols/ssl_nss.c
@@ -44,7 +44,7 @@ static gboolean initialized = FALSE;
struct scd
{
- SslInputFunction func;
+ ssl_input_function func;
gpointer data;
int fd;
PRFileDesc *prfd;
@@ -90,7 +90,7 @@ static SECStatus nss_bad_cert (void *arg, PRFileDesc *socket)
}
-void *ssl_connect( char *host, int port, SslInputFunction func, gpointer data )
+void *ssl_connect( char *host, int port, ssl_input_function func, gpointer data )
{
struct scd *conn = g_new0( struct scd, 1 );
diff --git a/protocols/ssl_openssl.c b/protocols/ssl_openssl.c
index bf87ab73..ae55f3f9 100644
--- a/protocols/ssl_openssl.c
+++ b/protocols/ssl_openssl.c
@@ -40,11 +40,13 @@ static gboolean initialized = FALSE;
struct scd
{
- SslInputFunction func;
+ ssl_input_function func;
gpointer data;
int fd;
gboolean established;
+ int inpa;
+ int lasterr; /* Necessary for SSL_get_error */
SSL *ssl;
SSL_CTX *ssl_ctx;
};
@@ -53,7 +55,7 @@ static void ssl_connected( gpointer data, gint source, GaimInputCondition cond )
-void *ssl_connect( char *host, int port, SslInputFunction func, gpointer data )
+void *ssl_connect( char *host, int port, ssl_input_function func, gpointer data )
{
struct scd *conn = g_new0( struct scd, 1 );
SSL_METHOD *meth;
@@ -92,19 +94,45 @@ void *ssl_connect( char *host, int port, SslInputFunction func, gpointer data )
return( conn );
}
+static void ssl_handshake( gpointer data, gint source, GaimInputCondition cond );
+
static void ssl_connected( gpointer data, gint source, GaimInputCondition cond )
{
struct scd *conn = data;
if( source == -1 )
- goto ssl_connected_failure;
+ return ssl_handshake( data, -1, cond );
+ /* Make it non-blocking at least during the handshake... */
+ sock_make_nonblocking( conn->fd );
SSL_set_fd( conn->ssl, conn->fd );
- if( SSL_connect( conn->ssl ) < 0 )
- goto ssl_connected_failure;
+ return ssl_handshake( data, source, cond );
+}
+
+static void ssl_handshake( gpointer data, gint source, GaimInputCondition cond )
+{
+ struct scd *conn = data;
+ int st;
+
+ if( conn->inpa != -1 )
+ {
+ gaim_input_remove( conn->inpa );
+ conn->inpa = -1;
+ }
+
+ if( ( st = SSL_connect( conn->ssl ) ) < 0 )
+ {
+ conn->lasterr = SSL_get_error( conn->ssl, st );
+ if( conn->lasterr != SSL_ERROR_WANT_READ && conn->lasterr != SSL_ERROR_WANT_WRITE )
+ goto ssl_connected_failure;
+
+ conn->inpa = gaim_input_add( conn->fd, ssl_getdirection( conn ), ssl_handshake, data );
+ return;
+ }
conn->established = TRUE;
+ sock_make_blocking( conn->fd ); /* For now... */
conn->func( conn->data, conn, cond );
return;
@@ -126,24 +154,57 @@ ssl_connected_failure:
int ssl_read( void *conn, char *buf, int len )
{
+ int st;
+
if( !((struct scd*)conn)->established )
- return( 0 );
+ {
+ ssl_errno = SSL_NOHANDSHAKE;
+ return -1;
+ }
+
+ st = SSL_read( ((struct scd*)conn)->ssl, buf, len );
- return( SSL_read( ((struct scd*)conn)->ssl, buf, len ) );
+ ssl_errno = SSL_OK;
+ if( st <= 0 )
+ {
+ ((struct scd*)conn)->lasterr = SSL_get_error( ((struct scd*)conn)->ssl, st );
+ if( ((struct scd*)conn)->lasterr == SSL_ERROR_WANT_READ || ((struct scd*)conn)->lasterr == SSL_ERROR_WANT_WRITE )
+ ssl_errno = SSL_AGAIN;
+ }
+
+ return st;
}
int ssl_write( void *conn, const char *buf, int len )
{
+ int st;
+
if( !((struct scd*)conn)->established )
- return( 0 );
+ {
+ ssl_errno = SSL_NOHANDSHAKE;
+ return -1;
+ }
+
+ st = SSL_write( ((struct scd*)conn)->ssl, buf, len );
- return( SSL_write( ((struct scd*)conn)->ssl, buf, len ) );
+ ssl_errno = SSL_OK;
+ if( st <= 0 )
+ {
+ ((struct scd*)conn)->lasterr = SSL_get_error( ((struct scd*)conn)->ssl, st );
+ if( ((struct scd*)conn)->lasterr == SSL_ERROR_WANT_READ || ((struct scd*)conn)->lasterr == SSL_ERROR_WANT_WRITE )
+ ssl_errno = SSL_AGAIN;
+ }
+
+ return st;
}
void ssl_disconnect( void *conn_ )
{
struct scd *conn = conn_;
+ if( conn->inpa != -1 )
+ gaim_input_remove( conn->inpa );
+
if( conn->established )
SSL_shutdown( conn->ssl );
@@ -158,3 +219,8 @@ int ssl_getfd( void *conn )
{
return( ((struct scd*)conn)->fd );
}
+
+GaimInputCondition ssl_getdirection( void *conn )
+{
+ return( ((struct scd*)conn)->lasterr == SSL_ERROR_WANT_WRITE ? GAIM_INPUT_WRITE : GAIM_INPUT_READ );
+}
diff --git a/protocols/util.c b/protocols/util.c
deleted file mode 100644
index 6a2f2e46..00000000
--- a/protocols/util.c
+++ /dev/null
@@ -1,413 +0,0 @@
- /********************************************************************\
- * BitlBee -- An IRC to other IM-networks gateway *
- * *
- * Copyright 2002-2004 Wilmer van der Gaast and others *
- \********************************************************************/
-
-/*
- * nogaim
- *
- * Gaim without gaim - for BitlBee
- *
- * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
- * (and possibly other members of the Gaim team)
- * Copyright 2002-2004 Wilmer van der Gaast <lintux@lintux.cx>
- */
-
-/*
- 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 with
- the Debian GNU/Linux distribution in /usr/share/common-licenses/GPL;
- if not, write to the Free Software Foundation, Inc., 59 Temple Place,
- Suite 330, Boston, MA 02111-1307 USA
-*/
-
-/* Parts from util.c from gaim needed by nogaim */
-#define BITLBEE_CORE
-#include "nogaim.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <glib.h>
-#include <time.h>
-
-char *utf8_to_str(const char *in)
-{
- int n = 0, i = 0;
- int inlen;
- char *result;
-
- if (!in)
- return NULL;
-
- inlen = strlen(in);
-
- result = g_malloc(inlen + 1);
-
- while (n <= inlen - 1) {
- long c = (long)in[n];
- if (c < 0x80)
- result[i++] = (char)c;
- else {
- if ((c & 0xC0) == 0xC0)
- result[i++] =
- (char)(((c & 0x03) << 6) | (((unsigned char)in[++n]) & 0x3F));
- else if ((c & 0xE0) == 0xE0) {
- if (n + 2 <= inlen) {
- result[i] =
- (char)(((c & 0xF) << 4) | (((unsigned char)in[++n]) & 0x3F));
- result[i] =
- (char)(((unsigned char)result[i]) |
- (((unsigned char)in[++n]) & 0x3F));
- i++;
- } else
- n += 2;
- } else if ((c & 0xF0) == 0xF0)
- n += 3;
- else if ((c & 0xF8) == 0xF8)
- n += 4;
- else if ((c & 0xFC) == 0xFC)
- n += 5;
- }
- n++;
- }
- result[i] = '\0';
-
- return result;
-}
-
-char *str_to_utf8(const char *in)
-{
- int n = 0, i = 0;
- int inlen;
- char *result = NULL;
-
- if (!in)
- return NULL;
-
- inlen = strlen(in);
-
- result = g_malloc(inlen * 2 + 1);
-
- while (n < inlen) {
- long c = (long)in[n];
- if (c == 27) {
- n += 2;
- if (in[n] == 'x')
- n++;
- if (in[n] == '3')
- n++;
- n += 2;
- continue;
- }
- /* why are we removing newlines and carriage returns?
- if ((c == 0x0D) || (c == 0x0A)) {
- n++;
- continue;
- }
- */
- if (c < 128)
- result[i++] = (char)c;
- else {
- result[i++] = (char)((c >> 6) | 192);
- result[i++] = (char)((c & 63) | 128);
- }
- n++;
- }
- result[i] = '\0';
-
- return result;
-}
-
-void strip_linefeed(gchar *text)
-{
- int i, j;
- gchar *text2 = g_malloc(strlen(text) + 1);
-
- for (i = 0, j = 0; text[i]; i++)
- if (text[i] != '\r')
- text2[j++] = text[i];
- text2[j] = '\0';
-
- strcpy(text, text2);
- g_free(text2);
-}
-
-char *add_cr(char *text)
-{
- char *ret = NULL;
- int count = 0, j;
- unsigned int i;
-
- if (text[0] == '\n')
- count++;
- for (i = 1; i < strlen(text); i++)
- if (text[i] == '\n' && text[i - 1] != '\r')
- count++;
-
- if (count == 0)
- return g_strdup(text);
-
- ret = g_malloc0(strlen(text) + count + 1);
-
- i = 0; j = 0;
- if (text[i] == '\n')
- ret[j++] = '\r';
- ret[j++] = text[i++];
- for (; i < strlen(text); i++) {
- if (text[i] == '\n' && text[i - 1] != '\r')
- ret[j++] = '\r';
- ret[j++] = text[i];
- }
-
- return ret;
-}
-
-static char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" "0123456789+/";
-
-/* XXX Find bug */
-char *tobase64(const char *text)
-{
- char *out = NULL;
- const char *c;
- unsigned int tmp = 0;
- int len = 0, n = 0;
-
- c = text;
-
- while (*c) {
- tmp = tmp << 8;
- tmp += *c;
- n++;
-
- if (n == 3) {
- out = g_realloc(out, len + 4);
- out[len] = alphabet[(tmp >> 18) & 0x3f];
- out[len + 1] = alphabet[(tmp >> 12) & 0x3f];
- out[len + 2] = alphabet[(tmp >> 6) & 0x3f];
- out[len + 3] = alphabet[tmp & 0x3f];
- len += 4;
- tmp = 0;
- n = 0;
- }
- c++;
- }
- switch (n) {
-
- case 2:
- tmp <<= 8;
- out = g_realloc(out, len + 5);
- out[len] = alphabet[(tmp >> 18) & 0x3f];
- out[len + 1] = alphabet[(tmp >> 12) & 0x3f];
- out[len + 2] = alphabet[(tmp >> 6) & 0x3f];
- out[len + 3] = '=';
- out[len + 4] = 0;
- break;
- case 1:
- tmp <<= 16;
- out = g_realloc(out, len + 5);
- out[len] = alphabet[(tmp >> 18) & 0x3f];
- out[len + 1] = alphabet[(tmp >> 12) & 0x3f];
- out[len + 2] = '=';
- out[len + 3] = '=';
- out[len + 4] = 0;
- break;
- case 0:
- out = g_realloc(out, len + 1);
- out[len] = 0;
- break;
- }
- return out;
-}
-
-char *normalize(const char *s)
-{
- static char buf[BUF_LEN];
- char *t, *u;
- int x = 0;
-
- g_return_val_if_fail((s != NULL), NULL);
-
- u = t = g_strdup(s);
-
- strcpy(t, s);
- g_strdown(t);
-
- while (*t && (x < BUF_LEN - 1)) {
- if (*t != ' ') {
- buf[x] = *t;
- x++;
- }
- t++;
- }
- buf[x] = '\0';
- g_free(u);
- return buf;
-}
-
-time_t get_time(int year, int month, int day, int hour, int min, int sec)
-{
- struct tm tm;
-
- tm.tm_year = year - 1900;
- tm.tm_mon = month - 1;
- tm.tm_mday = day;
- tm.tm_hour = hour;
- tm.tm_min = min;
- tm.tm_sec = sec >= 0 ? sec : time(NULL) % 60;
- return mktime(&tm);
-}
-
-typedef struct htmlentity
-{
- char code[8];
- char is;
-} htmlentity_t;
-
-/* FIXME: This is ISO8859-1(5) centric, so might cause problems with other charsets. */
-
-static htmlentity_t ent[] =
-{
- { "lt", '<' },
- { "gt", '>' },
- { "amp", '&' },
- { "quot", '"' },
- { "aacute", 'á' },
- { "eacute", 'é' },
- { "iacute", 'é' },
- { "oacute", 'ó' },
- { "uacute", 'ú' },
- { "agrave", 'à' },
- { "egrave", 'è' },
- { "igrave", 'ì' },
- { "ograve", 'ò' },
- { "ugrave", 'ù' },
- { "acirc", 'â' },
- { "ecirc", 'ê' },
- { "icirc", 'î' },
- { "ocirc", 'ô' },
- { "ucirc", 'û' },
- { "nbsp", ' ' },
- { "", 0 }
-};
-
-void strip_html( char *in )
-{
- char *start = in;
- char *out = g_malloc( strlen( in ) + 1 );
- char *s = out, *cs;
- int i, matched;
-
- memset( out, 0, strlen( in ) + 1 );
-
- while( *in )
- {
- if( *in == '<' && ( isalpha( *(in+1) ) || *(in+1) == '/' ) )
- {
- /* If in points at a < and in+1 points at a letter or a slash, this is probably
- a HTML-tag. Try to find a closing > and continue there. If the > can't be
- found, assume that it wasn't a HTML-tag after all. */
-
- cs = in;
-
- while( *in && *in != '>' )
- in ++;
-
- if( *in )
- {
- if( g_strncasecmp( cs+1, "br", 2) == 0 )
- *(s++) = '\n';
- in ++;
- }
- else
- {
- in = cs;
- *(s++) = *(in++);
- }
- }
- else if( *in == '&' )
- {
- cs = ++in;
- while( *in && isalpha( *in ) )
- in ++;
-
- if( *in == ';' ) in ++;
- matched = 0;
-
- for( i = 0; *ent[i].code; i ++ )
- if( g_strncasecmp( ent[i].code, cs, strlen( ent[i].code ) ) == 0 )
- {
- *(s++) = ent[i].is;
- matched = 1;
- break;
- }
-
- /* None of the entities were matched, so return the string */
- if( !matched )
- {
- in = cs - 1;
- *(s++) = *(in++);
- }
- }
- else
- {
- *(s++) = *(in++);
- }
- }
-
- strcpy( start, out );
- g_free( out );
-}
-
-char *escape_html( const char *html )
-{
- const char *c = html;
- GString *ret;
- char *str;
-
- if( html == NULL )
- return( NULL );
-
- ret = g_string_new( "" );
-
- while( *c )
- {
- switch( *c )
- {
- case '&':
- ret = g_string_append( ret, "&amp;" );
- break;
- case '<':
- ret = g_string_append( ret, "&lt;" );
- break;
- case '>':
- ret = g_string_append( ret, "&gt;" );
- break;
- case '"':
- ret = g_string_append( ret, "&quot;" );
- break;
- default:
- ret = g_string_append_c( ret, *c );
- }
- c ++;
- }
-
- str = ret->str;
- g_string_free( ret, FALSE );
- return( str );
-}
-
-void info_string_append(GString *str, char *newline, char *name, char *value)
-{
- if( value && value[0] )
- g_string_sprintfa( str, "%s%s: %s", newline, name, value );
-}
diff --git a/protocols/yahoo/Makefile b/protocols/yahoo/Makefile
index 39a655a3..e594cc1f 100644
--- a/protocols/yahoo/Makefile
+++ b/protocols/yahoo/Makefile
@@ -15,7 +15,7 @@ CFLAGS += -Wall -DSTDC_HEADERS -DHAVE_STRING_H -DHAVE_STRCHR -DHAVE_MEMCPY -DHAV
LFLAGS += -r
# [SH] Phony targets
-all: yahooo.o
+all: yahoo_mod.o
.PHONY: all clean distclean
@@ -32,6 +32,6 @@ $(objects): %.o: %.c
@echo '*' Compiling $<
@$(CC) -c $(CFLAGS) $< -o $@
-yahooo.o: $(objects)
- @echo '*' Linking yahooo.o
- @$(LD) $(LFLAGS) $(objects) -o yahooo.o
+yahoo_mod.o: $(objects)
+ @echo '*' Linking yahoo_mod.o
+ @$(LD) $(LFLAGS) $(objects) -o yahoo_mod.o
diff --git a/protocols/yahoo/yahoo_fn.c b/protocols/yahoo/yahoo_fn.c
index 6f14c263..9544999d 100644
--- a/protocols/yahoo/yahoo_fn.c
+++ b/protocols/yahoo/yahoo_fn.c
@@ -24,7 +24,7 @@
#include "yahoo_fn.h"
-unsigned char table_0[256] = {
+static const unsigned char table_0[256] = {
0x5A, 0x41, 0x11, 0x77, 0x29, 0x9C, 0x31, 0xAD,
0x4A, 0x32, 0x1A, 0x6D, 0x56, 0x9F, 0x39, 0xA6,
0x0C, 0xE8, 0x49, 0x40, 0xA4, 0x21, 0xE9, 0x01,
@@ -58,7 +58,7 @@ unsigned char table_0[256] = {
0x0E, 0x8B, 0xAA, 0x3A, 0xB4, 0xFC, 0xA9, 0x94,
0x7B, 0xBE, 0xF9, 0xAF, 0x82, 0x63, 0x47, 0x23 };
-unsigned char table_1[256] = {
+static const unsigned char table_1[256] = {
0x08, 0xCB, 0x54, 0xCF, 0x97, 0x53, 0x59, 0xF1,
0x66, 0xEC, 0xDB, 0x1B, 0xB1, 0xE2, 0x36, 0xEB,
0xB3, 0x8F, 0x71, 0xA8, 0x90, 0x7D, 0xDA, 0xDC,
@@ -92,13 +92,13 @@ unsigned char table_1[256] = {
0x39, 0x80, 0x98, 0xFA, 0x25, 0x92, 0x30, 0x5B,
0x05, 0x95, 0xBB, 0x79, 0x61, 0x3E, 0x81, 0xF7 };
-unsigned char table_2[32] = {
+static const unsigned char table_2[32] = {
0x19, 0x05, 0x09, 0x1C, 0x0B, 0x1A, 0x12, 0x03,
0x06, 0x04, 0x0D, 0x1D, 0x15, 0x0E, 0x1B, 0x18,
0x00, 0x07, 0x08, 0x02, 0x13, 0x1F, 0x0C, 0x1E,
0x16, 0x0A, 0x10, 0x0F, 0x01, 0x14, 0x11, 0x17 };
-unsigned char table_3[256] = {
+static const unsigned char table_3[256] = {
0xBC, 0x1B, 0xCC, 0x1E, 0x5B, 0x59, 0x4F, 0xA8,
0x62, 0xC6, 0xC1, 0xBB, 0x83, 0x2D, 0xA3, 0xA6,
0x5A, 0xDC, 0xE5, 0x93, 0xFB, 0x5C, 0xD6, 0x2A,
@@ -132,13 +132,13 @@ unsigned char table_3[256] = {
0xEA, 0x49, 0x23, 0x4D, 0xB3, 0x8E, 0xC3, 0x1F,
0x7C, 0xEF, 0xE0, 0x99, 0x09, 0xA0, 0x01, 0x7E };
-unsigned char table_4[32] = {
+static const unsigned char table_4[32] = {
0x1F, 0x0B, 0x00, 0x1E, 0x03, 0x0E, 0x15, 0x01,
0x1A, 0x17, 0x1D, 0x1B, 0x11, 0x0F, 0x0A, 0x12,
0x13, 0x18, 0x02, 0x04, 0x09, 0x06, 0x0D, 0x07,
0x08, 0x05, 0x10, 0x19, 0x0C, 0x14, 0x16, 0x1C };
-unsigned char table_5[256] = {
+static const unsigned char table_5[256] = {
0x9A, 0xAB, 0x61, 0x28, 0x0A, 0x23, 0xFC, 0xBA,
0x90, 0x22, 0xB7, 0x62, 0xD9, 0x09, 0x91, 0xF4,
0x7B, 0x5D, 0x6B, 0x80, 0xAC, 0x9E, 0x21, 0x72,
@@ -172,13 +172,13 @@ unsigned char table_5[256] = {
0xDC, 0x0B, 0xCF, 0x31, 0xEA, 0xB2, 0x70, 0x4B,
0x46, 0x73, 0x69, 0xD5, 0x10, 0xEE, 0x02, 0xEF };
-unsigned char table_6[32] = {
+static const unsigned char table_6[32] = {
0x1A, 0x1C, 0x0F, 0x0C, 0x00, 0x02, 0x13, 0x09,
0x11, 0x05, 0x0D, 0x12, 0x18, 0x0B, 0x04, 0x10,
0x14, 0x1B, 0x1E, 0x16, 0x07, 0x08, 0x03, 0x17,
0x19, 0x1F, 0x01, 0x0E, 0x15, 0x06, 0x0A, 0x1D };
-unsigned char table_7[256] = {
+static const unsigned char table_7[256] = {
0x52, 0x11, 0x72, 0xD0, 0x76, 0xD7, 0xAE, 0x03,
0x7F, 0x19, 0xF4, 0xB8, 0xB3, 0x5D, 0xCA, 0x2D,
0x5C, 0x30, 0x53, 0x1A, 0x57, 0xF6, 0xAD, 0x83,
@@ -212,13 +212,13 @@ unsigned char table_7[256] = {
0x36, 0xE6, 0x78, 0x4F, 0xC9, 0xE9, 0x2C, 0x43,
0x88, 0x9E, 0x9C, 0x5B, 0x4D, 0x3A, 0x39, 0xEF };
-unsigned char table_8[32] = {
+static const unsigned char table_8[32] = {
0x13, 0x08, 0x1E, 0x1D, 0x17, 0x16, 0x07, 0x1F,
0x0E, 0x03, 0x1A, 0x19, 0x01, 0x12, 0x11, 0x10,
0x09, 0x0C, 0x0F, 0x14, 0x0B, 0x05, 0x00, 0x04,
0x1C, 0x18, 0x0A, 0x15, 0x02, 0x1B, 0x06, 0x0D };
-unsigned char table_9[256] = {
+static const unsigned char table_9[256] = {
0x20, 0x2A, 0xDA, 0xFE, 0x76, 0x0D, 0xED, 0x39,
0x51, 0x4C, 0x46, 0x9A, 0xF1, 0xB0, 0x10, 0xC7,
0xD1, 0x6F, 0x18, 0x24, 0xB9, 0x7A, 0x4F, 0x47,
@@ -252,13 +252,13 @@ unsigned char table_9[256] = {
0xEF, 0xB7, 0x31, 0xD0, 0xBF, 0x3A, 0x79, 0xE5,
0xF9, 0xF0, 0x2C, 0x74, 0xE9, 0x71, 0xC0, 0x2D };
-unsigned char table_10[32] = {
+static const unsigned char table_10[32] = {
0x1D, 0x12, 0x11, 0x0D, 0x1E, 0x19, 0x16, 0x1B,
0x18, 0x13, 0x07, 0x17, 0x0C, 0x02, 0x00, 0x15,
0x0E, 0x08, 0x05, 0x01, 0x10, 0x06, 0x04, 0x0F,
0x1F, 0x1A, 0x0B, 0x09, 0x0A, 0x14, 0x1C, 0x03 };
-unsigned char table_11[256] = {
+static const unsigned char table_11[256] = {
0x6B, 0x1D, 0xC6, 0x0A, 0xB7, 0xAC, 0xB2, 0x11,
0x29, 0xD3, 0xA2, 0x4D, 0xCB, 0x03, 0xEF, 0xA6,
0xC1, 0x5D, 0x75, 0x48, 0x35, 0x6C, 0xE2, 0x84,
@@ -292,13 +292,13 @@ unsigned char table_11[256] = {
0xBF, 0xC7, 0x20, 0x7E, 0x6A, 0xC5, 0x88, 0xFC,
0x64, 0x76, 0xFF, 0x9F, 0x2E, 0x02, 0xCC, 0x57 };
-unsigned char table_12[32] = {
+static const unsigned char table_12[32] = {
0x14, 0x1B, 0x18, 0x00, 0x1F, 0x15, 0x17, 0x07,
0x11, 0x1A, 0x0E, 0x13, 0x12, 0x06, 0x01, 0x03,
0x1C, 0x0C, 0x0B, 0x1D, 0x10, 0x0F, 0x09, 0x19,
0x0D, 0x1E, 0x04, 0x05, 0x08, 0x16, 0x0A, 0x02 };
-unsigned char table_13[256] = {
+static const unsigned char table_13[256] = {
0x37, 0x8A, 0x1B, 0x91, 0xA5, 0x2B, 0x2D, 0x88,
0x8E, 0xFE, 0x0E, 0xD3, 0xF3, 0xE9, 0x7D, 0xD1,
0x24, 0xEA, 0xB1, 0x8B, 0x5C, 0xA4, 0x44, 0x7E,
@@ -332,13 +332,13 @@ unsigned char table_13[256] = {
0x75, 0x93, 0x9F, 0x3A, 0x07, 0xE5, 0x89, 0xDF,
0x97, 0x4A, 0xB8, 0x7A, 0xF4, 0xFB, 0x04, 0xA8 };
-unsigned char table_14[32] = {
+static const unsigned char table_14[32] = {
0x04, 0x14, 0x13, 0x15, 0x1A, 0x1B, 0x0F, 0x16,
0x02, 0x0D, 0x0C, 0x06, 0x10, 0x17, 0x01, 0x0B,
0x1E, 0x08, 0x1C, 0x18, 0x19, 0x0A, 0x1F, 0x05,
0x11, 0x09, 0x1D, 0x07, 0x0E, 0x12, 0x03, 0x00 };
-unsigned char table_15[256] = {
+static const unsigned char table_15[256] = {
0x61, 0x48, 0x58, 0x41, 0x7F, 0x88, 0x43, 0x42,
0xD9, 0x80, 0x81, 0xFE, 0xC6, 0x49, 0xD7, 0x2C,
0xE6, 0x5B, 0xEE, 0xFF, 0x2A, 0x6F, 0xBF, 0x98,
@@ -372,7 +372,7 @@ unsigned char table_15[256] = {
0xA1, 0x35, 0xAE, 0xB6, 0x10, 0x5C, 0x17, 0xBC,
0xAB, 0x8D, 0x02, 0x74, 0xBD, 0x3D, 0x8E, 0xDD };
-unsigned char table_16[256] = {
+static const unsigned char table_16[256] = {
0x3F, 0x9C, 0x17, 0xC1, 0x59, 0xC6, 0x23, 0x93,
0x4B, 0xDF, 0xCB, 0x55, 0x2B, 0xDE, 0xCD, 0xAD,
0xB3, 0xE7, 0x42, 0x2F, 0x02, 0x5A, 0x7B, 0x5C,
@@ -406,7 +406,7 @@ unsigned char table_16[256] = {
0x70, 0xDA, 0x7E, 0x47, 0x94, 0x61, 0xB0, 0x78,
0xF4, 0xBE, 0xEA, 0x19, 0x43, 0x01, 0xB1, 0x96 };
-unsigned char table_17[256] = {
+static const unsigned char table_17[256] = {
0x7E, 0xF1, 0xD3, 0x75, 0x87, 0xA6, 0xED, 0x9E,
0xA9, 0xD5, 0xC6, 0xBF, 0xE6, 0x6A, 0xEE, 0x4B,
0x34, 0xDF, 0x4C, 0x7D, 0xDD, 0xFE, 0x3F, 0xAF,
@@ -440,7 +440,7 @@ unsigned char table_17[256] = {
0xCA, 0x83, 0x26, 0x5C, 0xA5, 0x44, 0x64, 0x6D,
0x9F, 0x99, 0x62, 0xAA, 0xFA, 0x11, 0x0C, 0x52 };
-unsigned char table_18[256] = {
+static const unsigned char table_18[256] = {
0x0F, 0x42, 0x3D, 0x86, 0x3E, 0x66, 0xFE, 0x5C,
0x52, 0xE2, 0xA3, 0xB3, 0xCE, 0x16, 0xCC, 0x95,
0xB0, 0x8B, 0x82, 0x3B, 0x93, 0x7D, 0x62, 0x08,
@@ -474,7 +474,7 @@ unsigned char table_18[256] = {
0xF4, 0xBD, 0xA4, 0x29, 0x60, 0x03, 0xB9, 0x50,
0xFA, 0x4E, 0xEF, 0x54, 0xE6, 0x7F, 0xC0, 0x67 };
-unsigned char table_19[256] = {
+static const unsigned char table_19[256] = {
0xEA, 0xE7, 0x13, 0x14, 0xB9, 0xC0, 0xC4, 0x42,
0x49, 0x6E, 0x2A, 0xA6, 0x65, 0x3C, 0x6A, 0x40,
0x07, 0xCD, 0x4F, 0xFE, 0xF2, 0x2D, 0xC8, 0x30,
@@ -508,13 +508,13 @@ unsigned char table_19[256] = {
0xFD, 0x1F, 0xDE, 0x53, 0xA3, 0x2C, 0x20, 0xF6,
0x1E, 0x0D, 0xAE, 0x7B, 0x5E, 0x61, 0xE9, 0x63 };
-unsigned char table_20[32] = {
+static const unsigned char table_20[32] = {
0x0D, 0x0B, 0x11, 0x02, 0x05, 0x1B, 0x08, 0x1D,
0x04, 0x14, 0x01, 0x09, 0x00, 0x19, 0x1E, 0x15,
0x1F, 0x0A, 0x0F, 0x1C, 0x10, 0x16, 0x0C, 0x07,
0x13, 0x1A, 0x06, 0x17, 0x0E, 0x12, 0x18, 0x03 };
-unsigned char table_21[256] = {
+static const unsigned char table_21[256] = {
0x4C, 0x94, 0xAD, 0x66, 0x9E, 0x69, 0x04, 0xA8,
0x61, 0xE0, 0xE1, 0x3D, 0xFD, 0x9C, 0xFB, 0x19,
0x1E, 0x80, 0x8C, 0xA0, 0xFC, 0x27, 0x26, 0x3B,
@@ -548,13 +548,13 @@ unsigned char table_21[256] = {
0x56, 0xBA, 0x86, 0x28, 0x6A, 0x20, 0x51, 0xF7,
0xFF, 0xD8, 0xE7, 0xDD, 0xBB, 0x78, 0xD5, 0x81 };
-unsigned char table_22[32] = {
+static const unsigned char table_22[32] = {
0x0B, 0x15, 0x1C, 0x0C, 0x06, 0x0A, 0x1D, 0x16,
0x12, 0x0E, 0x04, 0x11, 0x1F, 0x0F, 0x07, 0x02,
0x17, 0x13, 0x19, 0x18, 0x0D, 0x10, 0x1A, 0x05,
0x03, 0x00, 0x01, 0x08, 0x09, 0x14, 0x1B, 0x1E };
-unsigned char table_23[256] = {
+static const unsigned char table_23[256] = {
0x36, 0x53, 0x2D, 0xD0, 0x7A, 0xF0, 0xD5, 0x1C,
0x50, 0x61, 0x9A, 0x90, 0x0B, 0x29, 0x20, 0x77,
0xF1, 0x82, 0xFE, 0xC1, 0xA7, 0xB6, 0x78, 0x87,
@@ -588,7 +588,7 @@ unsigned char table_23[256] = {
0xA4, 0xBE, 0x96, 0x5E, 0x97, 0xD3, 0xA5, 0x55,
0x1D, 0x15, 0xC6, 0xBF, 0xA9, 0x43, 0xC0, 0x49 };
-unsigned char table_24[256] = {
+static const unsigned char table_24[256] = {
0xDC, 0x5A, 0xE6, 0x59, 0x64, 0xDA, 0x58, 0x40,
0x95, 0xF8, 0x2A, 0xE0, 0x39, 0x7E, 0x32, 0x89,
0x09, 0x93, 0xED, 0x55, 0xC3, 0x5B, 0x1A, 0xD1,
@@ -622,19 +622,19 @@ unsigned char table_24[256] = {
0xCD, 0x20, 0x74, 0x08, 0x1D, 0xC4, 0xF9, 0x4D,
0xEA, 0x8D, 0x2D, 0x5F, 0xF6, 0xA7, 0x80, 0x3A };
-unsigned char table_25[32] = {
+static const unsigned char table_25[32] = {
0x0A, 0x11, 0x17, 0x03, 0x05, 0x0B, 0x18, 0x13,
0x09, 0x02, 0x00, 0x1C, 0x0C, 0x08, 0x1B, 0x14,
0x06, 0x0E, 0x01, 0x0D, 0x16, 0x1E, 0x1D, 0x19,
0x0F, 0x1A, 0x10, 0x04, 0x12, 0x15, 0x07, 0x1F };
-unsigned char table_26[32] = {
+static const unsigned char table_26[32] = {
0x19, 0x13, 0x1B, 0x01, 0x1C, 0x0D, 0x0C, 0x15,
0x0B, 0x00, 0x1A, 0x0F, 0x12, 0x16, 0x08, 0x0A,
0x03, 0x06, 0x14, 0x10, 0x18, 0x04, 0x11, 0x1D,
0x1F, 0x07, 0x17, 0x05, 0x02, 0x0E, 0x1E, 0x09 };
-unsigned char table_27[256] = {
+static const unsigned char table_27[256] = {
0x72, 0xF0, 0x14, 0xCB, 0x61, 0xA5, 0xB2, 0x02,
0x75, 0x22, 0xC3, 0x9D, 0x5A, 0x63, 0xFA, 0x5F,
0xD9, 0x55, 0x58, 0x43, 0x24, 0x7D, 0x77, 0x93,
@@ -668,13 +668,13 @@ unsigned char table_27[256] = {
0x4E, 0xB9, 0x66, 0xF2, 0x62, 0x36, 0x4C, 0x83,
0x5E, 0x6F, 0x47, 0x64, 0xBC, 0x9A, 0x60, 0x7E };
-unsigned char table_28[32] = {
+static const unsigned char table_28[32] = {
0x15, 0x05, 0x08, 0x19, 0x02, 0x18, 0x1E, 0x07,
0x0D, 0x0C, 0x1A, 0x06, 0x17, 0x03, 0x10, 0x09,
0x01, 0x11, 0x1C, 0x04, 0x0F, 0x1F, 0x12, 0x0B,
0x1B, 0x13, 0x0A, 0x16, 0x0E, 0x00, 0x1D, 0x14 };
-unsigned char table_29[256] = {
+static const unsigned char table_29[256] = {
0x34, 0x59, 0x05, 0x13, 0x09, 0x1D, 0xDF, 0x77,
0x11, 0xA5, 0x92, 0x27, 0xCD, 0x7B, 0x5E, 0x80,
0xF9, 0x50, 0x18, 0x24, 0xD4, 0x70, 0x4A, 0x39,
@@ -708,13 +708,13 @@ unsigned char table_29[256] = {
0xD6, 0x60, 0x76, 0x55, 0x0B, 0x4E, 0xFF, 0x1A,
0x46, 0x62, 0xB6, 0xB0, 0x15, 0x04, 0x95, 0x4D };
-unsigned char table_30[32] = {
+static const unsigned char table_30[32] = {
0x00, 0x1C, 0x0E, 0x0C, 0x06, 0x16, 0x09, 0x12,
0x01, 0x13, 0x0B, 0x14, 0x11, 0x08, 0x04, 0x18,
0x10, 0x1B, 0x15, 0x03, 0x02, 0x19, 0x1A, 0x17,
0x1E, 0x1F, 0x0F, 0x07, 0x0D, 0x05, 0x1D, 0x0A };
-unsigned char table_31[256] = {
+static const unsigned char table_31[256] = {
0xDF, 0xD8, 0x3F, 0xBC, 0x5F, 0xC9, 0x8E, 0x4C,
0x0B, 0x3C, 0xE5, 0xBF, 0x39, 0xD5, 0x30, 0xDD,
0x23, 0xC7, 0x72, 0x63, 0x1F, 0xF8, 0x96, 0x31,
@@ -748,7 +748,7 @@ unsigned char table_31[256] = {
0x6F, 0x07, 0xE9, 0xEE, 0x21, 0x98, 0x5A, 0xC5,
0x92, 0x48, 0xF7, 0x0A, 0xF6, 0xE2, 0x4B, 0x56 };
-unsigned char table_32[256] = {
+static const unsigned char table_32[256] = {
0x7B, 0x0F, 0x56, 0x2F, 0x1E, 0x2A, 0x7A, 0xD1,
0x02, 0x91, 0x4E, 0x37, 0x6C, 0x10, 0xA7, 0xF2,
0x38, 0xAC, 0x9E, 0x2B, 0x5E, 0x23, 0xE3, 0x19,
@@ -782,7 +782,7 @@ unsigned char table_32[256] = {
0x81, 0x4C, 0x0B, 0x3F, 0xB7, 0x0E, 0x39, 0xAE,
0x47, 0x6B, 0x8A, 0xA2, 0x9A, 0xA3, 0x45, 0x41 };
-unsigned char table_33[256] = {
+static const unsigned char table_33[256] = {
0xDE, 0xD3, 0x79, 0x67, 0x13, 0x5C, 0x04, 0xF2,
0xD9, 0x9F, 0x65, 0x56, 0xCC, 0x3B, 0xA4, 0x9A,
0x08, 0xBF, 0x26, 0xB2, 0xA7, 0x5E, 0xAA, 0xCA,
@@ -816,7 +816,7 @@ unsigned char table_33[256] = {
0xF3, 0xE9, 0x91, 0x63, 0xA5, 0xB9, 0xE8, 0x14,
0x80, 0x3C, 0xEE, 0x47, 0xC6, 0x3A, 0x53, 0xF6 };
-unsigned char table_34[256] = {
+static const unsigned char table_34[256] = {
0xF0, 0xE9, 0x3E, 0xD6, 0x89, 0xC8, 0xC7, 0x23,
0x75, 0x26, 0x5F, 0x9C, 0x57, 0xB8, 0x2A, 0x29,
0xE5, 0xB5, 0x68, 0xA4, 0x92, 0x46, 0x40, 0x7F,
@@ -850,7 +850,7 @@ unsigned char table_34[256] = {
0xF3, 0x7D, 0xC6, 0xCE, 0x8A, 0xB2, 0x33, 0x4C,
0x03, 0x05, 0xBF, 0x06, 0x1B, 0xC0, 0x1A, 0x60 };
-unsigned char table_35[256] = {
+static const unsigned char table_35[256] = {
0xCC, 0x40, 0xEF, 0x1F, 0xDB, 0xE5, 0x71, 0x51,
0x3B, 0x0F, 0x7D, 0x9C, 0x83, 0x17, 0x6F, 0x8F,
0x13, 0xDC, 0x7F, 0xA9, 0xA5, 0xA2, 0x9D, 0xDF,
@@ -884,7 +884,7 @@ unsigned char table_35[256] = {
0x7C, 0x8D, 0x72, 0x0B, 0x52, 0xE8, 0xA7, 0x3A,
0x59, 0xC4, 0x9F, 0xD0, 0x66, 0x7B, 0x33, 0xB5 };
-unsigned char table_36[256] = {
+static const unsigned char table_36[256] = {
0xDB, 0x6F, 0xFE, 0xB3, 0x5C, 0x1F, 0xB8, 0xBF,
0xA3, 0x71, 0x11, 0x56, 0x90, 0xE2, 0x63, 0x18,
0x83, 0x51, 0x21, 0xEB, 0x66, 0x08, 0xA6, 0xA5,
@@ -918,7 +918,7 @@ unsigned char table_36[256] = {
0x74, 0xA0, 0x73, 0x5A, 0x2A, 0x98, 0x75, 0x47,
0x4B, 0xB6, 0x7B, 0x4D, 0xCF, 0x7E, 0x48, 0xE3 };
-unsigned char table_37[256] = {
+static const unsigned char table_37[256] = {
0x1F, 0xD6, 0xB1, 0xB3, 0x40, 0xAD, 0xDE, 0xB7,
0x19, 0xB4, 0xE7, 0x0B, 0x9C, 0x2D, 0xE0, 0xF5,
0xCF, 0x2C, 0x30, 0x65, 0x2F, 0xCD, 0x02, 0x91,
@@ -952,7 +952,7 @@ unsigned char table_37[256] = {
0x98, 0x9F, 0x23, 0xD1, 0x6B, 0x59, 0x3E, 0xCA,
0x73, 0xC8, 0x86, 0x47, 0xDB, 0xAB, 0x6F, 0x8C };
-unsigned char table_38[256] = {
+static const unsigned char table_38[256] = {
0xAA, 0x8D, 0x37, 0x94, 0x99, 0xDD, 0x70, 0x77,
0x78, 0xC9, 0x0F, 0xFA, 0xE2, 0x05, 0xC2, 0x16,
0x02, 0x4D, 0x44, 0x65, 0xAC, 0xB0, 0x39, 0xF8,
@@ -986,31 +986,31 @@ unsigned char table_38[256] = {
0x89, 0x58, 0x79, 0xFB, 0x6E, 0xA5, 0x42, 0x25,
0x09, 0x76, 0x00, 0x46, 0x4E, 0x53, 0xCE, 0x4A };
-unsigned char table_39[32] = {
+static const unsigned char table_39[32] = {
0x12, 0x18, 0x0E, 0x08, 0x16, 0x05, 0x06, 0x00,
0x11, 0x17, 0x15, 0x1B, 0x14, 0x01, 0x1F, 0x19,
0x04, 0x0D, 0x0A, 0x0F, 0x10, 0x07, 0x1D, 0x03,
0x0B, 0x13, 0x0C, 0x09, 0x1E, 0x02, 0x1A, 0x1C };
-unsigned char table_40[32] = {
+static const unsigned char table_40[32] = {
0x16, 0x02, 0x06, 0x0E, 0x0D, 0x1C, 0x08, 0x0A,
0x0F, 0x13, 0x0B, 0x18, 0x07, 0x04, 0x14, 0x01,
0x1B, 0x05, 0x17, 0x1E, 0x11, 0x1A, 0x10, 0x1F,
0x12, 0x19, 0x1D, 0x03, 0x0C, 0x00, 0x09, 0x15 };
-unsigned char table_41[32] = {
+static const unsigned char table_41[32] = {
0x13, 0x18, 0x04, 0x1F, 0x1D, 0x11, 0x03, 0x00,
0x10, 0x12, 0x06, 0x0A, 0x1C, 0x07, 0x15, 0x0E,
0x08, 0x05, 0x0C, 0x09, 0x01, 0x02, 0x16, 0x0B,
0x1A, 0x17, 0x14, 0x1E, 0x0D, 0x0F, 0x19, 0x1B };
-unsigned char table_42[32] = {
+static const unsigned char table_42[32] = {
0x00, 0x08, 0x15, 0x1D, 0x05, 0x18, 0x06, 0x07,
0x1F, 0x01, 0x0B, 0x03, 0x19, 0x13, 0x02, 0x1C,
0x17, 0x11, 0x0E, 0x1E, 0x0C, 0x0F, 0x09, 0x1A,
0x1B, 0x16, 0x10, 0x0D, 0x0A, 0x14, 0x12, 0x04 };
-unsigned char table_43[256] = {
+static const unsigned char table_43[256] = {
0x34, 0xB7, 0x36, 0x85, 0x5F, 0x93, 0x98, 0x70,
0x1E, 0x59, 0x83, 0x60, 0x6F, 0xBF, 0xF9, 0xD0,
0xB3, 0x22, 0x12, 0x38, 0xF5, 0x01, 0xC9, 0x5B,
@@ -1044,13 +1044,13 @@ unsigned char table_43[256] = {
0x0A, 0x69, 0xC5, 0xA5, 0xC1, 0x8A, 0x2A, 0xEE,
0x73, 0x76, 0x3A, 0x21, 0x53, 0xA4, 0x50, 0x6A };
-unsigned char table_44[32] = {
+static const unsigned char table_44[32] = {
0x1A, 0x0E, 0x0A, 0x17, 0x1F, 0x08, 0x10, 0x14,
0x0C, 0x0F, 0x09, 0x1C, 0x06, 0x18, 0x1E, 0x12,
0x15, 0x00, 0x11, 0x13, 0x0D, 0x01, 0x0B, 0x03,
0x16, 0x19, 0x05, 0x1D, 0x02, 0x07, 0x04, 0x1B };
-unsigned char table_45[256] = {
+static const unsigned char table_45[256] = {
0x5E, 0xD6, 0xE2, 0x54, 0x35, 0xC2, 0xAC, 0x9D,
0x92, 0x64, 0x57, 0x65, 0xC8, 0xAE, 0x21, 0xA9,
0x89, 0x48, 0x12, 0x59, 0xEC, 0xEF, 0x9F, 0xF7,
@@ -1084,7 +1084,7 @@ unsigned char table_45[256] = {
0xD8, 0xE4, 0xC4, 0xA8, 0x4B, 0x61, 0x2E, 0x3D,
0xF9, 0x2B, 0x32, 0x8F, 0xFB, 0xC7, 0x07, 0x82 };
-unsigned char table_46[256] = {
+static const unsigned char table_46[256] = {
0x85, 0x78, 0xFE, 0x6C, 0x61, 0xA0, 0x71, 0xCC,
0x45, 0x54, 0x7A, 0xE6, 0x82, 0x1D, 0xA6, 0x02,
0x47, 0xD0, 0x23, 0x55, 0x62, 0xFA, 0x76, 0x3E,
@@ -1118,37 +1118,37 @@ unsigned char table_46[256] = {
0x8B, 0x42, 0x29, 0x8C, 0x33, 0x59, 0xE8, 0xF8,
0xC7, 0xE4, 0x37, 0xE5, 0xFC, 0xBD, 0x99, 0x41 };
-unsigned char table_47[32] = {
+static const unsigned char table_47[32] = {
0x18, 0x1D, 0x16, 0x10, 0x11, 0x04, 0x1E, 0x08,
0x19, 0x0E, 0x0F, 0x02, 0x14, 0x1C, 0x07, 0x17,
0x0D, 0x09, 0x12, 0x1A, 0x05, 0x01, 0x0B, 0x0A,
0x13, 0x15, 0x0C, 0x00, 0x06, 0x1F, 0x03, 0x1B };
-unsigned char table_48[32] = {
+static const unsigned char table_48[32] = {
0x13, 0x08, 0x15, 0x01, 0x17, 0x10, 0x0F, 0x1F,
0x1D, 0x0D, 0x12, 0x03, 0x06, 0x0A, 0x1C, 0x19,
0x1A, 0x04, 0x1B, 0x02, 0x16, 0x1E, 0x11, 0x00,
0x14, 0x09, 0x0C, 0x18, 0x05, 0x07, 0x0E, 0x0B };
-unsigned char table_49[32] = {
+static const unsigned char table_49[32] = {
0x1F, 0x0F, 0x19, 0x07, 0x18, 0x05, 0x1E, 0x1D,
0x15, 0x08, 0x17, 0x10, 0x0A, 0x0E, 0x0C, 0x1B,
0x02, 0x13, 0x03, 0x0D, 0x04, 0x1A, 0x06, 0x09,
0x12, 0x1C, 0x0B, 0x16, 0x14, 0x01, 0x11, 0x00 };
-unsigned char table_50[32] = {
+static const unsigned char table_50[32] = {
0x16, 0x18, 0x1C, 0x0E, 0x12, 0x00, 0x04, 0x1B,
0x1F, 0x13, 0x17, 0x0A, 0x1E, 0x03, 0x0C, 0x01,
0x0F, 0x10, 0x02, 0x08, 0x14, 0x09, 0x19, 0x15,
0x06, 0x0D, 0x0B, 0x1D, 0x05, 0x07, 0x11, 0x1A };
-unsigned char table_51[32] = {
+static const unsigned char table_51[32] = {
0x1C, 0x0D, 0x1B, 0x07, 0x17, 0x0E, 0x06, 0x01,
0x12, 0x19, 0x03, 0x0B, 0x10, 0x08, 0x00, 0x1E,
0x0A, 0x04, 0x1A, 0x1D, 0x0C, 0x18, 0x02, 0x13,
0x0F, 0x11, 0x05, 0x09, 0x15, 0x16, 0x1F, 0x14 };
-unsigned char table_52[256] = {
+static const unsigned char table_52[256] = {
0x34, 0x0B, 0x47, 0xA3, 0x56, 0x30, 0x73, 0xD4,
0x4B, 0xF6, 0xA6, 0x80, 0x22, 0x95, 0xA5, 0xBB,
0xFE, 0xCD, 0x27, 0x88, 0x87, 0x18, 0x86, 0x6E,
@@ -1182,7 +1182,7 @@ unsigned char table_52[256] = {
0x9B, 0xC2, 0x38, 0xD0, 0xEE, 0x81, 0x46, 0xE2,
0x01, 0x0C, 0x5D, 0x7D, 0xB8, 0xBE, 0x6A, 0x16 };
-unsigned char table_53[256] = {
+static const unsigned char table_53[256] = {
0xE3, 0xF4, 0x8D, 0x72, 0x45, 0x32, 0x9D, 0xCE,
0x1F, 0x6B, 0xBC, 0xDC, 0xF1, 0xEC, 0x5A, 0x3B,
0xA5, 0xA2, 0x2B, 0xDD, 0x8A, 0xA3, 0x76, 0xE4,
@@ -1216,19 +1216,19 @@ unsigned char table_53[256] = {
0x39, 0x6A, 0xC8, 0xA0, 0xB2, 0xC1, 0x84, 0xFC,
0xAB, 0x64, 0xE0, 0xBE, 0xDA, 0xBD, 0x96, 0x94 };
-unsigned char table_54[32] = {
+static const unsigned char table_54[32] = {
0x01, 0x02, 0x1D, 0x10, 0x0E, 0x11, 0x08, 0x14,
0x12, 0x09, 0x15, 0x17, 0x16, 0x04, 0x06, 0x1B,
0x07, 0x1A, 0x18, 0x13, 0x0A, 0x1E, 0x1C, 0x1F,
0x0C, 0x0B, 0x0D, 0x05, 0x0F, 0x00, 0x19, 0x03 };
-unsigned char table_55[32] = {
+static const unsigned char table_55[32] = {
0x01, 0x12, 0x13, 0x09, 0x0B, 0x19, 0x03, 0x0E,
0x02, 0x1F, 0x1D, 0x1B, 0x1E, 0x11, 0x06, 0x05,
0x00, 0x16, 0x07, 0x0C, 0x15, 0x0D, 0x1A, 0x08,
0x18, 0x10, 0x0F, 0x17, 0x1C, 0x0A, 0x04, 0x14 };
-unsigned char table_56[256] = {
+static const unsigned char table_56[256] = {
0xEF, 0x06, 0x5F, 0x11, 0x4B, 0x60, 0x13, 0xBB,
0x79, 0xD7, 0xE4, 0x6D, 0x22, 0xB4, 0x15, 0x50,
0x29, 0x17, 0xD2, 0xE3, 0x37, 0x8C, 0x46, 0x7C,
@@ -1262,7 +1262,7 @@ unsigned char table_56[256] = {
0x67, 0xA4, 0x55, 0x10, 0x0F, 0xD9, 0x52, 0x32,
0x96, 0xD5, 0xEB, 0x64, 0x8A, 0xC8, 0x7A, 0xBE };
-unsigned char table_57[256] = {
+static const unsigned char table_57[256] = {
0xD1, 0x9B, 0x15, 0x06, 0xB4, 0xF6, 0x97, 0xF0,
0xC6, 0x5B, 0x88, 0x12, 0x25, 0xFA, 0x7B, 0x79,
0xD6, 0xAB, 0xDC, 0x47, 0x85, 0x61, 0x67, 0x0B,
@@ -1296,7 +1296,7 @@ unsigned char table_57[256] = {
0x75, 0x02, 0x2B, 0x92, 0x21, 0x7D, 0xF5, 0x5E,
0x4E, 0x3C, 0x84, 0x14, 0x28, 0x3A, 0xE9, 0xC0 };
-unsigned char table_58[256] = {
+static const unsigned char table_58[256] = {
0xE9, 0x81, 0x60, 0xA7, 0x18, 0xA0, 0x0F, 0x55,
0x2B, 0x52, 0xE0, 0x8B, 0x9D, 0x85, 0xD2, 0xA3,
0x3F, 0x6E, 0xB1, 0xAF, 0xE3, 0x36, 0xE2, 0x19,
@@ -1330,7 +1330,7 @@ unsigned char table_58[256] = {
0xF1, 0xC8, 0x9F, 0xED, 0x50, 0x20, 0x15, 0x11,
0x68, 0x1E, 0xF6, 0xA6, 0x6C, 0xB2, 0xD1, 0x58 };
-unsigned char table_59[256] = {
+static const unsigned char table_59[256] = {
0x4C, 0x85, 0x2B, 0x14, 0xCC, 0x4D, 0x5F, 0xD7,
0xCE, 0x28, 0xC5, 0x0B, 0xA1, 0x99, 0x08, 0xDE,
0x42, 0xD1, 0x82, 0x5C, 0xC9, 0x8F, 0x72, 0x12,
@@ -1364,13 +1364,13 @@ unsigned char table_59[256] = {
0x0C, 0x46, 0xBD, 0xE9, 0x68, 0x18, 0xAB, 0x2E,
0x5D, 0x1A, 0x8D, 0xC1, 0x58, 0x48, 0xAD, 0x0F };
-unsigned char table_60[32] = {
+static const unsigned char table_60[32] = {
0x1C, 0x06, 0x1E, 0x10, 0x1D, 0x05, 0x00, 0x0E,
0x0C, 0x02, 0x11, 0x19, 0x15, 0x18, 0x16, 0x07,
0x1F, 0x0B, 0x14, 0x01, 0x0F, 0x09, 0x0D, 0x13,
0x03, 0x08, 0x12, 0x04, 0x1B, 0x0A, 0x17, 0x1A };
-unsigned char table_61[256] = {
+static const unsigned char table_61[256] = {
0xC5, 0xA6, 0xF2, 0x6B, 0x4B, 0x58, 0xE0, 0x41,
0xC6, 0x2F, 0x13, 0xFE, 0xC1, 0x34, 0x3F, 0x24,
0x10, 0xBF, 0x8B, 0xC9, 0x26, 0x2E, 0x68, 0xBE,
@@ -1404,7 +1404,7 @@ unsigned char table_61[256] = {
0xA9, 0x1F, 0x06, 0x27, 0xC7, 0x04, 0xE2, 0xBA,
0xCF, 0x60, 0xAA, 0xA4, 0xEB, 0xC4, 0x4E, 0xC2 };
-unsigned char table_62[256] = {
+static const unsigned char table_62[256] = {
0x01, 0x59, 0xEC, 0xFC, 0x51, 0xD2, 0xE4, 0x9D,
0xAA, 0x61, 0xD5, 0xCA, 0x63, 0x5D, 0xCE, 0x36,
0xB9, 0x49, 0x76, 0xA9, 0x14, 0x4C, 0x90, 0x28,
@@ -1438,7 +1438,7 @@ unsigned char table_62[256] = {
0x35, 0xDF, 0xEF, 0xA7, 0x7F, 0x24, 0xF8, 0xE3,
0xCF, 0xE9, 0xDB, 0xD3, 0x02, 0x9A, 0x0E, 0x5F };
-unsigned char table_63[256] = {
+static const unsigned char table_63[256] = {
0x0C, 0x02, 0xEE, 0x94, 0x2D, 0x76, 0x96, 0x75,
0x21, 0xDC, 0x37, 0x03, 0xC0, 0xF7, 0xDF, 0xEF,
0xB1, 0x1D, 0xCF, 0x15, 0x5A, 0xB4, 0xCC, 0x81,
@@ -1472,25 +1472,25 @@ unsigned char table_63[256] = {
0x1C, 0x55, 0x6F, 0x9C, 0x56, 0x38, 0xC6, 0x5B,
0x8C, 0xE2, 0x83, 0xA7, 0xD6, 0x0E, 0xB3, 0xDD };
-unsigned char table_64[32] = {
+static const unsigned char table_64[32] = {
0x03, 0x05, 0x0D, 0x09, 0x1A, 0x16, 0x08, 0x10,
0x06, 0x1E, 0x1C, 0x15, 0x02, 0x04, 0x17, 0x0C,
0x18, 0x0B, 0x19, 0x11, 0x1B, 0x14, 0x13, 0x0A,
0x0E, 0x00, 0x1D, 0x1F, 0x01, 0x0F, 0x07, 0x12 };
-unsigned char table_65[32] = {
+static const unsigned char table_65[32] = {
0x01, 0x0A, 0x1E, 0x14, 0x10, 0x1D, 0x0D, 0x17,
0x0E, 0x0C, 0x0F, 0x12, 0x04, 0x1A, 0x05, 0x02,
0x08, 0x1C, 0x09, 0x1F, 0x0B, 0x13, 0x19, 0x1B,
0x11, 0x00, 0x16, 0x06, 0x03, 0x18, 0x15, 0x07 };
-unsigned char table_66[32] = {
+static const unsigned char table_66[32] = {
0x1C, 0x18, 0x0C, 0x09, 0x05, 0x03, 0x15, 0x12,
0x0D, 0x02, 0x08, 0x0E, 0x19, 0x07, 0x13, 0x17,
0x1E, 0x1D, 0x1F, 0x11, 0x06, 0x0A, 0x0B, 0x14,
0x0F, 0x10, 0x01, 0x1B, 0x00, 0x04, 0x1A, 0x16 };
-unsigned char table_67[256] = {
+static const unsigned char table_67[256] = {
0x6B, 0x49, 0xC8, 0x86, 0xFF, 0xC0, 0x5D, 0xEF,
0xF7, 0x06, 0xE0, 0x98, 0xA9, 0x72, 0x71, 0xD5,
0xBA, 0x7F, 0x10, 0xD1, 0xBE, 0x41, 0x9C, 0x40,
@@ -1524,7 +1524,7 @@ unsigned char table_67[256] = {
0x9D, 0xD2, 0xC3, 0x0A, 0x7D, 0x70, 0xF6, 0x63,
0x24, 0x43, 0x21, 0x83, 0xFB, 0xFD, 0x8B, 0x96 };
-unsigned char table_68[256] = {
+static const unsigned char table_68[256] = {
0x93, 0xFF, 0x83, 0x70, 0x12, 0x2D, 0x1C, 0xD6,
0xF9, 0xEE, 0xCF, 0x94, 0x7B, 0xB5, 0xA4, 0x84,
0x99, 0xF7, 0x67, 0x32, 0xFC, 0x8A, 0xE3, 0xE4,
@@ -1558,7 +1558,7 @@ unsigned char table_68[256] = {
0x33, 0x86, 0x76, 0x80, 0xE5, 0xC8, 0xD8, 0xA9,
0x8C, 0x6D, 0x91, 0x63, 0x3A, 0x4D, 0xC1, 0x01 };
-unsigned char table_69[256] = {
+static const unsigned char table_69[256] = {
0x21, 0x6B, 0x9B, 0xAE, 0x11, 0x5A, 0x91, 0xC2,
0x47, 0x8E, 0x87, 0x86, 0x4F, 0xFC, 0x8F, 0x66,
0x97, 0x2F, 0x61, 0x9C, 0x5B, 0x4C, 0xB3, 0x14,
@@ -1592,7 +1592,7 @@ unsigned char table_69[256] = {
0xD0, 0x0F, 0x6D, 0xD7, 0x92, 0x7B, 0x0C, 0xA3,
0x73, 0xDB, 0xB6, 0x83, 0xCE, 0x1E, 0xC1, 0x3C };
-unsigned char table_70[256] = {
+static const unsigned char table_70[256] = {
0x54, 0x23, 0xF1, 0x09, 0x9D, 0xEB, 0x26, 0xD9,
0x6C, 0xC1, 0xBC, 0x3D, 0x6E, 0xB0, 0x5F, 0xE2,
0x59, 0x4D, 0x95, 0xFA, 0xD8, 0x29, 0xAA, 0x8E,
@@ -1626,13 +1626,13 @@ unsigned char table_70[256] = {
0x74, 0xCE, 0xDC, 0x90, 0x3E, 0xF3, 0x7F, 0xC4,
0x49, 0x84, 0x38, 0xC7, 0xE3, 0xD4, 0x1A, 0xBF };
-unsigned char table_71[32] = {
+static const unsigned char table_71[32] = {
0x17, 0x13, 0x0E, 0x1A, 0x0D, 0x18, 0x19, 0x10,
0x14, 0x11, 0x16, 0x05, 0x04, 0x00, 0x12, 0x0A,
0x02, 0x07, 0x03, 0x0B, 0x09, 0x1F, 0x1C, 0x0F,
0x0C, 0x06, 0x1B, 0x08, 0x1D, 0x01, 0x15, 0x1E };
-unsigned char table_72[256] = {
+static const unsigned char table_72[256] = {
0xC9, 0xA7, 0x1B, 0xEC, 0x2B, 0x8B, 0xB0, 0xEB,
0x7F, 0x39, 0x25, 0xD9, 0x1D, 0xD5, 0x67, 0xA0,
0xB3, 0xAC, 0x3B, 0xC8, 0x82, 0xC0, 0xE3, 0x9E,
@@ -1666,7 +1666,7 @@ unsigned char table_72[256] = {
0xB5, 0xC5, 0xD4, 0x47, 0x8E, 0xE7, 0x58, 0x8F,
0x08, 0x53, 0xF2, 0xB9, 0x5A, 0x3E, 0xE9, 0xD2 };
-unsigned char table_73[256] = {
+static const unsigned char table_73[256] = {
0x36, 0x37, 0xED, 0xD8, 0xBF, 0xD7, 0x12, 0xB7,
0x40, 0x32, 0x19, 0x4A, 0x44, 0x2A, 0xCE, 0xA5,
0x29, 0x13, 0x43, 0x51, 0x5C, 0xD0, 0x76, 0x6E,
@@ -1700,7 +1700,7 @@ unsigned char table_73[256] = {
0x26, 0x38, 0x71, 0x0E, 0x45, 0xDF, 0xB4, 0x99,
0xFF, 0x90, 0x6B, 0xBC, 0x54, 0x95, 0xBD, 0x07 };
-unsigned char table_74[256] = {
+static const unsigned char table_74[256] = {
0xA7, 0xCF, 0x99, 0x1A, 0x13, 0xC7, 0xE9, 0xC4,
0xB6, 0x0E, 0x15, 0x09, 0xFF, 0xDF, 0xBE, 0x03,
0xAD, 0xF1, 0xB0, 0x3C, 0x4A, 0x9B, 0xF5, 0x12,
@@ -1734,7 +1734,7 @@ unsigned char table_74[256] = {
0x6E, 0xF3, 0x23, 0x3D, 0x85, 0x82, 0x78, 0xF6,
0x2F, 0xD8, 0xC3, 0x7C, 0x9C, 0x98, 0xEA, 0x71 };
-unsigned char table_75[256] = {
+static const unsigned char table_75[256] = {
0xE7, 0xA5, 0x30, 0xE1, 0x9D, 0x81, 0xBE, 0x83,
0xB2, 0x1E, 0xE4, 0x69, 0x2F, 0x2B, 0x0D, 0xEB,
0x7C, 0x59, 0x2D, 0xAA, 0x01, 0x0C, 0xDB, 0xED,
@@ -1768,7 +1768,7 @@ unsigned char table_75[256] = {
0xA9, 0x34, 0x94, 0x3B, 0xB9, 0x9C, 0xA2, 0x13,
0x89, 0x46, 0x78, 0xDC, 0x32, 0x8B, 0x67, 0x36 };
-unsigned char table_76[256] = {
+static const unsigned char table_76[256] = {
0x3D, 0x66, 0x40, 0xC5, 0x1D, 0xF5, 0xE7, 0xB7,
0x2C, 0x23, 0x09, 0xC2, 0x68, 0xE6, 0xD3, 0x8D,
0x35, 0x94, 0x93, 0xF0, 0x43, 0x97, 0x2B, 0x4B,
@@ -1802,25 +1802,25 @@ unsigned char table_76[256] = {
0x13, 0x56, 0x6C, 0x89, 0x33, 0x6E, 0x2A, 0xA5,
0xD1, 0x95, 0xC3, 0xA0, 0x0F, 0xCA, 0xAC, 0xFC };
-unsigned char table_77[32] = {
+static const unsigned char table_77[32] = {
0x1C, 0x0D, 0x1E, 0x01, 0x06, 0x16, 0x18, 0x17,
0x0B, 0x1F, 0x04, 0x0F, 0x00, 0x19, 0x08, 0x0A,
0x11, 0x03, 0x05, 0x07, 0x09, 0x0C, 0x15, 0x14,
0x1A, 0x12, 0x13, 0x0E, 0x1D, 0x10, 0x02, 0x1B };
-unsigned char table_78[32] = {
+static const unsigned char table_78[32] = {
0x0E, 0x02, 0x17, 0x12, 0x1E, 0x09, 0x15, 0x03,
0x01, 0x0B, 0x0F, 0x11, 0x10, 0x0A, 0x16, 0x06,
0x07, 0x00, 0x1C, 0x1D, 0x1F, 0x0C, 0x18, 0x04,
0x13, 0x0D, 0x1B, 0x08, 0x19, 0x14, 0x05, 0x1A };
-unsigned char table_79[32] = {
+static const unsigned char table_79[32] = {
0x12, 0x0B, 0x11, 0x01, 0x07, 0x0E, 0x1A, 0x0D,
0x1E, 0x18, 0x14, 0x1F, 0x0A, 0x17, 0x19, 0x1B,
0x00, 0x10, 0x0C, 0x08, 0x13, 0x02, 0x0F, 0x1D,
0x09, 0x06, 0x04, 0x16, 0x15, 0x1C, 0x05, 0x03 };
-unsigned char table_80[256] = {
+static const unsigned char table_80[256] = {
0x14, 0xE7, 0x31, 0x0F, 0xD1, 0x5F, 0xED, 0x1E,
0xA6, 0x77, 0x20, 0x57, 0x34, 0x64, 0x33, 0x0B,
0x5A, 0xB4, 0x83, 0x62, 0xFD, 0x8E, 0xE4, 0xF3,
@@ -1854,13 +1854,13 @@ unsigned char table_80[256] = {
0x2F, 0x50, 0x2E, 0x95, 0xAE, 0x1B, 0x56, 0x7B,
0x39, 0xB9, 0xC0, 0x22, 0xF1, 0x4D, 0x90, 0xFC };
-unsigned char table_81[32] = {
+static const unsigned char table_81[32] = {
0x03, 0x02, 0x1D, 0x0E, 0x09, 0x1A, 0x0C, 0x11,
0x1C, 0x0D, 0x08, 0x12, 0x19, 0x10, 0x04, 0x17,
0x15, 0x05, 0x0A, 0x00, 0x13, 0x16, 0x1B, 0x18,
0x1E, 0x0B, 0x0F, 0x01, 0x07, 0x14, 0x1F, 0x06 };
-unsigned char table_82[256] = {
+static const unsigned char table_82[256] = {
0x53, 0xD3, 0x64, 0x89, 0x7D, 0xA5, 0x66, 0xA4,
0x09, 0x46, 0x17, 0x2C, 0xAF, 0x8C, 0x21, 0x5F,
0x3B, 0x22, 0xE3, 0x05, 0x07, 0x28, 0x2F, 0xAB,
@@ -1894,19 +1894,19 @@ unsigned char table_82[256] = {
0x5E, 0x33, 0x5B, 0xA6, 0xC2, 0xB0, 0xBA, 0x30,
0x6A, 0x78, 0xB5, 0x71, 0x56, 0x87, 0x7F, 0x86 };
-unsigned char table_83[32] = {
+static const unsigned char table_83[32] = {
0x1B, 0x0A, 0x1F, 0x01, 0x10, 0x08, 0x0E, 0x18,
0x06, 0x04, 0x00, 0x1C, 0x0C, 0x19, 0x0D, 0x16,
0x02, 0x03, 0x09, 0x07, 0x13, 0x0F, 0x05, 0x12,
0x17, 0x1E, 0x1A, 0x1D, 0x0B, 0x11, 0x14, 0x15 };
-unsigned char table_84[32] = {
+static const unsigned char table_84[32] = {
0x02, 0x1A, 0x0D, 0x15, 0x01, 0x16, 0x1E, 0x00,
0x08, 0x1B, 0x04, 0x10, 0x1C, 0x18, 0x19, 0x14,
0x0C, 0x11, 0x0B, 0x0E, 0x03, 0x0A, 0x07, 0x12,
0x1D, 0x17, 0x13, 0x06, 0x0F, 0x05, 0x09, 0x1F };
-unsigned char table_85[256] = {
+static const unsigned char table_85[256] = {
0xC6, 0x7C, 0xCE, 0xBD, 0x84, 0x3E, 0x0B, 0xD8,
0xFE, 0xCC, 0x46, 0x50, 0xD1, 0xFB, 0xA0, 0x6D,
0xEA, 0xE2, 0x40, 0x51, 0x13, 0xB0, 0xD6, 0xB1,
@@ -1940,31 +1940,31 @@ unsigned char table_85[256] = {
0x8E, 0x1B, 0xEF, 0xBF, 0x94, 0xC4, 0x0D, 0xB8,
0x2D, 0x57, 0xE7, 0x82, 0x1E, 0x37, 0x63, 0x43 };
-unsigned char table_86[32] = {
+static const unsigned char table_86[32] = {
0x11, 0x07, 0x0F, 0x0A, 0x19, 0x1D, 0x0B, 0x09,
0x1C, 0x1E, 0x14, 0x06, 0x0C, 0x16, 0x13, 0x04,
0x15, 0x18, 0x00, 0x0D, 0x12, 0x05, 0x08, 0x02,
0x10, 0x1A, 0x1F, 0x01, 0x17, 0x0E, 0x03, 0x1B };
-unsigned char table_87[32] = {
+static const unsigned char table_87[32] = {
0x17, 0x0E, 0x1D, 0x13, 0x0B, 0x19, 0x03, 0x06,
0x09, 0x01, 0x0D, 0x15, 0x1C, 0x16, 0x18, 0x1B,
0x11, 0x10, 0x00, 0x1E, 0x1F, 0x08, 0x12, 0x0F,
0x02, 0x04, 0x07, 0x1A, 0x14, 0x0A, 0x0C, 0x05 };
-unsigned char table_88[32] = {
+static const unsigned char table_88[32] = {
0x09, 0x08, 0x17, 0x10, 0x0A, 0x07, 0x1C, 0x1F,
0x04, 0x0E, 0x01, 0x0C, 0x0D, 0x1B, 0x03, 0x15,
0x02, 0x1E, 0x18, 0x19, 0x0F, 0x06, 0x1A, 0x0B,
0x05, 0x11, 0x14, 0x00, 0x16, 0x1D, 0x12, 0x13 };
-unsigned char table_89[32] = {
+static const unsigned char table_89[32] = {
0x15, 0x1C, 0x1D, 0x14, 0x0F, 0x1A, 0x05, 0x02,
0x07, 0x09, 0x06, 0x08, 0x1F, 0x00, 0x10, 0x13,
0x0D, 0x03, 0x0C, 0x18, 0x0E, 0x16, 0x1B, 0x1E,
0x12, 0x04, 0x11, 0x0A, 0x01, 0x0B, 0x17, 0x19 };
-unsigned char table_90[256] = {
+static const unsigned char table_90[256] = {
0x62, 0x36, 0x64, 0x0E, 0x4C, 0x6C, 0xBE, 0xCF,
0x25, 0x5A, 0x3D, 0x12, 0x54, 0x9F, 0xE7, 0xA5,
0xDE, 0xD7, 0xB2, 0x60, 0x18, 0x8D, 0x89, 0x70,
@@ -1998,19 +1998,19 @@ unsigned char table_90[256] = {
0x29, 0x0A, 0x08, 0xE4, 0x27, 0x19, 0x31, 0xC9,
0x20, 0x94, 0x45, 0xED, 0xDC, 0xBD, 0x7E, 0x50 };
-unsigned char table_91[32] = {
+static const unsigned char table_91[32] = {
0x03, 0x04, 0x0C, 0x18, 0x10, 0x0D, 0x13, 0x1B,
0x1F, 0x07, 0x11, 0x17, 0x1C, 0x1D, 0x05, 0x06,
0x0A, 0x12, 0x02, 0x1A, 0x0B, 0x01, 0x0E, 0x08,
0x14, 0x16, 0x00, 0x15, 0x19, 0x09, 0x0F, 0x1E };
-unsigned char table_92[32] = {
+static const unsigned char table_92[32] = {
0x1E, 0x10, 0x01, 0x07, 0x11, 0x16, 0x15, 0x17,
0x1F, 0x14, 0x0C, 0x1C, 0x06, 0x03, 0x00, 0x18,
0x08, 0x0E, 0x02, 0x1B, 0x09, 0x0D, 0x19, 0x05,
0x0F, 0x12, 0x0B, 0x13, 0x0A, 0x04, 0x1D, 0x1A };
-unsigned char table_93[256] = {
+static const unsigned char table_93[256] = {
0x76, 0x78, 0xA2, 0x94, 0x0E, 0x7F, 0xDF, 0xC1,
0xB9, 0xE1, 0x3D, 0x59, 0x6F, 0x1E, 0x53, 0x99,
0x80, 0xE3, 0x21, 0xF8, 0x65, 0xB8, 0x08, 0xBC,
@@ -2044,19 +2044,19 @@ unsigned char table_93[256] = {
0x6E, 0x3B, 0x7D, 0x77, 0x36, 0xAA, 0x39, 0xDE,
0x24, 0x34, 0xE2, 0xEC, 0x85, 0x47, 0xF4, 0xB2 };
-unsigned char table_94[32] = {
+static const unsigned char table_94[32] = {
0x1C, 0x07, 0x05, 0x1A, 0x10, 0x1D, 0x14, 0x12,
0x08, 0x0F, 0x0C, 0x01, 0x04, 0x1B, 0x16, 0x0A,
0x11, 0x02, 0x1F, 0x13, 0x0D, 0x1E, 0x17, 0x06,
0x0E, 0x09, 0x15, 0x19, 0x03, 0x18, 0x00, 0x0B };
-unsigned char table_95[32] = {
+static const unsigned char table_95[32] = {
0x12, 0x10, 0x11, 0x15, 0x03, 0x0A, 0x14, 0x05,
0x1D, 0x07, 0x17, 0x0D, 0x09, 0x08, 0x1B, 0x1F,
0x0B, 0x06, 0x19, 0x0E, 0x18, 0x04, 0x00, 0x02,
0x1E, 0x1C, 0x01, 0x0C, 0x1A, 0x0F, 0x13, 0x16 };
-unsigned char table_96[256] = {
+static const unsigned char table_96[256] = {
0x1C, 0x6E, 0xCD, 0xB4, 0xB3, 0x93, 0xA8, 0x2E,
0x4F, 0x09, 0xE3, 0x72, 0x64, 0x13, 0x21, 0xF5,
0x89, 0xB2, 0xD2, 0x22, 0x5D, 0x63, 0x90, 0xC4,
@@ -2090,7 +2090,7 @@ unsigned char table_96[256] = {
0x7E, 0x7C, 0x06, 0x3B, 0xEB, 0x60, 0x7A, 0x8C,
0x59, 0xCE, 0xE1, 0x57, 0x20, 0x58, 0x51, 0xD8 };
-unsigned char table_97[256] = {
+static const unsigned char table_97[256] = {
0x15, 0x2D, 0xAF, 0x36, 0xCF, 0xD3, 0xD0, 0xED,
0xB2, 0x1B, 0xFE, 0x92, 0xBD, 0xAD, 0x58, 0x0F,
0x76, 0x3C, 0x47, 0x03, 0x2E, 0x4C, 0x40, 0xF7,
@@ -2124,7 +2124,7 @@ unsigned char table_97[256] = {
0x80, 0x88, 0xE8, 0x5F, 0x04, 0xDA, 0xE4, 0xBC,
0x83, 0x25, 0x9F, 0xD9, 0x99, 0xC1, 0xFD, 0xB3 };
-unsigned char table_98[256] = {
+static const unsigned char table_98[256] = {
0xC8, 0xE6, 0x38, 0x93, 0xE5, 0x03, 0x18, 0x1F,
0xE9, 0x5A, 0xB6, 0xAF, 0xC3, 0x95, 0x00, 0x51,
0xC0, 0xFD, 0x32, 0xE8, 0x96, 0x57, 0xF0, 0xAA,
@@ -2158,13 +2158,13 @@ unsigned char table_98[256] = {
0x88, 0xFE, 0x24, 0x2F, 0x76, 0x3F, 0x59, 0x21,
0x54, 0x3A, 0x13, 0x09, 0x2C, 0xB5, 0xC7, 0x63 };
-unsigned char table_99[32] = {
+static const unsigned char table_99[32] = {
0x19, 0x00, 0x10, 0x18, 0x09, 0x11, 0x13, 0x1D,
0x08, 0x1A, 0x02, 0x05, 0x03, 0x17, 0x12, 0x01,
0x1F, 0x14, 0x06, 0x07, 0x15, 0x0D, 0x0F, 0x0B,
0x0E, 0x16, 0x1E, 0x04, 0x1B, 0x0A, 0x0C, 0x1C };
-unsigned char table_100[256] = {
+static const unsigned char table_100[256] = {
0x9B, 0x3A, 0xAE, 0x60, 0x27, 0x67, 0x1E, 0x4E,
0x91, 0xDA, 0x85, 0x43, 0x5C, 0xCC, 0x89, 0x55,
0x75, 0x56, 0xF2, 0x86, 0xEB, 0xC4, 0x0D, 0xE6,
@@ -2198,25 +2198,25 @@ unsigned char table_100[256] = {
0x87, 0xB3, 0x7E, 0xDE, 0xD7, 0x71, 0x65, 0xF1,
0x30, 0x0C, 0xB2, 0x7B, 0xBE, 0xFB, 0x23, 0x2C };
-unsigned char table_101[32] = {
+static const unsigned char table_101[32] = {
0x18, 0x08, 0x14, 0x17, 0x03, 0x10, 0x19, 0x04,
0x0D, 0x1C, 0x06, 0x1D, 0x1E, 0x12, 0x11, 0x0B,
0x0F, 0x02, 0x0E, 0x1B, 0x13, 0x05, 0x07, 0x16,
0x15, 0x0A, 0x0C, 0x1A, 0x00, 0x01, 0x1F, 0x09 };
-unsigned char table_102[32] = {
+static const unsigned char table_102[32] = {
0x17, 0x1F, 0x0E, 0x05, 0x13, 0x0C, 0x14, 0x1A,
0x0F, 0x01, 0x12, 0x1C, 0x00, 0x07, 0x0D, 0x02,
0x10, 0x16, 0x04, 0x11, 0x1D, 0x03, 0x1E, 0x18,
0x06, 0x15, 0x0A, 0x19, 0x09, 0x08, 0x1B, 0x0B };
-unsigned char table_103[32] = {
+static const unsigned char table_103[32] = {
0x0F, 0x09, 0x1E, 0x11, 0x0D, 0x08, 0x10, 0x00,
0x01, 0x1F, 0x1D, 0x1C, 0x12, 0x04, 0x07, 0x05,
0x19, 0x14, 0x1B, 0x02, 0x1A, 0x15, 0x17, 0x16,
0x18, 0x0B, 0x0A, 0x13, 0x0C, 0x0E, 0x03, 0x06 };
-unsigned char table_104[256] = {
+static const unsigned char table_104[256] = {
0xA4, 0x9F, 0x78, 0x39, 0x3D, 0x81, 0x51, 0x24,
0x46, 0x2A, 0x56, 0xE8, 0xDF, 0x73, 0xA8, 0xA2,
0x0D, 0xDC, 0xA5, 0x4F, 0xF0, 0x93, 0xC0, 0x76,
@@ -2250,7 +2250,7 @@ unsigned char table_104[256] = {
0x69, 0x9B, 0x84, 0xA0, 0xB3, 0x6F, 0xFE, 0x52,
0x97, 0xBB, 0x37, 0x8C, 0x54, 0x53, 0x9E, 0x8F };
-unsigned char table_105[256] = {
+static const unsigned char table_105[256] = {
0x7B, 0x35, 0x11, 0x79, 0x07, 0x2F, 0xF6, 0x82,
0x8E, 0xB4, 0x6E, 0xD2, 0x6D, 0xC5, 0x8C, 0x1C,
0xE0, 0xD6, 0x34, 0xF0, 0x4F, 0x25, 0x59, 0xE8,
@@ -2284,19 +2284,19 @@ unsigned char table_105[256] = {
0x90, 0x0A, 0x2A, 0x5D, 0x96, 0x08, 0x6B, 0x83,
0xBA, 0x1E, 0x44, 0x87, 0x45, 0x9F, 0xC9, 0x94 };
-unsigned char table_106[32] = {
+static const unsigned char table_106[32] = {
0x03, 0x11, 0x07, 0x1B, 0x0F, 0x14, 0x0C, 0x01,
0x04, 0x02, 0x09, 0x0A, 0x05, 0x12, 0x06, 0x1F,
0x1C, 0x0E, 0x0D, 0x15, 0x18, 0x08, 0x00, 0x10,
0x1E, 0x1D, 0x17, 0x19, 0x13, 0x16, 0x0B, 0x1A };
-unsigned char table_107[32] = {
+static const unsigned char table_107[32] = {
0x13, 0x1B, 0x06, 0x11, 0x1C, 0x07, 0x08, 0x0E,
0x10, 0x05, 0x09, 0x18, 0x04, 0x15, 0x1E, 0x0F,
0x1F, 0x12, 0x02, 0x00, 0x17, 0x19, 0x1A, 0x0D,
0x03, 0x0C, 0x0A, 0x1D, 0x14, 0x01, 0x16, 0x0B };
-unsigned char table_108[256] = {
+static const unsigned char table_108[256] = {
0x99, 0xA3, 0x48, 0xE8, 0x5A, 0x7D, 0x97, 0xCA,
0x7F, 0x06, 0x9B, 0x04, 0xE0, 0xF3, 0x18, 0xAE,
0x59, 0xA0, 0x2B, 0x15, 0x85, 0x3E, 0x12, 0x93,
@@ -2330,7 +2330,7 @@ unsigned char table_108[256] = {
0x4B, 0x9C, 0x70, 0x65, 0x4A, 0xE4, 0x42, 0xDD,
0xCC, 0xE2, 0x44, 0x73, 0xBE, 0x26, 0x8C, 0x5B };
-unsigned char table_109[256] = {
+static const unsigned char table_109[256] = {
0xE3, 0x95, 0xDB, 0x09, 0x82, 0x0A, 0x8F, 0x9E,
0xC9, 0xDC, 0x28, 0x35, 0x0F, 0x8B, 0xA8, 0xA5,
0x7F, 0x3D, 0x8C, 0xD1, 0x93, 0x57, 0x04, 0xAA,
@@ -2364,7 +2364,7 @@ unsigned char table_109[256] = {
0x9A, 0xCD, 0x24, 0xEC, 0x7C, 0x97, 0x61, 0xCB,
0x1E, 0xF4, 0xD5, 0xB1, 0x5C, 0x25, 0xE8, 0x1C };
-unsigned char table_110[256] = {
+static const unsigned char table_110[256] = {
0xC3, 0x06, 0x3C, 0xCB, 0xD2, 0x44, 0x9D, 0x48,
0x28, 0xAA, 0xA9, 0xD0, 0x64, 0x25, 0x56, 0xCA,
0xC2, 0xF8, 0x5C, 0xAE, 0x4E, 0x63, 0xB2, 0xE9,
@@ -2398,13 +2398,13 @@ unsigned char table_110[256] = {
0x67, 0xDC, 0x0B, 0xF4, 0x20, 0xAB, 0x6B, 0x9E,
0x4B, 0xCF, 0xB4, 0x2F, 0xBB, 0xEF, 0xDB, 0x33 };
-unsigned char table_111[32] = {
+static const unsigned char table_111[32] = {
0x09, 0x0F, 0x00, 0x15, 0x12, 0x17, 0x1A, 0x0D,
0x1C, 0x0B, 0x01, 0x0A, 0x05, 0x1E, 0x1D, 0x0C,
0x1B, 0x08, 0x19, 0x18, 0x14, 0x07, 0x0E, 0x03,
0x10, 0x16, 0x11, 0x1F, 0x04, 0x06, 0x02, 0x13 };
-unsigned char table_112[256] = {
+static const unsigned char table_112[256] = {
0xF9, 0x7D, 0xBE, 0xD5, 0x9F, 0xB8, 0x95, 0x43,
0xDB, 0xAE, 0x7E, 0xEC, 0x5B, 0x58, 0x18, 0x49,
0x4B, 0x9D, 0x1C, 0x3E, 0x61, 0xD1, 0xF6, 0x2F,
@@ -2438,7 +2438,7 @@ unsigned char table_112[256] = {
0xA9, 0x8B, 0x75, 0x01, 0xA0, 0xE4, 0x35, 0x8D,
0xA1, 0xCC, 0xDF, 0x60, 0xD8, 0x5A, 0xE6, 0xD4 };
-unsigned char table_113[256] = {
+static const unsigned char table_113[256] = {
0x46, 0x9D, 0x39, 0xB2, 0x8D, 0x3B, 0x59, 0x5A,
0xD0, 0x9C, 0xE4, 0x04, 0x01, 0xE2, 0xB3, 0xD2,
0xD7, 0x18, 0x40, 0xD8, 0xF1, 0xEF, 0x3A, 0x1D,
@@ -2472,13 +2472,13 @@ unsigned char table_113[256] = {
0x6A, 0x19, 0xCE, 0xAB, 0x51, 0xD5, 0x6B, 0xBB,
0xFE, 0x7B, 0x67, 0xFF, 0x10, 0xEC, 0xC6, 0x86 };
-unsigned char table_114[32] = {
+static const unsigned char table_114[32] = {
0x11, 0x10, 0x04, 0x1D, 0x08, 0x15, 0x1A, 0x1B,
0x14, 0x18, 0x0F, 0x17, 0x16, 0x07, 0x1E, 0x0E,
0x12, 0x0A, 0x13, 0x0B, 0x0C, 0x00, 0x06, 0x02,
0x1F, 0x19, 0x09, 0x1C, 0x01, 0x0D, 0x03, 0x05 };
-unsigned char table_115[256] = {
+static const unsigned char table_115[256] = {
0xB7, 0xBB, 0x63, 0x0D, 0xF0, 0x33, 0x5A, 0x05,
0xF2, 0x7F, 0x64, 0xDB, 0x51, 0xC9, 0x2C, 0x85,
0x4F, 0x41, 0xA4, 0x42, 0xCF, 0xA6, 0x52, 0x2F,
@@ -2512,13 +2512,13 @@ unsigned char table_115[256] = {
0x5E, 0xFC, 0xC7, 0x0F, 0x2E, 0x81, 0x7E, 0xA1,
0x8C, 0x17, 0xB5, 0xEB, 0xD5, 0xF3, 0x0B, 0x3C };
-unsigned char table_116[32] = {
+static const unsigned char table_116[32] = {
0x00, 0x05, 0x10, 0x1C, 0x0C, 0x1A, 0x04, 0x1B,
0x0A, 0x0D, 0x14, 0x0B, 0x07, 0x03, 0x12, 0x1E,
0x06, 0x11, 0x01, 0x08, 0x15, 0x09, 0x1F, 0x0F,
0x19, 0x18, 0x16, 0x02, 0x13, 0x0E, 0x17, 0x1D };
-unsigned char table_117[256] = {
+static const unsigned char table_117[256] = {
0xD0, 0x9A, 0xAB, 0xA8, 0xA7, 0xDF, 0x28, 0xCE,
0x3E, 0x51, 0xBF, 0x76, 0x03, 0xA0, 0x53, 0x3F,
0x90, 0x93, 0x87, 0x67, 0x98, 0x3D, 0xEA, 0x8B,
@@ -2552,7 +2552,7 @@ unsigned char table_117[256] = {
0x7E, 0x08, 0x15, 0xB9, 0x7C, 0xAD, 0x84, 0xDD,
0xC1, 0xFD, 0x92, 0xA1, 0xF7, 0xAE, 0xDC, 0x58 };
-unsigned char table_118[256] = {
+static const unsigned char table_118[256] = {
0x38, 0xA0, 0xA6, 0xFC, 0x7C, 0x5A, 0x97, 0x1D,
0xFD, 0x00, 0x20, 0xA2, 0x72, 0x10, 0x1F, 0x48,
0x98, 0x7E, 0xDF, 0x2D, 0x80, 0x0A, 0x27, 0xDC,
@@ -2586,13 +2586,13 @@ unsigned char table_118[256] = {
0xE8, 0x06, 0x7A, 0x78, 0x0D, 0x81, 0xF7, 0xEA,
0xD9, 0x2F, 0x02, 0xAC, 0x30, 0x6A, 0xD6, 0x95 };
-unsigned char table_119[32] = {
+static const unsigned char table_119[32] = {
0x14, 0x0A, 0x1C, 0x00, 0x0C, 0x1F, 0x1E, 0x0B,
0x12, 0x1D, 0x17, 0x08, 0x07, 0x04, 0x09, 0x10,
0x03, 0x1B, 0x0E, 0x1A, 0x05, 0x0D, 0x11, 0x15,
0x18, 0x02, 0x06, 0x01, 0x19, 0x16, 0x13, 0x0F };
-unsigned char table_120[256] = {
+static const unsigned char table_120[256] = {
0xCE, 0x89, 0xB2, 0x72, 0x04, 0x77, 0x64, 0xAE,
0x80, 0x99, 0xB5, 0x00, 0x7B, 0x50, 0x9D, 0xE3,
0x87, 0x37, 0x6D, 0x3D, 0x32, 0xBA, 0x20, 0xF0,
@@ -2626,13 +2626,13 @@ unsigned char table_120[256] = {
0xD9, 0x29, 0x3C, 0x0C, 0xF1, 0x0B, 0x28, 0x84,
0x5E, 0xCA, 0xFD, 0x11, 0xA3, 0xC7, 0xC0, 0x91 };
-unsigned char table_121[32] = {
+static const unsigned char table_121[32] = {
0x1E, 0x12, 0x06, 0x1D, 0x15, 0x1F, 0x13, 0x0B,
0x10, 0x0D, 0x1C, 0x01, 0x0A, 0x0E, 0x02, 0x19,
0x04, 0x1A, 0x03, 0x11, 0x00, 0x16, 0x0C, 0x17,
0x14, 0x08, 0x18, 0x05, 0x09, 0x0F, 0x1B, 0x07 };
-unsigned char table_122[256] = {
+static const unsigned char table_122[256] = {
0x85, 0xDF, 0x7F, 0x7C, 0x56, 0xF0, 0x0C, 0x7D,
0x76, 0xA8, 0x58, 0x31, 0x25, 0x8A, 0x0D, 0x23,
0x05, 0x0F, 0x12, 0x64, 0x8E, 0x5D, 0xF4, 0x2C,
@@ -2666,7 +2666,7 @@ unsigned char table_122[256] = {
0x89, 0xC7, 0xC1, 0xCF, 0xBE, 0xAA, 0xEC, 0xBA,
0xCE, 0x2D, 0x4E, 0x83, 0xC3, 0x69, 0xEE, 0xB2 };
-unsigned char table_123[256] = {
+static const unsigned char table_123[256] = {
0x9D, 0xFB, 0x3C, 0x81, 0xAA, 0x05, 0xB2, 0xBE,
0xD1, 0x5F, 0x4C, 0xE0, 0xA3, 0xF4, 0xDE, 0x35,
0xFE, 0x1B, 0x37, 0x99, 0x94, 0x7A, 0x10, 0xAB,
@@ -2700,7 +2700,7 @@ unsigned char table_123[256] = {
0xE5, 0xE4, 0x74, 0x66, 0x1C, 0x68, 0xEC, 0x40,
0x48, 0x77, 0xD0, 0x0A, 0x8A, 0x3A, 0x43, 0x79 };
-unsigned char table_124[256] = {
+static const unsigned char table_124[256] = {
0x6C, 0xC3, 0x28, 0x2F, 0x42, 0x4B, 0x7C, 0x3C,
0xCE, 0x24, 0xC8, 0x51, 0x25, 0x3F, 0x49, 0x8D,
0x1E, 0x5C, 0x89, 0x3A, 0x98, 0x47, 0x0B, 0x12,
@@ -2734,19 +2734,19 @@ unsigned char table_124[256] = {
0xA2, 0xAD, 0xF2, 0x23, 0xBB, 0x72, 0xF3, 0x94,
0x62, 0x1B, 0xDE, 0x91, 0x87, 0x97, 0x05, 0x2E };
-unsigned char table_125[32] = {
+static const unsigned char table_125[32] = {
0x1A, 0x18, 0x12, 0x15, 0x00, 0x1C, 0x01, 0x0B,
0x19, 0x1B, 0x1F, 0x11, 0x07, 0x10, 0x1E, 0x06,
0x17, 0x04, 0x0A, 0x0E, 0x0D, 0x0C, 0x16, 0x08,
0x02, 0x03, 0x13, 0x14, 0x09, 0x1D, 0x05, 0x0F };
-unsigned char table_126[32] = {
+static const unsigned char table_126[32] = {
0x1C, 0x1D, 0x07, 0x12, 0x18, 0x1A, 0x19, 0x09,
0x0F, 0x14, 0x1F, 0x0B, 0x13, 0x04, 0x0E, 0x1E,
0x0C, 0x0D, 0x01, 0x17, 0x1B, 0x16, 0x0A, 0x05,
0x15, 0x10, 0x11, 0x08, 0x00, 0x03, 0x06, 0x02 };
-unsigned char table_127[256] = {
+static const unsigned char table_127[256] = {
0xA0, 0x66, 0xD8, 0x08, 0xEA, 0x39, 0x78, 0xAB,
0x61, 0x4E, 0xC7, 0xD1, 0xA3, 0x1C, 0x9F, 0xCB,
0x19, 0x51, 0x15, 0x92, 0x23, 0xFD, 0x7D, 0x1D,
@@ -2780,13 +2780,13 @@ unsigned char table_127[256] = {
0xD2, 0xD0, 0xD6, 0x3B, 0xC2, 0x2F, 0xE1, 0x2B,
0x70, 0xF8, 0x17, 0xCD, 0xB0, 0xCC, 0x82, 0x2D };
-unsigned char table_128[32] = {
+static const unsigned char table_128[32] = {
0x1A, 0x1C, 0x09, 0x17, 0x1B, 0x0B, 0x16, 0x1E,
0x14, 0x0C, 0x12, 0x0E, 0x05, 0x03, 0x1F, 0x15,
0x19, 0x0D, 0x10, 0x13, 0x0A, 0x01, 0x00, 0x11,
0x02, 0x08, 0x0F, 0x18, 0x07, 0x04, 0x1D, 0x06 };
-unsigned char table_129[256] = {
+static const unsigned char table_129[256] = {
0x9D, 0x5F, 0xE8, 0x99, 0x57, 0x07, 0x16, 0xA6,
0x9F, 0xB6, 0xDE, 0xED, 0x2D, 0xB3, 0xC0, 0x8E,
0xCC, 0x49, 0xCE, 0xB0, 0x1B, 0xB1, 0x7A, 0xE0,
@@ -2820,19 +2820,19 @@ unsigned char table_129[256] = {
0x23, 0x73, 0x92, 0xB5, 0x01, 0x83, 0x82, 0xAA,
0x09, 0x45, 0x6B, 0xD7, 0x0B, 0x89, 0x4F, 0x2A };
-unsigned char table_130[32] = {
+static const unsigned char table_130[32] = {
0x07, 0x03, 0x15, 0x0B, 0x02, 0x11, 0x17, 0x14,
0x05, 0x10, 0x0A, 0x0F, 0x01, 0x1C, 0x1D, 0x0E,
0x12, 0x06, 0x18, 0x16, 0x1A, 0x09, 0x13, 0x19,
0x1B, 0x00, 0x08, 0x0D, 0x0C, 0x1E, 0x04, 0x1F };
-unsigned char table_131[32] = {
+static const unsigned char table_131[32] = {
0x1D, 0x13, 0x1B, 0x10, 0x07, 0x03, 0x0A, 0x02,
0x00, 0x0C, 0x0E, 0x0B, 0x0D, 0x18, 0x12, 0x1F,
0x1A, 0x04, 0x15, 0x11, 0x1E, 0x08, 0x1C, 0x14,
0x19, 0x05, 0x0F, 0x17, 0x06, 0x01, 0x09, 0x16 };
-unsigned char table_132[256] = {
+static const unsigned char table_132[256] = {
0x33, 0x8D, 0x45, 0x6F, 0xFF, 0xF5, 0xB6, 0x53,
0x3B, 0xF3, 0x07, 0xA4, 0x97, 0xEB, 0x6B, 0xA5,
0xD3, 0xDC, 0x7B, 0x79, 0x93, 0xE7, 0xF7, 0x67,
@@ -2866,7 +2866,7 @@ unsigned char table_132[256] = {
0x25, 0x96, 0x6C, 0x39, 0x82, 0xE6, 0x2C, 0x9B,
0xC4, 0x7F, 0xA0, 0xD8, 0xEF, 0x03, 0x70, 0xF6 };
-unsigned char table_133[256] = {
+static const unsigned char table_133[256] = {
0x02, 0xF0, 0xED, 0xC4, 0xE4, 0x67, 0x60, 0x8B,
0xF3, 0x77, 0x92, 0xE0, 0x85, 0x93, 0x1E, 0x8E,
0x9A, 0x38, 0x61, 0x20, 0xB7, 0x68, 0xE1, 0x5E,
@@ -2900,13 +2900,13 @@ unsigned char table_133[256] = {
0x4A, 0x2D, 0x8F, 0x4C, 0x97, 0x28, 0x3E, 0xE5,
0x5A, 0x35, 0xB0, 0xAE, 0x82, 0x79, 0x1D, 0x52 };
-unsigned char table_134[32] = {
+static const unsigned char table_134[32] = {
0x09, 0x0F, 0x10, 0x0C, 0x03, 0x15, 0x07, 0x17,
0x0E, 0x0B, 0x1D, 0x08, 0x19, 0x11, 0x00, 0x0A,
0x01, 0x06, 0x18, 0x16, 0x0D, 0x13, 0x14, 0x12,
0x02, 0x1B, 0x1A, 0x04, 0x05, 0x1F, 0x1C, 0x1E };
-unsigned char table_135[256] = {
+static const unsigned char table_135[256] = {
0x14, 0x34, 0xEA, 0x02, 0x2B, 0x5A, 0x10, 0x51,
0xF3, 0x8F, 0x28, 0xB2, 0x50, 0x8B, 0x01, 0xCC,
0x80, 0x15, 0x29, 0x42, 0xF4, 0x1D, 0xFB, 0xBB,
@@ -2940,7 +2940,7 @@ unsigned char table_135[256] = {
0x96, 0x4E, 0x08, 0xC6, 0x0B, 0xDF, 0x3A, 0xB0,
0x00, 0x63, 0xD9, 0xBE, 0xF2, 0x60, 0x25, 0x62 };
-unsigned char table_136[256] = {
+static const unsigned char table_136[256] = {
0xD3, 0x1A, 0x00, 0xED, 0x59, 0x24, 0xA3, 0xF2,
0xBA, 0x58, 0x4C, 0x5C, 0x75, 0x48, 0x98, 0xB0,
0xCF, 0xC3, 0xF7, 0x88, 0x70, 0xB3, 0x3D, 0x3E,
@@ -2974,31 +2974,31 @@ unsigned char table_136[256] = {
0x60, 0xD7, 0xE9, 0x17, 0xEB, 0x9C, 0x84, 0x0C,
0x93, 0x1D, 0x9B, 0x5B, 0x40, 0xEE, 0x42, 0x19 };
-unsigned char table_137[32] = {
+static const unsigned char table_137[32] = {
0x0F, 0x09, 0x02, 0x06, 0x18, 0x0B, 0x1E, 0x05,
0x11, 0x1D, 0x16, 0x01, 0x13, 0x10, 0x0E, 0x1A,
0x1B, 0x00, 0x0D, 0x08, 0x15, 0x14, 0x19, 0x17,
0x03, 0x1F, 0x0A, 0x12, 0x0C, 0x07, 0x04, 0x1C };
-unsigned char table_138[32] = {
+static const unsigned char table_138[32] = {
0x0D, 0x1C, 0x1F, 0x15, 0x0F, 0x14, 0x1B, 0x12,
0x09, 0x0B, 0x19, 0x07, 0x11, 0x16, 0x0C, 0x04,
0x13, 0x05, 0x1D, 0x03, 0x0E, 0x0A, 0x08, 0x1E,
0x01, 0x06, 0x18, 0x17, 0x10, 0x1A, 0x02, 0x00 };
-unsigned char table_139[32] = {
+static const unsigned char table_139[32] = {
0x05, 0x15, 0x1D, 0x02, 0x0F, 0x03, 0x17, 0x1A,
0x0A, 0x00, 0x1F, 0x12, 0x0E, 0x11, 0x1B, 0x13,
0x0B, 0x0D, 0x09, 0x18, 0x1E, 0x08, 0x14, 0x07,
0x0C, 0x04, 0x16, 0x19, 0x1C, 0x06, 0x10, 0x01 };
-unsigned char table_140[32] = {
+static const unsigned char table_140[32] = {
0x06, 0x1E, 0x0C, 0x11, 0x13, 0x08, 0x15, 0x01,
0x1D, 0x03, 0x0F, 0x19, 0x18, 0x04, 0x00, 0x14,
0x12, 0x1A, 0x0B, 0x0E, 0x02, 0x1B, 0x07, 0x05,
0x1F, 0x17, 0x09, 0x0A, 0x0D, 0x16, 0x10, 0x1C };
-unsigned char table_141[256] = {
+static const unsigned char table_141[256] = {
0xE1, 0x0A, 0x28, 0xCD, 0x8A, 0x1E, 0x26, 0x10,
0xC0, 0x6F, 0x06, 0x2C, 0xF8, 0x51, 0x6C, 0x8F,
0xA8, 0x8C, 0x41, 0xF4, 0xED, 0x36, 0xAC, 0x89,
@@ -3032,7 +3032,7 @@ unsigned char table_141[256] = {
0xD1, 0x48, 0x92, 0x1D, 0x52, 0x5E, 0x45, 0x70,
0x98, 0x54, 0xB8, 0xDC, 0x46, 0xDF, 0x87, 0xE5 };
-unsigned char table_142[256] = {
+static const unsigned char table_142[256] = {
0x90, 0x94, 0xBE, 0x14, 0x99, 0xEB, 0x45, 0x0F,
0x34, 0x4A, 0xE3, 0x79, 0xD2, 0x64, 0x4D, 0x69,
0x91, 0xDE, 0xB9, 0x1C, 0x59, 0x20, 0x6C, 0x0B,
@@ -3066,19 +3066,19 @@ unsigned char table_142[256] = {
0xBA, 0x7A, 0x76, 0x41, 0x50, 0x66, 0x05, 0x8E,
0xCC, 0x1E, 0x87, 0xD7, 0x01, 0x1F, 0x51, 0x95 };
-unsigned char table_143[32] = {
+static const unsigned char table_143[32] = {
0x0E, 0x16, 0x18, 0x11, 0x0C, 0x01, 0x12, 0x1F,
0x08, 0x15, 0x0A, 0x06, 0x1C, 0x1E, 0x02, 0x1A,
0x17, 0x03, 0x07, 0x13, 0x05, 0x19, 0x10, 0x0F,
0x0D, 0x14, 0x09, 0x0B, 0x1B, 0x00, 0x1D, 0x04 };
-unsigned char table_144[32] = {
+static const unsigned char table_144[32] = {
0x00, 0x1B, 0x17, 0x19, 0x1D, 0x11, 0x0D, 0x1A,
0x13, 0x03, 0x1E, 0x09, 0x10, 0x0E, 0x15, 0x05,
0x0B, 0x1C, 0x1F, 0x08, 0x0A, 0x06, 0x01, 0x0F,
0x16, 0x14, 0x02, 0x04, 0x07, 0x18, 0x12, 0x0C };
-unsigned char table_145[256] = {
+static const unsigned char table_145[256] = {
0xF9, 0x2C, 0x38, 0x74, 0xDA, 0x65, 0x85, 0x0E,
0xBA, 0x64, 0xDB, 0xE3, 0xB6, 0x8B, 0x0B, 0x5E,
0x01, 0x0F, 0x12, 0x8C, 0xD4, 0xCC, 0xB1, 0x7B,
@@ -3112,7 +3112,7 @@ unsigned char table_145[256] = {
0xED, 0x1A, 0x9E, 0x99, 0xEA, 0x40, 0x94, 0x4D,
0x69, 0xF6, 0xEF, 0xC2, 0xAD, 0x03, 0xB3, 0x1E };
-unsigned char table_146[256] = {
+static const unsigned char table_146[256] = {
0x1C, 0xF5, 0x16, 0xD2, 0xCC, 0xDC, 0x1E, 0x29,
0xE3, 0x17, 0x3B, 0x66, 0x6A, 0xF7, 0x03, 0xB2,
0x92, 0x45, 0x4D, 0xD6, 0x0C, 0x5E, 0xE6, 0x01,
@@ -3146,13 +3146,13 @@ unsigned char table_146[256] = {
0x4A, 0x9F, 0x3D, 0x31, 0x36, 0x5D, 0xA0, 0x2C,
0x7D, 0x96, 0x76, 0x99, 0xB5, 0x48, 0x98, 0x10 };
-unsigned char table_147[32] = {
+static const unsigned char table_147[32] = {
0x17, 0x07, 0x0D, 0x16, 0x00, 0x1B, 0x1F, 0x09,
0x10, 0x11, 0x14, 0x0A, 0x02, 0x06, 0x13, 0x0C,
0x08, 0x1E, 0x0F, 0x12, 0x05, 0x15, 0x19, 0x01,
0x1C, 0x1A, 0x03, 0x18, 0x04, 0x0B, 0x1D, 0x0E };
-unsigned char table_148[256] = {
+static const unsigned char table_148[256] = {
0xFB, 0x23, 0xBC, 0x5A, 0x8C, 0x02, 0x42, 0x3B,
0x95, 0x0C, 0x21, 0x0E, 0x14, 0xDF, 0x11, 0xC0,
0xDB, 0x5E, 0xD3, 0xEA, 0xCE, 0xB4, 0x32, 0x12,
@@ -3186,13 +3186,13 @@ unsigned char table_148[256] = {
0x40, 0x45, 0x9F, 0x44, 0x63, 0x35, 0x77, 0xFF,
0x09, 0x43, 0xBF, 0xD0, 0x55, 0xDD, 0x3F, 0x24 };
-unsigned char table_149[32] = {
+static const unsigned char table_149[32] = {
0x1B, 0x0B, 0x0C, 0x06, 0x1F, 0x17, 0x04, 0x1A,
0x1E, 0x02, 0x0F, 0x16, 0x0E, 0x09, 0x10, 0x01,
0x13, 0x19, 0x11, 0x00, 0x0A, 0x05, 0x03, 0x1C,
0x18, 0x1D, 0x14, 0x0D, 0x07, 0x08, 0x15, 0x12 };
-unsigned char table_150[256] = {
+static const unsigned char table_150[256] = {
0x57, 0xBC, 0x9D, 0x46, 0x14, 0xD0, 0x94, 0x95,
0x1B, 0x12, 0xB8, 0xD4, 0x53, 0x73, 0x83, 0xE6,
0x75, 0xE1, 0xD1, 0x0D, 0xDF, 0x23, 0x13, 0x40,
@@ -3226,7 +3226,7 @@ unsigned char table_150[256] = {
0xAA, 0x8A, 0xF2, 0x69, 0x39, 0x6F, 0x77, 0xDD,
0x97, 0xC9, 0xF3, 0x04, 0xD8, 0xF4, 0x80, 0x44 };
-unsigned char table_151[256] = {
+static const unsigned char table_151[256] = {
0x78, 0x6C, 0xC5, 0x0C, 0x2D, 0xA7, 0x97, 0x9C,
0x22, 0x76, 0x3E, 0x81, 0x51, 0x47, 0x59, 0x71,
0xB1, 0xA2, 0x4A, 0x3C, 0xB5, 0x16, 0x06, 0x95,
@@ -3260,19 +3260,19 @@ unsigned char table_151[256] = {
0x8B, 0x5D, 0xB0, 0xB7, 0xD9, 0x58, 0x2F, 0x08,
0x43, 0x3A, 0x53, 0x9E, 0x80, 0x88, 0x07, 0x9D };
-unsigned char table_152[32] = {
+static const unsigned char table_152[32] = {
0x02, 0x1A, 0x17, 0x1D, 0x01, 0x03, 0x13, 0x1E,
0x05, 0x18, 0x06, 0x0A, 0x0C, 0x04, 0x1B, 0x00,
0x1C, 0x09, 0x1F, 0x16, 0x07, 0x0F, 0x0B, 0x0E,
0x14, 0x12, 0x0D, 0x10, 0x19, 0x11, 0x08, 0x15 };
-unsigned char table_153[32] = {
+static const unsigned char table_153[32] = {
0x0E, 0x14, 0x12, 0x1E, 0x1C, 0x02, 0x06, 0x16,
0x18, 0x0D, 0x17, 0x0C, 0x1D, 0x11, 0x08, 0x19,
0x07, 0x0F, 0x13, 0x04, 0x03, 0x1B, 0x0B, 0x1F,
0x1A, 0x0A, 0x05, 0x10, 0x00, 0x01, 0x15, 0x09 };
-unsigned char table_154[256] = {
+static const unsigned char table_154[256] = {
0x27, 0x5A, 0x08, 0x5B, 0xF4, 0x39, 0x13, 0x6F,
0x67, 0xEA, 0x22, 0xCA, 0x5C, 0xCF, 0x18, 0x7C,
0x05, 0x87, 0x60, 0xCC, 0x40, 0xC6, 0xE8, 0x6D,
@@ -3306,7 +3306,7 @@ unsigned char table_154[256] = {
0xCB, 0xAA, 0xBF, 0x89, 0x1F, 0xA7, 0xBC, 0x9F,
0x53, 0xE1, 0xDD, 0x72, 0x95, 0x52, 0x34, 0xB5 };
-unsigned char table_155[256] = {
+static const unsigned char table_155[256] = {
0x75, 0x58, 0xC5, 0xA5, 0x83, 0x16, 0xF3, 0x7F,
0x94, 0xDE, 0xA0, 0xF6, 0xFD, 0x89, 0xA8, 0x06,
0x98, 0x01, 0xD9, 0x69, 0xB7, 0x0F, 0xEA, 0x73,
@@ -3340,7 +3340,7 @@ unsigned char table_155[256] = {
0xD0, 0xC4, 0xF7, 0x7B, 0x9E, 0xCB, 0xED, 0x0E,
0x8B, 0x33, 0xFC, 0xBB, 0x00, 0xA2, 0xDF, 0xDA };
-unsigned char table_156[256] = {
+static const unsigned char table_156[256] = {
0x31, 0x25, 0xB1, 0xD3, 0xAF, 0xAE, 0x84, 0x2C,
0x71, 0x5E, 0xD8, 0x80, 0x6F, 0x3E, 0x48, 0x86,
0xED, 0x54, 0x6A, 0xC3, 0xBC, 0xBF, 0x0E, 0xEA,
@@ -3374,13 +3374,13 @@ unsigned char table_156[256] = {
0x11, 0xC7, 0xB8, 0x4A, 0x33, 0xB0, 0x99, 0xE7,
0xF1, 0x68, 0xBE, 0x35, 0x40, 0x8C, 0xD4, 0x47 };
-unsigned char table_157[32] = {
+static const unsigned char table_157[32] = {
0x00, 0x0D, 0x03, 0x02, 0x11, 0x04, 0x18, 0x0B,
0x14, 0x1D, 0x1C, 0x13, 0x1B, 0x17, 0x10, 0x15,
0x01, 0x19, 0x07, 0x09, 0x1A, 0x16, 0x12, 0x1E,
0x08, 0x06, 0x0C, 0x0E, 0x1F, 0x0F, 0x0A, 0x05 };
-unsigned char table_158[256] = {
+static const unsigned char table_158[256] = {
0x68, 0x26, 0x80, 0x0B, 0xB8, 0xD5, 0x8C, 0xB7,
0x65, 0xEF, 0xBC, 0x94, 0x28, 0xB9, 0xB2, 0xD2,
0x92, 0xA4, 0x55, 0x27, 0xE0, 0x40, 0x6C, 0x41,
@@ -3414,7 +3414,7 @@ unsigned char table_158[256] = {
0xD1, 0x1F, 0x0A, 0x21, 0xA9, 0x6E, 0xC4, 0xBA,
0x9A, 0x57, 0xA2, 0x74, 0xC6, 0xFE, 0x9B, 0x58 };
-unsigned char table_159[256] = {
+static const unsigned char table_159[256] = {
0xE5, 0xBF, 0x84, 0x56, 0xD6, 0x43, 0x3E, 0xA5,
0x64, 0x87, 0x44, 0x63, 0x4A, 0x4C, 0x8D, 0x24,
0x1C, 0xDA, 0x89, 0x52, 0x80, 0x4F, 0xE4, 0xBC,
@@ -3448,7 +3448,7 @@ unsigned char table_159[256] = {
0xAA, 0x0E, 0x61, 0x5D, 0x95, 0x4E, 0xD7, 0x74,
0xCB, 0x9B, 0x13, 0x8F, 0xA4, 0x28, 0x23, 0x85 };
-unsigned char table_160[256] = {
+static const unsigned char table_160[256] = {
0x35, 0x44, 0x0E, 0x92, 0x75, 0x83, 0x9D, 0x53,
0xA5, 0x90, 0xF8, 0xF7, 0x54, 0x74, 0xDF, 0x3D,
0x5A, 0xAA, 0xC6, 0x26, 0x7A, 0xFC, 0x79, 0x6C,
@@ -3482,7 +3482,7 @@ unsigned char table_160[256] = {
0x57, 0x61, 0x81, 0xEF, 0x06, 0xDE, 0x48, 0x31,
0xBB, 0x2C, 0xE5, 0xC3, 0x67, 0xA1, 0x10, 0xB9 };
-unsigned char table_161[256] = {
+static const unsigned char table_161[256] = {
0x8F, 0x1A, 0x81, 0xA2, 0x2C, 0x56, 0x6D, 0xCD,
0x4A, 0x33, 0x50, 0xE9, 0xE0, 0x12, 0x5A, 0x43,
0x2D, 0x4F, 0xEA, 0x95, 0xFD, 0x49, 0xAB, 0xA3,
@@ -3516,7 +3516,7 @@ unsigned char table_161[256] = {
0x52, 0x2E, 0xA8, 0x60, 0x5E, 0x29, 0x21, 0x7E,
0xBE, 0x0A, 0x36, 0x41, 0xC0, 0x8C, 0xE4, 0xAA };
-unsigned char table_162[256] = {
+static const unsigned char table_162[256] = {
0xF7, 0x1B, 0xC0, 0x31, 0x5A, 0x23, 0xEA, 0xE9,
0xFB, 0x14, 0x6A, 0xE8, 0x04, 0x65, 0x5B, 0x2C,
0x41, 0xD9, 0xEB, 0xE4, 0x8D, 0x1D, 0xCA, 0x8F,
@@ -3550,19 +3550,19 @@ unsigned char table_162[256] = {
0xD4, 0x02, 0x8E, 0x37, 0xF4, 0xB3, 0xA2, 0x53,
0x38, 0xCC, 0x58, 0x44, 0xBF, 0x93, 0x5D, 0xC7 };
-unsigned char table_163[32] = {
+static const unsigned char table_163[32] = {
0x1B, 0x14, 0x12, 0x15, 0x11, 0x1D, 0x17, 0x19,
0x10, 0x09, 0x08, 0x06, 0x1A, 0x16, 0x07, 0x13,
0x1F, 0x0B, 0x1C, 0x05, 0x0E, 0x00, 0x18, 0x0A,
0x04, 0x01, 0x03, 0x0C, 0x0D, 0x1E, 0x02, 0x0F };
-unsigned char table_164[32] = {
+static const unsigned char table_164[32] = {
0x15, 0x00, 0x10, 0x0B, 0x1D, 0x0A, 0x06, 0x1C,
0x0D, 0x1F, 0x17, 0x0F, 0x03, 0x14, 0x13, 0x12,
0x1B, 0x18, 0x08, 0x1E, 0x16, 0x09, 0x1A, 0x04,
0x02, 0x0C, 0x0E, 0x01, 0x07, 0x19, 0x11, 0x05 };
-unsigned char table_165[256] = {
+static const unsigned char table_165[256] = {
0x98, 0xF5, 0x1D, 0xFB, 0x13, 0x20, 0x41, 0xA3,
0xE3, 0x76, 0x49, 0x7E, 0x60, 0xD8, 0x68, 0x30,
0x88, 0x45, 0xD5, 0x77, 0x00, 0xC3, 0x09, 0x31,
@@ -3596,7 +3596,7 @@ unsigned char table_165[256] = {
0x0B, 0x78, 0xF1, 0xE6, 0x59, 0x27, 0xC2, 0xE0,
0x1A, 0x26, 0xCC, 0xB1, 0xF9, 0xFA, 0x97, 0xE9 };
-unsigned char table_166[256] = {
+static const unsigned char table_166[256] = {
0xCB, 0xEA, 0x2A, 0x36, 0x6D, 0x93, 0x4E, 0xD5,
0xBC, 0x6A, 0xD4, 0x68, 0xF7, 0x18, 0xAB, 0x8B,
0x66, 0x95, 0x94, 0x64, 0xB7, 0x00, 0x4D, 0x97,
@@ -3630,7 +3630,7 @@ unsigned char table_166[256] = {
0x20, 0x31, 0x9B, 0xEC, 0xB4, 0xCF, 0x54, 0x22,
0x1C, 0xE0, 0x51, 0x16, 0x43, 0x07, 0x0A, 0x3F };
-unsigned char table_167[256] = {
+static const unsigned char table_167[256] = {
0x91, 0xEA, 0x4F, 0x6A, 0x6E, 0x2D, 0x27, 0x22,
0x44, 0xA5, 0x6D, 0xE3, 0x45, 0x06, 0xE2, 0x87,
0x9A, 0xC9, 0x2C, 0x4A, 0x93, 0x6F, 0x00, 0xEB,
@@ -3664,7 +3664,7 @@ unsigned char table_167[256] = {
0xB6, 0xAB, 0x89, 0xBD, 0x8F, 0xEF, 0x7D, 0xB2,
0x14, 0x15, 0x25, 0x32, 0x6C, 0x69, 0x1A, 0xCF };
-unsigned char table_168[256] = {
+static const unsigned char table_168[256] = {
0x28, 0xEE, 0xB1, 0xFD, 0xB3, 0xEF, 0x36, 0x8E,
0x85, 0x5D, 0x1C, 0x53, 0x1E, 0xDA, 0xBA, 0x3C,
0xA8, 0x90, 0x99, 0x49, 0x45, 0xE0, 0x27, 0x8D,
@@ -3698,7 +3698,7 @@ unsigned char table_168[256] = {
0xEB, 0xF7, 0x71, 0x39, 0x30, 0xA5, 0x87, 0xD2,
0x66, 0x2E, 0x08, 0x32, 0x4C, 0x33, 0x7E, 0xE1 };
-unsigned char table_169[256] = {
+static const unsigned char table_169[256] = {
0xA4, 0x31, 0xA9, 0x3F, 0x13, 0x4D, 0x1B, 0x29,
0x73, 0x43, 0xF1, 0xE7, 0x9C, 0xC2, 0xF6, 0xCD,
0xA1, 0x94, 0x0D, 0x27, 0xFE, 0x7B, 0x9B, 0x0B,
@@ -3732,7 +3732,7 @@ unsigned char table_169[256] = {
0x6F, 0x9A, 0x65, 0xB9, 0x41, 0xBE, 0x8A, 0xA2,
0x6B, 0x0A, 0x59, 0x9E, 0x5E, 0x38, 0x45, 0x80 };
-unsigned char table_170[256] = {
+static const unsigned char table_170[256] = {
0xE3, 0x00, 0x99, 0x03, 0xF6, 0xDD, 0xD1, 0x41,
0x58, 0x7E, 0xD9, 0x46, 0x04, 0xAF, 0x5C, 0x43,
0xDE, 0x5E, 0xFC, 0x97, 0x3D, 0x68, 0xC8, 0x37,
@@ -3766,43 +3766,43 @@ unsigned char table_170[256] = {
0x8C, 0x3E, 0x61, 0x6E, 0xE9, 0x63, 0xF9, 0xEC,
0x48, 0x30, 0x87, 0x83, 0x12, 0x4D, 0x65, 0xDF };
-unsigned char table_171[32] = {
+static const unsigned char table_171[32] = {
0x07, 0x06, 0x11, 0x08, 0x0C, 0x1F, 0x19, 0x02,
0x14, 0x04, 0x0D, 0x18, 0x1A, 0x05, 0x17, 0x13,
0x1C, 0x1B, 0x15, 0x03, 0x01, 0x0F, 0x16, 0x1E,
0x1D, 0x10, 0x00, 0x12, 0x0B, 0x0E, 0x09, 0x0A };
-unsigned char table_172[32] = {
+static const unsigned char table_172[32] = {
0x11, 0x01, 0x1F, 0x06, 0x1A, 0x04, 0x02, 0x09,
0x05, 0x0D, 0x0B, 0x18, 0x0E, 0x12, 0x1B, 0x17,
0x07, 0x08, 0x1D, 0x1E, 0x14, 0x19, 0x16, 0x15,
0x03, 0x0C, 0x00, 0x10, 0x0A, 0x1C, 0x0F, 0x13 };
-unsigned char table_173[32] = {
+static const unsigned char table_173[32] = {
0x1F, 0x0B, 0x13, 0x00, 0x16, 0x15, 0x14, 0x0A,
0x1D, 0x05, 0x1E, 0x1A, 0x0F, 0x04, 0x0E, 0x01,
0x19, 0x07, 0x02, 0x12, 0x0C, 0x17, 0x08, 0x09,
0x03, 0x11, 0x18, 0x10, 0x1C, 0x1B, 0x06, 0x0D };
-unsigned char table_174[32] = {
+static const unsigned char table_174[32] = {
0x02, 0x1B, 0x0C, 0x17, 0x1F, 0x05, 0x15, 0x1E,
0x16, 0x09, 0x1A, 0x12, 0x0F, 0x1C, 0x18, 0x0A,
0x19, 0x10, 0x0D, 0x13, 0x04, 0x11, 0x08, 0x14,
0x1D, 0x0E, 0x06, 0x00, 0x01, 0x07, 0x0B, 0x03 };
-unsigned char table_175[32] = {
+static const unsigned char table_175[32] = {
0x00, 0x06, 0x0B, 0x08, 0x0C, 0x04, 0x1A, 0x1C,
0x05, 0x1E, 0x14, 0x03, 0x0A, 0x18, 0x12, 0x1D,
0x16, 0x1F, 0x07, 0x09, 0x0F, 0x0E, 0x17, 0x13,
0x11, 0x19, 0x10, 0x0D, 0x1B, 0x02, 0x01, 0x15 };
-unsigned char table_176[32] = {
+static const unsigned char table_176[32] = {
0x12, 0x03, 0x1A, 0x15, 0x04, 0x19, 0x0B, 0x1B,
0x17, 0x1E, 0x0D, 0x05, 0x11, 0x14, 0x1C, 0x00,
0x18, 0x10, 0x0A, 0x06, 0x0E, 0x08, 0x02, 0x07,
0x13, 0x09, 0x16, 0x1D, 0x0F, 0x0C, 0x01, 0x1F };
-unsigned char table_177[256] = {
+static const unsigned char table_177[256] = {
0x5E, 0x4D, 0x76, 0xFE, 0xB5, 0x50, 0x83, 0x23,
0x72, 0xDD, 0x93, 0x08, 0x69, 0xAD, 0xEC, 0x3B,
0x0B, 0x9A, 0x36, 0xC9, 0xCA, 0xBE, 0xF7, 0x30,
@@ -3836,7 +3836,7 @@ unsigned char table_177[256] = {
0xB4, 0x67, 0xA9, 0x81, 0xB1, 0x12, 0xD3, 0x85,
0x5A, 0xC5, 0xE0, 0x58, 0x41, 0x4E, 0x4A, 0xAF };
-unsigned char table_178[256] = {
+static const unsigned char table_178[256] = {
0x33, 0xBA, 0x98, 0xDA, 0x07, 0x2C, 0x22, 0x9B,
0xE0, 0xED, 0xB7, 0xA1, 0x93, 0xEB, 0xDC, 0x49,
0xDF, 0xE1, 0x6C, 0xC2, 0x64, 0x52, 0xD0, 0x8F,
@@ -3870,7 +3870,7 @@ unsigned char table_178[256] = {
0x10, 0x23, 0xB6, 0xF3, 0x19, 0x30, 0x20, 0x4D,
0x95, 0x9E, 0xBF, 0xEF, 0xF8, 0x45, 0x00, 0xB4 };
-unsigned char table_179[256] = {
+static const unsigned char table_179[256] = {
0x50, 0x3D, 0x41, 0x42, 0x06, 0x5B, 0xD6, 0x34,
0x9D, 0x3C, 0x7B, 0x14, 0xE2, 0x9B, 0x80, 0x15,
0x51, 0x01, 0x6A, 0x30, 0xD7, 0xFC, 0x61, 0x4B,
@@ -3904,7 +3904,7 @@ unsigned char table_179[256] = {
0x5D, 0xAC, 0x1A, 0x36, 0x63, 0x99, 0x31, 0xF3,
0x2A, 0x04, 0x18, 0xA5, 0xA2, 0x6E, 0x07, 0xE3 };
-unsigned char table_180[256] = {
+static const unsigned char table_180[256] = {
0xDA, 0xCC, 0x72, 0xA6, 0xE7, 0x07, 0xFD, 0x25,
0x92, 0x39, 0x49, 0x02, 0xD6, 0x09, 0xA8, 0x65,
0x2E, 0x6C, 0xA1, 0x19, 0xBF, 0x21, 0x11, 0xC7,
@@ -3938,7 +3938,7 @@ unsigned char table_180[256] = {
0x6F, 0x20, 0x54, 0xFB, 0x93, 0xFC, 0x6B, 0x38,
0x62, 0x4F, 0xCF, 0xB2, 0xC2, 0x59, 0xDB, 0x67 };
-unsigned char table_181[256] = {
+static const unsigned char table_181[256] = {
0x2B, 0xED, 0x14, 0x05, 0x80, 0xCC, 0x5A, 0xF8,
0x43, 0xB7, 0x86, 0xC6, 0xEE, 0xA6, 0xD7, 0xD6,
0xA0, 0xC4, 0x21, 0x34, 0xB1, 0x8C, 0xF9, 0xF4,
@@ -3972,7 +3972,7 @@ unsigned char table_181[256] = {
0x85, 0xA8, 0x95, 0x6D, 0x16, 0x78, 0xB5, 0xF6,
0x32, 0x24, 0x7D, 0x9B, 0xD2, 0x83, 0x35, 0xCD };
-unsigned char table_182[256] = {
+static const unsigned char table_182[256] = {
0x06, 0x7F, 0x66, 0xB5, 0xBA, 0x1E, 0xFD, 0x51,
0x81, 0x8D, 0x28, 0xA3, 0x15, 0x37, 0xDC, 0x58,
0xE6, 0x3D, 0xB4, 0xB9, 0x2E, 0xA0, 0x2F, 0xC4,
@@ -4006,19 +4006,19 @@ unsigned char table_182[256] = {
0xA4, 0xE2, 0x45, 0x8F, 0x21, 0xE0, 0x49, 0x22,
0x7B, 0x17, 0x0B, 0x0A, 0x41, 0x03, 0xD4, 0x4B };
-unsigned char table_183[32] = {
+static const unsigned char table_183[32] = {
0x1E, 0x1B, 0x11, 0x07, 0x08, 0x06, 0x18, 0x17,
0x0D, 0x0F, 0x12, 0x03, 0x1D, 0x04, 0x0A, 0x1A,
0x0C, 0x13, 0x14, 0x1F, 0x0B, 0x19, 0x10, 0x01,
0x16, 0x05, 0x1C, 0x0E, 0x02, 0x00, 0x09, 0x15 };
-unsigned char table_184[32] = {
+static const unsigned char table_184[32] = {
0x0F, 0x1D, 0x17, 0x16, 0x0D, 0x05, 0x13, 0x1F,
0x1B, 0x09, 0x1C, 0x1E, 0x15, 0x01, 0x06, 0x08,
0x0C, 0x10, 0x0B, 0x02, 0x04, 0x0A, 0x07, 0x1A,
0x18, 0x0E, 0x03, 0x11, 0x12, 0x14, 0x19, 0x00 };
-unsigned char table_185[256] = {
+static const unsigned char table_185[256] = {
0xA5, 0xEE, 0x2E, 0x28, 0xA7, 0xAC, 0xD9, 0xB2,
0x6E, 0x04, 0xB4, 0x03, 0xE8, 0x92, 0x5F, 0x4D,
0x73, 0x20, 0x71, 0xE0, 0x43, 0x53, 0x3F, 0xF8,
@@ -4052,7 +4052,7 @@ unsigned char table_185[256] = {
0x60, 0xCA, 0x26, 0xFD, 0x33, 0x46, 0x21, 0xBB,
0x2B, 0xC5, 0x98, 0x18, 0x66, 0x15, 0x9C, 0xBC };
-unsigned char table_186[256] = {
+static const unsigned char table_186[256] = {
0xB7, 0xFA, 0x03, 0x7C, 0x76, 0x43, 0xA7, 0x15,
0x4B, 0x4F, 0x04, 0xAA, 0x4E, 0xD2, 0x52, 0xC8,
0x79, 0x16, 0xF6, 0x61, 0x01, 0x5D, 0xD6, 0x47,
@@ -4086,13 +4086,13 @@ unsigned char table_186[256] = {
0x64, 0x82, 0xC6, 0x05, 0xD8, 0xAC, 0x99, 0x9F,
0x11, 0x3B, 0x94, 0xE8, 0x7D, 0x7B, 0xD9, 0x5A };
-unsigned char table_187[32] = {
+static const unsigned char table_187[32] = {
0x0F, 0x04, 0x1D, 0x1B, 0x15, 0x10, 0x01, 0x0B,
0x00, 0x17, 0x13, 0x07, 0x1E, 0x1F, 0x08, 0x0A,
0x19, 0x09, 0x05, 0x06, 0x0C, 0x1A, 0x14, 0x16,
0x0E, 0x18, 0x03, 0x1C, 0x12, 0x11, 0x0D, 0x02 };
-struct yahoo_fn yahoo_fntable[5][96] =
+static const struct yahoo_fn yahoo_fntable[5][96] =
{{{ IDENT, 0, 0 },
{ IDENT, 0, 0 },
{ IDENT, 0, 0 },
@@ -4581,7 +4581,7 @@ struct yahoo_fn yahoo_fntable[5][96] =
int yahoo_xfrm( int table, int depth, int seed )
{
- struct yahoo_fn *xfrm;
+ const struct yahoo_fn *xfrm;
int i, j, z;
unsigned int n = seed;
unsigned char *arg;
diff --git a/protocols/yahoo/yahoo_util.c b/protocols/yahoo/yahoo_util.c
index 3c99cf44..7babfa49 100644
--- a/protocols/yahoo/yahoo_util.c
+++ b/protocols/yahoo/yahoo_util.c
@@ -51,56 +51,6 @@ char * y_string_append(char * string, char * append)
return new_string;
}
-char * y_str_to_utf8(const char *in)
-{
- unsigned int n, i = 0;
- char *result = NULL;
-
- if(in == NULL || *in == '\0')
- return "";
-
- result = y_new(char, strlen(in) * 2 + 1);
-
- /* convert a string to UTF-8 Format */
- for (n = 0; n < strlen(in); n++) {
- unsigned char c = (unsigned char)in[n];
-
- if (c < 128) {
- result[i++] = (char) c;
- } else {
- result[i++] = (char) ((c >> 6) | 192);
- result[i++] = (char) ((c & 63) | 128);
- }
- }
- result[i] = '\0';
- return result;
-}
-
-char * y_utf8_to_str(const char *in)
-{
- int i = 0;
- unsigned int n;
- char *result = NULL;
-
- if(in == NULL || *in == '\0')
- return "";
-
- result = y_new(char, strlen(in) + 1);
-
- /* convert a string from UTF-8 Format */
- for (n = 0; n < strlen(in); n++) {
- unsigned char c = in[n];
-
- if (c < 128) {
- result[i++] = (char) c;
- } else {
- result[i++] = (c << 6) | (in[++n] & 63);
- }
- }
- result[i] = '\0';
- return result;
-}
-
#if !HAVE_GLIB
void y_strfreev(char ** vector)