Remove unique constraint in note url
[sfinx.git] / faraon / x11_ui.C
blob077809ceb415998150d0addf1916158867eaebb5
1 // generated by Fast Light User Interface Designer (fluid) version 1,0108
3 #include <libintl.h>
4 #include "x11_ui.H"
5 #include <faraon.H>
6 #include <X11/xpm.h>
7 #include <FL/Fl.H>
8 #include <FL/x.H>
9 #include <FL/fl_ask.H>
10 #include <FL/Fl_Preferences.H>
11 #include <Flek/Fl_Toggle_Tree.H>
12 #include "sfinx.xpm"
13 #include "slice.xpm"
14 #include "note.xpm"
15 #include "file.xpm"
16 static Fl_Pixmap slice_pixmap(slice_xpm_data); 
17 static Fl_Pixmap note_pixmap(note_xpm_data); 
18 static Fl_Pixmap file_pixmap(file_xpm_data); 
19 Fl_Toggle_Tree *config_tree; 
20 Fl_Toggle_Tree *slices_tree; 
21 Fl_Toggle_Tree *select_slice_tree; 
22 Fl_Toggle_Tree *notes_tree; 
23 Fl_Toggle_Tree *files_tree; 
24 static Fl_Toggle_Tree *fill_tree; 
25 static Fl_Toggle_Tree *browse_tree; 
26 sfinx_slice_t *fill_tree_except; 
27 u32_t fill_tree_mask; 
28 static sfinx_file_t current_file(SFINX_FILES_MODULE_UNSORTED_TREE_REQUEST); 
30 static void fill_objects_tree(Fl_Toggle_Tree *ft, u32_t m, sfinx_slice_t *except, bool force) {
31   fill_tree = ft;
32 fill_tree_mask = m;
33 fill_tree_except = except;
34 app->refresh_slices(force);
37 static void relink_slice_action() {
38   sfinx_slice_t slice(SFINX_SLICE_RELINK);
39 // slice to be relinked
40 Fl_Toggle_Node *node = slices_tree->selected();
41 if (!node)
42         return;
43 Fl_Toggle_Node *snode = select_slice_tree->selected();
44 if (!snode)
45         return;
46 sfinx_slice_t *selected = (sfinx_slice_t *)snode->user_data();
47 sfinx_slice_t *rslice = (sfinx_slice_t *)node->user_data();
48 slice.id = rslice->id;
49 // new parent id
50 slice.parent_id = selected->id;
51 debug("moving from %lld to %lld", rslice->parent_id, selected->id);
52 app->sfinx.send(slice);
53 fill_objects_tree(slices_tree, SFINX_SLICE_OBJECT, 0, 1); // force refresh
56 static void select_note_atag_action() {
57   sfinx_object_t *obj;
58 Fl_Toggle_Node *node = select_slice_tree->selected();
59 if (!node)
60         return;
61 if (node->can_open()) // slice
62         obj = ((sfinx_slice_t *)node->user_data())->object();
63 else // object
64         obj = (sfinx_object_t *)node->user_data();
65 Fl_Toggle_Node *snode = notes_tree->selected();
66 sfinx_object_t *sobj = (sfinx_object_t *)snode->user_data();
67 if (sobj == obj) // try to self tag
68         return;
69 if (note_mtag_b->user_data() && !obj->cmp((sfinx_object_t *)note_mtag_b->user_data())) // already set as main tag
70         return;
71 for (int i = 1; i <= note_tags_br->size(); i++) {
72         if (!obj->cmp((sfinx_object_t *)note_tags_br->data(i))) // already set as additional tag
73                 return;
75 string s = obj->name + " [ " + obj->description + " ]";
76 note_tags_br->add(s.c_str(), obj);
77 note_tags_br->redraw();
80 static void select_note_mtag_action() {
81   sfinx_object_t *obj;
82 Fl_Toggle_Node *node = select_slice_tree->selected();
83 if (!node)
84         return;
85 if (node->can_open()) // slice
86         obj = ((sfinx_slice_t *)node->user_data())->object();
87 else // object
88         obj = (sfinx_object_t *)node->user_data();
89 Fl_Toggle_Node *snode = notes_tree->selected();
90 sfinx_object_t *sobj = (sfinx_object_t *)snode->user_data();
91 if (sobj == obj) // try to self tag
92         return;
93 note_mtag_b->user_data(obj);
94 note_mtag_b->copy_label((obj->name + " [ " + obj->description + " ]").c_str());
95 note_mtag_b->redraw();
96 // check for additional slices if it is here - remove it
97 for (int i = 1; i <= note_tags_br->size(); i++) {
98         if (!obj->cmp((sfinx_object_t *)note_tags_br->data(i))) {
99                 note_tags_br->remove(i);
100                 return;
101         }
105 static void select_file_mtag_action() {
106   sfinx_object_t *obj;
107 Fl_Toggle_Node *node = select_slice_tree->selected();
108 if (!node)
109         return;
110 if (node->can_open()) // slice
111         obj = ((sfinx_slice_t *)node->user_data())->object();
112 else // object
113         obj = (sfinx_object_t *)node->user_data();
114 file_mtag_b->user_data(obj);
115 file_mtag_b->copy_label((obj->name + " [ " + obj->description + " ]").c_str());
116 file_mtag_b->redraw();
117 // check for additional tags if it is here - remove it
118 for (int i = 1; i <= file_tags_br->size(); i++) {
119         if (!obj->cmp((sfinx_object_t *)file_tags_br->data(i))) {
120                 file_tags_br->remove(i);
121                 return;
122         }
126 static void select_file_atag_action() {
127   sfinx_object_t *obj;
128 Fl_Toggle_Node *node = select_slice_tree->selected();
129 if (!node)
130         return;
131 string s;
132 if (node->can_open()) { // slice
133         obj = ((sfinx_slice_t *)node->user_data())->object();
134         s = obj->name + " [ " + obj->description + " ]";
135 } else { // object
136         obj = (sfinx_object_t *)node->user_data();
137         s = obj->name + obj->description;
139 if (file_mtag_b->user_data() && !obj->cmp((sfinx_object_t *)file_mtag_b->user_data())) // already set as main tag
140         return;
141 for (int i = 1; i <= file_tags_br->size(); i++) {
142         if (!obj->cmp((sfinx_object_t *)file_tags_br->data(i))) // already set as additional tag
143                 return;
145 file_tags_br->add(s.c_str(), obj);
146 file_tags_br->redraw();
149 static void search_add_slice_action() {
150   sfinx_object_t *obj;
151 Fl_Toggle_Node *node = select_slice_tree->selected();
152 if (!node)
153         return;
154 string s;
155 if (node->can_open()) { // slice
156         obj = ((sfinx_slice_t *)node->user_data())->object();
157         s = obj->name + " [ " + obj->description + " ]";
158 } else { // object
159         obj = (sfinx_object_t *)node->user_data();
160         s = obj->name + obj->description;
162 for (int i = 1; i <= search_slices_br->size(); i++) {
163         if (!obj->cmp((sfinx_object_t *)search_slices_br->data(i))) // already set
164                 return;
166 search_slices_br->add(s.c_str(), obj);
167 search_slices_br->redraw();
170 static void slices_tree_cb(Fl_Widget *, void *) {
171   Fl_Toggle_Node *node = slices_tree->selected();
172 if (!node)
173         return;
174 if (!Fl::event_clicks())
175         return;
176 void (*select_slice_action)(void) = (void (*)())(slices_w->user_data());
177 if (select_slice_action) {
178         slices_w->hide();
179         slices_w->user_data(0);
180         select_slice_action();
184 static void notes_tree_cb(Fl_Widget *, void *) {
185   Fl_Toggle_Node *node = notes_tree->selected();
186 if (!node)
187         return;
188 //current_note_id = from_voidp(node->user_data());
189 //current_slice_name = node->label();
190 if (!Fl::event_clicks())
191         return;
192 void (*select_note_action)(void) = (void (*)())(notes_w->user_data());
193 if (select_note_action) {
194         notes_w->user_data(0);
195         select_note_action();
199 static void browse_tree_cb(Fl_Widget *, void *) {
200   Fl_Toggle_Node *node = browse_tree->selected();
201 if (!node)
202         return;
203 if (!Fl::event_clicks())
204         return;
205 void (*browse_action)(void) = (void (*)())(browse_w->user_data());
206 if (browse_action) {
207         browse_w->hide();
208         browse_w->user_data(0);
209         browse_action();
213 static void files_tree_cb(Fl_Widget *, void *) {
214   Fl_Toggle_Node *node = files_tree->selected();
215 if (!node)
216         return;
217 sfinx_object_t *obj;
218 string type;
219 if (node->can_open()) { // slice
220         obj = ((sfinx_slice_t *)node->user_data())->object();
221         type = "Slice";
222 } else { // file
223         obj = (sfinx_object_t *)node->user_data();
224         type = "File";
226 // set mtime/etime
227 char buf[256];
228 int eyear, emonth, eday, ehour, emin, esec, cyear, cmonth, cday, chour, cmin, csec;
229 obj->etime.GetDate(eyear, emonth, eday);
230 obj->etime.GetTime(ehour, emin, esec);
231 obj->ctime.GetDate(cyear, cmonth, cday);
232 obj->ctime.GetTime(chour, cmin, csec);
233 sprintf(buf, "Modified: %02d/%02d/%04d %02d:%02d:%02d | Last Status Changed: %02d/%02d/%04d %02d:%02d:%02d", cday, cmonth,
234         cyear, chour, cmin, csec, eday, emonth, eyear, ehour, emin, esec);
235 files_module_status_to->value((type + ": " + obj->name + " | " + buf).c_str());
236 if (!Fl::event_clicks())
237         return;
238 void (*select_file_action)(void) = (void (*)())(files_module_w->user_data());
239 if (select_file_action) {
240         files_module_w->user_data(0);
241         select_file_action();
245 static void select_slice_tree_cb(Fl_Widget *, void *) {
246   if (!Fl::event_clicks())
247         return;
248 select_slice_b->do_callback();
251 static void write_preferences() {
252   app->server_name = config_sfinx_server_name_i->value();
253 app->files_module_conf.clear();
254 app->files_module_conf.add(FILES_MODULE_UNSORTED_PATH,
255         config_files_module_unsorted_path_i->value());
256 app->files_module_conf.add(FILES_MODULE_SORTED_TREE_PATH,
257         config_files_module_sorted_path_i->value());
258 app->files_module_conf.add(FILES_MODULE_DESC_FILE_NAME,
259         config_files_module_desc_file_name_i->value());
260 app->files_module_conf.add(FILES_MODULE_DESC_FILE_ENABLE,
261         gen_desc_files_b->value());
262 app->write_preferences();
265 static void config_tree_cb(Fl_Widget *, void *) {
266   static Fl_Group *prev_group;
267 Fl_Toggle_Node *node = config_tree->selected();
268 if (node) {
269         Fl_Group *gr = *((Fl_Group **)(node->user_data()));
270         if (prev_group)
271                 prev_group->hide();
272         prev_group = gr;
273          gr->show();
274 //config_tree->unselect();
278 static void fill_config_tree() {
279   config_tree->add_next("Connection", 0, 0, (void *)&config_connection_gr);
280 config_tree->add_next("Files Module", 0, 0, (void *)&config_files_module_gr);
281 config_tree->add_next("Confirmation", 0, 0, (void *)&config_confirmation_gr);
282 config_tree->callback(config_tree_cb);
283 config_tree->edit_on_reselect(0);
286 static void search_menu_cb(Fl_Widget *, void *d) {
287   const char *url = search_browser_br->text(search_browser_br->value());
288 url = strstr(url, ": ") + 2;
289 if (d) {
290         string cmd = "mozilla ";
291         cmd += url;
292         cmd += " &";
293         system(cmd.c_str());
294 } else
295         Fl::copy(url, strlen(url), 0);
298 Fl_Double_Window *main_w=(Fl_Double_Window *)0;
300 static void cb_main_w(Fl_Double_Window*, void*) {
301   if (fl_choice("Really quit ?", "No", "Yes", 0L))
302         F::shutdown(0);
305 static void cb_Preferences(Fl_Menu_*, void*) {
306   app->read_preferences();
307 config_sfinx_server_name_i->value(app->server_name.c_str());
308 preferences_w->show();
311 static void cb_Exit(Fl_Menu_*, void*) {
312   if (fl_choice("Really quit ?", "No", "Yes", 0L))
313         F::shutdown(0);
316 static void cb_AI(Fl_Menu_*, void*) {
317   if (!app->connected()) {
318  fl_message("Not connected to Sfinx Server !");
319  return;
323 static void cb_Slices(Fl_Menu_*, void*) {
324   if (!app->connected()) {
325  fl_message("Not connected to Sfinx Server !");
326  return;
328 fill_objects_tree(slices_tree, 1 << SFINX_SLICE_OBJECT, 0, 0); // fluid bugs if any default params exists !
329 slices_w->show();
332 static void cb_Knowledge(Fl_Menu_*, void*) {
333   if (!app->connected()) {
334  fl_message("Not connected to Sfinx Server !");
335  return;
339 static void cb_Tasks(Fl_Menu_*, void*) {
340   if (!app->connected()) {
341  fl_message("Not connected to Sfinx Server !");
342  return;
346 static void cb_Messages(Fl_Menu_*, void*) {
347   if (!app->connected()) {
348  fl_message("Not connected to Sfinx Server !");
349  return;
353 static void cb_Contacts(Fl_Menu_*, void*) {
354   if (!app->connected()) {
355  fl_message("Not connected to Sfinx Server !");
356  return;
360 static void cb_Events(Fl_Menu_*, void*) {
361   if (!app->connected()) {
362  fl_message("Not connected to Sfinx Server !");
363  return;
367 static void cb_Files(Fl_Menu_*, void*) {
368   if (!app->connected()) {
369  fl_message("Not connected to Sfinx Server !");
370  return;
372 if (current_file.tid() == SFINX_FILES_MODULE_UNSORTED_TREE_REQUEST) {
373         if (app->sfinx.send(current_file))
374                 return;
375 } else
376         fill_objects_tree(files_tree, (1 << SFINX_FILE_OBJECT), 0, 0);
377 files_module_w->show();
380 static void cb_Notes(Fl_Menu_*, void*) {
381   if (!app->connected()) {
382  fl_message("Not connected to Sfinx Server !");
383  return;
385 // ÒÉÓÕÅÍ ÄÅÒÅ×Ï ÚÁÍÅÔÏË
386 fill_objects_tree(notes_tree, 1 << SFINX_NOTE_OBJECT, 0, 0); // fluid bugs if any default params exists !
387 notes_w->show();
390 static void cb_search_mi(Fl_Menu_*, void*) {
391   if (!app->connected()) {
392  fl_message("Not connected to Sfinx Server !");
393  return;
395 search_i->take_focus();
396 search_w->show();
399 static void cb_Reader(Fl_Menu_*, void*) {
400   if (!app->connected()) {
401  fl_message("Not connected to Sfinx Server !");
402  return;
406 static void cb_AI1(Fl_Menu_*, void*) {
407   if (!app->connected()) {
408  fl_message("Not connected to Sfinx Server !");
409  return;
413 static void cb_Knowledge1(Fl_Menu_*, void*) {
414   if (!app->connected()) {
415  fl_message("Not connected to Sfinx Server !");
416  return;
420 static void cb_Indexing(Fl_Menu_*, void*) {
421   if (!app->connected()) {
422  fl_message("Not connected to Sfinx Server !");
423  return;
427 static void cb_Check(Fl_Menu_*, void*) {
428   if (!app->connected()) {
429  fl_message("Not connected to Sfinx Server !");
430  return;
434 static void cb_DB(Fl_Menu_*, void*) {
435   if (!app->connected()) {
436  fl_message("Not connected to Sfinx Server !");
437  return;
441 static void cb_Clear(Fl_Menu_*, void*) {
442   log_br->clear();
445 static void cb_About(Fl_Menu_*, void*) {
446   about_w->show();
449 Fl_Menu_Item menu_[] = {
450  {gettext("Connection"), 0,  0, 0, 64, FL_ENGRAVED_LABEL, 0, 14, 0},
451  {gettext("Connect to ..."), 0x80063,  0, 0, 1, FL_ENGRAVED_LABEL, 0, 14, 0},
452  {gettext("Connect to default server"), 0,  0, 0, 1, FL_ENGRAVED_LABEL, 0, 14, 0},
453  {gettext("Disconnect from Sfinx"), 0,  0, 0, 1, FL_ENGRAVED_LABEL, 0, 14, 0},
454  {gettext("Connection Info"), 0x80069,  0, 0, 1, FL_ENGRAVED_LABEL, 0, 14, 0},
455  {gettext("Sfinx Stat"), 0,  0, 0, 129, FL_ENGRAVED_LABEL, 0, 14, 0},
456  {gettext("Preferences"), 0x80070,  (Fl_Callback*)cb_Preferences, 0, 128, FL_ENGRAVED_LABEL, 0, 14, 0},
457  {gettext("Exit"), 0x80078,  (Fl_Callback*)cb_Exit, 0, 0, FL_ENGRAVED_LABEL, 0, 14, 0},
458  {0,0,0,0,0,0,0,0,0},
459  {gettext("Modules"), 0,  0, 0, 64, FL_ENGRAVED_LABEL, 0, 14, 0},
460  {gettext("AI Module"), 0x61,  (Fl_Callback*)cb_AI, 0, 1, FL_ENGRAVED_LABEL, 0, 14, 0},
461  {gettext("Slices"), 0x73,  (Fl_Callback*)cb_Slices, 0, 0, FL_ENGRAVED_LABEL, 0, 14, 0},
462  {gettext("Knowledge Module"), 0x6b,  (Fl_Callback*)cb_Knowledge, 0, 1, FL_ENGRAVED_LABEL, 0, 14, 0},
463  {gettext("Tasks"), 0x74,  (Fl_Callback*)cb_Tasks, 0, 1, FL_ENGRAVED_LABEL, 0, 14, 0},
464  {gettext("Messages"), 0x6d,  (Fl_Callback*)cb_Messages, 0, 1, FL_ENGRAVED_LABEL, 0, 14, 0},
465  {gettext("Contacts"), 0x63,  (Fl_Callback*)cb_Contacts, 0, 1, FL_ENGRAVED_LABEL, 0, 14, 0},
466  {gettext("Events"), 0x65,  (Fl_Callback*)cb_Events, 0, 1, FL_ENGRAVED_LABEL, 0, 14, 0},
467  {gettext("Files"), 0x66,  (Fl_Callback*)cb_Files, 0, 0, FL_ENGRAVED_LABEL, 0, 14, 0},
468  {gettext("Notes"), 0x6e,  (Fl_Callback*)cb_Notes, 0, 0, FL_ENGRAVED_LABEL, 0, 14, 0},
469  {0,0,0,0,0,0,0,0,0},
470  {gettext("Tools"), 0,  0, 0, 64, FL_ENGRAVED_LABEL, 0, 14, 0},
471  {gettext("Browser && Searcher"), 0x62,  (Fl_Callback*)cb_search_mi, 0, 0, FL_ENGRAVED_LABEL, 0, 14, 0},
472  {gettext("Reader"), 0x72,  (Fl_Callback*)cb_Reader, 0, 129, FL_ENGRAVED_LABEL, 0, 14, 0},
473  {gettext("AI Tracer"), 0x40061,  (Fl_Callback*)cb_AI1, 0, 1, FL_ENGRAVED_LABEL, 0, 14, 0},
474  {gettext("Knowledge Tracer"), 0x4006b,  (Fl_Callback*)cb_Knowledge1, 0, 1, FL_ENGRAVED_LABEL, 0, 14, 0},
475  {gettext("Indexing machine"), 0x40069,  (Fl_Callback*)cb_Indexing, 0, 1, FL_ENGRAVED_LABEL, 0, 14, 0},
476  {gettext("Check Sfinx DB"), 0x40064,  (Fl_Callback*)cb_Check, 0, 1, FL_ENGRAVED_LABEL, 0, 14, 0},
477  {gettext("DB Backups"), 0x40062,  (Fl_Callback*)cb_DB, 0, 129, FL_ENGRAVED_LABEL, 0, 14, 0},
478  {gettext("Clear log window"), 0x10063,  (Fl_Callback*)cb_Clear, 0, 0, FL_ENGRAVED_LABEL, 0, 14, 0},
479  {0,0,0,0,0,0,0,0,0},
480  {gettext("Help"), 0,  0, 0, 64, FL_ENGRAVED_LABEL, 0, 14, 0},
481  {gettext("Manual     "), 0xffbe,  0, 0, 129, FL_ENGRAVED_LABEL, 0, 14, 0},
482  {gettext("About"), 0x80061,  (Fl_Callback*)cb_About, 0, 0, FL_ENGRAVED_LABEL, 0, 14, 0},
483  {0,0,0,0,0,0,0,0,0},
484  {0,0,0,0,0,0,0,0,0}
487 Fl_Output *status_bar_o=(Fl_Output *)0;
489 Fl_Browser *log_br=(Fl_Browser *)0;
491 Fl_Double_Window *preferences_w=(Fl_Double_Window *)0;
493 static void cb_Cancel(Fl_Button*, void*) {
494   preferences_w->hide();
497 static void cb_Apply(Fl_Button*, void*) {
498   write_preferences();
499 preferences_w->hide();
502 Fl_Scroll *prefs_tree_scroll=(Fl_Scroll *)0;
504 Fl_Group *config_connection_gr=(Fl_Group *)0;
506 Fl_Input *config_sfinx_server_name_i=(Fl_Input *)0;
508 Fl_Menu_Item menu_Minimum[] = {
509  {gettext("User Name && Passsword"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
510  {gettext("RSA Key"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
511  {0,0,0,0,0,0,0,0,0}
514 Fl_Menu_Item menu_Minimum1[] = {
515  {gettext("Debug Level"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
516  {gettext("Chat Level"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
517  {gettext("Info Level"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
518  {gettext("Notice Level"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
519  {gettext("Warning Level"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
520  {gettext("Error Level"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
521  {gettext("Alert Level"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
522  {gettext("Critical Level"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
523  {gettext("Fatal Level"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
524  {0,0,0,0,0,0,0,0,0}
527 Fl_Menu_Item menu_Minimum2[] = {
528  {gettext("Plain Stream"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
529  {gettext("AES Stream"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
530  {0,0,0,0,0,0,0,0,0}
533 Fl_Group *config_files_module_gr=(Fl_Group *)0;
535 Fl_Input *config_files_module_unsorted_path_i=(Fl_Input *)0;
537 Fl_Input *config_files_module_sorted_path_i=(Fl_Input *)0;
539 Fl_Check_Button *gen_desc_files_b=(Fl_Check_Button *)0;
541 Fl_Input *config_files_module_desc_file_name_i=(Fl_Input *)0;
543 Fl_Check_Button *process_files_mime_type_b=(Fl_Check_Button *)0;
545 Fl_Group *config_confirmation_gr=(Fl_Group *)0;
547 Fl_Check_Button *exit_confirm_b=(Fl_Check_Button *)0;
549 Fl_Double_Window *select_slice_w=(Fl_Double_Window *)0;
551 static void cb_Cancel1(Fl_Button*, void*) {
552   select_slice_w->hide();
555 Fl_Button *select_slice_b=(Fl_Button *)0;
557 static void cb_select_slice_b(Fl_Button*, void*) {
558   Fl_Toggle_Node *node = select_slice_tree->selected();
559 if (!node)
560         return;
561 void (*select_slice_action)() = (void (*)())(select_slice_w->user_data());
562 if (select_slice_action) {
563         select_slice_w->user_data(0);
564         select_slice_action();
566 select_slice_w->hide();
569 Fl_Scroll_Resize *select_slice_tree_scroll=(Fl_Scroll_Resize *)0;
571 Fl_Double_Window *slices_w=(Fl_Double_Window *)0;
573 static void cb_Cancel2(Fl_Button*, void*) {
574   slices_w->hide();
577 static void cb_Delete(Fl_Button*, void*) {
578   Fl_Toggle_Node *node = slices_tree->selected();
579 if (!node)
580         return;
581 sfinx_slice_t *slice = (sfinx_slice_t *)node->user_data();
582 if (slice->id == 1) // Root Slice can't be deleted
583         return;
584 // set safe deletion mode
585 slice_deletion_type_ch->value(0);
586 data_deletion_type_ch->value(0);
587 delete_sfinx_slice_to->value(slice->name());
588 delete_slice_w->show();
591 Fl_Scroll_Resize *slices_tree_scroll=(Fl_Scroll_Resize *)0;
593 static void cb_Edit(Fl_Button*, void*) {
594   Fl_Toggle_Node *node = slices_tree->selected();
595 if (!node)
596         return;
597 sfinx_slice_t *slice = (sfinx_slice_t *)node->user_data();
598 edit_slice_w->user_data((void *)slice);
599 app->sfinx.send(SFINX_EDIT_SLICE_REQUEST, (u32_t)slice->id);
600 edit_slice_w->label("Edit Sfinx Slice");
603 Fl_Output *slices_status_to=(Fl_Output *)0;
605 static void cb_New(Fl_Button*, void*) {
606   Fl_Toggle_Node *node = slices_tree->selected();
607 if (!node) {
608         fl_alert("Please select slice connection point !");
609         return;
611 edit_slice_w->user_data(0); // new slice
612 slice_name_i->value(0);
613 slice_directory_i->value(0);
614 slice_name_i->take_focus();
615 slice_description_i->value(0);
616 sfinx_slice_t *slice = (sfinx_slice_t *)slices_tree->selected()->user_data();
617 edit_slice_to->value(string(string("Parent slice: ") + slice->name()).c_str());
618 edit_slice_w->label("New Sfinx Slice");
619 edit_slice_w->show();
622 static void cb_Relink(Fl_Button*, void*) {
623   Fl_Toggle_Node *node = slices_tree->selected();
624 if (!node)
625         return;
626 sfinx_slice_t *slice = (sfinx_slice_t *)node->user_data();
627 if (slice->id == 1) // root slice can't be relinked
628         return;
629 fill_objects_tree(select_slice_tree, SFINX_SLICE_OBJECT, slice, 0);
630 select_slice_w->user_data((void *)relink_slice_action);
631 select_slice_w->show();
634 static void cb_Search(Fl_Button*, void*) {
635   search_mi->do_callback(0, (void *)0);
638 Fl_Double_Window *edit_slice_w=(Fl_Double_Window *)0;
640 Fl_Input *slice_name_i=(Fl_Input *)0;
642 Fl_Input *slice_directory_i=(Fl_Input *)0;
644 Fl_Input *slice_description_i=(Fl_Input *)0;
646 static void cb_Ok(Fl_Return_Button*, void*) {
647   if (!slice_name_i->size()) {
648         fl_message("Missing slice name !");
649         return;
651 sfinx_slice_t *eslice = (sfinx_slice_t *)edit_slice_w->user_data();
652 sfinx_slice_t slice;
653 if (eslice) {
654         slice.tid(SFINX_EDIT_SLICE);
655         slice.id = eslice->id; // edited slice id
656         slice.parent_id = eslice->parent_id;
657 } else {
658         slice.tid(SFINX_NEW_SLICE);
659         sfinx_slice_t *s =  (sfinx_slice_t *)(slices_tree->selected()->user_data());
660         slice.parent_id = s->id; // parent id for new slice
662 slice.name(slice_name_i->value());
663 slice.directory(slice_directory_i->value());
664 slice.description(slice_description_i->value());
665 app->sfinx.send(slice);
666 edit_slice_w->hide();
667 fill_objects_tree(slices_tree, 1 << SFINX_SLICE_OBJECT, 0, 1); // force refresh;
670 static void cb_Cancel3(Fl_Button*, void*) {
671   edit_slice_w->hide();
674 Fl_Output *edit_slice_to=(Fl_Output *)0;
676 Fl_Double_Window *delete_slice_w=(Fl_Double_Window *)0;
678 static void cb_Cancel4(Fl_Button*, void*) {
679   delete_slice_w->hide();
682 static void cb_Delete1(Fl_Button*, void*) {
683   // need to confirm deletion ?!
684 bool recursivly = slice_deletion_type_ch->value();
685 sfinx_slice_t *slice = (sfinx_slice_t *)slices_tree->selected()->user_data();
686 app->sfinx.send(data_deletion_type_ch->value() ?
687         (recursivly ? SFINX_DELETE_SLICE_ASSOC_DATA_RECURSIVLY : SFINX_DELETE_SLICE_ASSOC_DATA) :
688         (recursivly ? SFINX_DELETE_SLICE_MARK_DATA_UNSORTED_RECURSIVLY : SFINX_DELETE_SLICE_MARK_DATA_UNSORTED),
689         (u32_t)slice->id);
690 app->sfinx.send(recursivly ? SFINX_DELETE_SLICE_RECURSIVLY : SFINX_DELETE_SLICE_WITH_REATTACH,
691         (u32_t)slice->id);
692 delete_slice_w->hide();
693 fill_objects_tree(slices_tree, 1 << SFINX_SLICE_OBJECT, 0, 1); // force refresh;
696 Fl_Output *delete_sfinx_slice_to=(Fl_Output *)0;
698 Fl_Choice *slice_deletion_type_ch=(Fl_Choice *)0;
700 Fl_Menu_Item menu_slice_deletion_type_ch[] = {
701  {gettext("Attach subslices to parent"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
702  {gettext("Delete all subslices recursivly"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
703  {0,0,0,0,0,0,0,0,0}
706 Fl_Choice *data_deletion_type_ch=(Fl_Choice *)0;
708 Fl_Menu_Item menu_data_deletion_type_ch[] = {
709  {gettext("Mark all data \'Unsorted\'"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
710  {gettext("Delete all data"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
711  {0,0,0,0,0,0,0,0,0}
714 Fl_Double_Window *progress_w=(Fl_Double_Window *)0;
716 Fl_Progress *progress_bar=(Fl_Progress *)0;
718 Fl_Box *progress_l=(Fl_Box *)0;
720 Fl_Double_Window *files_module_w=(Fl_Double_Window *)0;
722 static void cb_Cancel5(Fl_Button*, void*) {
723   files_module_w->hide();
726 Fl_Output *files_module_status_to=(Fl_Output *)0;
728 Fl_Button *classify_file_b=(Fl_Button *)0;
730 static void cb_classify_file_b(Fl_Button*, void*) {
731   int n = files_module_tree_br->value();
732 if (!n)
733         return;
734 sfinx_file_t *file = ((sfinx_files_vector_t *)files_module_tree_br->user_data())->files[n - 1];
735 string path;
736 app->files_module_conf.get(FILES_MODULE_UNSORTED_PATH, path);
737 char buf[256];
738 int eyear, emonth, eday, ehour, emin, esec, cyear, cmonth, cday, chour, cmin, csec;
739 file->etime.GetDate(eyear, emonth, eday);
740 file->etime.GetTime(ehour, emin, esec);
741 file->ctime.GetDate(cyear, cmonth, cday);
742 file->ctime.GetTime(chour, cmin, csec);
743 sprintf(buf, "%llu bytes | Modified: %02d/%02d/%04d %02d:%02d:%02d | Last Status Changed: %02d/%02d/%04d %02d:%02d:%02d", file->fsize, cday, cmonth,
744         cyear, chour, cmin, csec, eday, emonth, eyear, ehour, emin, esec);
745 string t = "URL: " + path + current_file.name + "/" + file->name + " | " + file->mimetype + " | Size: " + buf;
746 classify_file_to->value(t.c_str());
747 file_title_i->value(0);
748 file_name_i->value(file->name.c_str());
749 // save orig file name
750 file->orig_name = file->name;
751 file->tid(SFINX_FILES_MODULE_CLASSIFY_REQUEST); // new file
752 file_title_i->take_focus();
753 file_authority_i->value(0);
754 file_description_i->value(0);
755 file_comments_i->value(0);
756 sorted_location_b->value(1);
757 file_compress_b->value(1);
758 file_gen_csum_b->value(1);
759 file_mtag_b->label("Main Slice (Not Set)");
760 file_mtag_b->user_data(0); // ÔÕÔÁ ÈÒÁÎÉÔÓÑ mtag
761 file_tags_br->clear();
762 classify_file_w->user_data((void *)file);
763 classify_file_w->label("Classify File");
764 classify_file_w->show();
767 static void cb_Edit1(Fl_Button*, void*) {
768   Fl_Toggle_Node *node = files_tree->selected();
769 if (!node || node->can_open()) {
770         if (current_file.tid() == SFINX_FILES_MODULE_UNSORTED_TREE_REQUEST) // trying to edit unsorted file
771                 return;
772         fl_alert("Please select file to edit !");
773         return;
775 sfinx_object_t *obj = (sfinx_object_t *) node->user_data();
776 if (obj->type != SFINX_FILE_OBJECT)
777         bug();
778 sfinx_file_t file(SFINX_FILES_MODULE_EDIT_REQUEST);
779 file.id = obj->id;
780 app->sfinx.send(file);
783 Fl_Browser *files_module_tree_br=(Fl_Browser *)0;
785 static void cb_files_module_tree_br(Fl_Browser*, void*) {
786   if (!Fl::event_clicks())
787         return;
788 sfinx_files_vector_t *tree = (sfinx_files_vector_t *) files_module_tree_br->user_data();
789 int n = files_module_tree_br->value();
790 if (tree->files[n - 1]->is_directory) { // ÀÚÅÒ ÓÍÅÎÉÌ ÄÉÒÅËÔÏÒÉÀ
791         current_file.id = tree->files[n - 1]->id;
792         current_file.mtag.id = tree->files[n - 1]->mtag.id;
793         current_file.name += ('/' + tree->files[n - 1]->name);
794         app->sfinx.send(current_file);
795 } else {
796         if (!(tree->files[n - 1]->id)) // classify file
797                 classify_file_b->do_callback();
801 static void cb_Delete2(Fl_Button*, void*) {
802   if (current_file.tid() == SFINX_FILES_MODULE_UNSORTED_TREE_REQUEST) { // unsorted tree
803         int n = files_module_tree_br->value();
804         if (!n)
805                 return;
806         sfinx_file_t *file = ((sfinx_files_vector_t *)files_module_tree_br->user_data())->files[n - 1];
807         string path;    // sure ?
808         string message = "Deleting ";
809         if (file->is_directory)
810                 message += "directory";
811         else
812                 message += "file";
813         message += (" \'" + file->name + "\'. Are you sure ?");
814         if (fl_choice(message.c_str(), "Yes", "No", 0L))
815                 return;
816         file->tid(SFINX_FILES_MODULE_UNSORTED_DELETE);
817         app->sfinx.send(file); // check for errors ?
818         app->sfinx.send(current_file);
819 } else { // sorted tree
820         Fl_Toggle_Node *node = files_tree->selected();
821         if (!node || node->can_open())
822                 return;
823         sfinx_object_t *obj = (sfinx_object_t *) node->user_data();
824         string message = "Delete or Unsort \'" + obj->name + "\' ?";
825         int res = fl_choice(message.c_str(), "Cancel", "Unsort", "Delete");
826         sfinx_file_t file;
827         file.id = obj->id;
828         file.mtag.slice_id = obj->slice_id; 
829         if (!res)
830                 return;
831         if (res == 2) // delete
832                 file.tid(SFINX_FILES_MODULE_SORTED_UNLINK);
833         else
834                 file.tid(SFINX_FILES_MODULE_UNSORT);
835         app->sfinx.send(file);
836         fill_objects_tree(files_tree, (1 << SFINX_FILE_OBJECT), 0, 1); // fluid bugs if any default params exists !
841 Fl_Button *select_files_tree_b=(Fl_Button *)0;
843 static void cb_select_files_tree_b(Fl_Button*, void*) {
844   current_file.name.clear();
845 current_file.orig_name.clear();
846 if (select_files_tree_b->user_data()) {
847         current_file.tid(SFINX_FILES_MODULE_UNSORTED_TREE_REQUEST);
848         current_file.id = 0;
849         select_files_tree_b->user_data(0);
850         app->sfinx.send(current_file);
851 } else {
852         select_files_tree_b->user_data((void *)1);
853         select_files_tree_b->label("Show Unsorted");
854         select_files_tree_b->redraw();
855         current_file.tid(0);
856         files_module_status_to->value("Sorted Files Tree");
857         current_file.id = 1; // root id
858         files_module_tree_br->hide();
859         files_tree_scroll->resize(files_tree_scroll->x(), files_tree_scroll->y(), files_module_tree_br->w(), files_module_tree_br->h());
860         files_module_w->resizable(files_tree_scroll);
861         fill_objects_tree(files_tree, 1 << SFINX_FILE_OBJECT, 0, 0); // fluid bugs if any default params exists !
862         files_tree_scroll->show();
866 static void cb_Up(Fl_Button*, void*) {
867   const char *p = strrchr(current_file.name.c_str(), '/');
868 if (!p) {
869         if (!current_file.name.size())
870                 return;
871         current_file.name.clear();
872 } else {
873         char path[1024];
874         path[0] = 0;
875         strncat(path, current_file.name.c_str(), p - current_file.name.c_str());
876         current_file.name = path;
877         current_file.id = current_file.mtag.id;
879 app->sfinx.send(current_file);
882 static void cb_Reload(Fl_Button*, void*) {
883   if (current_file.tid() != SFINX_FILES_MODULE_UNSORTED_TREE_REQUEST)
884         fill_objects_tree(files_tree, (1 << SFINX_FILE_OBJECT), 0, 1); // fluid bugs if any default params exists !
885 else
886         app->sfinx.send(current_file);
889 static void cb_Select(Fl_Button*, void*) {
890   //for (int i = 1; i <= files_module_tree_br->size(); i++)
891 //      files_module_tree_br->select(i);
894 static void cb_Unselect(Fl_Button*, void*) {
895   files_module_tree_br->deselect();
898 Fl_Scroll_Resize *files_tree_scroll=(Fl_Scroll_Resize *)0;
900 Fl_Double_Window *classify_file_w=(Fl_Double_Window *)0;
902 static void cb_Cancel6(Fl_Button*, void*) {
903   classify_file_w->hide();
906 Fl_Input *file_title_i=(Fl_Input *)0;
908 Fl_Input *file_authority_i=(Fl_Input *)0;
910 Fl_Input *file_description_i=(Fl_Input *)0;
912 Fl_Input *file_comments_i=(Fl_Input *)0;
914 Fl_Output *classify_file_to=(Fl_Output *)0;
916 static void cb_Ok1(Fl_Return_Button*, void*) {
917   if (!file_mtag_b->user_data()) {
918         fl_alert("You have to select Main Slice for file !");
919         return;
921 if (!file_name_i->size()) {
922         fl_alert("File must have some name !");
923         return;
925 sfinx_file_t *file = (sfinx_file_t *)classify_file_w->user_data();
926 file->name = file_name_i->value();
927 file->title = file_title_i->value();
928 file->authority = file_authority_i->value();
929 file->description = file_description_i->value();
930 file->comments = file_comments_i->value();
931 file->sorted_location = sorted_location_b->value();
932 file->store_compressed = file_compress_b->value();
933 file->generate_csum = file_gen_csum_b->value();
934 sfinx_object_t *obj = (sfinx_object_t *)file_mtag_b->user_data();
935 file->mtag.id = obj->id;
936 file->mtag.type = obj->type;
937 file->mtag.slice_id = obj->slice_id;
938 file_mtag_b->user_data(0);
939 file->tags.clear();
940 for (int i = 1; i <= file_tags_br->size(); i++) {
941         obj = (sfinx_object_t *)file_tags_br->data(i);
942         file->tags.push_back(*obj);
943         file_tags_br->data(i, 0);
945 app->sfinx.send(file);
948 Fl_Check_Button *sorted_location_b=(Fl_Check_Button *)0;
950 Fl_Check_Button *file_crypt_b=(Fl_Check_Button *)0;
952 Fl_Check_Button *file_compress_b=(Fl_Check_Button *)0;
954 Fl_Button *file_mtag_b=(Fl_Button *)0;
956 static void cb_file_mtag_b(Fl_Button*, void*) {
957   fill_objects_tree(select_slice_tree, (1 << SFINX_SLICE_OBJECT) | (1 << SFINX_FILE_OBJECT) | (1 << SFINX_NOTE_OBJECT), 0, 0); // fluid bugs if any default params exists !
958 select_slice_w->user_data((void *)select_file_mtag_action);
959 select_slice_w->show();
962 Fl_Browser *file_tags_br=(Fl_Browser *)0;
964 Fl_Button *file_add_tag_b=(Fl_Button *)0;
966 static void cb_file_add_tag_b(Fl_Button*, void*) {
967   fill_objects_tree(select_slice_tree, (1 << SFINX_SLICE_OBJECT) | (1 << SFINX_FILE_OBJECT) | (1 << SFINX_NOTE_OBJECT), 0, 0); // fluid bugs if any default params exists !
968 select_slice_w->user_data((void *)select_file_atag_action);
969 select_slice_w->show();
972 Fl_Button *file_remove_tag_b=(Fl_Button *)0;
974 static void cb_file_remove_tag_b(Fl_Button*, void*) {
975   for (int i = file_tags_br->size(); i >= 1; i--) {
976         if (file_tags_br->selected(i))
977                 file_tags_br->remove(i);
981 Fl_Input *file_name_i=(Fl_Input *)0;
983 Fl_Check_Button *file_gen_csum_b=(Fl_Check_Button *)0;
985 Fl_Double_Window *notes_w=(Fl_Double_Window *)0;
987 static void cb_Cancel7(Fl_Button*, void*) {
988   notes_w->hide();
991 Fl_Output *notes_module_status_to=(Fl_Output *)0;
993 static void cb_New1(Fl_Button*, void*) {
994   Fl_Toggle_Node *node = notes_tree->selected();
995 if (!node) {
996         fl_alert("Please select slice connection point !");
997         return;
999 sfinx_note_t *note = new sfinx_note_t(SFINX_NOTES_MODULE_ADD);
1000 edit_note_w->user_data((void *)note);
1001 sfinx_object_t *obj;
1002 if (node->can_open()) // slice
1003         obj = ((sfinx_slice_t *)node->user_data())->object();
1004 else // object
1005         obj = (sfinx_object_t *) node->user_data();
1006 note_mtag_b->user_data(obj);
1007 note_mtag_b->copy_label((obj->name + " [ " + obj->description + " ]").c_str()); 
1008 note_mtag_b->redraw();
1009 note_name_i->value(0);
1010 note_url_i->value(0);
1011 note_text_i->value(0);
1012 note_name_i->take_focus();
1013 edit_note_w->label("New Note");
1014 edit_note_w->show();
1017 static void cb_Edit2(Fl_Button*, void*) {
1018   Fl_Toggle_Node *node = notes_tree->selected();
1019 if (!node || node->can_open()) {
1020         fl_alert("Please select note to edit !");
1021         return;
1023 sfinx_object_t *obj = (sfinx_object_t *) node->user_data();
1024 if (obj->type != SFINX_NOTE_OBJECT)
1025         bug();
1026 sfinx_note_t note(SFINX_NOTES_MODULE_EDIT_REQUEST);
1027 note.id = obj->id;
1028 app->sfinx.send(note);
1031 Fl_Scroll_Resize *notes_tree_scroll=(Fl_Scroll_Resize *)0;
1033 static void cb_Delete3(Fl_Button*, void*) {
1034   Fl_Toggle_Node *node = notes_tree->selected();
1035 if (!node || node->can_open())
1036         return;
1037 sfinx_object_t *obj = (sfinx_object_t *) node->user_data();
1038 delete_sfinx_note_to->value(obj->name.c_str());
1039 delete_note_w->user_data(obj);
1040 delete_note_w->show();
1043 Fl_Double_Window *edit_note_w=(Fl_Double_Window *)0;
1045 static void cb_Cancel8(Fl_Button*, void*) {
1046   edit_note_w->hide();
1049 Fl_Input *note_name_i=(Fl_Input *)0;
1051 Fl_Input *note_url_i=(Fl_Input *)0;
1053 Fl_Input *note_text_i=(Fl_Input *)0;
1055 Fl_Output *edit_note_to=(Fl_Output *)0;
1057 static void cb_Ok2(Fl_Return_Button*, void*) {
1058   if (!note_mtag_b->user_data()) {
1059         fl_alert("You have to select Main Object for note !");
1060         return;
1062 if (!note_name_i->size()) {
1063         fl_alert("Note must have some name !");
1064         return;
1066 if (!note_text_i->size()) {
1067         fl_alert("Note must have some text !");
1068         return;
1070 sfinx_note_t *note = (sfinx_note_t *)edit_note_w->user_data();
1071 note->name = note_name_i->value();
1072 note->url = note_url_i->value();
1073 note->text = note_text_i->value();
1074 sfinx_object_t *obj = (sfinx_object_t *)note_mtag_b->user_data();
1075 note->mtag.id = obj->id;
1076 note->mtag.type = obj->type;
1077 note->mtag.slice_id = obj->slice_id;
1078 note_mtag_b->user_data(0);
1079 note->tags.clear();
1080 for (int i = 1; i <= note_tags_br->size(); i++) {
1081         obj = (sfinx_object_t *)note_tags_br->data(i);
1082         note->tags.push_back(*obj);
1083         note_tags_br->data(i, 0);
1085 app->sfinx.send(note);
1086 delete note;
1087 edit_note_w->user_data(0);
1090 Fl_Button *note_mtag_b=(Fl_Button *)0;
1092 static void cb_note_mtag_b(Fl_Button*, void*) {
1093   fill_objects_tree(select_slice_tree, (1 << SFINX_SLICE_OBJECT) | (1 << SFINX_FILE_OBJECT) | (1 << SFINX_NOTE_OBJECT), 0, 0); // fluid bugs if any default params exists !
1094 slices_w->user_data((void *)select_note_mtag_action);
1095 slices_w->show();
1098 Fl_Browser *note_tags_br=(Fl_Browser *)0;
1100 Fl_Button *note_add_tag_b=(Fl_Button *)0;
1102 static void cb_note_add_tag_b(Fl_Button*, void*) {
1103   fill_objects_tree(select_slice_tree, (1 << SFINX_SLICE_OBJECT) | (1 << SFINX_FILE_OBJECT) | (1 << SFINX_NOTE_OBJECT), 0, 0); // fluid bugs if any default params exists !
1104 slices_w->user_data((void *)select_note_atag_action);
1105 slices_w->show();
1108 Fl_Button *note_remove_tag_b=(Fl_Button *)0;
1110 static void cb_note_remove_tag_b(Fl_Button*, void*) {
1111   for (int i = note_tags_br->size(); i >= 1; i--) {
1112         if (note_tags_br->selected(i))
1113                 note_tags_br->remove(i);
1117 Fl_Choice *note_secured_ch=(Fl_Choice *)0;
1119 Fl_Menu_Item menu_note_secured_ch[] = {
1120  {gettext("None"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
1121  {gettext("Crypted Text"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
1122  {0,0,0,0,0,0,0,0,0}
1125 Fl_Double_Window *delete_note_w=(Fl_Double_Window *)0;
1127 static void cb_Cancel9(Fl_Button*, void*) {
1128   delete_note_w->hide();
1131 static void cb_Delete4(Fl_Button*, void*) {
1132   sfinx_object_t *obj = (sfinx_object_t *) delete_note_w->user_data();
1133 sfinx_note_t note(note_deletion_type_ch->value() ? SFINX_NOTES_MODULE_UNLINK : SFINX_NOTES_MODULE_UNSORT);
1134 note.id = obj->id;
1135 note.mtag.slice_id = obj->slice_id;
1136 app->sfinx.send(note);
1137 delete_note_w->user_data(0);
1138 delete_note_w->hide();
1139 fill_objects_tree(notes_tree, (1 << SFINX_SLICE_OBJECT) | (1 << SFINX_NOTE_OBJECT), 0, 1); // force refresh;
1142 Fl_Output *delete_sfinx_note_to=(Fl_Output *)0;
1144 Fl_Choice *note_deletion_type_ch=(Fl_Choice *)0;
1146 Fl_Menu_Item menu_note_deletion_type_ch[] = {
1147  {gettext("Mark all data \'Unsorted\'"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
1148  {gettext("Delete all data"), 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
1149  {0,0,0,0,0,0,0,0,0}
1152 Fl_Double_Window *search_browser_w=(Fl_Double_Window *)0;
1154 static void cb_Cancela(Fl_Button*, void*) {
1155   search_browser_w->hide();
1158 Fl_Browser *search_browser_br=(Fl_Browser *)0;
1160 Fl_Choice *goto_page_ch=(Fl_Choice *)0;
1162 Search_Menu_Button *search_menu=(Search_Menu_Button *)0;
1164 static void cb_open_link_mi(Fl_Menu_*, void*) {
1165   search_menu_cb(0, (void *)1);
1168 static void cb_copy_link_mi(Fl_Menu_*, void*) {
1169   search_menu_cb(0, 0);
1172 Fl_Menu_Item menu_search_menu[] = {
1173  {gettext("Open Link"), 0,  (Fl_Callback*)cb_open_link_mi, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
1174  {gettext("Copy Link"), 0,  (Fl_Callback*)cb_copy_link_mi, (void*)(0), 0, FL_NORMAL_LABEL, 0, 14, 0},
1175  {0,0,0,0,0,0,0,0,0}
1178 Fl_Double_Window *browse_w=(Fl_Double_Window *)0;
1180 static void cb_Cancelb(Fl_Button*, void*) {
1181   browse_w->hide();
1184 Fl_Output *browse_status_to=(Fl_Output *)0;
1186 static void cb_Edit3(Fl_Button*, void*) {
1187   /*Fl_Toggle_Node *node = browse_tree->selected();
1188 if (!node || node->can_open()) {
1189         fl_alert("Please select object to edit !");
1190         return;
1192 sfinx_object_t *obj = (sfinx_object_t *) node->user_data();
1193 if (obj->type != SFINX_NOTE_OBJECT)
1194         bug();
1195 sfinx_note_t note(SFINX_NOTES_MODULE_EDIT_REQUEST);
1196 note.id = obj->id;
1197 app->sfinx.send(note);*/;
1200 Fl_Scroll_Resize *browse_scroll=(Fl_Scroll_Resize *)0;
1202 static void cb_Delete5(Fl_Button*, void*) {
1203   /*Fl_Toggle_Node *node = notes_tree->selected();
1204 if (!node || node->can_open())
1205         return;
1206 sfinx_object_t *obj = (sfinx_object_t *) node->user_data();
1207 delete_sfinx_note_to->value(obj->name.c_str());
1208 delete_note_w->user_data(obj);
1209 delete_note_w->show();*/;
1212 Fl_Double_Window *search_w=(Fl_Double_Window *)0;
1214 static void cb_Cancelc(Fl_Button*, void*) {
1215   search_w->hide();
1218 static void cb_Search1(Fl_Return_Button*, void*) {
1219   sfinx_search_query_t query;
1220 query.pattern = search_i->value();
1221 query.add_area(SFINX_SLICE_OBJECT);
1222 if (search_in_files_b->value())
1223         query.add_area(SFINX_FILE_OBJECT);
1224 if (search_in_notes_b->value())
1225         query.add_area(SFINX_NOTE_OBJECT);
1226 // add slice restrictions
1227 for (int i = 1; i <= search_slices_br->size(); i++) {
1228         sfinx_object_t *obj = (sfinx_object_t *)search_slices_br->data(i);
1229         query.rtags.push_back(*obj);
1231 app->sfinx.send(query);
1234 Fl_Check_Button *search_in_files_b=(Fl_Check_Button *)0;
1236 Fl_Browser *search_slices_br=(Fl_Browser *)0;
1238 Fl_Button *search_add_slice_b=(Fl_Button *)0;
1240 static void cb_search_add_slice_b(Fl_Button*, void*) {
1241   fill_objects_tree(select_slice_tree, 1 << SFINX_SLICE_OBJECT, 0, 0);
1242 select_slice_w->user_data((void *)search_add_slice_action);
1243 select_slice_w->show();
1246 static void cb_Remove(Fl_Button*, void*) {
1247   for (int i = search_slices_br->size(); i >= 1; i--) {
1248         if (search_slices_br->selected(i))
1249                 search_slices_br->remove(i);
1253 Fl_Input *search_i=(Fl_Input *)0;
1255 static void cb_Browse(Fl_Button*, void*) {
1256   fill_objects_tree(browse_tree, (1 << SFINX_SLICE_OBJECT) | (1 << SFINX_FILE_OBJECT) | (1 << SFINX_NOTE_OBJECT), 0, 0); // fluid bugs if any default params exists !
1257 browse_w->show();
1260 Fl_Check_Button *search_in_notes_b=(Fl_Check_Button *)0;
1262 Fl_Double_Window *about_w=(Fl_Double_Window *)0;
1264 static void cb_Ok3(Fl_Button*, void*) {
1265   about_w->hide();
1268 #include <FL/Fl_Image.H>
1269 static unsigned char idata_sfinx[] =
1270 {38,109,233,40,111,235,40,111,235,43,114,238,43,114,238,45,116,240,45,116,
1271 240,45,116,240,45,116,240,45,116,240,45,116,240,45,116,240,45,116,240,45,116,
1272 240,45,116,240,46,116,240,51,115,239,53,114,239,55,116,241,55,116,241,55,116,
1273 241,53,114,239,50,111,238,50,111,238,48,109,234,48,109,234,48,109,234,48,109,
1274 234,48,109,234,48,109,234,48,109,234,48,110,233,51,109,232,50,109,229,47,105,
1275 230,44,102,227,44,102,227,44,102,227,43,101,226,46,104,229,52,109,238,50,107,
1276 236,45,102,231,43,100,229,43,100,229,45,102,231,50,107,238,49,109,239,38,106,
1277 231,39,110,234,39,108,235,39,109,233,43,108,234,44,108,231,45,107,230,51,110,
1278 230,50,106,225,52,105,221,53,102,220,55,102,216,59,102,217,59,102,215,57,103,
1279 215,52,105,217,35,107,215,41,122,229,38,119,226,24,105,212,24,102,213,35,111,
1280 223,34,107,218,22,92,204,36,103,220,37,102,220,38,98,222,39,99,223,43,98,224,44,
1281 98,224,45,96,223,44,98,220,38,101,214,35,103,212,38,101,215,36,98,219,36,96,
1282 229,33,91,234,36,90,242,35,90,245,32,86,244,29,88,242,28,89,242,26,92,238,26,93,
1283 233,25,95,227,25,94,221,26,94,221,27,90,221,29,89,222,29,88,224,29,88,224,29,88,
1284 224,29,88,224,29,88,224,29,88,224,24,83,219,24,83,219,27,86,222,27,86,222,27,86,
1285 222,27,86,222,27,86,222,29,88,224,24,83,219,22,81,217,22,81,217,20,79,215,20,79,
1286 215,22,81,217,22,81,217,24,83,219,21,79,215,18,76,212,17,76,212,15,74,210,15,74,
1287 210,17,76,212,15,77,212,15,81,217,9,78,217,6,79,218,40,111,235,40,111,235,43,
1288 114,238,44,115,239,43,114,238,45,116,240,45,116,240,45,116,240,45,116,240,45,
1289 116,240,45,116,240,45,116,240,45,116,240,45,116,240,45,116,240,47,115,240,51,
1290 115,239,55,116,241,55,116,241,55,116,241,55,116,241,53,114,239,49,110,237,48,
1291 109,236,48,109,234,48,109,234,48,109,234,48,109,234,48,109,234,48,109,234,48,
1292 109,234,48,109,234,51,109,232,50,108,231,47,105,230,47,105,230,44,102,227,44,
1293 102,227,47,105,230,47,105,230,50,107,236,50,107,236,47,104,233,45,102,231,45,
1294 102,231,47,104,233,50,107,238,48,107,235,44,108,232,42,108,231,43,108,234,44,
1295 110,233,45,109,233,46,108,231,46,106,230,47,105,228,49,105,226,51,106,225,53,
1296 105,225,54,105,223,52,101,220,52,101,220,52,101,220,47,104,220,40,110,224,37,
1297 115,226,37,112,227,32,107,222,32,107,224,38,110,228,37,108,226,30,99,218,35,101,
1298 221,36,100,223,37,98,223,39,98,224,39,98,224,40,98,224,42,97,224,40,98,221,36,
1299 102,215,35,103,214,37,102,218,34,98,221,33,96,227,34,93,231,35,91,238,35,90,242,
1300 32,89,240,30,90,240,30,92,239,26,91,233,24,92,227,25,94,223,25,95,219,27,95,
1301 220,27,90,221,29,89,222,29,88,224,29,88,224,29,88,224,29,88,224,29,88,224,29,88,
1302 224,29,88,224,27,86,222,27,86,222,27,86,222,27,86,222,27,86,222,27,86,222,27,86,
1303 222,24,83,219,22,81,217,22,81,217,20,79,215,20,79,215,22,81,217,22,81,217,24,83,
1304 219,21,79,215,21,79,215,17,76,212,15,74,210,15,74,210,17,76,212,18,80,215,17,81,
1305 217,2,71,210,0,72,211,45,115,239,45,115,239,45,114,241,47,117,241,47,117,241,47,
1306 117,239,49,119,241,49,119,241,47,117,239,47,117,239,47,117,239,47,117,239,47,
1307 117,239,47,117,239,47,117,241,48,116,241,53,117,241,55,116,241,55,116,243,55,
1308 116,243,55,116,241,52,113,238,50,111,238,49,110,237,48,109,236,48,109,236,48,
1309 109,236,48,109,236,48,109,234,48,109,234,48,109,236,48,109,234,51,109,234,51,
1310 109,234,49,107,232,47,105,230,45,100,226,45,100,226,47,105,230,47,105,230,50,
1311 107,236,50,107,236,47,104,233,47,104,233,47,104,233,47,104,233,50,107,236,50,
1312 108,234,51,109,234,49,107,230,48,106,229,47,105,228,46,106,228,43,103,227,45,
1313 103,229,43,101,227,46,105,231,47,106,232,47,106,234,43,102,230,43,102,232,42,
1314 101,231,42,101,231,37,97,227,47,115,240,35,105,229,32,100,227,38,106,233,47,114,
1315 244,42,110,237,40,105,233,37,102,230,35,100,228,35,100,228,35,100,228,37,100,
1316 229,36,99,228,36,99,228,36,100,226,36,102,224,32,101,218,33,104,218,32,101,220,
1317 35,101,223,32,100,225,33,98,228,36,95,233,37,96,236,34,93,233,32,94,231,31,95,
1318 231,29,96,227,28,96,223,30,98,221,29,98,219,31,97,220,29,92,223,31,91,224,31,90,
1319 226,31,90,226,31,90,226,31,90,226,31,90,226,32,91,227,31,90,226,31,90,226,29,88,
1320 224,29,88,224,27,86,222,24,83,219,24,83,219,24,83,219,24,83,219,24,83,219,22,81,
1321 217,22,81,217,22,81,217,22,81,217,24,83,219,24,83,219,23,81,217,21,79,215,17,76,
1322 212,17,76,212,17,76,212,17,76,212,18,80,215,19,83,219,1,68,208,0,69,209,47,117,
1323 241,47,117,241,47,116,243,49,119,243,49,119,241,49,119,241,50,118,241,50,118,
1324 241,49,119,241,49,119,240,50,118,241,50,118,241,49,119,241,49,119,241,50,118,
1325 243,52,117,243,56,120,244,57,118,243,57,118,245,57,118,245,55,116,241,53,114,
1326 239,50,111,238,48,109,236,50,111,238,50,111,238,50,111,238,50,111,238,50,111,
1327 236,50,111,236,50,111,238,50,111,238,53,111,237,51,109,234,50,108,234,47,105,
1328 231,49,104,231,49,104,231,47,105,231,49,107,233,50,108,234,51,109,235,50,107,
1329 236,47,105,231,47,104,233,50,108,234,50,107,236,51,106,232,59,110,235,57,109,
1330 231,54,106,228,53,107,229,48,104,227,48,103,229,44,102,228,41,98,227,47,107,239,
1331 43,105,238,42,106,240,38,104,240,36,102,240,36,102,240,36,99,238,36,98,235,52,
1332 112,245,37,95,229,31,87,222,45,101,238,53,111,247,47,105,241,41,99,233,43,103,
1333 236,38,100,233,36,100,232,37,101,233,35,102,233,36,105,235,35,104,234,34,104,
1334 234,34,105,231,31,103,224,32,104,224,32,102,224,33,103,225,33,103,225,33,103,
1335 227,35,100,228,33,96,225,33,96,225,34,99,225,34,99,225,31,99,222,33,99,219,32,
1336 98,218,32,98,218,33,99,221,31,94,225,34,94,227,34,93,229,34,93,229,31,90,226,
1337 31,90,226,32,91,227,31,90,226,34,93,229,34,93,229,31,90,226,29,88,224,27,86,
1338 222,24,83,219,24,83,219,22,81,217,27,86,222,24,83,219,22,81,217,22,81,217,22,81,
1339 217,22,81,217,24,83,219,27,86,222,23,81,217,23,81,217,20,79,215,20,79,215,20,79,
1340 215,20,79,215,20,82,217,19,83,219,9,76,216,8,77,217,52,122,246,52,122,246,53,
1341 121,246,50,118,243,48,118,240,49,119,241,50,118,243,50,118,241,49,119,241,49,
1342 119,241,50,118,243,50,118,243,49,119,241,49,119,241,50,118,243,52,117,243,58,
1343 122,246,60,121,246,59,120,245,60,121,246,57,118,243,53,114,239,50,111,238,48,
1344 109,236,50,111,236,50,111,236,50,111,238,50,111,238,50,111,236,50,111,236,50,
1345 111,238,50,111,238,54,111,240,52,110,236,50,107,236,50,107,236,49,104,233,49,
1346 104,233,50,107,236,50,108,234,49,107,233,49,107,232,49,107,233,51,109,234,51,
1347 109,235,49,107,232,51,106,233,53,107,231,60,110,233,58,108,229,56,106,229,55,
1348 105,230,50,101,228,48,101,229,45,100,229,41,98,229,45,105,238,43,107,243,40,107,
1349 247,37,104,245,36,104,247,34,102,245,35,102,245,39,100,242,55,102,242,48,89,229,
1350 45,86,226,54,95,235,58,104,242,53,100,238,48,97,236,47,100,238,42,100,236,39,
1351 101,238,36,102,238,34,102,239,32,104,240,31,105,240,29,105,242,31,105,240,30,
1352 103,232,32,103,231,31,102,228,31,102,226,31,103,224,32,104,224,33,103,224,34,
1353 105,223,29,99,213,31,101,215,31,101,215,33,100,213,34,100,213,35,100,216,35,100,
1354 218,34,98,221,38,98,230,38,98,231,36,96,229,36,96,229,34,93,229,35,94,230,31,90,
1355 226,31,90,226,36,95,231,34,93,229,34,93,229,31,90,226,29,88,224,27,86,222,24,83,
1356 219,24,83,219,27,86,222,27,86,222,24,83,219,22,81,217,22,81,217,24,83,219,27,86,
1357 222,27,86,222,24,83,219,24,83,219,22,81,217,22,81,217,22,81,217,22,81,217,22,84,
1358 219,21,85,221,13,80,221,13,81,224,55,123,248,55,123,248,57,122,248,55,120,246,
1359 53,121,244,53,121,244,52,117,243,51,116,242,53,121,244,53,121,244,55,120,246,
1360 55,120,246,53,121,244,53,121,244,55,120,246,55,120,246,60,124,248,62,123,248,
1361 62,123,248,60,121,246,57,118,243,53,114,239,50,111,238,48,109,236,53,114,239,
1362 53,114,239,53,114,241,53,114,241,53,114,239,53,114,239,53,114,241,53,114,241,
1363 53,112,240,54,111,240,52,109,238,50,107,236,52,106,238,52,106,238,50,107,236,
1364 50,108,234,49,107,233,49,107,232,51,109,234,51,109,234,51,109,234,50,108,233,
1365 50,105,231,51,107,230,57,108,233,56,106,231,56,105,233,53,102,230,54,103,232,
1366 50,100,231,48,101,231,45,99,231,46,104,237,44,106,241,44,106,243,43,106,245,43,
1367 106,245,43,106,245,44,106,243,51,103,238,59,94,224,71,98,227,72,97,226,63,92,
1368 220,60,93,222,61,98,228,62,102,234,49,96,228,47,99,234,44,102,236,41,105,241,38,
1369 106,243,35,108,246,31,107,245,31,108,248,31,106,247,30,101,241,33,101,238,33,
1370 101,234,31,102,230,34,105,229,34,106,226,34,107,222,33,106,217,32,104,214,32,
1371 104,212,33,104,212,37,105,216,36,102,215,39,101,220,39,99,223,39,98,226,40,100,
1372 233,40,99,235,38,98,231,38,98,231,36,95,231,34,93,229,34,93,229,31,90,226,34,93,
1373 229,34,93,229,34,93,229,31,90,226,29,88,224,29,88,224,27,86,222,27,86,222,27,86,
1374 222,27,86,222,24,83,219,24,83,219,24,83,219,24,83,219,27,86,222,27,86,222,27,86,
1375 222,27,86,222,24,83,219,22,81,217,22,81,217,24,83,219,25,87,222,24,88,224,12,79,
1376 219,11,80,220,60,124,248,60,124,248,58,122,246,58,122,246,58,122,246,55,119,243,
1377 55,119,245,55,119,245,55,119,243,55,119,243,55,119,245,55,119,245,55,119,245,
1378 55,119,245,55,119,245,55,119,245,62,123,248,62,123,248,62,123,248,59,120,245,
1379 57,118,243,53,114,239,50,111,238,48,109,236,53,114,239,53,114,239,53,114,239,
1380 53,114,239,53,114,239,53,114,239,53,114,239,53,114,241,56,115,243,53,112,242,
1381 52,109,238,50,107,236,51,108,237,50,107,236,50,107,236,52,110,236,47,106,232,
1382 48,108,232,51,109,235,53,111,236,53,111,236,51,109,232,50,108,231,49,107,232,
1383 49,104,233,49,103,235,50,102,237,50,102,237,52,102,235,52,102,233,52,102,233,
1384 52,102,233,48,101,229,50,103,231,50,103,231,53,107,233,57,108,233,58,108,231,
1385 63,109,231,70,107,222,65,86,191,103,116,218,108,120,222,78,93,196,64,85,190,79,
1386 105,215,79,110,226,56,95,214,54,100,222,48,101,229,44,102,235,38,104,240,35,107,
1387 245,31,106,247,32,107,252,33,105,251,34,100,249,32,96,245,34,99,243,36,102,240,
1388 35,104,233,36,108,229,36,108,226,35,108,221,34,108,215,35,107,215,36,106,217,
1389 38,105,220,40,102,223,42,101,229,43,100,233,42,98,235,44,101,240,44,101,240,40,
1390 99,235,38,97,233,37,96,232,34,93,229,34,93,229,30,89,225,31,90,226,31,90,226,
1391 31,90,226,31,90,226,31,90,226,31,90,226,31,91,224,29,89,222,29,88,224,27,86,
1392 222,27,86,222,24,83,219,24,83,219,27,86,222,27,86,222,29,88,224,29,88,224,27,86,
1393 222,24,83,219,24,83,219,24,83,219,24,83,219,25,87,222,26,90,226,13,79,217,12,79,
1394 219,64,125,250,61,122,247,62,123,248,60,121,246,60,121,246,57,118,243,57,118,
1395 245,57,118,245,57,118,243,57,118,243,57,118,245,57,118,245,57,118,245,57,118,
1396 245,57,118,245,57,118,245,64,125,250,64,125,250,62,123,248,62,123,248,57,118,
1397 243,53,114,239,50,111,238,48,109,236,53,114,239,53,114,239,53,114,239,53,114,
1398 239,53,114,239,53,114,239,53,114,239,53,114,241,56,115,245,53,112,242,52,109,
1399 240,50,107,236,50,107,236,50,107,236,50,107,236,52,110,236,46,105,231,48,108,
1400 232,53,111,236,56,114,237,56,115,235,54,113,233,50,109,229,46,106,230,44,102,
1401 235,47,105,239,47,103,238,48,102,236,52,102,233,53,102,230,55,103,229,60,104,
1402 227,57,99,217,60,101,215,63,101,212,69,106,213,75,108,213,77,109,208,83,111,208,
1403 90,110,197,79,87,159,129,130,195,136,137,204,94,98,169,72,81,156,94,109,190,95,
1404 116,207,69,99,197,61,100,205,55,101,213,51,103,225,44,101,230,42,106,240,38,105,
1405 245,37,104,247,37,101,250,36,95,249,40,95,250,40,95,247,40,98,242,37,101,235,40,
1406 108,233,38,108,229,37,108,224,33,106,217,34,106,217,35,104,221,38,104,226,41,
1407 101,231,42,98,235,46,97,242,46,97,242,47,102,244,44,101,240,40,99,235,40,99,235,
1408 38,97,233,36,95,231,34,93,229,34,93,229,29,88,224,31,90,226,31,90,226,31,90,
1409 226,31,90,226,31,90,226,34,94,227,34,94,227,29,88,224,27,86,222,27,86,222,24,83,
1410 219,24,83,219,27,86,222,27,86,222,29,88,224,29,88,224,27,86,222,27,86,222,24,83,
1411 219,24,83,219,27,86,222,25,87,222,26,90,224,16,82,220,15,83,220,60,121,246,60,
1412 121,246,60,121,246,60,121,246,60,121,246,60,121,246,60,121,246,60,121,246,60,
1413 121,246,60,121,246,60,121,246,60,121,246,60,121,246,60,121,246,60,121,246,60,
1414 121,246,57,118,245,57,118,245,57,118,245,57,118,245,57,118,245,57,118,245,57,
1415 118,245,57,118,245,56,117,242,55,116,241,55,116,243,55,116,243,55,116,241,54,
1416 115,240,55,116,243,55,116,243,58,117,247,59,116,249,59,116,249,59,116,247,59,
1417 116,247,59,116,247,59,116,245,59,117,243,51,109,235,51,109,232,47,106,226,43,
1418 102,220,52,111,227,68,127,243,60,121,238,40,102,225,52,117,247,41,105,239,66,
1419 124,255,54,109,238,65,116,241,75,124,243,36,79,192,82,119,226,69,98,200,73,96,
1420 190,103,120,208,89,101,183,111,119,194,124,131,199,117,123,183,216,219,255,250,
1421 246,255,232,224,245,192,184,207,187,183,210,105,105,141,82,89,135,151,163,221,
1422 60,78,150,72,99,180,61,96,188,84,125,230,35,80,195,41,92,217,67,121,253,22,75,
1423 213,49,101,246,18,65,217,37,82,237,51,96,247,50,101,246,43,99,236,45,105,235,45,
1424 110,236,36,104,227,38,108,229,37,107,229,38,106,233,38,100,235,42,99,240,42,94,
1425 242,45,91,246,43,93,244,40,95,239,39,96,235,38,97,233,35,94,230,36,95,231,34,93,
1426 229,34,93,229,34,93,229,31,90,226,29,88,224,29,88,224,27,86,222,27,86,222,29,88,
1427 224,29,88,224,31,90,226,29,88,224,29,88,224,29,88,224,29,88,224,29,88,224,29,88,
1428 224,29,88,224,29,88,224,31,90,226,31,90,226,29,88,224,27,86,222,24,83,219,24,83,
1429 219,22,81,217,18,80,215,23,89,227,22,90,227,61,120,246,60,121,246,61,120,246,60,
1430 121,246,61,120,246,60,121,246,61,120,246,60,121,246,61,120,246,60,121,246,61,
1431 120,246,60,121,246,61,120,246,60,121,246,61,120,246,60,121,246,57,118,245,57,
1432 118,245,57,118,245,57,118,245,57,118,245,57,118,245,57,118,245,57,118,245,55,
1433 116,241,55,116,241,55,116,243,55,116,243,55,116,241,55,116,241,55,116,243,54,
1434 114,244,53,110,243,53,110,243,53,109,244,54,111,244,54,111,244,54,111,242,54,
1435 111,240,54,112,238,53,111,237,60,118,241,59,118,236,50,109,225,51,111,225,61,
1436 121,235,58,117,233,49,110,227,38,100,223,46,105,231,24,78,200,66,115,233,60,106,
1437 217,76,115,218,78,111,204,90,114,200,120,136,214,95,102,172,102,102,162,74,67,
1438 119,81,68,114,125,109,146,167,153,179,255,249,255,224,213,207,255,250,234,234,
1439 220,209,224,211,205,232,223,228,185,182,199,83,86,117,128,136,182,75,90,147,103,
1440 123,192,61,86,170,78,108,204,68,102,209,47,84,199,81,119,242,40,77,207,73,106,
1441 245,73,105,248,59,94,236,45,84,223,43,90,222,48,101,231,45,104,232,33,98,224,38,
1442 106,233,40,107,238,41,104,243,38,99,242,41,97,246,45,96,249,45,91,249,45,91,247,
1443 40,95,239,39,96,235,38,97,233,36,95,231,36,95,231,36,95,231,34,93,229,34,93,
1444 229,31,90,226,31,90,226,29,88,224,27,86,222,27,86,222,29,88,224,31,90,226,31,90,
1445 226,29,88,224,29,88,224,29,88,224,29,88,224,29,88,224,29,88,224,29,88,224,29,88,
1446 224,31,90,226,31,90,226,28,87,223,29,88,224,27,86,222,24,83,219,22,81,217,20,82,
1447 217,13,77,213,11,77,213,61,118,247,60,119,247,61,118,247,60,119,247,61,118,247,
1448 60,119,247,61,119,245,60,119,245,61,118,247,60,119,247,61,118,247,60,119,247,
1449 61,118,247,60,119,247,61,118,247,60,119,247,57,118,243,57,118,243,57,118,245,
1450 57,118,245,57,118,243,57,118,243,57,118,245,57,118,245,55,116,243,56,117,244,
1451 55,116,243,55,116,243,55,116,241,56,117,242,55,116,243,53,113,243,53,109,244,
1452 53,109,244,53,109,246,53,109,244,54,111,244,54,111,242,54,111,240,54,112,238,
1453 51,109,235,60,118,241,62,122,242,53,114,229,51,111,225,56,116,228,58,118,230,
1454 59,115,226,92,144,254,25,72,180,130,172,255,49,85,179,70,100,188,94,117,195,
1455 117,132,197,185,192,247,197,195,245,194,186,227,247,230,255,255,230,255,236,203,
1456 220,234,198,208,238,202,202,255,231,219,246,231,200,255,247,207,224,204,167,192,
1457 171,140,182,165,145,191,180,174,110,107,114,28,26,47,109,108,142,132,135,180,
1458 118,124,184,136,149,219,85,102,182,57,74,162,116,135,230,68,87,190,73,88,203,76,
1459 92,213,70,92,214,67,95,218,69,107,230,70,115,240,50,103,231,25,84,214,42,104,
1460 239,39,102,243,41,101,249,44,101,252,41,96,249,45,96,250,47,93,251,45,91,246,40,
1461 95,239,39,96,235,38,97,233,38,97,233,36,95,231,36,95,231,37,96,232,34,93,229,
1462 34,93,229,31,90,226,29,88,224,29,88,224,29,88,224,29,88,224,31,90,226,34,93,
1463 229,29,88,224,29,88,224,29,88,224,29,88,224,29,88,224,29,88,224,29,88,224,29,88,
1464 224,31,90,226,31,90,226,28,87,223,29,88,224,27,86,222,24,83,219,24,83,219,24,83,
1465 219,20,82,217,20,82,217,63,120,249,63,120,249,63,120,249,63,120,249,63,120,249,
1466 63,120,249,63,121,247,63,121,247,63,120,249,63,120,249,63,120,249,63,120,249,
1467 63,120,249,63,120,249,63,120,249,62,121,249,61,120,246,60,121,246,60,121,248,
1468 60,121,248,60,121,246,60,121,246,60,121,248,60,121,248,57,118,245,57,118,245,
1469 57,118,245,57,118,245,57,118,243,57,118,243,57,117,247,56,116,248,58,114,249,
1470 59,115,252,58,114,251,58,114,251,58,114,249,59,116,247,59,116,247,59,117,243,
1471 47,105,230,51,109,232,54,113,233,55,116,231,56,116,228,58,118,228,57,115,222,
1472 59,108,210,87,123,217,71,99,182,57,81,155,127,146,212,186,201,255,200,208,255,
1473 252,250,255,227,218,249,248,232,255,214,191,209,235,204,212,245,207,206,211,166,
1474 160,217,171,158,235,192,173,232,197,167,255,246,205,255,246,197,255,230,183,113,
1475 84,44,255,248,217,205,187,167,10,0,0,255,251,255,157,141,154,125,111,134,210,
1476 200,235,175,169,213,87,85,135,103,102,160,102,102,166,111,113,187,88,90,173,91,
1477 96,187,90,100,197,77,96,198,73,101,211,69,108,225,54,102,226,36,91,220,47,104,
1478 243,45,103,247,43,100,251,45,100,253,46,100,252,44,95,248,48,95,247,48,95,245,
1479 43,98,240,41,99,235,38,97,233,38,97,233,38,97,233,36,95,231,36,95,231,36,95,
1480 231,34,93,229,34,93,229,31,90,226,31,90,226,31,90,226,31,90,226,34,93,229,34,93,
1481 229,31,90,226,31,90,226,31,90,226,31,90,226,31,90,226,31,90,226,31,90,226,31,90,
1482 226,31,90,226,31,90,226,31,90,226,29,88,224,29,88,224,27,86,222,27,86,222,24,83,
1483 219,31,90,226,31,90,226,63,120,249,63,120,249,63,120,249,63,120,249,63,120,249,
1484 63,120,249,63,120,249,63,120,249,63,120,249,63,120,249,63,120,249,63,120,249,
1485 63,120,249,63,120,249,63,120,249,62,121,249,61,120,246,60,121,246,60,121,246,
1486 60,121,246,60,121,246,60,121,246,60,121,246,60,121,246,57,118,243,57,118,243,
1487 57,118,245,57,118,245,57,118,243,57,118,243,57,117,247,56,116,248,58,114,251,
1488 59,115,254,59,115,254,58,114,253,58,114,249,58,115,246,61,115,247,60,115,242,
1489 58,113,239,51,110,230,50,109,227,56,116,230,60,122,231,57,118,224,53,108,211,
1490 57,98,188,106,125,193,113,119,169,192,196,234,251,252,255,206,203,230,255,250,
1491 255,192,171,186,255,233,242,255,247,250,234,203,200,213,173,161,221,176,157,215,
1492 165,140,245,198,170,255,235,203,255,228,192,255,231,192,247,208,167,125,86,47,
1493 164,128,92,188,158,132,241,216,196,255,250,236,180,157,149,255,232,229,169,140,
1494 144,204,181,189,201,179,192,186,165,182,226,207,229,176,157,185,125,111,146,142,
1495 133,178,142,139,192,122,126,189,86,98,174,56,77,166,50,82,185,55,96,212,56,105,
1496 233,48,102,237,46,103,246,45,101,248,44,100,247,45,100,244,47,100,242,46,97,238,
1497 46,98,236,42,98,235,41,99,235,40,99,235,38,97,233,38,97,233,38,97,233,36,95,
1498 231,36,95,231,36,95,231,36,95,231,34,93,229,34,93,229,34,93,229,34,93,229,36,95,
1499 231,36,95,231,31,90,226,31,90,226,31,90,226,31,90,226,31,90,226,31,90,226,31,90,
1500 226,31,90,226,31,90,226,31,90,226,31,90,226,29,88,224,29,88,224,30,89,225,29,88,
1501 224,27,86,222,24,83,219,24,83,219,68,123,252,68,123,252,68,123,252,68,123,252,
1502 68,123,252,68,123,252,68,123,252,68,123,252,68,123,252,68,123,252,68,123,252,
1503 68,123,252,68,123,252,68,123,252,68,123,252,66,123,252,63,122,248,62,123,248,
1504 62,123,248,62,123,248,62,123,248,62,123,248,62,123,248,62,123,248,60,121,246,
1505 60,121,246,60,121,248,60,121,246,60,121,246,60,121,246,60,121,248,58,118,250,
1506 53,109,246,54,110,249,54,109,251,54,110,249,53,109,244,54,111,242,54,111,240,
1507 56,111,238,72,127,253,61,117,238,56,113,229,58,115,228,59,117,225,60,115,216,
1508 67,116,208,88,120,193,194,197,242,254,240,255,255,244,254,255,243,247,255,249,
1509 251,207,183,181,240,205,201,247,210,201,227,194,179,211,176,154,194,150,123,224,
1510 175,143,239,187,150,245,197,159,254,216,177,222,186,150,244,203,171,168,124,95,
1511 255,240,212,124,78,52,255,230,208,29,0,0,255,238,220,133,96,80,184,142,128,235,
1512 195,183,248,214,202,255,230,219,181,147,137,125,91,82,213,180,175,213,184,186,
1513 143,123,134,157,145,165,160,154,188,131,135,183,96,109,179,70,94,182,62,96,203,
1514 55,97,218,55,105,236,49,102,240,49,104,246,47,104,245,45,101,238,45,102,235,48,
1515 101,233,48,101,233,45,101,236,41,99,235,40,99,235,40,99,235,38,97,233,38,97,233,
1516 38,97,233,38,98,231,38,97,233,38,97,233,36,95,231,34,93,229,34,93,229,36,95,
1517 231,38,97,233,38,97,233,34,93,229,34,93,229,34,93,229,34,93,229,34,93,229,34,93,
1518 229,34,93,229,34,93,229,31,90,226,31,90,226,31,90,226,31,90,226,31,90,226,29,88,
1519 224,29,88,224,30,89,225,22,81,217,22,82,215,69,122,252,69,122,252,69,122,252,69,
1520 122,252,69,122,252,69,122,252,69,122,254,69,122,254,69,122,252,69,122,252,69,
1521 122,252,69,122,252,69,122,252,69,122,252,69,122,252,68,123,252,63,122,248,62,
1522 123,248,62,123,248,62,123,248,62,123,248,62,123,248,62,123,248,62,123,248,60,
1523 121,246,60,121,246,60,121,246,60,121,246,60,121,246,60,121,246,60,121,248,58,
1524 118,250,54,110,247,54,109,251,54,110,249,54,110,247,52,110,243,53,112,240,53,
1525 112,240,54,112,237,65,123,246,63,119,238,62,117,233,61,115,224,61,112,217,72,
1526 119,211,114,153,228,169,191,241,255,250,255,221,193,192,247,207,197,145,103,89,
1527 255,246,234,255,240,223,248,203,180,255,215,188,255,223,192,255,227,192,213,169,
1528 132,218,169,129,240,191,150,235,190,148,255,218,176,248,215,182,234,206,185,255,
1529 246,234,184,132,119,177,117,106,211,152,138,169,112,95,217,160,143,143,88,68,
1530 226,171,150,211,161,136,144,105,76,186,147,116,209,164,133,177,131,98,190,145,
1531 112,133,94,65,145,114,94,158,135,127,165,150,157,145,139,165,115,121,169,90,107,
1532 177,74,100,193,57,95,206,59,104,229,54,104,237,47,103,238,46,104,237,46,105,233,
1533 45,103,228,48,104,227,47,102,228,45,102,235,44,101,240,41,98,237,41,99,235,40,
1534 99,235,38,98,231,38,98,231,38,98,230,40,100,233,38,98,231,36,96,229,36,96,229,
1535 36,95,231,36,95,231,39,96,235,41,98,237,34,93,229,34,93,229,34,93,229,34,93,
1536 229,34,93,229,34,93,229,34,93,229,34,93,229,31,90,226,32,91,227,31,90,226,31,90,
1537 226,31,90,226,31,90,226,31,90,226,31,90,226,29,89,222,29,89,221,69,122,252,69,
1538 122,252,69,122,252,69,122,252,69,122,252,69,122,252,69,122,254,69,122,254,69,
1539 122,252,69,122,252,69,122,252,69,122,252,69,122,252,69,122,252,69,122,252,68,
1540 123,252,63,122,250,62,123,248,62,123,250,62,123,248,62,123,248,62,123,248,62,
1541 123,248,62,123,248,61,120,246,60,121,246,61,120,246,60,122,245,60,122,245,59,
1542 121,244,60,121,246,61,120,248,58,114,249,59,115,252,57,115,248,56,116,246,55,
1543 119,242,54,120,240,54,118,241,56,118,239,51,110,230,62,115,231,73,116,228,73,
1544 111,210,70,102,189,96,123,190,173,192,235,249,254,255,226,208,206,255,245,229,
1545 240,192,170,251,201,178,225,184,162,236,196,171,145,96,66,247,198,165,251,211,
1546 176,255,238,203,241,191,154,240,186,148,255,212,173,242,197,158,255,220,184,255,
1547 227,196,255,236,219,24,0,0,54,0,0,87,23,13,84,22,7,249,186,168,173,111,90,245,
1548 183,160,253,196,169,254,203,172,255,241,206,252,208,169,214,167,125,203,152,109,
1549 175,124,79,255,208,166,221,179,141,197,162,134,154,124,113,105,84,91,75,66,95,
1550 77,78,132,85,98,177,82,106,206,69,102,218,61,102,230,55,105,236,47,104,235,47,
1551 106,236,42,103,230,44,105,230,43,103,233,44,101,240,45,100,244,45,100,244,42,99,
1552 238,40,99,235,38,98,230,36,100,226,37,101,227,39,103,227,37,101,225,37,97,227,
1553 35,95,227,36,94,228,38,95,234,41,96,238,43,98,240,35,92,231,35,92,231,35,92,
1554 231,34,93,229,35,92,231,34,93,229,35,92,231,35,93,229,33,90,229,32,89,228,32,89,
1555 228,31,90,228,32,89,228,31,90,228,31,90,228,31,90,226,26,86,219,26,86,218,63,
1556 118,247,65,120,249,68,123,252,70,125,254,70,125,254,70,125,254,70,124,255,68,
1557 122,254,68,123,252,68,123,252,68,123,250,65,120,247,65,120,249,63,118,247,63,
1558 118,247,61,118,247,60,119,247,63,122,250,64,123,253,65,124,252,65,124,252,62,
1559 121,249,62,121,249,60,119,245,70,128,254,66,126,250,65,123,248,62,122,246,59,
1560 119,239,58,118,238,57,117,239,55,113,238,56,113,242,67,126,252,65,130,250,48,
1561 118,230,41,115,222,50,124,231,51,123,234,46,111,227,73,130,246,66,109,222,111,
1562 136,239,87,98,180,202,201,255,208,199,226,248,234,234,251,232,217,239,212,193,
1563 247,215,192,255,229,203,250,210,184,254,217,190,255,225,199,222,176,150,225,175,
1564 148,247,193,167,220,164,139,221,161,135,225,165,137,214,157,128,230,176,148,255,
1565 213,187,255,227,200,255,235,210,183,147,123,223,172,151,125,71,47,150,98,74,189,
1566 138,111,190,134,107,252,198,170,244,195,165,255,225,192,242,193,160,255,208,172,
1567 254,208,172,255,219,181,222,170,131,240,187,145,196,142,98,178,126,87,122,72,49,
1568 103,60,54,65,34,49,35,14,53,78,67,133,99,101,188,56,70,177,66,92,213,69,108,239,
1569 55,105,240,38,97,235,33,100,240,27,99,237,23,90,231,55,111,255,48,99,250,33,84,
1570 235,29,84,228,37,95,231,39,103,229,31,97,217,26,93,208,40,107,220,40,107,220,42,
1571 107,225,41,100,226,43,100,233,42,95,235,44,94,241,44,94,241,38,90,235,36,91,233,
1572 36,91,233,35,92,231,36,91,233,35,92,231,36,91,233,36,92,231,41,96,238,38,93,
1573 235,33,88,230,30,87,228,29,84,226,30,87,228,32,89,230,34,91,230,27,85,221,27,85,
1574 219,61,118,247,63,120,249,66,123,252,68,125,254,68,125,254,68,125,254,68,125,
1575 255,66,123,254,66,123,252,66,123,252,66,123,252,63,120,249,63,120,249,63,120,
1576 249,60,117,246,61,118,247,60,119,249,62,121,251,64,121,252,66,123,254,65,124,
1577 252,62,121,249,63,120,249,61,119,245,67,125,251,67,125,250,65,123,248,62,120,
1578 243,62,122,242,60,121,238,61,120,238,58,118,238,59,119,241,63,125,244,61,128,
1579 241,55,127,237,55,129,236,56,130,237,57,127,238,57,117,227,79,127,235,32,64,163,
1580 83,94,176,122,114,174,172,147,176,255,227,228,176,138,115,255,227,194,254,223,
1581 194,255,247,221,239,209,183,255,228,201,255,218,191,217,176,148,255,226,200,243,
1582 191,167,242,184,162,249,187,164,255,191,169,237,175,152,230,169,148,255,201,178,
1583 255,209,186,221,177,152,255,232,206,100,59,31,194,144,117,171,120,93,242,195,
1584 167,255,231,201,130,77,46,186,135,104,235,188,158,255,210,180,236,186,153,223,
1585 173,140,235,186,153,255,215,179,241,187,153,220,162,124,219,158,114,202,139,98,
1586 139,78,50,110,57,43,61,20,24,27,0,22,50,31,77,65,55,124,109,110,202,78,92,199,
1587 55,84,204,50,93,223,49,102,240,38,104,244,37,108,250,42,108,255,52,106,255,47,
1588 96,250,37,86,240,38,90,236,38,96,232,41,105,229,36,103,220,29,99,211,37,108,
1589 216,40,108,219,41,106,222,41,101,225,45,99,233,44,95,236,45,92,240,46,93,241,42,
1590 92,239,40,92,237,38,93,235,38,93,235,38,93,235,38,93,235,38,93,235,38,93,235,
1591 42,95,237,40,93,235,33,88,232,31,86,230,31,86,230,31,86,230,32,89,230,32,89,
1592 228,33,89,228,33,89,226,63,120,249,63,120,249,66,123,252,68,125,254,68,126,252,
1593 68,126,252,68,125,254,68,125,254,66,123,252,66,123,252,66,123,252,66,123,252,
1594 63,120,249,63,120,249,63,120,249,61,118,247,63,122,252,63,122,252,66,123,254,
1595 66,123,254,65,122,251,66,123,252,63,120,249,63,121,247,65,123,249,65,123,248,
1596 65,123,248,63,121,244,62,123,240,62,123,238,62,123,238,61,124,238,64,130,243,
1597 57,124,237,57,126,243,63,134,252,62,131,250,57,122,240,62,119,234,75,122,228,
1598 60,95,187,133,153,226,187,187,239,117,98,128,198,161,168,189,141,129,229,173,
1599 148,215,164,133,255,228,200,210,184,157,255,249,225,255,238,213,249,212,185,255,
1600 233,204,247,196,169,255,208,183,255,217,193,255,196,172,233,171,148,212,150,127,
1601 211,150,129,252,196,173,255,217,194,254,208,184,242,197,168,238,191,163,195,141,
1602 117,255,201,178,225,174,145,169,116,85,209,154,124,241,186,156,255,227,197,255,
1603 215,185,255,218,189,255,205,174,255,203,171,255,200,169,255,206,176,247,187,153,
1604 214,151,110,193,128,90,128,62,36,94,38,23,38,3,1,14,0,2,7,0,15,5,0,40,77,75,140,
1605 86,92,178,82,101,204,61,94,209,49,93,218,49,103,235,50,109,247,50,108,252,50,
1606 100,251,50,97,249,49,99,248,47,99,244,44,100,237,44,105,232,41,105,228,35,104,
1607 221,38,107,224,37,106,223,41,106,226,45,104,230,46,99,231,48,97,236,49,95,240,
1608 46,94,240,45,96,241,45,97,242,43,98,242,43,98,242,43,98,240,43,98,240,43,98,
1609 242,43,98,242,38,93,235,38,93,235,36,91,233,33,88,230,30,87,228,30,87,228,32,89,
1610 230,32,89,228,35,91,230,35,91,228,63,120,249,66,123,252,68,125,254,68,125,254,
1611 70,128,254,70,128,254,68,125,254,69,126,255,69,126,255,68,125,254,66,123,254,
1612 66,123,254,66,123,252,64,121,250,63,120,249,63,120,249,63,122,252,63,122,252,
1613 66,123,254,68,125,255,68,125,254,66,123,252,63,120,249,63,121,247,63,121,247,
1614 63,121,246,63,121,246,65,123,246,65,126,243,65,126,241,64,125,240,64,127,240,
1615 61,131,242,52,124,235,59,128,247,64,130,253,60,119,247,53,103,228,68,107,224,
1616 97,125,224,98,115,185,95,101,149,234,225,254,24,0,7,211,167,156,210,152,130,
1617 255,192,167,255,197,171,255,243,216,255,225,200,243,217,194,255,241,219,243,203,
1618 178,216,168,145,243,193,170,183,131,110,215,160,140,176,119,99,205,143,122,255,
1619 197,175,255,204,179,255,196,172,254,196,172,255,204,178,255,223,197,172,118,92,
1620 61,3,0,78,20,0,150,96,72,255,212,188,215,159,136,179,124,103,193,145,123,147,
1621 101,78,203,151,129,219,163,140,223,166,139,192,132,106,248,188,162,255,193,165,
1622 205,139,107,189,123,91,135,69,47,105,52,38,42,9,4,13,0,0,5,0,5,0,0,16,2,0,38,81,
1623 81,141,136,144,225,103,123,218,64,95,201,66,106,220,65,110,235,43,92,223,48,93,
1624 234,51,96,241,55,103,247,52,103,244,45,101,236,43,101,234,43,106,235,45,110,236,
1625 41,109,234,41,109,234,42,106,232,43,102,232,49,101,236,48,98,233,49,96,236,48,
1626 97,238,43,94,237,42,94,239,42,94,239,40,95,239,40,95,237,40,95,237,40,95,239,
1627 40,95,239,38,93,235,38,93,235,36,91,233,36,91,233,32,89,230,32,89,230,32,89,
1628 230,32,89,228,30,86,225,30,86,223,63,120,249,66,123,252,68,125,254,70,127,255,
1629 70,128,254,70,128,253,70,128,254,68,126,252,68,125,254,68,125,254,68,125,254,
1630 66,123,252,66,123,252,66,123,252,63,120,249,63,120,249,64,121,252,66,123,254,
1631 68,125,255,68,125,255,67,126,254,67,126,254,66,123,252,63,121,247,65,123,249,
1632 65,123,248,64,124,248,64,124,246,66,127,244,67,128,243,66,129,243,64,130,242,
1633 51,123,233,54,126,237,63,129,252,67,124,255,63,109,246,71,101,233,98,116,228,
1634 134,139,223,161,153,202,127,115,137,8,0,5,23,0,0,244,196,173,157,93,65,255,213,
1635 191,239,174,154,235,181,155,218,172,148,212,174,155,211,172,155,114,67,49,54,7,
1636 0,66,22,11,39,0,0,83,35,23,58,2,0,64,0,0,85,14,0,97,27,1,126,55,27,187,117,91,
1637 233,166,140,239,174,152,219,157,136,152,87,67,121,58,40,60,4,0,70,18,5,52,0,0,
1638 48,0,0,45,2,0,34,0,0,55,1,0,60,0,0,72,9,0,71,6,0,106,41,21,70,4,0,141,70,50,
1639 131,63,44,93,30,15,83,31,20,38,7,4,11,0,0,4,0,0,0,0,7,1,0,16,32,28,61,113,113,
1640 165,129,134,202,108,120,202,89,110,203,76,105,209,62,98,212,56,96,220,58,101,
1641 231,59,106,238,58,108,241,51,105,239,47,105,239,47,104,243,46,108,245,43,107,
1642 243,42,106,240,45,104,240,45,101,236,49,101,236,50,100,233,50,98,232,48,98,233,
1643 43,94,235,42,95,237,42,94,239,42,94,239,40,95,237,40,95,237,40,95,239,40,95,
1644 239,38,93,235,38,93,235,38,93,237,38,93,237,36,91,233,36,91,233,32,89,230,32,89,
1645 228,30,86,225,30,86,223,66,123,252,66,123,252,68,125,254,70,128,254,72,130,255,
1646 72,130,255,70,128,254,70,128,254,70,127,255,68,125,254,68,125,254,68,125,254,
1647 66,123,252,66,123,252,66,123,252,66,123,252,68,122,254,68,122,254,70,124,255,
1648 70,125,254,68,125,254,68,125,254,68,123,252,68,123,250,67,125,250,67,125,250,
1649 67,125,250,67,125,248,68,127,245,66,125,241,65,126,241,63,129,242,43,115,226,
1650 57,127,241,66,125,251,69,116,246,82,112,246,102,116,238,126,121,221,138,123,
1651 190,102,77,107,37,10,17,30,8,10,22,0,0,255,206,175,239,173,139,247,176,154,220,
1652 153,134,255,219,195,89,35,9,46,0,0,36,0,0,39,0,0,104,58,45,42,1,0,28,0,0,38,0,0,
1653 57,0,0,87,19,10,103,30,13,114,38,14,166,89,59,194,114,87,157,85,61,62,3,0,108,
1654 52,37,63,4,0,142,84,72,92,40,29,36,0,0,53,5,3,46,2,3,40,0,0,49,5,4,74,21,17,78,
1655 19,11,156,94,83,247,183,171,255,197,182,185,122,107,71,3,0,69,2,0,55,0,0,50,5,
1656 0,31,1,0,11,0,0,4,0,0,1,0,0,4,0,5,3,0,11,7,0,31,83,77,121,114,113,171,89,92,
1657 163,72,82,167,83,104,197,70,102,205,64,102,213,59,101,219,56,102,224,52,103,231,
1658 49,101,237,49,101,246,46,102,247,46,107,250,43,104,247,45,102,245,47,103,242,
1659 48,100,235,50,100,231,51,100,229,50,100,231,40,92,228,40,93,233,40,93,235,40,
1660 93,235,38,93,235,38,93,235,38,93,235,38,93,235,38,93,235,38,93,235,40,95,237,
1661 40,95,237,39,94,236,36,92,231,33,90,231,32,89,228,37,93,230,37,93,230,66,123,
1662 252,69,126,255,70,128,254,70,128,254,72,130,255,72,130,255,70,128,254,70,128,
1663 254,70,128,254,71,129,255,68,125,254,68,125,254,68,125,254,66,123,252,66,123,
1664 252,68,123,252,69,122,254,71,124,255,71,124,254,73,126,254,73,126,254,71,124,
1665 252,71,124,254,69,122,250,75,130,255,73,129,252,73,129,252,70,126,247,71,126,
1666 245,69,124,241,66,122,241,63,124,241,55,121,241,68,130,251,71,122,247,70,106,
1667 229,100,115,232,133,128,228,122,100,172,87,56,100,24,0,5,37,1,3,50,18,19,30,0,0,
1668 241,186,155,255,190,153,255,201,173,226,155,133,49,0,0,110,54,29,99,39,15,124,
1669 67,47,81,32,18,45,2,0,67,26,20,41,0,0,50,0,0,66,7,3,84,13,7,77,0,0,83,3,0,153,
1670 72,43,191,107,79,141,73,50,35,0,0,21,0,0,58,15,9,49,2,0,44,0,0,40,0,0,29,0,0,
1671 44,4,4,41,1,1,51,10,8,49,1,0,46,0,0,52,0,0,76,19,12,62,3,0,55,0,0,64,3,0,61,3,
1672 1,47,0,0,43,8,6,31,7,7,12,0,0,10,1,2,6,0,0,11,2,3,6,0,2,4,0,7,10,1,22,70,54,
1673 91,97,83,132,100,94,156,96,103,175,91,112,193,74,105,196,59,94,194,54,94,205,
1674 55,99,220,54,101,233,52,98,243,43,93,244,49,103,253,49,103,253,47,101,249,48,
1675 100,245,50,102,237,50,101,229,50,101,228,51,102,229,45,99,231,42,98,233,42,98,
1676 235,42,98,237,42,98,237,42,98,237,42,98,237,42,98,237,37,93,232,37,93,232,39,95,
1677 234,39,95,234,39,95,234,37,93,230,33,89,228,30,86,223,37,93,230,37,93,230,66,
1678 123,252,68,126,252,70,128,254,72,130,255,72,130,255,72,130,255,72,130,255,70,
1679 128,254,70,128,254,70,128,254,70,127,255,68,125,254,69,126,255,66,124,250,66,
1680 124,250,68,123,252,71,121,254,73,123,255,73,123,254,75,126,254,75,126,254,73,
1681 124,252,73,124,252,71,122,250,78,132,255,76,130,254,78,130,252,76,128,250,73,
1682 125,245,71,123,241,69,121,241,63,117,239,71,129,254,81,133,255,75,114,233,72,93,
1683 202,113,114,206,148,131,201,103,72,116,39,0,21,52,5,13,52,6,6,38,0,0,36,0,0,87,
1684 24,0,255,203,161,103,29,0,215,144,112,66,4,0,102,42,18,127,62,34,61,0,0,41,0,0,
1685 43,0,0,36,0,0,44,0,0,48,0,0,56,0,0,71,2,0,92,14,2,110,28,6,139,55,27,140,55,26,
1686 89,23,1,21,0,0,16,0,0,36,0,0,34,0,0,42,2,2,39,1,0,45,6,7,39,1,0,29,0,0,41,0,0,
1687 44,0,0,60,10,9,53,0,0,51,0,0,53,0,0,141,87,85,51,1,0,44,0,0,29,0,0,29,1,0,19,0,
1688 0,8,0,0,7,0,0,6,0,0,9,0,0,15,5,4,9,0,1,7,0,4,23,4,24,121,100,131,153,138,177,
1689 113,110,157,106,118,176,81,104,172,63,90,169,57,90,183,59,96,203,62,100,225,54,
1690 95,235,43,87,236,53,100,250,52,102,253,51,103,251,49,101,246,50,102,237,49,102,
1691 230,49,103,227,48,102,226,46,101,230,44,101,234,44,100,235,44,100,235,44,100,
1692 235,44,100,235,44,100,235,44,100,235,35,91,226,37,93,228,39,95,230,42,98,233,39,
1693 95,230,37,93,228,33,89,224,30,86,221,33,89,226,33,89,226,70,128,254,70,128,253,
1694 70,128,253,68,126,251,68,126,252,66,124,250,66,123,252,66,123,252,70,128,254,
1695 70,128,254,72,130,255,72,130,255,72,130,255,74,132,255,76,131,255,76,131,255,
1696 73,123,254,74,122,255,74,123,254,75,124,253,75,124,253,79,128,255,79,128,255,
1697 79,128,255,71,122,247,70,121,246,74,124,249,74,124,247,74,124,245,75,124,245,
1698 75,123,247,78,126,250,86,131,255,88,124,244,59,82,186,146,152,236,156,143,197,
1699 99,72,105,29,0,12,52,7,14,52,0,0,62,6,7,30,0,0,32,0,0,129,59,25,233,153,104,
1700 255,193,140,154,86,39,62,0,0,81,15,0,147,77,51,168,103,81,51,0,0,40,0,0,37,0,0,
1701 39,0,0,38,0,0,51,0,0,67,0,0,89,12,2,123,43,18,197,114,84,240,155,124,84,16,0,
1702 29,0,0,14,0,0,39,0,0,41,0,0,43,3,3,35,0,0,40,2,1,44,4,4,40,0,0,33,0,0,47,0,0,
1703 54,0,0,99,40,34,99,40,34,51,0,0,44,0,0,33,0,0,30,0,0,26,0,0,19,0,0,15,0,0,9,0,
1704 0,4,0,0,4,0,0,7,0,0,14,4,3,16,7,8,6,0,0,8,0,4,63,49,62,49,35,52,4,0,18,18,21,
1705 54,0,13,57,61,78,134,75,97,170,59,84,177,67,97,209,52,87,217,70,109,249,61,106,
1706 251,56,102,250,53,100,248,52,103,246,59,113,247,58,116,242,54,110,233,47,103,
1707 226,40,97,226,41,98,229,42,99,232,41,98,231,40,98,231,40,98,231,41,98,231,41,98,
1708 231,43,100,233,43,100,233,43,100,233,41,98,231,39,97,230,37,95,228,38,95,228,38,
1709 95,228,37,93,228,37,93,230,72,130,255,72,130,255,72,130,255,70,128,253,70,128,
1710 254,70,128,254,68,125,254,68,125,254,68,126,252,70,128,254,70,128,254,70,128,
1711 254,72,130,255,72,130,255,74,129,255,77,131,255,74,124,255,74,123,254,77,124,
1712 255,76,123,253,76,125,254,79,128,255,79,128,255,79,128,255,76,126,251,74,124,
1713 249,75,123,249,75,123,249,75,123,247,74,123,244,77,123,245,80,120,242,85,115,
1714 239,64,85,194,126,134,219,111,106,164,132,112,139,84,53,61,27,0,0,53,5,3,69,9,9,
1715 63,5,4,53,13,13,43,0,0,143,70,35,216,134,84,231,159,101,210,143,91,112,46,12,
1716 100,32,9,93,26,0,65,2,0,49,0,0,53,9,8,42,0,0,47,6,4,38,0,0,51,1,0,77,16,13,67,0,
1717 0,77,5,0,245,171,142,235,159,135,168,107,89,28,0,0,15,0,0,49,5,4,57,7,6,44,4,
1718 2,30,0,0,40,0,0,34,0,0,36,1,0,46,11,9,53,9,10,48,0,0,49,0,0,65,5,0,47,0,0,45,
1719 5,5,28,0,0,22,1,0,20,2,0,13,0,0,10,0,0,9,0,1,7,1,3,5,0,0,15,5,6,7,0,0,6,0,0,6,
1720 0,0,7,0,0,8,0,0,19,3,6,8,0,4,0,0,12,10,14,39,0,1,37,76,86,139,105,119,194,66,
1721 86,181,109,134,250,37,71,197,69,108,245,63,106,245,55,102,244,55,107,245,57,
1722 114,245,57,116,242,52,112,236,48,108,232,43,100,229,43,100,231,43,100,231,43,
1723 100,231,42,101,231,42,101,231,43,100,231,43,100,231,43,100,231,43,100,231,43,
1724 100,231,41,98,229,40,99,229,40,99,229,38,95,226,38,95,228,33,89,224,33,89,226,
1725 74,132,255,74,132,255,74,132,255,72,130,255,72,130,255,72,130,255,70,128,254,
1726 70,128,254,66,123,252,68,125,254,68,125,254,68,126,252,70,128,254,70,128,254,
1727 72,127,254,75,128,255,74,123,252,76,123,255,76,123,255,76,123,253,79,128,255,
1728 79,128,255,80,128,255,79,127,255,79,129,254,79,129,254,76,125,253,75,125,250,
1729 75,123,247,74,120,242,75,119,240,84,116,235,46,58,170,160,159,252,205,197,255,
1730 18,3,34,19,0,6,31,0,0,44,0,0,49,0,0,57,1,0,46,0,0,49,7,8,51,3,0,232,163,130,
1731 244,168,119,205,135,84,126,60,12,68,2,0,218,153,125,116,54,29,59,3,0,50,5,0,34,
1732 0,0,65,15,14,44,0,0,61,11,10,42,0,0,48,0,0,93,36,25,90,35,14,243,188,167,42,0,
1733 0,36,0,0,17,0,0,18,0,0,140,91,84,50,0,0,36,0,0,39,4,0,48,8,8,31,0,0,18,0,0,36,
1734 12,10,22,0,0,38,0,0,90,31,23,62,2,0,103,53,46,32,0,0,34,4,2,28,7,6,24,6,6,13,1,
1735 1,7,0,0,3,0,0,4,0,1,4,0,0,16,7,8,7,0,0,10,1,2,6,0,0,9,0,0,22,8,8,14,0,0,22,6,
1736 7,4,0,2,0,0,9,1,0,17,3,2,34,53,54,108,119,127,200,56,73,165,84,111,218,74,109,
1737 229,63,104,230,55,102,234,50,103,235,52,109,238,53,114,241,50,111,238,50,111,
1738 238,44,103,233,44,103,233,45,102,233,45,102,233,44,103,233,44,103,233,45,102,
1739 233,45,102,233,42,99,230,43,100,231,43,100,231,43,100,231,40,99,229,39,99,229,
1740 40,99,227,37,96,226,37,93,228,37,93,230,74,132,255,74,132,255,72,130,255,72,
1741 130,255,70,128,254,70,128,254,70,128,254,70,128,254,66,123,252,66,123,252,66,
1742 123,252,68,125,254,68,126,252,68,126,252,72,127,254,73,126,254,75,124,253,76,
1743 123,253,76,123,253,78,125,255,80,128,255,80,128,255,82,130,255,82,130,255,82,
1744 130,255,82,130,255,80,128,255,76,124,250,75,123,247,74,120,240,78,119,237,90,
1745 114,224,145,141,235,143,123,192,15,0,24,24,0,8,71,37,35,31,0,0,53,8,5,48,0,0,58,
1746 8,1,48,1,0,34,0,0,39,0,0,253,197,164,241,178,135,217,153,109,67,4,0,219,156,
1747 121,194,137,107,116,62,36,38,0,0,45,1,0,47,2,0,57,7,0,56,3,0,41,0,0,68,21,15,47,
1748 0,0,46,2,0,33,0,0,255,230,208,57,8,0,62,17,11,32,4,0,26,0,0,142,89,81,61,7,0,
1749 69,28,22,25,0,0,24,0,0,43,13,13,13,0,0,13,0,0,34,5,1,43,0,0,88,30,18,61,0,0,47,
1750 0,0,52,8,0,28,0,0,22,0,0,14,0,0,8,0,0,5,0,0,3,1,2,5,1,2,3,0,0,7,0,0,6,0,0,4,0,
1751 0,6,0,0,6,0,0,8,0,0,52,32,33,14,0,0,11,0,0,14,0,0,11,0,0,17,1,14,27,16,48,27,
1752 25,75,86,93,165,110,127,215,76,105,205,66,104,215,55,99,220,51,102,227,43,102,
1753 228,44,107,236,45,108,239,45,108,239,45,105,235,46,105,235,47,104,235,47,104,
1754 235,46,105,235,46,105,235,47,104,235,47,104,235,45,102,233,45,102,233,43,100,
1755 231,42,99,230,42,101,231,40,99,229,40,99,227,40,99,229,39,95,230,39,95,232,70,
1756 128,254,70,128,254,70,128,254,70,128,254,68,125,254,68,125,254,66,123,252,66,
1757 123,252,66,123,252,66,123,252,65,124,252,67,126,254,68,126,252,68,126,252,72,
1758 127,254,73,126,254,76,123,253,79,123,254,81,125,255,81,126,255,81,126,253,83,
1759 128,255,83,128,255,83,128,255,85,130,255,83,128,255,84,129,255,81,126,253,79,
1760 124,249,78,123,242,82,119,234,98,114,210,99,80,144,202,164,201,74,27,43,74,26,
1761 26,54,3,0,41,0,0,51,3,0,39,0,0,70,25,6,33,0,0,31,0,0,34,2,0,255,244,209,255,
1762 230,192,185,129,94,70,10,0,180,130,97,150,104,71,59,15,0,152,108,83,146,100,77,
1763 36,0,0,81,34,16,37,0,0,29,0,0,35,0,0,27,0,0,28,0,0,79,47,24,255,244,215,153,91,
1764 66,104,43,24,33,0,0,35,0,0,154,101,95,51,0,0,37,2,0,36,8,7,27,1,2,14,0,0,8,0,0,
1765 17,0,0,27,0,0,73,21,7,90,28,7,149,83,61,92,31,10,100,45,24,74,26,6,45,7,0,23,0,
1766 0,8,0,0,7,0,0,6,2,1,1,0,0,3,0,0,7,0,0,10,0,0,6,0,0,1,0,0,3,0,0,6,0,0,11,0,0,
1767 17,0,0,43,14,8,69,37,26,38,2,0,49,16,11,87,61,72,77,63,89,82,80,127,66,77,141,
1768 80,105,185,73,108,202,64,108,215,55,107,225,49,109,233,45,108,239,48,112,246,
1769 50,114,248,45,105,235,46,105,233,47,104,233,47,104,233,47,104,233,47,104,233,
1770 47,104,233,47,104,233,45,102,231,45,102,231,45,102,231,43,100,229,43,100,229,
1771 43,100,229,40,97,226,41,98,229,35,91,226,35,91,228,70,128,253,70,128,254,68,
1772 126,252,68,125,254,68,125,254,66,123,252,66,123,252,66,123,252,66,123,252,68,
1773 125,254,68,125,254,68,126,252,70,128,254,72,127,254,72,127,254,77,128,255,77,
1774 124,254,82,125,255,82,125,255,82,125,255,84,127,255,84,128,253,84,128,253,86,
1775 129,255,84,127,255,84,127,255,84,127,255,82,125,253,80,124,247,83,124,240,88,
1776 120,229,106,117,199,178,153,195,81,33,47,50,0,0,106,45,40,109,46,39,65,5,0,39,0,
1777 0,83,34,19,255,241,211,236,198,161,255,243,207,214,179,141,255,247,208,226,
1778 193,158,95,45,20,196,140,115,255,242,212,255,214,182,255,241,210,255,222,192,
1779 221,171,144,221,174,146,255,212,186,255,213,188,255,218,195,109,74,55,40,6,0,55,
1780 26,12,255,242,218,255,236,207,221,156,126,165,98,72,103,57,42,29,0,0,56,3,0,56,
1781 3,0,27,0,0,24,0,0,36,8,5,17,0,0,11,0,0,19,0,0,229,192,176,94,43,22,207,149,
1782 125,201,140,112,212,151,123,255,199,171,154,98,73,100,57,38,33,6,0,10,0,0,6,0,0,
1783 4,0,0,1,0,0,2,1,0,18,10,8,9,1,0,3,0,0,1,0,0,3,0,0,7,0,0,18,2,2,31,3,0,31,0,0,
1784 61,14,0,169,127,113,105,69,57,67,36,33,72,49,59,29,19,46,143,147,192,87,105,
1785 167,80,111,191,77,117,213,68,118,229,60,118,241,50,113,244,49,115,253,51,114,
1786 253,45,105,237,46,105,233,47,104,233,47,104,233,47,104,233,47,104,233,47,104,
1787 233,47,104,233,47,104,233,45,102,231,45,102,231,45,102,231,43,100,229,43,100,
1788 229,42,101,229,42,101,231,46,102,237,46,102,239,74,130,253,74,130,253,72,127,
1789 253,72,127,254,72,127,254,70,125,252,70,125,254,70,125,254,70,125,252,72,127,
1790 254,72,127,254,72,127,254,74,129,255,74,129,255,75,129,255,80,129,255,80,125,
1791 254,84,124,255,84,124,255,84,127,255,84,127,255,83,128,253,85,130,255,84,129,
1792 254,81,126,253,82,125,255,84,125,253,85,124,251,86,126,247,90,126,236,99,124,
1793 224,113,120,192,19,0,23,47,1,4,80,21,17,66,0,0,66,0,0,83,12,6,77,5,0,193,131,
1794 108,255,241,202,246,206,154,185,133,75,107,56,0,255,229,182,255,245,209,228,183,
1795 164,246,195,178,184,134,109,228,177,146,180,125,94,201,146,115,216,167,135,253,
1796 206,176,248,201,171,130,85,54,211,166,137,234,194,168,245,213,192,238,211,192,
1797 255,250,228,255,238,213,185,121,93,118,51,24,162,114,94,233,190,173,192,136,121,
1798 86,33,19,41,0,0,113,76,70,167,128,121,58,21,12,130,103,86,253,226,205,219,187,
1799 164,255,244,220,235,195,169,255,241,213,226,169,140,184,124,96,89,36,5,56,14,0,
1800 24,0,0,11,0,0,4,0,0,1,0,0,0,0,0,1,0,0,3,0,0,3,0,0,1,0,0,3,0,0,11,0,0,19,0,0,15,
1801 0,0,76,43,34,63,7,0,90,34,17,22,0,0,25,2,0,123,90,81,117,87,85,108,92,103,29,
1802 26,53,86,99,144,83,108,174,83,119,205,74,121,225,61,117,236,51,113,246,45,111,
1803 251,44,109,251,43,102,238,44,103,233,45,102,231,45,103,229,45,103,229,45,103,
1804 229,47,102,229,47,102,229,49,104,233,49,104,233,46,100,232,47,101,233,45,102,
1805 231,42,101,229,41,101,231,41,101,233,50,108,242,51,107,244,77,131,255,77,131,
1806 255,77,131,255,75,128,255,75,128,255,73,126,254,73,126,254,73,126,254,73,126,
1807 254,73,126,254,75,128,255,75,128,255,75,129,255,77,131,255,79,130,255,81,129,
1808 255,84,124,255,86,123,255,85,124,253,84,127,255,82,130,254,83,133,254,82,134,
1809 254,81,133,255,77,125,251,82,125,253,87,125,252,91,123,244,96,124,234,103,123,
1810 220,115,123,204,131,122,177,29,0,16,56,6,5,69,6,1,67,0,0,85,15,13,62,0,0,69,0,0,
1811 79,15,0,56,9,0,255,227,171,215,155,92,203,145,82,255,229,178,230,192,155,255,
1812 242,221,229,172,155,255,215,190,255,203,175,237,174,143,255,195,164,255,210,179,
1813 255,226,193,222,172,139,255,235,203,255,212,181,255,242,213,255,232,206,255,249,
1814 224,245,215,189,255,244,217,157,91,59,208,137,107,43,0,0,255,225,202,166,108,84,
1815 56,0,0,43,0,0,44,0,0,36,0,0,45,2,0,255,225,202,255,245,217,255,239,211,253,216,
1816 189,255,236,211,223,176,150,223,166,139,162,102,74,137,83,55,119,75,50,74,38,24,
1817 29,2,0,11,0,0,6,0,0,3,0,0,1,0,0,1,0,0,4,4,2,0,0,0,3,0,0,16,2,2,26,8,6,23,4,0,
1818 21,0,0,119,72,56,77,31,16,22,0,0,14,0,0,34,4,0,89,59,51,48,24,24,76,62,75,88,
1819 85,112,87,98,143,87,112,179,78,115,204,61,111,222,44,103,231,37,100,241,35,100,
1820 244,43,102,242,45,101,236,45,102,231,44,103,229,43,103,227,44,102,225,47,103,
1821 226,49,103,229,52,103,231,52,102,233,52,102,235,48,101,233,44,103,231,39,103,
1822 229,36,106,230,37,105,232,35,95,227,36,94,228,74,124,255,73,123,254,74,124,255,
1823 75,126,254,74,125,253,77,128,255,78,129,255,77,128,255,75,126,254,75,126,254,
1824 75,126,254,75,126,254,75,126,254,76,125,254,77,124,254,80,123,253,82,115,248,
1825 90,120,252,93,128,255,89,133,254,83,136,252,75,135,249,72,135,249,75,137,255,
1826 70,124,248,84,128,253,80,112,235,100,118,230,121,125,222,118,110,185,114,94,
1827 147,95,62,93,46,3,13,60,4,3,68,0,0,68,0,0,74,13,10,53,0,0,38,0,0,255,242,221,
1828 130,74,37,98,40,0,113,53,0,205,150,94,255,241,193,255,207,164,254,190,155,223,
1829 154,123,253,186,157,244,177,150,246,176,150,223,156,129,231,168,137,255,203,171,
1830 255,225,191,255,209,177,244,203,173,255,247,219,255,249,223,255,232,204,242,188,
1831 154,174,104,68,203,124,85,226,151,112,253,194,160,247,193,159,187,124,91,255,
1832 201,174,63,5,0,61,9,0,45,0,0,248,205,186,255,236,207,247,198,166,255,203,172,
1833 218,163,133,193,133,109,134,72,49,176,112,87,176,114,89,165,109,86,167,115,94,
1834 169,117,103,129,82,72,120,83,75,18,0,0,8,0,0,3,0,0,1,1,1,0,0,0,0,0,0,1,0,0,4,0,
1835 0,6,0,0,10,0,0,24,6,4,21,0,0,19,0,0,29,6,0,19,0,0,68,43,36,18,0,0,83,54,50,55,
1836 25,25,90,63,70,70,55,76,66,69,112,47,67,136,106,145,240,41,92,210,57,115,251,
1837 43,103,249,49,104,249,51,104,244,49,108,238,47,109,232,48,111,227,49,110,225,
1838 52,107,224,55,105,228,51,96,225,53,95,229,51,94,232,50,100,235,42,102,232,38,
1839 109,233,34,113,232,34,113,232,33,101,226,39,99,229,75,123,255,74,123,254,75,124,
1840 255,76,125,255,76,125,254,79,128,255,79,128,255,79,128,255,76,125,254,76,125,
1841 254,76,125,254,76,125,254,76,125,254,76,125,254,77,124,254,82,122,253,92,122,
1842 255,96,125,255,94,129,255,85,130,249,72,129,242,68,132,242,73,140,253,76,141,
1843 255,93,147,255,78,118,240,118,143,255,131,138,242,91,79,161,157,132,190,102,68,
1844 101,68,26,40,45,0,0,58,0,0,93,25,22,73,5,2,51,0,0,53,0,0,58,12,0,181,135,111,
1845 255,230,192,162,101,56,255,213,166,255,222,175,221,165,118,248,186,139,209,136,
1846 93,236,161,122,241,166,135,201,127,100,218,144,119,243,169,144,224,152,127,203,
1847 136,107,199,136,105,171,115,82,255,240,208,219,175,146,255,246,217,253,206,176,
1848 115,45,11,169,85,48,212,128,91,221,143,104,255,199,161,255,210,174,133,69,34,
1849 110,45,17,173,110,93,48,0,0,39,0,0,225,175,150,224,173,144,167,112,82,219,162,
1850 135,235,173,148,84,16,0,124,56,33,220,154,130,189,128,107,140,84,67,110,58,45,
1851 110,58,47,96,48,38,92,51,45,52,23,19,21,5,5,4,0,0,1,0,0,0,1,0,0,0,0,1,1,1,0,0,0,
1852 3,0,0,7,0,0,9,0,0,7,0,0,10,0,0,17,0,0,97,70,63,24,0,0,21,0,0,38,1,0,28,0,0,
1853 150,113,107,98,71,76,116,106,133,146,156,209,49,75,159,48,90,198,63,113,244,51,
1854 106,250,52,104,250,52,105,247,49,107,240,45,109,232,46,111,227,47,110,223,52,
1855 107,224,57,106,227,53,96,226,54,94,228,53,94,234,51,98,236,40,103,232,37,111,
1856 232,29,114,231,29,113,229,40,110,234,43,107,233,75,124,255,76,125,255,76,125,
1857 255,76,125,255,79,128,255,79,128,255,79,128,255,79,128,255,76,125,253,76,125,
1858 253,76,125,254,76,125,254,76,125,253,76,125,253,77,124,254,82,122,253,97,130,
1859 255,96,127,254,91,131,253,78,127,246,67,124,239,66,129,242,73,139,252,82,143,
1860 255,49,99,220,109,144,255,90,106,217,130,129,222,158,137,204,106,77,121,76,49,
1861 68,25,0,0,59,1,0,79,14,10,63,2,1,56,0,0,68,0,0,71,9,0,214,164,139,255,224,188,
1862 255,237,194,198,141,98,190,148,106,255,226,184,242,178,132,212,136,87,255,179,
1863 133,233,156,114,216,139,109,255,189,163,180,102,79,176,98,76,171,94,74,193,118,
1864 95,162,88,59,255,194,162,184,114,80,134,66,31,99,30,0,137,66,34,168,89,59,94,
1865 13,0,80,0,0,219,143,109,182,114,77,102,39,4,64,0,0,148,86,65,178,112,96,66,1,0,
1866 250,184,158,143,79,51,111,53,29,78,23,2,85,29,12,54,0,0,136,71,51,72,6,0,100,35,
1867 13,103,46,27,44,0,0,28,0,0,32,0,0,38,4,2,21,0,0,26,8,6,23,9,8,6,0,0,1,0,0,0,0,
1868 0,0,0,0,0,0,0,1,0,0,6,2,3,4,0,1,6,0,0,45,30,25,14,0,0,19,0,0,20,0,0,83,48,42,
1869 48,7,1,43,0,0,41,0,0,81,44,36,18,0,0,84,71,88,65,67,106,84,101,171,77,107,205,
1870 58,100,221,68,115,253,55,104,245,52,105,245,47,107,240,46,112,235,42,111,228,
1871 45,112,225,50,109,227,55,107,229,55,98,229,57,96,233,56,97,237,51,98,236,45,
1872 105,235,36,110,231,28,113,230,29,113,229,38,106,231,41,102,229,76,125,254,79,
1873 128,255,79,128,255,79,128,255,79,128,255,79,128,255,79,128,255,79,128,255,79,
1874 128,255,79,128,255,79,128,255,79,128,255,79,128,255,79,128,255,80,128,255,83,
1875 126,255,94,132,255,97,133,255,91,133,254,78,127,246,72,129,245,70,131,246,76,
1876 137,252,83,138,255,89,131,251,96,123,236,157,165,255,77,68,149,199,176,228,134,
1877 105,133,22,0,4,34,0,0,62,2,1,85,17,14,57,0,0,59,0,0,88,20,17,68,4,0,255,217,188,
1878 255,219,179,178,119,79,204,146,108,34,0,0,255,233,194,238,167,121,235,153,103,
1879 209,128,81,240,161,120,160,81,50,134,57,31,235,157,134,133,55,33,91,10,0,82,1,0,
1880 217,137,110,158,78,45,201,118,84,183,103,68,253,177,145,131,56,27,80,4,0,186,
1881 111,82,114,41,9,200,130,96,209,141,104,255,214,179,113,56,29,54,0,0,66,1,0,98,
1882 30,9,192,121,93,204,134,108,102,40,17,42,0,0,53,0,0,75,16,0,175,110,90,114,47,
1883 28,146,83,65,65,9,0,88,43,37,38,3,1,24,0,0,31,9,11,11,0,0,10,0,0,8,0,0,6,0,0,1,
1884 0,0,0,0,0,0,0,0,1,0,0,1,0,0,3,1,2,2,0,1,4,0,0,13,0,0,29,8,3,18,0,0,172,147,
1885 142,36,0,0,45,0,0,76,23,17,48,0,0,36,0,0,143,115,111,11,0,2,113,107,135,155,160,
1886 218,94,110,195,89,117,227,39,78,205,59,105,240,54,107,245,50,110,242,48,113,239,
1887 45,115,236,46,115,234,50,112,233,55,109,235,51,98,230,58,100,236,58,99,239,53,
1888 101,237,45,105,235,38,109,233,31,112,230,33,114,232,31,99,224,34,95,222,82,130,
1889 255,80,128,255,80,128,255,80,128,255,79,129,254,80,130,255,79,129,254,79,129,
1890 254,79,129,254,79,129,254,80,128,254,79,129,254,79,129,254,79,129,254,80,128,
1891 254,82,127,254,86,127,255,88,129,253,90,134,255,88,137,255,78,133,250,77,132,
1892 251,80,130,251,90,132,252,97,128,245,142,159,255,104,101,192,125,110,175,108,89,
1893 121,20,0,7,39,7,12,47,3,2,62,2,2,62,0,0,67,3,3,64,3,2,51,0,0,62,5,0,255,243,220,
1894 215,162,130,140,75,43,101,36,4,44,0,0,239,185,151,250,177,132,173,91,41,157,75,
1895 28,224,143,100,255,181,149,253,172,145,211,135,109,196,120,96,159,78,57,203,
1896 118,97,182,98,70,136,51,20,204,120,86,177,101,69,49,0,0,61,0,0,131,70,42,217,
1897 157,123,255,204,166,246,188,148,129,64,24,145,82,47,255,243,213,255,208,183,78,
1898 16,0,255,204,178,230,163,137,148,80,57,219,154,132,210,148,127,187,125,104,255,
1899 199,177,142,76,52,154,89,69,77,15,2,59,2,0,64,11,5,40,0,0,15,0,0,8,0,0,17,3,3,
1900 19,8,6,7,0,0,15,9,9,1,0,0,0,0,0,3,1,2,1,0,0,1,0,0,0,0,0,0,0,0,3,0,0,17,3,2,13,
1901 0,0,19,5,4,15,0,0,149,109,101,60,5,0,63,3,0,58,1,0,32,0,0,71,38,33,44,19,22,
1902 54,39,58,135,128,170,41,44,111,69,84,175,125,151,255,65,104,231,57,107,240,50,
1903 109,239,47,112,240,44,114,238,44,114,238,48,113,239,51,110,240,54,104,237,54,
1904 100,235,55,101,238,52,102,235,45,105,235,39,109,233,35,111,231,36,112,232,36,
1905 101,227,39,100,227,82,130,255,82,130,255,82,130,255,82,130,255,79,129,254,79,
1906 129,254,79,129,254,79,129,254,81,131,255,81,131,255,82,130,255,82,130,255,81,
1907 131,255,81,131,255,81,131,255,82,130,255,76,124,250,81,129,253,88,137,255,89,
1908 138,255,86,136,255,85,134,255,90,132,253,98,130,249,106,124,236,69,73,172,171,
1909 159,235,208,186,235,15,0,9,31,0,2,32,0,0,50,0,0,67,7,7,61,0,0,68,0,0,65,0,0,58,
1910 0,0,60,3,0,255,220,198,226,162,134,125,54,24,64,0,0,55,0,0,221,162,130,238,
1911 163,121,136,54,4,255,178,131,211,126,85,233,147,114,170,85,56,226,145,118,255,
1912 215,190,84,4,0,112,28,4,181,96,67,196,113,81,142,63,30,223,154,121,190,132,110,
1913 62,8,0,43,0,0,231,177,139,255,225,182,255,206,161,255,201,163,228,172,137,255,
1914 205,174,253,199,171,141,77,49,199,133,107,205,144,125,59,0,0,63,0,0,189,121,98,
1915 132,66,42,121,55,31,82,14,0,125,60,40,54,0,0,72,19,13,54,3,0,72,32,30,17,0,0,6,
1916 0,0,8,0,0,10,0,0,8,0,0,6,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,1,3,0,0,
1917 12,0,0,20,4,4,7,0,0,16,0,0,102,58,49,43,0,0,168,104,94,65,2,0,56,6,0,43,2,0,22,
1918 0,0,54,31,39,22,6,33,95,87,136,116,116,188,68,83,176,75,106,222,63,108,233,56,
1919 111,238,50,113,242,47,116,245,45,116,244,47,116,246,50,112,245,52,106,240,56,
1920 104,238,57,103,238,55,105,236,45,104,232,41,109,234,35,109,230,37,109,230,48,
1921 113,239,52,113,240,84,132,255,85,133,255,84,132,255,82,130,255,81,131,255,79,
1922 129,254,79,129,254,79,129,254,82,130,255,82,130,255,82,130,255,82,130,255,82,
1923 130,255,81,131,255,81,131,255,81,131,255,75,126,251,79,130,255,80,132,254,84,
1924 134,255,84,129,254,91,131,253,103,133,255,115,135,250,101,106,210,158,150,235,
1925 167,149,207,197,167,201,39,2,10,43,0,0,62,8,8,56,0,0,60,0,0,64,0,0,74,5,0,74,4,
1926 0,105,41,29,64,0,0,96,24,0,116,39,9,100,20,0,112,39,7,66,9,0,255,207,175,139,
1927 64,22,207,124,74,252,168,122,235,147,107,213,120,87,113,19,0,167,76,47,159,72,
1928 42,255,224,194,177,98,67,175,90,59,125,46,13,107,44,9,255,212,174,147,88,54,
1929 119,61,24,181,126,87,244,189,148,204,151,109,255,240,197,255,223,186,255,234,
1930 200,92,31,0,150,81,52,162,90,65,73,6,0,90,41,27,36,0,0,146,81,61,125,55,30,161,
1931 93,72,131,63,42,97,29,8,107,44,26,128,74,64,48,3,0,32,0,0,34,4,4,26,8,8,8,0,0,
1932 11,0,0,13,0,0,17,3,2,11,1,0,3,0,0,1,0,0,3,0,0,3,0,0,3,0,0,3,0,0,1,0,0,4,0,0,22,
1933 6,6,33,15,13,7,0,0,15,0,0,198,146,133,98,31,14,63,0,0,58,0,0,73,16,7,45,0,0,
1934 163,126,120,41,11,11,17,0,4,21,1,29,87,73,124,122,121,197,82,106,206,67,108,222,
1935 60,112,232,53,114,241,46,115,245,45,117,251,46,115,252,48,114,250,51,107,242,
1936 57,107,240,58,107,238,55,106,234,52,107,233,43,107,230,39,109,231,39,109,233,
1937 52,115,244,56,115,245,84,133,254,84,132,255,84,132,255,82,130,254,81,131,254,
1938 79,129,252,78,128,251,80,128,252,82,130,254,82,130,254,82,130,254,82,130,254,
1939 82,130,254,82,130,254,81,131,254,80,132,254,76,132,253,76,132,253,79,131,251,
1940 79,128,249,85,125,249,98,130,251,115,134,252,137,144,250,122,113,204,182,162,
1941 231,146,121,161,22,0,5,86,36,39,60,1,0,60,0,0,67,1,2,66,2,2,60,0,0,99,28,24,68,
1942 0,0,63,0,0,99,31,10,166,86,59,109,26,0,148,68,33,152,79,44,255,241,207,176,
1943 116,80,178,103,61,145,63,16,123,41,0,238,151,108,215,121,87,240,143,111,169,72,
1944 40,222,129,98,205,122,88,209,131,95,141,58,24,203,130,95,255,222,185,255,222,
1945 183,255,222,180,245,191,147,191,138,98,255,240,200,215,162,120,244,195,154,243,
1946 199,162,255,222,189,233,166,137,237,163,136,163,91,69,129,64,46,36,0,0,54,5,0,
1947 126,61,41,132,61,39,74,6,0,112,45,28,111,46,28,72,13,0,38,0,0,48,9,4,38,7,5,17,
1948 0,0,14,0,0,17,0,0,23,5,5,14,0,0,20,4,4,8,0,0,6,0,0,3,0,0,3,0,0,8,4,3,9,5,4,3,
1949 0,0,1,0,0,4,0,0,11,0,0,18,0,0,11,1,0,15,0,0,195,139,126,110,41,25,131,68,51,
1950 160,102,90,55,3,0,64,17,9,38,0,0,32,0,0,79,41,40,100,66,80,147,117,151,78,65,
1951 121,91,103,187,74,107,210,63,108,223,55,111,234,47,114,245,46,115,252,44,116,
1952 254,46,114,251,50,108,242,55,108,240,58,107,235,56,106,231,53,107,231,46,106,
1953 228,42,108,231,40,108,233,42,102,232,44,103,233,90,139,255,88,137,255,85,134,
1954 255,84,133,254,85,134,255,87,136,255,92,141,255,94,143,255,88,137,255,87,138,
1955 255,88,137,255,88,137,255,88,137,255,88,137,255,87,138,255,84,139,255,93,152,
1956 255,55,114,230,97,148,255,102,145,255,98,133,253,101,122,241,116,124,233,105,98,
1957 193,139,117,189,164,135,183,20,0,9,48,5,12,63,3,3,74,4,2,81,7,4,90,16,13,78,10,
1958 9,60,0,0,78,4,3,77,4,0,60,0,0,93,25,4,210,134,102,255,190,152,255,191,152,225,
1959 158,116,255,218,174,240,173,130,244,171,128,97,20,0,223,142,97,233,149,105,122,
1960 30,0,234,137,104,235,136,105,129,32,0,131,38,4,225,140,103,174,96,58,244,180,
1961 142,255,216,177,248,210,171,255,226,184,255,234,193,249,201,163,255,242,207,199,
1962 145,107,255,217,180,255,201,167,244,180,152,232,165,139,195,127,104,195,132,114,
1963 151,90,72,183,120,102,122,57,37,200,133,116,196,129,112,172,105,88,66,0,0,59,0,
1964 0,53,0,0,63,18,12,41,6,2,25,0,0,25,1,1,25,1,1,21,0,0,20,0,0,20,2,2,15,1,0,9,0,
1965 0,11,2,3,3,0,0,4,0,1,4,2,3,1,0,0,1,0,0,0,0,0,3,0,0,8,0,0,12,0,0,9,0,0,26,2,0,
1966 178,124,112,123,57,41,112,54,42,41,0,0,28,0,0,36,0,0,178,132,117,66,17,2,109,59,
1967 48,48,0,0,99,56,73,119,93,132,110,111,176,76,97,186,57,94,198,63,114,231,61,
1968 121,251,49,117,254,42,111,250,48,116,253,47,107,240,52,107,236,55,105,230,55,
1969 105,226,53,108,227,49,107,230,46,110,234,45,108,237,47,107,237,49,108,238,88,
1970 137,255,89,138,255,85,134,253,85,134,253,85,134,253,88,137,255,93,140,255,97,
1971 144,255,88,138,253,87,138,255,88,137,255,88,137,255,88,137,255,88,137,255,87,
1972 138,255,84,139,255,70,130,244,57,117,229,118,170,255,70,110,223,105,132,247,113,
1973 125,235,155,151,248,85,68,146,175,147,198,79,44,74,34,0,3,53,3,4,71,3,2,76,0,0,
1974 79,0,0,78,0,0,74,0,0,72,1,0,69,0,0,74,3,1,65,0,0,101,30,12,238,162,130,235,160,
1975 121,103,37,2,255,214,176,246,180,132,133,63,14,255,202,157,160,83,39,137,56,9,
1976 255,182,136,255,164,123,186,90,52,239,140,108,114,17,0,226,130,92,190,102,64,
1977 252,178,139,255,217,177,255,242,203,253,211,171,208,159,119,248,196,157,255,205,
1978 169,222,168,134,228,172,137,255,211,175,190,121,90,233,161,136,248,180,159,59,0,
1979 0,58,0,0,49,0,0,165,100,82,108,41,22,64,0,0,73,7,0,126,59,43,109,43,29,105,46,
1980 38,51,1,0,37,0,0,22,0,0,24,0,0,26,2,0,29,1,0,28,0,0,25,0,0,23,2,1,17,1,1,10,0,
1981 0,11,1,0,6,0,0,6,0,0,3,0,0,1,0,0,1,0,0,3,0,0,4,0,0,17,5,5,16,2,2,8,0,0,17,0,0,
1982 89,39,30,253,194,180,51,0,0,75,27,15,119,89,78,24,0,0,42,0,0,84,23,2,79,18,0,
1983 94,36,25,83,33,36,36,1,25,110,98,146,106,114,186,92,117,209,64,104,215,44,97,
1984 225,46,108,245,49,115,255,45,111,249,51,111,243,55,110,236,58,109,227,59,108,
1985 226,57,109,227,54,110,231,50,109,237,49,109,241,48,107,237,49,108,238,91,138,
1986 255,90,137,255,85,134,253,85,134,253,90,137,255,92,139,255,95,142,255,94,141,
1987 255,88,138,253,88,138,253,90,137,255,90,137,255,90,137,253,88,137,255,88,137,
1988 255,86,139,255,79,139,249,91,149,255,88,138,251,80,116,228,137,158,255,112,116,
1989 213,130,117,196,189,166,222,142,115,146,22,0,2,49,4,9,56,0,0,80,4,4,84,0,0,84,0,
1990 0,85,1,0,75,0,0,87,16,14,61,0,0,68,3,1,70,0,0,98,22,8,230,149,120,161,86,54,
1991 52,0,0,255,214,181,255,193,150,171,97,48,241,163,115,248,168,119,189,107,59,
1992 217,131,84,231,140,95,244,151,108,201,105,63,207,111,71,218,122,82,215,130,89,
1993 172,103,62,255,215,175,255,207,168,255,215,176,239,175,139,219,151,116,250,180,
1994 146,252,184,149,255,220,184,255,220,187,152,78,49,160,86,61,124,59,41,123,65,51,
1995 82,25,14,59,2,0,70,13,2,82,25,14,119,61,49,98,36,25,125,57,44,123,57,45,106,43,
1996 34,49,0,0,35,0,0,31,1,0,25,0,0,30,2,1,33,1,2,32,1,0,29,0,0,28,2,1,22,2,3,15,0,
1997 0,15,1,0,14,0,0,17,1,2,11,0,0,4,0,0,3,0,0,14,4,3,13,0,0,10,0,0,12,0,0,20,6,5,
1998 17,0,0,28,0,0,158,106,93,127,65,50,82,29,15,26,0,0,39,7,0,71,15,0,126,57,28,
1999 137,69,46,95,32,15,53,0,0,138,98,109,67,44,73,104,100,151,113,124,203,72,99,202,
2000 41,85,210,53,106,244,54,112,255,38,99,239,49,108,238,55,109,231,58,109,224,59,
2001 109,222,58,109,226,57,109,231,54,108,240,51,107,242,49,106,239,50,107,240,90,
2002 137,255,88,137,255,88,137,255,88,137,255,90,140,255,90,140,253,94,141,255,92,
2003 142,255,90,140,253,90,140,255,92,139,255,92,139,255,92,139,255,90,140,255,90,
2004 139,255,88,141,255,101,159,255,87,144,249,75,122,230,116,149,255,109,123,222,
2005 117,115,198,180,162,220,225,198,233,61,33,47,25,0,0,57,5,7,58,0,0,87,9,9,86,2,0,
2006 84,0,0,88,7,6,76,0,0,81,10,8,64,0,0,71,3,2,70,0,0,78,4,0,144,69,50,82,15,0,67,
2007 10,0,253,197,172,245,179,144,253,180,135,200,122,74,215,135,84,189,109,60,255,
2008 176,128,204,118,69,243,155,107,234,142,95,211,118,74,236,145,101,241,158,114,
2009 255,186,144,255,205,164,246,187,147,196,132,96,255,209,174,96,17,0,251,172,139,
2010 202,127,95,212,143,110,134,65,34,142,65,37,143,68,45,52,0,0,58,0,0,46,0,0,69,14,
2011 7,45,0,0,38,0,0,49,0,0,49,0,0,62,3,0,106,48,37,111,54,45,55,6,0,34,0,0,29,1,0,
2012 24,0,0,29,1,0,33,1,2,35,1,0,32,1,0,31,3,2,25,1,1,18,0,0,17,0,0,20,2,2,24,4,5,
2013 19,1,1,6,0,0,8,3,0,19,5,5,15,0,0,23,9,8,14,0,0,17,3,2,16,0,0,27,0,0,87,47,37,
2014 187,129,115,58,2,0,28,0,0,35,0,0,120,57,24,103,30,0,82,12,0,85,20,0,97,40,29,37,
2015 0,0,33,0,13,78,58,95,106,104,169,91,106,199,68,100,221,62,108,245,55,108,250,
2016 41,98,237,56,111,240,57,112,229,60,110,221,61,112,221,61,111,226,60,111,236,58,
2017 110,245,56,109,247,51,105,240,50,107,240,89,139,254,89,139,254,91,141,255,90,
2018 142,254,92,144,254,92,144,254,93,143,254,92,144,254,90,142,252,90,142,254,91,
2019 141,254,91,141,254,91,141,254,90,142,254,90,142,254,89,143,252,100,159,255,38,
2020 94,191,146,188,255,82,108,203,122,129,217,114,104,173,255,238,255,65,34,50,35,
2021 0,0,50,5,0,63,5,4,65,0,0,82,4,4,82,1,0,73,0,0,77,3,2,71,1,1,66,0,0,72,0,1,77,
2022 3,4,74,0,0,68,0,0,60,1,0,55,1,0,255,240,225,63,6,0,52,0,0,255,201,165,190,116,
2023 71,255,182,132,255,203,153,173,101,51,255,200,150,242,162,111,216,130,79,189,
2024 101,53,204,122,74,213,135,89,255,201,161,167,98,59,123,59,24,97,28,0,170,87,53,
2025 207,121,86,255,211,179,255,202,171,169,88,59,103,19,0,255,183,156,146,71,48,62,
2026 0,0,68,4,0,78,19,5,38,0,0,31,0,0,47,9,8,28,0,0,32,0,0,41,2,0,78,35,28,102,58,
2027 49,95,52,45,42,11,9,27,1,2,24,0,0,29,1,0,34,2,3,31,0,0,31,0,0,30,2,1,25,1,1,19,
2028 0,0,15,0,0,18,0,0,28,4,4,22,1,0,8,0,0,10,2,0,15,3,3,11,0,0,14,2,2,8,0,0,8,0,0,
2029 10,0,0,10,0,0,21,0,0,32,0,0,57,5,0,112,61,30,97,42,3,127,60,15,98,31,0,114,53,
2030 24,159,101,79,211,150,132,111,54,45,79,33,35,86,54,75,102,88,141,110,115,197,
2031 95,116,231,71,108,241,61,108,248,58,111,249,57,110,238,59,111,229,62,113,220,
2032 61,112,219,61,111,226,60,111,236,58,110,248,56,109,251,51,105,240,52,106,240,
2033 89,139,254,89,139,254,90,142,254,92,144,254,94,146,255,94,146,255,93,143,254,
2034 92,144,254,92,144,254,92,144,254,93,143,254,93,143,254,92,144,254,92,144,254,
2035 92,144,255,92,144,253,64,119,219,139,189,255,56,92,186,154,176,255,136,140,213,
2036 183,171,221,82,58,80,26,0,0,31,0,0,95,45,36,64,0,0,71,0,0,80,2,2,79,0,0,75,0,0,
2037 77,3,4,70,2,1,63,0,0,73,3,3,75,3,4,72,2,2,63,2,1,42,0,0,44,0,0,174,126,116,78,
2038 25,11,61,4,0,220,156,128,209,136,93,212,136,86,235,163,113,255,198,147,177,106,
2039 52,255,183,131,202,124,75,244,163,116,255,201,158,173,98,58,131,63,26,100,34,0,
2040 255,199,166,255,233,198,211,125,90,250,164,129,214,138,106,223,146,116,234,144,
2041 120,191,99,78,200,118,96,252,177,158,153,87,75,109,47,36,104,42,29,104,50,38,47,
2042 8,3,25,0,0,33,3,3,32,0,1,24,0,0,27,0,0,31,0,0,39,0,0,23,0,0,20,0,0,27,0,0,30,
2043 0,0,33,1,2,31,0,0,31,0,0,31,1,0,29,1,0,24,0,0,21,1,0,19,1,1,23,3,2,21,3,3,9,0,
2044 0,8,3,0,12,3,4,7,0,0,7,0,0,15,5,4,15,3,3,14,4,3,4,0,0,10,0,0,87,49,40,113,62,
2045 41,168,112,75,193,132,87,127,61,13,125,60,18,68,11,0,43,0,0,61,0,0,181,115,99,
2046 155,98,87,132,89,98,118,91,132,117,109,184,102,114,222,73,102,232,65,107,245,72,
2047 121,255,55,109,235,57,110,226,59,110,217,58,109,214,58,109,224,57,108,235,55,
2048 106,247,56,107,252,51,104,242,52,106,240,86,137,252,88,139,254,93,143,255,95,
2049 145,255,95,146,255,95,146,255,95,143,254,93,143,255,93,143,254,93,143,254,93,
2050 143,255,93,143,255,92,144,254,92,144,254,93,143,255,93,144,253,99,148,250,119,
2051 163,255,114,144,242,66,83,163,226,229,255,6,0,21,22,0,9,33,0,0,43,0,0,71,14,7,
2052 66,0,0,78,4,3,75,0,0,79,1,1,84,4,7,82,4,4,70,0,0,71,4,0,61,0,0,63,2,1,68,4,4,
2053 59,1,0,44,0,0,35,0,0,35,0,0,45,5,0,79,23,8,169,102,75,199,122,80,232,152,101,
2054 255,194,144,243,170,119,229,153,101,244,170,121,142,73,32,113,43,7,191,112,79,
2055 101,31,0,255,218,186,255,244,211,164,91,56,255,174,137,255,210,176,181,96,65,
2056 255,198,168,134,48,21,253,160,142,105,13,0,139,53,38,142,68,55,45,0,0,69,14,9,
2057 69,6,0,79,22,13,29,0,0,29,0,0,35,0,0,40,2,1,34,0,0,45,1,0,46,0,0,56,8,6,38,0,0,
2058 28,0,0,33,0,0,35,1,0,35,1,0,32,1,0,31,0,0,33,2,0,35,1,0,30,0,0,27,6,5,13,0,0,9,
2059 0,0,9,1,0,3,0,0,1,0,0,4,0,1,3,0,0,4,0,0,8,0,0,7,0,0,6,0,0,3,0,0,10,0,0,185,
2060 147,138,69,18,0,83,32,3,47,0,0,75,11,0,163,99,64,69,12,0,48,0,0,141,70,50,180,
2061 108,86,148,83,65,140,89,88,130,95,125,110,94,157,94,98,198,83,104,229,74,108,
2062 244,64,110,245,57,108,233,55,111,224,57,110,216,58,109,216,57,108,225,57,108,
2063 235,55,106,249,54,104,251,51,104,242,50,107,240,83,139,252,85,138,250,93,143,
2064 254,97,145,255,100,147,255,100,144,253,99,142,254,95,138,251,96,142,254,94,142,
2065 253,94,141,255,92,142,255,92,142,253,95,143,253,95,141,252,98,141,246,124,160,
2066 255,103,133,223,115,133,217,153,161,226,0,0,30,8,0,5,42,13,15,38,0,0,69,18,15,
2067 56,0,0,69,1,0,82,11,9,70,0,0,72,0,1,82,6,8,73,0,0,66,0,0,96,35,30,49,0,0,51,0,
2068 0,60,4,3,49,0,0,50,8,9,24,0,0,25,0,0,24,0,0,34,0,0,72,14,0,228,155,114,218,
2069 138,89,241,163,114,254,177,125,152,75,21,114,40,0,97,29,0,255,239,204,80,4,0,
2070 211,143,108,255,243,210,232,186,153,195,126,87,161,79,41,123,40,8,108,23,0,145,
2071 58,30,138,48,24,98,5,0,91,1,0,84,2,0,78,10,1,48,0,0,46,0,0,110,51,45,56,0,0,37,
2072 0,0,33,1,2,41,1,1,48,4,5,42,0,0,58,12,12,50,0,0,54,6,6,38,0,0,38,2,2,39,0,0,
2073 41,1,1,38,2,2,34,0,0,31,1,0,32,2,0,39,3,3,33,1,2,27,3,3,10,0,0,7,0,0,1,0,0,0,0,
2074 0,0,0,0,0,0,0,1,0,0,2,1,0,5,1,0,4,0,0,16,10,10,1,0,0,8,0,0,24,0,0,178,132,117,
2075 122,74,52,129,76,45,164,101,68,100,35,5,172,111,90,64,2,0,121,50,22,77,2,0,87,
2076 17,0,119,61,50,131,87,104,109,81,130,94,84,171,99,106,220,83,106,234,49,87,220,
2077 56,106,231,51,108,224,53,109,220,53,109,220,52,107,226,53,106,234,55,103,247,
2078 53,104,249,51,104,242,50,107,240,84,146,255,86,144,254,87,137,248,89,133,242,
2079 96,134,241,102,139,246,107,141,251,107,143,255,106,146,255,110,153,255,103,149,
2080 255,84,132,243,85,131,242,107,149,255,113,150,255,109,137,237,127,142,233,130,
2081 136,212,103,104,161,255,249,255,7,0,9,24,2,4,41,5,5,50,2,0,59,1,0,60,0,0,61,0,0,
2082 61,0,0,61,0,0,62,0,0,61,0,0,56,0,0,55,0,0,52,0,0,46,0,0,43,0,0,47,0,0,51,3,3,
2083 45,3,4,36,2,1,21,0,0,18,0,0,19,0,0,42,3,0,178,113,75,213,133,84,225,145,96,190,
2084 110,59,198,121,67,177,104,51,255,195,146,171,100,54,205,131,86,241,172,130,203,
2085 145,105,254,200,162,255,205,168,255,202,167,185,105,72,190,103,75,94,4,0,125,34,
2086 13,109,16,1,108,20,10,81,4,0,61,0,0,39,0,0,38,0,0,58,7,4,45,0,0,42,2,2,47,9,8,
2087 42,0,1,47,3,2,46,0,0,45,0,0,48,0,0,46,2,1,41,1,1,38,0,0,46,2,1,44,0,0,40,0,0,
2088 32,0,0,22,0,0,21,0,0,30,0,0,35,3,4,27,6,5,8,0,0,4,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
2089 0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,6,0,0,22,1,0,41,7,0,102,59,42,109,57,33,
2090 107,46,17,161,95,63,164,99,69,99,33,0,199,130,89,146,74,36,106,35,5,68,3,0,49,0,
2091 0,25,0,12,38,9,73,118,104,199,54,61,178,91,118,247,67,115,241,56,116,240,48,
2092 112,235,45,111,233,48,110,233,52,109,240,61,110,249,65,112,254,56,108,244,56,
2093 110,244,81,148,255,83,146,252,91,142,251,94,136,244,101,135,242,107,138,244,111,
2094 142,250,115,147,255,111,149,255,78,120,230,79,125,236,113,159,255,118,162,255,
2095 91,130,235,98,130,231,142,161,253,154,156,233,108,100,160,214,204,241,8,0,12,
2096 17,0,3,32,2,0,41,0,0,54,0,0,63,1,2,65,1,1,65,1,2,63,1,2,62,2,2,61,3,2,61,3,2,
2097 62,4,3,60,2,1,56,2,2,48,0,0,43,0,0,45,0,0,47,0,0,43,0,0,35,0,0,32,4,3,18,0,0,
2098 13,0,0,24,0,0,196,132,97,183,102,55,206,126,77,235,159,107,213,142,86,232,163,
2099 106,243,172,120,204,133,81,217,144,93,222,152,103,249,186,142,255,220,179,243,
2100 191,152,255,205,168,240,167,134,211,130,101,232,148,122,215,128,108,120,31,13,
2101 87,1,0,80,7,1,59,0,0,49,0,0,42,0,0,40,0,0,55,11,10,34,0,0,33,0,0,36,0,0,43,3,3,
2102 48,4,3,46,2,1,42,0,1,40,2,1,39,1,0,40,0,0,48,2,2,47,3,2,42,2,3,34,2,3,27,1,0,
2103 25,0,0,31,0,0,32,4,3,19,1,1,7,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,
2104 0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,0,22,0,0,32,0,0,86,32,8,164,100,73,244,178,
2105 146,163,95,60,229,161,122,150,83,41,149,81,42,146,77,44,72,7,0,109,55,45,101,55,
2106 68,72,35,79,18,0,71,97,94,199,62,82,203,67,111,236,52,113,240,46,115,242,43,
2107 114,240,45,113,240,52,111,241,59,108,245,63,109,247,54,104,239,53,105,240,85,
2108 152,255,87,150,255,94,145,254,99,141,249,106,140,247,111,142,248,114,145,253,
2109 116,148,255,95,133,244,103,145,255,109,153,255,106,150,255,107,150,254,117,152,
2110 254,126,152,247,125,137,219,100,96,157,199,186,229,8,0,19,42,20,33,51,22,27,33,
2111 0,0,48,0,0,46,0,0,64,0,0,70,2,1,70,2,3,67,1,2,61,1,1,57,1,0,60,1,3,63,1,2,73,
2112 5,6,69,3,4,59,1,0,52,0,0,53,0,0,56,2,2,50,0,1,43,0,0,41,1,2,33,1,2,23,0,0,27,
2113 0,0,212,146,112,122,44,0,162,88,39,255,198,147,238,177,122,255,215,161,213,
2114 142,90,242,166,116,220,142,93,179,107,57,243,182,137,248,195,153,255,229,188,
2115 255,220,182,255,204,167,161,96,64,255,197,168,251,177,150,189,103,78,192,107,87,
2116 59,0,0,65,2,0,51,0,0,72,19,11,28,0,0,22,0,0,37,6,4,33,3,3,23,0,0,32,2,0,44,4,4,
2117 42,2,2,33,0,0,29,0,0,29,0,0,33,0,0,42,2,2,42,2,2,35,0,0,33,1,2,33,1,2,33,1,2,
2118 31,0,0,25,1,1,8,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2119 0,0,0,0,0,0,0,1,0,0,3,0,0,14,0,0,155,108,92,126,64,41,107,41,15,138,71,42,149,
2120 83,48,144,78,43,68,2,0,75,10,0,52,0,0,53,0,0,50,0,0,45,0,7,122,88,115,8,0,44,
2121 120,115,207,97,112,227,66,108,228,54,114,238,49,118,245,48,119,245,49,117,244,
2122 54,114,244,58,108,243,60,108,244,48,101,233,49,103,235,87,151,255,88,149,255,
2123 93,144,253,99,141,249,109,142,249,113,144,250,114,144,254,116,150,255,97,135,
2124 244,122,164,255,123,167,255,92,135,239,91,130,233,125,158,255,132,153,242,115,
2125 122,194,228,216,255,11,0,18,51,28,46,18,0,0,52,16,18,40,0,0,54,1,0,95,36,32,66,
2126 1,0,72,2,2,75,3,4,69,0,0,57,0,0,54,0,0,58,0,0,64,0,0,73,1,2,71,1,1,66,2,2,60,
2127 0,0,63,2,1,64,4,4,59,3,4,51,1,2,41,0,0,41,6,4,44,14,14,29,0,0,213,148,116,149,
2128 72,28,167,93,46,255,188,136,232,171,117,255,207,153,191,118,65,255,183,131,249,
2129 169,118,225,151,102,255,203,156,255,221,177,255,216,174,239,191,151,255,238,202,
2130 231,172,138,255,219,188,251,180,152,171,85,60,178,93,73,165,95,83,65,1,0,246,
2131 182,172,178,121,110,159,118,112,28,0,0,25,0,0,27,0,0,21,0,0,25,0,0,35,1,0,35,0,
2132 0,31,0,0,29,0,0,29,0,0,30,0,0,38,0,0,36,0,0,29,0,0,28,0,0,35,0,0,38,2,2,32,0,
2133 1,23,0,0,6,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2134 0,0,0,0,0,0,0,0,0,0,0,10,0,0,94,52,38,175,117,95,142,78,51,194,127,98,205,139,
2135 104,102,37,0,150,84,50,163,99,64,149,89,53,170,113,84,77,23,11,42,0,0,135,101,
2136 117,15,0,35,104,97,175,52,65,169,67,107,220,54,113,231,49,117,240,50,121,247,51,
2137 120,247,54,114,244,59,109,242,58,106,240,50,103,235,49,103,235,84,146,255,87,
2138 145,253,93,143,254,99,141,251,105,139,246,110,141,249,111,143,254,108,144,254,
2139 116,157,255,93,135,245,87,129,239,106,147,255,115,150,250,107,134,225,118,134,
2140 212,154,153,211,79,55,87,33,1,16,23,0,0,111,79,82,40,0,0,60,10,9,79,20,16,52,0,
2141 0,72,2,0,77,3,2,79,3,3,73,1,2,66,0,1,58,0,0,64,0,0,69,1,0,68,0,0,68,0,0,64,0,
2142 0,65,0,0,69,1,0,69,3,4,62,2,2,51,0,0,42,1,0,31,0,0,33,3,3,36,0,0,143,83,55,
2143 231,159,119,224,147,101,212,139,88,250,183,130,248,179,124,185,110,53,224,145,
2144 89,221,140,87,245,169,119,244,178,130,255,210,165,255,230,191,220,160,123,255,
2145 224,187,255,218,185,255,186,159,235,153,131,145,56,38,132,46,29,197,124,107,160,
2146 94,78,62,2,0,232,177,170,80,30,23,55,12,6,31,0,0,18,0,0,27,1,0,27,1,0,27,1,0,
2147 28,0,0,33,0,0,38,3,1,34,3,1,31,0,0,34,0,0,31,0,0,23,0,0,22,0,0,33,0,0,40,5,3,
2148 36,2,1,24,0,0,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,
2149 0,0,0,0,0,0,0,0,0,0,0,1,0,7,0,0,22,0,0,193,146,128,152,92,68,204,139,109,122,
2150 56,21,149,84,44,152,85,42,133,66,23,115,48,5,87,21,0,84,21,6,52,1,0,22,0,0,10,
2151 0,21,110,101,166,127,137,226,73,108,210,59,115,226,53,122,239,52,124,245,54,
2152 122,247,57,118,245,62,112,243,61,110,241,55,108,240,56,110,242,85,143,253,87,
2153 143,252,95,143,254,99,141,251,108,142,250,109,142,249,108,142,252,105,141,251,
2154 106,147,255,104,146,254,101,143,253,108,145,251,128,158,254,148,169,252,148,157,
2155 224,145,137,184,74,45,65,64,28,32,40,4,4,32,0,0,46,0,0,55,0,0,83,19,17,72,4,1,
2156 70,0,0,72,1,0,72,0,1,71,1,1,66,0,1,65,1,1,70,2,1,77,7,7,72,0,1,71,1,1,70,2,3,
2157 68,0,1,71,1,1,72,2,2,65,1,2,52,0,0,50,5,2,34,0,0,32,0,0,33,0,0,49,0,0,215,147,
2158 110,225,148,104,194,114,65,255,196,144,236,161,106,202,123,67,172,91,36,189,107,
2159 57,241,160,113,219,146,101,255,196,155,246,176,142,96,27,0,94,29,1,125,55,30,
2160 83,2,0,112,25,8,91,2,0,85,0,0,117,40,22,54,0,0,63,3,0,40,0,0,47,0,0,46,0,0,38,
2161 0,0,31,1,1,30,0,0,27,0,0,26,0,0,31,0,0,40,0,0,44,3,1,39,1,0,30,0,0,35,1,0,33,
2162 2,0,27,1,2,24,0,0,31,0,0,38,4,3,34,4,4,22,1,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2163 0,0,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,6,0,0,17,0,0,60,22,
2164 11,131,76,55,123,59,31,143,80,47,207,143,105,210,143,98,229,161,112,253,183,
2165 132,126,54,14,68,0,0,73,16,7,45,7,6,29,6,24,33,24,71,91,99,171,78,112,202,64,
2166 115,220,56,119,233,51,121,242,55,121,244,57,118,243,59,112,240,62,111,240,59,
2167 112,242,61,115,247,88,144,253,95,147,255,98,145,253,105,146,254,108,145,252,110,
2168 144,252,111,145,255,107,145,254,90,132,240,126,170,255,128,169,255,104,138,236,
2169 121,145,233,160,174,247,127,130,183,49,38,72,30,2,16,38,0,0,72,31,29,42,0,0,117,
2170 56,53,68,0,0,57,0,0,66,5,4,63,0,0,63,0,0,62,0,0,61,0,0,62,1,0,64,0,0,66,0,1,71,
2171 1,1,83,7,7,80,4,4,71,3,2,66,0,1,70,2,3,72,4,5,68,2,3,60,0,0,55,4,3,46,0,0,47,
2172 7,7,36,0,0,38,0,0,173,110,79,193,115,76,192,108,61,242,160,110,218,137,84,212,
2173 129,77,158,75,25,193,109,63,230,145,104,240,158,120,255,188,155,136,58,35,82,5,
2174 0,77,1,0,94,16,4,86,2,0,117,30,20,110,21,13,87,0,0,78,0,0,93,16,6,86,19,11,74,
2175 15,11,62,11,8,39,0,0,49,5,6,32,0,0,28,0,0,34,0,1,40,0,0,45,0,0,52,0,0,52,1,0,
2176 44,0,0,34,0,0,37,0,0,38,2,2,34,3,1,29,0,0,31,0,0,34,6,5,25,4,3,12,0,0,3,0,0,0,
2177 0,0,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,0,0,0,0,0,0,1,0,0,3,
2178 0,0,7,0,0,14,0,0,21,0,0,143,94,79,102,44,22,138,80,56,52,0,0,101,36,0,146,78,
2179 29,139,69,17,171,101,52,148,78,42,157,95,72,92,45,35,20,0,0,4,0,18,105,116,162,
2180 87,116,194,69,114,215,61,118,231,52,117,237,53,117,241,57,118,243,62,116,242,
2181 66,117,244,62,115,245,61,116,245,94,147,253,96,147,254,103,147,254,109,150,255,
2182 113,149,255,111,147,255,110,148,255,106,147,253,107,151,255,100,145,248,104,146,
2183 246,124,157,250,133,152,231,94,102,165,26,21,62,8,0,16,25,0,0,46,5,3,44,0,0,59,
2184 1,0,72,3,0,77,3,0,67,1,2,60,0,0,62,2,1,61,1,0,59,1,0,60,0,0,62,1,0,64,0,0,63,
2185 0,0,67,0,0,79,3,3,77,1,1,67,0,0,61,0,0,62,0,0,65,1,1,69,1,2,64,0,0,58,2,1,48,
2186 0,0,47,3,2,40,0,0,45,0,0,208,152,129,187,112,73,183,96,51,208,122,75,217,131,
2187 84,205,117,71,127,38,0,134,46,10,104,15,0,113,26,0,107,19,0,80,0,0,95,9,0,87,0,
2188 0,85,0,0,88,0,0,91,1,0,94,4,0,85,0,0,112,29,21,77,2,0,60,0,0,57,0,0,49,0,0,48,
2189 0,0,45,0,0,61,11,12,37,0,0,43,1,3,58,3,6,64,4,4,69,5,5,64,4,3,54,3,2,44,0,0,
2190 37,0,0,41,3,2,37,3,2,30,0,0,29,0,0,27,3,1,14,0,0,6,0,0,1,0,0,0,0,0,0,0,0,0,0,0,
2191 0,0,0,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,0,1,7,1,1,12,2,1,12,0,
2192 0,22,0,0,42,0,0,84,26,6,119,61,39,74,15,0,186,123,82,131,65,15,151,82,27,109,
2193 38,0,103,32,0,174,108,73,137,82,61,58,21,15,12,0,6,0,0,32,94,117,184,78,117,
2194 210,62,114,224,54,112,235,53,115,238,54,113,239,64,119,245,67,121,247,58,113,
2195 240,61,116,245,105,157,255,105,154,255,103,147,254,103,143,254,102,140,251,104,
2196 142,251,107,148,255,106,150,255,68,116,216,131,177,255,86,126,224,125,155,245,
2197 112,126,199,180,181,235,25,14,46,14,0,7,36,0,4,51,1,0,55,0,0,76,8,7,75,0,0,83,7,
2198 7,68,0,0,65,4,3,51,0,0,52,0,0,57,1,0,66,6,6,71,5,6,68,0,0,64,0,0,67,3,3,67,2,
2199 0,64,0,0,70,2,1,70,6,6,56,0,0,61,1,1,75,7,6,71,3,2,63,5,4,42,0,0,48,0,0,42,0,
2200 0,37,0,0,46,0,0,131,57,22,164,77,32,146,57,15,168,79,37,175,83,42,143,50,16,
2201 108,16,0,99,6,0,101,8,0,105,12,0,110,15,0,111,16,0,110,14,0,106,7,0,99,3,0,98,1,
2202 0,97,0,0,92,2,0,73,0,0,69,0,0,63,0,0,55,0,0,59,0,0,67,3,3,72,4,5,65,1,1,51,0,
2203 0,56,0,1,65,1,2,69,0,1,72,0,1,72,4,3,64,4,4,52,1,0,51,7,6,43,5,4,37,3,2,32,2,
2204 2,27,1,0,21,1,0,9,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2205 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,9,0,1,12,0,0,22,8,8,29,1,0,184,132,119,134,
2206 72,49,201,137,109,180,116,81,189,124,84,227,161,113,190,120,68,176,107,52,190,
2207 119,67,152,85,40,83,24,0,132,86,71,71,44,53,69,62,95,88,100,158,115,146,229,58,
2208 105,213,45,99,221,71,129,255,51,110,236,54,109,235,60,114,240,56,111,238,54,111,
2209 240,107,157,255,106,154,255,106,148,255,103,143,254,104,142,253,105,145,255,103,
2210 147,254,104,151,255,119,169,255,104,150,246,97,136,231,106,132,217,179,187,252,
2211 31,24,68,32,14,38,28,0,6,41,0,0,61,8,2,65,4,1,72,4,3,75,1,0,75,4,2,66,0,0,61,0,
2212 0,86,28,27,61,6,3,55,0,0,58,0,0,67,1,2,68,2,3,62,1,0,58,0,0,65,4,3,61,0,0,66,
2213 0,0,64,0,0,50,0,0,56,0,0,69,3,4,67,1,2,63,5,4,48,0,0,53,2,1,48,2,2,34,0,0,41,
2214 0,0,132,59,27,130,41,1,111,18,0,125,32,0,130,35,3,116,21,0,102,6,0,102,5,0,
2215 105,8,0,104,6,0,126,26,10,133,33,10,147,42,20,152,48,23,149,47,22,143,41,16,137,
2216 35,13,128,33,15,85,0,0,77,3,2,66,2,2,58,0,0,66,0,0,75,4,2,80,4,4,74,0,0,65,0,0,
2217 69,3,4,76,4,5,75,1,2,74,0,0,72,2,2,63,1,2,51,0,0,34,0,0,29,0,0,28,0,0,24,0,0,
2218 24,0,0,20,2,2,6,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2219 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,8,0,0,12,0,0,12,0,0,21,0,0,51,3,0,86,25,4,90,
2220 25,0,142,77,39,93,28,0,127,60,15,148,80,31,167,97,45,185,114,60,178,111,59,157,
2221 95,56,129,79,56,98,64,65,20,6,31,0,0,44,82,106,180,97,138,244,60,110,233,74,
2222 129,255,70,128,254,69,125,248,61,117,240,61,119,245,61,118,247,108,156,255,108,
2223 153,255,107,148,254,108,146,255,104,142,253,105,145,255,103,147,254,103,152,255,
2224 84,133,235,94,140,236,135,172,255,117,139,215,142,143,200,168,154,189,26,0,14,
2225 27,0,0,39,0,0,59,5,0,59,2,0,51,0,0,64,0,0,65,0,0,59,0,0,61,3,2,52,0,0,53,0,0,
2226 60,0,0,63,0,0,61,0,0,58,0,0,57,0,0,60,2,1,65,4,3,62,0,0,64,0,0,63,0,0,55,0,0,
2227 57,0,0,63,1,2,58,0,0,57,1,2,54,0,0,57,0,0,58,7,6,40,0,0,44,0,0,173,98,69,120,
2228 30,0,108,14,0,114,18,0,114,18,0,112,16,0,113,18,0,119,23,9,118,17,7,113,10,1,
2229 109,7,0,115,12,0,125,19,3,136,29,9,140,34,8,143,38,8,139,34,4,135,33,8,107,11,0,
2230 94,6,4,73,1,2,65,0,0,70,0,0,83,5,5,85,3,5,81,1,2,76,2,1,75,3,4,79,3,3,77,1,1,
2231 72,0,1,66,0,1,57,1,2,44,0,1,20,0,0,18,0,0,22,1,0,19,0,0,22,1,0,20,4,4,4,0,0,0,
2232 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2233 0,0,1,0,0,6,0,0,12,0,0,20,4,4,30,5,1,39,0,0,99,48,31,124,63,32,188,123,83,143,
2234 79,35,136,72,28,160,93,51,174,106,61,167,96,44,159,90,35,164,100,54,72,19,0,68,
2235 34,24,10,0,5,0,0,34,86,105,173,113,147,254,65,110,237,70,124,250,52,110,235,40,
2236 96,217,39,95,218,66,124,250,66,123,254,110,155,255,110,153,255,110,148,255,109,
2237 145,255,107,145,254,105,147,255,101,148,254,103,152,255,107,159,255,129,175,255,
2238 107,141,228,125,143,215,154,155,203,53,37,64,130,99,107,110,67,61,93,40,26,115,
2239 57,43,85,28,19,59,0,0,75,12,5,62,0,0,56,0,0,62,2,2,58,0,0,65,5,4,83,18,14,84,
2240 19,15,64,3,2,54,0,0,54,0,0,61,1,1,65,1,1,63,0,0,63,2,1,66,5,4,67,3,3,66,2,2,62,
2241 1,0,57,0,0,55,0,0,59,0,2,56,0,0,60,6,6,44,0,1,47,0,0,202,125,97,125,32,1,116,
2242 21,3,115,19,5,116,18,5,114,17,1,112,15,0,109,11,0,106,5,0,103,0,0,121,17,4,119,
2243 13,0,116,9,0,116,9,0,125,16,0,135,27,0,145,37,8,148,42,18,116,14,2,99,4,0,80,0,
2244 0,72,0,0,78,0,0,84,3,2,86,2,2,80,0,0,77,0,0,75,0,0,76,0,0,73,0,0,68,0,0,62,1,
2245 0,55,1,1,43,1,2,21,0,0,20,4,4,20,4,4,15,0,0,16,0,0,15,3,3,3,0,0,0,0,0,0,0,0,0,
2246 0,0,0,0,0,0,0,0,0,0,0,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,0,0,5,
2247 0,0,10,0,0,14,0,0,16,0,0,28,0,0,42,0,0,150,91,61,147,82,42,185,121,77,124,59,
2248 17,81,15,0,110,42,3,156,84,34,188,117,63,196,128,79,121,66,27,82,45,26,13,0,0,
2249 0,0,32,81,93,165,64,94,204,48,91,221,90,143,255,70,128,254,68,126,249,104,162,
2250 255,61,118,247,61,118,249,113,157,255,111,153,255,114,151,255,111,148,255,111,
2251 149,255,104,147,252,103,150,254,101,153,254,105,157,255,120,165,255,105,137,222,
2252 138,157,225,122,124,163,255,248,255,76,41,47,35,0,0,65,5,0,71,7,0,65,1,0,73,10,
2253 0,97,30,13,76,9,0,65,1,0,88,24,22,76,12,10,65,1,0,62,0,0,62,0,0,65,1,1,64,0,0,
2254 65,1,1,64,0,0,67,0,0,64,0,0,57,1,0,60,2,1,72,4,3,74,4,4,68,0,0,64,0,0,58,0,0,
2255 62,4,3,55,0,0,58,4,4,47,0,0,50,0,0,192,111,82,125,32,1,95,1,0,97,2,0,100,1,0,
2256 104,3,0,100,2,0,98,0,0,97,0,0,99,0,0,133,30,11,128,21,1,118,11,0,117,7,0,118,11,
2257 0,124,17,0,126,19,1,128,22,8,108,5,0,99,1,0,91,0,0,87,0,0,89,0,0,90,2,1,83,2,
2258 1,77,0,0,75,0,0,72,0,0,70,0,0,70,0,0,66,0,1,60,0,0,54,0,0,47,3,2,23,0,0,19,3,
2259 3,14,2,2,7,0,0,4,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2260 0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,4,0,0,9,0,1,15,5,4,12,0,0,31,5,
2261 4,38,0,0,166,109,80,154,89,51,228,163,121,165,100,60,191,125,91,153,85,50,146,
2262 76,27,130,59,5,102,32,0,156,94,53,149,103,80,160,130,138,107,95,141,168,176,
2263 255,109,136,253,70,110,244,81,131,255,38,95,224,22,80,206,44,102,228,61,118,247,
2264 61,118,249,116,155,255,113,152,255,114,151,255,114,151,255,111,150,255,106,150,
2265 255,102,151,254,99,151,252,121,174,255,99,144,235,117,148,231,147,162,227,135,
2266 135,169,11,0,5,59,19,20,55,5,0,100,43,34,103,45,33,99,37,22,146,83,65,100,38,15,
2267 95,32,14,63,1,0,68,5,0,63,0,0,66,2,0,74,7,0,81,13,4,73,4,0,67,0,0,67,0,0,72,1,
2268 0,76,2,0,71,1,0,55,0,0,54,0,0,73,0,0,80,1,0,74,0,0,73,3,3,59,0,0,62,2,2,56,0,
2269 0,56,2,0,56,5,4,59,0,0,181,100,73,158,67,38,93,0,0,94,0,0,102,0,0,113,10,3,
2270 115,13,1,111,10,0,111,10,0,118,16,2,133,28,7,132,26,4,127,20,4,129,21,8,128,22,
2271 6,120,17,2,106,3,0,101,0,0,102,0,0,100,0,0,99,1,0,96,2,2,94,3,2,88,2,1,79,1,1,
2272 73,0,0,77,3,2,72,0,1,69,1,0,66,2,2,62,2,2,56,0,1,51,0,0,45,4,2,28,0,0,19,0,0,
2273 10,0,0,4,0,0,3,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2274 0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,3,0,0,6,0,0,7,0,0,10,0,0,18,0,0,34,
2275 0,0,74,22,0,146,86,50,163,100,59,155,90,52,169,102,73,155,86,53,196,125,79,
2276 200,129,75,135,66,11,178,115,71,106,56,33,119,86,93,15,1,52,102,108,196,92,117,
2277 236,64,103,240,68,118,253,68,125,255,80,139,255,70,129,255,61,118,249,61,118,
2278 249,115,152,255,117,154,255,116,153,255,115,154,255,111,153,255,108,153,255,104,
2279 153,255,97,150,252,70,123,219,101,146,237,136,167,249,165,176,240,48,38,73,123,
2280 93,105,68,19,15,89,37,24,44,1,0,60,20,8,71,20,1,129,74,53,45,0,0,92,41,22,83,
2281 27,14,76,16,5,83,21,8,125,59,43,175,105,80,176,101,78,123,47,31,77,0,0,73,0,0,
2282 79,0,0,88,3,0,85,5,0,69,0,0,69,0,0,88,4,0,94,7,0,82,0,0,81,3,3,66,0,0,66,0,1,
2283 61,1,1,57,0,0,65,9,8,64,0,0,132,51,30,161,71,47,103,7,0,100,1,0,103,2,0,126,24,
2284 10,143,38,16,141,37,12,137,32,13,135,30,11,144,37,17,139,32,12,136,30,14,137,
2285 34,19,136,34,19,125,27,14,104,11,3,94,1,0,98,0,0,100,0,0,103,3,3,99,4,2,88,2,1,
2286 76,0,0,69,1,2,66,0,1,74,4,4,71,1,1,63,0,0,61,3,2,54,3,2,48,0,0,45,0,0,42,2,2,
2287 34,3,1,22,0,0,13,0,0,10,2,0,6,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2288 0,0,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,0,0,3,0,0,6,0,0,13,1,1,
2289 17,1,1,17,0,0,37,6,1,40,0,0,159,108,79,114,54,18,159,93,58,145,78,51,138,69,38,
2290 160,89,45,165,94,40,139,68,12,147,83,37,144,92,68,140,105,112,64,50,103,96,102,
2291 190,90,112,231,82,120,255,52,103,244,44,101,240,70,129,255,41,100,226,56,115,
2292 245,56,114,247,117,152,255,120,155,255,116,154,255,115,154,255,113,155,255,108,
2293 153,254,102,151,254,99,151,252,112,161,255,149,190,255,76,105,183,158,169,231,
2294 32,22,59,190,162,177,212,166,166,250,202,192,255,244,232,255,246,230,255,221,
2295 200,251,193,169,48,0,0,96,39,20,73,12,0,56,0,0,59,0,0,66,5,0,97,31,0,123,53,17,
2296 129,54,25,119,41,21,115,35,24,124,42,31,96,8,0,108,25,11,81,7,0,82,9,0,129,50,
2297 33,121,38,20,83,3,0,81,2,0,76,1,0,75,5,3,68,4,4,54,0,0,63,3,3,53,0,0,72,0,0,
2298 104,17,0,113,17,5,102,0,0,100,0,0,115,12,0,141,35,9,139,31,3,123,14,0,110,4,0,
2299 115,8,0,109,2,0,104,0,0,103,0,0,102,1,0,95,0,0,86,0,0,81,0,0,92,1,0,96,1,0,102,
2300 2,0,95,1,0,78,0,0,64,0,0,57,0,0,57,0,0,65,3,4,60,0,0,55,0,0,52,2,1,46,0,0,40,
2301 0,0,40,0,0,40,1,2,36,6,6,21,0,0,11,0,0,13,4,5,7,1,1,1,0,0,2,1,0,1,0,0,0,0,0,0,
2302 0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,
2303 0,0,6,0,0,13,3,2,11,0,0,17,0,0,26,2,0,25,0,0,145,104,84,91,34,5,148,83,51,184,
2304 117,91,182,115,86,170,103,60,164,98,46,161,100,46,101,46,5,157,112,93,101,73,85,
2305 175,168,222,94,108,196,59,91,204,95,139,255,72,123,255,43,99,238,81,135,255,76,
2306 129,255,52,106,238,50,107,238,117,150,255,118,151,255,116,151,253,116,154,255,
2307 112,154,255,110,155,255,111,156,255,113,159,255,102,145,237,160,196,255,146,172,
2308 247,113,128,187,122,121,161,7,0,16,149,119,129,143,105,104,156,114,100,172,122,
2309 99,188,122,98,186,110,86,181,101,78,200,120,97,243,165,142,255,196,168,255,218,
2310 183,216,159,116,255,212,165,255,225,179,169,99,63,85,8,0,81,3,0,83,2,0,107,26,0,
2311 129,53,27,69,2,0,70,9,0,67,2,0,74,8,0,79,8,0,80,4,0,77,0,0,76,1,0,72,2,0,77,13,
2312 13,53,0,0,70,7,2,63,0,0,112,31,14,99,3,0,107,4,0,106,1,0,149,42,24,136,25,6,
2313 120,9,0,150,40,15,106,0,0,110,3,0,136,29,11,151,43,17,134,26,0,114,9,0,106,8,0,
2314 91,2,0,82,0,0,108,20,16,92,3,0,109,16,11,88,0,0,72,0,0,61,0,0,46,0,0,52,6,8,45,
2315 0,1,52,6,6,47,1,1,48,6,7,42,4,3,32,0,0,37,0,0,28,0,0,26,2,2,12,0,0,6,0,0,4,0,
2316 1,3,0,0,1,0,0,1,0,0,0,0,0,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,
2317 1,0,0,0,1,0,0,2,0,1,0,0,0,0,0,0,3,0,0,4,0,1,4,0,0,6,0,0,13,1,1,13,0,0,23,4,0,
2318 33,3,0,134,82,61,171,107,80,158,93,65,144,81,48,106,47,5,179,127,80,94,49,8,
2319 122,85,58,78,49,41,85,73,93,120,131,187,102,134,221,85,131,242,73,128,254,68,
2320 122,255,68,117,254,74,118,253,71,113,247,65,114,245,64,114,245,118,149,255,119,
2321 151,254,119,152,255,116,154,255,112,154,254,112,156,255,111,157,255,114,158,253,
2322 120,161,249,115,150,232,125,151,226,150,166,228,159,166,212,183,178,210,33,16,
2323 35,66,39,44,37,0,0,55,4,0,80,13,0,93,14,0,99,12,0,114,25,7,139,54,34,159,82,56,
2324 223,157,123,140,82,42,172,121,76,213,160,116,187,122,84,200,127,95,219,139,116,
2325 175,95,70,180,104,72,255,187,153,236,175,146,255,238,209,233,172,144,255,235,
2326 207,255,222,191,179,108,78,103,27,3,90,17,0,64,0,0,58,0,0,63,6,0,55,2,0,64,5,0,
2327 98,30,11,143,57,34,113,15,0,125,21,0,130,22,0,113,3,0,131,19,0,149,39,16,147,
2328 36,16,109,0,0,126,16,0,144,35,6,137,29,0,129,27,5,124,28,14,104,15,9,84,1,0,85,
2329 0,0,82,0,0,98,9,3,87,2,0,76,1,0,64,0,0,45,0,0,43,0,0,35,0,0,40,0,0,32,0,0,34,
2330 0,0,31,0,0,29,0,0,40,6,7,36,6,6,20,0,1,8,0,0,4,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,
2331 0,0,0,0,0,0,0,0,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,0,0,1,0,0,1,
2332 1,1,1,0,0,3,0,0,8,2,2,6,0,0,8,0,0,19,3,3,13,0,0,13,0,0,20,0,0,144,98,82,123,
2333 69,45,213,157,130,222,168,134,255,228,188,255,213,172,255,244,212,255,248,231,
2334 255,249,251,186,183,212,109,130,193,91,132,222,75,131,244,68,127,253,69,123,255,
2335 71,119,253,76,114,251,77,115,250,73,117,250,69,118,249,122,151,255,121,153,254,
2336 121,155,255,118,156,255,115,157,255,112,156,253,114,160,255,116,161,254,133,177,
2337 255,121,159,244,133,162,240,142,161,229,114,123,178,176,178,219,1,0,19,10,0,4,
2338 20,0,0,35,0,0,53,0,0,65,0,0,72,0,0,76,0,0,79,0,0,80,2,0,109,41,22,87,25,0,133,
2339 80,48,196,143,109,210,149,120,246,176,150,233,153,126,129,48,19,94,19,0,70,1,0,
2340 133,71,32,131,69,28,89,17,0,148,73,34,175,101,62,221,150,108,215,144,98,255,211,
2341 167,255,239,201,255,243,208,255,227,193,255,233,202,35,0,0,39,0,0,255,234,200,
2342 206,121,82,157,59,22,118,11,0,134,26,0,178,68,35,128,17,0,118,6,0,121,9,0,141,
2343 32,11,153,45,16,145,42,11,134,35,12,122,30,15,97,12,7,79,0,0,127,41,28,95,7,0,
2344 95,8,1,85,0,0,84,1,0,80,2,0,64,0,0,61,0,0,62,3,0,58,7,6,43,0,0,34,0,0,25,0,0,
2345 17,0,0,27,0,0,23,0,0,19,0,0,12,0,0,9,0,1,5,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2346 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,6,
2347 0,0,11,1,0,10,0,0,13,0,0,27,0,0,27,0,0,25,0,0,20,0,0,255,245,229,255,226,203,
2348 255,221,195,255,226,194,246,198,162,201,155,121,212,176,152,255,247,238,163,147,
2349 158,53,55,93,100,124,198,84,126,226,72,128,247,65,126,253,67,124,255,71,119,253,
2350 79,117,252,79,117,252,72,119,251,71,121,252,124,153,255,122,154,253,122,156,
2351 255,117,155,252,117,160,255,115,159,254,114,160,254,116,163,255,103,148,239,131,
2352 171,255,141,174,255,133,157,231,141,156,221,127,135,184,106,110,139,14,8,22,38,
2353 16,18,51,13,10,55,4,1,66,2,2,72,0,1,80,2,2,83,2,1,82,3,0,72,0,0,62,0,0,55,0,0,
2354 56,0,0,55,0,0,72,5,0,132,52,25,97,16,0,226,151,128,149,84,56,255,230,194,255,
2355 193,152,238,163,123,199,120,81,67,0,0,208,137,91,219,148,94,250,185,129,212,159,
2356 109,184,140,93,255,230,185,178,145,104,219,186,153,248,208,173,120,63,20,102,30,
2357 0,141,50,5,153,52,6,156,51,4,155,49,9,119,11,0,126,16,0,113,3,0,131,22,0,138,
2358 33,1,125,25,0,106,11,0,94,3,0,83,0,0,78,0,0,116,29,9,88,0,0,88,0,0,88,0,0,104,
2359 15,1,130,44,29,112,35,19,120,51,36,66,0,0,60,1,0,42,0,0,37,3,2,28,4,4,19,0,0,
2360 29,3,4,27,1,2,21,1,2,16,2,1,11,1,0,4,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2361 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,0,2,1,0,4,0,1,3,0,0,3,0,0,5,0,0,13,1,1,
2362 17,1,1,25,7,7,27,3,3,39,9,9,35,5,5,35,7,4,32,5,0,239,211,199,239,210,192,29,0,
2363 0,138,102,80,148,106,81,255,236,214,255,237,221,82,62,63,6,0,19,158,161,216,
2364 92,118,205,78,120,232,69,125,248,65,125,255,67,124,255,73,123,254,81,121,253,
2365 81,120,251,68,115,245,66,116,247,125,154,254,127,160,255,124,158,255,119,158,
2366 253,121,161,255,117,162,255,116,163,255,116,163,255,111,158,248,109,153,240,126,
2367 164,247,135,166,246,165,189,255,142,159,215,200,210,246,0,0,14,37,15,17,54,13,9,
2368 57,1,0,70,2,1,81,3,3,87,3,1,91,7,5,90,9,5,94,22,10,98,31,14,101,37,9,126,65,34,
2369 78,14,0,63,0,0,87,9,0,81,0,0,71,0,0,83,18,0,56,0,0,75,11,0,99,25,0,238,162,130,
2370 64,0,0,255,188,146,182,111,59,255,201,145,255,217,163,190,137,85,162,122,73,
2371 255,245,198,193,158,116,255,238,195,255,244,195,255,199,146,146,66,15,135,41,0,
2372 164,66,17,170,69,23,172,70,30,136,31,0,111,7,0,130,26,0,141,41,5,135,37,0,122,
2373 30,0,117,29,0,122,38,1,130,46,10,182,93,61,142,51,24,138,46,25,121,28,11,117,
2374 22,4,98,11,0,68,0,0,61,0,0,72,0,0,66,0,0,42,0,0,36,0,0,29,3,2,21,0,0,32,3,5,31,
2375 3,2,22,1,0,17,1,1,8,0,0,3,0,0,1,0,0,0,0,0,0,0,2,0,0,2,1,0,0,1,0,0,0,0,0,0,0,0,
2376 1,0,2,1,0,2,0,0,0,0,0,0,0,0,0,1,0,0,5,0,0,8,0,0,9,0,0,9,0,0,15,0,0,18,0,0,18,
2377 0,0,22,0,0,21,0,0,15,0,0,17,0,0,19,0,0,18,0,0,25,0,0,35,2,0,25,0,0,35,5,0,31,
2378 6,0,10,0,0,4,0,11,205,197,246,77,80,159,91,115,221,77,119,240,70,123,251,65,
2379 124,254,67,124,253,75,126,254,80,123,251,82,123,249,70,118,246,68,119,247,127,
2380 157,255,126,159,255,126,160,255,123,162,255,121,162,254,119,164,255,119,166,255,
2381 117,167,255,145,195,255,99,145,231,135,177,255,133,171,252,89,123,197,149,177,
2382 242,139,157,205,0,0,27,19,0,6,42,2,0,57,3,1,67,1,2,79,3,3,82,1,0,83,0,0,79,0,0,
2383 74,0,0,72,2,0,69,4,0,149,85,50,157,92,62,133,64,35,210,133,103,222,145,117,90,
2384 22,0,71,9,0,55,0,0,137,75,52,72,3,0,99,28,0,94,30,0,133,72,28,111,45,0,211,146,
2385 90,211,150,95,115,64,11,252,220,173,255,237,193,255,246,206,173,144,102,221,
2386 190,144,255,221,171,222,155,103,201,118,66,175,85,33,132,37,0,164,67,22,146,47,
2387 8,125,26,0,135,36,5,145,48,13,141,47,9,131,42,2,135,47,7,146,61,20,160,75,36,
2388 118,28,0,96,2,0,104,7,0,102,5,0,113,17,3,122,33,19,97,19,6,109,35,24,120,42,32,
2389 93,23,15,57,0,0,47,1,1,37,0,0,25,0,0,32,0,0,29,0,0,25,1,1,18,2,2,9,1,0,3,0,0,0,
2390 0,0,0,0,0,0,0,2,0,0,2,1,0,0,1,0,0,0,0,0,0,0,0,1,0,2,1,0,2,0,0,0,0,0,0,1,0,0,4,
2391 0,0,10,0,1,13,0,0,18,0,1,22,0,2,27,1,2,30,0,0,34,3,1,36,6,4,27,3,3,21,0,0,32,
2392 4,0,57,29,25,20,0,0,44,14,14,52,14,11,41,6,2,18,0,0,11,0,0,6,0,7,0,0,28,89,86,
2393 157,143,148,248,94,121,238,81,122,250,69,122,250,68,125,254,71,126,255,75,126,
2394 253,79,125,247,82,126,247,75,125,250,75,126,254,129,159,255,128,161,255,126,161,
2395 255,128,165,255,121,165,254,120,166,254,122,169,255,119,169,255,130,180,255,103,
2396 153,238,141,188,255,141,184,255,83,124,203,156,193,255,144,172,237,143,156,201,
2397 13,0,17,36,6,6,50,6,5,57,1,0,68,3,1,75,0,0,80,0,0,83,2,0,168,93,64,199,129,93,
2398 194,129,89,255,205,164,255,194,154,173,101,61,179,102,60,135,60,18,185,123,82,
2399 255,236,197,242,186,149,100,40,4,255,192,156,119,57,18,90,37,0,255,227,178,234,
2400 184,131,104,55,0,121,74,20,210,174,126,255,250,212,255,254,224,227,211,185,255,
2401 251,222,255,249,214,255,246,204,210,157,107,137,64,11,150,69,16,166,78,30,154,
2402 61,18,131,37,0,125,28,0,119,24,0,115,22,0,111,21,0,110,21,0,106,20,0,102,19,0,
2403 103,17,0,125,33,12,100,4,0,103,5,0,95,0,0,89,0,0,96,9,2,100,13,3,133,49,38,95,
2404 15,8,83,5,1,67,0,0,69,5,5,63,5,3,51,0,0,54,3,2,47,5,6,23,0,0,17,3,3,14,4,5,3,0,
2405 0,0,0,0,0,1,0,0,0,0,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,0,0,11,
2406 3,1,18,7,5,26,8,8,26,5,4,33,7,8,40,8,9,50,10,10,53,9,8,50,4,4,45,1,0,36,0,0,
2407 27,0,0,34,0,0,41,6,4,36,0,0,47,9,6,37,0,0,45,6,0,28,0,0,18,0,10,29,13,49,124,
2408 116,176,108,108,204,96,109,224,92,124,247,82,125,253,77,128,255,72,127,253,73,
2409 128,254,76,130,252,79,128,246,81,128,246,79,129,252,77,128,255,130,160,255,128,
2410 161,255,129,162,255,127,164,255,122,166,255,122,168,255,120,167,255,121,168,255,
2411 111,161,250,121,171,255,116,164,246,126,173,253,136,183,255,102,145,224,117,153,
2412 229,187,206,255,2,0,25,21,0,8,32,0,0,45,0,0,61,0,0,75,3,0,101,23,3,120,41,11,
2413 208,130,92,224,153,109,151,88,45,170,108,67,154,87,45,110,39,0,187,111,62,180,
2414 110,59,212,158,112,128,79,36,255,229,189,97,42,3,61,0,0,222,160,121,255,215,173,
2415 255,212,169,255,239,193,255,232,184,255,244,196,255,240,198,255,253,221,251,249,
2416 226,255,255,237,255,255,237,255,255,231,255,253,219,255,230,189,141,83,37,127,
2417 53,4,166,84,37,116,28,0,129,39,2,155,63,26,137,45,8,123,32,1,128,39,7,139,53,
2418 18,136,51,20,118,34,10,104,19,0,100,8,0,97,0,0,109,11,8,96,2,0,88,0,0,87,0,0,
2419 84,0,0,94,10,0,76,0,0,73,0,0,68,0,0,85,17,16,86,22,20,62,1,0,59,1,0,47,0,0,21,
2420 0,0,18,0,0,17,0,0,13,0,0,7,0,0,5,0,0,3,0,0,1,0,0,1,0,0,1,0,0,3,0,0,3,0,0,1,0,
2421 0,0,0,0,0,0,0,1,0,0,6,0,0,12,0,0,15,0,0,15,0,0,18,0,0,29,0,0,40,0,0,42,0,0,47,
2422 1,1,45,1,0,48,6,7,48,8,8,45,7,6,31,0,0,46,6,6,31,0,0,77,31,18,132,92,82,255,
2423 242,243,110,92,114,136,122,175,135,130,212,93,101,210,94,115,240,91,126,254,83,
2424 128,255,78,129,255,76,130,255,77,131,255,79,134,253,78,129,244,80,130,245,73,
2425 125,247,73,124,251,131,162,255,130,163,255,129,162,255,127,164,255,124,165,255,
2426 120,166,254,119,166,255,119,166,255,119,169,255,119,169,255,119,169,254,120,170,
2427 255,120,171,254,122,169,251,126,167,249,142,167,234,149,151,192,96,78,100,23,0,
2428 1,40,0,0,116,54,33,107,32,1,193,114,75,222,141,98,141,64,20,252,184,139,185,
2429 123,82,198,139,99,70,5,0,210,138,98,136,64,14,167,104,53,159,114,75,241,202,169,
2430 255,246,214,56,5,0,81,20,0,65,0,0,116,49,23,70,4,0,255,194,166,82,21,0,164,100,
2431 62,220,172,134,255,249,223,253,254,236,255,255,246,255,255,246,253,254,236,255,
2432 255,232,255,252,223,162,122,87,101,36,0,120,41,0,149,67,29,125,41,4,128,40,0,
2433 153,64,24,118,30,0,122,37,0,109,25,0,129,46,12,99,17,0,114,28,13,99,9,0,111,18,
2434 10,100,6,4,92,1,0,102,11,10,92,4,2,84,1,0,82,4,0,69,0,0,66,1,0,61,0,0,57,0,0,
2435 52,0,0,52,0,0,56,0,1,54,2,4,46,4,5,44,4,5,48,4,3,45,4,2,30,0,0,15,0,0,10,0,0,6,
2436 0,0,4,0,0,6,0,0,8,0,0,8,0,0,3,0,0,1,0,0,0,0,0,1,0,0,3,0,0,6,0,0,5,0,0,6,0,0,8,
2437 0,0,15,0,0,24,0,0,28,0,0,31,0,0,31,0,0,33,0,0,33,0,0,33,0,0,34,0,0,38,0,0,39,
2438 0,0,142,93,79,183,141,129,26,1,4,4,0,21,92,90,155,50,57,148,141,161,255,77,
2439 107,231,84,125,253,76,123,253,76,125,254,74,125,252,75,126,251,77,129,247,78,
2440 131,243,80,133,247,78,130,250,75,129,253,132,163,255,130,163,255,128,163,255,
2441 127,164,255,124,165,255,121,165,254,120,166,254,119,166,254,121,168,255,121,169,
2442 254,121,168,255,119,169,254,120,170,255,122,170,254,125,167,253,138,168,241,166,
2443 172,224,123,112,144,22,0,9,110,70,62,202,142,114,230,157,116,188,108,59,136,54,
2444 4,255,178,132,157,86,44,255,230,191,196,136,100,238,172,137,155,87,48,150,88,
2445 39,255,208,160,255,248,209,255,246,212,255,211,178,160,107,73,163,99,64,117,46,
2446 14,85,9,0,73,0,0,69,0,0,82,11,0,80,11,0,100,46,10,255,251,224,255,255,237,255,
2447 255,243,255,255,243,255,255,237,255,253,226,255,254,225,255,245,210,238,179,135,
2448 157,83,38,81,2,0,134,51,11,128,44,0,157,70,25,130,42,2,134,49,12,119,35,0,128,
2449 45,15,92,9,0,98,11,1,89,1,0,95,6,0,90,2,0,84,0,0,87,1,0,82,0,0,75,0,0,72,0,1,
2450 66,1,0,61,0,0,57,1,2,52,1,0,50,0,1,50,0,1,52,1,0,54,2,4,41,0,0,45,0,0,57,1,0,
2451 66,12,10,50,6,5,35,1,0,25,0,0,22,2,3,13,0,0,22,2,3,31,5,6,28,4,4,14,0,0,6,0,0,
2452 1,0,0,0,0,0,1,0,0,1,0,0,5,1,2,3,0,0,7,0,0,12,0,0,18,2,3,17,0,0,25,1,1,27,0,0,
2453 29,1,0,30,0,0,36,2,1,38,2,2,44,4,4,47,3,0,90,40,31,194,151,145,17,0,7,154,150,
2454 187,172,180,255,104,123,225,109,141,254,84,124,246,80,125,252,79,128,255,76,125,
2455 254,76,125,253,76,128,250,77,130,246,78,134,247,78,134,247,76,131,250,75,129,
2456 253,130,164,254,129,164,254,129,164,254,127,164,253,125,164,255,125,166,255,123,
2457 167,255,121,165,252,123,167,254,123,168,253,121,167,253,122,168,253,122,168,253,
2458 122,168,253,124,166,252,136,168,245,134,144,205,158,151,192,48,25,43,103,64,57,
2459 84,29,0,172,104,57,171,94,40,210,131,75,157,79,33,95,21,0,182,113,80,90,24,0,
2460 174,108,74,114,54,17,136,91,49,255,249,204,255,229,183,255,243,199,210,158,111,
2461 197,135,88,146,78,29,162,90,40,164,88,39,173,97,47,154,78,28,149,77,29,123,54,
2462 12,59,6,0,255,250,216,211,197,168,255,254,227,255,255,227,255,255,225,247,242,
2463 204,255,249,205,255,247,200,255,205,154,250,179,127,128,47,0,181,97,50,141,55,6,
2464 166,80,33,132,44,4,130,44,9,109,23,0,118,33,13,84,0,0,90,5,0,89,2,0,92,7,4,81,1,
2465 0,74,0,0,79,3,3,73,0,0,68,0,0,67,1,2,65,1,1,60,0,0,54,0,0,50,0,1,51,1,0,51,1,
2466 0,51,1,2,48,0,0,37,0,0,42,0,0,56,2,0,67,9,8,57,6,5,44,0,0,37,0,0,34,0,0,35,0,
2467 0,40,2,1,49,5,4,53,12,10,38,4,3,20,0,0,6,0,0,1,1,1,0,0,0,1,0,0,6,0,0,8,0,0,12,
2468 0,0,15,1,1,15,1,1,15,0,0,25,1,1,27,0,0,30,2,1,30,0,0,36,2,1,38,2,2,44,4,4,45,
2469 3,4,46,0,0,166,126,134,10,0,16,207,207,255,140,158,244,76,109,216,75,118,233,
2470 79,129,250,78,129,254,78,129,255,79,128,255,79,129,254,78,130,248,74,129,245,
2471 76,133,246,77,137,251,76,130,252,75,129,253,131,168,255,129,166,255,129,166,
2472 255,129,166,255,127,167,255,127,167,255,126,167,255,127,169,255,129,169,255,130,
2473 170,255,128,170,255,129,171,255,127,172,255,127,169,255,129,169,255,137,168,248,
2474 169,184,251,209,207,255,138,119,141,171,136,132,155,102,70,237,174,123,214,139,
2475 81,231,152,95,194,116,70,198,123,84,173,100,68,178,107,77,68,0,0,155,96,54,255,
2476 222,176,255,246,197,192,160,111,241,205,155,230,182,134,151,95,44,159,96,42,174,
2477 103,47,180,105,48,144,68,10,128,51,0,136,63,10,131,67,19,255,205,160,255,229,
2478 188,255,249,209,255,251,213,255,251,211,255,253,207,255,252,201,252,235,181,243,
2479 212,157,219,164,108,234,165,108,176,96,43,148,62,11,155,69,18,174,86,38,127,38,
2480 0,113,24,0,88,2,0,103,17,2,85,1,0,98,13,8,86,1,0,88,7,4,74,0,1,68,0,0,70,2,3,
2481 65,0,0,60,0,0,62,2,2,62,2,2,56,0,1,49,0,0,47,0,0,50,2,2,50,2,2,48,2,2,42,0,1,
2482 37,1,1,40,0,0,52,1,0,59,1,0,59,1,0,53,0,0,50,0,0,52,2,1,55,5,4,50,0,0,52,0,0,
2483 53,3,2,45,7,6,24,0,0,6,0,0,0,0,0,0,0,0,1,0,0,6,0,0,11,1,0,16,2,2,18,2,2,15,1,1,
2484 17,0,0,26,2,2,29,1,0,29,1,0,29,1,0,31,0,0,33,0,0,35,0,0,35,0,0,43,4,9,143,112,
2485 128,87,73,109,141,147,209,101,128,219,61,105,214,101,156,255,84,145,255,75,134,
2486 254,78,132,254,79,131,253,80,130,251,80,131,248,77,133,246,78,138,252,78,137,
2487 253,76,132,253,77,131,255,127,167,254,127,167,254,128,165,254,129,166,255,127,
2488 167,255,126,166,253,129,166,254,129,166,254,132,170,255,131,169,254,132,168,254,
2489 131,169,254,129,169,254,132,170,255,132,168,254,139,167,250,124,140,217,168,169,
2490 226,167,152,181,136,105,103,153,104,72,181,120,66,166,95,33,163,84,25,135,57,8,
2491 239,161,122,191,116,85,151,78,46,153,81,41,175,111,63,217,165,107,239,197,139,
2492 255,247,195,246,222,174,255,250,206,247,215,168,255,212,159,184,121,67,119,47,0,
2493 145,69,20,136,59,13,155,85,36,193,133,81,246,199,147,98,64,16,255,233,185,254,
2494 233,188,237,219,171,255,249,196,255,249,190,255,244,184,255,246,185,255,227,167,
2495 194,128,68,220,141,84,195,110,55,152,62,9,174,84,34,132,39,0,122,29,0,91,4,0,
2496 108,21,4,89,1,0,108,20,16,84,1,0,80,2,0,69,1,2,61,0,0,61,0,0,58,0,0,53,0,0,54,0,
2497 0,57,3,3,51,0,0,45,0,0,43,0,0,45,1,2,45,1,2,41,1,1,36,0,0,30,0,0,33,0,0,47,0,
2498 0,58,2,1,70,6,6,70,6,4,72,11,8,80,19,16,74,13,10,62,1,0,59,0,0,52,4,2,32,4,3,
2499 8,0,0,3,0,0,0,0,0,0,0,0,1,0,0,4,0,0,10,2,0,13,1,1,16,0,0,19,1,1,21,1,2,25,1,1,
2500 28,2,1,25,0,0,24,0,0,25,0,0,27,0,0,27,0,0,27,0,0,25,0,3,56,37,57,173,165,214,
2501 120,130,202,98,134,228,86,140,248,84,150,255,65,135,249,73,138,254,78,137,253,
2502 82,135,251,83,134,249,83,134,251,82,135,251,79,138,254,79,138,254,76,132,253,
2503 77,131,253,127,172,255,129,171,255,129,169,255,129,169,255,130,170,255,129,169,
2504 255,133,169,255,134,168,255,136,171,255,136,171,255,138,170,255,137,171,255,135,
2505 171,255,134,170,255,136,170,255,141,169,253,154,173,252,169,174,238,196,185,219,
2506 94,65,67,140,95,64,159,99,45,215,144,82,248,170,108,141,64,12,175,98,56,168,93,
2507 62,185,112,80,253,182,140,250,183,130,160,99,36,255,240,175,255,244,189,242,
2508 216,167,255,250,205,255,245,198,255,219,167,217,160,105,85,19,0,126,58,13,75,8,
2509 0,105,45,0,255,222,166,250,209,153,255,232,180,255,235,187,255,242,196,255,
2510 236,187,232,210,153,241,217,155,239,214,150,242,207,143,245,191,129,138,70,9,
2511 196,117,58,192,107,50,134,44,0,168,76,27,145,50,4,145,51,13,117,27,0,121,32,14,
2512 90,2,0,101,13,9,82,1,0,81,7,6,67,1,2,61,0,0,61,1,1,55,0,0,48,0,0,51,3,3,50,2,2,
2513 45,0,0,42,0,1,40,0,0,39,0,1,37,1,1,35,1,0,29,0,0,22,0,0,27,0,0,39,1,0,52,4,2,
2514 66,8,7,63,2,0,61,0,0,62,1,0,63,2,0,70,9,6,73,15,13,47,3,2,15,0,0,7,0,0,3,0,0,1,
2515 0,0,0,0,0,1,0,0,3,0,0,7,1,1,11,1,0,13,1,1,14,0,0,18,2,2,21,1,0,22,1,0,22,1,0,
2516 22,1,0,22,1,0,26,2,0,27,1,2,26,1,4,13,0,0,6,0,16,153,148,204,131,147,225,77,
2517 120,215,92,155,255,37,109,219,64,137,248,74,144,255,81,143,254,84,138,247,84,
2518 134,245,83,134,249,85,138,254,80,139,255,79,138,254,78,134,253,79,133,255,124,
2519 170,255,125,170,255,129,171,255,129,169,255,130,170,255,132,170,255,134,168,255,
2520 137,169,255,138,170,255,139,171,255,139,169,255,139,169,255,138,170,255,139,171,
2521 255,139,171,255,141,169,253,168,189,255,137,146,211,159,153,189,90,67,73,195,
2522 151,122,219,162,109,224,154,92,206,130,68,239,163,111,102,29,0,126,53,21,255,
2523 196,164,108,37,0,210,141,86,200,131,64,242,179,112,254,202,145,232,189,138,214,
2524 176,127,200,163,111,233,184,128,251,199,142,118,62,13,61,9,0,255,217,162,255,
2525 217,160,255,224,166,255,245,189,255,229,176,251,220,173,238,219,179,255,251,211,
2526 255,252,200,255,249,190,255,250,189,245,207,144,217,159,96,214,143,79,200,122,
2527 60,221,136,79,122,32,0,160,68,21,147,52,6,150,57,16,120,29,0,121,32,14,88,1,0,
2528 91,8,4,81,2,0,86,12,9,68,3,1,62,1,0,63,3,3,57,1,2,49,0,0,47,3,4,42,0,1,39,0,0,
2529 40,0,1,36,0,0,29,0,0,26,0,0,26,0,0,24,0,0,20,0,0,19,0,0,26,0,0,36,2,1,42,2,2,
2530 43,0,0,42,0,0,44,0,0,49,0,0,54,3,0,54,6,4,38,0,0,17,0,0,10,0,0,6,0,0,3,0,0,1,0,
2531 0,1,0,0,3,0,0,5,1,0,5,1,0,4,0,0,4,0,0,8,0,0,11,0,0,13,0,0,14,0,0,16,0,0,21,1,
2532 0,25,1,1,29,1,0,29,3,4,26,6,8,6,0,14,137,136,193,135,153,235,84,130,228,91,
2533 158,255,63,140,244,86,165,255,76,147,253,81,144,250,85,139,245,86,137,244,85,
2534 137,249,85,138,252,80,140,254,81,142,255,77,133,252,79,133,255,124,170,255,125,
2535 170,255,129,171,255,129,169,255,132,170,255,133,169,255,137,169,255,138,168,255,
2536 138,168,254,140,170,255,139,169,255,139,170,253,140,171,254,139,171,254,139,170,
2537 253,141,169,252,144,169,251,159,174,241,212,211,251,123,106,116,140,102,81,144,
2538 90,44,171,102,43,224,150,87,162,90,32,255,188,138,106,35,0,166,97,56,180,109,
2539 65,189,120,65,175,106,41,227,164,97,195,140,84,255,213,161,255,240,189,255,217,
2540 165,255,225,172,243,197,145,255,220,172,255,212,163,255,232,176,255,227,170,255,
2541 227,173,236,206,154,252,220,169,238,210,162,255,253,214,255,241,199,255,247,198,
2542 221,194,139,255,236,178,243,203,142,208,150,87,255,192,130,155,79,17,253,173,
2543 114,121,35,0,156,68,20,134,43,0,134,42,1,102,13,0,107,19,0,82,0,0,89,8,4,75,0,0,
2544 76,5,3,66,0,1,60,0,0,60,2,1,53,0,0,43,0,0,38,0,0,34,0,0,35,1,0,36,2,1,33,1,2,
2545 24,0,0,18,0,0,19,0,0,20,2,2,16,2,1,12,0,0,13,0,0,18,0,0,25,0,0,30,0,0,34,3,1,
2546 40,6,5,40,2,1,40,2,1,38,0,0,31,0,0,27,1,2,27,7,8,18,2,2,7,0,0,3,0,0,1,0,0,3,0,
2547 0,5,1,2,2,1,0,1,0,0,3,0,0,3,0,0,6,0,0,9,0,0,11,0,0,15,0,0,18,0,0,22,1,0,28,2,
2548 3,25,1,1,20,4,5,4,0,16,142,143,200,102,123,206,98,144,242,66,130,236,94,167,
2549 255,52,127,229,77,146,250,83,144,251,88,141,247,88,136,244,87,137,250,86,139,
2550 253,82,139,254,81,140,255,79,134,253,80,135,254,127,172,255,129,171,255,128,168,
2551 253,131,169,254,131,168,255,133,169,255,134,168,255,136,168,255,137,169,254,137,
2552 169,252,139,171,254,142,173,255,142,173,255,143,174,255,148,176,255,148,176,255,
2553 132,163,245,146,169,239,147,151,199,51,38,58,210,176,166,207,159,123,215,154,
2554 100,224,156,93,177,108,43,204,134,72,176,107,50,180,110,58,194,122,74,215,145,
2555 94,255,204,145,255,210,150,255,211,159,248,210,161,255,240,188,243,210,159,243,
2556 214,170,255,246,202,255,214,166,255,234,182,255,233,180,212,182,130,255,249,202,
2557 239,208,162,255,243,193,255,232,182,246,222,176,255,229,181,253,217,167,244,207,
2558 154,255,236,179,255,218,159,207,153,93,217,153,92,243,173,113,255,184,126,236,
2559 157,101,152,70,20,115,32,0,123,39,2,149,64,35,86,1,0,97,14,0,78,0,0,75,1,0,70,2,
2560 1,62,0,1,59,1,0,56,2,0,51,1,0,43,1,2,38,0,0,31,0,0,30,0,0,32,2,2,27,1,2,21,1,
2561 0,15,0,0,13,0,0,10,0,0,8,0,0,6,0,0,9,0,0,11,0,0,13,0,0,13,0,0,16,0,0,19,0,0,
2562 14,0,0,15,0,0,24,0,0,31,3,2,30,2,1,27,0,0,28,0,0,26,5,4,10,0,0,4,0,0,5,1,2,5,1,
2563 2,5,4,2,3,0,0,9,3,3,4,0,0,4,0,0,9,0,0,16,0,1,19,1,1,18,0,0,20,0,0,26,2,2,21,1,
2564 2,12,0,2,0,0,16,111,113,170,111,129,211,100,140,238,84,141,248,79,144,248,86,
2565 153,255,84,144,254,89,145,255,93,143,254,92,140,251,93,140,254,89,139,254,86,
2566 139,255,83,138,254,80,132,250,80,132,250,129,171,255,131,171,255,129,169,255,
2567 131,168,255,131,168,255,131,168,255,133,169,255,133,169,253,141,176,255,139,174,
2568 255,139,174,255,141,174,255,141,174,255,141,174,255,141,172,254,142,173,255,127,
2569 160,241,168,192,255,200,207,255,124,114,139,159,128,125,107,60,30,137,76,29,194,
2570 128,67,143,76,8,255,189,121,165,97,32,153,84,25,218,147,95,77,7,0,161,96,40,255,
2571 207,150,248,212,164,255,249,202,227,199,151,255,232,185,255,253,212,255,232,192,
2572 198,160,113,141,99,49,253,220,169,255,247,200,251,218,175,250,218,177,253,226,
2573 179,255,239,192,208,180,133,255,246,199,255,221,172,210,173,121,255,228,174,244,
2574 208,150,209,159,100,255,222,162,180,118,59,233,167,107,205,136,79,232,159,108,
2575 117,40,0,133,53,16,112,31,1,127,47,24,85,3,0,102,23,16,70,0,0,64,0,0,59,0,0,53,
2576 0,0,50,0,0,44,0,0,38,0,0,31,0,0,29,0,0,26,0,1,23,0,0,19,0,0,14,0,0,10,0,0,9,0,
2577 0,9,0,1,5,1,0,3,0,0,3,0,0,5,1,0,7,1,1,8,0,0,10,0,1,13,3,2,15,5,4,15,3,3,19,1,
2578 1,21,1,0,25,4,3,28,4,4,32,3,5,29,5,5,16,4,4,4,0,0,3,0,0,3,0,0,3,0,0,3,0,0,6,0,
2579 0,6,0,0,5,0,0,9,0,1,16,2,2,21,3,3,17,1,1,19,1,1,21,1,2,18,2,3,8,0,2,0,0,19,
2580 115,120,176,116,134,216,106,144,243,93,145,254,88,146,254,93,153,255,85,143,253,
2581 89,142,255,92,142,255,92,139,253,93,140,255,91,141,255,87,138,255,86,139,255,
2582 89,140,255,89,140,255,127,167,255,127,167,254,127,167,255,127,167,255,127,167,
2583 255,127,167,255,131,168,255,131,169,252,144,181,255,142,179,255,142,179,255,141,
2584 176,255,138,173,254,136,171,253,136,171,253,136,168,251,154,185,255,146,168,241,
2585 150,157,211,176,165,195,204,173,171,196,149,121,200,139,94,212,146,86,255,209,
2586 145,215,150,84,188,120,57,134,66,5,208,137,81,125,52,0,170,95,38,243,183,129,
2587 255,251,207,255,242,201,237,222,179,255,250,204,242,215,172,231,198,155,242,200,
2588 158,255,246,203,255,229,181,255,228,181,193,162,118,255,248,207,188,151,107,223,
2589 186,142,255,245,206,239,211,171,255,235,191,244,217,170,255,233,182,246,209,154,
2590 193,144,85,255,224,164,182,130,72,255,218,161,171,115,58,255,206,152,143,70,25,
2591 113,35,0,82,3,0,119,38,17,76,0,0,87,10,2,69,0,0,64,0,0,57,0,0,50,0,0,48,0,0,44,
2592 0,0,36,0,0,29,0,0,28,0,1,21,0,0,14,0,0,9,0,0,9,0,0,8,0,0,8,0,0,7,1,1,1,0,0,1,
2593 0,0,1,0,0,1,0,0,1,0,0,1,0,0,3,0,0,5,0,0,4,0,0,11,3,1,17,5,5,10,0,0,7,0,0,7,0,
2594 0,13,0,0,12,0,0,4,0,0,1,0,0,1,0,0,1,0,0,6,0,0,7,1,1,4,0,0,4,0,0,6,0,0,8,2,2,
2595 11,1,0,11,0,0,12,0,0,14,0,0,17,1,2,12,0,2,5,0,6,0,0,22,119,125,183,116,134,218,
2596 101,139,240,90,140,251,81,138,251,84,144,255,86,143,255,90,143,255,92,142,255,
2597 95,140,255,92,139,253,91,141,254,90,141,255,87,138,253,84,137,251,84,137,251,
2598 127,167,254,127,167,254,127,167,254,127,167,254,127,167,255,127,167,255,129,169,
2599 255,129,170,252,138,179,255,138,180,255,139,178,255,139,178,255,137,176,255,136,
2600 174,255,135,173,254,138,173,254,141,170,250,155,174,243,159,162,215,206,191,222,
2601 151,117,116,165,115,92,194,133,89,196,131,75,164,100,39,171,105,44,189,123,62,
2602 190,121,62,199,128,72,156,83,30,224,151,98,220,162,112,255,228,188,255,250,211,
2603 255,251,208,255,249,204,255,225,181,255,246,202,226,187,146,243,201,159,255,228,
2604 181,206,170,122,255,245,202,237,204,163,250,213,169,255,245,205,234,205,171,255,
2605 252,220,255,238,201,255,251,210,253,227,178,252,221,167,234,195,140,234,192,134,
2606 240,194,135,255,228,170,221,172,114,255,230,176,236,172,126,147,75,35,113,36,6,
2607 103,25,3,100,22,9,83,9,0,73,2,0,66,1,0,59,0,0,56,0,1,53,2,1,46,0,0,41,1,2,35,1,
2608 0,28,0,0,24,0,0,17,0,0,13,0,0,10,0,0,10,0,0,8,0,0,4,0,0,1,0,0,0,0,0,0,0,0,0,0,
2609 0,0,0,0,0,0,0,1,0,0,1,0,0,3,0,0,4,0,0,8,0,0,4,0,0,3,0,0,1,0,0,5,0,0,4,0,0,3,0,
2610 0,3,1,2,1,0,0,1,0,0,3,0,0,8,2,2,3,0,0,10,6,5,3,0,0,3,0,0,5,0,0,8,0,0,8,0,0,8,
2611 0,0,10,0,1,8,0,2,2,0,6,0,1,26,126,135,194,120,140,226,100,139,240,87,139,249,
2612 75,135,247,76,138,249,85,145,255,89,145,255,92,142,255,95,140,255,94,141,255,
2613 91,141,254,91,141,254,89,140,255,79,132,246,79,132,246,130,170,255,130,170,255,
2614 130,170,255,130,170,255,132,170,255,132,170,255,130,170,255,130,171,253,133,176,
2615 255,133,176,254,135,178,255,135,178,255,135,178,255,137,181,255,139,181,255,140,
2616 178,253,139,167,241,179,194,255,166,164,214,203,183,211,121,82,83,166,115,94,
2617 212,152,115,189,126,75,187,122,68,204,137,82,227,160,105,154,84,32,149,78,26,
2618 208,141,89,126,66,16,255,232,186,255,245,208,255,226,188,246,213,172,255,247,
2619 202,255,246,199,233,200,155,255,250,209,255,223,181,238,191,145,251,204,158,244,
2620 205,164,195,163,124,255,229,189,236,212,174,255,252,225,255,252,227,255,251,221,
2621 255,253,218,255,249,204,255,248,197,255,254,205,255,243,193,255,232,176,255,206,
2622 148,255,208,150,255,213,160,255,207,160,222,159,118,132,58,29,88,11,0,120,44,30,
2623 75,1,0,82,9,3,73,2,0,67,1,2,63,1,2,61,3,2,56,2,2,50,2,2,42,0,1,39,0,1,31,0,0,
2624 25,0,0,22,0,2,21,1,2,15,1,0,8,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,
2625 0,0,1,0,0,5,1,0,3,0,0,4,0,0,4,0,0,6,1,0,11,7,4,3,0,0,1,0,0,1,0,0,4,3,1,3,0,0,
2626 3,0,0,1,0,0,1,0,0,1,0,0,1,0,0,2,0,1,1,0,0,1,0,0,1,0,0,1,0,0,4,0,0,6,0,2,3,0,2,
2627 0,0,5,0,1,26,134,146,206,122,148,232,105,147,245,97,151,255,84,147,253,83,147,
2628 255,85,146,253,89,145,254,94,144,255,94,142,253,94,142,253,93,143,254,91,141,
2629 252,91,143,255,84,137,251,84,137,251,134,175,255,134,175,255,134,175,255,134,
2630 175,255,136,174,255,134,175,255,134,175,255,133,176,255,127,173,251,130,178,254,
2631 130,176,253,130,178,254,131,179,253,136,182,255,136,182,255,145,183,255,142,169,
2632 240,185,196,255,151,143,190,197,173,199,164,122,123,222,170,149,255,207,173,219,
2633 155,111,179,113,63,152,88,40,147,90,47,187,132,91,109,48,4,169,108,63,182,129,
2634 85,255,236,196,118,78,42,63,25,0,141,102,61,171,133,88,255,241,194,138,102,54,
2635 255,222,180,203,161,119,104,53,8,172,121,76,255,225,183,255,249,208,255,250,207,
2636 255,251,212,255,249,219,210,190,163,255,236,205,223,203,166,255,248,205,209,193,
2637 144,255,244,197,239,219,168,218,183,127,218,176,118,252,209,154,237,191,139,242,
2638 196,147,255,211,172,127,61,29,89,14,0,104,31,14,73,0,0,83,8,2,75,4,0,68,0,0,64,
2639 0,0,60,0,0,56,0,0,51,1,2,45,0,0,42,0,1,37,1,1,30,0,0,27,1,2,26,2,2,21,1,2,9,0,
2640 0,3,0,0,3,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,4,2,3,3,0,0,7,3,2,7,3,4,4,0,
2641 0,6,0,0,4,0,0,3,0,0,1,0,0,1,0,0,3,0,0,6,0,0,6,2,1,1,0,0,1,0,0,1,0,0,1,0,0,1,0,
2642 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,1,0,2,0,0,5,0,0,24,117,132,189,112,141,
2643 221,99,143,238,95,152,255,89,152,255,86,150,255,88,149,255,89,145,254,94,144,
2644 255,97,145,255,95,143,253,93,144,253,92,144,253,93,145,255,82,135,247,82,135,
2645 247,137,179,255,137,179,255,137,178,255,137,178,255,137,179,255,137,179,255,137,
2646 178,255,135,178,255,132,180,254,133,183,255,132,180,254,132,182,255,132,182,255,
2647 132,182,255,133,181,255,141,179,252,124,147,215,189,195,253,161,148,191,196,167,
2648 189,149,105,104,137,80,61,196,132,104,166,101,63,203,136,93,173,118,79,38,4,0,
2649 255,248,227,255,246,214,255,230,193,255,243,205,112,62,25,131,93,57,244,212,174,
2650 124,86,49,37,0,0,255,209,163,255,209,161,122,74,28,163,114,71,107,60,18,255,246,
2651 204,216,172,127,241,204,159,255,251,206,252,237,194,255,245,203,255,242,201,255,
2652 249,207,247,226,183,255,251,206,249,228,181,255,239,187,252,233,177,255,232,177,
2653 255,235,180,255,231,177,250,217,164,255,226,180,255,228,186,201,140,109,106,36,
2654 10,121,49,27,96,23,8,79,6,0,71,1,0,65,0,0,61,0,0,59,1,0,54,0,0,49,1,1,43,0,0,
2655 47,3,4,38,0,0,30,0,0,27,1,2,29,1,0,26,2,2,17,1,1,10,0,0,10,2,0,4,0,0,3,0,0,2,1,
2656 0,1,1,1,0,0,0,1,0,0,4,2,3,3,0,0,7,1,1,12,6,6,8,0,0,6,0,0,6,0,0,6,0,0,14,8,8,8,
2657 4,3,5,1,0,6,0,0,4,0,0,3,0,0,3,0,0,10,2,0,7,0,0,3,0,0,0,0,0,1,1,1,0,0,0,0,0,0,
2658 0,0,0,0,0,0,1,1,3,0,0,4,0,0,19,120,136,188,111,138,215,94,139,232,93,151,251,
2659 87,150,253,82,145,250,91,149,255,94,148,255,95,146,255,97,145,255,96,147,252,
2660 94,145,250,92,145,251,93,145,254,83,137,245,81,137,246,138,180,255,138,180,255,
2661 138,180,255,138,180,254,138,180,254,138,180,254,137,181,255,135,181,255,138,186,
2662 255,138,186,255,136,184,255,132,182,255,132,182,255,130,180,253,129,177,251,138,
2663 175,246,174,194,255,154,156,205,71,56,89,149,117,132,208,161,155,175,117,97,165,
2664 100,72,70,6,0,103,45,5,189,143,107,255,248,230,255,246,231,115,79,53,100,55,22,
2665 115,61,27,127,77,44,255,248,214,255,245,211,86,50,14,255,231,193,104,56,16,125,
2666 76,33,218,167,122,255,219,176,97,55,15,233,194,151,255,235,187,232,196,148,249,
2667 228,183,255,245,201,201,179,132,184,157,110,255,232,186,248,226,179,216,195,150,
2668 255,245,197,255,251,196,250,235,178,255,251,195,201,180,127,255,237,183,248,220,
2669 170,255,247,202,215,180,142,252,202,169,74,13,0,113,47,23,82,13,0,76,9,0,69,4,0,
2670 63,2,1,59,0,0,57,1,0,52,1,0,48,0,0,44,0,0,46,2,3,39,0,0,31,0,0,28,0,0,31,0,0,
2671 31,1,1,27,1,0,19,0,0,17,3,2,10,0,0,5,0,0,3,2,0,0,0,0,0,0,0,2,0,1,3,0,0,7,3,2,4,
2672 0,0,4,0,0,4,0,0,9,3,3,9,4,1,7,0,0,6,0,0,6,0,0,4,0,0,8,2,2,3,0,0,5,1,0,6,0,0,
2673 25,15,14,6,0,0,3,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,1,3,0,1,20,
2674 147,159,207,132,156,228,110,154,241,107,161,255,98,157,255,87,149,252,90,149,
2675 253,94,148,254,98,149,255,96,147,254,95,147,249,93,146,248,93,146,250,92,146,
2676 252,92,149,255,92,149,255,132,173,252,134,176,252,138,180,255,141,183,255,143,
2677 185,255,141,183,255,137,181,255,135,179,254,133,180,252,143,190,255,139,186,255,
2678 141,187,255,141,191,255,125,173,247,142,188,255,145,178,245,173,186,239,202,197,
2679 237,100,78,101,164,127,134,209,157,146,234,174,150,161,94,65,93,33,0,156,114,76,
2680 255,245,209,232,192,166,53,8,0,248,201,173,255,217,185,255,244,211,255,219,186,
2681 39,4,0,56,22,0,101,62,29,63,22,0,47,7,0,50,9,0,241,195,159,255,245,203,255,246,
2682 202,255,246,202,200,164,116,194,160,114,234,211,169,255,253,213,251,232,192,225,
2683 203,162,224,202,155,244,223,176,255,248,201,255,252,202,255,251,198,255,244,189,
2684 255,248,193,255,252,198,255,237,186,255,250,203,240,215,175,247,219,182,255,239,
2685 205,195,150,121,102,46,23,94,32,17,71,11,3,68,9,5,61,3,1,66,10,9,55,0,0,53,2,0,
2686 48,0,0,48,4,3,43,1,2,44,4,4,44,4,5,42,3,4,39,0,1,39,1,0,43,5,4,42,12,10,25,5,4,
2687 10,0,0,4,0,0,3,1,2,2,2,2,1,0,0,3,0,0,9,5,4,3,0,0,3,0,0,4,0,1,5,1,2,4,0,1,3,0,0,
2688 1,0,0,4,0,0,8,0,0,27,16,12,3,0,0,1,0,0,3,0,0,3,0,0,3,0,0,3,0,0,3,0,0,1,0,0,0,
2689 0,0,1,0,0,4,0,0,4,0,0,10,4,4,3,0,0,1,1,1,0,0,14,0,1,43,94,114,177,131,169,252,
2690 90,141,233,119,175,255,98,157,255,95,153,253,97,152,255,101,152,255,98,150,252,
2691 99,151,253,95,148,250,92,149,252,92,149,254,91,148,255,90,147,254,135,176,255,
2692 137,181,255,138,180,254,141,183,255,142,184,255,141,183,255,139,181,255,139,181,
2693 255,129,171,245,142,184,255,126,168,240,144,186,255,126,170,243,134,178,251,133,
2694 173,245,151,179,242,188,195,239,187,177,204,140,116,129,162,124,123,151,99,85,
2695 117,60,33,175,116,82,106,56,19,255,238,201,255,232,196,201,157,128,255,219,189,
2696 54,5,0,79,29,0,116,64,25,102,54,16,255,242,211,255,231,201,255,244,212,254,220,
2697 192,255,244,225,255,222,202,200,161,128,192,157,117,209,186,144,255,237,193,228,
2698 197,151,255,245,199,255,249,208,255,237,197,255,254,216,255,249,209,255,250,206,
2699 255,248,201,255,247,200,247,239,190,245,235,182,246,237,182,255,249,195,255,253,
2700 201,255,246,201,220,203,160,255,238,200,255,250,216,251,221,187,255,234,205,255,
2701 224,201,57,6,0,59,2,0,53,0,0,56,3,0,49,0,0,70,19,15,49,0,0,51,2,0,40,0,0,39,0,0,
2702 38,0,0,39,0,0,42,0,0,42,0,0,43,0,0,42,0,0,36,0,0,18,0,0,10,0,0,7,0,0,4,0,0,4,0,
2703 0,4,0,0,6,0,0,6,0,0,8,0,0,6,0,0,4,0,0,4,0,0,4,0,0,3,0,0,3,0,0,4,0,0,33,22,18,
2704 10,0,0,6,0,0,4,0,0,6,0,0,13,4,5,4,0,0,4,0,0,9,3,3,4,0,0,4,0,0,4,0,0,6,0,0,19,
2705 11,9,4,0,0,3,0,0,1,0,0,0,0,9,0,2,33,167,180,233,117,149,224,115,161,249,87,140,
2706 232,96,150,246,98,152,252,99,152,254,100,152,254,98,150,251,99,153,253,96,151,
2707 251,92,149,252,91,150,254,92,149,255,92,149,255,134,178,253,134,180,255,138,182,
2708 255,140,184,255,143,185,255,141,184,253,141,183,255,143,183,255,136,176,248,151,
2709 189,255,135,172,242,156,193,255,126,163,234,156,190,255,142,172,244,166,185,243,
2710 178,178,212,203,189,204,255,243,244,152,115,106,213,166,146,207,160,130,255,229,
2711 190,255,235,195,255,248,210,255,225,191,255,247,217,227,191,159,226,183,151,255,
2712 244,207,237,183,137,243,189,142,255,226,185,255,220,183,255,247,214,237,216,189,
2713 43,17,4,35,7,0,255,228,197,255,228,189,255,233,195,255,253,212,255,244,197,255,
2714 238,191,255,251,209,168,149,107,241,224,181,246,233,189,255,253,210,255,255,210,
2715 255,255,210,255,253,204,254,251,200,254,248,196,251,244,190,248,240,191,255,254,
2716 216,255,253,218,255,249,213,255,227,192,202,167,135,241,206,178,255,246,224,249,
2717 211,192,65,14,0,63,10,0,45,0,0,86,39,29,47,0,0,60,13,5,46,0,0,67,20,12,41,0,0,
2718 38,0,0,38,0,0,44,0,0,51,1,0,52,1,0,48,0,0,37,0,0,24,0,0,21,3,3,22,4,4,21,3,3,
2719 18,2,2,18,4,3,14,2,2,14,0,0,31,10,9,23,2,1,15,0,0,12,0,0,13,1,1,15,3,3,12,0,0,
2720 8,0,0,8,0,0,10,0,0,14,0,0,39,24,21,14,0,0,12,0,0,8,0,0,16,6,5,8,0,0,8,0,0,10,
2721 0,0,9,0,0,6,0,0,4,0,0,11,5,5,4,0,0,3,0,0,0,0,5,0,0,18,142,151,190,124,152,215,
2722 126,165,244,76,122,208,110,161,253,103,153,252,102,151,254,101,150,252,102,152,
2723 251,99,151,250,96,151,251,92,151,253,91,150,252,92,149,254,92,149,254,134,180,
2724 255,135,181,255,136,183,255,140,184,255,141,183,255,145,185,255,145,185,255,145,
2725 183,254,149,186,255,151,184,253,159,190,255,158,187,253,146,175,243,163,188,255,
2726 150,171,236,174,184,235,208,204,227,106,89,95,108,85,79,153,121,106,122,82,57,
2727 255,246,214,212,180,141,255,236,196,228,199,167,247,220,191,241,214,185,255,241,
2728 211,247,212,180,214,172,134,187,135,87,255,217,166,116,63,19,152,108,69,255,248,
2729 212,255,251,223,255,250,236,255,250,232,228,201,171,255,249,212,250,230,195,194,
2730 176,140,236,218,178,255,244,201,255,238,200,236,221,182,255,250,209,255,251,211,
2731 254,250,212,254,255,215,255,255,216,255,255,212,255,255,207,255,255,206,255,252,
2732 202,252,245,199,255,253,216,255,255,223,236,216,181,237,208,174,255,246,215,255,
2733 221,194,234,206,184,255,246,225,173,126,106,80,29,10,69,21,7,43,0,0,88,45,36,40,
2734 0,0,68,20,10,82,33,26,45,1,0,42,0,1,42,0,1,48,2,2,53,3,2,57,6,5,52,2,3,43,1,2,
2735 24,0,0,25,0,0,27,1,2,22,0,0,22,0,0,25,1,0,22,1,0,18,0,0,31,0,0,31,0,0,29,1,0,
2736 24,0,0,21,0,0,20,0,0,20,0,0,21,2,0,13,0,0,51,33,23,22,2,0,19,0,0,21,1,0,26,9,2,
2737 14,1,0,11,0,0,25,10,5,17,0,0,71,53,43,20,4,0,8,0,0,14,5,0,8,0,0,10,0,0,15,2,0,
2738 8,0,0,4,0,5,145,149,176,173,193,246,90,123,194,85,126,208,140,187,255,105,153,
2739 251,105,153,253,103,151,251,102,152,249,99,153,251,96,151,251,93,152,252,92,154,
2740 255,88,147,251,90,147,252,136,184,255,133,181,253,136,183,255,140,184,255,141,
2741 183,255,145,185,255,148,185,255,153,188,255,152,183,250,135,162,229,177,201,255,
2742 145,167,227,162,182,245,161,177,237,150,161,217,172,175,216,110,104,118,68,54,
2743 53,212,195,187,255,251,234,234,200,173,244,208,174,201,167,129,255,249,212,116,
2744 95,68,255,250,229,255,251,227,204,180,154,255,250,219,255,235,199,118,74,27,
2745 255,245,197,178,125,83,255,227,189,255,227,190,244,219,188,244,224,199,255,237,
2746 210,255,247,213,255,237,202,255,242,213,255,253,224,245,230,197,255,251,217,255,
2747 255,227,255,254,224,200,189,157,255,245,210,255,254,221,255,255,224,255,255,224,
2748 253,253,217,253,254,212,255,255,211,255,255,217,255,254,214,255,251,205,235,223,
2749 181,238,225,193,255,251,224,255,248,220,253,222,194,254,226,202,251,220,199,253,
2750 215,192,203,158,137,61,13,0,49,2,0,30,0,0,83,44,37,48,3,0,46,0,0,45,0,0,45,0,1,
2751 47,1,1,45,0,0,44,0,0,45,0,0,50,0,1,48,2,2,36,0,0,36,1,0,33,2,0,28,0,0,31,0,0,
2752 35,1,0,37,4,0,34,0,0,42,3,0,42,1,0,40,2,1,39,1,0,41,1,0,41,2,0,40,2,0,36,2,0,
2753 81,49,34,111,82,66,35,11,0,51,29,16,105,84,65,255,248,228,255,253,236,255,254,
2754 239,228,211,201,255,251,237,255,250,232,255,247,223,255,247,224,217,202,179,255,
2755 247,228,120,93,74,255,235,216,118,89,75,13,0,0,47,42,62,109,117,164,136,159,226,
2756 115,150,231,93,137,224,109,153,248,108,154,250,108,154,250,102,152,247,99,153,
2757 249,96,154,253,91,153,252,90,152,253,86,145,249,87,146,250,135,185,255,135,185,
2758 255,137,185,255,136,183,253,141,183,255,147,186,255,153,188,255,157,188,255,165,
2759 190,255,141,162,225,186,203,255,157,173,225,161,173,225,187,195,244,161,165,210,
2760 194,193,224,186,179,186,255,252,246,255,244,232,255,252,232,255,249,221,255,222,
2761 186,238,205,164,255,245,207,255,251,222,255,251,227,242,215,188,255,249,219,255,
2762 250,220,242,208,171,249,202,160,217,163,119,255,199,162,188,133,102,255,213,180,
2763 255,227,195,255,241,210,255,252,220,202,172,138,236,210,177,255,253,225,255,255,
2764 228,242,229,197,255,255,225,255,255,230,253,253,229,255,255,230,255,251,223,255,
2765 254,226,255,255,227,255,255,227,255,255,220,255,254,213,255,255,212,255,255,217,
2766 255,254,212,255,253,204,253,242,196,255,252,220,255,253,227,233,209,181,228,201,
2767 172,255,249,222,251,221,195,255,221,195,255,225,202,237,196,178,55,13,0,41,3,0,
2768 39,1,0,79,34,28,44,0,0,48,0,0,50,2,0,53,2,1,49,0,0,43,0,0,43,0,0,49,0,0,52,4,2,
2769 54,9,6,54,13,11,45,7,6,37,1,1,41,3,2,50,9,7,62,19,13,64,19,13,90,43,35,66,19,
2770 11,46,1,0,53,8,3,76,31,26,90,45,39,72,27,21,52,10,0,39,1,0,43,11,0,255,249,234,
2771 255,248,232,175,151,127,255,251,225,255,245,220,255,239,215,255,248,228,31,4,0,
2772 243,212,184,236,206,178,255,250,223,255,247,223,159,131,107,255,247,221,217,172,
2773 143,255,219,196,221,190,185,255,249,255,115,115,153,171,186,243,131,159,232,118,
2774 154,238,115,155,243,112,153,245,110,153,245,106,155,248,99,153,249,95,155,253,
2775 92,156,254,91,155,255,88,147,249,89,148,250,136,189,255,138,188,255,136,184,
2776 255,136,183,253,141,183,255,147,186,255,153,188,255,157,186,252,173,194,255,165,
2777 182,238,166,178,228,183,192,235,133,139,175,230,233,255,173,173,201,243,240,255,
2778 255,251,252,255,253,241,232,221,203,255,242,218,218,181,154,132,89,55,125,90,48,
2779 255,246,202,152,124,85,255,226,190,109,70,31,127,82,43,64,16,0,229,175,137,85,
2780 23,0,100,36,1,64,0,0,66,4,0,131,71,47,59,5,0,32,0,0,248,213,181,255,249,216,
2781 165,139,106,255,250,217,255,255,221,248,234,197,255,251,215,255,255,229,248,247,
2782 226,255,255,239,255,255,236,254,252,227,255,255,224,255,255,221,255,254,215,255,
2783 253,207,255,253,206,255,252,203,245,235,186,255,253,204,255,253,208,253,238,197,
2784 253,237,201,255,251,218,255,251,221,255,235,207,187,153,126,225,190,162,255,244,
2785 217,255,240,217,230,198,177,94,56,35,65,22,5,52,4,0,80,32,22,61,11,2,62,12,3,61,
2786 6,3,58,5,1,55,1,0,52,1,0,52,2,1,50,2,2,47,2,0,43,0,0,37,0,0,39,0,0,40,0,0,44,
2787 0,0,50,1,0,59,9,0,79,29,18,61,12,0,47,0,0,44,0,0,46,2,0,51,8,2,58,10,0,56,10,
2788 0,138,102,76,255,249,221,255,248,227,255,248,228,115,85,61,39,5,0,210,169,137,
2789 66,26,0,223,187,155,255,248,216,89,46,12,77,36,6,41,8,0,36,4,0,189,154,132,36,
2790 0,0,119,66,32,145,90,60,93,46,36,197,166,172,9,0,28,124,130,178,136,156,219,
2791 121,149,223,121,154,233,118,154,238,114,151,239,109,155,243,103,156,250,95,155,
2792 251,91,157,254,90,155,255,93,152,254,94,152,252,139,190,255,137,188,254,136,185,
2793 254,134,183,252,138,185,253,143,186,254,155,190,255,163,191,254,171,188,244,176,
2794 184,231,136,140,177,201,201,227,98,96,110,255,253,255,171,164,171,255,252,251,
2795 255,253,241,61,46,27,255,252,228,255,250,220,255,246,214,65,23,0,248,214,168,
2796 255,247,200,255,247,203,251,218,175,109,66,23,106,59,17,101,49,10,100,42,5,91,
2797 25,0,166,97,66,99,35,10,84,24,0,87,25,0,92,33,3,130,80,47,164,121,86,90,56,21,
2798 255,242,207,247,229,193,254,240,203,255,250,210,239,225,186,255,253,222,255,255,
2799 232,255,255,237,255,252,233,255,254,225,255,253,217,255,245,209,236,224,182,239,
2800 228,182,255,246,195,255,247,195,244,232,182,242,234,187,255,249,204,250,233,190,
2801 252,233,193,248,234,199,254,238,205,255,241,211,240,207,176,247,214,181,206,175,
2802 144,247,216,187,255,246,218,255,219,189,100,54,28,49,2,0,83,36,20,67,15,1,64,11,
2803 0,60,6,0,60,5,0,63,8,3,60,7,3,50,1,0,45,0,0,56,12,9,42,1,0,42,1,0,50,6,5,53,8,
2804 5,50,1,0,55,5,0,74,24,15,72,23,9,88,39,24,87,39,25,60,14,1,40,0,0,37,0,0,57,
2805 15,3,92,54,35,112,81,53,255,233,203,230,202,178,44,16,0,155,121,93,255,246,214,
2806 223,175,139,228,178,141,220,176,141,249,209,173,255,226,187,108,67,35,52,11,0,
2807 255,245,227,255,225,196,255,213,179,255,223,188,146,95,66,64,20,7,154,120,121,
2808 41,23,39,107,102,132,174,179,221,145,158,210,136,151,210,133,151,215,130,152,
2809 225,120,151,231,109,153,242,100,155,248,91,153,252,91,155,255,98,156,255,99,154,
2810 254,140,187,255,140,187,255,138,187,254,139,190,255,139,190,255,143,191,255,151,
2811 188,255,162,188,247,185,196,242,219,218,249,185,176,193,255,252,253,17,7,0,248,
2812 236,220,255,252,234,222,202,178,255,252,225,163,138,108,118,87,56,120,84,48,178,
2813 140,95,255,229,180,243,207,155,255,245,194,255,228,184,164,132,91,255,230,188,
2814 205,167,128,251,217,180,255,243,208,135,72,37,68,2,0,239,183,146,134,85,45,85,
2815 35,0,216,164,125,90,35,0,123,74,33,202,167,129,211,183,146,181,157,121,219,197,
2816 158,255,237,194,225,206,164,220,201,168,197,178,148,235,214,183,236,217,184,255,
2817 244,209,255,255,216,255,254,214,243,230,188,255,251,206,255,250,201,255,252,206,
2818 241,230,185,248,237,192,250,237,195,255,245,205,244,225,185,233,215,179,252,234,
2819 198,244,220,184,255,231,191,255,237,197,185,156,114,213,176,134,237,195,155,254,
2820 210,171,239,195,160,197,156,128,42,0,0,80,32,9,56,4,0,69,16,0,75,21,9,51,1,0,52,
2821 2,0,48,0,0,49,2,0,41,1,0,39,0,0,41,0,0,51,3,0,69,19,8,69,20,6,49,1,0,43,0,0,
2822 84,40,27,45,0,0,69,22,2,68,22,0,58,16,0,106,71,49,64,38,23,18,0,0,33,5,0,37,7,
2823 0,93,63,35,194,161,128,217,179,140,96,54,14,177,131,97,36,0,0,77,32,0,166,128,
2824 92,254,230,192,255,244,207,141,99,61,127,77,40,130,82,42,134,92,54,29,0,0,38,6,
2825 0,21,0,0,21,0,0,159,138,135,177,158,162,7,0,5,108,100,115,211,197,222,145,133,
2826 169,148,144,194,166,175,240,59,86,167,118,161,253,98,152,252,100,158,255,104,
2827 156,255,106,156,255,143,186,255,142,187,255,138,187,254,139,190,255,138,189,254,
2828 142,190,254,151,189,254,166,188,245,167,172,210,204,196,217,255,243,246,239,221,
2829 209,255,250,226,255,237,204,167,143,107,255,240,203,255,230,195,255,228,194,255,
2830 249,214,160,126,88,255,230,184,237,207,157,247,215,164,139,109,59,230,206,162,
2831 255,252,212,255,248,209,240,210,172,200,170,134,255,245,209,101,45,8,134,76,36,
2832 255,242,196,249,206,161,255,244,201,253,211,169,245,197,151,100,56,11,255,243,
2833 204,255,251,214,255,250,213,255,247,210,255,250,210,255,240,201,255,251,221,255,
2834 251,221,255,250,216,252,230,193,236,218,180,255,250,211,255,250,208,250,237,195,
2835 238,227,182,246,235,190,254,242,200,255,251,211,255,252,214,254,242,204,255,244,
2836 210,243,224,191,255,239,205,255,252,216,255,244,208,255,242,202,255,235,190,255,
2837 231,184,218,184,138,255,228,184,255,220,177,191,153,114,255,234,201,131,97,69,
2838 104,64,38,84,40,15,74,28,5,52,5,0,48,0,0,78,28,17,89,39,28,68,21,11,38,0,0,39,0,
2839 0,47,0,0,59,9,0,75,22,6,80,28,7,75,27,7,72,25,7,91,46,27,41,0,0,104,54,27,93,
2840 44,12,127,82,49,255,240,208,255,248,226,255,249,227,247,212,184,255,243,212,
2841 255,247,212,255,245,205,255,224,178,255,225,177,251,203,165,79,31,0,255,244,207,
2842 202,160,122,255,250,213,255,248,208,255,220,178,167,114,70,255,242,199,113,68,
2843 29,255,245,215,198,167,146,255,249,232,176,148,134,255,247,236,194,166,154,255,
2844 235,226,253,228,223,211,180,185,198,171,188,137,122,153,157,157,207,141,159,233,
2845 119,154,244,98,146,244,94,148,248,107,155,255,109,154,255,147,186,255,145,185,
2846 254,139,186,254,139,190,255,139,190,255,145,191,253,154,189,253,167,187,238,198,
2847 202,231,255,251,255,65,49,50,255,250,237,198,167,138,99,67,28,84,55,13,90,62,22,
2848 253,223,189,38,9,0,109,84,53,255,250,217,255,254,220,255,251,211,255,250,204,
2849 250,226,180,255,254,215,255,252,217,255,251,215,255,247,210,255,245,206,182,134,
2850 94,128,81,39,255,240,196,255,246,198,255,231,186,196,167,127,255,250,210,255,
2851 238,193,255,250,206,255,250,216,255,252,220,255,248,214,255,247,212,255,254,220,
2852 255,252,222,255,255,233,255,255,234,255,254,228,255,251,221,255,251,218,255,252,
2853 214,255,247,206,255,253,211,255,253,214,255,255,217,255,251,212,255,251,214,255,
2854 253,220,255,255,226,255,255,228,255,250,224,255,249,217,255,254,218,255,253,221,
2855 255,254,219,248,217,171,255,225,177,255,252,211,255,243,202,255,239,199,255,251,
2856 212,255,252,221,255,249,222,255,249,220,255,250,220,255,247,218,175,138,112,72,
2857 25,7,52,3,0,63,14,0,46,0,0,51,1,0,59,7,0,74,18,5,78,22,5,76,19,0,76,20,0,81,27,
2858 1,91,37,9,112,61,34,115,64,35,116,63,29,122,70,31,76,24,0,92,43,3,164,116,78,
2859 100,51,11,122,67,26,103,46,3,99,40,0,121,63,17,106,46,0,235,175,123,228,174,127,
2860 255,229,182,123,62,15,111,57,11,93,50,8,37,0,0,255,233,195,59,7,0,102,50,10,45,
2861 0,0,167,121,87,80,35,4,106,59,33,53,8,0,255,246,227,79,43,27,37,0,0,234,198,
2862 186,36,1,0,44,17,24,6,0,12,19,23,60,165,182,251,106,136,222,110,157,249,117,170,
2863 255,111,157,255,112,156,255,150,184,255,147,186,255,141,186,254,141,189,255,140,
2864 189,255,146,190,253,158,190,251,170,186,235,250,251,255,172,161,167,226,212,209,
2865 255,250,234,201,165,131,255,245,201,255,237,190,255,246,200,233,199,161,255,249,
2866 217,255,245,214,255,253,223,246,227,194,255,248,211,249,226,184,235,214,171,237,
2867 227,191,255,252,216,255,250,213,157,123,85,199,150,109,159,105,61,255,228,183,
2868 201,153,107,174,126,78,163,120,75,255,247,207,255,245,205,250,216,170,117,80,35,
2869 240,208,170,255,238,205,141,101,66,189,153,121,255,246,218,255,250,225,255,251,
2870 228,255,243,219,255,247,221,236,209,179,255,226,190,230,198,159,242,215,172,255,
2871 237,195,255,249,209,255,245,205,248,225,184,246,223,182,255,236,203,255,250,220,
2872 255,252,227,240,223,197,251,240,208,252,246,212,254,247,218,255,253,218,207,177,
2873 127,191,155,105,68,40,1,255,245,210,219,187,148,232,200,161,188,162,127,255,250,
2874 217,212,199,167,255,245,213,255,250,217,204,175,143,112,66,40,58,6,0,92,41,20,
2875 70,18,0,85,28,11,90,31,15,94,33,15,88,27,8,81,20,0,81,21,0,89,30,0,95,39,6,79,
2876 24,0,79,24,0,248,196,157,253,202,159,208,155,111,249,195,149,181,125,78,153,95,
2877 47,119,56,12,117,54,10,106,50,3,170,116,69,150,99,54,166,115,68,109,57,7,234,
2878 181,127,111,53,3,203,147,98,255,221,175,216,168,128,232,179,145,77,24,0,150,98,
2879 61,161,107,69,255,243,204,150,94,59,85,28,1,153,98,77,64,17,0,125,82,63,86,39,
2880 19,132,86,70,71,33,24,22,0,0,8,0,5,0,0,30,174,188,251,104,132,216,107,152,245,
2881 109,159,255,111,157,255,112,156,255,151,184,255,148,185,255,145,185,255,144,187,
2882 255,143,188,255,150,190,252,162,188,249,174,187,232,255,252,255,238,228,227,255,
2883 253,242,255,241,217,254,216,177,222,174,126,252,202,151,226,180,130,255,233,186,
2884 198,169,129,245,224,193,255,253,220,240,207,164,237,203,157,255,246,203,59,40,0,
2885 255,254,212,255,251,209,139,102,60,252,199,155,151,88,44,125,61,17,204,141,97,
2886 255,193,149,153,89,45,104,45,3,166,124,82,255,244,202,124,68,19,160,98,49,135,
2887 76,32,116,57,17,120,59,28,73,13,0,88,34,10,71,19,0,90,39,8,119,66,32,170,118,
2888 81,114,62,23,116,63,21,101,50,5,249,201,155,244,200,155,253,210,165,189,148,
2889 104,221,177,132,248,203,161,228,186,146,219,180,141,216,173,138,153,119,84,251,
2890 233,197,255,251,216,255,241,206,253,234,192,255,237,185,221,185,133,213,173,137,
2891 48,5,0,231,184,142,86,39,0,212,165,119,205,171,126,255,250,211,255,254,217,255,
2892 254,219,255,236,202,237,193,158,130,74,39,145,88,58,88,31,2,93,31,8,85,23,2,80,
2893 17,0,85,23,2,99,37,12,111,50,21,118,58,24,120,61,29,59,2,0,130,77,46,184,139,
2894 100,255,231,186,255,206,157,215,162,112,255,208,159,154,97,52,66,6,0,250,198,
2895 159,255,224,179,255,247,203,255,253,220,255,248,214,255,227,180,243,197,145,255,
2896 243,196,219,175,128,255,222,173,245,197,151,59,3,0,118,61,32,125,74,43,50,0,0,
2897 227,163,119,122,57,17,63,4,0,52,0,0,51,2,0,95,44,23,93,39,13,218,168,145,251,
2898 209,195,31,0,0,64,42,55,24,14,48,174,182,245,122,148,232,110,154,249,93,145,246,
2899 111,156,255,112,156,255};
2900 static Fl_RGB_Image image_sfinx(idata_sfinx, 130, 101, 3, 0);
2902 void x11_ui::init() {
2903   { main_w = new Fl_Double_Window(945, 365, gettext("Faraon"));
2904     main_w->callback((Fl_Callback*)cb_main_w);
2905     { Fl_Menu_Bar* o = new Fl_Menu_Bar(0, 0, 945, 22);
2906       o->menu(menu_);
2907     } // Fl_Menu_Bar* o
2908     { status_bar_o = new Fl_Output(0, 347, 945, 20);
2909       status_bar_o->tooltip(gettext("Status"));
2910       status_bar_o->box(FL_PLASTIC_UP_BOX);
2911       status_bar_o->color((Fl_Color)31);
2912       status_bar_o->deactivate();
2913     } // Fl_Output* status_bar_o
2914     { log_br = new Fl_Browser(-1, 21, 948, 326);
2915       log_br->type(1);
2916       log_br->color((Fl_Color)31);
2917       log_br->labelfont(4);
2918       log_br->textfont(4);
2919       Fl_Group::current()->resizable(log_br);
2920     } // Fl_Browser* log_br
2921     main_w->end();
2922   } // Fl_Double_Window* main_w
2923   { preferences_w = new Fl_Double_Window(742, 373, gettext("Preferences"));
2924     preferences_w->color((Fl_Color)31);
2925     { Fl_Button* o = new Fl_Button(390, 330, 112, 25, gettext("Cancel"));
2926       o->labeltype(FL_ENGRAVED_LABEL);
2927       o->callback((Fl_Callback*)cb_Cancel);
2928     } // Fl_Button* o
2929     { Fl_Button* o = new Fl_Button(572, 330, 112, 25, gettext("Apply"));
2930       o->labeltype(FL_ENGRAVED_LABEL);
2931       o->callback((Fl_Callback*)cb_Apply);
2932     } // Fl_Button* o
2933     { prefs_tree_scroll = new Fl_Scroll(10, 29, 173, 283);
2934       prefs_tree_scroll->type(6);
2935       prefs_tree_scroll->box(FL_ENGRAVED_FRAME);
2936       prefs_tree_scroll->color((Fl_Color)28);
2937       config_tree = new Fl_Toggle_Tree(12, 12, prefs_tree_scroll->w() - prefs_tree_scroll->scrollbar.w(), 10);
2938       fill_config_tree();
2939       prefs_tree_scroll->end();
2940     } // Fl_Scroll* prefs_tree_scroll
2941     { config_connection_gr = new Fl_Group(183, 19, 535, 283);
2942       config_connection_gr->box(FL_ENGRAVED_FRAME);
2943       config_connection_gr->hide();
2944       { config_sfinx_server_name_i = new Fl_Input(273, 89, 375, 26, gettext("Sfinx Server Name"));
2945         config_sfinx_server_name_i->color((Fl_Color)29);
2946         config_sfinx_server_name_i->labeltype(FL_ENGRAVED_LABEL);
2947         config_sfinx_server_name_i->align(FL_ALIGN_TOP);
2948       } // Fl_Input* config_sfinx_server_name_i
2949       { Fl_Choice* o = new Fl_Choice(227, 179, 211, 23, gettext("Minimum Auth Level"));
2950         o->down_box(FL_BORDER_BOX);
2951         o->color((Fl_Color)48);
2952         o->labeltype(FL_ENGRAVED_LABEL);
2953         o->align(FL_ALIGN_TOP_LEFT);
2954         o->deactivate();
2955         o->menu(menu_Minimum);
2956       } // Fl_Choice* o
2957       { Fl_Choice* o = new Fl_Choice(227, 230, 211, 23, gettext("Minimum Debug Level"));
2958         o->down_box(FL_BORDER_BOX);
2959         o->color((Fl_Color)48);
2960         o->labeltype(FL_ENGRAVED_LABEL);
2961         o->align(FL_ALIGN_TOP_LEFT);
2962         o->deactivate();
2963         o->menu(menu_Minimum1);
2964       } // Fl_Choice* o
2965       { Fl_Choice* o = new Fl_Choice(476, 179, 211, 23, gettext("Minimum Crypt Level"));
2966         o->down_box(FL_BORDER_BOX);
2967         o->color((Fl_Color)48);
2968         o->labeltype(FL_ENGRAVED_LABEL);
2969         o->align(FL_ALIGN_TOP_LEFT);
2970         o->deactivate();
2971         o->menu(menu_Minimum2);
2972       } // Fl_Choice* o
2973       config_connection_gr->end();
2974     } // Fl_Group* config_connection_gr
2975     { config_files_module_gr = new Fl_Group(193, 29, 535, 283);
2976       config_files_module_gr->box(FL_ENGRAVED_FRAME);
2977       config_files_module_gr->hide();
2978       { config_files_module_unsorted_path_i = new Fl_Input(283, 68, 375, 26, gettext("Unsorted files path on Sfinx server"));
2979         config_files_module_unsorted_path_i->color((Fl_Color)29);
2980         config_files_module_unsorted_path_i->labeltype(FL_ENGRAVED_LABEL);
2981         config_files_module_unsorted_path_i->align(FL_ALIGN_TOP);
2982       } // Fl_Input* config_files_module_unsorted_path_i
2983       { config_files_module_sorted_path_i = new Fl_Input(283, 128, 375, 26, gettext("Sorted file tree path on Sfinx server"));
2984         config_files_module_sorted_path_i->color((Fl_Color)29);
2985         config_files_module_sorted_path_i->labeltype(FL_ENGRAVED_LABEL);
2986         config_files_module_sorted_path_i->align(FL_ALIGN_TOP);
2987       } // Fl_Input* config_files_module_sorted_path_i
2988       { gen_desc_files_b = new Fl_Check_Button(209, 233, 241, 23, gettext("Generate description files"));
2989         gen_desc_files_b->box(FL_PLASTIC_UP_BOX);
2990         gen_desc_files_b->down_box(FL_DOWN_BOX);
2991         gen_desc_files_b->selection_color(FL_SELECTION_COLOR);
2992         gen_desc_files_b->labeltype(FL_ENGRAVED_LABEL);
2993         gen_desc_files_b->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
2994       } // Fl_Check_Button* gen_desc_files_b
2995       { config_files_module_desc_file_name_i = new Fl_Input(283, 189, 375, 26, gettext("Description file name"));
2996         config_files_module_desc_file_name_i->color((Fl_Color)29);
2997         config_files_module_desc_file_name_i->labeltype(FL_ENGRAVED_LABEL);
2998         config_files_module_desc_file_name_i->align(FL_ALIGN_TOP);
2999       } // Fl_Input* config_files_module_desc_file_name_i
3000       { process_files_mime_type_b = new Fl_Check_Button(472, 233, 241, 23, gettext("Detect files MIME type"));
3001         process_files_mime_type_b->box(FL_PLASTIC_UP_BOX);
3002         process_files_mime_type_b->down_box(FL_DOWN_BOX);
3003         process_files_mime_type_b->selection_color(FL_SELECTION_COLOR);
3004         process_files_mime_type_b->labeltype(FL_ENGRAVED_LABEL);
3005         process_files_mime_type_b->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
3006       } // Fl_Check_Button* process_files_mime_type_b
3007       config_files_module_gr->end();
3008     } // Fl_Group* config_files_module_gr
3009     { config_confirmation_gr = new Fl_Group(183, 19, 535, 283);
3010       config_confirmation_gr->box(FL_ENGRAVED_FRAME);
3011       config_confirmation_gr->hide();
3012       { exit_confirm_b = new Fl_Check_Button(216, 45, 204, 23, gettext("Exit confirm"));
3013         exit_confirm_b->box(FL_PLASTIC_UP_BOX);
3014         exit_confirm_b->down_box(FL_DOWN_BOX);
3015         exit_confirm_b->selection_color(FL_SELECTION_COLOR);
3016         exit_confirm_b->labeltype(FL_ENGRAVED_LABEL);
3017         exit_confirm_b->deactivate();
3018       } // Fl_Check_Button* exit_confirm_b
3019       config_confirmation_gr->end();
3020     } // Fl_Group* config_confirmation_gr
3021     preferences_w->end();
3022   } // Fl_Double_Window* preferences_w
3023   { select_slice_w = new Fl_Double_Window(730, 352, gettext("Select Sfinx Object"));
3024     select_slice_w->color((Fl_Color)31);
3025     { Fl_Button* o = new Fl_Button(594, 312, 112, 25, gettext("Cancel"));
3026       o->box(FL_PLASTIC_UP_BOX);
3027       o->labeltype(FL_ENGRAVED_LABEL);
3028       o->callback((Fl_Callback*)cb_Cancel1);
3029     } // Fl_Button* o
3030     { select_slice_b = new Fl_Button(16, 312, 548, 25, gettext("Select"));
3031       select_slice_b->box(FL_PLASTIC_UP_BOX);
3032       select_slice_b->labeltype(FL_ENGRAVED_LABEL);
3033       select_slice_b->callback((Fl_Callback*)cb_select_slice_b);
3034     } // Fl_Button* select_slice_b
3035     { select_slice_tree_scroll = new Fl_Scroll_Resize(15, 15, 702, 280);
3036       select_slice_tree_scroll->box(FL_ENGRAVED_FRAME);
3037       select_slice_tree_scroll->color((Fl_Color)28);
3038       select_slice_tree_scroll->selection_color(FL_BACKGROUND_COLOR);
3039       select_slice_tree_scroll->labeltype(FL_NORMAL_LABEL);
3040       select_slice_tree_scroll->labelfont(0);
3041       select_slice_tree_scroll->labelsize(14);
3042       select_slice_tree_scroll->labelcolor(FL_FOREGROUND_COLOR);
3043       select_slice_tree_scroll->align(FL_ALIGN_TOP);
3044       select_slice_tree_scroll->when(FL_WHEN_RELEASE);
3045       select_slice_tree = new Fl_Toggle_Tree(12, 12, select_slice_tree_scroll->w(), 10);
3046       select_slice_tree->callback(select_slice_tree_cb);select_slice_tree->user_data((void *)select_slice_tree_scroll);
3047       select_slice_w->resizable(select_slice_tree_scroll);
3048       select_slice_tree_scroll->resizable(select_slice_tree);
3049       select_slice_tree_scroll->end();
3050     } // Fl_Scroll_Resize* select_slice_tree_scroll
3051     select_slice_w->set_modal();
3052     select_slice_w->end();
3053   } // Fl_Double_Window* select_slice_w
3054   { slices_w = new Fl_Double_Window(866, 370, gettext("Sfinx Slices"));
3055     slices_w->color((Fl_Color)31);
3056     { Fl_Button* o = new Fl_Button(734, 312, 112, 25, gettext("Cancel"));
3057       o->labeltype(FL_ENGRAVED_LABEL);
3058       o->callback((Fl_Callback*)cb_Cancel2);
3059     } // Fl_Button* o
3060     { Fl_Button* o = new Fl_Button(454, 312, 128, 25, gettext("Delete slice"));
3061       o->labeltype(FL_ENGRAVED_LABEL);
3062       o->callback((Fl_Callback*)cb_Delete);
3063     } // Fl_Button* o
3064     { slices_tree_scroll = new Fl_Scroll_Resize(15, 13, 837, 280);
3065       slices_tree_scroll->box(FL_ENGRAVED_FRAME);
3066       slices_tree_scroll->color((Fl_Color)28);
3067       slices_tree_scroll->selection_color(FL_BACKGROUND_COLOR);
3068       slices_tree_scroll->labeltype(FL_NORMAL_LABEL);
3069       slices_tree_scroll->labelfont(0);
3070       slices_tree_scroll->labelsize(14);
3071       slices_tree_scroll->labelcolor(FL_FOREGROUND_COLOR);
3072       slices_tree_scroll->align(FL_ALIGN_TOP);
3073       slices_tree_scroll->when(FL_WHEN_RELEASE);
3074       slices_tree = new Fl_Toggle_Tree(12, 12, slices_tree_scroll->w(), 10);
3075       slices_tree->callback(slices_tree_cb); slices_tree->user_data((void *)slices_tree_scroll);
3076       slices_w->resizable(slices_tree_scroll);
3077       slices_tree_scroll->resizable(slices_tree);
3078       slices_tree_scroll->end();
3079     } // Fl_Scroll_Resize* slices_tree_scroll
3080     { Fl_Button* o = new Fl_Button(305, 312, 128, 25, gettext("Edit slice"));
3081       o->labeltype(FL_ENGRAVED_LABEL);
3082       o->callback((Fl_Callback*)cb_Edit);
3083     } // Fl_Button* o
3084     { slices_status_to = new Fl_Output(0, 349, 866, 21);
3085       slices_status_to->box(FL_PLASTIC_UP_BOX);
3086       slices_status_to->color((Fl_Color)31);
3087       slices_status_to->deactivate();
3088     } // Fl_Output* slices_status_to
3089     { Fl_Button* o = new Fl_Button(21, 312, 112, 25, gettext("New slice"));
3090       o->labeltype(FL_ENGRAVED_LABEL);
3091       o->callback((Fl_Callback*)cb_New);
3092     } // Fl_Button* o
3093     { Fl_Button* o = new Fl_Button(155, 312, 128, 25, gettext("Relink slice"));
3094       o->labeltype(FL_ENGRAVED_LABEL);
3095       o->callback((Fl_Callback*)cb_Relink);
3096     } // Fl_Button* o
3097     { Fl_Button* o = new Fl_Button(600, 312, 119, 25, gettext("Search"));
3098       o->labeltype(FL_ENGRAVED_LABEL);
3099       o->callback((Fl_Callback*)cb_Search);
3100     } // Fl_Button* o
3101     slices_w->set_modal();
3102     slices_w->end();
3103   } // Fl_Double_Window* slices_w
3104   { edit_slice_w = new Fl_Double_Window(595, 330, gettext("Edit Sfinx Slice"));
3105     edit_slice_w->color((Fl_Color)31);
3106     { Fl_Input* o = slice_name_i = new Fl_Input(47, 35, 496, 26, gettext("Slice Name"));
3107       slice_name_i->color((Fl_Color)29);
3108       slice_name_i->labeltype(FL_ENGRAVED_LABEL);
3109       slice_name_i->align(FL_ALIGN_TOP);
3110       o->maximum_size(64);
3111     } // Fl_Input* slice_name_i
3112     { Fl_Input* o = slice_directory_i = new Fl_Input(47, 93, 496, 26, gettext("Slice Directory"));
3113       slice_directory_i->color((Fl_Color)29);
3114       slice_directory_i->labeltype(FL_ENGRAVED_LABEL);
3115       slice_directory_i->align(FL_ALIGN_TOP);
3116       o->maximum_size(256);
3117     } // Fl_Input* slice_directory_i
3118     { Fl_Input* o = slice_description_i = new Fl_Input(34, 158, 523, 89, gettext("Slice Description"));
3119       slice_description_i->type(4);
3120       slice_description_i->color((Fl_Color)29);
3121       slice_description_i->labeltype(FL_ENGRAVED_LABEL);
3122       slice_description_i->align(FL_ALIGN_TOP);
3123       o->maximum_size(256);
3124     } // Fl_Input* slice_description_i
3125     { Fl_Return_Button* o = new Fl_Return_Button(111, 270, 112, 25, gettext("Ok"));
3126       o->labeltype(FL_ENGRAVED_LABEL);
3127       o->callback((Fl_Callback*)cb_Ok);
3128     } // Fl_Return_Button* o
3129     { Fl_Button* o = new Fl_Button(359, 270, 112, 25, gettext("Cancel"));
3130       o->labeltype(FL_ENGRAVED_LABEL);
3131       o->callback((Fl_Callback*)cb_Cancel3);
3132     } // Fl_Button* o
3133     { edit_slice_to = new Fl_Output(0, 312, 598, 21);
3134       edit_slice_to->box(FL_PLASTIC_UP_BOX);
3135       edit_slice_to->color((Fl_Color)31);
3136       edit_slice_to->labelsize(10);
3137       edit_slice_to->textsize(10);
3138     } // Fl_Output* edit_slice_to
3139     edit_slice_w->set_modal();
3140     edit_slice_w->end();
3141   } // Fl_Double_Window* edit_slice_w
3142   { delete_slice_w = new Fl_Double_Window(388, 223, gettext("Delete Sfinx Slice"));
3143     delete_slice_w->color((Fl_Color)31);
3144     { Fl_Button* o = new Fl_Button(238, 175, 112, 25, gettext("Cancel"));
3145       o->labeltype(FL_ENGRAVED_LABEL);
3146       o->callback((Fl_Callback*)cb_Cancel4);
3147     } // Fl_Button* o
3148     { Fl_Button* o = new Fl_Button(39, 175, 112, 25, gettext("Delete"));
3149       o->labeltype(FL_ENGRAVED_LABEL);
3150       o->callback((Fl_Callback*)cb_Delete1);
3151     } // Fl_Button* o
3152     { delete_sfinx_slice_to = new Fl_Output(35, 31, 330, 26, gettext("Please confirm deletion of the slice"));
3153       delete_sfinx_slice_to->box(FL_ENGRAVED_FRAME);
3154       delete_sfinx_slice_to->color((Fl_Color)29);
3155       delete_sfinx_slice_to->labeltype(FL_ENGRAVED_LABEL);
3156       delete_sfinx_slice_to->align(FL_ALIGN_TOP);
3157     } // Fl_Output* delete_sfinx_slice_to
3158     { slice_deletion_type_ch = new Fl_Choice(73, 82, 240, 23, gettext("Slice && Data Deletion Action"));
3159       slice_deletion_type_ch->down_box(FL_BORDER_BOX);
3160       slice_deletion_type_ch->color((Fl_Color)48);
3161       slice_deletion_type_ch->labeltype(FL_ENGRAVED_LABEL);
3162       slice_deletion_type_ch->align(FL_ALIGN_TOP);
3163       slice_deletion_type_ch->menu(menu_slice_deletion_type_ch);
3164     } // Fl_Choice* slice_deletion_type_ch
3165     { data_deletion_type_ch = new Fl_Choice(73, 132, 240, 23, gettext("Associated Data Deletion Action"));
3166       data_deletion_type_ch->down_box(FL_BORDER_BOX);
3167       data_deletion_type_ch->color((Fl_Color)48);
3168       data_deletion_type_ch->labeltype(FL_ENGRAVED_LABEL);
3169       data_deletion_type_ch->align(FL_ALIGN_TOP);
3170       data_deletion_type_ch->menu(menu_data_deletion_type_ch);
3171     } // Fl_Choice* data_deletion_type_ch
3172     delete_slice_w->set_modal();
3173     delete_slice_w->end();
3174   } // Fl_Double_Window* delete_slice_w
3175   { progress_w = new Fl_Double_Window(464, 98, gettext("Progress"));
3176     { progress_bar = new Fl_Progress(22, 46, 422, 27, gettext("67 %"));
3177       progress_bar->box(FL_PLASTIC_DOWN_BOX);
3178       progress_bar->selection_color((Fl_Color)2);
3179     } // Fl_Progress* progress_bar
3180     { progress_l = new Fl_Box(66, 10, 330, 25, gettext("Doing some work ..."));
3181       progress_l->box(FL_FLAT_BOX);
3182       progress_l->labeltype(FL_ENGRAVED_LABEL);
3183     } // Fl_Box* progress_l
3184     progress_w->set_modal();
3185     progress_w->end();
3186   } // Fl_Double_Window* progress_w
3187   { files_module_w = new Fl_Double_Window(730, 370, gettext("Files Module"));
3188     files_module_w->color((Fl_Color)31);
3189     { Fl_Button* o = new Fl_Button(605, 312, 112, 25, gettext("Cancel"));
3190       o->labeltype(FL_ENGRAVED_LABEL);
3191       o->callback((Fl_Callback*)cb_Cancel5);
3192     } // Fl_Button* o
3193     { files_module_status_to = new Fl_Output(0, 349, 733, 21);
3194       files_module_status_to->box(FL_PLASTIC_UP_BOX);
3195       files_module_status_to->color((Fl_Color)31);
3196     } // Fl_Output* files_module_status_to
3197     { classify_file_b = new Fl_Button(21, 312, 112, 25, gettext("Classify"));
3198       classify_file_b->labeltype(FL_ENGRAVED_LABEL);
3199       classify_file_b->callback((Fl_Callback*)cb_classify_file_b);
3200     } // Fl_Button* classify_file_b
3201     { Fl_Button* o = new Fl_Button(154, 312, 128, 25, gettext("Edit"));
3202       o->labeltype(FL_ENGRAVED_LABEL);
3203       o->callback((Fl_Callback*)cb_Edit1);
3204     } // Fl_Button* o
3205     { files_module_tree_br = new Fl_Browser(7, 45, 716, 255);
3206       files_module_tree_br->type(3);
3207       files_module_tree_br->color((Fl_Color)31);
3208       files_module_tree_br->callback((Fl_Callback*)cb_files_module_tree_br);
3209       static int widths[] = { 10, 450, 200, 200, 0};
3210       files_module_tree_br->column_widths(widths);
3211     } // Fl_Browser* files_module_tree_br
3212     { Fl_Button* o = new Fl_Button(300, 312, 112, 25, gettext("Delete"));
3213       o->labeltype(FL_ENGRAVED_LABEL);
3214       o->callback((Fl_Callback*)cb_Delete2);
3215     } // Fl_Button* o
3216     { select_files_tree_b = new Fl_Button(562, 10, 128, 25, gettext("Sorted tree"));
3217       select_files_tree_b->labeltype(FL_ENGRAVED_LABEL);
3218       select_files_tree_b->callback((Fl_Callback*)cb_select_files_tree_b);
3219     } // Fl_Button* select_files_tree_b
3220     { Fl_Button* o = new Fl_Button(35, 10, 112, 25, gettext("Up [ .. ]"));
3221       o->labeltype(FL_ENGRAVED_LABEL);
3222       o->callback((Fl_Callback*)cb_Up);
3223     } // Fl_Button* o
3224     { Fl_Button* o = new Fl_Button(166, 10, 112, 25, gettext("Reload"));
3225       o->labeltype(FL_ENGRAVED_LABEL);
3226       o->callback((Fl_Callback*)cb_Reload);
3227     } // Fl_Button* o
3228     { Fl_Button* o = new Fl_Button(295, 10, 112, 25, gettext("Select All"));
3229       o->labeltype(FL_ENGRAVED_LABEL);
3230       o->callback((Fl_Callback*)cb_Select);
3231     } // Fl_Button* o
3232     { Fl_Button* o = new Fl_Button(428, 10, 112, 25, gettext("Unselect All"));
3233       o->labeltype(FL_ENGRAVED_LABEL);
3234       o->callback((Fl_Callback*)cb_Unselect);
3235     } // Fl_Button* o
3236     { files_tree_scroll = new Fl_Scroll_Resize(7, 45, 716, 255);
3237       files_tree_scroll->type(7);
3238       files_tree_scroll->box(FL_ENGRAVED_FRAME);
3239       files_tree_scroll->color((Fl_Color)28);
3240       files_tree_scroll->selection_color(FL_BACKGROUND_COLOR);
3241       files_tree_scroll->labeltype(FL_NORMAL_LABEL);
3242       files_tree_scroll->labelfont(0);
3243       files_tree_scroll->labelsize(14);
3244       files_tree_scroll->labelcolor(FL_FOREGROUND_COLOR);
3245       files_tree_scroll->align(FL_ALIGN_TOP);
3246       files_tree_scroll->when(FL_WHEN_RELEASE);
3247       files_tree_scroll->hide();
3248       files_tree = new Fl_Toggle_Tree(12, 12, files_tree_scroll->w(), 10);
3249       files_tree->callback(files_tree_cb); files_tree->user_data((void *)files_tree_scroll);
3250       files_module_w->resizable(files_tree_scroll);
3251       files_tree_scroll->resizable(files_tree);files_tree_scroll->resize_chld = false;
3252       files_tree_scroll->end();
3253     } // Fl_Scroll_Resize* files_tree_scroll
3254     files_module_w->end();
3255   } // Fl_Double_Window* files_module_w
3256   { classify_file_w = new Fl_Double_Window(1020, 515, gettext("Classify File"));
3257     classify_file_w->color((Fl_Color)31);
3258     { Fl_Button* o = new Fl_Button(612, 454, 112, 25, gettext("Cancel"));
3259       o->labeltype(FL_ENGRAVED_LABEL);
3260       o->callback((Fl_Callback*)cb_Cancel6);
3261     } // Fl_Button* o
3262     { Fl_Input* o = file_title_i = new Fl_Input(16, 27, 496, 26, gettext("Title"));
3263       file_title_i->color((Fl_Color)29);
3264       file_title_i->labeltype(FL_ENGRAVED_LABEL);
3265       file_title_i->align(FL_ALIGN_TOP);
3266       o->maximum_size(1024);
3267     } // Fl_Input* file_title_i
3268     { Fl_Input* o = file_authority_i = new Fl_Input(16, 83, 496, 26, gettext("Authority"));
3269       file_authority_i->color((Fl_Color)29);
3270       file_authority_i->labeltype(FL_ENGRAVED_LABEL);
3271       file_authority_i->align(FL_ALIGN_TOP);
3272       o->maximum_size(512);
3273     } // Fl_Input* file_authority_i
3274     { Fl_Input* o = file_description_i = new Fl_Input(549, 78, 447, 101, gettext("Description"));
3275       file_description_i->type(4);
3276       file_description_i->color((Fl_Color)29);
3277       file_description_i->labeltype(FL_ENGRAVED_LABEL);
3278       file_description_i->align(FL_ALIGN_TOP);
3279       o->maximum_size(1024);
3280     } // Fl_Input* file_description_i
3281     { Fl_Input* o = file_comments_i = new Fl_Input(582, 220, 416, 212, gettext("Comments"));
3282       file_comments_i->type(4);
3283       file_comments_i->color((Fl_Color)29);
3284       file_comments_i->labeltype(FL_ENGRAVED_LABEL);
3285       file_comments_i->align(FL_ALIGN_TOP);
3286       o->maximum_size(1024);
3287     } // Fl_Input* file_comments_i
3288     { classify_file_to = new Fl_Output(0, 497, 1022, 21);
3289       classify_file_to->box(FL_PLASTIC_UP_BOX);
3290       classify_file_to->color((Fl_Color)31);
3291       classify_file_to->labelsize(10);
3292       classify_file_to->textsize(10);
3293     } // Fl_Output* classify_file_to
3294     { Fl_Return_Button* o = new Fl_Return_Button(243, 454, 112, 25, gettext("Ok"));
3295       o->labeltype(FL_ENGRAVED_LABEL);
3296       o->callback((Fl_Callback*)cb_Ok1);
3297     } // Fl_Return_Button* o
3298     { sorted_location_b = new Fl_Check_Button(15, 132, 241, 23, gettext("Sorted Location"));
3299       sorted_location_b->box(FL_PLASTIC_UP_BOX);
3300       sorted_location_b->down_box(FL_DOWN_BOX);
3301       sorted_location_b->selection_color(FL_SELECTION_COLOR);
3302       sorted_location_b->labeltype(FL_ENGRAVED_LABEL);
3303       sorted_location_b->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
3304     } // Fl_Check_Button* sorted_location_b
3305     { file_crypt_b = new Fl_Check_Button(15, 165, 241, 23, gettext("Encrypt"));
3306       file_crypt_b->box(FL_PLASTIC_UP_BOX);
3307       file_crypt_b->down_box(FL_DOWN_BOX);
3308       file_crypt_b->selection_color(FL_SELECTION_COLOR);
3309       file_crypt_b->labeltype(FL_ENGRAVED_LABEL);
3310       file_crypt_b->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
3311       file_crypt_b->deactivate();
3312     } // Fl_Check_Button* file_crypt_b
3313     { file_compress_b = new Fl_Check_Button(274, 132, 241, 23, gettext("Store compressed"));
3314       file_compress_b->box(FL_PLASTIC_UP_BOX);
3315       file_compress_b->down_box(FL_DOWN_BOX);
3316       file_compress_b->selection_color(FL_SELECTION_COLOR);
3317       file_compress_b->labeltype(FL_ENGRAVED_LABEL);
3318       file_compress_b->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
3319     } // Fl_Check_Button* file_compress_b
3320     { Fl_Box* o = new Fl_Box(13, 205, 552, 227);
3321       o->box(FL_ENGRAVED_FRAME);
3322     } // Fl_Box* o
3323     { file_mtag_b = new Fl_Button(45, 226, 489, 25, gettext("Main Slice (Not Set)"));
3324       file_mtag_b->tooltip(gettext("File Main Slice"));
3325       file_mtag_b->box(FL_PLASTIC_THIN_UP_BOX);
3326       file_mtag_b->labeltype(FL_ENGRAVED_LABEL);
3327       file_mtag_b->callback((Fl_Callback*)cb_file_mtag_b);
3328     } // Fl_Button* file_mtag_b
3329     { file_tags_br = new Fl_Browser(26, 275, 525, 102, gettext("Additional Slices"));
3330       file_tags_br->type(3);
3331       file_tags_br->color((Fl_Color)46);
3332       file_tags_br->labeltype(FL_ENGRAVED_LABEL);
3333       file_tags_br->align(FL_ALIGN_TOP);
3334     } // Fl_Browser* file_tags_br
3335     { file_add_tag_b = new Fl_Button(82, 391, 138, 25, gettext("Add Slice"));
3336       file_add_tag_b->box(FL_PLASTIC_THIN_UP_BOX);
3337       file_add_tag_b->labeltype(FL_ENGRAVED_LABEL);
3338       file_add_tag_b->callback((Fl_Callback*)cb_file_add_tag_b);
3339     } // Fl_Button* file_add_tag_b
3340     { file_remove_tag_b = new Fl_Button(358, 391, 138, 25, gettext("Remove Slice"));
3341       file_remove_tag_b->box(FL_PLASTIC_THIN_UP_BOX);
3342       file_remove_tag_b->labeltype(FL_ENGRAVED_LABEL);
3343       file_remove_tag_b->callback((Fl_Callback*)cb_file_remove_tag_b);
3344     } // Fl_Button* file_remove_tag_b
3345     { Fl_Input* o = file_name_i = new Fl_Input(549, 26, 447, 26, gettext("File Name"));
3346       file_name_i->color((Fl_Color)29);
3347       file_name_i->labeltype(FL_ENGRAVED_LABEL);
3348       file_name_i->align(FL_ALIGN_TOP);
3349       o->maximum_size(256);
3350     } // Fl_Input* file_name_i
3351     { file_gen_csum_b = new Fl_Check_Button(274, 165, 241, 23, gettext("Generate CSUM"));
3352       file_gen_csum_b->box(FL_PLASTIC_UP_BOX);
3353       file_gen_csum_b->down_box(FL_DOWN_BOX);
3354       file_gen_csum_b->selection_color(FL_SELECTION_COLOR);
3355       file_gen_csum_b->labeltype(FL_ENGRAVED_LABEL);
3356       file_gen_csum_b->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
3357     } // Fl_Check_Button* file_gen_csum_b
3358     classify_file_w->set_modal();
3359     classify_file_w->end();
3360   } // Fl_Double_Window* classify_file_w
3361   { notes_w = new Fl_Double_Window(730, 370, gettext("Notes Module"));
3362     notes_w->color((Fl_Color)31);
3363     { Fl_Button* o = new Fl_Button(605, 312, 112, 25, gettext("Cancel"));
3364       o->labeltype(FL_ENGRAVED_LABEL);
3365       o->callback((Fl_Callback*)cb_Cancel7);
3366     } // Fl_Button* o
3367     { notes_module_status_to = new Fl_Output(0, 349, 733, 21);
3368       notes_module_status_to->box(FL_PLASTIC_UP_BOX);
3369       notes_module_status_to->color((Fl_Color)31);
3370     } // Fl_Output* notes_module_status_to
3371     { Fl_Button* o = new Fl_Button(21, 312, 112, 25, gettext("New"));
3372       o->labeltype(FL_ENGRAVED_LABEL);
3373       o->callback((Fl_Callback*)cb_New1);
3374     } // Fl_Button* o
3375     { Fl_Button* o = new Fl_Button(154, 312, 128, 25, gettext("Edit"));
3376       o->labeltype(FL_ENGRAVED_LABEL);
3377       o->callback((Fl_Callback*)cb_Edit2);
3378     } // Fl_Button* o
3379     { notes_tree_scroll = new Fl_Scroll_Resize(13, 10, 705, 289);
3380       notes_tree_scroll->box(FL_ENGRAVED_FRAME);
3381       notes_tree_scroll->color((Fl_Color)28);
3382       notes_tree_scroll->selection_color(FL_BACKGROUND_COLOR);
3383       notes_tree_scroll->labeltype(FL_NORMAL_LABEL);
3384       notes_tree_scroll->labelfont(0);
3385       notes_tree_scroll->labelsize(14);
3386       notes_tree_scroll->labelcolor(FL_FOREGROUND_COLOR);
3387       notes_tree_scroll->align(FL_ALIGN_TOP);
3388       notes_tree_scroll->when(FL_WHEN_RELEASE);
3389       notes_tree = new Fl_Toggle_Tree(12, 12, notes_tree_scroll->w(), 10);
3390       notes_tree->callback(notes_tree_cb); notes_tree->user_data((void *)notes_tree_scroll);
3391       notes_w->resizable(notes_tree_scroll);
3392       notes_tree_scroll->resizable(notes_tree);
3393       notes_tree_scroll->end();
3394     } // Fl_Scroll_Resize* notes_tree_scroll
3395     { Fl_Button* o = new Fl_Button(300, 312, 112, 25, gettext("Delete"));
3396       o->labeltype(FL_ENGRAVED_LABEL);
3397       o->callback((Fl_Callback*)cb_Delete3);
3398     } // Fl_Button* o
3399     notes_w->end();
3400   } // Fl_Double_Window* notes_w
3401   { edit_note_w = new Fl_Double_Window(1020, 385, gettext("Edit Note"));
3402     edit_note_w->color((Fl_Color)31);
3403     { Fl_Button* o = new Fl_Button(648, 321, 112, 25, gettext("Cancel"));
3404       o->labeltype(FL_ENGRAVED_LABEL);
3405       o->callback((Fl_Callback*)cb_Cancel8);
3406     } // Fl_Button* o
3407     { Fl_Input* o = note_name_i = new Fl_Input(16, 27, 496, 26, gettext("Name"));
3408       note_name_i->color((Fl_Color)29);
3409       note_name_i->labeltype(FL_ENGRAVED_LABEL);
3410       note_name_i->align(FL_ALIGN_TOP);
3411       o->maximum_size(256);
3412     } // Fl_Input* note_name_i
3413     { Fl_Input* o = note_url_i = new Fl_Input(16, 83, 496, 26, gettext("URL"));
3414       note_url_i->color((Fl_Color)29);
3415       note_url_i->labeltype(FL_ENGRAVED_LABEL);
3416       note_url_i->align(FL_ALIGN_TOP);
3417       o->maximum_size(256);
3418     } // Fl_Input* note_url_i
3419     { Fl_Input* o = note_text_i = new Fl_Input(16, 141, 496, 158, gettext("Text"));
3420       note_text_i->type(4);
3421       note_text_i->color((Fl_Color)29);
3422       note_text_i->labeltype(FL_ENGRAVED_LABEL);
3423       note_text_i->align(FL_ALIGN_TOP);
3424       o->maximum_size(4096);
3425     } // Fl_Input* note_text_i
3426     { edit_note_to = new Fl_Output(0, 364, 1022, 21);
3427       edit_note_to->box(FL_PLASTIC_UP_BOX);
3428       edit_note_to->color((Fl_Color)31);
3429       edit_note_to->labelsize(10);
3430       edit_note_to->textsize(10);
3431     } // Fl_Output* edit_note_to
3432     { Fl_Return_Button* o = new Fl_Return_Button(279, 321, 112, 25, gettext("Ok"));
3433       o->labeltype(FL_ENGRAVED_LABEL);
3434       o->callback((Fl_Callback*)cb_Ok2);
3435     } // Fl_Return_Button* o
3436     { Fl_Box* o = new Fl_Box(535, 72, 467, 227);
3437       o->box(FL_ENGRAVED_FRAME);
3438     } // Fl_Box* o
3439     { note_mtag_b = new Fl_Button(594, 93, 348, 25, gettext("Main Note Tag (Not Set)"));
3440       note_mtag_b->tooltip(gettext("Note Main Tag"));
3441       note_mtag_b->box(FL_PLASTIC_THIN_UP_BOX);
3442       note_mtag_b->labeltype(FL_ENGRAVED_LABEL);
3443       note_mtag_b->callback((Fl_Callback*)cb_note_mtag_b);
3444     } // Fl_Button* note_mtag_b
3445     { note_tags_br = new Fl_Browser(559, 146, 420, 102, gettext("Additional Note Tags"));
3446       note_tags_br->type(3);
3447       note_tags_br->color((Fl_Color)46);
3448       note_tags_br->labeltype(FL_ENGRAVED_LABEL);
3449       note_tags_br->align(FL_ALIGN_TOP);
3450     } // Fl_Browser* note_tags_br
3451     { note_add_tag_b = new Fl_Button(584, 258, 138, 25, gettext("Add Tag"));
3452       note_add_tag_b->box(FL_PLASTIC_THIN_UP_BOX);
3453       note_add_tag_b->labeltype(FL_ENGRAVED_LABEL);
3454       note_add_tag_b->callback((Fl_Callback*)cb_note_add_tag_b);
3455     } // Fl_Button* note_add_tag_b
3456     { note_remove_tag_b = new Fl_Button(811, 258, 138, 25, gettext("Remove Tag"));
3457       note_remove_tag_b->box(FL_PLASTIC_THIN_UP_BOX);
3458       note_remove_tag_b->labeltype(FL_ENGRAVED_LABEL);
3459       note_remove_tag_b->callback((Fl_Callback*)cb_note_remove_tag_b);
3460     } // Fl_Button* note_remove_tag_b
3461     { note_secured_ch = new Fl_Choice(536, 27, 211, 23, gettext("Secure Level"));
3462       note_secured_ch->down_box(FL_BORDER_BOX);
3463       note_secured_ch->color((Fl_Color)48);
3464       note_secured_ch->labeltype(FL_ENGRAVED_LABEL);
3465       note_secured_ch->align(FL_ALIGN_TOP_LEFT);
3466       note_secured_ch->deactivate();
3467       note_secured_ch->menu(menu_note_secured_ch);
3468     } // Fl_Choice* note_secured_ch
3469     edit_note_w->set_modal();
3470     edit_note_w->end();
3471   } // Fl_Double_Window* edit_note_w
3472   { delete_note_w = new Fl_Double_Window(388, 168, gettext("Delete Note"));
3473     delete_note_w->color((Fl_Color)31);
3474     { Fl_Button* o = new Fl_Button(239, 122, 112, 25, gettext("Cancel"));
3475       o->labeltype(FL_ENGRAVED_LABEL);
3476       o->callback((Fl_Callback*)cb_Cancel9);
3477     } // Fl_Button* o
3478     { Fl_Button* o = new Fl_Button(40, 122, 112, 25, gettext("Delete"));
3479       o->labeltype(FL_ENGRAVED_LABEL);
3480       o->callback((Fl_Callback*)cb_Delete4);
3481     } // Fl_Button* o
3482     { delete_sfinx_note_to = new Fl_Output(31, 26, 330, 26, gettext("Please confirm deletion of the note"));
3483       delete_sfinx_note_to->box(FL_ENGRAVED_FRAME);
3484       delete_sfinx_note_to->color((Fl_Color)29);
3485       delete_sfinx_note_to->labeltype(FL_ENGRAVED_LABEL);
3486       delete_sfinx_note_to->align(FL_ALIGN_TOP);
3487     } // Fl_Output* delete_sfinx_note_to
3488     { note_deletion_type_ch = new Fl_Choice(74, 80, 240, 23, gettext("Associated Data Deletion Action"));
3489       note_deletion_type_ch->down_box(FL_BORDER_BOX);
3490       note_deletion_type_ch->color((Fl_Color)48);
3491       note_deletion_type_ch->labeltype(FL_ENGRAVED_LABEL);
3492       note_deletion_type_ch->align(FL_ALIGN_TOP);
3493       note_deletion_type_ch->menu(menu_note_deletion_type_ch);
3494     } // Fl_Choice* note_deletion_type_ch
3495     delete_note_w->set_modal();
3496     delete_note_w->end();
3497   } // Fl_Double_Window* delete_note_w
3498   { search_browser_w = new Fl_Double_Window(854, 476, gettext("Search Browser"));
3499     search_browser_w->color((Fl_Color)31);
3500     { Fl_Button* o = new Fl_Button(638, 449, 187, 20, gettext("Cancel"));
3501       o->box(FL_PLASTIC_ROUND_UP_BOX);
3502       o->color(FL_FOREGROUND_COLOR);
3503       o->labeltype(FL_ENGRAVED_LABEL);
3504       o->callback((Fl_Callback*)cb_Cancela);
3505     } // Fl_Button* o
3506     { search_browser_br = new Fl_Browser(4, 4, 846, 439);
3507       search_browser_br->type(2);
3508       search_browser_br->box(FL_GTK_THIN_UP_BOX);
3509       search_browser_br->color((Fl_Color)44);
3510       Fl_Group::current()->resizable(search_browser_br);
3511     } // Fl_Browser* search_browser_br
3512     { Fl_Button* o = new Fl_Button(25, 449, 169, 20, gettext("Previous Page"));
3513       o->box(FL_PLASTIC_ROUND_UP_BOX);
3514       o->color(FL_FOREGROUND_COLOR);
3515       o->labeltype(FL_ENGRAVED_LABEL);
3516     } // Fl_Button* o
3517     { Fl_Button* o = new Fl_Button(231, 449, 169, 20, gettext("Next Page"));
3518       o->box(FL_PLASTIC_ROUND_UP_BOX);
3519       o->color(FL_FOREGROUND_COLOR);
3520       o->labeltype(FL_ENGRAVED_LABEL);
3521     } // Fl_Button* o
3522     { goto_page_ch = new Fl_Choice(531, 450, 72, 20, gettext("Current Page "));
3523       goto_page_ch->box(FL_PLASTIC_THIN_UP_BOX);
3524       goto_page_ch->down_box(FL_PLASTIC_THIN_UP_BOX);
3525       goto_page_ch->color((Fl_Color)44);
3526       goto_page_ch->labeltype(FL_ENGRAVED_LABEL);
3527     } // Fl_Choice* goto_page_ch
3528     { search_menu = new Search_Menu_Button(6, 6, 842, 434);
3529       search_menu->type(6);
3530       search_menu->box(FL_NO_BOX);
3531       search_menu->color(FL_BACKGROUND_COLOR);
3532       search_menu->selection_color(FL_SELECTION_COLOR);
3533       search_menu->labeltype(FL_NORMAL_LABEL);
3534       search_menu->labelfont(0);
3535       search_menu->labelsize(14);
3536       search_menu->labelcolor(FL_FOREGROUND_COLOR);
3537       search_menu->callback((Fl_Callback*)search_menu_cb);
3538       search_menu->align(FL_ALIGN_CENTER);
3539       search_menu->when(FL_WHEN_RELEASE_ALWAYS);
3540       search_menu->menu(menu_search_menu);
3541     } // Search_Menu_Button* search_menu
3542     search_browser_w->set_modal();
3543     search_browser_w->end();
3544   } // Fl_Double_Window* search_browser_w
3545   { browse_w = new Fl_Double_Window(730, 370, gettext("Browse Sfinx Data"));
3546     browse_w->color((Fl_Color)31);
3547     { Fl_Button* o = new Fl_Button(596, 312, 112, 25, gettext("Cancel"));
3548       o->labeltype(FL_ENGRAVED_LABEL);
3549       o->callback((Fl_Callback*)cb_Cancelb);
3550     } // Fl_Button* o
3551     { browse_status_to = new Fl_Output(0, 349, 733, 21);
3552       browse_status_to->box(FL_PLASTIC_UP_BOX);
3553       browse_status_to->color((Fl_Color)31);
3554     } // Fl_Output* browse_status_to
3555     { Fl_Button* o = new Fl_Button(154, 312, 128, 25, gettext("Edit"));
3556       o->labeltype(FL_ENGRAVED_LABEL);
3557       o->callback((Fl_Callback*)cb_Edit3);
3558       o->deactivate();
3559     } // Fl_Button* o
3560     { browse_scroll = new Fl_Scroll_Resize(13, 10, 705, 289);
3561       browse_scroll->box(FL_ENGRAVED_FRAME);
3562       browse_scroll->color((Fl_Color)28);
3563       browse_scroll->selection_color(FL_BACKGROUND_COLOR);
3564       browse_scroll->labeltype(FL_NORMAL_LABEL);
3565       browse_scroll->labelfont(0);
3566       browse_scroll->labelsize(14);
3567       browse_scroll->labelcolor(FL_FOREGROUND_COLOR);
3568       browse_scroll->align(FL_ALIGN_TOP);
3569       browse_scroll->when(FL_WHEN_RELEASE);
3570       browse_tree = new Fl_Toggle_Tree(12, 12, browse_scroll->w(), 10);
3571       browse_tree->callback(browse_tree_cb); browse_tree->user_data((void *)browse_scroll);
3572       browse_w->resizable(browse_scroll);
3573       browse_scroll->resizable(browse_tree);
3574       browse_scroll->end();
3575     } // Fl_Scroll_Resize* browse_scroll
3576     { Fl_Button* o = new Fl_Button(300, 312, 112, 25, gettext("Delete"));
3577       o->labeltype(FL_ENGRAVED_LABEL);
3578       o->callback((Fl_Callback*)cb_Delete5);
3579       o->deactivate();
3580     } // Fl_Button* o
3581     { Fl_Button* o = new Fl_Button(24, 312, 112, 25, gettext("View"));
3582       o->labeltype(FL_ENGRAVED_LABEL);
3583       o->deactivate();
3584     } // Fl_Button* o
3585     browse_w->set_modal();
3586     browse_w->end();
3587     browse_w->resizable(browse_w);
3588   } // Fl_Double_Window* browse_w
3589   { search_w = new Fl_Double_Window(749, 389, gettext("Search & Browse"));
3590     search_w->color((Fl_Color)31);
3591     { Fl_Button* o = new Fl_Button(182, 347, 363, 25, gettext("Cancel"));
3592       o->box(FL_PLASTIC_ROUND_UP_BOX);
3593       o->labeltype(FL_ENGRAVED_LABEL);
3594       o->callback((Fl_Callback*)cb_Cancelc);
3595     } // Fl_Button* o
3596     { Fl_Return_Button* o = new Fl_Return_Button(539, 48, 163, 25, gettext("Search"));
3597       o->box(FL_PLASTIC_ROUND_UP_BOX);
3598       o->labeltype(FL_ENGRAVED_LABEL);
3599       o->callback((Fl_Callback*)cb_Search1);
3600     } // Fl_Return_Button* o
3601     { Fl_Check_Button* o = search_in_files_b = new Fl_Check_Button(43, 96, 146, 23, gettext("Search in Files"));
3602       search_in_files_b->box(FL_PLASTIC_UP_BOX);
3603       search_in_files_b->down_box(FL_DOWN_BOX);
3604       search_in_files_b->selection_color(FL_SELECTION_COLOR);
3605       search_in_files_b->labeltype(FL_ENGRAVED_LABEL);
3606       search_in_files_b->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
3607       o->value(1);
3608     } // Fl_Check_Button* search_in_files_b
3609     { Fl_Box* o = new Fl_Box(87, 141, 561, 189);
3610       o->box(FL_ROUNDED_FRAME);
3611     } // Fl_Box* o
3612     { search_slices_br = new Fl_Browser(105, 173, 525, 102, gettext("Restrict Search by Slices"));
3613       search_slices_br->type(3);
3614       search_slices_br->color((Fl_Color)46);
3615       search_slices_br->labeltype(FL_ENGRAVED_LABEL);
3616       search_slices_br->align(FL_ALIGN_TOP);
3617     } // Fl_Browser* search_slices_br
3618     { search_add_slice_b = new Fl_Button(161, 289, 138, 25, gettext("Add Slice"));
3619       search_add_slice_b->box(FL_PLASTIC_THIN_UP_BOX);
3620       search_add_slice_b->labeltype(FL_ENGRAVED_LABEL);
3621       search_add_slice_b->callback((Fl_Callback*)cb_search_add_slice_b);
3622     } // Fl_Button* search_add_slice_b
3623     { Fl_Button* o = new Fl_Button(437, 289, 138, 25, gettext("Remove Slice"));
3624       o->box(FL_PLASTIC_THIN_UP_BOX);
3625       o->labeltype(FL_ENGRAVED_LABEL);
3626       o->callback((Fl_Callback*)cb_Remove);
3627     } // Fl_Button* o
3628     { search_i = new Fl_Input(46, 47, 447, 26, gettext("Search for ..."));
3629       search_i->color((Fl_Color)29);
3630       search_i->labeltype(FL_ENGRAVED_LABEL);
3631       search_i->align(FL_ALIGN_TOP);
3632     } // Fl_Input* search_i
3633     { Fl_Button* o = new Fl_Button(539, 96, 163, 25, gettext("Browse"));
3634       o->box(FL_PLASTIC_ROUND_UP_BOX);
3635       o->labeltype(FL_ENGRAVED_LABEL);
3636       o->callback((Fl_Callback*)cb_Browse);
3637     } // Fl_Button* o
3638     { Fl_Check_Button* o = search_in_notes_b = new Fl_Check_Button(204, 96, 146, 23, gettext("Search in Notes"));
3639       search_in_notes_b->box(FL_PLASTIC_UP_BOX);
3640       search_in_notes_b->down_box(FL_DOWN_BOX);
3641       search_in_notes_b->selection_color(FL_SELECTION_COLOR);
3642       search_in_notes_b->labeltype(FL_ENGRAVED_LABEL);
3643       search_in_notes_b->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
3644       o->value(1);
3645     } // Fl_Check_Button* search_in_notes_b
3646     search_w->set_modal();
3647     search_w->end();
3648   } // Fl_Double_Window* search_w
3649   { about_w = new Fl_Double_Window(374, 154);
3650     { Fl_Button* o = new Fl_Button(76, 122, 226, 20, gettext("Ok"));
3651       o->box(FL_PLASTIC_ROUND_UP_BOX);
3652       o->labeltype(FL_ENGRAVED_LABEL);
3653       o->callback((Fl_Callback*)cb_Ok3);
3654     } // Fl_Button* o
3655     { Fl_Box* o = new Fl_Box(10, 9, 130, 101);
3656       o->image(image_sfinx);
3657     } // Fl_Box* o
3658     { Fl_Box* o = new Fl_Box(203, 6, 99, 33, gettext("Sfinx"));
3659       o->labeltype(FL_EMBOSSED_LABEL);
3660       o->labelfont(9);
3661       o->labelsize(32);
3662     } // Fl_Box* o
3663     { Fl_Box* o = new Fl_Box(150, 40, 214, 22, gettext("Personal knowledge manager"));
3664       o->labeltype(FL_EMBOSSED_LABEL);
3665       o->labelcolor((Fl_Color)64);
3666     } // Fl_Box* o
3667     { Fl_Box* o = new Fl_Box(150, 58, 214, 22, gettext("Copyright (C) 2007 Rus V. Brushkoff"));
3668       o->labeltype(FL_EMBOSSED_LABEL);
3669       o->labelfont(8);
3670       o->labelsize(11);
3671       o->labelcolor(FL_BLACK);
3672     } // Fl_Box* o
3673     { Fl_Box* o = new Fl_Box(150, 75, 214, 22, gettext("Email:  Rus@@Sfinx.Od.UA"));
3674       o->labeltype(FL_EMBOSSED_LABEL);
3675       o->labelfont(8);
3676       o->labelsize(11);
3677       o->labelcolor(FL_BLACK);
3678     } // Fl_Box* o
3679     { Fl_Box* o = new Fl_Box(150, 93, 214, 22, gettext("http://sfinx.od.ua/index.php?id=sfinx"));
3680       o->labeltype(FL_EMBOSSED_LABEL);
3681       o->labelfont(8);
3682       o->labelsize(11);
3683       o->labelcolor(FL_BLACK);
3684     } // Fl_Box* o
3685     about_w->end();
3686   } // Fl_Double_Window* about_w
3687   Pixmap p, mask;
3688 fl_open_display();
3689 XpmCreatePixmapFromData(fl_display, DefaultRootWindow(fl_display), (char **)sfinx_xpm, &p, &mask, NULL);
3690 main_w->icon((char *)p);
3691 main_w->show();
3694 void x11_ui::edit_slice(sfinx_slice_t *slice) {
3695   // need locks
3696 Fl::lock();
3697 slice_name_i->value(slice->name());
3698 slice_directory_i->value(slice->directory());
3699 slice_name_i->take_focus();
3700 slice_description_i->value(slice->description());
3701 string status_line = "Parent slice: ";
3702 status_line += slice->parent_name();
3703 int cyear, cmonth, cday, eyear, emonth, eday, chour, cmin, csec, ehour, emin, esec;
3704 slice->ctime.GetDate(cyear, cmonth, cday);
3705 slice->etime.GetDate(eyear, emonth, eday);
3706 slice->ctime.GetTime(chour, cmin, csec);
3707 slice->etime.GetTime(ehour, emin, esec);
3708 char buf[128];
3709 sprintf(buf, " | Created at %02d/%02d/%02d %02d:%02d:%02d, Modified at %02d/%02d/%02d %02d:%02d:%02d", cyear, cmonth, cday, chour, cmin,
3710         csec, eyear, emonth, eday, ehour, emin, esec);
3711 status_line += buf;
3712 edit_slice_to->value(status_line.c_str());
3713 edit_slice_w->show();
3714 Fl::unlock();
3717 void x11_ui::notes_module_edit(sfinx_note_t *n) {
3718   Fl::lock();
3719 sfinx_note_t *note = new sfinx_note_t;
3720 note->copy(n);
3721 note->tid(SFINX_NOTES_MODULE_EDIT);
3722 edit_note_w->user_data((void *)note);
3723 char buf[256];
3724 int eyear, emonth, eday, ehour, emin, esec, cyear, cmonth, cday, chour, cmin, csec;
3725 note->etime.GetDate(eyear, emonth, eday);
3726 note->etime.GetTime(ehour, emin, esec);
3727 note->ctime.GetDate(cyear, cmonth, cday);
3728 note->ctime.GetTime(chour, cmin, csec);
3729 sprintf(buf, "Modified: %02d/%02d/%04d %02d:%02d:%02d | Last Status Changed: %02d/%02d/%04d %02d:%02d:%02d", cday, cmonth, cyear,
3730         chour, cmin, csec, eday, emonth, eyear, ehour, emin, esec);
3731 edit_note_to->value(buf);
3732 note_name_i->value(note->name.c_str());
3733 note_name_i->take_focus();
3734 note_url_i->value(note->url.c_str());
3735 note_text_i->value(note->text.c_str());
3736 // main tag
3737 note_mtag_b->user_data(&(note->mtag));
3738 note_mtag_b->copy_label((note->mtag.name + " [ " + note->mtag.description + " ]").c_str());     
3739 note_mtag_b->redraw();
3740 // add tags
3741 note_tags_br->clear();
3742 for (u32_t i = 0; i < note->tags.size(); i++) {
3743         string s = note->tags[i].name + " [ " + note->tags[i].description + " ]";
3744         note_tags_br->add(s.c_str(), &(note->tags[i]));
3746 edit_note_w->label("Edit Note");
3747 edit_note_w->show();
3748 Fl::unlock();
3751 void x11_ui::notes_module_reply(sfinx_string_t *classify_error) {
3752   Fl::lock();
3753 if (classify_error->size() == 1) {
3754         ::fill_objects_tree(notes_tree, 1 << SFINX_NOTE_OBJECT, 0, 1); // fluid bugs if any default params exists !
3755         edit_note_w->hide();
3756 } else
3757         fl_alert(classify_error->c_str());
3758 Fl::unlock();
3761 void x11_ui::files_module_edit_reply(sfinx_string_t *classify_error) {
3762   Fl::lock();
3763 if (classify_error->size() == 1) {
3764         if (current_file.tid() == SFINX_FILES_MODULE_UNSORTED_TREE_REQUEST)
3765                 app->sfinx.send(current_file);
3766         ::fill_objects_tree(files_tree, (1 << SFINX_FILE_OBJECT), 0, 1); // fluid bugs if any default params exists !
3767         classify_file_w->hide();
3768 } else
3769         fl_alert(classify_error->c_str());
3770 Fl::unlock();
3773 void x11_ui::files_module_edit(sfinx_file_t *f) {
3774   Fl::lock();
3775 static sfinx_file_t file;
3776 file.copy(f);
3777 char buf[256];
3778 int eyear, emonth, eday, ehour, emin, esec, cyear, cmonth, cday, chour, cmin, csec;
3779 file.etime.GetDate(eyear, emonth, eday);
3780 file.etime.GetTime(ehour, emin, esec);
3781 file.ctime.GetDate(cyear, cmonth, cday);
3782 file.ctime.GetTime(chour, cmin, csec);
3783 sprintf(buf, "%llu bytes | Modified: %02d/%02d/%04d %02d:%02d:%02d | Last Status Changed: %02d/%02d/%04d %02d:%02d:%02d", file.fsize, cday, cmonth, cyear,
3784         chour, cmin, csec, eday, emonth, eyear, ehour, emin, esec);
3785 string path;
3786 app->files_module_conf.get(FILES_MODULE_SORTED_TREE_PATH, path);
3787 string t = "URL: " + path + current_file.name + "/" + file.name + " | " + file.mimetype + " | Size: " + buf;
3788 classify_file_to->value(t.c_str());
3789 file_title_i->value(file.title.c_str());
3790 file_name_i->value(file.name.c_str());
3791 // save orig file name
3792 file.orig_name = file.name;
3793 file.tid(SFINX_FILES_MODULE_EDIT_FILE); // edit file
3794 file_title_i->take_focus();
3795 file_authority_i->value(file.authority.c_str());
3796 file_description_i->value(file.description.c_str());
3797 file_comments_i->value(file.comments.c_str());
3798 sorted_location_b->value(file.sorted_location);
3799 file_compress_b->value(file.store_compressed);
3800 file_gen_csum_b->value(file.generate_csum);
3801 file_mtag_b->copy_label((file.mtag.name + " [ " + file.mtag.description + " ]").c_str());
3802 file_mtag_b->user_data(&file.mtag);
3803 file_tags_br->clear();
3804 for (u32_t i = 0; i < file.tags.size(); i++) {
3805         string s = file.tags[i].name + " [ " + file.tags[i].description + " ]";
3806         file_tags_br->add(s.c_str(), &(file.tags[i]));
3808 classify_file_w->user_data((void *)&file);
3809 classify_file_w->label("Edit File");
3810 classify_file_w->show();
3811 Fl::unlock();
3814 void x11_ui::search_browser(sfinx_pair_vector_t *r) {
3815   Fl::lock();
3816 search_browser_br->clear();
3817 if (!r->len()) {
3818         fl_message("Sfinx has no data for this query");
3819         Fl::unlock();
3820         return;
3822 goto_page_ch->clear();
3823 /*for (u32_t i = 1; i < 50; i++) {
3824         char b[32];
3825         sprintf(b, "%d", i);
3826         goto_page_ch->add(b, 0, 0, (void *)i);
3827 //      Fl_Menu_Item *item = (Fl_Menu_Item *)(goto_page_ch->menu() + n);
3828 //      item->color(FL_GREEN);
3829 } */
3830 goto_page_ch->value(0);
3831 //goto_page_ch->selection_color(FL_GREEN);
3833 // fill browser
3834 for (u32_t i = 0; i < r->len(); i++) {
3835         sfinx_pair_t *p = r->find(i);
3836         if (!p)
3837                 bug();
3838         sfinx_t *el;
3839         if (!p->get(i, &el))
3840                 bug();
3841         // adding element
3842         string inf;
3843         app->prepare_search_info(el, inf);
3844         string::size_type pos = 0, found;
3845         while ((found = inf.find('\n', pos)) != string::npos) {
3846                 string line(inf, pos, found - pos);
3847                 search_browser_br->add(line.c_str()); // add obj pointer for clicks ...
3848                 pos = found + 1;
3849         }
3850         search_browser_br->add("@-");
3852 search_browser_w->show();
3853 Fl::unlock();
3856 void x11_ui::fill_objects_tree() {
3857   Fl::lock();
3858 Fl_Toggle_Tree *tree = fill_tree;
3859 u32_t mask = fill_tree_mask;
3860 if (!tree) {
3861  tree = slices_tree;
3862  mask = SFINX_SLICE_OBJECT;
3864 tree->clear();
3865 tree->draw_lines(1);
3866 tree->alternate_color(FL_LIGHT2);
3867 tree->trim_color(FL_LIGHT1);
3868 tree->edit_on_reselect(0);
3869 sfinx_slice_t *slice;
3870 Fl_Toggle_Node *node;
3871 u32_t max_name_len = 0;
3872 for (u32_t i = 0; i < app->slices.len(); i++) {
3873         slice = app->slices.get(i);
3874         if (slice == fill_tree_except)
3875                 continue;
3876         //debug("slice name - %s, id - %lld, parent_id - %lld", slice->name(), slice->id, slice->parent_id);
3877         string name = slice->name() + string(" [ ") +
3878                 slice->description() + string(" ]");
3879         // replace \n with spaces
3880         string filt_elems( "\n");
3881         string::size_type pos = 0;
3882         while (( pos = name.find_first_of(filt_elems, pos)) != string::npos)
3883                 name.replace(pos, 1, string(" "));
3884         if (name.size() > max_name_len)
3885                 max_name_len = name.size();
3886         if (!slice->parent_id) {
3887                 node = tree->add_sub((char *)name.c_str(), 1, &slice_pixmap, to_voidp(slice));
3888                 if (fill_tree_mask & ((1 << SFINX_NOTE_OBJECT) | (1 << SFINX_FILE_OBJECT))) {
3889                         tree->open(node);
3890                         // add notes
3891                         for (u32_t x = 0; x < slice->objs.size(); x++) {
3892                                 switch (slice->objs[x].type) {
3893                                         case SFINX_NOTE_OBJECT:
3894                                                 if (fill_tree_mask & (1 << SFINX_NOTE_OBJECT))
3895                                                         tree->add_sub((char *)(slice->objs[x].name + slice->objs[x].description).c_str(), 0, &note_pixmap,
3896                                                                 to_voidp(&(slice->objs[x])));
3897                                                 break;
3898                                         case SFINX_FILE_OBJECT:
3899                                                 if (fill_tree_mask & (1 << SFINX_FILE_OBJECT))
3900                                                         tree->add_sub((char *)(slice->objs[x].name + slice->objs[x].description).c_str(), 0, &file_pixmap,
3901                                                                 to_voidp(&(slice->objs[x])));
3902                                                 break;
3903                                         default:
3904                                                 debug("unsupported fill tree type %d", slice->objs[x].type);
3905                                                 break;
3906                         } // switch
3907                                 tree->traverse_up();
3908                         } // for
3909                 }
3910         } else {
3911                 node = tree->traverse_start();
3912                 while (node) {
3913                         sfinx_slice_t *s = (sfinx_slice_t *) node->user_data();
3914                         if (s->id == slice->parent_id)
3915                                 break;
3916                         node = tree->traverse_forward();
3917                 }
3918                 if (node) {
3919                         tree->open(node);
3920                         node = tree->add_sub((char *)name.c_str(), 1, &slice_pixmap, to_voidp(slice));
3921                 if (fill_tree_mask & ((1 << SFINX_NOTE_OBJECT) | (1 << SFINX_FILE_OBJECT))) {
3922                         tree->open(node);
3923                         // add notes
3924                         for (u32_t x = 0; x < slice->objs.size(); x++) {
3925                                 switch (slice->objs[x].type) {
3926                                         case SFINX_NOTE_OBJECT:
3927                                                 if (fill_tree_mask & (1 << SFINX_NOTE_OBJECT))
3928                                                         tree->add_sub((char *)(slice->objs[x].name + slice->objs[x].description).c_str(), 0, &note_pixmap,
3929                                                                 to_voidp(&(slice->objs[x])));
3930                                                 break;
3931                                         case SFINX_FILE_OBJECT:
3932                                                 if (fill_tree_mask & (1 << SFINX_FILE_OBJECT))
3933                                                         tree->add_sub((char *)(slice->objs[x].name + slice->objs[x].description).c_str(), 0, &file_pixmap,
3934                                                                 to_voidp(&(slice->objs[x])));
3935                                                 break;
3936                                         default:
3937                                                 debug("unsupported fill tree type %d", slice->objs[x].type);
3938                                                 break;
3939                         } // switch
3940                                 tree->traverse_up();
3941                         } // for
3942                 }
3943                 } // node not found - just ignore
3944         }
3946 s32_t width = max_name_len * 8;
3947 // need to count depth for width update
3948 Fl_Scroll_Resize *tree_scroll = (Fl_Scroll_Resize *) tree->user_data();
3949 if (!tree_scroll) // he, forgot to set ;)
3950         bug();
3951 tree->resize(tree->x(), tree->y(), width > tree_scroll->w() ? width : tree_scroll->w(), tree->h());
3952 //tree->redraw();
3953 //tree_scroll->redraw();
3954 // try to select previous node
3955 //node = slices_tree->find(to_voidp(current_slice_id));
3956 //if (node)
3957 //      slices_tree->select_range(node, node);
3958 Fl::unlock();
3961 void x11_ui::fill_unsorted_files_tree(sfinx_files_vector_t *tree_) {
3962   Fl::lock();
3963 static sfinx_files_vector_t tree;
3964 tree.copy(tree_);
3965 files_module_tree_br->user_data((void *)&tree);
3966 files_module_tree_br->clear();
3967 char buf[256];
3968 u32_t files = 0, dirs = 0;
3969 // set parent dir id
3970 if (tree.files.size())
3971         current_file.mtag.id = tree.files[0]->compressed_fsize;
3972 for (u32_t i = 0; i < tree.files.size(); i++) {
3973         if (tree.files[i]->is_directory)
3974                 strcpy(buf, "\t@b@.");
3975         else
3976                 strcpy(buf, "\t");
3977         strncat(buf, tree.files[i]->name.c_str(), 50);
3978         char dir_len[64];
3979         if (tree.files[i]->is_directory) {
3980                 strcpy(dir_len, "\t@b@.< DIR >\t");
3981                 dirs++;
3982         } else {
3983                 sprintf(dir_len, "\t%llu\t", tree.files[i]->fsize);
3984                 files++;
3985         }
3986         strcat(buf, dir_len);
3987         int cyear, cmonth, cday, chour, cmin, csec;
3988         tree.files[i]->ctime.GetDate(cyear, cmonth, cday);
3989         tree.files[i]->ctime.GetTime(chour, cmin, csec);
3990         sprintf(dir_len, "%02d/%02d/%04d %02d:%02d:%02d\t", cday, cmonth, cyear, chour, cmin, csec);
3991         strcat(buf, dir_len);
3992         strcat(buf, tree.files[i]->mimetype.c_str());
3993         files_module_tree_br->add(buf);
3995 files_module_tree_br->redraw();
3996 string root;
3997 app->files_module_conf.get(FILES_MODULE_UNSORTED_PATH, root);
3998 sprintf(buf, "Path: %s | Total %d file%s and %d director%s", (root + current_file.name.c_str()).c_str(), files, (files == 1) ? "" : "s",  dirs,
3999         (dirs == 1) ? "y" : "ies");
4000 files_module_status_to->value(buf);
4001 files_module_status_to->redraw();
4002 // this is unsorted tree
4003 select_files_tree_b->user_data(0);
4004 select_files_tree_b->label("Show Sorted");
4005 select_files_tree_b->redraw();
4006 files_tree_scroll->hide();
4007 files_module_w->resizable(files_module_tree_br);
4008 files_module_tree_br->show();
4009 files_module_w->redraw();
4010 Fl::unlock();
4013 void x11_ui::fill_preferences() {
4014   Fl::lock();
4015 string t;
4016 app->files_module_conf.get(FILES_MODULE_UNSORTED_PATH, t);
4017 config_files_module_unsorted_path_i->value(t.c_str());
4018 app->files_module_conf.get(FILES_MODULE_SORTED_TREE_PATH, t);
4019 config_files_module_sorted_path_i->value(t.c_str());
4020 app->files_module_conf.get(FILES_MODULE_DESC_FILE_NAME, t);
4021 config_files_module_desc_file_name_i->value(t.c_str());
4022 u32_t gen_desc_files;
4023 app->files_module_conf.get(FILES_MODULE_DESC_FILE_ENABLE, &gen_desc_files);
4024 gen_desc_files_b->value(gen_desc_files);
4025 Fl::unlock();
4028 void x11_ui::log(int level, const char *fmt, ...) {
4029   char buf[10240];
4030 const char *level_str;
4031 static Mutex log_m;
4032 log_m.enterMutex();
4033 Fl::lock();
4034 ::va_list args;
4035 ::va_start(args, fmt);
4036 ::va_end(args);
4037 switch (level) {
4038         case SFINX_LOG_NOTICE:
4039                 level_str = "NOTICE";
4040                 break;
4041         case SFINX_LOG_WARN:
4042                 level_str = "WARN";
4043                 break;
4044         case SFINX_LOG_ERROR:
4045                 level_str = "ERROR";
4046                 break;
4047         case SFINX_LOG_FATAL:
4048                 level_str = "FATAL";
4049                 break;
4050         default:
4051                 level_str = "UNKN_LEVEL";
4053 // add time ?
4054 strcpy(buf, level_str);
4055 strcat(buf, ": ");
4056 ::vsnprintf(buf + strlen(level_str) + 2, sizeof(buf) - (strlen(level_str) + 2), fmt, args);
4057 log_br->add(buf);
4058 Fl::unlock();
4059 log_m.leaveMutex();
4062 void x11_ui::progress(sfinx_progress_t *p) {
4063   Fl::lock();
4064 static char buf[128];
4065 switch (p->status()) {
4066         case SFINX_PROGRESS_START:
4067                 progress_l->label(p->label());
4068                 strcpy(buf, p->strvalue());
4069                 progress_bar->label(buf);
4070                 progress_bar->minimum(0);
4071                 progress_bar->maximum(p->max());
4072                 progress_bar->value(p->value());
4073                 progress_w->show();
4074                 progress_w->redraw();
4075                 break;
4076         case SFINX_PROGRESS_END:
4077                 progress_w->hide();
4078                 break;
4079         case SFINX_PROGRESS_NONE:
4080         default:
4081                 break;
4083 Fl::unlock();
4086 void x11_ui::alert(sfinx_string_t *alert) {
4087   Fl::lock();
4088 if (alert->size() != 1)
4089         fl_alert(alert->c_str());
4090 Fl::unlock();