linsmith-0.99.21/ 0000755 0000000 0000000 00000000000 11541717760 010503 5 0000000 0000000 linsmith-0.99.21/NOTES 0000644 0000000 0000000 00000002033 11053415570 011224 0000000 0000000 2009/07/10 v0.99.1
The main feature in this release is the replacement of the bitmap
background of the on-screen chart by a vector map. This vastly improves
the quality of the chart when zooming.
To improve the aspect of the chart, you will probably want to edit
the default colors of the screen chart in 'Preferences'. Though I'm
sure this is a matter of personal taste, these are the colors I've
used for the screen shots and the manual (on the 'Screen' tab of
Preferences):
R-lines and X-lines 'Normal': Hue 30, Saturation 30, Value 100
'Bold': Hue 30, Saturation 45, Value 100
Background color: Hue 58, Saturation 13, Value 100
The initial size of the vector chart can be set on the same Preferences
page. 200 pixels will almost fill the space of the startup screen.
Note: The font definition is not used yet!
It is also possible to define the font and font size of the monospaced
characters below the chart and on the Results page. The original, default
values, were a little 'light'.
lsm@qqx.org linsmith-0.99.21/datafiles/ 0000755 0000000 0000000 00000000000 11541717760 012437 5 0000000 0000000 linsmith-0.99.21/datafiles/6-5.load 0000644 0000000 0000000 00000000311 10060773757 013525 0000000 0000000
linsmith-0.99.21/datafiles/6-6.circ 0000644 0000000 0000000 00000001675 10334376302 013532 0000000 0000000
1
1
0
4627.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0
0
0
0.000000
723.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
5
1
0
13200.000000
0.000000
100.000000
0.660000
0.000000
0.000000
0.000000
0.000000
linsmith-0.99.21/datafiles/6-6.load 0000644 0000000 0000000 00000000771 10334376270 013531 0000000 0000000
linsmith-0.99.21/datafiles/6-1.load 0000644 0000000 0000000 00000000306 10055546400 013510 0000000 0000000
linsmith-0.99.21/datafiles/6-4.circ 0000644 0000000 0000000 00000002333 10334271346 013522 0000000 0000000
0
0
0
0.000000
588.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0
1
0
0.000000
1274.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
1
0
0
13000.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0
0
0
0.000000
150.500000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
linsmith-0.99.21/datafiles/6-4.load 0000644 0000000 0000000 00000000533 10055721373 013521 0000000 0000000
linsmith-0.99.21/datafiles/conv0809 0000755 0000000 0000000 00000002732 10240517025 013562 0000000 0000000 #!/usr/bin/tclsh
set el_filt {<([a-zA-Z0-9]+)>([^<]+)([a-zA-Z0-9]+)>}
proc save_comp {} {
global outf elem
if {$elem(element) == 0} { ;# 'Discrete'
if {$elem(iscap) == 0} { ;# Inductance
puts $outf " 0"
puts $outf " $elem(val)"
} else { ;# Capacitor
puts $outf " 1"
puts $outf " $elem(val)"
}
} else {
puts $outf " [expr $elem(element)+3]"
puts $outf " $elem(val)"
}
puts $outf " [expr $elem(connection) % 256]"
foreach typ {useloss z0 vf loss1 mhz1 loss2 mhz2} {
puts $outf " <$typ>$elem($typ)$typ>"
}
}
if {$argc != 2} {
puts "Converts old (0.8.x) circuit files into the new (0.9.x) format."
puts "Usage:"
puts " conv0809 oldfile newfile"
puts ""
exit
}
set infn [lindex $argv 0]
set outfn [lindex $argv 1]
set inf [open $infn r]
set outf [open $outfn w]
set mode COPY
while {![eof $inf]} {
set line [gets $inf]
switch $mode {
COPY {
puts $outf $line
if {[regexp "" $line]} {
set mode ELEM
}
}
ELEM {
if {[regexp $el_filt $line dummy entry val exit]} {
if {$entry == $exit} {
set elem($entry) $val
}
} else {
if {[regexp "" $line]} {
save_comp
puts $outf $line
set mode COPY
}
}
}
}
}
close $inf
close $outf
linsmith-0.99.21/datafiles/6-1.circ 0000644 0000000 0000000 00000001232 10334271725 013515 0000000 0000000
1
1
0
1630.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
1
0
0
1255.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
linsmith-0.99.21/datafiles/6-5.circ 0000644 0000000 0000000 00000001650 11010642535 013516 0000000 0000000
1
0
0
467.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
1
1
0
272.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
6
0
0
853.000000
0.000000
50.000000
0.660000
0.000000
0.000000
0.000000
0.000000
linsmith-0.99.21/datafiles/nb_40.load 0000644 0000000 0000000 00000001013 10420072645 014104 0000000 0000000
linsmith-0.99.21/src/ 0000755 0000000 0000000 00000000000 11541717760 011272 5 0000000 0000000 linsmith-0.99.21/src/misc.c 0000644 0000000 0000000 00000055722 11200614725 012311 0000000 0000000 /*
* aux.c - auxiliary routines, mainly gp screen management
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#include "support.h"
#include "callbacks.h"
#include "main.h"
#include "global.h"
#include "element.h"
#include "misc.h"
#include "pixmaps.inc"
#include "remote.h"
char *authors[] = {prog_author, NULL},
run_bff[200];
static int scale_timer_id = -1;
enum {ENTRY_VALID, ENTRY_INVALID, ENTRY_SET};
typedef struct {
char *name;
double z0, vf, db1, mhz1, db2, mhz2;
} cabletable_entry;
cabletable_entry cabletable[] = {
{N_("RG-5/U"), 52.5, 0.659, 0.77, 10.0, 2.90, 100.0},
{N_("RG-5B/U"), 50.0, 0.659, 0.66, 10.0, 2.40, 100.0},
{N_("RG-6A/U"), 75.0, 0.659, 0.78, 10.0, 2.90, 100.0},
{N_("RG-6 Foam"), 75.0, 0.780, 5.30, 50.0, 16.20, 500.0},
{N_("RG-8A/U"), 50.0, 0.659, 0.55, 10.0, 2.00, 100.0},
{N_("RG-8 foam"), 50.0, 0.800, 1.70, 100.0, 6.0, 1000.0},
{N_("RG-9/U"), 51.0, 0.659, 0.57, 10.0, 2.00, 100.0},
{N_("RG-9B/U"), 50.0, 0.659, 0.61, 10.0, 2.10, 100.0},
{N_("RG-10A/U"), 50.0, 0.659, 0.55, 10.0, 2.00, 100.0},
{N_("RG-11A/U"), 75.0, 0.660, 0.70, 10.0, 2.30, 100.0},
{N_("RG-11 foam"), 75.0, 0.780, 3.30, 50.0, 12.10, 500.0},
{N_("RG-12A/U"), 75.0, 0.659, 0.66, 10.0, 2.30, 100.0},
{N_("RG-13A/U"), 75.0, 0.659, 0.66, 10.0, 2.30, 100.0},
{N_("RG-14A/U"), 50.0, 0.659, 0.41, 10.0, 1.40, 100.0},
{N_("RG-16A/U"), 52.0, 0.670, 0.40, 10.0, 1.20, 100.0},
{N_("RG-17A/U"), 50.0, 0.659, 0.23, 10.0, 0.80, 100.0},
{N_("RG-18A/U"), 50.0, 0.659, 0.23, 10.0, 0.80, 100.0},
{N_("RG-19A/U"), 50.0, 0.659, 0.17, 10.0, 0.68, 100.0},
{N_("RG-20A/U"), 50.0, 0.659, 0.17, 10.0, 0.68, 100.0},
{N_("RG-21A/U"), 50.0, 0.659, 4.40, 10.0, 13.00, 100.0},
{N_("RG-29/U"), 53.5, 0.659, 1.20, 10.0, 4.40, 100.0},
{N_("RG-34A/U"), 75.0, 0.659, 0.29, 10.0, 1.30, 100.0},
{N_("RG-34B/U"), 75.0, 0.660, 0.30, 10.0, 1.40, 100.0},
{N_("RG-35A/U"), 75.0, 0.659, 0.24, 10.0, 0.85, 100.0},
{N_("RG-54A/U"), 58.0, 0.659, 0.74, 10.0, 3.10, 100.0},
{N_("RG-55B/U"), 53.5, 0.659, 1.30, 10.0, 4.80, 100.0},
{N_("RG-55A/U"), 50.0, 0.659, 1.30, 10.0, 4.80, 100.0},
{N_("RG-58/U"), 53.5, 0.660, 1.25, 10.0, 4.65, 100.0},
{N_("RG-58A/U"), 53.5, 0.659, 1.25, 10.0, 4.65, 100.0},
{N_("RG-58C/U"), 50.0, 0.659, 1.40, 10.0, 4.90, 100.0},
{N_("RG-58 foam"), 53.5, 0.790, 3.80, 100.0, 6.0, 300.0},
{N_("RG-59A/U"), 75.0, 0.659, 1.10, 10.0, 3.40, 100.0},
{N_("RG-59B/U"), 75.0, 0.660, 1.10, 10.0, 3.40, 100.0},
{N_("RG-59 foam"), 75.0, 0.790, 3.80, 100.0, 6.0, 300.0},
{N_("RG-62A/U"), 93.0, 0.840, 0.85, 10.0, 2.70, 100.0},
{N_("RG-74A/U"), 50.0, 0.659, 0.38, 10.0, 1.50, 100.0},
{N_("RG-83/U"), 35.0, 0.660, 0.80, 10.0, 2.80, 100.0},
{N_("RG-174A/"), 50.0, 0.660, 3.40, 10.0, 10.60, 100.0},
{N_("RG-213/U"), 50.0, 0.660, 0.60, 10.0, 1.90, 100.0},
{N_("RG-218/U"), 50.0, 0.660, 0.20, 10.0, 1.00, 100.0},
{N_("RG-220/U"), 50.0, 0.660, 0.20, 10.0, 0.70, 100.0},
{N_("UR-43"), 52.0, 0.660, 1.30, 10.0, 4.3, 100.0},
{N_("UR-57"), 75.0, 0.660, 0.60, 10.0, 1.9, 100.0},
{N_("UR-63"), 75.0, 0.960, 0.15, 10.0, 0.5, 100.0},
{N_("UR-67"), 50.0, 0.660, 0.60, 10.0, 2.0, 100.0},
{N_("UR-70"), 75.0, 0.660, 1.50, 10.0, 4.9, 100.0},
{N_("UR-74"), 51.0, 0.660, 0.30, 10.0, 1.0, 100.0},
{N_("UR-76"), 51.0, 0.660, 1.60, 10.0, 5.3, 100.0},
{N_("UR-77"), 75.0, 0.660, 0.30, 10.0, 1.0, 100.0},
{N_("UR-79"), 50.0, 0.960, 0.16, 10.0, 0.5, 100.0},
{N_("UR-83"), 50.0, 0.960, 0.25, 10.0, 0.8, 100.0},
{N_("UR-85"), 75.0, 0.960, 0.20, 10.0, 0.7, 100.0},
{N_("UR-90"), 75.0, 0.660, 1.10, 10.0, 3.5, 100.0},
{N_("UR-95"), 50.0, 0.660, 2.60, 10.0, 8.2, 100.0},
{N_("Belden 8240"), 50.0, 0.660, 4.90, 100.0, 20.0, 1000.0},
{N_("Belden 8267"), 50.0, 0.660, 2.20, 100.0, 8.0, 1000.0},
{N_("Belden 8208"), 50.0, 0.660, 0.00, 0.0, 8.0, 1000.0},
{N_("Belden 9258"), 50.0, 0.780, 3.70, 100.0, 12.8, 1000.0},
{N_("Belden 9880"), 50.0, 0.820, 1.30, 100.0, 4.5, 1000.0},
{N_("Belden 9913"), 50.0, 0.820, 1.30, 100.0, 4.5, 1000.0},
{N_("Belden 9914"), 50.0, 0.660, 0.00, 0.0, 9.0, 1000.0}
};
#define ctable_len (sizeof(cabletable)/sizeof(cabletable_entry))
typedef struct {
char *title;
int width;
} cable_col;
cable_col cablecol[] = {
{"Cable type", 120},
{"Zo.", 40},
{"Vf", 40},
{"dB @", 50},
{"MHz", 60},
{"dB @", 50},
{"MHz", 60}
};
#define cablecol_len (sizeof(cablecol)/sizeof(cable_col))
char *stub_entries[] = {
"comp_stub_vf_entry",
"comp_stub_l1_entry",
"comp_stub_f1_entry",
"comp_stub_l2_entry",
"comp_stub_f2_entry"
};
char *line_entries[] = {
"comp_line_vf_entry",
"comp_line_l1_entry",
"comp_line_f1_entry",
"comp_line_l2_entry",
"comp_line_f2_entry"
};
// Scale/entry pair definitions
typedef struct {
char *name, nrdec;
double *valdst;
GtkWidget *scale, *entry;
} scale_handler;
scale_handler sc_handler[] = {
{"ind_val", 2, &act_el.val1}, // SEP_IND_VAL
{"cap_val", 2, &act_el.val2}, // SEP_CAP_VAL
{"stub", 1, &act_el.val1}, // SEP_STUB_VAL
{"stub_z0", 1, &act_el.z0}, // SEP_STUB_Z0
{"line", 1, &act_el.val1}, // SEP_LINE_VAL
{"line_z0", 1, &act_el.z0}, // SEP_LINE_Z0
{"xform", 2, &act_el.val1} // SEP_XFORM_VAL
};
#define nr_sc_handlers (sizeof(sc_handler)/sizeof(scale_handler))
typedef struct {
char *name; // Shorthand name (will be amended)
const guint8 *def; // Pointer to the pixmap definition
int size, // Size of the pixmap
page, // Components: Definition page
id; // Temp: Callback id
GtkWidget *wdg; // Temp: The widget created
GdkPixbuf *pxb; // Temp: The pixbuf created
} toggle_button_def;
/*
* IMPORTANT: The definitions should be in the same order as the
* type definitions for connection type and element type!
*/
// Name Icon definition Icon def size
toggle_button_def conn_btn[] = {
{"series", comp_series_def, sizeof(comp_series_def)},
{"parallel", comp_parallel_def, sizeof(comp_parallel_def)},
{"empty", comp_empty_def, sizeof(comp_empty_def)}
};
#define conn_btn_len (sizeof(conn_btn)/sizeof(toggle_button_def)-1)
// Name Icon definition Icon def size page
toggle_button_def type_btn[] = {
{"discr_c", comp_cap_def, sizeof(comp_cap_def), 0},
{"discr_l", comp_ind_def, sizeof(comp_ind_def), 0},
{"discr_parlc", comp_lcpar_def, sizeof(comp_lcpar_def), 0},
{"discr_serlc", comp_lcser_def, sizeof(comp_lcser_def), 0},
{"ostub", comp_ostub_def, sizeof(comp_ostub_def), 1},
{"sstub", comp_sstub_def, sizeof(comp_sstub_def), 1},
{"line", comp_line_def, sizeof(comp_line_def), 2},
{"xform", comp_xform_def, sizeof(comp_xform_def), 3},
{"zy", comp_zy_def, sizeof(comp_zy_def), 4},
{"empty", comp_empty_def, sizeof(comp_empty_def), 9}
};
#define type_btn_len (sizeof(type_btn)/sizeof(toggle_button_def)-1)
int
ok_cancel_dialog(char *ttl, char *msg)
{
GtkWidget *dlg, *lbl;
dlg = gnome_dialog_new(ttl, _("Ok"), _("Cancel"), NULL);
gtk_window_set_position(GTK_WINDOW(dlg), GTK_WIN_POS_CENTER);
lbl = gtk_label_new(msg);
gtk_widget_show(lbl);
gtk_box_pack_start(GTK_BOX(GNOME_DIALOG(dlg)->vbox),
lbl, TRUE, TRUE, 0);
return gnome_dialog_run_and_close(GNOME_DIALOG(dlg));
}
int
ok_dialog(char *ttl, char *msg)
{
GtkWidget *dlg, *lbl;
dlg = gnome_dialog_new(ttl, _("Ok"), NULL);
gtk_window_set_position(GTK_WINDOW(dlg), GTK_WIN_POS_CENTER);
lbl = gtk_label_new(msg);
gtk_widget_show(lbl);
gtk_box_pack_start(GTK_BOX(GNOME_DIALOG(dlg)->vbox),
lbl, TRUE, TRUE, 0);
return gnome_dialog_run_and_close(GNOME_DIALOG(dlg));
}
// Confirmation dialog in case the element/load list is not empty
int
list_not_empty_dialog(char *msg)
{
GtkWidget *dlg, *lbl;
dlg = gnome_dialog_new(
_("List is not empty"),
("_Append"), _("Clear first"), _("Cancel"),
NULL);
gtk_window_set_position(GTK_WINDOW(dlg), GTK_WIN_POS_CENTER);
lbl = gtk_label_new(msg);
gtk_widget_show(lbl);
gtk_box_pack_start(GTK_BOX(GNOME_DIALOG(dlg)->vbox),
lbl, TRUE, TRUE, 0);
return gnome_dialog_run_and_close(GNOME_DIALOG(dlg));
}
gboolean
run_filedialog1(char *title, char *fn, char *filter)
{
GtkWidget *fs, *selbtn;
int result;
fs = gtk_file_selection_new(title);
selbtn = GTK_FILE_SELECTION(fs)->ok_button;
gtk_file_selection_set_filename(GTK_FILE_SELECTION(fs), fn);
gtk_window_set_modal(GTK_WINDOW(fs), TRUE);
result = gtk_dialog_run(GTK_DIALOG(fs));
if (result == GTK_RESPONSE_OK)
strcpy(fn, gtk_file_selection_get_filename(GTK_FILE_SELECTION(fs)));
gtk_widget_destroy(fs);
return (result == GTK_RESPONSE_OK);
}
gboolean
run_filedialog(char *title, char *fn, gboolean openfile, ...)
{
va_list parg;
GtkWidget *fc;
GtkFileFilter *ff;
int result;
char *p, *pname, *pfilt;
va_start(parg, openfile);
if (openfile) {
fc = gtk_file_chooser_dialog_new(title, NULL,
GTK_FILE_CHOOSER_ACTION_OPEN,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
NULL);
} else {
fc = gtk_file_chooser_dialog_new(title, NULL,
GTK_FILE_CHOOSER_ACTION_SAVE,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
NULL);
}
while ((pname = va_arg(parg, char *)) != NULL) {
pfilt = va_arg(parg, char *);
ff = gtk_file_filter_new();
gtk_file_filter_set_name(ff, pname);
gtk_file_filter_add_pattern(ff, pfilt);
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fc), ff);
}
va_end(parg);
result = gtk_dialog_run(GTK_DIALOG(fc));
if (result == GTK_RESPONSE_ACCEPT) {
strcpy(fn, p = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(fc)));
g_free(p);
}
gtk_widget_destroy(fc);
return (result == GTK_RESPONSE_ACCEPT);
}
void
show_about(void)
{
GdkPixbuf *pxb = gdk_pixbuf_new_from_inline(sizeof(logo_def),
logo_def, FALSE, NULL);
GtkWidget *w = gnome_about_new(prog_name, prog_version, prog_right,
prog_com, (const gchar **)authors,
NULL, NULL, pxb);
gtk_widget_show(w);
}
int
xml_file_loaded(xmlDocPtr *doc, const char *fname, char *title)
{
xmlNodePtr cur;
*doc = xmlParseFile(fname);
if (*doc == NULL ) {
ok_dialog(_("XML Error"),
_("Document not parsed successfully."));
return FALSE;
}
cur = xmlDocGetRootElement(*doc);
if (cur == NULL) {
ok_dialog(_("XML Error"), _("Empty document"));
xmlFreeDoc(*doc);
return FALSE;
}
if (xmlStrcmp(cur->name, (const xmlChar *) title)) {
ok_dialog(_("XML Error"), _("Document of the wrong type."));
xmlFreeDoc(*doc);
return FALSE;
}
return TRUE;
}
void
load_cable_table(GtkWidget *ref)
{
int i;
char z0[10], vf[8], db1[10], db2[10], mhz1[12], mhz2[12];
GtkListStore *cables;
GtkTreeView *cbl_view;
GtkTreeViewColumn *col;
GtkTreeIter iter;
GtkCellRenderer *renderer;
cables = gtk_list_store_new(cablecol_len+1,
G_TYPE_STRING, // Cable name
G_TYPE_STRING, // z0
G_TYPE_STRING, // vf
G_TYPE_STRING, // db1
G_TYPE_STRING, // mhz1
G_TYPE_STRING, // db2
G_TYPE_STRING, // mhz2
G_TYPE_INT); // Nr in table
cbl_view = GTK_TREE_VIEW(lookup_widget(ref, "cable_view"));
gtk_tree_view_set_model(cbl_view, GTK_TREE_MODEL(cables));
g_object_unref(G_OBJECT(cables));
for (i = 0; i < cablecol_len; i++) {
renderer = gtk_cell_renderer_text_new();
gtk_object_set(GTK_OBJECT(renderer),
"height", 16,
"xalign", (i==0 ? 0.0 : 1.0),
NULL);
col = gtk_tree_view_column_new_with_attributes(cablecol[i].title,
renderer, "text", i, NULL);
gtk_tree_view_append_column(cbl_view, col);
gtk_tree_view_column_set_sizing(col, GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_fixed_width(col, cablecol[i].width);
}
for (i = 0; i < ctable_len; i++) {
gtk_list_store_append(cables, &iter);
sprintf(z0, "%.1f", cabletable[i].z0);
sprintf(vf, "%.3f", cabletable[i].vf);
sprintf(db1, "%.2f", cabletable[i].db1);
sprintf(mhz1, "%.0f", cabletable[i].mhz1);
sprintf(db2, "%.2f", cabletable[i].db2);
sprintf(mhz2, "%.0f", cabletable[i].mhz2);
gtk_list_store_set(cables, &iter,
0, cabletable[i].name,
1, z0,
2, vf,
3, db1,
4, mhz1,
5, db2,
6, mhz2,
7, i,
-1);
}
}
void
show_cable_data(int which, int c)
{
GtkWidget *w;
int d;
char **entbl, bff[15];
switch (which) {
case SEP_STUB_VAL:
entbl = stub_entries;
scale_entry_pair_set(SEP_STUB_Z0, cabletable[c].z0);
break;
case SEP_LINE_VAL:
entbl = line_entries;
scale_entry_pair_set(SEP_LINE_Z0, cabletable[c].z0);
break;
}
for (d = 0; d < 5; d++) {
switch (d) {
case 0: sprintf(bff, "%.3f", cabletable[c].vf); break;
case 1: sprintf(bff, "%.2f", cabletable[c].db1); break;
case 2: sprintf(bff, "%.0f", cabletable[c].mhz1); break;
case 3: sprintf(bff, "%.2f", cabletable[c].db2); break;
case 4: sprintf(bff, "%.0f", cabletable[c].mhz2); break;
}
w = lookup_widget(MainWindow, entbl[d]);
gtk_entry_set_text(GTK_ENTRY(w), bff);
}
}
/*
* These routines manage the component selection and connection
* type.
*/
/* Load the element callbacks and set the button icon, from the
* table supplied.
* Used for the connection type and element buttons.
*/
void
load_element_toggles(toggle_button_def *tbl, int len, GCallback cb)
{
GtkWidget *tb_img;
char bff[30];
int c;
for (c = 0; c < len; c++) {
sprintf(bff, "comp_%s_img", tbl[c].name);
tb_img = lookup_widget(MainWindow, bff);
sprintf(bff, "comp_%s_tbtn", tbl[c].name);
tbl[c].wdg = lookup_widget(MainWindow, bff);
tbl[c].id = g_signal_connect(G_OBJECT(tbl[c].wdg), "clicked", cb,
GINT_TO_POINTER(c));
tbl[c].pxb = gdk_pixbuf_new_from_inline(tbl[c].size, tbl[c].def,
FALSE, NULL);
gtk_image_set_from_pixbuf(GTK_IMAGE(tb_img), tbl[c].pxb);
}
}
/* Make the possible elements visible according to the connection
* selected (series/parallel)
*/
void
element_show_possible(int conntype)
{
GtkWidget *w;
w = lookup_widget(MainWindow, "comp_line_tbtn");
g_object_set(G_OBJECT(w), "visible", act_el.conn == ELC_SERIES, NULL);
w = lookup_widget(MainWindow, "comp_xform_tbtn");
g_object_set(G_OBJECT(w), "visible", act_el.conn == ELC_SERIES, NULL);
}
/* Set the buttons from the selected element. Common routine to
* set the connection type and element type buttons.
* Have to disable the callbacks temporarily here!
*/
void
set_element_toggles(toggle_button_def *tbl, int len, int val)
{
int c;
for (c = 0; c < len; c++) {
g_signal_handler_block(G_OBJECT(tbl[c].wdg), tbl[c].id);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(tbl[c].wdg), val == c);
g_signal_handler_unblock(G_OBJECT(tbl[c].wdg), tbl[c].id);
}
}
/* Set the connection type (series/parallel)
*/
void
set_element_conn(int type)
{
GtkWidget *w;
act_el.conn = type;
set_element_toggles(conn_btn, conn_btn_len, type);
element_show_possible(type);
}
/* Set the element type
*/
void
set_element_type(int type)
{
GtkWidget *w = lookup_widget(MainWindow, "comp_notebook");
set_element_toggles(type_btn, type_btn_len, type);
act_el.typ = type;
element_show_possible(type);
set_discr_mode(type);
gtk_notebook_set_current_page(GTK_NOTEBOOK(w), type_btn[type].page);
}
GdkPixbuf *
connection_glyph(int conn, int type)
{
if (type == ELT_ZY)
return conn_btn[ELC_EMPTY].pxb;
else
return conn_btn[conn].pxb;
}
GdkPixbuf *
type_glyph(int conn, int type)
{
return type_btn[type].pxb;
}
//---------------------------------------------------------------------
// Scale/entry pair handling
//---------------------------------------------------------------------
void
set_buttons(int which, int state)
{
GtkWidget *w;
// gtk_widget_set_sensitive(sc_handler[which].scale,
// state == ENTRY_VALID || state == ENTRY_SET);
}
void
scale_entry_pair_set_scale(int eltyp, double val)
{
GtkRange *range = GTK_RANGE(sc_handler[eltyp].scale);
int id;
id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(range), "chg_id"));
g_signal_handler_block(G_OBJECT(range), id);
gtk_range_set_range(range, log(val/2), log(val*2));
gtk_range_set_value(range, log(val));
gtk_widget_set_sensitive(GTK_WIDGET(range), TRUE);
g_signal_handler_unblock(G_OBJECT(range), id);
}
void
scale_entry_pair_set_entry(int which, double val)
{
GtkEntry *entry = GTK_ENTRY(sc_handler[which].entry);
char bff[20];
int id;
*sc_handler[which].valdst = val;
sprintf(bff, "%.*f", sc_handler[which].nrdec, val);
id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(entry), "chg_id"));
g_signal_handler_block(G_OBJECT(entry), id);
gtk_entry_set_text(GTK_ENTRY(sc_handler[which].entry), bff);
g_signal_handler_unblock(G_OBJECT(entry), id);
enable_circ_buttons(CIRCLIST_ENTRYSET);
}
void
scale_entry_pair_set(int eltyp, double val)
{
scale_entry_pair_set_scale(eltyp, val);
scale_entry_pair_set_entry(eltyp, val);
}
double
scale_entry_pair_get(int which)
{
return atof(gtk_entry_get_text(GTK_ENTRY(sc_handler[which].entry)));
}
//
// Range ('scale') changes:
//
void
on_comp_scale_value_changed(GtkRange *range, gpointer user_data)
{
double val = exp(gtk_range_get_value(range));
scale_entry_pair_set_entry(GPOINTER_TO_INT(user_data), val);
recalculate_all();
}
gboolean
on_comp_scale_button_pressed(GtkWidget *wdg, GdkEventButton *event,
gpointer user_data)
{
if (scale_timer_id != -1)
gtk_timeout_remove(scale_timer_id);
return FALSE;
}
gboolean
on_scale_timeout(gpointer user_data)
{
GtkEntry *entry = GTK_ENTRY(sc_handler[GPOINTER_TO_INT(user_data)].entry);
scale_entry_pair_set_scale(GPOINTER_TO_INT(user_data),
atof(gtk_entry_get_text(entry)));
scale_timer_id = -1;
return FALSE;
}
gboolean
on_comp_scale_button_release(GtkWidget *wdg, GdkEventButton *event,
gpointer user_data)
{
scale_timer_id = gtk_timeout_add(1000, on_scale_timeout, user_data);
return FALSE;
}
//
// Value 'Entry' events;
//
// A new value has been entered in the component entry box
// update the scale, and the component list if
// the component was already added.
void
on_comp_entry_activation(GtkEntry *entry, gpointer user_data)
{
scale_entry_pair_set_scale(GPOINTER_TO_INT(user_data),
atof(gtk_entry_get_text(entry)));
gtk_widget_grab_focus(GTK_WIDGET(entry));
if (element_valid(&act_el)) element_update(act_el);
}
void
on_comp_entry_changed(GtkEntry *entry, gpointer user_data)
{
char *pend;
const char *p = gtk_entry_get_text(entry);
double val;
int which = GPOINTER_TO_INT(user_data);
val = strtod(p, &pend);
if (p != pend && val != 0) { // Then it's a valid entry
scale_entry_pair_set_scale(which, val);
enable_circ_buttons(CIRCLIST_ENTRYVALID);
*sc_handler[which].valdst = val;
} else { // Not a valid entry
enable_circ_buttons(CIRCLIST_ENTRYINVALID);
}
}
void
on_comp_entry_focus_out(GtkEntry *entry, GdkEventFocus *event,
gpointer user_data)
{
scale_entry_pair_set_scale(GPOINTER_TO_INT(user_data),
atof(gtk_entry_get_text(entry)));
}
//
// Set all the handlers
//
void
enable_scale_handlers(void)
{
GtkWidget *w, *e;
char bff[30];
int s, id;
for (s = 0; s < nr_sc_handlers; s++) {
sprintf(bff, "comp_%s_scale", sc_handler[s].name);
sc_handler[s].scale = lookup_widget(MainWindow, bff);
sprintf(bff, "comp_%s_entry", sc_handler[s].name);
sc_handler[s].entry = lookup_widget(MainWindow, bff);
// Define range event handlers
id = g_signal_connect(G_OBJECT(sc_handler[s].scale),
"value_changed",
G_CALLBACK(on_comp_scale_value_changed),
GINT_TO_POINTER(s));
g_object_set_data(G_OBJECT(sc_handler[s].scale), "chg_id",
GINT_TO_POINTER(id));
id = g_signal_connect(G_OBJECT(sc_handler[s].scale),
"button_press_event",
G_CALLBACK(on_comp_scale_button_pressed),
GINT_TO_POINTER(s));
id = g_signal_connect(G_OBJECT(sc_handler[s].scale),
"button_release_event",
G_CALLBACK(on_comp_scale_button_release),
GINT_TO_POINTER(s));
// Define entry event handlers
id = g_signal_connect(G_OBJECT(sc_handler[s].entry),
"activate",
G_CALLBACK(on_comp_entry_activation),
GINT_TO_POINTER(s));
g_object_set_data(G_OBJECT(sc_handler[s].entry), "act_id",
GINT_TO_POINTER(id));
g_object_set_data(G_OBJECT(sc_handler[s].entry), "id",
GINT_TO_POINTER(s));
id = g_signal_connect(G_OBJECT(sc_handler[s].entry),
"changed",
G_CALLBACK(on_comp_entry_changed),
GINT_TO_POINTER(s));
g_object_set_data(G_OBJECT(sc_handler[s].entry), "chg_id",
GINT_TO_POINTER(id));
}
}
//
// Component type and connection button callbacks
//
void
on_comp_conn_tbtn_clicked(GtkButton *button, gpointer user_data)
{
set_element_conn(GPOINTER_TO_INT(user_data));
enable_circ_buttons(CIRCLIST_CONNCHANGED);
}
void
on_comp_type_tbtn_clicked (GtkButton *button, gpointer user_data)
{
set_element_type(GPOINTER_TO_INT(user_data));
enable_circ_buttons(CIRCLIST_TYPECHANGED);
}
//---------------------------------------------------------------------
// Main window
//---------------------------------------------------------------------
void
initialize_MainWindow(void)
{
char *ttl = g_strconcat(_(prog_title), " - v", prog_version, NULL);
GtkWidget *w = lookup_widget(MainWindow, "z0_cbbox");
GtkWidget *w1 = lookup_widget(MainWindow, "circpage_vbox");
load_config();
remote_create_fifos();
pref.chart_z0 = 50.0;
load_element_toggles(conn_btn, conn_btn_len,
G_CALLBACK(on_comp_conn_tbtn_clicked));
load_element_toggles(type_btn, type_btn_len,
G_CALLBACK(on_comp_type_tbtn_clicked));
set_element_conn(ELC_SERIES);
set_element_type(ELT_CAP);
enable_scale_handlers();
gtk_window_set_title(GTK_WINDOW(MainWindow), ttl);
g_free(ttl);
}
linsmith-0.99.21/src/confmgr.c 0000644 0000000 0000000 00000023516 11373542653 013020 0000000 0000000 /*
* confmgr.c: configuration manager
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#include "confmgr.h"
#include "global.h"
#include "support.h"
void
parse_widget_by_table(conf_definition *tbl, int len, GtkWidget *ref)
{
GtkWidget *w;
GList *glst;
GdkColor col;
char *p;
int d, nr;
guint16 alpha;
for (d = 0; d < len; d++) {
w = lookup_widget(ref, tbl[d].wdg);
switch (tbl[d].typ) {
case CFM_W_CBTN:
*(char *)tbl[d].data =
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));
break;
case CFM_W_ENTRY_STR:
p = (char *)gtk_entry_get_text(GTK_ENTRY(w));
tbl[d].data =
g_locale_from_utf8(p, -1, NULL, NULL, NULL);
break;
case CFM_W_ENTRY_INT:
*(int *)tbl[d].data = atol(gtk_entry_get_text(GTK_ENTRY(w)));
break;
case CFM_W_ENTRY_FLOAT:
*(float *)tbl[d].data = atof(gtk_entry_get_text(GTK_ENTRY(w)));
break;
case CFM_W_ENTRY_DOUBLE:
*(double *)tbl[d].data = atof(gtk_entry_get_text(GTK_ENTRY(w)));
break;
case CFM_W_LABEL_STR:
strcpy((char *)tbl[d].data, gtk_label_get_text(GTK_LABEL(w)));
break;
case CFM_W_LABEL_INT:
*(int *)tbl[d].data = atol(gtk_label_get_text(GTK_LABEL(w)));
break;
case CFM_W_LABEL_DOUBLE:
*(double *)tbl[d].data = atof(gtk_label_get_text(GTK_LABEL(w)));
break;
case CFM_W_RBTN:
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)))
*(int *)tbl[d].data = tbl[d].misc;
break;
case CFM_W_SPBTN_INT:
*(int *)tbl[d].data =
gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
break;
case CFM_W_SPBTN_FLOAT:
*(float *)tbl[d].data =
gtk_spin_button_get_value_as_float(GTK_SPIN_BUTTON(w));
break;
case CFM_W_SPBTN_DOUBLE:
*(double *)tbl[d].data =
gtk_spin_button_get_value(GTK_SPIN_BUTTON(w));
break;
case CFM_W_CBOX:
*(int *)tbl[d].data =
gtk_combo_box_get_active(GTK_COMBO_BOX(w));
break;
case CFM_W_CLIST:
glst = *(GList **)tbl[d].data;
if (glst != NULL) {
g_list_foreach(glst, (GFunc)g_free, NULL);
g_list_free(glst);
glst = NULL;
}
for (nr = 0; nr < GTK_CLIST(w)->rows; nr++) {
gtk_clist_get_text(GTK_CLIST(w), nr, 0, &p);
glst = g_list_append(glst, strdup(p));
}
*(GList **)tbl[d].data = glst;
break;
case CFM_W_COLORBUTTON:
gtk_color_button_get_color(GTK_COLOR_BUTTON(w), &col);
alpha = gtk_color_button_get_alpha(GTK_COLOR_BUTTON(w));
*(int *)tbl[d].data = (col.red >> 8) *0x1000000 +
(col.green >> 8)*0x10000 +
(col.blue >> 8) *0x100 +
(alpha >> 8);
break;
case CFM_W_FONTBUTTON:
strcpy((char *)tbl[d].data,
gtk_font_button_get_font_name(GTK_FONT_BUTTON(w)));
break;
}
}
}
void
load_widget_by_table(conf_definition *tbl, int len, GtkWidget *ref)
{
GtkWidget *w;
GList *glst;
GdkColor col;
int d, nr;
guint16 alpha;
double val;
char bff[15], *str[1], *p;
for (d = 0; d < len; d++) {
w = lookup_widget(ref, tbl[d].wdg);
switch (tbl[d].typ) {
case CFM_W_CBTN:
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
*(char *)tbl[d].data);
break;
case CFM_W_ENTRY_STR:
p = (char *)tbl[d].data;
gtk_entry_set_text(GTK_ENTRY(w),
p = g_locale_to_utf8(p, -1, NULL, NULL, NULL));
g_free(p);
break;
case CFM_W_ENTRY_INT:
sprintf(bff, "%d", *(int *)tbl[d].data);
gtk_entry_set_text(GTK_ENTRY(w), bff);
break;
case CFM_W_ENTRY_FLOAT:
sprintf(bff, "%f", *(float *)tbl[d].data);
gtk_entry_set_text(GTK_ENTRY(w), bff);
break;
case CFM_W_ENTRY_DOUBLE:
sprintf(bff, "%.*f", tbl[d].misc, *(double *)tbl[d].data);
gtk_entry_set_text(GTK_ENTRY(w), bff);
break;
case CFM_W_LABEL_STR:
gtk_label_set_text(GTK_LABEL(w), (char *)tbl[d].data);
break;
case CFM_W_LABEL_INT:
sprintf(bff, "%d", *(int *)tbl[d].data);
gtk_label_set_text(GTK_LABEL(w), bff);
break;
case CFM_W_LABEL_DOUBLE:
sprintf(bff, "%.*f", tbl[d].misc, *(double *)tbl[d].data);
gtk_label_set_text(GTK_LABEL(w), bff);
break;
case CFM_W_RBTN:
if (*(char *)tbl[d].data & tbl[d].misc)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), TRUE);
break;
case CFM_W_SPBTN_INT:
val = *(int *)tbl[d].data;
gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), val);
break;
case CFM_W_SPBTN_FLOAT:
val = *(float *)tbl[d].data;
gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), val);
break;
case CFM_W_SPBTN_DOUBLE:
val = *(double *)tbl[d].data;
gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), val);
break;
case CFM_W_CBOX:
gtk_combo_box_set_active(GTK_COMBO_BOX(w), *(char *)tbl[d].data);
break;
case CFM_W_CLIST:
glst = *(GList **)tbl[d].data;
for (nr = 0; nr < g_list_length(glst); nr++) {
str[0] = g_list_nth_data(glst, nr);
gtk_clist_append(GTK_CLIST(w), str);
}
break;
case CFM_W_COLORBUTTON:
alpha = ( *(guint32 *)tbl[d].data & 0xff) << 8;
col.blue = ((*(guint32 *)tbl[d].data >> 8) & 0xff) << 8;
col.green = ((*(guint32 *)tbl[d].data >> 16) & 0xff) << 8;
col.red = ((*(guint32 *)tbl[d].data >> 24) & 0xff) << 8;
gtk_color_button_set_color(GTK_COLOR_BUTTON(w), &col);
gtk_color_button_set_alpha(GTK_COLOR_BUTTON(w), alpha);
break;
case CFM_W_FONTBUTTON:
gtk_font_button_set_font_name(GTK_FONT_BUTTON(w),
(char *)tbl[d].data);
break;
}
}
}
gboolean
save_by_table(char *fn, conf_definition *tbl, int len)
{
char path[120], path2[140];
int d, nr;
GList *glst;
for (d = 0; d < len; d++) {
if (fn != NULL)
sprintf(path, "=%s=/%s", fn, tbl[d].key);
else
sprintf(path, "%s/%s", prog_name, tbl[d].key);
switch (tbl[d].styp) {
case CFM_T_STR:
gnome_config_set_string(path, (char *)tbl[d].data);
break;
case CFM_T_CHAR:
gnome_config_set_int(path, *(char *)tbl[d].data);
break;
case CFM_T_INT:
gnome_config_set_int(path, *(int *)tbl[d].data);
break;
case CFM_T_FLOAT:
gnome_config_set_float(path, *(float *)tbl[d].data);
break;
case CFM_T_DOUBLE:
gnome_config_set_float(path, *(double *)tbl[d].data);
break;
case CFM_T_STRLIST:
sprintf(path2, "%s_nr", path);
glst = *(GList **)tbl[d].data;
gnome_config_set_int(path2, g_list_length(glst));
for (nr = 0; nr < g_list_length(glst); nr++) {
sprintf(path2, "%s_%d", path, nr);
gnome_config_set_string(path2, g_list_nth_data(glst, nr));
}
break;
}
}
return gnome_config_sync();
}
void
load_by_table(char *fn, conf_definition *tbl, int len)
{
GList *glst;
char path[120], path2[140], *p;
int def;
int d, nr, llen, v;
for (d = 0; d < len; d++) {
if (fn != NULL)
sprintf(path, "=%s=/%s", fn, tbl[d].key);
else
sprintf(path, "%s/%s", prog_name, tbl[d].key);
switch (tbl[d].styp) {
case CFM_T_STR:
sprintf(path2, "%s=%s", path, tbl[d].def);
strcpy((char *)tbl[d].data,
gnome_config_get_string_with_default(path2, &def));
break;
case CFM_T_INT:
sscanf(tbl[d].def, "%i", &v);
sprintf(path2, "%s=%ld", path, v);
*(int *)tbl[d].data =
gnome_config_get_int_with_default(path2, &def);
break;
case CFM_T_CHAR:
sprintf(path2, "%s=%s", path, tbl[d].def);
*(char *)tbl[d].data =
gnome_config_get_int_with_default(path2, &def);
break;
case CFM_T_FLOAT:
sprintf(path2, "%s=%s", path, tbl[d].def);
*(float *)tbl[d].data =
gnome_config_get_float_with_default(path2, &def);
break;
case CFM_T_DOUBLE:
sprintf(path2, "%s=%s", path, tbl[d].def);
*(double *)tbl[d].data =
gnome_config_get_float_with_default(path2, &def);
break;
case CFM_T_STRLIST:
glst = *(GList **)tbl[d].data;
sprintf(path2, "%s_nr=0", path);
llen = gnome_config_get_int_with_default(path2, &def);
for (nr = 0; nr < llen; nr++) {
sprintf(path2, "%s_%d=", path, nr);
p = gnome_config_get_string_with_default(path2, &def);
glst = g_list_append(glst, p);
}
*(GList **)tbl[d].data = glst;
break;
}
}
}
linsmith-0.99.21/src/interface.h 0000644 0000000 0000000 00000000331 11541550713 013311 0000000 0000000 /*
* DO NOT EDIT THIS FILE - it is generated by Glade.
*/
GtkWidget* create_MainWindow (void);
GtkWidget* create_ConfigWindow (void);
GtkWidget* create_CableWindow (void);
GtkWidget* create_Imports2pWindow (void);
linsmith-0.99.21/src/load_nb.h 0000644 0000000 0000000 00000002264 10417602342 012753 0000000 0000000 /*
* load_nb.c: Noise bridge functions, list management etc.
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#include
#include
#include "types.h"
void initialize_loadtable(void);
void get_load_selected(GtkTreeView *treeview);
int load_nb_valid(load_definition *dest);
void load_nb_append(load_definition *tload);
void load_nb_update(load_definition *tload);
void load_nb_modified(int which);
void active_load_nb_update();
linsmith-0.99.21/src/callbacks.c 0000644 0000000 0000000 00000044117 11541552364 013301 0000000 0000000 /*
* callbacks.c: event and signal handlers
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#include
#include "callbacks.h"
#include "interface.h"
#include "support.h"
#include "main.h"
#include "types.h"
#include "global.h"
#include "printer.h"
#include "chart.h"
#include "element.h"
#include "load.h"
#include "misc.h"
//=====================================================================
// Main menu
//=====================================================================
// File menu item
// Circuit:
void
on_load3_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
load3_activate();
}
void
on_save4_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
save4_activate();
}
void
on_save_as4_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
save_as4_activate();
}
// Loads:
void
on_load4_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
load4_activate();
}
void
on_save5_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
save5_activate();
}
void
on_save_as3_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
save_as3_activate();
}
void
on_csv_loads1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
import_csv_activate();
}
void
on_s2p_files1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
s2p_files1_activate();
}
void
on_save_results_page1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
loglist_export();
}
void
on_quit1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
gtk_main_quit();
}
// Edit menu items
void
on_preferences1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
GtkWidget *w = create_ConfigWindow();
gtk_widget_show(w);
}
// View menu items
void
on_recalculate1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
}
// Help menu item
void
on_about1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
show_about();
}
//---------------------------------------------------------------------
// Other MainWindow events
//---------------------------------------------------------------------
gboolean
on_MainWindow_delete_event (GtkWidget *widget,
GdkEvent *event,
gpointer user_data)
{
gtk_main_quit();
return FALSE;
}
void
on_MainWindow_realize (GtkWidget *widget,
gpointer user_data)
{
initialize_MainWindow();
initialize_elementtable();
initialize_loadtable();
}
void
on_zoom_out_btn_clicked (GtkButton *button,
gpointer user_data)
{
change_zoom(ZOOM_OUT);
}
void
on_zoom_in_btn_clicked (GtkButton *button,
gpointer user_data)
{
change_zoom(ZOOM_IN);
}
void
on_recalc_btn_clicked (GtkButton *button,
gpointer user_data)
{
recalculate_all(DST_SCREEN);
}
void
on_z0_cbbox_changed (GtkComboBox *combobox,
gpointer user_data)
{
recalculate_all(DST_SCREEN);
save_config();
}
void
on_z0_cbbox_realize (GtkWidget *widget,
gpointer user_data)
{
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), 0);
}
void
on_direction_cbbox_changed (GtkComboBox *combobox,
gpointer user_data)
{
int prev_rot = pref.rotation;
switch (gtk_combo_box_get_active(combobox)) {
case 0: pref.rotation = TO_GENERATOR;
break;
case 1: pref.rotation = TO_LOAD;
break;
}
if (prev_rot != pref.rotation)
recalculate_all(DST_SCREEN);
}
void
on_direction_cbbox_realize (GtkWidget *widget,
gpointer user_data)
{
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), 0);
}
//---------------------------------------------------------------------
// Main window, CHART events
//---------------------------------------------------------------------
void
on_canvas1_realize (GtkWidget *widget,
gpointer user_data)
{
chart_initialize();
}
gboolean
on_chart_canvas_motion_notify_event (GtkWidget *widget,
GdkEventMotion *event,
gpointer user_data)
{
if (event->device->source == GDK_SOURCE_MOUSE) {
update_cursor_values(event->x, event->y);
}
return FALSE;
}
//---------------------------------------------------------------------
// Main page notebook
//---------------------------------------------------------------------
void
on_circuit_notebook_realize (GtkWidget *widget,
gpointer user_data)
{
}
// LOAD page
void
on_load_treeview_cursor_changed (GtkTreeView *treeview,
gpointer user_data)
{
on_load_selected(treeview);
}
void
on_load_append_btn_clicked (GtkButton *button,
gpointer user_data)
{
load_definition tload;
if (load_rx_valid(&tload)) load_append(&tload);
}
void
on_load_remove_btn_clicked (GtkButton *button,
gpointer user_data)
{
active_load_rx_remove();
}
void
on_load_clear_btn_clicked (GtkButton *button,
gpointer user_data)
{
loadlist_clear();
}
void
on_load_edit_btn_clicked (GtkButton *button,
gpointer user_data)
{
if (load_rx_valid(NULL)) active_load_rx_update();
}
void
on_load_rx_rbtn_clicked (GtkButton *button,
gpointer user_data)
{
}
void
on_load_rang_rbtn_clicked (GtkButton *button,
gpointer user_data)
{
}
void
on_load_x_entry_changed (GtkEditable *editable,
gpointer user_data)
{
load_modified(2);
}
void
on_load_r_entry_changed (GtkEditable *editable,
gpointer user_data)
{
load_modified(1);
}
void
on_load_freq_entry_changed (GtkEditable *editable,
gpointer user_data)
{
load_modified(0);
}
//
// Noise bridge events
//
void
on_nb_type_cbbox_changed (GtkComboBox *combobox,
gpointer user_data)
{
}
void
on_nb_type_cbbox_realize (GtkWidget *widget,
gpointer user_data)
{
}
void
on_load_nb_r_entry_changed (GtkEditable *editable,
gpointer user_data)
{
load_nb_modified(1);
}
void
on_load_nb_c_entry_changed (GtkEditable *editable,
gpointer user_data)
{
load_nb_modified(2);
}
void
on_load_nb_ext_cbtn_toggled (GtkToggleButton *togglebutton,
gpointer user_data)
{
load_nb_modified(3);
}
void
on_load_nb_append_btn_clicked (GtkButton *button,
gpointer user_data)
{
load_definition tload;
if (load_nb_valid(&tload)) load_append(&tload);
}
void
on_load_nb_upd_btn_clicked (GtkButton *button,
gpointer user_data)
{
if (load_nb_valid(NULL)) active_load_nb_update();
}
void
on_load_nb_freq_entry_changed (GtkEditable *editable,
gpointer user_data)
{
load_nb_modified(0);
}
void
on_comp_stub_selcable_btn_clicked (GtkButton *button,
gpointer user_data)
{
GtkWidget *btn, *w = create_CableWindow();
btn = lookup_widget(w, "cable_accept_btn");
g_object_set_data(G_OBJECT(btn), "caller", GINT_TO_POINTER(SEP_STUB_VAL));
gtk_widget_show(w);
}
void
on_comp_line_selcable_btn_clicked (GtkButton *button,
gpointer user_data)
{
GtkWidget *btn, *w = create_CableWindow();
btn = lookup_widget(w, "cable_accept_btn");
g_object_set_data(G_OBJECT(btn), "caller", GINT_TO_POINTER(SEP_LINE_VAL));
gtk_widget_show(w);
}
// CIRCUIT page
void
on_circ_newel_btn_clicked (GtkButton *button,
gpointer user_data)
{
el_definition el;
if (element_valid(&el)) element_append(el);
}
void
on_circ_upd_el_btn_clicked (GtkButton *button,
gpointer user_data)
{
el_definition el;
if (element_valid(&el)) element_update(el);
}
void
on_circ_delete_btn_clicked (GtkButton *button,
gpointer user_data)
{
active_element_remove();
}
void
on_circ_clear_btn_clicked (GtkButton *button,
gpointer user_data)
{
circlist_clear();
}
void
on_circ_up_btn_clicked (GtkButton *button,
gpointer user_data)
{
circ_move_up();
}
void
on_circ_down_btn_clicked (GtkButton *button,
gpointer user_data)
{
circ_move_down();
}
void
on_circ_treeview_cursor_changed (GtkTreeView *treeview,
gpointer user_data)
{
fetch_selected_element(treeview, &act_el);
recalculate_all(DST_SCREEN);
}
void
on_comp_series_tbtn_toggled (GtkToggleButton *togglebutton,
gpointer user_data)
{
}
void
on_comp_parallel_tbtn_toggled (GtkToggleButton *togglebutton,
gpointer user_data)
{
}
//=====================================================================
// Config menu
//=====================================================================
void
on_conf_cancel_btn_clicked (GtkButton *button,
gpointer user_data)
{
gtk_widget_destroy(lookup_widget(GTK_WIDGET(button), "ConfigWindow"));
}
void
on_conf_ok_btn_clicked (GtkButton *button,
gpointer user_data)
{
parse_configwindow(GTK_WIDGET(button));
save_config();
stop_logomode();
draw_swr_circle(pref.swr_circle); // Must always redraw
gtk_widget_destroy(lookup_widget(GTK_WIDGET(button), "ConfigWindow"));
}
void
on_ConfigWindow_realize (GtkWidget *widget,
gpointer user_data)
{
load_configwindow(widget);
}
gboolean
on_ConfigWindow_destroy_event (GtkWidget *widget,
GdkEvent *event,
gpointer user_data)
{
return FALSE;
}
void
on_log_treeview_realize (GtkWidget *widget,
gpointer user_data)
{
loglist_initialize(GTK_TREE_VIEW(widget));
}
void
on_notebook4_realize (GtkWidget *widget,
gpointer user_data)
{
gtk_widget_realize(lookup_widget(MainWindow, "log_treeview"));
}
void
on_save_as_postscript1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
}
void
on_prt_font_picker_font_set (GnomeFontPicker *fontpicker,
gchar *font_name,
gpointer user_data)
{
GtkWidget *w = lookup_widget(GTK_WIDGET(fontpicker), "prt_font_entry");
gtk_entry_set_text(GTK_ENTRY(w), font_name);
}
void
on_comp_xform_entry_changed (GtkEditable *editable,
gpointer user_data)
{
GtkWidget *w = lookup_widget(MainWindow, "circ_edit_btn");
g_signal_emit_by_name(G_OBJECT(w), "clicked", NULL);
}
void
on_load_getrem_btn_clicked (GtkButton *button,
gpointer user_data)
{
}
//================== Test only ===================================
void
on_test1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
test_routine();
}
//=====================================================================
// Predefined cable selection window
//=====================================================================
void
on_CableWindow_realize (GtkWidget *widget,
gpointer user_data)
{
load_cable_table(widget);
}
void
on_cable_view_cursor_changed (GtkTreeView *treeview,
gpointer user_data)
{
GtkWidget *btn = lookup_widget(GTK_WIDGET(treeview), "cable_accept_btn");
GtkTreeSelection *sel = gtk_tree_view_get_selection(treeview);
GtkTreeModel *model;
GtkTreeIter iter;
int cable;
gtk_tree_selection_get_selected(sel, &model, &iter);
gtk_tree_model_get(model, &iter, 7, &cable, -1);
g_object_set_data(G_OBJECT(btn), "cable", GINT_TO_POINTER(cable));
}
void
on_cable_cancel_btn_clicked (GtkButton *button,
gpointer user_data)
{
gtk_widget_destroy(lookup_widget(GTK_WIDGET(button), "CableWindow"));
}
void
on_cable_accept_btn_clicked (GtkButton *button,
gpointer user_data)
{
GtkWidget *wdw = lookup_widget(GTK_WIDGET(button), "CableWindow");
int which = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button), "caller"));
int cable = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button), "cable"));
show_cable_data(which, cable);
gtk_widget_destroy(wdw);
}
void
on_loadtype_notebook_switch_page (GtkNotebook *notebook,
GtkNotebookPage *page,
guint page_num,
gpointer user_data)
{
switch_load_mode(page_num);
}
void
on_rem_cancel_btn_clicked (GtkButton *button,
gpointer user_data)
{
}
//
// Import
//
gboolean
on_Imports2pWindow_delete_event (GtkWidget *widget,
GdkEvent *event,
gpointer user_data)
{
return FALSE;
}
void
on_Imports2pWindow_realize (GtkWidget *widget,
gpointer user_data)
{
Imports2pWindow_realize(widget);
}
void
on_import_s2p_sel_all_btn_clicked (GtkButton *button,
gpointer user_data)
{
import_s2p_sel_all_btn_clicked();
}
void
on_import_s2p_sel_none_btn_clicked (GtkButton *button,
gpointer user_data)
{
import_s2p_sel_none_btn_clicked();
}
void
on_import_s2p_sel_invert_btn_clicked (GtkButton *button,
gpointer user_data)
{
import_s2p_sel_invert_btn_clicked();
}
void
on_import_s2p_cancel_btn_clicked (GtkButton *button,
gpointer user_data)
{
import_s2p_cancel_btn_clicked();
}
void
on_import_s2p_impS11_btn_clicked (GtkButton *button,
gpointer user_data)
{
import_s2p_impS11_btn_clicked();
}
void
on_import_s2p_impS22_btn_clicked (GtkButton *button,
gpointer user_data)
{
import_s2p_impS22_btn_clicked();
}
void
on_print1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
print_chart(pref.last_ps_file);
}
linsmith-0.99.21/src/chart_def.c 0000644 0000000 0000000 00000035345 11373613756 013312 0000000 0000000 /*
* chart_def.c: chart definition table
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#include "chart_def.h"
plot_definition pldef[] = {
// type .val .a_min .a_max .zm_min .zm_max .priority .bold
// type value min max zoom_limits pri bold
{'R', 0.0, 9999.9, -9999.9, 0.0, 99.0, 5, 1}, // Outer border
{'R', 0.02, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.04, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.05, -0.5, -1.0, 0.0, 99.0, 5, 0},
{'R', 0.05, 1.0, 0.5, 0.0, 99.0, 5, 0},
{'R', 0.06, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.08, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.1, 1.0, -1.0, 0.0, 99.0, 5, 1},
{'R', 0.1, -1.0, -2.0, 0.0, 99.0, 5, 0},
{'R', 0.1, 2.0, 1.0, 0.0, 99.0, 5, 0},
{'R', 0.12, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.14, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.15, -0.5, -1.0, 0.0, 99.0, 5, 0},
{'R', 0.15, 1.0, 0.5, 0.0, 99.0, 5, 0},
{'R', 0.16, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.18, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.2, 1.0, -1.0, 0.0, 99.0, 5, 1},
{'R', 0.2, -1.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 0.2, 5.0, 1.0, 0.0, 99.0, 5, 0},
{'R', 0.22, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.24, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.25, -0.5, -1.0, 0.0, 99.0, 5, 0},
{'R', 0.25, 1.0, 0.5, 0.0, 99.0, 5, 0},
{'R', 0.26, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.28, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.3, 1.0, -1.0, 0.0, 99.0, 5, 1},
{'R', 0.3, -1.0, -2.0, 0.0, 99.0, 5, 0},
{'R', 0.3, 2.0, 1.0, 0.0, 99.0, 5, 0},
{'R', 0.32, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.34, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.35, -0.5, -1.0, 0.0, 99.0, 5, 0},
{'R', 0.35, 1.0, 0.5, 0.0, 99.0, 5, 0},
{'R', 0.36, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.38, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.4, 1.0, -1.0, 0.0, 99.0, 5, 1},
{'R', 0.4, -1.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 0.4, 5.0, 1.0, 0.0, 99.0, 5, 0},
{'R', 0.42, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.44, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.45, -0.5, -1.0, 0.0, 99.0, 5, 0},
{'R', 0.45, 1.0, 0.5, 0.0, 99.0, 5, 0},
{'R', 0.46, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.48, 0.5, -0.5, 0.0, 99.0, 5, 0},
{'R', 0.5, 2.0, -2.0, 0.0, 99.0, 5, 1},
{'R', 0.55, 1.0, -1.0, 0.0, 99.0, 5, 0},
{'R', 0.6, 1.0, -1.0, 0.0, 99.0, 5, 1},
{'R', 0.6, -1.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 0.6, 5.0, 1.0, 0.0, 99.0, 5, 0},
{'R', 0.65, 1.0, -1.0, 0.0, 99.0, 5, 0},
{'R', 0.7, 1.0, -1.0, 0.0, 99.0, 5, 1},
{'R', 0.7, -1.0, -2.0, 0.0, 99.0, 5, 0},
{'R', 0.7, 2.0, 1.0, 0.0, 99.0, 5, 0},
{'R', 0.75, 1.0, -1.0, 0.0, 99.0, 5, 0},
{'R', 0.8, 1.0, -1.0, 0.0, 99.0, 5, 1},
{'R', 0.8, -1.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 0.8, 5.0, 1.0, 0.0, 99.0, 5, 0},
{'R', 0.85, 1.0, -1.0, 0.0, 99.0, 5, 0},
{'R', 0.9, 1.0, -1.0, 0.0, 99.0, 5, 1},
{'R', 0.9, -1.0, -2.0, 0.0, 99.0, 5, 0},
{'R', 0.9, 2.0, 1.0, 0.0, 99.0, 5, 0},
{'R', 0.95, 1.0, -1.0, 0.0, 99.0, 5, 0},
{'R', 1.0, 10.0, -10.0, 0.0, 99.0, 5, 1}, // R unity
{'R', 1.1, 2.0, -2.0, 0.0, 99.0, 5, 0},
{'R', 1.2, 2.0, -2.0, 0.0, 99.0, 5, 1},
{'R', 1.2, -2.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 1.2, 5.0, 2.0, 0.0, 99.0, 5, 0},
{'R', 1.3, 2.0, -2.0, 0.0, 99.0, 5, 0},
{'R', 1.4, 2.0, -2.0, 0.0, 99.0, 5, 1},
{'R', 1.4, -2.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 1.4, 5.0, 2.0, 0.0, 99.0, 5, 0},
{'R', 1.5, 2.0, -2.0, 0.0, 99.0, 5, 0},
{'R', 1.6, 2.0, -2.0, 0.0, 99.0, 5, 1},
{'R', 1.6, -2.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 1.6, 5.0, 2.0, 0.0, 99.0, 5, 0},
{'R', 1.7, 2.0, -2.0, 0.0, 99.0, 5, 0},
{'R', 1.8, 2.0, -2.0, 0.0, 99.0, 5, 1},
{'R', 1.8, -2.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 1.8, 5.0, 2.0, 0.0, 99.0, 5, 0},
{'R', 1.9, 2.0, -2.0, 0.0, 99.0, 5, 0},
{'R', 2.0, 10.0, -10.0, 0.0, 99.0, 5, 1},
{'R', 2.0, -10.0, -20.0, 0.0, 99.0, 5, 0},
{'R', 2.0, 20.0, 10.0, 0.0, 99.0, 5, 0},
{'R', 2.2, 5.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 2.4, 5.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 2.6, 5.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 2.8, 5.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 3.0, 10.0, -10.0, 0.0, 99.0, 5, 1},
{'R', 3.2, 5.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 3.4, 5.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 3.6, 5.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 3.8, 5.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 4.0, 10.0, -10.0, 0.0, 99.0, 5, 1},
{'R', 4.0, -10.0, -20.0, 0.0, 99.0, 5, 0},
{'R', 4.0, 20.0, 10.0, 0.0, 99.0, 5, 0},
{'R', 4.2, 5.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 4.4, 5.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 4.6, 5.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 4.8, 5.0, -5.0, 0.0, 99.0, 5, 0},
{'R', 5.0, 10.0, -10.0, 0.0, 99.0, 5, 1},
{'R', 6.0, 10.0, -10.0, 0.0, 99.0, 5, 0},
{'R', 6.0, -10.0, -20.0, 0.0, 99.0, 5, 0},
{'R', 6.0, 20.0, 10.0, 0.0, 99.0, 5, 0},
{'R', 7.0, 10.0, -10.0, 0.0, 99.0, 5, 0},
{'R', 8.0, 10.0, -10.0, 0.0, 99.0, 5, 0},
{'R', 8.0, -10.0, -20.0, 0.0, 99.0, 5, 0},
{'R', 8.0, 20.0, 10.0, 0.0, 99.0, 5, 0},
{'R', 9.0, 10.0, -10.0, 0.0, 99.0, 5, 0},
{'R', 10.0, 999.0, -999.0, 0.0, 99.0, 5, 1},
{'R', 15.0, 999.0, -999.0, 0.0, 99.0, 5, 0},
{'R', 20.0, 999.0, -999.0, 0.0, 99.0, 5, 1},
{'R', 30.0, 999.0, -999.0, 0.0, 99.0, 5, 1},
{'R', 40.0, 999.0, -999.0, 0.0, 99.0, 5, 1},
{'R', 50.0, 999.0, -999.0, 0.0, 99.0, 5, 1},
{'X', 0.0, 0.0, 9999.9, 0.0, 99.0, 5, 1},
{'X', 0.02, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.04, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.05, 0.5, 1.0, 0.0, 99.0, 5, 0},
{'X', 0.06, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.08, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.1, 0.0, 1.0, 0.0, 99.0, 5, 1},
{'X', 0.1, 1.0, 2.0, 0.0, 99.0, 5, 0},
{'X', 0.12, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.14, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.15, 0.5, 1.0, 0.0, 99.0, 5, 0},
{'X', 0.16, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.18, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.2, 0.0, 2.0, 0.0, 99.0, 5, 1},
{'X', 0.2, 2.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 0.22, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.24, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.25, 0.5, 1.0, 0.0, 99.0, 5, 0},
{'X', 0.26, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.28, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.3, 0.0, 1.0, 0.0, 99.0, 5, 1},
{'X', 0.3, 1.0, 2.0, 0.0, 99.0, 5, 0},
{'X', 0.32, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.34, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.35, 0.5, 1.0, 0.0, 99.0, 5, 0},
{'X', 0.36, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.38, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.4, 0.0, 2.0, 0.0, 99.0, 5, 1},
{'X', 0.4, 2.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 0.42, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.44, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.45, 0.5, 1.0, 0.0, 99.0, 5, 0},
{'X', 0.46, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.48, 0.0, 0.5, 0.0, 99.0, 5, 0},
{'X', 0.5, 0.0, 1.0, 0.0, 99.0, 5, 1},
{'X', 0.5, 1.0, 2.0, 0.0, 99.0, 5, 0},
{'X', 0.55, 0.0, 1.0, 0.0, 99.0, 5, 0},
{'X', 0.6, 0.0, 2.0, 0.0, 99.0, 5, 1},
{'X', 0.6, 2.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 0.65, 0.0, 1.0, 0.0, 99.0, 5, 0},
{'X', 0.7, 0.0, 1.0, 0.0, 99.0, 5, 1},
{'X', 0.7, 1.0, 2.0, 0.0, 99.0, 5, 0},
{'X', 0.75, 0.0, 1.0, 0.0, 99.0, 5, 0},
{'X', 0.8, 0.0, 2.0, 0.0, 99.0, 5, 1},
{'X', 0.8, 2.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 0.85, 0.0, 1.0, 0.0, 99.0, 5, 0},
{'X', 0.9, 0.0, 1.0, 0.0, 99.0, 5, 1},
{'X', 0.9, 1.0, 2.0, 0.0, 99.0, 5, 0},
{'X', 0.95, 0.0, 1.0, 0.0, 99.0, 5, 0},
{'X', 1.0, 0.0, 5.0, 0.0, 99.0, 5, 1}, // X unity circles
{'X', 1.0, 5.0, 10.0, 0.0, 99.0, 5, 0},
{'X', 1.1, 0.0, 2.0, 0.0, 99.0, 5, 0},
{'X', 1.2, 0.0, 2.0, 0.0, 99.0, 5, 1},
{'X', 1.2, 2.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 1.3, 0.0, 2.0, 0.0, 99.0, 5, 0},
{'X', 1.4, 0.0, 2.0, 0.0, 99.0, 5, 1},
{'X', 1.4, 2.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 1.5, 0.0, 2.0, 0.0, 99.0, 5, 0},
{'X', 1.6, 0.0, 2.0, 0.0, 99.0, 5, 1},
{'X', 1.6, 2.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 1.7, 0.0, 2.0, 0.0, 99.0, 5, 0},
{'X', 1.8, 0.0, 2.0, 0.0, 99.0, 5, 1},
{'X', 1.8, 2.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 1.9, 0.0, 2.0, 0.0, 99.0, 5, 0},
{'X', 2.0, 0.0, 5.0, 0.0, 99.0, 5, 1},
{'X', 2.0, 5.0, 20.0, 0.0, 99.0, 5, 0},
{'X', 2.2, 0.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 2.4, 0.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 2.6, 0.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 2.8, 0.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 3.0, 0.0, 5.0, 0.0, 99.0, 5, 1},
{'X', 3.0, 5.0, 10.0, 0.0, 99.0, 5, 0},
{'X', 3.2, 0.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 3.4, 0.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 3.6, 0.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 3.8, 0.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 4.0, 0.0, 5.0, 0.0, 99.0, 5, 1},
{'X', 4.0, 5.0, 20.0, 0.0, 99.0, 5, 0},
{'X', 4.2, 0.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 4.4, 0.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 4.6, 0.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 4.8, 0.0, 5.0, 0.0, 99.0, 5, 0},
{'X', 5.0, 0.0, 5.0, 0.0, 99.0, 5, 1},
{'X', 5.0, 5.0, 10.0, 0.0, 99.0, 5, 0},
{'X', 5.0, 20.0, 50.0, 0.0, 99.0, 5, 0},
{'X', 6.0, 0.0, 20.0, 0.0, 99.0, 5, 0},
{'X', 7.0, 0.0, 10.0, 0.0, 99.0, 5, 0},
{'X', 8.0, 0.0, 20.0, 0.0, 99.0, 5, 0},
{'X', 9.0, 0.0, 10.0, 0.0, 99.0, 5, 0},
{'X', 10.0, 0.0, 9999.0, 0.0, 99.0, 5, 1},
{'X', 15.0, 0.0, 9999.0, 0.0, 99.0, 5, 0},
{'X', 20.0, 0.0, 9999.0, 0.0, 99.0, 5, 1},
};
int nrpldefs = sizeof(pldef)/sizeof(plot_definition);
label_definition lbldef[] = {
{'R', 0.1, 0.0, LBL_NE},
{'R', 0.2, 0.0, LBL_NE},
{'R', 0.3, 0.0, LBL_NE},
{'R', 0.4, 0.0, LBL_NE},
{'R', 0.5, 0.0, LBL_NE},
{'R', 0.6, 0.0, LBL_NE},
{'R', 0.7, 0.0, LBL_NE},
{'R', 0.8, 0.0, LBL_NE},
{'R', 0.9, 0.0, LBL_NE},
{'R', 1.0, 0.0, LBL_NE},
{'R', 1.2, 0.0, LBL_NE},
{'R', 1.4, 0.0, LBL_NE},
{'R', 1.6, 0.0, LBL_NE},
{'R', 1.8, 0.0, LBL_NE},
{'R', 2.0, 0.0, LBL_NE},
{'R', 3.0, 0.0, LBL_NE},
{'R', 4.0, 0.0, LBL_NE},
{'R', 5.0, 0.0, LBL_NE},
{'R', 10.0, 0.0, LBL_NE},
{'R', 20.0, 0.0, LBL_NE},
{'R', 0.1, 1.0, LBL_NE},
{'R', 0.2, 1.0, LBL_NE},
{'R', 0.3, 1.0, LBL_NE},
{'R', 0.4, 1.0, LBL_NE},
{'R', 0.5, 1.0, LBL_NE},
{'R', 0.1, -1.0, LBL_SE},
{'R', 0.2, -1.0, LBL_SE},
{'R', 0.3, -1.0, LBL_SE},
{'R', 0.4, -1.0, LBL_SE},
{'R', 0.5, -1.0, LBL_SE},
{'X', 0.0, 0.0, LBL_NE},
{'X', 0.0, 0.1, LBL_SE},
{'X', 0.0, 0.2, LBL_SE},
{'X', 0.0, 0.3, LBL_SE},
{'X', 0.0, 0.4, LBL_SE},
{'X', 0.0, 0.5, LBL_SE},
{'X', 0.0, 0.6, LBL_SE},
{'X', 0.0, 0.7, LBL_SE},
{'X', 0.0, 0.8, LBL_SE},
{'X', 0.0, 0.9, LBL_SE},
{'X', 0.0, 1.0, LBL_SE},
{'X', 1.0, 0.2, LBL_SE},
{'X', 1.0, 0.4, LBL_SE},
{'X', 1.0, 0.6, LBL_SE},
{'X', 1.0, 0.8, LBL_SE},
{'X', 1.0, 1.0, LBL_SE},
{'X', 0.0, 1.2, LBL_SE},
{'X', 0.0, 1.4, LBL_SE},
{'X', 0.0, 1.6, LBL_SE},
{'X', 0.0, 1.8, LBL_SE},
{'X', 0.0, 2.0, LBL_SE},
{'X', 0.0, 3.0, LBL_SE},
{'X', 0.0, 4.0, LBL_SE},
{'X', 0.0, 5.0, LBL_SE},
{'X', 0.0, 10.0, LBL_SE},
{'X', 0.0, 20.0, LBL_SE},
{'X', 0.0, -0.1, LBL_NE},
{'X', 0.0, -0.2, LBL_NE},
{'X', 0.0, -0.3, LBL_NE},
{'X', 0.0, -0.4, LBL_NE},
{'X', 0.0, -0.5, LBL_NE},
{'X', 0.0, -0.6, LBL_NE},
{'X', 0.0, -0.7, LBL_NE},
{'X', 0.0, -0.8, LBL_NE},
{'X', 0.0, -0.9, LBL_NE},
{'X', 0.0, -1.0, LBL_NE},
{'X', 1.0, -0.2, LBL_NE},
{'X', 1.0, -0.4, LBL_NE},
{'X', 1.0, -0.6, LBL_NE},
{'X', 1.0, -0.8, LBL_NE},
{'X', 1.0, -1.0, LBL_NE},
{'X', 0.0, -1.2, LBL_NE},
{'X', 0.0, -1.4, LBL_NE},
{'X', 0.0, -1.6, LBL_NE},
{'X', 0.0, -1.8, LBL_NE},
{'X', 0.0, -2.0, LBL_NE},
{'X', 0.0, -3.0, LBL_NE},
{'X', 0.0, -4.0, LBL_NE},
{'X', 0.0, -5.0, LBL_NE},
{'X', 0.0, -10.0, LBL_NE},
{'X', 0.0, -20.0, LBL_NE}
};
int nrlbldefs = sizeof(lbldef)/sizeof(label_definition);
linsmith-0.99.21/src/support.h 0000644 0000000 0000000 00000002511 11541550713 013067 0000000 0000000 /*
* DO NOT EDIT THIS FILE - it is generated by Glade.
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#undef Q_
#ifdef ENABLE_NLS
# define Q_(String) g_strip_context ((String), gettext (String))
#else
# define Q_(String) g_strip_context ((String), (String))
#endif
/*
* Public Functions.
*/
/*
* This function returns a widget in a component created by Glade.
* Call it with the toplevel widget in the component (i.e. a window/dialog),
* or alternatively any widget in the component, and the name of the widget
* you want returned.
*/
GtkWidget* lookup_widget (GtkWidget *widget,
const gchar *widget_name);
/*
* Private Functions.
*/
/* This is used to create the pixmaps used in the interface. */
GtkWidget* create_pixmap (GtkWidget *widget,
const gchar *filename);
/* This is used to create the pixbufs used in the interface. */
GdkPixbuf* create_pixbuf (const gchar *filename);
/* This is used to set ATK action descriptions. */
void glade_set_atk_action_description (AtkAction *action,
const gchar *action_name,
const gchar *description);
linsmith-0.99.21/src/chart.h 0000644 0000000 0000000 00000004476 11541145103 012461 0000000 0000000 /*
* chart.c: high level chart graphics generator
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#include
#include
#include "types.h"
extern gboolean printchart;
void chart_initialize(void);
void update_cursor_values(int x, int y);
void draw_swr_circle(double swr);
void stop_logomode(void);
void set_point(chart_pt pt, complex val, int ptype);
void set_point_fixed(chart_point *pt, gboolean fixed);
void show_point(chart_point *pt);
void plot_all_points(void);
chart_pt create_load_point(void);
void setlinestyle(GnomeCanvasGroup **grp, double lw,
int color);
void setfontstyle(GnomeCanvasGroup **grp, char *font,
double size, int color);
GnomeCanvasItem *do_arc(GnomeCanvasGroup **grp, double x, double y,
double arcb, double arce, double rad);
GnomeCanvasItem *do_line(GnomeCanvasGroup **grp, double x1, double y1,
double x2, double y2);
GnomeCanvasItem *do_string(GnomeCanvasGroup **grp, char *lbl,
double x, double y, double size, double angle);
GnomeCanvasItem *rg_arc(GnomeCanvasGroup **grp, complex zb, complex ze,
double z0, gboolean imp_mode);
GnomeCanvasItem *x_arc(GnomeCanvasGroup **grp, complex zb, complex ze,
double z0);
GnomeCanvasItem *k_arc(GnomeCanvasGroup **grp, complex zbeg, complex zend,
double z0);
GnomeCanvasItem *zy_line(GnomeCanvasGroup **grp, complex z);
void create_printer_chart(void);
void close_printer_chart(void);
void update_chart_z0(void);
void recalculate_all(int dest);
void test_routine(void);
void change_zoom(int how);
void comp_discr_val_scale_value_changed(GtkRange *range);
linsmith-0.99.21/src/log.h 0000644 0000000 0000000 00000002420 10447066166 012143 0000000 0000000 /*
* log.c: Log generation
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#include
#include
enum { LOG_ELEM,
LOG_Z_Y,
LOG_RESULT,
LOG_COLS
};
void loglist_initialize(GtkTreeView *tview);
void loglist_create(int nr_lds, int nr_els);
void loglist_set_impedance(int ldnr, int elnr,
complex el_imp, complex imp, int type);
void loglist_set_load(int ldnr, double freq, complex imp);
void loglist_show(void);
void loglist_export(void);
linsmith-0.99.21/src/chart.c 0000644 0000000 0000000 00000072360 11541664776 012477 0000000 0000000 /*
* chart.c: high level chart graphics generator
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#include
#include
#include
#include "support.h"
#include "types.h"
#include "element.h"
#include "printer.h"
#include "global.h"
#include "load.h"
#include "log.h"
#include "misc.h"
#include "main.h"
#include "chart_def.h"
#include "chart.h"
// Note that the initial_bg is relative to PACKAGE_DATA_DIR
#define initial_bg "/pixmaps/linsmith/smithent.png"
gdouble chartw, charth, z0 = 50.0,
last_lw = 0.1;
gboolean logomode = TRUE,
imp_mode = TRUE;
complex act_imp;
int load_nr,
el_nr,
nr_els,
last_color = 0,
zoom_factor = 0,
plot_dest = DST_SCREEN;
GnomeCanvas *chart_canvas = NULL;
GnomeCanvasItem *chart_bg = NULL,
*swr_circle = NULL;
GnomeCanvasGroup *bg_group = NULL,
*point_group = NULL,
*line_group = NULL;
struct {
char *name;
double factor;
} zoom_table[] = {
{"x0.1", 0.1}, {"x0.15", 0.15}, {"x0.2", 0.2},
{"x0.3", 0.3}, {"x0.5", 0.5}, {"x0.7", 0.7},
{"x1", 1.0},
{"x1.5", 1.5}, {"x2", 2.0}, {"x3", 3.0}, {"x5", 5.0},
{"x7", 7.0}, {"x10", 10.0}
};
#define ZOOM_MIN -6
#define ZOOM_MAX 6
void
make_group(GnomeCanvasGroup **grp)
{
GnomeCanvasItem *item;
if (!(*grp)) {
item = gnome_canvas_item_new(gnome_canvas_root(chart_canvas),
gnome_canvas_group_get_type(),
"x", 0.0,
"y", 0.0,
NULL);
*grp = GNOME_CANVAS_GROUP(item);
}
}
void
update_chart_z0(void)
{
GtkWidget *w = lookup_widget(MainWindow, "z0_cbbox");
char *p;
double z0 = atof(p = gtk_combo_box_get_active_text(GTK_COMBO_BOX(w)));
g_free(p);
if (z0 == 0) {
ok_dialog(_("Value"), _("Invalid value for Zo"));
return;
}
pref.chart_z0 = z0;
}
void
set_chart_background_bitmap(char *bgf)
{
GnomeCanvasGroup *grp = gnome_canvas_root(chart_canvas);
GdkPixbuf *chart_pxm;
if (debug & DBG_GRAPHICS)
fprintf(stderr, "%s\n", bgf);
chart_pxm = gdk_pixbuf_new_from_file(bgf, NULL);
if (!chart_pxm) {
printf(_("Can't load the chart background\n"));
return;
}
chartw = gdk_pixbuf_get_width(chart_pxm);
charth = gdk_pixbuf_get_height(chart_pxm);
if (chart_bg) gtk_object_destroy(GTK_OBJECT(chart_bg));
chart_bg = gnome_canvas_item_new(grp,
gnome_canvas_pixbuf_get_type(),
"pixbuf", chart_pxm,
"x", 0.0, "y", -charth/2,
"width", chartw, "height", charth,
NULL);
gdk_pixbuf_unref(chart_pxm);
gnome_canvas_set_scroll_region(chart_canvas,
0.0, -charth/2, chartw, charth/2);
}
void
set_chart_background_vector(void)
{
GnomeCanvasGroup *grp = gnome_canvas_root(chart_canvas);
int def;
if (chart_bg) gtk_object_destroy(GTK_OBJECT(chart_bg));
gnome_canvas_item_new(grp,
gnome_canvas_ellipse_get_type(),
"x1", 0.0,
"y1", (double) -pref.vec_bg_radius,
"x2", (double) pref.vec_bg_radius * 2,
"y2", (double) pref.vec_bg_radius,
"fill_color_rgba", pref.vec_background,
NULL);
for (def = 0; def < nrpldefs; def++) {
switch (pldef[def].type) {
case 'R':
setlinestyle(&grp, 1, pldef[def].bold ? pref.arc_color[RB_ARC] :
pref.arc_color[R_ARC]);
rg_arc(&grp, pldef[def].val + pldef[def].a_max * I,
pldef[def].val + pldef[def].a_min * I, 1.0, TRUE);
break;
case 'X':
setlinestyle(&grp, 1, pldef[def].bold ? pref.arc_color[XB_ARC] :
pref.arc_color[X_ARC]);
x_arc(&grp, pldef[def].a_max + pldef[def].val * I,
pldef[def].a_min + pldef[def].val * I, 1.0);
x_arc(&grp, pldef[def].a_max - pldef[def].val * I,
pldef[def].a_min - pldef[def].val * I, 1.0);
break;
}
}
gnome_canvas_set_scroll_region(chart_canvas,
0.0,
-pref.vec_bg_radius,
pref.vec_bg_radius * 2,
pref.vec_bg_radius);
}
void
set_chart_background(void)
{
if (pref.use_bitmap)
set_chart_background_bitmap(pref.chart);
else
set_chart_background_vector();
}
void
draw_swr_circle(double swr)
{
if (swr_circle)
gtk_object_destroy(GTK_OBJECT(swr_circle));
setlinestyle(&bg_group, 1, pref.swr_color);
swr_circle = k_arc(&bg_group, pref.chart_z0/swr - 0.001*I,
pref.chart_z0/swr + 0.001*I, pref.chart_z0);
}
void
draw_extras(void)
{
if (pref.show_swr)
draw_swr_circle(pref.swr_circle);
if (pref.show_g1) {
setlinestyle(&bg_group, 1, pref.g1_color);
rg_arc(&bg_group, pref.chart_z0 - 1e5*I, pref.chart_z0 + 1e5*I,
pref.chart_z0, FALSE);
}
}
void
stop_logomode(void)
{
if (logomode) {
set_chart_background();
make_group(&bg_group);
make_group(&line_group);
make_group(&point_group);
draw_extras();
logomode = FALSE;
}
}
void
chart_initialize(void)
{
char *p = g_strconcat(PACKAGE_DATA_DIR, initial_bg, NULL);
chart_canvas = GNOME_CANVAS(lookup_widget(MainWindow, "chart_canvas"));
set_chart_background_bitmap(p);
if (debug & DBG_GRAPHICS)
fprintf(stderr, "[chart_init] %s\n", p);
g_free(p);
}
void
pos2impedance(complex *c, gdouble x, gdouble y)
{
gdouble tX, tY, M,
radius = pref.use_bitmap ? pref.chartradius : pref.vec_bg_radius,
x_offs = pref.use_bitmap ? pref.x_offs : 0,
y_offs = pref.use_bitmap ? pref.y_offs : 0;
tX = (x - x_offs - radius) / radius;
tY = y / radius;
M = (pow(1.0 - tX, 2.0) + pow(tY, 2.0));
*c = pref.chart_z0 * (1.0 - pow(tX, 2.0) - pow(tY, 2.0)) / M -
pref.chart_z0 * 2.0 * tY / M * I;
}
complex
reflection_coef(complex z, complex z0)
{
complex k = (z - z0)/(z + z0);
if (debug & DBG_MATH)
fprintf(stderr, "[refl_c] z: (%f %+fj), z0: (%f %+fj)\n",
creal(z), cimag(z), creal(z0), cimag(z0));
return k;
}
void
update_cursor_values(int x, int y)
{
GtkWidget *w;
double m, swr, q, wx, wy,
radius = pref.use_bitmap ? pref.chartradius : pref.vec_bg_radius,
x_offs = pref.use_bitmap ? pref.x_offs : 0,
y_offs = pref.use_bitmap ? pref.y_offs : 0;
complex imp, k;
char *bff;
gnome_canvas_window_to_world(chart_canvas, x, y, &wx, &wy);
m = sqrt(pow(wx - x_offs - radius, 2.0) +
pow(wy - y_offs, 2.0));
if (m > radius) return;
stop_logomode();
pos2impedance(&imp, wx, wy);
k = reflection_coef(imp, pref.chart_z0);
if (cabs(k) == 1.0) {
swr = 9999.9;
} else {
swr = -(cabs(k) + 1.0)/(cabs(k) - 1.0);
}
if (swr > 10000.0)
swr = 9999.9;
// Quality factor
if (creal(imp) != 0.0) {
q = cimag(imp) / creal(imp);
} else {
q = 999.9;
}
if (q > 1000.0)
q = 999.9;
else
if (q < -1000.0)
q = -999.9;
w = lookup_widget(MainWindow, "stat_z_lbl");
bff = g_strdup_printf("%8.2lf %+8.2lfj",
pref.cursor_font, creal(imp), cimag(imp));
gtk_label_set_markup(GTK_LABEL(w), bff);
g_free(bff);
w = lookup_widget(MainWindow, "stat_zpol_lbl");
bff = g_strdup_printf("%7.2lf <%.2lf°",
pref.cursor_font, cabs(imp), carg(imp)*57.29578);
gtk_label_set_markup(GTK_LABEL(w), bff);
g_free(bff);
w = lookup_widget(MainWindow, "stat_swr_lbl");
bff = g_strdup_printf("%.2lf",
pref.cursor_font, swr);
gtk_label_set_markup(GTK_LABEL(w), bff);
g_free(bff);
w = lookup_widget(MainWindow, "stat_q_lbl");
bff = g_strdup_printf("%.2lf",
pref.cursor_font, q);
gtk_label_set_markup(GTK_LABEL(w), bff);
g_free(bff);
}
//---------------------------------------------------------------------
// chart_point routines
//---------------------------------------------------------------------
static gint
point_event(GnomeCanvasItem *item, GdkEvent *event, gpointer data)
{
static double x, y;
double new_x, new_y;
GdkCursor *fleur;
static int dragging;
double item_x, item_y;
item_x = event->button.x;
item_y = event->button.y;
gnome_canvas_item_w2i(item->parent, &item_x, &item_y);
switch (event->type) {
case GDK_BUTTON_PRESS:
switch(event->button.button) {
case 1:
x = item_x;
y = item_y;
fleur = gdk_cursor_new(GDK_FLEUR);
gnome_canvas_item_grab(item,
GDK_POINTER_MOTION_MASK |
GDK_BUTTON_RELEASE_MASK,
fleur,
event->button.time);
gdk_cursor_destroy(fleur);
dragging = TRUE;
break;
default:
break;
}
break;
case GDK_MOTION_NOTIFY:
if (dragging && (event->motion.state & GDK_BUTTON1_MASK)) {
// CHANGE chartradius for vector too
// move_rotation_cursor(data, atan2(pref.chartradius - item_x,
// item_y));
}
break;
case GDK_BUTTON_RELEASE:
gnome_canvas_item_ungrab(item, event->button.time);
dragging = FALSE;
break;
default:
break;
}
return FALSE;
}
chart_pt
create_load_point(void)
{
chart_pt pt = malloc(sizeof(chart_point));
if (debug & DBG_GRAPHICS)
fprintf(stderr, "[create_ld]\n");
stop_logomode();
pt->group = point_group;
pt->point = gnome_canvas_item_new(point_group,
gnome_canvas_ellipse_get_type(),
"width_pixels", 1,
NULL);
pt->handler = g_signal_connect(GTK_OBJECT(pt->point), "event",
GTK_SIGNAL_FUNC(point_event), pt);
set_point_fixed(pt, TRUE);
return pt;
}
chart_pt
create_element_point(void)
{
chart_pt pt = malloc(sizeof(chart_point));
if (debug & DBG_GRAPHICS)
fprintf(stderr, "[create_el_pt]\n");
stop_logomode();
pt->group = point_group;
pt->point = gnome_canvas_item_new(point_group,
gnome_canvas_ellipse_get_type(),
"width_pixels", 1,
NULL);
pt->handler = g_signal_connect(GTK_OBJECT(pt->point), "event",
GTK_SIGNAL_FUNC(point_event), pt);
set_point_fixed(pt, TRUE);
return pt;
}
chart_ln
create_element_line(void)
{
chart_ln ln = malloc(sizeof(chart_line));
if (debug & DBG_GRAPHICS)
fprintf(stderr, "[create_el_ln]\n");
stop_logomode();
ln->group = line_group;
ln->line = gnome_canvas_item_new(line_group,
gnome_canvas_line_get_type(),
"width_pixels", 1,
NULL);
return ln;
}
void
show_point(chart_pt pt)
{
double x, y, s2,
radius = pref.use_bitmap ? pref.chartradius : pref.vec_bg_radius,
x_offs = pref.use_bitmap ? pref.x_offs : 0,
y_offs = pref.use_bitmap ? pref.y_offs : 0;
guint32 color;
complex k = reflection_coef(pt->value, pref.chart_z0);
x = 1 + creal(k);
y = cimag(k);
if (plot_dest == DST_PRINT)
print_point(x, y, pt->style);
s2 = pref.point_size[pt->style]/2;
color = pref.point_color[pt->style];
if (debug & DBG_GRAPHICS)
fprintf(stderr, "[show_pt] re:%f im:%f size:%f color:%08x\n",
creal(pt->value), cimag(pt->value), s2, color);
gnome_canvas_item_set(pt->point,
"x1", x * radius + x_offs - s2,
"y1", -y * radius + y_offs + s2,
"x2", x * radius + x_offs + s2,
"y2", -y * radius + y_offs - s2,
"fill_color_rgba", color,
"outline_color_rgba", pt->fixed ? 0x000000ff : color,
NULL);
}
void
set_point(chart_pt pt, complex val, int ptype)
{
pt->value = val;
pt->line = FALSE;
pt->fixed = TRUE;
pt->style = ptype;
show_point(pt);
}
void
set_point_fixed(chart_point *pt, gboolean fixed)
{
int color;
if (fixed) {
if (pt->fixed) return;
pt->fixed = TRUE;
g_signal_handler_block(GTK_OBJECT(pt->point), pt->handler);
gnome_canvas_item_set(pt->point,
"outline-color", "black",
NULL);
} else {
if (!pt->fixed) return;
pt->fixed = FALSE;
color = pref.point_color[pt->style];
g_signal_handler_unblock(GTK_OBJECT(pt->point), pt->handler);
gnome_canvas_item_set(pt->point,
"outline-color-rgba", color,
NULL);
}
}
gboolean
foreach_load(GtkTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter,
gpointer user_data)
{
load_definition load;
char bff[30];
gtk_tree_model_get(model, iter,
LD_FREQ_VAL, &load.f,
LD_REAL_VAL, &load.r,
LD_REACT_VAL, &load.x,
LD_POINT, &load.pt,
-1);
set_point(load.pt, load.r + I*load.x, ZPT_LOAD);
gtk_list_store_set(GTK_LIST_STORE(model), iter,
LD_POINT, load.pt,
-1);
sprintf(bff, "%.1f MHz", load.f);
load_nr++;
return FALSE;
}
void
recalculate_loads(void)
{
GtkWidget *loads = lookup_widget(MainWindow, "load_treeview");
GtkTreeModel *store = gtk_tree_view_get_model(GTK_TREE_VIEW(loads));
update_chart_z0();
if (store) {
load_nr = 0;
gtk_tree_model_foreach(store, foreach_load, NULL);
}
}
complex
reciprocal(complex z)
{
return pref.chart_z0 * pref.chart_z0 / z;
}
//---------------------------------------------------------------------
// Recalculate the circuit:
// for each element
// for each frequency
// calculate component value
// calculate the resulting impedance
//---------------------------------------------------------------------
void
combine_impedance(el_definition *el, double f)
{
complex res, el_imp;
double wl, z0 = pref.chart_z0;
switch (el->typ) {
case ELT_CAP:
case ELT_IND:
case ELT_PARLC:
case ELT_SERLC:
case ELT_OSTUB:
case ELT_SSTUB:
switch (el->conn) {
case ELC_SERIES:
el_imp = calc_el_impedance(el, f);
act_imp = act_imp + el_imp;
break;
case ELC_PARALLEL:
el_imp = calc_el_impedance(el, f);
act_imp = (act_imp * el_imp)/(act_imp + el_imp);
break;
}
break;
case ELT_LINE:
wl = el->val1 / (el->vf * 300000 / f);
el_imp = el->val1 / wl;
act_imp = calc_line_impedance(act_imp, el->z0, wl, f);
break;
case ELT_XFORM:
el_imp = el->val1;
act_imp = el->val1 * act_imp;
break;
case ELT_ZY:
el_imp = 0.0;
break;
}
if (debug & DBG_ELEMENTS)
fprintf(stderr, "[combined] %f %fj\n", creal(act_imp), cimag(act_imp));
loglist_set_impedance(load_nr, el_nr, el_imp, act_imp, el->typ);
}
void
add_point_to_list(chart_ptlist *ptlst, gboolean islast)
{
chart_pt pt;
if (load_nr == 0)
clear_element_ptlist(ptlst);
pt = create_element_point();
*ptlst = g_list_append(*ptlst, pt);
set_point(pt, imp_mode ? act_imp : reciprocal(act_imp),
islast ? ZPT_FINAL : ZPT_INT);
}
void
add_line_to_list(el_definition *el, complex prev_imp, double f)
{
chart_ln ln;
int arctype;
gboolean prev_first;
complex imp1, imp2;
double wl;
if (load_nr == 0)
clear_element_lnlist(&el->lnlst);
ln = create_element_line();
el->lnlst = g_list_append(el->lnlst, ln);
switch (el->typ) {
case ELT_OSTUB:
case ELT_SSTUB:
case ELT_LINE:
wl = 300000 * el->vf / f; // milimeters
}
switch (el->typ) {
case ELT_CAP: // R is constant here.
case ELT_IND:
case ELT_PARLC:
case ELT_SERLC:
case ELT_OSTUB:
case ELT_SSTUB:
switch (el->conn) {
case ELC_SERIES: arctype = Z_ARC; break;
case ELC_PARALLEL: arctype = Y_ARC; break;
}
if (cimag(prev_imp) < cimag(act_imp)) { // Inductive
imp2 = prev_imp; imp1 = act_imp;
} else { // Capacitive
imp1 = prev_imp; imp2 = act_imp;
}
switch (el->conn) {
case ELC_SERIES:
setlinestyle(&ln->group, 1, pref.arc_color[Z_ARC]);
ln->line = rg_arc(&ln->group, imp1, imp2, pref.chart_z0, imp_mode);
if (plot_dest == DST_PRINT) {
print_setlinestyle(pref.prt_arc_size[Z_ARC],
pref.prt_arc_color[Z_ARC]);
ln->line = rg_arc(NULL, imp1, imp2, pref.chart_z0, imp_mode);
}
break;
case ELC_PARALLEL:
setlinestyle(&ln->group, 1, pref.arc_color[Y_ARC]);
ln->line = rg_arc(&ln->group, reciprocal(imp2), reciprocal(imp1),
pref.chart_z0, !imp_mode);
if (plot_dest == DST_PRINT) {
print_setlinestyle(pref.prt_arc_size[Y_ARC],
pref.prt_arc_color[Y_ARC]);
ln->line = rg_arc(NULL, reciprocal(imp2), reciprocal(imp1),
pref.chart_z0, !imp_mode);
}
break;
}
break;
case ELT_LINE:
setlinestyle(&ln->group, 1, pref.arc_color[K_ARC]);
if (imp_mode)
ln->line = k_arc(&ln->group, act_imp, prev_imp, el->z0);
else
ln->line = k_arc(&ln->group, reciprocal(act_imp),
reciprocal(prev_imp), el->z0);
if (plot_dest == DST_PRINT) {
print_setlinestyle(pref.prt_arc_size[K_ARC],
pref.prt_arc_color[K_ARC]);
if (imp_mode)
ln->line = k_arc(NULL, act_imp, prev_imp, el->z0);
else
ln->line = k_arc(&ln->group, reciprocal(act_imp),
reciprocal(prev_imp), el->z0);
}
break;
case ELT_ZY:
setlinestyle(&ln->group, 1, pref.arc_color[ZY_LINE]);
ln->line = zy_line(&ln->group, act_imp);
if (plot_dest == DST_PRINT) {
print_setlinestyle(pref.prt_arc_size[ZY_LINE],
pref.prt_arc_color[ZY_LINE]);
ln->line = zy_line(NULL, act_imp);
}
imp_mode = !imp_mode;
break;
}
}
gboolean
recalc_each_element(GtkTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter,
gpointer user_data)
{
GtkTreeSelection *sel;
el_definition el;
chart_pt pt;
complex prev_imp;
double f;
char bff[30];
gboolean haveselection;
f = ((load_definition *)user_data)->f;
sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(el_view));
if (gtk_tree_selection_iter_is_selected(sel, iter)) {
el = act_el;
} else {
gtk_tree_model_get(model, iter,
EL_CONN_VAL, &el.conn,
EL_TYPE_VAL, &el.typ,
EL_VAL_VAL1, &el.val1,
EL_VAL_VAL2, &el.val2,
EL_Z0_VAL, &el.z0,
EL_VF_VAL, &el.vf,
EL_USE_LOSS, &el.useloss,
EL_LOSS1_VAL, &el.loss1,
EL_MHZ1_VAL, &el.mhz1,
EL_LOSS2_VAL, &el.loss2,
EL_MHZ2_VAL, &el.mhz2,
-1);
}
gtk_tree_model_get(model, iter,
EL_POINTLIST, &el.ptlst,
EL_LINELIST, &el.lnlst,
-1);
if (debug & DBG_ELEMENTS)
fprintf(stderr, "[each elem] %d, %d, %f, %f\n",
el.conn, el.typ, el.val1, el.val2);
prev_imp = act_imp;
combine_impedance(&el, f);
sprintf(bff, "Z%d", load_nr);
add_line_to_list(&el, prev_imp, f);
add_point_to_list(&el.ptlst, el_nr == nr_els-1);
gtk_list_store_set(GTK_LIST_STORE(model), iter,
EL_POINTLIST, el.ptlst,
EL_LINELIST, el.lnlst,
-1);
el_nr++;
return FALSE;
}
gboolean
recalc_each_load(GtkTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter,
gpointer user_data)
{
GtkTreeModel *elstore = user_data;
load_definition load;
complex imp;
gtk_tree_model_get(model, iter,
LD_FREQ_VAL, &load.f,
LD_REAL_VAL, &load.r,
LD_REACT_VAL, &load.x,
LD_POINT, &load.pt,
-1);
act_imp = load.r + I * load.x;
imp_mode = TRUE;
loglist_set_load(load_nr, load.f, act_imp);
if (debug & DBG_LOADS)
fprintf(stderr, "[each load] At %f: %f %fj\n", load.f, load.r, load.x);
el_nr = 0;
nr_els = gtk_tree_model_iter_n_children(elstore, NULL);
gtk_tree_model_foreach(elstore, recalc_each_element, &load);
load_nr++;
return FALSE;
}
void
recalculate_elements(void)
{
GtkWidget *els = lookup_widget(MainWindow, "circ_treeview");
GtkTreeModel *elstore = gtk_tree_view_get_model(GTK_TREE_VIEW(els));
GtkWidget *loads = lookup_widget(MainWindow, "load_treeview");
GtkTreeModel *ldstore = gtk_tree_view_get_model(GTK_TREE_VIEW(loads));
load_nr = 0;
gtk_tree_model_foreach(ldstore, recalc_each_load, elstore);
}
void
recalculate_all(int dest)
{
update_chart_z0();
plot_dest = dest;
loglist_create(number_loads(), number_elements());
recalculate_loads();
recalculate_elements();
loglist_show();
}
//---------------------------------------------------------------------
// Chart element generation
// arcs are in radians!
//---------------------------------------------------------------------
void
setlinestyle(GnomeCanvasGroup **grp, double lw, int color)
{
if (!grp) {
print_setlinestyle(lw, color);
return;
}
last_lw = lw;
last_color = color;
}
void
setfontstyle(GnomeCanvasGroup **grp, char *font, double size, int color)
{
if (!grp)
print_setfontstyle(font, size, color);
}
GnomeCanvasItem *
do_arc(GnomeCanvasGroup **grp,
double x, double y, double arcb, double arce, double rad)
{
GnomeCanvasItem *item;
GnomeCanvasPoints *points;
int nr, a;
guint32 color;
double px, py, arc, arclen, darc,
x_offs = pref.use_bitmap ? pref.x_offs : 0,
y_offs = pref.use_bitmap ? pref.y_offs : 0,
radius = pref.use_bitmap ? pref.chartradius : pref.vec_bg_radius;
if (!grp) {
print_do_arc(x, y, arcb, arce, rad);
return NULL;
}
arc = arce - arcb;
if (arc < 0) arc = arc + 2 * M_PI;
arclen = arc * radius;
nr = arclen / 3 + 1;
if (nr < 10) nr = 10;
darc = arc / (nr-1);
points = gnome_canvas_points_new(nr);
for (a = 0; a < nr; a++) {
px = radius *( x + rad * cos(arcb + a*darc)) + x_offs;
py = radius *(-y - rad * sin(arcb + a*darc)) + y_offs;
if (debug & DBG_MATH)
fprintf(stderr, "[do_arc] %f %f\n", px, py);
points->coords[a*2 + 0] = px;
points->coords[a*2 + 1] = py;
}
item = gnome_canvas_item_new(*grp,
gnome_canvas_line_get_type(),
"points", points,
"fill_color_rgba", last_color,
"width_pixels", 1,
NULL);
gnome_canvas_points_unref(points);
return item;
}
GnomeCanvasItem *
do_line(GnomeCanvasGroup **grp, double x1, double y1,
double x2, double y2)
{
GnomeCanvasItem *item;
GnomeCanvasPoints *points;
double radius = pref.use_bitmap ? pref.chartradius : pref.vec_bg_radius,
x_offs = pref.use_bitmap ? pref.x_offs : 0,
y_offs = pref.use_bitmap ? pref.y_offs : 0;
if (!grp) {
print_do_line(x1, y1, x2, y2);
return NULL;
}
points = gnome_canvas_points_new(2);
points->coords[0] = x1 * radius + x_offs;
points->coords[1] = -y1 * radius + y_offs;
points->coords[2] = x2 * radius + x_offs;
points->coords[3] = -y2 * radius + y_offs;
item = gnome_canvas_item_new(*grp,
gnome_canvas_line_get_type(),
"points", points,
"fill_color_rgba", last_color,
"width_pixels", 1,
NULL);
gnome_canvas_points_unref(points);
return item;
}
GnomeCanvasItem *
do_string(GnomeCanvasGroup **grp, char *lbl, double x, double y,
double size, double angle)
{
if (!grp) {
print_do_string(lbl, x, y, size, angle);
return NULL;
}
return NULL;
}
GnomeCanvasItem *
rg_arc(GnomeCanvasGroup **grp,
complex zb, complex ze, double z0,
gboolean imp_mode)
{
double radius;
complex rcb, rce;
radius = (1.0 - reflection_coef(creal(zb), z0)) / 2.0;
rcb = reflection_coef(zb, z0);
rce = reflection_coef(ze, z0);
rcb = rcb - (1 - radius);
rce = rce - (1 - radius);
if (cimag(zb) > cimag(ze)) {
if (imp_mode)
return do_arc(grp, 2.0 - radius, 0.0, carg(rcb), carg(rce), radius);
else
return do_arc(grp, radius, 0.0, carg(rcb) + M_PI, carg(rce) + M_PI,
radius);
} else {
if (imp_mode)
return do_arc(grp, 2.0 - radius, 0.0, carg(rce), carg(rcb), radius);
else
return do_arc(grp, radius, 0.0, carg(rce) + M_PI, carg(rcb) + M_PI,
radius);
}
}
GnomeCanvasItem *
x_arc(GnomeCanvasGroup **grp, complex zb, complex ze, double z0)
{
double radius;
complex rcb, rce;
rcb = reflection_coef(zb, z0);
rce = reflection_coef(ze, z0);
if (cimag(zb) == 0) {
return do_line(grp, creal(rcb) + 1, 0.0, creal(rce) + 1, 0.0);
} else {
radius = z0 / cimag(zb);
rcb = rcb - radius * I - 1.0;
rce = rce - radius * I - 1.0;
if (cimag(zb) > 0)
return do_arc(grp, 2.0, radius, carg(rce), carg(rcb), fabs(radius));
else
return do_arc(grp, 2.0, radius, carg(rcb), carg(rce), fabs(radius));
}
}
GnomeCanvasItem *
k_arc(GnomeCanvasGroup **grp, complex zbeg, complex zend, double z0)
{
double b_ang, e_ang, ch_z0 = pref.chart_z0,
swr1, swr2, rcabs, rcrad, rc1, rc2;
complex rc, b_rc, e_rc, test;
// Calculate the circle's center point
rc = reflection_coef(zbeg, z0);
rcabs = cabs(rc);
swr1 = (1 + rcabs)/(1 - rcabs) * z0 / ch_z0;
swr2 = (1 - rcabs)/(1 + rcabs) * z0 / ch_z0;
rc1 = (swr1 - 1)/(swr1 + 1);
rc2 = (swr2 - 1)/(swr2 + 1);
rcrad = (rc1 - rc2)/2;
b_rc = reflection_coef(zbeg, ch_z0);
e_rc = reflection_coef(zend, ch_z0);
b_ang = carg(b_rc - (rc1 - rcrad));
e_ang = carg(e_rc - (rc1 - rcrad));
switch (pref.rotation) {
case TO_GENERATOR:
return do_arc(grp, 1 + rc1 - rcrad, 0.0, b_ang, e_ang, rcrad);
case TO_LOAD:
return do_arc(grp, 1 + rc1 - rcrad, 0.0, e_ang, b_ang, rcrad);
}
}
GnomeCanvasItem *
zy_line(GnomeCanvasGroup **grp, complex z)
{
double ch_z0 = pref.chart_z0;
complex rc;
rc = reflection_coef(z, ch_z0);
return do_line(grp, creal(rc) + 1.0, cimag(rc),
-creal(rc) + 1.0, -cimag(rc));
}
GnomeCanvasItem *
r_label(GnomeCanvasGroup **grp, double r, double x, char where)
{
complex rc = reflection_coef(r + x*I, 1.0);
double radius, x1, x2, y2, alpha;
char bff[10];
radius = (1.0 - reflection_coef(r, 1.0)) / 2.0,
x1 = 1.0 - radius;
x2 = creal(rc);
y2 = cimag(rc);
sprintf(bff, "%.*f", (r > 5) ? 0 : 1, r);
return do_string(grp, bff, creal(rc) + 1, cimag(rc), 2.0,
atan2(y2, x2-x1) - M_PI/2);
}
GnomeCanvasItem *
x_label(GnomeCanvasGroup **grp, double r, double x, char where)
{
complex rc = reflection_coef(r + x*I, 1.0);
double radius, x1, x2, y2, alpha;
char bff[10];
radius = (1.0 - reflection_coef(r, 1.0)) / 2.0,
x1 = 1.0 - radius;
x2 = creal(rc);
y2 = cimag(rc);
sprintf(bff, "%.*f", (fabs(x) > 5) ? 0 : 1, fabs(x));
return do_string(grp, bff, creal(rc) + 1, cimag(rc), 2.0,
atan2(y2, x2-x1) + M_PI);
}
void
create_printer_chart(void)
{
int el;
complex cmin, cmax;
// print_chart();
for (el = 0; el < nrpldefs; el++) {
switch (pldef[el].type) {
case 'R':
cmin = (pldef[el].val + pldef[el].a_min * I) * pref.chart_z0,
cmax = (pldef[el].val + pldef[el].a_max * I) * pref.chart_z0;
setlinestyle(NULL,
pldef[el].bold ? pref.prt_arc_size[RB_ARC] :
pref.prt_arc_size[R_ARC],
pldef[el].bold ? pref.prt_arc_color[RB_ARC] :
pref.prt_arc_color[R_ARC]);
rg_arc(NULL, cmax, cmin, pref.chart_z0, TRUE);
break;
case 'X':
cmin = (pldef[el].a_min + pldef[el].val * I) * pref.chart_z0,
cmax = (pldef[el].a_max + pldef[el].val * I) * pref.chart_z0;
setlinestyle(NULL,
pldef[el].bold ? pref.prt_arc_size[XB_ARC] :
pref.prt_arc_size[X_ARC],
pldef[el].bold ? pref.prt_arc_color[XB_ARC] :
pref.prt_arc_color[X_ARC]);
x_arc(NULL, cmax, cmin, pref.chart_z0);
x_arc(NULL, conj(cmax), conj(cmin), pref.chart_z0);
break;
}
}
for (el = 0; el < nrlbldefs; el++) {
setfontstyle(NULL, pref.prt_font_name,
pref.prt_font_size,
pref.prt_font_color);
switch (lbldef[el].type) {
case 'R':
r_label(NULL, lbldef[el].re, lbldef[el].im, lbldef[el].pos);
break;
case 'X':
x_label(NULL, lbldef[el].re, lbldef[el].im, lbldef[el].pos);
break;
}
}
if (pref.show_swr) {
setlinestyle(NULL, pref.prt_swr_size, pref.prt_swr_color);
k_arc(NULL, pref.chart_z0/pref.swr_circle - 1e-5*I,
pref.chart_z0/pref.swr_circle + 1e-5*I, pref.chart_z0);
}
if (pref.show_g1) {
setlinestyle(NULL, pref.prt_g1_size, pref.prt_g1_color);
rg_arc(NULL, 1.0 - 1e-5*I, 1.0 + 1e-5*I, 1.0, TRUE);
}
}
void
test_routine(void)
{
printf("Testing\n");
setlinestyle(&line_group, 1, pref.arc_color[Z_ARC]);
do_arc(&line_group, 1, 0, 0, M_PI/2, 0.2);
}
void
change_zoom(int how)
{
GtkWidget *w;
switch (how) {
case ZOOM_IN:
if (zoom_factor == ZOOM_MAX) return;
zoom_factor++;
break;
case ZOOM_OUT:
if (zoom_factor == ZOOM_MIN) return;
zoom_factor--;
}
w = lookup_widget(MainWindow, "zoom_in_btn");
gtk_widget_set_sensitive(w, zoom_factor != ZOOM_MAX);
w = lookup_widget(MainWindow, "zoom_out_btn");
gtk_widget_set_sensitive(w, zoom_factor != ZOOM_MIN);
gnome_canvas_set_pixels_per_unit(chart_canvas,
zoom_table[zoom_factor-ZOOM_MIN].factor);
w = lookup_widget(MainWindow, "zoom_lbl");
gtk_label_set_text(GTK_LABEL(w), zoom_table[zoom_factor - ZOOM_MIN].name);
}
void
comp_discr_val_scale_value_changed(GtkRange *range)
{
}
linsmith-0.99.21/src/remote.c 0000644 0000000 0000000 00000003573 10715741717 012662 0000000 0000000 #include
#include
#include "support.h"
#include "main.h"
#include "global.h"
#include "misc.h"
#include "remote.h"
int
fifos_created(void)
{
int res;
struct stat buf;
res = mkfifo(pref.rem_inpipe, 0777);
if (res != 0) {
ok_dialog(_("Remote"), _("Cannot create the input FIFO.\n"
"Possibly the file already exists. "
"Is another version of linsmith running?\n"
"I'll continue without remote access."));
return FALSE;
}
res = mkfifo(pref.rem_outpipe, 0777);
if (res != 0) {
ok_dialog(_("Remote"), _("Cannot create the output FIFO.\n"
"Possibly a stale file left over from a previous run.\n"
"I'll continue without remote access."));
unlink(pref.rem_inpipe);
return FALSE;
}
}
int
remove_fifos(gpointer data)
{
// if not even enabled manually, just go away
if (pref.rem_mode != REMOTE_SOCK) return;
printf("Removing the remote pipes\n");
close(pref.inpipe);
close(pref.outpipe);
unlink(pref.rem_inpipe);
unlink(pref.rem_outpipe);
return 0;
}
void
remote_create_fifos(void)
{
// if not even enabled manually, just go away
if (pref.rem_mode != REMOTE_SOCK) return;
// if enabled, try to get the fifos ready
if (!fifos_created()) return;
// add the removal function to the main loop
gtk_quit_add(0, remove_fifos, NULL);
pref.inpipe = open(pref.rem_inpipe, O_RDONLY | O_NONBLOCK);
pref.outpipe = open(pref.rem_outpipe, O_WRONLY);
return;
}
void
remote_send_command(char *cmd)
{
}
int
remote_receive_reply(char *reply)
{
return FALSE;
}
void
set_remote_enabled(GtkWidget *ref, int state)
{
GtkWidget *w = lookup_widget(ref, "confrem_frame");
gtk_widget_set_sensitive(w, state);
w = lookup_widget(MainWindow, "load_getrem_btn");
// gtk_widget_set_sensitive(w, state);
g_object_set(G_OBJECT(w), "visible", state, NULL);
}
linsmith-0.99.21/src/Makefile.am 0000644 0000000 0000000 00000001325 11540563334 013242 0000000 0000000 ## Process this file with automake to produce Makefile.in
INCLUDES = \
-DPACKAGE_DATA_DIR=\""$(datadir)"\" \
-DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
@LINSMITH_CFLAGS@ \
@LIBXML_CFLAGS@
bin_PROGRAMS = linsmith
linsmith_SOURCES = \
main.c main.h \
types.h \
misc.c misc.h \
confmgr.c confmgr.h \
global.c global.h \
chart_def.c chart_def.h \
chart.c chart.h \
element.c element.h \
remote.c remote.h \
import.c import.h \
load.c load.h \
load_rx.c load_rx.h \
load_nb.c load_nb.h \
log.c log.h \
pixmaps.inc \
support.c support.h \
printer.c printer.h \
interface.c interface.h \
callbacks.c callbacks.h
linsmith_LDADD = \
$(INTLLIBS) \
@LINSMITH_LIBS@ \
@LIBXML_LIBS@
linsmith-0.99.21/src/confmgr.h 0000644 0000000 0000000 00000003430 11011340711 012772 0000000 0000000 /*
* confmgr.c: configuration manager
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
enum {CFM_W_CBTN,
CFM_W_ENTRY_STR,
CFM_W_ENTRY_INT,
CFM_W_ENTRY_FLOAT,
CFM_W_ENTRY_DOUBLE,
CFM_W_SPBTN_INT,
CFM_W_SPBTN_FLOAT,
CFM_W_SPBTN_DOUBLE,
CFM_W_SPBTN_STR,
CFM_W_RBTN,
CFM_W_LABEL_STR,
CFM_W_LABEL_INT,
CFM_W_LABEL_DOUBLE,
CFM_W_CLIST,
CFM_W_CBOX,
CFM_W_COLORBUTTON,
CFM_W_FONTBUTTON};
enum {CFM_T_INT,
CFM_T_FLOAT,
CFM_T_DOUBLE,
CFM_T_STR,
CFM_T_CHAR,
CFM_T_STRLIST};
typedef struct {
// for widget/preferences
char typ, *wdg;
void *data;
int misc;
// for save/load config routines
char styp, *key;
char isdef, *def;
} conf_definition;
gboolean save_by_table(char *fn, conf_definition *tbl, int len);
void load_by_table(char *fn, conf_definition *tbl, int len);
void parse_widget_by_table(conf_definition *tbl, int len,
GtkWidget *ref);
void load_widget_by_table(conf_definition *tbl, int len,
GtkWidget *ref);
linsmith-0.99.21/src/import.c 0000644 0000000 0000000 00000033423 11054272576 012675 0000000 0000000 #include
#include
#include "interface.h"
#include "support.h"
#include "global.h"
#include "misc.h"
#include "main.h"
#include "import.h"
#define max_line_len 250
s2p_dataset s2p_data;
GtkTextView *imp_text = NULL;
GtkTextBuffer *imp_bff = NULL;
GtkTreeView *imp_view = NULL;
GtkListStore *imp_list = NULL;
GtkTreeSelection *imp_sel = NULL;
enum { S2P_DATA_FREQ,
S2P_DATA_11r,
S2P_DATA_11i,
S2P_DATA_12r,
S2P_DATA_12i,
S2P_DATA_21r,
S2P_DATA_21i,
S2P_DATA_22r,
S2P_DATA_22i,
S2P_DATA_COLS
};
enum { DEC_OK,
DEC_END,
DEC_ERR
};
enum { S2P_OPT_R,
S2P_OPT_GHz, S2P_OPT_MHz, S2P_OPT_kHz, S2P_OPT_Hz,
S2P_OPT_S, S2P_OPT_Y, S2P_OPT_Z, S2P_OPT_H, S2P_OPT_G,
S2P_OPT_dB, S2P_OPT_MA, S2P_OPT_RI
};
char *s2p_options[] = {
"R",
"GHz", "MHz", "kHz", "Hz",
"S", "Y", "Z", "H", "G",
"dB", "MA", "RI"
};
#define nr_s2p_options (sizeof(s2p_options)/sizeof(char *))
char *s2p_directives[] = {
"Version",
"Reference"
};
#define nr_s2p_directives (sizeof(s2p_directives)/sizeof(char *))
int s2p_import_col;
double s2p_prev_freq;
/*--------------------------------------------------------------------
Touchstone file import
--------------------------------------------------------------------*/
/* GUI related functions */
void
s2p_files1_activate(void)
{
GtkWidget *w;
w = create_Imports2pWindow();
if (run_filedialog("Import file", pref.last_s2p_file, TRUE,
_("s2p files"), "*.s2p", _("All files"), "*", NULL)) {
w = create_Imports2pWindow();
gtk_widget_show_all(w);
if (!s2p_file_loaded(pref.last_s2p_file)) {
gtk_widget_destroy(w);
ok_dialog(_("Warning"), _("Cannot import the s2p file"));
} else
save_file_paths();
}
}
void
Imports2pWindow_realize(GtkWidget *widget)
{
GtkCellRenderer *renderer;
GtkTreeViewColumn *col;
int colnr;
ImportWindow = widget;
imp_text = GTK_TEXT_VIEW(lookup_widget(ImportWindow, "import_s2p_textview"));
imp_bff = gtk_text_buffer_new(NULL);
gtk_text_view_set_buffer(imp_text, imp_bff);
imp_view = GTK_TREE_VIEW(lookup_widget(ImportWindow, "import_s2p_treeview"));
imp_list = gtk_list_store_new(S2P_DATA_COLS,
G_TYPE_STRING, /* Frequency */
G_TYPE_STRING, /* real/mag 1 */
G_TYPE_STRING, /* imag/angle 1 */
G_TYPE_STRING, /* real/mag 2 */
G_TYPE_STRING, /* imag/angle 2 */
G_TYPE_STRING, /* real/mag 3 */
G_TYPE_STRING, /* imag/angle 3 */
G_TYPE_STRING, /* real/mag 4 */
G_TYPE_STRING); /* imag/angle 4 */
gtk_tree_view_set_model(GTK_TREE_VIEW(imp_view), GTK_TREE_MODEL(imp_list));
g_object_unref(G_OBJECT(imp_list));
imp_sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(imp_view));
gtk_tree_selection_set_mode(imp_sel, GTK_SELECTION_MULTIPLE);
renderer = gtk_cell_renderer_text_new();
col = gtk_tree_view_column_new_with_attributes(
_("Freq"),
renderer, "text", 0,
NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(imp_view), col);
for (colnr = 1; colnr < 9; colnr++) {
renderer = gtk_cell_renderer_text_new();
gtk_object_set(GTK_OBJECT(renderer),
"height", 14, "ypad", 0,
"xalign", 1.0, NULL);
col = gtk_tree_view_column_new_with_attributes(
"", /* Fill in the header later */
renderer, "text", colnr,
NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(imp_view), col);
}
}
static gboolean
invert_selection_foreach (GtkTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter,
GtkTreeSelection *sel)
{
if (gtk_tree_selection_iter_is_selected(sel, iter)) {
gtk_tree_selection_unselect_iter(sel, iter);
} else {
gtk_tree_selection_select_iter (sel, iter);
}
return FALSE;
}
void
import_s2p_sel_invert_btn_clicked(void)
{
gtk_tree_model_foreach(GTK_TREE_MODEL(imp_list),
(GtkTreeModelForeachFunc) invert_selection_foreach,
imp_sel);
}
void
import_s2p_sel_none_btn_clicked(void)
{
gtk_tree_selection_unselect_all(imp_sel);
}
void
import_s2p_sel_all_btn_clicked(void)
{
gtk_tree_selection_select_all(imp_sel);
}
char *s2p_col_headers[][8] = {
{"dB|$11|", "<$11",
"dB|$21|", "<$21",
"dB|$12|", "<$12",
"dB|$22|", "<$22"},
{"|$11|", "<$11",
"|$21|", "<$21",
"|$12|", "<$12",
"|$22|", "<$22"},
{"Re[$11]", "Im[$11]",
"Re[$21]", "Im[$21]",
"Re[$12]", "Im[$12]",
"Re[$22]", "Im[$22]"}
};
void
s2p_set_col_headers(void)
{
GtkTreeViewColumn *col;
GtkWidget *lbl;
int colnr, pos, rd;
char p[20], *p1;
for (colnr = 1; colnr < 9; colnr++) {
strcpy(p, s2p_col_headers[s2p_data.fmt][colnr-1]);
pos = strchr(p, '$') - p;
p[pos] = s2p_options[s2p_data.param][0];
col = gtk_tree_view_get_column(imp_view, colnr);
lbl = gtk_label_new("");
gtk_label_set_markup(GTK_LABEL(lbl),
g_locale_to_utf8(p, -1, NULL, NULL, NULL));
gtk_widget_show(lbl);
gtk_tree_view_column_set_widget(col, lbl);
}
}
void
import_s2p_append_comment(char *line)
{
GtkTextIter iter;
gtk_text_buffer_get_end_iter(imp_bff, &iter);
gtk_text_buffer_insert(imp_bff, &iter, "\n", -1);
gtk_text_buffer_get_end_iter(imp_bff, &iter);
gtk_text_buffer_insert(imp_bff, &iter, line, -1);
}
/*---------------------------------------------------------------------
Touchstone format parser
---------------------------------------------------------------------*/
void
s2p_default_options(void)
{
s2p_data.unit = S2P_OPT_GHz;
s2p_data.param = S2P_OPT_S;
s2p_data.fmt = S2P_OPT_MA;
s2p_data.z0 = 50.0;
s2p_data.version = 1.0;
}
/* Utility function to show an options string */
/* Parameters: wdg: The name of the GtkLabel to set, */
/* opt: the number of the text to set (see enum above */
void
s2p_show_option(char *wdg, int opt)
{
GtkWidget *w;
char *p;
w = lookup_widget(ImportWindow, wdg);
p = g_strdup_printf("%s", s2p_options[opt]);
gtk_label_set_markup(GTK_LABEL(w), p);
g_free(p);
}
void
s2p_show_options(void) {
GtkWidget *w;
char *p;
s2p_show_option("import_s2p_freq_lbl", S2P_OPT_GHz + s2p_data.unit);
s2p_show_option("import_s2p_param_lbl", S2P_OPT_S + s2p_data.param);
s2p_show_option("import_s2p_format_lbl", S2P_OPT_dB + s2p_data.fmt);
w = lookup_widget(ImportWindow, "import_s2p_imped_lbl");
p = g_strdup_printf("%.1f", s2p_data.z0);
gtk_label_set_markup(GTK_LABEL(w), p);
g_free(p);
w = lookup_widget(ImportWindow, "import_s2p_version_lbl");
p = g_strdup_printf("%.1f", s2p_data.version);
gtk_label_set_markup(GTK_LABEL(w), p);
g_free(p);
}
/* #
freq GHZ MHZ KHZ HZ
param S Y Z G H
format DB MA RI
R
n (real ohms)
*/
gboolean
s2p_options_decoded(char *line)
{
GtkWidget *w;
gboolean in_str, next_z0;
char str[10][20], *p, *endp;
int nr, c, dstp, o;
nr = sscanf(line, "%s %s %s %s %s %s",
str[0], str[1], str[2], str[3], str[4], str[5]);
/* Start at element 1 (el 0 is the # sign */
for (c = 1; c < nr; c++) {
for (o = 0; o < nr_s2p_options; o++)
if (strcasecmp(s2p_options[o], str[c]) == 0) break;
switch (o) {
case 0: /* Zo */
c++;
if (c == nr) {
ok_dialog(_("Error"), _("Impedance missing"));
return FALSE;
}
s2p_data.z0 = strtod(str[c], &endp);
if (endp == str[c]) {
ok_dialog(_("Error"), _("Error in impedance value"));
return FALSE;
}
break;
case 1: case 2: case 3: case 4:
s2p_data.unit = o - S2P_OPT_GHz; break; /* Unit */
case 5: case 6: case 7: case 8: case 9:
s2p_data.param = o - S2P_OPT_S; break; /* Param */
case 10: case 11: case 12:
s2p_data.fmt = o - S2P_OPT_dB; break; /* Format */
default:
p = g_strdup_printf(_("Error in option line: %s"), str[c]);
ok_dialog(_("Error"), p);
g_free(p);
return FALSE;
}
}
return TRUE;
}
int
s2p_data_decoded(char *line)
{
GtkTreeIter iter;
char data[9][15], *endp;
double dummy;
int c, nr_fld;
nr_fld = sscanf(line, "%14s %14s %14s %14s %14s %14s %14s %14s %14s",
data[0], /* Frequency */
data[1], data[2], data[3], data[4], /* Data fields */
data[5], data[6], data[7], data[8]);
dummy = strtod(data[0], &endp);
if (dummy < s2p_prev_freq) /* Check if end of data */
return DEC_END;
s2p_prev_freq = dummy;
if (nr_fld != 9) {
ok_dialog(_("Error"), _("Incorrect number of fields in data line"));
return DEC_ERR;
}
for (c = 0; c < 9; c++) {
dummy = strtod(data[c], &endp);
if (endp == data[c]) {
ok_dialog(_("Error"), _("Invalid data present on the next data line"));
return DEC_ERR;
}
}
gtk_list_store_append(imp_list, &iter);
gtk_list_store_set(imp_list, &iter,
0, data[0], 1, data[1], 2, data[2],
3, data[3], 4, data[4], 5, data[5],
6, data[6], 7, data[7], 8, data[8],
-1);
return DEC_OK;
}
gboolean
s2p_directive_decoded(char *line)
{
int c;
char dir[40], *endp;
endp = strchr(line, ']');
if (!endp) return FALSE;
endp[0] = '\0'; /* Close the string here */
for (c = 0; c < nr_s2p_directives; c++) {
if (strcasecmp(s2p_directives[c], (char *) &line[1]) == 0)
break;
}
if (c >= nr_s2p_directives) return FALSE;
return TRUE;
}
gboolean
s2p_file_loaded(char *filename)
{
FILE *inf = fopen(filename, "r");
gboolean done;
GtkWidget *w;
char line[max_line_len], *p;
if (!inf) {
return FALSE;
}
s2p_default_options();
s2p_prev_freq = 0.0; /* To detect noise parameters */
done = FALSE;
while (!feof(inf) && !done) {
if (!fgets(line, max_line_len, inf))
break;
p = strchr(line, '\n');
if (p) *p = 0;
p = strchr(line, '\r');
if (p) *p = 0;
if (strlen(line) == 0)
continue;
switch (line[0]) {
case '!': /* Comment line */
import_s2p_append_comment(line);
break;
case '#': /* Config line */
if (!s2p_options_decoded(line))
return FALSE;
s2p_set_col_headers();
s2p_show_options();
break;
case '[':
if (!s2p_directive_decoded(line))
return FALSE;
s2p_show_options();
break;
default: /* Data lines */
switch (s2p_data_decoded(line)) {
case DEC_OK:
break;
case DEC_END:
done = TRUE;
break;
case DEC_ERR:
return FALSE;
}
}
}
w = lookup_widget(ImportWindow, "import_s2p_impS11_btn");
gtk_widget_set_sensitive(w, TRUE);
w = lookup_widget(ImportWindow, "import_s2p_impS22_btn");
gtk_widget_set_sensitive(w, TRUE);
return TRUE;
}
void
import_s2p_cancel_btn_clicked(void)
{
gtk_widget_destroy(ImportWindow);
}
static gboolean
s2p_import_one_selected(GtkTreeModel *model, GtkTreePath *path,
GtkTreeIter *iter, GtkTreeSelection *sel)
{
char *str_a, *str_b, *str_f;
load_definition load;
double f, r, x, tr, tx;
complex z;
gtk_tree_model_get(GTK_TREE_MODEL(imp_list), iter,
0, &str_f,
s2p_import_col, &str_a,
s2p_import_col+1, &str_b,
-1);
switch (s2p_data.unit) {
case 0: load.f = strtod(str_f, NULL) * 1000; break;
case 1: break;
case 2: load.f = strtod(str_f, NULL) * 0.001; break;
case 3: load.f = strtod(str_f, NULL) * 0.000001; break;
}
r = strtod(str_a, NULL);
x = strtod(str_b, NULL);
/* Convert S-parameters to a common (RI) format */
switch (s2p_data.fmt) {
case 0: /* dB */
r = pow(10, r/20);
tr = r * cos(x * M_PI/180);
tx = r * sin(x * M_PI/180);
r = tr;
x = tx;
break;
case 1: /* MA */
tr = r * cos(x * M_PI/180);
tx = r * sin(x * M_PI/180);
r = tr;
x = tx;
break;
case 2: /* RI */
break;
}
z = s2p_data.z0 * (1.0 + (r + x*I))/(1.0 - (r + x*I));
load.r = creal(z);
load.x = cimag(z);
load_append(&load);
printf("%f %f %f\n", load.f, load.r, load.x);
return FALSE;
}
void
s2p_import_all_selected(int col)
{
s2p_import_col = col;
gtk_tree_selection_selected_foreach(imp_sel,
(GtkTreeSelectionForeachFunc) s2p_import_one_selected, imp_sel);
}
void
import_s2p_impS11_btn_clicked(void)
{
s2p_import_all_selected(1); /* import column 1 and 2 (s11) */
gtk_widget_destroy(ImportWindow);
}
void
import_s2p_impS22_btn_clicked(void)
{
s2p_import_all_selected(7); /* importa column 7 and 8 (s22) */
gtk_widget_destroy(ImportWindow);
}
/*
CSV file import
*/
void
import_csv_activate(void)
{
FILE *csvf = NULL;
char line[max_line_len], *p, delim[5];
load_definition load;
if (number_loads() != 0) {
switch (list_not_empty_dialog(
_("The load list is not empty. Selecting Append will append\n"
"the new values."))) {
case LSTDLG_APPEND: break;
case LSTDLG_CLEAR : loadlist_clear(); break;
case LSTDLG_CANCEL: return;
}
}
if (strlen(pref.csv_sep) != 1) {
ok_dialog(_("Error"),
_("The field separator for CSV files is not defined yet."
"Please go\nto Edit|Preferences (Files tab) and define "
"it first."));
return;
}
if (!run_filedialog(_("Import CSV load file"),
pref.last_csv_file, TRUE,
_("CSV files"), "*.csv",
_("All files"), "*",
NULL))
return;
csvf = fopen(pref.last_csv_file, "r");
if (!csvf) {
ok_dialog(_("Error"),
_("Can't open this file (maybe read-protected?)"));
return;
}
save_file_paths();
strcpy(delim, " \n");
delim[0] = pref.csv_sep[0];
while (!feof(csvf)) {
fgets(line, max_line_len, csvf);
p = line;
p = strtok(p, delim);
if (!p) break; /* No frequency token */
load.f = strtod(p, NULL);
p = strtok(NULL, delim);
if (!p) break; /* No real part available */
load.r = strtod(p, NULL);
p = strtok(NULL, delim);
if (!p) break; /* No imaginary part available */
load.x = strtod(p, NULL);
load_append(&load);
printf("%f %f %f\n", load.f, load.r, load.x);
}
fclose(csvf);
}
linsmith-0.99.21/src/element.c 0000644 0000000 0000000 00000056575 11541145167 013025 0000000 0000000 /*
* element.c: Element related routines
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#include
#include
#include "support.h"
#include "callbacks.h"
#include "printer.h"
#include "main.h"
#include "global.h"
#include "chart.h"
#include "misc.h"
#include "element.h"
typedef struct {
char *hdr;
int w, rendertype;
} circuitdef_entry;
circuitdef_entry circuitdef[] = {
{N_("Conx"), 30, 0},
{N_("El"), 30, 0},
{N_("Value"), 130, 1},
{N_("Description"), 300, 1}
};
#define cdef_len sizeof(circuitdef)/sizeof(circuitdef_entry)
typedef struct {
char *xml;
int offs;
GType type;
} circ_filedef_entry;
circ_filedef_entry circ_filedef[] = {
{"element", offsetof(el_definition, typ), G_TYPE_INT},
{"connection", offsetof(el_definition, conn), G_TYPE_INT},
{"useloss", offsetof(el_definition, useloss), G_TYPE_INT},
{"val1", offsetof(el_definition, val1), G_TYPE_DOUBLE},
{"val2", offsetof(el_definition, val2), G_TYPE_DOUBLE},
{"z0", offsetof(el_definition, z0), G_TYPE_DOUBLE},
{"vf", offsetof(el_definition, vf), G_TYPE_DOUBLE},
{"loss1", offsetof(el_definition, loss1), G_TYPE_DOUBLE},
{"mhz1", offsetof(el_definition, mhz1), G_TYPE_DOUBLE},
{"loss2", offsetof(el_definition, loss2), G_TYPE_DOUBLE},
{"mhz2", offsetof(el_definition, mhz2), G_TYPE_DOUBLE}
};
#define cfiledef_len sizeof(circ_filedef)/sizeof(circ_filedef_entry)
enum {FMT_DBL_ENTRY, FMT_INT_CBTN, FMT_SE_PAIR};
typedef struct {
char *wname, nrdec, type;
int offs;
} element_format;
element_format stub_els[] = {
{"", SEP_STUB_VAL, FMT_SE_PAIR,
offsetof(el_definition, val1)},
{"", SEP_STUB_Z0, FMT_SE_PAIR,
offsetof(el_definition, z0)},
{"comp_stub_vf_entry", 3, FMT_DBL_ENTRY,
offsetof(el_definition, vf)},
{"comp_stub_l1_entry", 2, FMT_DBL_ENTRY,
offsetof(el_definition, loss1)},
{"comp_stub_f1_entry", 3, FMT_DBL_ENTRY,
offsetof(el_definition, mhz1)},
{"comp_stub_l2_entry", 2, FMT_DBL_ENTRY,
offsetof(el_definition, loss2)},
{"comp_stub_f2_entry", 3, FMT_DBL_ENTRY,
offsetof(el_definition, mhz2)},
{"comp_stub_useloss_cbtn", 0, FMT_INT_CBTN,
offsetof(el_definition, useloss)}
};
#define stub_els_len (sizeof(stub_els)/sizeof(element_format))
element_format line_els[] = {
{"", SEP_LINE_VAL, FMT_SE_PAIR,
offsetof(el_definition, val1)},
{"", SEP_LINE_Z0, FMT_SE_PAIR,
offsetof(el_definition, z0)},
{"comp_line_vf_entry", 3, FMT_DBL_ENTRY,
offsetof(el_definition, vf)},
{"comp_line_l1_entry", 2, FMT_DBL_ENTRY,
offsetof(el_definition, loss1)},
{"comp_line_f1_entry", 3, FMT_DBL_ENTRY,
offsetof(el_definition, mhz1)},
{"comp_line_l2_entry", 2, FMT_DBL_ENTRY,
offsetof(el_definition, loss2)},
{"comp_line_f2_entry", 3, FMT_DBL_ENTRY,
offsetof(el_definition, mhz2)},
{"comp_line_useloss_cbtn", 0, FMT_INT_CBTN,
offsetof(el_definition, useloss)}
};
#define line_els_len (sizeof(line_els)/sizeof(element_format))
GtkWidget *el_view;
GtkTreeIter active_el_iter;
gboolean elements_changed = FALSE;
el_definition act_el = {-1, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
void
load3_activate(void)
{
if (run_filedialog(_("Load a circuit"), pref.last_el_file, TRUE,
_("linSmith circuits"), "*.circ",
_("All files"), "*",
NULL)) {
load_circuit(pref.last_el_file);
save_file_paths();
}
}
void
save4_activate(void)
{
if (strlen(pref.last_el_file) != 0)
save_circuit(pref.last_el_file);
else
save_as4_activate();
}
void
save_as4_activate(void)
{
if (run_filedialog(_("Save circuit as"), pref.last_el_file, FALSE,
_("linSmith circuits"), "*.circ",
_("All files"), "*",
NULL)) {
save_circuit(pref.last_el_file);
save_file_paths();
}
}
void
initialize_elementtable(void)
{
GtkListStore *els;
GtkCellRenderer *renderer;
GtkTreeViewColumn *col;
int def;
els = gtk_list_store_new(EL_COLS,
GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, // conn, type
G_TYPE_STRING, // value
G_TYPE_STRING, // descr
G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, // useloss, conn, type
G_TYPE_DOUBLE, G_TYPE_DOUBLE, // val1, val2
G_TYPE_DOUBLE, G_TYPE_DOUBLE, // z0, vf
G_TYPE_DOUBLE, G_TYPE_DOUBLE, // loss1, mhz1
G_TYPE_DOUBLE, G_TYPE_DOUBLE, // loss2, mhz2
G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_POINTER); // ptlist, linlist,act
el_view = lookup_widget(MainWindow, "circ_treeview");
gtk_tree_view_set_model(GTK_TREE_VIEW(el_view), GTK_TREE_MODEL(els));
g_object_unref(G_OBJECT(els));
for (def = 0; def < cdef_len; def++) {
switch (circuitdef[def].rendertype) {
case 0:
renderer = gtk_cell_renderer_pixbuf_new();
col = gtk_tree_view_column_new_with_attributes(
_(circuitdef[def].hdr),
renderer, "pixbuf", def, NULL);
break;
case 1:
renderer = gtk_cell_renderer_text_new();
gtk_object_set(GTK_OBJECT(renderer),
"height", 14, "ypad", 0,
"xalign", 1.0, "xalign", 0.0,
NULL);
col = gtk_tree_view_column_new_with_attributes(
_(circuitdef[def].hdr), renderer,
"text", def, NULL);
break;
}
gtk_tree_view_append_column(GTK_TREE_VIEW(el_view), col);
gtk_tree_view_column_set_sizing(GTK_TREE_VIEW_COLUMN(col),
GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_fixed_width(GTK_TREE_VIEW_COLUMN(col),
circuitdef[def].w);
}
}
void
enable_circ_buttons(int action)
{
GtkWidget *wdel, *wclr, *wup, *wdown, *wupd, *wnew;
static int selected = FALSE;
wdel = lookup_widget(MainWindow, "circ_delete_btn");
wclr = lookup_widget(MainWindow, "circ_clear_btn");
wup = lookup_widget(MainWindow, "circ_up_btn");
wdown = lookup_widget(MainWindow, "circ_down_btn");
wupd = lookup_widget(MainWindow, "circ_upd_el_btn");
wnew = lookup_widget(MainWindow, "circ_newel_btn");
switch (action) {
case CIRCLIST_SELECT:
gtk_widget_set_sensitive(wdel, TRUE);
gtk_widget_set_sensitive(wup, TRUE);
gtk_widget_set_sensitive(wdown, TRUE);
gtk_widget_set_sensitive(wupd, FALSE);
gtk_widget_set_sensitive(wnew, TRUE);
selected = TRUE;
break;
case CIRCLIST_UNSELECT:
gtk_widget_set_sensitive(wdel, FALSE);
gtk_widget_set_sensitive(wup, FALSE);
gtk_widget_set_sensitive(wdown, FALSE);
gtk_widget_set_sensitive(wupd, FALSE);
gtk_widget_set_sensitive(wnew, TRUE);
selected = FALSE;
break;
case CIRCLIST_ENTRYSET:
gtk_widget_set_sensitive(wupd, TRUE);
break;
case CIRCLIST_ENTRYVALID:
if (selected)
gtk_widget_set_sensitive(wupd, TRUE);
gtk_widget_set_sensitive(wnew, TRUE);
break;
case CIRCLIST_ENTRYINVALID:
if (selected)
gtk_widget_set_sensitive(wupd, FALSE);
gtk_widget_set_sensitive(wnew, FALSE);
break;
case CIRCLIST_CONNCHANGED:
if (selected)
gtk_widget_set_sensitive(wupd, TRUE);
gtk_widget_set_sensitive(wnew, TRUE);
break;
case CIRCLIST_TYPECHANGED:
if (selected)
gtk_widget_set_sensitive(wupd, TRUE);
gtk_widget_set_sensitive(wnew, TRUE);
break;
case CIRCLIST_UPDATED:
gtk_widget_set_sensitive(wupd, FALSE);
break;
}
gtk_widget_set_sensitive(wclr, action != CIRCLIST_EMPTY);
}
//---------------------------------------------------------------------
// Element list maintenance
//---------------------------------------------------------------------
void
clear_element_ptlist(chart_ptlist *ptlst)
{
GList *l;
chart_pt pt;
if (!*ptlst) return;
if (debug)
fprintf(stderr, "[clr ptlst] Deleting %d points\n",
g_list_length(*ptlst));
for (l = g_list_first(*ptlst); l; l = l->next) {
pt = l->data;
if (pt)
gtk_object_destroy(GTK_OBJECT(pt->point));
g_free(pt);
}
g_list_free(*ptlst);
*ptlst = NULL;
}
clear_element_lnlist(chart_lnlist *lnlst)
{
GList *l;
chart_ln ln;
if (!*lnlst) return;
if (debug)
fprintf(stderr, "[clr lnlst] Deleting %d lines\n",
g_list_length(*lnlst));
for (l = g_list_first(*lnlst); l; l = l->next) {
ln = l->data;
if (ln)
gtk_object_destroy(GTK_OBJECT(ln->line));
g_free(ln);
}
g_list_free(*lnlst);
*lnlst = NULL;
}
void
format_elements(element_format *fmt, int fmtlen, char *el)
{
GtkWidget *w;
char bff[30];
int f;
for (f = 0; f < fmtlen; f++) {
switch (fmt[f].type) {
case FMT_DBL_ENTRY:
sprintf(bff, "%.*f", fmt[f].nrdec, *(double *)&el[fmt[f].offs]);
w = lookup_widget(MainWindow, fmt[f].wname);
gtk_entry_set_text(GTK_ENTRY(w), bff);
break;
case FMT_INT_CBTN:
w = lookup_widget(MainWindow, fmt[f].wname);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
*(int *)&el[fmt[f].offs]);
break;
case FMT_SE_PAIR:
scale_entry_pair_set(fmt[f].nrdec, *(double *)&el[fmt[f].offs]);
break;
}
}
}
void
set_discr_mode(int mode)
{
GtkWidget *w;
w = lookup_widget(MainWindow, "comp_cap_table");
gtk_widget_set_sensitive(w,
(mode == ELT_CAP) || (mode == ELT_PARLC) || (mode == ELT_SERLC));
w = lookup_widget(MainWindow, "comp_ind_table");
gtk_widget_set_sensitive(w,
(mode == ELT_IND) || (mode == ELT_PARLC) || (mode == ELT_SERLC));
}
void
parse_elements(element_format *fmt, int fmtlen, char *el)
{
GtkWidget *w;
const char *p;
double tval;
int f;
for (f = 0; f < fmtlen; f++) {
switch (fmt[f].type) {
case FMT_DBL_ENTRY:
w = lookup_widget(MainWindow, fmt[f].wname);
p = gtk_entry_get_text(GTK_ENTRY(w));
if (strlen(p) == 0) break; // don't change val if empty
*(double *)&el[fmt[f].offs] = atof(p);
break;
case FMT_INT_CBTN:
w = lookup_widget(MainWindow, fmt[f].wname);
*(int *)&el[fmt[f].offs] =
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));
break;
case FMT_SE_PAIR:
tval = scale_entry_pair_get(fmt[f].nrdec);
if (tval != 0.0)
*(double *)&el[fmt[f].offs] = tval;
break;
}
}
}
int
fetch_selected_element(GtkTreeView *treeview, el_definition *el)
{
GtkTreeModel *store;
GtkTreeSelection *sel;
gboolean havesel;
sel = gtk_tree_view_get_selection(treeview);
havesel = gtk_tree_selection_get_selected(sel, &store, &active_el_iter);
if (havesel) {
memset(el, 0, sizeof(el_definition));
gtk_tree_model_get(store, &active_el_iter,
EL_CONN_VAL, &el->conn, EL_TYPE_VAL, &el->typ,
EL_USE_LOSS, &el->useloss,
EL_VAL_VAL1, &el->val1, EL_VAL_VAL2, &el->val2,
EL_Z0_VAL, &el->z0, EL_VF_VAL, &el->vf,
EL_LOSS1_VAL, &el->loss1, EL_MHZ1_VAL, &el->mhz1,
EL_LOSS2_VAL, &el->loss2, EL_MHZ2_VAL, &el->mhz2,
EL_POINTLIST, &el->ptlst, EL_LINELIST, &el->lnlst,
-1);
set_element_type(el->typ);
set_element_conn(el->conn);
switch (el->typ) {
case ELT_CAP:
scale_entry_pair_set(SEP_CAP_VAL, el->val2);
break;
case ELT_IND:
scale_entry_pair_set(SEP_IND_VAL, el->val1);
break;
case ELT_PARLC:
case ELT_SERLC:
scale_entry_pair_set(SEP_IND_VAL, el->val1);
scale_entry_pair_set(SEP_CAP_VAL, el->val2);
break;
case ELT_OSTUB:
case ELT_SSTUB:
format_elements(stub_els, stub_els_len, (char *)el);
break;
case ELT_LINE:
format_elements(line_els, line_els_len, (char *)el);
break;
}
enable_circ_buttons(CIRCLIST_SELECT);
return TRUE;
} else
return FALSE;
}
void
valid_double(char *wdg, double *val)
{
GtkWidget *w = lookup_widget(MainWindow, wdg);
double tval;
const char *begp;
char *endp;
begp = gtk_entry_get_text(GTK_ENTRY(w));
if (endp == begp)
tval = 0.0;
else
tval = strtod(begp, &endp);
*val = tval;
return;
}
int
element_valid(el_definition *el)
{
GtkWidget *w;
double tval;
const char *begp;
char *endp;
if (act_el.typ == -1 || act_el.conn == -1) {
return FALSE;
}
memset(el, 0, sizeof(el_definition));
el->typ = act_el.typ;
el->conn = act_el.conn;
switch (el->typ) {
case ELT_CAP:
valid_double("comp_cap_val_entry", &el->val2);
break;
case ELT_IND:
valid_double("comp_ind_val_entry", &el->val1);
break;
case ELT_PARLC:
case ELT_SERLC:
valid_double("comp_cap_val_entry", &el->val2);
valid_double("comp_ind_val_entry", &el->val1);
break;
case ELT_LINE:
parse_elements(line_els, line_els_len, (char *)el);
break;
case ELT_OSTUB:
case ELT_SSTUB:
parse_elements(stub_els, stub_els_len, (char *)el);
break;
case ELT_XFORM:
w = lookup_widget(MainWindow, "comp_xform_entry");
el->val1 = atof(gtk_entry_get_text(GTK_ENTRY(w)));
break;
}
return TRUE;
}
void
element_update(el_definition el)
{
char bff[30], descr[80], *p1, *p2;
GtkTreeSelection *sel;
GtkListStore *store;
GtkTreeIter *actiter;
chart_ptlist ptlst;
chart_lnlist lnlst;
if (active_el_iter.stamp == 0) return;
sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(el_view));
store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(el_view)));
gtk_tree_model_get(GTK_TREE_MODEL(store), &active_el_iter,
EL_POINTLIST, &ptlst, EL_LINELIST, &lnlst,
EL_ACT_ITER, &actiter,
-1);
clear_element_ptlist(&ptlst);
clear_element_lnlist(&lnlst);
g_free(actiter);
descr[0] = '\0';
bff[0] = '\0';
switch (el.typ) {
case ELT_OSTUB:
case ELT_SSTUB:
case ELT_LINE:
sprintf(bff, "%.1fmm @ %.1fΩ", el.val1, el.z0); //
if (el.useloss) {
sprintf(descr,
"Vf = %.2f (%.2fdB @ %.1f MHz, %.2fdB @ %.1f MHz)",
el.vf, el.loss1, el.mhz1, el.loss2, el.mhz2);
} else {
sprintf(descr, "Vf = %.2f (no loss)", el.vf);
}
break;
case ELT_CAP:
sprintf(bff, "%.2fpF", el.val2);
break;
case ELT_IND:
sprintf(bff, "%.1fnH", el.val1);
break;
case ELT_PARLC:
case ELT_SERLC:
sprintf(bff, "%.2fpF, %.1fnH", el.val2, el.val1);
break;
}
gtk_list_store_set(store, &active_el_iter,
EL_CONN, connection_glyph(el.conn, el.typ),
EL_TYPE, type_glyph(el.conn, el.typ),
EL_VAL1, bff,
EL_DESCR, p2 = g_locale_to_utf8(descr, -1, NULL,
NULL, NULL),
EL_USE_LOSS, el.useloss,
EL_CONN_VAL, el.conn, EL_TYPE_VAL, el.typ,
EL_VAL_VAL1, el.val1, EL_VAL_VAL2, el.val2,
EL_Z0_VAL, el.z0, EL_VF_VAL, el.vf,
EL_LOSS1_VAL, el.loss1, EL_LOSS2_VAL, el.loss2,
EL_MHZ1_VAL, el.mhz1, EL_MHZ2_VAL, el.mhz2,
EL_POINTLIST, NULL, EL_LINELIST, NULL,
EL_ACT_ITER, NULL,
-1);
g_free(p2);
elements_changed = TRUE;
gtk_tree_selection_select_iter(sel, &active_el_iter);
act_el = el;
recalculate_all(DST_SCREEN);
enable_circ_buttons(CIRCLIST_UPDATED);
}
void
element_append(el_definition el)
{
GtkListStore *store;
store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(el_view)));
gtk_list_store_append(store, &active_el_iter); // add a row
element_update(el);
}
void
active_element_remove(void)
{
GtkListStore *store;
GtkTreeSelection *sel;
chart_ptlist ptlst;
chart_lnlist lnlst;
if (active_el_iter.stamp == 0) return;
store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(el_view)));
gtk_tree_model_get(GTK_TREE_MODEL(store), &active_el_iter,
EL_POINTLIST, &ptlst, EL_LINELIST, &lnlst,
-1);
clear_element_ptlist(&ptlst);
clear_element_lnlist(&lnlst);
if (gtk_list_store_remove(store, &active_el_iter)) {
sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(el_view));
gtk_tree_selection_select_iter(sel, &active_el_iter);
}
if (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL) == 0)
enable_circ_buttons(CIRCLIST_EMPTY);
elements_changed = TRUE;
}
void
circlist_clear(void)
{
GtkTreeModel *model;
GtkTreeIter iter;
chart_ptlist ptlst;
chart_lnlist lnlst;
gboolean more;
model = gtk_tree_view_get_model(GTK_TREE_VIEW(el_view));
more = gtk_tree_model_get_iter_first(model, &iter);
while (more) {
gtk_tree_model_get(model, &iter,
EL_POINTLIST, &ptlst, EL_LINELIST, &lnlst,
-1);
clear_element_ptlist(&ptlst);
clear_element_lnlist(&lnlst);
more = gtk_tree_model_iter_next(model, &iter);
}
gtk_list_store_clear(GTK_LIST_STORE(model));
enable_circ_buttons(CIRCLIST_UNSELECT);
elements_changed = TRUE;
}
void
circ_move_up(void)
{
if (active_el_iter.stamp == 0) return;
GtkTreeIter csr, prev;
GtkListStore *store;
store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(el_view)));
if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store), &csr)) return;
}
void
circ_move_down(void)
{
if (active_el_iter.stamp == 0) return;
GtkTreeIter *next;
GtkListStore *store;
store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(el_view)));
next = gtk_tree_iter_copy(&active_el_iter);
if (gtk_tree_model_iter_next(GTK_TREE_MODEL(store), next)) {
gtk_list_store_swap(store, &active_el_iter, next);
}
g_free(next);
}
//---------------------------------------------------------------------
// File routines
//---------------------------------------------------------------------
gboolean
save_each_element(GtkTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter,
gpointer user_data)
{
el_definition el;
FILE *xmlf = user_data;
char bff[50];
int e;
gtk_tree_model_get(model, iter,
EL_CONN_VAL, &el.conn, EL_TYPE_VAL, &el.typ,
EL_VAL_VAL1, &el.val1, EL_VAL_VAL2, &el.val2,
EL_Z0_VAL, &el.z0, EL_VF_VAL, &el.vf,
EL_USE_LOSS, &el.useloss,
EL_LOSS1_VAL, &el.loss1, EL_MHZ1_VAL, &el.mhz1,
EL_LOSS2_VAL, &el.loss2, EL_MHZ2_VAL, &el.mhz2,
-1);
fprintf(xmlf, " \n");
for (e = 0; e < cfiledef_len; e++) {
switch (circ_filedef[e].type) {
case G_TYPE_INT:
sprintf(bff, "%d",
*(int *)((char *)&el + circ_filedef[e].offs));
break;
case G_TYPE_CHAR:
sprintf(bff, "%d", ((char *)&el)[circ_filedef[e].offs]);
break;
case G_TYPE_DOUBLE:
sprintf(bff, "%f",
*(double *)((char *)&el + circ_filedef[e].offs));
break;
}
fprintf(xmlf, " <%s>%s%s>\n", circ_filedef[e].xml, bff,
circ_filedef[e].xml);
}
fprintf(xmlf, " \n");
return FALSE;
}
void
save_circuit(char *fn)
{
GtkWidget *els = lookup_widget(MainWindow, "circ_treeview");
GtkTreeModel *store = gtk_tree_view_get_model(GTK_TREE_VIEW(els));
FILE *xmlf;
if ((xmlf = fopen(fn, "r"))) {
fclose(xmlf);
if (ok_cancel_dialog(_("Confirmation"),
_("File exists - want to overwrite?"))
== 1) {
return;
}
}
if (!(xmlf = fopen(fn, "w"))) {
ok_dialog(_("Error"), _("Cannot open destination file"));
return;
}
fprintf(xmlf, "\n");
fprintf(xmlf, "\n");
fprintf(xmlf, " \n", prog_version);
gtk_tree_model_foreach(store, save_each_element, xmlf);
fprintf(xmlf, "\n");
fclose(xmlf);
elements_changed = FALSE;
}
void
parse_element(el_definition *el, xmlDocPtr doc, xmlNodePtr cur)
{
xmlChar *key;
int e;
cur = cur->xmlChildrenNode;
while (cur != NULL) {
for (e = 0; e < cfiledef_len; e++) {
if ((!xmlStrcmp(cur->name, (const xmlChar *) circ_filedef[e].xml))) {
key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
switch (circ_filedef[e].type) {
case G_TYPE_INT:
*(int *)((char *)el + circ_filedef[e].offs) = atol(key);
break;
case G_TYPE_CHAR:
((char *)el)[circ_filedef[e].offs] = atol(key);
break;
case G_TYPE_DOUBLE:
*(double *)((char *)el + circ_filedef[e].offs) = atof(key);
break;
}
xmlFree(key);
}
}
cur = cur->next;
}
}
void
load_circuit(char *fn)
{
el_definition el;
xmlDocPtr doc;
xmlNodePtr cur;
printf("[Circuit] Load circuit: %s\n", fn);
if (!xml_file_loaded(&doc, fn, "circuit")) return;
cur = xmlDocGetRootElement(doc);
cur = cur->xmlChildrenNode;
while (cur != NULL) {
if ((!xmlStrcmp(cur->name, (const xmlChar *) "element"))) {
parse_element(&el, doc, cur);
element_append(el);
}
cur = cur->next;
}
g_signal_emit_by_name(G_OBJECT(el_view), "cursor-changed", NULL);
xmlFreeDoc(doc);
}
complex
calc_line_impedance(complex zl, double z0, double len, double f)
{
double arg = tan(2 * M_PI * len);
complex stub;
switch (pref.rotation) {
case TO_GENERATOR:
stub = zl * (1 + I * z0 / zl * arg) /
(1 + I * zl / z0 * arg);
break;
case TO_LOAD:
stub = zl * (1 - I * z0 / zl * arg) /
(1 - I * zl / z0 * arg);
break;
}
if (debug)
fprintf(stderr, "[line imp] %f %fj\n", creal(stub), cimag(stub));
return stub;
}
complex
calc_el_impedance(el_definition *el, double f)
{
complex res, tc, tl;
double wl = el->vf * 300000 / f,
twopif = 2 * M_PI * f;
switch (el->typ) {
case ELT_CAP:
res = 0.0 - (1000000/(twopif * el->val2)) * I;
break;
case ELT_IND:
res = 0.0 + (twopif * el->val1 / 1000) * I;
break;
case ELT_PARLC:
tc = 0.0 - (1000000/(twopif * el->val2)) * I;
tl = 0.0 + (twopif * el->val1 / 1000) * I;
res = (tc * tl)/(tc + tl);
break;
case ELT_SERLC:
tc = 0.0 - (1000000/(twopif * el->val2)) * I;
tl = 0.0 + (twopif * el->val1 / 1000) * I;
res = tc + tl;
break;
case ELT_OSTUB:
res = calc_line_impedance(1e30, el->z0, el->val1 / wl, f);
break;
case ELT_SSTUB:
res = calc_line_impedance(1e-30, el->z0, el->val1 / wl, f);
break;
case ELT_LINE:
res = 0.0 - 0.0 * I;
break;
case ELT_ZY:
break;
}
if (debug)
printf("[elem imp] %f %fj\n", creal(res), cimag(res));
return res;
}
int
number_elements(void)
{
GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(el_view));
return gtk_tree_model_iter_n_children(model, NULL);
}
linsmith-0.99.21/src/chart_def.h 0000644 0000000 0000000 00000000525 10454561615 013302 0000000 0000000 typedef struct {
char type;
double val, a_min, a_max, zm_min, zm_max;
int priority;
char bold;
} plot_definition;
enum {LBL_NE, LBL_SE, LBL_SW, LBL_NW};
typedef struct {
char type;
double re, im;
char pos;
} label_definition;
extern int nrpldefs, nrlbldefs;
extern plot_definition pldef[];
extern label_definition lbldef[];
linsmith-0.99.21/src/import.h 0000644 0000000 0000000 00000001250 11054121537 012661 0000000 0000000 #include
typedef struct {
float z0, // Zo of the data - taken from options or [Reference]
version; // Data file version, taken from [Version]
int unit, // Frequency unit, from options
fmt, // Data format, from options
param; // Parameter type (S, Z, ...) from options
} s2p_dataset;
void ImportWindow_realize(GtkWidget *widget);
void s2p_files1_activate(void);
void import_s2p_cancel_btn_clicked(void);
void import_s2p_impS11_btn_clicked(void);
void import_s2p_impS22_btn_clicked(void);
void import_s2p_sel_invert_btn_clicked(void);
void import_s2p_sel_none_btn_clicked(void);
void import_s2p_sel_all_btn_clicked(void);
void import_csv_activate(void);
linsmith-0.99.21/src/global.h 0000644 0000000 0000000 00000006572 11052344136 012623 0000000 0000000 /*
* global.c: A few global routines - mostly configuration
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#include "types.h"
#define prog_name "linsmith"
#define prog_title N_("Smith Chart")
#define prog_version VERSION
#define prog_author "John Coppens"
#define prog_right "(c) John Coppens 1997-"
#define prog_com ""
enum {
DBG_LOADS = 1,
DBG_ELEMENTS = 2,
DBG_GRAPHICS = 4,
DBG_PRINTING = 8,
DBG_MATH = 16,
DBG_LOGGING = 32
};
enum {TO_GENERATOR, TO_LOAD};
typedef struct {
// general parameters
char last_el_file[200],
last_ld_file[200],
last_ps_file[200],
last_csv_file[200],
last_s2p_file[200],
chart[200],
cursor_font[80],
results_font[80],
complex_sfx[2],
show_swr, // Flags
show_g1,
always_imp, // TRUE: No Z/Y conversion in results
use_bitmap; // TRUE: use bitmap else vector chart
int prec_mhz,
prec_imp,
prec_adm,
nb_type,
rotation; // Direction of rotation
double chart_z0,
swr_circle,
nb_offset, // Offset capacitance
nb_extender; // Extender resistor value
// screen configuration
char vec_font_name[80];
int arc_color[ARC_TYPES],
point_size[PT_TYPES], // Size of imp/adm marks
point_color[PT_TYPES], // Color of imp/adm marks
swr_color, // SWR circle color
g1_color, // G=1 circle color
vec_bg_radius, // Vector chart radius in pixels
vec_background, // Vector chart background color
vec_font_color; // Vector chart font color
double x_offs, // for bitmap backgrounds
y_offs,
chartradius;
// printer configuration
char prt_papersize[20],
prt_font_name[80];
int prt_arc_color[ARC_TYPES],
prt_fill_color[PT_TYPES],
prt_brdr_color[PT_TYPES],
prt_swr_color,
prt_g1_color,
prt_font_color;
double prt_chartsize,
prt_diam[PT_TYPES],
prt_brdr[PT_TYPES],
prt_arc_size[ARC_TYPES],
prt_mleft,
prt_mbottom,
prt_font_size,
prt_swr_size,
prt_g1_size;
// Remote control parameters
char rem_outpipe[120],
rem_inpipe[120],
rem_mode;
int rem_timeout;
// CSV parameters
char csv_sep[2];
// These are local (non-saveable) parameters
int inpipe, outpipe; // Input/output fifos for remote instrument
} pref_struct;
extern pref_struct pref;
void parse_configwindow(GtkWidget *ref);
void load_configwindow(GtkWidget *ref);
void save_config(void);
void load_config(void);
void save_file_paths(void);
linsmith-0.99.21/src/remote.h 0000644 0000000 0000000 00000000321 10416641755 012652 0000000 0000000 enum {REMOTE_NONE, REMOTE_SOCK, REMOTE_SERIAL};
void remote_create_fifos(void);
void remote_send_command(char *cmd);
int remote_receive_reply(char *reply);
void set_remote_enabled(GtkWidget *ref, int state);
linsmith-0.99.21/src/log.c 0000644 0000000 0000000 00000021030 11200615053 012113 0000000 0000000 /*
* log.c: Log generation
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#include
#include "element.h"
#include "support.h"
#include "main.h"
#include "global.h"
#include "log.h"
#define res_hdrfmt " %9.*f MHz "
GtkTreeView *logview = NULL;
struct {
int nr_lds, nr_els, *eltype;
double *freq;
complex *val, *elval, *load;
GtkListStore *store;
} loglist = {
0, 0, 0,
NULL,
NULL
};
void
loglist_initialize(GtkTreeView *tview)
{
GtkTreeViewColumn *col;
GtkCellRenderer *renderer;
GtkTreeIter iter;
int c;
logview = tview;
loglist.store = gtk_list_store_new(LOG_COLS,
G_TYPE_STRING,
G_TYPE_STRING,
G_TYPE_STRING);
gtk_tree_view_set_model(GTK_TREE_VIEW(logview),
GTK_TREE_MODEL(loglist.store));
g_object_unref(loglist.store);
renderer = gtk_cell_renderer_text_new();
gtk_object_set(GTK_OBJECT(renderer),
"font", pref.results_font,
"height", 16,
NULL);
col = gtk_tree_view_column_new_with_attributes("",
renderer,
"text", LOG_ELEM,
NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(logview), col);
renderer = gtk_cell_renderer_text_new();
gtk_object_set(GTK_OBJECT(renderer),
"font", pref.results_font,
"height", 16,
NULL);
col = gtk_tree_view_column_new_with_attributes("",
renderer,
"text", LOG_Z_Y,
NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(logview), col);
renderer = gtk_cell_renderer_text_new();
gtk_object_set(GTK_OBJECT(renderer),
"font", pref.results_font,
"height", 16,
NULL);
col = gtk_tree_view_column_new_with_attributes("",
renderer,
"text", LOG_RESULT,
NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(logview), col);
}
void
loglist_create(int nr_lds, int nr_els)
{
if (loglist.val) g_free(loglist.val);
loglist.val = malloc(sizeof(complex) * nr_lds * nr_els);
loglist.elval = malloc(sizeof(complex) * nr_lds * nr_els);
loglist.eltype = malloc(sizeof(int) * nr_els);
loglist.freq = malloc(sizeof(double) * nr_lds);
loglist.load = malloc(sizeof(complex) * nr_lds);
loglist.nr_lds = nr_lds;
loglist.nr_els = nr_els;
}
void
loglist_set_impedance(int ldnr, int elnr,
complex el_imp, complex imp, int type)
{
loglist.elval[elnr * loglist.nr_lds + ldnr] = imp;
loglist.val[elnr * loglist.nr_lds + ldnr] = imp;
loglist.eltype[elnr] = type;
}
void
loglist_set_load(int ldnr, double freq, complex imp)
{
loglist.freq[ldnr] = freq;
loglist.load[ldnr] = imp;
}
void
loglist_show(void)
{
GtkTreeIter iter;
GtkTreeViewColumn *col;
GtkWidget *w;
gboolean is_imp = TRUE;
char bff[50], elref[10], row[300], *prow, *trow;
int ld, el;
complex c;
if (number_loads() == 0) return;
gtk_list_store_clear(loglist.store);
// Element number column header
prow = g_strdup_printf("%s",
pref.results_font, _("Elem"));
col = gtk_tree_view_get_column(logview, LOG_ELEM);
w = gtk_label_new("");
gtk_widget_show(w);
gtk_label_set_markup(GTK_LABEL(w), prow);
gtk_tree_view_column_set_widget(col, w);
g_free(prow);
// Z/Y mode column header
prow = g_strdup_printf("%s",
pref.results_font, _("Z/Y"));
col = gtk_tree_view_get_column(logview, LOG_Z_Y);
w = gtk_label_new("");
gtk_widget_show(w);
gtk_label_set_markup(GTK_LABEL(w), prow);
gtk_tree_view_column_set_widget(col, w);
g_free(prow);
// Results column header
prow = g_strdup_printf("", pref.results_font);
trow = prow;
for (ld = 0; ld < loglist.nr_lds; ld++) {
sprintf(bff, " %11.*f MHz ", pref.prec_mhz, loglist.freq[ld]);
prow = g_strconcat(prow, bff, NULL);
g_free(trow);
trow = prow;
}
prow = g_strconcat(prow, "", NULL);
col = gtk_tree_view_get_column(logview, LOG_RESULT);
w = gtk_label_new("");
gtk_widget_show(w);
gtk_label_set_markup(GTK_LABEL(w), prow);
gtk_tree_view_column_set_widget(col, w);
g_free(trow); g_free(prow);
// And now the actual results
// First a line with the load impedances
prow = strdup("");
trow = prow;
for (ld = 0; ld < loglist.nr_lds; ld++) {
c = loglist.load[ld];
sprintf(bff, "%10.3f%+10.3f%s ", creal(c), cimag(c), pref.complex_sfx);
prow = g_strconcat(prow, bff, NULL);
g_free(trow);
trow = prow;
}
gtk_list_store_append(loglist.store, &iter);
gtk_list_store_set(loglist.store, &iter,
LOG_ELEM, _("Load"),
LOG_Z_Y, _("Z"),
LOG_RESULT, prow,
-1);
g_free(prow);
// Then, for each element:
for (el = 0; el < loglist.nr_els; el++) {
switch (loglist.eltype[el]) {
case ELT_ZY:
is_imp = !is_imp;
break;
}
// First show the element value
prow = strdup("");
trow = prow;
for (ld = 0; ld < loglist.nr_lds; ld++) {
c = loglist.elval[el * loglist.nr_lds + ld];
sprintf(bff, "%10.3f%+10.3f%s ", creal(c), cimag(c), pref.complex_sfx);
prow = g_strconcat(prow, bff, NULL);
g_free(trow);
trow = prow;
}
sprintf(elref, _("El %d"), el+1);
gtk_list_store_append(loglist.store, &iter);
gtk_list_store_set(loglist.store, &iter,
LOG_ELEM, elref,
LOG_RESULT, loglist.eltype[el] != ELT_ZY ? prow : "",
-1);
g_free(prow);
// Then show the circuit impedance/admittance
prow = strdup("");
trow = prow;
for (ld = 0; ld < loglist.nr_lds; ld++) {
c = loglist.val[el * loglist.nr_lds + ld];
if (is_imp || pref.always_imp) {
sprintf(bff, "%10.*f%+10.*f%s ",
pref.prec_imp, creal(c), pref.prec_imp, cimag(c),
pref.complex_sfx);
} else {
c = pref.chart_z0*pref.chart_z0/c;
sprintf(bff, "%10.*f%+10.*f%s ",
pref.prec_adm, creal(c), pref.prec_adm, cimag(c),
pref.complex_sfx);
}
prow = g_strconcat(prow, bff, NULL);
g_free(trow);
trow = prow;
}
gtk_list_store_append(loglist.store, &iter);
gtk_list_store_set(loglist.store, &iter,
LOG_ELEM, "",
LOG_Z_Y, is_imp ? _("Z:") : _("Y:"),
LOG_RESULT, prow, -1);
g_free(prow);
}
}
void
loglist_export(void)
{
int ld, el;
complex c;
gboolean is_imp = TRUE;
FILE *resf;
if (!loglist.val) {
ok_dialog(_("Warning"), _("No data have been calculated yet!"));
return;
}
if (run_filedialog(_("Result export:"), pref.last_ps_file,
"*.txt", NULL)) {
if (g_file_test(pref.last_ps_file, G_FILE_TEST_EXISTS)) {
if (ok_cancel_dialog(_("Confirmation"),
_("This file already exists.\n"
"Pressing Ok will overwrite it.")) == 1) return;
}
} else
return;
resf = fopen(pref.last_ps_file, "w");
fprintf(resf, _(" "));
for (ld = 0; ld < loglist.nr_lds; ld++) {
fprintf(resf, res_hdrfmt, pref.prec_mhz, loglist.freq[ld]);
}
fprintf(resf, "\n");
fprintf(resf, _(" "));
for (ld = 0; ld < loglist.nr_lds; ld++) {
c = loglist.load[ld];
fprintf(resf, "%10.3f%+10.3f%s ", creal(c), cimag(c), pref.complex_sfx);
}
fprintf(resf, "\n");
for (el = 0; el < loglist.nr_els; el++) {
switch (loglist.eltype[el]) {
case ELT_ZY:
is_imp = !is_imp;
break;
}
// first, the element impedance
fprintf(resf, _(" "));
for (ld = 0; ld < loglist.nr_lds; ld++) {
c = loglist.elval[el * loglist.nr_lds + ld];
fprintf(resf, "%10.3f%+10.3f%s ", creal(c), cimag(c), pref.complex_sfx);
}
fprintf(resf, "\n");
// then the circuit impedance or admittance
fprintf(resf, _("El %2d"), el+1);
for (ld = 0; ld < loglist.nr_lds; ld++) {
c = loglist.val[el * loglist.nr_lds + ld];
if (is_imp || pref.always_imp) {
fprintf(resf, "%10.*f%+10.*f%s ",
creal(c), pref.prec_imp, cimag(c), pref.prec_imp,
pref.complex_sfx);
} else {
c = pref.chart_z0*pref.chart_z0/c;
fprintf(resf, "%10.*f%+10.*f%s ",
creal(c), pref.prec_adm, cimag(c), pref.prec_adm,
pref.complex_sfx);
}
}
fprintf(resf, "\n");
}
fclose(resf);
}
linsmith-0.99.21/src/main.c 0000644 0000000 0000000 00000006406 11541673653 012312 0000000 0000000 /*
* main.c -- The Main Program.
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#include
#include "interface.h"
#include "support.h"
#include "global.h"
GtkWidget *MainWindow;
GtkWidget *ImportWindow;
int debug = 0;
void
check_my_params(char *dbg_args)
{
int c;
if (dbg_args == NULL) return;
for (c = 0; c < strlen(dbg_args); c++) {
switch (dbg_args[c]) {
case 'l': debug |= DBG_LOADS; break;
case 'e': debug |= DBG_ELEMENTS; break;
case 'g': debug |= DBG_GRAPHICS; break;
case 'p': debug |= DBG_PRINTING; break;
case 'm': debug |= DBG_MATH; break;
case 'o': debug |= DBG_LOGGING; break;
}
}
}
int
main (int argc, char *argv[])
{
gchar *dbg = NULL;
const GOptionEntry opt_entries[] = {
{"debug", 'd', 0, G_OPTION_ARG_STRING, &dbg,
"Debug options:\n"
" e: element\n"
" l: loads\n"
" p: printing\n"
" g: graphics\n"
" m: math\n"
" l: logging", "opts"},
{"g-fatal-warnings", 0, 0, G_OPTION_ARG_NONE, NULL,
"Make WARNINGs abort the program", NULL},
{NULL}
};
GOptionContext *option_context;
GError *err = NULL;
#ifdef ENABLE_NLS
bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE);
#endif
option_context = g_option_context_new ("\n (c) John Coppens 1997-2011");
g_option_context_add_main_entries (option_context, opt_entries, NULL);
if (!g_option_context_parse (option_context, &argc, &argv, &err)) {
g_print ("option parsing failed: %s\n", err->message);
exit (1);
}
gnome_program_init(PACKAGE, VERSION, LIBGNOMEUI_MODULE,
argc, argv,
GNOME_PARAM_APP_DATADIR, PACKAGE_DATA_DIR,
GNOME_PARAM_GOPTION_CONTEXT, option_context,
NULL);
check_my_params(dbg);
/*
* The following code was added by Glade to create one of each component
* (except popup menus), just so that you see something after building
* the project. Delete any components that you don't want shown initially.
*/
MainWindow = create_MainWindow();
gtk_widget_show(MainWindow);
gtk_main ();
return 0;
}
linsmith-0.99.21/src/callbacks.h 0000644 0000000 0000000 00000035125 11541552414 013301 0000000 0000000 /*
* callbacks.c: event and signal handlers
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#include
void
on_load3_activate (GtkMenuItem *menuitem,
gpointer user_data);
void
on_save4_activate (GtkMenuItem *menuitem,
gpointer user_data);
void
on_save_as4_activate (GtkMenuItem *menuitem,
gpointer user_data);
void
on_load4_activate (GtkMenuItem *menuitem,
gpointer user_data);
void
on_save5_activate (GtkMenuItem *menuitem,
gpointer user_data);
void
on_save_as3_activate (GtkMenuItem *menuitem,
gpointer user_data);
void
on_quit1_activate (GtkMenuItem *menuitem,
gpointer user_data);
void
on_preferences1_activate (GtkMenuItem *menuitem,
gpointer user_data);
void
on_about1_activate (GtkMenuItem *menuitem,
gpointer user_data);
gboolean
on_MainWindow_delete_event (GtkWidget *widget,
GdkEvent *event,
gpointer user_data);
void
on_load_append_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_load_remove_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_load_edit_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_circ_up_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_circ_down_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_load_rx_rbtn_clicked (GtkButton *button,
gpointer user_data);
void
on_load_rang_rbtn_clicked (GtkButton *button,
gpointer user_data);
void
on_canvas1_realize (GtkWidget *widget,
gpointer user_data);
void
on_circ_par_cline_tbtn_clicked (GtkButton *button,
gpointer user_data);
void
on_circ_treeview_cursor_changed (GtkTreeView *treeview,
gpointer user_data);
void
on_load_treeview_cursor_changed (GtkTreeView *treeview,
gpointer user_data);
void
on_circ_rota_rbtn_clicked (GtkButton *button,
gpointer user_data);
void
on_circ_rotr_rbtn_clicked (GtkButton *button,
gpointer user_data);
void
on_circ_spec_rbtn_clicked (GtkButton *button,
gpointer user_data);
gboolean
on_chart_canvas_motion_notify_event (GtkWidget *widget,
GdkEventMotion *event,
gpointer user_data);
void
on_MainWindow_realize (GtkWidget *widget,
gpointer user_data);
void
on_circuit_notebook_realize (GtkWidget *widget,
gpointer user_data);
void
on_recalc_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_load_setref_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_recalculate1_activate (GtkMenuItem *menuitem,
gpointer user_data);
void
on_conf_cancel_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_conf_ok_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_ConfigWindow_realize (GtkWidget *widget,
gpointer user_data);
void
on_test1_activate (GtkMenuItem *menuitem,
gpointer user_data);
void
on_zoom_out_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_zoom_in_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_log_treeview_realize (GtkWidget *widget,
gpointer user_data);
void
on_notebook4_realize (GtkWidget *widget,
gpointer user_data);
void
on_save_as_postscript1_activate (GtkMenuItem *menuitem,
gpointer user_data);
void
on_prt_font_picker_font_set (GnomeFontPicker *fontpicker,
gchar *font_name,
gpointer user_data);
gboolean
on_ConfigWindow_destroy_event (GtkWidget *widget,
GdkEvent *event,
gpointer user_data);
void
on_load_getrem_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_confrem_enable_cbtn_clicked (GtkButton *button,
gpointer user_data);
void
on_z0_entry_changed (GtkEditable *editable,
gpointer user_data);
void
on_circ_newel_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_circ_delete_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_circ_upd_el_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_comp_stub_selcable_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_CableWindow_realize (GtkWidget *widget,
gpointer user_data);
void
on_comp_line_selcable_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_cable_view_cursor_changed (GtkTreeView *treeview,
gpointer user_data);
void
on_cable_cancel_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_cable_accept_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_save_results_page1_activate (GtkMenuItem *menuitem,
gpointer user_data);
void
on_comp_series_tbtn_toggled (GtkToggleButton *togglebutton,
gpointer user_data);
void
on_comp_parallel_tbtn_toggled (GtkToggleButton *togglebutton,
gpointer user_data);
void
on_z0_entry_editing_done (GtkCellEditable *celleditable,
gpointer user_data);
void
on_z0_cbbox_changed (GtkComboBox *combobox,
gpointer user_data);
void
on_z0_cbbox_realize (GtkWidget *widget,
gpointer user_data);
void
on_load_x_entry_changed (GtkEditable *editable,
gpointer user_data);
void
on_load_r_entry_changed (GtkEditable *editable,
gpointer user_data);
void
on_load_freq_entry_changed (GtkEditable *editable,
gpointer user_data);
void
on_load_clear_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_circ_clear_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_direction_cbbox_changed (GtkComboBox *combobox,
gpointer user_data);
void
on_direction_cbbox_realize (GtkWidget *widget,
gpointer user_data);
void
on_loadtype_notebook_switch_page (GtkNotebook *notebook,
GtkNotebookPage *page,
guint page_num,
gpointer user_data);
void
on_rem_cancel_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_nb_type_cbbox_changed (GtkComboBox *combobox,
gpointer user_data);
void
on_nb_type_cbbox_realize (GtkWidget *widget,
gpointer user_data);
void
on_load_nb_r_entry_changed (GtkEditable *editable,
gpointer user_data);
void
on_load_nb_c_entry_changed (GtkEditable *editable,
gpointer user_data);
void
on_load_nb_ext_cbtn_toggled (GtkToggleButton *togglebutton,
gpointer user_data);
void
on_load_nb_append_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_load_nb_upd_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_load_nb_freq_entry_changed (GtkEditable *editable,
gpointer user_data);
void
on_import1_activate (GtkMenuItem *menuitem,
gpointer user_data);
void
on_import_sel_all_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_import_sel_none_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_import_sel_invert_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_import_cancel_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_import_exec_btn_clicked (GtkButton *button,
gpointer user_data);
gboolean
on_ImportWindow_delete_event (GtkWidget *widget,
GdkEvent *event,
gpointer user_data);
void
on_ImportWindow_realize (GtkWidget *widget,
gpointer user_data);
void
on_import_s2p_sel_all_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_import_s2p_sel_none_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_import_s2p_sel_invert_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_import_s2p_cancel_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_import_s2p_exec_btn_clicked (GtkButton *button,
gpointer user_data);
gboolean
on_Imports2pWindow_delete_event (GtkWidget *widget,
GdkEvent *event,
gpointer user_data);
void
on_Imports2pWindow_realize (GtkWidget *widget,
gpointer user_data);
void
on_csv_loads1_activate (GtkMenuItem *menuitem,
gpointer user_data);
void
on_s2p_files1_activate (GtkMenuItem *menuitem,
gpointer user_data);
void
on_import_s2p_impS11_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_import_s2p_impS22_btn_clicked (GtkButton *button,
gpointer user_data);
void
on_print1_activate (GtkMenuItem *menuitem,
gpointer user_data);
linsmith-0.99.21/src/load.c 0000644 0000000 0000000 00000022653 11010632032 012260 0000000 0000000 /*
* load.c: Load related functions, list management etc.
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#include
#include
#include
#include "support.h"
#include "callbacks.h"
#include "global.h"
#include "main.h"
#include "load_nb.h"
#include "load_rx.h"
#include "load.h"
#include "chart.h"
#include "misc.h"
typedef struct {
char *hdr;
int w;
} loaddef_entry;
loaddef_entry loaddef[] = {
{N_("F (MHz)"), 80},
{N_("Real"), 60},
{N_("Imag"), 50}
};
#define ldef_len sizeof(loaddef)/sizeof(loaddef_entry)
GtkTreeIter active_ld_iter;
load_definition active_load;
GtkWidget *ld_view;
int load_mode = LOADMODE_R_JX;
//---------------------------------------------------------------------
// Loads
//---------------------------------------------------------------------
void
load4_activate(void)
{
if (number_loads() != 0) {
switch (list_not_empty_dialog(
_("The load list is not empty. Selecting Append will append\n"
"the new values."))) {
case LSTDLG_APPEND: break;
case LSTDLG_CLEAR : loadlist_clear(); break;
case LSTDLG_CANCEL: return;
}
}
if (run_filedialog(_("Load load impedances"), pref.last_ld_file, TRUE,
_("linSmith loads"), "*.load",
_("All files"), "*",
NULL)){
load_loads(pref.last_ld_file);
save_file_paths();
}
}
void
save5_activate(void)
{
if (strlen(pref.last_ld_file) != 0)
save_loads(pref.last_ld_file);
else
save_as3_activate();
}
void
save_as3_activate(void)
{
if (run_filedialog(_("Save load impedances as"), pref.last_ld_file, FALSE,
_("linSmith loads"), "*.load",
_("All files"), "*",
NULL)) {
save_loads(pref.last_ld_file);
save_file_paths();
}
}
gint
compare_frequencies(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b,
gpointer user_data)
{
double f1, f2;
gtk_tree_model_get(model, a, LD_FREQ_VAL, &f1, -1);
gtk_tree_model_get(model, b, LD_FREQ_VAL, &f2, -1);
if (f1 < f2)
return -1;
else
if (f1 == f2)
return 0;
else
return 1;
}
void
initialize_loadtable(void)
{
GtkListStore *loads;
GtkCellRenderer *renderer;
GtkTreeViewColumn *col, *sortcol;
int def;
loads = gtk_list_store_new(LD_COLS,
G_TYPE_STRING, // Frequency (on-screen)
G_TYPE_STRING, // Resistance (on-screen)
G_TYPE_STRING, // Reactance (on-scren)
G_TYPE_DOUBLE, // load f
G_TYPE_DOUBLE, // load r
G_TYPE_DOUBLE, // load x
G_TYPE_DOUBLE, // nb r
G_TYPE_DOUBLE, // nb c
G_TYPE_CHAR, // nb extender
G_TYPE_POINTER, // loadpoint canvas item
G_TYPE_POINTER); // result column
ld_view = lookup_widget(MainWindow, "load_treeview");
gtk_tree_view_set_model(GTK_TREE_VIEW(ld_view), GTK_TREE_MODEL(loads));
g_object_unref(G_OBJECT(loads));
for (def = 0; def < ldef_len; def++) {
renderer = gtk_cell_renderer_text_new();
gtk_object_set(GTK_OBJECT(renderer),
"height", 14, "ypad", 0,
"xalign", 1.0, NULL);
col = gtk_tree_view_column_new_with_attributes(
_(loaddef[def].hdr),
renderer, "text", def,
NULL);
if (def == 0) sortcol = col;
gtk_tree_view_append_column(GTK_TREE_VIEW(ld_view), col);
gtk_tree_view_column_set_sizing(GTK_TREE_VIEW_COLUMN(col),
GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_fixed_width(GTK_TREE_VIEW_COLUMN(col),
loaddef[def].w);
}
gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(loads), LD_FREQ_VAL,
compare_frequencies, NULL, NULL);
gtk_tree_view_column_set_sort_column_id(sortcol, LD_FREQ_VAL);
}
int
number_loads(void)
{
GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(ld_view));
return gtk_tree_model_iter_n_children(model, NULL);
}
int
number_selected_loads(void)
{
GtkTreeSelection *sel;
sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(ld_view));
return gtk_tree_selection_count_selected_rows(sel);
}
void
switch_load_mode(int newpage)
{
switch (newpage) {
case 0: load_mode = LOADMODE_R_JX; break;
case 1: load_mode = LOADMODE_NOISE; break;
case 2: load_mode = LOADMODE_REMOTE; break;
}
}
void
load_append(load_definition *tload)
{
GtkTreeIter iter;
GtkTreeModel *ldstore;
ldstore = gtk_tree_view_get_model(GTK_TREE_VIEW(ld_view));
gtk_list_store_append(GTK_LIST_STORE(ldstore), &active_ld_iter);
tload->pt = create_load_point();
load_update(tload);
}
void
enable_load_buttons(int action)
{
switch (load_mode) {
case LOADMODE_R_JX: enable_load_rx_buttons(action); break;
case LOADMODE_NOISE: enable_load_nb_buttons(action); break;
}
}
void
load_update(load_definition *tload)
{
GtkListStore *store;
char r[20], x[20], f[20];
if (active_ld_iter.stamp == 0) return;
store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ld_view)));
sprintf(f, "%.*f", pref.prec_mhz, tload->f);
sprintf(r, "%.1f", tload->r);
sprintf(x, "%.1f", tload->x);
set_point(tload->pt, tload->r + tload->x*I, ZPT_LOAD);
gtk_list_store_set(store, &active_ld_iter,
LD_FREQ, f,
LD_REAL, r,
LD_REACT, x,
LD_FREQ_VAL, tload->f,
LD_REAL_VAL, tload->r,
LD_REACT_VAL, tload->x,
LD_NB_RVAL, tload->nb_r,
LD_NB_CVAL, tload->nb_c,
LD_NB_EXT, tload->nb_ext,
LD_POINT, tload->pt,
-1);
enable_load_buttons(LOADLIST_UPDATED);
}
void
on_load_selected(GtkTreeView *treeview)
{
switch (load_mode) {
case LOADMODE_R_JX:
on_load_rx_selected(treeview);
break;
case LOADMODE_NOISE:
on_load_nb_selected(treeview);
break;
}
}
void
loadlist_clear(void)
{
GtkTreeModel *model;
GtkTreeIter iter;
gboolean more;
chart_point *pt;
model = gtk_tree_view_get_model(GTK_TREE_VIEW(ld_view));
more = gtk_tree_model_get_iter_first(model, &iter);
while (more) {
gtk_tree_model_get(model, &iter,
LD_POINT, &pt,
-1);
if (pt) {
gtk_object_destroy(GTK_OBJECT(pt->point));
g_free(pt);
}
more = gtk_tree_model_iter_next(model, &iter);
}
gtk_list_store_clear(GTK_LIST_STORE(model));
switch (load_mode) {
case LOADMODE_R_JX:
loadlist_rx_clear(); break;
case LOADMODE_NOISE:
loadlist_nb_clear(); break;
// case LOADMODE_REMOTE:
// loadlist_rem_clear(); break;
}
}
void
load_modified(int which)
{
enable_load_buttons(LOADLIST_EDITED);
}
/*
* File operations
*/
gboolean
save_each_load(GtkTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter,
gpointer user_data)
{
load_definition load;
FILE *xmlf = user_data;
gtk_tree_model_get(model, iter,
LD_FREQ_VAL, &load.f,
LD_REAL_VAL, &load.r,
LD_REACT_VAL, &load.x,
LD_NB_RVAL, &load.nb_r,
LD_NB_CVAL, &load.nb_c,
LD_NB_EXT, &load.nb_ext,
-1);
fprintf(xmlf, " \n",
load.f, load.r, load.x,
load.nb_r, load.nb_c, load.nb_ext);
return FALSE;
}
void
save_loads(char *fn)
{
GtkWidget *loads = lookup_widget(MainWindow, "load_treeview");
GtkTreeModel *store = gtk_tree_view_get_model(GTK_TREE_VIEW(loads));
FILE *xmlf;
if ((xmlf = fopen(fn, "r"))) {
fclose(xmlf);
if (ok_cancel_dialog(_("Confirmation"),
_("File exists - want to overwrite?"))
== 1) {
return;
}
}
xmlf = fopen(fn, "w");
if (!strcmp(fn, "")) return;
fprintf(xmlf, "\n");
fprintf(xmlf, "\n");
gtk_tree_model_foreach(store, save_each_load, xmlf);
fprintf(xmlf, "\n");
fclose(xmlf);
}
void
load_loads(char *fn)
{
load_definition load;
xmlChar *dbl;
xmlDocPtr doc;
xmlNodePtr cur;
if (!xml_file_loaded(&doc, fn, "loads")) return;
cur = xmlDocGetRootElement(doc);
cur = cur->xmlChildrenNode;
while (cur != NULL) {
if ((!xmlStrcmp(cur->name, (const xmlChar *) "load"))) {
active_load.f = atof(dbl = xmlGetProp(cur, "f")); xmlFree(dbl);
active_load.r = atof(dbl = xmlGetProp(cur, "r")); xmlFree(dbl);
active_load.x = atof(dbl = xmlGetProp(cur, "x")); xmlFree(dbl);
if (dbl = xmlGetProp(cur, "nb_r")) {
active_load.nb_r = atof(dbl); xmlFree(dbl);
} else
active_load.nb_r = 0;
if (dbl = xmlGetProp(cur, "nb_c")) {
active_load.nb_c = atof(dbl); xmlFree(dbl);
} else
active_load.nb_c = 0;
if (dbl = xmlGetProp(cur, "nb_ext")) {
active_load.nb_ext = atoi(dbl); xmlFree(dbl);
} else
active_load.nb_ext = 0;
load_append(&active_load);
}
cur = cur->next;
}
xmlFreeDoc(doc);
}
linsmith-0.99.21/src/global.c 0000644 0000000 0000000 00000035766 11541667644 012644 0000000 0000000 /*
* global.c: A few global routines - mostly configuration
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include "global.h"
#include "confmgr.h"
pref_struct pref;
char *initial_chart = PACKAGE_DATA_DIR"/pixmaps/smith2.png";
conf_definition preftable[] = {
// General
{CFM_W_SPBTN_INT, "conf_prec_mhz_spbtn", &pref.prec_mhz, 0,
CFM_T_INT, "global/prec_mhz", 0, "3"},
{CFM_W_SPBTN_INT, "conf_prec_imp_spbtn", &pref.prec_imp, 0,
CFM_T_INT, "global/prec_imp", 0, "3"},
{CFM_W_SPBTN_INT, "conf_prec_adm_spbtn", &pref.prec_adm, 0,
CFM_T_INT, "global/prec_adm", 0, "6"},
{CFM_W_CBTN, "conf_always_imp_cbtn", &pref.always_imp, 0,
CFM_T_CHAR, "global/always_imp", 0, "1"},
{CFM_W_ENTRY_DOUBLE, "conf_swr_entry", &pref.swr_circle, 2,
CFM_T_DOUBLE, "global/swr_circle", 0, "2.0"},
{CFM_W_COLORBUTTON, "conf_swrcircle_colbtn", &pref.swr_color, 0,
CFM_T_INT, "aspect/swr_color", 0, "-16776961"},
{CFM_W_CBTN, "conf_swr_cbtn", &pref.show_swr, 0,
CFM_T_CHAR, "global/show_swr", 0, "1"},
{CFM_W_ENTRY_STR, "conf_complex_entry", &pref.complex_sfx, 0,
CFM_T_STR, "global/complex_suffix", 0, "j"},
{CFM_W_CBTN, "conf_g1_cbtn", &pref.show_g1, 0,
CFM_T_CHAR, "global/show_g1", 0, "1"},
{CFM_W_COLORBUTTON, "conf_g1circle_colbtn", &pref.g1_color, 0,
CFM_T_INT, "aspect/g1_color", 0, "-1381126657"},
{CFM_W_CBTN, "use_bitmap_cbtn", &pref.use_bitmap, 0,
CFM_T_CHAR, "global/use_bitmap", 0, "1"},
{CFM_W_FONTBUTTON, "conf_cursor_font_fbtn", &pref.cursor_font, 0,
CFM_T_STR, "aspect/cursor_font", 0, "Courier New 8"},
{CFM_W_FONTBUTTON, "conf_results_font_fbtn", &pref.results_font, 0,
CFM_T_STR, "aspect/results_font", 0, "Courier New 8"},
// screen plot colors & sizes
{CFM_W_SPBTN_INT, "conf_load_spbtn", &pref.point_size[ZPT_LOAD], 0,
CFM_T_INT, "aspect/load_size", 0, "8"},
{CFM_W_SPBTN_INT, "conf_point_spbtn", &pref.point_size[ZPT_INT], 0,
CFM_T_INT, "aspect/point_size", 0, "6"},
{CFM_W_SPBTN_INT, "conf_final_spbtn", &pref.point_size[ZPT_FINAL], 0,
CFM_T_INT, "aspect/final_size", 0, "8"},
{CFM_W_COLORBUTTON, "conf_load_colbtn", &pref.point_color[ZPT_LOAD], 0,
CFM_T_INT, "aspect/load_color", 0, "0xffff00ff"},
{CFM_W_COLORBUTTON, "conf_point_colbtn", &pref.point_color[ZPT_INT], 0,
CFM_T_INT, "aspect/point_color", 0, "0x00ff00ff"},
{CFM_W_COLORBUTTON, "conf_final_colbtn", &pref.point_color[ZPT_FINAL], 0,
CFM_T_INT, "aspect/final_color", 0, "0xff0400ff"},
{CFM_W_COLORBUTTON, "conf_z_arc_colbtn", &pref.arc_color[Z_ARC], 0,
CFM_T_INT, "aspect/z_arc_color", 0, "0xff7474ff"},
{CFM_W_COLORBUTTON, "conf_y_arc_colbtn", &pref.arc_color[Y_ARC], 0,
CFM_T_INT, "aspect/y_arc_color", 0, "0x808080ff"},
{CFM_W_COLORBUTTON, "conf_line_arc_colbtn", &pref.arc_color[K_ARC], 0,
CFM_T_INT, "aspect/line_arc_color", 0, "0x5ece5eff"},
{CFM_W_COLORBUTTON, "conf_zy_line_colbtn", &pref.arc_color[ZY_LINE], 0,
CFM_T_INT, "aspect/zy_line_color", 0, "0xa7a7a7ff"},
{CFM_W_COLORBUTTON, "conf_r_arc_colbtn", &pref.arc_color[R_ARC], 0,
CFM_T_INT, "aspect/r_arc_color", 0, "0xc0c0ffff"},
{CFM_W_COLORBUTTON, "conf_r_arc_bold_colbtn", &pref.arc_color[RB_ARC], 0,
CFM_T_INT, "aspect/rb_arc_color", 0, "0x8080ffff"},
{CFM_W_COLORBUTTON, "conf_x_arc_colbtn", &pref.arc_color[X_ARC], 0,
CFM_T_INT, "aspect/x_arc_color", 0, "0xc0c0ffff"},
{CFM_W_COLORBUTTON, "conf_x_arc_bold_colbtn", &pref.arc_color[XB_ARC], 0,
CFM_T_INT, "aspect/xb_arc_color", 0, "0x8080ffff"},
{CFM_W_COLORBUTTON, "conf_g1_colbtn", &pref.g1_color, 0,
CFM_T_INT, "aspect/g1_color", 0, "0x808080ff"},
{CFM_W_COLORBUTTON, "conf_swr_colbtn", &pref.swr_color, 0,
CFM_T_INT, "aspect/swr_color", 0, "0xff8080ff"},
// Screen bitmap background
{CFM_W_ENTRY_STR, "conf_chartbg_entry", &pref.chart, 0,
CFM_T_STR, "chart/chartbg", 0,
PACKAGE_DATA_DIR"/pixmaps/linsmith/smith4.png"},
{CFM_W_ENTRY_DOUBLE, "conf_radius_entry", &pref.chartradius, 1,
CFM_T_DOUBLE, "chart/radius", 0, "211"},
{CFM_W_ENTRY_DOUBLE, "conf_xoffs_entry", &pref.x_offs, 1,
CFM_T_DOUBLE, "chart/x_offs", 0, "2"},
{CFM_W_ENTRY_DOUBLE, "conf_yoffs_entry", &pref.y_offs, 1,
CFM_T_DOUBLE, "chart/y_offs", 0, "0"},
// Screen vector background
{CFM_W_COLORBUTTON, "conf_vecbg_colbtn", &pref.vec_background, 0,
CFM_T_INT, "aspect/vecbg_color", 0, "0xf0ffffff"},
{CFM_W_ENTRY_INT, "conf_vecbg_size_entry", &pref.vec_bg_radius, 0,
CFM_T_INT, "aspect/vecbg_size", 0, "250"},
{CFM_W_FONTBUTTON, "conf_font_fpick", &pref.vec_font_name, 0,
CFM_T_STR, "aspect/font", 0, "Helvetica 8"},
{CFM_W_COLORBUTTON, "conf_font_colbtn", &pref.vec_font_color, 0,
CFM_T_INT, "aspect/font_color", 0, "-9210881"},
// Printer setup
{CFM_W_ENTRY_STR, "prt_papersize_entry", &pref.prt_papersize, 0,
CFM_T_STR, "print/papersize", 0, "A4"},
{CFM_W_ENTRY_DOUBLE, "prt_chartsize_entry", &pref.prt_chartsize, 1,
CFM_T_DOUBLE, "print/chartsize", 0, "160.0"},
{CFM_W_ENTRY_DOUBLE, "prt_mleft_entry", &pref.prt_mleft, 1,
CFM_T_DOUBLE, "print/marginleft", 0, "1.0"},
{CFM_W_ENTRY_DOUBLE, "prt_mbottom_entry", &pref.prt_mbottom, 1,
CFM_T_DOUBLE, "print/marginbottom", 0, "1.0"},
// Printer chart background properties
// R arcs - normal
{CFM_W_COLORBUTTON, "prt_r_arc_colbtn",
&pref.prt_arc_color[R_ARC], 0,
CFM_T_INT, "print/bgarc_color_r", 0, "-4629761"},
{CFM_W_SPBTN_DOUBLE, "prt_r_arc_spbtn",
&pref.prt_arc_size[R_ARC], 0,
CFM_T_DOUBLE, "print/bgarc_size_r", 0, "0.1"},
// R arcs - bold
{CFM_W_COLORBUTTON, "prt_r_arc_bold_colbtn",
&pref.prt_arc_color[RB_ARC], 0,
CFM_T_INT, "print/bgarc_bold_color_r", 0, "-91225345"},
{CFM_W_SPBTN_DOUBLE, "prt_r_arc_bold_spbtn",
&pref.prt_arc_size[RB_ARC], 0,
CFM_T_DOUBLE, "print/bgarc_bold_size_r", 0, "0.2"},
// X arcs - normal
{CFM_W_COLORBUTTON, "prt_x_arc_colbtn",
&pref.prt_arc_color[X_ARC], 0,
CFM_T_INT, "print/bgarc_color_x", 0, "-5921281"},
{CFM_W_SPBTN_DOUBLE, "prt_x_arc_spbtn",
&pref.prt_arc_size[X_ARC], 0,
CFM_T_DOUBLE, "print/bgarc_size_x", 0, "0.1"},
// X arcs - bold
{CFM_W_COLORBUTTON, "prt_x_arc_bold_colbtn",
&pref.prt_arc_color[XB_ARC], 0,
CFM_T_INT, "print/bgarc_bold_color_x", 0, "-10460929"},
{CFM_W_SPBTN_DOUBLE, "prt_x_arc_bold_spbtn",
&pref.prt_arc_size[XB_ARC], 0,
CFM_T_DOUBLE, "print/bgarc_bold_size_x", 0, "0.2"},
{CFM_W_COLORBUTTON, "prt_g1_colbtn", &pref.prt_g1_color, 0,
CFM_T_INT, "print/g1_color", 0, "0x808080ff"},
{CFM_W_COLORBUTTON, "prt_swr_colbtn", &pref.prt_swr_color, 0,
CFM_T_INT, "print/swr_color", 0, "-2139029505"},
// Actual (print) plot properties - load, intermediate, source points
// Load points
{CFM_W_COLORBUTTON, "prt_ldfill_colbtn",
&pref.prt_fill_color[ZPT_LOAD], 0,
CFM_T_INT, "print/ldfill_color", 0, "-65281"},
{CFM_W_SPBTN_DOUBLE, "prt_lddiam_spbtn",
&pref.prt_diam[ZPT_LOAD], 0,
CFM_T_DOUBLE, "print/lddiam", 0, "2.0"},
{CFM_W_COLORBUTTON, "prt_ldbrdr_colbtn",
&pref.prt_brdr_color[ZPT_LOAD], 0,
CFM_T_INT, "print/ldbrdr_color", 0, "-6160129"},
{CFM_W_SPBTN_DOUBLE, "prt_ldbrdr_spbtn",
&pref.prt_brdr[ZPT_LOAD], 0,
CFM_T_DOUBLE, "print/ldbrdr", 0, "0.2"},
// Intermediate points
{CFM_W_COLORBUTTON, "prt_intfill_colbtn",
&pref.prt_fill_color[ZPT_INT], 0,
CFM_T_INT, "print/intfill_color", 0, "16711935"},
{CFM_W_SPBTN_DOUBLE, "prt_intdiam_spbtn",
&pref.prt_diam[ZPT_INT], 0,
CFM_T_DOUBLE, "print/intdiam", 0, "1.0"},
{CFM_W_COLORBUTTON, "prt_intbrdr_colbtn",
&pref.prt_brdr_color[ZPT_INT], 0,
CFM_T_INT, "print/intbrdr_color", 0, "7210751"},
{CFM_W_SPBTN_DOUBLE, "prt_intbrdr_spbtn",
&pref.prt_brdr[ZPT_INT], 0,
CFM_T_DOUBLE, "print/intbrdr", 0, "0.1"},
// Final points
{CFM_W_COLORBUTTON, "prt_finalfill_colbtn",
&pref.prt_fill_color[ZPT_FINAL], 0,
CFM_T_INT, "print/finalfill_color", 0, "-16776961"},
{CFM_W_COLORBUTTON, "prt_finalbrdr_colbtn",
&pref.prt_brdr_color[ZPT_FINAL], 0,
CFM_T_INT, "print/finalbrdr_color", 0, "-1275068161"},
{CFM_W_SPBTN_DOUBLE, "prt_finaldiam_spbtn",
&pref.prt_diam[ZPT_FINAL], 0,
CFM_T_DOUBLE, "print/finaldiam", 0, "2.0"},
{CFM_W_SPBTN_DOUBLE, "prt_finalbrdr_spbtn",
&pref.prt_brdr[ZPT_FINAL], 0,
CFM_T_DOUBLE, "print/finalbrdr", 0, "0.2"},
// Actual plot properties - arcs
// Z - arcs
{CFM_W_COLORBUTTON, "prt_z_arc_colbtn",
&pref.prt_arc_color[Z_ARC], 0,
CFM_T_INT, "print/arc_color_z", 0, "-6576641"},
{CFM_W_SPBTN_DOUBLE, "prt_z_arc_spbtn",
&pref.prt_arc_size[Z_ARC], 0,
CFM_T_DOUBLE, "print/arc_z", 0, "0.4"},
// Y - arcs
{CFM_W_COLORBUTTON, "prt_y_arc_colbtn",
&pref.prt_arc_color[Y_ARC], 0,
CFM_T_INT, "print/arc_color_y", 0, "-1212678145"},
{CFM_W_SPBTN_DOUBLE, "prt_y_arc_spbtn",
&pref.prt_arc_size[Y_ARC], 0,
CFM_T_DOUBLE, "print/arc_y", 0, "0.4"},
// Line - arcs
{CFM_W_COLORBUTTON, "prt_line_arc_colbtn",
&pref.prt_arc_color[K_ARC], 0,
CFM_T_INT, "print/arc_color_line", 0, "-1308642817"},
{CFM_W_SPBTN_DOUBLE, "prt_line_arc_spbtn",
&pref.prt_arc_size[K_ARC], 0,
CFM_T_DOUBLE, "print/arc_line", 0, "0.4"},
// Z-Y connection lines
{CFM_W_COLORBUTTON, "prt_zy_line_colbtn",
&pref.prt_arc_color[ZY_LINE], 0,
CFM_T_INT, "print/arc_color_zyline", 0, "-1179010561"},
{CFM_W_SPBTN_DOUBLE, "prt_zy_line_spbtn",
&pref.prt_arc_size[ZY_LINE], 0,
CFM_T_DOUBLE, "print/arc_zyline", 0, "0.1"},
// Misc
// SWR circle
{CFM_W_COLORBUTTON, "prt_swrcircle_colbtn", &pref.prt_swr_color, 0,
CFM_T_INT, "print/swr_color", 0, "-8750337"},
{CFM_W_SPBTN_DOUBLE, "prt_swrcircle_spbtn", &pref.prt_swr_size, 0,
CFM_T_DOUBLE, "print/swr_size", 0, "0.1"},
// G=1 circle
{CFM_W_COLORBUTTON, "prt_g1circle_colbtn", &pref.prt_g1_color, 0,
CFM_T_INT, "print/g1_color", 0, "-1010580481"},
{CFM_W_SPBTN_DOUBLE, "prt_g1circle_spbtn", &pref.prt_g1_size, 0,
CFM_T_DOUBLE, "print/g1_size", 0, "0.1"},
// Font
{CFM_W_FONTBUTTON, "prt_fontbtn", &pref.prt_font_name, 0,
CFM_T_STR, "print/prt_font_name", 0, "Helvetica"},
{CFM_W_COLORBUTTON, "prt_font_colbtn", &pref.prt_font_color, 0,
CFM_T_INT, "print/font_color", 0, "-1097924353"},
{CFM_W_SPBTN_DOUBLE, "prt_fontsize_spbtn", &pref.prt_font_size, 0,
CFM_T_DOUBLE, "print/font_size", 0, "2.0"},
// Remote tab: control parameters
{CFM_W_CBOX, "confrem_mode_cbox", &pref.rem_mode, 0,
CFM_T_INT, "remote/mode", 0, "0"},
{CFM_W_ENTRY_STR, "confrem_outpipe_entry", &pref.rem_outpipe, 0,
CFM_T_STR, "remote/outpipe", 0, "/tmp/linsmith.out"},
{CFM_W_ENTRY_STR, "confrem_inpipe_entry", &pref.rem_inpipe, 0,
CFM_T_STR, "remote/inpipe", 0, "/tmp/linsmith.in"},
{CFM_W_ENTRY_INT, "confrem_timeout_entry", &pref.rem_timeout, 0,
CFM_T_INT, "remote/timeout", 0, "2000"},
// Noisebridge tab:
{CFM_W_ENTRY_DOUBLE, "conf_nb_offs_entry", &pref.nb_offset, 2,
CFM_T_DOUBLE, "noisebr/offset", 0, "110.0"},
{CFM_W_ENTRY_DOUBLE, "conf_nb_ext_entry", &pref.nb_extender, 2,
CFM_T_DOUBLE, "noisebr/extender", 0, "100.0"},
{CFM_W_CBOX, "nb_type_cbbox", &pref.nb_type, 0,
CFM_T_INT, "noisebr/type", 0, "0"},
// Files tab: last used filenames
{CFM_W_ENTRY_STR, "conf_last_ld_entry", &pref.last_ld_file, 0,
CFM_T_STR, "files/last_load_file", 0, ""},
{CFM_W_ENTRY_STR, "conf_last_el_entry", &pref.last_el_file, 0,
CFM_T_STR, "files/last_elem_file", 0, ""},
{CFM_W_ENTRY_STR, "conf_last_ps_entry", &pref.last_ps_file, 0,
CFM_T_STR, "files/last_ps_file", 0, ""},
{CFM_W_ENTRY_STR, "conf_last_csv_entry", &pref.last_csv_file, 0,
CFM_T_STR, "files/last_csv_file", 0, ""},
{CFM_W_ENTRY_STR, "conf_last_s2p_entry", &pref.last_s2p_file, 0,
CFM_T_STR, "files/last_s2p_file", 0, ""},
// File tab: CSV separator character
{CFM_W_ENTRY_STR, "conf_csv_sep_entry", &pref.csv_sep, 0,
CFM_T_STR, "files/csv_sep", 0, ","}
};
#define preflen (sizeof(preftable)/sizeof(conf_definition))
conf_definition pathtable[] = {
// Common
{CFM_W_ENTRY_STR, "conf_last_ld_entry", &pref.last_ld_file, 0,
CFM_T_STR, "files/last_load_file", 0, ""},
{CFM_W_ENTRY_STR, "conf_last_el_entry", &pref.last_el_file, 0,
CFM_T_STR, "files/last_elem_file", 0, ""},
{CFM_W_ENTRY_STR, "conf_last_ps_entry", &pref.last_ps_file, 0,
CFM_T_STR, "files/last_ps_file", 0, ""}
};
#define pathlen (sizeof(pathtable)/sizeof(conf_definition))
void
save_config(void)
{
save_by_table(NULL, preftable, preflen);
}
void
save_file_paths(void)
{
save_by_table(NULL, pathtable, pathlen);
}
void
load_config(void)
{
load_by_table(NULL, preftable, preflen);
}
void
parse_configwindow(GtkWidget *ref)
{
parse_widget_by_table(preftable, preflen, ref);
}
void
load_configwindow(GtkWidget *ref)
{
load_widget_by_table(preftable, preflen, ref);
}
linsmith-0.99.21/src/load_rx.h 0000644 0000000 0000000 00000001656 10417730564 013021 0000000 0000000 /*
* load.c: Load related functions, list management etc.
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#include
#include
#include "types.h"
void loadlist_clear();
linsmith-0.99.21/src/printer.c 0000644 0000000 0000000 00000016732 11541715275 013051 0000000 0000000 /*
* printer.c: Postscript generator - high level routines calling gnome-print
*
* Copyright (C) 1997 John Coppens
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#include
#include
#include "printer.h"
#include "global.h"
#include "main.h"
#define GET_R(x) (((x >> 24) & 0xff)/255.0)
#define GET_G(x) (((x >> 16) & 0xff)/255.0)
#define GET_B(x) (((x >> 8) & 0xff)/255.0)
#define MM2PTS (72.0/25.4)
GtkPrintOperation *op;
GtkPrintSettings *config = NULL;
cairo_t *gpc;
PangoLayout *layout = NULL;
PangoFontDescription *prt_last_font_desc = NULL;
double prt_last_lw = 0.1;
int prt_last_color = 0,
prt_last_font_color = 0;
static void
print_begin(GtkPrintOperation *op, GtkPrintContext *context, gpointer data)
{
if (debug & DBG_PRINTING)
fprintf(stderr, "[print_begin]\n");
gtk_print_operation_set_n_pages(op, 1);
}
static void
print_draw_page(GtkPrintOperation *op, GtkPrintContext *context,
gint page_nr, gpointer data)
{
if (debug & DBG_PRINTING)
fprintf(stderr, "[print_draw_page]\n");
gpc = gtk_print_context_get_cairo_context(context);
layout = gtk_print_context_create_pango_layout(context);
create_printer_chart();
recalculate_all(DST_PRINT);
}
static void
print_end(GtkPrintOperation *op, GtkPrintContext *context, gpointer data)
{
if (debug & DBG_PRINTING)
fprintf(stderr, "[print_end]\n");
}
void
print_chart(char *fn)
{
GError *err = NULL;
gint res;
if (debug & DBG_PRINTING)
fprintf(stderr, "[print_chart]\n");
op = gtk_print_operation_new();
if (config != NULL)
gtk_print_operation_set_print_settings(op, config);
g_signal_connect(G_OBJECT(op), "begin-print",
G_CALLBACK(print_begin), NULL);
g_signal_connect(G_OBJECT(op), "draw-page",
G_CALLBACK(print_draw_page), NULL);
g_signal_connect(G_OBJECT(op), "end-print",
G_CALLBACK(print_end), NULL);
gtk_print_operation_set_use_full_page(op, FALSE);
gtk_print_operation_set_unit(op, GTK_UNIT_MM);
res = gtk_print_operation_run(op,
GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
GTK_WINDOW(MainWindow),
&err);
if (res == GTK_PRINT_OPERATION_RESULT_APPLY) {
if (config != NULL)
g_object_unref(config);
config = g_object_ref(gtk_print_operation_get_print_settings(op));
} else {
if (err) {
GtkWidget *dialog;
dialog = gtk_message_dialog_new(GTK_WINDOW(MainWindow),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
"%s", err->message);
g_error_free(err);
g_signal_connect(dialog, "response",
G_CALLBACK(gtk_widget_destroy), NULL);
gtk_widget_show(dialog);
}
}
g_object_unref(op);
}
void
print_setrgbcolor(int color)
{
double r = GET_R(color),
g = GET_G(color),
b = GET_B(color);
if (debug & DBG_PRINTING)
fprintf(stderr, "[prt color] r:%f g:%f b:%f\n", r, g, b);
cairo_set_source_rgb(gpc, r, g, b);
}
void
print_do_arc(double x, double y, double arcb, double arce, double rad)
{
double ctrx, ctry, begx, begy, arcrad,
chrad = pref.prt_chartsize * 0.5;
if (debug & DBG_PRINTING)
fprintf(stderr, "[src] x:%f y:%f beg:%f end:%f rad:%f\n",
x, y, arcb, arce, rad);
arcrad = chrad * rad;
ctrx = x * chrad;
ctry = (1 - y) * chrad;
begx = ctrx + arcrad * cos(arcb);
begy = ctry - arcrad * sin(arcb);
cairo_new_path(gpc);
cairo_set_line_width(gpc, prt_last_lw);
cairo_set_source_rgb(gpc,
GET_R(prt_last_color),
GET_G(prt_last_color),
GET_B(prt_last_color));
cairo_move_to(gpc, begx, begy);
cairo_arc_negative(gpc, ctrx, ctry, arcrad, -arcb, -arce);
cairo_stroke(gpc);
}
void
print_do_line(double x1, double y1, double x2, double y2)
{
double chrad = pref.prt_chartsize * 0.5;
if (debug & DBG_PRINTING)
fprintf(stderr, "[line] x1:%f y1:%f x2:%f y2:%f\n",
x1, y1, x2, y2);
cairo_new_path(gpc);
cairo_set_source_rgb(gpc,
GET_R(prt_last_color),
GET_G(prt_last_color),
GET_B(prt_last_color));
cairo_set_line_width(gpc, prt_last_lw);
cairo_move_to(gpc, chrad * x1, chrad * (1 - y1));
cairo_line_to(gpc, chrad * x2, chrad * (1 - y2));
cairo_stroke(gpc);
}
void
print_do_string(char *str, double x, double y,
double size, double angle)
{
double chrad = pref.prt_chartsize * 0.5,
text_height;
int layout_height;
if (debug & DBG_PRINTING)
fprintf(stderr, "[string] str:[%s] x:%f y:%f size:%f angle:%f\n",
str, x, y, size, angle);
pango_layout_set_font_description(layout, prt_last_font_desc);
pango_layout_set_text(layout, str, -1);
pango_layout_set_width(layout, -1);
pango_layout_set_alignment(layout, PANGO_ALIGN_LEFT);
pango_layout_get_size (layout, NULL, &layout_height);
text_height = (gdouble) layout_height / PANGO_SCALE;
print_setrgbcolor(prt_last_font_color);
cairo_save(gpc);
cairo_translate(gpc, chrad * x, chrad * (1 - y));
cairo_rotate(gpc, -angle);
cairo_move_to(gpc, text_height/10.0, -text_height);
pango_cairo_show_layout(gpc, layout);
cairo_restore(gpc);
}
void
print_point(double x, double y, int pstyle)
{
double r = pref.prt_diam[pstyle] / 2,
chrad = pref.prt_chartsize * 0.5;
if (debug & DBG_PRINTING) {
fprintf(stderr, "[prt pt] x:%f y:%f r:%f\n", x, y, r);
fprintf(stderr, " bc:%08x fc:%08x\n",
pref.prt_fill_color[pstyle],
pref.prt_brdr_color[pstyle]);
}
cairo_new_path(gpc);
cairo_move_to(gpc, x * chrad + r, (1 - y) * chrad);
cairo_arc (gpc, x * chrad, (1 - y) * chrad, r, 0, 2*M_PI);
cairo_close_path(gpc);
cairo_set_source_rgb(gpc,
GET_R(pref.prt_fill_color[pstyle]),
GET_G(pref.prt_fill_color[pstyle]),
GET_B(pref.prt_fill_color[pstyle]));
cairo_fill(gpc);
cairo_new_path(gpc);
cairo_move_to(gpc, x * chrad + r, (1 - y) * chrad);
cairo_arc (gpc, x * chrad, (1 - y) * chrad, r, 0, 2*M_PI);
cairo_close_path(gpc);
cairo_set_source_rgb(gpc,
GET_R(pref.prt_brdr_color[pstyle]),
GET_G(pref.prt_brdr_color[pstyle]),
GET_B(pref.prt_brdr_color[pstyle]));
cairo_set_line_width(gpc, pref.prt_brdr[pstyle]);
cairo_stroke(gpc);
}
void
print_setlinestyle(double lw, int color)
{
prt_last_lw = lw;
prt_last_color = color;
}
gboolean
print_setfontstyle(char *font, double size, int color)
{
prt_last_font_color = color;
prt_last_font_desc = pango_font_description_from_string(font);
pango_font_description_set_absolute_size(prt_last_font_desc, size * PANGO_SCALE);
return TRUE;
}
linsmith-0.99.21/src/load_rx.c 0000644 0000000 0000000 00000013444 11541145234 013003 0000000 0000000 /*
* load_rx.c: Standar R+jX Load input functions.
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#include
#include
#include
#include "support.h"
#include "callbacks.h"
#include "printer.h"
#include "global.h"
#include "main.h"
#include "load.h"
#include "load_rx.h"
#include "chart.h"
#include "misc.h"
GtkTreeIter active_ld_iter;
load_definition active_load;
GtkWidget *ld_view;
//---------------------------------------------------------------------
// Loads
//---------------------------------------------------------------------
void
enable_load_rx_buttons(int action)
{
GtkWidget *w, *w1;
w = lookup_widget(MainWindow, "load_append_btn");
gtk_widget_set_sensitive(w,
load_rx_valid(NULL)
);
w = lookup_widget(MainWindow, "load_remove_btn");
gtk_widget_set_sensitive(w,
action == LOADLIST_UPDATED
|| action == LOADLIST_EDITED
|| action == LOADLIST_SELECT
);
w = lookup_widget(MainWindow, "load_edit_btn");
gtk_widget_set_sensitive(w,
(action == LOADLIST_EDITED)
&& load_rx_valid(NULL)
&& (number_selected_loads() == 1)
);
w = lookup_widget(MainWindow, "load_clear_btn");
gtk_widget_set_sensitive(w,
action = LOADLIST_EMPTY
);
if (action == LOADLIST_UPDATED ||
action == LOADLIST_REMOVED)
recalculate_all(DST_SCREEN);
}
void
on_load_rx_selected(GtkTreeView *treeview)
{
GtkWidget *w1, *w2, *w3;
GtkTreeModel *store;
GtkTreeSelection *sel;
char bff[20];
sel = gtk_tree_view_get_selection(treeview);
if (gtk_tree_selection_get_selected(sel, &store, &active_ld_iter)) {
gtk_tree_model_get(store, &active_ld_iter,
LD_FREQ_VAL, &active_load.f,
LD_REAL_VAL, &active_load.r,
LD_REACT_VAL, &active_load.x,
LD_POINT, &active_load.pt,
-1);
w1 = lookup_widget(MainWindow, "load_r_entry");
w2 = lookup_widget(MainWindow, "load_x_entry");
w3 = lookup_widget(MainWindow, "load_freq_entry");
sprintf(bff, "%.2f", active_load.r);
gtk_entry_set_text(GTK_ENTRY(w1), bff);
sprintf(bff, "%.2f", active_load.x);
gtk_entry_set_text(GTK_ENTRY(w2), bff);
sprintf(bff, "%.*f", pref.prec_mhz, active_load.f);
gtk_entry_set_text(GTK_ENTRY(w3), bff);
// enable_load_buttons(LOADLIST_SELECT);
}
}
int
load_rx_valid(load_definition *dest)
{
GtkWidget *w;
const char *txt = NULL;
load_definition tload;
// Check the frequency
w = lookup_widget(MainWindow, "load_freq_entry");
txt = gtk_entry_get_text(GTK_ENTRY(w));
if (strlen(txt) == 0) return FALSE;
errno = 0;
tload.f = strtod(txt, NULL);
if ((tload.f == 0) || (errno != 0)) return FALSE;
// Check the real part of the impedance
w = lookup_widget(MainWindow, "load_r_entry");
txt = gtk_entry_get_text(GTK_ENTRY(w));
if (strlen(txt) == 0) return FALSE;
errno = 0;
tload.r = strtod(txt, NULL);
if (errno != 0) return FALSE;
// Check the imaginary part of the impedance
w = lookup_widget(MainWindow, "load_x_entry");
txt = gtk_entry_get_text(GTK_ENTRY(w));
if (strlen(txt) == 0) return FALSE;
errno = 0;
tload.x = strtod(txt, NULL);
if (errno != 0) return FALSE;
if (dest) {
dest->r = tload.r;
dest->x = tload.x;
dest->f = tload.f;
}
return TRUE;
}
void
load_rx_update(load_definition *tload)
{
GtkListStore *store;
char r[20], x[20], f[20];
if (active_ld_iter.stamp == 0) return;
store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ld_view)));
sprintf(f, "%.*f", pref.prec_mhz, tload->f);
sprintf(r, "%.1f", tload->r);
sprintf(x, "%.1f", tload->x);
set_point(tload->pt, tload->r + tload->x*I, ZPT_LOAD);
gtk_list_store_set(store, &active_ld_iter,
LD_FREQ, f,
LD_REAL, r,
LD_REACT, x,
LD_FREQ_VAL, tload->f,
LD_REAL_VAL, tload->r,
LD_REACT_VAL, tload->x,
LD_POINT, tload->pt,
-1);
enable_load_buttons(LOADLIST_UPDATED);
}
void
active_load_rx_update(void)
{
if (active_ld_iter.stamp == 0) return;
load_rx_valid(&active_load);
load_rx_update(&active_load);
}
void
load_rx_append(load_definition *tload)
{
GtkTreeIter iter;
GtkTreeModel *ldstore;
ldstore = gtk_tree_view_get_model(GTK_TREE_VIEW(ld_view));
gtk_list_store_append(GTK_LIST_STORE(ldstore), &active_ld_iter);
tload->pt = create_load_point();
load_rx_update(tload);
}
void
active_load_rx_remove(void)
{
GtkListStore *store;
chart_point *pt;
if (active_ld_iter.stamp == 0) return;
store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ld_view)));
gtk_tree_model_get(GTK_TREE_MODEL(store), &active_ld_iter,
LD_POINT, &pt,
-1);
if (pt) {
gtk_object_destroy(GTK_OBJECT(pt->point));
g_free(pt);
}
gtk_list_store_remove(store, &active_ld_iter);
enable_load_rx_buttons(LOADLIST_REMOVED);
if (number_loads() == 0)
enable_load_rx_buttons(LOADLIST_EMPTY);
}
void
loadlist_rx_clear(void)
{
enable_load_rx_buttons(LOADLIST_EMPTY);
}
void
load_rx_modified(int which)
{
enable_load_buttons(LOADLIST_EDITED);
}
linsmith-0.99.21/src/support.c 0000644 0000000 0000000 00000005620 11541550713 013066 0000000 0000000 /*
* DO NOT EDIT THIS FILE - it is generated by Glade.
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#include
#include
#include
#include
#include
#include "support.h"
GtkWidget*
lookup_widget (GtkWidget *widget,
const gchar *widget_name)
{
GtkWidget *parent, *found_widget;
for (;;)
{
if (GTK_IS_MENU (widget))
parent = gtk_menu_get_attach_widget (GTK_MENU (widget));
else
parent = widget->parent;
if (!parent)
parent = (GtkWidget*) g_object_get_data (G_OBJECT (widget), "GladeParentKey");
if (parent == NULL)
break;
widget = parent;
}
found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget),
widget_name);
if (!found_widget)
g_warning ("Widget not found: %s", widget_name);
return found_widget;
}
/* This is an internally used function to create pixmaps. */
GtkWidget*
create_pixmap (GtkWidget *widget,
const gchar *filename)
{
GtkWidget *pixmap;
gchar *pathname;
if (!filename || !filename[0])
return gtk_image_new ();
pathname = gnome_program_locate_file (NULL, GNOME_FILE_DOMAIN_APP_PIXMAP,
filename, TRUE, NULL);
if (!pathname)
{
g_warning (_("Couldn't find pixmap file: %s"), filename);
return gtk_image_new ();
}
pixmap = gtk_image_new_from_file (pathname);
g_free (pathname);
return pixmap;
}
/* This is an internally used function to create pixmaps. */
GdkPixbuf*
create_pixbuf (const gchar *filename)
{
gchar *pathname = NULL;
GdkPixbuf *pixbuf;
GError *error = NULL;
if (!filename || !filename[0])
return NULL;
pathname = gnome_program_locate_file (NULL, GNOME_FILE_DOMAIN_APP_PIXMAP,
filename, TRUE, NULL);
if (!pathname)
{
g_warning (_("Couldn't find pixmap file: %s"), filename);
return NULL;
}
pixbuf = gdk_pixbuf_new_from_file (pathname, &error);
if (!pixbuf)
{
fprintf (stderr, "Failed to load pixbuf file: %s: %s\n",
pathname, error->message);
g_error_free (error);
}
g_free (pathname);
return pixbuf;
}
/* This is used to set ATK action descriptions. */
void
glade_set_atk_action_description (AtkAction *action,
const gchar *action_name,
const gchar *description)
{
gint n_actions, i;
n_actions = atk_action_get_n_actions (action);
for (i = 0; i < n_actions; i++)
{
if (!strcmp (atk_action_get_name (action, i), action_name))
atk_action_set_description (action, i, description);
}
}
linsmith-0.99.21/src/element.h 0000644 0000000 0000000 00000005123 10715746313 013013 0000000 0000000 /*
* element.c: Element related routines
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#include
#include
#include "types.h"
enum {ELT_CAP, ELT_IND, ELT_PARLC, ELT_SERLC,
ELT_OSTUB, ELT_SSTUB, ELT_LINE,
ELT_XFORM, ELT_ZY,
ELT_EMPTY};
enum {ELC_SERIES, ELC_PARALLEL,
ELC_EMPTY};
enum {CIRCLIST_SELECT, CIRCLIST_UNSELECT, CIRCLIST_EMPTY,
CIRCLIST_ENTRYVALID, CIRCLIST_ENTRYINVALID,
CIRCLIST_ENTRYSET, CIRCLIST_APPEND, CIRCLIST_UPDATED,
CIRCLIST_CONNCHANGED, CIRCLIST_TYPECHANGED};
enum {EL_CONN, EL_TYPE, // conn, type
EL_VAL1, // value
EL_DESCR, // descr
EL_USE_LOSS, // useloss
EL_CONN_VAL, EL_TYPE_VAL, // conn, type
EL_VAL_VAL1, EL_VAL_VAL2, // val1, val2
EL_Z0_VAL, EL_VF_VAL, // z0, vf
EL_LOSS1_VAL, EL_MHZ1_VAL, // loss1, mhz1
EL_LOSS2_VAL, EL_MHZ2_VAL, // loss2, mhz2
EL_POINTLIST, EL_LINELIST, EL_ACT_ITER, // ptlist, linlist, act
EL_COLS};
extern GtkWidget *el_view;
extern el_definition act_el;
extern GtkTreeIter active_el_iter;
void load3_activate(void);
void save_as4_activate(void);
void save4_activate(void);
void initialize_elementtable(void);
int fetch_selected_element(GtkTreeView *treeview, el_definition *el);
int element_valid(el_definition *el);
void element_update(el_definition el);
void element_append(el_definition el);
int number_elements(void);
void active_element_update(el_definition el);
void active_element_remove(void);
void circlist_clear();
void circ_move_up(void);
void circ_move_down(void);
void load_circuit(char *fn);
void save_circuit(char *fn);
complex calc_line_impedance(complex zl, double z0, double len, double f);
complex calc_el_impedance(el_definition *el, double f);
void set_discr_mode(int mode);
void clear_element_ptlist(chart_ptlist *lst);
linsmith-0.99.21/src/printer.h 0000644 0000000 0000000 00000002654 11541507062 013045 0000000 0000000 /*
* printer.c: Postscript generator - high level routines calling gnome-print
*
* Copyright (C) 1997 John Coppens
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#include
enum { DST_SCREEN,
DST_PRINT
};
void print_chart_start(void);
void print_chart(char *fn);
void print_do_arc(double x, double y,
double arcb, double arce, double rad);
void print_do_line(double x1, double y1, double x2, double y2);
void print_do_string(char *str, double x, double y,
double size, double angle);
void print_point(double x, double y, int pstyle);
void print_load_font_list(GtkCombo *combo);
void print_setlinestyle(double lw, int color);
gboolean print_setfontstyle(char *font, double size, int color);
linsmith-0.99.21/src/types.h 0000644 0000000 0000000 00000001722 11373264202 012520 0000000 0000000 #ifndef MYTYPES_H
#define MYTYPES_H
#include
#include
#include
enum {ZOOM_IN, ZOOM_OUT};
enum {ZPT_LOAD, ZPT_INT, ZPT_FINAL,
PT_TYPES};
enum {Z_ARC, Y_ARC, K_ARC,
R_ARC, X_ARC,
RB_ARC, XB_ARC,
ZY_LINE,
ARC_TYPES};
typedef struct {
complex value;
char line,
fixed;
int style,
handler;
GnomeCanvasItem *point;
GnomeCanvasGroup *group;
} chart_point;
typedef chart_point *chart_pt;
typedef GList *chart_ptlist;
typedef struct {
GnomeCanvasItem *line;
GnomeCanvasGroup *group;
} chart_line;
typedef chart_line *chart_ln;
typedef GList *chart_lnlist;
typedef struct {
double f, r, x, nb_r, nb_c;
char nb_ext;
chart_pt pt;
} load_definition;
typedef struct {
int conn, typ, useloss;
double val1, val2, z0, vf, loss1, loss2, mhz1, mhz2;
chart_ptlist ptlst;
chart_lnlist lnlst;
} el_definition;
#endif
linsmith-0.99.21/src/pixmaps.inc 0000644 0000000 0000000 00001651701 10232566253 013374 0000000 0000000 /*
* pixmaps.inc: glyphs, icons and logos
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
// Inductor
#ifdef __SUNPRO_C
#pragma align 4 (comp_ind_def)
#endif
#ifdef __GNUC__
static const guint8 comp_ind_def[] __attribute__ ((__aligned__ (4))) =
#else
static const guint8 comp_ind_def[] =
#endif
{ ""
/* Pixbuf magic (0x47646b50) */
"GdkP"
/* length: header (24) + pixel_data (1088) */
"\0\0\4X"
/* pixdata_type (0x1010002) */
"\1\1\0\2"
/* rowstride (68) */
"\0\0\0D"
/* width (17) */
"\0\0\0\21"
/* height (16) */
"\0\0\0\20"
/* pixel_data: */
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\0\0\0\0\0\377\377\377\0\0\0\0\0\0\0\0\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\0\0\0\361\0\0\0\353\0\0\0\345\377"
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\313\377\377\377\0\377\377"
"\377\0\377\377\377\0\0\0\0\307\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\336\0\0\0\345\0\0\0\353\377\377\377\0\377\377\377\0\0\0\0\353"
"\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\327\377\377\377\0\377"
"\377\377\0\377\377\377\0\0\0\0\324\377\377\377\0\377\377\377\0\377\377"
"\377\0\0\0\0\346\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\360\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\341\377"
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\337\377\377\377\0\377\377"
"\377\0\377\377\377\0\0\0\0\354\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\0\0\0\361\0\0\0\356\0\0\0\354\377\377"
"\377\0\0\0\0\350\0\0\0\347\0\0\0\347\377\377\377\0\0\0\0\351\0\0\0\354"
"\0\0\0\356\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\364\377\377\377\0\377\377"
"\377\0\377\377\377\0\0\0\0\356\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\362\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
// Capacitor
#ifdef __SUNPRO_C
#pragma align 4 (comp_cap_def)
#endif
#ifdef __GNUC__
static const guint8 comp_cap_def[] __attribute__ ((__aligned__ (4))) =
#else
static const guint8 comp_cap_def[] =
#endif
{ ""
/* Pixbuf magic (0x47646b50) */
"GdkP"
/* length: header (24) + pixel_data (1088) */
"\0\0\4X"
/* pixdata_type (0x1010002) */
"\1\1\0\2"
/* rowstride (68) */
"\0\0\0D"
/* width (17) */
"\0\0\0\21"
/* height (16) */
"\0\0\0\20"
/* pixel_data: */
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\377"
"\377\377\0\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377"
"\0\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\0\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
"\377\0\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
"\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0"
"\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\0\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
// LC Parallel
#ifdef __SUNPRO_C
#pragma align 4 (comp_lcpar_def)
#endif
#ifdef __GNUC__
static const guint8 comp_lcpar_def[] __attribute__ ((__aligned__ (4))) =
#else
static const guint8 comp_lcpar_def[] =
#endif
{ ""
/* Pixbuf magic (0x47646b50) */
"GdkP"
/* length: header (24) + pixel_data (1088) */
"\0\0\4X"
/* pixdata_type (0x1010002) */
"\1\1\0\2"
/* rowstride (68) */
"\0\0\0D"
/* width (17) */
"\0\0\0\21"
/* height (16) */
"\0\0\0\20"
/* pixel_data: */
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377"
"\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0"
"\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\377\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377"
"\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377"
"\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\377\0"
"\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0"
"\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0"
"\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0"
"\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
"\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0"
"\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0"};
// LC series
#ifdef __SUNPRO_C
#pragma align 4 (comp_lcser_def)
#endif
#ifdef __GNUC__
static const guint8 comp_lcser_def[] __attribute__ ((__aligned__ (4))) =
#else
static const guint8 comp_lcser_def[] =
#endif
{ ""
/* Pixbuf magic (0x47646b50) */
"GdkP"
/* length: header (24) + pixel_data (1088) */
"\0\0\4X"
/* pixdata_type (0x1010002) */
"\1\1\0\2"
/* rowstride (68) */
"\0\0\0D"
/* width (17) */
"\0\0\0\21"
/* height (16) */
"\0\0\0\20"
/* pixel_data: */
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377\0\0\0"
"\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\377"
"\377\377\0\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377"
"\0\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377"
"\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\377\377\377\0\0\0\0\377\377"
"\377\377\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377"
"\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377"
"\0\0\0\0\377\0\0\0\0\377\377\377\0\0\0\0\377\377\377\377\0\0\0\0\0\0"
"\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377\0\0\0\0\377\0"
"\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0"
"\0\377\0\0\0\0\377\377\377\0\0\0\0\377\377\377\377\0\0\0\0\0\0\0\0\377"
"\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\0\0\0"
"\0\377\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377"
"\0\0\0\0\377\0\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
// Series element
#ifdef __SUNPRO_C
#pragma align 4 (comp_series_def)
#endif
#ifdef __GNUC__
static const guint8 comp_series_def[] __attribute__ ((__aligned__ (4))) =
#else
static const guint8 comp_series_def[] =
#endif
{ ""
/* Pixbuf magic (0x47646b50) */
"GdkP"
/* length: header (24) + pixel_data (1088) */
"\0\0\4X"
/* pixdata_type (0x1010002) */
"\1\1\0\2"
/* rowstride (68) */
"\0\0\0D"
/* width (17) */
"\0\0\0\21"
/* height (16) */
"\0\0\0\20"
/* pixel_data: */
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
"\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377"
"\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0"
"\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0"
"\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
"\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0"
"\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
"\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
"\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"};
// Parallel element
#ifdef __SUNPRO_C
#pragma align 4 (comp_parallel_def)
#endif
#ifdef __GNUC__
static const guint8 comp_parallel_def[] __attribute__ ((__aligned__ (4))) =
#else
static const guint8 comp_parallel_def[] =
#endif
{ ""
/* Pixbuf magic (0x47646b50) */
"GdkP"
/* length: header (24) + pixel_data (1088) */
"\0\0\4X"
/* pixdata_type (0x1010002) */
"\1\1\0\2"
/* rowstride (68) */
"\0\0\0D"
/* width (17) */
"\0\0\0\21"
/* height (16) */
"\0\0\0\20"
/* pixel_data: */
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377"
"\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
"\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
"\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0"
"\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0"
"\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377"
"\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0"
"\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0"
"\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0"
"\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0"
"\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
"\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
"\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0"};
// Discrete element (L or C)
#ifdef __SUNPRO_C
#pragma align 4 (comp_discr_def)
#endif
#ifdef __GNUC__
static const guint8 comp_discr_def[] __attribute__ ((__aligned__ (4))) =
#else
static const guint8 comp_discr_def[] =
#endif
{ ""
/* Pixbuf magic (0x47646b50) */
"GdkP"
/* length: header (24) + pixel_data (1088) */
"\0\0\4X"
/* pixdata_type (0x1010002) */
"\1\1\0\2"
/* rowstride (68) */
"\0\0\0D"
/* width (17) */
"\0\0\0\21"
/* height (16) */
"\0\0\0\20"
/* pixel_data: */
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\377"
"\377\377\0\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377"
"\0\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\0\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
"\377\0\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
"\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0"
"\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\0\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0"
"\0\377\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377"
"\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0"
"\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377"
"\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377"
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377"
"\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0"
"\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377"
"\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0"
"\0\377\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\0\0"
"\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377"
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377"
"\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0"};
// Open stub
#ifdef __SUNPRO_C
#pragma align 4 (comp_ostub_def)
#endif
#ifdef __GNUC__
static const guint8 comp_ostub_def[] __attribute__ ((__aligned__ (4))) =
#else
static const guint8 comp_ostub_def[] =
#endif
{ ""
/* Pixbuf magic (0x47646b50) */
"GdkP"
/* length: header (24) + pixel_data (1088) */
"\0\0\4X"
/* pixdata_type (0x1010002) */
"\1\1\0\2"
/* rowstride (68) */
"\0\0\0D"
/* width (17) */
"\0\0\0\21"
/* height (16) */
"\0\0\0\20"
/* pixel_data: */
"\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0"
"\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0"
"\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377"
"\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377"
"\0\0\0\0\377\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377"
"\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\0\0\0\377\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377"
"\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0"
"\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\0\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\377\377"
"\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"};
// Shorted stub
#ifdef __SUNPRO_C
#pragma align 4 (comp_sstub_def)
#endif
#ifdef __GNUC__
static const guint8 comp_sstub_def[] __attribute__ ((__aligned__ (4))) =
#else
static const guint8 comp_sstub_def[] =
#endif
{ ""
/* Pixbuf magic (0x47646b50) */
"GdkP"
/* length: header (24) + pixel_data (1088) */
"\0\0\4X"
/* pixdata_type (0x1010002) */
"\1\1\0\2"
/* rowstride (68) */
"\0\0\0D"
/* width (17) */
"\0\0\0\21"
/* height (16) */
"\0\0\0\20"
/* pixel_data: */
"\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0"
"\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0"
"\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377"
"\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377"
"\0\0\0\0\377\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377"
"\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\0\0\0\377\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377"
"\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0"
"\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\0\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\377\377"
"\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377"
"\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0"
"\0\0\377\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0"};
// Series line
#ifdef __SUNPRO_C
#pragma align 4 (comp_line_def)
#endif
#ifdef __GNUC__
static const guint8 comp_line_def[] __attribute__ ((__aligned__ (4))) =
#else
static const guint8 comp_line_def[] =
#endif
{ ""
/* Pixbuf magic (0x47646b50) */
"GdkP"
/* length: header (24) + pixel_data (1088) */
"\0\0\4X"
/* pixdata_type (0x1010002) */
"\1\1\0\2"
/* rowstride (68) */
"\0\0\0D"
/* width (17) */
"\0\0\0\21"
/* height (16) */
"\0\0\0\20"
/* pixel_data: */
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0"
"\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
"\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\0\0\0"
"\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0"
"\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0"
"\0\0\377\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\0"
"\0\0\377\0\0\0\377\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0\0\0\0\377"
"\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\0\0\0\377\377\377\377\0\0\0\0\377\377\377\377\0"
"\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377"
"\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0"
"\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
"\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
"\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0"};
// Series transformer
#ifdef __SUNPRO_C
#pragma align 4 (comp_xform_def)
#endif
#ifdef __GNUC__
static const guint8 comp_xform_def[] __attribute__ ((__aligned__ (4))) =
#else
static const guint8 comp_xform_def[] =
#endif
{ ""
/* Pixbuf magic (0x47646b50) */
"GdkP"
/* length: header (24) + pixel_data (1088) */
"\0\0\4X"
/* pixdata_type (0x1010002) */
"\1\1\0\2"
/* rowstride (68) */
"\0\0\0D"
/* width (17) */
"\0\0\0\21"
/* height (16) */
"\0\0\0\20"
/* pixel_data: */
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377"
"\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
"\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0"
"\377\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\377\377\377\377\0\0\0\0\377\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0"
"\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377"
"\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\0\0\0\377\0\0"
"\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\0\0\0\377\377\377\377\0\0\0\0\377\377\377\377\0\0\0\0\377\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\0\0\0\377\377\377\377"
"\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0\0\0"
"\0\377\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377"
"\377\377\377\0\0\0\0\377\377\377\377\0\0\0\0\377\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\0\0\0\377\377\377\377\0\0\0\0\377\377\377\377\0\0\0\0\377\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
"\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\0"
"\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0"};
// Z/Y switch
#ifdef __SUNPRO_C
#pragma align 4 (comp_zy_def)
#endif
#ifdef __GNUC__
static const guint8 comp_zy_def[] __attribute__ ((__aligned__ (4))) =
#else
static const guint8 comp_zy_def[] =
#endif
{ ""
/* Pixbuf magic (0x47646b50) */
"GdkP"
/* length: header (24) + pixel_data (1088) */
"\0\0\4X"
/* pixdata_type (0x1010002) */
"\1\1\0\2"
/* rowstride (68) */
"\0\0\0D"
/* width (17) */
"\0\0\0\21"
/* height (16) */
"\0\0\0\20"
/* pixel_data: */
"\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
"\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377"
"\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0"
"\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\0"
"\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377"
"\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377"
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377"
"\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0"
"\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\377\0\377\377\377\0"
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"};
// Empty glyph
#ifdef __SUNPRO_C
#pragma align 4 (comp_empty_def)
#endif
#ifdef __GNUC__
static const guint8 comp_empty_def[] __attribute__ ((__aligned__ (4))) =
#else
static const guint8 comp_empty_def[] =
#endif
{ ""
/* Pixbuf magic (0x47646b50) */
"GdkP"
/* length: header (24) + pixel_data (1088) */
"\0\0\4X"
/* pixdata_type (0x1010002) */
"\1\1\0\2"
/* rowstride (68) */
"\0\0\0D"
/* width (17) */
"\0\0\0\21"
/* height (16) */
"\0\0\0\20"
/* pixel_data: */
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"};
// logo
#ifdef __SUNPRO_C
#pragma align 4 (logo_def)
#endif
#ifdef __GNUC__
static const guint8 logo_def[] __attribute__ ((__aligned__ (4))) =
#else
static const guint8 logo_def[] =
#endif
{ ""
/* Pixbuf magic (0x47646b50) */
"GdkP"
/* length: header (24) + pixel_data (125100) */
"\0\1\350\304"
/* pixdata_type (0x1010001) */
"\1\1\0\1"
/* rowstride (900) */
"\0\0\3\204"
/* width (300) */
"\0\0\1,"
/* height (139) */
"\0\0\0\213"
/* pixel_data: */
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0***uuupppppppppppppppppppppppppppppppppppppppppppppp"
"pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp"
"pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp"
"ppppppppppppppppqqpqqpqqpqqpqqpqqpqqprrprrpqqpqrprrprrpqqppppqqpihpX"
"Vp_^pjipsspssprrpqqpppppppppppppqqpnnpedpYWpa`ppppqqpqqprrprrpqqpqqp"
"qqpqqpqqpqqpqqprrpqqpqqpqqpppppppppppppppppppppppppppppppppppppppppp"
"pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp"
"pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp"
"pppppppppppppppppppppyyy555\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\24\24\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\376\374\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\374\372\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\373\372\377"
"\377\377\377\377\377\377\376\375\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\256\256\256\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\22\22\22\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\366\364\377\370\370\377\363\363\377\373\373\377\365\364\377\371\370"
"\377\367\367\377\337\335\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\341\336\377\330\325\377"
"\355\353\377\372\373\377\370\371\377\344\342\377\367\367\377\362\361"
"\377\377\377\377\337\334\377\347\344\377\333\331\377\351\347\377\355"
"\355\377\366\366\377\372\370\377\367\366\377\365\366\377\355\354\377"
"\364\364\377\343\342\377\345\342\377\326\324\377\361\360\377\373\372"
"\377\377\377\377\377\376\377\365\366\377\345\343\377\363\362\377\377"
"\377\377\367\366\377\356\355\377\355\354\377\353\354\377\371\371\377"
"\345\343\377\362\360\377\377\377\377\377\377\377\377\377\377\375\375"
"\377\361\360\377\377\377\377\357\357\377\377\377\377\362\362\377\371"
"\370\377\367\370\377\375\376\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\317\317"
"\317\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\366\366\366\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\375\375\377\372\373\377\371\370"
"\377\362\361\377\377\377\377\363\361\377\374\374\377\370\367\377\377"
"\377\377\377\377\377\377\377\377\373\372\377\345\344\377\350\346\377"
"\353\352\377\345\344\377\363\361\377\373\371\377\346\345\377\361\360"
"\377\360\357\377\324\322\377\350\347\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\370\370\377\364\364\377"
"\377\377\377\367\366\377\373\372\377\377\377\377\377\376\377\373\373"
"\377\365\364\377\366\365\377\367\366\377\365\364\377\355\353\377\362"
"\361\377\360\357\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\373\373\377\374\372\377\377\377\377\360\357\377\365\365\377\371\370"
"\377\324\321\377\375\374\377\377\377\377\377\377\377\362\361\377\374"
"\374\377\370\370\377\354\353\377\362\361\377\355\354\377\363\362\377"
"\357\356\377\373\372\377\344\341\377\365\366\377\360\357\377\346\344"
"\377\377\377\377\366\365\377\375\374\377\362\362\377\362\360\377\374"
"\373\377\364\362\377\375\375\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\363\363\363"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\337\337"
"\337\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\374\374\377\375\375\377\363\362"
"\377\364\362\377\372\370\377\372\372\377\355\354\377\367\367\377\361"
"\360\377\351\350\377\356\357\377\357\355\377\376\376\377\352\351\377"
"\375\374\377\350\347\377\347\346\377\347\345\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\370\366\377\377\377\377\364\363\377\366"
"\365\377\377\377\377\362\361\377\372\371\377\377\377\377\365\365\377"
"\347\346\377\341\340\377\366\367\377\374\373\377\367\365\377\371\370"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\375"
"\374\377\377\377\377\377\377\377\334\332\377\346\345\377\377\375\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\365\366\377\365\364\377\374\374\377\377\377\377\376\376\377\360"
"\357\377\366\367\377\377\377\377\362\361\377\366\366\377\377\377\377"
"\352\351\377\377\377\377\370\367\377\365\365\377\373\374\377\337\334"
"\377\354\353\377\376\376\377\367\367\377\373\372\377\360\357\377\370"
"\371\377\370\367\377\360\360\377\372\373\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\357\356\377\370\370\377\370\370\377\370\367"
"\377\365\363\377\373\371\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\333\333\333"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\374\373\377\374"
"\373\377\371\371\377\370\366\377\365\365\377\374\374\377\377\377\377"
"\377\377\377\377\377\377\366\366\377\365\366\377\353\351\377\357\356"
"\377\363\364\377\373\373\377\374\374\377\377\377\377\377\377\377\364"
"\364\377\356\355\377\375\375\377\370\367\377\377\376\377\363\363\377"
"\376\376\377\362\361\377\377\377\377\367\366\377\377\377\377\373\374"
"\377\371\371\377\377\377\377\364\365\377\351\350\377\371\371\377\355"
"\354\377\332\330\377\342\341\377\355\354\377\375\376\377\364\364\377"
"\322\320\377\306\302\377\350\347\377\356\356\377\354\353\377\377\377"
"\377\375\375\377\377\377\377\367\367\377\355\354\377\366\366\377\376"
"\376\377\376\376\377\370\370\377\355\353\377\352\350\377\327\325\377"
"\340\336\377\362\361\377\373\373\377\351\350\377\345\344\377\356\353"
"\377\335\333\377\335\333\377\336\333\377\374\373\377\376\377\377\366"
"\367\377\377\377\377\377\377\377\371\371\377\377\377\377\366\365\377"
"\375\376\377\366\364\377\376\376\377\362\362\377\377\376\377\373\373"
"\377\377\377\377\377\377\377\342\340\377\370\366\377\331\327\377\337"
"\334\377\353\352\377\354\353\377\355\352\377\352\347\377\351\350\377"
"\377\377\377\377\377\377\372\371\377\364\362\377\363\362\377\364\364"
"\377\372\370\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\273\273"
"\273\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\370\370\377\365\363\377\365\364\377\367\366\377"
"\367\366\377\366\366\377\341\336\377\335\333\377\372\372\377\362\362"
"\377\365\364\377\337\334\377\357\356\377\362\361\377\351\350\377\374"
"\373\377\372\372\377\376\376\377\363\362\377\370\367\377\373\373\377"
"\363\361\377\377\377\377\376\374\377\377\377\377\351\350\377\352\351"
"\377\333\331\377\371\370\377\350\346\377\342\340\377\356\355\377\351"
"\346\377\374\373\377\356\354\377\345\342\377\361\360\377\357\356\377"
"\376\376\377\377\377\377\352\351\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\342\340\377\361\361\377\377\377\377\377\377\377\350"
"\347\377\376\375\377\361\360\377\360\357\377\341\336\377\341\336\377"
"\372\372\377\377\377\377\377\377\377\377\377\377\377\377\377\373\374"
"\377\364\363\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\372\373\377\342\337\377\375\374\377\377\377\377\373\372\377"
"\354\353\377\367\366\377\342\341\377\351\350\377\350\347\377\350\347"
"\377\364\363\377\352\351\377\377\377\377\356\355\377\360\357\377\352"
"\351\377\376\376\377\364\363\377\374\374\377\366\366\377\366\364\377"
"\370\370\377\375\374\377\377\377\377\377\377\377\377\377\377\376\376"
"\377\357\356\377\362\362\377\363\362\377\372\371\377\377\377\377\377"
"\377\377\377\377\377\366\365\377\363\362\377\367\365\377\366\365\377"
"\370\370\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\40\40\40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\243\243\243\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\367"
"\367\377\365\365\377\364\364\377\366\366\377\377\377\377\377\377\377"
"\377\377\377\371\372\377\325\323\377\364\365\377\370\367\377\376\376"
"\377\377\377\377\377\377\377\377\377\377\367\366\377\366\366\377\376"
"\376\377\373\372\377\365\365\377\377\377\377\377\377\377\367\366\377"
"\377\377\377\347\346\377\365\364\377\351\350\377\355\354\377\363\363"
"\377\324\322\377\336\334\377\377\377\377\377\377\377\377\377\377\346"
"\344\377\377\377\377\377\377\377\377\377\377\377\377\377\371\371\377"
"\323\320\377\370\366\377\377\377\377\357\356\377\352\351\377\377\377"
"\377\353\351\377\376\377\377\377\377\377\341\336\377\356\354\377\377"
"\377\377\377\377\377\354\353\377\377\377\377\361\360\377\362\361\377"
"\352\351\377\377\377\377\367\366\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\355\352\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\352\351\377\363\362\377\376\377\377"
"\377\377\377\377\377\377\377\377\377\357\356\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\375\374\377\344\343\377\350\347\377\366"
"\365\377\354\352\377\355\353\377\351\346\377\352\351\377\375\374\377"
"\366\366\377\377\377\377\377\377\377\375\375\377\366\365\377\363\363"
"\377\364\363\377\367\365\377\377\377\377\363\362\377\356\355\377\354"
"\353\377\316\314\377\362\361\377\347\346\377\355\354\377\371\372\377"
"\350\347\377\366\366\377\375\376\377\362\361\377\361\361\377\363\363"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377CCC\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\225\225\225\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\367\366\377\366\367\377\367"
"\366\377\365\363\377\371\367\377\377\377\377\377\377\377\366\365\377"
"\360\357\377\354\353\377\351\350\377\336\334\377\374\373\377\377\377"
"\377\366\366\377\366\366\377\370\366\377\374\374\377\355\354\377\343"
"\341\377\344\342\377\367\367\377\356\355\377\362\361\377\357\356\377"
"\344\343\377\376\375\377\335\332\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\352\351\377\377\377\377\363\364\377\362"
"\361\377\377\377\377\356\355\377\346\343\377\361\360\377\377\377\377"
"\353\351\377\367\366\377\335\332\377\350\346\377\377\377\377\350\347"
"\377\336\334\377\334\331\377\373\372\377\330\326\377\364\363\377\325"
"\321\377\351\350\377\354\353\377\323\320\377\335\332\377\373\372\377"
"\370\367\377\350\346\377\321\316\377\342\337\377\367\366\377\346\345"
"\377\342\337\377\344\343\377\344\343\377\325\323\377\351\350\377\345"
"\344\377\342\341\377\344\342\377\322\317\377\323\320\377\347\344\377"
"\364\362\377\366\365\377\373\373\377\357\355\377\345\344\377\377\377"
"\377\372\372\377\353\352\377\377\377\377\377\377\377\356\355\377\353"
"\352\377\377\377\377\377\377\377\377\377\377\361\361\377\372\372\377"
"\377\377\377\363\362\377\364\365\377\340\340\377\347\346\377\352\351"
"\377\371\370\377\373\373\377\377\377\377\377\377\377\347\346\377\370"
"\370\377\367\367\377\367\366\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\363\361\377\365\363\377\362\362\377\376\376\377\377\377"
"\377\377\377\377\377\377\377\367\366\377\360\360\377\361\360\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377qqq\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0iii\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\370\366\377\365\363\377\365\365\377\370\366\377\370\367"
"\377\355\354\377\362\361\377\336\334\377\362\362\377\363\362\377\366"
"\365\377\377\377\377\372\372\377\371\370\377\370\371\377\370\371\377"
"\370\367\377\367\366\377\377\377\377\374\373\377\365\365\377\355\354"
"\377\345\342\377\360\357\377\361\361\377\352\350\377\351\346\377\333"
"\332\377\377\377\377\377\377\377\377\377\377\377\377\377\350\347\377"
"\377\377\377\364\364\377\364\363\377\375\376\377\344\342\377\333\331"
"\377\351\346\377\377\377\377\354\353\377\372\373\377\306\302\377\375"
"\375\377\377\377\377\366\366\377\344\341\377\352\347\377\340\335\377"
"\364\365\377\361\357\377\370\371\377\351\350\377\365\365\377\377\377"
"\377\377\377\377\352\350\377\377\377\377\377\377\377\377\377\377\350"
"\347\377\377\377\377\377\377\377\353\351\377\360\357\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\367\370\377\372\373"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\347"
"\346\377\377\377\377\377\377\377\366\365\377\373\373\377\372\371\377"
"\343\340\377\364\363\377\343\340\377\353\352\377\364\363\377\314\312"
"\377\362\361\377\357\356\377\361\360\377\375\375\377\341\337\377\365"
"\365\377\367\367\377\377\377\377\377\377\377\350\350\377\346\344\377"
"\363\362\377\377\377\377\361\357\377\347\346\377\351\347\377\333\332"
"\377\337\335\377\346\343\377\377\377\377\377\377\377\367\367\377\364"
"\364\377\362\362\377\367\367\377\377\377\377\377\377\377\363\362\377"
"\342\341\377\362\361\377\354\352\377\367\366\377\377\377\377\370\370"
"\377\372\372\377\370\367\377\362\361\377\364\363\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\224\224\224\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0XXX\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\376\376\377\367\367\377\365\365\377\364\364\377\376\376\377\377\377"
"\377\377\377\377\361\361\377\370\367\377\345\344\377\373\373\377\377"
"\377\377\377\377\377\377\377\377\370\367\377\367\366\377\371\367\377"
"\374\374\377\377\377\377\375\373\377\356\355\377\353\352\377\353\352"
"\377\337\335\377\370\367\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\347\344\377\371\370\377\377\377\377\366\366\377"
"\367\366\377\344\344\377\336\334\377\353\352\377\367\370\377\357\356"
"\377\353\351\377\354\353\377\347\347\377\354\353\377\353\352\377\374"
"\374\377\366\364\377\361\357\377\356\354\377\366\366\377\377\377\377"
"\377\377\377\354\353\377\376\375\377\377\377\377\374\374\377\377\377"
"\377\331\327\377\377\377\377\361\360\377\373\373\377\342\340\377\361"
"\361\377\377\377\377\372\372\377\336\333\377\377\377\377\377\377\377"
"\377\376\377\342\337\377\356\355\377\347\346\377\331\330\377\377\377"
"\377\377\377\377\337\336\377\363\362\377\355\354\377\352\347\377\356"
"\355\377\361\360\377\343\342\377\357\356\377\361\360\377\356\354\377"
"\353\352\377\360\356\377\336\335\377\376\374\377\377\377\377\377\377"
"\377\376\376\377\346\344\377\357\356\377\363\362\377\373\374\377\350"
"\347\377\352\350\377\355\353\377\372\372\377\377\377\377\366\365\377"
"\345\344\377\364\363\377\361\362\377\372\372\377\354\352\377\357\356"
"\377\377\377\377\377\377\377\377\377\377\346\345\377\340\335\377\352"
"\350\377\350\347\377\354\353\377\377\377\377\377\377\377\376\377\377"
"\363\362\377\364\364\377\367\366\377\373\374\377\354\353\377\354\353"
"\377\371\371\377\346\345\377\353\352\377\361\360\377\345\343\377\356"
"\355\377\377\377\377\364\362\377\363\362\377\365\365\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\301"
"\301\301\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0DDD\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\375\374\377\370\366\377\364\364\377\356\355\377\375\375\377\377"
"\377\377\372\373\377\366\365\377\343\341\377\351\350\377\356\355\377"
"\353\352\377\353\352\377\371\370\377\367\366\377\357\356\377\335\333"
"\377\357\357\377\373\373\377\361\362\377\345\343\377\332\330\377\365"
"\363\377\373\372\377\377\377\377\377\377\377\377\377\377\350\347\377"
"\377\377\377\377\377\377\373\373\377\363\363\377\363\363\377\366\365"
"\377\324\320\377\327\325\377\340\335\377\357\356\377\365\364\377\372"
"\373\377\341\336\377\373\372\377\367\367\377\365\363\377\371\371\377"
"\375\376\377\337\335\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\347\344\377\377\377\377\362\360\377\367\366\377\373\372\377\322"
"\316\377\377\377\377\364\364\377\377\377\377\350\347\377\377\377\377"
"\377\377\377\373\372\377\347\345\377\357\356\377\376\377\377\371\371"
"\377\332\327\377\377\377\377\363\362\377\355\354\377\355\354\377\377"
"\377\377\363\363\377\373\373\377\377\377\377\377\377\377\350\347\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\353\351"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\370\367\377\363"
"\363\377\377\377\377\377\377\377\377\377\377\355\354\377\356\355\377"
"\377\377\377\372\371\377\355\354\377\353\352\377\354\353\377\365\364"
"\377\353\352\377\334\331\377\333\330\377\325\322\377\377\377\377\377"
"\377\377\360\356\377\373\373\377\372\370\377\365\364\377\351\350\377"
"\335\332\377\336\335\377\377\377\377\374\374\377\362\361\377\367\367"
"\377\355\354\377\351\347\377\360\357\377\373\374\377\377\377\377\377"
"\377\377\365\364\377\372\371\377\371\371\377\377\377\377\377\377\377"
"\377\377\377\374\374\377\356\355\377\366\367\377\373\374\377\377\377"
"\377\377\377\377\375\374\377\362\361\377\363\363\377\375\375\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\343\343\343\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0###\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\373\371\377\365\363\377\364\363\377\364\363\377\356"
"\355\377\365\364\377\333\330\377\355\354\377\363\362\377\366\365\377"
"\377\377\377\377\377\377\366\365\377\366\366\377\367\366\377\374\374"
"\377\377\377\377\365\364\377\342\340\377\352\351\377\345\342\377\362"
"\361\377\375\374\377\342\342\377\351\346\377\356\355\377\377\377\377"
"\377\377\377\377\377\377\371\371\377\364\364\377\340\335\377\360\356"
"\377\373\373\377\377\377\377\377\377\377\377\377\377\377\377\377\352"
"\351\377\374\375\377\371\370\377\365\365\377\370\367\377\374\374\377"
"\344\343\377\377\377\377\377\377\377\377\377\377\377\377\377\362\362"
"\377\341\336\377\371\371\377\370\370\377\363\362\377\370\367\377\352"
"\351\377\377\377\377\377\377\377\377\377\377\335\333\377\370\371\377"
"\367\365\377\365\364\377\367\366\377\341\336\377\377\377\377\370\367"
"\377\371\370\377\361\360\377\377\377\377\366\366\377\352\351\377\364"
"\365\377\367\366\377\377\377\377\350\347\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\346\343\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\371\372\377\330\325\377\365\366\377\371"
"\371\377\377\377\377\377\377\377\347\346\377\377\377\377\377\377\377"
"\373\372\377\367\367\377\327\325\377\370\367\377\377\377\377\377\377"
"\377\371\371\377\361\360\377\377\377\377\377\377\377\377\377\377\360"
"\356\377\377\377\377\373\373\377\371\372\377\343\342\377\355\354\377"
"\374\374\377\363\364\377\342\341\377\375\376\377\377\377\377\376\377"
"\377\351\350\377\360\356\377\365\365\377\373\373\377\345\344\377\350"
"\347\377\350\346\377\355\354\377\350\347\377\352\351\377\352\351\377"
"\340\336\377\362\361\377\365\364\377\357\357\377\367\367\377\377\377"
"\377\377\377\377\342\340\377\352\350\377\360\357\377\363\362\377\377"
"\377\377\377\377\377\373\373\377\364\364\377\362\360\377\372\371\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\34\34\34\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\371\371\377\366\365\377\361"
"\361\377\374\374\377\377\377\377\377\377\377\372\371\377\345\344\377"
"\364\363\377\377\377\377\377\377\377\377\377\377\366\366\377\363\363"
"\377\370\367\377\377\376\377\377\377\377\370\367\377\351\346\377\354"
"\353\377\360\360\377\350\350\377\376\375\377\371\372\377\344\341\377"
"\356\356\377\374\373\377\356\353\377\356\355\377\370\370\377\366\366"
"\377\366\365\377\374\374\377\377\377\377\377\377\377\353\352\377\372"
"\372\377\377\377\377\370\370\377\365\363\377\366\365\377\364\363\377"
"\341\337\377\377\377\377\377\377\377\377\377\377\377\377\377\367\370"
"\377\337\334\377\367\367\377\371\371\377\365\365\377\375\376\377\363"
"\362\377\367\366\377\377\377\377\374\374\377\372\372\377\340\336\377"
"\354\353\377\371\370\377\372\372\377\375\376\377\342\341\377\377\377"
"\377\377\377\377\367\366\377\336\334\377\371\370\377\364\364\377\377"
"\377\377\331\327\377\377\377\377\372\372\377\371\370\377\362\361\377"
"\372\372\377\371\372\377\342\337\377\360\357\377\377\377\377\360\360"
"\377\362\360\377\377\377\377\335\332\377\355\354\377\372\371\377\377"
"\377\377\377\377\377\376\375\377\337\336\377\374\374\377\375\375\377"
"\377\377\377\377\377\377\347\345\377\377\377\377\377\377\377\375\375"
"\377\364\363\377\352\351\377\373\373\377\377\377\377\377\377\377\340"
"\335\377\356\354\377\371\371\377\377\377\377\327\326\377\364\364\377"
"\373\374\377\361\360\377\352\351\377\360\357\377\377\377\377\377\377"
"\377\355\354\377\374\372\377\373\374\377\357\356\377\351\347\377\364"
"\364\377\373\371\377\360\356\377\366\365\377\363\362\377\376\375\377"
"\377\377\377\377\377\377\377\377\377\355\352\377\355\352\377\342\341"
"\377\357\356\377\377\377\377\377\377\377\375\375\377\356\355\377\364"
"\362\377\377\377\377\362\361\377\341\340\377\375\376\377\345\343\377"
"\345\343\377\354\352\377\370\366\377\370\370\377\370\367\377\361\357"
"\377\370\370\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\6\6\6\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\375\375\377\364\364\377\367\366\377\373\373\377\377\377\377\377\377"
"\377\364\363\377\362\361\377\362\361\377\344\344\377\346\344\377\377"
"\377\377\363\364\377\363\363\377\370\370\377\377\377\377\377\377\377"
"\370\370\377\343\342\377\355\354\377\370\367\377\361\360\377\344\343"
"\377\371\370\377\370\367\377\351\346\377\361\360\377\370\370\377\361"
"\360\377\352\347\377\371\370\377\363\363\377\352\351\377\376\375\377"
"\377\377\377\377\377\377\377\377\377\367\367\377\367\367\377\344\343"
"\377\347\346\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\335\334\377\361\360\377\366\365\377\365\364\377\377\376\377"
"\377\377\377\346\343\377\377\377\377\377\377\377\366\365\377\365\365"
"\377\342\337\377\357\355\377\377\377\377\377\377\377\377\377\377\347"
"\347\377\370\367\377\373\372\377\367\366\377\347\346\377\351\350\377"
"\373\371\377\377\377\377\371\371\377\357\356\377\366\365\377\377\377"
"\377\335\332\377\363\362\377\370\367\377\367\370\377\341\340\377\377"
"\377\377\377\377\377\352\350\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\351\346\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\351\350\377\377\377\377\367\365\377\346"
"\345\377\357\356\377\347\346\377\377\377\377\377\377\377\377\377\377"
"\352\350\377\377\377\377\377\377\377\377\377\377\364\364\377\354\352"
"\377\350\347\377\365\364\377\361\357\377\365\364\377\377\377\377\377"
"\377\377\355\354\377\375\376\377\377\376\377\376\375\377\333\330\377"
"\372\371\377\372\371\377\347\344\377\354\353\377\373\374\377\374\375"
"\377\352\351\377\361\360\377\365\364\377\365\364\377\365\364\377\377"
"\377\377\365\364\377\360\360\377\377\376\377\377\377\377\377\377\377"
"\365\364\377\345\344\377\350\346\377\367\366\377\377\377\377\377\377"
"\377\365\364\377\361\361\377\372\372\377\377\377\377\377\377\377\377"
"\377\377\354\353\377\351\350\377\355\352\377\377\377\377\377\377\377"
"\371\372\377\361\357\377\367\367\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\23\23\23\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\357\357\357\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\371\367\377\365\364"
"\377\370\371\377\355\354\377\352\347\377\372\372\377\361\360\377\360"
"\356\377\377\377\377\351\350\377\367\366\377\371\370\377\367\366\377"
"\365\364\377\372\371\377\377\377\377\363\363\377\341\340\377\336\333"
"\377\343\340\377\377\377\377\345\344\377\354\352\377\372\373\377\375"
"\375\377\344\343\377\356\355\377\375\375\377\361\360\377\347\344\377"
"\366\365\377\372\373\377\341\340\377\354\353\377\367\370\377\351\350"
"\377\347\344\377\366\365\377\365\363\377\377\377\377\377\377\377\377"
"\377\377\372\370\377\353\350\377\371\367\377\365\363\377\364\364\377"
"\366\364\377\377\377\377\353\352\377\371\371\377\377\377\377\377\377"
"\377\366\365\377\365\366\377\335\333\377\365\365\377\377\377\377\377"
"\377\377\377\377\377\352\351\377\363\362\377\365\364\377\365\364\377"
"\364\364\377\347\345\377\377\377\377\377\377\377\377\377\377\340\337"
"\377\360\357\377\371\370\377\374\375\377\335\333\377\377\377\377\377"
"\377\377\377\377\377\334\342\377\373\377\377\372\377\377\342\343\377"
"\376\376\377\367\366\377\377\377\377\352\347\377\374\372\377\353\350"
"\377\341\337\377\357\356\377\363\364\377\346\345\377\362\360\377\377"
"\377\377\360\357\377\362\361\377\345\344\377\377\377\377\377\377\377"
"\377\377\377\371\370\377\363\361\377\377\377\377\377\377\377\377\377"
"\377\346\345\377\377\377\377\377\377\377\377\377\377\350\347\377\377"
"\377\377\377\377\377\377\377\377\352\351\377\377\377\377\366\365\377"
"\343\342\377\356\355\377\364\363\377\367\367\377\342\341\377\361\360"
"\377\377\377\377\342\341\377\372\371\377\377\377\377\367\366\377\351"
"\347\377\377\377\377\377\377\377\377\377\377\377\377\377\374\374\377"
"\337\335\377\360\356\377\363\362\377\371\372\377\377\377\377\377\377"
"\377\363\362\377\365\365\377\371\370\377\353\352\377\336\333\377\360"
"\357\377\377\377\377\377\377\377\370\371\377\362\361\377\371\371\377"
"\377\377\377\377\377\377\377\377\377\342\340\377\356\353\377\377\377"
"\377\377\377\377\377\377\377\371\371\377\362\360\377\372\372\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377333\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\347\347\347\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\372\372\377\362\362\377\361\360\377\377\377\377\355"
"\354\377\363\362\377\347\344\377\357\356\377\373\373\377\377\377\377"
"\377\377\377\370\370\377\367\367\377\366\365\377\377\377\377\346\344"
"\377\326\324\377\344\342\377\331\326\377\367\367\377\377\377\377\357"
"\357\377\343\340\377\324\321\377\373\374\377\357\356\377\344\341\377"
"\356\355\377\374\374\377\357\356\377\345\343\377\364\363\377\374\373"
"\377\350\346\377\345\345\377\376\376\377\356\354\377\344\343\377\366"
"\365\377\363\362\377\344\343\377\375\375\377\377\377\377\377\377\377"
"\365\365\377\363\363\377\364\363\377\350\346\377\370\370\377\377\377"
"\377\377\377\377\377\377\377\367\367\377\346\344\377\343\342\377\371"
"\371\377\377\377\377\377\377\377\377\377\377\345\344\377\362\362\377"
"\365\365\377\367\367\377\371\371\377\354\353\377\372\374\377\377\377"
"\377\366\375\377\362\371\377\333\340\377\370\377\377\372\377\377\377"
"\377\377\345\355\377\372\377\377\371\377\377\365\365\377\332\323\373"
"\373\363\366\373\367\373\371\313\321\363\245\261\375\246\247\375\377"
"\377\337\334\377\211\212\212\330\331\326TSo\246\247\242\244\244\240\325"
"\326\321\377\377\377\377\377\377\350\347\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\346\345\377\377\377\377\354\353\377\364\364"
"\377\371\367\377\354\353\377\346\344\377\357\357\377\377\377\377\350"
"\347\377\377\377\377\377\377\377\377\377\377\345\342\377\377\377\377"
"\377\377\377\361\361\377\364\364\377\371\371\377\350\346\377\326\324"
"\377\377\377\377\376\375\377\334\331\377\363\364\377\377\377\377\363"
"\363\377\370\370\377\374\374\377\355\354\377\345\342\377\373\373\377"
"\363\361\377\361\360\377\377\377\377\361\360\377\363\362\377\377\377"
"\377\377\377\377\377\377\377\372\371\377\341\336\377\346\344\377\370"
"\367\377\377\377\377\377\377\377\377\377\377\356\357\377\352\351\377"
"\336\333\377\362\361\377\374\374\377\355\355\377\370\370\377\360\357"
"\377\367\367\377\374\374\377\362\362\377\346\345\377\343\340\377\355"
"\354\377\377\377\377\370\367\377\373\372\377\372\371\377\353\352\377"
"\375\375\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377ddd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\314\314\314"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\365\364\377"
"\357\356\377\371\371\377\377\377\377\377\377\377\367\366\377\364\363"
"\377\332\330\377\377\377\377\377\377\377\377\377\377\361\361\377\366"
"\366\377\375\374\377\377\377\377\370\371\377\354\353\377\341\337\377"
"\355\354\377\377\377\377\375\374\377\351\347\377\347\345\377\375\373"
"\377\372\371\377\360\357\377\351\350\377\363\363\377\370\370\377\361"
"\357\377\344\343\377\360\357\377\367\367\377\355\353\377\353\351\377"
"\363\363\377\366\367\377\347\345\377\362\361\377\367\367\377\353\352"
"\377\354\351\377\371\370\377\353\352\377\344\342\377\370\370\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\355\354\377\340\335\377"
"\363\362\377\370\370\377\377\377\377\377\377\377\373\374\377\350\345"
"\377\364\363\377\366\365\377\366\365\377\372\373\377\356\356\377\365"
"\372\377\377\377\377\367\377\377\366\373\377\346\324\356\356\332\353"
"\377\304\277\377\267\261\373\307\314\350\230\260\376\277\300\377\307"
"\307\371\253\261\360\233\260\377\301\304\377\342\346\371\302\321\342"
"\236\303\373\277\307\377\232\232\371\234\254\377\300\307\377\377\377"
"\362\357\377\330\327\347\317\320\320\323\322\340\303\302\314\303\303"
"\305\377\377\377\361\357\377\377\377\377\330\326\377\377\377\377\354"
"\353\377\376\376\377\366\366\377\336\333\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\355\352\377\377\377\377\377\377\377\377\377"
"\377\344\342\377\373\373\377\374\374\377\374\374\377\353\352\377\377"
"\377\377\377\377\377\351\350\377\377\377\377\377\377\377\367\366\377"
"\364\363\377\376\377\377\366\365\377\352\351\377\377\377\377\367\366"
"\377\340\335\377\377\377\377\344\343\377\357\356\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\341\337\377\363\363\377\365\363\377"
"\365\364\377\364\364\377\361\360\377\362\360\377\377\377\377\377\377"
"\377\375\376\377\355\353\377\343\341\377\360\357\377\377\377\377\377"
"\377\377\377\377\377\347\346\377\345\343\377\341\337\377\360\356\377"
"\377\377\377\370\370\377\356\354\377\376\375\377\365\363\377\367\366"
"\377\365\365\377\346\345\377\350\347\377\350\347\377\332\330\377\373"
"\373\377\363\362\377\356\355\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\204\204\204\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\255\255\255\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\365\365\377"
"\366\365\377\376\377\377\377\377\377\377\376\377\356\354\377\361\361"
"\377\366\365\377\334\332\377\370\370\377\367\366\377\363\361\377\371"
"\371\377\377\377\377\370\371\377\356\355\377\337\335\377\344\343\377"
"\375\375\377\375\375\377\362\361\377\350\347\377\361\360\377\366\367"
"\377\370\370\377\356\355\377\354\353\377\361\360\377\370\370\377\366"
"\365\377\344\343\377\354\353\377\370\367\377\367\367\377\340\335\377"
"\357\356\377\374\375\377\352\351\377\347\346\377\366\365\377\362\361"
"\377\346\345\377\356\355\377\365\366\377\350\347\377\355\352\377\364"
"\363\377\344\343\377\364\363\377\371\370\377\364\362\377\366\366\377"
"\374\373\377\377\377\377\355\354\377\367\367\377\373\374\377\363\362"
"\377\363\364\377\372\371\377\356\355\377\367\366\377\377\377\377\371"
"\371\377\365\365\377\355\353\377\364is\377\315\313\377\305\302\377\320"
"\325\364\311\340\353\351\377\376\377\377\377\377\377\377\377\377\356"
"\357\377\377\377\377\377\377\377\376\377\377\240\327\300\304\354\323"
"\334\375\340\372\376\377\233\244\270\351\364\376\223\237\247\237\245"
"\275\237\242\244\365\366\367\345\344\377\371\370\377\377\377\377\346"
"\344\377\375\373\377\377\377\377\377\377\377\377\377\377\376\377\377"
"\356\355\377\377\377\377\377\377\377\370\371\377\363\362\377\344\343"
"\377\376\376\377\357\355\377\371\371\377\342\337\377\357\356\377\366"
"\366\377\377\377\377\341\340\377\364\364\377\370\367\377\360\356\377"
"\366\366\377\377\377\377\377\377\377\351\347\377\377\377\377\377\377"
"\377\347\346\377\377\377\377\372\372\377\330\325\377\376\376\377\377"
"\377\377\334\331\377\363\362\377\377\377\377\335\334\377\365\365\377"
"\370\371\377\361\360\377\376\375\377\346\345\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\356\355\377\364\363\377\364\364\377\364"
"\363\377\361\360\377\354\353\377\373\372\377\377\377\377\373\374\377"
"\351\350\377\345\344\377\362\361\377\377\377\377\377\377\377\361\360"
"\377\345\343\377\367\366\377\377\377\377\377\377\377\365\365\377\356"
"\355\377\377\377\377\377\377\377\377\377\377\370\370\377\353\352\377"
"\361\360\377\377\377\377\377\377\377\375\375\377\353\352\377\371\371"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\264\264\264\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\243\243\243\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\373\373\377\361\361\377"
"\364\364\377\364\363\377\357\356\377\375\375\377\347\345\377\364\363"
"\377\377\377\377\353\351\377\371\371\377\367\366\377\365\364\377\377"
"\377\377\377\377\377\372\372\377\354\353\377\342\337\377\366\365\377"
"\377\377\377\367\366\377\351\350\377\355\354\377\363\362\377\367\365"
"\377\372\372\377\362\360\377\351\350\377\361\357\377\374\373\377\366"
"\366\377\342\341\377\350\347\377\375\376\377\363\362\377\340\335\377"
"\357\355\377\370\367\377\363\363\377\350\347\377\360\357\377\367\367"
"\377\354\352\377\351\351\377\357\357\377\364\363\377\344\343\377\356"
"\355\377\364\363\377\346\343\377\353\352\377\364\363\377\341\337\377"
"\366\367\377\377\377\377\377\377\377\372\372\377\361\361\377\355\354"
"\377\350\346\377\376\375\377\377\377\377\377\377\377\365\364\377\354"
"\352\377\344\341\377\377\375\377\377\377\377\377\377\377\377\\g\345\344"
"\377\351\370\377\315\362\331\327\371\331\254\341\266\254\324\306\260"
"\340\271\261\345\266\300\345\312\250\327\272\252\340\260\276\346\310"
"s\312\177\240\322\263\327\360\332\377\377\377\301\300\311\247\245\277"
"\265\263\271\307\306\320\216\214\255\377\377\377\374\375\377\333\331"
"\377\371\371\377\371\371\377\344\343\377\353\352\377\357\356\377\337"
"\334\377\363\362\377\334\331\377\360\357\377\376\375\377\367\366\377"
"\377\377\377\347\346\377\377\377\377\377\377\377\377\377\377\341\340"
"\377\375\374\377\374\373\377\356\355\377\344\343\377\376\377\377\354"
"\353\377\353\352\377\366\366\377\377\377\377\367\366\377\322\320\377"
"\357\356\377\361\360\377\332\327\377\362\361\377\361\360\377\334\333"
"\377\373\372\377\367\367\377\360\357\377\363\364\377\331\326\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\345\342\377\373\373\377"
"\362\360\377\373\371\377\356\355\377\334\332\377\372\371\377\377\377"
"\377\377\377\377\361\360\377\363\362\377\367\366\377\365\364\377\355"
"\354\377\353\352\377\372\371\377\377\377\377\364\363\377\344\342\377"
"\336\334\377\343\341\377\347\346\377\344\343\377\341\337\377\370\367"
"\377\377\377\377\377\377\377\360\357\377\363\362\377\377\377\377\377"
"\377\377\375\375\377\355\353\377\361\357\377\377\377\377\377\377\377"
"\377\377\377\363\363\377\357\357\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\324\324\324"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\177\177\177\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\366\365\377\362\361\377"
"\370\367\377\353\352\377\357\356\377\351\347\377\352\352\377\370\371"
"\377\377\377\377\377\377\377\376\376\377\367\367\377\362\361\377\377"
"\375\377\377\377\377\362\361\377\341\340\377\331\327\377\335\333\377"
"\367\370\377\345\342\377\351\346\377\362\361\377\362\361\377\365\364"
"\377\371\372\377\352\351\377\351\350\377\356\355\377\377\377\377\356"
"\355\377\351\350\377\351\347\377\374\373\377\360\357\377\355\354\377"
"\356\354\377\362\361\377\367\366\377\351\350\377\355\355\377\360\357"
"\377\371\371\377\346\344\377\346\345\377\373\373\377\353\352\377\346"
"\345\377\363\363\377\360\356\377\346\343\377\363\362\377\355\355\377"
"\350\347\377\353\353\377\361\360\377\345\344\377\351\347\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\343\341\377\344\343\377\366"
"\366\377\377\377\377\377\377\377\367\376\365\272\330\322\246\324\273"
"\265\352\311\306\272\225\313\202Z\275\354\333\310\327\346\357\363\367"
"\377\373\377\377\377\377\364\355\377\377\372\377\377\377\377\377\377"
"\377\362\352\377\377\373\377\377\377\377\377\377\377\352\344\377\372"
"\370\377\377\377\377\377\377\377\365\364\377\377\377\377\377\377\377"
"\334\331\377\377\377\377\371\370\377\336\334\377\370\366\377\367\367"
"\377\346\345\377\377\377\377\377\377\377\377\377\377\377\377\377\346"
"\345\377\374\373\377\374\374\377\361\357\377\351\350\377\357\360\377"
"\364\363\377\374\373\377\363\362\377\361\360\377\377\377\377\377\377"
"\377\351\350\377\372\371\377\366\365\377\377\377\377\332\327\377\355"
"\354\377\377\377\377\347\346\377\374\375\377\366\365\377\332\327\377"
"\364\363\377\357\356\377\337\335\377\363\363\377\332\330\377\363\362"
"\377\367\367\377\346\345\377\377\377\377\354\353\377\361\357\377\361"
"\357\377\354\353\377\374\374\377\377\377\377\376\377\377\354\353\377"
"\377\377\377\377\377\377\372\371\377\336\333\377\362\361\377\365\365"
"\377\367\366\377\360\357\377\370\370\377\371\372\377\361\362\377\350"
"\347\377\363\364\377\377\377\377\351\346\377\352\350\377\362\361\377"
"\372\371\377\370\367\377\341\340\377\355\354\377\377\377\377\377\377"
"\377\371\370\377\354\352\377\377\377\377\362\361\377\344\341\377\352"
"\350\377\343\342\377\375\375\377\377\377\377\370\370\377\376\376\377"
"\354\353\377\373\374\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0```\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\367\366\377\363\361"
"\377\373\372\377\377\377\377\377\377\377\366\365\377\350\346\377\374"
"\374\377\377\377\377\377\377\377\365\364\377\361\360\377\365\364\377"
"\337\335\377\333\331\377\340\336\377\335\332\377\374\373\377\377\377"
"\377\363\362\377\345\342\377\330\326\377\365\364\377\363\364\377\363"
"\364\377\365\366\377\352\351\377\347\345\377\372\371\377\377\377\377"
"\350\347\377\347\344\377\361\357\377\366\366\377\370\367\377\363\363"
"\377\352\350\377\361\357\377\377\376\377\362\361\377\347\346\377\355"
"\354\377\374\375\377\356\353\377\361\357\377\367\366\377\373\373\377"
"\364\363\377\352\350\377\372\371\377\361\357\377\350\347\377\354\353"
"\377\365\364\377\351\347\377\353\352\377\365\364\377\352\350\377\353"
"\352\377\360\357\377\354\353\377\360\357\377\365\365\377\367\367\377"
"\377\377\377\377\377\377\357\356\377\342\340\377\364\362\377\362\366"
"\370R\310U\377\377\377\363\355\377\364\377\377\377OS\377\377\377\377"
"\377\377\366\364\377\372\370\377\374\375\377\377\377\377\366\366\377"
"\245\244\257\250\247\255\317\316\324\365\364\377\204\203\226\362\361"
"\355\253\253\246\335\334\370\222\222\231\233\231\241\375\375\377\212"
"\211\222\376\374\377\367\367\377\332\327\377\375\374\377\367\366\377"
"\340\337\377\371\370\377\352\351\377\346\345\377\371\370\377\367\367"
"\377\370\367\377\355\354\377\357\355\377\377\377\377\377\377\377\377"
"\377\377\346\345\377\364\363\377\370\371\377\370\367\377\330\325\377"
"\375\376\377\360\357\377\365\364\377\356\355\377\377\377\377\377\377"
"\377\347\347\377\371\370\377\363\362\377\347\346\377\375\374\377\354"
"\353\377\342\337\377\377\377\377\361\360\377\375\374\377\377\377\377"
"\345\343\377\377\377\377\355\354\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\347\345\377\377\377\377\377\377\377\366\365\377\332"
"\327\377\365\365\377\371\371\377\352\351\377\341\337\377\372\371\377"
"\377\377\377\366\366\377\354\353\377\365\364\377\364\363\377\344\342"
"\377\360\357\377\377\377\377\362\361\377\344\343\377\355\354\377\377"
"\377\377\357\356\377\350\347\377\360\357\377\374\373\377\354\353\377"
"\337\336\377\374\373\377\377\377\377\377\377\377\360\357\377\367\367"
"\377\377\377\377\343\342\377\376\375\377\341\340\377\352\351\377\347"
"\346\377\353\352\377\375\374\377\357\356\377\366\365\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0RR"
"R\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\367\366\377\356"
"\354\377\356\354\377\377\377\377\377\377\377\367\366\377\354\353\377"
"\353\353\377\320\316\377\371\370\377\364\363\377\363\361\377\376\375"
"\377\377\377\377\372\372\377\342\340\377\361\360\377\377\376\377\377"
"\377\377\344\343\377\345\343\377\362\362\377\377\377\377\370\367\377"
"\363\363\377\361\360\377\345\344\377\350\347\377\377\377\377\375\374"
"\377\350\346\377\353\350\377\363\362\377\371\371\377\371\370\377\365"
"\366\377\344\342\377\335\334\363\316\317\312\356\355\377\305\303\335"
"\307\310\323\347\346\363\362\361\373\334\333\354\300\275\327\274\274"
"\307\271\270\302\275\274\320\266\265\317\271\272\302\271\270\311\310"
"\307\331\336\335\355\357\356\370\324\322\353\277\275\314\351\347\364"
"\313\312\340\306\306\337\362\361\377\347\347\377\347\346\377\356\355"
"\377\361\360\377\371\370\377\373\372\377\365\364\377\365\365\377\377"
"\377\377\362\360\377\377\367\377\237\336\252\271\350\302\377\377\377"
"\377\377\377\366\205\223\317\234\233\247\261\276\256\255\270\261\260"
"\273\250\247\266\254\253\264\262\260\273}|\203\243\242\255\343\343\351"
"\377\377\377qpv\357\355\377\203\202\211\351\351\354\244\241\266\206\205"
"\225\317\316\326\305\306\303\347\344\377\362\362\377\367\367\377\346"
"\343\377\363\362\377\366\365\377\340\335\377\367\366\377\361\361\377"
"\351\350\377\361\360\377\364\363\377\322\316\377\306\304\377\353\351"
"\377\364\363\377\371\371\377\361\360\377\354\353\377\377\377\377\377"
"\377\377\360\357\377\354\353\377\362\363\377\377\377\377\327\323\377"
"\377\377\377\356\355\377\344\342\377\377\377\377\377\377\377\344\343"
"\377\356\355\377\375\376\377\347\344\377\362\361\377\335\333\377\363"
"\364\377\377\377\377\350\347\377\377\377\377\345\342\377\377\377\377"
"\376\376\377\375\375\377\342\340\377\353\352\377\354\353\377\377\377"
"\377\347\346\377\352\351\377\377\377\377\377\377\377\351\350\377\377"
"\377\377\377\377\377\343\340\377\352\347\377\370\370\377\363\362\377"
"\353\352\377\377\377\377\367\366\377\342\340\377\344\343\377\377\377"
"\377\360\357\377\347\346\377\350\347\377\377\377\377\347\346\377\342"
"\341\377\372\371\377\361\360\377\333\331\377\336\334\377\326\323\377"
"\360\357\377\367\365\377\357\355\377\377\377\377\377\377\377\377\377"
"\377\361\360\377\356\355\377\354\352\377\374\374\377\377\377\377\364"
"\363\377\355\354\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\7\7\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0""000\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\370\370\377"
"\365\365\377\367\367\377\376\374\377\377\377\377\365\365\377\354\352"
"\377\355\354\377\355\354\377\375\375\377\370\367\377\364\364\377\377"
"\377\377\377\377\377\367\366\377\342\340\377\361\360\377\366\365\377"
"\361\360\377\350\347\377\342\341\377\377\377\377\375\374\377\364\363"
"\377\362\361\377\357\356\377\346\344\377\362\361\377\377\377\377\375"
"\374\377\350\345\377\351\347\374\327\330\334\353\352\364\330\327\337"
"\336\335\346\325\324\350\314\312\343\351\350\346\366\365\377\346\343"
"\377\364\363\377\355\353\377\371\370\377\367\366\377\350\346\377\351"
"\350\377\377\377\377\362\360\377\357\354\377\357\356\377\372\371\377"
"\366\366\377\355\353\377\353\352\377\366\367\377\354\351\377\354\352"
"\377\367\365\377\345\344\377\353\352\377\362\361\377\324\324\352\315"
"\314\342\306\304\326\324\322\355\314\313\337\307\307\332\346\345\374"
"\363\362\377\377\377\377\377\377\377\365\363\377\311\305\325\261\247"
"\3002\2466\260\254\265\271\271\306\273\275\305\376U^\366\377\377\374"
"\373\377\377\376\377\375\374\377\371\367\377\373\371\377\377\377\377"
"\375\375\377\365\364\377\362\361\377\374\373\377\377\377\377\360\357"
"\377\361\357\377\377\377\377\376\375\377\353\351\377\364\363\377\377"
"\377\377\340\336\377\353\352\377\371\370\377\354\353\377\355\355\377"
"\367\366\377\333\331\377\364\363\377\360\357\377\332\327\377\364\363"
"\377\375\375\377\377\377\377\357\356\377\366\365\377\371\370\377\370"
"\371\377\347\346\377\347\346\377\364\364\377\377\377\377\347\346\377"
"\377\375\377\366\365\377\362\361\377\345\344\377\375\375\377\356\355"
"\377\345\344\377\365\365\377\357\356\377\370\370\377\370\367\377\335"
"\333\377\377\377\377\357\355\377\341\340\377\375\376\377\347\346\377"
"\377\377\377\345\344\377\377\377\377\377\377\377\377\377\377\352\350"
"\377\377\377\377\377\377\377\377\377\377\352\351\377\377\377\377\377"
"\377\377\341\336\377\373\373\377\362\361\377\355\355\377\347\346\377"
"\372\371\377\354\353\377\361\360\377\375\374\377\347\345\377\344\342"
"\377\366\365\377\370\367\377\352\350\377\357\357\377\363\362\377\362"
"\361\377\353\352\377\356\354\377\366\367\377\347\344\377\357\356\377"
"\365\364\377\345\343\377\350\347\377\377\377\377\377\377\377\374\374"
"\377\351\347\377\377\377\377\377\377\377\377\377\377\377\377\377\345"
"\344\377\377\377\377\377\377\377\377\377\377\372\372\377\351\350\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377$$$\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0!!!\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\373\374\377\343\341\377\316\312\377\333\331\377\332\327\377\362\361"
"\377\352\351\377\374\374\377\377\377\377\377\377\377\371\371\377\357"
"\360\377\376\377\377\377\377\377\361\360\377\350\346\377\353\351\377"
"\361\357\377\362\361\377\352\351\377\363\362\377\377\377\377\375\373"
"\377\352\351\377\354\353\377\363\360\377\354\353\377\367\370\377\374"
"\375\367\322\321\342\306\305\336\324\323\346\343\343\362\333\332\351"
"\376\377\377\365\364\377\346\345\377\353\352\377\377\377\377\364\363"
"\377\353\352\377\360\356\377\345\344\377\362\361\377\374\373\377\351"
"\350\377\355\354\377\357\356\377\363\364\377\364\363\377\352\351\377"
"\354\352\377\371\370\377\350\346\377\352\350\377\360\357\377\361\360"
"\377\352\352\377\352\351\377\360\356\377\355\354\377\350\346\377\356"
"\356\377\353\351\377\346\344\377\350\346\377\364\363\377\353\351\377"
"\353\351\377\355\353\377\316\315\344\314\313\340\275\274\324DCL\304\304"
"\302\367\367\365\377\377\377\331\361\346s\313\206\377\373\377\377\377"
"\377\374Y_\367\365\377\360\365\377\356\355\377\371\370\377\376\377\377"
"\377\377\377\370\367\377\360\357\377\367\366\377\377\376\377\370\367"
"\377\364\362\377\375\374\377\377\377\377\365\362\377\372\371\377\374"
"\374\377\357\356\377\347\345\377\373\373\377\356\355\377\340\337\377"
"\367\367\377\356\354\377\351\346\377\371\370\377\347\345\377\356\355"
"\377\362\361\377\352\351\377\366\367\377\367\366\377\371\367\377\336"
"\334\377\353\351\377\377\377\377\377\377\377\342\337\377\352\350\377"
"\372\373\377\371\371\377\333\332\377\377\377\377\377\377\377\335\334"
"\377\372\372\377\370\370\377\342\340\377\372\373\377\367\370\377\335"
"\334\377\377\377\377\336\333\377\371\371\377\371\371\377\332\327\377"
"\377\377\377\340\336\377\362\361\377\333\331\377\373\372\377\375\375"
"\377\377\377\377\346\345\377\377\377\377\374\374\377\345\342\377\356"
"\355\377\357\356\377\362\361\377\360\357\377\352\351\377\371\370\377"
"\341\340\377\375\374\377\357\356\377\364\363\377\371\370\377\341\340"
"\377\356\355\377\365\366\377\351\350\377\366\366\377\355\352\377\344"
"\343\377\372\373\377\346\345\377\346\344\377\367\367\377\350\347\377"
"\337\335\377\337\335\377\333\331\377\337\335\377\353\350\377\345\344"
"\377\372\372\377\377\377\377\377\377\377\350\346\377\375\375\377\377"
"\377\377\344\343\377\372\371\377\345\344\377\376\376\377\377\377\377"
"\377\377\377\375\375\377\350\347\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377UUU\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\24\24\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\341\340\377\337\336\377\317\315\377\351\347"
"\377\361\360\377\362\361\377\373\371\377\377\377\377\377\377\377\367"
"\367\377\360\360\377\375\373\377\377\377\377\365\365\377\350\347\377"
"\351\350\377\362\361\377\375\376\377\366\365\377\365\364\377\377\377"
"\377\360\357\377\350\347\377\353\351\377\370\370\376\344\344\354\335"
"\334\343\344\345\350\320\316\345\331\330\357\361\357\377\375\375\377"
"\370\367\377\372\372\377\364\363\377\350\347\377\347\346\377\372\373"
"\377\371\370\377\362\362\377\357\356\377\350\347\377\356\355\377\373"
"\372\377\354\353\377\356\355\377\353\352\377\354\351\377\374\373\377"
"\350\347\377\351\347\377\354\353\377\353\352\377\363\362\377\347\347"
"\377\352\351\377\364\365\377\354\351\377\352\351\377\351\351\377\356"
"\355\377\350\350\377\352\350\377\353\351\377\353\353\377\351\351\377"
"\351\350\377\350\347\377\353\352\377\347\344\377\346\344\377\344\344"
"\377\356\354\377\367\365\377\213\210\241\214\213\226\312\310\346\315"
"\313\333\377\376\377z\325\177\326\355\337\372\372\377\367\325\335\377"
"\203}\372\377\377\377\377\377\336\332\377\212{\377\230\213\377\302\273"
"\377\376\377\377\366\365\377wv\202\325\324\337\232\231\235\325\324\347"
"ggv\317\320\332EFK\311\310\327\360\357\377\370\367\377\351\350\377\354"
"\353\377\367\366\377\351\346\377\351\350\377\365\364\377\346\345\377"
"\357\356\377\355\355\377\345\343\377\361\361\377\342\341\377\365\364"
"\377\357\356\377\347\346\377\327\323\377\346\343\377\373\373\377\377"
"\377\377\357\356\377\351\350\377\372\370\377\365\366\377\342\337\377"
"\373\372\377\377\376\377\337\336\377\367\370\377\362\361\377\340\337"
"\377\373\372\377\347\345\377\364\363\377\367\367\377\342\337\377\370"
"\370\377\335\334\377\377\377\377\324\321\377\374\374\377\345\343\377"
"\377\377\377\355\354\377\355\353\377\335\334\377\376\376\377\377\377"
"\377\346\345\377\377\377\377\377\377\377\335\333\377\361\361\377\360"
"\357\377\346\345\377\377\377\377\361\360\377\344\343\377\377\377\377"
"\333\330\377\362\361\377\364\363\377\346\345\377\364\363\377\343\343"
"\377\357\356\377\354\353\377\352\347\377\354\352\377\352\351\377\351"
"\350\377\347\345\377\355\355\377\343\341\377\362\362\377\351\347\377"
"\351\350\377\342\337\377\347\345\377\367\367\377\377\377\377\377\377"
"\377\346\345\377\375\375\377\373\371\377\313\310\377\347\345\377\345"
"\344\377\370\367\377\372\372\377\361\360\377\377\377\377\350\347\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377uuu\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\366\366\366\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\355\354\377\317\315\377\343\341\377\377\377"
"\377\377\377\377\357\356\377\333\331\377\377\377\377\377\377\377\375"
"\375\377\363\361\377\364\363\377\377\377\377\376\375\377\351\350\377"
"\340\336\377\350\347\377\377\376\377\341\337\377\354\353\377\363\362"
"\377\363\361\377\350\347\377\343\343\361\353\354\346\331\332\342\333"
"\332\350\361\357\370\357\356\377\342\337\377\365\364\377\376\377\377"
"\366\366\377\364\363\377\363\362\377\344\341\377\352\347\377\372\373"
"\377\365\363\377\360\357\377\363\362\377\350\345\377\346\345\377\372"
"\370\377\357\356\377\355\354\377\350\346\377\344\343\377\365\366\377"
"\357\356\377\357\356\377\360\357\377\345\343\377\363\362\377\357\356"
"\377\351\347\377\354\352\377\353\352\377\365\364\377\345\344\377\347"
"\346\377\354\353\377\353\351\377\346\344\377\346\345\377\356\356\377"
"\347\347\377\345\343\377\351\351\377\352\351\377\344\342\377\351\350"
"\377\352\350\377\345\343\377\347\346\377\352\347\377\367\365\377\200"
"\200\206\255\255\275\364\363\377\337\333\356\310\304\3315\251F\325\307"
"\377\274\304\377\340'K\265\273\377\252\244\377\310\303\377\243\227\377"
"\265\253\377\343\341\377\352\352\377\377\377\377\234\234\230\366\363"
"\377\212\211\240\373\372\377\253\253\254\350\346\377\270\266\321\366"
"\366\370\356\355\377\350\347\377\362\361\377\367\370\377\341\337\377"
"\355\354\377\363\362\377\342\337\377\354\353\377\355\354\377\347\345"
"\377\362\361\377\337\337\377\363\362\377\350\346\377\333\331\377\361"
"\360\377\375\374\377\363\363\377\332\331\377\363\362\377\372\372\377"
"\361\357\377\355\354\377\367\366\377\360\357\377\340\337\377\375\374"
"\377\372\371\377\341\340\377\372\371\377\350\347\377\347\344\377\377"
"\377\377\333\330\377\371\370\377\351\347\377\352\351\377\362\361\377"
"\343\340\377\355\354\377\351\350\377\325\322\377\375\375\377\377\377"
"\377\377\377\377\351\347\377\376\376\377\370\371\377\334\332\377\372"
"\372\377\374\374\377\345\344\377\377\377\377\356\355\377\350\345\377"
"\371\370\377\337\334\377\377\377\377\342\337\377\366\367\377\353\351"
"\377\344\343\377\371\370\377\333\331\377\363\362\377\344\342\377\360"
"\357\377\345\342\377\353\352\377\350\346\377\353\350\377\351\351\377"
"\352\351\377\343\340\377\350\347\377\341\340\377\345\343\377\347\346"
"\377\346\345\377\344\341\377\373\372\377\377\377\377\377\377\377\347"
"\345\377\377\377\377\375\376\377\377\377\377\367\366\377\340\337\377"
"\367\366\377\333\331\377\363\362\377\377\377\377\350\345\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\246"
"\246\246\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\351\351"
"\351\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\367"
"\366\377\331\326\377\315\311\377\372\371\377\377\377\377\364\363\377"
"\361\360\377\353\351\377\363\362\377\377\377\377\356\355\377\362\361"
"\377\350\345\377\332\330\377\352\350\377\340\337\377\352\350\377\344"
"\343\377\355\354\377\336\334\377\346\343\377\376\377\377\341\341\352"
"\330\327\337\351\351\342\363\362\367\351\347\377\363\362\377\364\363"
"\377\351\346\377\364\363\377\377\377\377\363\362\377\354\353\377\365"
"\364\377\345\343\377\347\346\377\371\371\377\366\366\377\356\355\377"
"\363\364\377\343\342\377\347\347\377\366\366\377\360\357\377\365\364"
"\377\356\355\377\350\347\377\360\357\377\362\361\377\354\353\377\361"
"\360\377\347\345\377\355\354\377\355\354\377\357\355\377\355\354\377"
"\337\335\377\361\360\377\355\353\377\354\353\377\347\345\377\345\344"
"\377\355\355\377\345\343\377\352\350\377\354\351\377\354\353\377\347"
"\347\377\352\351\377\350\347\377\352\350\377\341\337\377\351\350\377"
"\350\347\377\347\346\377\347\345\377\347\345\377\360\360\377\336\332"
"\3776-\210\252\242\355\314\303\377\310\267\377\234\322\262r\256}\344"
"\351\362\377\242\246\377\271\270\377\377\377\376\376\377\355\355\377"
"\361\361\377\377\377\377\377\377\377\350\347\377\347\344\377\377\377"
"\377\377\376\377\355\355\377\351\347\377\376\375\377\367\366\377\354"
"\352\377\360\357\377\365\366\377\355\353\377\352\351\377\360\357\377"
"\360\356\377\350\347\377\357\356\377\355\354\377\346\345\377\370\370"
"\377\343\341\377\354\352\377\377\377\377\377\377\377\363\362\377\331"
"\327\377\331\327\377\373\374\377\377\377\377\341\336\377\355\352\377"
"\367\367\377\365\366\377\353\352\377\371\372\377\361\360\377\334\332"
"\377\372\373\377\363\362\377\337\336\377\374\373\377\350\347\377\354"
"\353\377\362\362\377\337\334\377\376\376\377\334\332\377\366\365\377"
"\333\331\377\365\364\377\337\335\377\367\366\377\343\340\377\367\366"
"\377\363\362\377\344\341\377\377\377\377\376\377\377\342\337\377\377"
"\377\377\375\374\377\334\333\377\367\370\377\334\331\377\362\361\377"
"\363\362\377\357\356\377\373\372\377\331\326\377\377\377\377\333\331"
"\377\376\377\377\341\336\377\364\363\377\341\336\377\357\356\377\344"
"\342\377\351\347\377\344\342\377\353\352\377\344\343\377\350\347\377"
"\343\341\377\345\343\377\337\337\377\333\331\377\321\316\377\357\356"
"\377\351\346\377\343\342\377\344\341\377\377\376\377\377\377\377\377"
"\377\377\351\346\377\376\376\377\377\377\377\377\377\377\375\374\377"
"\347\346\377\362\361\377\340\336\377\377\377\377\374\373\377\351\350"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\306"
"\306\306\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\333\333\333\377"
"\377\377\377\377\377\377\377\377\377\377\377\375\376\377\353\352\377"
"\357\356\377\377\377\377\377\377\377\375\374\377\353\352\377\360\357"
"\377\350\347\377\372\372\377\366\365\377\362\361\377\377\377\377\377"
"\377\377\344\342\377\346\345\377\353\352\377\355\352\377\352\350\377"
"\345\343\377\352\350\377\332\332\353\313\312\334\312\310\337\341\337"
"\375\362\361\377\344\341\377\345\343\377\371\372\377\364\363\377\367"
"\366\377\377\377\377\361\360\377\347\344\377\361\360\377\355\353\377"
"\344\341\377\375\375\377\374\374\377\355\352\377\363\364\377\351\350"
"\377\342\337\377\366\365\377\362\361\377\365\364\377\362\361\377\350"
"\346\377\354\353\377\361\360\377\355\354\377\375\375\377\347\345\377"
"\352\350\377\357\356\377\347\344\377\372\373\377\347\346\377\352\351"
"\377\352\351\377\353\352\377\357\356\377\346\344\377\356\355\377\343"
"\340\377\357\356\377\353\353\377\355\355\377\343\341\377\353\352\377"
"\350\345\377\353\351\377\342\340\377\352\351\377\344\342\377\352\350"
"\377\350\347\377\351\347\377\347\345\377\350\347\377\200o\377\324\316"
"\377\377\377\377VUU\337\336\357\375\372\377\377\377\377U\311Y\356\362"
"\377\310\314\333\364DD\345\373\377\357\372\377\377\377\377\374\377\377"
"\336\341\377\346\345\377\377\377\377\377\376\377\357\357\377\364\363"
"\377\370\367\377\377\377\377\367\366\377\370\367\377\354\353\377\376"
"\374\377\360\357\377\344\342\377\360\357\377\363\362\377\340\336\377"
"\356\354\377\354\352\377\343\342\377\327\323\377\342\341\377\370\370"
"\377\363\362\377\337\336\377\344\341\377\377\377\377\377\377\377\353"
"\352\377\337\335\377\366\366\377\377\377\377\355\354\377\337\335\377"
"\371\370\377\367\366\377\345\344\377\364\363\377\364\363\377\334\332"
"\377\367\366\377\365\364\377\340\335\377\367\366\377\347\346\377\353"
"\352\377\357\356\377\340\335\377\373\374\377\335\333\377\364\365\377"
"\347\345\377\354\354\377\341\337\377\336\334\377\356\355\377\377\377"
"\377\334\332\377\366\366\377\366\365\377\326\324\377\376\375\377\377"
"\377\377\346\345\377\377\377\377\337\334\377\365\364\377\340\336\377"
"\363\362\377\331\326\377\355\354\377\331\327\377\377\377\377\333\331"
"\377\377\377\377\332\330\377\361\360\377\341\337\377\345\343\377\352"
"\350\377\330\325\377\354\352\377\336\334\377\343\341\377\335\333\377"
"\343\341\377\350\347\377\377\377\377\355\354\377\377\377\377\377\377"
"\377\377\377\377\353\351\377\333\330\377\351\350\377\322\316\377\376"
"\375\377\345\344\377\377\377\377\377\377\377\377\377\377\370\366\377"
"\347\346\377\377\377\377\377\377\377\377\377\377\370\370\377\357\356"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\370\370\370\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\300\300\300\377\377\377\377\377"
"\377\377\377\377\377\377\377\363\361\377\347\345\377\346\344\377\320"
"\316\377\373\371\377\350\345\377\360\360\377\377\377\377\377\377\377"
"\377\377\377\354\353\377\374\375\377\377\377\377\375\374\377\355\352"
"\377\333\331\377\352\347\377\355\354\377\354\353\377\327\325\363\331"
"\330\347\305\304\333\346\344\377\347\345\377\350\350\377\353\353\377"
"\336\334\377\354\353\377\353\352\377\351\350\377\336\335\377\351\351"
"\377\344\341\377\346\344\377\372\371\377\354\353\377\373\373\377\377"
"\377\377\352\351\377\362\362\377\357\356\377\346\345\377\355\354\377"
"\371\372\377\360\357\377\365\364\377\350\347\377\353\352\377\365\364"
"\377\342\341\377\376\375\377\357\356\377\342\341\377\363\362\377\344"
"\343\377\360\357\377\364\363\377\351\350\377\356\355\377\344\341\377"
"\361\360\377\353\350\377\364\363\377\347\344\377\354\353\377\352\351"
"\377\353\353\377\351\347\377\351\350\377\350\347\377\354\354\377\347"
"\344\377\347\346\377\350\346\377\355\354\377\345\343\377\353\353\377"
"\343\341\377\347\344\377\365\364\377\374\373\377\361\360\377nY\377\336"
"\333\377\377\377\377WXP\374\376\377\365\362\377\333\353\360c\325j\377"
"\377\377\374no\313\271\267\372\216\377\372\207\376\364t\374\376\377\377"
"\370\367\377\366\365\377\\\\g\331\330\354\376\375\377>=@\375\372\377"
"qrw\325\326\340qqt\355\354\377\354\351\377\362\361\377\354\353\377\353"
"\350\377\346\344\377\361\360\377\377\377\377\377\377\377\375\375\377"
"\336\334\377\312\307\377\374\375\377\377\377\377\371\370\377\335\332"
"\377\340\337\377\377\377\377\377\377\377\341\336\377\335\333\377\372"
"\372\377\377\377\377\340\335\377\351\346\377\370\371\377\362\361\377"
"\341\336\377\364\365\377\353\352\377\356\355\377\366\365\377\342\341"
"\377\360\360\377\353\352\377\347\346\377\360\357\377\334\333\377\363"
"\362\377\346\344\377\356\355\377\327\324\377\350\350\377\366\365\377"
"\335\333\377\365\365\377\371\370\377\337\336\377\361\360\377\370\371"
"\377\341\337\377\362\361\377\342\337\377\377\377\377\332\330\377\362"
"\361\377\341\336\377\377\377\377\344\341\377\377\377\377\330\325\377"
"\340\336\377\322\317\377\350\346\377\353\352\377\353\352\377\341\337"
"\377\343\341\377\336\334\377\345\343\377\334\332\377\345\343\377\337"
"\335\377\375\374\377\377\377\377\375\376\377\355\353\377\367\367\377"
"\377\377\377\363\362\377\362\362\377\363\361\377\346\346\377\350\346"
"\377\376\377\377\377\377\377\376\376\377\346\345\377\377\377\377\364"
"\363\377\351\350\377\370\367\377\347\346\377\377\377\377\377\377\377"
"\377\377\377\356\355\377\366\367\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\264\264\264\377\377"
"\377\377\377\377\377\377\377\375\375\377\347\346\377\354\353\377\345"
"\345\377\357\354\377\366\365\377\357\356\377\377\377\377\377\377\377"
"\377\377\377\361\360\377\363\363\377\377\377\377\377\377\377\363\362"
"\377\345\344\377\350\346\377\351\351\377\356\353\377\312\310\346\307"
"\307\327\327\326\355\351\350\377\352\350\377\341\337\377\353\351\377"
"\344\342\377\347\345\377\353\351\377\337\333\377\346\345\377\350\347"
"\377\346\344\377\337\335\377\346\346\377\340\336\377\344\342\377\345"
"\344\377\331\327\377\340\336\377\360\357\377\353\350\377\343\342\377"
"\377\377\377\363\363\377\363\362\377\363\362\377\344\343\377\356\353"
"\377\354\352\377\357\356\377\377\377\377\341\336\377\360\357\377\360"
"\357\377\351\350\377\361\360\377\355\354\377\363\363\377\342\337\377"
"\355\354\377\351\350\377\357\356\377\353\352\377\342\341\377\354\351"
"\377\352\351\377\363\362\377\336\334\377\356\355\377\346\344\377\354"
"\354\377\346\344\377\347\346\377\346\344\377\354\352\377\350\350\377"
"\347\344\377\347\344\377\350\345\377\352\350\377\366\365\377\377\377"
"\377\371\371\377\377\377\377vg\377\332\333\377\331\340\360NPV\377\345"
"\377\377\265\377w\244{\315\251\336\377\254\356\365>m\261r\322\373\270"
"\367\377\311\377\350\357\377\360\357\377\370\367\377fgu\377\377\377\350"
"\347\363\177\177\216\365\364\377\212\210\221\306\305\321\310\311\320"
"\356\355\377\352\351\377\367\366\377\336\335\377\346\343\377\377\377"
"\377\362\361\377\360\356\377\354\352\377\361\362\377\377\377\377\377"
"\377\377\346\345\377\343\342\377\366\365\377\377\377\377\370\371\377"
"\342\337\377\340\337\377\377\377\377\372\372\377\345\345\377\342\341"
"\377\377\377\377\362\361\377\340\336\377\360\357\377\375\374\377\344"
"\343\377\356\354\377\366\365\377\342\337\377\355\354\377\353\352\377"
"\355\354\377\363\360\377\342\340\377\352\351\377\350\345\377\355\354"
"\377\332\327\377\350\347\377\345\343\377\363\362\377\371\371\377\350"
"\347\377\371\371\377\362\361\377\350\345\377\366\365\377\343\341\377"
"\364\363\377\343\342\377\361\360\377\346\343\377\377\377\377\331\326"
"\377\363\362\377\352\351\377\377\377\377\353\352\377\357\356\377\367"
"\367\377\323\320\377\342\341\377\354\352\377\333\331\377\343\341\377"
"\336\334\377\340\336\377\325\323\377\345\342\377\366\365\377\377\377"
"\377\377\377\377\377\377\377\370\367\377\346\345\377\340\336\377\373"
"\372\377\377\377\377\377\377\377\377\376\377\346\345\377\354\352\377"
"\377\377\377\377\377\377\365\364\377\361\360\377\377\377\377\345\342"
"\377\337\336\377\353\352\377\370\370\377\377\377\377\377\377\377\377"
"\377\377\343\341\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\224\224\224\377\377\377\377\377\377\377"
"\377\377\362\361\377\335\332\377\323\321\377\374\373\377\370\367\377"
"\341\337\377\355\354\377\377\377\377\377\377\377\375\375\377\353\352"
"\377\373\373\377\377\377\377\375\375\377\343\340\377\352\350\377\364"
"\364\377\340\335\376\321\320\332\312\307\343\340\336\374\357\355\377"
"\347\345\377\357\354\377\351\347\377\353\352\377\343\341\377\345\342"
"\377\354\353\377\346\343\377\357\356\377\331\327\377\346\344\377\347"
"\346\377\346\344\377\347\345\377\336\334\377\345\343\377\351\347\377"
"\343\341\377\340\336\377\344\341\377\337\335\377\340\336\377\337\335"
"\377\340\336\377\347\347\377\345\344\377\367\366\377\351\350\377\367"
"\367\377\365\364\377\350\346\377\361\360\377\347\345\377\361\360\377"
"\354\351\377\356\355\377\357\355\377\346\344\377\364\363\377\350\346"
"\377\356\355\377\346\346\377\362\362\377\344\342\377\352\351\377\344"
"\343\377\361\360\377\346\345\377\354\353\377\352\350\377\351\347\377"
"\345\343\377\347\346\377\347\346\377\357\356\377\333\331\377\341\336"
"\377\362\361\377\377\377\377\377\377\377\365\363\377\342\341\377\362"
"\362\377\367\377\377\366\330\376p1\377\330\216\377\377\272\363iDo\370"
"\372\377\377\377\377>\304L\362\377\377\377XU\377\377\377\261\275\315"
"\345\352\370\366\367\377\352\351\377\372\371\377\377\377\377\350\346"
"\377\356\354\377\373\371\377\367\365\377\371\370\377\364\361\377\353"
"\351\377\365\366\377\353\351\377\347\346\377\341\336\377\343\341\377"
"\345\344\377\346\345\377\366\365\377\374\374\377\362\362\377\346\345"
"\377\353\350\377\376\377\377\377\377\377\352\351\377\341\336\377\354"
"\353\377\377\377\377\366\365\377\345\343\377\351\347\377\376\375\377"
"\362\361\377\343\342\377\360\357\377\364\365\377\354\351\377\346\343"
"\377\356\354\377\357\356\377\343\343\377\360\355\377\351\350\377\343"
"\341\377\363\362\377\337\335\377\355\352\377\341\340\377\364\363\377"
"\337\335\377\372\373\377\377\377\377\355\355\377\343\341\377\367\366"
"\377\365\364\377\351\346\377\371\370\377\347\346\377\357\356\377\364"
"\363\377\336\333\377\367\370\377\335\333\377\367\366\377\342\337\377"
"\365\365\377\333\330\377\337\335\377\375\375\377\327\324\377\324\320"
"\377\347\347\377\354\353\377\327\325\377\316\313\377\335\333\377\355"
"\353\377\316\313\377\341\337\377\365\364\377\377\377\377\377\377\377"
"\364\363\377\344\343\377\341\340\377\374\373\377\377\377\377\377\377"
"\377\353\352\377\340\336\377\365\364\377\367\366\377\356\355\377\344"
"\341\377\366\367\377\377\377\377\377\377\377\350\346\377\375\375\377"
"\377\377\377\375\375\377\377\377\377\323\321\377\367\366\377\335\332"
"\377\376\377\377\377\377\377\350\347\377\377\377\377\377\377\377\377"
"\377\377\26\26\26\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ppp\377\377\377\377\377\377\377\377\377"
"\353\351\377\341\340\377\375\375\377\377\377\377\376\375\377\354\352"
"\377\346\345\377\317\313\377\372\371\377\366\366\377\360\360\377\377"
"\377\377\377\377\377\353\352\377\350\347\377\362\361\377\346\344\373"
"\310\306\332\317\316\343\353\353\377\355\354\377\352\350\377\343\340"
"\377\350\350\377\353\351\377\351\350\377\353\352\377\345\343\377\337"
"\334\377\351\350\377\336\333\377\351\350\377\357\355\377\334\332\377"
"\352\351\377\334\332\377\355\353\377\350\346\377\335\332\377\352\350"
"\377\331\326\377\345\344\377\353\351\377\334\332\377\342\340\377\336"
"\334\377\345\344\377\365\364\377\354\353\377\352\351\377\377\377\377"
"\341\340\377\364\363\377\355\353\377\345\342\377\367\370\377\345\345"
"\377\367\366\377\346\345\377\357\356\377\356\355\377\350\347\377\361"
"\360\377\352\347\377\353\352\377\353\352\377\360\357\377\346\343\377"
"\361\361\377\344\342\377\362\361\377\343\341\377\354\353\377\350\345"
"\377\351\350\377\343\342\377\344\343\377\351\347\377\356\356\377\367"
"\367\377\361\360\377\362\361\377\341\337\377\356\354\377\377\377\377"
"\377\377\377\366\347\376\377D\370\377\377\376\216\221\377\250\250\377"
"\274\301\300\200\202z\377\373\377\267\350\300\220\344\242\377\247\273"
"\356\221\246\372\377\377\253\252\267\355\354\377\377\377\377\351\350"
"\377\341\337\377\364\363\377\353\352\377\363\362\377\370\367\377\343"
"\340\377\353\351\377\357\356\377\350\347\377\377\377\377\377\377\377"
"\377\377\377\355\354\377\350\345\377\365\364\377\366\364\377\366\365"
"\377\361\360\377\377\377\377\373\372\377\347\346\377\336\334\377\365"
"\364\377\377\377\377\362\362\377\350\347\377\354\353\377\371\370\377"
"\362\361\377\354\352\377\360\360\377\351\347\377\364\363\377\360\357"
"\377\345\342\377\355\355\377\365\364\377\343\341\377\354\354\377\356"
"\356\377\341\337\377\352\351\377\340\336\377\361\362\377\356\355\377"
"\362\360\377\376\376\377\370\367\377\352\351\377\342\337\377\377\377"
"\377\366\365\377\334\332\377\360\357\377\370\371\377\344\341\377\366"
"\366\377\343\341\377\355\352\377\353\352\377\351\347\377\357\357\377"
"\361\360\377\332\330\377\371\371\377\320\314\377\367\366\377\345\343"
"\377\342\340\377\354\352\377\356\354\377\345\343\377\326\325\377\331"
"\326\377\342\341\377\353\353\377\313\310\377\344\343\377\367\365\377"
"\366\367\377\372\372\377\355\354\377\373\372\377\377\377\377\364\363"
"\377\343\341\377\347\346\377\376\375\377\377\377\377\344\343\377\362"
"\361\377\375\375\377\333\331\377\337\334\377\377\377\377\377\377\377"
"\377\377\377\346\345\377\377\377\377\377\377\377\377\377\377\370\367"
"\377\354\353\377\360\357\377\330\326\377\377\377\377\361\360\377\367"
"\365\377\377\377\377\377\377\377HHH\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ddd\377\377\377\377\377\377"
"\370\367\377\332\331\377\326\323\377\367\366\377\377\377\377\356\355"
"\377\360\356\377\353\352\377\362\361\377\377\377\377\363\362\377\360"
"\357\377\374\374\377\375\374\377\356\355\377\336\332\377\343\341\377"
"\301\277\330\315\313\341\350\345\377\356\353\377\357\356\377\343\341"
"\377\363\363\377\336\333\377\357\354\377\337\335\377\343\341\377\360"
"\357\377\346\343\377\362\361\377\332\326\377\352\351\377\334\331\377"
"\352\350\377\344\342\377\357\355\377\332\326\377\346\345\377\335\333"
"\377\353\351\377\344\344\377\345\343\377\341\337\377\332\326\377\351"
"\350\377\335\333\377\343\341\377\363\362\377\354\353\377\356\356\377"
"\367\366\377\351\350\377\362\361\377\352\351\377\350\347\377\362\362"
"\377\345\344\377\371\372\377\342\340\377\372\371\377\337\335\377\360"
"\357\377\352\351\377\346\345\377\356\354\377\352\347\377\355\354\377"
"\355\354\377\350\346\377\354\353\377\351\347\377\347\345\377\344\341"
"\377\361\360\377\345\344\377\351\350\377\342\340\377\341\337\377\340"
"\336\377\367\366\377\377\377\377\377\376\377\354\353\377\377\377\377"
"\377\377\377\362\362\377\335\333\377\362\372\377\366\362\377\357^\372"
"\377\307\375\250\250\377\267\260\377\243\245\242\226\225\232\377\377"
"\377H\276b\342\362\377\377OR\363\377\377\366\367\377\274\274\301\344"
"\342\377\355\355\377\361\360\377\345\344\377\373\373\377\356\355\377"
"\345\343\377\363\362\377\354\353\377\372\371\377\370\367\377\364\363"
"\377\355\354\377\341\337\377\373\374\377\377\377\377\377\377\377\356"
"\355\377\353\352\377\361\361\377\360\360\377\344\343\377\370\371\377"
"\377\377\377\363\362\377\335\335\377\354\353\377\372\371\377\361\360"
"\377\360\360\377\363\362\377\345\343\377\353\351\377\377\377\377\346"
"\344\377\343\342\377\366\367\377\354\353\377\351\347\377\355\352\377"
"\353\351\377\350\346\377\356\355\377\354\352\377\355\354\377\371\370"
"\377\372\372\377\364\362\377\346\345\377\361\360\377\372\372\377\360"
"\357\377\347\346\377\357\356\377\372\373\377\345\344\377\344\342\377"
"\367\370\377\343\341\377\360\357\377\352\352\377\346\344\377\354\352"
"\377\351\351\377\340\335\377\346\344\377\341\337\377\356\354\377\336"
"\334\377\330\326\377\346\345\377\323\321\377\357\356\377\340\336\377"
"\315\312\377\330\326\377\331\327\377\325\321\377\316\313\377\377\377"
"\377\377\377\377\377\377\377\343\342\377\361\360\377\367\365\377\356"
"\355\377\345\343\377\377\377\377\372\371\377\340\337\377\351\347\377"
"\375\374\377\344\342\377\365\365\377\367\370\377\350\345\377\353\352"
"\377\377\377\377\377\377\377\357\357\377\365\364\377\377\377\377\377"
"\377\377\377\377\377\351\350\377\375\374\377\376\375\377\377\377\377"
"\377\377\377\337\334\377\377\377\377\377\377\377fff\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0DDD\377\377\377"
"\377\377\377\363\361\377\355\354\377\346\343\377\377\377\377\377\377"
"\377\332\327\377\373\372\377\377\377\377\377\377\377\377\377\377\333"
"\331\377\321\315\377\321\317\377\357\355\377\346\345\377\355\353\377"
"\317\316\337\270\266\334\346\344\377\356\354\377\344\341\377\350\346"
"\377\341\337\377\366\366\377\336\334\377\366\366\377\342\340\377\341"
"\340\377\363\363\377\324\320\377\351\347\377\355\353\377\343\341\377"
"\364\362\377\330\326\377\357\355\377\320\315\377\361\360\377\337\335"
"\377\364\363\377\326\322\377\357\355\377\314\310\377\356\355\377\343"
"\341\377\347\347\377\341\340\377\357\356\377\370\367\377\346\344\377"
"\374\374\377\363\362\377\350\347\377\367\367\377\341\337\377\374\374"
"\377\345\343\377\365\365\377\356\354\377\350\347\377\376\376\377\335"
"\333\377\376\376\377\336\333\377\372\372\377\341\336\377\361\361\377"
"\346\345\377\352\347\377\354\353\377\343\342\377\355\353\377\347\345"
"\377\340\336\377\354\351\377\342\340\377\350\346\377\356\355\377\343"
"\340\377\364\363\377\377\377\377\375\375\377\355\354\377\346\343\377"
"\356\355\377\373\372\377\337\336\377\350\347\377\377\377\377\377\377"
"\377\357\364\377\375\377\377\377\237\374\364\205\374\250\251\377\247"
"\241\377\200\200\211\250\242\267\373\377\375^\333s\377u\210\372\322\335"
"\367\377\377\266\265\321\337\340\356\364\364\377\357\356\377\377\377"
"\377\342\340\377\354\352\377\363\362\377\345\342\377\322\317\377\370"
"\371\377\350\346\377\355\354\377\366\365\377\377\377\377\367\366\377"
"\351\350\377\334\331\377\364\364\377\375\376\377\365\364\377\357\356"
"\377\377\377\377\364\364\377\340\337\377\346\344\377\372\371\377\367"
"\370\377\353\352\377\365\364\377\354\353\377\342\341\377\375\375\377"
"\360\357\377\342\337\377\360\357\377\347\347\377\361\361\377\353\352"
"\377\341\337\377\362\361\377\345\342\377\344\341\377\364\363\377\377"
"\377\377\371\367\377\354\353\377\347\346\377\364\363\377\363\363\377"
"\360\357\377\356\356\377\360\357\377\362\361\377\360\357\377\347\346"
"\377\353\350\377\361\356\377\353\352\377\361\360\377\347\345\377\344"
"\343\377\352\351\377\342\340\377\352\350\377\336\334\377\352\351\377"
"\341\337\377\337\335\377\350\346\377\352\352\377\333\331\377\331\327"
"\377\333\331\377\322\320\377\333\331\377\330\325\377\333\330\377\322"
"\317\377\321\317\377\377\377\377\354\353\377\346\344\377\355\353\377"
"\360\357\377\362\361\377\342\342\377\377\377\377\347\346\377\341\337"
"\377\364\363\377\354\353\377\337\334\377\363\362\377\323\321\377\364"
"\364\377\342\340\377\347\345\377\377\377\377\377\377\377\377\377\377"
"\347\346\377\377\377\377\377\377\377\365\363\377\366\367\377\326\323"
"\377\377\377\377\377\377\377\377\377\377\367\367\377\361\361\377\377"
"\377\377\231\231\231\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0)))\377\377\377\377\377\377\350\346\377\323\321\377"
"\343\343\377\321\316\377\356\355\377\343\342\377\377\377\377\377\377"
"\377\377\377\377\372\373\377\325\322\377\354\353\377\372\373\377\337"
"\334\377\354\351\377\346\346\361\271\270\320\360\360\376\361\360\377"
"\350\347\377\343\341\377\367\366\377\334\332\377\343\340\377\344\343"
"\377\360\357\377\347\346\377\345\342\377\365\365\377\340\337\377\344"
"\342\377\362\362\377\316\314\377\346\345\377\356\354\377\343\341\377"
"\363\363\377\333\331\377\351\350\377\323\321\377\343\341\377\342\342"
"\377\350\346\377\354\354\377\341\337\377\336\333\377\331\327\377\355"
"\352\377\377\376\377\350\346\377\377\377\377\351\350\377\351\350\377"
"\370\370\377\336\334\377\376\375\377\341\337\377\366\364\377\352\347"
"\377\351\347\377\374\373\377\341\337\377\372\373\377\335\333\377\370"
"\370\377\342\341\377\362\361\377\343\341\377\360\357\377\340\336\377"
"\372\372\377\337\335\377\371\371\377\336\334\377\362\362\377\336\334"
"\377\344\342\377\357\356\377\340\335\377\363\362\377\357\356\377\371"
"\372\377\343\341\377\367\366\377\377\377\377\377\377\377\355\354\377"
"\374\375\377\377\377\377\373\373\377\332\327\377\363\362\377\372\375"
"\377\340\352\377\364\301\375\377g\372\275\257\377\215\207\377\201\204"
"r\325\313\327\200\324\237\271\326\273\377Yg\344\364\377\376\375\377\253"
"\252\271\376\376\377\372\371\377\337\335\377\361\360\377\354\354\377"
"\366\365\377\377\377\377\377\377\377\363\362\377\334\332\377\356\355"
"\377\366\366\377\364\363\377\357\356\377\364\362\377\377\377\377\377"
"\377\377\345\342\377\355\354\377\364\365\377\355\354\377\335\333\377"
"\377\377\377\377\377\377\352\351\377\361\360\377\364\363\377\340\337"
"\377\351\350\377\377\377\377\342\340\377\357\356\377\356\355\377\342"
"\337\377\377\377\377\343\341\377\351\350\377\352\350\377\347\346\377"
"\377\377\377\377\377\377\373\373\377\333\330\377\351\347\377\365\365"
"\377\373\372\377\356\355\377\363\362\377\360\357\377\342\341\377\365"
"\364\377\370\371\377\343\340\377\344\342\377\375\375\377\336\334\377"
"\344\343\377\362\361\377\337\334\377\355\355\377\341\337\377\352\351"
"\377\343\341\377\347\347\377\330\326\377\344\342\377\341\340\377\337"
"\335\377\336\334\377\330\326\377\336\332\377\334\330\377\316\313\377"
"\320\316\377\314\311\377\304\300\377\314\310\377\274\267\377\355\355"
"\377\377\377\377\347\345\377\377\377\377\373\372\377\325\323\377\377"
"\376\377\336\333\377\362\361\377\351\346\377\350\346\377\343\342\377"
"\366\365\377\354\353\377\332\330\377\357\356\377\353\353\377\344\342"
"\377\332\327\377\353\351\377\363\362\377\354\353\377\365\366\377\377"
"\377\377\336\335\377\366\365\377\335\334\377\375\375\377\377\377\377"
"\377\377\377\377\377\377\346\345\377\377\377\377\267\267\267\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\35\35\377\377"
"\377\377\377\377\344\343\377\361\356\377\340\337\377\363\362\377\375"
"\374\377\363\362\377\377\377\377\377\377\377\377\377\377\367\367\377"
"\333\331\377\351\350\377\377\377\377\363\363\377\352\351\377\303\302"
"\324\323\321\352\374\373\377\340\336\377\354\353\377\352\351\377\363"
"\362\377\341\337\377\353\352\377\366\365\377\335\334\377\332\327\377"
"\335\334\377\363\363\377\350\345\377\341\337\377\364\363\377\343\342"
"\377\346\343\377\366\366\377\324\322\377\323\321\377\360\357\377\343"
"\341\377\350\346\377\362\362\377\344\342\377\345\344\377\333\330\377"
"\335\333\377\333\331\377\342\340\377\377\377\377\375\375\377\354\351"
"\377\360\357\377\345\344\377\362\361\377\352\351\377\353\350\377\365"
"\364\377\340\336\377\372\373\377\344\343\377\353\352\377\370\371\377"
"\343\341\377\363\364\377\344\342\377\363\362\377\344\342\377\357\356"
"\377\344\343\377\365\365\377\332\330\377\370\367\377\330\326\377\371"
"\370\377\341\337\377\365\365\377\343\341\377\355\354\377\347\345\377"
"\330\326\377\377\377\377\377\377\377\377\377\377\357\356\377\371\371"
"\377\372\373\377\361\360\377\344\341\377\352\351\377\372\372\377\347"
"\346\377\344\343\377\356\356\377\377\376\377\355\354\377\373\376\377"
"\377\377\377\371\367\377\376`\372\323\234\377un\377Z[Y\351\343\362K\331"
"j\373AU\377\377\377\365\371\377\262\262\272\366\365\377\340\336\377\373"
"\373\377\340\336\377\355\354\377\360\356\377\377\377\377\377\377\377"
"\351\350\377\377\377\377\377\377\377\377\377\377\351\350\377\354\352"
"\377\365\364\377\365\364\377\330\325\377\355\354\377\377\376\377\370"
"\370\377\356\355\377\377\377\377\361\360\377\333\332\377\364\363\377"
"\365\364\377\336\333\377\377\377\377\374\373\377\337\335\377\364\365"
"\377\350\347\377\346\345\377\373\374\377\341\337\377\365\364\377\352"
"\351\377\371\371\377\371\371\377\362\361\377\345\342\377\342\340\377"
"\377\377\377\377\377\377\353\352\377\357\356\377\362\362\377\344\343"
"\377\354\353\377\377\377\377\345\343\377\341\340\377\367\367\377\355"
"\355\377\342\342\377\357\356\377\352\350\377\354\354\377\344\341\377"
"\352\352\377\346\345\377\346\346\377\342\340\377\345\343\377\341\337"
"\377\336\332\377\333\331\377\333\331\377\331\325\377\323\321\377\323"
"\317\377\322\316\377\314\310\377\333\330\377\340\336\377\351\347\377"
"\375\376\377\377\377\377\350\346\377\377\377\377\344\341\377\352\351"
"\377\355\355\377\344\342\377\352\350\377\335\332\377\350\347\377\356"
"\355\377\347\345\377\363\362\377\362\361\377\361\360\377\361\360\377"
"\340\337\377\377\377\377\333\330\377\350\347\377\365\365\377\367\367"
"\377\377\377\377\342\341\377\377\377\377\354\353\377\332\327\377\375"
"\375\377\353\352\377\377\377\377\363\363\377\377\377\377\362\361\377"
"\377\377\377\353\353\351\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\11\11\10\377\377\377\377\377\377\323\320\377\313\310\377\366"
"\365\377\377\377\377\370\367\377\344\344\377\326\325\377\370\367\377"
"\377\377\377\360\356\377\314\312\377\361\362\377\377\377\377\361\360"
"\377\321\316\361\307\306\321\337\335\377\360\357\377\341\336\377\370"
"\367\377\343\342\377\343\342\377\355\354\377\357\356\377\356\355\377"
"\334\331\377\362\361\377\360\357\377\350\345\377\337\335\377\324\321"
"\377\354\352\377\360\357\377\337\335\377\345\344\377\360\356\377\355"
"\352\377\346\344\377\352\350\377\334\332\377\336\333\377\333\331\377"
"\333\331\377\343\341\377\356\355\377\341\341\377\345\345\377\365\364"
"\377\355\354\377\352\351\377\370\367\377\336\334\377\366\365\377\367"
"\367\377\336\334\377\366\367\377\350\346\377\362\361\377\342\340\377"
"\361\360\377\372\371\377\347\346\377\352\351\377\346\344\377\365\364"
"\377\333\331\377\376\376\377\333\330\377\370\367\377\342\342\377\356"
"\355\377\347\345\377\354\353\377\342\340\377\355\354\377\345\342\377"
"\360\360\377\347\345\377\345\342\377\351\350\377\371\370\377\365\366"
"\377\334\331\377\362\360\377\362\360\377\362\361\377\346\345\377\374"
"\373\377\377\377\377\377\377\377\353\350\377\377\377\377\377\377\377"
"\353\352\377\355\354\377\375\375\377\341\337\377\354\362\377\362\376"
"\377\373\210\374\334m\377nf\377XYY\261\345\302\223\250W\370z\232\370"
"\377\377\325\325\332\315\312\352\375\375\377\346\345\377\374\373\377"
"\377\377\377\377\377\377\370\367\377\335\333\377\360\356\377\371\367"
"\377\356\355\377\344\342\377\351\350\377\377\377\377\377\377\377\347"
"\345\377\377\377\377\377\377\377\363\363\377\347\345\377\364\364\377"
"\364\363\377\331\327\377\365\365\377\370\367\377\350\347\377\377\377"
"\377\353\352\377\346\345\377\371\371\377\344\342\377\354\351\377\366"
"\364\377\345\342\377\365\364\377\335\333\377\360\356\377\362\361\377"
"\377\377\377\351\350\377\377\377\377\377\377\377\357\356\377\337\335"
"\377\364\363\377\364\363\377\350\346\377\376\375\377\366\367\377\341"
"\340\377\357\355\377\360\357\377\354\351\377\363\363\377\343\341\377"
"\352\350\377\351\347\377\351\347\377\347\347\377\342\340\377\350\346"
"\377\344\342\377\342\340\377\340\336\377\344\343\377\327\325\377\340"
"\336\377\327\325\377\320\314\377\325\321\377\337\335\377\344\341\377"
"\373\372\377\377\377\377\377\377\377\345\342\377\346\345\377\365\364"
"\377\351\350\377\353\352\377\376\374\377\335\333\377\374\375\377\343"
"\342\377\331\327\377\362\362\377\332\330\377\332\330\377\372\370\377"
"\347\345\377\351\347\377\352\350\377\340\336\377\356\355\377\337\337"
"\377\355\355\377\347\346\377\377\377\377\377\377\377\377\377\377\350"
"\345\377\377\377\377\377\377\377\377\377\377\367\366\377\337\334\377"
"\374\373\377\342\341\377\377\377\377\377\377\377\354\353\377\377\377"
"\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\364\364\362"
"\377\377\377\353\352\377\317\313\377\377\377\377\377\377\377\360\357"
"\377\362\361\377\363\362\377\362\361\377\377\377\377\351\351\377\277"
"\272\377\346\344\377\377\377\377\354\351\377\311\306\337\327\326\342"
"\332\330\377\355\354\377\345\344\377\355\353\377\345\344\377\351\350"
"\377\355\354\377\351\350\377\352\351\377\327\325\377\361\360\377\361"
"\360\377\362\361\377\352\350\377\332\330\377\356\355\377\364\363\377"
"\335\333\377\335\333\377\324\322\377\344\343\377\341\336\377\344\342"
"\377\343\341\377\360\357\377\337\335\377\334\332\377\357\357\377\361"
"\360\377\317\314\377\334\332\377\377\377\377\355\355\377\335\333\377"
"\377\376\377\355\354\377\345\342\377\356\354\377\355\352\377\371\370"
"\377\331\327\377\366\366\377\363\362\377\365\365\377\366\366\377\350"
"\345\377\356\355\377\343\340\377\377\377\377\335\333\377\361\360\377"
"\345\344\377\372\373\377\332\330\377\370\367\377\350\347\377\357\355"
"\377\330\326\377\353\352\377\350\347\377\347\346\377\343\340\377\346"
"\345\377\377\377\377\377\377\377\377\377\377\361\360\377\372\372\377"
"\377\377\377\377\377\377\355\354\377\374\375\377\363\362\377\366\366"
"\377\344\343\377\353\351\377\372\372\377\352\347\377\343\340\377\375"
"\376\377\355\354\377\335\334\377\377\377\377\366\374\377\351\363\377"
"\377\325\375\370]\377_E\373GG]\\\340v\36093\377\377\377\324\324\361\305"
"\305\324\365\362\377\317\314\377\323\320\377\370\367\377\320\314\377"
"\336\334\377\377\377\377\377\377\377\377\377\377\353\352\377\376\376"
"\377\377\377\377\374\373\377\337\334\377\366\365\377\363\361\377\355"
"\354\377\343\342\377\373\373\377\356\354\377\347\346\377\375\375\377"
"\377\377\377\351\350\377\366\365\377\360\357\377\350\347\377\365\364"
"\377\352\347\377\351\350\377\366\366\377\344\343\377\367\370\377\336"
"\333\377\377\377\377\377\377\377\377\377\377\336\333\377\367\366\377"
"\366\364\377\346\343\377\340\337\377\373\372\377\374\372\377\345\344"
"\377\374\373\377\361\360\377\334\332\377\366\365\377\347\346\377\357"
"\356\377\363\362\377\337\335\377\364\363\377\342\340\377\360\357\377"
"\341\337\377\356\355\377\333\331\377\346\344\377\346\344\377\337\336"
"\377\342\342\377\331\327\377\334\331\377\330\325\377\325\323\377\336"
"\334\377\377\377\377\377\377\377\377\377\377\363\362\377\341\336\377"
"\344\343\377\377\377\377\364\363\377\336\334\377\364\363\377\350\346"
"\377\351\346\377\352\351\377\360\360\377\326\324\377\334\332\377\355"
"\354\377\346\344\377\344\342\377\337\335\377\357\356\377\341\337\377"
"\336\334\377\341\337\377\331\325\377\340\336\377\326\322\377\353\351"
"\377\350\346\377\377\377\377\377\377\377\370\370\377\357\356\377\377"
"\377\377\377\377\377\377\377\377\351\350\377\377\377\377\311\305\377"
"\333\330\377\377\377\377\345\344\377\377\377\377\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\352\352\350\377\377\377\356\355\377\376"
"\376\377\376\376\377\377\377\377\356\355\377\367\366\377\350\350\377"
"\362\361\377\377\377\377\344\342\377\344\342\377\374\373\377\377\377"
"\377\354\353\377\276\275\323\347\346\360\362\361\377\377\377\377\354"
"\353\377\361\360\377\335\332\377\336\334\377\337\334\377\327\325\377"
"\365\365\377\350\347\377\372\371\377\347\345\377\324\322\377\327\325"
"\377\333\331\377\366\366\377\366\365\377\342\340\377\341\341\377\344"
"\342\377\357\354\377\373\374\377\355\354\377\340\336\377\326\323\377"
"\325\322\377\345\343\377\365\364\377\363\360\377\331\325\377\323\321"
"\377\365\364\377\376\377\377\353\350\377\365\364\377\327\325\377\355"
"\355\377\377\377\377\351\347\377\365\364\377\330\324\377\360\357\377"
"\370\367\377\360\357\377\367\366\377\321\315\377\361\360\377\350\346"
"\377\377\377\377\334\332\377\347\346\377\343\341\377\377\377\377\345"
"\343\377\347\344\377\335\333\377\377\377\377\347\344\377\362\361\377"
"\331\327\377\361\360\377\345\344\377\354\353\377\371\370\377\352\350"
"\377\354\353\377\363\362\377\355\354\377\352\351\377\347\346\377\353"
"\351\377\361\362\377\365\365\377\347\346\377\334\333\377\377\376\377"
"\377\377\377\356\355\377\350\347\377\377\377\377\377\377\377\353\352"
"\377\377\377\377\377\377\377\337\334\377\371\374\377\377\377\377\347"
"\334\377\377e\377U\15\3503M_ao\0\377\276\340\356\364\371\274\271\324"
"\367\366\377\377\377\377\377\377\377\377\377\377\332\331\377\377\377"
"\377\356\354\377\357\356\377\356\355\377\341\337\377\356\355\377\377"
"\377\377\337\335\377\347\346\377\377\377\377\371\371\377\337\334\377"
"\377\377\377\377\377\377\346\344\377\377\377\377\367\367\377\337\336"
"\377\353\352\377\377\377\377\321\317\377\377\376\377\351\350\377\350"
"\347\377\377\377\377\333\330\377\367\365\377\341\337\377\353\352\377"
"\374\374\377\353\352\377\334\332\377\350\347\377\377\377\377\363\364"
"\377\351\350\377\377\377\377\377\377\377\336\335\377\365\365\377\372"
"\370\377\332\332\377\377\376\377\344\343\377\360\357\377\361\360\377"
"\342\340\377\373\372\377\341\337\377\360\360\377\336\334\377\350\346"
"\377\343\341\377\353\351\377\341\337\377\327\325\377\340\336\377\330"
"\325\377\333\331\377\330\326\377\327\325\377\373\372\377\377\377\377"
"\362\361\377\357\357\377\342\341\377\360\357\377\377\377\377\370\367"
"\377\337\334\377\351\350\377\376\375\377\343\340\377\345\343\377\350"
"\350\377\351\351\377\335\333\377\330\326\377\365\364\377\337\335\377"
"\373\374\377\322\320\377\327\325\377\374\373\377\326\323\377\327\325"
"\377\312\310\377\336\334\377\341\337\377\324\322\377\360\357\377\340"
"\336\377\377\377\377\377\377\377\377\377\377\346\345\377\377\377\377"
"\377\377\377\377\377\377\376\377\377\353\350\377\377\377\377\377\377"
"\377\377\377\377\355\353\377\377\377\377\10\10\7\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\317\317\316\377\377\377\363\361\377\361\360\377\376"
"\376\377\377\377\377\350\347\377\370\367\377\377\377\377\377\377\377"
"\377\377\377\356\355\377\351\350\377\356\354\377\377\377\377\351\350"
"\377\274\273\310\353\352\371\341\337\377\353\352\377\342\340\377\364"
"\363\377\362\361\377\366\366\377\362\361\377\346\344\377\355\354\377"
"\335\333\377\351\347\377\336\334\377\342\340\377\356\354\377\341\340"
"\377\361\361\377\350\350\377\343\341\377\355\354\377\335\333\377\335"
"\335\377\342\340\377\331\327\377\342\340\377\370\367\377\360\356\377"
"\354\352\377\353\352\377\344\343\377\331\326\377\326\323\377\361\360"
"\377\377\377\377\343\342\377\371\372\377\352\347\377\345\343\377\364"
"\363\377\333\331\377\374\374\377\362\362\377\371\371\377\371\370\377"
"\340\335\377\365\365\377\332\331\377\362\361\377\340\335\377\375\375"
"\377\351\350\377\363\363\377\341\336\377\361\360\377\360\357\377\364"
"\364\377\343\341\377\353\352\377\333\330\377\366\366\377\351\350\377"
"\376\375\377\342\340\377\351\350\377\360\360\377\377\377\377\377\377"
"\377\377\377\377\353\351\377\377\377\377\377\377\377\376\376\377\357"
"\356\377\377\377\377\377\377\377\363\362\377\376\375\377\377\377\377"
"\373\373\377\342\340\377\367\367\377\377\377\377\345\342\377\370\367"
"\377\361\360\377\333\332\377\376\375\377\372\371\377\333\332\377\363"
"\371\377\377\377\377\375\206\377f\0\352\0S\"\313\211O\346\350\354\314"
"\314\356\371\371\377\365\363\377\370\367\377\364\362\377\360\357\377"
"\377\377\377\377\377\377\377\377\377\352\351\377\377\377\377\377\377"
"\377\372\373\377\360\357\377\377\377\377\377\377\377\340\335\377\370"
"\367\377\377\377\377\341\337\377\354\354\377\377\377\377\340\337\377"
"\353\352\377\377\377\377\341\337\377\364\364\377\370\371\377\346\345"
"\377\373\372\377\341\336\377\370\367\377\357\356\377\375\374\377\377"
"\377\377\377\377\377\361\357\377\371\370\377\377\377\377\377\377\377"
"\330\326\377\376\375\377\357\356\377\346\345\377\360\357\377\371\370"
"\377\343\341\377\365\365\377\371\370\377\340\336\377\367\367\377\343"
"\340\377\363\363\377\341\337\377\361\360\377\340\336\377\360\356\377"
"\343\341\377\336\334\377\360\357\377\340\335\377\347\345\377\343\340"
"\377\337\333\377\332\330\377\324\322\377\370\371\377\371\370\377\377"
"\377\377\377\377\377\350\347\377\377\377\377\372\372\377\344\341\377"
"\345\344\377\370\370\377\355\354\377\351\347\377\356\355\377\343\340"
"\377\343\341\377\343\341\377\361\361\377\366\366\377\342\342\377\352"
"\351\377\336\334\377\342\337\377\322\320\377\330\324\377\312\307\377"
"\270\263\377\350\347\377\377\377\377\350\345\377\352\350\377\345\345"
"\377\341\340\377\377\377\377\377\377\377\377\377\377\346\345\377\377"
"\377\377\374\374\377\356\355\377\371\372\377\333\330\377\377\377\377"
"\377\377\377\377\377\377\375\375\377\377\377\377<<:\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\272\272\270\377\377\377\370\371\377\365\364\377\343\340"
"\377\342\341\377\351\347\377\366\365\377\377\377\377\377\377\377\377"
"\377\377\350\347\377\336\334\377\345\344\377\371\370\377\354\351\377"
"\305\304\307\377\377\374\331\327\377\331\326\377\341\340\377\354\353"
"\377\334\332\377\334\331\377\341\336\377\335\333\377\353\351\377\341"
"\340\377\365\365\377\353\351\377\366\366\377\367\367\377\334\332\377"
"\347\345\377\357\355\377\350\347\377\351\350\377\327\325\377\336\334"
"\377\326\324\377\323\317\377\341\337\377\347\346\377\341\337\377\341"
"\337\377\350\350\377\332\330\377\310\304\377\324\321\377\365\364\377"
"\377\377\377\343\341\377\365\365\377\362\360\377\335\332\377\357\356"
"\377\331\325\377\360\357\377\361\360\377\324\322\377\326\324\377\343"
"\342\377\375\375\377\344\343\377\375\375\377\357\356\377\371\370\377"
"\366\366\377\357\356\377\357\355\377\316\312\377\337\334\377\346\345"
"\377\362\363\377\360\360\377\370\367\377\360\356\377\342\340\377\342"
"\341\377\307\303\377\335\333\377\343\342\377\361\361\377\350\347\377"
"\355\354\377\330\325\377\367\367\377\344\343\377\326\323\377\342\341"
"\377\367\367\377\357\357\377\341\337\377\332\330\377\347\345\377\355"
"\354\377\344\342\377\375\376\377\377\377\377\351\350\377\344\341\377"
"\313\307\377\317\313\377\340\337\377\374\374\377\363\362\377\345\345"
"\377\332\331\377\341\344\377\372\377\377\377\303\377\222\0\364\16a\31"
"\274\274\303\377\377\377\377\377\377\373\373\377\375\376\377\343\340"
"\377\377\377\377\351\347\377\314\311\377\320\315\377\362\361\377\371"
"\371\377\376\376\377\341\336\377\360\357\377\330\326\377\343\341\377"
"\353\352\377\377\377\377\377\377\377\331\327\377\324\322\377\325\323"
"\377\344\342\377\377\377\377\372\371\377\317\314\377\312\306\377\326"
"\324\377\367\366\377\364\363\377\311\306\377\352\350\377\336\334\377"
"\352\351\377\360\357\377\372\371\377\343\342\377\356\354\377\351\350"
"\377\352\351\377\365\364\377\371\372\377\337\335\377\337\337\377\377"
"\377\377\363\362\377\315\311\377\317\313\377\337\334\377\377\376\377"
"\356\356\377\362\361\377\342\340\377\363\361\377\350\346\377\351\351"
"\377\310\305\377\343\341\377\324\322\377\355\354\377\350\347\377\334"
"\331\377\305\302\377\277\272\377\352\351\377\375\373\377\377\377\377"
"\373\373\377\361\360\377\337\335\377\354\353\377\375\375\377\343\340"
"\377\355\354\377\363\362\377\350\346\377\365\365\377\345\344\377\336"
"\335\377\352\351\377\354\351\377\367\367\377\351\351\377\357\355\377"
"\347\346\377\340\336\377\341\337\377\320\315\377\323\317\377\331\325"
"\377\360\357\377\370\367\377\337\335\377\320\314\377\306\301\377\303"
"\300\377\340\335\377\346\344\377\377\377\377\377\377\377\377\377\377"
"\337\336\377\377\377\377\377\377\377\334\331\377\367\366\377\340\337"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\375\377[[X\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\247\247\245\377\377\377\364\363\377\375\376\377"
"\362\362\377\362\361\377\367\366\377\370\367\377\377\377\377\377\377"
"\377\377\377\377\356\355\377\314\311\377\310\304\377\320\315\377\360"
"\357\377\274\273\304\367\366\374\324\322\377\337\335\377\352\350\377"
"\377\376\377\355\354\377\377\377\377\362\361\377\370\370\377\367\366"
"\377\356\354\377\373\373\377\346\345\377\366\366\377\355\353\377\331"
"\327\377\341\337\377\344\342\377\357\356\377\354\353\377\341\340\377"
"\360\356\377\350\346\377\344\342\377\353\353\377\347\345\377\337\335"
"\377\354\354\377\355\355\377\344\342\377\326\325\377\337\335\377\360"
"\357\377\377\377\377\362\361\377\373\372\377\377\377\377\346\343\377"
"\377\377\377\362\361\377\365\364\377\377\377\377\332\330\377\353\352"
"\377\344\343\377\377\377\377\370\366\377\363\362\377\376\376\377\351"
"\350\377\376\375\377\344\341\377\374\373\377\311\307\377\330\325\377"
"\333\331\377\357\356\377\334\331\377\364\363\377\340\336\377\374\375"
"\377\360\357\377\361\360\377\342\340\377\341\341\377\377\377\377\377"
"\377\377\377\377\377\370\370\377\372\372\377\377\376\377\351\350\377"
"\346\343\377\375\375\377\377\377\377\377\377\377\354\352\377\377\377"
"\377\350\347\377\350\347\377\363\363\377\377\377\377\377\377\377\352"
"\351\377\360\360\377\354\353\377\353\351\377\377\377\377\377\377\377"
"\352\352\377\352\350\377\354\353\377\357\356\377\377\377\377\354\366"
"\377\377\372\377\261\20\326kf\206\224\240\221\377\377\377\377\377\377"
"\363\364\377\372\371\377\377\377\377\363\362\377\366\365\377\361\360"
"\377\377\377\377\377\377\377\374\373\377\363\363\377\373\372\377\366"
"\367\377\351\350\377\377\377\377\377\377\377\354\353\377\375\375\377"
"\366\366\377\353\351\377\377\377\377\377\377\377\351\350\377\365\365"
"\377\365\364\377\352\350\377\377\377\377\344\341\377\350\346\377\331"
"\326\377\377\377\377\377\377\377\377\377\377\366\366\377\371\371\377"
"\377\377\377\377\377\377\346\346\377\377\377\377\377\377\377\354\351"
"\377\377\377\377\377\377\377\351\350\377\342\340\377\352\350\377\362"
"\361\377\377\377\377\344\342\377\373\372\377\331\327\377\363\362\377"
"\337\334\377\377\377\377\321\315\377\347\346\377\363\361\377\337\334"
"\377\351\350\377\373\372\377\323\321\377\316\311\377\344\342\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\361\360\377\377\377\377"
"\377\377\377\345\344\377\377\377\377\377\377\377\347\347\377\375\374"
"\377\314\312\377\351\350\377\344\343\377\377\377\377\370\370\377\350"
"\346\377\363\364\377\351\347\377\326\323\377\306\302\377\323\320\377"
"\377\377\377\377\377\377\355\354\377\305\301\377\310\305\377\315\312"
"\377\333\331\377\327\326\377\336\333\377\352\350\377\377\377\377\377"
"\377\377\377\377\377\342\340\377\377\377\377\377\377\377\341\337\377"
"\353\352\377\347\347\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\364\363\377\215\215\212\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\204\204\202\377\377\377"
"\364\363\377\377\377\377\371\370\377\352\347\377\341\340\377\333\331"
"\377\335\334\377\365\364\377\377\377\377\364\363\377\341\337\377\337"
"\335\377\377\377\377\340\336\377\305\304\322\336\335\363\324\320\377"
"\350\347\377\326\322\377\351\350\377\320\314\377\351\346\377\323\321"
"\377\335\332\377\321\317\377\321\315\377\325\323\377\312\306\377\327"
"\323\377\310\304\377\316\312\377\311\307\377\301\275\377\321\317\377"
"\307\303\377\306\302\377\325\322\377\307\304\377\314\310\377\324\323"
"\377\310\304\377\317\313\377\327\325\377\312\307\377\313\310\377\330"
"\326\377\323\320\377\321\317\377\347\346\377\340\335\377\323\321\377"
"\350\345\377\323\321\377\346\343\377\346\344\377\321\317\377\351\347"
"\377\321\317\377\350\346\377\336\333\377\330\325\377\345\345\377\317"
"\313\377\346\345\377\315\311\377\347\345\377\316\314\377\347\345\377"
"\326\324\377\346\345\377\326\322\377\347\345\377\325\321\377\345\345"
"\377\323\321\377\350\346\377\324\321\377\351\351\377\314\310\377\340"
"\336\377\325\322\377\345\342\377\343\341\377\345\343\377\316\313\377"
"\345\343\377\344\343\377\344\343\377\316\314\377\346\344\377\346\344"
"\377\337\334\377\327\325\377\347\345\377\346\344\377\317\314\377\345"
"\344\377\345\343\377\320\315\377\345\343\377\350\350\377\333\331\377"
"\336\334\377\347\344\377\324\322\377\336\333\377\347\346\377\317\315"
"\377\347\344\377\347\346\377\321\316\377\371\377\377KY\\\251\7y\247E"
"\275\363\374\377\346\353\377\314\311\377\345\343\377\343\341\377\346"
"\344\377\317\313\377\343\342\377\343\341\377\345\342\377\315\312\377"
"\346\345\377\347\344\377\345\345\377\317\315\377\345\343\377\346\343"
"\377\316\312\377\350\347\377\351\347\377\317\313\377\346\344\377\346"
"\344\377\317\315\377\352\350\377\331\325\377\341\336\377\350\346\377"
"\315\313\377\352\350\377\316\313\377\347\344\377\343\340\377\345\343"
"\377\316\314\377\347\344\377\345\342\377\347\345\377\315\311\377\346"
"\344\377\347\345\377\315\311\377\347\344\377\346\344\377\317\313\377"
"\351\351\377\334\332\377\334\331\377\347\346\377\316\314\377\352\350"
"\377\316\313\377\352\351\377\322\320\377\345\343\377\314\312\377\306"
"\301\377\326\323\377\304\301\377\312\306\377\332\331\377\333\331\377"
"\310\305\377\321\315\377\346\344\377\342\340\377\343\341\377\327\324"
"\377\331\327\377\346\343\377\347\345\377\315\313\377\347\345\377\344"
"\343\377\315\311\377\352\350\377\320\316\377\343\341\377\311\305\377"
"\350\346\377\332\330\377\335\333\377\336\334\377\315\312\377\316\312"
"\377\314\307\377\311\306\377\350\346\377\350\346\377\325\322\377\331"
"\325\377\310\305\377\306\301\377\321\316\377\307\304\377\307\303\377"
"\344\342\377\331\327\377\357\357\377\373\373\377\352\351\377\377\377"
"\377\377\377\377\377\377\377\375\374\377\313\307\377\355\353\377\323"
"\321\377\354\352\377\377\377\377\367\364\377\252\253\251\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"qqp\377\377\377\361\360\377\377\377\377\377\377\377\377\377\377\374\373"
"\377\357\357\377\354\353\377\331\327\377\377\377\377\371\370\377\327"
"\323\377\350\346\377\376\377\377\372\370\377\325\326\345\323\322\326"
"\360\357\377\362\361\377\346\344\377\352\351\377\337\335\377\351\350"
"\377\325\322\377\354\353\377\333\331\377\362\362\377\350\347\377\361"
"\360\377\370\367\377\351\350\377\377\377\377\354\352\377\370\371\377"
"\374\374\377\353\351\377\367\367\377\350\347\377\337\335\377\352\350"
"\377\331\326\377\336\334\377\351\350\377\342\340\377\346\344\377\372"
"\372\377\362\362\377\352\350\377\361\360\377\373\372\377\377\377\377"
"\344\341\377\372\372\377\363\362\377\340\337\377\364\363\377\327\325"
"\377\354\352\377\354\354\377\342\341\377\372\373\377\343\340\377\377"
"\377\377\355\354\377\377\377\377\365\364\377\360\357\377\371\370\377"
"\341\337\377\365\364\377\332\330\377\363\363\377\333\330\377\363\362"
"\377\333\331\377\371\370\377\341\336\377\355\354\377\330\325\377\342"
"\337\377\355\354\377\346\345\377\377\377\377\377\377\377\377\377\377"
"\363\362\377\364\363\377\377\377\377\377\377\377\362\360\377\370\367"
"\377\371\370\377\362\362\377\323\321\377\356\355\377\365\363\377\370"
"\371\377\350\346\377\377\377\377\377\377\377\343\341\377\365\365\377"
"\353\352\377\316\314\377\357\357\377\372\372\377\347\347\377\377\377"
"\377\377\377\377\341\340\377\373\372\377\353\352\377\336\332\377\377"
"\377\377U_g\376\270\2405C7\367Z\377\377\377\377\354\363\377\377\377\377"
"\377\377\377\377\377\377\343\342\377\377\377\377\377\377\377\377\377"
"\377\342\341\377\364\365\377\351\350\377\351\346\377\354\352\377\377"
"\377\377\377\377\377\335\333\377\356\356\377\350\350\377\335\333\377"
"\377\377\377\377\377\377\343\342\377\372\371\377\330\326\377\363\362"
"\377\376\375\377\350\345\377\377\377\377\341\340\377\377\377\377\377"
"\377\377\377\377\377\345\344\377\371\371\377\351\350\377\367\366\377"
"\344\344\377\377\377\377\361\360\377\320\316\377\377\377\377\377\377"
"\377\341\337\377\361\361\377\344\343\377\364\363\377\377\377\377\337"
"\335\377\370\367\377\330\325\377\367\367\377\317\315\377\370\367\377"
"\355\352\377\346\344\377\356\356\377\350\347\377\347\345\377\352\352"
"\377\326\324\377\342\340\377\350\346\377\377\377\377\377\377\377\377"
"\377\377\376\377\377\351\346\377\357\356\377\377\377\377\327\324\377"
"\377\377\377\363\362\377\340\336\377\372\371\377\341\337\377\363\363"
"\377\340\336\377\375\376\377\365\364\377\333\330\377\370\370\377\337"
"\335\377\356\356\377\340\336\377\331\327\377\332\331\377\356\356\377"
"\371\371\377\373\372\377\343\341\377\313\310\377\320\315\377\337\336"
"\377\361\361\377\351\351\377\364\363\377\360\357\377\377\377\377\353"
"\352\377\372\370\377\377\377\377\377\377\377\377\377\377\346\345\377"
"\377\377\377\342\337\377\331\327\377\377\377\377\354\353\377\336\336"
"\333\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0UUT\377\377\377\353\352\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\340\336\377\362\361\377\343\340\377\367\366\377\363"
"\362\377\325\321\377\317\315\377\377\377\377\377\377\377\352\351\377"
"\272\271\302\372\371\377\331\327\377\345\344\377\331\327\377\353\351"
"\377\355\354\377\361\360\377\372\371\377\352\351\377\377\377\377\340"
"\336\377\356\355\377\326\323\377\337\336\377\351\350\377\343\341\377"
"\377\377\377\347\346\377\355\352\377\361\360\377\335\333\377\351\347"
"\377\343\341\377\324\322\377\354\354\377\352\350\377\350\346\377\367"
"\366\377\356\356\377\333\331\377\325\322\377\322\316\377\316\312\377"
"\365\364\377\357\357\377\360\357\377\377\377\377\341\340\377\370\367"
"\377\353\352\377\327\325\377\364\363\377\342\341\377\377\377\377\363"
"\362\377\355\354\377\364\363\377\327\326\377\360\357\377\332\330\377"
"\374\375\377\345\343\377\377\377\377\342\340\377\354\353\377\334\332"
"\377\361\360\377\343\342\377\372\371\377\340\337\377\344\343\377\333"
"\331\377\377\377\377\344\343\377\377\377\377\342\340\377\371\370\377"
"\361\360\377\363\362\377\330\325\377\366\367\377\367\366\377\375\375"
"\377\343\342\377\377\377\377\377\377\377\377\377\377\346\345\377\377"
"\377\377\377\377\377\355\354\377\374\374\377\377\377\377\377\377\377"
"\346\343\377\377\377\377\376\377\377\337\336\377\377\377\377\377\377"
"\377\333\331\377\347\346\377\360\356\377\346\343\377\377\377\377\337"
"\334\377\354\352\377\360\361\36424>\377\377\377\242B\0\0(5\300\13\377"
"\372\325\377\377\377\377\370\375\377\365\364\377\327\325\377\367\366"
"\377\371\370\377\377\377\377\346\343\377\377\377\377\377\377\377\361"
"\362\377\371\372\377\377\377\377\377\377\377\335\333\377\377\377\377"
"\377\377\377\332\331\377\350\347\377\366\367\377\345\345\377\367\366"
"\377\322\320\377\377\377\377\370\367\377\325\322\377\374\375\377\341"
"\336\377\365\365\377\361\361\377\373\372\377\342\337\377\377\377\377"
"\377\377\377\377\377\377\346\343\377\377\377\377\376\377\377\340\335"
"\377\375\375\377\354\353\377\343\341\377\360\360\377\366\365\377\342"
"\337\377\362\362\377\337\335\377\370\371\377\326\323\377\371\371\377"
"\327\325\377\375\376\377\333\331\377\370\370\377\333\330\377\333\331"
"\377\354\352\377\331\330\377\337\334\377\330\326\377\343\340\377\345"
"\343\377\367\367\377\362\361\377\364\365\377\345\343\377\376\377\377"
"\377\377\377\377\377\377\335\333\377\364\363\377\362\361\377\337\335"
"\377\367\366\377\337\334\377\354\352\377\345\342\377\355\353\377\366"
"\366\377\350\347\377\353\352\377\344\342\377\343\342\377\325\321\377"
"\324\320\377\315\312\377\300\274\377\270\263\377\336\334\377\360\357"
"\377\272\265\377\267\264\377\327\323\377\345\343\377\372\373\377\377"
"\377\377\377\377\377\347\345\377\376\376\377\377\377\377\377\377\377"
"\377\377\377\343\340\377\377\377\377\366\365\377\366\366\377\377\377"
"\377\354\353\377\365\365\365\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0""665\377\377\377\361\360\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\341\337\377\377\377\377\377\377"
"\377\377\376\377\362\362\377\336\335\377\313\307\377\346\345\377\377"
"\377\377\356\355\377\266\265\324\347\346\364\324\322\377\357\356\377"
"\336\334\377\377\377\377\347\345\377\374\375\377\347\346\377\351\350"
"\377\336\334\377\334\332\377\361\361\377\351\346\377\377\377\377\344"
"\343\377\345\344\377\336\334\377\325\322\377\352\350\377\336\335\377"
"\352\351\377\355\354\377\316\312\377\340\336\377\347\345\377\333\331"
"\377\356\354\377\343\342\377\322\320\377\343\341\377\366\366\377\354"
"\354\377\346\344\377\372\373\377\373\372\377\335\333\377\377\377\377"
"\373\373\377\345\344\377\356\355\377\323\320\377\373\374\377\374\374"
"\377\351\350\377\367\367\377\320\315\377\363\362\377\351\350\377\372"
"\371\377\362\361\377\340\337\377\363\362\377\336\334\377\377\377\377"
"\333\331\377\361\360\377\330\326\377\377\376\377\335\333\377\355\352"
"\377\331\326\377\377\377\377\342\341\377\365\364\377\326\323\377\361"
"\356\377\365\364\377\377\377\377\377\377\377\373\372\377\336\335\377"
"\375\376\377\377\377\377\374\373\377\315\312\377\356\355\377\374\374"
"\377\365\365\377\337\336\377\347\346\377\366\365\377\341\337\377\370"
"\370\377\360\357\377\341\340\377\360\357\377\377\377\377\362\361\377"
"\341\340\377\375\376\377\377\376\377\351\350\377\377\377\377\356\355"
"\377\355\354\377\377\377\377\331\325\377\360\357\374\330\331\326PQ[\377"
"\377\377\377nt\77\257,\13\24T\216\0\376\377\257\377\377\377\377\373\377"
"\377\340\336\377\377\377\377\347\346\377\371\371\377\334\332\377\353"
"\352\377\371\371\377\351\346\377\346\344\377\363\363\377\377\377\377"
"\331\327\377\372\372\377\377\377\377\345\344\377\377\377\377\372\371"
"\377\344\343\377\362\362\377\341\336\377\367\366\377\360\360\377\341"
"\336\377\365\364\377\335\332\377\377\377\377\370\367\377\376\377\377"
"\324\321\377\367\366\377\352\351\377\374\374\377\323\320\377\373\372"
"\377\371\370\377\347\344\377\374\373\377\377\377\377\343\340\377\360"
"\357\377\374\373\377\325\323\377\377\376\377\341\337\377\363\362\377"
"\354\353\377\340\336\377\366\365\377\343\341\377\353\351\377\351\347"
"\377\324\320\377\365\364\377\336\334\377\340\336\377\345\343\377\341"
"\337\377\330\324\377\342\340\377\377\377\377\377\377\377\377\377\377"
"\373\373\377\330\325\377\347\345\377\365\364\377\373\374\377\352\350"
"\377\355\354\377\360\360\377\345\344\377\360\357\377\350\347\377\341"
"\337\377\335\333\377\352\352\377\336\335\377\367\366\377\345\343\377"
"\363\363\377\335\333\377\352\350\377\354\352\377\340\336\377\322\317"
"\377\320\316\377\355\353\377\377\376\377\377\377\377\356\356\377\351"
"\350\377\377\376\377\377\377\377\377\377\377\351\350\377\377\377\377"
"\377\377\377\357\356\377\372\373\377\342\341\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\352\351\377\377\377\377\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,,+\377\377\377\373\372"
"\377\371\370\377\375\375\377\346\344\377\370\370\377\357\356\377\363"
"\362\377\377\377\377\377\377\377\334\331\377\323\320\377\375\374\377"
"\367\366\377\377\377\377\365\364\377\355\353\377\234\232\262\350\346"
"\377\364\363\377\355\353\377\373\373\377\343\341\377\347\347\377\325"
"\322\377\375\375\377\346\346\377\374\375\377\340\336\377\341\337\377"
"\333\331\377\336\333\377\372\372\377\342\337\377\362\361\377\334\331"
"\377\323\320\377\362\361\377\347\345\377\363\363\377\367\366\377\331"
"\330\377\342\342\377\346\344\377\336\334\377\352\351\377\351\350\377"
"\322\317\377\317\314\377\352\351\377\345\344\377\376\376\377\354\353"
"\377\354\354\377\377\377\377\335\332\377\371\370\377\372\371\377\346"
"\344\377\377\377\377\324\321\377\360\357\377\375\374\377\347\346\377"
"\370\367\377\322\320\377\377\377\377\345\344\377\367\366\377\340\336"
"\377\357\356\377\371\370\377\340\336\377\354\354\377\344\341\377\373"
"\372\377\323\321\377\370\367\377\351\350\377\355\354\377\337\335\377"
"\354\351\377\371\370\377\327\325\377\357\356\377\365\366\377\377\377"
"\377\354\353\377\353\352\377\375\375\377\377\377\377\375\374\377\356"
"\356\377\377\377\377\377\377\377\351\347\377\377\377\377\377\377\377"
"\375\374\377\332\330\377\376\376\377\373\374\377\322\317\377\371\370"
"\377\375\375\377\341\337\377\351\350\377\375\375\377\350\346\377\344"
"\341\377\377\377\377\345\344\377\364\362\377\377\377\377\341\337\377"
"\277\276\277\377\377\377<9X\375\377\377\375\327\354\327WIO\314g-,\\u"
"\25\377\377r\377\377\377\377\336\346\377\377\377\377\377\377\377\377"
"\377\377\345\344\377\377\377\377\377\377\377\354\353\377\355\354\377"
"\360\360\377\372\371\377\326\324\377\370\366\377\371\370\377\325\323"
"\377\377\377\377\374\372\377\337\336\377\376\375\377\365\365\377\332"
"\330\377\377\377\377\327\324\377\377\376\377\342\340\377\362\361\377"
"\371\367\377\377\377\377\377\377\377\352\350\377\377\377\377\377\377"
"\377\350\346\377\344\343\377\373\372\377\357\357\377\327\325\377\374"
"\374\377\374\374\377\343\340\377\373\374\377\347\346\377\342\340\377"
"\373\372\377\335\333\377\364\364\377\340\335\377\362\361\377\346\344"
"\377\346\345\377\336\334\377\360\357\377\331\326\377\347\344\377\333"
"\331\377\334\332\377\335\333\377\335\333\377\330\325\377\326\323\377"
"\354\351\377\361\360\377\370\370\377\377\377\377\365\365\377\354\353"
"\377\357\356\377\361\360\377\365\364\377\355\352\377\341\336\377\365"
"\366\377\352\350\377\343\341\377\352\350\377\337\334\377\337\337\377"
"\351\350\377\317\314\377\331\325\377\346\345\377\362\361\377\351\350"
"\377\322\320\377\335\333\377\330\326\377\317\314\377\336\334\377\356"
"\354\377\331\327\377\345\343\377\377\377\377\377\377\377\377\377\377"
"\342\337\377\377\377\377\377\377\377\337\336\377\365\364\377\337\334"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\344\342\377\377"
"\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\25\25"
"\25\377\377\377\377\377\377\354\354\377\377\377\377\367\366\377\322\320"
"\377\377\376\377\344\341\377\377\377\377\377\377\377\337\335\377\325"
"\323\377\326\323\377\305\301\377\371\367\377\377\377\377\350\346\377"
"\272\270\335\324\323\333\354\352\377\377\377\377\330\326\377\343\343"
"\377\350\347\377\370\367\377\355\355\377\341\337\377\344\343\377\327"
"\324\377\364\364\377\340\336\377\372\371\377\327\324\377\336\335\377"
"\360\357\377\346\345\377\367\366\377\326\324\377\352\347\377\364\363"
"\377\324\321\377\330\325\377\347\345\377\342\341\377\346\344\377\340"
"\340\377\340\335\377\372\371\377\351\347\377\321\316\377\340\336\377"
"\373\373\377\371\371\377\325\322\377\365\364\377\377\377\377\342\341"
"\377\377\377\377\345\344\377\357\356\377\365\365\377\337\335\377\377"
"\377\377\327\324\377\366\365\377\374\375\377\336\334\377\354\353\377"
"\342\337\377\377\377\377\325\323\377\366\365\377\346\345\377\363\362"
"\377\334\332\377\371\372\377\337\336\377\362\361\377\353\352\377\352"
"\351\377\333\331\377\377\377\377\334\332\377\352\350\377\336\334\377"
"\377\377\377\377\377\377\377\376\377\335\333\377\363\364\377\370\370"
"\377\355\354\377\347\346\377\353\352\377\350\346\377\376\377\377\335"
"\332\377\354\353\377\373\372\377\377\377\377\337\335\377\377\377\377"
"\377\377\377\345\344\377\377\377\377\374\375\377\345\344\377\356\355"
"\377\361\357\377\355\354\377\346\345\377\361\360\377\354\352\377\350"
"\346\377\377\377\377\252\251\302\373\373\373\377\377\377GFO\377\377\377"
"\377\377\377\377IOv\341\201\254\317\263TVcqK\377\376P\377\351\310\376"
"\360\372\377\370\375\377\353\352\377\332\330\377\362\361\377\367\370"
"\377\375\375\377\343\340\377\377\377\377\377\377\377\337\336\377\367"
"\367\377\365\364\377\341\337\377\351\350\377\375\375\377\330\326\377"
"\375\376\377\377\377\377\327\324\377\373\374\377\352\352\377\337\335"
"\377\374\374\377\340\337\377\372\371\377\365\363\377\364\363\377\325"
"\322\377\362\361\377\370\367\377\377\377\377\343\342\377\377\377\377"
"\372\371\377\342\340\377\346\343\377\370\367\377\352\350\377\354\352"
"\377\375\374\377\341\337\377\350\346\377\365\365\377\340\335\377\367"
"\370\377\337\334\377\353\352\377\340\337\377\350\347\377\344\342\377"
"\343\341\377\340\337\377\344\342\377\335\333\377\337\335\377\326\322"
"\377\335\333\377\322\320\377\321\315\377\344\342\377\375\376\377\377"
"\377\377\357\356\377\360\357\377\363\362\377\357\356\377\351\346\377"
"\355\354\377\377\377\377\351\350\377\341\337\377\367\366\377\340\336"
"\377\360\357\377\325\323\377\333\331\377\360\360\377\335\333\377\337"
"\335\377\363\362\377\340\337\377\357\356\377\344\344\377\345\343\377"
"\325\323\377\316\315\377\303\300\377\336\334\377\350\346\377\377\377"
"\377\377\377\377\377\377\377\345\342\377\377\377\377\377\377\377\314"
"\312\377\355\354\377\341\337\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\345\344\377\377\377\377+++\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\1\1\1\373\373\372\377\377\377\340\336\377\377\377\377"
"\362\360\377\354\353\377\357\357\377\326\322\377\377\377\377\377\377"
"\377\376\376\377\365\364\377\331\327\377\363\362\377\333\330\377\362"
"\361\377\347\345\377\355\353\377\245\245\255\355\354\377\373\373\377"
"\327\325\377\367\366\377\342\342\377\377\377\377\325\322\377\351\347"
"\377\316\314\377\365\364\377\347\346\377\346\344\377\343\341\377\343"
"\342\377\375\376\377\326\322\377\365\364\377\356\355\377\335\333\377"
"\335\333\377\322\317\377\366\367\377\351\347\377\327\323\377\374\374"
"\377\344\342\377\327\325\377\370\367\377\324\321\377\316\314\377\353"
"\351\377\346\344\377\327\325\377\377\377\377\367\366\377\324\321\377"
"\376\375\377\355\354\377\344\343\377\362\361\377\344\342\377\377\377"
"\377\365\363\377\341\340\377\357\356\377\342\337\377\371\370\377\335"
"\333\377\372\371\377\361\360\377\335\333\377\377\377\377\330\326\377"
"\361\361\377\343\341\377\363\362\377\331\326\377\377\376\377\325\321"
"\377\377\377\377\331\327\377\372\373\377\342\340\377\357\355\377\321"
"\315\377\374\375\377\340\336\377\362\361\377\354\354\377\377\377\377"
"\343\340\377\377\377\377\377\377\377\377\377\377\352\351\377\377\377"
"\377\377\377\377\377\377\377\336\333\377\362\361\377\367\367\377\360"
"\357\377\334\333\377\357\355\377\374\373\377\333\331\377\361\360\377"
"\377\377\377\365\365\377\360\357\377\377\377\377\371\370\377\333\330"
"\377\373\374\377\353\351\377\352\350\377\300\277\306\326\323\367\364"
"\363\377\377\377\377IHV\375\374\377\373\377\377\370\234\260\373\231\240"
"G\325`\321\312\311gkuoa\377\361e\377\377\256\373\377\377\377\377\377"
"\377\352\352\377\364\363\377\365\365\377\361\360\377\327\325\377\367"
"\367\377\357\355\377\370\366\377\352\351\377\377\377\377\375\375\377"
"\332\327\377\366\364\377\362\361\377\337\335\377\364\364\377\362\363"
"\377\352\347\377\371\371\377\331\325\377\366\365\377\352\350\377\356"
"\355\377\377\377\377\377\377\377\377\377\377\343\342\377\364\364\377"
"\364\363\377\356\355\377\321\316\377\377\377\377\377\377\377\352\351"
"\377\353\352\377\364\363\377\350\347\377\353\352\377\377\377\377\340"
"\337\377\345\343\377\366\365\377\340\337\377\361\361\377\345\343\377"
"\344\342\377\351\350\377\340\336\377\350\350\377\336\334\377\341\337"
"\377\343\341\377\342\337\377\343\341\377\333\331\377\335\333\377\334"
"\332\377\320\315\377\321\316\377\315\312\377\356\355\377\377\377\377"
"\377\377\377\361\361\377\370\367\377\365\365\377\357\356\377\342\340"
"\377\363\362\377\336\334\377\374\374\377\345\343\377\361\357\377\347"
"\346\377\367\367\377\331\326\377\351\347\377\356\355\377\372\372\377"
"\353\350\377\340\340\377\355\353\377\361\361\377\335\333\377\373\373"
"\377\347\345\377\341\340\377\377\377\377\377\377\377\377\377\377\342"
"\340\377\377\377\377\377\377\377\377\377\377\377\377\377\325\323\377"
"\366\367\377\361\361\377\372\372\377\377\377\377\342\341\377\377\377"
"\377III\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\364\364\364\377\377"
"\377\352\347\377\372\371\377\377\377\377\377\377\377\377\377\377\353"
"\352\377\360\357\377\343\342\377\343\341\377\361\361\377\326\324\377"
"\347\345\377\333\331\377\343\342\377\366\367\377\353\352\377\346\343"
"\377\251\252\251\356\355\377\356\356\377\337\336\377\374\375\377\332"
"\330\377\352\350\377\340\337\377\343\342\377\367\367\377\346\344\377"
"\351\351\377\345\342\377\377\377\377\333\330\377\352\351\377\364\363"
"\377\315\311\377\350\346\377\343\341\377\360\356\377\343\343\377\346"
"\345\377\364\363\377\337\334\377\346\344\377\333\331\377\333\330\377"
"\347\347\377\351\347\377\351\347\377\341\337\377\364\362\377\324\322"
"\377\370\370\377\357\356\377\335\333\377\377\377\377\334\331\377\361"
"\360\377\377\377\377\327\324\377\364\362\377\344\341\377\377\377\377"
"\375\375\377\324\322\377\377\377\377\333\331\377\363\362\377\357\356"
"\377\345\344\377\373\374\377\332\330\377\364\364\377\337\335\377\363"
"\362\377\337\334\377\371\370\377\330\326\377\377\377\377\324\321\377"
"\377\377\377\323\321\377\360\357\377\336\333\377\365\364\377\340\337"
"\377\377\377\377\377\377\377\377\377\377\327\324\377\366\366\377\361"
"\357\377\363\364\377\336\333\377\356\355\377\362\362\377\366\365\377"
"\344\343\377\377\377\377\377\377\377\377\377\377\343\340\377\377\377"
"\377\360\357\377\343\342\377\350\345\377\374\374\377\354\353\377\336"
"\335\377\362\361\377\377\377\377\341\337\377\377\377\377\367\365\377"
"\250\247\300\352\351\370\363\362\377\347\345\377\377\377\377\205\203"
"\223\316\316\311\377\377\377\377\377\377\377:E\213\327\276\252\362\254"
"\260\251\247\221\226\221`X\377\303n\377\377n\372\366\373\377\360\370"
"\377\343\342\377\377\377\377\377\377\377\371\370\377\344\342\377\367"
"\366\377\362\361\377\325\323\377\363\363\377\376\377\377\353\352\377"
"\370\367\377\365\364\377\336\333\377\352\351\377\366\365\377\341\336"
"\377\371\370\377\363\362\377\330\326\377\367\366\377\344\342\377\353"
"\352\377\361\360\377\363\362\377\356\355\377\344\342\377\377\377\377"
"\377\377\377\361\360\377\331\327\377\364\362\377\367\367\377\362\361"
"\377\353\352\377\362\361\377\353\352\377\334\332\377\377\377\377\346"
"\345\377\334\332\377\370\370\377\351\346\377\343\341\377\364\363\377"
"\340\337\377\347\345\377\346\344\377\347\345\377\346\344\377\344\342"
"\377\334\332\377\336\332\377\330\326\377\342\340\377\324\321\377\333"
"\330\377\323\320\377\327\325\377\311\306\377\314\310\377\313\311\377"
"\323\317\377\347\344\377\367\366\377\330\326\377\370\367\377\377\377"
"\377\345\344\377\377\377\377\346\345\377\347\346\377\362\361\377\336"
"\334\377\357\357\377\344\343\377\337\334\377\342\340\377\364\364\377"
"\377\377\377\352\350\377\326\324\377\373\372\377\352\351\377\352\350"
"\377\361\360\377\377\377\377\377\377\377\377\377\377\342\340\377\377"
"\377\377\377\377\377\377\377\377\376\375\377\336\334\377\373\372\377"
"\341\337\377\375\374\377\377\377\377\341\340\377\377\377\377|||\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\335\335\335\377\377\377\377\377\377"
"\342\341\377\377\377\377\377\377\377\377\377\377\377\377\377\347\346"
"\377\371\370\377\342\341\377\375\374\377\367\366\377\344\343\377\337"
"\335\377\342\337\377\371\371\377\342\341\377\343\341\377\356\355\377"
"\221\220\255\365\364\377\310\304\377\375\376\377\333\330\377\360\356"
"\377\320\315\377\373\372\377\336\334\377\362\362\377\336\334\377\373"
"\373\377\325\323\377\350\346\377\362\361\377\316\312\377\354\354\377"
"\343\341\377\354\352\377\351\351\377\344\341\377\350\350\377\344\342"
"\377\335\333\377\335\333\377\342\340\377\352\352\377\361\357\377\331"
"\326\377\347\345\377\334\332\377\326\323\377\335\333\377\376\376\377"
"\377\377\377\344\343\377\364\364\377\367\367\377\332\330\377\366\367"
"\377\371\370\377\331\326\377\377\377\377\330\326\377\364\363\377\374"
"\373\377\343\342\377\363\362\377\336\333\377\367\366\377\341\340\377"
"\362\361\377\357\356\377\343\341\377\357\357\377\340\336\377\364\364"
"\377\335\333\377\366\365\377\340\335\377\362\360\377\334\331\377\366"
"\365\377\320\314\377\377\377\377\326\323\377\377\377\377\321\316\377"
"\371\371\377\362\361\377\367\370\377\345\344\377\377\377\377\377\377"
"\377\377\377\377\357\357\377\367\366\377\377\377\377\361\360\377\337"
"\336\377\354\352\377\370\367\377\362\361\377\327\324\377\374\373\377"
"\377\377\377\376\376\377\347\344\377\377\377\377\362\361\377\327\325"
"\377\373\372\377\360\357\377\336\334\377\362\361\376\311\311\303\332"
"\327\373\376\375\377\371\370\377\325\323\377\372\371\377\364\362\376"
"FE^\352\350\377\357\376\377\375gp\364\275\346.\267R\377\377\377\211\205"
"\202\273\277\260|t\377\327\271\377\377c\372\377\344\376\331\342\377\353"
"\355\377\357\357\377\367\366\377\341\340\377\377\377\377\377\377\377"
"\367\366\377\326\323\377\367\366\377\366\365\377\331\326\377\377\377"
"\377\376\376\377\327\324\377\360\360\377\366\365\377\336\333\377\374"
"\374\377\353\352\377\333\331\377\370\370\377\343\341\377\371\372\377"
"\377\377\377\377\377\377\360\357\377\325\323\377\356\355\377\377\377"
"\377\377\377\377\344\343\377\353\352\377\361\361\377\360\357\377\351"
"\350\377\364\363\377\360\357\377\340\337\377\364\363\377\365\364\377"
"\341\336\377\353\352\377\360\357\377\337\335\377\352\351\377\346\345"
"\377\346\345\377\341\337\377\345\343\377\342\342\377\335\333\377\340"
"\336\377\341\337\377\331\325\377\333\331\377\325\321\377\326\323\377"
"\325\322\377\327\326\377\332\330\377\321\316\377\325\322\377\306\303"
"\377\306\302\377\344\342\377\377\377\377\377\377\377\343\342\377\377"
"\377\377\377\377\377\344\343\377\376\377\377\337\335\377\355\353\377"
"\354\352\377\345\342\377\354\352\377\347\347\377\353\352\377\350\347"
"\377\377\377\377\377\377\377\350\350\377\347\346\377\371\370\377\372"
"\371\377\377\377\377\353\352\377\372\372\377\377\377\377\377\377\377"
"\377\377\377\366\365\377\361\360\377\350\346\377\301\273\377\377\377"
"\377\377\377\377\344\342\377\377\377\377\232\232\232\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\306\306\306\377\377\377\377\377\377\342\340\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\344\343\377\364\364\377"
"\365\364\377\375\374\377\341\337\377\325\323\377\322\320\377\314\310"
"\377\377\377\377\377\377\377\351\350\377\330\325\377\373\372\377\225"
"\224\261\377\377\377\341\340\377\361\360\377\332\330\377\360\360\377"
"\344\343\377\367\366\377\335\333\377\361\360\377\352\351\377\326\324"
"\377\377\377\377\314\311\377\365\365\377\346\344\377\346\344\377\362"
"\361\377\332\330\377\361\357\377\333\331\377\325\322\377\357\355\377"
"\330\326\377\377\377\377\330\326\377\330\326\377\361\357\377\324\320"
"\377\346\346\377\355\354\377\340\336\377\327\325\377\377\377\377\363"
"\362\377\336\335\377\377\377\377\377\376\377\331\326\377\366\365\377"
"\353\350\377\350\345\377\375\374\377\330\325\377\376\377\377\346\344"
"\377\354\351\377\377\377\377\325\321\377\377\377\377\323\321\377\376"
"\375\377\353\352\377\350\347\377\357\355\377\340\336\377\366\365\377"
"\335\333\377\364\364\377\335\333\377\371\372\377\325\323\377\374\373"
"\377\327\324\377\374\374\377\332\327\377\366\366\377\336\333\377\377"
"\377\377\377\377\377\375\375\377\335\332\377\364\363\377\352\351\377"
"\370\370\377\352\350\377\340\336\377\374\373\377\377\377\377\372\371"
"\377\356\355\377\377\377\377\375\376\377\327\324\377\361\360\377\366"
"\365\377\363\362\377\325\323\377\377\377\377\377\377\377\343\340\377"
"\376\376\377\367\366\377\314\313\352\307\307\320\372\372\377\342\341"
"\377\370\367\377\377\377\377\330\325\377\362\361\377\377\377\377WVg\350"
"\347\362\377\377\377\377\362\357\377]]\306\350\367b\322e\377\377\377"
"`^`\306\310\314j_\377\270\270\377\377|\372\377\260\373\341\355\377\377"
"\377\377\371\370\377\361\360\377\321\321\377\364\367\377\376\377\377"
"\366\365\377\352\351\377\366\365\377\362\361\377\331\326\377\371\371"
"\377\377\377\377\331\327\377\357\356\377\366\365\377\341\337\377\366"
"\367\377\353\352\377\333\331\377\366\367\377\343\340\377\336\335\377"
"\362\362\377\377\377\377\377\377\377\352\351\377\346\345\377\360\360"
"\377\365\366\377\363\362\377\353\353\377\360\357\377\362\361\377\354"
"\353\377\355\354\377\355\354\377\360\357\377\353\352\377\351\350\377"
"\357\356\377\360\357\377\335\333\377\356\355\377\352\350\377\335\333"
"\377\356\354\377\333\331\377\347\345\377\342\340\377\333\331\377\353"
"\351\377\340\335\377\325\323\377\344\342\377\334\330\377\334\332\377"
"\316\311\377\340\337\377\326\323\377\311\306\377\341\336\377\326\324"
"\377\363\362\377\371\370\377\346\345\377\324\322\377\370\367\377\361"
"\362\377\350\347\377\362\362\377\377\377\377\344\343\377\341\337\377"
"\364\363\377\364\363\377\332\330\377\352\350\377\341\341\377\325\323"
"\377\362\361\377\336\333\377\346\345\377\347\346\377\345\344\377\377"
"\377\377\337\336\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\337\334\377\371\371\377\377\377\377\377\377\377\377\377\377\360\360"
"\377\364\364\377\377\377\377\314\314\314\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\266"
"\266\266\377\377\377\377\377\377\374\374\377\346\344\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\337\335\377\377\377\377\377\377"
"\377\364\363\377\341\340\377\330\325\377\355\353\377\361\360\377\377"
"\377\377\351\347\377\346\345\377\366\365\377\362\360\377\241\240\264"
"\361\360\377\351\350\377\342\340\377\344\343\377\352\351\377\356\355"
"\377\343\340\377\365\364\377\323\317\377\373\373\377\324\322\377\353"
"\351\377\342\340\377\352\352\377\355\355\377\326\323\377\364\364\377"
"\330\326\377\343\341\377\347\346\377\334\332\377\376\377\377\315\312"
"\377\360\357\377\327\325\377\335\333\377\361\360\377\346\344\377\321"
"\316\377\367\366\377\326\324\377\335\333\377\364\364\377\373\373\377"
"\326\323\377\377\377\377\366\365\377\341\340\377\377\377\377\340\337"
"\377\364\363\377\366\367\377\335\332\377\362\361\377\350\347\377\354"
"\353\377\374\373\377\335\333\377\364\364\377\337\335\377\365\364\377"
"\356\355\377\346\345\377\365\364\377\337\334\377\363\362\377\334\331"
"\377\371\370\377\330\326\377\375\375\377\323\321\377\365\365\377\333"
"\331\377\370\367\377\331\325\377\367\370\377\333\330\377\357\357\377"
"\372\370\377\367\367\377\370\367\377\361\360\377\377\377\377\377\377"
"\377\377\377\377\334\332\377\360\357\377\366\365\377\366\365\377\321"
"\317\377\375\375\377\373\373\377\375\376\377\354\353\377\377\376\377"
"\374\373\377\321\317\377\362\361\377\364\363\377\366\365\377\351\350"
"\377\334\334\327\326\326\331\327\325\377\372\373\377\367\366\377\331"
"\327\377\373\374\377\376\375\377\334\332\377\376\375\377\343\342\363"
"Z[]\377\377\377\374\377\377\372;B\377\367\377S\266|\314\356\324\377\377"
"\377XYN\340\337\344\211~\377\253\256\377\376\247\375\373n\372\332\344"
"\377\376\377\377\377\377\377\372\377\377\350\200\374\363\362\377\362"
"\363\377\353\352\377\357\356\377\377\377\377\362\361\377\324\322\377"
"\364\363\377\377\377\377\342\340\377\353\352\377\366\365\377\347\346"
"\377\354\353\377\363\362\377\340\337\377\363\362\377\353\351\377\345"
"\343\377\372\371\377\356\355\377\362\362\377\364\362\377\355\353\377"
"\371\370\377\357\356\377\364\363\377\360\357\377\355\354\377\355\355"
"\377\362\362\377\363\362\377\350\347\377\345\342\377\377\377\377\346"
"\344\377\341\336\377\365\364\377\346\343\377\354\352\377\342\342\377"
"\346\344\377\344\342\377\354\354\377\343\341\377\342\340\377\326\324"
"\377\346\344\377\353\350\377\333\331\377\326\323\377\332\331\377\352"
"\352\377\345\343\377\320\315\377\317\314\377\322\317\377\316\314\377"
"\365\364\377\377\377\377\377\377\377\377\377\377\351\346\377\375\374"
"\377\362\361\377\340\337\377\337\335\377\377\377\377\377\377\377\335"
"\333\377\337\336\377\377\377\377\373\373\377\325\323\377\352\350\377"
"\337\335\377\355\354\377\356\354\377\372\372\377\371\367\377\377\377"
"\377\341\337\377\377\377\377\362\363\377\320\315\377\370\371\377\336"
"\333\377\377\377\377\377\377\377\377\377\377\377\377\377\342\341\377"
"\377\377\377\377\377\377\353\353\353\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\226\226\226"
"\377\377\377\377\377\377\377\377\377\341\340\377\377\377\377\377\376"
"\377\323\320\377\356\355\377\354\352\377\357\356\377\377\377\377\377"
"\377\377\357\356\377\346\345\377\344\342\377\377\377\377\377\377\377"
"\377\377\377\345\344\377\342\337\377\377\377\377\335\331\377\270\271"
"\274\314\312\363\376\375\377\323\321\377\377\377\377\321\317\377\377"
"\377\377\325\323\377\360\360\377\332\330\377\360\357\377\342\340\377"
"\352\352\377\355\355\377\336\334\377\355\353\377\335\332\377\356\356"
"\377\342\337\377\344\341\377\361\360\377\314\310\377\373\372\377\323"
"\320\377\346\344\377\363\363\377\332\330\377\337\335\377\345\343\377"
"\331\326\377\347\345\377\352\350\377\323\321\377\365\366\377\373\373"
"\377\323\321\377\376\376\377\353\350\377\345\342\377\377\377\377\333"
"\330\377\374\373\377\363\363\377\332\327\377\373\373\377\341\337\377"
"\362\362\377\373\374\377\330\325\377\373\373\377\340\337\377\355\354"
"\377\372\372\377\333\330\377\373\372\377\331\326\377\370\367\377\331"
"\326\377\372\372\377\327\325\377\371\372\377\332\327\377\364\364\377"
"\341\337\377\371\370\377\327\324\377\365\364\377\326\324\377\377\377"
"\377\377\377\377\371\371\377\372\371\377\325\323\377\361\360\377\362"
"\361\377\371\370\377\333\331\377\377\377\377\377\377\377\377\377\377"
"\333\332\377\370\371\377\363\363\377\363\362\377\322\320\377\375\374"
"\377\377\377\377\376\376\377\344\341\377\374\375\377\342\341\354\250"
"\247\312\355\354\371\377\377\377\356\353\377\360\357\377\366\365\377"
"\343\341\377\345\345\377\373\372\377\351\350\377\362\361\377\377\377"
"\377\217\216\244\232\233\247\377\377\377\377\301\273\377\205\220\327"
"\337\377*\256\77\377\377\377\367\362\377HID\336\336\367\241\230\377\233"
"\234\377\377\373\376\377\33\367\342l\374\3776\371\367\316\376\373\371"
"\377\346\350\377\374\373\377\364\363\377\347\345\377\340\337\377\377"
"\377\377\373\373\377\334\331\377\346\344\377\377\377\377\354\354\377"
"\337\335\377\365\364\377\364\363\377\342\341\377\356\355\377\352\351"
"\377\346\343\377\356\354\377\344\343\377\347\346\377\377\377\377\377"
"\377\377\355\354\377\345\343\377\354\353\377\371\370\377\361\360\377"
"\360\357\377\363\362\377\354\353\377\337\336\377\372\372\377\375\376"
"\377\332\331\377\347\346\377\366\365\377\345\344\377\364\363\377\341"
"\341\377\353\352\377\346\344\377\353\353\377\341\336\377\352\352\377"
"\337\335\377\356\354\377\341\337\377\312\310\377\361\360\377\347\345"
"\377\331\327\377\330\326\377\344\342\377\335\334\377\330\325\377\314"
"\310\377\324\322\377\342\341\377\357\355\377\363\361\377\364\363\377"
"\341\336\377\351\350\377\377\377\377\377\377\377\373\374\377\335\333"
"\377\340\336\377\377\377\377\377\377\377\355\354\377\326\323\377\361"
"\360\377\374\373\377\342\340\377\342\340\377\377\377\377\377\377\377"
"\377\377\377\347\346\377\375\375\377\377\377\377\346\343\377\353\352"
"\377\370\367\377\344\343\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\341\340\377\377\377\377\377\377\377\377\377\377\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0|||\377\377\377\377\377\377\377\377\377\377\377\377\341\336\377\377"
"\377\377\376\375\377\345\342\377\377\377\377\340\337\377\377\377\377"
"\377\377\377\377\377\377\343\340\377\333\330\377\377\377\377\377\377"
"\377\377\377\377\376\375\377\351\346\377\342\337\377\374\375\377\334"
"\331\377\364\364\376\240\236\267\377\376\377\337\336\377\365\364\377"
"\336\335\377\367\370\377\320\314\377\367\367\377\334\332\377\363\362"
"\377\341\337\377\345\343\377\355\354\377\320\316\377\365\364\377\331"
"\327\377\356\356\377\352\351\377\324\321\377\373\372\377\321\317\377"
"\373\374\377\336\334\377\335\333\377\356\356\377\322\320\377\350\346"
"\377\356\354\377\326\322\377\335\332\377\350\347\377\341\336\377\377"
"\377\377\365\364\377\331\327\377\374\374\377\353\352\377\336\334\377"
"\367\370\377\343\340\377\372\373\377\367\366\377\326\324\377\377\376"
"\377\347\344\377\341\337\377\377\377\377\330\324\377\372\373\377\341"
"\337\377\352\351\377\374\373\377\324\321\377\377\377\377\321\316\377"
"\371\370\377\336\334\377\365\364\377\343\340\377\350\346\377\356\355"
"\377\347\346\377\351\350\377\340\340\377\350\347\377\340\336\377\357"
"\356\377\342\341\377\360\356\377\372\372\377\377\377\377\341\341\377"
"\377\377\377\377\377\377\377\377\377\350\347\377\343\341\377\360\357"
"\377\362\362\377\367\370\377\346\345\377\377\377\377\377\377\377\346"
"\344\377\341\340\377\363\362\377\370\367\377\334\334\377\325\326\323"
"\344\344\336\362\361\377\340\335\377\363\363\377\364\364\377\334\332"
"\377\377\377\377\370\367\377\330\326\377\362\361\377\367\367\377\337"
"\336\377\372\372\377\377\377\377baq\264\265\324\355\374\377\371+4\356"
"\370\377\251\335\271\202\324\212\377\377\377\366\370\362HM\77\353\361"
"\377\241k\377\202x\377\377\254\374\377\212\374\354\231\375\372\377\377"
"\364\366\377\355\354\377\336\333\377\374\375\377\377\377\377\355\354"
"\377\326\324\377\365\364\377\377\377\377\344\343\377\331\327\377\367"
"\367\377\377\377\377\331\325\377\337\334\377\377\377\377\340\335\377"
"\333\333\377\375\375\377\340\337\377\336\334\377\367\366\377\337\334"
"\377\341\337\377\375\375\377\377\377\377\371\370\377\346\344\377\352"
"\351\377\364\363\377\354\353\377\361\360\377\377\377\377\354\353\377"
"\331\327\377\362\363\377\366\366\377\352\350\377\367\366\377\336\334"
"\377\360\357\377\356\354\377\336\334\377\364\364\377\345\343\377\354"
"\352\377\353\351\377\345\342\377\360\355\377\323\321\377\353\352\377"
"\364\364\377\330\326\377\335\332\377\342\340\377\342\341\377\334\331"
"\377\342\340\377\325\322\377\326\322\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\364\362\377\351\350\377\361\360\377\354\352\377"
"\376\377\377\370\367\377\360\357\377\346\345\377\346\344\377\377\377"
"\377\377\377\377\370\371\377\347\347\377\352\351\377\377\377\377\377"
"\377\377\377\377\377\341\340\377\377\377\377\377\377\377\341\337\377"
"\352\351\377\344\342\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\366\364\377\356\355\377\377\377\377\377\377\377\377\377\377\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0ggg\377\377\377\377\377\377\377\377\377\377\377\377\344\343\377\373"
"\373\377\377\377\377\336\333\377\346\345\377\354\353\377\337\336\377"
"\356\355\377\351\350\377\363\362\377\312\306\377\331\326\377\377\377"
"\377\377\377\377\377\377\377\341\340\377\350\347\377\360\357\377\361"
"\361\377\341\336\377\362\361\377\224\223\256\362\361\374\341\337\377"
"\371\372\377\334\331\377\363\362\377\336\335\377\352\350\377\355\354"
"\377\333\330\377\374\373\377\311\305\377\376\375\377\324\321\377\377"
"\377\377\332\330\377\361\357\377\330\326\377\333\331\377\374\373\377"
"\327\325\377\367\366\377\323\321\377\332\326\377\375\374\377\324\321"
"\377\334\332\377\350\347\377\325\322\377\365\365\377\365\364\377\325"
"\323\377\377\377\377\377\377\377\335\333\377\367\366\377\363\362\377"
"\337\336\377\366\367\377\344\343\377\360\357\377\377\377\377\323\321"
"\377\371\370\377\371\372\377\332\327\377\370\370\377\334\332\377\367"
"\366\377\363\362\377\340\336\377\366\365\377\325\323\377\377\377\377"
"\324\321\377\364\363\377\360\357\377\345\344\377\366\365\377\324\322"
"\377\373\372\377\327\325\377\373\374\377\327\325\377\366\365\377\326"
"\323\377\367\366\377\341\341\377\377\377\377\377\377\377\361\360\377"
"\350\345\377\332\330\377\365\365\377\370\370\377\377\377\377\340\336"
"\377\377\377\377\377\377\377\363\362\377\322\317\377\357\356\377\364"
"\363\377\377\377\377\347\345\377\377\377\377\316\317\321\307\306\324"
"\326\324\377\371\370\377\377\377\377\354\353\377\354\353\377\366\365"
"\377\354\353\377\330\325\377\377\377\377\377\377\377\321\316\377\363"
"\362\377\364\364\377\337\335\377\376\377\377\374\373\377ZYg\316\335\345"
"\377\212\207\377\316\315\377\377\377H\303N\337\346\363\377\377\377\345"
"\255\355}Bw\377\377\377\273\267\377ul\377\373\377\377\365\376\377\337"
"\341\377\372\373\377\377\377\377\364\363\377\335\333\377\341\336\377"
"\377\377\377\377\377\377\333\331\377\327\324\377\377\377\377\377\377"
"\377\330\325\377\333\331\377\377\377\377\353\352\377\337\335\377\362"
"\361\377\364\364\377\333\331\377\356\354\377\357\354\377\350\347\377"
"\347\345\377\342\340\377\364\363\377\331\326\377\342\340\377\377\377"
"\377\377\377\377\353\350\377\357\356\377\360\360\377\347\346\377\333"
"\331\377\377\377\377\367\367\377\345\343\377\366\365\377\336\334\377"
"\351\347\377\370\367\377\330\326\377\377\377\377\336\334\377\366\365"
"\377\337\335\377\355\355\377\340\336\377\377\377\377\342\340\377\344"
"\342\377\377\377\377\343\341\377\352\352\377\357\355\377\334\332\377"
"\333\327\377\330\324\377\343\341\377\336\334\377\330\325\377\377\377"
"\377\375\374\377\354\353\377\360\357\377\357\356\377\350\347\377\364"
"\364\377\377\377\377\377\377\377\357\356\377\360\357\377\365\365\377"
"\360\356\377\363\363\377\334\332\377\335\333\377\377\377\377\377\377"
"\377\377\377\377\355\353\377\366\364\377\377\377\377\377\377\377\377"
"\377\377\374\375\377\322\320\377\354\353\377\354\353\377\372\372\377"
"\377\377\377\341\336\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\35\35\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0HHH\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\335\332\377\377\377\377\377\377\377\377\377\377\377\377\377\353\352"
"\377\366\365\377\347\345\377\336\334\377\324\322\377\327\325\377\347"
"\346\377\377\377\377\377\377\377\377\377\377\343\340\377\341\337\377"
"\375\375\377\325\321\377\365\364\377\347\346\377\347\346\377\234\233"
"\255\351\350\377\353\351\377\343\341\377\333\331\377\355\353\377\341"
"\337\377\361\357\377\335\333\377\356\355\377\332\327\377\370\367\377"
"\335\332\377\365\364\377\315\311\377\335\333\377\354\353\377\337\335"
"\377\365\365\377\310\304\377\350\347\377\344\342\377\354\352\377\376"
"\375\377\325\322\377\377\377\377\377\377\377\337\335\377\364\363\377"
"\366\365\377\326\324\377\367\366\377\363\363\377\335\333\377\377\377"
"\377\366\365\377\326\324\377\367\370\377\354\353\377\341\336\377\373"
"\373\377\343\341\377\360\355\377\371\370\377\330\326\377\370\367\377"
"\337\335\377\364\363\377\366\365\377\326\323\377\371\371\377\331\326"
"\377\371\370\377\355\355\377\336\333\377\373\372\377\327\325\377\370"
"\367\377\325\323\377\373\372\377\331\327\377\366\365\377\331\327\377"
"\366\366\377\336\334\377\361\356\377\326\322\377\352\350\377\364\363"
"\377\377\377\377\377\377\377\337\336\377\377\377\377\375\375\377\360"
"\360\377\346\345\377\336\334\377\367\366\377\377\377\377\377\377\377"
"\343\343\377\372\370\377\367\366\377\316\315\336\243\240\314\377\377"
"\374\377\377\377\363\362\377\336\334\377\362\362\377\363\363\377\340"
"\336\377\377\377\377\370\371\377\346\345\377\330\326\377\372\371\377"
"\377\377\377\332\327\377\366\365\377\361\361\377\336\334\377\377\377"
"\377\375\374\377gly\304\304\302\377FK\375\377\377\341\357\356@\266S\361"
"\346\377\377\377\377\305\312\301cga\374\375\377\271\261\377iT\377\377"
"\377\377\377\377\377\333\332\377\326\323\377\377\377\377\377\377\377"
"\372\372\377\330\324\377\351\351\377\377\377\377\373\374\377\330\325"
"\377\336\335\377\377\377\377\363\362\377\335\332\377\353\352\377\371"
"\372\377\352\350\377\354\353\377\351\347\377\355\354\377\363\362\377"
"\336\333\377\342\340\377\364\363\377\332\327\377\355\355\377\333\330"
"\377\356\355\377\331\330\377\353\352\377\365\364\377\364\363\377\363"
"\362\377\377\377\377\354\352\377\331\326\377\371\371\377\347\346\377"
"\342\341\377\366\366\377\342\341\377\377\377\377\352\351\377\347\345"
"\377\370\367\377\350\346\377\353\352\377\332\326\377\346\346\377\342"
"\340\377\322\320\377\357\354\377\336\334\377\365\365\377\327\325\377"
"\321\315\377\354\353\377\354\352\377\333\331\377\327\324\377\345\343"
"\377\327\324\377\367\367\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\370\370\377\345\344\377\325\323\377\372\372\377\377\377\377"
"\377\377\377\377\377\377\364\363\377\351\350\377\360\357\377\377\377"
"\377\377\377\377\377\377\377\341\340\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\341\336\377\376\376\377\346\344\377\354\353\377"
"\377\377\377\377\377\377\344\342\377\377\377\377\377\377\377\377\377"
"\377\377\377\377;;;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0""555\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\343\340\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\337\334\377\375\376\377\357\356\377\352\351\377\363\362\377"
"\346\345\377\362\361\377\377\377\377\312\306\377\340\335\377\336\335"
"\377\336\334\377\375\376\377\322\320\377\363\362\377\334\332\377\374"
"\373\377\311\310\337\277\277\302\336\332\377\360\360\377\341\337\377"
"\373\372\377\333\327\377\373\373\377\316\314\377\377\376\377\325\322"
"\377\367\370\377\324\321\377\347\345\377\340\337\377\354\353\377\363"
"\362\377\326\324\377\371\370\377\377\377\377\376\376\377\350\347\377"
"\364\363\377\372\372\377\331\326\377\362\361\377\371\372\377\335\332"
"\377\377\377\377\377\377\377\324\322\377\370\370\377\372\371\377\322"
"\320\377\367\366\377\377\377\377\334\332\377\365\364\377\365\364\377"
"\324\322\377\373\373\377\350\347\377\356\355\377\365\365\377\325\323"
"\377\371\371\377\367\366\377\330\326\377\375\375\377\327\325\377\370"
"\367\377\361\361\377\326\324\377\375\374\377\323\320\377\374\373\377"
"\327\324\377\362\361\377\343\341\377\346\344\377\361\360\377\333\330"
"\377\362\361\377\330\325\377\370\367\377\322\320\377\362\361\377\341"
"\336\377\377\377\377\371\371\377\361\360\377\356\355\377\331\326\377"
"\372\372\377\377\377\377\377\377\377\343\342\377\364\363\377\364\362"
"\377\364\363\377\347\346\377\316\314\336\332\332\324\374\373\370\350"
"\346\377\343\341\377\363\362\377\371\372\377\360\357\377\360\360\377"
"\364\363\377\364\365\377\322\316\377\373\372\377\377\377\377\346\344"
"\377\336\334\377\364\363\377\376\377\377\336\335\377\362\361\377\365"
"\364\377\341\337\377\373\372\377\374\373\377\202\224\245\253\0\0\377"
"\373\377\377\377\377{\325\177\223\277\274\337\324\377\366\365\377\243"
"\243\242\206\207\177\377\377\377\305\276\377Q;\377\370\371\377\377\377"
"\377\377\377\377\344\345\377\302\274\377\343\340\377\257\242\377\362"
"\362\377\330\325\377\347\345\377\377\377\377\367\366\377\336\334\377"
"\347\345\377\377\376\377\355\353\377\351\350\377\356\355\377\344\342"
"\377\372\371\377\355\353\377\331\325\377\357\356\377\355\354\377\356"
"\353\377\347\345\377\337\334\377\361\357\377\336\334\377\352\351\377"
"\342\340\377\346\344\377\347\345\377\357\356\377\362\361\377\333\331"
"\377\354\351\377\377\377\377\342\340\377\377\377\377\375\375\377\343"
"\342\377\363\364\377\335\332\377\376\377\377\326\324\377\343\342\377"
"\334\331\377\351\350\377\334\331\377\342\341\377\352\350\377\363\362"
"\377\332\327\377\355\353\377\331\326\377\357\356\377\344\342\377\334"
"\332\377\336\334\377\340\336\377\344\343\377\334\332\377\342\340\377"
"\371\371\377\377\377\377\377\377\377\377\377\377\355\354\377\356\355"
"\377\377\377\377\362\361\377\355\353\377\361\361\377\355\354\377\345"
"\344\377\332\331\377\377\377\377\377\377\377\377\377\377\350\347\377"
"\372\371\377\377\377\377\377\377\377\377\377\377\377\377\377\340\337"
"\377\377\377\377\335\332\377\334\332\377\377\377\377\344\343\377\375"
"\375\377\377\377\377\377\377\377\377\377\377\377\377\377mmm\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0!!!\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\350\347\377\371\371"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\326\324\377\377"
"\377\377\377\377\377\374\374\377\335\332\377\326\322\377\375\376\377"
"\374\373\377\335\332\377\370\367\377\346\345\377\340\337\377\373\372"
"\377\327\323\377\372\371\377\332\326\377\377\377\377\332\330\377\317"
"\316\327\246\244\310\377\377\377\333\330\377\365\364\377\330\326\377"
"\355\355\377\334\332\377\365\365\377\325\322\377\374\373\377\366\364"
"\377\377\377\377\345\343\377\377\377\377\377\376\377\323\321\377\363"
"\362\377\365\365\377\363\362\377\332\331\377\377\377\377\377\377\377"
"\331\327\377\364\363\377\365\364\377\330\323\377\370\367\377\372\371"
"\377\340\337\377\376\375\377\364\363\377\332\330\377\360\357\377\374"
"\373\377\334\333\377\376\376\377\366\366\377\325\322\377\372\371\377"
"\367\366\377\330\325\377\377\377\377\343\342\377\342\341\377\366\365"
"\377\330\326\377\375\374\377\353\352\377\336\335\377\370\370\377\326"
"\322\377\375\376\377\341\336\377\353\352\377\363\362\377\331\326\377"
"\372\372\377\326\323\377\366\365\377\330\325\377\362\361\377\337\335"
"\377\357\356\377\340\336\377\357\355\377\343\342\377\343\341\377\373"
"\374\377\377\377\377\377\377\377\354\353\377\361\360\377\362\360\377"
"\362\360\377\366\364\377\340\336\377\377\377\372\333\333\325\326\325"
"\326\326\323\374\350\346\377\367\366\377\377\377\377\357\356\377\355"
"\354\377\362\362\377\362\361\377\342\342\377\362\361\377\377\377\377"
"\365\365\377\323\321\377\354\352\377\377\377\377\365\364\377\326\322"
"\377\364\363\377\372\373\377\342\341\377\354\352\377\363\362\377\351"
"\346\377\360\357\377\371\377\377\351\267\305\253\34-\311\322\376\377"
"\373\377\77\304E\377\377\377\371\363\377\376\375\377zz\202\230\231\236"
"\377\377\377\377\377\3771\26\377\223\205\377T>\377\330\323\377\332\326"
"\377\350\346\377\340\336\377\370\367\377\377\377\377\364\363\377\325"
"\323\377\347\344\377\377\377\377\364\363\377\345\343\377\356\355\377"
"\347\346\377\354\351\377\377\377\377\337\335\377\341\337\377\365\364"
"\377\346\346\377\367\366\377\341\341\377\350\346\377\353\352\377\347"
"\344\377\356\355\377\343\340\377\353\351\377\334\332\377\376\375\377"
"\377\377\377\345\344\377\377\377\377\377\377\377\344\344\377\363\362"
"\377\375\374\377\333\331\377\347\345\377\365\366\377\341\341\377\377"
"\377\377\342\341\377\377\377\377\363\363\377\357\356\377\354\353\377"
"\332\330\377\375\374\377\335\332\377\356\353\377\340\337\377\354\353"
"\377\352\350\377\337\335\377\351\347\377\332\330\377\354\352\377\330"
"\326\377\344\342\377\332\330\377\337\335\377\354\351\377\362\362\377"
"\354\351\377\377\376\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\345\344\377\347\346\377\377\377\377\377\377\377\377"
"\377\377\375\375\377\345\344\377\377\377\377\376\377\377\373\374\377"
"\377\377\377\341\336\377\370\367\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\341\336\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\215\215\215\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\13\13\13\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\340\336\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\367\366\377\336\333\377\377\377\377\377\377"
"\377\365\364\377\337\334\377\322\317\377\377\377\377\377\377\377\370"
"\371\377\367\366\377\347\346\377\340\336\377\364\364\377\325\322\377"
"\374\374\377\301\276\377\361\361\377\331\326\377\366\365\377\276\274"
"\342\256\256\272\364\364\377\374\373\377\333\330\377\377\377\377\377"
"\377\377\377\377\377\334\331\377\371\370\377\365\364\377\364\363\377"
"\321\315\377\374\373\377\377\377\377\353\350\377\365\365\377\372\370"
"\377\365\365\377\323\321\377\365\365\377\374\373\377\332\327\377\377"
"\377\377\373\372\377\340\337\377\350\347\377\366\367\377\362\361\377"
"\340\336\377\377\377\377\361\360\377\336\334\377\366\366\377\347\345"
"\377\345\344\377\376\376\377\344\341\377\353\351\377\370\371\377\325"
"\323\377\371\372\377\374\375\377\324\322\377\370\367\377\345\344\377"
"\346\344\377\374\375\377\323\321\377\370\370\377\352\350\377\341\337"
"\377\370\370\377\326\324\377\371\370\377\331\326\377\361\361\377\352"
"\351\377\341\337\377\363\362\377\330\324\377\367\367\377\327\325\377"
"\363\363\377\325\321\377\363\363\377\332\330\377\374\374\377\365\363"
"\377\357\356\377\363\362\377\332\330\377\377\377\377\377\377\377\353"
"\353\346\305\304\322\257\255\332\366\365\377\376\376\377\377\377\377"
"\350\347\377\363\362\377\361\362\377\360\357\377\347\346\377\361\356"
"\377\377\377\377\365\364\377\341\336\377\335\332\377\377\377\377\377"
"\377\377\331\326\377\340\337\377\373\374\377\377\377\377\331\327\377"
"\355\354\377\366\366\377\360\356\377\341\337\377\362\361\377\365\364"
"\377\345\345\377\360\377\377\377/-\201\215\226\240\234\244\303\360\303"
"\200\332\206\377\367\377\373\371\377\361\360\377XWd\255\252\314\354\347"
"\377we\377~n\377\217\202\377\367\367\377\362\362\377\366\365\377\377"
"\377\377\357\356\377\331\326\377\350\346\377\377\377\377\375\374\377"
"\336\334\377\352\350\377\364\363\377\353\351\377\371\370\377\364\364"
"\377\332\330\377\351\350\377\366\367\377\351\350\377\370\370\377\337"
"\335\377\351\350\377\354\351\377\345\342\377\364\363\377\334\332\377"
"\361\361\377\345\344\377\377\377\377\376\376\377\347\346\377\347\346"
"\377\356\355\377\371\372\377\315\312\377\365\364\377\373\374\377\331"
"\327\377\370\367\377\363\362\377\335\333\377\371\370\377\333\330\377"
"\374\375\377\360\360\377\327\324\377\377\377\377\324\322\377\371\371"
"\377\334\331\377\362\362\377\337\334\377\365\365\377\333\331\377\357"
"\356\377\340\336\377\356\354\377\337\335\377\347\347\377\341\340\377"
"\345\343\377\341\337\377\331\327\377\341\337\377\352\351\377\372\373"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\362\361\377\353"
"\352\377\350\347\377\351\347\377\377\377\377\377\377\377\340\336\377"
"\377\377\377\377\377\377\337\335\377\340\336\377\372\371\377\331\327"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\344\343\377\375"
"\375\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\276\276\276\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\2\2\371\371\371"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\340\336\377\377\377\377\364\362\377\347\346\377\377"
"\377\377\354\352\377\357\356\377\377\377\377\377\377\377\344\343\377"
"\315\312\377\335\332\377\377\377\377\377\377\377\377\377\377\373\374"
"\377\350\346\377\331\327\377\333\330\377\305\301\377\362\361\377\310"
"\304\377\364\363\377\373\373\377\377\377\377\350\346\377\372\372\367"
"\270\270\264\351\350\352\340\336\377\363\362\377\363\363\377\364\363"
"\377\331\326\377\377\377\377\377\377\377\377\377\377\327\324\377\366"
"\365\377\362\361\377\351\350\377\344\342\377\377\377\377\377\377\377"
"\326\322\377\365\364\377\364\363\377\337\334\377\356\354\377\374\375"
"\377\377\377\377\334\331\377\365\364\377\366\365\377\324\320\377\373"
"\374\377\377\377\377\331\325\377\366\365\377\366\365\377\321\317\377"
"\375\374\377\376\377\377\326\324\377\367\366\377\357\355\377\335\333"
"\377\374\374\377\336\334\377\360\357\377\366\366\377\324\322\377\371"
"\370\377\353\351\377\335\333\377\370\367\377\326\324\377\371\371\377"
"\346\345\377\343\341\377\371\370\377\323\317\377\366\365\377\332\330"
"\377\360\360\377\345\343\377\344\343\377\361\360\377\325\323\377\365"
"\365\377\326\324\377\362\361\377\322\317\377\377\377\377\377\377\377"
"\377\377\377\363\362\362\260\256\330\277\277\321\345\345\361\377\377"
"\377\377\376\377\346\344\377\371\372\377\357\356\377\360\356\377\341"
"\337\377\366\367\377\377\377\377\364\364\377\341\336\377\333\331\377"
"\377\377\377\377\377\377\347\346\377\325\323\377\366\365\377\377\377"
"\377\354\353\377\331\326\377\363\363\377\377\377\377\345\342\377\337"
"\335\377\366\365\377\373\373\377\333\331\377\346\344\377\370\371\377"
"\347\363\377\355|\223\377\256\270\340\353\366th\211\0x\12\327\341\365"
"\377\372\377\271\256\377\303\274\377@;a\307\305\326\377\377\377\377\377"
"\377\371\372\377\353\352\377\354\353\377\357\356\377\361\360\377\356"
"\355\377\377\377\377\371\370\377\331\327\377\336\333\377\373\372\377"
"\375\374\377\347\345\377\364\363\377\353\352\377\326\324\377\367\366"
"\377\373\374\377\347\346\377\365\365\377\341\336\377\355\354\377\357"
"\357\377\337\335\377\373\372\377\333\331\377\371\370\377\325\321\377"
"\366\365\377\353\352\377\371\370\377\333\330\377\365\366\377\374\374"
"\377\357\360\377\370\367\377\377\377\377\374\373\377\355\354\377\377"
"\377\377\365\366\377\362\361\377\375\375\377\330\327\377\372\371\377"
"\373\373\377\321\317\377\376\376\377\326\324\377\367\366\377\356\355"
"\377\344\341\377\370\370\377\327\325\377\364\363\377\336\335\377\361"
"\356\377\343\341\377\341\337\377\357\355\377\340\336\377\350\346\377"
"\345\345\377\343\341\377\352\350\377\332\327\377\316\313\377\330\326"
"\377\355\354\377\366\365\377\373\372\377\346\344\377\341\337\377\331"
"\326\377\314\312\377\374\373\377\354\353\377\364\364\377\377\377\377"
"\345\344\377\320\314\377\375\376\377\332\327\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\374\372\377\347\346\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\336\336\336"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\350\350\350\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\342\341\377\377\377\377\370\366\377\340\337\377\376\376"
"\377\345\344\377\377\377\377\377\377\377\377\377\377\366\365\377\323"
"\317\377\333\327\377\377\377\377\377\377\377\377\377\377\374\375\377"
"\350\347\377\342\340\377\377\377\377\377\377\377\377\377\377\342\341"
"\377\377\377\377\364\363\377\361\360\377\331\327\377\365\363\377\367"
"\367\377\323\324\321\261\260\276\366\365\375\377\377\377\373\372\377"
"\320\315\377\360\357\377\361\362\377\374\374\377\336\334\377\377\377"
"\377\377\376\377\366\365\377\324\322\377\366\365\377\364\363\377\343"
"\341\377\376\376\377\376\376\377\362\361\377\326\324\377\366\366\377"
"\366\365\377\334\333\377\377\377\377\371\370\377\322\320\377\361\360"
"\377\364\364\377\343\342\377\367\367\377\371\367\377\337\334\377\354"
"\353\377\371\372\377\341\336\377\362\361\377\365\365\377\323\317\377"
"\370\370\377\373\372\377\320\314\377\370\367\377\356\355\377\345\343"
"\377\372\372\377\324\322\377\362\362\377\363\362\377\333\331\377\370"
"\367\377\326\322\377\364\363\377\353\352\377\333\331\377\364\364\377"
"\324\320\377\367\366\377\336\334\377\352\350\377\342\341\377\343\341"
"\377\360\357\377\327\323\377\366\363\377\325\322\362\323\323\331\322"
"\320\331\334\333\344\377\377\377\346\343\377\377\377\377\372\371\377"
"\362\361\377\352\351\377\336\334\377\377\377\377\377\377\377\370\370"
"\377\334\331\377\336\333\377\377\377\377\377\377\377\361\360\377\322"
"\320\377\355\354\377\377\377\377\377\377\377\330\326\377\351\346\377"
"\371\370\377\377\377\377\330\324\377\351\347\377\371\370\377\377\377"
"\377\333\330\377\344\342\377\377\377\377\354\352\377\327\325\377\357"
"\364\377\377\377\377\366/9\345\366\377\377\377\377\324\333\347\2\201"
"\33\215\200\246\362\356\377\375\374\377\377\377\377BC\77\324\322\360"
"\336\333\377\364\363\377\377\377\377\377\377\377\353\352\377\354\354"
"\377\360\357\377\356\355\377\341\340\377\376\375\377\377\377\377\352"
"\352\377\333\332\377\361\360\377\354\353\377\337\335\377\377\377\377"
"\365\364\377\341\336\377\365\364\377\341\337\377\347\345\377\364\363"
"\377\340\335\377\377\377\377\333\331\377\365\364\377\341\340\377\366"
"\367\377\377\377\377\377\377\377\363\363\377\363\362\377\375\374\377"
"\377\377\377\344\341\377\374\372\377\362\361\377\334\331\377\344\342"
"\377\362\361\377\357\356\377\355\355\377\377\377\377\351\350\377\365"
"\364\377\377\377\377\343\341\377\365\364\377\361\361\377\327\325\377"
"\367\367\377\340\340\377\362\362\377\365\366\377\332\327\377\363\364"
"\377\343\343\377\356\353\377\350\350\377\334\332\377\364\363\377\341"
"\337\377\340\336\377\361\360\377\333\331\377\345\343\377\325\323\377"
"\356\354\377\300\274\377\317\313\377\342\340\377\343\341\377\377\377"
"\377\377\377\377\377\377\377\373\372\377\351\350\377\377\377\377\377"
"\377\377\362\361\377\351\350\377\362\361\377\364\365\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\336\333\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\323\323\323\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\364\365\377\355\354\377\377\377\377\355\354\377\333\330"
"\377\362\357\377\325\323\377\361\361\377\345\344\377\326\324\377\377"
"\377\377\365\364\377\337\335\377\377\377\377\377\377\377\377\377\377"
"\370\370\377\343\340\377\340\336\377\363\362\377\356\356\377\364\364"
"\377\331\326\377\363\362\377\377\377\377\377\377\377\366\365\377\357"
"\356\377\365\363\377\366\364\377\362\361\377\251\246\307\273\274\303"
"\372\372\370\377\377\377\362\357\377\366\365\377\363\363\377\334\332"
"\377\353\352\377\372\371\377\377\377\377\334\332\377\371\371\377\364"
"\363\377\355\354\377\327\325\377\375\374\377\377\377\377\331\327\377"
"\365\366\377\366\366\377\334\332\377\352\351\377\377\377\377\367\367"
"\377\330\326\377\367\366\377\363\362\377\331\327\377\377\377\377\366"
"\365\377\321\315\377\365\364\377\365\365\377\336\334\377\366\366\377"
"\357\356\377\330\325\377\376\375\377\351\347\377\342\340\377\367\366"
"\377\332\330\377\366\365\377\363\364\377\316\314\377\371\370\377\347"
"\346\377\345\344\377\367\366\377\326\322\377\370\367\377\345\342\377"
"\342\342\377\364\364\377\327\325\377\373\372\377\336\333\377\367\366"
"\377\347\347\377\312\312\345\306\305\333\313\311\330\340\337\347\336"
"\335\377\377\377\377\377\377\377\375\376\377\356\355\377\324\322\377"
"\363\362\377\377\377\377\377\377\377\373\372\377\323\321\377\351\346"
"\377\377\377\377\377\377\377\367\370\377\321\316\377\354\353\377\372"
"\373\377\377\377\377\342\337\377\341\337\377\355\354\377\377\377\377"
"\365\364\377\331\327\377\357\355\377\377\377\377\366\365\377\326\323"
"\377\350\346\377\377\377\377\355\354\377\325\323\377\357\355\377\377"
"\377\377\336\335\377\340\360\377\372NR\362\327\346\342\347\377\374\361"
"\377\204\325\222\225\313\241\224\213\232zx\207\313\312\333\327\323\377"
">>C\377\377\377\377\377\377\337\334\377\330\326\377\365\365\377\377\377"
"\377\374\373\377\351\347\377\370\371\377\356\354\377\340\337\377\342"
"\340\377\377\377\377\373\374\377\351\350\377\375\374\377\351\350\377"
"\337\334\377\362\361\377\351\351\377\342\342\377\377\377\377\344\343"
"\377\371\370\377\350\347\377\344\343\377\356\356\377\334\333\377\356"
"\355\377\361\360\377\366\367\377\325\323\377\363\362\377\356\354\377"
"\357\356\377\323\321\377\361\360\377\361\360\377\342\341\377\363\362"
"\377\367\366\377\361\360\377\326\323\377\375\374\377\347\346\377\337"
"\334\377\362\361\377\365\364\377\344\341\377\377\377\377\346\345\377"
"\343\342\377\362\361\377\332\330\377\365\364\377\375\376\377\330\324"
"\377\353\352\377\362\361\377\344\342\377\354\353\377\351\351\377\353"
"\352\377\346\344\377\357\354\377\344\343\377\341\336\377\371\370\377"
"\332\330\377\365\365\377\340\336\377\341\337\377\367\367\377\377\377"
"\377\377\377\377\377\377\377\336\335\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\357\356\377\331\327\377\351\350\377\356\353\377"
"\375\374\377\377\377\377\354\352\377\364\363\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\305\305\305\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\347\345\377\372\371\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\331\327\377\377\377\377\337\335\377\347\345"
"\377\377\377\377\352\350\377\337\337\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\343\341\377\342\340\377\377\377\377\377\377\377"
"\377\377\377\362\370\377\361\367\377\373\377\377\373\377\377\372\377"
"\377\333\340\377\377\377\377\377\377\377\377\377\377\331\326\377\376"
"\377\377\307\312\343\306\315\345\267\273\370\377\377\377\377\377\377"
"\377\377\377\337\343\377\370\373\377\365\370\377\340\336\377\366\366"
"\377\377\377\377\377\377\377\317\313\377\363\363\377\364\363\377\350"
"\347\377\361\360\377\377\377\377\362\363\377\321\316\377\365\364\377"
"\373\373\377\336\333\377\364\363\377\367\366\377\332\330\377\355\354"
"\377\377\377\377\341\340\377\345\344\377\367\366\377\343\340\377\363"
"\362\377\366\367\377\336\333\377\347\345\377\377\377\377\327\325\377"
"\360\357\377\366\365\377\326\324\377\371\370\377\355\354\377\332\330"
"\377\374\374\377\332\327\377\354\353\377\362\361\377\335\334\377\371"
"\372\377\343\341\377\360\356\377\353\353\377\322\317\365\312\311\325"
"\263\261\326\276\275\323\337\336\365\377\377\377\377\377\377\377\377"
"\377\377\377\377\314\310\377\356\355\377\366\367\377\377\377\377\377"
"\377\377\345\344\377\350\345\377\357\356\377\367\367\377\377\377\377"
"\351\350\377\347\344\377\356\355\377\357\357\377\377\377\377\346\345"
"\377\346\345\377\353\353\377\363\362\377\372\371\377\344\343\377\354"
"\351\377\362\360\377\377\377\377\351\346\377\327\325\377\360\357\377"
"\377\377\377\350\347\377\325\322\377\363\362\377\377\377\377\340\335"
"\377\334\333\377\371\372\377\365\375\377\357\312\333\370Za\343\362\377"
"\367\363\377\377\377\3775\302;\377\377\377\377\377\377\256\255\300\217"
"\217\220noo%%\"\364\363\377\367\365\377\377\377\377\373\373\377\333\332"
"\377\340\335\377\360\357\377\377\377\377\354\353\377\374\373\377\377"
"\377\377\354\352\377\341\342\377\371\377\377\366\374\377\330\335\377"
"\377\377\377\377\377\377\362\370\377\377\377\377\333\334\377\362\361"
"\377\364\363\377\333\333\377\376\377\377\337\344\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\355\362\377\377\377\377\377\377\377"
"\377\377\377\343\341\377\377\377\377\377\377\377\356\355\377\367\370"
"\377\377\377\377\377\377\377\343\340\377\377\377\377\377\377\377\326"
"\323\377\365\363\377\364\365\377\334\331\377\350\347\377\377\377\377"
"\354\352\377\357\356\377\361\360\377\340\335\377\346\345\377\377\377"
"\377\340\336\377\340\336\377\374\376\377\364\371\377\337\345\377\370"
"\377\377\375\377\377\337\345\377\357\365\377\377\377\377\332\333\377"
"\365\365\377\342\341\377\350\347\377\370\370\377\377\377\377\377\377"
"\377\377\377\377\336\334\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\374\374\377\331\327\377\377\377\377\344\342\377\362\362\377"
"\377\377\377\374\372\377\344\343\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\17\17\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\247\247\247\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\340\335\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\336\333\377\377\377\377\334\331\377"
"\346\343\377\373\373\377\353\352\377\337\334\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\332\327\377\342\340\377\361\361\377\361"
"\363\377\332\276\213\256v\25\271\204!\300\214!\277\213!\301\214!\267"
"\201!\272\201\16\355\345\341\370\370\377\327\325\377\377\377\377\303"
"\213\34\306\222'\252u\23\256y\20\277\211\"\261|!\267\200\34\316\242H"
"\377\377\377\367\367\377\326\323\377\363\364\377\372\370\377\357\357"
"\377\361\357\377\364\363\377\365\364\377\317\313\377\371\370\377\377"
"\377\377\341\336\377\351\347\377\364\364\377\362\361\377\344\343\377"
"\376\377\377\363\362\377\313\311\377\366\367\377\377\377\377\327\324"
"\377\364\363\377\366\366\377\327\325\377\374\374\377\367\366\377\316"
"\313\377\363\362\377\377\377\377\323\321\377\364\364\377\363\362\377"
"\334\332\377\370\367\377\350\347\377\346\344\377\377\377\377\336\334"
"\377\363\362\377\355\354\373\302\277\346\316\315\332\267\264\327\310"
"\306\332\324\321\350\372\371\377\377\377\377\377\377\377\354\351\377"
"\362\360\377\365\364\377\356\354\377\364\363\377\377\377\377\346\344"
"\377\370\370\377\372\370\377\357\356\377\360\357\377\361\360\377\350"
"\347\377\377\377\377\364\363\377\357\356\377\362\361\377\346\345\377"
"\375\376\377\364\363\377\357\356\377\360\357\377\346\344\377\370\367"
"\377\360\357\377\363\362\377\362\361\377\346\343\377\353\351\377\362"
"\361\377\377\377\377\342\341\377\331\326\377\366\365\377\377\377\377"
"\337\335\377\325\322\377\371\370\377\372\372\377\347\345\377\353\354"
"\377\351\373\377\372.3\373\377\377\354\360\377\370\357\377\301\342\314"
"_\303m\377\376\377\377\377\377\377\377\377\377\377\377\243\242\272\305"
"\304\315\360\357\377\371\371\377\352\351\377\372\373\377\377\377\377"
"\377\377\377\330\325\377\353\352\377\360\356\377\351\350\377\336\336"
"\377\342\313\230\275\206\24\273\205!\301\213!\266\201!\253t!\276\210"
"!\274\204\17\320\305\325\363\364\377\353\352\377\352\355\377\302\216"
"%\271\203\37\277\213!\276\211!\275\211!\275\210!\271\202\35\307\2269"
"\377\377\377\370\371\377\325\323\377\360\357\377\357\357\377\360\357"
"\377\332\327\377\362\361\377\362\361\377\324\320\377\364\363\377\370"
"\367\377\375\376\377\351\350\377\377\377\377\375\375\377\321\317\377"
"\357\356\377\362\361\377\346\345\377\366\367\377\375\374\377\337\336"
"\377\330\324\377\377\377\377\375\375\377\330\323\353\262x\15\302\214"
"!\267\201!\272\204!\300\212!\277\211!\256u\26\326\270\202\347\350\377"
"\347\345\377\354\353\377\377\377\377\377\377\377\377\377\377\344\343"
"\377\374\374\377\377\377\377\377\377\377\377\377\377\377\377\377\337"
"\335\377\377\377\377\325\322\377\314\311\377\373\374\377\377\377\377"
"\336\335\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377...\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\212\212\212\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\334\331\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\330\325\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\342\341\377\375\376\377\377\377\377\376\376"
"\377\377\377\377\341\340\377\354\351\377\372\373\377\377\377\377\331"
"\271u\255j\0\262s\0\262s\0\262r\0\262s\0\262s\0\252c\0\370\361\341\377"
"\377\377\336\335\377\355\365\377\256j\0\262r\0\263t\0\263t\0\263t\0\262"
"s\0\261p\0\263}\24\316\324\353\334\335\325\320\315\361\364\365\377\371"
"\367\377\372\371\377\327\325\377\377\377\377\377\377\377\344\343\377"
"\342\341\377\365\364\377\376\376\377\334\332\377\367\366\377\364\363"
"\377\333\331\377\355\352\377\377\377\377\347\345\377\335\334\377\366"
"\365\377\372\372\377\326\323\377\365\364\377\362\361\377\326\323\377"
"\377\377\377\364\364\377\321\317\377\374\373\377\376\375\377\326\323"
"\377\367\366\377\364\363\377\340\335\377\347\347\357\274\272\334\314"
"\313\337\320\317\327\262\260\323\327\330\342\347\346\373\351\346\377"
"\370\371\377\356\355\377\362\361\377\377\377\377\377\377\377\367\367"
"\377\357\356\377\340\335\377\343\342\377\377\377\377\377\377\377\377"
"\377\377\361\360\377\336\334\377\342\337\377\377\377\377\377\377\377"
"\376\377\377\353\352\377\327\324\377\362\363\377\377\377\377\377\377"
"\377\360\357\377\334\332\377\345\344\377\377\377\377\375\376\377\353"
"\352\377\347\344\377\352\351\377\375\374\377\360\357\377\362\361\377"
"\360\357\377\347\346\377\350\347\377\366\365\377\377\377\377\341\340"
"\377\327\325\377\367\366\377\377\377\377\341\337\377\344\341\377\355"
"\354\377\352\351\377\326\341\377\346\205\237\377\240\231\377\377\377"
"\374\371\377\364\350\377Q\304Z\314\343\334\375\364\377\365\363\377\357"
"\354\377\377\377\377\377\377\377\377\377\377\335\332\377\352\350\377"
"\357\360\377\357\356\377\334\333\377\365\364\377\377\377\377\377\377"
"\377\346\344\377\377\377\377\331\273\205\255i\0\262s\0\262s\0\263t\0"
"\263t\0\262s\0\253e\0\360\346\321\376\377\377\335\332\377\377\377\377"
"\263s\0\261p\0\262r\0\262r\0\262r\0\262s\0\260o\0\270}\15\377\377\377"
"\377\377\377\340\337\377\377\377\377\377\377\377\377\377\377\343\341"
"\377\377\377\377\377\377\377\377\376\377\342\337\377\357\356\377\362"
"\361\377\335\333\377\345\344\377\372\371\377\377\377\377\344\343\377"
"\372\372\377\360\357\377\342\341\377\342\337\377\377\377\377\373\374"
"\377\330\325\377\341\342\377\376\371\354\253e\0\262s\0\262s\0\262s\0"
"\262s\0\262s\0\257l\0\306\242k\353\356\377\362\361\377\377\377\377\377"
"\377\377\377\377\377\351\347\377\366\366\377\377\377\377\356\356\377"
"\371\367\377\377\377\377\345\343\377\360\357\377\377\377\377\376\376"
"\377\370\370\377\377\377\377\345\342\377\372\372\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377]]]\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0xxx\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\340\336\377\374"
"\373\377\377\377\377\377\377\377\377\377\377\377\377\377\330\325\377"
"\371\372\377\377\377\377\377\377\377\377\377\377\377\377\377\355\354"
"\377\363\362\377\377\377\377\304\300\377\321\317\377\345\344\377\365"
"\364\377\327\325\377\370\374\377\321\261z\257m\0\264w\0\264w\0\264w\0"
"\264w\0\264w\0\253f\0\352\343\345\373\374\377\377\377\377\351\361\377"
"\262q\0\264v\0\264w\0\264w\0\264w\0\264w\0\263t\0\273\205%\375\377\377"
"\363\362\377\335\334\340\270\266\322\331\331\327\310\311\322\270\267"
"\321\273\270\325\346\346\353\362\362\354\327\324\373\363\363\377\371"
"\367\377\364\363\377\346\344\377\377\377\377\370\367\377\325\322\377"
"\371\370\377\377\377\377\343\342\377\347\346\377\371\372\377\362\361"
"\377\352\352\377\367\366\377\355\355\377\321\317\367\353\354\344\342"
"\340\365\253\251\321\330\327\334\312\312\331\265\262\335\326\327\327"
"\324\323\345\277\275\342\371\370\377\352\351\377\350\347\377\347\346"
"\377\356\353\377\377\377\377\377\377\377\377\377\377\377\377\377\355"
"\354\377\335\333\377\353\352\377\371\371\377\377\377\377\377\377\377"
"\374\375\377\334\331\377\347\346\377\360\357\377\377\377\377\377\377"
"\377\375\374\377\334\331\377\346\344\377\364\363\377\377\377\377\377"
"\377\377\356\355\377\321\317\377\352\351\377\377\377\377\377\377\377"
"\370\367\377\327\325\377\337\334\377\377\377\377\377\377\377\356\355"
"\377\334\333\377\350\347\377\373\373\377\357\356\377\364\363\377\362"
"\361\377\346\344\377\343\340\377\373\372\377\377\377\377\340\337\377"
"\334\331\377\360\361\377\362\362\377\356\355\377\361\362\377\342\346"
"\377\342\351\377\362#0\277\315\377\362\365\377\377\377\377\374\377\372"
";\301\77\371\355\377\343\336\377\357\356\377\355\354\377\365\364\377"
"\343\341\377\377\377\377\377\377\377\377\377\377\347\345\377\375\374"
"\377\366\365\377\356\355\377\326\323\377\354\353\377\366\372\377\317"
"\261\211\257m\0\264w\0\264w\0\264w\0\264w\0\264w\0\254h\0\357\345\325"
"\360\360\377\345\343\377\377\377\377\262u\0\263u\0\264w\0\264w\0\264"
"w\0\264w\0\262s\0\272\202\23\377\377\377\377\377\377\333\331\377\371"
"\370\377\371\371\377\350\346\377\332\330\377\355\354\377\361\357\377"
"\363\362\377\334\333\377\377\377\377\377\377\377\377\377\377\340\336"
"\377\363\362\377\357\356\377\355\354\377\332\327\377\377\377\377\377"
"\377\377\353\352\377\325\322\377\355\353\377\377\377\377\372\372\377"
"\330\323\357\254f\0\264w\0\264w\0\264w\0\264w\0\264w\0\260o\0\310\244"
"o\362\366\377\377\377\377\377\377\377\377\377\377\350\347\377\364\363"
"\377\377\377\377\364\362\377\356\355\377\356\355\377\350\347\377\350"
"\345\377\377\377\377\377\377\377\377\377\377\377\377\377\354\353\377"
"\361\361\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\177\177\177\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0WWW\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\351\350\377\365\365\377\377"
"\377\377\373\372\377\332\330\377\364\364\377\352\351\377\344\342\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\375\376\377\341\340"
"\377\377\377\377\340\335\377\353\352\377\364\363\377\345\343\377\333"
"\327\377\377\377\377\332\273z\257m\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\254g\0\364\354\345\364\365\377\362\361\377\336\343\377\251c\0\256"
"j\0\255i\0\255j\0\255j\0\256j\0\254g\0\262y\22\365\372\377\374\373\377"
"\366\365\377\340\337\377\353\353\377\377\377\377\377\377\377\326\323"
"\377\331\330\356\343\342\354\342\342\345\272\270\326\310\310\317\312"
"\311\331\313\312\345\325\324\351\347\350\342\306\305\323\261\256\324"
"\311\310\323\344\343\342\307\304\351\330\326\354\330\330\335\302\301"
"\322\276\274\325\327\326\341\335\334\362\314\312\347\364\364\367\356"
"\355\377\332\326\377\377\377\377\363\362\377\327\324\377\373\372\377"
"\361\360\377\341\336\377\361\360\377\376\375\377\377\377\377\342\337"
"\377\373\374\377\377\377\377\364\362\377\355\354\377\363\363\377\371"
"\371\377\344\343\377\376\375\377\377\377\377\362\361\377\360\356\377"
"\367\367\377\353\352\377\355\354\377\377\377\377\363\362\377\354\353"
"\377\370\371\377\363\361\377\346\345\377\371\370\377\356\355\377\363"
"\362\377\377\377\377\356\355\377\345\342\377\346\343\377\367\367\377"
"\377\377\377\377\377\377\331\326\377\327\325\377\377\376\377\377\377"
"\377\365\364\377\342\340\377\350\346\377\362\361\377\357\357\377\361"
"\360\377\376\377\377\344\342\377\324\321\377\366\364\377\377\377\377"
"\351\347\377\364\365\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\362Vc\355\301\324\357\370\377\365\364\377\377\377\377\207\317\226"
"\232\333\241\377\377\377\377\377\377\377\377\377\340\333\377\367\364"
"\377\366\360\377\362\356\377\340\335\377\352\351\377\367\366\377\377"
"\377\377\352\350\377\377\376\377\377\377\377\377\377\377\300\240|\253"
"c\0\256k\0\256k\0\256k\0\256k\0\256j\0\250^\0\343\325\311\321\317\377"
"\356\354\377\374\377\377\263t\0\263v\0\264w\0\264w\0\264w\0\264w\0\262"
"s\0\267~\23\366\374\377\364\364\377\332\327\377\371\371\377\377\377\377"
"\377\377\377\374\373\377\354\353\377\377\377\377\377\377\377\377\376"
"\377\325\322\377\356\355\377\357\356\377\362\363\377\341\337\377\377"
"\377\377\377\377\377\373\374\377\330\325\377\335\333\377\377\377\377"
"\377\377\377\360\357\377\335\333\377\353\354\377\375\372\357\255g\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\260n\0\325\264o\377\377\377\377\377\377"
"\377\377\377\352\347\377\362\363\377\377\377\377\365\363\377\314\311"
"\377\355\354\377\344\342\377\354\353\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\364\363\377\352\351\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\256\256\256\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\77\77\77\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\366\365\377\351\350\377\377\377\377\364"
"\363\377\314\311\377\370\367\377\377\377\377\342\340\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\334\331\377\377\377"
"\377\377\377\377\374\374\377\377\377\377\333\330\377\341\336\377\365"
"\372\377\324\264z\260n\0\264w\0\264w\0\264w\0\264w\0\264w\0\255h\0\357"
"\350\345\377\377\377\377\377\377\377\377\377\301\253\260\333\311\273"
"\351\332\274\357\336\274\321\277\274\355\335\274\336\314\270\337\317"
"\302\316\315\377\374\375\377\377\377\377\377\377\377\315\313\377\363"
"\362\377\367\366\377\377\377\377\337\334\377\367\366\377\366\365\377"
"\355\353\377\353\350\377\377\377\377\367\366\377\327\324\377\363\363"
"\377\377\377\377\364\363\377\340\335\377\365\364\377\377\377\377\335"
"\332\377\364\363\377\370\367\377\352\350\377\356\355\377\371\371\377"
"\352\347\377\337\336\377\374\373\377\352\351\377\320\316\377\375\374"
"\377\355\353\377\326\324\377\365\365\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\376\375\377\323\320\377\332\330\377\375\375\377"
"\377\377\377\377\377\377\377\377\377\377\376\377\322\317\377\327\325"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\347\345\377\321"
"\316\377\360\357\377\377\377\377\377\377\377\374\374\377\350\347\377"
"\340\337\377\352\352\377\377\377\377\376\376\377\356\355\377\365\364"
"\377\361\360\377\350\345\377\356\355\377\354\353\377\377\377\377\377"
"\377\377\347\344\377\320\315\377\361\360\377\377\377\377\372\371\377"
"\346\345\377\351\350\377\355\354\377\346\345\377\364\363\377\377\377"
"\377\355\354\377\323\320\377\353\351\377\363\362\377\377\377\377\377"
"\377\377\375\373\377\346\354\377\377\350\350\377QN\377\377\377\376\376"
"\377\337\331\377\367\351\377:\273D\377\366\377\377\377\377\361\346\377"
"\376\377\374\313\362\311\355\376\350\225\322\244\366\363\377\377\377"
"\377\374\373\377\344\343\377\341\337\377\363\363\377\351\350\377\342"
"\342\377\333\322\341\336\314\262\340\316\274\314\272\274\335\314\274"
"\340\317\274\316\275\274\341\315\256\373\372\371\342\344\377\377\377"
"\377\353\334\276\256l\0\264v\0\264w\0\264w\0\264w\0\264w\0\262t\0\273"
"\203\23\377\377\377\377\377\377\355\354\377\372\371\377\377\377\377\375"
"\375\377\363\362\377\323\320\377\356\355\377\357\356\377\364\363\377"
"\370\367\377\350\345\377\377\377\377\377\377\377\374\374\377\324\322"
"\377\342\337\377\370\367\377\377\377\377\371\370\377\347\344\377\352"
"\351\377\357\356\377\377\377\377\363\363\377\345\340\357\254g\0\264w"
"\0\264w\0\264w\0\264w\0\264w\0\260n\0\314\250o\377\377\377\377\377\377"
"\347\346\377\365\364\377\377\377\377\377\377\377\377\377\377\366\365"
"\377\365\365\377\355\355\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\367\367\377\346\343\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\317\317\317\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,,,\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\376\376\377\341\340\377\377\377\377\376"
"\375\377\332\330\377\350\347\377\364\364\377\313\310\377\377\377\377"
"\317\314\377\326\323\377\377\377\377\377\377\377\335\333\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\332\330\377\365\365\377\340"
"\342\377\300\236z\260n\0\264w\0\264w\0\264w\0\264w\0\264w\0\255i\0\313"
"\302\345\364\364\377\360\356\377\373\377\377\357\365\377\377\377\377"
"\377\377\377\377\377\377\366\377\377\344\356\377\377\377\377\377\377"
"\377\367\371\377\322\316\377\365\365\377\374\377\377\377\377\377\351"
"\360\377\374\377\377\374\377\377\366\377\377\353\364\377\377\377\377"
"\366\372\377\336\336\377\347\351\377\377\377\377\377\377\377\333\341"
"\377\362\372\377\377\377\377\376\377\377\333\341\377\375\377\377\377"
"\377\377\350\356\377\364\373\377\370\375\377\353\360\377\351\353\377"
"\367\371\377\360\361\377\336\334\377\366\367\377\353\351\377\356\355"
"\377\377\377\377\377\377\377\341\337\377\370\367\377\377\377\377\370"
"\367\377\352\351\377\363\364\377\377\377\377\373\374\377\344\347\377"
"\377\377\377\377\377\377\363\371\377\373\377\377\377\377\377\377\377"
"\377\356\364\377\377\377\377\367\377\377\367\377\377\377\377\377\377"
"\377\377\377\377\377\350\357\377\352\360\377\372\377\377\377\377\377"
"\377\377\377\377\377\377\330\327\377\327\325\377\377\377\377\377\377"
"\377\373\372\377\354\353\377\353\352\377\353\352\377\364\365\377\361"
"\366\377\377\377\377\377\377\377\377\377\377\336\345\377\347\357\377"
"\377\377\377\377\377\377\352\355\377\376\377\377\364\372\377\351\361"
"\377\376\377\377\377\377\377\377\377\377\377\377\377\365\375\377\352"
"\357\377\340\344\377\374\377\377\377\377\377\37765\377\377\377\352\354"
"\377\377\377\377\377\377\377N\323j\33\303@5\301h\217\333\306\341\371"
"\377\333\371\377\365\367\377\345\347\377\374\375\377\377\377\377\377"
"\377\377\344\343\377\377\377\377\377\377\377\377\377\377\352\353\377"
"\377\377\377\377\377\377\362\376\377\377\377\377\377\377\377\377\377"
"\377\362\376\377\377\377\377\377\377\377\343\345\377\336\303\221\257"
"o\0\262r\0\264w\0\264w\0\264w\0\264w\0\264w\0\263u\0\274\206#\377\377"
"\377\372\377\377\377\377\377\332\341\377\375\377\377\377\377\377\377"
"\377\377\377\377\377\355\365\377\377\377\377\377\377\377\377\377\377"
"\366\377\377\337\346\377\370\377\377\376\377\377\377\377\377\372\377"
"\377\366\376\377\377\377\377\365\376\377\372\377\377\364\371\377\360"
"\361\377\377\377\377\357\357\377\352\345\357\254g\0\264w\0\264w\0\264"
"w\0\264w\0\264w\0\260n\0\312\250q\377\377\377\347\351\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\361\372\377\342\351"
"\377\374\377\377\374\377\377\377\377\377\377\377\377\377\377\377\347"
"\354\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\376\376\376\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\27\27\27\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\334\331\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\321\315\377\377\377\377"
"\347\344\377\346\345\377\377\377\377\377\377\377\371\372\377\343\341"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\335\332\377\337"
"\340\377\327\267z\261o\0\264w\0\264w\0\264w\0\264w\0\264w\0\255i\0\354"
"\345\345\356\357\377\377\377\377\374\377\377\250a\0\253d\0\251d\0\253"
"e\0\255f\0\253f\0\252b\0\265{\15\377\377\377\364\363\377\351\353\377"
"\333\302\234\250]\0\252e\0\253f\0\254e\0\254f\0\252e\0\251`\0\354\332"
"\265\375\372\354\313\256\213\277\222H\270\177\32\265x\0\256k\0\253f\0"
"\254g\0\254i\0\260o\0\265x\0\262y\15\270\204(\313\237C\316\250g\311\254"
"\217\337\315\272\355\347\353\341\346\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\337\334\377\322\320\377"
"\375\377\377\377\377\377\377\377\377\376\373\370\360\342\305\341\310"
"\226\277\234p\301\226K\305\222.\274\204\25\265y\1\262q\0\256k\0\254f"
"\0\253f\0\254g\0\255j\0\261p\0\267{\4\267\200\34\271\2119\313\244Z\333"
"\275\202\340\313\255\341\327\334\377\377\377\377\377\377\362\367\377"
"\334\334\377\345\345\377\377\377\377\377\377\377\364\365\377\356\361"
"\377\252e\0\252c\0\252d\0\254e\0\255g\0\253f\0\252a\0\307\244k\362\361"
"\377\326\262h\275\207\34\261q\0\256j\0\252d\0\253e\0\255j\0\264u\0\267"
"}\22\312\233<\325\270\205\357\373\377\364\255\304\325ju\351\376\377\227"
"\277h\305\232\77\231r\0\271p\0\277m\0\270k\0\264k\0\264r\0\266x\7\305"
"\221,\323\257i\353\342\335\331\332\377\365\367\377\355\353\377\351\350"
"\377\336\335\377\361\362\377\311\250x\247]\0\253d\0\253d\0\252c\0\253"
"d\0\253d\0\253d\0\253e\0\254h\0\260n\0\262s\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\264w\0\264v\0\260o\0\255j\0\253e\0\254f\0\254f\0\254f\0\253"
"d\0\252c\0\253d\0\253d\0\253d\0\251c\0\252d\0\253e\0\253f\0\254f\0\253"
"d\0\253d\0\253d\0\252e\0\253e\0\253e\0\254e\0\250^\0\372\377\377\323"
"\317\377\350\350\377\370\364\357\254f\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\261q\0\332\274\203\341\342\377\337\307\227\317\245S\275\211!\264"
"v\0\255j\0\254f\0\254g\0\256j\0\255l\0\260q\0\267|\11\277\211!\275\214"
"=\322\252_\335\277\205\347\324\256\366\355\336\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\12\12\12\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\332\327\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\352\351\377\357\356"
"\377\353\351\377\336\333\377\370\367\377\377\377\377\377\377\377\331"
"\326\377\377\377\377\377\377\377\377\377\377\377\377\377\327\325\377"
"\373\377\377\276\235z\260n\0\264w\0\264w\0\264w\0\264w\0\264w\0\254g"
"\0\352\344\345\315\315\377\355\353\377\377\377\377\256m\0\263v\0\264"
"w\0\264w\0\264w\0\264w\0\262s\0\274\207\"\365\373\377\363\362\377\337"
"\341\377\334\310\255\256l\0\264w\0\264w\0\264w\0\264w\0\264w\0\261r\0"
"\265{\7\255i\0\257l\0\261q\0\262s\0\263t\0\263u\0\263u\0\263u\0\263u"
"\0\263u\0\263u\0\263t\0\262s\0\261q\0\260o\0\257m\0\256k\0\255h\0\254"
"g\0\272\202\23\323\257h\377\377\377\375\377\377\352\351\377\354\353\377"
"\377\377\377\377\377\377\335\323\332\304\2221\255l\0\252d\0\254h\0\256"
"k\0\260n\0\261q\0\261r\0\262s\0\263t\0\263u\0\263u\0\263u\0\263u\0\263"
"u\0\263u\0\263u\0\263t\0\263s\0\262r\0\260o\0\257l\0\256j\0\254g\0\252"
"e\0\267y\1\277\222G\362\344\305\375\377\377\345\345\377\320\315\377\362"
"\361\377\377\377\377\264t\0\263u\0\264w\0\264w\0\264w\0\264w\0\262t\0"
"\270\200\15\257n\0\257l\0\261q\0\262s\0\263u\0\263v\0\264v\0\264v\0\263"
"u\0\262s\0\261p\0\256k\0\262u\0\321\332\303\361G5\275\214\31\261j\0\265"
"p\0\264s\0\265u\0\264v\0\264v\0\264v\0\263v\0\263t\0\261q\0\257m\0\254"
"h\0\310\241[\377\377\377\377\377\377\377\377\377\345\343\377\377\377"
"\377\337\303\211\256l\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\264w\0\264w\0\255g\0\377\377\377\377\377\377\377\377\377\356"
"\352\357\254g\0\264w\0\264w\0\264w\0\264w\0\264w\0\262t\0\262v\4\256"
"k\0\256l\0\260o\0\261r\0\262t\0\263u\0\263u\0\263u\0\263u\0\263u\0\263"
"u\0\262t\0\262s\0\261q\0\260o\0\256l\0\254i\0\253f\0\251d\0\265y\4\313"
"\237L\375\373\366\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\4\4\4\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\363\363\363\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\337\336\377\376\376\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\375\376\377\330\326\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\356\355"
"\377\354\353\377\377\377\377\377\377\377\377\377\377\377\377\377\337"
"\341\377\327\267z\260o\0\264w\0\264w\0\264w\0\264w\0\264w\0\254g\0\373"
"\366\345\377\377\377\332\327\377\377\377\377\257m\0\263v\0\264w\0\264"
"w\0\264w\0\264w\0\262s\0\276\210#\377\377\377\377\377\377\370\373\377"
"\314\266\255\256k\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0"
"\264v\0\262t\0\260o\0\255j\0\255h\0\263r\0\265u\0\260p\0\256m\0\256j"
"\0\255i\0\257m\0\261q\0\263u\0\264w\0\264w\0\264w\0\264w\0\263v\0\261"
"r\0\254h\0\317\255u\372\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\265w\0\260o\0\263u\0\264w\0\264w\0\264w\0\264w\0\264w\0\263"
"u\0\261q\0\256l\0\255i\0\256l\0\260o\0\262r\0\262r\0\256n\0\254g\0\255"
"j\0\260p\0\262s\0\264v\0\264w\0\264w\0\264w\0\264v\0\263t\0\260o\0\254"
"g\0\352\340\331\357\361\377\377\377\377\362\361\377\354\364\377\256m"
"\0\263u\0\264w\0\264w\0\264w\0\264w\0\264v\0\263v\0\261r\0\256k\0\256"
"l\0\261r\0\262r\0\260m\0\261q\0\264v\0\264w\0\264w\0\264w\0\264w\0\262"
"r\0\267\177\11\266}\6\257x\0\260t\0\256u\0\262z\0\261i\0\256q\0\260o"
"\0\263v\0\264w\0\264w\0\264w\0\264w\0\263t\0\254h\0\330\275\220\364\366"
"\377\331\326\377\340\337\377\364\367\377\325\271\211\256l\0\264w\0\264"
"w\0\264w\0\264w\0\264w\0\262r\0\257m\0\254g\0\253f\0\255j\0\261q\0\264"
"v\0\264w\0\264w\0\264w\0\264w\0\264v\0\260p\0\255i\0\252d\0\252d\0\252"
"d\0\253e\0\253f\0\253f\0\252e\0\253e\0\254f\0\254g\0\254g\0\254f\0\253"
"e\0\252d\0\252d\0\252e\0\254g\0\255h\0\254g\0\253e\0\253e\0\247]\0\361"
"\367\377\376\375\377\373\374\377\344\337\357\255h\0\264w\0\264w\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\264v\0\263t\0\261q\0\256k\0\255h\0\256"
"n\0\260r\0\260p\0\260o\0\255j\0\254h\0\256l\0\260p\0\263u\0\264w\0\264"
"w\0\264w\0\264w\0\264v\0\262s\0\255k\0\301\2210\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377!!!\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\340\340\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\366\365\377\346\345\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\323\317\377\373\372\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\325\322\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\355\362\377\310\250z\260n\0\264w\0\264w"
"\0\264w\0\264w\0\264w\0\253f\0\350\342\345\363\363\377\352\351\377\360"
"\370\377\261p\0\264v\0\264w\0\264w\0\264w\0\264w\0\262s\0\264\177#\332"
"\337\377\362\361\377\377\377\377\351\326\255\256k\0\264w\0\264w\0\264"
"w\0\264w\0\264w\0\264w\0\262t\0\257m\0\254p\6\322\254d\356\336\273\364"
"\362\372\334\340\377\367\376\377\376\377\377\365\372\377\335\332\377"
"\343\330\323\336\303\217\302\221/\255l\0\262t\0\264w\0\264w\0\264w\0"
"\264w\0\264w\0\262t\0\255m\0\353\360\377\377\377\377\377\377\377\377"
"\377\377\343\323\302\253g\0\264v\0\264w\0\264w\0\264w\0\264w\0\264w\0"
"\261r\0\257m\0\304\2235\340\305\221\360\346\327\326\324\377\342\345\377"
"\377\377\377\377\377\377\377\377\377\373\371\367\323\277\257\321\252"
"_\264x\1\256l\0\262s\0\264w\0\264w\0\264w\0\264w\0\264w\0\260o\0\302"
"\224;\377\377\377\377\377\377\362\360\377\373\377\377\263t\0\263u\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\262s\0\262s\0\345\316\243\377\377\377"
"\377\377\377\377\377\377\351\347\372\272\200\22\261r\0\264w\0\264w\0"
"\264w\0\264w\0\264w\0\264v\0\263v\0\257w\0\316J\0\345\272\340\377\340"
"\357\377\312\327\377\377\377\300\215&\261q\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\261r\0\267|\6\377\377\377\345\344\377\377\377\377\377\377"
"\377\336\302\211\256l\0\264w\0\264w\0\264w\0\264w\0\264w\0\257m\0\360"
"\342\307\345\343\374\377\377\366\374\377\377\265y\6\263v\0\264w\0\264"
"w\0\264w\0\264w\0\263u\0\275\206\33\377\377\377\375\373\366\375\372\366"
"\375\372\366\376\374\366\350\345\366\365\364\366\377\377\366\371\366"
"\366\354\350\366\347\345\366\350\344\366\345\342\366\377\375\366\376"
"\374\366\376\374\366\377\375\366\362\356\366\315\310\366\353\347\366"
"\377\375\366\377\376\366\332\322\347\346\347\377\333\330\377\344\345"
"\377\345\337\357\254g\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\263"
"u\0\260o\0\265u\0\312\241P\312\263\253\367\362\361\377\377\377\377\377"
"\377\377\377\377\377\377\377\364\365\377\345\333\335\343\314\240\310"
"\234E\257m\0\262r\0\264w\0\264w\0\264w\0\264w\0\264w\0\263u\0\253d\0"
"\374\371\363\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377NNN\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\320\320\320\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\331\326\377\377\377\377"
"\377\377\377\372\372\377\346\343\377\363\363\377\366\365\377\325\323"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\356"
"\355\377\350\347\377\377\377\377\377\377\377\363\363\377\367\374\377"
"\315\255z\260n\0\264w\0\264w\0\264w\0\264w\0\264w\0\254g\0\372\364\345"
"\377\377\377\376\374\377\345\354\377\255k\0\264v\0\264w\0\264w\0\264"
"w\0\264w\0\262s\0\302\216#\377\377\377\325\323\377\362\364\377\334\307"
"\255\255j\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\257m\0\330\266"
"v\377\377\377\340\344\377\365\370\377\361\362\377\366\366\377\340\336"
"\377\360\357\377\360\357\377\375\377\377\377\377\377\377\377\377\377"
"\377\377\325\261l\257m\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0\254"
"g\0\367\357\341\347\346\377\332\331\377\362\365\377\335\277\207\257l"
"\0\264w\0\264w\0\264w\0\264w\0\264w\0\264v\0\256k\0\360\343\305\377\377"
"\377\372\376\377\355\357\377\376\377\377\371\372\377\351\347\377\353"
"\353\377\360\357\377\357\360\377\377\377\377\377\377\377\377\377\377"
"\327\275\221\257n\0\263u\0\264w\0\264w\0\264w\0\264w\0\263u\0\257l\0"
"\376\377\377\322\317\377\341\340\377\374\377\377\262q\0\263u\0\264w\0"
"\264w\0\264w\0\264w\0\264w\0\256l\0\335\312\263\375\377\377\377\377\377"
"\377\377\377\353\353\377\376\377\377\352\327\256\256l\0\264w\0\264w\0"
"\264w\0\264w\0\264w\0\264w\0\262t\0\274q\1\357s\232\367\377\377\355\363"
"\377\354\360\377\373\377\377\334\327\365\257l\0\263u\0\264w\0\264w\0"
"\264w\0\264w\0\263v\0\253g\0\370\364\366\333\332\377\370\370\377\375"
"\377\377\330\273\211\256l\0\264w\0\264w\0\264w\0\264w\0\264w\0\254h\0"
"\363\351\330\317\320\377\365\365\377\377\377\377\263v\0\263u\0\264w\0"
"\264w\0\264w\0\264w\0\262t\0\262y\25\373\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\372\372\377\323\322\377\350\350\377\363"
"\364\377\377\377\377\377\377\377\377\377\377\373\373\377\346\346\377"
"\377\377\377\370\370\377\353\352\377\364\365\377\377\377\377\364\364"
"\377\351\351\377\375\376\377\372\372\377\346\346\377\337\336\377\361"
"\362\377\375\372\357\253f\0\264w\0\264w\0\264w\0\264w\0\264w\0\264w\0"
"\260o\0\307\231B\361\363\377\347\354\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\357\356\377\354\354\377\377\377\377"
"\377\377\377\377\377\377\351\326\262\254j\0\263u\0\264w\0\264w\0\264"
"w\0\264w\0\264w\0\255i\0\342\314\235\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377qqq\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\271\271\271\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\340\337\377\372\370\377\377\377\377\362\361\377\326\324\377"
"\343\342\377\377\377\377\334\333\377\364\364\377\377\377\377\373\373"
"\377\370\367\377\377\377\377\377\377\377\330\325\377\376\376\377\375"
"\375\377\321\315\377\321\322\377\321\261z\260n\0\264w\0\264w\0\264w\0"
"\264w\0\264w\0\255h\0\341\332\345\364\364\377\372\373\377\377\377\377"
"\260n\0\264v\0\264w\0\264w\0\264w\0\264w\0\262r\0\274\207#\370\376\377"
"\366\365\377\343\345\377\350\325\255\256k\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\263u\0\260p\0\375\377\377\361\362\377\363\361\377\340\335"
"\377\357\355\377\350\347\377\343\341\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\257r\0\262t"
"\0\264w\0\264w\0\264w\0\264w\0\264w\0\255j\0\332\304\244\363\365\377"
"\371\372\377\352\355\377\311\244i\257n\0\264w\0\264w\0\264w\0\264w\0"
"\264w\0\263t\0\270\200\24\356\365\377\344\344\377\370\366\377\377\377"
"\377\377\377\377\377\377\377\374\374\377\344\343\377\347\346\377\350"
"\346\377\361\360\377\377\377\377\357\360\377\374\377\377\311\234B\261"
"q\0\264w\0\264w\0\264w\0\264w\0\264w\0\253g\0\353\352\377\377\377\377"
"\377\377\377\377\377\377\261q\0\263u\0\264w\0\264w\0\264w\0\264w\0\263"
"v\0\255i\0\377\377\377\372\372\377\355\354\377\332\330\377\344\343\377"
"\360\361\377\357\351\377\254g\0\264v\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\261p\0\325\276\207\356\367\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\351\357\377\305\223.\261q\0\264w\0\264w\0\264w\0\264w\0"
"\264w\0\255i\0\350\327\276\352\354\377\377\377\377\377\377\377\335\301"
"\211\256l\0\264w\0\264w\0\264w\0\264w\0\264w\0\254h\0\370\356\325\345"
"\345\377\377\377\377\377\377\377\261r\0\263u\0\264w\0\264w\0\264w\0\264"
"w\0\263t\0\275\205\23\347\354\377\373\373\377\356\355\377\353\352\377"
"\353\352\377\367\367\377\377\377\377\342\337\377\373\374\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\355\354\377\322\317\377\350"
"\345\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\332\330\377\345\342\377\351\350\377\377\377\377\377\377\377\373\370"
"\357\252e\0\264w\0\264w\0\264w\0\264w\0\264w\0\263v\0\256k\0\357\360"
"\377\362\364\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\347\344\377\361\361\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\306\230>\260p\0\264w\0\264w\0\264w\0\264w\0"
"\264w\0\257m\0\321\253a\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\237\237\237\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\235\235"
"\235\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\376\376\377\334\331\377\377\377\377\377\377\377\357\356\377"
"\334\332\377\363\363\377\351\350\377\332\330\377\374\373\377\305\302"
"\377\327\325\377\377\377\377\377\377\377\375\376\377\332\327\377\377"
"\377\377\373\374\377\365\372\377\312\252z\257n\0\264w\0\264w\0\264w\0"
"\264w\0\264w\0\256i\0\334\324\345\303\300\377\367\366\377\371\377\377"
"\256k\0\263v\0\264w\0\264w\0\264w\0\264w\0\262s\0\302\215#\377\377\377"
"\362\361\377\356\357\377\316\271\255\256k\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\261q\0\303\224A\343\347\377\371\371\377\364\363\377\355\353"
"\377\364\364\377\377\377\377\356\354\377\343\341\377\377\377\377\377"
"\377\377\377\377\377\372\371\377\352\351\377\365\374\377\323\257g\260"
"o\0\264w\0\264w\0\264w\0\264w\0\264w\0\256l\0\333\275\200\377\377\377"
"\377\377\377\377\377\377\317\250X\260o\0\264w\0\264w\0\264w\0\264w\0"
"\264w\0\261q\0\304\235\\\371\376\377\360\357\377\347\345\377\357\356"
"\377\377\377\377\353\352\377\361\357\377\377\377\377\377\377\377\377"
"\377\377\362\361\377\321\317\377\346\344\377\370\375\377\331\270v\260"
"n\0\264w\0\264w\0\264w\0\264w\0\264w\0\254g\0\350\342\353\361\363\377"
"\377\377\377\355\364\377\261q\0\263v\0\264w\0\264w\0\264w\0\264w\0\262"
"s\0\272\200\21\377\377\377\377\377\377\360\360\377\363\362\377\377\377"
"\377\377\377\377\377\377\377\264w\0\263u\0\264w\0\264w\0\264w\0\264w"
"\0\264w\0\256j\0\312\273\312\377\377\377\377\377\377\377\377\377\377"
"\377\377\373\373\377\360\364\377\335\276~\257m\0\264w\0\264w\0\264w\0"
"\264w\0\264w\0\257l\0\323\271\231\370\374\377\377\377\377\377\377\377"
"\336\302\211\256l\0\264w\0\264w\0\264w\0\264w\0\264w\0\254g\0\343\327"
"\325\335\335\377\344\342\377\377\377\377\263u\0\263u\0\264w\0\264w\0"
"\264w\0\264w\0\262s\0\267\177\23\366\375\377\330\325\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\344\343"
"\377\367\367\377\375\375\377\352\350\377\351\346\377\377\377\377\377"
"\377\377\365\364\377\344\343\377\372\372\377\377\377\377\362\361\377"
"\346\345\377\352\350\377\336\334\377\377\377\377\377\377\377\377\377"
"\377\371\366\357\253f\0\264w\0\264w\0\264w\0\264w\0\264w\0\262s\0\273"
"\207*\353\360\377\355\354\377\371\371\377\377\377\377\377\377\377\377"
"\377\377\341\340\377\370\370\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\357\340\305\254i\0\264w\0\264w\0"
"\264w\0\264w\0\264w\0\260p\0\306\230=\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\302\302\302\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\207\207\207\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\337\334\377\373\373\377\377"
"\377\377\375\376\377\377\377\377\377\377\377\377\377\377\332\330\377"
"\361\360\377\366\366\377\355\355\377\335\332\377\377\377\377\377\377"
"\377\362\361\377\346\344\377\377\377\377\377\377\377\331\272z\257m\0"
"\264w\0\264w\0\264w\0\264w\0\264w\0\255h\0\343\334\345\331\330\377\350"
"\347\377\377\377\377\260n\0\264v\0\264w\0\264w\0\264w\0\264w\0\262s\0"
"\266\200#\342\347\377\377\377\377\377\377\377\342\316\255\256k\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\257n\0\333\276\201\364\370\377\342\341"
"\377\376\376\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\342\337\377\346\344\377\355\354\377\363\362\377\377\377\377"
"\377\377\377\351\327\262\255j\0\264w\0\264w\0\264w\0\264w\0\264w\0\256"
"l\0\331\273\177\377\377\377\377\377\377\377\377\377\304\231R\260o\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\261p\0\322\253a\377\377\377\377\377\377"
"\377\377\377\362\362\377\323\320\377\345\344\377\365\364\377\377\377"
"\377\377\377\377\354\354\377\361\360\377\377\377\377\377\377\377\377"
"\377\377\312\250r\247_\0\253f\0\255h\0\255i\0\256j\0\255h\0\246[\0\366"
"\353\322\371\373\377\326\322\377\365\375\377\261q\0\263u\0\264w\0\264"
"w\0\264w\0\264w\0\261q\0\307\233B\377\377\377\363\362\377\355\354\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\276\212\"\262s\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\254f\0\364\363\375\367\367\377\356\355"
"\377\355\353\377\357\356\377\324\321\377\367\373\377\337\313\255\255"
"j\0\264w\0\264w\0\264w\0\264w\0\264w\0\260n\0\302\247\227\362\367\377"
"\357\356\377\362\365\377\322\266\211\256l\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\254h\0\366\354\325\377\377\377\351\350\377\377\377\377\264"
"u\0\263u\0\264w\0\264w\0\264w\0\264w\0\262s\0\272\202\23\377\377\377"
"\367\366\377\346\345\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\360\356\377\331\326\377\333\330\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\347\346\377"
"\337\334\377\341\340\377\351\350\377\342\340\377\327\324\377\377\377"
"\377\377\377\377\353\354\377\344\340\357\253f\0\264w\0\264w\0\264w\0"
"\264w\0\264w\0\261q\0\322\255b\377\377\377\353\352\377\353\352\377\377"
"\377\377\367\366\377\341\340\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\252d\0\264w\0\264w\0\264w\0\264w\0\264w\0\260p\0\305\227;\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\360\360\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0kkk\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\376\376"
"\377\331\327\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\323\317\377\375\375\377\345\343\377\367\366\377"
"\377\377\377\377\377\377\377\377\377\350\345\377\356\355\377\377\377"
"\377\330\271z\256m\0\264w\0\264w\0\264w\0\264w\0\264w\0\254g\0\373\365"
"\345\377\377\377\343\341\377\350\356\377\256k\0\264v\0\264w\0\264w\0"
"\264w\0\264w\0\262s\0\302\216#\365\375\377\323\320\377\363\365\377\345"
"\321\255\256j\0\264w\0\264w\0\264w\0\264w\0\264w\0\256l\0\324\276\254"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\367\370\377\353\352\377\353\350\377\344\342\377\367"
"\366\377\377\377\377\377\377\377\363\350\322\254h\0\264w\0\264w\0\264"
"w\0\264w\0\264w\0\257m\0\327\270\177\377\377\377\351\350\377\373\377"
"\377\316\244P\260n\0\264w\0\264w\0\264w\0\264w\0\264w\0\262s\0\276\211"
"\37\377\377\377\377\377\377\350\347\377\363\362\377\377\377\377\377\377"
"\377\370\367\377\345\344\377\323\317\377\354\352\377\377\377\377\377"
"\377\377\377\377\377\353\354\377\360\354\360\365\353\327\367\360\337"
"\370\357\337\310\276\337\341\326\337\342\331\337\357\343\322\372\372"
"\377\351\351\377\377\377\377\377\377\377\263s\0\263u\0\264w\0\264w\0"
"\264w\0\264w\0\260o\0\316\252g\373\377\377\343\342\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\304\2222\261r\0\264w\0\264"
"w\0\264w\0\264w\0\264w\0\251c\0\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\341\340\377\377\377\377\356\340\303\254h\0\264w"
"\0\264w\0\264w\0\264w\0\264w\0\261o\0\304\251\227\377\377\377\377\377"
"\377\377\377\377\337\303\211\257l\0\264w\0\264w\0\264w\0\264w\0\264w"
"\0\254g\0\342\325\325\366\371\377\315\313\377\372\377\377\261t\0\263"
"u\0\264w\0\264w\0\264w\0\264w\0\262s\0\271\201\23\377\377\377\377\377"
"\377\360\356\377\354\353\377\377\377\377\364\364\377\352\351\377\351"
"\347\377\376\376\377\377\377\377\370\370\377\341\340\377\375\373\377"
"\377\377\377\377\377\377\376\376\377\352\347\377\342\340\377\351\350"
"\377\365\366\377\351\350\377\336\334\377\376\375\377\367\370\377\344"
"\341\377\376\377\377\375\371\357\254g\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\260o\0\275\230p\343\345\377\377\377\377\377\377\377\353\351\377\352"
"\351\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\251b\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\260p\0\305\227;\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0NN"
"N\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\345"
"\344\377\363\361\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\366\365\377\337\335\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\341\336\377\373\377\377\332"
"\273z\257m\0\264w\0\264w\0\264w\0\264w\0\264w\0\253g\0\352\344\345\360"
"\361\377\363\362\377\373\377\377\257l\0\264v\0\264w\0\264w\0\264w\0\264"
"w\0\262r\0\274\206#\372\377\377\374\375\377\344\346\377\332\306\255\256"
"k\0\264w\0\264w\0\264w\0\264w\0\264w\0\256j\0\335\312\263\342\343\377"
"\371\367\377\377\377\377\377\377\377\377\377\377\366\366\377\351\347"
"\377\365\365\377\377\377\377\377\377\377\377\377\377\357\355\377\342"
"\337\377\373\374\377\354\344\340\254h\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\257m\0\304\245\177\333\335\377\352\351\377\377\377\377\334\275|\256"
"k\0\264v\0\264w\0\264w\0\264w\0\264w\0\263v\0\255k\0\327\300\247\343"
"\350\377\377\377\377\377\377\377\377\377\377\377\377\377\363\362\377"
"\352\351\377\377\377\377\373\373\377\354\353\377\347\346\377\323\317"
"\377\365\364\377\377\377\377\377\377\377\377\377\377\347\347\377\377"
"\377\377\377\377\377\377\377\377\347\350\377\333\333\377\356\355\377"
"\355\355\377\372\377\377\261r\0\263u\0\264w\0\264w\0\264w\0\264w\0\260"
"o\0\324\261k\334\337\377\365\364\377\353\352\377\356\355\377\353\351"
"\377\357\356\377\366\374\377\275\2155\262r\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\251b\0\377\377\377\377\377\377\377\377\377\377\377\377\363"
"\362\377\364\363\377\377\377\377\357\343\310\254h\0\264w\0\264w\0\264"
"w\0\264w\0\264w\0\261o\0\276\243\227\367\372\377\355\354\377\363\367"
"\377\324\267\211\256l\0\264w\0\264w\0\264w\0\264w\0\264w\0\254h\0\364"
"\352\325\377\377\377\360\357\377\377\377\377\266w\0\263u\0\264w\0\264"
"w\0\264w\0\264w\0\262s\0\272\202\23\377\377\377\377\377\377\367\366\377"
"\334\331\377\330\325\377\372\371\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\352\351\377\354\353\377\355"
"\354\377\343\341\377\337\334\377\370\370\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\347\346\377\360\357\377\377\377\377\377\377"
"\377\353\346\357\253f\0\264w\0\264w\0\264w\0\264w\0\264w\0\260o\0\315"
"\252o\377\377\377\377\377\377\342\340\377\367\367\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\250b\0\264w\0\264w\0"
"\264w\0\264w\0\264w\0\260p\0\305\227;\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:::\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\327\324\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\341\341\377\345\344\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\340\344\377\315\255"
"z\257n\0\264w\0\264w\0\264w\0\264w\0\264w\0\254h\0\356\347\345\377\377"
"\377\377\377\377\374\377\377\257l\0\264v\0\264w\0\264w\0\264w\0\264w"
"\0\262s\0\302\214#\377\377\377\361\360\377\362\365\377\330\304\255\256"
"k\0\264w\0\264w\0\264w\0\264w\0\264w\0\255i\0\353\327\263\377\377\377"
"\353\352\377\346\343\377\365\364\377\354\353\377\366\366\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\370"
"\367\377\335\334\377\331\317\337\254h\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\257m\0\334\276\177\377\377\377\377\377\377\354\355\377\345\343\375"
"\255p\0\257m\0\262t\0\264w\0\264w\0\264w\0\264w\0\262s\0\260m\0\305\233"
"W\336\323\327\355\357\377\371\377\377\362\371\377\375\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\360\370\377\377\377\377\377"
"\377\377\365\374\377\355\365\377\333\341\377\375\377\377\377\377\377"
"\377\377\377\366\370\377\355\354\377\377\377\377\377\377\377\377\377"
"\377\353\361\377\261q\0\263u\0\264w\0\264w\0\264w\0\264w\0\260o\0\300"
"\232k\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\366\374\377\272\2105\262r\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\251b\0\370\377\377\355\353\377\360\356\377\362\361\377\327\324\377"
"\361\360\377\363\365\377\343\325\310\254h\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\261o\0\277\244\227\377\377\377\377\377\377\377\377\377\336"
"\301\211\256l\0\264w\0\264w\0\264w\0\264w\0\264w\0\254g\0\352\337\325"
"\365\366\377\356\356\377\330\335\377\263v\0\263u\0\264w\0\264w\0\264"
"w\0\264w\0\262s\0\266~\23\363\372\377\354\352\377\370\370\377\377\377"
"\377\364\365\377\345\344\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\356\354\377\342\341\377\350\347\377"
"\366\364\377\377\377\377\377\377\377\377\377\377\377\377\377\351\350"
"\377\351\346\377\377\377\377\377\377\377\361\360\377\341\342\377\364"
"\361\357\254g\0\264w\0\264w\0\264w\0\264w\0\264w\0\260n\0\327\264o\367"
"\374\377\345\344\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\250b\0\264w\0\264w\0\264w\0"
"\264w\0\264w\0\260p\0\305\227;\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\22\22\22\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$$$\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\373\372\377\333\331\377\377\377\377\377\377\377\375\375\377\347"
"\346\377\346\344\377\377\377\377\331\326\377\355\353\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\313\253"
"z\257n\0\264w\0\264w\0\264w\0\264w\0\264w\0\255i\0\341\332\345\341\341"
"\377\360\357\377\377\377\377\257m\0\263v\0\264w\0\264w\0\264w\0\264w"
"\0\262s\0\264~#\332\336\377\377\377\377\377\377\377\337\312\255\256k"
"\0\264w\0\264w\0\264w\0\264w\0\264w\0\255i\0\352\327\263\377\377\377"
"\372\372\377\351\347\377\332\330\377\347\346\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\373\371\377\351\347\377\365"
"\364\377\377\377\377\371\361\337\254g\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\256l\0\331\273\177\377\377\377\377\377\377\377\377\377\357\361\377"
"\357\356\376\320\251\\\257m\0\254g\0\257l\0\261p\0\262q\0\262r\0\261"
"q\0\260n\0\256i\0\260n\0\257o\0\261r\0\264w\0\263v\0\263u\0\263v\0\261"
"r\0\264w\0\264w\0\264w\0\265x\0\264u\0\271}\6\266\201\37\273\221S\320"
"\274\261\337\341\377\355\357\377\364\363\377\373\373\377\345\344\377"
"\377\377\377\264t\0\263u\0\264w\0\264w\0\264w\0\264w\0\260o\0\325\260"
"k\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\350\356\377\307\2275\261r\0\264w\0\264w\0\264w\0\264w\0\264w\0\251"
"b\0\377\377\377\377\377\377\377\377\377\377\377\377\341\337\377\377\377"
"\377\377\377\377\361\342\310\254h\0\264w\0\264w\0\264w\0\264w\0\264w"
"\0\261n\0\311\255\227\377\377\377\377\377\377\377\377\377\336\302\211"
"\256l\0\264w\0\264w\0\264w\0\264w\0\264w\0\254g\0\352\337\325\377\377"
"\377\377\377\377\373\377\377\257p\0\263u\0\264w\0\264w\0\264w\0\264w"
"\0\262s\0\272\202\23\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\372\372\377\340\335\377\376\376\377\377\377\377\377\377"
"\377\352\351\377\343\341\377\346\345\377\347\344\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\357\356\377\346\345\377\374\374\377"
"\377\377\377\377\377\377\372\371\377\332\332\377\364\365\377\351\343"
"\357\254g\0\264w\0\264w\0\264w\0\264w\0\264w\0\257n\0\310\243o\370\376"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\250b\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\260p\0\305\227;\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\77\77\77\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\16\16\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\355\352\377\350\347\377\377\377\377\377\377"
"\377\350\346\377\313\307\377\367\366\377\377\377\377\320\316\377\343"
"\340\377\377\377\377\333\330\377\317\315\377\373\373\377\377\377\377"
"\331\272z\257m\0\264w\0\264w\0\264w\0\264w\0\264w\0\256i\0\324\314\345"
"\357\357\377\342\337\377\377\377\377\260m\0\264v\0\264w\0\264w\0\264"
"w\0\264w\0\262s\0\302\216#\377\377\377\321\315\377\357\362\377\342\315"
"\255\255j\0\264w\0\264w\0\264w\0\264w\0\264w\0\255i\0\340\315\263\356"
"\360\377\363\362\377\377\377\377\377\377\377\375\376\377\344\342\377"
"\346\345\377\377\377\377\377\377\377\352\347\377\360\357\377\377\377"
"\377\377\377\377\377\377\377\366\357\337\253f\0\264w\0\264w\0\264w\0"
"\264w\0\264w\0\257m\0\332\275\177\377\377\377\371\370\377\346\345\377"
"\374\375\377\377\377\377\377\377\377\377\377\377\364\352\322\314\262"
"\225\277\232k\273\217J\304\221,\275\203\20\265w\0\256h\0\252d\0\252d"
"\0\253f\0\254h\0\255j\0\256k\0\256l\0\260o\0\261r\0\262t\0\263u\0\263"
"u\0\263u\0\263t\0\262s\0\261p\0\257k\0\273\202\15\377\373\361\377\377"
"\377\342\337\377\343\340\377\371\377\377\256o\0\263u\0\264w\0\264w\0"
"\264w\0\264w\0\257n\0\325\260k\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\355\353\377\377\377\377\307\2265\261q\0\264w\0\264"
"w\0\264w\0\264w\0\264w\0\251b\0\377\377\377\377\377\377\377\377\377\377"
"\377\377\341\340\377\377\377\377\377\377\377\360\342\310\254h\0\264w"
"\0\264w\0\264w\0\264w\0\264w\0\257m\0\316\265\227\335\337\377\370\367"
"\377\351\354\377\327\272\211\256l\0\264w\0\264w\0\264w\0\264w\0\264w"
"\0\254h\0\364\352\325\377\377\377\377\377\377\377\377\377\261s\0\263"
"u\0\264w\0\264w\0\264w\0\264w\0\262s\0\271\201\23\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\335"
"\333\377\344\342\377\341\340\377\337\334\377\364\363\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\360\357\377\347\346\377\373\373"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\340"
"\335\377\336\335\377\370\363\357\254g\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\257n\0\326\263o\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\250b\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\260p\0\305\227;\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377ccc\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\3\3\375\375\375\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\335\332\377"
"\367\365\377\377\377\377\377\377\377\344\341\377\331\327\377\361\360"
"\377\374\374\377\340\336\377\356\356\377\353\352\377\353\352\377\352"
"\351\377\374\377\377\331\272z\256m\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\255h\0\353\344\345\353\353\377\352\351\377\350\357\377\260m\0\264"
"v\0\264w\0\264w\0\264w\0\264w\0\262r\0\272\206#\364\372\377\377\377\377"
"\377\377\377\351\324\255\255i\0\264w\0\264w\0\264w\0\264w\0\264w\0\255"
"i\0\343\320\263\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\322\317\377\317\314\377\376\374\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\367\357\337\254g\0\264w"
"\0\264w\0\264w\0\264w\0\264w\0\257m\0\315\256\177\357\364\377\362\361"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\355"
"\360\377\374\377\377\377\377\377\377\377\377\364\373\377\363\371\377"
"\343\350\377\354\361\377\377\377\377\372\364\346\361\345\310\352\325"
"\251\313\256\213\330\266s\321\255e\307\231>\263u\0\256k\0\262r\0\264"
"v\0\264w\0\264w\0\264w\0\264w\0\263v\0\257n\0\301\215%\364\371\377\363"
"\363\377\377\377\377\377\377\377\262r\0\263u\0\264w\0\264w\0\264w\0\264"
"w\0\257n\0\320\254k\357\363\377\345\344\377\367\365\377\363\363\377\351"
"\350\377\311\305\377\365\373\377\277\2175\261q\0\264w\0\264w\0\264w\0"
"\264w\0\264w\0\251b\0\377\377\377\375\375\377\370\371\377\351\350\377"
"\316\313\377\346\345\377\366\367\377\352\336\310\254h\0\264w\0\264w\0"
"\264w\0\264w\0\264w\0\256l\0\335\303\227\354\356\377\377\377\377\377"
"\377\377\336\302\211\256l\0\264w\0\264w\0\264w\0\264w\0\264w\0\255i\0"
"\334\321\325\360\361\377\353\352\377\375\377\377\263u\0\263u\0\264w\0"
"\264w\0\264w\0\264w\0\262t\0\272\202\23\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\367\366\377\355\354\377\343\342\377\352"
"\351\377\366\366\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\357\357\377\346\344\377\371\371\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\362\361\377\345\345\377\365\364\377\347"
"\350\377\355\347\357\254g\0\264w\0\264w\0\264w\0\264w\0\264w\0\257m\0"
"\325\262o\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\250b\0\264w\0\264"
"w\0\264w\0\264w\0\264w\0\260p\0\305\227;\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\217\217\217\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\355\355\355\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\330\326\377\373\373\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\376\376\377\335\332\377\367\366\377\373"
"\373\377\340\336\377\361\365\377\331\272z\256m\0\264w\0\264w\0\264w\0"
"\264w\0\264w\0\254g\0\353\344\345\370\372\377\347\345\377\347\355\377"
"\257l\0\264v\0\264w\0\264w\0\264w\0\264w\0\262r\0\300\213#\377\377\377"
"\377\377\377\377\377\377\347\323\255\254i\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\255i\0\351\326\263\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\364\363\377\351\346\377\376\377\377\377\377\377"
"\352\351\377\344\342\377\356\356\377\377\377\377\377\377\377\344\334"
"\337\254g\0\264w\0\264w\0\264w\0\264w\0\264w\0\257m\0\312\253\177\357"
"\363\377\350\345\377\351\353\377\361\350\332\357\341\307\362\345\315"
"\325\307\315\360\345\315\362\346\315\361\345\315\356\336\275\377\377"
"\377\353\351\377\370\367\377\366\365\377\353\353\377\354\353\377\356"
"\360\377\340\341\377\373\376\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\336\317\307\265{\3\261q\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\263u\0\252c\0\360\365\377\377\377\377\377\377\377\377\377\377\261"
"q\0\263u\0\264w\0\264w\0\264w\0\264w\0\257n\0\325\260k\377\377\377\377"
"\377\377\377\377\377\377\377\377\357\356\377\366\365\377\377\377\377"
"\305\2255\261q\0\264w\0\264w\0\264w\0\264w\0\264w\0\251b\0\377\377\377"
"\377\377\377\377\377\377\363\362\377\363\361\377\377\377\377\377\377"
"\377\360\342\310\254h\0\264w\0\264w\0\264w\0\264w\0\264w\0\256k\0\344"
"\314\227\345\350\377\377\377\377\377\377\377\337\302\211\257l\0\264w"
"\0\264w\0\264w\0\264w\0\264w\0\256i\0\322\305\325\377\377\377\377\377"
"\377\377\377\377\264u\0\263u\0\264w\0\264w\0\264w\0\264w\0\263t\0\263"
"{\23\377\377\377\377\377\377\377\377\377\360\357\377\351\350\377\342"
"\340\377\356\356\377\337\335\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\355\354\377\346\345\377\373\376\377\377\374\365\376\375"
"\367\376\375\373\376\375\373\376\375\373\376\375\373\346\344\373\340"
"\331\355\372\374\377\364\363\377\372\372\377\350\344\357\253g\0\264w"
"\0\264w\0\264w\0\264w\0\264w\0\257m\0\325\262o\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\250b\0\264w\0\264w\0\264w\0\264w\0\264w\0\260p\0"
"\305\227;\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\265\265\265\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\332\332\332\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\325"
"\323\377\374\374\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\330\325\377\351\350\377\377\377\377\377\377"
"\377\330\271z\256m\0\264w\0\264w\0\264w\0\264w\0\264w\0\253f\0\370\362"
"\345\377\377\377\377\377\377\377\377\377\257n\0\264v\0\264w\0\264w\0"
"\264w\0\264w\0\262r\0\277\212#\377\377\377\377\377\377\377\377\377\347"
"\323\255\254i\0\264w\0\264w\0\264w\0\264w\0\264w\0\255j\0\350\326\263"
"\377\377\377\377\377\377\377\377\377\376\376\377\327\325\377\371\370"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\372"
"\371\377\332\330\377\322\322\377\356\347\337\254h\0\264w\0\264w\0\264"
"w\0\264w\0\264w\0\257m\0\333\275\177\377\377\377\377\377\377\377\377"
"\377\305\230C\250b\0\254h\0\254h\0\254h\0\253g\0\253g\0\244Z\0\345\343"
"\377\372\372\377\377\377\377\377\377\377\377\377\377\377\377\377\346"
"\344\377\367\370\377\355\354\377\350\347\377\351\350\377\352\351\377"
"\327\325\377\377\377\377\364\353\326\256l\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\264w\0\254g\0\377\377\377\377\377\377\377\377\377\377\377"
"\377\263s\0\263u\0\264w\0\264w\0\264w\0\264w\0\257n\0\324\257k\377\377"
"\377\377\377\377\377\377\377\377\377\377\336\335\377\377\377\377\377"
"\377\377\304\2245\261q\0\264w\0\264w\0\264w\0\264w\0\264w\0\250a\0\377"
"\377\377\377\377\377\377\377\377\352\352\377\367\367\377\377\377\377"
"\377\377\377\360\342\310\254h\0\264w\0\264w\0\264w\0\264w\0\264w\0\256"
"k\0\344\312\227\323\323\377\363\363\377\365\370\377\313\255\211\257m"
"\0\264w\0\264w\0\264w\0\264w\0\264w\0\255i\0\364\353\325\343\343\377"
"\377\377\377\377\377\377\260r\0\263u\0\264w\0\264w\0\264w\0\264w\0\263"
"t\0\263z\23\340\346\377\351\346\377\342\337\377\341\336\377\340\336\377"
"\346\344\377\323\321\377\334\332\377\377\377\377\377\377\377\352\351"
"\377\350\345\377\373\373\377\377\377\377\377\377\377\273\203\23\250a"
"\0\252d\0\252d\0\252d\0\253e\0\254f\0\247]\0\337\343\377\340\335\377"
"\377\377\377\375\372\357\254g\0\264w\0\264w\0\264w\0\264w\0\264w\0\257"
"m\0\325\262o\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\250b\0\264w"
"\0\264w\0\264w\0\264w\0\264w\0\260p\0\305\227;\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\340\340\340\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\305\305\305\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\326\322\377\373"
"\373\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\344\343\377\333\332\377\377\377\377\332\273z\257m\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\254g\0\371\363\345\377\377\377\377\377"
"\377\377\377\377\255l\0\263v\0\264w\0\264w\0\264w\0\264w\0\262r\0\277"
"\212#\377\377\377\377\377\377\377\377\377\351\324\255\255j\0\264w\0\264"
"w\0\264w\0\264w\0\264w\0\255j\0\330\303\263\347\351\377\365\364\377\360"
"\357\377\340\336\377\320\316\377\345\342\377\335\332\377\365\364\377"
"\372\372\377\376\376\377\377\377\377\352\351\377\366\367\377\377\377"
"\377\352\342\337\254g\0\264w\0\264w\0\264w\0\264w\0\264w\0\256l\0\331"
"\273\177\377\377\377\377\377\377\377\377\377\313\244\\\260o\0\264w\0"
"\264w\0\264w\0\264w\0\264w\0\254g\0\372\372\374\377\377\377\377\377\377"
"\377\377\377\377\377\377\345\342\377\375\374\377\377\377\377\377\377"
"\377\377\377\377\374\374\377\346\345\377\377\377\377\360\360\377\372"
"\377\377\254i\0\264w\0\264w\0\264w\0\264w\0\264w\0\264v\0\254h\0\337"
"\346\377\376\377\377\341\337\377\346\356\377\263r\0\263u\0\264w\0\264"
"w\0\264w\0\264w\0\257n\0\324\260k\377\377\377\377\377\377\377\377\377"
"\375\374\377\350\345\377\377\377\377\377\377\377\304\2245\261q\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\251b\0\377\377\377\377\377\377\377\377"
"\377\351\346\377\374\375\377\377\377\377\377\377\377\350\333\310\254"
"h\0\264w\0\264w\0\264w\0\264w\0\264w\0\256k\0\330\276\227\331\331\377"
"\310\302\377\330\331\377\320\264\211\257m\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\256j\0\343\330\325\341\342\377\331\326\377\377\377\377\264"
"u\0\263u\0\264w\0\264w\0\264w\0\264w\0\263u\0\265z\13\347\355\377\353"
"\352\377\366\366\377\377\377\377\370\370\377\352\351\377\361\360\377"
"\377\377\377\351\350\377\351\346\377\374\374\377\377\377\377\374\373"
"\377\347\346\377\371\377\377\274\206\31\262s\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\255g\0\377\377\377\377\377\377\365\366\377\340\332\357\253"
"f\0\264w\0\264w\0\264w\0\264w\0\264w\0\257m\0\325\262o\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\250b\0\264w\0\264w\0\264w\0\264w\0\264w"
"\0\260p\0\305\227;\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\254\254\254\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\325\322\377\371\372\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\371\371\377\375\374\377"
"\367\370\377\325\330\377\320\260z\257n\0\264w\0\264w\0\264w\0\264w\0"
"\264w\0\254g\0\331\322\345\367\371\377\377\377\377\377\377\377\255l\0"
"\263v\0\264w\0\264w\0\264w\0\264w\0\262r\0\277\212#\377\377\377\377\377"
"\377\366\371\377\327\303\255\255j\0\264w\0\264w\0\264w\0\264w\0\264w"
"\0\256j\0\354\331\263\372\376\377\335\333\377\341\336\377\350\347\377"
"\374\373\377\371\371\377\350\347\377\371\367\377\350\347\377\356\355"
"\377\327\324\377\377\377\377\370\367\377\377\377\377\371\362\337\254"
"g\0\264w\0\264w\0\264w\0\264w\0\264w\0\257m\0\333\275\177\377\377\377"
"\377\377\377\350\354\377\317\254p\257m\0\264w\0\264w\0\264w\0\264w\0"
"\264w\0\256k\0\345\332\324\356\360\377\353\352\377\353\352\377\330\325"
"\377\367\366\377\377\377\377\377\377\377\377\377\377\377\377\377\342"
"\337\377\377\377\377\377\377\377\377\377\377\377\377\377\255i\0\264w"
"\0\264w\0\264w\0\264w\0\264w\0\263v\0\260n\0\362\372\377\356\355\377"
"\337\334\377\362\372\377\261q\0\263u\0\264w\0\264w\0\264w\0\264w\0\257"
"n\0\320\254k\375\377\377\365\366\377\370\367\377\334\333\377\362\362"
"\377\367\367\377\377\377\377\302\2225\261q\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\251b\0\367\377\377\350\347\377\363\361\377\331\326\377\344"
"\341\377\364\362\377\370\371\377\347\331\310\255i\0\264w\0\264w\0\264"
"w\0\264w\0\264w\0\256k\0\344\313\227\365\370\377\315\312\377\377\377"
"\377\336\302\211\257m\0\264w\0\264w\0\264w\0\264w\0\264w\0\256i\0\306"
"\271\325\340\340\377\346\343\377\377\377\377\265w\0\263u\0\264w\0\264"
"w\0\264w\0\264w\0\264v\0\260p\0\376\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\366\365\377\351\350\377\356\355\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\322\320\377\340\336\377\376\377"
"\377\262q\0\263u\0\264w\0\264w\0\264w\0\264w\0\264w\0\254f\0\377\377"
"\377\343\342\377\364\365\377\374\371\357\253f\0\264w\0\264w\0\264w\0"
"\264w\0\264w\0\257m\0\325\262o\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\250b\0\264w\0\264w\0\264w\0\264w\0\264w\0\260p\0\305\227;\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\225\225\225\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\336\333\377\362\362\377\377\377"
"\377\377\377\377\352\350\377\314\312\377\307\303\377\377\377\377\377"
"\377\377\313\251z\260n\0\264w\0\264w\0\264w\0\264w\0\264w\0\254g\0\372"
"\362\345\356\357\377\336\335\377\377\377\377\257m\0\264v\0\264w\0\264"
"w\0\264w\0\264w\0\262s\0\273\206#\353\360\377\333\330\377\376\377\377"
"\353\327\255\256k\0\264w\0\264w\0\264w\0\264w\0\264w\0\255j\0\327\304"
"\263\371\373\377\377\377\377\377\377\377\375\375\377\352\351\377\346"
"\345\377\357\356\377\356\355\377\344\343\377\315\312\377\365\366\377"
"\377\377\377\347\345\377\327\327\377\347\340\337\255h\0\264w\0\264w\0"
"\264w\0\264w\0\264w\0\257m\0\317\257\177\356\360\377\331\326\377\377"
"\377\377\342\312\224\256k\0\264w\0\264w\0\264w\0\264w\0\264w\0\261q\0"
"\277\211!\377\375\366\377\377\377\347\350\377\373\373\377\362\363\377"
"\352\351\377\353\351\377\352\351\377\320\316\377\357\360\377\372\374"
"\377\377\377\377\377\377\377\332\274\177\256m\0\264w\0\264w\0\264w\0"
"\264w\0\264w\0\262t\0\266z\3\377\377\377\377\377\377\377\377\377\377"
"\377\377\263r\0\263u\0\264w\0\264w\0\264w\0\264w\0\257n\0\320\255k\377"
"\377\377\371\367\377\373\373\377\326\323\377\373\373\377\371\367\377"
"\377\377\377\302\2225\261q\0\264w\0\264w\0\264w\0\264w\0\264w\0\252c"
"\0\377\377\377\377\377\377\377\377\377\356\355\377\375\375\377\374\375"
"\377\356\360\377\341\324\310\256j\0\264w\0\264w\0\264w\0\264w\0\264w"
"\0\256k\0\343\311\227\377\377\377\337\336\377\370\373\377\324\270\211"
"\256l\0\264w\0\264w\0\264w\0\264w\0\264w\0\255i\0\367\355\325\377\377"
"\377\350\346\377\346\354\377\261t\0\263t\0\264w\0\264w\0\264w\0\264w"
"\0\264w\0\256l\0\347\325\255\377\377\377\377\377\377\352\351\377\347"
"\346\377\366\365\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\344\342\377\361\363\377\347\340\347\256j\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\263v\0\253h\0\371\377\377\377\377\377"
"\377\377\377\372\367\357\252e\0\264w\0\264w\0\264w\0\264w\0\264w\0\257"
"m\0\325\262o\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\250b\0\264w"
"\0\264w\0\264w\0\264w\0\264w\0\260p\0\305\227;\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\5\5\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0{{{\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\346\345\377\346\345\377\377\377\377\377"
"\377\377\376\376\377\373\372\377\344\343\377\350\354\377\321\261z\257"
"n\0\264w\0\264w\0\264w\0\264w\0\264w\0\252f\0\370\362\345\377\377\377"
"\377\377\377\353\363\377\255j\0\264v\0\264w\0\264w\0\264w\0\264w\0\262"
"s\0\275\207#\344\352\377\350\347\377\353\356\377\327\303\255\256k\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\255j\0\352\327\263\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\360\357\377\321"
"\317\377\347\345\377\354\353\377\370\367\377\362\361\377\346\344\377"
"\377\377\377\333\323\337\256i\0\264w\0\264w\0\264w\0\264w\0\264w\0\257"
"m\0\317\260\177\360\364\377\373\373\377\357\360\377\341\327\324\254g"
"\0\264v\0\264w\0\264w\0\264w\0\264w\0\263v\0\260o\0\257n\0\305\235]\350"
"\326\273\377\377\377\377\377\377\377\377\377\377\377\377\352\361\377"
"\377\377\377\377\377\377\364\361\361\315\266\243\272\2127\257l\0\262"
"t\0\264w\0\264w\0\264w\0\264w\0\264w\0\260p\0\302\217,\377\377\377\377"
"\377\377\377\377\377\377\377\377\261q\0\263u\0\264w\0\264w\0\264w\0\264"
"w\0\257n\0\324\260k\377\377\377\377\377\377\376\377\377\347\345\377\377"
"\377\377\377\377\377\377\377\377\304\2245\261q\0\264w\0\264w\0\264w\0"
"\264w\0\264w\0\253d\0\365\376\377\362\363\377\361\360\377\316\312\377"
"\321\317\377\340\337\377\336\337\377\325\306\310\256j\0\264w\0\264w\0"
"\264w\0\264w\0\264w\0\256k\0\327\276\227\366\371\377\357\357\377\347"
"\351\377\341\305\211\256l\0\264w\0\264w\0\264w\0\264w\0\264w\0\254h\0"
"\366\355\325\354\354\377\354\352\377\352\356\377\271\204$\261q\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\262r\0\257l\0\322\266\215\364\372\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\375\375\377\362\364\377\356\360\377\365\374\377\343\334\347\274"
"\204\21\261q\0\264w\0\264w\0\264w\0\264w\0\264w\0\262s\0\264v\0\377\377"
"\377\377\377\377\377\377\377\372\367\357\252e\0\264w\0\264w\0\264w\0"
"\264w\0\264w\0\257m\0\325\262o\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\250b\0\264w\0\264w\0\264w\0\264w\0\264w\0\260p\0\305\227;\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0]]]\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\355\354\377"
"\336\333\377\377\377\377\377\377\377\371\371\377\354\351\377\377\377"
"\377\331\272z\257m\0\264w\0\264w\0\264w\0\264w\0\264w\0\252e\0\367\361"
"\345\377\377\377\377\377\377\377\377\377\257m\0\264v\0\264w\0\264w\0"
"\264w\0\264w\0\262s\0\270\203#\347\353\377\363\362\377\350\352\377\312"
"\265\255\257k\0\264w\0\264w\0\264w\0\264w\0\264w\0\254i\0\351\325\263"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\352\350"
"\377\362\361\377\377\377\377\377\377\377\375\375\377\351\350\377\350"
"\347\377\352\351\377\367\370\377\337\325\337\256i\0\264w\0\264w\0\264"
"w\0\264w\0\264w\0\257m\0\330\271\177\377\377\377\346\345\377\361\361"
"\377\377\377\377\260u\10\260o\0\263u\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\263t\0\260p\0\255i\0\254h\0\264w\0\277\213&\303\2235\272\206+\272"
"\177\15\256l\0\255h\0\257l\0\262r\0\263v\0\264w\0\264w\0\264w\0\264w"
"\0\264w\0\262s\0\252e\0\344\320\246\377\377\377\377\377\377\377\377\377"
"\377\377\377\261q\0\263u\0\264w\0\264w\0\264w\0\264w\0\257n\0\324\260"
"k\377\377\377\377\377\377\355\354\377\370\367\377\377\377\377\377\377"
"\377\377\377\377\303\2225\261q\0\264w\0\264w\0\264w\0\264w\0\264w\0\254"
"e\0\343\352\377\377\377\377\356\355\377\345\343\377\342\340\377\377\377"
"\377\377\377\377\343\325\310\255i\0\264w\0\264w\0\264w\0\264w\0\264w"
"\0\256k\0\340\310\227\310\311\377\327\324\377\345\347\377\336\301\211"
"\257m\0\264w\0\264w\0\264w\0\264w\0\264w\0\255i\0\327\313\325\334\334"
"\377\356\353\377\372\375\377\336\301\211\255i\0\263u\0\264w\0\264w\0"
"\264w\0\264w\0\264w\0\262t\0\257m\0\265w\0\321\252^\347\323\253\370\362"
"\345\377\377\377\377\377\377\362\367\377\347\350\377\341\330\326\342"
"\311\223\302\2210\255j\0\261q\0\264v\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\257n\0\312\236H\377\377\377\377\377\377\377\377\377\372\367\357\252"
"e\0\264w\0\264w\0\264w\0\264w\0\264w\0\257m\0\325\262o\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\250b\0\264w\0\264w\0\264w\0\264w\0\264w"
"\0\260p\0\305\227;\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377VVV\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0EEE\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\374\374\377\333\330\377\365\365\377"
"\377\377\377\377\377\377\377\377\377\330\271z\256m\0\264w\0\264w\0\264"
"w\0\264w\0\264w\0\253f\0\367\361\345\377\377\377\377\377\377\377\377"
"\377\255l\0\263v\0\264w\0\264w\0\264w\0\264w\0\262s\0\275\211#\362\371"
"\377\363\362\377\370\372\377\346\322\255\256k\0\264w\0\264w\0\264w\0"
"\264w\0\264w\0\255i\0\352\326\263\377\377\377\377\377\377\377\377\377"
"\373\373\377\342\341\377\374\374\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\361\360\377\343\342\377\344"
"\333\337\255h\0\264w\0\264w\0\264w\0\264w\0\264w\0\256l\0\333\275\177"
"\346\350\377\342\342\377\375\374\377\346\347\377\351\341\342\302\217"
"+\256k\0\256i\0\257l\0\261o\0\261q\0\262s\0\263t\0\264v\0\264v\0\263"
"v\0\262t\0\262s\0\262r\0\262s\0\263t\0\263u\0\264v\0\264v\0\264v\0\263"
"u\0\263t\0\263s\0\262p\0\260m\0\256j\0\262p\0\327\264j\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\262r\0\263u\0\264w\0\264"
"w\0\264w\0\264w\0\260o\0\315\251k\377\377\377\363\362\377\345\343\377"
"\370\367\377\332\327\377\340\335\377\354\362\377\301\2215\262r\0\264"
"w\0\264w\0\264w\0\264w\0\264w\0\253e\0\347\356\377\363\362\377\353\352"
"\377\362\361\377\317\315\377\360\357\377\364\370\377\357\341\310\254"
"h\0\264w\0\264w\0\264w\0\264w\0\264w\0\255k\0\344\312\227\377\377\377"
"\377\377\377\360\362\377\302\244\211\260n\0\264w\0\264w\0\264w\0\264"
"w\0\264w\0\257k\0\350\335\325\345\345\377\377\377\377\377\377\377\377"
"\377\377\276\207\33\256j\0\261q\0\263u\0\264v\0\264w\0\264w\0\264w\0"
"\263v\0\262s\0\257n\0\254i\0\252e\0\251c\0\251d\0\252d\0\254g\0\255i"
"\0\256l\0\261q\0\263u\0\264w\0\264w\0\264w\0\264v\0\263u\0\262s\0\257"
"n\0\252d\0\364\353\331\377\377\377\377\377\377\377\377\377\372\367\357"
"\252e\0\264w\0\264w\0\264w\0\264w\0\264w\0\257m\0\325\262o\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\250b\0\264w\0\264w\0\264w\0\264w\0\264"
"w\0\260p\0\305\227;\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\200\200\200"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""222\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\342\341\377\345\344\377\377\377\377\377\377\377\323\260i\246]\0"
"\252e\0\252e\0\253e\0\253f\0\253f\0\246[\0\365\354\327\377\377\377\377"
"\377\377\377\377\377\250a\0\254g\0\255h\0\255h\0\253f\0\252e\0\251b\0"
"\273\201\17\377\377\377\377\377\377\377\377\377\344\313\236\245[\0\252"
"e\0\252e\0\252e\0\253e\0\254f\0\250^\0\330\302\243\376\377\377\377\377"
"\377\361\360\377\353\352\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\337\336\377\347\346\377\351\350\377\364\363\377"
"\377\377\377\364\352\322\244Y\0\252e\0\253f\0\253f\0\253f\0\252e\0\246"
"^\0\325\264n\377\377\377\377\377\377\376\375\377\355\355\377\342\342"
"\377\367\374\377\343\346\377\357\347\347\306\260\261\314\253\177\266"
"\213R\302\217)\264w\5\257n\0\260l\0\256l\0\257i\0\255j\0\255h\0\255h"
"\0\255i\0\256j\0\256k\0\257k\0\262o\0\260t\2\267\202&\271\215L\270\225"
"y\324\277\255\334\325\347\353\356\377\352\355\377\374\376\377\325\322"
"\377\377\377\377\332\327\377\377\377\377\255j\0\254g\0\255g\0\253f\0"
"\254g\0\253f\0\251`\0\302\231Z\310\310\377\355\354\377\255\250\377\307"
"\304\377\342\341\377\324\321\377\361\364\377\261z\"\251a\0\252e\0\253"
"f\0\253f\0\253f\0\252e\0\243W\0\377\377\377\377\377\377\377\377\377\377"
"\377\377\336\335\377\377\377\377\377\377\377\354\332\271\244Z\0\252e"
"\0\252e\0\253f\0\254g\0\255h\0\247_\0\337\302\207\377\377\377\332\330"
"\377\351\353\377\314\253y\250`\0\252e\0\252e\0\252e\0\252e\0\252e\0\247"
"\\\0\302\261\307\377\377\377\377\377\377\371\370\377\354\356\377\353"
"\355\377\330\271~\275\207\36\257m\0\255i\0\255h\0\254h\0\256k\0\257k"
"\0\255i\0\255h\0\254h\0\254h\0\254h\0\254h\0\254h\0\255h\0\255i\0\256"
"j\0\254h\0\253i\0\254h\0\254h\0\254g\0\253h\0\255l\0\266}\12\312\234"
"G\360\343\313\377\377\377\377\377\377\377\377\377\377\377\377\366\360"
"\342\243X\0\252e\0\252e\0\252e\0\252e\0\252e\0\246^\0\320\251^\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\241V\0\252e\0\252e\0\252e\0\252"
"e\0\252e\0\247`\0\277\215(\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\246"
"\246\246\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\36\36\36\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\370\366\377\334\331\377\366\366"
"\377\377\376\365\371\363\345\372\365\355\373\366\355\373\367\355\366"
"\360\355\351\343\355\373\365\340\330\327\377\336\334\377\377\377\377"
"\377\377\377\371\362\337\356\350\354\323\314\355\361\353\355\374\370"
"\355\374\367\355\372\365\351\354\347\350\345\346\377\355\353\377\377"
"\377\377\377\377\374\370\362\343\372\366\355\372\365\355\372\365\355"
"\371\364\355\360\353\355\340\327\342\343\341\375\342\341\377\344\342"
"\377\336\334\377\366\365\377\377\377\377\377\377\377\377\377\377\363"
"\364\377\363\361\377\365\364\377\345\344\377\375\374\377\377\377\377"
"\377\377\377\377\377\377\366\357\340\373\367\355\373\367\355\335\327"
"\355\370\364\355\372\365\355\371\363\345\362\356\365\357\360\377\354"
"\352\377\340\336\377\340\336\377\370\371\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\364\370\377\367\375\377\372\377\377\361\370"
"\377\371\377\377\355\357\377\346\346\377\323\317\366\347\343\362\342"
"\335\356\342\336\357\343\337\363\343\340\371\313\311\377\347\352\377"
"\377\377\377\337\345\377\357\366\377\334\340\377\326\331\377\364\367"
"\377\377\377\377\306\305\377\353\352\377\331\326\377\337\334\377\356"
"\355\377\317\315\377\374\377\377\316\304\341\334\326\353\370\363\355"
"\342\335\355\371\364\355\353\345\355\357\351\346\371\366\363\372\374"
"\377\377\377\377\340\335\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\372\366\352\371\364\350\372\365\355\373\367\355\334\326\355"
"\375\370\355\372\365\355\365\355\335\377\377\377\374\375\377\333\332"
"\377\326\322\377\340\335\377\377\377\377\377\377\377\377\377\377\367"
"\360\341\374\367\355\374\370\355\376\372\355\337\331\355\360\354\355"
"\344\333\344\353\350\372\346\345\377\340\335\377\357\357\377\356\354"
"\370\360\352\344\372\366\355\372\366\355\373\366\355\374\367\355\373"
"\366\355\372\362\341\366\367\377\352\352\377\351\350\377\362\360\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\376\376\377\356\356\377\355\355\377\326\323\377\361\360\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\371\372\377\347\345\377\354\355\377\376\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\366\356\337\372\365\355\372\365\355\372\365\355\372\365"
"\355\372\365\355\370\361\345\374\371\363\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\365\355\335\372\365\355\372\365\355\372\365\355\372"
"\365\355\372\365\355\371\363\350\372\365\353\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\321\321\321\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\16"
"\16\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\350\347\377\341\337\377\377\377\377\377\377\377\377"
"\377\377\361\362\377\324\323\377\273\267\377\370\371\377\376\377\377"
"\377\376\377\316\313\377\321\315\377\377\377\377\352\353\377\301\300"
"\377\335\334\377\360\361\377\357\360\377\377\377\377\377\377\377\377"
"\377\377\365\366\377\342\341\377\346\345\377\367\367\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\351\351\377\354\351\377\354\352\377\343\341\377\343\342\377\352"
"\350\377\355\354\377\325\323\377\337\334\377\346\344\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\345\344\377\376\377\377\377\377\377\377\377\377\377\377\377\350"
"\350\377\345\345\377\371\370\377\353\352\377\377\377\377\357\360\377"
"\357\355\377\347\344\377\354\353\377\343\341\377\327\324\377\361\361"
"\377\371\370\377\375\376\377\377\377\377\377\377\377\351\350\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\355\356\377"
"\375\375\377\377\377\377\377\377\377\377\377\377\377\377\377\342\340"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\340\337\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\337\335\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\335\336\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\347\347\377\365\364\377\377"
"\377\377\377\377\377\376\377\377\363\364\377\360\361\377\355\356\377"
"\341\341\377\345\350\377\364\370\377\361\365\377\356\356\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\374"
"\376\377\357\360\377\353\353\377\355\354\377\370\371\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\364\363\377\312\307\377\343\344\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\360\360\377\347\347\377\360\360\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\364\364\364\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\1\1\1\365\365\365\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\340\335\377\344\342\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\347\345\377\322\317\377\360\357\377\377\377\377\377\377\377\331"
"\330\377\332\330\377\377\377\377\377\377\377\333\331\377\345\343\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\361\360\377\342\341\377\346\344\377\367\367\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\372\371\377\354\354\377"
"\350\345\377\353\352\377\354\352\377\352\347\377\343\341\377\341\340"
"\377\353\352\377\353\352\377\365\364\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\343\342\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\335\334\377\341\340\377\350\347\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\342"
"\340\377\377\377\377\374\374\377\374\373\377\351\350\377\347\345\377"
"\345\343\377\330\327\377\346\345\377\363\362\377\354\352\377\342\341"
"\377\350\347\377\332\330\377\370\367\377\363\362\377\361\360\377\370"
"\367\377\366\366\377\345\344\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\365\365\377\354\352\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\360\360\377\357\356\377\355\355\377"
"\346\346\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\335\334\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\374\370\356\300\214)\266\212J\353\354"
"\377\331\326\377\353\353\377\341\340\377\340\337\377\353\353\377\356"
"\354\377\357\356\377\364\366\377\371\361\334\307\2276\331\270r\377\377"
"\377\377\377\377\377\377\377\377\377\377\362\361\377\351\350\377\352"
"\351\377\361\361\377\377\377\377\377\377\377\377\377\377\364\366\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\362\361"
"\377\330\325\377\351\350\377\372\372\377\364\366\377\344\345\377\373"
"\376\377\377\377\377\377\377\377\377\377\377\377\377\377\370\370\377"
"\350\347\377\350\350\377\373\375\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\346\346\346\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\371\371\377\336\335\377\347\345\377"
"\377\377\377\377\377\377\376\376\377\377\376\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\347\346\377\320\314\377\361"
"\360\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\357\356"
"\377\343\342\377\346\345\377\361\357\377\377\377\377\377\377\377\354"
"\353\377\351\350\377\340\336\377\340\337\377\356\355\377\366\365\377"
"\353\352\377\362\362\377\351\347\377\346\345\377\335\333\377\334\331"
"\377\351\347\377\354\353\377\332\326\377\353\352\377\377\377\377\377"
"\377\377\377\377\377\354\353\377\357\356\377\347\344\377\346\344\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\337\334\377\377\377\377\377\377\377\377\377\377\357\356\377\326"
"\323\377\336\334\377\345\343\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\337\335\377\377\377\377\375\375\377\367\366"
"\377\343\341\377\334\332\377\330\324\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\343\340\377\375\376\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\277\212%\357\340\302\367\373\377\360\364"
"\377\347\343\366\344\332\334\365\353\325\370\362\346\377\377\377\377"
"\377\377\377\377\377\377\377\377\310\234@\344\312\220\341\342\377\377"
"\377\377\353\352\377\360\357\377\357\357\377\355\356\377\327\266w\322"
"\266\217\366\376\377\366\373\377\361\361\377\344\336\347\351\337\330"
"\370\360\334\377\375\365\377\377\377\377\377\377\364\351\322\247_\0\303"
"\2235\371\372\377\336\323\325\340\326\336\352\347\367\377\377\377\377"
"\377\377\377\377\377\366\354\327\363\360\365\364\360\364\331\314\325"
"\326\313\337\362\357\372\377\377\377\361\364\377\325\323\377\351\346"
"\377\372\371\377\363\363\377\331\332\377\373\377\377\371\370\377\336"
"\325\344\357\344\325\370\360\335\375\374\372\360\365\377\354\360\377"
"\366\372\377\377\377\377\377\377\377\370\362\342\363\351\326\366\356"
"\337\376\377\375\377\377\377\377\377\377\375\373\370\364\352\330\377"
"\376\376\374\373\366\362\350\324\364\351\327\365\356\336\374\371\363"
"\377\377\377\374\371\363\364\352\331\377\377\377\373\370\361\362\350"
"\322\364\352\327\365\356\336\375\373\370\377\377\377\377\377\377\377"
"\377\377\375\374\371\366\356\336\362\350\326\370\362\345\377\377\377"
"\377\377\377\377\377\377\370\363\347\365\354\333\377\377\377\366\357"
"\341\362\352\326\370\362\347\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\374\367\361\364\354\334\364\352\327\371\363\351"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\325\325\325\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\367\370\377\336\334\377\347\346\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\367\370\377\322\317\377\333\330\377\373\373\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\365\365\377\345\344\377"
"\346\344\377\350\347\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\374\374\377\351\347\377\344\343\377\352\347\377\347\345\377"
"\333\330\377\343\340\377\356\354\377\340\335\377\324\322\377\321\315"
"\377\375\375\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\343\342\377\376\376\377\377\377\377\377\377\377\377\377\377"
"\355\354\377\361\360\377\342\337\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\367\370\377\351\346\377\377\377\377\377"
"\377\377\377\376\377\351\350\377\350\347\377\346\343\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\333\332\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\344\313\235\315\244Q\377\377\377\341"
"\313\241\252c\0\253g\0\310\233C\323\252U\301\215$\247]\0\254h\0\354\347"
"\354\361\365\377\357\360\377\263u\0\322\315\372\351\350\377\352\351\377"
"\341\337\377\357\357\377\354\350\361\247]\0\262u\0\352\364\377\262u\0"
"\252`\0\277\207\26\320\246Q\314\240E\260o\0\247`\0\321\260x\346\336\342"
"\252d\0\253g\0\277\213(\317\246S\313\235D\255i\0\250a\0\342\310\225\335"
"\313\270\245Z\0\250a\0\305\221'\313\242T\271\213A\253f\0\250`\0\343\315"
"\243\377\377\377\377\377\377\361\360\377\323\322\377\342\341\377\251"
"e\0\251a\0\304\221+\271\217U\275\216>\254g\0\246[\0\340\303\211\377\377"
"\374\254f\0\245]\0\301\217-\315\244U\306\226;\252d\0\251a\0\353\333\274"
"\334\300\207\243X\0\253g\0\307\230\77\320\250]\310\234E\247_\0\244Z\0"
"\355\340\303\323\260j\243Y\0\255j\0\310\233D\320\250]\307\231A\245[\0"
"\245[\0\363\352\327\353\331\270\247`\0\252d\0\306\227<\315\244U\301\216"
")\246^\0\253g\0\377\377\377\303\2210\244[\0\255j\0\310\233B\314\243S"
"\275\211!\246]\0\256l\0\377\377\377\322\255g\245]\0\260q\0\311\235G\314"
"\243R\275\207\37\245\\\0\263u\0\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377!!!\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\276\276\276\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\371\371\377\336\333\377\345\344"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\373\372\377\377\377\377\344\342\377"
"\327\324\377\351\350\377\374\374\377\361\360\377\377\377\377\301\275"
"\377\302\277\377\324\322\377\370\370\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\351\350\377\345\344\377\346\345\377"
"\351\350\377\370\370\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\343\342\377\361\357\377\352\351\377\366\365\377"
"\346\346\377\346\344\377\324\321\377\353\351\377\344\341\377\356\355"
"\377\354\353\377\331\330\377\357\354\377\360\357\377\364\362\377\341"
"\340\377\355\354\377\335\333\377\363\363\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\334\332\377\377\377\377\377\377"
"\377\377\377\377\350\347\377\351\351\377\344\341\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\337\335\377\377\377"
"\377\377\377\377\375\375\377\372\377\377\266|\12\352\343\354\364\372"
"\377\307\241]\254f\0\317\271\250\353\361\377\350\354\377\334\342\377"
"\300\232j\276\210\34\337\322\317\357\357\377\352\356\377\315\255z\333"
"\272y\377\377\377\377\377\377\377\377\377\377\377\377\377\376\370\251"
"c\0\273\200\14\366\375\377\254f\0\262s\0\373\377\377\360\365\377\362"
"\371\377\351\340\334\252d\0\301\220,\373\367\356\252d\0\277\213%\377"
"\377\377\377\377\377\377\377\377\352\327\263\253e\0\301\224J\354\340"
"\320\255g\0\277\2174\335\346\377\370\375\377\377\377\377\340\306\223"
"\252d\0\315\245V\377\377\377\377\377\377\377\377\377\377\377\377\370"
"\360\331\252c\0\274\207)\364\377\377\377\377\377\377\377\377\360\343"
"\311\275\210\40\331\272~\360\344\312\250a\0\307\231@\377\377\377\377"
"\377\377\377\377\377\337\306\223\251c\0\330\271{\343\315\237\252d\0\332"
"\274\201\377\377\377\377\377\377\377\377\377\322\255e\252d\0\340\306"
"\224\332\275\203\252d\0\342\311\234\377\377\377\377\377\377\377\377\377"
"\311\236I\251d\0\346\323\253\332\273\200\252e\0\342\315\240\377\377\377"
"\377\377\377\377\377\377\313\240O\250b\0\365\355\337\311\235G\253f\0"
"\347\325\260\377\377\377\377\377\377\377\377\377\272\204\27\250a\0\370"
"\363\351\300\213&\252e\0\370\361\346\377\377\377\377\377\377\377\377"
"\377\272\204\27\245\\\0\364\355\335\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377III\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\245\245\245\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\375\375\377"
"\341\340\377\342\340\377\367\367\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\345\344\377\322\320\377\321\315\377\372\372\377\377"
"\377\377\373\372\377\312\306\377\341\340\377\351\350\377\366\365\377"
"\364\363\377\376\375\377\351\347\377\321\315\377\357\356\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\357\356\377\345\343\377\351\350\377\347\345\377\355\354\377"
"\374\374\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\355\354\377\322\316\377\341"
"\340\377\354\351\377\357\356\377\361\360\377\325\323\377\355\354\377"
"\343\342\377\364\363\377\345\342\377\346\344\377\351\350\377\340\337"
"\377\332\330\377\340\337\377\346\345\377\343\341\377\334\332\377\346"
"\343\377\353\352\377\364\362\377\347\345\377\362\361\377\360\357\377"
"\356\356\377\356\355\377\360\357\377\334\332\377\355\355\377\353\352"
"\377\357\356\377\357\356\377\361\360\377\366\365\377\361\360\377\351"
"\350\377\341\340\377\335\332\377\342\341\377\341\336\377\341\336\377"
"\333\330\377\341\337\377\353\355\377\255l\0\375\377\377\372\377\377\303"
"\227G\253e\0\337\316\274\365\370\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\370\356\332\300"
"\214#\377\377\377\377\377\377\377\377\377\377\377\377\365\363\370\251"
"b\0\265|\16\365\371\377\252c\0\272\201\24\377\377\377\377\377\377\377"
"\377\377\375\372\364\251c\0\274\205\32\372\367\361\250b\0\304\221/\377"
"\377\377\377\377\377\371\373\377\344\326\305\253e\0\300\225I\305\267"
"\324\254e\0\314\241J\377\377\377\377\377\377\377\377\377\347\322\253"
"\251b\0\316\246V\377\377\377\376\376\377\354\354\377\352\354\377\333"
"\313\303\251c\0\310\233@\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\350\325\260\250b\0\317\247[\377\377\377"
"\377\377\377\377\377\377\347\324\256\250b\0\323\256g\344\317\244\250"
"a\0\326\266v\377\377\377\377\377\377\377\377\377\336\303\216\251b\0\333"
"\275\203\333\277\206\250a\0\336\303\217\377\377\377\377\377\377\377\377"
"\377\327\266u\250b\0\342\313\237\323\262m\251d\0\307\231@\323\256g\317"
"\246Y\323\255f\266}\12\246^\0\356\341\311\311\234E\250b\0\357\337\305"
"\377\377\377\377\377\377\377\377\377\303\2221\250b\0\367\362\346\331"
"\272}\253g\0\303\2221\343\314\240\344\315\243\352\331\270\360\345\317"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377rrr\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\213"
"\213\213\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\353\352\377\337\335\377\353\353\377\377\377"
"\377\377\377\377\377\377\377\374\374\377\377\377\377\340\336\377\323"
"\321\377\364\363\377\377\377\377\377\377\377\374\373\377\345\344\377"
"\347\345\377\344\341\377\350\347\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\373\372\377"
"\357\356\377\346\345\377\347\345\377\347\346\377\351\350\377\366\365"
"\377\372\373\377\377\377\377\377\377\377\370\366\377\355\354\377\356"
"\356\377\345\344\377\373\373\377\372\372\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\376\377\377\371\370\377\367\370\377\364\363\377\365\364\377\355"
"\354\377\365\364\377\357\357\377\356\354\377\336\333\377\345\343\377"
"\343\341\377\350\345\377\326\323\377\336\334\377\347\345\377\346\344"
"\377\345\344\377\336\334\377\353\353\377\360\357\377\364\365\377\357"
"\356\377\364\365\377\364\363\377\366\366\377\372\372\377\370\367\377"
"\377\377\377\377\377\377\377\377\377\252h\0\336\344\377\301\303\377\271"
"\213F\253e\0\351\325\255\377\377\377\377\377\377\377\377\377\374\373"
"\366\373\365\353\377\377\377\377\377\377\373\375\377\362\357\366\265"
"{\14\360\366\377\354\352\377\351\347\377\362\362\377\362\360\370\251"
"b\0\271\200\16\377\377\377\251c\0\265y\5\376\377\377\341\337\377\372"
"\374\377\350\341\347\252d\0\275\207\33\373\370\360\251b\0\273\210.\361"
"\367\377\356\355\377\360\362\377\340\321\304\254f\0\275\222I\337\325"
"\324\253e\0\311\236I\377\377\377\377\377\377\377\377\377\350\323\253"
"\251b\0\307\235V\355\362\377\352\351\377\376\374\377\377\377\377\357"
"\340\302\251c\0\303\2212\377\377\377\377\377\377\377\377\377\377\377"
"\377\372\364\354\377\377\377\351\326\262\251c\0\312\237M\377\377\377"
"\377\377\377\377\377\377\343\316\241\251b\0\322\256h\344\317\243\251"
"b\0\327\267x\377\377\377\377\377\377\377\377\377\336\303\217\251c\0\334"
"\301\213\333\276\205\250b\0\337\304\221\377\377\377\377\377\377\377\377"
"\377\326\266u\251b\0\345\317\245\323\260l\252e\0\345\320\246\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\311"
"\233E\250a\0\356\337\304\377\377\377\377\377\377\377\377\377\302\221"
"0\250a\0\367\362\345\364\353\332\352\332\271\374\373\366\367\361\343"
"\356\337\304\344\315\242\251c\0\245]\0\372\366\357\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\231\231\231\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0qqq\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\372\372\377\345\344\377\337\336\377\360\357\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\373\373\377\366\365\377\352"
"\347\377\323\317\377\342\337\377\366\366\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\376\377\377\344\343\377\346\345"
"\377\356\355\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\366\366\377\357\355\377\351\347\377\353\350\377"
"\343\342\377\361\360\377\351\350\377\364\363\377\371\370\377\375\375"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\327\324\377\305\301\377\305\301\377\364\364\377\372\371\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\261"
"n\0\377\377\377\377\377\377\321\254^\252c\0\322\256h\375\377\377\356"
"\364\377\372\377\377\264z\12\241S\0\335\314\275\355\355\377\370\374\377"
"\354\341\320\303\221-\377\377\377\377\377\377\377\377\377\377\377\377"
"\376\375\371\250b\0\270~\14\377\377\377\253d\0\255i\0\346\350\377\357"
"\363\377\377\377\377\344\316\247\252d\0\274\211/\353\344\351\250`\0\276"
"\214*\377\377\377\352\347\377\326\325\377\275\252\301\252c\0\306\231"
"D\337\323\320\251a\0\311\235E\377\377\377\360\357\377\353\355\377\325"
"\300\247\250`\0\315\244R\377\377\377\377\377\377\377\377\377\377\377"
"\377\364\354\332\247_\0\263v\0\377\377\377\377\377\377\377\377\377\333"
"\276\205\241U\0\310\234F\361\345\316\247`\0\270}\15\377\377\377\377\377"
"\377\377\377\377\320\251^\250a\0\332\274\200\343\314\236\252d\0\320\253"
"`\377\377\377\377\377\377\377\377\377\302\2210\247_\0\345\317\246\331"
"\273\177\252d\0\327\266v\377\377\377\377\377\377\377\377\377\273\205"
"\32\247_\0\353\334\273\330\271}\250b\0\320\252`\377\377\377\377\377\377"
"\377\377\377\377\377\377\354\336\301\361\347\322\307\230>\246_\0\355"
"\335\301\377\377\377\377\377\377\377\377\377\301\217,\246_\0\365\356"
"\337\275\211!\242V\0\345\317\246\377\377\377\377\377\377\377\377\377"
"\263v\0\247]\0\370\364\351\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\302"
"\302\302\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0VVV\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\364\363\377\342\337\377\344\342\377\361"
"\361\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\375\376"
"\377\377\377\377\370\370\377\330\325\377\343\340\377\351\346\377\336"
"\335\377\364\363\377\371\370\377\351\351\377\341\336\377\372\373\377"
"\357\356\377\337\336\377\344\341\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\373\372\377\367\367\377\352\351\377\352\351\377"
"\357\357\377\340\335\377\346\345\377\361\360\377\355\354\377\346\343"
"\377\352\351\377\360\356\377\363\363\377\363\363\377\364\363\377\371"
"\370\377\373\373\377\377\376\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\376\376\377\373\373\377\371"
"\370\377\364\363\377\362\363\377\362\362\377\361\361\377\354\352\377"
"\346\345\377\353\352\377\364\363\377\361\365\377\266~\32\346\333\332"
"\367\374\377\340\321\303\271\177\16\263v\0\275\212-\313\237F\300\212"
"\34\270|\0\301\214\37\377\377\377\377\377\377\370\374\377\321\252d\336"
"\304\217\377\377\377\377\377\377\377\377\377\377\377\377\377\376\374"
"\252d\0\271~\13\377\377\377\252z;\265x\2\274\203\20\276\217A\270\210"
";\263x\5\266{\6\343\314\235\366\356\336\263s\0\310\233B\377\377\377\373"
"\373\377\365\366\377\357\341\302\267x\0\321\247W\344\327\311\261q\0\310"
"\240Y\360\362\377\373\371\377\377\377\377\351\325\254\263s\0\321\255"
"d\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\301\215"
"+\264x\0\273\204\30\311\234C\304\2222\264w\0\270|\12\351\330\266\377"
"\377\377\273\205\33\264v\0\275\206\34\311\235F\303\2212\264w\0\270~\14"
"\366\356\336\340\307\225\252d\0\274\206\34\303\2233\272\201\23\267}\11"
"\271\177\17\304\2257\377\377\377\327\267x\252d\0\277\212#\302\2211\272"
"\200\22\266|\7\272\201\23\307\230=\377\377\377\362\347\321\270~\14\263"
"v\0\300\214(\312\235G\305\227;\275\206\35\304\2234\376\376\375\315\243"
"S\262r\0\355\336\302\377\377\377\377\377\377\377\377\377\310\233C\262"
"r\0\365\354\332\357\344\314\312\237J\274\206\33\270\177\16\271~\16\270"
"\177\16\302\2210\327\265t\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\351\351\351\1\1\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
">>>\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\364\363\377\342\337\377\345\342\377\354\353\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\354"
"\353\377\331\327\377\270\264\377\351\350\377\372\371\377\365\364\377"
"\365\366\377\352\350\377\353\352\377\347\346\377\324\320\377\350\347"
"\377\362\363\377\360\357\377\353\353\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\366\365\377\376\376\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\374\374\377\373\373\377\373\373\377"
"\372\371\377\363\362\377\356\354\377\352\350\377\345\343\377\351\350"
"\377\352\350\377\351\350\377\355\354\377\353\352\377\355\353\377\355"
"\353\377\351\347\377\352\347\377\351\350\377\345\343\377\352\351\377"
"\357\355\377\365\365\377\375\373\377\375\375\377\375\375\377\375\376"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\355"
"\333\270\304\2220\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\351\355\377\363\372\377\335\340\377\377\377\377"
"\353\354\377\333\327\370\256p\0\377\377\377\370\361\341\241T\0\265x\0"
"\336\302\221\315\243R\246[\0\274\206\36\372\377\377\345\347\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\365\365\377\356\360\377\355\361\377\361\364\377\376\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\332\274\200\243Y\0\326\265s\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\321\254c\243Y\0\336\302"
"\216\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\5\5\5\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0&&&\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\372\372\377\343\342\377\345\342\377\343\341\377\370\367"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\372\372\377\377"
"\377\377\341\336\377\334\332\377\365\365\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\375\376\377\334\331\377\355\354"
"\377\343\342\377\327\324\377\343\341\377\355\354\377\366\366\377\375"
"\375\377\377\377\377\377\377\377\372\372\377\377\377\377\346\344\377"
"\366\365\377\326\323\377\377\377\377\337\334\377\334\333\377\372\373"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\376\376\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\356\356\377"
"\371\370\377\362\361\377\366\365\377\357\356\377\346\345\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\316\246V\355\337\275\377\377"
"\377\377\377\377\377\377\377\376\376\377\377\377\377\352\347\377\377"
"\377\377\353\351\377\367\366\377\354\354\377\310\236R\325\303\270\351"
"\354\377\364\367\377\337\325\334\357\340\276\340\320\273\335\317\306"
"\351\342\352\371\375\377\340\341\377\307\305\377\372\373\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\354\352\377\351\347\377\346\344\377\352\351\377\371\370\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\370\362\350\352\331\271\367\360\342\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\367\356\342\352\331\271\371"
"\364\351\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\17\17\17\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\23\23\23\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\354\353\377\346\344\377\346\345\377\343\342\377\370\371\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\343\340\377\351\350\377\361\360\377\322\317\377\330\325\377\355\354"
"\377\344\342\377\342\340\377\374\375\377\377\377\377\353\352\377\361"
"\360\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\355\353"
"\377\314\311\377\321\317\377\356\354\377\366\365\377\324\321\377\315"
"\313\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\364\364"
"\377\316\314\377\367\370\377\347\345\377\377\377\377\350\347\377\345"
"\342\377\377\377\377\377\377\377\375\373\377\377\377\377\377\377\377"
"\373\375\377\334\334\377\350\346\377\360\357\377\331\327\377\330\326"
"\377\356\355\377\356\355\377\332\330\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\311\310\377\310\306\377\334\333\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\375\376\377\362\362\377\347\346\377\352"
"\351\377\352\351\377\347\345\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377---\0\0\0\0\0\0\0\0\0\0\0\0\11\11\11\375\375\375\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\357\356\377\350\347\377\343\340\377\350\347\377\352"
"\351\377\374\374\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\303\277"
"\377\271\265\377\331\326\377\374\373\377\352\350\377\345\343\377\363"
"\363\377\377\377\377\377\377\377\377\377\377\372\371\377\367\366\377"
"\351\350\377\333\330\377\361\360\377\356\355\377\331\326\377\340\335"
"\377\352\352\377\355\354\377\335\333\377\355\354\377\346\343\377\312"
"\310\377\335\332\377\355\354\377\363\362\377\354\353\377\377\377\377"
"\377\377\377\354\353\377\377\377\377\377\377\377\374\373\377\361\362"
"\377\375\375\377\376\376\377\351\350\377\360\360\377\354\352\377\346"
"\345\377\302\276\377\351\350\377\357\356\377\341\340\377\357\356\377"
"\353\352\377\351\350\377\324\322\377\356\354\377\355\356\377\337\336"
"\377\347\346\377\361\360\377\377\377\377\367\366\377\376\376\377\370"
"\367\377\347\345\377\373\372\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\375"
"\374\377\352\351\377\354\353\377\346\345\377\354\351\377\351\347\377"
"\373\373\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377KKK\0\0\0\0\0\0\0\0\0\0\0\0\357\357\357"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\373\372\377\354\353\377\351\350\377\340\335"
"\377\351\350\377\351\347\377\370\370\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\376\375\377\371\371\377\377\377\377"
"\342\341\377\350\347\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\364\362\377\356\355\377\353\353\377\376\377\377"
"\377\377\377\376\375\377\350\346\377\377\377\377\377\375\377\367\367"
"\377\364\362\377\367\367\377\370\370\377\352\351\377\366\365\377\365"
"\364\377\362\360\377\362\361\377\373\372\377\373\372\377\355\354\377"
"\374\374\377\376\376\377\363\362\377\361\362\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\376\377\313\310\377\261\254\377"
"\321\316\377\377\377\377\345\342\377\341\337\377\370\370\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\371\370\377\355\354\377\355\355\377\343\340\377"
"\355\354\377\352\351\377\362\360\377\375\376\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377jjj\0\0\0"
"\0\0\0\0\0\0\335\335\335\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\374\374\377\365"
"\364\377\343\342\377\351\350\377\346\345\377\346\345\377\356\355\377"
"\356\355\377\374\372\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\373\373\377\305\303\377"
"\275\271\377\333\331\377\377\377\377\331\327\377\324\317\377\375\375"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\374\374\377"
"\330\326\377\312\307\377\340\336\377\375\375\377\327\324\377\324\321"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\374\374\377\360\357\377\360\357\377\354"
"\352\377\346\344\377\355\352\377\347\346\377\351\350\377\366\365\377"
"\374\374\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\210\210\210\0\0\0\0\0\0\311\311\311\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\365\363\377\362"
"\362\377\352\351\377\343\342\377\352\351\377\353\351\377\337\335\377"
"\351\347\377\363\362\377\360\357\377\366\366\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\375\375\377\372\371\377\374"
"\373\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\373\373\377\363\362\377\361\360\377\363"
"\362\377\345\342\377\345\344\377\357\355\377\352\351\377\346\344\377"
"\352\351\377\365\363\377\363\363\377\376\376\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\247\247\247\3\3\3\265\265\265\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\375\374\377\370\370\377\357\356\377\352\351\377\355\353\377\355\354"
"\377\345\344\377\334\332\377\344\342\377\352\352\377\361\360\377\353"
"\353\377\352\351\377\347\346\377\347\346\377\347\346\377\351\350\377"
"\353\351\377\353\351\377\352\351\377\354\352\377\361\360\377\361\360"
"\377\352\351\377\353\351\377\353\352\377\354\352\377\352\351\377\351"
"\350\377\350\346\377\350\346\377\352\351\377\355\353\377\361\361\377"
"\353\352\377\345\344\377\336\333\377\345\342\377\356\355\377\356\356"
"\377\352\351\377\357\355\377\366\366\377\374\372\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\305\305\305\226\226\226\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\376\376\377\376\376\377\375\375\377\375"
"\375\377\375\375\377\375\375\377\375\375\377\375\375\377\375\375\377"
"\375\375\377\375\375\377\375\375\377\375\375\377\376\376\377\376\376"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\344"
"\344\344"};
linsmith-0.99.21/src/load_nb.c 0000644 0000000 0000000 00000013206 11541145273 012750 0000000 0000000 /*
* load_nb.c: Noise bridge related input functions etc.
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#include
#include
#include
#include "support.h"
#include "callbacks.h"
#include "printer.h"
#include "global.h"
#include "main.h"
#include "load.h"
#include "load_nb.h"
#include "chart.h"
#include "misc.h"
GtkTreeIter active_ld_iter;
load_definition active_load;
GtkWidget *ld_view;
//---------------------------------------------------------------------
// Loads
//---------------------------------------------------------------------
void
enable_load_nb_buttons(int action)
{
GtkWidget *w, *w1;
w = lookup_widget(MainWindow, "load_nb_append_btn");
gtk_widget_set_sensitive(w,
load_nb_valid(NULL)
);
w = lookup_widget(MainWindow, "load_remove_btn");
gtk_widget_set_sensitive(w,
action == LOADLIST_UPDATED
|| action == LOADLIST_EDITED
|| action == LOADLIST_SELECT
);
w = lookup_widget(MainWindow, "load_nb_upd_btn");
gtk_widget_set_sensitive(w,
(action == LOADLIST_EDITED)
&& load_nb_valid(NULL)
&& (number_selected_loads() == 1)
);
w = lookup_widget(MainWindow, "load_clear_btn");
gtk_widget_set_sensitive(w,
action = LOADLIST_EMPTY
);
if (action == LOADLIST_UPDATED ||
action == LOADLIST_REMOVED)
recalculate_all(DST_SCREEN);
}
void
on_load_nb_selected(GtkTreeView *treeview)
{
GtkWidget *w1, *w2, *w3, *w4;
GtkTreeModel *store;
GtkTreeSelection *sel;
char bff[20];
sel = gtk_tree_view_get_selection(treeview);
if (gtk_tree_selection_get_selected(sel, &store, &active_ld_iter)) {
gtk_tree_model_get(store, &active_ld_iter,
LD_FREQ_VAL, &active_load.f,
LD_REAL_VAL, &active_load.r,
LD_REACT_VAL, &active_load.x,
LD_NB_RVAL, &active_load.nb_r,
LD_NB_CVAL, &active_load.nb_c,
LD_NB_EXT, &active_load.nb_ext,
LD_POINT, &active_load.pt,
-1);
w1 = lookup_widget(MainWindow, "load_nb_r_entry");
w2 = lookup_widget(MainWindow, "load_nb_c_entry");
w3 = lookup_widget(MainWindow, "load_nb_freq_entry");
w4 = lookup_widget(MainWindow, "load_nb_ext_cbtn");
sprintf(bff, "%.2f", active_load.nb_r);
gtk_entry_set_text(GTK_ENTRY(w1), bff);
sprintf(bff, "%.2f", active_load.nb_c);
gtk_entry_set_text(GTK_ENTRY(w2), bff);
sprintf(bff, "%.*f", pref.prec_mhz, active_load.f);
gtk_entry_set_text(GTK_ENTRY(w3), bff);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w4), active_load.nb_ext);
// enable_load_buttons(LOADLIST_SELECT);
}
}
int
load_nb_valid(load_definition *dest)
{
GtkWidget *w;
const char *txt = NULL;
double xc;
load_definition tload;
// Check the frequency (valid syntax and non-zero)
w = lookup_widget(MainWindow, "load_nb_freq_entry");
txt = gtk_entry_get_text(GTK_ENTRY(w));
if (strlen(txt) == 0) return FALSE;
errno = 0;
tload.f = strtod(txt, NULL);
if ((tload.f == 0) || (errno != 0)) return FALSE;
// Then the resistive part of the reading
w = lookup_widget(MainWindow, "load_nb_r_entry");
txt = gtk_entry_get_text(GTK_ENTRY(w));
if (strlen(txt) == 0) return FALSE;
errno = 0;
tload.nb_r = strtod(txt, NULL);
if (errno != 0) return FALSE;
// And the capacitor reading
w = lookup_widget(MainWindow, "load_nb_c_entry");
txt = gtk_entry_get_text(GTK_ENTRY(w));
if (strlen(txt) == 0) return FALSE;
errno = 0;
tload.nb_c = strtod(txt, NULL);
if (errno != 0) return FALSE;
w = lookup_widget(MainWindow, "load_nb_ext_cbtn");
tload.nb_ext = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));
if (tload.f == 0) return FALSE;
if (tload.nb_c == pref.nb_offset)
tload.nb_c = 0.01;
if (dest) {
dest->nb_r = tload.nb_r;
dest->nb_c = tload.nb_c;
dest->nb_ext = tload.nb_ext;
xc = -1e6/(2 * M_PI * tload.f * (tload.nb_c - pref.nb_offset));
dest->r = tload.nb_r * xc*xc/(xc*xc + tload.nb_r*tload.nb_r);;
dest->x = tload.nb_r*tload.nb_r * xc/(xc*xc + tload.nb_r*tload.nb_r);;
dest->f = tload.f;
}
return TRUE;
}
void
active_load_nb_update(void)
{
if (active_ld_iter.stamp == 0) return;
load_nb_valid(&active_load);
load_update(&active_load);
enable_load_nb_buttons(LOADLIST_UPDATED);
}
void
active_load_nb_remove(void)
{
GtkListStore *store;
chart_point *pt;
if (active_ld_iter.stamp == 0) return;
store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ld_view)));
gtk_tree_model_get(GTK_TREE_MODEL(store), &active_ld_iter,
LD_POINT, &pt,
-1);
if (pt) {
gtk_object_destroy(GTK_OBJECT(pt->point));
g_free(pt);
}
gtk_list_store_remove(store, &active_ld_iter);
enable_load_buttons(LOADLIST_REMOVED);
if (number_loads() == 0)
enable_load_buttons(LOADLIST_EMPTY);
}
void
load_nb_modified(int which)
{
enable_load_nb_buttons(LOADLIST_EDITED);
}
void
loadlist_nb_clear(void)
{
enable_load_nb_buttons(LOADLIST_EMPTY);
}
linsmith-0.99.21/src/Makefile.in 0000644 0000000 0000000 00000040534 11541470570 013260 0000000 0000000 # Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
bin_PROGRAMS = linsmith$(EXEEXT)
subdir = src
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(bindir)"
PROGRAMS = $(bin_PROGRAMS)
am_linsmith_OBJECTS = main.$(OBJEXT) misc.$(OBJEXT) confmgr.$(OBJEXT) \
global.$(OBJEXT) chart_def.$(OBJEXT) chart.$(OBJEXT) \
element.$(OBJEXT) remote.$(OBJEXT) import.$(OBJEXT) \
load.$(OBJEXT) load_rx.$(OBJEXT) load_nb.$(OBJEXT) \
log.$(OBJEXT) support.$(OBJEXT) printer.$(OBJEXT) \
interface.$(OBJEXT) callbacks.$(OBJEXT)
linsmith_OBJECTS = $(am_linsmith_OBJECTS)
am__DEPENDENCIES_1 =
linsmith_DEPENDENCIES = $(am__DEPENDENCIES_1)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(linsmith_SOURCES)
DIST_SOURCES = $(linsmith_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLLIBS = @INTLLIBS@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBXML_CFLAGS = @LIBXML_CFLAGS@
LIBXML_LIBS = @LIBXML_LIBS@
LINSMITH_CFLAGS = @LINSMITH_CFLAGS@
LINSMITH_LIBS = @LINSMITH_LIBS@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MAKE_SUBDIRS = @MAKE_SUBDIRS@
MKDIR_P = @MKDIR_P@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
MSGFMT_OPTS = @MSGFMT_OPTS@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build_alias = @build_alias@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
INCLUDES = \
-DPACKAGE_DATA_DIR=\""$(datadir)"\" \
-DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
@LINSMITH_CFLAGS@ \
@LIBXML_CFLAGS@
linsmith_SOURCES = \
main.c main.h \
types.h \
misc.c misc.h \
confmgr.c confmgr.h \
global.c global.h \
chart_def.c chart_def.h \
chart.c chart.h \
element.c element.h \
remote.c remote.h \
import.c import.h \
load.c load.h \
load_rx.c load_rx.h \
load_nb.c load_nb.h \
log.c log.h \
pixmaps.inc \
support.c support.h \
printer.c printer.h \
interface.c interface.h \
callbacks.c callbacks.h
linsmith_LDADD = \
$(INTLLIBS) \
@LINSMITH_LIBS@ \
@LIBXML_LIBS@
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu src/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p; \
then echo "$$p"; echo "$$p"; else :; fi; \
done | \
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
if ($$2 == $$4) files[d] = files[d] " " $$1; \
else { print "f", $$3 "/" $$4, $$1; } } \
END { for (d in files) print "f", d, files[d] }' | \
while read type dir files; do \
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
test -z "$$files" || { \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
} \
; done
uninstall-binPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-e 's/$$/$(EXEEXT)/' `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
linsmith$(EXEEXT): $(linsmith_OBJECTS) $(linsmith_DEPENDENCIES)
@rm -f linsmith$(EXEEXT)
$(LINK) $(linsmith_OBJECTS) $(linsmith_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callbacks.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chart.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chart_def.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/confmgr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/element.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/global.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/import.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interface.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/load.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/load_nb.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/load_rx.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/log.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/support.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(PROGRAMS)
installdirs:
for dir in "$(DESTDIR)$(bindir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am:
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am: install-binPROGRAMS
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-binPROGRAMS
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
clean-generic ctags distclean distclean-compile \
distclean-generic distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-binPROGRAMS \
install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-info install-info-am install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
uninstall-am uninstall-binPROGRAMS
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
linsmith-0.99.21/src/misc.h 0000644 0000000 0000000 00000003616 11052345577 012324 0000000 0000000 /*
* aux.c - auxiliary routines, mainly gp screen management
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#include
#include
#include
enum {SEP_IND_VAL, SEP_CAP_VAL,
SEP_STUB_VAL, SEP_STUB_Z0,
SEP_LINE_VAL, SEP_LINE_Z0,
SEP_XFORM_VAL};
// Import/load value dialog:
enum {LSTDLG_APPEND, // append new values
LSTDLG_CLEAR, // clear list first
LSTDLG_CANCEL}; // cancel import
int ok_cancel_dialog(char *ttl, char *msg);
int ok_dialog(char *ttl, char *msg);
int list_not_empty_dialog(char *msg);
void show_about(void);
gboolean run_filedialog(char *title, char *fn, gboolean openfile, ...);
void load_cable_table(GtkWidget *cmb);
void show_cable_data(int which, int c);
void initialize_MainWindow(void);
int xml_file_open(xmlDocPtr *doc, const char *fname, char *title);
void set_element_conn(int val);
void set_element_type(int val);
GdkPixbuf *connection_glyph(int conn, int type);
GdkPixbuf *type_glyph(int conn, int type);
void scale_entry_pair_set(int eltyp, double val);
void scale_entry_pair_set_entry(int which, double val);
double scale_entry_pair_get(int which);
linsmith-0.99.21/src/load.h 0000644 0000000 0000000 00000003321 10715745360 012300 0000000 0000000 /*
* load.c: Load related functions, list management etc.
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#include
#include
#include "types.h"
enum {LD_FREQ, LD_REAL, LD_REACT,
LD_FREQ_VAL, LD_REAL_VAL, LD_REACT_VAL,
LD_NB_RVAL, LD_NB_CVAL, LD_NB_EXT,
LD_POINT, LD_LOGCOL,
LD_COLS};
enum {LOADLIST_SELECT, LOADLIST_UPDATED, LOADLIST_EDITED,
LOADLIST_REMOVED, LOADLIST_EMPTY};
enum {LOADMODE_R_JX, LOADMODE_NOISE, LOADMODE_REMOTE};
void initialize_loadtable(void);
void get_load_selected(GtkTreeView *treeview);
int load_valid(load_definition *dest);
void load_append(load_definition *tload);
void load_update(load_definition *tload);
void load_modified(int which);
int number_loads(void);
void loadlist_clear();
void active_load_update();
void active_load_remove(void);
void load_loads(char *fn);
void save_loads(char *fn);
void load4_activate(void);
void save5_activate(void);
void save_as3_activate(void);
linsmith-0.99.21/src/interface.c 0000644 0000000 0000000 00000721715 11541550713 013324 0000000 0000000 /*
* DO NOT EDIT THIS FILE - it is generated by Glade.
*/
#ifdef HAVE_CONFIG_H
# include
#endif
#include
#include
#include
#include
#include
#include
#include
#include "callbacks.h"
#include "interface.h"
#include "support.h"
#define GLADE_HOOKUP_OBJECT(component,widget,name) \
g_object_set_data_full (G_OBJECT (component), name, \
gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
g_object_set_data (G_OBJECT (component), name, widget)
static GnomeUIInfo loads1_menu_uiinfo[] =
{
{
GNOME_APP_UI_ITEM, N_("_Load"),
NULL,
(gpointer) on_load4_activate, NULL, NULL,
GNOME_APP_PIXMAP_STOCK, "gtk-open",
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("_Save"),
NULL,
(gpointer) on_save5_activate, NULL, NULL,
GNOME_APP_PIXMAP_STOCK, "gtk-save",
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("Save _as..."),
NULL,
(gpointer) on_save_as3_activate, NULL, NULL,
GNOME_APP_PIXMAP_STOCK, "gtk-save-as",
0, (GdkModifierType) 0, NULL
},
GNOMEUIINFO_END
};
static GnomeUIInfo circuit1_menu_uiinfo[] =
{
{
GNOME_APP_UI_ITEM, N_("_Load"),
NULL,
(gpointer) on_load3_activate, NULL, NULL,
GNOME_APP_PIXMAP_STOCK, "gtk-open",
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("_Save"),
NULL,
(gpointer) on_save4_activate, NULL, NULL,
GNOME_APP_PIXMAP_STOCK, "gtk-save",
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("Save _as..."),
NULL,
(gpointer) on_save_as4_activate, NULL, NULL,
GNOME_APP_PIXMAP_STOCK, "gtk-save-as",
0, (GdkModifierType) 0, NULL
},
GNOMEUIINFO_END
};
static GnomeUIInfo import1_menu_uiinfo[] =
{
{
GNOME_APP_UI_ITEM, N_("_CSV loads"),
NULL,
(gpointer) on_csv_loads1_activate, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("_s2p files"),
NULL,
(gpointer) on_s2p_files1_activate, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
GNOMEUIINFO_END
};
static GnomeUIInfo file1_menu_uiinfo[] =
{
{
GNOME_APP_UI_SUBTREE, N_("_Loads"),
NULL,
loads1_menu_uiinfo, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_SUBTREE, N_("_Circuit"),
NULL,
circuit1_menu_uiinfo, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
GNOMEUIINFO_SEPARATOR,
{
GNOME_APP_UI_SUBTREE, N_("_Import"),
NULL,
import1_menu_uiinfo, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
GNOMEUIINFO_MENU_PRINT_ITEM (on_print1_activate, NULL),
{
GNOME_APP_UI_ITEM, N_("Save _results page..."),
NULL,
(gpointer) on_save_results_page1_activate, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
GNOMEUIINFO_SEPARATOR,
GNOMEUIINFO_MENU_EXIT_ITEM (on_quit1_activate, NULL),
GNOMEUIINFO_END
};
static GnomeUIInfo edit1_menu_uiinfo[] =
{
GNOMEUIINFO_MENU_PREFERENCES_ITEM (on_preferences1_activate, NULL),
GNOMEUIINFO_END
};
static GnomeUIInfo view1_menu_uiinfo[] =
{
{
GNOME_APP_UI_ITEM, N_("_Recalculate"),
NULL,
(gpointer) on_recalculate1_activate, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
GNOMEUIINFO_END
};
static GnomeUIInfo help1_menu_uiinfo[] =
{
{
GNOME_APP_UI_ITEM, N_("_Test"),
NULL,
(gpointer) on_test1_activate, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
GNOMEUIINFO_MENU_ABOUT_ITEM (on_about1_activate, NULL),
GNOMEUIINFO_END
};
static GnomeUIInfo menubar1_uiinfo[] =
{
GNOMEUIINFO_MENU_FILE_TREE (file1_menu_uiinfo),
GNOMEUIINFO_MENU_EDIT_TREE (edit1_menu_uiinfo),
GNOMEUIINFO_MENU_VIEW_TREE (view1_menu_uiinfo),
GNOMEUIINFO_MENU_HELP_TREE (help1_menu_uiinfo),
GNOMEUIINFO_SEPARATOR,
GNOMEUIINFO_END
};
GtkWidget*
create_MainWindow (void)
{
GtkWidget *MainWindow;
GtkWidget *vbox1;
GtkWidget *menubar1;
GtkWidget *table24;
GtkWidget *frame43;
GtkWidget *scrolledwindow6;
GtkWidget *chart_canvas;
GtkWidget *label270;
GtkWidget *notebook4;
GtkWidget *loadpage_vbox;
GtkWidget *vbox51;
GtkWidget *loadtype_notebook;
GtkWidget *frame31;
GtkWidget *table12;
GtkWidget *label137;
GtkWidget *hbox88;
GtkWidget *load_r_entry;
GtkWidget *load_r_lbl;
GtkWidget *load_x_entry;
GtkWidget *load_x_lbl;
GtkWidget *label138;
GtkWidget *load_ops_table;
GtkWidget *load_append_btn;
GtkWidget *load_edit_btn;
GtkWidget *hseparator11;
GtkWidget *hbox89;
GtkWidget *load_freq_entry;
GtkWidget *label140;
GtkWidget *label136;
GtkWidget *label502;
GtkWidget *frame59;
GtkWidget *table38;
GtkWidget *label505;
GtkWidget *hbox152;
GtkWidget *load_nb_r_entry;
GtkWidget *label509;
GtkWidget *load_nb_c_entry;
GtkWidget *label508;
GtkWidget *label506;
GtkWidget *load_nb_ext_cbtn;
GtkWidget *table40;
GtkWidget *load_nb_append_btn;
GtkWidget *load_nb_upd_btn;
GtkWidget *hseparator12;
GtkWidget *hbox153;
GtkWidget *load_nb_freq_entry;
GtkWidget *label510;
GtkWidget *label511;
GtkWidget *label503;
GtkWidget *frame60;
GtkWidget *table39;
GtkWidget *hbox156;
GtkWidget *entry5;
GtkWidget *label517;
GtkWidget *hbox155;
GtkWidget *entry6;
GtkWidget *label521;
GtkWidget *hbox154;
GtkWidget *entry4;
GtkWidget *label516;
GtkWidget *label513;
GtkWidget *label519;
GtkWidget *label514;
GtkWidget *load_remote_hbox;
GtkWidget *load_getrem_btn;
GtkWidget *rem_cancel_btn;
GtkWidget *hseparator13;
GtkWidget *label518;
GtkWidget *label504;
GtkWidget *frame26;
GtkWidget *hbox143;
GtkWidget *scrolledwindow5;
GtkWidget *load_treeview;
GtkWidget *vbox53;
GtkWidget *label468;
GtkWidget *load_remove_btn;
GtkWidget *image88;
GtkWidget *load_clear_btn;
GtkWidget *image89;
GtkWidget *label96;
GtkWidget *hbox142;
GtkWidget *label464;
GtkWidget *load_filename_lbl;
GtkWidget *load_changed_lbl;
GtkWidget *label268;
GtkWidget *circpage_vbox;
GtkWidget *hbox137;
GtkWidget *vbox34;
GtkWidget *frame55;
GtkWidget *table33;
GtkWidget *comp_series_tbtn;
GtkWidget *comp_series_img;
GtkWidget *comp_parallel_tbtn;
GtkWidget *comp_parallel_img;
GtkWidget *label447;
GtkWidget *label454;
GtkWidget *frame54;
GtkWidget *table32;
GtkWidget *comp_ostub_tbtn;
GtkWidget *comp_ostub_img;
GtkWidget *comp_sstub_tbtn;
GtkWidget *comp_sstub_img;
GtkWidget *comp_line_tbtn;
GtkWidget *comp_line_img;
GtkWidget *comp_discr_l_tbtn;
GtkWidget *comp_discr_l_img;
GtkWidget *comp_discr_parlc_tbtn;
GtkWidget *comp_discr_parlc_img;
GtkWidget *comp_discr_serlc_tbtn;
GtkWidget *comp_discr_serlc_img;
GtkWidget *comp_discr_c_tbtn;
GtkWidget *comp_discr_c_img;
GtkWidget *comp_xform_tbtn;
GtkWidget *comp_xform_img;
GtkWidget *comp_zy_tbtn;
GtkWidget *comp_zy_img;
GtkWidget *label452;
GtkWidget *label445;
GtkWidget *label446;
GtkWidget *label444;
GtkWidget *label453;
GtkWidget *hbox96;
GtkWidget *circ_newel_btn;
GtkWidget *circ_upd_el_btn;
GtkWidget *comp_notebook;
GtkWidget *discr_frame;
GtkWidget *vbox46;
GtkWidget *comp_cap_table;
GtkWidget *label223;
GtkWidget *comp_cap_unit_lbl;
GtkWidget *comp_cap_val_entry;
GtkWidget *comp_cap_val_scale;
GtkWidget *comp_ind_table;
GtkWidget *label438;
GtkWidget *comp_ind_unit_lbl;
GtkWidget *comp_ind_val_entry;
GtkWidget *comp_ind_val_scale;
GtkWidget *label219;
GtkWidget *label238;
GtkWidget *notebook5;
GtkWidget *stub_vbox;
GtkWidget *stub_prop_table;
GtkWidget *hbox74;
GtkWidget *comp_stub_entry;
GtkWidget *label232;
GtkWidget *label231;
GtkWidget *comp_stub_scale;
GtkWidget *hbox86;
GtkWidget *comp_stub_vf_entry;
GtkWidget *label265;
GtkWidget *label120;
GtkWidget *comp_stub_z0_scale;
GtkWidget *label259;
GtkWidget *hbox73;
GtkWidget *comp_stub_z0_entry;
GtkWidget *label123;
GtkWidget *label278;
GtkWidget *label279;
GtkWidget *label465;
GtkWidget *comp_stub_selcable_btn;
GtkWidget *label448;
GtkWidget *vbox48;
GtkWidget *comp_stub_useloss_cbtn;
GtkWidget *table11;
GtkWidget *label128;
GtkWidget *label129;
GtkWidget *label145;
GtkWidget *label144;
GtkWidget *hbox75;
GtkWidget *comp_stub_l1_entry;
GtkWidget *label124;
GtkWidget *hbox76;
GtkWidget *comp_stub_f1_entry;
GtkWidget *label125;
GtkWidget *hbox77;
GtkWidget *comp_stub_l2_entry;
GtkWidget *label146;
GtkWidget *hbox78;
GtkWidget *comp_stub_f2_entry;
GtkWidget *label147;
GtkWidget *label449;
GtkWidget *label239;
GtkWidget *notebook6;
GtkWidget *line_vbox;
GtkWidget *line_prop_vbox;
GtkWidget *hbox85;
GtkWidget *comp_line_entry;
GtkWidget *label247;
GtkWidget *label264;
GtkWidget *hbox83;
GtkWidget *comp_line_vf_entry;
GtkWidget *label263;
GtkWidget *label244;
GtkWidget *hbox84;
GtkWidget *comp_line_z0_entry;
GtkWidget *label262;
GtkWidget *label248;
GtkWidget *comp_line_scale;
GtkWidget *comp_line_z0_scale;
GtkWidget *label280;
GtkWidget *label281;
GtkWidget *label466;
GtkWidget *comp_line_selcable_btn;
GtkWidget *label450;
GtkWidget *vbox49;
GtkWidget *comp_line_useloss_cbtn;
GtkWidget *table20;
GtkWidget *label252;
GtkWidget *label253;
GtkWidget *label256;
GtkWidget *label257;
GtkWidget *hbox79;
GtkWidget *comp_line_l1_entry;
GtkWidget *label250;
GtkWidget *hbox80;
GtkWidget *comp_line_f1_entry;
GtkWidget *label251;
GtkWidget *hbox81;
GtkWidget *comp_line_l2_entry;
GtkWidget *label255;
GtkWidget *hbox82;
GtkWidget *comp_line_f2_entry;
GtkWidget *label254;
GtkWidget *label451;
GtkWidget *label240;
GtkWidget *xform_frame;
GtkWidget *table18;
GtkWidget *label233;
GtkWidget *hbox69;
GtkWidget *comp_xform_entry;
GtkWidget *label235;
GtkWidget *comp_xform_scale;
GtkWidget *label237;
GtkWidget *label241;
GtkWidget *frame50;
GtkWidget *vbox43;
GtkWidget *label365;
GtkWidget *label364;
GtkWidget *label363;
GtkWidget *frame21;
GtkWidget *hbox139;
GtkWidget *scrolledwindow4;
GtkWidget *circ_treeview;
GtkWidget *vbox13;
GtkWidget *circ_up_btn;
GtkWidget *image85;
GtkWidget *circ_down_btn;
GtkWidget *image84;
GtkWidget *label467;
GtkWidget *circ_delete_btn;
GtkWidget *image83;
GtkWidget *circ_clear_btn;
GtkWidget *image90;
GtkWidget *label87;
GtkWidget *hbox141;
GtkWidget *label461;
GtkWidget *circ_filename_lbl;
GtkWidget *circ_changed_lbl;
GtkWidget *label267;
GtkWidget *frame4;
GtkWidget *scrolledwindow7;
GtkWidget *log_treeview;
GtkWidget *label4;
GtkWidget *label269;
GtkWidget *table15;
GtkWidget *label164;
GtkWidget *label165;
GtkWidget *label179;
GtkWidget *label180;
GtkWidget *stat_swr_lbl;
GtkWidget *stat_q_lbl;
GtkWidget *vseparator2;
GtkWidget *vseparator3;
GtkWidget *stat_z_lbl;
GtkWidget *stat_zpol_lbl;
GtkWidget *hbox120;
GtkWidget *vbox44;
GtkWidget *label430;
GtkWidget *zoom_lbl;
GtkWidget *zoom_out_btn;
GtkWidget *image65;
GtkWidget *zoom_in_btn;
GtkWidget *image66;
GtkWidget *hbox98;
GtkWidget *recalc_btn;
GtkWidget *image91;
GtkWidget *hbox149;
GtkWidget *label499;
GtkWidget *direction_cbbox;
GtkWidget *hbox58;
GtkWidget *label190;
GtkWidget *z0_cbbox;
GtkWidget *label191;
GtkAccelGroup *accel_group;
GtkTooltips *tooltips;
tooltips = gtk_tooltips_new ();
accel_group = gtk_accel_group_new ();
MainWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (MainWindow), _("Smith Chart"));
vbox1 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox1);
gtk_container_add (GTK_CONTAINER (MainWindow), vbox1);
menubar1 = gtk_menu_bar_new ();
gtk_widget_show (menubar1);
gtk_box_pack_start (GTK_BOX (vbox1), menubar1, FALSE, FALSE, 0);
gnome_app_fill_menu (GTK_MENU_SHELL (menubar1), menubar1_uiinfo,
accel_group, FALSE, 0);
table24 = gtk_table_new (2, 2, FALSE);
gtk_widget_show (table24);
gtk_box_pack_start (GTK_BOX (vbox1), table24, TRUE, TRUE, 0);
frame43 = gtk_frame_new (NULL);
gtk_widget_show (frame43);
gtk_table_attach (GTK_TABLE (table24), frame43, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
gtk_container_set_border_width (GTK_CONTAINER (frame43), 4);
scrolledwindow6 = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_show (scrolledwindow6);
gtk_container_add (GTK_CONTAINER (frame43), scrolledwindow6);
gtk_widget_set_size_request (scrolledwindow6, 428, 428);
gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow6), 4);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow6), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow6), GTK_SHADOW_IN);
chart_canvas = gnome_canvas_new_aa ();
gtk_widget_show (chart_canvas);
gtk_container_add (GTK_CONTAINER (scrolledwindow6), chart_canvas);
gnome_canvas_set_scroll_region (GNOME_CANVAS (chart_canvas), 0, 0, 100, 100);
label270 = gtk_label_new (_("Chart"));
gtk_widget_show (label270);
gtk_frame_set_label_widget (GTK_FRAME (frame43), label270);
notebook4 = gtk_notebook_new ();
gtk_widget_show (notebook4);
gtk_table_attach (GTK_TABLE (table24), notebook4, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 6);
loadpage_vbox = gtk_vbox_new (FALSE, 2);
gtk_widget_show (loadpage_vbox);
gtk_container_add (GTK_CONTAINER (notebook4), loadpage_vbox);
gtk_container_set_border_width (GTK_CONTAINER (loadpage_vbox), 4);
vbox51 = gtk_vbox_new (FALSE, 2);
gtk_widget_show (vbox51);
gtk_box_pack_start (GTK_BOX (loadpage_vbox), vbox51, FALSE, TRUE, 0);
loadtype_notebook = gtk_notebook_new ();
gtk_widget_show (loadtype_notebook);
gtk_box_pack_start (GTK_BOX (vbox51), loadtype_notebook, TRUE, TRUE, 0);
frame31 = gtk_frame_new (NULL);
gtk_widget_show (frame31);
gtk_container_add (GTK_CONTAINER (loadtype_notebook), frame31);
table12 = gtk_table_new (4, 2, FALSE);
gtk_widget_show (table12);
gtk_container_add (GTK_CONTAINER (frame31), table12);
gtk_container_set_border_width (GTK_CONTAINER (table12), 6);
gtk_table_set_col_spacings (GTK_TABLE (table12), 8);
label137 = gtk_label_new (_("Frequency: "));
gtk_widget_show (label137);
gtk_table_attach (GTK_TABLE (table12), label137, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 3, 0);
gtk_misc_set_alignment (GTK_MISC (label137), 0, 0.5);
hbox88 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox88);
gtk_table_attach (GTK_TABLE (table12), hbox88, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
load_r_entry = gtk_entry_new ();
gtk_widget_show (load_r_entry);
gtk_box_pack_start (GTK_BOX (hbox88), load_r_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (load_r_entry, 60, -1);
load_r_lbl = gtk_label_new (_(" + j"));
gtk_widget_show (load_r_lbl);
gtk_box_pack_start (GTK_BOX (hbox88), load_r_lbl, TRUE, TRUE, 0);
gtk_misc_set_alignment (GTK_MISC (load_r_lbl), 0, 0.5);
load_x_entry = gtk_entry_new ();
gtk_widget_show (load_x_entry);
gtk_box_pack_start (GTK_BOX (hbox88), load_x_entry, TRUE, TRUE, 0);
gtk_widget_set_size_request (load_x_entry, 60, -1);
load_x_lbl = gtk_label_new (_("Ohm"));
gtk_widget_show (load_x_lbl);
gtk_box_pack_start (GTK_BOX (hbox88), load_x_lbl, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (load_x_lbl), 0, 0.5);
label138 = gtk_label_new (_("Impedance:"));
gtk_widget_show (label138);
gtk_table_attach (GTK_TABLE (table12), label138, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label138), 0, 0.5);
load_ops_table = gtk_table_new (1, 2, TRUE);
gtk_widget_show (load_ops_table);
gtk_table_attach (GTK_TABLE (table12), load_ops_table, 0, 2, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
gtk_table_set_row_spacings (GTK_TABLE (load_ops_table), 2);
gtk_table_set_col_spacings (GTK_TABLE (load_ops_table), 4);
load_append_btn = gtk_button_new_with_mnemonic (_("New"));
gtk_widget_show (load_append_btn);
gtk_table_attach (GTK_TABLE (load_ops_table), load_append_btn, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_sensitive (load_append_btn, FALSE);
load_edit_btn = gtk_button_new_with_mnemonic (_("Update"));
gtk_widget_show (load_edit_btn);
gtk_table_attach (GTK_TABLE (load_ops_table), load_edit_btn, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_sensitive (load_edit_btn, FALSE);
hseparator11 = gtk_hseparator_new ();
gtk_widget_show (hseparator11);
gtk_table_attach (GTK_TABLE (table12), hseparator11, 0, 2, 2, 3,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 3);
hbox89 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox89);
gtk_table_attach (GTK_TABLE (table12), hbox89, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
load_freq_entry = gtk_entry_new ();
gtk_widget_show (load_freq_entry);
gtk_box_pack_start (GTK_BOX (hbox89), load_freq_entry, TRUE, TRUE, 0);
gtk_widget_set_size_request (load_freq_entry, 80, -1);
label140 = gtk_label_new (_("MHz"));
gtk_widget_show (label140);
gtk_box_pack_start (GTK_BOX (hbox89), label140, TRUE, TRUE, 0);
gtk_misc_set_alignment (GTK_MISC (label140), 0, 0.5);
label136 = gtk_label_new (_("Load value"));
gtk_widget_show (label136);
gtk_frame_set_label_widget (GTK_FRAME (frame31), label136);
label502 = gtk_label_new (_("R + jX"));
gtk_widget_show (label502);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (loadtype_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (loadtype_notebook), 0), label502);
frame59 = gtk_frame_new (NULL);
gtk_widget_show (frame59);
gtk_container_add (GTK_CONTAINER (loadtype_notebook), frame59);
table38 = gtk_table_new (5, 2, FALSE);
gtk_widget_show (table38);
gtk_container_add (GTK_CONTAINER (frame59), table38);
gtk_container_set_border_width (GTK_CONTAINER (table38), 6);
gtk_table_set_col_spacings (GTK_TABLE (table38), 8);
label505 = gtk_label_new (_("Frequency: "));
gtk_widget_show (label505);
gtk_table_attach (GTK_TABLE (table38), label505, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 3, 0);
gtk_misc_set_alignment (GTK_MISC (label505), 0, 0.5);
hbox152 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox152);
gtk_table_attach (GTK_TABLE (table38), hbox152, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
load_nb_r_entry = gtk_entry_new ();
gtk_widget_show (load_nb_r_entry);
gtk_box_pack_start (GTK_BOX (hbox152), load_nb_r_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (load_nb_r_entry, 50, -1);
label509 = gtk_label_new (_("Ohm, "));
gtk_widget_show (label509);
gtk_box_pack_start (GTK_BOX (hbox152), label509, TRUE, TRUE, 0);
gtk_misc_set_alignment (GTK_MISC (label509), 0, 0.5);
load_nb_c_entry = gtk_entry_new ();
gtk_widget_show (load_nb_c_entry);
gtk_box_pack_start (GTK_BOX (hbox152), load_nb_c_entry, TRUE, TRUE, 0);
gtk_widget_set_size_request (load_nb_c_entry, 50, -1);
label508 = gtk_label_new (_("pF "));
gtk_widget_show (label508);
gtk_box_pack_start (GTK_BOX (hbox152), label508, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label508), 0, 0.5);
label506 = gtk_label_new (_("Reading:"));
gtk_widget_show (label506);
gtk_table_attach (GTK_TABLE (table38), label506, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label506), 0, 0.5);
load_nb_ext_cbtn = gtk_check_button_new_with_mnemonic (_("Extender"));
gtk_widget_show (load_nb_ext_cbtn);
gtk_table_attach (GTK_TABLE (table38), load_nb_ext_cbtn, 0, 2, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
table40 = gtk_table_new (1, 2, TRUE);
gtk_widget_show (table40);
gtk_table_attach (GTK_TABLE (table38), table40, 0, 2, 4, 5,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
gtk_table_set_row_spacings (GTK_TABLE (table40), 2);
gtk_table_set_col_spacings (GTK_TABLE (table40), 4);
load_nb_append_btn = gtk_button_new_with_mnemonic (_("New"));
gtk_widget_show (load_nb_append_btn);
gtk_table_attach (GTK_TABLE (table40), load_nb_append_btn, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_sensitive (load_nb_append_btn, FALSE);
load_nb_upd_btn = gtk_button_new_with_mnemonic (_("Update"));
gtk_widget_show (load_nb_upd_btn);
gtk_table_attach (GTK_TABLE (table40), load_nb_upd_btn, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_sensitive (load_nb_upd_btn, FALSE);
hseparator12 = gtk_hseparator_new ();
gtk_widget_show (hseparator12);
gtk_table_attach (GTK_TABLE (table38), hseparator12, 0, 2, 3, 4,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 3);
hbox153 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox153);
gtk_table_attach (GTK_TABLE (table38), hbox153, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
load_nb_freq_entry = gtk_entry_new ();
gtk_widget_show (load_nb_freq_entry);
gtk_box_pack_start (GTK_BOX (hbox153), load_nb_freq_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (load_nb_freq_entry, 80, -1);
label510 = gtk_label_new (_("MHz"));
gtk_widget_show (label510);
gtk_box_pack_start (GTK_BOX (hbox153), label510, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label510), 0, 0.5);
label511 = gtk_label_new (_("Load value"));
gtk_widget_show (label511);
gtk_frame_set_label_widget (GTK_FRAME (frame59), label511);
label503 = gtk_label_new (_("Noise bridge"));
gtk_widget_show (label503);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (loadtype_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (loadtype_notebook), 1), label503);
frame60 = gtk_frame_new (NULL);
gtk_widget_show (frame60);
gtk_container_add (GTK_CONTAINER (loadtype_notebook), frame60);
table39 = gtk_table_new (4, 3, FALSE);
gtk_widget_show (table39);
gtk_container_add (GTK_CONTAINER (frame60), table39);
gtk_container_set_border_width (GTK_CONTAINER (table39), 6);
gtk_table_set_col_spacings (GTK_TABLE (table39), 4);
hbox156 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox156);
gtk_table_attach (GTK_TABLE (table39), hbox156, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
entry5 = gtk_entry_new ();
gtk_widget_show (entry5);
gtk_box_pack_start (GTK_BOX (hbox156), entry5, FALSE, TRUE, 0);
gtk_widget_set_size_request (entry5, 75, -1);
label517 = gtk_label_new (_("MHz"));
gtk_widget_show (label517);
gtk_box_pack_start (GTK_BOX (hbox156), label517, TRUE, TRUE, 0);
gtk_misc_set_alignment (GTK_MISC (label517), 0, 0.5);
hbox155 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox155);
gtk_table_attach (GTK_TABLE (table39), hbox155, 2, 3, 1, 2,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
entry6 = gtk_entry_new ();
gtk_widget_show (entry6);
gtk_box_pack_start (GTK_BOX (hbox155), entry6, FALSE, FALSE, 0);
gtk_widget_set_size_request (entry6, 75, -1);
label521 = gtk_label_new (_("MHz"));
gtk_widget_show (label521);
gtk_box_pack_start (GTK_BOX (hbox155), label521, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label521), 0, 0.5);
hbox154 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox154);
gtk_table_attach (GTK_TABLE (table39), hbox154, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
entry4 = gtk_entry_new ();
gtk_widget_show (entry4);
gtk_box_pack_start (GTK_BOX (hbox154), entry4, FALSE, FALSE, 0);
gtk_widget_set_size_request (entry4, 75, -1);
label516 = gtk_label_new (_("MHz"));
gtk_widget_show (label516);
gtk_box_pack_start (GTK_BOX (hbox154), label516, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label516), 0, 0.5);
label513 = gtk_label_new (_("Start frequency:"));
gtk_widget_show (label513);
gtk_table_attach (GTK_TABLE (table39), label513, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label513), 0, 0.5);
label519 = gtk_label_new (_("End frequency:"));
gtk_widget_show (label519);
gtk_table_attach (GTK_TABLE (table39), label519, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label519), 0, 0.5);
label514 = gtk_label_new (_("Step:"));
gtk_widget_show (label514);
gtk_table_attach (GTK_TABLE (table39), label514, 2, 3, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label514), 0, 0.5);
load_remote_hbox = gtk_hbox_new (TRUE, 4);
gtk_widget_show (load_remote_hbox);
gtk_table_attach (GTK_TABLE (table39), load_remote_hbox, 0, 3, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
load_getrem_btn = gtk_button_new_with_mnemonic (_("Update from remote"));
gtk_widget_show (load_getrem_btn);
gtk_box_pack_start (GTK_BOX (load_remote_hbox), load_getrem_btn, FALSE, TRUE, 0);
rem_cancel_btn = gtk_button_new_with_mnemonic (_("Cancel transfer"));
gtk_widget_show (rem_cancel_btn);
gtk_box_pack_start (GTK_BOX (load_remote_hbox), rem_cancel_btn, FALSE, TRUE, 0);
gtk_widget_set_sensitive (rem_cancel_btn, FALSE);
hseparator13 = gtk_hseparator_new ();
gtk_widget_show (hseparator13);
gtk_table_attach (GTK_TABLE (table39), hseparator13, 0, 3, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 3);
label518 = gtk_label_new (_("Frequency range"));
gtk_widget_show (label518);
gtk_frame_set_label_widget (GTK_FRAME (frame60), label518);
gtk_label_set_use_markup (GTK_LABEL (label518), TRUE);
label504 = gtk_label_new (_("Remote"));
gtk_widget_show (label504);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (loadtype_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (loadtype_notebook), 2), label504);
frame26 = gtk_frame_new (NULL);
gtk_widget_show (frame26);
gtk_box_pack_start (GTK_BOX (loadpage_vbox), frame26, TRUE, TRUE, 0);
hbox143 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox143);
gtk_container_add (GTK_CONTAINER (frame26), hbox143);
gtk_container_set_border_width (GTK_CONTAINER (hbox143), 4);
scrolledwindow5 = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_show (scrolledwindow5);
gtk_box_pack_start (GTK_BOX (hbox143), scrolledwindow5, TRUE, TRUE, 0);
gtk_widget_set_size_request (scrolledwindow5, 160, -1);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow5), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
load_treeview = gtk_tree_view_new ();
gtk_widget_show (load_treeview);
gtk_container_add (GTK_CONTAINER (scrolledwindow5), load_treeview);
vbox53 = gtk_vbox_new (FALSE, 2);
gtk_widget_show (vbox53);
gtk_box_pack_start (GTK_BOX (hbox143), vbox53, FALSE, TRUE, 0);
label468 = gtk_label_new ("");
gtk_widget_show (label468);
gtk_box_pack_start (GTK_BOX (vbox53), label468, TRUE, TRUE, 0);
load_remove_btn = gtk_button_new ();
gtk_widget_show (load_remove_btn);
gtk_box_pack_start (GTK_BOX (vbox53), load_remove_btn, FALSE, FALSE, 0);
gtk_widget_set_sensitive (load_remove_btn, FALSE);
gtk_tooltips_set_tip (tooltips, load_remove_btn, _("Remove the selected load"), NULL);
image88 = gtk_image_new_from_stock ("gtk-delete", GTK_ICON_SIZE_MENU);
gtk_widget_show (image88);
gtk_container_add (GTK_CONTAINER (load_remove_btn), image88);
load_clear_btn = gtk_button_new ();
gtk_widget_show (load_clear_btn);
gtk_box_pack_start (GTK_BOX (vbox53), load_clear_btn, FALSE, FALSE, 0);
gtk_widget_set_sensitive (load_clear_btn, FALSE);
gtk_tooltips_set_tip (tooltips, load_clear_btn, _("Clear the load list"), NULL);
image89 = gtk_image_new_from_stock ("gtk-clear", GTK_ICON_SIZE_MENU);
gtk_widget_show (image89);
gtk_container_add (GTK_CONTAINER (load_clear_btn), image89);
label96 = gtk_label_new (_("Load impedances"));
gtk_widget_show (label96);
gtk_frame_set_label_widget (GTK_FRAME (frame26), label96);
hbox142 = gtk_hbox_new (FALSE, 2);
gtk_box_pack_start (GTK_BOX (loadpage_vbox), hbox142, FALSE, TRUE, 0);
label464 = gtk_label_new (_("File:"));
gtk_widget_show (label464);
gtk_box_pack_start (GTK_BOX (hbox142), label464, FALSE, FALSE, 0);
load_filename_lbl = gtk_label_new (_(""));
gtk_widget_show (load_filename_lbl);
gtk_box_pack_start (GTK_BOX (hbox142), load_filename_lbl, TRUE, TRUE, 0);
gtk_misc_set_alignment (GTK_MISC (load_filename_lbl), 0, 0.5);
load_changed_lbl = gtk_label_new (_(" "));
gtk_widget_show (load_changed_lbl);
gtk_box_pack_start (GTK_BOX (hbox142), load_changed_lbl, FALSE, FALSE, 0);
label268 = gtk_label_new (_(" Loads "));
gtk_widget_show (label268);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook4), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook4), 0), label268);
circpage_vbox = gtk_vbox_new (FALSE, 2);
gtk_widget_show (circpage_vbox);
gtk_container_add (GTK_CONTAINER (notebook4), circpage_vbox);
gtk_container_set_border_width (GTK_CONTAINER (circpage_vbox), 4);
hbox137 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox137);
gtk_box_pack_start (GTK_BOX (circpage_vbox), hbox137, FALSE, TRUE, 0);
vbox34 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox34);
gtk_box_pack_start (GTK_BOX (hbox137), vbox34, TRUE, TRUE, 0);
frame55 = gtk_frame_new (NULL);
gtk_widget_show (frame55);
gtk_box_pack_start (GTK_BOX (vbox34), frame55, FALSE, TRUE, 0);
table33 = gtk_table_new (1, 3, FALSE);
gtk_widget_show (table33);
gtk_container_add (GTK_CONTAINER (frame55), table33);
gtk_container_set_border_width (GTK_CONTAINER (table33), 4);
gtk_table_set_row_spacings (GTK_TABLE (table33), 2);
gtk_table_set_col_spacings (GTK_TABLE (table33), 2);
comp_series_tbtn = gtk_toggle_button_new ();
gtk_widget_show (comp_series_tbtn);
gtk_table_attach (GTK_TABLE (table33), comp_series_tbtn, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_tooltips_set_tip (tooltips, comp_series_tbtn, _("Series element"), NULL);
comp_series_img = create_pixmap (MainWindow, NULL);
gtk_widget_show (comp_series_img);
gtk_container_add (GTK_CONTAINER (comp_series_tbtn), comp_series_img);
comp_parallel_tbtn = gtk_toggle_button_new ();
gtk_widget_show (comp_parallel_tbtn);
gtk_table_attach (GTK_TABLE (table33), comp_parallel_tbtn, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_tooltips_set_tip (tooltips, comp_parallel_tbtn, _("Parallel element"), NULL);
comp_parallel_img = create_pixmap (MainWindow, NULL);
gtk_widget_show (comp_parallel_img);
gtk_container_add (GTK_CONTAINER (comp_parallel_tbtn), comp_parallel_img);
label447 = gtk_label_new ("");
gtk_widget_show (label447);
gtk_table_attach (GTK_TABLE (table33), label447, 2, 3, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label447), 0, 0.5);
label454 = gtk_label_new (_("Connection"));
gtk_widget_show (label454);
gtk_frame_set_label_widget (GTK_FRAME (frame55), label454);
frame54 = gtk_frame_new (NULL);
gtk_widget_show (frame54);
gtk_box_pack_start (GTK_BOX (vbox34), frame54, FALSE, TRUE, 2);
table32 = gtk_table_new (3, 5, FALSE);
gtk_widget_show (table32);
gtk_container_add (GTK_CONTAINER (frame54), table32);
gtk_container_set_border_width (GTK_CONTAINER (table32), 4);
gtk_table_set_row_spacings (GTK_TABLE (table32), 2);
gtk_table_set_col_spacings (GTK_TABLE (table32), 2);
comp_ostub_tbtn = gtk_toggle_button_new ();
gtk_widget_show (comp_ostub_tbtn);
gtk_table_attach (GTK_TABLE (table32), comp_ostub_tbtn, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_tooltips_set_tip (tooltips, comp_ostub_tbtn, _("Open stub"), NULL);
comp_ostub_img = create_pixmap (MainWindow, NULL);
gtk_widget_show (comp_ostub_img);
gtk_container_add (GTK_CONTAINER (comp_ostub_tbtn), comp_ostub_img);
comp_sstub_tbtn = gtk_toggle_button_new ();
gtk_widget_show (comp_sstub_tbtn);
gtk_table_attach (GTK_TABLE (table32), comp_sstub_tbtn, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_tooltips_set_tip (tooltips, comp_sstub_tbtn, _("Shorted stub"), NULL);
comp_sstub_img = create_pixmap (MainWindow, NULL);
gtk_widget_show (comp_sstub_img);
gtk_container_add (GTK_CONTAINER (comp_sstub_tbtn), comp_sstub_img);
comp_line_tbtn = gtk_toggle_button_new ();
gtk_widget_show (comp_line_tbtn);
gtk_table_attach (GTK_TABLE (table32), comp_line_tbtn, 2, 3, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_tooltips_set_tip (tooltips, comp_line_tbtn, _("Transmission line"), NULL);
comp_line_img = create_pixmap (MainWindow, NULL);
gtk_widget_show (comp_line_img);
gtk_container_add (GTK_CONTAINER (comp_line_tbtn), comp_line_img);
comp_discr_l_tbtn = gtk_toggle_button_new ();
gtk_widget_show (comp_discr_l_tbtn);
gtk_table_attach (GTK_TABLE (table32), comp_discr_l_tbtn, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_tooltips_set_tip (tooltips, comp_discr_l_tbtn, _("Discrete L"), NULL);
comp_discr_l_img = create_pixmap (MainWindow, NULL);
gtk_widget_show (comp_discr_l_img);
gtk_container_add (GTK_CONTAINER (comp_discr_l_tbtn), comp_discr_l_img);
comp_discr_parlc_tbtn = gtk_toggle_button_new ();
gtk_widget_show (comp_discr_parlc_tbtn);
gtk_table_attach (GTK_TABLE (table32), comp_discr_parlc_tbtn, 2, 3, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_tooltips_set_tip (tooltips, comp_discr_parlc_tbtn, _("Discrete parallel LC"), NULL);
comp_discr_parlc_img = create_pixmap (MainWindow, NULL);
gtk_widget_show (comp_discr_parlc_img);
gtk_container_add (GTK_CONTAINER (comp_discr_parlc_tbtn), comp_discr_parlc_img);
comp_discr_serlc_tbtn = gtk_toggle_button_new ();
gtk_widget_show (comp_discr_serlc_tbtn);
gtk_table_attach (GTK_TABLE (table32), comp_discr_serlc_tbtn, 3, 4, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_tooltips_set_tip (tooltips, comp_discr_serlc_tbtn, _("Discrete series LC"), NULL);
comp_discr_serlc_img = create_pixmap (MainWindow, NULL);
gtk_widget_show (comp_discr_serlc_img);
gtk_container_add (GTK_CONTAINER (comp_discr_serlc_tbtn), comp_discr_serlc_img);
comp_discr_c_tbtn = gtk_toggle_button_new ();
gtk_widget_show (comp_discr_c_tbtn);
gtk_table_attach (GTK_TABLE (table32), comp_discr_c_tbtn, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_tooltips_set_tip (tooltips, comp_discr_c_tbtn, _("Discrete C"), NULL);
comp_discr_c_img = create_pixmap (MainWindow, NULL);
gtk_widget_show (comp_discr_c_img);
gtk_container_add (GTK_CONTAINER (comp_discr_c_tbtn), comp_discr_c_img);
comp_xform_tbtn = gtk_toggle_button_new ();
gtk_widget_show (comp_xform_tbtn);
gtk_table_attach (GTK_TABLE (table32), comp_xform_tbtn, 0, 1, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_tooltips_set_tip (tooltips, comp_xform_tbtn, _("Transformer"), NULL);
comp_xform_img = create_pixmap (MainWindow, NULL);
gtk_widget_show (comp_xform_img);
gtk_container_add (GTK_CONTAINER (comp_xform_tbtn), comp_xform_img);
comp_zy_tbtn = gtk_toggle_button_new ();
gtk_widget_show (comp_zy_tbtn);
gtk_table_attach (GTK_TABLE (table32), comp_zy_tbtn, 1, 2, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_tooltips_set_tip (tooltips, comp_zy_tbtn, _("Impedance/Admittance conversion"), NULL);
comp_zy_img = create_pixmap (MainWindow, NULL);
gtk_widget_show (comp_zy_img);
gtk_container_add (GTK_CONTAINER (comp_zy_tbtn), comp_zy_img);
label452 = gtk_label_new ("");
gtk_widget_show (label452);
gtk_table_attach (GTK_TABLE (table32), label452, 4, 5, 0, 3,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label452), 0, 0.5);
label445 = gtk_label_new ("");
gtk_widget_show (label445);
gtk_table_attach (GTK_TABLE (table32), label445, 2, 3, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label445), 0, 0.5);
label446 = gtk_label_new ("");
gtk_widget_show (label446);
gtk_table_attach (GTK_TABLE (table32), label446, 3, 4, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label446), 0, 0.5);
label444 = gtk_label_new ("");
gtk_widget_show (label444);
gtk_table_attach (GTK_TABLE (table32), label444, 3, 4, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label444), 0, 0.5);
label453 = gtk_label_new (_("Component"));
gtk_widget_show (label453);
gtk_frame_set_label_widget (GTK_FRAME (frame54), label453);
hbox96 = gtk_hbox_new (TRUE, 2);
gtk_widget_show (hbox96);
gtk_box_pack_start (GTK_BOX (vbox34), hbox96, TRUE, TRUE, 0);
circ_newel_btn = gtk_button_new_with_mnemonic (_("New"));
gtk_widget_show (circ_newel_btn);
gtk_box_pack_start (GTK_BOX (hbox96), circ_newel_btn, TRUE, TRUE, 0);
gtk_widget_set_sensitive (circ_newel_btn, FALSE);
circ_upd_el_btn = gtk_button_new_with_mnemonic (_("Update"));
gtk_widget_show (circ_upd_el_btn);
gtk_box_pack_start (GTK_BOX (hbox96), circ_upd_el_btn, TRUE, TRUE, 0);
gtk_widget_set_sensitive (circ_upd_el_btn, FALSE);
comp_notebook = gtk_notebook_new ();
gtk_widget_show (comp_notebook);
gtk_box_pack_start (GTK_BOX (hbox137), comp_notebook, TRUE, TRUE, 0);
GTK_WIDGET_UNSET_FLAGS (comp_notebook, GTK_CAN_FOCUS);
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (comp_notebook), FALSE);
gtk_notebook_set_show_border (GTK_NOTEBOOK (comp_notebook), FALSE);
discr_frame = gtk_frame_new (NULL);
gtk_widget_show (discr_frame);
gtk_container_add (GTK_CONTAINER (comp_notebook), discr_frame);
vbox46 = gtk_vbox_new (FALSE, 6);
gtk_widget_show (vbox46);
gtk_container_add (GTK_CONTAINER (discr_frame), vbox46);
gtk_container_set_border_width (GTK_CONTAINER (vbox46), 4);
comp_cap_table = gtk_table_new (2, 3, FALSE);
gtk_widget_show (comp_cap_table);
gtk_box_pack_start (GTK_BOX (vbox46), comp_cap_table, FALSE, TRUE, 0);
gtk_table_set_row_spacings (GTK_TABLE (comp_cap_table), 1);
gtk_table_set_col_spacings (GTK_TABLE (comp_cap_table), 4);
label223 = gtk_label_new (_("Capacitor value:"));
gtk_widget_show (label223);
gtk_table_attach (GTK_TABLE (comp_cap_table), label223, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label223), 0, 0.5);
comp_cap_unit_lbl = gtk_label_new (_("pF"));
gtk_widget_show (comp_cap_unit_lbl);
gtk_table_attach (GTK_TABLE (comp_cap_table), comp_cap_unit_lbl, 2, 3, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (comp_cap_unit_lbl), 0, 0.5);
comp_cap_val_entry = gtk_entry_new ();
gtk_widget_show (comp_cap_val_entry);
gtk_table_attach (GTK_TABLE (comp_cap_table), comp_cap_val_entry, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_size_request (comp_cap_val_entry, 53, -1);
comp_cap_val_scale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (50, 0, 100, 0, 0, 0)));
gtk_widget_show (comp_cap_val_scale);
gtk_table_attach (GTK_TABLE (comp_cap_table), comp_cap_val_scale, 0, 3, 1, 2,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
gtk_widget_set_size_request (comp_cap_val_scale, -1, 15);
gtk_widget_set_sensitive (comp_cap_val_scale, FALSE);
gtk_scale_set_draw_value (GTK_SCALE (comp_cap_val_scale), FALSE);
comp_ind_table = gtk_table_new (2, 3, FALSE);
gtk_widget_show (comp_ind_table);
gtk_box_pack_start (GTK_BOX (vbox46), comp_ind_table, FALSE, TRUE, 0);
gtk_widget_set_sensitive (comp_ind_table, FALSE);
gtk_table_set_row_spacings (GTK_TABLE (comp_ind_table), 1);
gtk_table_set_col_spacings (GTK_TABLE (comp_ind_table), 4);
label438 = gtk_label_new (_("Inductor value:"));
gtk_widget_show (label438);
gtk_table_attach (GTK_TABLE (comp_ind_table), label438, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label438), 0, 0.5);
comp_ind_unit_lbl = gtk_label_new (_("nH"));
gtk_widget_show (comp_ind_unit_lbl);
gtk_table_attach (GTK_TABLE (comp_ind_table), comp_ind_unit_lbl, 2, 3, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (comp_ind_unit_lbl), 0, 0.5);
comp_ind_val_entry = gtk_entry_new ();
gtk_widget_show (comp_ind_val_entry);
gtk_table_attach (GTK_TABLE (comp_ind_table), comp_ind_val_entry, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_size_request (comp_ind_val_entry, 53, -1);
comp_ind_val_scale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (50, 0, 100, 0, 0, 0)));
gtk_widget_show (comp_ind_val_scale);
gtk_table_attach (GTK_TABLE (comp_ind_table), comp_ind_val_scale, 0, 3, 1, 2,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
gtk_widget_set_size_request (comp_ind_val_scale, -1, 15);
gtk_widget_set_sensitive (comp_ind_val_scale, FALSE);
gtk_scale_set_draw_value (GTK_SCALE (comp_ind_val_scale), FALSE);
label219 = gtk_label_new (_("Discrete component"));
gtk_widget_show (label219);
gtk_frame_set_label_widget (GTK_FRAME (discr_frame), label219);
label238 = gtk_label_new (_("Discrete"));
gtk_widget_show (label238);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (comp_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (comp_notebook), 0), label238);
notebook5 = gtk_notebook_new ();
gtk_widget_show (notebook5);
gtk_container_add (GTK_CONTAINER (comp_notebook), notebook5);
stub_vbox = gtk_vbox_new (FALSE, 0);
gtk_widget_show (stub_vbox);
gtk_container_add (GTK_CONTAINER (notebook5), stub_vbox);
gtk_container_set_border_width (GTK_CONTAINER (stub_vbox), 4);
stub_prop_table = gtk_table_new (7, 2, FALSE);
gtk_widget_show (stub_prop_table);
gtk_box_pack_start (GTK_BOX (stub_vbox), stub_prop_table, FALSE, TRUE, 0);
gtk_table_set_row_spacings (GTK_TABLE (stub_prop_table), 2);
gtk_table_set_col_spacings (GTK_TABLE (stub_prop_table), 4);
hbox74 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox74);
gtk_table_attach (GTK_TABLE (stub_prop_table), hbox74, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
comp_stub_entry = gtk_entry_new ();
gtk_widget_show (comp_stub_entry);
gtk_box_pack_start (GTK_BOX (hbox74), comp_stub_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (comp_stub_entry, 50, 20);
label232 = gtk_label_new (_("mm "));
gtk_widget_show (label232);
gtk_box_pack_start (GTK_BOX (hbox74), label232, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label232), 0, 0.5);
label231 = gtk_label_new (_("Line length:"));
gtk_widget_show (label231);
gtk_table_attach (GTK_TABLE (stub_prop_table), label231, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label231), 0, 0.5);
comp_stub_scale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (50, 0, 100, 0, 0, 0)));
gtk_widget_show (comp_stub_scale);
gtk_table_attach (GTK_TABLE (stub_prop_table), comp_stub_scale, 0, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
gtk_widget_set_size_request (comp_stub_scale, -1, 15);
gtk_widget_set_sensitive (comp_stub_scale, FALSE);
gtk_scale_set_draw_value (GTK_SCALE (comp_stub_scale), FALSE);
hbox86 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox86);
gtk_table_attach (GTK_TABLE (stub_prop_table), hbox86, 1, 2, 6, 7,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
comp_stub_vf_entry = gtk_entry_new ();
gtk_widget_show (comp_stub_vf_entry);
gtk_box_pack_start (GTK_BOX (hbox86), comp_stub_vf_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (comp_stub_vf_entry, 40, 20);
gtk_entry_set_text (GTK_ENTRY (comp_stub_vf_entry), _("0.66"));
label265 = gtk_label_new ("");
gtk_widget_show (label265);
gtk_box_pack_start (GTK_BOX (hbox86), label265, TRUE, TRUE, 0);
gtk_misc_set_alignment (GTK_MISC (label265), 0, 0.5);
label120 = gtk_label_new (_("Velocity factor:"));
gtk_widget_show (label120);
gtk_table_attach (GTK_TABLE (stub_prop_table), label120, 0, 1, 6, 7,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label120), 0, 0.5);
comp_stub_z0_scale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (50, 0, 100, 0, 0, 0)));
gtk_widget_show (comp_stub_z0_scale);
gtk_table_attach (GTK_TABLE (stub_prop_table), comp_stub_z0_scale, 0, 2, 4, 5,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
gtk_widget_set_size_request (comp_stub_z0_scale, -1, 15);
gtk_widget_set_sensitive (comp_stub_z0_scale, FALSE);
gtk_scale_set_draw_value (GTK_SCALE (comp_stub_z0_scale), FALSE);
label259 = gtk_label_new (_("Char. impedance:"));
gtk_widget_show (label259);
gtk_table_attach (GTK_TABLE (stub_prop_table), label259, 0, 1, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label259), 0, 0.5);
hbox73 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox73);
gtk_table_attach (GTK_TABLE (stub_prop_table), hbox73, 1, 2, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
comp_stub_z0_entry = gtk_entry_new ();
gtk_widget_show (comp_stub_z0_entry);
gtk_box_pack_start (GTK_BOX (hbox73), comp_stub_z0_entry, TRUE, TRUE, 0);
gtk_widget_set_size_request (comp_stub_z0_entry, 40, 20);
gtk_entry_set_text (GTK_ENTRY (comp_stub_z0_entry), _("50"));
label123 = gtk_label_new (_("Ohm "));
gtk_widget_show (label123);
gtk_box_pack_start (GTK_BOX (hbox73), label123, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label123), 0, 0.5);
label278 = gtk_label_new ("");
gtk_widget_show (label278);
gtk_table_attach (GTK_TABLE (stub_prop_table), label278, 0, 2, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_size_request (label278, -1, 2);
gtk_misc_set_alignment (GTK_MISC (label278), 0, 0.5);
label279 = gtk_label_new ("");
gtk_widget_show (label279);
gtk_table_attach (GTK_TABLE (stub_prop_table), label279, 0, 2, 5, 6,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_size_request (label279, -1, 2);
gtk_misc_set_alignment (GTK_MISC (label279), 0, 0.5);
label465 = gtk_label_new ("");
gtk_widget_show (label465);
gtk_box_pack_start (GTK_BOX (stub_vbox), label465, TRUE, TRUE, 2);
comp_stub_selcable_btn = gtk_button_new_with_mnemonic (_("Select standard cable"));
gtk_widget_show (comp_stub_selcable_btn);
gtk_box_pack_start (GTK_BOX (stub_vbox), comp_stub_selcable_btn, FALSE, FALSE, 0);
label448 = gtk_label_new (_("Stub properties"));
gtk_widget_show (label448);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook5), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook5), 0), label448);
vbox48 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox48);
gtk_container_add (GTK_CONTAINER (notebook5), vbox48);
comp_stub_useloss_cbtn = gtk_check_button_new_with_mnemonic (_("Use loss factor:"));
gtk_widget_show (comp_stub_useloss_cbtn);
gtk_box_pack_start (GTK_BOX (vbox48), comp_stub_useloss_cbtn, FALSE, FALSE, 0);
gtk_widget_set_sensitive (comp_stub_useloss_cbtn, FALSE);
table11 = gtk_table_new (4, 2, FALSE);
gtk_widget_show (table11);
gtk_box_pack_start (GTK_BOX (vbox48), table11, TRUE, TRUE, 0);
gtk_table_set_row_spacings (GTK_TABLE (table11), 2);
label128 = gtk_label_new (_("@ frequency:"));
gtk_widget_show (label128);
gtk_table_attach (GTK_TABLE (table11), label128, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 4, 0);
gtk_misc_set_alignment (GTK_MISC (label128), 0, 0.5);
label129 = gtk_label_new (_("Loss factor 1:"));
gtk_widget_show (label129);
gtk_table_attach (GTK_TABLE (table11), label129, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 4, 0);
gtk_misc_set_alignment (GTK_MISC (label129), 0, 0.5);
label145 = gtk_label_new (_("Loss factor 2:"));
gtk_widget_show (label145);
gtk_table_attach (GTK_TABLE (table11), label145, 0, 1, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 4, 0);
gtk_misc_set_alignment (GTK_MISC (label145), 0, 0.5);
label144 = gtk_label_new (_("@ frequency:"));
gtk_widget_show (label144);
gtk_table_attach (GTK_TABLE (table11), label144, 0, 1, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 4, 0);
gtk_misc_set_alignment (GTK_MISC (label144), 0, 0.5);
hbox75 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox75);
gtk_table_attach (GTK_TABLE (table11), hbox75, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
comp_stub_l1_entry = gtk_entry_new ();
gtk_widget_show (comp_stub_l1_entry);
gtk_box_pack_start (GTK_BOX (hbox75), comp_stub_l1_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (comp_stub_l1_entry, 40, 20);
label124 = gtk_label_new (_("dB/100ft"));
gtk_widget_show (label124);
gtk_box_pack_start (GTK_BOX (hbox75), label124, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label124), 0, 0.5);
hbox76 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox76);
gtk_table_attach (GTK_TABLE (table11), hbox76, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
comp_stub_f1_entry = gtk_entry_new ();
gtk_widget_show (comp_stub_f1_entry);
gtk_box_pack_start (GTK_BOX (hbox76), comp_stub_f1_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (comp_stub_f1_entry, 50, 20);
label125 = gtk_label_new (_("MHz"));
gtk_widget_show (label125);
gtk_box_pack_start (GTK_BOX (hbox76), label125, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label125), 0, 0.5);
hbox77 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox77);
gtk_table_attach (GTK_TABLE (table11), hbox77, 1, 2, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
comp_stub_l2_entry = gtk_entry_new ();
gtk_widget_show (comp_stub_l2_entry);
gtk_box_pack_start (GTK_BOX (hbox77), comp_stub_l2_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (comp_stub_l2_entry, 40, 20);
label146 = gtk_label_new (_("dB/100ft"));
gtk_widget_show (label146);
gtk_box_pack_start (GTK_BOX (hbox77), label146, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label146), 0, 0.5);
hbox78 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox78);
gtk_table_attach (GTK_TABLE (table11), hbox78, 1, 2, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
comp_stub_f2_entry = gtk_entry_new ();
gtk_widget_show (comp_stub_f2_entry);
gtk_box_pack_start (GTK_BOX (hbox78), comp_stub_f2_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (comp_stub_f2_entry, 50, 20);
label147 = gtk_label_new (_("MHz"));
gtk_widget_show (label147);
gtk_box_pack_start (GTK_BOX (hbox78), label147, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label147), 0, 0.5);
label449 = gtk_label_new (_("Loss factor"));
gtk_widget_show (label449);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook5), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook5), 1), label449);
label239 = gtk_label_new (_("Stub"));
gtk_widget_show (label239);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (comp_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (comp_notebook), 1), label239);
notebook6 = gtk_notebook_new ();
gtk_widget_show (notebook6);
gtk_container_add (GTK_CONTAINER (comp_notebook), notebook6);
line_vbox = gtk_vbox_new (FALSE, 0);
gtk_widget_show (line_vbox);
gtk_container_add (GTK_CONTAINER (notebook6), line_vbox);
gtk_container_set_border_width (GTK_CONTAINER (line_vbox), 4);
line_prop_vbox = gtk_table_new (7, 2, FALSE);
gtk_widget_show (line_prop_vbox);
gtk_box_pack_start (GTK_BOX (line_vbox), line_prop_vbox, FALSE, TRUE, 0);
gtk_table_set_row_spacings (GTK_TABLE (line_prop_vbox), 2);
gtk_table_set_col_spacings (GTK_TABLE (line_prop_vbox), 4);
hbox85 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox85);
gtk_table_attach (GTK_TABLE (line_prop_vbox), hbox85, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
comp_line_entry = gtk_entry_new ();
gtk_widget_show (comp_line_entry);
gtk_box_pack_start (GTK_BOX (hbox85), comp_line_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (comp_line_entry, 50, 20);
label247 = gtk_label_new (_("mm "));
gtk_widget_show (label247);
gtk_box_pack_start (GTK_BOX (hbox85), label247, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label247), 0, 0.5);
label264 = gtk_label_new (_("Line length:"));
gtk_widget_show (label264);
gtk_table_attach (GTK_TABLE (line_prop_vbox), label264, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label264), 0, 0.5);
hbox83 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox83);
gtk_table_attach (GTK_TABLE (line_prop_vbox), hbox83, 1, 2, 6, 7,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
comp_line_vf_entry = gtk_entry_new ();
gtk_widget_show (comp_line_vf_entry);
gtk_box_pack_start (GTK_BOX (hbox83), comp_line_vf_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (comp_line_vf_entry, 40, 20);
gtk_entry_set_text (GTK_ENTRY (comp_line_vf_entry), _("0.66"));
label263 = gtk_label_new ("");
gtk_widget_show (label263);
gtk_box_pack_start (GTK_BOX (hbox83), label263, TRUE, TRUE, 0);
gtk_misc_set_alignment (GTK_MISC (label263), 0, 0.5);
label244 = gtk_label_new (_("Velocity factor:"));
gtk_widget_show (label244);
gtk_table_attach (GTK_TABLE (line_prop_vbox), label244, 0, 1, 6, 7,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label244), 0, 0.5);
hbox84 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox84);
gtk_table_attach (GTK_TABLE (line_prop_vbox), hbox84, 1, 2, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
comp_line_z0_entry = gtk_entry_new ();
gtk_widget_show (comp_line_z0_entry);
gtk_box_pack_start (GTK_BOX (hbox84), comp_line_z0_entry, TRUE, FALSE, 0);
gtk_widget_set_size_request (comp_line_z0_entry, 40, 20);
gtk_entry_set_text (GTK_ENTRY (comp_line_z0_entry), _("50"));
label262 = gtk_label_new (_("Ohm "));
gtk_widget_show (label262);
gtk_box_pack_start (GTK_BOX (hbox84), label262, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label262), 0, 0.5);
label248 = gtk_label_new (_("Char. impedance:"));
gtk_widget_show (label248);
gtk_table_attach (GTK_TABLE (line_prop_vbox), label248, 0, 1, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label248), 0, 0.5);
comp_line_scale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (50, 0, 100, 0, 0, 0)));
gtk_widget_show (comp_line_scale);
gtk_table_attach (GTK_TABLE (line_prop_vbox), comp_line_scale, 0, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
gtk_widget_set_size_request (comp_line_scale, -1, 15);
gtk_widget_set_sensitive (comp_line_scale, FALSE);
gtk_scale_set_draw_value (GTK_SCALE (comp_line_scale), FALSE);
comp_line_z0_scale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (50, 0, 100, 0, 0, 0)));
gtk_widget_show (comp_line_z0_scale);
gtk_table_attach (GTK_TABLE (line_prop_vbox), comp_line_z0_scale, 0, 2, 4, 5,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
gtk_widget_set_size_request (comp_line_z0_scale, -1, 15);
gtk_widget_set_sensitive (comp_line_z0_scale, FALSE);
gtk_scale_set_draw_value (GTK_SCALE (comp_line_z0_scale), FALSE);
label280 = gtk_label_new ("");
gtk_widget_show (label280);
gtk_table_attach (GTK_TABLE (line_prop_vbox), label280, 0, 2, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_size_request (label280, -1, 2);
gtk_misc_set_alignment (GTK_MISC (label280), 0, 0.5);
label281 = gtk_label_new ("");
gtk_widget_show (label281);
gtk_table_attach (GTK_TABLE (line_prop_vbox), label281, 0, 2, 5, 6,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_size_request (label281, -1, 2);
gtk_misc_set_alignment (GTK_MISC (label281), 0, 0.5);
label466 = gtk_label_new ("");
gtk_widget_show (label466);
gtk_box_pack_start (GTK_BOX (line_vbox), label466, TRUE, TRUE, 2);
comp_line_selcable_btn = gtk_button_new_with_mnemonic (_("Select standard cable"));
gtk_widget_show (comp_line_selcable_btn);
gtk_box_pack_start (GTK_BOX (line_vbox), comp_line_selcable_btn, FALSE, FALSE, 0);
label450 = gtk_label_new (_("Line properties"));
gtk_widget_show (label450);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook6), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook6), 0), label450);
vbox49 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox49);
gtk_container_add (GTK_CONTAINER (notebook6), vbox49);
comp_line_useloss_cbtn = gtk_check_button_new_with_mnemonic (_("Use loss factor:"));
gtk_widget_show (comp_line_useloss_cbtn);
gtk_box_pack_start (GTK_BOX (vbox49), comp_line_useloss_cbtn, FALSE, FALSE, 0);
gtk_widget_set_sensitive (comp_line_useloss_cbtn, FALSE);
table20 = gtk_table_new (4, 2, FALSE);
gtk_widget_show (table20);
gtk_box_pack_start (GTK_BOX (vbox49), table20, TRUE, TRUE, 0);
gtk_table_set_row_spacings (GTK_TABLE (table20), 2);
label252 = gtk_label_new (_("@ frequency:"));
gtk_widget_show (label252);
gtk_table_attach (GTK_TABLE (table20), label252, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 4, 0);
gtk_misc_set_alignment (GTK_MISC (label252), 0, 0.5);
label253 = gtk_label_new (_("Loss factor 1:"));
gtk_widget_show (label253);
gtk_table_attach (GTK_TABLE (table20), label253, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 4, 0);
gtk_misc_set_alignment (GTK_MISC (label253), 0, 0.5);
label256 = gtk_label_new (_("Loss factor 2:"));
gtk_widget_show (label256);
gtk_table_attach (GTK_TABLE (table20), label256, 0, 1, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 4, 0);
gtk_misc_set_alignment (GTK_MISC (label256), 0, 0.5);
label257 = gtk_label_new (_("@ frequency:"));
gtk_widget_show (label257);
gtk_table_attach (GTK_TABLE (table20), label257, 0, 1, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 4, 0);
gtk_misc_set_alignment (GTK_MISC (label257), 0, 0.5);
hbox79 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox79);
gtk_table_attach (GTK_TABLE (table20), hbox79, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
comp_line_l1_entry = gtk_entry_new ();
gtk_widget_show (comp_line_l1_entry);
gtk_box_pack_start (GTK_BOX (hbox79), comp_line_l1_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (comp_line_l1_entry, 40, 20);
label250 = gtk_label_new (_("dB/100ft"));
gtk_widget_show (label250);
gtk_box_pack_start (GTK_BOX (hbox79), label250, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label250), 0, 0.5);
hbox80 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox80);
gtk_table_attach (GTK_TABLE (table20), hbox80, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
comp_line_f1_entry = gtk_entry_new ();
gtk_widget_show (comp_line_f1_entry);
gtk_box_pack_start (GTK_BOX (hbox80), comp_line_f1_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (comp_line_f1_entry, 50, 20);
label251 = gtk_label_new (_("MHz"));
gtk_widget_show (label251);
gtk_box_pack_start (GTK_BOX (hbox80), label251, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label251), 0, 0.5);
hbox81 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox81);
gtk_table_attach (GTK_TABLE (table20), hbox81, 1, 2, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
comp_line_l2_entry = gtk_entry_new ();
gtk_widget_show (comp_line_l2_entry);
gtk_box_pack_start (GTK_BOX (hbox81), comp_line_l2_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (comp_line_l2_entry, 40, 20);
label255 = gtk_label_new (_("dB/100ft"));
gtk_widget_show (label255);
gtk_box_pack_start (GTK_BOX (hbox81), label255, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label255), 0, 0.5);
hbox82 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox82);
gtk_table_attach (GTK_TABLE (table20), hbox82, 1, 2, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
comp_line_f2_entry = gtk_entry_new ();
gtk_widget_show (comp_line_f2_entry);
gtk_box_pack_start (GTK_BOX (hbox82), comp_line_f2_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (comp_line_f2_entry, 50, 20);
label254 = gtk_label_new (_("MHz"));
gtk_widget_show (label254);
gtk_box_pack_start (GTK_BOX (hbox82), label254, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label254), 0, 0.5);
label451 = gtk_label_new (_("Losses"));
gtk_widget_show (label451);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook6), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook6), 1), label451);
label240 = gtk_label_new (_("Line"));
gtk_widget_show (label240);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (comp_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (comp_notebook), 2), label240);
xform_frame = gtk_frame_new (NULL);
gtk_widget_show (xform_frame);
gtk_container_add (GTK_CONTAINER (comp_notebook), xform_frame);
table18 = gtk_table_new (2, 2, FALSE);
gtk_widget_show (table18);
gtk_container_add (GTK_CONTAINER (xform_frame), table18);
gtk_container_set_border_width (GTK_CONTAINER (table18), 4);
gtk_table_set_row_spacings (GTK_TABLE (table18), 2);
gtk_table_set_col_spacings (GTK_TABLE (table18), 4);
label233 = gtk_label_new (_("Ratio:"));
gtk_widget_show (label233);
gtk_table_attach (GTK_TABLE (table18), label233, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label233), 0, 0.5);
hbox69 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox69);
gtk_table_attach (GTK_TABLE (table18), hbox69, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
comp_xform_entry = gtk_entry_new ();
gtk_widget_show (comp_xform_entry);
gtk_box_pack_start (GTK_BOX (hbox69), comp_xform_entry, FALSE, FALSE, 0);
gtk_widget_set_size_request (comp_xform_entry, 60, -1);
label235 = gtk_label_new (_(" "));
gtk_widget_show (label235);
gtk_box_pack_start (GTK_BOX (hbox69), label235, FALSE, FALSE, 0);
comp_xform_scale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (50, 0, 100, 0, 0, 0)));
gtk_widget_show (comp_xform_scale);
gtk_table_attach (GTK_TABLE (table18), comp_xform_scale, 0, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
gtk_widget_set_size_request (comp_xform_scale, -1, 15);
gtk_widget_set_sensitive (comp_xform_scale, FALSE);
gtk_scale_set_draw_value (GTK_SCALE (comp_xform_scale), FALSE);
label237 = gtk_label_new (_("Transformer"));
gtk_widget_show (label237);
gtk_frame_set_label_widget (GTK_FRAME (xform_frame), label237);
label241 = gtk_label_new (_("Transformer"));
gtk_widget_show (label241);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (comp_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (comp_notebook), 3), label241);
frame50 = gtk_frame_new (NULL);
gtk_widget_show (frame50);
gtk_container_add (GTK_CONTAINER (comp_notebook), frame50);
vbox43 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox43);
gtk_container_add (GTK_CONTAINER (frame50), vbox43);
gtk_container_set_border_width (GTK_CONTAINER (vbox43), 4);
label365 = gtk_label_new (_("This component has no options"));
gtk_widget_show (label365);
gtk_box_pack_start (GTK_BOX (vbox43), label365, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label365), 0, 0.5);
label364 = gtk_label_new (_("Z <> Y switch"));
gtk_widget_show (label364);
gtk_frame_set_label_widget (GTK_FRAME (frame50), label364);
label363 = gtk_label_new (_("label363"));
gtk_widget_show (label363);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (comp_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (comp_notebook), 4), label363);
frame21 = gtk_frame_new (NULL);
gtk_widget_show (frame21);
gtk_box_pack_start (GTK_BOX (circpage_vbox), frame21, TRUE, TRUE, 0);
hbox139 = gtk_hbox_new (FALSE, 5);
gtk_widget_show (hbox139);
gtk_container_add (GTK_CONTAINER (frame21), hbox139);
gtk_container_set_border_width (GTK_CONTAINER (hbox139), 4);
scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_show (scrolledwindow4);
gtk_box_pack_start (GTK_BOX (hbox139), scrolledwindow4, TRUE, TRUE, 0);
gtk_widget_set_size_request (scrolledwindow4, 160, -1);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow4), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
circ_treeview = gtk_tree_view_new ();
gtk_widget_show (circ_treeview);
gtk_container_add (GTK_CONTAINER (scrolledwindow4), circ_treeview);
vbox13 = gtk_vbox_new (FALSE, 4);
gtk_widget_show (vbox13);
gtk_box_pack_start (GTK_BOX (hbox139), vbox13, FALSE, TRUE, 0);
circ_up_btn = gtk_button_new ();
gtk_widget_show (circ_up_btn);
gtk_box_pack_start (GTK_BOX (vbox13), circ_up_btn, FALSE, FALSE, 0);
gtk_widget_set_sensitive (circ_up_btn, FALSE);
image85 = gtk_image_new_from_stock ("gtk-go-up", GTK_ICON_SIZE_MENU);
gtk_widget_show (image85);
gtk_container_add (GTK_CONTAINER (circ_up_btn), image85);
circ_down_btn = gtk_button_new ();
gtk_widget_show (circ_down_btn);
gtk_box_pack_start (GTK_BOX (vbox13), circ_down_btn, FALSE, FALSE, 0);
gtk_widget_set_sensitive (circ_down_btn, FALSE);
image84 = gtk_image_new_from_stock ("gtk-go-down", GTK_ICON_SIZE_MENU);
gtk_widget_show (image84);
gtk_container_add (GTK_CONTAINER (circ_down_btn), image84);
label467 = gtk_label_new ("");
gtk_widget_show (label467);
gtk_box_pack_start (GTK_BOX (vbox13), label467, TRUE, TRUE, 0);
circ_delete_btn = gtk_button_new ();
gtk_widget_show (circ_delete_btn);
gtk_box_pack_start (GTK_BOX (vbox13), circ_delete_btn, FALSE, FALSE, 0);
gtk_widget_set_sensitive (circ_delete_btn, FALSE);
gtk_tooltips_set_tip (tooltips, circ_delete_btn, _("Remove the selected element"), NULL);
image83 = gtk_image_new_from_stock ("gtk-delete", GTK_ICON_SIZE_MENU);
gtk_widget_show (image83);
gtk_container_add (GTK_CONTAINER (circ_delete_btn), image83);
circ_clear_btn = gtk_button_new ();
gtk_widget_show (circ_clear_btn);
gtk_box_pack_start (GTK_BOX (vbox13), circ_clear_btn, FALSE, FALSE, 0);
gtk_widget_set_sensitive (circ_clear_btn, FALSE);
gtk_tooltips_set_tip (tooltips, circ_clear_btn, _("Clear the element list"), NULL);
image90 = gtk_image_new_from_stock ("gtk-clear", GTK_ICON_SIZE_MENU);
gtk_widget_show (image90);
gtk_container_add (GTK_CONTAINER (circ_clear_btn), image90);
label87 = gtk_label_new (_("Circuit elements"));
gtk_widget_show (label87);
gtk_frame_set_label_widget (GTK_FRAME (frame21), label87);
hbox141 = gtk_hbox_new (FALSE, 2);
gtk_box_pack_start (GTK_BOX (circpage_vbox), hbox141, FALSE, TRUE, 0);
label461 = gtk_label_new (_("File:"));
gtk_widget_show (label461);
gtk_box_pack_start (GTK_BOX (hbox141), label461, FALSE, FALSE, 2);
circ_filename_lbl = gtk_label_new (_(""));
gtk_widget_show (circ_filename_lbl);
gtk_box_pack_start (GTK_BOX (hbox141), circ_filename_lbl, TRUE, TRUE, 0);
gtk_misc_set_alignment (GTK_MISC (circ_filename_lbl), 0, 0.5);
circ_changed_lbl = gtk_label_new (_(" "));
gtk_widget_show (circ_changed_lbl);
gtk_box_pack_start (GTK_BOX (hbox141), circ_changed_lbl, FALSE, FALSE, 0);
label267 = gtk_label_new (_(" Circuit "));
gtk_widget_show (label267);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook4), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook4), 1), label267);
frame4 = gtk_frame_new (NULL);
gtk_widget_show (frame4);
gtk_container_add (GTK_CONTAINER (notebook4), frame4);
scrolledwindow7 = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_show (scrolledwindow7);
gtk_container_add (GTK_CONTAINER (frame4), scrolledwindow7);
gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow7), 4);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow7), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
log_treeview = gtk_tree_view_new ();
gtk_widget_show (log_treeview);
gtk_container_add (GTK_CONTAINER (scrolledwindow7), log_treeview);
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (log_treeview), TRUE);
label4 = gtk_label_new (_("Log"));
gtk_widget_show (label4);
gtk_frame_set_label_widget (GTK_FRAME (frame4), label4);
label269 = gtk_label_new (_(" Results "));
gtk_widget_show (label269);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook4), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook4), 2), label269);
table15 = gtk_table_new (2, 7, FALSE);
gtk_widget_show (table15);
gtk_table_attach (GTK_TABLE (table24), table15, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 2, 0);
gtk_table_set_col_spacings (GTK_TABLE (table15), 4);
label164 = gtk_label_new (_("Z:"));
gtk_widget_show (label164);
gtk_table_attach (GTK_TABLE (table15), label164, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label164), 0, 0.5);
label165 = gtk_label_new ("");
gtk_widget_show (label165);
gtk_table_attach (GTK_TABLE (table15), label165, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label165), 0, 0.5);
label179 = gtk_label_new (_("SWR:"));
gtk_widget_show (label179);
gtk_table_attach (GTK_TABLE (table15), label179, 3, 4, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label179), 0, 0.5);
label180 = gtk_label_new (_("Q:"));
gtk_widget_show (label180);
gtk_table_attach (GTK_TABLE (table15), label180, 3, 4, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label180), 0, 0.5);
stat_swr_lbl = gtk_label_new ("");
gtk_widget_show (stat_swr_lbl);
gtk_table_attach (GTK_TABLE (table15), stat_swr_lbl, 4, 5, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_size_request (stat_swr_lbl, 60, -1);
gtk_misc_set_alignment (GTK_MISC (stat_swr_lbl), 0, 0.5);
stat_q_lbl = gtk_label_new ("");
gtk_widget_show (stat_q_lbl);
gtk_table_attach (GTK_TABLE (table15), stat_q_lbl, 4, 5, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (stat_q_lbl), 0, 0.5);
vseparator2 = gtk_vseparator_new ();
gtk_widget_show (vseparator2);
gtk_table_attach (GTK_TABLE (table15), vseparator2, 2, 3, 0, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
vseparator3 = gtk_vseparator_new ();
gtk_widget_show (vseparator3);
gtk_table_attach (GTK_TABLE (table15), vseparator3, 5, 6, 0, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 4, 0);
stat_z_lbl = gtk_label_new ("");
gtk_widget_show (stat_z_lbl);
gtk_table_attach (GTK_TABLE (table15), stat_z_lbl, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_size_request (stat_z_lbl, 140, -1);
gtk_label_set_use_markup (GTK_LABEL (stat_z_lbl), TRUE);
gtk_misc_set_alignment (GTK_MISC (stat_z_lbl), 0, 0.5);
stat_zpol_lbl = gtk_label_new ("");
gtk_widget_show (stat_zpol_lbl);
gtk_table_attach (GTK_TABLE (table15), stat_zpol_lbl, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (stat_zpol_lbl), 0, 0.5);
hbox120 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox120);
gtk_table_attach (GTK_TABLE (table15), hbox120, 6, 7, 0, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
vbox44 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox44);
gtk_box_pack_start (GTK_BOX (hbox120), vbox44, FALSE, FALSE, 0);
label430 = gtk_label_new (_("Zoom:"));
gtk_widget_show (label430);
gtk_box_pack_start (GTK_BOX (vbox44), label430, FALSE, FALSE, 0);
zoom_lbl = gtk_label_new (_("x1"));
gtk_widget_show (zoom_lbl);
gtk_box_pack_start (GTK_BOX (vbox44), zoom_lbl, FALSE, FALSE, 0);
gtk_widget_set_size_request (zoom_lbl, 26, -1);
zoom_out_btn = gtk_button_new ();
gtk_widget_show (zoom_out_btn);
gtk_box_pack_start (GTK_BOX (hbox120), zoom_out_btn, FALSE, FALSE, 0);
gtk_tooltips_set_tip (tooltips, zoom_out_btn, _("Zoom out"), NULL);
image65 = gtk_image_new_from_stock ("gtk-zoom-out", GTK_ICON_SIZE_BUTTON);
gtk_widget_show (image65);
gtk_container_add (GTK_CONTAINER (zoom_out_btn), image65);
zoom_in_btn = gtk_button_new ();
gtk_widget_show (zoom_in_btn);
gtk_box_pack_start (GTK_BOX (hbox120), zoom_in_btn, FALSE, FALSE, 0);
gtk_tooltips_set_tip (tooltips, zoom_in_btn, _("Zoom in"), NULL);
image66 = gtk_image_new_from_stock ("gtk-zoom-in", GTK_ICON_SIZE_BUTTON);
gtk_widget_show (image66);
gtk_container_add (GTK_CONTAINER (zoom_in_btn), image66);
hbox98 = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox98);
gtk_table_attach (GTK_TABLE (table24), hbox98, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
recalc_btn = gtk_button_new ();
gtk_widget_show (recalc_btn);
gtk_box_pack_start (GTK_BOX (hbox98), recalc_btn, FALSE, FALSE, 0);
gtk_tooltips_set_tip (tooltips, recalc_btn, _("Recalculate"), NULL);
image91 = gtk_image_new_from_stock ("gtk-execute", GTK_ICON_SIZE_BUTTON);
gtk_widget_show (image91);
gtk_container_add (GTK_CONTAINER (recalc_btn), image91);
hbox149 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox149);
gtk_box_pack_start (GTK_BOX (hbox98), hbox149, FALSE, TRUE, 0);
label499 = gtk_label_new (_("Rotate"));
gtk_widget_show (label499);
gtk_box_pack_start (GTK_BOX (hbox149), label499, FALSE, FALSE, 0);
direction_cbbox = gtk_combo_box_entry_new_text ();
gtk_widget_show (direction_cbbox);
gtk_box_pack_start (GTK_BOX (hbox149), direction_cbbox, TRUE, TRUE, 0);
gtk_widget_set_size_request (direction_cbbox, 130, -1);
gtk_combo_box_append_text (GTK_COMBO_BOX (direction_cbbox), _("to generator"));
gtk_combo_box_append_text (GTK_COMBO_BOX (direction_cbbox), _("to load"));
hbox58 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox58);
gtk_box_pack_start (GTK_BOX (hbox98), hbox58, FALSE, FALSE, 0);
label190 = gtk_label_new (_("Z0:"));
gtk_widget_show (label190);
gtk_box_pack_start (GTK_BOX (hbox58), label190, FALSE, FALSE, 0);
gtk_label_set_use_markup (GTK_LABEL (label190), TRUE);
gtk_misc_set_alignment (GTK_MISC (label190), 0, 0.5);
z0_cbbox = gtk_combo_box_entry_new_text ();
gtk_widget_show (z0_cbbox);
gtk_box_pack_start (GTK_BOX (hbox58), z0_cbbox, FALSE, TRUE, 0);
gtk_widget_set_size_request (z0_cbbox, 75, -1);
gtk_combo_box_append_text (GTK_COMBO_BOX (z0_cbbox), _("50"));
gtk_combo_box_append_text (GTK_COMBO_BOX (z0_cbbox), _("75"));
gtk_combo_box_append_text (GTK_COMBO_BOX (z0_cbbox), _("150"));
gtk_combo_box_append_text (GTK_COMBO_BOX (z0_cbbox), _("300"));
gtk_combo_box_append_text (GTK_COMBO_BOX (z0_cbbox), _("600"));
label191 = gtk_label_new (_("Ohm"));
gtk_widget_show (label191);
gtk_box_pack_start (GTK_BOX (hbox58), label191, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label191), 0, 0.5);
g_signal_connect ((gpointer) MainWindow, "delete_event",
G_CALLBACK (on_MainWindow_delete_event),
NULL);
g_signal_connect ((gpointer) MainWindow, "realize",
G_CALLBACK (on_MainWindow_realize),
NULL);
g_signal_connect ((gpointer) chart_canvas, "realize",
G_CALLBACK (on_canvas1_realize),
NULL);
g_signal_connect ((gpointer) chart_canvas, "motion_notify_event",
G_CALLBACK (on_chart_canvas_motion_notify_event),
NULL);
g_signal_connect ((gpointer) notebook4, "realize",
G_CALLBACK (on_notebook4_realize),
NULL);
g_signal_connect ((gpointer) loadtype_notebook, "switch_page",
G_CALLBACK (on_loadtype_notebook_switch_page),
NULL);
g_signal_connect ((gpointer) load_r_entry, "changed",
G_CALLBACK (on_load_r_entry_changed),
NULL);
g_signal_connect ((gpointer) load_x_entry, "changed",
G_CALLBACK (on_load_x_entry_changed),
NULL);
g_signal_connect ((gpointer) load_append_btn, "clicked",
G_CALLBACK (on_load_append_btn_clicked),
NULL);
g_signal_connect ((gpointer) load_edit_btn, "clicked",
G_CALLBACK (on_load_edit_btn_clicked),
NULL);
g_signal_connect ((gpointer) load_freq_entry, "changed",
G_CALLBACK (on_load_freq_entry_changed),
NULL);
g_signal_connect ((gpointer) load_nb_r_entry, "changed",
G_CALLBACK (on_load_nb_r_entry_changed),
NULL);
g_signal_connect ((gpointer) load_nb_c_entry, "changed",
G_CALLBACK (on_load_nb_c_entry_changed),
NULL);
g_signal_connect ((gpointer) load_nb_ext_cbtn, "toggled",
G_CALLBACK (on_load_nb_ext_cbtn_toggled),
NULL);
g_signal_connect ((gpointer) load_nb_append_btn, "clicked",
G_CALLBACK (on_load_nb_append_btn_clicked),
NULL);
g_signal_connect ((gpointer) load_nb_upd_btn, "clicked",
G_CALLBACK (on_load_nb_upd_btn_clicked),
NULL);
g_signal_connect ((gpointer) load_nb_freq_entry, "changed",
G_CALLBACK (on_load_nb_freq_entry_changed),
NULL);
g_signal_connect ((gpointer) load_getrem_btn, "clicked",
G_CALLBACK (on_load_getrem_btn_clicked),
NULL);
g_signal_connect ((gpointer) rem_cancel_btn, "clicked",
G_CALLBACK (on_rem_cancel_btn_clicked),
NULL);
g_signal_connect ((gpointer) load_treeview, "cursor_changed",
G_CALLBACK (on_load_treeview_cursor_changed),
NULL);
g_signal_connect ((gpointer) load_remove_btn, "clicked",
G_CALLBACK (on_load_remove_btn_clicked),
NULL);
g_signal_connect ((gpointer) load_clear_btn, "clicked",
G_CALLBACK (on_load_clear_btn_clicked),
NULL);
g_signal_connect ((gpointer) comp_series_tbtn, "toggled",
G_CALLBACK (on_comp_series_tbtn_toggled),
NULL);
g_signal_connect ((gpointer) comp_parallel_tbtn, "toggled",
G_CALLBACK (on_comp_parallel_tbtn_toggled),
NULL);
g_signal_connect ((gpointer) circ_newel_btn, "clicked",
G_CALLBACK (on_circ_newel_btn_clicked),
NULL);
g_signal_connect ((gpointer) circ_upd_el_btn, "clicked",
G_CALLBACK (on_circ_upd_el_btn_clicked),
NULL);
g_signal_connect ((gpointer) comp_stub_selcable_btn, "clicked",
G_CALLBACK (on_comp_stub_selcable_btn_clicked),
NULL);
g_signal_connect ((gpointer) comp_line_selcable_btn, "clicked",
G_CALLBACK (on_comp_line_selcable_btn_clicked),
NULL);
g_signal_connect ((gpointer) circ_treeview, "cursor_changed",
G_CALLBACK (on_circ_treeview_cursor_changed),
NULL);
g_signal_connect ((gpointer) circ_up_btn, "clicked",
G_CALLBACK (on_circ_up_btn_clicked),
NULL);
g_signal_connect ((gpointer) circ_down_btn, "clicked",
G_CALLBACK (on_circ_down_btn_clicked),
NULL);
g_signal_connect ((gpointer) circ_delete_btn, "clicked",
G_CALLBACK (on_circ_delete_btn_clicked),
NULL);
g_signal_connect ((gpointer) circ_clear_btn, "clicked",
G_CALLBACK (on_circ_clear_btn_clicked),
NULL);
g_signal_connect ((gpointer) log_treeview, "realize",
G_CALLBACK (on_log_treeview_realize),
NULL);
g_signal_connect ((gpointer) zoom_out_btn, "clicked",
G_CALLBACK (on_zoom_out_btn_clicked),
NULL);
g_signal_connect ((gpointer) zoom_in_btn, "clicked",
G_CALLBACK (on_zoom_in_btn_clicked),
NULL);
g_signal_connect ((gpointer) recalc_btn, "clicked",
G_CALLBACK (on_recalc_btn_clicked),
NULL);
g_signal_connect ((gpointer) direction_cbbox, "changed",
G_CALLBACK (on_direction_cbbox_changed),
NULL);
g_signal_connect ((gpointer) direction_cbbox, "realize",
G_CALLBACK (on_direction_cbbox_realize),
NULL);
g_signal_connect ((gpointer) z0_cbbox, "changed",
G_CALLBACK (on_z0_cbbox_changed),
NULL);
g_signal_connect ((gpointer) z0_cbbox, "realize",
G_CALLBACK (on_z0_cbbox_realize),
NULL);
/* Store pointers to all widgets, for use by lookup_widget(). */
GLADE_HOOKUP_OBJECT_NO_REF (MainWindow, MainWindow, "MainWindow");
GLADE_HOOKUP_OBJECT (MainWindow, vbox1, "vbox1");
GLADE_HOOKUP_OBJECT (MainWindow, menubar1, "menubar1");
GLADE_HOOKUP_OBJECT (MainWindow, menubar1_uiinfo[0].widget, "file1");
GLADE_HOOKUP_OBJECT (MainWindow, file1_menu_uiinfo[0].widget, "loads1");
GLADE_HOOKUP_OBJECT (MainWindow, loads1_menu_uiinfo[0].widget, "load4");
GLADE_HOOKUP_OBJECT (MainWindow, loads1_menu_uiinfo[1].widget, "save5");
GLADE_HOOKUP_OBJECT (MainWindow, loads1_menu_uiinfo[2].widget, "save_as3");
GLADE_HOOKUP_OBJECT (MainWindow, file1_menu_uiinfo[1].widget, "circuit1");
GLADE_HOOKUP_OBJECT (MainWindow, circuit1_menu_uiinfo[0].widget, "load3");
GLADE_HOOKUP_OBJECT (MainWindow, circuit1_menu_uiinfo[1].widget, "save4");
GLADE_HOOKUP_OBJECT (MainWindow, circuit1_menu_uiinfo[2].widget, "save_as4");
GLADE_HOOKUP_OBJECT (MainWindow, file1_menu_uiinfo[2].widget, "separator5");
GLADE_HOOKUP_OBJECT (MainWindow, file1_menu_uiinfo[3].widget, "import1");
GLADE_HOOKUP_OBJECT (MainWindow, import1_menu_uiinfo[0].widget, "csv_loads1");
GLADE_HOOKUP_OBJECT (MainWindow, import1_menu_uiinfo[1].widget, "s2p_files1");
GLADE_HOOKUP_OBJECT (MainWindow, file1_menu_uiinfo[4].widget, "print1");
GLADE_HOOKUP_OBJECT (MainWindow, file1_menu_uiinfo[5].widget, "save_results_page1");
GLADE_HOOKUP_OBJECT (MainWindow, file1_menu_uiinfo[6].widget, "separator1");
GLADE_HOOKUP_OBJECT (MainWindow, file1_menu_uiinfo[7].widget, "quit1");
GLADE_HOOKUP_OBJECT (MainWindow, menubar1_uiinfo[1].widget, "edit1");
GLADE_HOOKUP_OBJECT (MainWindow, edit1_menu_uiinfo[0].widget, "preferences1");
GLADE_HOOKUP_OBJECT (MainWindow, menubar1_uiinfo[2].widget, "view1");
GLADE_HOOKUP_OBJECT (MainWindow, view1_menu_uiinfo[0].widget, "recalculate1");
GLADE_HOOKUP_OBJECT (MainWindow, menubar1_uiinfo[3].widget, "help1");
GLADE_HOOKUP_OBJECT (MainWindow, help1_menu_uiinfo[0].widget, "test1");
GLADE_HOOKUP_OBJECT (MainWindow, help1_menu_uiinfo[1].widget, "about1");
GLADE_HOOKUP_OBJECT (MainWindow, menubar1_uiinfo[4].widget, "separator4");
GLADE_HOOKUP_OBJECT (MainWindow, table24, "table24");
GLADE_HOOKUP_OBJECT (MainWindow, frame43, "frame43");
GLADE_HOOKUP_OBJECT (MainWindow, scrolledwindow6, "scrolledwindow6");
GLADE_HOOKUP_OBJECT (MainWindow, chart_canvas, "chart_canvas");
GLADE_HOOKUP_OBJECT (MainWindow, label270, "label270");
GLADE_HOOKUP_OBJECT (MainWindow, notebook4, "notebook4");
GLADE_HOOKUP_OBJECT (MainWindow, loadpage_vbox, "loadpage_vbox");
GLADE_HOOKUP_OBJECT (MainWindow, vbox51, "vbox51");
GLADE_HOOKUP_OBJECT (MainWindow, loadtype_notebook, "loadtype_notebook");
GLADE_HOOKUP_OBJECT (MainWindow, frame31, "frame31");
GLADE_HOOKUP_OBJECT (MainWindow, table12, "table12");
GLADE_HOOKUP_OBJECT (MainWindow, label137, "label137");
GLADE_HOOKUP_OBJECT (MainWindow, hbox88, "hbox88");
GLADE_HOOKUP_OBJECT (MainWindow, load_r_entry, "load_r_entry");
GLADE_HOOKUP_OBJECT (MainWindow, load_r_lbl, "load_r_lbl");
GLADE_HOOKUP_OBJECT (MainWindow, load_x_entry, "load_x_entry");
GLADE_HOOKUP_OBJECT (MainWindow, load_x_lbl, "load_x_lbl");
GLADE_HOOKUP_OBJECT (MainWindow, label138, "label138");
GLADE_HOOKUP_OBJECT (MainWindow, load_ops_table, "load_ops_table");
GLADE_HOOKUP_OBJECT (MainWindow, load_append_btn, "load_append_btn");
GLADE_HOOKUP_OBJECT (MainWindow, load_edit_btn, "load_edit_btn");
GLADE_HOOKUP_OBJECT (MainWindow, hseparator11, "hseparator11");
GLADE_HOOKUP_OBJECT (MainWindow, hbox89, "hbox89");
GLADE_HOOKUP_OBJECT (MainWindow, load_freq_entry, "load_freq_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label140, "label140");
GLADE_HOOKUP_OBJECT (MainWindow, label136, "label136");
GLADE_HOOKUP_OBJECT (MainWindow, label502, "label502");
GLADE_HOOKUP_OBJECT (MainWindow, frame59, "frame59");
GLADE_HOOKUP_OBJECT (MainWindow, table38, "table38");
GLADE_HOOKUP_OBJECT (MainWindow, label505, "label505");
GLADE_HOOKUP_OBJECT (MainWindow, hbox152, "hbox152");
GLADE_HOOKUP_OBJECT (MainWindow, load_nb_r_entry, "load_nb_r_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label509, "label509");
GLADE_HOOKUP_OBJECT (MainWindow, load_nb_c_entry, "load_nb_c_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label508, "label508");
GLADE_HOOKUP_OBJECT (MainWindow, label506, "label506");
GLADE_HOOKUP_OBJECT (MainWindow, load_nb_ext_cbtn, "load_nb_ext_cbtn");
GLADE_HOOKUP_OBJECT (MainWindow, table40, "table40");
GLADE_HOOKUP_OBJECT (MainWindow, load_nb_append_btn, "load_nb_append_btn");
GLADE_HOOKUP_OBJECT (MainWindow, load_nb_upd_btn, "load_nb_upd_btn");
GLADE_HOOKUP_OBJECT (MainWindow, hseparator12, "hseparator12");
GLADE_HOOKUP_OBJECT (MainWindow, hbox153, "hbox153");
GLADE_HOOKUP_OBJECT (MainWindow, load_nb_freq_entry, "load_nb_freq_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label510, "label510");
GLADE_HOOKUP_OBJECT (MainWindow, label511, "label511");
GLADE_HOOKUP_OBJECT (MainWindow, label503, "label503");
GLADE_HOOKUP_OBJECT (MainWindow, frame60, "frame60");
GLADE_HOOKUP_OBJECT (MainWindow, table39, "table39");
GLADE_HOOKUP_OBJECT (MainWindow, hbox156, "hbox156");
GLADE_HOOKUP_OBJECT (MainWindow, entry5, "entry5");
GLADE_HOOKUP_OBJECT (MainWindow, label517, "label517");
GLADE_HOOKUP_OBJECT (MainWindow, hbox155, "hbox155");
GLADE_HOOKUP_OBJECT (MainWindow, entry6, "entry6");
GLADE_HOOKUP_OBJECT (MainWindow, label521, "label521");
GLADE_HOOKUP_OBJECT (MainWindow, hbox154, "hbox154");
GLADE_HOOKUP_OBJECT (MainWindow, entry4, "entry4");
GLADE_HOOKUP_OBJECT (MainWindow, label516, "label516");
GLADE_HOOKUP_OBJECT (MainWindow, label513, "label513");
GLADE_HOOKUP_OBJECT (MainWindow, label519, "label519");
GLADE_HOOKUP_OBJECT (MainWindow, label514, "label514");
GLADE_HOOKUP_OBJECT (MainWindow, load_remote_hbox, "load_remote_hbox");
GLADE_HOOKUP_OBJECT (MainWindow, load_getrem_btn, "load_getrem_btn");
GLADE_HOOKUP_OBJECT (MainWindow, rem_cancel_btn, "rem_cancel_btn");
GLADE_HOOKUP_OBJECT (MainWindow, hseparator13, "hseparator13");
GLADE_HOOKUP_OBJECT (MainWindow, label518, "label518");
GLADE_HOOKUP_OBJECT (MainWindow, label504, "label504");
GLADE_HOOKUP_OBJECT (MainWindow, frame26, "frame26");
GLADE_HOOKUP_OBJECT (MainWindow, hbox143, "hbox143");
GLADE_HOOKUP_OBJECT (MainWindow, scrolledwindow5, "scrolledwindow5");
GLADE_HOOKUP_OBJECT (MainWindow, load_treeview, "load_treeview");
GLADE_HOOKUP_OBJECT (MainWindow, vbox53, "vbox53");
GLADE_HOOKUP_OBJECT (MainWindow, label468, "label468");
GLADE_HOOKUP_OBJECT (MainWindow, load_remove_btn, "load_remove_btn");
GLADE_HOOKUP_OBJECT (MainWindow, image88, "image88");
GLADE_HOOKUP_OBJECT (MainWindow, load_clear_btn, "load_clear_btn");
GLADE_HOOKUP_OBJECT (MainWindow, image89, "image89");
GLADE_HOOKUP_OBJECT (MainWindow, label96, "label96");
GLADE_HOOKUP_OBJECT (MainWindow, hbox142, "hbox142");
GLADE_HOOKUP_OBJECT (MainWindow, label464, "label464");
GLADE_HOOKUP_OBJECT (MainWindow, load_filename_lbl, "load_filename_lbl");
GLADE_HOOKUP_OBJECT (MainWindow, load_changed_lbl, "load_changed_lbl");
GLADE_HOOKUP_OBJECT (MainWindow, label268, "label268");
GLADE_HOOKUP_OBJECT (MainWindow, circpage_vbox, "circpage_vbox");
GLADE_HOOKUP_OBJECT (MainWindow, hbox137, "hbox137");
GLADE_HOOKUP_OBJECT (MainWindow, vbox34, "vbox34");
GLADE_HOOKUP_OBJECT (MainWindow, frame55, "frame55");
GLADE_HOOKUP_OBJECT (MainWindow, table33, "table33");
GLADE_HOOKUP_OBJECT (MainWindow, comp_series_tbtn, "comp_series_tbtn");
GLADE_HOOKUP_OBJECT (MainWindow, comp_series_img, "comp_series_img");
GLADE_HOOKUP_OBJECT (MainWindow, comp_parallel_tbtn, "comp_parallel_tbtn");
GLADE_HOOKUP_OBJECT (MainWindow, comp_parallel_img, "comp_parallel_img");
GLADE_HOOKUP_OBJECT (MainWindow, label447, "label447");
GLADE_HOOKUP_OBJECT (MainWindow, label454, "label454");
GLADE_HOOKUP_OBJECT (MainWindow, frame54, "frame54");
GLADE_HOOKUP_OBJECT (MainWindow, table32, "table32");
GLADE_HOOKUP_OBJECT (MainWindow, comp_ostub_tbtn, "comp_ostub_tbtn");
GLADE_HOOKUP_OBJECT (MainWindow, comp_ostub_img, "comp_ostub_img");
GLADE_HOOKUP_OBJECT (MainWindow, comp_sstub_tbtn, "comp_sstub_tbtn");
GLADE_HOOKUP_OBJECT (MainWindow, comp_sstub_img, "comp_sstub_img");
GLADE_HOOKUP_OBJECT (MainWindow, comp_line_tbtn, "comp_line_tbtn");
GLADE_HOOKUP_OBJECT (MainWindow, comp_line_img, "comp_line_img");
GLADE_HOOKUP_OBJECT (MainWindow, comp_discr_l_tbtn, "comp_discr_l_tbtn");
GLADE_HOOKUP_OBJECT (MainWindow, comp_discr_l_img, "comp_discr_l_img");
GLADE_HOOKUP_OBJECT (MainWindow, comp_discr_parlc_tbtn, "comp_discr_parlc_tbtn");
GLADE_HOOKUP_OBJECT (MainWindow, comp_discr_parlc_img, "comp_discr_parlc_img");
GLADE_HOOKUP_OBJECT (MainWindow, comp_discr_serlc_tbtn, "comp_discr_serlc_tbtn");
GLADE_HOOKUP_OBJECT (MainWindow, comp_discr_serlc_img, "comp_discr_serlc_img");
GLADE_HOOKUP_OBJECT (MainWindow, comp_discr_c_tbtn, "comp_discr_c_tbtn");
GLADE_HOOKUP_OBJECT (MainWindow, comp_discr_c_img, "comp_discr_c_img");
GLADE_HOOKUP_OBJECT (MainWindow, comp_xform_tbtn, "comp_xform_tbtn");
GLADE_HOOKUP_OBJECT (MainWindow, comp_xform_img, "comp_xform_img");
GLADE_HOOKUP_OBJECT (MainWindow, comp_zy_tbtn, "comp_zy_tbtn");
GLADE_HOOKUP_OBJECT (MainWindow, comp_zy_img, "comp_zy_img");
GLADE_HOOKUP_OBJECT (MainWindow, label452, "label452");
GLADE_HOOKUP_OBJECT (MainWindow, label445, "label445");
GLADE_HOOKUP_OBJECT (MainWindow, label446, "label446");
GLADE_HOOKUP_OBJECT (MainWindow, label444, "label444");
GLADE_HOOKUP_OBJECT (MainWindow, label453, "label453");
GLADE_HOOKUP_OBJECT (MainWindow, hbox96, "hbox96");
GLADE_HOOKUP_OBJECT (MainWindow, circ_newel_btn, "circ_newel_btn");
GLADE_HOOKUP_OBJECT (MainWindow, circ_upd_el_btn, "circ_upd_el_btn");
GLADE_HOOKUP_OBJECT (MainWindow, comp_notebook, "comp_notebook");
GLADE_HOOKUP_OBJECT (MainWindow, discr_frame, "discr_frame");
GLADE_HOOKUP_OBJECT (MainWindow, vbox46, "vbox46");
GLADE_HOOKUP_OBJECT (MainWindow, comp_cap_table, "comp_cap_table");
GLADE_HOOKUP_OBJECT (MainWindow, label223, "label223");
GLADE_HOOKUP_OBJECT (MainWindow, comp_cap_unit_lbl, "comp_cap_unit_lbl");
GLADE_HOOKUP_OBJECT (MainWindow, comp_cap_val_entry, "comp_cap_val_entry");
GLADE_HOOKUP_OBJECT (MainWindow, comp_cap_val_scale, "comp_cap_val_scale");
GLADE_HOOKUP_OBJECT (MainWindow, comp_ind_table, "comp_ind_table");
GLADE_HOOKUP_OBJECT (MainWindow, label438, "label438");
GLADE_HOOKUP_OBJECT (MainWindow, comp_ind_unit_lbl, "comp_ind_unit_lbl");
GLADE_HOOKUP_OBJECT (MainWindow, comp_ind_val_entry, "comp_ind_val_entry");
GLADE_HOOKUP_OBJECT (MainWindow, comp_ind_val_scale, "comp_ind_val_scale");
GLADE_HOOKUP_OBJECT (MainWindow, label219, "label219");
GLADE_HOOKUP_OBJECT (MainWindow, label238, "label238");
GLADE_HOOKUP_OBJECT (MainWindow, notebook5, "notebook5");
GLADE_HOOKUP_OBJECT (MainWindow, stub_vbox, "stub_vbox");
GLADE_HOOKUP_OBJECT (MainWindow, stub_prop_table, "stub_prop_table");
GLADE_HOOKUP_OBJECT (MainWindow, hbox74, "hbox74");
GLADE_HOOKUP_OBJECT (MainWindow, comp_stub_entry, "comp_stub_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label232, "label232");
GLADE_HOOKUP_OBJECT (MainWindow, label231, "label231");
GLADE_HOOKUP_OBJECT (MainWindow, comp_stub_scale, "comp_stub_scale");
GLADE_HOOKUP_OBJECT (MainWindow, hbox86, "hbox86");
GLADE_HOOKUP_OBJECT (MainWindow, comp_stub_vf_entry, "comp_stub_vf_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label265, "label265");
GLADE_HOOKUP_OBJECT (MainWindow, label120, "label120");
GLADE_HOOKUP_OBJECT (MainWindow, comp_stub_z0_scale, "comp_stub_z0_scale");
GLADE_HOOKUP_OBJECT (MainWindow, label259, "label259");
GLADE_HOOKUP_OBJECT (MainWindow, hbox73, "hbox73");
GLADE_HOOKUP_OBJECT (MainWindow, comp_stub_z0_entry, "comp_stub_z0_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label123, "label123");
GLADE_HOOKUP_OBJECT (MainWindow, label278, "label278");
GLADE_HOOKUP_OBJECT (MainWindow, label279, "label279");
GLADE_HOOKUP_OBJECT (MainWindow, label465, "label465");
GLADE_HOOKUP_OBJECT (MainWindow, comp_stub_selcable_btn, "comp_stub_selcable_btn");
GLADE_HOOKUP_OBJECT (MainWindow, label448, "label448");
GLADE_HOOKUP_OBJECT (MainWindow, vbox48, "vbox48");
GLADE_HOOKUP_OBJECT (MainWindow, comp_stub_useloss_cbtn, "comp_stub_useloss_cbtn");
GLADE_HOOKUP_OBJECT (MainWindow, table11, "table11");
GLADE_HOOKUP_OBJECT (MainWindow, label128, "label128");
GLADE_HOOKUP_OBJECT (MainWindow, label129, "label129");
GLADE_HOOKUP_OBJECT (MainWindow, label145, "label145");
GLADE_HOOKUP_OBJECT (MainWindow, label144, "label144");
GLADE_HOOKUP_OBJECT (MainWindow, hbox75, "hbox75");
GLADE_HOOKUP_OBJECT (MainWindow, comp_stub_l1_entry, "comp_stub_l1_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label124, "label124");
GLADE_HOOKUP_OBJECT (MainWindow, hbox76, "hbox76");
GLADE_HOOKUP_OBJECT (MainWindow, comp_stub_f1_entry, "comp_stub_f1_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label125, "label125");
GLADE_HOOKUP_OBJECT (MainWindow, hbox77, "hbox77");
GLADE_HOOKUP_OBJECT (MainWindow, comp_stub_l2_entry, "comp_stub_l2_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label146, "label146");
GLADE_HOOKUP_OBJECT (MainWindow, hbox78, "hbox78");
GLADE_HOOKUP_OBJECT (MainWindow, comp_stub_f2_entry, "comp_stub_f2_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label147, "label147");
GLADE_HOOKUP_OBJECT (MainWindow, label449, "label449");
GLADE_HOOKUP_OBJECT (MainWindow, label239, "label239");
GLADE_HOOKUP_OBJECT (MainWindow, notebook6, "notebook6");
GLADE_HOOKUP_OBJECT (MainWindow, line_vbox, "line_vbox");
GLADE_HOOKUP_OBJECT (MainWindow, line_prop_vbox, "line_prop_vbox");
GLADE_HOOKUP_OBJECT (MainWindow, hbox85, "hbox85");
GLADE_HOOKUP_OBJECT (MainWindow, comp_line_entry, "comp_line_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label247, "label247");
GLADE_HOOKUP_OBJECT (MainWindow, label264, "label264");
GLADE_HOOKUP_OBJECT (MainWindow, hbox83, "hbox83");
GLADE_HOOKUP_OBJECT (MainWindow, comp_line_vf_entry, "comp_line_vf_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label263, "label263");
GLADE_HOOKUP_OBJECT (MainWindow, label244, "label244");
GLADE_HOOKUP_OBJECT (MainWindow, hbox84, "hbox84");
GLADE_HOOKUP_OBJECT (MainWindow, comp_line_z0_entry, "comp_line_z0_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label262, "label262");
GLADE_HOOKUP_OBJECT (MainWindow, label248, "label248");
GLADE_HOOKUP_OBJECT (MainWindow, comp_line_scale, "comp_line_scale");
GLADE_HOOKUP_OBJECT (MainWindow, comp_line_z0_scale, "comp_line_z0_scale");
GLADE_HOOKUP_OBJECT (MainWindow, label280, "label280");
GLADE_HOOKUP_OBJECT (MainWindow, label281, "label281");
GLADE_HOOKUP_OBJECT (MainWindow, label466, "label466");
GLADE_HOOKUP_OBJECT (MainWindow, comp_line_selcable_btn, "comp_line_selcable_btn");
GLADE_HOOKUP_OBJECT (MainWindow, label450, "label450");
GLADE_HOOKUP_OBJECT (MainWindow, vbox49, "vbox49");
GLADE_HOOKUP_OBJECT (MainWindow, comp_line_useloss_cbtn, "comp_line_useloss_cbtn");
GLADE_HOOKUP_OBJECT (MainWindow, table20, "table20");
GLADE_HOOKUP_OBJECT (MainWindow, label252, "label252");
GLADE_HOOKUP_OBJECT (MainWindow, label253, "label253");
GLADE_HOOKUP_OBJECT (MainWindow, label256, "label256");
GLADE_HOOKUP_OBJECT (MainWindow, label257, "label257");
GLADE_HOOKUP_OBJECT (MainWindow, hbox79, "hbox79");
GLADE_HOOKUP_OBJECT (MainWindow, comp_line_l1_entry, "comp_line_l1_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label250, "label250");
GLADE_HOOKUP_OBJECT (MainWindow, hbox80, "hbox80");
GLADE_HOOKUP_OBJECT (MainWindow, comp_line_f1_entry, "comp_line_f1_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label251, "label251");
GLADE_HOOKUP_OBJECT (MainWindow, hbox81, "hbox81");
GLADE_HOOKUP_OBJECT (MainWindow, comp_line_l2_entry, "comp_line_l2_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label255, "label255");
GLADE_HOOKUP_OBJECT (MainWindow, hbox82, "hbox82");
GLADE_HOOKUP_OBJECT (MainWindow, comp_line_f2_entry, "comp_line_f2_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label254, "label254");
GLADE_HOOKUP_OBJECT (MainWindow, label451, "label451");
GLADE_HOOKUP_OBJECT (MainWindow, label240, "label240");
GLADE_HOOKUP_OBJECT (MainWindow, xform_frame, "xform_frame");
GLADE_HOOKUP_OBJECT (MainWindow, table18, "table18");
GLADE_HOOKUP_OBJECT (MainWindow, label233, "label233");
GLADE_HOOKUP_OBJECT (MainWindow, hbox69, "hbox69");
GLADE_HOOKUP_OBJECT (MainWindow, comp_xform_entry, "comp_xform_entry");
GLADE_HOOKUP_OBJECT (MainWindow, label235, "label235");
GLADE_HOOKUP_OBJECT (MainWindow, comp_xform_scale, "comp_xform_scale");
GLADE_HOOKUP_OBJECT (MainWindow, label237, "label237");
GLADE_HOOKUP_OBJECT (MainWindow, label241, "label241");
GLADE_HOOKUP_OBJECT (MainWindow, frame50, "frame50");
GLADE_HOOKUP_OBJECT (MainWindow, vbox43, "vbox43");
GLADE_HOOKUP_OBJECT (MainWindow, label365, "label365");
GLADE_HOOKUP_OBJECT (MainWindow, label364, "label364");
GLADE_HOOKUP_OBJECT (MainWindow, label363, "label363");
GLADE_HOOKUP_OBJECT (MainWindow, frame21, "frame21");
GLADE_HOOKUP_OBJECT (MainWindow, hbox139, "hbox139");
GLADE_HOOKUP_OBJECT (MainWindow, scrolledwindow4, "scrolledwindow4");
GLADE_HOOKUP_OBJECT (MainWindow, circ_treeview, "circ_treeview");
GLADE_HOOKUP_OBJECT (MainWindow, vbox13, "vbox13");
GLADE_HOOKUP_OBJECT (MainWindow, circ_up_btn, "circ_up_btn");
GLADE_HOOKUP_OBJECT (MainWindow, image85, "image85");
GLADE_HOOKUP_OBJECT (MainWindow, circ_down_btn, "circ_down_btn");
GLADE_HOOKUP_OBJECT (MainWindow, image84, "image84");
GLADE_HOOKUP_OBJECT (MainWindow, label467, "label467");
GLADE_HOOKUP_OBJECT (MainWindow, circ_delete_btn, "circ_delete_btn");
GLADE_HOOKUP_OBJECT (MainWindow, image83, "image83");
GLADE_HOOKUP_OBJECT (MainWindow, circ_clear_btn, "circ_clear_btn");
GLADE_HOOKUP_OBJECT (MainWindow, image90, "image90");
GLADE_HOOKUP_OBJECT (MainWindow, label87, "label87");
GLADE_HOOKUP_OBJECT (MainWindow, hbox141, "hbox141");
GLADE_HOOKUP_OBJECT (MainWindow, label461, "label461");
GLADE_HOOKUP_OBJECT (MainWindow, circ_filename_lbl, "circ_filename_lbl");
GLADE_HOOKUP_OBJECT (MainWindow, circ_changed_lbl, "circ_changed_lbl");
GLADE_HOOKUP_OBJECT (MainWindow, label267, "label267");
GLADE_HOOKUP_OBJECT (MainWindow, frame4, "frame4");
GLADE_HOOKUP_OBJECT (MainWindow, scrolledwindow7, "scrolledwindow7");
GLADE_HOOKUP_OBJECT (MainWindow, log_treeview, "log_treeview");
GLADE_HOOKUP_OBJECT (MainWindow, label4, "label4");
GLADE_HOOKUP_OBJECT (MainWindow, label269, "label269");
GLADE_HOOKUP_OBJECT (MainWindow, table15, "table15");
GLADE_HOOKUP_OBJECT (MainWindow, label164, "label164");
GLADE_HOOKUP_OBJECT (MainWindow, label165, "label165");
GLADE_HOOKUP_OBJECT (MainWindow, label179, "label179");
GLADE_HOOKUP_OBJECT (MainWindow, label180, "label180");
GLADE_HOOKUP_OBJECT (MainWindow, stat_swr_lbl, "stat_swr_lbl");
GLADE_HOOKUP_OBJECT (MainWindow, stat_q_lbl, "stat_q_lbl");
GLADE_HOOKUP_OBJECT (MainWindow, vseparator2, "vseparator2");
GLADE_HOOKUP_OBJECT (MainWindow, vseparator3, "vseparator3");
GLADE_HOOKUP_OBJECT (MainWindow, stat_z_lbl, "stat_z_lbl");
GLADE_HOOKUP_OBJECT (MainWindow, stat_zpol_lbl, "stat_zpol_lbl");
GLADE_HOOKUP_OBJECT (MainWindow, hbox120, "hbox120");
GLADE_HOOKUP_OBJECT (MainWindow, vbox44, "vbox44");
GLADE_HOOKUP_OBJECT (MainWindow, label430, "label430");
GLADE_HOOKUP_OBJECT (MainWindow, zoom_lbl, "zoom_lbl");
GLADE_HOOKUP_OBJECT (MainWindow, zoom_out_btn, "zoom_out_btn");
GLADE_HOOKUP_OBJECT (MainWindow, image65, "image65");
GLADE_HOOKUP_OBJECT (MainWindow, zoom_in_btn, "zoom_in_btn");
GLADE_HOOKUP_OBJECT (MainWindow, image66, "image66");
GLADE_HOOKUP_OBJECT (MainWindow, hbox98, "hbox98");
GLADE_HOOKUP_OBJECT (MainWindow, recalc_btn, "recalc_btn");
GLADE_HOOKUP_OBJECT (MainWindow, image91, "image91");
GLADE_HOOKUP_OBJECT (MainWindow, hbox149, "hbox149");
GLADE_HOOKUP_OBJECT (MainWindow, label499, "label499");
GLADE_HOOKUP_OBJECT (MainWindow, direction_cbbox, "direction_cbbox");
GLADE_HOOKUP_OBJECT (MainWindow, hbox58, "hbox58");
GLADE_HOOKUP_OBJECT (MainWindow, label190, "label190");
GLADE_HOOKUP_OBJECT (MainWindow, z0_cbbox, "z0_cbbox");
GLADE_HOOKUP_OBJECT (MainWindow, label191, "label191");
GLADE_HOOKUP_OBJECT_NO_REF (MainWindow, tooltips, "tooltips");
gtk_window_add_accel_group (GTK_WINDOW (MainWindow), accel_group);
return MainWindow;
}
GtkWidget*
create_ConfigWindow (void)
{
GtkWidget *ConfigWindow;
GtkWidget *vbox23;
GtkWidget *notebook3;
GtkWidget *vbox41;
GtkWidget *frame19;
GtkWidget *table7;
GtkWidget *conf_swr_cbtn;
GtkWidget *hbox124;
GtkWidget *conf_swr_entry;
GtkWidget *label361;
GtkWidget *conf_g1_cbtn;
GtkWidget *label359;
GtkWidget *conf_complex_entry;
GtkWidget *use_bitmap_cbtn;
GtkWidget *label457;
GtkWidget *label456;
GtkWidget *label455;
GtkWidget *label532;
GtkWidget *label531;
GtkWidget *label459;
GtkWidget *label458;
GtkWidget *label533;
GtkObject *conf_prec_mhz_spbtn_adj;
GtkWidget *conf_prec_mhz_spbtn;
GtkObject *conf_prec_imp_spbtn_adj;
GtkWidget *conf_prec_imp_spbtn;
GtkObject *conf_prec_adm_spbtn_adj;
GtkWidget *conf_prec_adm_spbtn;
GtkWidget *label534;
GtkWidget *vseparator12;
GtkWidget *vseparator11;
GtkWidget *conf_always_imp_cbtn;
GtkWidget *label535;
GtkWidget *label78;
GtkWidget *frame62;
GtkWidget *alignment2;
GtkWidget *table42;
GtkWidget *label541;
GtkWidget *label542;
GtkWidget *conf_cursor_font_fbtn;
GtkWidget *conf_results_font_fbtn;
GtkWidget *label540;
GtkWidget *conf_presmhz_spbtn;
GtkWidget *vbox40;
GtkWidget *frame44;
GtkWidget *table21;
GtkWidget *label273;
GtkWidget *conf_chartbg_entry;
GtkWidget *label274;
GtkWidget *hbox100;
GtkWidget *conf_radius_entry;
GtkWidget *label276;
GtkWidget *conf_xoffs_entry;
GtkWidget *label277;
GtkWidget *conf_yoffs_entry;
GtkWidget *label272;
GtkWidget *frame53;
GtkWidget *table29;
GtkWidget *label414;
GtkWidget *label415;
GtkWidget *label418;
GtkWidget *label419;
GtkWidget *label420;
GtkWidget *label421;
GtkWidget *label424;
GtkWidget *vseparator14;
GtkWidget *conf_r_arc_colbtn;
GtkWidget *conf_x_arc_colbtn;
GtkWidget *conf_r_arc_bold_colbtn;
GtkWidget *conf_x_arc_bold_colbtn;
GtkWidget *label536;
GtkWidget *conf_font_colbtn;
GtkWidget *conf_font_fpick;
GtkWidget *hseparator10;
GtkWidget *label538;
GtkWidget *conf_vecbg_colbtn;
GtkWidget *conf_vecbg_size_entry;
GtkWidget *label427;
GtkWidget *label537;
GtkWidget *vseparator15;
GtkWidget *label565;
GtkWidget *label566;
GtkWidget *conf_g1_colbtn;
GtkWidget *conf_swr_colbtn;
GtkWidget *label426;
GtkWidget *label208;
GtkWidget *vbox42;
GtkWidget *frame46;
GtkWidget *table23;
GtkWidget *label311;
GtkWidget *label312;
GtkWidget *hbox111;
GtkWidget *prt_chartsize_entry;
GtkWidget *label313;
GtkWidget *prt_papersize_combo;
GList *prt_papersize_combo_items = NULL;
GtkWidget *prt_papersize_entry;
GtkWidget *vseparator5;
GtkWidget *label316;
GtkWidget *label321;
GtkWidget *hbox112;
GtkWidget *prt_mleft_entry;
GtkWidget *label318;
GtkWidget *hbox113;
GtkWidget *prt_mbottom_entry;
GtkWidget *label323;
GtkWidget *label317;
GtkWidget *label322;
GtkWidget *label310;
GtkWidget *frame49;
GtkWidget *table26;
GtkWidget *label340;
GtkWidget *label341;
GtkWidget *hbox109;
GtkWidget *prt_x_arc_bold_colbtn;
GtkObject *prt_x_arc_bold_spbtn_adj;
GtkWidget *prt_x_arc_bold_spbtn;
GtkWidget *label305;
GtkWidget *hbox108;
GtkWidget *prt_r_arc_bold_colbtn;
GtkObject *prt_r_arc_bold_spbtn_adj;
GtkWidget *prt_r_arc_bold_spbtn;
GtkWidget *label304;
GtkWidget *label347;
GtkWidget *label348;
GtkWidget *label349;
GtkWidget *label350;
GtkWidget *hbox122;
GtkWidget *prt_r_arc_colbtn;
GtkObject *prt_r_arc_spbtn_adj;
GtkWidget *prt_r_arc_spbtn;
GtkWidget *label351;
GtkWidget *hbox123;
GtkWidget *prt_x_arc_colbtn;
GtkObject *prt_x_arc_spbtn_adj;
GtkWidget *prt_x_arc_spbtn;
GtkWidget *label352;
GtkWidget *label326;
GtkWidget *hbox171;
GtkWidget *prt_swr_colbtn;
GtkObject *prt_swr_spbtn_adj;
GtkWidget *prt_swr_spbtn;
GtkWidget *label568;
GtkWidget *hbox116;
GtkWidget *prt_font_colbtn;
GtkObject *prt_fontsize_spbtn_adj;
GtkWidget *prt_fontsize_spbtn;
GtkWidget *label327;
GtkWidget *hseparator9;
GtkWidget *vseparator16;
GtkWidget *label570;
GtkWidget *hbox170;
GtkWidget *prt_g1_colbtn;
GtkObject *prt_g1_spbtn_adj;
GtkWidget *prt_g1_spbtn;
GtkWidget *label567;
GtkWidget *label569;
GtkWidget *prt_fontbtn;
GtkWidget *label339;
GtkWidget *label338;
GtkWidget *frame51;
GtkWidget *table27;
GtkWidget *label376;
GtkWidget *label375;
GtkWidget *label374;
GtkWidget *label377;
GtkWidget *label379;
GtkWidget *label380;
GtkWidget *hbox128;
GtkWidget *conf_load_colbtn;
GtkObject *conf_load_spbtn_adj;
GtkWidget *conf_load_spbtn;
GtkWidget *hbox129;
GtkWidget *conf_point_colbtn;
GtkObject *conf_point_spbtn_adj;
GtkWidget *conf_point_spbtn;
GtkWidget *hbox130;
GtkWidget *conf_final_colbtn;
GtkObject *conf_final_spbtn_adj;
GtkWidget *conf_final_spbtn;
GtkWidget *label378;
GtkWidget *vseparator7;
GtkWidget *label382;
GtkWidget *label383;
GtkWidget *label384;
GtkWidget *hbox103;
GtkWidget *prt_ldfill_colbtn;
GtkObject *prt_lddiam_spbtn_adj;
GtkWidget *prt_lddiam_spbtn;
GtkWidget *hbox104;
GtkWidget *prt_intfill_colbtn;
GtkObject *prt_intdiam_spbtn_adj;
GtkWidget *prt_intdiam_spbtn;
GtkWidget *hbox105;
GtkWidget *prt_finalfill_colbtn;
GtkObject *prt_finaldiam_spbtn_adj;
GtkWidget *prt_finaldiam_spbtn;
GtkWidget *label385;
GtkWidget *label386;
GtkWidget *label387;
GtkWidget *hbox106;
GtkWidget *prt_ldbrdr_colbtn;
GtkObject *prt_ldbrdr_spbtn_adj;
GtkWidget *prt_ldbrdr_spbtn;
GtkWidget *hbox107;
GtkWidget *prt_intbrdr_colbtn;
GtkObject *prt_intbrdr_spbtn_adj;
GtkWidget *prt_intbrdr_spbtn;
GtkWidget *hbox110;
GtkWidget *prt_finalbrdr_colbtn;
GtkObject *prt_finalbrdr_spbtn_adj;
GtkWidget *prt_finalbrdr_spbtn;
GtkWidget *label381;
GtkWidget *label388;
GtkWidget *label389;
GtkWidget *label390;
GtkWidget *label391;
GtkWidget *label373;
GtkWidget *label372;
GtkWidget *frame52;
GtkWidget *table28;
GtkWidget *label400;
GtkWidget *label398;
GtkWidget *label394;
GtkWidget *label395;
GtkWidget *label396;
GtkWidget *hbox101;
GtkWidget *prt_z_arc_colbtn;
GtkObject *prt_z_arc_spbtn_adj;
GtkWidget *prt_z_arc_spbtn;
GtkWidget *hbox102;
GtkWidget *prt_y_arc_colbtn;
GtkObject *prt_y_arc_spbtn_adj;
GtkWidget *prt_y_arc_spbtn;
GtkWidget *hbox121;
GtkWidget *prt_line_arc_colbtn;
GtkObject *prt_line_arc_spbtn_adj;
GtkWidget *prt_line_arc_spbtn;
GtkWidget *vseparator8;
GtkWidget *label410;
GtkWidget *hbox126;
GtkWidget *prt_zy_line_colbtn;
GtkObject *prt_zy_line_spbtn_adj;
GtkWidget *prt_zy_line_spbtn;
GtkWidget *hbox119;
GtkWidget *prt_swrcircle_colbtn;
GtkObject *prt_swrcircle_spbtn_adj;
GtkWidget *prt_swrcircle_spbtn;
GtkWidget *hbox127;
GtkWidget *prt_g1circle_colbtn;
GtkObject *prt_g1circle_spbtn_adj;
GtkWidget *prt_g1circle_spbtn;
GtkWidget *label408;
GtkWidget *vseparator9;
GtkWidget *label409;
GtkWidget *label399;
GtkWidget *label402;
GtkWidget *label403;
GtkWidget *label411;
GtkWidget *vseparator10;
GtkWidget *conf_z_arc_colbtn;
GtkWidget *conf_y_arc_colbtn;
GtkWidget *conf_line_arc_colbtn;
GtkWidget *conf_zy_line_colbtn;
GtkWidget *conf_swrcircle_colbtn;
GtkWidget *conf_g1circle_colbtn;
GtkWidget *label393;
GtkWidget *label392;
GtkWidget *vbox45;
GtkWidget *hbox150;
GtkWidget *label500;
GtkWidget *confrem_mode_cbox;
GtkWidget *label501;
GtkWidget *rem_notebook;
GtkWidget *frame57;
GtkWidget *table35;
GtkWidget *label480;
GtkWidget *label481;
GtkWidget *confrem_outpipe_entry;
GtkWidget *confrem_inpipe_entry;
GtkWidget *label482;
GtkWidget *confrem_pipe_can_ctl_cbtn;
GtkWidget *label483;
GtkWidget *hbox145;
GtkWidget *confrem_timeout_entry;
GtkWidget *label484;
GtkWidget *label485;
GtkWidget *label478;
GtkWidget *frame58;
GtkWidget *table36;
GtkWidget *label487;
GtkWidget *label488;
GtkWidget *rem_serial_port_entry;
GtkWidget *table37;
GtkWidget *label493;
GtkWidget *rem_serial_baud_cbox;
GtkWidget *label494;
GtkWidget *rem_serial_data_cbox;
GtkWidget *label495;
GtkWidget *rem_serial_stops_cbox;
GtkWidget *label496;
GtkWidget *rem_serial_pority_cbox;
GtkWidget *hbox146;
GtkWidget *rem_serial_timeout_entry;
GtkWidget *label491;
GtkWidget *label489;
GtkWidget *label492;
GtkWidget *label479;
GtkWidget *label431;
GtkWidget *frame61;
GtkWidget *alignment1;
GtkWidget *table41;
GtkWidget *label524;
GtkWidget *label525;
GtkWidget *hbox158;
GtkWidget *conf_nb_offs_entry;
GtkWidget *label526;
GtkWidget *label527;
GtkWidget *hbox159;
GtkWidget *conf_nb_ext_entry;
GtkWidget *label528;
GtkWidget *hbox160;
GtkWidget *nb_type_cbbox;
GtkWidget *label530;
GtkWidget *label523;
GtkWidget *label529;
GtkWidget *vbox56;
GtkWidget *frame48;
GtkWidget *table25;
GtkWidget *label335;
GtkWidget *label336;
GtkWidget *label337;
GtkWidget *conf_last_ld_entry;
GtkWidget *conf_last_el_entry;
GtkWidget *conf_last_ps_entry;
GtkWidget *label557;
GtkWidget *conf_last_csv_entry;
GtkWidget *label555;
GtkWidget *hbox169;
GtkWidget *conf_csv_sep_entry;
GtkWidget *label556;
GtkWidget *label564;
GtkWidget *conf_last_s2p_entry;
GtkWidget *label334;
GtkWidget *label539;
GtkWidget *hbox39;
GtkWidget *label77;
GtkWidget *conf_cancel_btn;
GtkWidget *conf_ok_btn;
ConfigWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (ConfigWindow), _("Configuration window"));
vbox23 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox23);
gtk_container_add (GTK_CONTAINER (ConfigWindow), vbox23);
notebook3 = gtk_notebook_new ();
gtk_widget_show (notebook3);
gtk_box_pack_start (GTK_BOX (vbox23), notebook3, TRUE, TRUE, 0);
vbox41 = gtk_vbox_new (FALSE, 2);
gtk_widget_show (vbox41);
gtk_container_add (GTK_CONTAINER (notebook3), vbox41);
gtk_container_set_border_width (GTK_CONTAINER (vbox41), 4);
frame19 = gtk_frame_new (NULL);
gtk_widget_show (frame19);
gtk_box_pack_start (GTK_BOX (vbox41), frame19, FALSE, TRUE, 0);
table7 = gtk_table_new (3, 10, FALSE);
gtk_widget_show (table7);
gtk_container_add (GTK_CONTAINER (frame19), table7);
gtk_container_set_border_width (GTK_CONTAINER (table7), 4);
gtk_table_set_row_spacings (GTK_TABLE (table7), 2);
gtk_table_set_col_spacings (GTK_TABLE (table7), 4);
conf_swr_cbtn = gtk_check_button_new_with_mnemonic (_("Show circle at SWR: "));
gtk_widget_show (conf_swr_cbtn);
gtk_table_attach (GTK_TABLE (table7), conf_swr_cbtn, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (conf_swr_cbtn), TRUE);
hbox124 = gtk_hbox_new (FALSE, 0);
gtk_widget_show (hbox124);
gtk_table_attach (GTK_TABLE (table7), hbox124, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
conf_swr_entry = gtk_entry_new ();
gtk_widget_show (conf_swr_entry);
gtk_box_pack_start (GTK_BOX (hbox124), conf_swr_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (conf_swr_entry, 40, -1);
gtk_entry_set_text (GTK_ENTRY (conf_swr_entry), _("2.0"));
label361 = gtk_label_new ("");
gtk_widget_show (label361);
gtk_box_pack_start (GTK_BOX (hbox124), label361, TRUE, TRUE, 0);
gtk_misc_set_alignment (GTK_MISC (label361), 0, 0.5);
conf_g1_cbtn = gtk_check_button_new_with_mnemonic (_("Show show g1 circle"));
gtk_widget_show (conf_g1_cbtn);
gtk_table_attach (GTK_TABLE (table7), conf_g1_cbtn, 0, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (conf_g1_cbtn), TRUE);
label359 = gtk_label_new (_("Complex suffix:"));
gtk_widget_show (label359);
gtk_table_attach (GTK_TABLE (table7), label359, 3, 4, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label359), 0, 0.5);
conf_complex_entry = gtk_entry_new ();
gtk_widget_show (conf_complex_entry);
gtk_table_attach (GTK_TABLE (table7), conf_complex_entry, 4, 5, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_size_request (conf_complex_entry, 20, -1);
gtk_entry_set_max_length (GTK_ENTRY (conf_complex_entry), 1);
gtk_entry_set_text (GTK_ENTRY (conf_complex_entry), _("j"));
use_bitmap_cbtn = gtk_check_button_new_with_mnemonic (_("Use bitmap chart"));
gtk_widget_show (use_bitmap_cbtn);
gtk_table_attach (GTK_TABLE (table7), use_bitmap_cbtn, 3, 5, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (use_bitmap_cbtn), TRUE);
label457 = gtk_label_new (_("Frequency"));
gtk_widget_show (label457);
gtk_table_attach (GTK_TABLE (table7), label457, 7, 8, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label457), 0.1, 0.5);
label456 = gtk_label_new ("");
gtk_widget_show (label456);
gtk_table_attach (GTK_TABLE (table7), label456, 6, 7, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label456), 1, 0.5);
label455 = gtk_label_new (_("Precision:"));
gtk_widget_show (label455);
gtk_table_attach (GTK_TABLE (table7), label455, 6, 7, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
label532 = gtk_label_new (_("Admittance"));
gtk_widget_show (label532);
gtk_table_attach (GTK_TABLE (table7), label532, 7, 8, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label532), 0.1, 0.5);
label531 = gtk_label_new (_("Impedance"));
gtk_widget_show (label531);
gtk_table_attach (GTK_TABLE (table7), label531, 7, 8, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label531), 0.1, 0.5);
label459 = gtk_label_new ("");
gtk_widget_show (label459);
gtk_table_attach (GTK_TABLE (table7), label459, 9, 10, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label459), 0, 0.5);
label458 = gtk_label_new (_("digits"));
gtk_widget_show (label458);
gtk_table_attach (GTK_TABLE (table7), label458, 9, 10, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label458), 0, 0.5);
label533 = gtk_label_new ("");
gtk_widget_show (label533);
gtk_table_attach (GTK_TABLE (table7), label533, 9, 10, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label533), 0, 0.5);
conf_prec_mhz_spbtn_adj = gtk_adjustment_new (3, 0, 6, 1, 1, 0);
conf_prec_mhz_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (conf_prec_mhz_spbtn_adj), 1, 0);
gtk_widget_show (conf_prec_mhz_spbtn);
gtk_table_attach (GTK_TABLE (table7), conf_prec_mhz_spbtn, 8, 9, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_size_request (conf_prec_mhz_spbtn, 40, -1);
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (conf_prec_mhz_spbtn), TRUE);
conf_prec_imp_spbtn_adj = gtk_adjustment_new (3, 0, 8, 1, 1, 0);
conf_prec_imp_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (conf_prec_imp_spbtn_adj), 1, 0);
gtk_widget_show (conf_prec_imp_spbtn);
gtk_table_attach (GTK_TABLE (table7), conf_prec_imp_spbtn, 8, 9, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_size_request (conf_prec_imp_spbtn, 40, -1);
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (conf_prec_imp_spbtn), TRUE);
conf_prec_adm_spbtn_adj = gtk_adjustment_new (6, 0, 8, 1, 1, 0);
conf_prec_adm_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (conf_prec_adm_spbtn_adj), 1, 0);
gtk_widget_show (conf_prec_adm_spbtn);
gtk_table_attach (GTK_TABLE (table7), conf_prec_adm_spbtn, 8, 9, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_size_request (conf_prec_adm_spbtn, 40, -1);
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (conf_prec_adm_spbtn), TRUE);
label534 = gtk_label_new ("");
gtk_widget_show (label534);
gtk_table_attach (GTK_TABLE (table7), label534, 6, 7, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label534), 0, 0.5);
vseparator12 = gtk_vseparator_new ();
gtk_widget_show (vseparator12);
gtk_table_attach (GTK_TABLE (table7), vseparator12, 5, 6, 0, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
vseparator11 = gtk_vseparator_new ();
gtk_widget_show (vseparator11);
gtk_table_attach (GTK_TABLE (table7), vseparator11, 2, 3, 0, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
conf_always_imp_cbtn = gtk_check_button_new_with_mnemonic (_("Always show impedance"));
gtk_widget_show (conf_always_imp_cbtn);
gtk_table_attach (GTK_TABLE (table7), conf_always_imp_cbtn, 0, 2, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (conf_always_imp_cbtn), TRUE);
label535 = gtk_label_new ("");
gtk_widget_show (label535);
gtk_table_attach (GTK_TABLE (table7), label535, 3, 5, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label535), 1, 0.5);
label78 = gtk_label_new (_("Options"));
gtk_widget_show (label78);
gtk_frame_set_label_widget (GTK_FRAME (frame19), label78);
frame62 = gtk_frame_new (NULL);
gtk_widget_show (frame62);
gtk_box_pack_start (GTK_BOX (vbox41), frame62, TRUE, TRUE, 0);
alignment2 = gtk_alignment_new (0.5, 0.5, 1, 1);
gtk_widget_show (alignment2);
gtk_container_add (GTK_CONTAINER (frame62), alignment2);
gtk_container_set_border_width (GTK_CONTAINER (alignment2), 4);
table42 = gtk_table_new (2, 2, FALSE);
gtk_widget_show (table42);
gtk_container_add (GTK_CONTAINER (alignment2), table42);
gtk_table_set_row_spacings (GTK_TABLE (table42), 2);
gtk_table_set_col_spacings (GTK_TABLE (table42), 4);
label541 = gtk_label_new (_("Cursor values (SWR etc):"));
gtk_widget_show (label541);
gtk_table_attach (GTK_TABLE (table42), label541, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label541), 0, 0.5);
label542 = gtk_label_new (_("Results page:"));
gtk_widget_show (label542);
gtk_table_attach (GTK_TABLE (table42), label542, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label542), 0, 0.5);
conf_cursor_font_fbtn = gtk_font_button_new ();
gtk_widget_show (conf_cursor_font_fbtn);
gtk_table_attach (GTK_TABLE (table42), conf_cursor_font_fbtn, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
conf_results_font_fbtn = gtk_font_button_new ();
gtk_widget_show (conf_results_font_fbtn);
gtk_table_attach (GTK_TABLE (table42), conf_results_font_fbtn, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
label540 = gtk_label_new (_("Screen fonts:"));
gtk_widget_show (label540);
gtk_frame_set_label_widget (GTK_FRAME (frame62), label540);
gtk_label_set_use_markup (GTK_LABEL (label540), TRUE);
conf_presmhz_spbtn = gtk_label_new (_("General"));
gtk_widget_show (conf_presmhz_spbtn);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook3), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook3), 0), conf_presmhz_spbtn);
vbox40 = gtk_vbox_new (FALSE, 2);
gtk_widget_show (vbox40);
gtk_container_add (GTK_CONTAINER (notebook3), vbox40);
gtk_container_set_border_width (GTK_CONTAINER (vbox40), 4);
frame44 = gtk_frame_new (NULL);
gtk_widget_show (frame44);
gtk_box_pack_start (GTK_BOX (vbox40), frame44, FALSE, FALSE, 0);
table21 = gtk_table_new (2, 2, FALSE);
gtk_widget_show (table21);
gtk_container_add (GTK_CONTAINER (frame44), table21);
gtk_container_set_border_width (GTK_CONTAINER (table21), 4);
gtk_table_set_row_spacings (GTK_TABLE (table21), 2);
gtk_table_set_col_spacings (GTK_TABLE (table21), 4);
label273 = gtk_label_new (_("Image file:"));
gtk_widget_show (label273);
gtk_table_attach (GTK_TABLE (table21), label273, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label273), 0, 0.5);
conf_chartbg_entry = gtk_entry_new ();
gtk_widget_show (conf_chartbg_entry);
gtk_table_attach (GTK_TABLE (table21), conf_chartbg_entry, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
label274 = gtk_label_new (_("Radius:"));
gtk_widget_show (label274);
gtk_table_attach (GTK_TABLE (table21), label274, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label274), 0, 0.5);
hbox100 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox100);
gtk_table_attach (GTK_TABLE (table21), hbox100, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
conf_radius_entry = gtk_entry_new ();
gtk_widget_show (conf_radius_entry);
gtk_box_pack_start (GTK_BOX (hbox100), conf_radius_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (conf_radius_entry, 56, -1);
label276 = gtk_label_new (_(" X offset:"));
gtk_widget_show (label276);
gtk_box_pack_start (GTK_BOX (hbox100), label276, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label276), 0, 0.5);
conf_xoffs_entry = gtk_entry_new ();
gtk_widget_show (conf_xoffs_entry);
gtk_box_pack_start (GTK_BOX (hbox100), conf_xoffs_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (conf_xoffs_entry, 56, -1);
label277 = gtk_label_new (_(" Y offset:"));
gtk_widget_show (label277);
gtk_box_pack_start (GTK_BOX (hbox100), label277, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label277), 0, 0.5);
conf_yoffs_entry = gtk_entry_new ();
gtk_widget_show (conf_yoffs_entry);
gtk_box_pack_start (GTK_BOX (hbox100), conf_yoffs_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (conf_yoffs_entry, 56, -1);
label272 = gtk_label_new (_("Bitmap chart background"));
gtk_widget_show (label272);
gtk_frame_set_label_widget (GTK_FRAME (frame44), label272);
frame53 = gtk_frame_new (NULL);
gtk_widget_show (frame53);
gtk_box_pack_start (GTK_BOX (vbox40), frame53, TRUE, TRUE, 0);
table29 = gtk_table_new (4, 12, FALSE);
gtk_widget_show (table29);
gtk_container_add (GTK_CONTAINER (frame53), table29);
gtk_container_set_border_width (GTK_CONTAINER (table29), 4);
gtk_table_set_row_spacings (GTK_TABLE (table29), 2);
gtk_table_set_col_spacings (GTK_TABLE (table29), 8);
label414 = gtk_label_new (_("R-lines:"));
gtk_widget_show (label414);
gtk_table_attach (GTK_TABLE (table29), label414, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label414), 0, 0.5);
label415 = gtk_label_new (_("X-lines:"));
gtk_widget_show (label415);
gtk_table_attach (GTK_TABLE (table29), label415, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label415), 0, 0.5);
label418 = gtk_label_new (_("Bold:"));
gtk_widget_show (label418);
gtk_table_attach (GTK_TABLE (table29), label418, 3, 4, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label418), 1, 0.5);
label419 = gtk_label_new (_("Bold:"));
gtk_widget_show (label419);
gtk_table_attach (GTK_TABLE (table29), label419, 3, 4, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label419), 1, 0.5);
label420 = gtk_label_new (_("Normal:"));
gtk_widget_show (label420);
gtk_table_attach (GTK_TABLE (table29), label420, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label420), 1, 0.5);
label421 = gtk_label_new (_("Normal:"));
gtk_widget_show (label421);
gtk_table_attach (GTK_TABLE (table29), label421, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label421), 1, 0.5);
label424 = gtk_label_new (_("Font:"));
gtk_widget_show (label424);
gtk_table_attach (GTK_TABLE (table29), label424, 0, 1, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label424), 0, 0.5);
vseparator14 = gtk_vseparator_new ();
gtk_widget_show (vseparator14);
gtk_table_attach (GTK_TABLE (table29), vseparator14, 5, 6, 0, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
conf_r_arc_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_r_arc_colbtn);
gtk_table_attach (GTK_TABLE (table29), conf_r_arc_colbtn, 2, 3, 0, 1,
(GtkAttachOptions) (0),
(GtkAttachOptions) (0), 0, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_r_arc_colbtn), TRUE);
conf_x_arc_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_x_arc_colbtn);
gtk_table_attach (GTK_TABLE (table29), conf_x_arc_colbtn, 2, 3, 1, 2,
(GtkAttachOptions) (0),
(GtkAttachOptions) (0), 0, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_x_arc_colbtn), TRUE);
conf_r_arc_bold_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_r_arc_bold_colbtn);
gtk_table_attach (GTK_TABLE (table29), conf_r_arc_bold_colbtn, 4, 5, 0, 1,
(GtkAttachOptions) (0),
(GtkAttachOptions) (0), 0, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_r_arc_bold_colbtn), TRUE);
conf_x_arc_bold_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_x_arc_bold_colbtn);
gtk_table_attach (GTK_TABLE (table29), conf_x_arc_bold_colbtn, 4, 5, 1, 2,
(GtkAttachOptions) (0),
(GtkAttachOptions) (0), 0, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_x_arc_bold_colbtn), TRUE);
label536 = gtk_label_new ("");
gtk_widget_show (label536);
gtk_table_attach (GTK_TABLE (table29), label536, 11, 12, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label536), 0, 0.5);
conf_font_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_font_colbtn);
gtk_table_attach (GTK_TABLE (table29), conf_font_colbtn, 11, 12, 3, 4,
(GtkAttachOptions) (0),
(GtkAttachOptions) (0), 0, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_font_colbtn), TRUE);
conf_font_fpick = gtk_font_button_new ();
gtk_widget_show (conf_font_fpick);
gtk_table_attach (GTK_TABLE (table29), conf_font_fpick, 1, 11, 3, 4,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
hseparator10 = gtk_hseparator_new ();
gtk_widget_show (hseparator10);
gtk_table_attach (GTK_TABLE (table29), hseparator10, 0, 12, 2, 3,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 2);
label538 = gtk_label_new (_("pixels"));
gtk_widget_show (label538);
gtk_table_attach (GTK_TABLE (table29), label538, 11, 12, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label538), 0, 0.5);
conf_vecbg_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_vecbg_colbtn);
gtk_table_attach (GTK_TABLE (table29), conf_vecbg_colbtn, 10, 11, 0, 1,
(GtkAttachOptions) (0),
(GtkAttachOptions) (0), 0, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_vecbg_colbtn), TRUE);
conf_vecbg_size_entry = gtk_entry_new ();
gtk_widget_show (conf_vecbg_size_entry);
gtk_table_attach (GTK_TABLE (table29), conf_vecbg_size_entry, 10, 11, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_size_request (conf_vecbg_size_entry, 50, -1);
label427 = gtk_label_new (_("Background:"));
gtk_widget_show (label427);
gtk_table_attach (GTK_TABLE (table29), label427, 9, 10, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label427), 0, 0.5);
label537 = gtk_label_new (_("Chart size:"));
gtk_widget_show (label537);
gtk_table_attach (GTK_TABLE (table29), label537, 9, 10, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label537), 0, 0.5);
vseparator15 = gtk_vseparator_new ();
gtk_widget_show (vseparator15);
gtk_table_attach (GTK_TABLE (table29), vseparator15, 8, 9, 0, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
label565 = gtk_label_new (_("g=1 circle:"));
gtk_widget_show (label565);
gtk_table_attach (GTK_TABLE (table29), label565, 6, 7, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label565), 1, 0.5);
label566 = gtk_label_new (_("SWR circle:"));
gtk_widget_show (label566);
gtk_table_attach (GTK_TABLE (table29), label566, 6, 7, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label566), 1, 0.5);
conf_g1_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_g1_colbtn);
gtk_table_attach (GTK_TABLE (table29), conf_g1_colbtn, 7, 8, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_g1_colbtn), TRUE);
conf_swr_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_swr_colbtn);
gtk_table_attach (GTK_TABLE (table29), conf_swr_colbtn, 7, 8, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_swr_colbtn), TRUE);
label426 = gtk_label_new (_("Vector background chart properties"));
gtk_widget_show (label426);
gtk_frame_set_label_widget (GTK_FRAME (frame53), label426);
label208 = gtk_label_new (_("Screen"));
gtk_widget_show (label208);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook3), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook3), 1), label208);
vbox42 = gtk_vbox_new (FALSE, 2);
gtk_widget_show (vbox42);
gtk_container_add (GTK_CONTAINER (notebook3), vbox42);
gtk_container_set_border_width (GTK_CONTAINER (vbox42), 4);
frame46 = gtk_frame_new (NULL);
gtk_widget_show (frame46);
gtk_box_pack_start (GTK_BOX (vbox42), frame46, TRUE, TRUE, 0);
table23 = gtk_table_new (2, 6, FALSE);
gtk_widget_show (table23);
gtk_container_add (GTK_CONTAINER (frame46), table23);
gtk_container_set_border_width (GTK_CONTAINER (table23), 4);
gtk_table_set_row_spacings (GTK_TABLE (table23), 2);
gtk_table_set_col_spacings (GTK_TABLE (table23), 4);
label311 = gtk_label_new (_("Paper size:"));
gtk_widget_show (label311);
gtk_table_attach (GTK_TABLE (table23), label311, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label311), 0, 0.5);
label312 = gtk_label_new (_("Chart diameter:"));
gtk_widget_show (label312);
gtk_table_attach (GTK_TABLE (table23), label312, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label312), 0, 0.5);
hbox111 = gtk_hbox_new (FALSE, 3);
gtk_widget_show (hbox111);
gtk_table_attach (GTK_TABLE (table23), hbox111, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_chartsize_entry = gtk_entry_new ();
gtk_widget_show (prt_chartsize_entry);
gtk_box_pack_start (GTK_BOX (hbox111), prt_chartsize_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (prt_chartsize_entry, 58, -1);
gtk_entry_set_text (GTK_ENTRY (prt_chartsize_entry), _("140.0"));
label313 = gtk_label_new (_("mm"));
gtk_widget_show (label313);
gtk_box_pack_start (GTK_BOX (hbox111), label313, FALSE, FALSE, 0);
prt_papersize_combo = gtk_combo_new ();
g_object_set_data (G_OBJECT (GTK_COMBO (prt_papersize_combo)->popwin),
"GladeParentKey", prt_papersize_combo);
gtk_widget_show (prt_papersize_combo);
gtk_table_attach (GTK_TABLE (table23), prt_papersize_combo, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_widget_set_size_request (prt_papersize_combo, 97, -1);
prt_papersize_combo_items = g_list_append (prt_papersize_combo_items, (gpointer) _("A4"));
prt_papersize_combo_items = g_list_append (prt_papersize_combo_items, (gpointer) _("Letter"));
gtk_combo_set_popdown_strings (GTK_COMBO (prt_papersize_combo), prt_papersize_combo_items);
g_list_free (prt_papersize_combo_items);
prt_papersize_entry = GTK_COMBO (prt_papersize_combo)->entry;
gtk_widget_show (prt_papersize_entry);
vseparator5 = gtk_vseparator_new ();
gtk_widget_show (vseparator5);
gtk_table_attach (GTK_TABLE (table23), vseparator5, 2, 3, 0, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
label316 = gtk_label_new (_("Margins -"));
gtk_widget_show (label316);
gtk_table_attach (GTK_TABLE (table23), label316, 3, 4, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label316), 0, 0.5);
label321 = gtk_label_new ("");
gtk_widget_show (label321);
gtk_table_attach (GTK_TABLE (table23), label321, 3, 4, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label321), 0, 0.5);
hbox112 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox112);
gtk_table_attach (GTK_TABLE (table23), hbox112, 5, 6, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_mleft_entry = gtk_entry_new ();
gtk_widget_show (prt_mleft_entry);
gtk_box_pack_start (GTK_BOX (hbox112), prt_mleft_entry, FALSE, FALSE, 0);
gtk_widget_set_size_request (prt_mleft_entry, 60, -1);
gtk_entry_set_text (GTK_ENTRY (prt_mleft_entry), _("15"));
label318 = gtk_label_new (_("mm "));
gtk_widget_show (label318);
gtk_box_pack_start (GTK_BOX (hbox112), label318, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label318), 0, 0.5);
hbox113 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox113);
gtk_table_attach (GTK_TABLE (table23), hbox113, 5, 6, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_mbottom_entry = gtk_entry_new ();
gtk_widget_show (prt_mbottom_entry);
gtk_box_pack_start (GTK_BOX (hbox113), prt_mbottom_entry, FALSE, FALSE, 0);
gtk_widget_set_size_request (prt_mbottom_entry, 60, -1);
gtk_entry_set_text (GTK_ENTRY (prt_mbottom_entry), _("20"));
label323 = gtk_label_new (_("mm "));
gtk_widget_show (label323);
gtk_box_pack_start (GTK_BOX (hbox113), label323, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (label323), 0, 0.5);
label317 = gtk_label_new (_("Left:"));
gtk_widget_show (label317);
gtk_table_attach (GTK_TABLE (table23), label317, 4, 5, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label317), 0, 0.5);
label322 = gtk_label_new (_("Bottom:"));
gtk_widget_show (label322);
gtk_table_attach (GTK_TABLE (table23), label322, 4, 5, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label322), 0, 0.5);
label310 = gtk_label_new (_("Chart size"));
gtk_widget_show (label310);
gtk_frame_set_label_widget (GTK_FRAME (frame46), label310);
frame49 = gtk_frame_new (NULL);
gtk_widget_show (frame49);
gtk_box_pack_start (GTK_BOX (vbox42), frame49, TRUE, TRUE, 0);
table26 = gtk_table_new (4, 8, FALSE);
gtk_widget_show (table26);
gtk_container_add (GTK_CONTAINER (frame49), table26);
gtk_container_set_border_width (GTK_CONTAINER (table26), 4);
gtk_table_set_row_spacings (GTK_TABLE (table26), 2);
gtk_table_set_col_spacings (GTK_TABLE (table26), 4);
label340 = gtk_label_new (_("R-lines:"));
gtk_widget_show (label340);
gtk_table_attach (GTK_TABLE (table26), label340, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label340), 0, 0.5);
label341 = gtk_label_new (_("X-lines:"));
gtk_widget_show (label341);
gtk_table_attach (GTK_TABLE (table26), label341, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label341), 0, 0.5);
hbox109 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox109);
gtk_table_attach (GTK_TABLE (table26), hbox109, 4, 5, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_x_arc_bold_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_x_arc_bold_colbtn);
gtk_box_pack_start (GTK_BOX (hbox109), prt_x_arc_bold_colbtn, FALSE, FALSE, 0);
prt_x_arc_bold_spbtn_adj = gtk_adjustment_new (0.2, 0, 2, 0.1, 0.5, 0);
prt_x_arc_bold_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_x_arc_bold_spbtn_adj), 1, 2);
gtk_widget_show (prt_x_arc_bold_spbtn);
gtk_box_pack_start (GTK_BOX (hbox109), prt_x_arc_bold_spbtn, FALSE, FALSE, 0);
label305 = gtk_label_new (_("mm"));
gtk_widget_show (label305);
gtk_box_pack_start (GTK_BOX (hbox109), label305, FALSE, FALSE, 0);
hbox108 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox108);
gtk_table_attach (GTK_TABLE (table26), hbox108, 4, 5, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_r_arc_bold_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_r_arc_bold_colbtn);
gtk_box_pack_start (GTK_BOX (hbox108), prt_r_arc_bold_colbtn, FALSE, FALSE, 0);
prt_r_arc_bold_spbtn_adj = gtk_adjustment_new (0.2, 0, 2, 0.1, 0.5, 0);
prt_r_arc_bold_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_r_arc_bold_spbtn_adj), 1, 2);
gtk_widget_show (prt_r_arc_bold_spbtn);
gtk_box_pack_start (GTK_BOX (hbox108), prt_r_arc_bold_spbtn, FALSE, FALSE, 0);
label304 = gtk_label_new (_("mm"));
gtk_widget_show (label304);
gtk_box_pack_start (GTK_BOX (hbox108), label304, FALSE, FALSE, 0);
label347 = gtk_label_new (_("Bold:"));
gtk_widget_show (label347);
gtk_table_attach (GTK_TABLE (table26), label347, 3, 4, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label347), 1, 0.5);
label348 = gtk_label_new (_("Bold:"));
gtk_widget_show (label348);
gtk_table_attach (GTK_TABLE (table26), label348, 3, 4, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label348), 1, 0.5);
label349 = gtk_label_new (_("Normal:"));
gtk_widget_show (label349);
gtk_table_attach (GTK_TABLE (table26), label349, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label349), 1, 0.5);
label350 = gtk_label_new (_("Normal:"));
gtk_widget_show (label350);
gtk_table_attach (GTK_TABLE (table26), label350, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label350), 1, 0.5);
hbox122 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox122);
gtk_table_attach (GTK_TABLE (table26), hbox122, 2, 3, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_r_arc_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_r_arc_colbtn);
gtk_box_pack_start (GTK_BOX (hbox122), prt_r_arc_colbtn, FALSE, FALSE, 0);
prt_r_arc_spbtn_adj = gtk_adjustment_new (0.2, 0, 2, 0.1, 0.5, 0);
prt_r_arc_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_r_arc_spbtn_adj), 1, 2);
gtk_widget_show (prt_r_arc_spbtn);
gtk_box_pack_start (GTK_BOX (hbox122), prt_r_arc_spbtn, FALSE, FALSE, 0);
label351 = gtk_label_new (_("mm"));
gtk_widget_show (label351);
gtk_box_pack_start (GTK_BOX (hbox122), label351, FALSE, FALSE, 0);
hbox123 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox123);
gtk_table_attach (GTK_TABLE (table26), hbox123, 2, 3, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_x_arc_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_x_arc_colbtn);
gtk_box_pack_start (GTK_BOX (hbox123), prt_x_arc_colbtn, FALSE, FALSE, 0);
prt_x_arc_spbtn_adj = gtk_adjustment_new (0.2, 0, 2, 0.1, 0.5, 0);
prt_x_arc_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_x_arc_spbtn_adj), 1, 2);
gtk_widget_show (prt_x_arc_spbtn);
gtk_box_pack_start (GTK_BOX (hbox123), prt_x_arc_spbtn, FALSE, FALSE, 0);
label352 = gtk_label_new (_("mm"));
gtk_widget_show (label352);
gtk_box_pack_start (GTK_BOX (hbox123), label352, FALSE, FALSE, 0);
label326 = gtk_label_new (_("Font:"));
gtk_widget_show (label326);
gtk_table_attach (GTK_TABLE (table26), label326, 0, 1, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label326), 0, 0.5);
hbox171 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox171);
gtk_table_attach (GTK_TABLE (table26), hbox171, 7, 8, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_swr_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_swr_colbtn);
gtk_box_pack_start (GTK_BOX (hbox171), prt_swr_colbtn, FALSE, FALSE, 0);
prt_swr_spbtn_adj = gtk_adjustment_new (0.20000000298, 0, 2, 0.10000000149, 0.5, 0);
prt_swr_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_swr_spbtn_adj), 1, 2);
gtk_widget_show (prt_swr_spbtn);
gtk_box_pack_start (GTK_BOX (hbox171), prt_swr_spbtn, FALSE, FALSE, 0);
label568 = gtk_label_new (_("mm"));
gtk_widget_show (label568);
gtk_box_pack_start (GTK_BOX (hbox171), label568, FALSE, FALSE, 0);
hbox116 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox116);
gtk_table_attach (GTK_TABLE (table26), hbox116, 7, 8, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_font_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_font_colbtn);
gtk_box_pack_start (GTK_BOX (hbox116), prt_font_colbtn, FALSE, FALSE, 0);
prt_fontsize_spbtn_adj = gtk_adjustment_new (2, 0, 50, 0.1, 0.5, 0);
prt_fontsize_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_fontsize_spbtn_adj), 1, 2);
gtk_widget_show (prt_fontsize_spbtn);
gtk_box_pack_start (GTK_BOX (hbox116), prt_fontsize_spbtn, FALSE, FALSE, 0);
label327 = gtk_label_new (_("mm"));
gtk_widget_show (label327);
gtk_box_pack_start (GTK_BOX (hbox116), label327, FALSE, FALSE, 0);
hseparator9 = gtk_hseparator_new ();
gtk_widget_show (hseparator9);
gtk_table_attach (GTK_TABLE (table26), hseparator9, 0, 8, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 2);
vseparator16 = gtk_vseparator_new ();
gtk_widget_show (vseparator16);
gtk_table_attach (GTK_TABLE (table26), vseparator16, 5, 6, 0, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
label570 = gtk_label_new (_("SWR circle:"));
gtk_widget_show (label570);
gtk_table_attach (GTK_TABLE (table26), label570, 6, 7, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label570), 1, 0.5);
hbox170 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox170);
gtk_table_attach (GTK_TABLE (table26), hbox170, 7, 8, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_g1_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_g1_colbtn);
gtk_box_pack_start (GTK_BOX (hbox170), prt_g1_colbtn, FALSE, FALSE, 0);
prt_g1_spbtn_adj = gtk_adjustment_new (0.20000000298, 0, 2, 0.10000000149, 0.5, 0);
prt_g1_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_g1_spbtn_adj), 1, 2);
gtk_widget_show (prt_g1_spbtn);
gtk_box_pack_start (GTK_BOX (hbox170), prt_g1_spbtn, FALSE, FALSE, 0);
label567 = gtk_label_new (_("mm"));
gtk_widget_show (label567);
gtk_box_pack_start (GTK_BOX (hbox170), label567, FALSE, FALSE, 0);
label569 = gtk_label_new (_("g=1 circle:"));
gtk_widget_show (label569);
gtk_table_attach (GTK_TABLE (table26), label569, 6, 7, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label569), 1, 0.5);
prt_fontbtn = gtk_font_button_new ();
gtk_widget_show (prt_fontbtn);
gtk_table_attach (GTK_TABLE (table26), prt_fontbtn, 1, 7, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_font_button_set_show_size (GTK_FONT_BUTTON (prt_fontbtn), FALSE);
label339 = gtk_label_new (_("Chart properties"));
gtk_widget_show (label339);
gtk_frame_set_label_widget (GTK_FRAME (frame49), label339);
label338 = gtk_label_new (_("Printing"));
gtk_widget_show (label338);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook3), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook3), 2), label338);
frame51 = gtk_frame_new (NULL);
gtk_widget_show (frame51);
gtk_container_add (GTK_CONTAINER (notebook3), frame51);
gtk_container_set_border_width (GTK_CONTAINER (frame51), 4);
table27 = gtk_table_new (5, 7, FALSE);
gtk_widget_show (table27);
gtk_container_add (GTK_CONTAINER (frame51), table27);
gtk_container_set_border_width (GTK_CONTAINER (table27), 4);
gtk_table_set_row_spacings (GTK_TABLE (table27), 2);
gtk_table_set_col_spacings (GTK_TABLE (table27), 4);
label376 = gtk_label_new (_("Final impedances:"));
gtk_widget_show (label376);
gtk_table_attach (GTK_TABLE (table27), label376, 0, 1, 4, 5,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label376), 0, 0.5);
label375 = gtk_label_new (_("Intermediate points:"));
gtk_widget_show (label375);
gtk_table_attach (GTK_TABLE (table27), label375, 0, 1, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label375), 0, 0.5);
label374 = gtk_label_new (_("Loads:"));
gtk_widget_show (label374);
gtk_table_attach (GTK_TABLE (table27), label374, 0, 1, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label374), 0, 0.5);
label377 = gtk_label_new (_("Marks"));
gtk_widget_show (label377);
gtk_table_attach (GTK_TABLE (table27), label377, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label377), 0, 0.5);
label379 = gtk_label_new ("");
gtk_widget_show (label379);
gtk_table_attach (GTK_TABLE (table27), label379, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label379), 0, 0.5);
label380 = gtk_label_new (_("Color / Size (px)"));
gtk_widget_show (label380);
gtk_table_attach (GTK_TABLE (table27), label380, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
hbox128 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox128);
gtk_table_attach (GTK_TABLE (table27), hbox128, 1, 2, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
conf_load_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_load_colbtn);
gtk_box_pack_start (GTK_BOX (hbox128), conf_load_colbtn, FALSE, FALSE, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_load_colbtn), TRUE);
conf_load_spbtn_adj = gtk_adjustment_new (8, 2, 20, 2, 5, 0);
conf_load_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (conf_load_spbtn_adj), 1, 0);
gtk_widget_show (conf_load_spbtn);
gtk_box_pack_start (GTK_BOX (hbox128), conf_load_spbtn, TRUE, TRUE, 0);
hbox129 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox129);
gtk_table_attach (GTK_TABLE (table27), hbox129, 1, 2, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
conf_point_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_point_colbtn);
gtk_box_pack_start (GTK_BOX (hbox129), conf_point_colbtn, FALSE, FALSE, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_point_colbtn), TRUE);
conf_point_spbtn_adj = gtk_adjustment_new (6, 2, 20, 2, 5, 0);
conf_point_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (conf_point_spbtn_adj), 1, 0);
gtk_widget_show (conf_point_spbtn);
gtk_box_pack_start (GTK_BOX (hbox129), conf_point_spbtn, TRUE, TRUE, 0);
hbox130 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox130);
gtk_table_attach (GTK_TABLE (table27), hbox130, 1, 2, 4, 5,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
conf_final_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_final_colbtn);
gtk_box_pack_start (GTK_BOX (hbox130), conf_final_colbtn, FALSE, FALSE, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_final_colbtn), TRUE);
conf_final_spbtn_adj = gtk_adjustment_new (8, 2, 20, 2, 5, 0);
conf_final_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (conf_final_spbtn_adj), 1, 0);
gtk_widget_show (conf_final_spbtn);
gtk_box_pack_start (GTK_BOX (hbox130), conf_final_spbtn, TRUE, TRUE, 0);
label378 = gtk_label_new (_("On-screen"));
gtk_widget_show (label378);
gtk_table_attach (GTK_TABLE (table27), label378, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
vseparator7 = gtk_vseparator_new ();
gtk_widget_show (vseparator7);
gtk_table_attach (GTK_TABLE (table27), vseparator7, 2, 3, 0, 5,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
label382 = gtk_label_new (_("Fill:"));
gtk_widget_show (label382);
gtk_table_attach (GTK_TABLE (table27), label382, 3, 4, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label382), 1, 0.5);
label383 = gtk_label_new (_("Fill:"));
gtk_widget_show (label383);
gtk_table_attach (GTK_TABLE (table27), label383, 3, 4, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label383), 1, 0.5);
label384 = gtk_label_new (_("Fill:"));
gtk_widget_show (label384);
gtk_table_attach (GTK_TABLE (table27), label384, 3, 4, 4, 5,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label384), 1, 0.5);
hbox103 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox103);
gtk_table_attach (GTK_TABLE (table27), hbox103, 4, 5, 2, 3,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_ldfill_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_ldfill_colbtn);
gtk_box_pack_start (GTK_BOX (hbox103), prt_ldfill_colbtn, FALSE, FALSE, 0);
prt_lddiam_spbtn_adj = gtk_adjustment_new (2, 0, 5, 0.1, 0.5, 0);
prt_lddiam_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_lddiam_spbtn_adj), 1, 2);
gtk_widget_show (prt_lddiam_spbtn);
gtk_box_pack_start (GTK_BOX (hbox103), prt_lddiam_spbtn, FALSE, FALSE, 0);
hbox104 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox104);
gtk_table_attach (GTK_TABLE (table27), hbox104, 4, 5, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_intfill_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_intfill_colbtn);
gtk_box_pack_start (GTK_BOX (hbox104), prt_intfill_colbtn, FALSE, FALSE, 0);
prt_intdiam_spbtn_adj = gtk_adjustment_new (2, 0, 5, 0.1, 0.5, 0);
prt_intdiam_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_intdiam_spbtn_adj), 1, 2);
gtk_widget_show (prt_intdiam_spbtn);
gtk_box_pack_start (GTK_BOX (hbox104), prt_intdiam_spbtn, FALSE, FALSE, 0);
hbox105 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox105);
gtk_table_attach (GTK_TABLE (table27), hbox105, 4, 5, 4, 5,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_finalfill_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_finalfill_colbtn);
gtk_box_pack_start (GTK_BOX (hbox105), prt_finalfill_colbtn, FALSE, FALSE, 0);
prt_finaldiam_spbtn_adj = gtk_adjustment_new (3, 0, 5, 0.1, 0.5, 0);
prt_finaldiam_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_finaldiam_spbtn_adj), 1, 2);
gtk_widget_show (prt_finaldiam_spbtn);
gtk_box_pack_start (GTK_BOX (hbox105), prt_finaldiam_spbtn, FALSE, FALSE, 0);
label385 = gtk_label_new (_("Border:"));
gtk_widget_show (label385);
gtk_table_attach (GTK_TABLE (table27), label385, 5, 6, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label385), 1, 0.5);
label386 = gtk_label_new (_("Border:"));
gtk_widget_show (label386);
gtk_table_attach (GTK_TABLE (table27), label386, 5, 6, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label386), 1, 0.5);
label387 = gtk_label_new (_("Border:"));
gtk_widget_show (label387);
gtk_table_attach (GTK_TABLE (table27), label387, 5, 6, 4, 5,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label387), 1, 0.5);
hbox106 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox106);
gtk_table_attach (GTK_TABLE (table27), hbox106, 6, 7, 2, 3,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_ldbrdr_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_ldbrdr_colbtn);
gtk_box_pack_start (GTK_BOX (hbox106), prt_ldbrdr_colbtn, FALSE, FALSE, 0);
prt_ldbrdr_spbtn_adj = gtk_adjustment_new (0.2, 0, 2, 0.1, 0.5, 0);
prt_ldbrdr_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_ldbrdr_spbtn_adj), 1, 2);
gtk_widget_show (prt_ldbrdr_spbtn);
gtk_box_pack_start (GTK_BOX (hbox106), prt_ldbrdr_spbtn, FALSE, FALSE, 0);
hbox107 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox107);
gtk_table_attach (GTK_TABLE (table27), hbox107, 6, 7, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_intbrdr_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_intbrdr_colbtn);
gtk_box_pack_start (GTK_BOX (hbox107), prt_intbrdr_colbtn, FALSE, FALSE, 0);
prt_intbrdr_spbtn_adj = gtk_adjustment_new (0.2, 0, 2, 0.1, 0.5, 0);
prt_intbrdr_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_intbrdr_spbtn_adj), 1, 2);
gtk_widget_show (prt_intbrdr_spbtn);
gtk_box_pack_start (GTK_BOX (hbox107), prt_intbrdr_spbtn, FALSE, FALSE, 0);
hbox110 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox110);
gtk_table_attach (GTK_TABLE (table27), hbox110, 6, 7, 4, 5,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_finalbrdr_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_finalbrdr_colbtn);
gtk_box_pack_start (GTK_BOX (hbox110), prt_finalbrdr_colbtn, FALSE, FALSE, 0);
prt_finalbrdr_spbtn_adj = gtk_adjustment_new (0.2, 0, 2, 0.1, 0.5, 0);
prt_finalbrdr_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_finalbrdr_spbtn_adj), 1, 2);
gtk_widget_show (prt_finalbrdr_spbtn);
gtk_box_pack_start (GTK_BOX (hbox110), prt_finalbrdr_spbtn, FALSE, FALSE, 0);
label381 = gtk_label_new (_("Printer output"));
gtk_widget_show (label381);
gtk_table_attach (GTK_TABLE (table27), label381, 3, 7, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
label388 = gtk_label_new (_("Color / Size (mm)"));
gtk_widget_show (label388);
gtk_table_attach (GTK_TABLE (table27), label388, 4, 5, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
label389 = gtk_label_new (_("Color / Size (mm)"));
gtk_widget_show (label389);
gtk_table_attach (GTK_TABLE (table27), label389, 6, 7, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
label390 = gtk_label_new ("");
gtk_widget_show (label390);
gtk_table_attach (GTK_TABLE (table27), label390, 3, 4, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label390), 0, 0.5);
label391 = gtk_label_new ("");
gtk_widget_show (label391);
gtk_table_attach (GTK_TABLE (table27), label391, 5, 6, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label391), 0, 0.5);
label373 = gtk_label_new (_("Properties"));
gtk_widget_show (label373);
gtk_frame_set_label_widget (GTK_FRAME (frame51), label373);
label372 = gtk_label_new (_("Impedances"));
gtk_widget_show (label372);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook3), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook3), 3), label372);
frame52 = gtk_frame_new (NULL);
gtk_widget_show (frame52);
gtk_container_add (GTK_CONTAINER (notebook3), frame52);
gtk_container_set_border_width (GTK_CONTAINER (frame52), 4);
table28 = gtk_table_new (4, 9, FALSE);
gtk_widget_show (table28);
gtk_container_add (GTK_CONTAINER (frame52), table28);
gtk_container_set_border_width (GTK_CONTAINER (table28), 4);
gtk_table_set_row_spacings (GTK_TABLE (table28), 2);
gtk_table_set_col_spacings (GTK_TABLE (table28), 4);
label400 = gtk_label_new (_("Screen\nColor"));
gtk_widget_show (label400);
gtk_table_attach (GTK_TABLE (table28), label400, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_label_set_justify (GTK_LABEL (label400), GTK_JUSTIFY_CENTER);
label398 = gtk_label_new (_("Printer\nColor/Size (mm)"));
gtk_widget_show (label398);
gtk_table_attach (GTK_TABLE (table28), label398, 3, 4, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_label_set_justify (GTK_LABEL (label398), GTK_JUSTIFY_CENTER);
label394 = gtk_label_new (_("Z circles:"));
gtk_widget_show (label394);
gtk_table_attach (GTK_TABLE (table28), label394, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label394), 0, 0.5);
label395 = gtk_label_new (_("Y circles:"));
gtk_widget_show (label395);
gtk_table_attach (GTK_TABLE (table28), label395, 0, 1, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label395), 0, 0.5);
label396 = gtk_label_new (_("Line circles:"));
gtk_widget_show (label396);
gtk_table_attach (GTK_TABLE (table28), label396, 0, 1, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label396), 0, 0.5);
hbox101 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox101);
gtk_table_attach (GTK_TABLE (table28), hbox101, 3, 4, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_z_arc_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_z_arc_colbtn);
gtk_box_pack_start (GTK_BOX (hbox101), prt_z_arc_colbtn, FALSE, FALSE, 0);
prt_z_arc_spbtn_adj = gtk_adjustment_new (0.2, 0, 2, 0.1, 0.5, 0);
prt_z_arc_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_z_arc_spbtn_adj), 1, 2);
gtk_widget_show (prt_z_arc_spbtn);
gtk_box_pack_start (GTK_BOX (hbox101), prt_z_arc_spbtn, FALSE, FALSE, 0);
hbox102 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox102);
gtk_table_attach (GTK_TABLE (table28), hbox102, 3, 4, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_y_arc_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_y_arc_colbtn);
gtk_box_pack_start (GTK_BOX (hbox102), prt_y_arc_colbtn, FALSE, FALSE, 0);
prt_y_arc_spbtn_adj = gtk_adjustment_new (0.2, 0, 2, 0.1, 0.5, 0);
prt_y_arc_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_y_arc_spbtn_adj), 1, 2);
gtk_widget_show (prt_y_arc_spbtn);
gtk_box_pack_start (GTK_BOX (hbox102), prt_y_arc_spbtn, FALSE, FALSE, 0);
hbox121 = gtk_hbox_new (FALSE, 3);
gtk_widget_show (hbox121);
gtk_table_attach (GTK_TABLE (table28), hbox121, 3, 4, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_line_arc_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_line_arc_colbtn);
gtk_box_pack_start (GTK_BOX (hbox121), prt_line_arc_colbtn, FALSE, FALSE, 0);
prt_line_arc_spbtn_adj = gtk_adjustment_new (0.2, 0, 2, 0.1, 0.5, 0);
prt_line_arc_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_line_arc_spbtn_adj), 1, 2);
gtk_widget_show (prt_line_arc_spbtn);
gtk_box_pack_start (GTK_BOX (hbox121), prt_line_arc_spbtn, FALSE, FALSE, 0);
vseparator8 = gtk_vseparator_new ();
gtk_widget_show (vseparator8);
gtk_table_attach (GTK_TABLE (table28), vseparator8, 2, 3, 0, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
label410 = gtk_label_new ("");
gtk_widget_show (label410);
gtk_table_attach (GTK_TABLE (table28), label410, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label410), 0, 0.5);
hbox126 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox126);
gtk_table_attach (GTK_TABLE (table28), hbox126, 8, 9, 1, 2,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_zy_line_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_zy_line_colbtn);
gtk_box_pack_start (GTK_BOX (hbox126), prt_zy_line_colbtn, FALSE, FALSE, 0);
prt_zy_line_spbtn_adj = gtk_adjustment_new (0.2, 0, 2, 0.1, 0.5, 0);
prt_zy_line_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_zy_line_spbtn_adj), 1, 2);
gtk_widget_show (prt_zy_line_spbtn);
gtk_box_pack_start (GTK_BOX (hbox126), prt_zy_line_spbtn, FALSE, FALSE, 0);
hbox119 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox119);
gtk_table_attach (GTK_TABLE (table28), hbox119, 8, 9, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_swrcircle_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_swrcircle_colbtn);
gtk_box_pack_start (GTK_BOX (hbox119), prt_swrcircle_colbtn, FALSE, FALSE, 0);
prt_swrcircle_spbtn_adj = gtk_adjustment_new (0.2, 0, 2, 0.1, 0.5, 0);
prt_swrcircle_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_swrcircle_spbtn_adj), 1, 2);
gtk_widget_show (prt_swrcircle_spbtn);
gtk_box_pack_start (GTK_BOX (hbox119), prt_swrcircle_spbtn, FALSE, FALSE, 0);
hbox127 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox127);
gtk_table_attach (GTK_TABLE (table28), hbox127, 8, 9, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
prt_g1circle_colbtn = gtk_color_button_new ();
gtk_widget_show (prt_g1circle_colbtn);
gtk_box_pack_start (GTK_BOX (hbox127), prt_g1circle_colbtn, FALSE, FALSE, 0);
prt_g1circle_spbtn_adj = gtk_adjustment_new (0.2, 0, 2, 0.1, 0.5, 0);
prt_g1circle_spbtn = gtk_spin_button_new (GTK_ADJUSTMENT (prt_g1circle_spbtn_adj), 1, 2);
gtk_widget_show (prt_g1circle_spbtn);
gtk_box_pack_start (GTK_BOX (hbox127), prt_g1circle_spbtn, FALSE, FALSE, 0);
label408 = gtk_label_new (_("Printer\nColor/Size (mm)"));
gtk_widget_show (label408);
gtk_table_attach (GTK_TABLE (table28), label408, 8, 9, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_label_set_justify (GTK_LABEL (label408), GTK_JUSTIFY_CENTER);
vseparator9 = gtk_vseparator_new ();
gtk_widget_show (vseparator9);
gtk_table_attach (GTK_TABLE (table28), vseparator9, 7, 8, 0, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
label409 = gtk_label_new (_("Screen\nColor"));
gtk_widget_show (label409);
gtk_table_attach (GTK_TABLE (table28), label409, 6, 7, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_label_set_justify (GTK_LABEL (label409), GTK_JUSTIFY_CENTER);
label399 = gtk_label_new (_("Z-Y connections:"));
gtk_widget_show (label399);
gtk_table_attach (GTK_TABLE (table28), label399, 5, 6, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label399), 0, 0.5);
label402 = gtk_label_new (_("SWR circle:"));
gtk_widget_show (label402);
gtk_table_attach (GTK_TABLE (table28), label402, 5, 6, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label402), 0, 0.5);
label403 = gtk_label_new (_("G=1 circle:"));
gtk_widget_show (label403);
gtk_table_attach (GTK_TABLE (table28), label403, 5, 6, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label403), 0, 0.5);
label411 = gtk_label_new ("");
gtk_widget_show (label411);
gtk_table_attach (GTK_TABLE (table28), label411, 5, 6, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label411), 0, 0.5);
vseparator10 = gtk_vseparator_new ();
gtk_widget_show (vseparator10);
gtk_table_attach (GTK_TABLE (table28), vseparator10, 4, 5, 0, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 2, 0);
conf_z_arc_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_z_arc_colbtn);
gtk_table_attach (GTK_TABLE (table28), conf_z_arc_colbtn, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_z_arc_colbtn), TRUE);
conf_y_arc_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_y_arc_colbtn);
gtk_table_attach (GTK_TABLE (table28), conf_y_arc_colbtn, 1, 2, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_y_arc_colbtn), TRUE);
conf_line_arc_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_line_arc_colbtn);
gtk_table_attach (GTK_TABLE (table28), conf_line_arc_colbtn, 1, 2, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_line_arc_colbtn), TRUE);
conf_zy_line_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_zy_line_colbtn);
gtk_table_attach (GTK_TABLE (table28), conf_zy_line_colbtn, 6, 7, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_zy_line_colbtn), TRUE);
conf_swrcircle_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_swrcircle_colbtn);
gtk_table_attach (GTK_TABLE (table28), conf_swrcircle_colbtn, 6, 7, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_swrcircle_colbtn), TRUE);
conf_g1circle_colbtn = gtk_color_button_new ();
gtk_widget_show (conf_g1circle_colbtn);
gtk_table_attach (GTK_TABLE (table28), conf_g1circle_colbtn, 6, 7, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (conf_g1circle_colbtn), TRUE);
label393 = gtk_label_new (_("Properties"));
gtk_widget_show (label393);
gtk_frame_set_label_widget (GTK_FRAME (frame52), label393);
label392 = gtk_label_new (_("Connections"));
gtk_widget_show (label392);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook3), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook3), 4), label392);
vbox45 = gtk_vbox_new (FALSE, 4);
gtk_widget_show (vbox45);
gtk_container_add (GTK_CONTAINER (notebook3), vbox45);
gtk_container_set_border_width (GTK_CONTAINER (vbox45), 4);
hbox150 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox150);
gtk_box_pack_start (GTK_BOX (vbox45), hbox150, FALSE, FALSE, 0);
label500 = gtk_label_new (_("Remote mode:"));
gtk_widget_show (label500);
gtk_box_pack_start (GTK_BOX (hbox150), label500, FALSE, FALSE, 0);
confrem_mode_cbox = gtk_combo_box_entry_new_text ();
gtk_widget_show (confrem_mode_cbox);
gtk_box_pack_start (GTK_BOX (hbox150), confrem_mode_cbox, FALSE, TRUE, 0);
gtk_combo_box_append_text (GTK_COMBO_BOX (confrem_mode_cbox), _("No remote"));
gtk_combo_box_append_text (GTK_COMBO_BOX (confrem_mode_cbox), _("Unix pipes"));
gtk_combo_box_append_text (GTK_COMBO_BOX (confrem_mode_cbox), _("Serial port"));
label501 = gtk_label_new ("");
gtk_widget_show (label501);
gtk_box_pack_start (GTK_BOX (hbox150), label501, TRUE, TRUE, 0);
rem_notebook = gtk_notebook_new ();
gtk_widget_show (rem_notebook);
gtk_box_pack_start (GTK_BOX (vbox45), rem_notebook, TRUE, TRUE, 0);
frame57 = gtk_frame_new (NULL);
gtk_widget_show (frame57);
gtk_container_add (GTK_CONTAINER (rem_notebook), frame57);
table35 = gtk_table_new (4, 2, FALSE);
gtk_widget_show (table35);
gtk_container_add (GTK_CONTAINER (frame57), table35);
gtk_container_set_border_width (GTK_CONTAINER (table35), 4);
gtk_table_set_row_spacings (GTK_TABLE (table35), 2);
gtk_table_set_col_spacings (GTK_TABLE (table35), 4);
label480 = gtk_label_new (_("Output pipe:"));
gtk_widget_show (label480);
gtk_table_attach (GTK_TABLE (table35), label480, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label480), 0, 0.5);
label481 = gtk_label_new (_("Input pipe:"));
gtk_widget_show (label481);
gtk_table_attach (GTK_TABLE (table35), label481, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label481), 0, 0.5);
confrem_outpipe_entry = gtk_entry_new ();
gtk_widget_show (confrem_outpipe_entry);
gtk_table_attach (GTK_TABLE (table35), confrem_outpipe_entry, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
confrem_inpipe_entry = gtk_entry_new ();
gtk_widget_show (confrem_inpipe_entry);
gtk_table_attach (GTK_TABLE (table35), confrem_inpipe_entry, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
label482 = gtk_label_new (_("Timeout:"));
gtk_widget_show (label482);
gtk_table_attach (GTK_TABLE (table35), label482, 0, 1, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label482), 0, 0.5);
confrem_pipe_can_ctl_cbtn = gtk_check_button_new_with_mnemonic (_("Peripheral can control linsmith"));
gtk_widget_show (confrem_pipe_can_ctl_cbtn);
gtk_table_attach (GTK_TABLE (table35), confrem_pipe_can_ctl_cbtn, 1, 2, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
label483 = gtk_label_new ("");
gtk_widget_show (label483);
gtk_table_attach (GTK_TABLE (table35), label483, 0, 1, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label483), 0, 0.5);
hbox145 = gtk_hbox_new (FALSE, 3);
gtk_widget_show (hbox145);
gtk_table_attach (GTK_TABLE (table35), hbox145, 1, 2, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
confrem_timeout_entry = gtk_entry_new ();
gtk_widget_show (confrem_timeout_entry);
gtk_box_pack_start (GTK_BOX (hbox145), confrem_timeout_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (confrem_timeout_entry, 63, -1);
gtk_entry_set_text (GTK_ENTRY (confrem_timeout_entry), _("2000"));
label484 = gtk_label_new (_("ms "));
gtk_widget_show (label484);
gtk_box_pack_start (GTK_BOX (hbox145), label484, TRUE, TRUE, 0);
gtk_misc_set_alignment (GTK_MISC (label484), 0, 0.5);
label485 = gtk_label_new (_("Unix socket remote interface"));
gtk_widget_show (label485);
gtk_frame_set_label_widget (GTK_FRAME (frame57), label485);
label478 = gtk_label_new (_("Unix pipes"));
gtk_widget_show (label478);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (rem_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (rem_notebook), 0), label478);
frame58 = gtk_frame_new (NULL);
gtk_widget_show (frame58);
gtk_container_add (GTK_CONTAINER (rem_notebook), frame58);
table36 = gtk_table_new (3, 2, FALSE);
gtk_widget_show (table36);
gtk_container_add (GTK_CONTAINER (frame58), table36);
gtk_container_set_border_width (GTK_CONTAINER (table36), 4);
gtk_table_set_row_spacings (GTK_TABLE (table36), 2);
gtk_table_set_col_spacings (GTK_TABLE (table36), 4);
label487 = gtk_label_new (_("Serial port:"));
gtk_widget_show (label487);
gtk_table_attach (GTK_TABLE (table36), label487, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label487), 0, 0.5);
label488 = gtk_label_new (_("Port parameters:"));
gtk_widget_show (label488);
gtk_table_attach (GTK_TABLE (table36), label488, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label488), 0, 0.5);
rem_serial_port_entry = gtk_entry_new ();
gtk_widget_show (rem_serial_port_entry);
gtk_table_attach (GTK_TABLE (table36), rem_serial_port_entry, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_entry_set_text (GTK_ENTRY (rem_serial_port_entry), _("/dev/ttyS1"));
table37 = gtk_table_new (2, 4, FALSE);
gtk_widget_show (table37);
gtk_table_attach (GTK_TABLE (table36), table37, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
gtk_table_set_row_spacings (GTK_TABLE (table37), 2);
gtk_table_set_col_spacings (GTK_TABLE (table37), 6);
label493 = gtk_label_new (_("Baud:"));
gtk_widget_show (label493);
gtk_table_attach (GTK_TABLE (table37), label493, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label493), 0, 0.5);
rem_serial_baud_cbox = gtk_combo_box_entry_new_text ();
gtk_widget_show (rem_serial_baud_cbox);
gtk_table_attach (GTK_TABLE (table37), rem_serial_baud_cbox, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
gtk_widget_set_size_request (rem_serial_baud_cbox, 110, -1);
gtk_combo_box_append_text (GTK_COMBO_BOX (rem_serial_baud_cbox), _("1200"));
gtk_combo_box_append_text (GTK_COMBO_BOX (rem_serial_baud_cbox), _("2400"));
gtk_combo_box_append_text (GTK_COMBO_BOX (rem_serial_baud_cbox), _("4800"));
gtk_combo_box_append_text (GTK_COMBO_BOX (rem_serial_baud_cbox), _("9600"));
gtk_combo_box_append_text (GTK_COMBO_BOX (rem_serial_baud_cbox), _("19200"));
gtk_combo_box_append_text (GTK_COMBO_BOX (rem_serial_baud_cbox), _("38400"));
gtk_combo_box_append_text (GTK_COMBO_BOX (rem_serial_baud_cbox), _("57600"));
gtk_combo_box_append_text (GTK_COMBO_BOX (rem_serial_baud_cbox), _("76800"));
gtk_combo_box_append_text (GTK_COMBO_BOX (rem_serial_baud_cbox), _("115200"));
label494 = gtk_label_new (_("Data bits:"));
gtk_widget_show (label494);
gtk_table_attach (GTK_TABLE (table37), label494, 2, 3, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
rem_serial_data_cbox = gtk_combo_box_entry_new_text ();
gtk_widget_show (rem_serial_data_cbox);
gtk_table_attach (GTK_TABLE (table37), rem_serial_data_cbox, 3, 4, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
gtk_widget_set_size_request (rem_serial_data_cbox, 60, -1);
gtk_combo_box_append_text (GTK_COMBO_BOX (rem_serial_data_cbox), _("8"));
gtk_combo_box_append_text (GTK_COMBO_BOX (rem_serial_data_cbox), _("7"));
label495 = gtk_label_new (_("Stop bits:"));
gtk_widget_show (label495);
gtk_table_attach (GTK_TABLE (table37), label495, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
rem_serial_stops_cbox = gtk_combo_box_entry_new_text ();
gtk_widget_show (rem_serial_stops_cbox);
gtk_table_attach (GTK_TABLE (table37), rem_serial_stops_cbox, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
gtk_widget_set_size_request (rem_serial_stops_cbox, 60, -1);
gtk_combo_box_append_text (GTK_COMBO_BOX (rem_serial_stops_cbox), _("1"));
gtk_combo_box_append_text (GTK_COMBO_BOX (rem_serial_stops_cbox), _("2"));
label496 = gtk_label_new (_("Parity:"));
gtk_widget_show (label496);
gtk_table_attach (GTK_TABLE (table37), label496, 2, 3, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label496), 0, 0.5);
rem_serial_pority_cbox = gtk_combo_box_entry_new_text ();
gtk_widget_show (rem_serial_pority_cbox);
gtk_table_attach (GTK_TABLE (table37), rem_serial_pority_cbox, 3, 4, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
gtk_widget_set_size_request (rem_serial_pority_cbox, 100, -1);
gtk_combo_box_append_text (GTK_COMBO_BOX (rem_serial_pority_cbox), _("None"));
gtk_combo_box_append_text (GTK_COMBO_BOX (rem_serial_pority_cbox), _("Even"));
gtk_combo_box_append_text (GTK_COMBO_BOX (rem_serial_pority_cbox), _("Odd"));
hbox146 = gtk_hbox_new (FALSE, 3);
gtk_widget_show (hbox146);
gtk_table_attach (GTK_TABLE (table36), hbox146, 1, 2, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
rem_serial_timeout_entry = gtk_entry_new ();
gtk_widget_show (rem_serial_timeout_entry);
gtk_box_pack_start (GTK_BOX (hbox146), rem_serial_timeout_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (rem_serial_timeout_entry, 63, -1);
gtk_entry_set_text (GTK_ENTRY (rem_serial_timeout_entry), _("2000"));
label491 = gtk_label_new (_("ms "));
gtk_widget_show (label491);
gtk_box_pack_start (GTK_BOX (hbox146), label491, TRUE, TRUE, 0);
gtk_misc_set_alignment (GTK_MISC (label491), 0, 0.5);
label489 = gtk_label_new (_("Timeout:"));
gtk_widget_show (label489);
gtk_table_attach (GTK_TABLE (table36), label489, 0, 1, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label489), 0, 0.5);
label492 = gtk_label_new (_("Serial remote interface"));
gtk_widget_show (label492);
gtk_frame_set_label_widget (GTK_FRAME (frame58), label492);
label479 = gtk_label_new (_("Serial port"));
gtk_widget_show (label479);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (rem_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (rem_notebook), 1), label479);
label431 = gtk_label_new (_("Remote"));
gtk_widget_show (label431);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook3), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook3), 5), label431);
frame61 = gtk_frame_new (NULL);
gtk_widget_show (frame61);
gtk_container_add (GTK_CONTAINER (notebook3), frame61);
gtk_container_set_border_width (GTK_CONTAINER (frame61), 4);
alignment1 = gtk_alignment_new (0.5, 0.5, 1, 1);
gtk_widget_show (alignment1);
gtk_container_add (GTK_CONTAINER (frame61), alignment1);
table41 = gtk_table_new (3, 2, FALSE);
gtk_widget_show (table41);
gtk_container_add (GTK_CONTAINER (alignment1), table41);
gtk_container_set_border_width (GTK_CONTAINER (table41), 4);
gtk_table_set_row_spacings (GTK_TABLE (table41), 2);
gtk_table_set_col_spacings (GTK_TABLE (table41), 4);
label524 = gtk_label_new (_("Noise bridge type:"));
gtk_widget_show (label524);
gtk_table_attach (GTK_TABLE (table41), label524, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label524), 0, 0.5);
label525 = gtk_label_new (_("Offset capacitor:"));
gtk_widget_show (label525);
gtk_table_attach (GTK_TABLE (table41), label525, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label525), 0, 0.5);
hbox158 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox158);
gtk_table_attach (GTK_TABLE (table41), hbox158, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
conf_nb_offs_entry = gtk_entry_new ();
gtk_widget_show (conf_nb_offs_entry);
gtk_box_pack_start (GTK_BOX (hbox158), conf_nb_offs_entry, FALSE, FALSE, 0);
gtk_widget_set_size_request (conf_nb_offs_entry, 80, -1);
label526 = gtk_label_new (_("pF"));
gtk_widget_show (label526);
gtk_box_pack_start (GTK_BOX (hbox158), label526, TRUE, TRUE, 0);
gtk_misc_set_alignment (GTK_MISC (label526), 0, 0.5);
label527 = gtk_label_new (_("Range extender:"));
gtk_widget_show (label527);
gtk_table_attach (GTK_TABLE (table41), label527, 0, 1, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label527), 0, 0.5);
hbox159 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox159);
gtk_table_attach (GTK_TABLE (table41), hbox159, 1, 2, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
conf_nb_ext_entry = gtk_entry_new ();
gtk_widget_show (conf_nb_ext_entry);
gtk_box_pack_start (GTK_BOX (hbox159), conf_nb_ext_entry, FALSE, FALSE, 0);
gtk_widget_set_size_request (conf_nb_ext_entry, 80, -1);
label528 = gtk_label_new (_("Ohms"));
gtk_widget_show (label528);
gtk_box_pack_start (GTK_BOX (hbox159), label528, TRUE, TRUE, 0);
gtk_misc_set_alignment (GTK_MISC (label528), 0, 0.5);
hbox160 = gtk_hbox_new (FALSE, 0);
gtk_widget_show (hbox160);
gtk_table_attach (GTK_TABLE (table41), hbox160, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
nb_type_cbbox = gtk_combo_box_entry_new_text ();
gtk_widget_show (nb_type_cbbox);
gtk_box_pack_start (GTK_BOX (hbox160), nb_type_cbbox, TRUE, TRUE, 0);
gtk_widget_set_size_request (nb_type_cbbox, 250, -1);
gtk_combo_box_append_text (GTK_COMBO_BOX (nb_type_cbbox), _("W8BXI, Ham Radio Feb 1977"));
label530 = gtk_label_new ("");
gtk_widget_show (label530);
gtk_box_pack_start (GTK_BOX (hbox160), label530, TRUE, TRUE, 0);
label523 = gtk_label_new (_("Noise bridge"));
gtk_widget_show (label523);
gtk_frame_set_label_widget (GTK_FRAME (frame61), label523);
gtk_label_set_use_markup (GTK_LABEL (label523), TRUE);
label529 = gtk_label_new (_("Noise bridge"));
gtk_widget_show (label529);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook3), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook3), 6), label529);
vbox56 = gtk_vbox_new (FALSE, 4);
gtk_widget_show (vbox56);
gtk_container_add (GTK_CONTAINER (notebook3), vbox56);
gtk_container_set_border_width (GTK_CONTAINER (vbox56), 4);
frame48 = gtk_frame_new (NULL);
gtk_widget_show (frame48);
gtk_box_pack_start (GTK_BOX (vbox56), frame48, FALSE, TRUE, 0);
table25 = gtk_table_new (6, 2, FALSE);
gtk_widget_show (table25);
gtk_container_add (GTK_CONTAINER (frame48), table25);
gtk_container_set_border_width (GTK_CONTAINER (table25), 4);
gtk_table_set_row_spacings (GTK_TABLE (table25), 2);
gtk_table_set_col_spacings (GTK_TABLE (table25), 4);
label335 = gtk_label_new (_("Last loads file:"));
gtk_widget_show (label335);
gtk_table_attach (GTK_TABLE (table25), label335, 0, 1, 0, 1,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label335), 0, 0.5);
label336 = gtk_label_new (_("Last elements file:"));
gtk_widget_show (label336);
gtk_table_attach (GTK_TABLE (table25), label336, 0, 1, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label336), 0, 0.5);
label337 = gtk_label_new (_("Last print file:"));
gtk_widget_show (label337);
gtk_table_attach (GTK_TABLE (table25), label337, 0, 1, 2, 3,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label337), 0, 0.5);
conf_last_ld_entry = gtk_entry_new ();
gtk_widget_show (conf_last_ld_entry);
gtk_table_attach (GTK_TABLE (table25), conf_last_ld_entry, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
conf_last_el_entry = gtk_entry_new ();
gtk_widget_show (conf_last_el_entry);
gtk_table_attach (GTK_TABLE (table25), conf_last_el_entry, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
conf_last_ps_entry = gtk_entry_new ();
gtk_widget_show (conf_last_ps_entry);
gtk_table_attach (GTK_TABLE (table25), conf_last_ps_entry, 1, 2, 2, 3,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
label557 = gtk_label_new (_("Last CSV file:"));
gtk_widget_show (label557);
gtk_table_attach (GTK_TABLE (table25), label557, 0, 1, 3, 4,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label557), 0, 0.5);
conf_last_csv_entry = gtk_entry_new ();
gtk_widget_show (conf_last_csv_entry);
gtk_table_attach (GTK_TABLE (table25), conf_last_csv_entry, 1, 2, 3, 4,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
label555 = gtk_label_new (_("CSV field separator:"));
gtk_widget_show (label555);
gtk_table_attach (GTK_TABLE (table25), label555, 0, 1, 4, 5,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
hbox169 = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox169);
gtk_table_attach (GTK_TABLE (table25), hbox169, 1, 2, 4, 5,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (GTK_FILL), 0, 0);
conf_csv_sep_entry = gtk_entry_new ();
gtk_widget_show (conf_csv_sep_entry);
gtk_box_pack_start (GTK_BOX (hbox169), conf_csv_sep_entry, FALSE, TRUE, 0);
gtk_widget_set_size_request (conf_csv_sep_entry, 20, -1);
gtk_entry_set_max_length (GTK_ENTRY (conf_csv_sep_entry), 1);
gtk_entry_set_text (GTK_ENTRY (conf_csv_sep_entry), _(";"));
label556 = gtk_label_new (_("(a single character, normally ',' or ';')"));
gtk_widget_show (label556);
gtk_box_pack_start (GTK_BOX (hbox169), label556, FALSE, FALSE, 0);
label564 = gtk_label_new (_("Last s2p file:"));
gtk_widget_show (label564);
gtk_table_attach (GTK_TABLE (table25), label564, 0, 1, 5, 6,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_misc_set_alignment (GTK_MISC (label564), 0, 0.5);
conf_last_s2p_entry = gtk_entry_new ();
gtk_widget_show (conf_last_s2p_entry);
gtk_table_attach (GTK_TABLE (table25), conf_last_s2p_entry, 1, 2, 5, 6,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
label334 = gtk_label_new (_("Files"));
gtk_widget_show (label334);
gtk_frame_set_label_widget (GTK_FRAME (frame48), label334);
label539 = gtk_label_new (_("Files"));
gtk_widget_show (label539);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook3), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook3), 7), label539);
hbox39 = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox39);
gtk_box_pack_start (GTK_BOX (vbox23), hbox39, FALSE, TRUE, 0);
gtk_container_set_border_width (GTK_CONTAINER (hbox39), 2);
label77 = gtk_label_new ("");
gtk_widget_show (label77);
gtk_box_pack_start (GTK_BOX (hbox39), label77, TRUE, TRUE, 0);
conf_cancel_btn = gtk_button_new_with_mnemonic (_("Cancel"));
gtk_widget_show (conf_cancel_btn);
gtk_box_pack_start (GTK_BOX (hbox39), conf_cancel_btn, FALSE, FALSE, 0);
gtk_widget_set_size_request (conf_cancel_btn, 80, -1);
conf_ok_btn = gtk_button_new_with_mnemonic (_("Ok"));
gtk_widget_show (conf_ok_btn);
gtk_box_pack_start (GTK_BOX (hbox39), conf_ok_btn, FALSE, FALSE, 0);
gtk_widget_set_size_request (conf_ok_btn, 80, -1);
g_signal_connect ((gpointer) ConfigWindow, "realize",
G_CALLBACK (on_ConfigWindow_realize),
NULL);
g_signal_connect ((gpointer) ConfigWindow, "destroy_event",
G_CALLBACK (on_ConfigWindow_destroy_event),
NULL);
g_signal_connect ((gpointer) nb_type_cbbox, "changed",
G_CALLBACK (on_nb_type_cbbox_changed),
NULL);
g_signal_connect ((gpointer) nb_type_cbbox, "realize",
G_CALLBACK (on_nb_type_cbbox_realize),
NULL);
g_signal_connect ((gpointer) conf_cancel_btn, "clicked",
G_CALLBACK (on_conf_cancel_btn_clicked),
NULL);
g_signal_connect ((gpointer) conf_ok_btn, "clicked",
G_CALLBACK (on_conf_ok_btn_clicked),
NULL);
/* Store pointers to all widgets, for use by lookup_widget(). */
GLADE_HOOKUP_OBJECT_NO_REF (ConfigWindow, ConfigWindow, "ConfigWindow");
GLADE_HOOKUP_OBJECT (ConfigWindow, vbox23, "vbox23");
GLADE_HOOKUP_OBJECT (ConfigWindow, notebook3, "notebook3");
GLADE_HOOKUP_OBJECT (ConfigWindow, vbox41, "vbox41");
GLADE_HOOKUP_OBJECT (ConfigWindow, frame19, "frame19");
GLADE_HOOKUP_OBJECT (ConfigWindow, table7, "table7");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_swr_cbtn, "conf_swr_cbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox124, "hbox124");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_swr_entry, "conf_swr_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label361, "label361");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_g1_cbtn, "conf_g1_cbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label359, "label359");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_complex_entry, "conf_complex_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, use_bitmap_cbtn, "use_bitmap_cbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label457, "label457");
GLADE_HOOKUP_OBJECT (ConfigWindow, label456, "label456");
GLADE_HOOKUP_OBJECT (ConfigWindow, label455, "label455");
GLADE_HOOKUP_OBJECT (ConfigWindow, label532, "label532");
GLADE_HOOKUP_OBJECT (ConfigWindow, label531, "label531");
GLADE_HOOKUP_OBJECT (ConfigWindow, label459, "label459");
GLADE_HOOKUP_OBJECT (ConfigWindow, label458, "label458");
GLADE_HOOKUP_OBJECT (ConfigWindow, label533, "label533");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_prec_mhz_spbtn, "conf_prec_mhz_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_prec_imp_spbtn, "conf_prec_imp_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_prec_adm_spbtn, "conf_prec_adm_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label534, "label534");
GLADE_HOOKUP_OBJECT (ConfigWindow, vseparator12, "vseparator12");
GLADE_HOOKUP_OBJECT (ConfigWindow, vseparator11, "vseparator11");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_always_imp_cbtn, "conf_always_imp_cbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label535, "label535");
GLADE_HOOKUP_OBJECT (ConfigWindow, label78, "label78");
GLADE_HOOKUP_OBJECT (ConfigWindow, frame62, "frame62");
GLADE_HOOKUP_OBJECT (ConfigWindow, alignment2, "alignment2");
GLADE_HOOKUP_OBJECT (ConfigWindow, table42, "table42");
GLADE_HOOKUP_OBJECT (ConfigWindow, label541, "label541");
GLADE_HOOKUP_OBJECT (ConfigWindow, label542, "label542");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_cursor_font_fbtn, "conf_cursor_font_fbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_results_font_fbtn, "conf_results_font_fbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label540, "label540");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_presmhz_spbtn, "conf_presmhz_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, vbox40, "vbox40");
GLADE_HOOKUP_OBJECT (ConfigWindow, frame44, "frame44");
GLADE_HOOKUP_OBJECT (ConfigWindow, table21, "table21");
GLADE_HOOKUP_OBJECT (ConfigWindow, label273, "label273");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_chartbg_entry, "conf_chartbg_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label274, "label274");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox100, "hbox100");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_radius_entry, "conf_radius_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label276, "label276");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_xoffs_entry, "conf_xoffs_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label277, "label277");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_yoffs_entry, "conf_yoffs_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label272, "label272");
GLADE_HOOKUP_OBJECT (ConfigWindow, frame53, "frame53");
GLADE_HOOKUP_OBJECT (ConfigWindow, table29, "table29");
GLADE_HOOKUP_OBJECT (ConfigWindow, label414, "label414");
GLADE_HOOKUP_OBJECT (ConfigWindow, label415, "label415");
GLADE_HOOKUP_OBJECT (ConfigWindow, label418, "label418");
GLADE_HOOKUP_OBJECT (ConfigWindow, label419, "label419");
GLADE_HOOKUP_OBJECT (ConfigWindow, label420, "label420");
GLADE_HOOKUP_OBJECT (ConfigWindow, label421, "label421");
GLADE_HOOKUP_OBJECT (ConfigWindow, label424, "label424");
GLADE_HOOKUP_OBJECT (ConfigWindow, vseparator14, "vseparator14");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_r_arc_colbtn, "conf_r_arc_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_x_arc_colbtn, "conf_x_arc_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_r_arc_bold_colbtn, "conf_r_arc_bold_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_x_arc_bold_colbtn, "conf_x_arc_bold_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label536, "label536");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_font_colbtn, "conf_font_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_font_fpick, "conf_font_fpick");
GLADE_HOOKUP_OBJECT (ConfigWindow, hseparator10, "hseparator10");
GLADE_HOOKUP_OBJECT (ConfigWindow, label538, "label538");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_vecbg_colbtn, "conf_vecbg_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_vecbg_size_entry, "conf_vecbg_size_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label427, "label427");
GLADE_HOOKUP_OBJECT (ConfigWindow, label537, "label537");
GLADE_HOOKUP_OBJECT (ConfigWindow, vseparator15, "vseparator15");
GLADE_HOOKUP_OBJECT (ConfigWindow, label565, "label565");
GLADE_HOOKUP_OBJECT (ConfigWindow, label566, "label566");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_g1_colbtn, "conf_g1_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_swr_colbtn, "conf_swr_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label426, "label426");
GLADE_HOOKUP_OBJECT (ConfigWindow, label208, "label208");
GLADE_HOOKUP_OBJECT (ConfigWindow, vbox42, "vbox42");
GLADE_HOOKUP_OBJECT (ConfigWindow, frame46, "frame46");
GLADE_HOOKUP_OBJECT (ConfigWindow, table23, "table23");
GLADE_HOOKUP_OBJECT (ConfigWindow, label311, "label311");
GLADE_HOOKUP_OBJECT (ConfigWindow, label312, "label312");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox111, "hbox111");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_chartsize_entry, "prt_chartsize_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label313, "label313");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_papersize_combo, "prt_papersize_combo");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_papersize_entry, "prt_papersize_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, vseparator5, "vseparator5");
GLADE_HOOKUP_OBJECT (ConfigWindow, label316, "label316");
GLADE_HOOKUP_OBJECT (ConfigWindow, label321, "label321");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox112, "hbox112");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_mleft_entry, "prt_mleft_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label318, "label318");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox113, "hbox113");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_mbottom_entry, "prt_mbottom_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label323, "label323");
GLADE_HOOKUP_OBJECT (ConfigWindow, label317, "label317");
GLADE_HOOKUP_OBJECT (ConfigWindow, label322, "label322");
GLADE_HOOKUP_OBJECT (ConfigWindow, label310, "label310");
GLADE_HOOKUP_OBJECT (ConfigWindow, frame49, "frame49");
GLADE_HOOKUP_OBJECT (ConfigWindow, table26, "table26");
GLADE_HOOKUP_OBJECT (ConfigWindow, label340, "label340");
GLADE_HOOKUP_OBJECT (ConfigWindow, label341, "label341");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox109, "hbox109");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_x_arc_bold_colbtn, "prt_x_arc_bold_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_x_arc_bold_spbtn, "prt_x_arc_bold_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label305, "label305");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox108, "hbox108");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_r_arc_bold_colbtn, "prt_r_arc_bold_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_r_arc_bold_spbtn, "prt_r_arc_bold_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label304, "label304");
GLADE_HOOKUP_OBJECT (ConfigWindow, label347, "label347");
GLADE_HOOKUP_OBJECT (ConfigWindow, label348, "label348");
GLADE_HOOKUP_OBJECT (ConfigWindow, label349, "label349");
GLADE_HOOKUP_OBJECT (ConfigWindow, label350, "label350");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox122, "hbox122");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_r_arc_colbtn, "prt_r_arc_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_r_arc_spbtn, "prt_r_arc_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label351, "label351");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox123, "hbox123");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_x_arc_colbtn, "prt_x_arc_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_x_arc_spbtn, "prt_x_arc_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label352, "label352");
GLADE_HOOKUP_OBJECT (ConfigWindow, label326, "label326");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox171, "hbox171");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_swr_colbtn, "prt_swr_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_swr_spbtn, "prt_swr_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label568, "label568");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox116, "hbox116");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_font_colbtn, "prt_font_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_fontsize_spbtn, "prt_fontsize_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label327, "label327");
GLADE_HOOKUP_OBJECT (ConfigWindow, hseparator9, "hseparator9");
GLADE_HOOKUP_OBJECT (ConfigWindow, vseparator16, "vseparator16");
GLADE_HOOKUP_OBJECT (ConfigWindow, label570, "label570");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox170, "hbox170");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_g1_colbtn, "prt_g1_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_g1_spbtn, "prt_g1_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label567, "label567");
GLADE_HOOKUP_OBJECT (ConfigWindow, label569, "label569");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_fontbtn, "prt_fontbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label339, "label339");
GLADE_HOOKUP_OBJECT (ConfigWindow, label338, "label338");
GLADE_HOOKUP_OBJECT (ConfigWindow, frame51, "frame51");
GLADE_HOOKUP_OBJECT (ConfigWindow, table27, "table27");
GLADE_HOOKUP_OBJECT (ConfigWindow, label376, "label376");
GLADE_HOOKUP_OBJECT (ConfigWindow, label375, "label375");
GLADE_HOOKUP_OBJECT (ConfigWindow, label374, "label374");
GLADE_HOOKUP_OBJECT (ConfigWindow, label377, "label377");
GLADE_HOOKUP_OBJECT (ConfigWindow, label379, "label379");
GLADE_HOOKUP_OBJECT (ConfigWindow, label380, "label380");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox128, "hbox128");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_load_colbtn, "conf_load_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_load_spbtn, "conf_load_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox129, "hbox129");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_point_colbtn, "conf_point_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_point_spbtn, "conf_point_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox130, "hbox130");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_final_colbtn, "conf_final_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_final_spbtn, "conf_final_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label378, "label378");
GLADE_HOOKUP_OBJECT (ConfigWindow, vseparator7, "vseparator7");
GLADE_HOOKUP_OBJECT (ConfigWindow, label382, "label382");
GLADE_HOOKUP_OBJECT (ConfigWindow, label383, "label383");
GLADE_HOOKUP_OBJECT (ConfigWindow, label384, "label384");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox103, "hbox103");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_ldfill_colbtn, "prt_ldfill_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_lddiam_spbtn, "prt_lddiam_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox104, "hbox104");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_intfill_colbtn, "prt_intfill_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_intdiam_spbtn, "prt_intdiam_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox105, "hbox105");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_finalfill_colbtn, "prt_finalfill_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_finaldiam_spbtn, "prt_finaldiam_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label385, "label385");
GLADE_HOOKUP_OBJECT (ConfigWindow, label386, "label386");
GLADE_HOOKUP_OBJECT (ConfigWindow, label387, "label387");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox106, "hbox106");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_ldbrdr_colbtn, "prt_ldbrdr_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_ldbrdr_spbtn, "prt_ldbrdr_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox107, "hbox107");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_intbrdr_colbtn, "prt_intbrdr_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_intbrdr_spbtn, "prt_intbrdr_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox110, "hbox110");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_finalbrdr_colbtn, "prt_finalbrdr_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_finalbrdr_spbtn, "prt_finalbrdr_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label381, "label381");
GLADE_HOOKUP_OBJECT (ConfigWindow, label388, "label388");
GLADE_HOOKUP_OBJECT (ConfigWindow, label389, "label389");
GLADE_HOOKUP_OBJECT (ConfigWindow, label390, "label390");
GLADE_HOOKUP_OBJECT (ConfigWindow, label391, "label391");
GLADE_HOOKUP_OBJECT (ConfigWindow, label373, "label373");
GLADE_HOOKUP_OBJECT (ConfigWindow, label372, "label372");
GLADE_HOOKUP_OBJECT (ConfigWindow, frame52, "frame52");
GLADE_HOOKUP_OBJECT (ConfigWindow, table28, "table28");
GLADE_HOOKUP_OBJECT (ConfigWindow, label400, "label400");
GLADE_HOOKUP_OBJECT (ConfigWindow, label398, "label398");
GLADE_HOOKUP_OBJECT (ConfigWindow, label394, "label394");
GLADE_HOOKUP_OBJECT (ConfigWindow, label395, "label395");
GLADE_HOOKUP_OBJECT (ConfigWindow, label396, "label396");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox101, "hbox101");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_z_arc_colbtn, "prt_z_arc_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_z_arc_spbtn, "prt_z_arc_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox102, "hbox102");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_y_arc_colbtn, "prt_y_arc_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_y_arc_spbtn, "prt_y_arc_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox121, "hbox121");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_line_arc_colbtn, "prt_line_arc_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_line_arc_spbtn, "prt_line_arc_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, vseparator8, "vseparator8");
GLADE_HOOKUP_OBJECT (ConfigWindow, label410, "label410");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox126, "hbox126");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_zy_line_colbtn, "prt_zy_line_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_zy_line_spbtn, "prt_zy_line_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox119, "hbox119");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_swrcircle_colbtn, "prt_swrcircle_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_swrcircle_spbtn, "prt_swrcircle_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox127, "hbox127");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_g1circle_colbtn, "prt_g1circle_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, prt_g1circle_spbtn, "prt_g1circle_spbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label408, "label408");
GLADE_HOOKUP_OBJECT (ConfigWindow, vseparator9, "vseparator9");
GLADE_HOOKUP_OBJECT (ConfigWindow, label409, "label409");
GLADE_HOOKUP_OBJECT (ConfigWindow, label399, "label399");
GLADE_HOOKUP_OBJECT (ConfigWindow, label402, "label402");
GLADE_HOOKUP_OBJECT (ConfigWindow, label403, "label403");
GLADE_HOOKUP_OBJECT (ConfigWindow, label411, "label411");
GLADE_HOOKUP_OBJECT (ConfigWindow, vseparator10, "vseparator10");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_z_arc_colbtn, "conf_z_arc_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_y_arc_colbtn, "conf_y_arc_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_line_arc_colbtn, "conf_line_arc_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_zy_line_colbtn, "conf_zy_line_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_swrcircle_colbtn, "conf_swrcircle_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_g1circle_colbtn, "conf_g1circle_colbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label393, "label393");
GLADE_HOOKUP_OBJECT (ConfigWindow, label392, "label392");
GLADE_HOOKUP_OBJECT (ConfigWindow, vbox45, "vbox45");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox150, "hbox150");
GLADE_HOOKUP_OBJECT (ConfigWindow, label500, "label500");
GLADE_HOOKUP_OBJECT (ConfigWindow, confrem_mode_cbox, "confrem_mode_cbox");
GLADE_HOOKUP_OBJECT (ConfigWindow, label501, "label501");
GLADE_HOOKUP_OBJECT (ConfigWindow, rem_notebook, "rem_notebook");
GLADE_HOOKUP_OBJECT (ConfigWindow, frame57, "frame57");
GLADE_HOOKUP_OBJECT (ConfigWindow, table35, "table35");
GLADE_HOOKUP_OBJECT (ConfigWindow, label480, "label480");
GLADE_HOOKUP_OBJECT (ConfigWindow, label481, "label481");
GLADE_HOOKUP_OBJECT (ConfigWindow, confrem_outpipe_entry, "confrem_outpipe_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, confrem_inpipe_entry, "confrem_inpipe_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label482, "label482");
GLADE_HOOKUP_OBJECT (ConfigWindow, confrem_pipe_can_ctl_cbtn, "confrem_pipe_can_ctl_cbtn");
GLADE_HOOKUP_OBJECT (ConfigWindow, label483, "label483");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox145, "hbox145");
GLADE_HOOKUP_OBJECT (ConfigWindow, confrem_timeout_entry, "confrem_timeout_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label484, "label484");
GLADE_HOOKUP_OBJECT (ConfigWindow, label485, "label485");
GLADE_HOOKUP_OBJECT (ConfigWindow, label478, "label478");
GLADE_HOOKUP_OBJECT (ConfigWindow, frame58, "frame58");
GLADE_HOOKUP_OBJECT (ConfigWindow, table36, "table36");
GLADE_HOOKUP_OBJECT (ConfigWindow, label487, "label487");
GLADE_HOOKUP_OBJECT (ConfigWindow, label488, "label488");
GLADE_HOOKUP_OBJECT (ConfigWindow, rem_serial_port_entry, "rem_serial_port_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, table37, "table37");
GLADE_HOOKUP_OBJECT (ConfigWindow, label493, "label493");
GLADE_HOOKUP_OBJECT (ConfigWindow, rem_serial_baud_cbox, "rem_serial_baud_cbox");
GLADE_HOOKUP_OBJECT (ConfigWindow, label494, "label494");
GLADE_HOOKUP_OBJECT (ConfigWindow, rem_serial_data_cbox, "rem_serial_data_cbox");
GLADE_HOOKUP_OBJECT (ConfigWindow, label495, "label495");
GLADE_HOOKUP_OBJECT (ConfigWindow, rem_serial_stops_cbox, "rem_serial_stops_cbox");
GLADE_HOOKUP_OBJECT (ConfigWindow, label496, "label496");
GLADE_HOOKUP_OBJECT (ConfigWindow, rem_serial_pority_cbox, "rem_serial_pority_cbox");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox146, "hbox146");
GLADE_HOOKUP_OBJECT (ConfigWindow, rem_serial_timeout_entry, "rem_serial_timeout_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label491, "label491");
GLADE_HOOKUP_OBJECT (ConfigWindow, label489, "label489");
GLADE_HOOKUP_OBJECT (ConfigWindow, label492, "label492");
GLADE_HOOKUP_OBJECT (ConfigWindow, label479, "label479");
GLADE_HOOKUP_OBJECT (ConfigWindow, label431, "label431");
GLADE_HOOKUP_OBJECT (ConfigWindow, frame61, "frame61");
GLADE_HOOKUP_OBJECT (ConfigWindow, alignment1, "alignment1");
GLADE_HOOKUP_OBJECT (ConfigWindow, table41, "table41");
GLADE_HOOKUP_OBJECT (ConfigWindow, label524, "label524");
GLADE_HOOKUP_OBJECT (ConfigWindow, label525, "label525");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox158, "hbox158");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_nb_offs_entry, "conf_nb_offs_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label526, "label526");
GLADE_HOOKUP_OBJECT (ConfigWindow, label527, "label527");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox159, "hbox159");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_nb_ext_entry, "conf_nb_ext_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label528, "label528");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox160, "hbox160");
GLADE_HOOKUP_OBJECT (ConfigWindow, nb_type_cbbox, "nb_type_cbbox");
GLADE_HOOKUP_OBJECT (ConfigWindow, label530, "label530");
GLADE_HOOKUP_OBJECT (ConfigWindow, label523, "label523");
GLADE_HOOKUP_OBJECT (ConfigWindow, label529, "label529");
GLADE_HOOKUP_OBJECT (ConfigWindow, vbox56, "vbox56");
GLADE_HOOKUP_OBJECT (ConfigWindow, frame48, "frame48");
GLADE_HOOKUP_OBJECT (ConfigWindow, table25, "table25");
GLADE_HOOKUP_OBJECT (ConfigWindow, label335, "label335");
GLADE_HOOKUP_OBJECT (ConfigWindow, label336, "label336");
GLADE_HOOKUP_OBJECT (ConfigWindow, label337, "label337");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_last_ld_entry, "conf_last_ld_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_last_el_entry, "conf_last_el_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_last_ps_entry, "conf_last_ps_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label557, "label557");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_last_csv_entry, "conf_last_csv_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label555, "label555");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox169, "hbox169");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_csv_sep_entry, "conf_csv_sep_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label556, "label556");
GLADE_HOOKUP_OBJECT (ConfigWindow, label564, "label564");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_last_s2p_entry, "conf_last_s2p_entry");
GLADE_HOOKUP_OBJECT (ConfigWindow, label334, "label334");
GLADE_HOOKUP_OBJECT (ConfigWindow, label539, "label539");
GLADE_HOOKUP_OBJECT (ConfigWindow, hbox39, "hbox39");
GLADE_HOOKUP_OBJECT (ConfigWindow, label77, "label77");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_cancel_btn, "conf_cancel_btn");
GLADE_HOOKUP_OBJECT (ConfigWindow, conf_ok_btn, "conf_ok_btn");
return ConfigWindow;
}
GtkWidget*
create_CableWindow (void)
{
GtkWidget *CableWindow;
GtkWidget *vbox52;
GtkWidget *scrolledwindow8;
GtkWidget *cable_view;
GtkWidget *hbox140;
GtkWidget *label460;
GtkWidget *cable_cancel_btn;
GtkWidget *cable_accept_btn;
CableWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (CableWindow), _("Cable table"));
vbox52 = gtk_vbox_new (FALSE, 4);
gtk_widget_show (vbox52);
gtk_container_add (GTK_CONTAINER (CableWindow), vbox52);
gtk_container_set_border_width (GTK_CONTAINER (vbox52), 4);
scrolledwindow8 = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_show (scrolledwindow8);
gtk_box_pack_start (GTK_BOX (vbox52), scrolledwindow8, TRUE, TRUE, 0);
gtk_widget_set_size_request (scrolledwindow8, 450, 209);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow8), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
cable_view = gtk_tree_view_new ();
gtk_widget_show (cable_view);
gtk_container_add (GTK_CONTAINER (scrolledwindow8), cable_view);
hbox140 = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox140);
gtk_box_pack_start (GTK_BOX (vbox52), hbox140, FALSE, TRUE, 0);
label460 = gtk_label_new ("");
gtk_widget_show (label460);
gtk_box_pack_start (GTK_BOX (hbox140), label460, TRUE, TRUE, 0);
cable_cancel_btn = gtk_button_new_with_mnemonic (_(" Cancel "));
gtk_widget_show (cable_cancel_btn);
gtk_box_pack_start (GTK_BOX (hbox140), cable_cancel_btn, FALSE, FALSE, 0);
cable_accept_btn = gtk_button_new_with_mnemonic (_(" Accept "));
gtk_widget_show (cable_accept_btn);
gtk_box_pack_start (GTK_BOX (hbox140), cable_accept_btn, FALSE, FALSE, 0);
g_signal_connect ((gpointer) CableWindow, "realize",
G_CALLBACK (on_CableWindow_realize),
NULL);
g_signal_connect ((gpointer) cable_view, "cursor_changed",
G_CALLBACK (on_cable_view_cursor_changed),
NULL);
g_signal_connect ((gpointer) cable_cancel_btn, "clicked",
G_CALLBACK (on_cable_cancel_btn_clicked),
NULL);
g_signal_connect ((gpointer) cable_accept_btn, "clicked",
G_CALLBACK (on_cable_accept_btn_clicked),
NULL);
/* Store pointers to all widgets, for use by lookup_widget(). */
GLADE_HOOKUP_OBJECT_NO_REF (CableWindow, CableWindow, "CableWindow");
GLADE_HOOKUP_OBJECT (CableWindow, vbox52, "vbox52");
GLADE_HOOKUP_OBJECT (CableWindow, scrolledwindow8, "scrolledwindow8");
GLADE_HOOKUP_OBJECT (CableWindow, cable_view, "cable_view");
GLADE_HOOKUP_OBJECT (CableWindow, hbox140, "hbox140");
GLADE_HOOKUP_OBJECT (CableWindow, label460, "label460");
GLADE_HOOKUP_OBJECT (CableWindow, cable_cancel_btn, "cable_cancel_btn");
GLADE_HOOKUP_OBJECT (CableWindow, cable_accept_btn, "cable_accept_btn");
return CableWindow;
}
GtkWidget*
create_Imports2pWindow (void)
{
GtkWidget *Imports2pWindow;
GtkWidget *vbox54;
GtkWidget *notebook7;
GtkWidget *vbox55;
GtkWidget *hbox163;
GtkWidget *hbox164;
GtkWidget *label547;
GtkWidget *import_s2p_freq_lbl;
GtkWidget *hbox165;
GtkWidget *label548;
GtkWidget *import_s2p_param_lbl;
GtkWidget *hbox166;
GtkWidget *label549;
GtkWidget *import_s2p_format_lbl;
GtkWidget *hbox168;
GtkWidget *label550;
GtkWidget *import_s2p_imped_lbl;
GtkWidget *scrolledwindow11;
GtkWidget *import_s2p_treeview;
GtkWidget *hbox162;
GtkWidget *label544;
GtkWidget *import_s2p_sel_all_btn;
GtkWidget *import_s2p_sel_none_btn;
GtkWidget *import_s2p_sel_invert_btn;
GtkWidget *label562;
GtkWidget *import_s2p_version_lbl;
GtkWidget *label546;
GtkWidget *scrolledwindow10;
GtkWidget *import_s2p_textview;
GtkWidget *label545;
GtkWidget *hbox161;
GtkWidget *label543;
GtkWidget *import_s2p_cancel_btn;
GtkWidget *import_s2p_impS11_btn;
GtkWidget *import_s2p_impS22_btn;
Imports2pWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (Imports2pWindow), _("Import"));
vbox54 = gtk_vbox_new (FALSE, 4);
gtk_widget_show (vbox54);
gtk_container_add (GTK_CONTAINER (Imports2pWindow), vbox54);
gtk_widget_set_size_request (vbox54, 600, 300);
notebook7 = gtk_notebook_new ();
gtk_widget_show (notebook7);
gtk_box_pack_start (GTK_BOX (vbox54), notebook7, TRUE, TRUE, 0);
gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook7), FALSE);
vbox55 = gtk_vbox_new (FALSE, 4);
gtk_widget_show (vbox55);
gtk_container_add (GTK_CONTAINER (notebook7), vbox55);
gtk_container_set_border_width (GTK_CONTAINER (vbox55), 4);
hbox163 = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox163);
gtk_box_pack_start (GTK_BOX (vbox55), hbox163, FALSE, FALSE, 0);
hbox164 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox164);
gtk_box_pack_start (GTK_BOX (hbox163), hbox164, TRUE, TRUE, 0);
label547 = gtk_label_new (_("Freq unit:"));
gtk_widget_show (label547);
gtk_box_pack_start (GTK_BOX (hbox164), label547, FALSE, FALSE, 0);
import_s2p_freq_lbl = gtk_label_new (_("GHz"));
gtk_widget_show (import_s2p_freq_lbl);
gtk_box_pack_start (GTK_BOX (hbox164), import_s2p_freq_lbl, TRUE, TRUE, 0);
gtk_label_set_use_markup (GTK_LABEL (import_s2p_freq_lbl), TRUE);
gtk_misc_set_alignment (GTK_MISC (import_s2p_freq_lbl), 0, 0.5);
hbox165 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox165);
gtk_box_pack_start (GTK_BOX (hbox163), hbox165, TRUE, TRUE, 0);
label548 = gtk_label_new (_("Param:"));
gtk_widget_show (label548);
gtk_box_pack_start (GTK_BOX (hbox165), label548, FALSE, FALSE, 0);
import_s2p_param_lbl = gtk_label_new (_("S"));
gtk_widget_show (import_s2p_param_lbl);
gtk_box_pack_start (GTK_BOX (hbox165), import_s2p_param_lbl, TRUE, TRUE, 0);
gtk_label_set_use_markup (GTK_LABEL (import_s2p_param_lbl), TRUE);
gtk_misc_set_alignment (GTK_MISC (import_s2p_param_lbl), 0, 0.5);
hbox166 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox166);
gtk_box_pack_start (GTK_BOX (hbox163), hbox166, TRUE, TRUE, 0);
label549 = gtk_label_new (_("Format:"));
gtk_widget_show (label549);
gtk_box_pack_start (GTK_BOX (hbox166), label549, FALSE, FALSE, 0);
import_s2p_format_lbl = gtk_label_new (_("MA"));
gtk_widget_show (import_s2p_format_lbl);
gtk_box_pack_start (GTK_BOX (hbox166), import_s2p_format_lbl, TRUE, TRUE, 0);
gtk_label_set_use_markup (GTK_LABEL (import_s2p_format_lbl), TRUE);
gtk_misc_set_alignment (GTK_MISC (import_s2p_format_lbl), 0, 0.5);
hbox168 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox168);
gtk_box_pack_start (GTK_BOX (hbox163), hbox168, TRUE, TRUE, 0);
label550 = gtk_label_new (_("Zo:"));
gtk_widget_show (label550);
gtk_box_pack_start (GTK_BOX (hbox168), label550, FALSE, FALSE, 0);
gtk_label_set_use_markup (GTK_LABEL (label550), TRUE);
import_s2p_imped_lbl = gtk_label_new (_("50"));
gtk_widget_show (import_s2p_imped_lbl);
gtk_box_pack_start (GTK_BOX (hbox168), import_s2p_imped_lbl, TRUE, TRUE, 0);
gtk_label_set_use_markup (GTK_LABEL (import_s2p_imped_lbl), TRUE);
gtk_misc_set_alignment (GTK_MISC (import_s2p_imped_lbl), 0, 0.5);
scrolledwindow11 = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_show (scrolledwindow11);
gtk_box_pack_start (GTK_BOX (vbox55), scrolledwindow11, TRUE, TRUE, 0);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow11), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow11), GTK_SHADOW_IN);
import_s2p_treeview = gtk_tree_view_new ();
gtk_widget_show (import_s2p_treeview);
gtk_container_add (GTK_CONTAINER (scrolledwindow11), import_s2p_treeview);
hbox162 = gtk_hbox_new (FALSE, 4);
gtk_widget_show (hbox162);
gtk_box_pack_start (GTK_BOX (vbox55), hbox162, FALSE, TRUE, 0);
label544 = gtk_label_new (_("Select:"));
gtk_widget_show (label544);
gtk_box_pack_start (GTK_BOX (hbox162), label544, FALSE, FALSE, 0);
import_s2p_sel_all_btn = gtk_button_new_with_mnemonic (_("All"));
gtk_widget_show (import_s2p_sel_all_btn);
gtk_box_pack_start (GTK_BOX (hbox162), import_s2p_sel_all_btn, FALSE, FALSE, 0);
gtk_widget_set_size_request (import_s2p_sel_all_btn, 60, -1);
import_s2p_sel_none_btn = gtk_button_new_with_mnemonic (_("None"));
gtk_widget_show (import_s2p_sel_none_btn);
gtk_box_pack_start (GTK_BOX (hbox162), import_s2p_sel_none_btn, FALSE, FALSE, 0);
gtk_widget_set_size_request (import_s2p_sel_none_btn, 60, -1);
import_s2p_sel_invert_btn = gtk_button_new_with_mnemonic (_("Invert"));
gtk_widget_show (import_s2p_sel_invert_btn);
gtk_box_pack_start (GTK_BOX (hbox162), import_s2p_sel_invert_btn, FALSE, FALSE, 0);
gtk_widget_set_size_request (import_s2p_sel_invert_btn, 60, -1);
label562 = gtk_label_new (_("File version:"));
gtk_widget_show (label562);
gtk_box_pack_start (GTK_BOX (hbox162), label562, TRUE, TRUE, 0);
gtk_label_set_justify (GTK_LABEL (label562), GTK_JUSTIFY_CENTER);
gtk_misc_set_alignment (GTK_MISC (label562), 1, 0.5);
import_s2p_version_lbl = gtk_label_new (_("1.0"));
gtk_widget_show (import_s2p_version_lbl);
gtk_box_pack_start (GTK_BOX (hbox162), import_s2p_version_lbl, FALSE, FALSE, 0);
gtk_label_set_use_markup (GTK_LABEL (import_s2p_version_lbl), TRUE);
label546 = gtk_label_new (_("Data"));
gtk_widget_show (label546);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook7), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook7), 0), label546);
scrolledwindow10 = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_show (scrolledwindow10);
gtk_container_add (GTK_CONTAINER (notebook7), scrolledwindow10);
gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow10), 4);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow10), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow10), GTK_SHADOW_IN);
import_s2p_textview = gtk_text_view_new ();
gtk_widget_show (import_s2p_textview);
gtk_container_add (GTK_CONTAINER (scrolledwindow10), import_s2p_textview);
label545 = gtk_label_new (_("Comments"));
gtk_widget_show (label545);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook7), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook7), 1), label545);
hbox161 = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox161);
gtk_box_pack_start (GTK_BOX (vbox54), hbox161, FALSE, TRUE, 0);
label543 = gtk_label_new ("");
gtk_widget_show (label543);
gtk_box_pack_start (GTK_BOX (hbox161), label543, TRUE, TRUE, 0);
import_s2p_cancel_btn = gtk_button_new_with_mnemonic (_("_Cancel"));
gtk_widget_show (import_s2p_cancel_btn);
gtk_box_pack_start (GTK_BOX (hbox161), import_s2p_cancel_btn, FALSE, FALSE, 0);
gtk_widget_set_size_request (import_s2p_cancel_btn, 80, -1);
import_s2p_impS11_btn = gtk_button_new_with_mnemonic (_("Import S_11"));
gtk_widget_show (import_s2p_impS11_btn);
gtk_box_pack_start (GTK_BOX (hbox161), import_s2p_impS11_btn, FALSE, FALSE, 0);
gtk_widget_set_size_request (import_s2p_impS11_btn, 120, -1);
gtk_widget_set_sensitive (import_s2p_impS11_btn, FALSE);
import_s2p_impS22_btn = gtk_button_new_with_mnemonic (_("Import S_22"));
gtk_widget_show (import_s2p_impS22_btn);
gtk_box_pack_start (GTK_BOX (hbox161), import_s2p_impS22_btn, FALSE, FALSE, 0);
gtk_widget_set_size_request (import_s2p_impS22_btn, 120, -1);
gtk_widget_set_sensitive (import_s2p_impS22_btn, FALSE);
g_signal_connect ((gpointer) Imports2pWindow, "delete_event",
G_CALLBACK (on_Imports2pWindow_delete_event),
NULL);
g_signal_connect ((gpointer) Imports2pWindow, "realize",
G_CALLBACK (on_Imports2pWindow_realize),
NULL);
g_signal_connect ((gpointer) import_s2p_sel_all_btn, "clicked",
G_CALLBACK (on_import_s2p_sel_all_btn_clicked),
NULL);
g_signal_connect ((gpointer) import_s2p_sel_none_btn, "clicked",
G_CALLBACK (on_import_s2p_sel_none_btn_clicked),
NULL);
g_signal_connect ((gpointer) import_s2p_sel_invert_btn, "clicked",
G_CALLBACK (on_import_s2p_sel_invert_btn_clicked),
NULL);
g_signal_connect ((gpointer) import_s2p_cancel_btn, "clicked",
G_CALLBACK (on_import_s2p_cancel_btn_clicked),
NULL);
g_signal_connect ((gpointer) import_s2p_impS11_btn, "clicked",
G_CALLBACK (on_import_s2p_impS11_btn_clicked),
NULL);
g_signal_connect ((gpointer) import_s2p_impS22_btn, "clicked",
G_CALLBACK (on_import_s2p_impS22_btn_clicked),
NULL);
/* Store pointers to all widgets, for use by lookup_widget(). */
GLADE_HOOKUP_OBJECT_NO_REF (Imports2pWindow, Imports2pWindow, "Imports2pWindow");
GLADE_HOOKUP_OBJECT (Imports2pWindow, vbox54, "vbox54");
GLADE_HOOKUP_OBJECT (Imports2pWindow, notebook7, "notebook7");
GLADE_HOOKUP_OBJECT (Imports2pWindow, vbox55, "vbox55");
GLADE_HOOKUP_OBJECT (Imports2pWindow, hbox163, "hbox163");
GLADE_HOOKUP_OBJECT (Imports2pWindow, hbox164, "hbox164");
GLADE_HOOKUP_OBJECT (Imports2pWindow, label547, "label547");
GLADE_HOOKUP_OBJECT (Imports2pWindow, import_s2p_freq_lbl, "import_s2p_freq_lbl");
GLADE_HOOKUP_OBJECT (Imports2pWindow, hbox165, "hbox165");
GLADE_HOOKUP_OBJECT (Imports2pWindow, label548, "label548");
GLADE_HOOKUP_OBJECT (Imports2pWindow, import_s2p_param_lbl, "import_s2p_param_lbl");
GLADE_HOOKUP_OBJECT (Imports2pWindow, hbox166, "hbox166");
GLADE_HOOKUP_OBJECT (Imports2pWindow, label549, "label549");
GLADE_HOOKUP_OBJECT (Imports2pWindow, import_s2p_format_lbl, "import_s2p_format_lbl");
GLADE_HOOKUP_OBJECT (Imports2pWindow, hbox168, "hbox168");
GLADE_HOOKUP_OBJECT (Imports2pWindow, label550, "label550");
GLADE_HOOKUP_OBJECT (Imports2pWindow, import_s2p_imped_lbl, "import_s2p_imped_lbl");
GLADE_HOOKUP_OBJECT (Imports2pWindow, scrolledwindow11, "scrolledwindow11");
GLADE_HOOKUP_OBJECT (Imports2pWindow, import_s2p_treeview, "import_s2p_treeview");
GLADE_HOOKUP_OBJECT (Imports2pWindow, hbox162, "hbox162");
GLADE_HOOKUP_OBJECT (Imports2pWindow, label544, "label544");
GLADE_HOOKUP_OBJECT (Imports2pWindow, import_s2p_sel_all_btn, "import_s2p_sel_all_btn");
GLADE_HOOKUP_OBJECT (Imports2pWindow, import_s2p_sel_none_btn, "import_s2p_sel_none_btn");
GLADE_HOOKUP_OBJECT (Imports2pWindow, import_s2p_sel_invert_btn, "import_s2p_sel_invert_btn");
GLADE_HOOKUP_OBJECT (Imports2pWindow, label562, "label562");
GLADE_HOOKUP_OBJECT (Imports2pWindow, import_s2p_version_lbl, "import_s2p_version_lbl");
GLADE_HOOKUP_OBJECT (Imports2pWindow, label546, "label546");
GLADE_HOOKUP_OBJECT (Imports2pWindow, scrolledwindow10, "scrolledwindow10");
GLADE_HOOKUP_OBJECT (Imports2pWindow, import_s2p_textview, "import_s2p_textview");
GLADE_HOOKUP_OBJECT (Imports2pWindow, label545, "label545");
GLADE_HOOKUP_OBJECT (Imports2pWindow, hbox161, "hbox161");
GLADE_HOOKUP_OBJECT (Imports2pWindow, label543, "label543");
GLADE_HOOKUP_OBJECT (Imports2pWindow, import_s2p_cancel_btn, "import_s2p_cancel_btn");
GLADE_HOOKUP_OBJECT (Imports2pWindow, import_s2p_impS11_btn, "import_s2p_impS11_btn");
GLADE_HOOKUP_OBJECT (Imports2pWindow, import_s2p_impS22_btn, "import_s2p_impS22_btn");
return Imports2pWindow;
}
linsmith-0.99.21/src/main.h 0000644 0000000 0000000 00000001574 10715640244 012310 0000000 0000000 /*
* main.c -- The Main Program.
*
* Copyright (C) 1997-2005 John Coppens (john@jcoppens.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
extern GtkWidget *MainWindow;
extern GtkWidget *ImportWindow;
extern int debug;
linsmith-0.99.21/configure.in 0000644 0000000 0000000 00000001741 11541470562 012733 0000000 0000000 dnl Process this file with autoconf to produce a configure script.
AC_INIT(linsmith, 0.99.21)
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
AC_SEARCH_LIBS([strerror],[cposix])
AC_PROG_CC
AM_PROG_CC_STDC
AC_HEADER_STDC
MAKE_SUBDIRS="src po"
PKG_CHECK_MODULES(LINSMITH, gtk+-2.0 >= 2.10 libgnomeui-2.0 >= 2.10 cairo)
AC_SUBST(LINSMITH_LIBS)
AC_SUBST(LINSMITH_CFLAGS)
PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= 2.5)
AC_SUBST(LIBXML_LIBS)
AC_SUBST(LIBXML_CFLAGS)
AC_CHECK_LIB([m],[pow])
AC_CHECK_LIB([m],[sqrt])
AC_CHECK_FUNCS([memset])
AC_CHECK_FUNCS([pow])
AC_CHECK_FUNCS([strdup])
AC_CHECK_FUNCS([sqrt])
AC_C_CONST
AC_FUNC_MALLOC
AC_PROG_CXX
GETTEXT_PACKAGE=linsmith
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE")
AC_SUBST(MAKE_SUBDIRS)
dnl Add the languages which your application supports here.
ALL_LINGUAS="es zh de hu sv it"
AM_GLIB_GNU_GETTEXT
AC_CONFIG_FILES([
Makefile
src/Makefile
po/Makefile.in
])
AC_OUTPUT
linsmith-0.99.21/linsmith_icon.xpm 0000644 0000000 0000000 00000005670 10334421174 014006 0000000 0000000 /* XPM */
static char * smith3_xpm[] = {
"48 48 30 1",
" c None",
". c #E2A2AE",
"+ c #E199A8",
"@ c #E8B4BE",
"# c #DB7F97",
"$ c #D56985",
"% c #E092A4",
"& c #D9738D",
"* c #D46680",
"= c #E7AFBA",
"- c #DF899B",
"; c #DB7B92",
"> c #CF5575",
", c #D05C77",
"' c #E6A6B4",
") c #C84463",
"! c #B73B58",
"~ c #CE506E",
"{ c #C74161",
"] c #CA4A68",
"^ c #AA364E",
"/ c #9D253E",
"( c #B43A54",
"_ c #9B233C",
": c #A22842",
"< c #AF3955",
"[ c #A7334B",
"} c #C13B5A",
"| c #A42C45",
"1 c #E195A7",
".++@@@#$%@@@&$*%@=- +..&;;>=+- ",
"-+.++#=@@#&+@@+$. .- =#+ #= ",
"=@@++..-#=@+$,$&$*' %+ #% +- ",
"@=>+..%==+;.@;#+='$- =# +$#$ # ",
"#*=@.#.+$%@+$-@-;%=#,= %. $ $# -. ",
"#@@$;=+#@.$$@%&;@&$=+>,)%.- +-# +- ",
"=+-&=#+@&$.'#-++#-.&-.$; ; & =# ",
"#=$@-+=$-.#.#$=&&.;,,>,#&= ; $=& ; ",
"%&@+$@>++&+$-#;###&-$+;#*&. & =!&&'=+@; ",
"-;=,@*.#$=>+$%$#;###$;$$&&$= & .*.>+ ; ",
">++-=~@>@*+*-$;$#$;$$,>{-;$$ ; &+* =# ",
",.*+~-~@>@>+*$#~#,$>$;@-@@@#>#{ & & =- ",
">+*@$@~*{;##*$,$>$,@@@#.@+++&; & #'& -. ",
"$@~+#@#-.)$#>$,*)$.@@@'&*=@@@ .+ $,#= $ ",
".*.>,@])]!>#!*.@@+$$=@@#*..-$. ; ).> ; ",
"+>={.$$#-$]~$#!$..=-=@+$&@@$+@>, & '#%~ +. ",
"*&*-,~&)-*!~~)!@@@$+.-$@=*;@$.';# -. # , ",
",#*,;#>~>)>~>{{@#%+$@&*+#,+).$& & + ) .+ ",
"&~$$,,~>>!{!^!/-@&@=)@>+;;$.#>-#$~#+#. , , & ",
"$*>>>~){{!>*;@@;@$#-$#>;-&++++*@>;.. $ #~ # + + ",
"*$]*]{),$=@@$&.##@>@$~+>>=&;#*-,-& ; .,=$ #",
"$~>~),@@@+*$@+,+;;#+]>-&$,-*,*~*)#; =- #@(> &",
"~>~]=@+-$%@',#@$$##>~.,@)]=)]!,*)%* & # #",
">>)==@@;@=$&=-;-$$$+.$#,*)~(_;@;#&$ & - > ",
":#=@=+,#@$-+;.&,##.#-&**{{~%',{^^*& , >.* ",
"!$@@@@+@@&@@&@!#$@=;.;)^)@@-^(!>]># $ *#& ",
"({&$$]~$&!&$!#{$(;>>,!!((;;)~(^{<^$~- # (#)# ",
"$;@@@@;-@]@+*=*+*@.>=,-*~>-==$!{,+#+% # & *~ ",
"~$$.+.$@@@>++,.,#$#.;#$$))))]>{)^^$@@$@@$@,##$#@@#& # .+;| ",
"$>#*)$>>!*)(*]+=&)'+;+@$*++>#$)+>&&& , , +",
"$$]>)>#${}{}.@@@;@+*,@@>,@=)#,-- * { > $",
"#,-*!+&~~$,~!)$-++*#@@@>*@@-)+=$$ & $# $ $",
"##$%)#.~>$$>$))@@@@+#+#@'%&&@@= $ *#$ .-",
",-*@$$@$#->~~$,~@@#%-;.@@-%.%+>> #. )##= * ",
";#~&$)-,.]{##>]$].@@@@=&)=@@@+#% $ * $ ",
"$>#>$#+~#~-$>,*$>$=@@@--@+#+-&> ;= * >> $ ",
"@+-#>@>#*##,;>#~$>,#+#@@@@@@&& & * * ",
"@+]@)=>+,.>-*-,&$$*~*#=@@@@+#;; * ,*=~ $ ",
"=={@].-$=]+,%$*-*;&$#~!~-.=&*~! #. &{@~ =& ",
".@$.+].$+.~.$##>+**+>$)-[!$$ # +#+. > ",
",+.$@&$+>.@~#+$###&-$*=>.**. , -~## #+ ",
")+.>;@#-+*&@**@'$@@$1@>.$;= , ~@$+ =$ "};
linsmith-0.99.21/NEWS 0000644 0000000 0000000 00000007504 10426027757 011131 0000000 0000000 -------- v0.9.6
To help students at the university, I added a mode
to input data directly from noise bridge measurements.
Next version will focus on the remote input (really!)
-------- v0.9.5
While preparing for the remote control part, I detected a bug which I
considered important enough to merit a release. All changes:
-------- v0.9.4
While starting to look for the problems with the remote interface, I found a
few other issues with the 'loads' part, which merited attention:
- Chart also updates when loads are added ot
modified.
- Infrequent bug detected in load management. Could
be the problem while importing from remote?
- Redefined (improved) quite a few routines in
the load.c file. This caused a few bugs (which I
hope, are resolved). Please report on any problems.
-------- v0.9.3
The user interface has been somewhat improved (component entry). Zo change
now has immediate effect. Element selection buttons managed differently.
Next version (0.9.4) focus: Remote control debugging.
-------- v0.9.2
Version 0.9.1 had some problems with the connecting circles. These seem to
have been resolved.
A few new translations have been added. (sv.po is available separately and
will be updated in the next package)
Saving the results now actually works.
-------- 2005/10/17 v0.9.1
- Added filenames to the 'loads' and 'circuit' page, and an 'changed' flag
to indicate the list has been modified.
- Added 'Save results page' option in the 'Files' menu, to save the
numerical results
- Added a Swedish translation (Thanks to Peter Landgren
peter.talken[at]telia.com!)
-------- 0.9.0a3
Minor improvements and a bugfix for parallel LC components
-------- 0.9.0a2
A number of minor improvements, some bugfixes.
There will probably be one more Alpha before the
'official' 0.9.0 release.
- Value text for Z/Y component wasn't initialized.
- On Lawrence's request, I changed the frequency
resolution to 3 decimals
- Update and New buttons were not activated
reliably - solved
- Main screen component editor showed uH, should
be nH - corrected (again Lawrence...)
-------- 0.9.0a1
WARNING: This is an alpha version. This is to see how things work on your
end, and what new bugs have been introduced. Please report to the
forum.
Most important: The circuit file format is different! You will either have
to recreate, or use the script conv0809 (in the datafiles directory) to
conver old *.circ files into the new format. The load files remain
compatible.
The good news: Loads of new things. Please consult the Changelog to
get all the details, but the most important things are:
- possibility to add LC (parallel or series) as one component to
the circuit. This was difficult to do before
- the scrollbar behaviour is nicer.
- loads of bugs removed (and several new introduced, I'm sure)
-------- 0.8.4
Partly 'cause I was already thinking about it, and given the final impetus
by Lawrence Glaister (ve7it[at]shaw.ca), I will be implementing a sort of
'instrument interface' to linsmith. The idea is to automatically transfer
data from, eg. a network analyser to the program.
Though Lawrence's original idea was to add drivers for each specific
instrument, I think it would be more elegant to receive the data through a
more standardized input (unloading some of the work of my back ;-). Options
I'm considering are:
* pipes (somewhat awkward in use but simple to do),
* unix sockets
* tcp sockets (or udp?) - this would be
probably the most versatile method of all,
permitting even data acquisition over the 'net.
I'm thinking on implementing of implementing a simple set of commands to
remotely control the instrument. Say:
* reset (reply with instrument ID)
* measure f (f: frequency, reply: f, R, X)
I imagine there might exist some standard already, or other commands seem
necessary - I'm open to suggestions!
John
linsmith-0.99.21/configure 0000755 0000000 0000000 00000751467 11541470570 012351 0000000 0000000 #! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.66 for linsmith 0.99.21.
#
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
# Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
# Prefer a ksh shell builtin over an external printf program on Solaris,
# but without wasting forks for bash or zsh.
if test -z "$BASH_VERSION$ZSH_VERSION" \
&& (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='print -r --'
as_echo_n='print -rn --'
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='printf %s\n'
as_echo_n='printf %s'
else
if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
as_echo_n='/usr/ucb/echo -n'
else
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
as_echo_n_body='eval
arg=$1;
case $arg in #(
*"$as_nl"*)
expr "X$arg" : "X\\(.*\\)$as_nl";
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
esac;
expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
'
export as_echo_n_body
as_echo_n='sh -c $as_echo_n_body as_echo'
fi
export as_echo_body
as_echo='sh -c $as_echo_body as_echo'
fi
# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
# IFS
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
done
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
$as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
# Unset variables that we do not need and which cause bugs (e.g. in
# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
# suppresses any "Segmentation fault" message there. '((' could
# trigger a bug in pdksh 5.2.14.
for as_var in BASH_ENV ENV MAIL MAILPATH
do eval test x\${$as_var+set} = xset \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
PS4='+ '
# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
# is contrary to our usage. Disable this feature.
alias -g '\${1+\"\$@\"}'='\"\$@\"'
setopt NO_GLOB_SUBST
else
case \`(set -o) 2>/dev/null\` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
"
as_required="as_fn_return () { (exit \$1); }
as_fn_success () { as_fn_return 0; }
as_fn_failure () { as_fn_return 1; }
as_fn_ret_success () { return 0; }
as_fn_ret_failure () { return 1; }
exitcode=0
as_fn_success || { exitcode=1; echo as_fn_success failed.; }
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
else
exitcode=1; echo positional parameters were not saved.
fi
test x\$exitcode = x0 || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
test \$(( 1 + 1 )) = 2 || exit 1"
if (eval "$as_required") 2>/dev/null; then :
as_have_required=yes
else
as_have_required=no
fi
if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
as_found=:
case $as_dir in #(
/*)
for as_base in sh bash ksh sh5; do
# Try only shells that exist, to save several forks.
as_shell=$as_dir/$as_base
if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
{ $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
CONFIG_SHELL=$as_shell as_have_required=yes
if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
break 2
fi
fi
done;;
esac
as_found=false
done
$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
{ $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
CONFIG_SHELL=$SHELL as_have_required=yes
fi; }
IFS=$as_save_IFS
if test "x$CONFIG_SHELL" != x; then :
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
export CONFIG_SHELL
exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
fi
if test x$as_have_required = xno; then :
$as_echo "$0: This script requires a shell more modern than all"
$as_echo "$0: the shells that I found on your system."
if test x${ZSH_VERSION+set} = xset ; then
$as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
$as_echo "$0: be upgraded to zsh 4.3.4 or later."
else
$as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
$0: including any error possibly output before this
$0: message. Then install a modern shell, or manually run
$0: the script under such a shell if you do have one."
fi
exit 1
fi
fi
fi
SHELL=${CONFIG_SHELL-/bin/sh}
export SHELL
# Unset more variables known to interfere with behavior of common tools.
CLICOLOR_FORCE= GREP_OPTIONS=
unset CLICOLOR_FORCE GREP_OPTIONS
## --------------------- ##
## M4sh Shell Functions. ##
## --------------------- ##
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else
as_fn_append ()
{
eval $1=\$$1\$2
}
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
$as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
$as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
as_lineno_1=$LINENO as_lineno_1a=$LINENO
as_lineno_2=$LINENO as_lineno_2a=$LINENO
eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
# Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
sed -n '
p
/[$]LINENO/=
' <$as_myself |
sed '
s/[$]LINENO.*/&-/
t lineno
b
:lineno
N
:loop
s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
t loop
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
. "./$as_me.lineno"
# Exit status is that of the last command.
exit
}
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
# In both cases, we have to default to `cp -p'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -p'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -p'
fi
else
as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
if mkdir -p . 2>/dev/null; then
as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
if test -x / >/dev/null 2>&1; then
as_test_x='test -x'
else
if ls -dL / >/dev/null 2>&1; then
as_ls_L_option=L
else
as_ls_L_option=
fi
as_test_x='
eval sh -c '\''
if test -d "$1"; then
test -d "$1/.";
else
case $1 in #(
-*)set "./$1";;
esac;
case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
???[sx]*):;;*)false;;esac;fi
'\'' sh
'
fi
as_executable_p=$as_test_x
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
test -n "$DJDIR" || exec 7<&0 &1
# Name of the host.
# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
#
# Initializations.
#
ac_default_prefix=/usr/local
ac_clean_files=
ac_config_libobj_dir=.
LIBOBJS=
cross_compiling=no
subdirs=
MFLAGS=
MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='linsmith'
PACKAGE_TARNAME='linsmith'
PACKAGE_VERSION='0.99.21'
PACKAGE_STRING='linsmith 0.99.21'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
# Factoring default headers for most tests.
ac_includes_default="\
#include
#ifdef HAVE_SYS_TYPES_H
# include
#endif
#ifdef HAVE_SYS_STAT_H
# include
#endif
#ifdef STDC_HEADERS
# include
# include
#else
# ifdef HAVE_STDLIB_H
# include
# endif
#endif
#ifdef HAVE_STRING_H
# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
# include
# endif
# include
#endif
#ifdef HAVE_STRINGS_H
# include
#endif
#ifdef HAVE_INTTYPES_H
# include
#endif
#ifdef HAVE_STDINT_H
# include
#endif
#ifdef HAVE_UNISTD_H
# include
#endif"
ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
MKINSTALLDIRS
POSUB
POFILES
PO_IN_DATADIR_FALSE
PO_IN_DATADIR_TRUE
INTLLIBS
INSTOBJEXT
GMOFILES
DATADIRNAME
CATOBJEXT
CATALOGS
XGETTEXT
GMSGFMT
MSGFMT_OPTS
MSGFMT
USE_NLS
MAKE_SUBDIRS
GETTEXT_PACKAGE
am__fastdepCXX_FALSE
am__fastdepCXX_TRUE
CXXDEPMODE
ac_ct_CXX
CXXFLAGS
CXX
LIBOBJS
LIBXML_LIBS
LIBXML_CFLAGS
LINSMITH_LIBS
LINSMITH_CFLAGS
PKG_CONFIG
EGREP
GREP
CPP
am__fastdepCC_FALSE
am__fastdepCC_TRUE
CCDEPMODE
AMDEPBACKSLASH
AMDEP_FALSE
AMDEP_TRUE
am__quote
am__include
DEPDIR
OBJEXT
EXEEXT
ac_ct_CC
CPPFLAGS
LDFLAGS
CFLAGS
CC
am__untar
am__tar
AMTAR
am__leading_dot
SET_MAKE
AWK
mkdir_p
MKDIR_P
INSTALL_STRIP_PROGRAM
STRIP
install_sh
MAKEINFO
AUTOHEADER
AUTOMAKE
AUTOCONF
ACLOCAL
VERSION
PACKAGE
CYGPATH_W
am__isrc
INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
target_alias
host_alias
build_alias
LIBS
ECHO_T
ECHO_N
ECHO_C
DEFS
mandir
localedir
libdir
psdir
pdfdir
dvidir
htmldir
infodir
docdir
oldincludedir
includedir
localstatedir
sharedstatedir
sysconfdir
datadir
datarootdir
libexecdir
sbindir
bindir
program_transform_name
prefix
exec_prefix
PACKAGE_URL
PACKAGE_BUGREPORT
PACKAGE_STRING
PACKAGE_VERSION
PACKAGE_TARNAME
PACKAGE_NAME
PATH_SEPARATOR
SHELL'
ac_subst_files=''
ac_user_opts='
enable_option_checking
enable_dependency_tracking
'
ac_precious_vars='build_alias
host_alias
target_alias
CC
CFLAGS
LDFLAGS
LIBS
CPPFLAGS
CPP
PKG_CONFIG
LINSMITH_CFLAGS
LINSMITH_LIBS
LIBXML_CFLAGS
LIBXML_LIBS
CXX
CXXFLAGS
CCC'
# Initialize some variables set by options.
ac_init_help=
ac_init_version=false
ac_unrecognized_opts=
ac_unrecognized_sep=
# The variables have the same names as the options, with
# dashes changed to underlines.
cache_file=/dev/null
exec_prefix=NONE
no_create=
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
verbose=
x_includes=NONE
x_libraries=NONE
# Installation directory options.
# These are left unexpanded so users can "make install exec_prefix=/foo"
# and all the variables that are supposed to be based on exec_prefix
# by default will actually change.
# Use braces instead of parens because sh, perl, etc. also accept them.
# (The list follows the same order as the GNU Coding Standards.)
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datarootdir='${prefix}/share'
datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
pdfdir='${docdir}'
psdir='${docdir}'
libdir='${exec_prefix}/lib'
localedir='${datarootdir}/locale'
mandir='${datarootdir}/man'
ac_prev=
ac_dashdash=
for ac_option
do
# If the previous option needs an argument, assign it.
if test -n "$ac_prev"; then
eval $ac_prev=\$ac_option
ac_prev=
continue
fi
case $ac_option in
*=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
*) ac_optarg=yes ;;
esac
# Accept the important Cygnus configure options, so we can diagnose typos.
case $ac_dashdash$ac_option in
--)
ac_dashdash=yes ;;
-bindir | --bindir | --bindi | --bind | --bin | --bi)
ac_prev=bindir ;;
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
bindir=$ac_optarg ;;
-build | --build | --buil | --bui | --bu)
ac_prev=build_alias ;;
-build=* | --build=* | --buil=* | --bui=* | --bu=*)
build_alias=$ac_optarg ;;
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
cache_file=$ac_optarg ;;
--config-cache | -C)
cache_file=config.cache ;;
-datadir | --datadir | --datadi | --datad)
ac_prev=datadir ;;
-datadir=* | --datadir=* | --datadi=* | --datad=*)
datadir=$ac_optarg ;;
-datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
| --dataroo | --dataro | --datar)
ac_prev=datarootdir ;;
-datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
| --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
datarootdir=$ac_optarg ;;
-disable-* | --disable-*)
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=no ;;
-docdir | --docdir | --docdi | --doc | --do)
ac_prev=docdir ;;
-docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
docdir=$ac_optarg ;;
-dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
ac_prev=dvidir ;;
-dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
dvidir=$ac_optarg ;;
-enable-* | --enable-*)
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=\$ac_optarg ;;
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
| --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
| --exec | --exe | --ex)
ac_prev=exec_prefix ;;
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
| --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
| --exec=* | --exe=* | --ex=*)
exec_prefix=$ac_optarg ;;
-gas | --gas | --ga | --g)
# Obsolete; use --with-gas.
with_gas=yes ;;
-help | --help | --hel | --he | -h)
ac_init_help=long ;;
-help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
ac_init_help=recursive ;;
-help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
ac_init_help=short ;;
-host | --host | --hos | --ho)
ac_prev=host_alias ;;
-host=* | --host=* | --hos=* | --ho=*)
host_alias=$ac_optarg ;;
-htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
ac_prev=htmldir ;;
-htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
| --ht=*)
htmldir=$ac_optarg ;;
-includedir | --includedir | --includedi | --included | --include \
| --includ | --inclu | --incl | --inc)
ac_prev=includedir ;;
-includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
| --includ=* | --inclu=* | --incl=* | --inc=*)
includedir=$ac_optarg ;;
-infodir | --infodir | --infodi | --infod | --info | --inf)
ac_prev=infodir ;;
-infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
infodir=$ac_optarg ;;
-libdir | --libdir | --libdi | --libd)
ac_prev=libdir ;;
-libdir=* | --libdir=* | --libdi=* | --libd=*)
libdir=$ac_optarg ;;
-libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
| --libexe | --libex | --libe)
ac_prev=libexecdir ;;
-libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
| --libexe=* | --libex=* | --libe=*)
libexecdir=$ac_optarg ;;
-localedir | --localedir | --localedi | --localed | --locale)
ac_prev=localedir ;;
-localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
localedir=$ac_optarg ;;
-localstatedir | --localstatedir | --localstatedi | --localstated \
| --localstate | --localstat | --localsta | --localst | --locals)
ac_prev=localstatedir ;;
-localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
| --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
localstatedir=$ac_optarg ;;
-mandir | --mandir | --mandi | --mand | --man | --ma | --m)
ac_prev=mandir ;;
-mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
mandir=$ac_optarg ;;
-nfp | --nfp | --nf)
# Obsolete; use --without-fp.
with_fp=no ;;
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
| --no-cr | --no-c | -n)
no_create=yes ;;
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
no_recursion=yes ;;
-oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
| --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
| --oldin | --oldi | --old | --ol | --o)
ac_prev=oldincludedir ;;
-oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
| --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
| --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
oldincludedir=$ac_optarg ;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
prefix=$ac_optarg ;;
-program-prefix | --program-prefix | --program-prefi | --program-pref \
| --program-pre | --program-pr | --program-p)
ac_prev=program_prefix ;;
-program-prefix=* | --program-prefix=* | --program-prefi=* \
| --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
program_prefix=$ac_optarg ;;
-program-suffix | --program-suffix | --program-suffi | --program-suff \
| --program-suf | --program-su | --program-s)
ac_prev=program_suffix ;;
-program-suffix=* | --program-suffix=* | --program-suffi=* \
| --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
program_suffix=$ac_optarg ;;
-program-transform-name | --program-transform-name \
| --program-transform-nam | --program-transform-na \
| --program-transform-n | --program-transform- \
| --program-transform | --program-transfor \
| --program-transfo | --program-transf \
| --program-trans | --program-tran \
| --progr-tra | --program-tr | --program-t)
ac_prev=program_transform_name ;;
-program-transform-name=* | --program-transform-name=* \
| --program-transform-nam=* | --program-transform-na=* \
| --program-transform-n=* | --program-transform-=* \
| --program-transform=* | --program-transfor=* \
| --program-transfo=* | --program-transf=* \
| --program-trans=* | --program-tran=* \
| --progr-tra=* | --program-tr=* | --program-t=*)
program_transform_name=$ac_optarg ;;
-pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
ac_prev=pdfdir ;;
-pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
pdfdir=$ac_optarg ;;
-psdir | --psdir | --psdi | --psd | --ps)
ac_prev=psdir ;;
-psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
psdir=$ac_optarg ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
| --sbi=* | --sb=*)
sbindir=$ac_optarg ;;
-sharedstatedir | --sharedstatedir | --sharedstatedi \
| --sharedstated | --sharedstate | --sharedstat | --sharedsta \
| --sharedst | --shareds | --shared | --share | --shar \
| --sha | --sh)
ac_prev=sharedstatedir ;;
-sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
| --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
| --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
| --sha=* | --sh=*)
sharedstatedir=$ac_optarg ;;
-site | --site | --sit)
ac_prev=site ;;
-site=* | --site=* | --sit=*)
site=$ac_optarg ;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
srcdir=$ac_optarg ;;
-sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
| --syscon | --sysco | --sysc | --sys | --sy)
ac_prev=sysconfdir ;;
-sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
| --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
sysconfdir=$ac_optarg ;;
-target | --target | --targe | --targ | --tar | --ta | --t)
ac_prev=target_alias ;;
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
target_alias=$ac_optarg ;;
-v | -verbose | --verbose | --verbos | --verbo | --verb)
verbose=yes ;;
-version | --version | --versio | --versi | --vers | -V)
ac_init_version=: ;;
-with-* | --with-*)
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=\$ac_optarg ;;
-without-* | --without-*)
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=no ;;
--x)
# Obsolete; use --with-x.
with_x=yes ;;
-x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
| --x-incl | --x-inc | --x-in | --x-i)
ac_prev=x_includes ;;
-x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
| --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
x_includes=$ac_optarg ;;
-x-libraries | --x-libraries | --x-librarie | --x-librari \
| --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
ac_prev=x_libraries ;;
-x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
-*) as_fn_error $? "unrecognized option: \`$ac_option'
Try \`$0 --help' for more information"
;;
*=*)
ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
# Reject names that are not valid shell variable names.
case $ac_envvar in #(
'' | [0-9]* | *[!_$as_cr_alnum]* )
as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
*)
# FIXME: should be removed in autoconf 3.0.
$as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
$as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
: ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
;;
esac
done
if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
as_fn_error $? "missing argument to $ac_option"
fi
if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
*) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
# Check all directory arguments for consistency.
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
case $ac_val in
*/ )
ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
eval $ac_var=\$ac_val;;
esac
# Be sure to have absolute directory names.
case $ac_val in
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
esac
as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
done
# There might be people who depend on the old broken behavior: `$host'
# used to hold the argument of --host etc.
# FIXME: To remove some day.
build=$build_alias
host=$host_alias
target=$target_alias
# FIXME: To remove some day.
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
$as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used" >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
fi
ac_tool_prefix=
test -n "$host_alias" && ac_tool_prefix=$host_alias-
test "$silent" = yes && exec 6>/dev/null
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
as_fn_error $? "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
as_fn_error $? "pwd does not report name of working directory"
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
ac_srcdir_defaulted=yes
# Try the directory containing this script, then the parent directory.
ac_confdir=`$as_dirname -- "$as_myself" ||
$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_myself" : 'X\(//\)[^/]' \| \
X"$as_myself" : 'X\(//\)$' \| \
X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_myself" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
srcdir=$ac_confdir
if test ! -r "$srcdir/$ac_unique_file"; then
srcdir=..
fi
else
ac_srcdir_defaulted=no
fi
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
srcdir=.
fi
# Remove unnecessary trailing slashes from srcdir.
# Double slashes in file names in object file debugging info
# mess up M-x gdb in Emacs.
case $srcdir in
*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
esac
for ac_var in $ac_precious_vars; do
eval ac_env_${ac_var}_set=\${${ac_var}+set}
eval ac_env_${ac_var}_value=\$${ac_var}
eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
eval ac_cv_env_${ac_var}_value=\$${ac_var}
done
#
# Report the --help message.
#
if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures linsmith 0.99.21 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print \`checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or \`..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[$ac_default_prefix]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, \`make install' will install all the files in
\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
an installation prefix other than \`$ac_default_prefix' using \`--prefix',
for instance \`--prefix=\$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/linsmith]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
_ACEOF
cat <<\_ACEOF
Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names
_ACEOF
fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of linsmith 0.99.21:";;
esac
cat <<\_ACEOF
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L if you have libraries in a
nonstandard directory
LIBS libraries to pass to the linker, e.g. -l
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if
you have headers in a nonstandard directory
CPP C preprocessor
PKG_CONFIG path to pkg-config utility
LINSMITH_CFLAGS
C compiler flags for LINSMITH, overriding pkg-config
LINSMITH_LIBS
linker flags for LINSMITH, overriding pkg-config
LIBXML_CFLAGS
C compiler flags for LIBXML, overriding pkg-config
LIBXML_LIBS linker flags for LIBXML, overriding pkg-config
CXX C++ compiler command
CXXFLAGS C++ compiler flags
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to the package provider.
_ACEOF
ac_status=$?
fi
if test "$ac_init_help" = "recursive"; then
# If there are subdirs, report their specific --help.
for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
test -d "$ac_dir" ||
{ cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
continue
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
cd "$ac_dir" || { ac_status=$?; continue; }
# Check for guested configure.
if test -f "$ac_srcdir/configure.gnu"; then
echo &&
$SHELL "$ac_srcdir/configure.gnu" --help=recursive
elif test -f "$ac_srcdir/configure"; then
echo &&
$SHELL "$ac_srcdir/configure" --help=recursive
else
$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi || ac_status=$?
cd "$ac_pwd" || { ac_status=$?; break; }
done
fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
linsmith configure 0.99.21
generated by GNU Autoconf 2.66
Copyright (C) 2010 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
exit
fi
## ------------------------ ##
## Autoconf initialization. ##
## ------------------------ ##
# ac_fn_c_try_compile LINENO
# --------------------------
# Try to compile conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then :
ac_retval=0
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
as_fn_set_status $ac_retval
} # ac_fn_c_try_compile
# ac_fn_c_try_link LINENO
# -----------------------
# Try to link conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_link ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext conftest$ac_exeext
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
$as_test_x conftest$ac_exeext
}; then :
ac_retval=0
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
# Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
# created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
# interfere with the next link command; also delete a directory that is
# left behind by Apple's compiler. We do this before executing the actions.
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
as_fn_set_status $ac_retval
} # ac_fn_c_try_link
# ac_fn_c_try_cpp LINENO
# ----------------------
# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_cpp ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if { { ac_try="$ac_cpp conftest.$ac_ext"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } >/dev/null && {
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
test ! -s conftest.err
}; then :
ac_retval=0
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
as_fn_set_status $ac_retval
} # ac_fn_c_try_cpp
# ac_fn_c_try_run LINENO
# ----------------------
# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
# that executables *can* be run.
ac_fn_c_try_run ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then :
ac_retval=0
else
$as_echo "$as_me: program exited with status $ac_status" >&5
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=$ac_status
fi
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
as_fn_set_status $ac_retval
} # ac_fn_c_try_run
# ac_fn_c_check_func LINENO FUNC VAR
# ----------------------------------
# Tests whether FUNC exists, setting the cache variable VAR accordingly
ac_fn_c_check_func ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if eval "test \"\${$3+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Define $2 to an innocuous variant, in case declares $2.
For example, HP-UX 11i declares gettimeofday. */
#define $2 innocuous_$2
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $2 (); below.
Prefer to if __STDC__ is defined, since
exists even on freestanding compilers. */
#ifdef __STDC__
# include
#else
# include
#endif
#undef $2
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char $2 ();
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined __stub_$2 || defined __stub___$2
choke me
#endif
int
main ()
{
return $2 ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
eval "$3=yes"
else
eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
} # ac_fn_c_check_func
# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists, giving a warning if it cannot be compiled using
# the include files in INCLUDES and setting the cache variable VAR
# accordingly.
ac_fn_c_check_header_mongrel ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if eval "test \"\${$3+set}\"" = set; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if eval "test \"\${$3+set}\"" = set; then :
$as_echo_n "(cached) " >&6
fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
else
# Is the header compilable?
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
$as_echo_n "checking $2 usability... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
#include <$2>
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_header_compiler=yes
else
ac_header_compiler=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
$as_echo "$ac_header_compiler" >&6; }
# Is the header present?
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
$as_echo_n "checking $2 presence... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <$2>
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
ac_header_preproc=yes
else
ac_header_preproc=no
fi
rm -f conftest.err conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
$as_echo "$ac_header_preproc" >&6; }
# So? What about this header?
case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
yes:no: )
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
;;
no:yes:* )
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if eval "test \"\${$3+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
eval "$3=\$ac_header_compiler"
fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
fi
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
} # ac_fn_c_check_header_mongrel
# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists and can be compiled using the include files in
# INCLUDES, setting the cache variable VAR accordingly.
ac_fn_c_check_header_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if eval "test \"\${$3+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
#include <$2>
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
eval "$3=yes"
else
eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
} # ac_fn_c_check_header_compile
# ac_fn_cxx_try_compile LINENO
# ----------------------------
# Try to compile conftest.$ac_ext, and return whether this succeeded.
ac_fn_cxx_try_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_cxx_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then :
ac_retval=0
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
as_fn_set_status $ac_retval
} # ac_fn_cxx_try_compile
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by linsmith $as_me 0.99.21, which was
generated by GNU Autoconf 2.66. Invocation command line was
$ $0 $@
_ACEOF
exec 5>>config.log
{
cat <<_ASUNAME
## --------- ##
## Platform. ##
## --------- ##
hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
_ASUNAME
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
$as_echo "PATH: $as_dir"
done
IFS=$as_save_IFS
} >&5
cat >&5 <<_ACEOF
## ----------- ##
## Core tests. ##
## ----------- ##
_ACEOF
# Keep a trace of the command line.
# Strip out --no-create and --no-recursion so they do not pile up.
# Strip out --silent because we don't want to record it for future runs.
# Also quote any args containing shell meta-characters.
# Make two passes to allow for proper duplicate-argument suppression.
ac_configure_args=
ac_configure_args0=
ac_configure_args1=
ac_must_keep_next=false
for ac_pass in 1 2
do
for ac_arg
do
case $ac_arg in
-no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
continue ;;
*\'*)
ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
case $ac_pass in
1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
2)
as_fn_append ac_configure_args1 " '$ac_arg'"
if test $ac_must_keep_next = true; then
ac_must_keep_next=false # Got value, back to normal.
else
case $ac_arg in
*=* | --config-cache | -C | -disable-* | --disable-* \
| -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
| -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
| -with-* | --with-* | -without-* | --without-* | --x)
case "$ac_configure_args0 " in
"$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
esac
;;
-* ) ac_must_keep_next=true ;;
esac
fi
as_fn_append ac_configure_args " '$ac_arg'"
;;
esac
done
done
{ ac_configure_args0=; unset ac_configure_args0;}
{ ac_configure_args1=; unset ac_configure_args1;}
# When interrupted or exit'd, cleanup temporary files, and complete
# config.log. We remove comments because anyway the quotes in there
# would cause problems or look ugly.
# WARNING: Use '\'' to represent an apostrophe within the trap.
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
trap 'exit_status=$?
# Save into config.log some information that might help in debugging.
{
echo
$as_echo "## ---------------- ##
## Cache variables. ##
## ---------------- ##"
echo
# The following way of writing the cache mishandles newlines in values,
(
for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
*_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
*) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
(set) 2>&1 |
case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
sed -n \
"s/'\''/'\''\\\\'\'''\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
;; #(
*)
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
)
echo
$as_echo "## ----------------- ##
## Output variables. ##
## ----------------- ##"
echo
for ac_var in $ac_subst_vars
do
eval ac_val=\$$ac_var
case $ac_val in
*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
$as_echo "$ac_var='\''$ac_val'\''"
done | sort
echo
if test -n "$ac_subst_files"; then
$as_echo "## ------------------- ##
## File substitutions. ##
## ------------------- ##"
echo
for ac_var in $ac_subst_files
do
eval ac_val=\$$ac_var
case $ac_val in
*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
$as_echo "$ac_var='\''$ac_val'\''"
done | sort
echo
fi
if test -s confdefs.h; then
$as_echo "## ----------- ##
## confdefs.h. ##
## ----------- ##"
echo
cat confdefs.h
echo
fi
test "$ac_signal" != 0 &&
$as_echo "$as_me: caught signal $ac_signal"
$as_echo "$as_me: exit $exit_status"
} >&5
rm -f core *.core core.conftest.* &&
rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
exit $exit_status
' 0
for ac_signal in 1 2 13 15; do
trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
done
ac_signal=0
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h
$as_echo "/* confdefs.h */" > confdefs.h
# Predefined preprocessor variables.
cat >>confdefs.h <<_ACEOF
#define PACKAGE_NAME "$PACKAGE_NAME"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_VERSION "$PACKAGE_VERSION"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_STRING "$PACKAGE_STRING"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_URL "$PACKAGE_URL"
_ACEOF
# Let the site file select an alternate cache file if it wants to.
# Prefer an explicitly selected file to automatically selected ones.
ac_site_file1=NONE
ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
# We do not want a PATH search for config.site.
case $CONFIG_SITE in #((
-*) ac_site_file1=./$CONFIG_SITE;;
*/*) ac_site_file1=$CONFIG_SITE;;
*) ac_site_file1=./$CONFIG_SITE;;
esac
elif test "x$prefix" != xNONE; then
ac_site_file1=$prefix/share/config.site
ac_site_file2=$prefix/etc/config.site
else
ac_site_file1=$ac_default_prefix/share/config.site
ac_site_file2=$ac_default_prefix/etc/config.site
fi
for ac_site_file in "$ac_site_file1" "$ac_site_file2"
do
test "x$ac_site_file" = xNONE && continue
if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
$as_echo "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
. "$ac_site_file" \
|| { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See \`config.log' for more details" "$LINENO" 5; }
fi
done
if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special files
# actually), so we avoid doing that. DJGPP emulates it as a regular file.
if test /dev/null != "$cache_file" && test -f "$cache_file"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
$as_echo "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . "$cache_file";;
*) . "./$cache_file";;
esac
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
$as_echo "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
for ac_var in $ac_precious_vars; do
eval ac_old_set=\$ac_cv_env_${ac_var}_set
eval ac_new_set=\$ac_env_${ac_var}_set
eval ac_old_val=\$ac_cv_env_${ac_var}_value
eval ac_new_val=\$ac_env_${ac_var}_value
case $ac_old_set,$ac_new_set in
set,)
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
# differences in whitespace do not lead to failure.
ac_old_val_w=`echo x $ac_old_val`
ac_new_val_w=`echo x $ac_new_val`
if test "$ac_old_val_w" != "$ac_new_val_w"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
ac_cache_corrupted=:
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
eval $ac_var=\$ac_old_val
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
fi;;
esac
# Pass precious variables to config.status.
if test "$ac_new_set" = set; then
case $ac_new_val in
*\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
*) ac_arg=$ac_var=$ac_new_val ;;
esac
case " $ac_configure_args " in
*" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
*) as_fn_append ac_configure_args " '$ac_arg'" ;;
esac
fi
done
if $ac_cache_corrupted; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
## -------------------- ##
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_config_headers="$ac_config_headers config.h"
am__api_version='1.11'
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
if test -f "$ac_dir/install-sh"; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/install-sh -c"
break
elif test -f "$ac_dir/install.sh"; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/install.sh -c"
break
elif test -f "$ac_dir/shtool"; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/shtool install -c"
break
fi
done
if test -z "$ac_aux_dir"; then
as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
fi
# These three variables are undocumented and unsupported,
# and are intended to be withdrawn in a future Autoconf release.
# They can cause serious problems if a builder's source tree is in a directory
# whose full name contains unusual characters.
ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
# AmigaOS /C/install, which installs bootblocks on floppy discs
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
# Reject install programs that cannot install multiple files.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
$as_echo_n "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
if test "${ac_cv_path_install+set}" = set; then :
$as_echo_n "(cached) " >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
# Account for people who put trailing slashes in PATH elements.
case $as_dir/ in #((
./ | .// | /[cC]/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
/usr/ucb/* ) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
# Don't use installbsd from OSF since it installs stuff as root
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
:
elif test $ac_prog = install &&
grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# program-specific install script used by HP pwplus--don't use.
:
else
rm -rf conftest.one conftest.two conftest.dir
echo one > conftest.one
echo two > conftest.two
mkdir conftest.dir
if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
test -s conftest.one && test -s conftest.two &&
test -s conftest.dir/conftest.one &&
test -s conftest.dir/conftest.two
then
ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
break 3
fi
fi
fi
done
done
;;
esac
done
IFS=$as_save_IFS
rm -rf conftest.one conftest.two conftest.dir
fi
if test "${ac_cv_path_install+set}" = set; then
INSTALL=$ac_cv_path_install
else
# As a last resort, use the slow shell script. Don't cache a
# value for INSTALL within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the value is a relative name.
INSTALL=$ac_install_sh
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
$as_echo "$INSTALL" >&6; }
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
$as_echo_n "checking whether build environment is sane... " >&6; }
# Just in case
sleep 1
echo timestamp > conftest.file
# Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter.
am_lf='
'
case `pwd` in
*[\\\"\#\$\&\'\`$am_lf]*)
as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
esac
case $srcdir in
*[\\\"\#\$\&\'\`$am_lf\ \ ]*)
as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
esac
# Do `set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
if test "$*" = "X"; then
# -L didn't work.
set X `ls -t "$srcdir/configure" conftest.file`
fi
rm -f conftest.file
if test "$*" != "X $srcdir/configure conftest.file" \
&& test "$*" != "X conftest.file $srcdir/configure"; then
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
alias in your environment" "$LINENO" 5
fi
test "$2" = conftest.file
)
then
# Ok.
:
else
as_fn_error $? "newly created file is older than distributed files!
Check your system clock" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
test "$program_prefix" != NONE &&
program_transform_name="s&^&$program_prefix&;$program_transform_name"
# Use a double $ so make ignores it.
test "$program_suffix" != NONE &&
program_transform_name="s&\$&$program_suffix&;$program_transform_name"
# Double any \ or $.
# By default was `s,x,x', remove it if useless.
ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
# expand $ac_aux_dir to an absolute path
am_aux_dir=`cd $ac_aux_dir && pwd`
if test x"${MISSING+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
*)
MISSING="\${SHELL} $am_aux_dir/missing" ;;
esac
fi
# Use eval to expand $SHELL
if eval "$MISSING --run true"; then
am_missing_run="$MISSING --run "
else
am_missing_run=
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
fi
if test x"${install_sh}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
*)
install_sh="\${SHELL} $am_aux_dir/install-sh"
esac
fi
# Installed binaries are usually stripped using `strip' when the user
# run `make install-strip'. However `strip' might not be the right
# tool to use in cross-compilation environments, therefore Automake
# will honor the `STRIP' environment variable to overrule this program.
if test "$cross_compiling" != no; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_STRIP+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$STRIP"; then
ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
$as_echo "$STRIP" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_STRIP"; then
ac_ct_STRIP=$STRIP
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_STRIP"; then
ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_STRIP="strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
$as_echo "$ac_ct_STRIP" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$ac_ct_STRIP" = x; then
STRIP=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
STRIP=$ac_ct_STRIP
fi
else
STRIP="$ac_cv_prog_STRIP"
fi
fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
if test -z "$MKDIR_P"; then
if test "${ac_cv_path_mkdir+set}" = set; then :
$as_echo_n "(cached) " >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_prog in mkdir gmkdir; do
for ac_exec_ext in '' $ac_executable_extensions; do
{ test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
'mkdir (GNU coreutils) '* | \
'mkdir (coreutils) '* | \
'mkdir (fileutils) '4.1*)
ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
break 3;;
esac
done
done
done
IFS=$as_save_IFS
fi
test -d ./--version && rmdir ./--version
if test "${ac_cv_path_mkdir+set}" = set; then
MKDIR_P="$ac_cv_path_mkdir -p"
else
# As a last resort, use the slow shell script. Don't cache a
# value for MKDIR_P within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the value is a relative name.
MKDIR_P="$ac_install_sh -d"
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
$as_echo "$MKDIR_P" >&6; }
mkdir_p="$MKDIR_P"
case $mkdir_p in
[\\/$]* | ?:[\\/]*) ;;
*/*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
esac
for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AWK+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AWK"; then
ac_cv_prog_AWK="$AWK" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_AWK="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
$as_echo "$AWK" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$AWK" && break
done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
$as_echo_n "(cached) " >&6
else
cat >conftest.make <<\_ACEOF
SHELL = /bin/sh
all:
@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
*@@@%%%=?*=@@@%%%*)
eval ac_cv_prog_make_${ac_make}_set=yes;;
*)
eval ac_cv_prog_make_${ac_make}_set=no;;
esac
rm -f conftest.make
fi
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
SET_MAKE=
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
SET_MAKE="MAKE=${MAKE-make}"
fi
rm -rf .tst 2>/dev/null
mkdir .tst 2>/dev/null
if test -d .tst; then
am__leading_dot=.
else
am__leading_dot=_
fi
rmdir .tst 2>/dev/null
if test "`cd $srcdir && pwd`" != "`pwd`"; then
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
# is not polluted with repeated "-I."
am__isrc=' -I$(srcdir)'
# test to see if srcdir already configured
if test -f $srcdir/config.status; then
as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
fi
fi
# test whether we have cygpath
if test -z "$CYGPATH_W"; then
if (cygpath --version) >/dev/null 2>/dev/null; then
CYGPATH_W='cygpath -w'
else
CYGPATH_W=echo
fi
fi
# Define the identity of the package.
PACKAGE=linsmith
VERSION=0.99.21
cat >>confdefs.h <<_ACEOF
#define PACKAGE "$PACKAGE"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define VERSION "$VERSION"
_ACEOF
# Some tools Automake needs.
ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
# Always define AMTAR for backward compatibility.
AMTAR=${AMTAR-"${am_missing_run}tar"}
am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
DEPDIR="${am__leading_dot}deps"
ac_config_commands="$ac_config_commands depfiles"
am_make=${MAKE-make}
cat > confinc << 'END'
am__doit:
@echo this is the am__doit target
.PHONY: am__doit
END
# If we don't find an include directive, just comment out the code.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
$as_echo_n "checking for style of include used by $am_make... " >&6; }
am__include="#"
am__quote=
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
# Ignore all kinds of additional output from `make'.
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=include
am__quote=
_am_result=GNU
;;
esac
# Now try BSD make style include.
if test "$am__include" = "#"; then
echo '.include "confinc"' > confmf
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=.include
am__quote="\""
_am_result=BSD
;;
esac
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
$as_echo "$_am_result" >&6; }
rm -f confinc confmf
# Check whether --enable-dependency-tracking was given.
if test "${enable_dependency_tracking+set}" = set; then :
enableval=$enable_dependency_tracking;
fi
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
fi
if test "x$enable_dependency_tracking" != xno; then
AMDEP_TRUE=
AMDEP_FALSE='#'
else
AMDEP_TRUE='#'
AMDEP_FALSE=
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
$as_echo "$ac_ct_CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
else
CC="$ac_cv_prog_CC"
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
ac_prog_rejected=no
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
if test $ac_prog_rejected = yes; then
# We found a bogon in the path, so make sure we never use it.
set dummy $ac_cv_prog_CC
shift
if test $# != 0; then
# We chose a different compiler from the bogus one.
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
fi
fi
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
for ac_prog in cl.exe
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$CC" && break
done
fi
if test -z "$CC"; then
ac_ct_CC=$CC
for ac_prog in cl.exe
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
$as_echo "$ac_ct_CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$ac_ct_CC" && break
done
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
fi
fi
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
sed '10a\
... rest of stderr output deleted ...
10q' conftest.err >conftest.er1
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
$as_echo_n "checking whether the C compiler works... " >&6; }
ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
# The possible output files:
ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
ac_rmfiles=
for ac_file in $ac_files
do
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
* ) ac_rmfiles="$ac_rmfiles $ac_file";;
esac
done
rm -f $ac_rmfiles
if { { ac_try="$ac_link_default"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link_default") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then :
# Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
# in a Makefile. We should not override ac_cv_exeext if it was cached,
# so that the user can short-circuit this test for compilers unknown to
# Autoconf.
for ac_file in $ac_files ''
do
test -f "$ac_file" || continue
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
;;
[ab].out )
# We found the default executable, but exeext='' is most
# certainly right.
break;;
*.* )
if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
then :; else
ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
fi
# We set ac_cv_exeext here because the later test for it is not
# safe: cross compilers may not add the suffix if given an `-o'
# argument, so we may need to know it at that point already.
# Even if this section looks crufty: it has the advantage of
# actually working.
break;;
* )
break;;
esac
done
test "$ac_cv_exeext" = no && ac_cv_exeext=
else
ac_file=''
fi
if test -z "$ac_file"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "C compiler cannot create executables
See \`config.log' for more details" "$LINENO" 5; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
$as_echo_n "checking for C compiler default output file name... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
$as_echo "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext
rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
$as_echo_n "checking for suffix of executables... " >&6; }
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then :
# If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
# work properly (i.e., refer to `conftest.exe'), while it won't with
# `rm'.
for ac_file in conftest.exe conftest conftest.*; do
test -f "$ac_file" || continue
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
*.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
break;;
* ) break;;
esac
done
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest conftest$ac_cv_exeext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
$as_echo "$ac_cv_exeext" >&6; }
rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
int
main ()
{
FILE *f = fopen ("conftest.out", "w");
return ferror (f) || fclose (f) != 0;
;
return 0;
}
_ACEOF
ac_clean_files="$ac_clean_files conftest.out"
# Check that the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
$as_echo_n "checking whether we are cross compiling... " >&6; }
if test "$cross_compiling" != yes; then
{ { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if { ac_try='./conftest$ac_cv_exeext'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
See \`config.log' for more details" "$LINENO" 5; }
fi
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
$as_echo "$cross_compiling" >&6; }
rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
ac_clean_files=$ac_clean_files_save
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
$as_echo_n "checking for suffix of object files... " >&6; }
if test "${ac_cv_objext+set}" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
rm -f conftest.o conftest.obj
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then :
for ac_file in conftest.o conftest.obj conftest.*; do
test -f "$ac_file" || continue;
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
*) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
break;;
esac
done
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of object files: cannot compile
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
$as_echo "$ac_cv_objext" >&6; }
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
if test "${ac_cv_c_compiler_gnu+set}" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_compiler_gnu=yes
else
ac_compiler_gnu=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
$as_echo "$ac_cv_c_compiler_gnu" >&6; }
if test $ac_compiler_gnu = yes; then
GCC=yes
else
GCC=
fi
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
$as_echo_n "checking whether $CC accepts -g... " >&6; }
if test "${ac_cv_prog_cc_g+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_g=yes
else
CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
else
ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_g=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
$as_echo "$ac_cv_prog_cc_g" >&6; }
if test "$ac_test_CFLAGS" = set; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
CFLAGS="-g -O2"
else
CFLAGS="-g"
fi
else
if test "$GCC" = yes; then
CFLAGS="-O2"
else
CFLAGS=
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
if test "${ac_cv_prog_cc_c89+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_cv_prog_cc_c89=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include
#include
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
static char *e (p, i)
char **p;
int i;
{
return p[i];
}
static char *f (char * (*g) (char **, int), char **p, ...)
{
char *s;
va_list v;
va_start (v,p);
s = g (p, va_arg (v,int));
va_end (v);
return s;
}
/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
function prototypes and stuff, but not '\xHH' hex character constants.
These don't provoke an error unfortunately, instead are silently treated
as 'x'. The following induces an error, until -std is added to get
proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
array size at least. It's necessary to write '\x00'==0 to get something
that's true only with -std. */
int osf4_cc_array ['\x00' == 0 ? 1 : -1];
/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
inside strings and character constants. */
#define FOO(x) 'x'
int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
int test (int i, double x);
struct s1 {int (*f) (int a);};
struct s2 {int (*f) (double a);};
int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
int argc;
char **argv;
int
main ()
{
return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
;
return 0;
}
_ACEOF
for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_c89=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
fi
# AC_CACHE_VAL
case "x$ac_cv_prog_cc_c89" in
x)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
$as_echo "none needed" >&6; } ;;
xno)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
$as_echo "unsupported" >&6; } ;;
*)
CC="$CC $ac_cv_prog_cc_c89"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
esac
if test "x$ac_cv_prog_cc_c89" != xno; then :
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
depcc="$CC" am_compiler_list=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
$as_echo_n "checking dependency style of $depcc... " >&6; }
if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
# We will build objects and dependencies in a subdirectory because
# it helps to detect inapplicable dependency modes. For instance
# both Tru64's cc and ICC support -MD to output dependencies as a
# side effect of compilation, but ICC will put the dependencies in
# the current directory while Tru64 will put them in the object
# directory.
mkdir sub
am_cv_CC_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
fi
am__universal=false
case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
# we should not choose a depcomp mode which is confused by this.
#
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
# Solaris 8's {/usr,}/bin/sh.
touch sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
# We check with `-c' and `-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this. Also, some Intel
# versions had trouble with output in subdirs
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
gcc)
# This depmode causes a compiler race in universal mode.
test "$am__universal" = false || continue
;;
nosideeffect)
# after this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested
if test "x$enable_dependency_tracking" = xyes; then
continue
else
break
fi
;;
msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
am__minus_obj=
;;
none) break ;;
esac
if depmode=$depmode \
source=sub/conftest.c object=$am__obj \
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
>/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored or not supported.
# When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CC_dependencies_compiler_type=$depmode
break
fi
fi
done
cd ..
rm -rf conftest.dir
else
am_cv_CC_dependencies_compiler_type=none
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
if
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
am__fastdepCC_TRUE=
am__fastdepCC_FALSE='#'
else
am__fastdepCC_TRUE='#'
am__fastdepCC_FALSE=
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5
$as_echo_n "checking for library containing strerror... " >&6; }
if test "${ac_cv_search_strerror+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char strerror ();
int
main ()
{
return strerror ();
;
return 0;
}
_ACEOF
for ac_lib in '' cposix; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_search_strerror=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
if test "${ac_cv_search_strerror+set}" = set; then :
break
fi
done
if test "${ac_cv_search_strerror+set}" = set; then :
else
ac_cv_search_strerror=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5
$as_echo "$ac_cv_search_strerror" >&6; }
ac_res=$ac_cv_search_strerror
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
$as_echo "$ac_ct_CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
else
CC="$ac_cv_prog_CC"
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
ac_prog_rejected=no
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
if test $ac_prog_rejected = yes; then
# We found a bogon in the path, so make sure we never use it.
set dummy $ac_cv_prog_CC
shift
if test $# != 0; then
# We chose a different compiler from the bogus one.
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
fi
fi
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
for ac_prog in cl.exe
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$CC" && break
done
fi
if test -z "$CC"; then
ac_ct_CC=$CC
for ac_prog in cl.exe
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
$as_echo "$ac_ct_CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$ac_ct_CC" && break
done
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
fi
fi
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
sed '10a\
... rest of stderr output deleted ...
10q' conftest.err >conftest.er1
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
if test "${ac_cv_c_compiler_gnu+set}" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_compiler_gnu=yes
else
ac_compiler_gnu=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
$as_echo "$ac_cv_c_compiler_gnu" >&6; }
if test $ac_compiler_gnu = yes; then
GCC=yes
else
GCC=
fi
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
$as_echo_n "checking whether $CC accepts -g... " >&6; }
if test "${ac_cv_prog_cc_g+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_g=yes
else
CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
else
ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_g=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
$as_echo "$ac_cv_prog_cc_g" >&6; }
if test "$ac_test_CFLAGS" = set; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
CFLAGS="-g -O2"
else
CFLAGS="-g"
fi
else
if test "$GCC" = yes; then
CFLAGS="-O2"
else
CFLAGS=
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
if test "${ac_cv_prog_cc_c89+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_cv_prog_cc_c89=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include
#include
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
static char *e (p, i)
char **p;
int i;
{
return p[i];
}
static char *f (char * (*g) (char **, int), char **p, ...)
{
char *s;
va_list v;
va_start (v,p);
s = g (p, va_arg (v,int));
va_end (v);
return s;
}
/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
function prototypes and stuff, but not '\xHH' hex character constants.
These don't provoke an error unfortunately, instead are silently treated
as 'x'. The following induces an error, until -std is added to get
proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
array size at least. It's necessary to write '\x00'==0 to get something
that's true only with -std. */
int osf4_cc_array ['\x00' == 0 ? 1 : -1];
/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
inside strings and character constants. */
#define FOO(x) 'x'
int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
int test (int i, double x);
struct s1 {int (*f) (int a);};
struct s2 {int (*f) (double a);};
int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
int argc;
char **argv;
int
main ()
{
return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
;
return 0;
}
_ACEOF
for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_c89=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
fi
# AC_CACHE_VAL
case "x$ac_cv_prog_cc_c89" in
x)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
$as_echo "none needed" >&6; } ;;
xno)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
$as_echo "unsupported" >&6; } ;;
*)
CC="$CC $ac_cv_prog_cc_c89"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
esac
if test "x$ac_cv_prog_cc_c89" != xno; then :
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
depcc="$CC" am_compiler_list=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
$as_echo_n "checking dependency style of $depcc... " >&6; }
if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
# We will build objects and dependencies in a subdirectory because
# it helps to detect inapplicable dependency modes. For instance
# both Tru64's cc and ICC support -MD to output dependencies as a
# side effect of compilation, but ICC will put the dependencies in
# the current directory while Tru64 will put them in the object
# directory.
mkdir sub
am_cv_CC_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
fi
am__universal=false
case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
# we should not choose a depcomp mode which is confused by this.
#
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
# Solaris 8's {/usr,}/bin/sh.
touch sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
# We check with `-c' and `-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this. Also, some Intel
# versions had trouble with output in subdirs
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
gcc)
# This depmode causes a compiler race in universal mode.
test "$am__universal" = false || continue
;;
nosideeffect)
# after this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested
if test "x$enable_dependency_tracking" = xyes; then
continue
else
break
fi
;;
msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
am__minus_obj=
;;
none) break ;;
esac
if depmode=$depmode \
source=sub/conftest.c object=$am__obj \
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
>/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored or not supported.
# When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CC_dependencies_compiler_type=$depmode
break
fi
fi
done
cd ..
rm -rf conftest.dir
else
am_cv_CC_dependencies_compiler_type=none
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
if
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
am__fastdepCC_TRUE=
am__fastdepCC_FALSE='#'
else
am__fastdepCC_TRUE='#'
am__fastdepCC_FALSE=
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
$as_echo "$ac_ct_CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
else
CC="$ac_cv_prog_CC"
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
ac_prog_rejected=no
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
if test $ac_prog_rejected = yes; then
# We found a bogon in the path, so make sure we never use it.
set dummy $ac_cv_prog_CC
shift
if test $# != 0; then
# We chose a different compiler from the bogus one.
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
fi
fi
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
for ac_prog in cl.exe
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$CC" && break
done
fi
if test -z "$CC"; then
ac_ct_CC=$CC
for ac_prog in cl.exe
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
$as_echo "$ac_ct_CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$ac_ct_CC" && break
done
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
fi
fi
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
sed '10a\
... rest of stderr output deleted ...
10q' conftest.err >conftest.er1
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
if test "${ac_cv_c_compiler_gnu+set}" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_compiler_gnu=yes
else
ac_compiler_gnu=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
$as_echo "$ac_cv_c_compiler_gnu" >&6; }
if test $ac_compiler_gnu = yes; then
GCC=yes
else
GCC=
fi
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
$as_echo_n "checking whether $CC accepts -g... " >&6; }
if test "${ac_cv_prog_cc_g+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_g=yes
else
CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
else
ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_g=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
$as_echo "$ac_cv_prog_cc_g" >&6; }
if test "$ac_test_CFLAGS" = set; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
CFLAGS="-g -O2"
else
CFLAGS="-g"
fi
else
if test "$GCC" = yes; then
CFLAGS="-O2"
else
CFLAGS=
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
if test "${ac_cv_prog_cc_c89+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_cv_prog_cc_c89=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include
#include
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
static char *e (p, i)
char **p;
int i;
{
return p[i];
}
static char *f (char * (*g) (char **, int), char **p, ...)
{
char *s;
va_list v;
va_start (v,p);
s = g (p, va_arg (v,int));
va_end (v);
return s;
}
/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
function prototypes and stuff, but not '\xHH' hex character constants.
These don't provoke an error unfortunately, instead are silently treated
as 'x'. The following induces an error, until -std is added to get
proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
array size at least. It's necessary to write '\x00'==0 to get something
that's true only with -std. */
int osf4_cc_array ['\x00' == 0 ? 1 : -1];
/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
inside strings and character constants. */
#define FOO(x) 'x'
int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
int test (int i, double x);
struct s1 {int (*f) (int a);};
struct s2 {int (*f) (double a);};
int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
int argc;
char **argv;
int
main ()
{
return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
;
return 0;
}
_ACEOF
for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_c89=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
fi
# AC_CACHE_VAL
case "x$ac_cv_prog_cc_c89" in
x)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
$as_echo "none needed" >&6; } ;;
xno)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
$as_echo "unsupported" >&6; } ;;
*)
CC="$CC $ac_cv_prog_cc_c89"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
esac
if test "x$ac_cv_prog_cc_c89" != xno; then :
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
depcc="$CC" am_compiler_list=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
$as_echo_n "checking dependency style of $depcc... " >&6; }
if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
# We will build objects and dependencies in a subdirectory because
# it helps to detect inapplicable dependency modes. For instance
# both Tru64's cc and ICC support -MD to output dependencies as a
# side effect of compilation, but ICC will put the dependencies in
# the current directory while Tru64 will put them in the object
# directory.
mkdir sub
am_cv_CC_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
fi
am__universal=false
case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
# we should not choose a depcomp mode which is confused by this.
#
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
# Solaris 8's {/usr,}/bin/sh.
touch sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
# We check with `-c' and `-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this. Also, some Intel
# versions had trouble with output in subdirs
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
gcc)
# This depmode causes a compiler race in universal mode.
test "$am__universal" = false || continue
;;
nosideeffect)
# after this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested
if test "x$enable_dependency_tracking" = xyes; then
continue
else
break
fi
;;
msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
am__minus_obj=
;;
none) break ;;
esac
if depmode=$depmode \
source=sub/conftest.c object=$am__obj \
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
>/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored or not supported.
# When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CC_dependencies_compiler_type=$depmode
break
fi
fi
done
cd ..
rm -rf conftest.dir
else
am_cv_CC_dependencies_compiler_type=none
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
if
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
am__fastdepCC_TRUE=
am__fastdepCC_FALSE='#'
else
am__fastdepCC_TRUE='#'
am__fastdepCC_FALSE=
fi
am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
$as_echo_n "checking how to run the C preprocessor... " >&6; }
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
if test -z "$CPP"; then
if test "${ac_cv_prog_CPP+set}" = set; then :
$as_echo_n "(cached) " >&6
else
# Double quotes because CPP needs to be expanded
for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
do
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# Prefer to if __STDC__ is defined, since
# exists even on freestanding compilers.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef __STDC__
# include
#else
# include
#endif
Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
else
# Broken: fails on valid input.
continue
fi
rm -f conftest.err conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
# Broken: success on invalid input.
continue
else
# Passes both tests.
ac_preproc_ok=:
break
fi
rm -f conftest.err conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
break
fi
done
ac_cv_prog_CPP=$CPP
fi
CPP=$ac_cv_prog_CPP
else
ac_cv_prog_CPP=$CPP
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
$as_echo "$CPP" >&6; }
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# Prefer to if __STDC__ is defined, since
# exists even on freestanding compilers.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef __STDC__
# include
#else
# include
#endif
Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
else
# Broken: fails on valid input.
continue
fi
rm -f conftest.err conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
# Broken: success on invalid input.
continue
else
# Passes both tests.
ac_preproc_ok=:
break
fi
rm -f conftest.err conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
See \`config.log' for more details" "$LINENO" 5; }
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
if test "${ac_cv_path_GREP+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -z "$GREP"; then
ac_path_GREP_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
{ test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
*GNU*)
ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
*)
ac_count=0
$as_echo_n 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
$as_echo 'GREP' >> "conftest.nl"
"$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_GREP_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_GREP="$ac_path_GREP"
ac_path_GREP_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_GREP_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_GREP"; then
as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_GREP=$GREP
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
$as_echo "$ac_cv_path_GREP" >&6; }
GREP="$ac_cv_path_GREP"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
$as_echo_n "checking for egrep... " >&6; }
if test "${ac_cv_path_EGREP+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
then ac_cv_path_EGREP="$GREP -E"
else
if test -z "$EGREP"; then
ac_path_EGREP_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
{ test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
*GNU*)
ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
*)
ac_count=0
$as_echo_n 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
$as_echo 'EGREP' >> "conftest.nl"
"$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_EGREP_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_EGREP="$ac_path_EGREP"
ac_path_EGREP_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_EGREP_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
fi
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
$as_echo "$ac_cv_path_EGREP" >&6; }
EGREP="$ac_cv_path_EGREP"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
if test "${ac_cv_header_stdc+set}" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include
#include
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_header_stdc=yes
else
ac_cv_header_stdc=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "memchr" >/dev/null 2>&1; then :
else
ac_cv_header_stdc=no
fi
rm -f conftest*
fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "free" >/dev/null 2>&1; then :
else
ac_cv_header_stdc=no
fi
rm -f conftest*
fi
if test $ac_cv_header_stdc = yes; then
# /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
if test "$cross_compiling" = yes; then :
:
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#if ((' ' & 0x0FF) == 0x020)
# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
#else
# define ISLOWER(c) \
(('a' <= (c) && (c) <= 'i') \
|| ('j' <= (c) && (c) <= 'r') \
|| ('s' <= (c) && (c) <= 'z'))
# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
#endif
#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
int
main ()
{
int i;
for (i = 0; i < 256; i++)
if (XOR (islower (i), ISLOWER (i))
|| toupper (i) != TOUPPER (i))
return 2;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
else
ac_cv_header_stdc=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
$as_echo "$ac_cv_header_stdc" >&6; }
if test $ac_cv_header_stdc = yes; then
$as_echo "#define STDC_HEADERS 1" >>confdefs.h
fi
MAKE_SUBDIRS="src po"
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
$as_echo_n "(cached) " >&6
else
case $PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
if test -n "$PKG_CONFIG"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
$as_echo "$PKG_CONFIG" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
if test -z "$ac_cv_path_PKG_CONFIG"; then
ac_pt_PKG_CONFIG=$PKG_CONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
$as_echo_n "(cached) " >&6
else
case $ac_pt_PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
if test -n "$ac_pt_PKG_CONFIG"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
$as_echo "$ac_pt_PKG_CONFIG" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$ac_pt_PKG_CONFIG" = x; then
PKG_CONFIG=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKG_CONFIG=$ac_pt_PKG_CONFIG
fi
else
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
fi
fi
if test -n "$PKG_CONFIG"; then
_pkg_min_version=0.9.0
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
PKG_CONFIG=""
fi
fi
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LINSMITH" >&5
$as_echo_n "checking for LINSMITH... " >&6; }
if test -n "$LINSMITH_CFLAGS"; then
pkg_cv_LINSMITH_CFLAGS="$LINSMITH_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.10 libgnomeui-2.0 >= 2.10 cairo\""; } >&5
($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.10 libgnomeui-2.0 >= 2.10 cairo") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LINSMITH_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.10 libgnomeui-2.0 >= 2.10 cairo" 2>/dev/null`
else
pkg_failed=yes
fi
else
pkg_failed=untried
fi
if test -n "$LINSMITH_LIBS"; then
pkg_cv_LINSMITH_LIBS="$LINSMITH_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.10 libgnomeui-2.0 >= 2.10 cairo\""; } >&5
($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.10 libgnomeui-2.0 >= 2.10 cairo") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LINSMITH_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.10 libgnomeui-2.0 >= 2.10 cairo" 2>/dev/null`
else
pkg_failed=yes
fi
else
pkg_failed=untried
fi
if test $pkg_failed = yes; then
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
LINSMITH_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-2.0 >= 2.10 libgnomeui-2.0 >= 2.10 cairo" 2>&1`
else
LINSMITH_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-2.0 >= 2.10 libgnomeui-2.0 >= 2.10 cairo" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$LINSMITH_PKG_ERRORS" >&5
as_fn_error $? "Package requirements (gtk+-2.0 >= 2.10 libgnomeui-2.0 >= 2.10 cairo) were not met:
$LINSMITH_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables LINSMITH_CFLAGS
and LINSMITH_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" "$LINENO" 5
elif test $pkg_failed = untried; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Alternatively, you may set the environment variables LINSMITH_CFLAGS
and LINSMITH_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see .
See \`config.log' for more details" "$LINENO" 5; }
else
LINSMITH_CFLAGS=$pkg_cv_LINSMITH_CFLAGS
LINSMITH_LIBS=$pkg_cv_LINSMITH_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
:
fi
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML" >&5
$as_echo_n "checking for LIBXML... " >&6; }
if test -n "$LIBXML_CFLAGS"; then
pkg_cv_LIBXML_CFLAGS="$LIBXML_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.5\""; } >&5
($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.5") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBXML_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.5" 2>/dev/null`
else
pkg_failed=yes
fi
else
pkg_failed=untried
fi
if test -n "$LIBXML_LIBS"; then
pkg_cv_LIBXML_LIBS="$LIBXML_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.5\""; } >&5
($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.5") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBXML_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.5" 2>/dev/null`
else
pkg_failed=yes
fi
else
pkg_failed=untried
fi
if test $pkg_failed = yes; then
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
LIBXML_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libxml-2.0 >= 2.5" 2>&1`
else
LIBXML_PKG_ERRORS=`$PKG_CONFIG --print-errors "libxml-2.0 >= 2.5" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$LIBXML_PKG_ERRORS" >&5
as_fn_error $? "Package requirements (libxml-2.0 >= 2.5) were not met:
$LIBXML_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables LIBXML_CFLAGS
and LIBXML_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" "$LINENO" 5
elif test $pkg_failed = untried; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Alternatively, you may set the environment variables LIBXML_CFLAGS
and LIBXML_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see .
See \`config.log' for more details" "$LINENO" 5; }
else
LIBXML_CFLAGS=$pkg_cv_LIBXML_CFLAGS
LIBXML_LIBS=$pkg_cv_LIBXML_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
:
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pow in -lm" >&5
$as_echo_n "checking for pow in -lm... " >&6; }
if test "${ac_cv_lib_m_pow+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lm $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char pow ();
int
main ()
{
return pow ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_m_pow=yes
else
ac_cv_lib_m_pow=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_pow" >&5
$as_echo "$ac_cv_lib_m_pow" >&6; }
if test "x$ac_cv_lib_m_pow" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBM 1
_ACEOF
LIBS="-lm $LIBS"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqrt in -lm" >&5
$as_echo_n "checking for sqrt in -lm... " >&6; }
if test "${ac_cv_lib_m_sqrt+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lm $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char sqrt ();
int
main ()
{
return sqrt ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_m_sqrt=yes
else
ac_cv_lib_m_sqrt=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sqrt" >&5
$as_echo "$ac_cv_lib_m_sqrt" >&6; }
if test "x$ac_cv_lib_m_sqrt" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBM 1
_ACEOF
LIBS="-lm $LIBS"
fi
for ac_func in memset
do :
ac_fn_c_check_func "$LINENO" "memset" "ac_cv_func_memset"
if test "x$ac_cv_func_memset" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_MEMSET 1
_ACEOF
fi
done
for ac_func in pow
do :
ac_fn_c_check_func "$LINENO" "pow" "ac_cv_func_pow"
if test "x$ac_cv_func_pow" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_POW 1
_ACEOF
fi
done
for ac_func in strdup
do :
ac_fn_c_check_func "$LINENO" "strdup" "ac_cv_func_strdup"
if test "x$ac_cv_func_strdup" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_STRDUP 1
_ACEOF
fi
done
for ac_func in sqrt
do :
ac_fn_c_check_func "$LINENO" "sqrt" "ac_cv_func_sqrt"
if test "x$ac_cv_func_sqrt" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_SQRT 1
_ACEOF
fi
done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
if test "${ac_cv_c_const+set}" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
/* FIXME: Include the comments suggested by Paul. */
#ifndef __cplusplus
/* Ultrix mips cc rejects this. */
typedef int charset[2];
const charset cs;
/* SunOS 4.1.1 cc rejects this. */
char const *const *pcpcc;
char **ppc;
/* NEC SVR4.0.2 mips cc rejects this. */
struct point {int x, y;};
static struct point const zero = {0,0};
/* AIX XL C 1.02.0.0 rejects this.
It does not let you subtract one const X* pointer from another in
an arm of an if-expression whose if-part is not a constant
expression */
const char *g = "string";
pcpcc = &g + (g ? g-g : 0);
/* HPUX 7.0 cc rejects these. */
++pcpcc;
ppc = (char**) pcpcc;
pcpcc = (char const *const *) ppc;
{ /* SCO 3.2v4 cc rejects this. */
char *t;
char const *s = 0 ? (char *) 0 : (char const *) 0;
*t++ = 0;
if (s) return 0;
}
{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
int x[] = {25, 17};
const int *foo = &x[0];
++foo;
}
{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
typedef const int *iptr;
iptr p = 0;
++p;
}
{ /* AIX XL C 1.02.0.0 rejects this saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
struct s { int j; const int *ap[3]; };
struct s *b; b->j = 5;
}
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
const int foo = 10;
if (!foo) return 0;
}
return !cs[0] && !zero.x;
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_c_const=yes
else
ac_cv_c_const=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
$as_echo "$ac_cv_c_const" >&6; }
if test $ac_cv_c_const = no; then
$as_echo "#define const /**/" >>confdefs.h
fi
# On IRIX 5.3, sys/types and inttypes.h are conflicting.
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
inttypes.h stdint.h unistd.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
fi
done
for ac_header in stdlib.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
if test "x$ac_cv_header_stdlib_h" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_STDLIB_H 1
_ACEOF
fi
done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test "$cross_compiling" = yes; then :
ac_cv_func_malloc_0_nonnull=no
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if defined STDC_HEADERS || defined HAVE_STDLIB_H
# include
#else
char *malloc ();
#endif
int
main ()
{
return ! malloc (0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
ac_cv_func_malloc_0_nonnull=yes
else
ac_cv_func_malloc_0_nonnull=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
if test $ac_cv_func_malloc_0_nonnull = yes; then :
$as_echo "#define HAVE_MALLOC 1" >>confdefs.h
else
$as_echo "#define HAVE_MALLOC 0" >>confdefs.h
case " $LIBOBJS " in
*" malloc.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS malloc.$ac_objext"
;;
esac
$as_echo "#define malloc rpl_malloc" >>confdefs.h
fi
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
if test -z "$CXX"; then
if test -n "$CCC"; then
CXX=$CCC
else
if test -n "$ac_tool_prefix"; then
for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CXX+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CXX"; then
ac_cv_prog_CXX="$CXX" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CXX=$ac_cv_prog_CXX
if test -n "$CXX"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
$as_echo "$CXX" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$CXX" && break
done
fi
if test -z "$CXX"; then
ac_ct_CXX=$CXX
for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CXX"; then
ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_CXX="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
if test -n "$ac_ct_CXX"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
$as_echo "$ac_ct_CXX" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$ac_ct_CXX" && break
done
if test "x$ac_ct_CXX" = x; then
CXX="g++"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CXX=$ac_ct_CXX
fi
fi
fi
fi
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
sed '10a\
... rest of stderr output deleted ...
10q' conftest.err >conftest.er1
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
_ACEOF
if ac_fn_cxx_try_compile "$LINENO"; then :
ac_compiler_gnu=yes
else
ac_compiler_gnu=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
if test $ac_compiler_gnu = yes; then
GXX=yes
else
GXX=
fi
ac_test_CXXFLAGS=${CXXFLAGS+set}
ac_save_CXXFLAGS=$CXXFLAGS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
$as_echo_n "checking whether $CXX accepts -g... " >&6; }
if test "${ac_cv_prog_cxx_g+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_save_cxx_werror_flag=$ac_cxx_werror_flag
ac_cxx_werror_flag=yes
ac_cv_prog_cxx_g=no
CXXFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_cxx_try_compile "$LINENO"; then :
ac_cv_prog_cxx_g=yes
else
CXXFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_cxx_try_compile "$LINENO"; then :
else
ac_cxx_werror_flag=$ac_save_cxx_werror_flag
CXXFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_cxx_try_compile "$LINENO"; then :
ac_cv_prog_cxx_g=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cxx_werror_flag=$ac_save_cxx_werror_flag
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
$as_echo "$ac_cv_prog_cxx_g" >&6; }
if test "$ac_test_CXXFLAGS" = set; then
CXXFLAGS=$ac_save_CXXFLAGS
elif test $ac_cv_prog_cxx_g = yes; then
if test "$GXX" = yes; then
CXXFLAGS="-g -O2"
else
CXXFLAGS="-g"
fi
else
if test "$GXX" = yes; then
CXXFLAGS="-O2"
else
CXXFLAGS=
fi
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
depcc="$CXX" am_compiler_list=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
$as_echo_n "checking dependency style of $depcc... " >&6; }
if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
# We will build objects and dependencies in a subdirectory because
# it helps to detect inapplicable dependency modes. For instance
# both Tru64's cc and ICC support -MD to output dependencies as a
# side effect of compilation, but ICC will put the dependencies in
# the current directory while Tru64 will put them in the object
# directory.
mkdir sub
am_cv_CXX_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
fi
am__universal=false
case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
# we should not choose a depcomp mode which is confused by this.
#
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
# Solaris 8's {/usr,}/bin/sh.
touch sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
# We check with `-c' and `-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this. Also, some Intel
# versions had trouble with output in subdirs
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
gcc)
# This depmode causes a compiler race in universal mode.
test "$am__universal" = false || continue
;;
nosideeffect)
# after this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested
if test "x$enable_dependency_tracking" = xyes; then
continue
else
break
fi
;;
msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
am__minus_obj=
;;
none) break ;;
esac
if depmode=$depmode \
source=sub/conftest.c object=$am__obj \
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
>/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored or not supported.
# When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CXX_dependencies_compiler_type=$depmode
break
fi
fi
done
cd ..
rm -rf conftest.dir
else
am_cv_CXX_dependencies_compiler_type=none
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
if
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
am__fastdepCXX_TRUE=
am__fastdepCXX_FALSE='#'
else
am__fastdepCXX_TRUE='#'
am__fastdepCXX_FALSE=
fi
GETTEXT_PACKAGE=linsmith
cat >>confdefs.h <<_ACEOF
#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE"
_ACEOF
ALL_LINGUAS="es zh de hu sv it"
for ac_header in locale.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default"
if test "x$ac_cv_header_locale_h" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LOCALE_H 1
_ACEOF
fi
done
if test $ac_cv_header_locale_h = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5
$as_echo_n "checking for LC_MESSAGES... " >&6; }
if test "${am_cv_val_LC_MESSAGES+set}" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
int
main ()
{
return LC_MESSAGES
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
am_cv_val_LC_MESSAGES=yes
else
am_cv_val_LC_MESSAGES=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5
$as_echo "$am_cv_val_LC_MESSAGES" >&6; }
if test $am_cv_val_LC_MESSAGES = yes; then
$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h
fi
fi
USE_NLS=yes
gt_cv_have_gettext=no
CATOBJEXT=NONE
XGETTEXT=:
INTLLIBS=
ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
if test "x$ac_cv_header_libintl_h" = x""yes; then :
gt_cv_func_dgettext_libintl="no"
libintl_extra_libs=""
#
# First check in libc
#
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5
$as_echo_n "checking for ngettext in libc... " >&6; }
if test "${gt_cv_func_ngettext_libc+set}" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
int
main ()
{
return !ngettext ("","", 1)
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
gt_cv_func_ngettext_libc=yes
else
gt_cv_func_ngettext_libc=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5
$as_echo "$gt_cv_func_ngettext_libc" >&6; }
if test "$gt_cv_func_ngettext_libc" = "yes" ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5
$as_echo_n "checking for dgettext in libc... " >&6; }
if test "${gt_cv_func_dgettext_libc+set}" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
int
main ()
{
return !dgettext ("","")
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
gt_cv_func_dgettext_libc=yes
else
gt_cv_func_dgettext_libc=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5
$as_echo "$gt_cv_func_dgettext_libc" >&6; }
fi
if test "$gt_cv_func_ngettext_libc" = "yes" ; then
for ac_func in bind_textdomain_codeset
do :
ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_BIND_TEXTDOMAIN_CODESET 1
_ACEOF
fi
done
fi
#
# If we don't have everything we want, check in libintl
#
if test "$gt_cv_func_dgettext_libc" != "yes" \
|| test "$gt_cv_func_ngettext_libc" != "yes" \
|| test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5
$as_echo_n "checking for bindtextdomain in -lintl... " >&6; }
if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char bindtextdomain ();
int
main ()
{
return bindtextdomain ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_intl_bindtextdomain=yes
else
ac_cv_lib_intl_bindtextdomain=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5
$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; }
if test "x$ac_cv_lib_intl_bindtextdomain" = x""yes; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5
$as_echo_n "checking for ngettext in -lintl... " >&6; }
if test "${ac_cv_lib_intl_ngettext+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char ngettext ();
int
main ()
{
return ngettext ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_intl_ngettext=yes
else
ac_cv_lib_intl_ngettext=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5
$as_echo "$ac_cv_lib_intl_ngettext" >&6; }
if test "x$ac_cv_lib_intl_ngettext" = x""yes; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5
$as_echo_n "checking for dgettext in -lintl... " >&6; }
if test "${ac_cv_lib_intl_dgettext+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char dgettext ();
int
main ()
{
return dgettext ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_intl_dgettext=yes
else
ac_cv_lib_intl_dgettext=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5
$as_echo "$ac_cv_lib_intl_dgettext" >&6; }
if test "x$ac_cv_lib_intl_dgettext" = x""yes; then :
gt_cv_func_dgettext_libintl=yes
fi
fi
fi
if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5
$as_echo_n "checking if -liconv is needed to use gettext... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
$as_echo "" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5
$as_echo_n "checking for ngettext in -lintl... " >&6; }
if test "${ac_cv_lib_intl_ngettext+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl -liconv $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char ngettext ();
int
main ()
{
return ngettext ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_intl_ngettext=yes
else
ac_cv_lib_intl_ngettext=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5
$as_echo "$ac_cv_lib_intl_ngettext" >&6; }
if test "x$ac_cv_lib_intl_ngettext" = x""yes; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5
$as_echo_n "checking for dcgettext in -lintl... " >&6; }
if test "${ac_cv_lib_intl_dcgettext+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl -liconv $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char dcgettext ();
int
main ()
{
return dcgettext ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_intl_dcgettext=yes
else
ac_cv_lib_intl_dcgettext=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5
$as_echo "$ac_cv_lib_intl_dcgettext" >&6; }
if test "x$ac_cv_lib_intl_dcgettext" = x""yes; then :
gt_cv_func_dgettext_libintl=yes
libintl_extra_libs=-liconv
else
:
fi
else
:
fi
fi
#
# If we found libintl, then check in it for bind_textdomain_codeset();
# we'll prefer libc if neither have bind_textdomain_codeset(),
# and both have dgettext and ngettext
#
if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
glib_save_LIBS="$LIBS"
LIBS="$LIBS -lintl $libintl_extra_libs"
unset ac_cv_func_bind_textdomain_codeset
for ac_func in bind_textdomain_codeset
do :
ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_BIND_TEXTDOMAIN_CODESET 1
_ACEOF
fi
done
LIBS="$glib_save_LIBS"
if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
gt_cv_func_dgettext_libc=no
else
if test "$gt_cv_func_dgettext_libc" = "yes" \
&& test "$gt_cv_func_ngettext_libc" = "yes"; then
gt_cv_func_dgettext_libintl=no
fi
fi
fi
fi
if test "$gt_cv_func_dgettext_libc" = "yes" \
|| test "$gt_cv_func_dgettext_libintl" = "yes"; then
gt_cv_have_gettext=yes
fi
if test "$gt_cv_func_dgettext_libintl" = "yes"; then
INTLLIBS="-lintl $libintl_extra_libs"
fi
if test "$gt_cv_have_gettext" = "yes"; then
$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_path_MSGFMT+set}" = set; then :
$as_echo_n "(cached) " >&6
else
case "$MSGFMT" in
/*)
ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
;;
*)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
ac_cv_path_MSGFMT="$ac_dir/$ac_word"
break
fi
fi
done
IFS="$ac_save_ifs"
test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no"
;;
esac
fi
MSGFMT="$ac_cv_path_MSGFMT"
if test "$MSGFMT" != "no"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
$as_echo "$MSGFMT" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "$MSGFMT" != "no"; then
glib_save_LIBS="$LIBS"
LIBS="$LIBS $INTLLIBS"
for ac_func in dcgettext
do :
ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext"
if test "x$ac_cv_func_dcgettext" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_DCGETTEXT 1
_ACEOF
fi
done
MSGFMT_OPTS=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5
$as_echo_n "checking if msgfmt accepts -c... " >&6; }
cat >conftest.foo <<_ACEOF
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Project-Id-Version: test 1.0\n"
"PO-Revision-Date: 2007-02-15 12:01+0100\n"
"Last-Translator: test \n"
"Language-Team: C \n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
_ACEOF
if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5
($MSGFMT -c -o /dev/null conftest.foo) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
echo "$as_me: failed input was:" >&5
sed 's/^/| /' conftest.foo >&5
fi
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_path_GMSGFMT+set}" = set; then :
$as_echo_n "(cached) " >&6
else
case $GMSGFMT in
[\\/]* | ?:[\\/]*)
ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
;;
esac
fi
GMSGFMT=$ac_cv_path_GMSGFMT
if test -n "$GMSGFMT"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
$as_echo "$GMSGFMT" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_path_XGETTEXT+set}" = set; then :
$as_echo_n "(cached) " >&6
else
case "$XGETTEXT" in
/*)
ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
;;
*)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
break
fi
fi
done
IFS="$ac_save_ifs"
test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
;;
esac
fi
XGETTEXT="$ac_cv_path_XGETTEXT"
if test "$XGETTEXT" != ":"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
$as_echo "$XGETTEXT" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
extern int _nl_msg_cat_cntr;
return _nl_msg_cat_cntr
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
CATOBJEXT=.gmo
DATADIRNAME=share
else
case $host in
*-*-solaris*)
ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then :
CATOBJEXT=.gmo
DATADIRNAME=share
else
CATOBJEXT=.mo
DATADIRNAME=lib
fi
;;
*)
CATOBJEXT=.mo
DATADIRNAME=lib
;;
esac
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS="$glib_save_LIBS"
INSTOBJEXT=.mo
else
gt_cv_have_gettext=no
fi
fi
fi
if test "$gt_cv_have_gettext" = "yes" ; then
$as_echo "#define ENABLE_NLS 1" >>confdefs.h
fi
if test "$XGETTEXT" != ":"; then
if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
: ;
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5
$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; }
XGETTEXT=":"
fi
fi
# We need to process the po/ directory.
POSUB=po
ac_config_commands="$ac_config_commands default-1"
for lang in $ALL_LINGUAS; do
GMOFILES="$GMOFILES $lang.gmo"
POFILES="$POFILES $lang.po"
done
if test "$gt_cv_have_gettext" = "yes"; then
if test "x$ALL_LINGUAS" = "x"; then
LINGUAS=
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5
$as_echo_n "checking for catalogs to be installed... " >&6; }
NEW_LINGUAS=
for presentlang in $ALL_LINGUAS; do
useit=no
if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then
desiredlanguages="$LINGUAS"
else
desiredlanguages="$ALL_LINGUAS"
fi
for desiredlang in $desiredlanguages; do
# Use the presentlang catalog if desiredlang is
# a. equal to presentlang, or
# b. a variant of presentlang (because in this case,
# presentlang can be used as a fallback for messages
# which are not translated in the desiredlang catalog).
case "$desiredlang" in
"$presentlang"*) useit=yes;;
esac
done
if test $useit = yes; then
NEW_LINGUAS="$NEW_LINGUAS $presentlang"
fi
done
LINGUAS=$NEW_LINGUAS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5
$as_echo "$LINGUAS" >&6; }
fi
if test -n "$LINGUAS"; then
for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
fi
fi
MKINSTALLDIRS=
if test -n "$ac_aux_dir"; then
MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
fi
if test -z "$MKINSTALLDIRS"; then
MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
fi
test -d po || mkdir po
if test "x$srcdir" != "x."; then
if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
posrcprefix="$srcdir/"
else
posrcprefix="../$srcdir/"
fi
else
posrcprefix="../"
fi
rm -f po/POTFILES
sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
< $srcdir/po/POTFILES.in > po/POTFILES
ac_config_files="$ac_config_files Makefile src/Makefile po/Makefile.in"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs, see configure's option --config-cache.
# It is not useful on other systems. If it contains results you don't
# want to keep, you may remove or edit it.
#
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.
_ACEOF
# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, we kill variables containing newlines.
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(
for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
*_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
*) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
(set) 2>&1 |
case $as_nl`(ac_space=' '; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
# `set' does not quote correctly, so add quotes: double-quote
# substitution turns \\\\ into \\, and sed turns \\ into \.
sed -n \
"s/'/'\\\\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
;; #(
*)
# `set' quotes correctly as required by POSIX, so do not add quotes.
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
) |
sed '
/^ac_cv_env_/b end
t clear
:clear
s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
t end
s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
test "x$cache_file" != "x/dev/null" &&
{ $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
cat confcache >$cache_file
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
fi
fi
rm -f confcache
test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
DEFS=-DHAVE_CONFIG_H
ac_libobjs=
ac_ltlibobjs=
U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
# 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
# will be set to the directory where LIBOBJS objects are built.
as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
done
LIBOBJS=$ac_libobjs
LTLIBOBJS=$ac_ltlibobjs
if test -n "$EXEEXT"; then
am__EXEEXT_TRUE=
am__EXEEXT_FALSE='#'
else
am__EXEEXT_TRUE='#'
am__EXEEXT_FALSE=
fi
if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
as_fn_error $? "conditional \"AMDEP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
: ${CONFIG_STATUS=./config.status}
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
as_write_fail=0
cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
#! $SHELL
# Generated by $as_me.
# Run this file to recreate the current configuration.
# Compiler output produced by configure, useful for debugging
# configure, is in config.log if it exists.
debug=false
ac_cs_recheck=false
ac_cs_silent=false
SHELL=\${CONFIG_SHELL-$SHELL}
export SHELL
_ASEOF
cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
# Prefer a ksh shell builtin over an external printf program on Solaris,
# but without wasting forks for bash or zsh.
if test -z "$BASH_VERSION$ZSH_VERSION" \
&& (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='print -r --'
as_echo_n='print -rn --'
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='printf %s\n'
as_echo_n='printf %s'
else
if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
as_echo_n='/usr/ucb/echo -n'
else
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
as_echo_n_body='eval
arg=$1;
case $arg in #(
*"$as_nl"*)
expr "X$arg" : "X\\(.*\\)$as_nl";
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
esac;
expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
'
export as_echo_n_body
as_echo_n='sh -c $as_echo_n_body as_echo'
fi
export as_echo_body
as_echo='sh -c $as_echo_body as_echo'
fi
# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
# IFS
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
done
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
$as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
# Unset variables that we do not need and which cause bugs (e.g. in
# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
# suppresses any "Segmentation fault" message there. '((' could
# trigger a bug in pdksh 5.2.14.
for as_var in BASH_ENV ENV MAIL MAILPATH
do eval test x\${$as_var+set} = xset \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
PS4='+ '
# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
$as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
$as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else
as_fn_append ()
{
eval $1=\$$1\$2
}
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
# In both cases, we have to default to `cp -p'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -p'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -p'
fi
else
as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
if mkdir -p . 2>/dev/null; then
as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
if test -x / >/dev/null 2>&1; then
as_test_x='test -x'
else
if ls -dL / >/dev/null 2>&1; then
as_ls_L_option=L
else
as_ls_L_option=
fi
as_test_x='
eval sh -c '\''
if test -d "$1"; then
test -d "$1/.";
else
case $1 in #(
-*)set "./$1";;
esac;
case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
???[sx]*):;;*)false;;esac;fi
'\'' sh
'
fi
as_executable_p=$as_test_x
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
exec 6>&1
## ----------------------------------- ##
## Main body of $CONFIG_STATUS script. ##
## ----------------------------------- ##
_ASEOF
test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Save the log message, to keep $0 and so on meaningful, and to
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by linsmith $as_me 0.99.21, which was
generated by GNU Autoconf 2.66. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
CONFIG_LINKS = $CONFIG_LINKS
CONFIG_COMMANDS = $CONFIG_COMMANDS
$ $0 $@
on `(hostname || uname -n) 2>/dev/null | sed 1q`
"
_ACEOF
case $ac_config_files in *"
"*) set x $ac_config_files; shift; ac_config_files=$*;;
esac
case $ac_config_headers in *"
"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
esac
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
# Files that config.status was made for.
config_files="$ac_config_files"
config_headers="$ac_config_headers"
config_commands="$ac_config_commands"
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
ac_cs_usage="\
\`$as_me' instantiates files and other configuration actions
from templates according to the current configuration. Unless the files
and actions are specified as TAGs, all are instantiated by default.
Usage: $0 [OPTION]... [TAG]...
-h, --help print this help, then exit
-V, --version print version number and configuration settings, then exit
--config print configuration, then exit
-q, --quiet, --silent
do not print progress messages
-d, --debug don't remove temporary files
--recheck update $as_me by reconfiguring in the same conditions
--file=FILE[:TEMPLATE]
instantiate the configuration file FILE
--header=FILE[:TEMPLATE]
instantiate the configuration header FILE
Configuration files:
$config_files
Configuration headers:
$config_headers
Configuration commands:
$config_commands
Report bugs to the package provider."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
linsmith config.status 0.99.21
configured by $0, generated by GNU Autoconf 2.66,
with options \\"\$ac_cs_config\\"
Copyright (C) 2010 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
ac_pwd='$ac_pwd'
srcdir='$srcdir'
INSTALL='$INSTALL'
MKDIR_P='$MKDIR_P'
AWK='$AWK'
test -n "\$AWK" || AWK=awk
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# The default lists apply if the user does not specify any file.
ac_need_defaults=:
while test $# != 0
do
case $1 in
--*=*)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
ac_shift=:
;;
*)
ac_option=$1
ac_optarg=$2
ac_shift=shift
;;
esac
case $ac_option in
# Handling of the options.
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
$as_echo "$ac_cs_version"; exit ;;
--config | --confi | --conf | --con | --co | --c )
$as_echo "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
ac_need_defaults=false;;
--header | --heade | --head | --hea )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append CONFIG_HEADERS " '$ac_optarg'"
ac_need_defaults=false;;
--he | --h)
# Conflict between --help and --header
as_fn_error $? "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
--help | --hel | -h )
$as_echo "$ac_cs_usage"; exit ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil | --si | --s)
ac_cs_silent=: ;;
# This is an error.
-*) as_fn_error $? "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;
*) as_fn_append ac_config_targets " $1"
ac_need_defaults=false ;;
esac
shift
done
ac_configure_extra_args=
if $ac_cs_silent; then
exec 6>/dev/null
ac_configure_extra_args="$ac_configure_extra_args --silent"
fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
export CONFIG_SHELL
exec "\$@"
fi
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
exec 5>>config.log
{
echo
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
$as_echo "$ac_log"
} >&5
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
#
# INIT-COMMANDS
#
AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Handling of arguments.
for ac_config_target in $ac_config_targets
do
case $ac_config_target in
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
"po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
# If the user did not use the arguments to specify the items to instantiate,
# then the envvar interface is used. Set only those that are not.
# We use the long form for the default assignment because of an extremely
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
fi
# Have a temporary directory for convenience. Make it in the build tree
# simply because there is no reason against having it here, and in addition,
# creating and moving files from /tmp can sometimes cause problems.
# Hook for its removal unless debugging.
# Note that there is a small window in which the directory will not be cleaned:
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
tmp=
trap 'exit_status=$?
{ test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
' 0
trap 'as_fn_exit 1' 1 2 13 15
}
# Create a (secure) tmp directory for tmp files.
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
test -n "$tmp" && test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
# This happens for instance with `./config.status config.h'.
if test -n "$CONFIG_FILES"; then
ac_cr=`echo X | tr X '\015'`
# On cygwin, bash can eat \r inside `` if the user requested igncr.
# But we know of no other shell where ac_cr would be empty at this
# point, so we can use a bashism as a fallback.
if test "x$ac_cr" = x; then
eval ac_cr=\$\'\\r\'
fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
ac_cs_awk_cr='\\r'
else
ac_cs_awk_cr=$ac_cr
fi
echo 'BEGIN {' >"$tmp/subs1.awk" &&
_ACEOF
{
echo "cat >conf$$subs.awk <<_ACEOF" &&
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
echo "_ACEOF"
} >conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
. ./conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
if test $ac_delim_n = $ac_delim_num; then
break
elif $ac_last_try; then
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
done
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
s/^/S["/; s/!.*/"]=/
p
g
s/^[^!]*!//
:repl
t repl
s/'"$ac_delim"'$//
t delim
:nl
h
s/\(.\{148\}\)..*/\1/
t more1
s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
p
n
b repl
:more1
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t nl
:delim
h
s/\(.\{148\}\)..*/\1/
t more2
s/["\\]/\\&/g; s/^/"/; s/$/"/
p
b
:more2
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t delim
' >$CONFIG_STATUS || ac_write_fail=1
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
cat >>"\$tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
FS = ""
}
{
line = $ 0
nfields = split(line, field, "@")
substed = 0
len = length(field[1])
for (i = 2; i < nfields; i++) {
key = field[i]
keylen = length(key)
if (S_is_set[key]) {
value = S[key]
line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
len += length(value) + length(field[++i])
substed = 1
} else
len += 1 + keylen
}
print line
}
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
cat
fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
|| as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
h
s///
s/^/:/
s/[ ]*$/:/
s/:\$(srcdir):/:/g
s/:\${srcdir}:/:/g
s/:@srcdir@:/:/g
s/^:*//
s/:*$//
x
s/\(=[ ]*\).*/\1/
G
s/\n//
s/^[^=]*=[ ]*$//
}'
fi
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
fi # test -n "$CONFIG_FILES"
# Set up the scripts for CONFIG_HEADERS section.
# No need to generate them if there are no CONFIG_HEADERS.
# This happens for instance with `./config.status Makefile'.
if test -n "$CONFIG_HEADERS"; then
cat >"$tmp/defines.awk" <<\_ACAWK ||
BEGIN {
_ACEOF
# Transform confdefs.h into an awk script `defines.awk', embedded as
# here-document in config.status, that substitutes the proper values into
# config.h.in to produce config.h.
# Create a delimiter string that does not exist in confdefs.h, to ease
# handling of long lines.
ac_delim='%!_!# '
for ac_last_try in false false :; do
ac_t=`sed -n "/$ac_delim/p" confdefs.h`
if test -z "$ac_t"; then
break
elif $ac_last_try; then
as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
done
# For the awk script, D is an array of macro values keyed by name,
# likewise P contains macro parameters if any. Preserve backslash
# newline sequences.
ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
sed -n '
s/.\{148\}/&'"$ac_delim"'/g
t rset
:rset
s/^[ ]*#[ ]*define[ ][ ]*/ /
t def
d
:def
s/\\$//
t bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3"/p
s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
d
:bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3\\\\\\n"\\/p
t cont
s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
t cont
d
:cont
n
s/.\{148\}/&'"$ac_delim"'/g
t clear
:clear
s/\\$//
t bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/"/p
d
:bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
b cont
' >$CONFIG_STATUS || ac_write_fail=1
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
for (key in D) D_is_set[key] = 1
FS = ""
}
/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
line = \$ 0
split(line, arg, " ")
if (arg[1] == "#") {
defundef = arg[2]
mac1 = arg[3]
} else {
defundef = substr(arg[1], 2)
mac1 = arg[2]
}
split(mac1, mac2, "(") #)
macro = mac2[1]
prefix = substr(line, 1, index(line, defundef) - 1)
if (D_is_set[macro]) {
# Preserve the white space surrounding the "#".
print prefix "define", macro P[macro] D[macro]
next
} else {
# Replace #undef with comments. This is necessary, for example,
# in the case of _POSIX_SOURCE, which is predefined and required
# on some systems where configure will not decide to define it.
if (defundef == "undef") {
print "/*", prefix defundef, macro, "*/"
next
}
}
}
{ print }
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
fi # test -n "$CONFIG_HEADERS"
eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
shift
for ac_tag
do
case $ac_tag in
:[FHLC]) ac_mode=$ac_tag; continue;;
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
:L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
ac_save_IFS=$IFS
IFS=:
set x $ac_tag
IFS=$ac_save_IFS
shift
ac_file=$1
shift
case $ac_mode in
:L) ac_source=$1;;
:[FH])
ac_file_inputs=
for ac_f
do
case $ac_f in
-) ac_f="$tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'.
test -f "$ac_f" ||
case $ac_f in
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
done
# Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
configure_input='Generated from '`
$as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
`' by configure.'
if test x"$ac_file" != x-; then
configure_input="$ac_file. $configure_input"
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
$as_echo "$as_me: creating $ac_file" >&6;}
fi
# Neutralize special characters interpreted by sed in replacement strings.
case $configure_input in #(
*\&* | *\|* | *\\* )
ac_sed_conf_input=`$as_echo "$configure_input" |
sed 's/[\\\\&|]/\\\\&/g'`;; #(
*) ac_sed_conf_input=$configure_input;;
esac
case $ac_tag in
*:-:* | *:-) cat >"$tmp/stdin" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
ac_dir=`$as_dirname -- "$ac_file" ||
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$ac_file" : 'X\(//\)[^/]' \| \
X"$ac_file" : 'X\(//\)$' \| \
X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$ac_file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
as_dir="$ac_dir"; as_fn_mkdir_p
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
case $ac_mode in
:F)
#
# CONFIG_FILE
#
case $INSTALL in
[\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
*) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
esac
ac_MKDIR_P=$MKDIR_P
case $MKDIR_P in
[\\/$]* | ?:[\\/]* ) ;;
*/*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
esac
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# If the template does not know about datarootdir, expand it.
# FIXME: This hack should be removed a few years after 2.60.
ac_datarootdir_hack=; ac_datarootdir_seen=
ac_sed_dataroot='
/datarootdir/ {
p
q
}
/@datadir@/p
/@docdir@/p
/@infodir@/p
/@localedir@/p
/@mandir@/p'
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
*datarootdir*) ac_datarootdir_seen=yes;;
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_datarootdir_hack='
s&@datadir@&$datadir&g
s&@docdir@&$docdir&g
s&@infodir@&$infodir&g
s&@localedir@&$localedir&g
s&@mandir@&$mandir&g
s&\\\${datarootdir}&$datarootdir&g' ;;
esac
_ACEOF
# Neutralize VPATH when `$srcdir' = `.'.
# Shell code in configure.ac might set extrasub.
# FIXME: do we really want to maintain this feature?
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_sed_extra="$ac_vpsub
$extrasub
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
:t
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
s|@configure_input@|$ac_sed_conf_input|;t t
s&@top_builddir@&$ac_top_builddir_sub&;t t
s&@top_build_prefix@&$ac_top_build_prefix&;t t
s&@srcdir@&$ac_srcdir&;t t
s&@abs_srcdir@&$ac_abs_srcdir&;t t
s&@top_srcdir@&$ac_top_srcdir&;t t
s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
s&@builddir@&$ac_builddir&;t t
s&@abs_builddir@&$ac_abs_builddir&;t t
s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
s&@INSTALL@&$ac_INSTALL&;t t
s&@MKDIR_P@&$ac_MKDIR_P&;t t
$ac_datarootdir_hack
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$tmp/stdin"
case $ac_file in
-) cat "$tmp/out" && rm -f "$tmp/out";;
*) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
esac \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
:H)
#
# CONFIG_HEADER
#
if test x"$ac_file" != x-; then
{
$as_echo "/* $configure_input */" \
&& eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
} >"$tmp/config.h" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
$as_echo "$as_me: $ac_file is unchanged" >&6;}
else
rm -f "$ac_file"
mv "$tmp/config.h" "$ac_file" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi
else
$as_echo "/* $configure_input */" \
&& eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
|| as_fn_error $? "could not create -" "$LINENO" 5
fi
# Compute "$ac_file"'s index in $config_headers.
_am_arg="$ac_file"
_am_stamp_count=1
for _am_header in $config_headers :; do
case $_am_header in
$_am_arg | $_am_arg:* )
break ;;
* )
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
esac
done
echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$_am_arg" : 'X\(//\)[^/]' \| \
X"$_am_arg" : 'X\(//\)$' \| \
X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$_am_arg" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`/stamp-h$_am_stamp_count
;;
:C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
$as_echo "$as_me: executing $ac_file commands" >&6;}
;;
esac
case $ac_file$ac_mode in
"depfiles":C) test x"$AMDEP_TRUE" != x"" || {
# Autoconf 2.62 quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
case $CONFIG_FILES in
*\'*) eval set x "$CONFIG_FILES" ;;
*) set x $CONFIG_FILES ;;
esac
shift
for mf
do
# Strip MF so we end up with the name of the file.
mf=`echo "$mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile or not.
# We used to match only the files named `Makefile.in', but
# some people rename them; so instead we look at the file content.
# Grep'ing the first line is not enough: some people post-process
# each Makefile.in and add a new line on top of each file to say so.
# Grep'ing the whole file is not good either: AIX grep has a line
# limit of 2048, but all sed's we know have understand at least 4000.
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
dirpart=`$as_dirname -- "$mf" ||
$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$mf" : 'X\(//\)[^/]' \| \
X"$mf" : 'X\(//\)$' \| \
X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$mf" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
else
continue
fi
# Extract the definition of DEPDIR, am__include, and am__quote
# from the Makefile without running `make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
am__include=`sed -n 's/^am__include = //p' < "$mf"`
test -z "am__include" && continue
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
U=`sed -n 's/^U = //p' < "$mf"`
# Find all dependency output files, they are included files with
# $(DEPDIR) in their names. We invoke sed twice because it is the
# simplest approach to changing $(DEPDIR) to its actual value in the
# expansion.
for file in `sed -n "
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
fdir=`$as_dirname -- "$file" ||
$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$file" : 'X\(//\)[^/]' \| \
X"$file" : 'X\(//\)$' \| \
X"$file" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
as_dir=$dirpart/$fdir; as_fn_mkdir_p
# echo "creating $dirpart/$file"
echo '# dummy' > "$dirpart/$file"
done
done
}
;;
"default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*)
sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
esac ;;
esac
done # for ac_tag
as_fn_exit 0
_ACEOF
ac_clean_files=$ac_clean_files_save
test $ac_write_fail = 0 ||
as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
# configure is writing to config.log, and then calls config.status.
# config.status does its own redirection, appending to config.log.
# Unfortunately, on DOS this fails, as config.log is still kept open
# by configure, so config.status won't be able to write to it; its
# output is simply discarded. So we exec the FD to /dev/null,
# effectively closing config.log, so it can be properly (re)opened and
# appended to by config.status. When coming back to configure, we
# need to make the FD available again.
if test "$no_create" != yes; then
ac_cs_success=:
ac_config_status_args=
test "$silent" = yes &&
ac_config_status_args="$ac_config_status_args --quiet"
exec 5>/dev/null
$SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
$ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
linsmith-0.99.21/autogen.sh 0000755 0000000 0000000 00000010630 10034303012 012375 0000000 0000000 #!/bin/sh
# Run this to generate all the initial makefiles, etc.
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
DIE=0
if [ -n "$GNOME2_DIR" ]; then
ACLOCAL_FLAGS="-I $GNOME2_DIR/share/aclocal $ACLOCAL_FLAGS"
LD_LIBRARY_PATH="$GNOME2_DIR/lib:$LD_LIBRARY_PATH"
PATH="$GNOME2_DIR/bin:$PATH"
export PATH
export LD_LIBRARY_PATH
fi
(test -f $srcdir/configure.in) || {
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
echo " top-level package directory"
exit 1
}
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`autoconf' installed."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}
(grep "^AC_PROG_INTLTOOL" $srcdir/configure.in >/dev/null) && {
(intltoolize --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`intltool' installed."
echo "You can get it from:"
echo " ftp://ftp.gnome.org/pub/GNOME/"
DIE=1
}
}
(grep "^AM_PROG_XML_I18N_TOOLS" $srcdir/configure.in >/dev/null) && {
(xml-i18n-toolize --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`xml-i18n-toolize' installed."
echo "You can get it from:"
echo " ftp://ftp.gnome.org/pub/GNOME/"
DIE=1
}
}
(grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && {
(libtool --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`libtool' installed."
echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}
}
(grep "^AM_GLIB_GNU_GETTEXT" $srcdir/configure.in >/dev/null) && {
(grep "sed.*POTFILES" $srcdir/configure.in) > /dev/null || \
(glib-gettextize --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`glib' installed."
echo "You can get it from: ftp://ftp.gtk.org/pub/gtk"
DIE=1
}
}
(automake --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`automake' installed."
echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
DIE=1
NO_AUTOMAKE=yes
}
# if no automake, don't bother testing for aclocal
test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: Missing \`aclocal'. The version of \`automake'"
echo "installed doesn't appear recent enough."
echo "You can get automake from ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}
if test "$DIE" -eq 1; then
exit 1
fi
if test -z "$*"; then
echo "**Warning**: I am going to run \`configure' with no arguments."
echo "If you wish to pass any to it, please specify them on the"
echo \`$0\'" command line."
echo
fi
case $CC in
xlc )
am_opt=--include-deps;;
esac
for coin in `find $srcdir -path $srcdir/CVS -prune -o -name configure.in -print`
do
dr=`dirname $coin`
if test -f $dr/NO-AUTO-GEN; then
echo skipping $dr -- flagged as no auto-gen
else
echo processing $dr
( cd $dr
aclocalinclude="$ACLOCAL_FLAGS"
if grep "^AM_GLIB_GNU_GETTEXT" configure.in >/dev/null; then
echo "Creating $dr/aclocal.m4 ..."
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
echo "Running glib-gettextize... Ignore non-fatal messages."
echo "no" | glib-gettextize --force --copy
echo "Making $dr/aclocal.m4 writable ..."
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
fi
if grep "^AC_PROG_INTLTOOL" configure.in >/dev/null; then
echo "Running intltoolize..."
intltoolize --copy --force --automake
fi
if grep "^AM_PROG_XML_I18N_TOOLS" configure.in >/dev/null; then
echo "Running xml-i18n-toolize..."
xml-i18n-toolize --copy --force --automake
fi
if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then
if test -z "$NO_LIBTOOLIZE" ; then
echo "Running libtoolize..."
libtoolize --force --copy
fi
fi
echo "Running aclocal $aclocalinclude ..."
aclocal $aclocalinclude
if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then
echo "Running autoheader..."
autoheader
fi
echo "Running automake --gnu $am_opt ..."
automake --add-missing --gnu $am_opt
echo "Running autoconf ..."
autoconf
)
fi
done
conf_flags="--enable-maintainer-mode"
if test x$NOCONFIGURE = x; then
echo Running $srcdir/configure $conf_flags "$@" ...
$srcdir/configure $conf_flags "$@" \
&& echo Now type \`make\' to compile. || exit 1
else
echo Skipping configure process.
fi
linsmith-0.99.21/aclocal.m4 0000644 0000000 0000000 00000152512 11541470566 012271 0000000 0000000 # generated automatically by aclocal 1.11.1 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.66],,
[m4_warning([this file was generated for autoconf 2.66.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])
# Copyright (C) 1995-2002 Free Software Foundation, Inc.
# Copyright (C) 2001-2003,2004 Red Hat, Inc.
#
# This file is free software, distributed under the terms of the GNU
# General Public License. As a special exception to the GNU General
# Public License, this file may be distributed as part of a program
# that contains a configuration script generated by Autoconf, under
# the same distribution terms as the rest of that program.
#
# This file can be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU Public License
# but which still want to provide support for the GNU gettext functionality.
#
# Macro to add for using GNU gettext.
# Ulrich Drepper , 1995, 1996
#
# Modified to never use included libintl.
# Owen Taylor , 12/15/1998
#
# Major rework to remove unused code
# Owen Taylor , 12/11/2002
#
# Added better handling of ALL_LINGUAS from GNU gettext version
# written by Bruno Haible, Owen Taylor 5/30/3002
#
# Modified to require ngettext
# Matthias Clasen 08/06/2004
#
# We need this here as well, since someone might use autoconf-2.5x
# to configure GLib then an older version to configure a package
# using AM_GLIB_GNU_GETTEXT
AC_PREREQ(2.53)
dnl
dnl We go to great lengths to make sure that aclocal won't
dnl try to pull in the installed version of these macros
dnl when running aclocal in the glib directory.
dnl
m4_copy([AC_DEFUN],[glib_DEFUN])
m4_copy([AC_REQUIRE],[glib_REQUIRE])
dnl
dnl At the end, if we're not within glib, we'll define the public
dnl definitions in terms of our private definitions.
dnl
# GLIB_LC_MESSAGES
#--------------------
glib_DEFUN([GLIB_LC_MESSAGES],
[AC_CHECK_HEADERS([locale.h])
if test $ac_cv_header_locale_h = yes; then
AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
[AC_TRY_LINK([#include ], [return LC_MESSAGES],
am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
if test $am_cv_val_LC_MESSAGES = yes; then
AC_DEFINE(HAVE_LC_MESSAGES, 1,
[Define if your file defines LC_MESSAGES.])
fi
fi])
# GLIB_PATH_PROG_WITH_TEST
#----------------------------
dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
glib_DEFUN([GLIB_PATH_PROG_WITH_TEST],
[# Extract the first word of "$2", so it can be a program name with args.
set dummy $2; ac_word=[$]2
AC_MSG_CHECKING([for $ac_word])
AC_CACHE_VAL(ac_cv_path_$1,
[case "[$]$1" in
/*)
ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
;;
*)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in ifelse([$5], , $PATH, [$5]); do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
if [$3]; then
ac_cv_path_$1="$ac_dir/$ac_word"
break
fi
fi
done
IFS="$ac_save_ifs"
dnl If no 4th arg is given, leave the cache variable unset,
dnl so AC_PATH_PROGS will keep looking.
ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
])dnl
;;
esac])dnl
$1="$ac_cv_path_$1"
if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
AC_MSG_RESULT([$]$1)
else
AC_MSG_RESULT(no)
fi
AC_SUBST($1)dnl
])
# GLIB_WITH_NLS
#-----------------
glib_DEFUN([GLIB_WITH_NLS],
dnl NLS is obligatory
[USE_NLS=yes
AC_SUBST(USE_NLS)
gt_cv_have_gettext=no
CATOBJEXT=NONE
XGETTEXT=:
INTLLIBS=
AC_CHECK_HEADER(libintl.h,
[gt_cv_func_dgettext_libintl="no"
libintl_extra_libs=""
#
# First check in libc
#
AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc,
[AC_TRY_LINK([
#include
],
[return !ngettext ("","", 1)],
gt_cv_func_ngettext_libc=yes,
gt_cv_func_ngettext_libc=no)
])
if test "$gt_cv_func_ngettext_libc" = "yes" ; then
AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc,
[AC_TRY_LINK([
#include
],
[return !dgettext ("","")],
gt_cv_func_dgettext_libc=yes,
gt_cv_func_dgettext_libc=no)
])
fi
if test "$gt_cv_func_ngettext_libc" = "yes" ; then
AC_CHECK_FUNCS(bind_textdomain_codeset)
fi
#
# If we don't have everything we want, check in libintl
#
if test "$gt_cv_func_dgettext_libc" != "yes" \
|| test "$gt_cv_func_ngettext_libc" != "yes" \
|| test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
AC_CHECK_LIB(intl, bindtextdomain,
[AC_CHECK_LIB(intl, ngettext,
[AC_CHECK_LIB(intl, dgettext,
gt_cv_func_dgettext_libintl=yes)])])
if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
AC_MSG_CHECKING([if -liconv is needed to use gettext])
AC_MSG_RESULT([])
AC_CHECK_LIB(intl, ngettext,
[AC_CHECK_LIB(intl, dcgettext,
[gt_cv_func_dgettext_libintl=yes
libintl_extra_libs=-liconv],
:,-liconv)],
:,-liconv)
fi
#
# If we found libintl, then check in it for bind_textdomain_codeset();
# we'll prefer libc if neither have bind_textdomain_codeset(),
# and both have dgettext and ngettext
#
if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
glib_save_LIBS="$LIBS"
LIBS="$LIBS -lintl $libintl_extra_libs"
unset ac_cv_func_bind_textdomain_codeset
AC_CHECK_FUNCS(bind_textdomain_codeset)
LIBS="$glib_save_LIBS"
if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
gt_cv_func_dgettext_libc=no
else
if test "$gt_cv_func_dgettext_libc" = "yes" \
&& test "$gt_cv_func_ngettext_libc" = "yes"; then
gt_cv_func_dgettext_libintl=no
fi
fi
fi
fi
if test "$gt_cv_func_dgettext_libc" = "yes" \
|| test "$gt_cv_func_dgettext_libintl" = "yes"; then
gt_cv_have_gettext=yes
fi
if test "$gt_cv_func_dgettext_libintl" = "yes"; then
INTLLIBS="-lintl $libintl_extra_libs"
fi
if test "$gt_cv_have_gettext" = "yes"; then
AC_DEFINE(HAVE_GETTEXT,1,
[Define if the GNU gettext() function is already present or preinstalled.])
GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
if test "$MSGFMT" != "no"; then
glib_save_LIBS="$LIBS"
LIBS="$LIBS $INTLLIBS"
AC_CHECK_FUNCS(dcgettext)
MSGFMT_OPTS=
AC_MSG_CHECKING([if msgfmt accepts -c])
GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Project-Id-Version: test 1.0\n"
"PO-Revision-Date: 2007-02-15 12:01+0100\n"
"Last-Translator: test \n"
"Language-Team: C \n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])])
AC_SUBST(MSGFMT_OPTS)
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
return _nl_msg_cat_cntr],
[CATOBJEXT=.gmo
DATADIRNAME=share],
[case $host in
*-*-solaris*)
dnl On Solaris, if bind_textdomain_codeset is in libc,
dnl GNU format message catalog is always supported,
dnl since both are added to the libc all together.
dnl Hence, we'd like to go with DATADIRNAME=share and
dnl and CATOBJEXT=.gmo in this case.
AC_CHECK_FUNC(bind_textdomain_codeset,
[CATOBJEXT=.gmo
DATADIRNAME=share],
[CATOBJEXT=.mo
DATADIRNAME=lib])
;;
*)
CATOBJEXT=.mo
DATADIRNAME=lib
;;
esac])
LIBS="$glib_save_LIBS"
INSTOBJEXT=.mo
else
gt_cv_have_gettext=no
fi
fi
])
if test "$gt_cv_have_gettext" = "yes" ; then
AC_DEFINE(ENABLE_NLS, 1,
[always defined to indicate that i18n is enabled])
fi
dnl Test whether we really found GNU xgettext.
if test "$XGETTEXT" != ":"; then
dnl If it is not GNU xgettext we define it as : so that the
dnl Makefiles still can work.
if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
: ;
else
AC_MSG_RESULT(
[found xgettext program is not GNU xgettext; ignore it])
XGETTEXT=":"
fi
fi
# We need to process the po/ directory.
POSUB=po
AC_OUTPUT_COMMANDS(
[case "$CONFIG_FILES" in *po/Makefile.in*)
sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
esac])
dnl These rules are solely for the distribution goal. While doing this
dnl we only have to keep exactly one list of the available catalogs
dnl in configure.ac.
for lang in $ALL_LINGUAS; do
GMOFILES="$GMOFILES $lang.gmo"
POFILES="$POFILES $lang.po"
done
dnl Make all variables we use known to autoconf.
AC_SUBST(CATALOGS)
AC_SUBST(CATOBJEXT)
AC_SUBST(DATADIRNAME)
AC_SUBST(GMOFILES)
AC_SUBST(INSTOBJEXT)
AC_SUBST(INTLLIBS)
AC_SUBST(PO_IN_DATADIR_TRUE)
AC_SUBST(PO_IN_DATADIR_FALSE)
AC_SUBST(POFILES)
AC_SUBST(POSUB)
])
# AM_GLIB_GNU_GETTEXT
# -------------------
# Do checks necessary for use of gettext. If a suitable implementation
# of gettext is found in either in libintl or in the C library,
# it will set INTLLIBS to the libraries needed for use of gettext
# and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable
# gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST()
# on various variables needed by the Makefile.in.in installed by
# glib-gettextize.
dnl
glib_DEFUN([GLIB_GNU_GETTEXT],
[AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AC_HEADER_STDC])dnl
GLIB_LC_MESSAGES
GLIB_WITH_NLS
if test "$gt_cv_have_gettext" = "yes"; then
if test "x$ALL_LINGUAS" = "x"; then
LINGUAS=
else
AC_MSG_CHECKING(for catalogs to be installed)
NEW_LINGUAS=
for presentlang in $ALL_LINGUAS; do
useit=no
if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then
desiredlanguages="$LINGUAS"
else
desiredlanguages="$ALL_LINGUAS"
fi
for desiredlang in $desiredlanguages; do
# Use the presentlang catalog if desiredlang is
# a. equal to presentlang, or
# b. a variant of presentlang (because in this case,
# presentlang can be used as a fallback for messages
# which are not translated in the desiredlang catalog).
case "$desiredlang" in
"$presentlang"*) useit=yes;;
esac
done
if test $useit = yes; then
NEW_LINGUAS="$NEW_LINGUAS $presentlang"
fi
done
LINGUAS=$NEW_LINGUAS
AC_MSG_RESULT($LINGUAS)
fi
dnl Construct list of names of catalog files to be constructed.
if test -n "$LINGUAS"; then
for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
fi
fi
dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
dnl Try to locate is.
MKINSTALLDIRS=
if test -n "$ac_aux_dir"; then
MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
fi
if test -z "$MKINSTALLDIRS"; then
MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
fi
AC_SUBST(MKINSTALLDIRS)
dnl Generate list of files to be processed by xgettext which will
dnl be included in po/Makefile.
test -d po || mkdir po
if test "x$srcdir" != "x."; then
if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
posrcprefix="$srcdir/"
else
posrcprefix="../$srcdir/"
fi
else
posrcprefix="../"
fi
rm -f po/POTFILES
sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
< $srcdir/po/POTFILES.in > po/POTFILES
])
# AM_GLIB_DEFINE_LOCALEDIR(VARIABLE)
# -------------------------------
# Define VARIABLE to the location where catalog files will
# be installed by po/Makefile.
glib_DEFUN([GLIB_DEFINE_LOCALEDIR],
[glib_REQUIRE([GLIB_GNU_GETTEXT])dnl
glib_save_prefix="$prefix"
glib_save_exec_prefix="$exec_prefix"
glib_save_datarootdir="$datarootdir"
test "x$prefix" = xNONE && prefix=$ac_default_prefix
test "x$exec_prefix" = xNONE && exec_prefix=$prefix
datarootdir=`eval echo "${datarootdir}"`
if test "x$CATOBJEXT" = "x.mo" ; then
localedir=`eval echo "${libdir}/locale"`
else
localedir=`eval echo "${datadir}/locale"`
fi
prefix="$glib_save_prefix"
exec_prefix="$glib_save_exec_prefix"
datarootdir="$glib_save_datarootdir"
AC_DEFINE_UNQUOTED($1, "$localedir",
[Define the location where the catalogs will be installed])
])
dnl
dnl Now the definitions that aclocal will find
dnl
ifdef(glib_configure_ac,[],[
AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)])
AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)])
])dnl
# GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL])
#
# Create a temporary file with TEST-FILE as its contents and pass the
# file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with
# 0 and perform ACTION-IF-FAIL for any other exit status.
AC_DEFUN([GLIB_RUN_PROG],
[cat >conftest.foo <<_ACEOF
$2
_ACEOF
if AC_RUN_LOG([$1 conftest.foo]); then
m4_ifval([$3], [$3], [:])
m4_ifvaln([$4], [else $4])dnl
echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD
sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD
fi])
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
#
# Copyright © 2004 Scott James Remnant .
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# PKG_PROG_PKG_CONFIG([MIN-VERSION])
# ----------------------------------
AC_DEFUN([PKG_PROG_PKG_CONFIG],
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
fi
if test -n "$PKG_CONFIG"; then
_pkg_min_version=m4_default([$1], [0.9.0])
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
PKG_CONFIG=""
fi
fi[]dnl
])# PKG_PROG_PKG_CONFIG
# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
#
# Check to see whether a particular set of modules exists. Similar
# to PKG_CHECK_MODULES(), but does not set variables or print errors.
#
#
# Similar to PKG_CHECK_MODULES, make sure that the first instance of
# this or PKG_CHECK_MODULES is called, or make sure to call
# PKG_CHECK_EXISTS manually
# --------------------------------------------------------------
AC_DEFUN([PKG_CHECK_EXISTS],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
if test -n "$PKG_CONFIG" && \
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
m4_ifval([$2], [$2], [:])
m4_ifvaln([$3], [else
$3])dnl
fi])
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
# ---------------------------------------------
m4_define([_PKG_CONFIG],
[if test -n "$$1"; then
pkg_cv_[]$1="$$1"
elif test -n "$PKG_CONFIG"; then
PKG_CHECK_EXISTS([$3],
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
[pkg_failed=yes])
else
pkg_failed=untried
fi[]dnl
])# _PKG_CONFIG
# _PKG_SHORT_ERRORS_SUPPORTED
# -----------------------------
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
else
_pkg_short_errors_supported=no
fi[]dnl
])# _PKG_SHORT_ERRORS_SUPPORTED
# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
# [ACTION-IF-NOT-FOUND])
#
#
# Note that if there is a possibility the first call to
# PKG_CHECK_MODULES might not happen, you should be sure to include an
# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
#
#
# --------------------------------------------------------------
AC_DEFUN([PKG_CHECK_MODULES],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
pkg_failed=no
AC_MSG_CHECKING([for $1])
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
and $1[]_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.])
if test $pkg_failed = yes; then
_PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
else
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
ifelse([$4], , [AC_MSG_ERROR(dnl
[Package requirements ($2) were not met:
$$1_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
_PKG_TEXT
])],
[AC_MSG_RESULT([no])
$4])
elif test $pkg_failed = untried; then
ifelse([$4], , [AC_MSG_FAILURE(dnl
[The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
_PKG_TEXT
To get pkg-config, see .])],
[$4])
else
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
AC_MSG_RESULT([yes])
ifelse([$3], , :, [$3])
fi[]dnl
])# PKG_CHECK_MODULES
# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.11'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
m4_if([$1], [1.11.1], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
# _AM_AUTOCONF_VERSION(VERSION)
# -----------------------------
# aclocal traces this macro to find the Autoconf version.
# This is a private macro too. Using m4_define simplifies
# the logic in aclocal, which can simply ignore this definition.
m4_define([_AM_AUTOCONF_VERSION], [])
# AM_SET_CURRENT_AUTOMAKE_VERSION
# -------------------------------
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.11.1])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
#
# Of course, Automake must honor this variable whenever it calls a
# tool from the auxiliary directory. The problem is that $srcdir (and
# therefore $ac_aux_dir as well) can be either absolute or relative,
# depending on how configure is run. This is pretty annoying, since
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
# source directory, any form will work fine, but in subdirectories a
# relative path needs to be adjusted first.
#
# $ac_aux_dir/missing
# fails when called from a subdirectory if $ac_aux_dir is relative
# $top_srcdir/$ac_aux_dir/missing
# fails if $ac_aux_dir is absolute,
# fails when called from a subdirectory in a VPATH build with
# a relative $ac_aux_dir
#
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
# are both prefixed by $srcdir. In an in-source build this is usually
# harmless because $srcdir is `.', but things will broke when you
# start a VPATH build or use an absolute $srcdir.
#
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
# and then we would define $MISSING as
# MISSING="\${SHELL} $am_aux_dir/missing"
# This will work as long as MISSING is not called from configure, because
# unfortunately $(top_srcdir) has no meaning in configure.
# However there are other variables, like CC, which are often used in
# configure, and could therefore not use this "fixed" $ac_aux_dir.
#
# Another solution, used here, is to always expand $ac_aux_dir to an
# absolute PATH. The drawback is that using absolute paths prevent a
# configured tree to be moved without reconfiguration.
AC_DEFUN([AM_AUX_DIR_EXPAND],
[dnl Rely on autoconf to set up CDPATH properly.
AC_PREREQ([2.50])dnl
# expand $ac_aux_dir to an absolute path
am_aux_dir=`cd $ac_aux_dir && pwd`
])
# Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2005
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 4
# This was merged into AC_PROG_CC in Autoconf.
AU_DEFUN([AM_PROG_CC_STDC],
[AC_PROG_CC
AC_DIAGNOSE([obsolete], [$0:
your code should no longer depend upon `am_cv_prog_cc_stdc', but upon
`ac_cv_prog_cc_stdc'. Remove this warning and the assignment when
you adjust the code. You can also remove the above call to
AC_PROG_CC if you already called it elsewhere.])
am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
])
AU_DEFUN([fp_PROG_CC_STDC])
# AM_CONDITIONAL -*- Autoconf -*-
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 9
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
# -------------------------------------
# Define a conditional.
AC_DEFUN([AM_CONDITIONAL],
[AC_PREREQ(2.52)dnl
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
AC_SUBST([$1_TRUE])dnl
AC_SUBST([$1_FALSE])dnl
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
m4_define([_AM_COND_VALUE_$1], [$2])dnl
if $2; then
$1_TRUE=
$1_FALSE='#'
else
$1_TRUE='#'
$1_FALSE=
fi
AC_CONFIG_COMMANDS_PRE(
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
AC_MSG_ERROR([[conditional "$1" was never defined.
Usually this means the macro was only invoked conditionally.]])
fi])])
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 10
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
# will think it sees a *use*, and therefore will trigger all it's
# C support machinery. Also note that it means that autoscan, seeing
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
# _AM_DEPENDENCIES(NAME)
# ----------------------
# See how the compiler implements dependency checking.
# NAME is "CC", "CXX", "GCJ", or "OBJC".
# We try a few techniques and use that to set a single cache variable.
#
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
# dependency, and given that the user is not expected to run this macro,
# just rely on AC_PROG_CC.
AC_DEFUN([_AM_DEPENDENCIES],
[AC_REQUIRE([AM_SET_DEPDIR])dnl
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
AC_REQUIRE([AM_DEP_TRACK])dnl
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
[$1], CXX, [depcc="$CXX" am_compiler_list=],
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
[$1], UPC, [depcc="$UPC" am_compiler_list=],
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
[depcc="$$1" am_compiler_list=])
AC_CACHE_CHECK([dependency style of $depcc],
[am_cv_$1_dependencies_compiler_type],
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
# We will build objects and dependencies in a subdirectory because
# it helps to detect inapplicable dependency modes. For instance
# both Tru64's cc and ICC support -MD to output dependencies as a
# side effect of compilation, but ICC will put the dependencies in
# the current directory while Tru64 will put them in the object
# directory.
mkdir sub
am_cv_$1_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
fi
am__universal=false
m4_case([$1], [CC],
[case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac],
[CXX],
[case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac])
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
# we should not choose a depcomp mode which is confused by this.
#
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
# Solaris 8's {/usr,}/bin/sh.
touch sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
# We check with `-c' and `-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this. Also, some Intel
# versions had trouble with output in subdirs
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
gcc)
# This depmode causes a compiler race in universal mode.
test "$am__universal" = false || continue
;;
nosideeffect)
# after this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested
if test "x$enable_dependency_tracking" = xyes; then
continue
else
break
fi
;;
msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
am__minus_obj=
;;
none) break ;;
esac
if depmode=$depmode \
source=sub/conftest.c object=$am__obj \
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
>/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored or not supported.
# When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_$1_dependencies_compiler_type=$depmode
break
fi
fi
done
cd ..
rm -rf conftest.dir
else
am_cv_$1_dependencies_compiler_type=none
fi
])
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
AM_CONDITIONAL([am__fastdep$1], [
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
])
# AM_SET_DEPDIR
# -------------
# Choose a directory name for dependency files.
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
AC_DEFUN([AM_SET_DEPDIR],
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
])
# AM_DEP_TRACK
# ------------
AC_DEFUN([AM_DEP_TRACK],
[AC_ARG_ENABLE(dependency-tracking,
[ --disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors])
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
fi
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
AC_SUBST([AMDEPBACKSLASH])dnl
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
])
# Generate code to set up dependency tracking. -*- Autoconf -*-
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
#serial 5
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
[{
# Autoconf 2.62 quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
case $CONFIG_FILES in
*\'*) eval set x "$CONFIG_FILES" ;;
*) set x $CONFIG_FILES ;;
esac
shift
for mf
do
# Strip MF so we end up with the name of the file.
mf=`echo "$mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile or not.
# We used to match only the files named `Makefile.in', but
# some people rename them; so instead we look at the file content.
# Grep'ing the first line is not enough: some people post-process
# each Makefile.in and add a new line on top of each file to say so.
# Grep'ing the whole file is not good either: AIX grep has a line
# limit of 2048, but all sed's we know have understand at least 4000.
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
dirpart=`AS_DIRNAME("$mf")`
else
continue
fi
# Extract the definition of DEPDIR, am__include, and am__quote
# from the Makefile without running `make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
am__include=`sed -n 's/^am__include = //p' < "$mf"`
test -z "am__include" && continue
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
U=`sed -n 's/^U = //p' < "$mf"`
# Find all dependency output files, they are included files with
# $(DEPDIR) in their names. We invoke sed twice because it is the
# simplest approach to changing $(DEPDIR) to its actual value in the
# expansion.
for file in `sed -n "
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
fdir=`AS_DIRNAME(["$file"])`
AS_MKDIR_P([$dirpart/$fdir])
# echo "creating $dirpart/$file"
echo '# dummy' > "$dirpart/$file"
done
done
}
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
# AM_OUTPUT_DEPENDENCY_COMMANDS
# -----------------------------
# This macro should only be invoked once -- use via AC_REQUIRE.
#
# This code is only required when automatic dependency tracking
# is enabled. FIXME. This creates each `.P' file that we will
# need in order to bootstrap the dependency handling code.
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AC_CONFIG_COMMANDS([depfiles],
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
])
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 8
# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
# Do all the work for Automake. -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 16
# This macro actually does too much. Some checks are only needed if
# your package does certain things. But this isn't really a big deal.
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
# AM_INIT_AUTOMAKE([OPTIONS])
# -----------------------------------------------
# The call with PACKAGE and VERSION arguments is the old style
# call (pre autoconf-2.50), which is being phased out. PACKAGE
# and VERSION should now be passed to AC_INIT and removed from
# the call to AM_INIT_AUTOMAKE.
# We support both call styles for the transition. After
# the next Automake release, Autoconf can make the AC_INIT
# arguments mandatory, and then we can depend on a new Autoconf
# release and drop the old call support.
AC_DEFUN([AM_INIT_AUTOMAKE],
[AC_PREREQ([2.62])dnl
dnl Autoconf wants to disallow AM_ names. We explicitly allow
dnl the ones we care about.
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
AC_REQUIRE([AC_PROG_INSTALL])dnl
if test "`cd $srcdir && pwd`" != "`pwd`"; then
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
# is not polluted with repeated "-I."
AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
# test to see if srcdir already configured
if test -f $srcdir/config.status; then
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
fi
fi
# test whether we have cygpath
if test -z "$CYGPATH_W"; then
if (cygpath --version) >/dev/null 2>/dev/null; then
CYGPATH_W='cygpath -w'
else
CYGPATH_W=echo
fi
fi
AC_SUBST([CYGPATH_W])
# Define the identity of the package.
dnl Distinguish between old-style and new-style calls.
m4_ifval([$2],
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
AC_SUBST([PACKAGE], [$1])dnl
AC_SUBST([VERSION], [$2])],
[_AM_SET_OPTIONS([$1])dnl
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
_AM_IF_OPTION([no-define],,
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
# Some tools Automake needs.
AC_REQUIRE([AM_SANITY_CHECK])dnl
AC_REQUIRE([AC_ARG_PROGRAM])dnl
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
AM_MISSING_PROG(AUTOCONF, autoconf)
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
AM_MISSING_PROG(AUTOHEADER, autoheader)
AM_MISSING_PROG(MAKEINFO, makeinfo)
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
AC_REQUIRE([AC_PROG_AWK])dnl
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
[_AM_PROG_TAR([v7])])])
_AM_IF_OPTION([no-dependencies],,
[AC_PROVIDE_IFELSE([AC_PROG_CC],
[_AM_DEPENDENCIES(CC)],
[define([AC_PROG_CC],
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
AC_PROVIDE_IFELSE([AC_PROG_CXX],
[_AM_DEPENDENCIES(CXX)],
[define([AC_PROG_CXX],
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
[_AM_DEPENDENCIES(OBJC)],
[define([AC_PROG_OBJC],
defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
])
_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
AC_CONFIG_COMMANDS_PRE(dnl
[m4_provide_if([_AM_COMPILER_EXEEXT],
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
])
dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
dnl mangled by Autoconf and run in a shell conditional statement.
m4_define([_AC_COMPILER_EXEEXT],
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
# When config.status generates a header, we must update the stamp-h file.
# This file resides in the same directory as the config header
# that is generated. The stamp files are numbered to have different names.
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
# loop where config.status creates the headers, so we can generate
# our stamp files there.
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
[# Compute $1's index in $config_headers.
_am_arg=$1
_am_stamp_count=1
for _am_header in $config_headers :; do
case $_am_header in
$_am_arg | $_am_arg:* )
break ;;
* )
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
esac
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# AM_PROG_INSTALL_SH
# ------------------
# Define $install_sh.
AC_DEFUN([AM_PROG_INSTALL_SH],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
if test x"${install_sh}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
*)
install_sh="\${SHELL} $am_aux_dir/install-sh"
esac
fi
AC_SUBST(install_sh)])
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 2
# Check whether the underlying file-system supports filenames
# with a leading dot. For instance MS-DOS doesn't.
AC_DEFUN([AM_SET_LEADING_DOT],
[rm -rf .tst 2>/dev/null
mkdir .tst 2>/dev/null
if test -d .tst; then
am__leading_dot=.
else
am__leading_dot=_
fi
rmdir .tst 2>/dev/null
AC_SUBST([am__leading_dot])])
# Check to see how 'make' treats includes. -*- Autoconf -*-
# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 4
# AM_MAKE_INCLUDE()
# -----------------
# Check to see how make treats includes.
AC_DEFUN([AM_MAKE_INCLUDE],
[am_make=${MAKE-make}
cat > confinc << 'END'
am__doit:
@echo this is the am__doit target
.PHONY: am__doit
END
# If we don't find an include directive, just comment out the code.
AC_MSG_CHECKING([for style of include used by $am_make])
am__include="#"
am__quote=
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
# Ignore all kinds of additional output from `make'.
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=include
am__quote=
_am_result=GNU
;;
esac
# Now try BSD make style include.
if test "$am__include" = "#"; then
echo '.include "confinc"' > confmf
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=.include
am__quote="\""
_am_result=BSD
;;
esac
fi
AC_SUBST([am__include])
AC_SUBST([am__quote])
AC_MSG_RESULT([$_am_result])
rm -f confinc confmf
])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 6
# AM_MISSING_PROG(NAME, PROGRAM)
# ------------------------------
AC_DEFUN([AM_MISSING_PROG],
[AC_REQUIRE([AM_MISSING_HAS_RUN])
$1=${$1-"${am_missing_run}$2"}
AC_SUBST($1)])
# AM_MISSING_HAS_RUN
# ------------------
# Define MISSING if not defined so far and test if it supports --run.
# If it does, set am_missing_run to use it, otherwise, to nothing.
AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
if test x"${MISSING+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
*)
MISSING="\${SHELL} $am_aux_dir/missing" ;;
esac
fi
# Use eval to expand $SHELL
if eval "$MISSING --run true"; then
am_missing_run="$MISSING --run "
else
am_missing_run=
AC_MSG_WARN([`missing' script is too old or missing])
fi
])
# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# AM_PROG_MKDIR_P
# ---------------
# Check for `mkdir -p'.
AC_DEFUN([AM_PROG_MKDIR_P],
[AC_PREREQ([2.60])dnl
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
dnl while keeping a definition of mkdir_p for backward compatibility.
dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
dnl Makefile.ins that do not define MKDIR_P, so we do our own
dnl adjustment using top_builddir (which is defined more often than
dnl MKDIR_P).
AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
case $mkdir_p in
[[\\/$]]* | ?:[[\\/]]*) ;;
*/*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
esac
])
# Helper functions for option handling. -*- Autoconf -*-
# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 4
# _AM_MANGLE_OPTION(NAME)
# -----------------------
AC_DEFUN([_AM_MANGLE_OPTION],
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
# _AM_SET_OPTION(NAME)
# ------------------------------
# Set option NAME. Presently that only means defining a flag for this option.
AC_DEFUN([_AM_SET_OPTION],
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
# _AM_SET_OPTIONS(OPTIONS)
# ----------------------------------
# OPTIONS is a space-separated list of Automake options.
AC_DEFUN([_AM_SET_OPTIONS],
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
# -------------------------------------------
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
# Check to make sure that the build environment is sane. -*- Autoconf -*-
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 5
# AM_SANITY_CHECK
# ---------------
AC_DEFUN([AM_SANITY_CHECK],
[AC_MSG_CHECKING([whether build environment is sane])
# Just in case
sleep 1
echo timestamp > conftest.file
# Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter.
am_lf='
'
case `pwd` in
*[[\\\"\#\$\&\'\`$am_lf]]*)
AC_MSG_ERROR([unsafe absolute working directory name]);;
esac
case $srcdir in
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
esac
# Do `set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
if test "$[*]" = "X"; then
# -L didn't work.
set X `ls -t "$srcdir/configure" conftest.file`
fi
rm -f conftest.file
if test "$[*]" != "X $srcdir/configure conftest.file" \
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
alias in your environment])
fi
test "$[2]" = conftest.file
)
then
# Ok.
:
else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
AC_MSG_RESULT(yes)])
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# AM_PROG_INSTALL_STRIP
# ---------------------
# One issue with vendor `install' (even GNU) is that you can't
# specify the program used to strip binaries. This is especially
# annoying in cross-compiling environments, where the build's strip
# is unlikely to handle the host's binaries.
# Fortunately install-sh will honor a STRIPPROG variable, so we
# always use install-sh in `make install-strip', and initialize
# STRIPPROG with the value of the STRIP variable (set by the user).
AC_DEFUN([AM_PROG_INSTALL_STRIP],
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
# Installed binaries are usually stripped using `strip' when the user
# run `make install-strip'. However `strip' might not be the right
# tool to use in cross-compilation environments, therefore Automake
# will honor the `STRIP' environment variable to overrule this program.
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
if test "$cross_compiling" != no; then
AC_CHECK_TOOL([STRIP], [strip], :)
fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 2
# _AM_SUBST_NOTMAKE(VARIABLE)
# ---------------------------
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
# This macro is traced by Automake.
AC_DEFUN([_AM_SUBST_NOTMAKE])
# AM_SUBST_NOTMAKE(VARIABLE)
# ---------------------------
# Public sister of _AM_SUBST_NOTMAKE.
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 2
# _AM_PROG_TAR(FORMAT)
# --------------------
# Check how to create a tarball in format FORMAT.
# FORMAT should be one of `v7', `ustar', or `pax'.
#
# Substitute a variable $(am__tar) that is a command
# writing to stdout a FORMAT-tarball containing the directory
# $tardir.
# tardir=directory && $(am__tar) > result.tar
#
# Substitute a variable $(am__untar) that extract such
# a tarball read from stdin.
# $(am__untar) < result.tar
AC_DEFUN([_AM_PROG_TAR],
[# Always define AMTAR for backward compatibility.
AM_MISSING_PROG([AMTAR], [tar])
m4_if([$1], [v7],
[am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
[m4_case([$1], [ustar],, [pax],,
[m4_fatal([Unknown tar format])])
AC_MSG_CHECKING([how to create a $1 tar archive])
# Loop over all known methods to create a tar archive until one works.
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
# Do not fold the above two line into one, because Tru64 sh and
# Solaris sh will not grok spaces in the rhs of `-'.
for _am_tool in $_am_tools
do
case $_am_tool in
gnutar)
for _am_tar in tar gnutar gtar;
do
AM_RUN_LOG([$_am_tar --version]) && break
done
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
am__untar="$_am_tar -xf -"
;;
plaintar)
# Must skip GNU tar: if it does not support --format= it doesn't create
# ustar tarball either.
(tar --version) >/dev/null 2>&1 && continue
am__tar='tar chf - "$$tardir"'
am__tar_='tar chf - "$tardir"'
am__untar='tar xf -'
;;
pax)
am__tar='pax -L -x $1 -w "$$tardir"'
am__tar_='pax -L -x $1 -w "$tardir"'
am__untar='pax -r'
;;
cpio)
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
am__untar='cpio -i -H $1 -d'
;;
none)
am__tar=false
am__tar_=false
am__untar=false
;;
esac
# If the value was cached, stop now. We just wanted to have am__tar
# and am__untar set.
test -n "${am_cv_prog_tar_$1}" && break
# tar/untar a dummy directory, and stop if the command works
rm -rf conftest.dir
mkdir conftest.dir
echo GrepMe > conftest.dir/file
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
rm -rf conftest.dir
if test -s conftest.tar; then
AM_RUN_LOG([$am__untar /dev/null 2>&1 && break
fi
done
rm -rf conftest.dir
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
linsmith-0.99.21/linsmith.gladep 0000644 0000000 0000000 00000000356 11541550713 013425 0000000 0000000
Linsmith
linsmith
linsmith-0.99.21/THANKS 0000644 0000000 0000000 00000000377 11061346603 011334 0000000 0000000 A very sincere thanks to all who helped with the project (in no particular
order):
Georg Baum
Once Shiquing
Lawrence Glaister
Sid Boyce
Peter Landgren
Margarita Manterola
Anatoliy Fadeyev
Michele Petrecca
István Papp
Anatoly Fadeev
Patrick ?
linsmith-0.99.21/Makefile.am 0000644 0000000 0000000 00000002377 10454736127 012470 0000000 0000000 ## Process this file with automake to produce Makefile.in
SUBDIRS = @MAKE_SUBDIRS@
EXTRA_DIST = \
TODO NEWS THANKS NOTES \
autogen.sh \
linsmith.desktop \
linsmith.glade \
linsmith_icon.xpm \
pixmaps \
linsmith.gladep \
doc/manual.pdf doc/linsmith.1
install-data-local:
@$(NORMAL_INSTALL)
if test -d $(srcdir)/pixmaps; then \
$(mkinstalldirs) $(DESTDIR)$(datadir)/pixmaps/$(PACKAGE); \
for pixmap in $(srcdir)/pixmaps/*; do \
if test -f $$pixmap; then \
$(INSTALL_DATA) $$pixmap $(DESTDIR)$(datadir)/pixmaps/$(PACKAGE); \
fi \
done \
fi
@$(NORMAL_INSTALL)
if test -d $(srcdir)/datafiles; then \
$(mkinstalldirs) $(DESTDIR)$(datadir)/$(PACKAGE); \
for datafile in $(srcdir)/datafiles/*; do \
if test -f $$datafile; then \
$(INSTALL_DATA) $$datafile $(DESTDIR)$(datadir)/$(PACKAGE); \
fi \
done \
fi
dist-hook:
if test -d pixmaps; then \
mkdir $(distdir)/pixmaps; \
for pixmap in pixmaps/*; do \
if test -f $$pixmap; then \
cp -p $$pixmap $(distdir)/pixmaps; \
fi \
done \
fi
if test -d datafiles; then \
mkdir $(distdir)/datafiles; \
for datafile in datafiles/*; do \
if test -f $$datafile; then \
cp -p $$datafile $(distdir)/datafiles; \
fi \
done \
fi
linsmith-0.99.21/pixmaps/ 0000777 0000000 0000000 00000000000 11172105374 012160 5 0000000 0000000 linsmith-0.99.21/pixmaps/smithent.png 0000644 0000000 0000000 00000025077 10034304241 014436 0000000 0000000 PNG
IHDR ?^ 0PLTE l )IDATx]ˎgxg&ZDRꞹ(c'&E鐒_n9ܼ-&p%|be
_=X=L,h߮؟`=֥*p۶lŔaaA5.{ķ+?5+䘎k+Õ\nep:ĥY4ǴL,_"j[Ļ}WxZ#|oY̘RqHc/3jy5321|'a5,kfJ21ׄ!Uy5LtYs)Ukf-J6X._
eFXK%UF~4+ۧ^*`eլ\מdl_,>o]쓞Z ,Яu;}u -vX;]S˺?-#999FXՖfVղE2ue][4K\}Ձd][PJ)A)ū;uD]^^=XC*Rr*n:+//U.8?M U5{SuIV%A\æ.9ރ4:%>ѯ6
{XIww&!
6GbT1dkVrU-ݰ藖#x>mNtC,VnXkUZFdh-Ҍp[ېګL$E)ߔ3&f].Q ya>qҬѽ\°(J,Z[.jV~i+^dX>m->V