Subversion Repositories gelsvn

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
667 khor 1
/* ----------------------------------------------------------------------- *
2
 * This file is part of GEL, http://www.imm.dtu.dk/GEL
3
 * Copyright (C) the authors and DTU Informatics
4
 * For license and list of authors, see ../../doc/intro.pdf
5
 * ----------------------------------------------------------------------- */
6
 
7
/**
8
 * @file   Console.cpp
9
 * @author Anders Wang Kristensen <awk@imm.dtu.dk>
10
 * @date   Fri Oct 22 18:36:58 2011
11
 */
12
 
13
#define _CRT_SECURE_NO_WARNINGS
14
 
15
#include "Console.h"
16
#include "../GL/glew.h"
17
#include <cstdarg>
18
#include <set>
19
#include <iostream> //cerr
20
#include <iterator> //back_inserter
21
#include <fstream>
22
#include <utility> //min
23
#include <algorithm>
24
 
25
#include "stb_image.h"
26
#include "stb_image_write.h"
27
 
28
static const char* history_filename = "history.txt";
29
 
30
static const int line_spacing = 13;
31
static const int char_spacing = 7;
32
 
33
using namespace GLGraphics;
34
 
35
//----------------------------------------------------------------------------
36
 
37
Console::Console() : m_history_index(0), m_caret(0),
38
                     m_id_counter(0), m_is_executing(false),
39
                     m_font(0)
40
{
41
    load_history();
42
 
43
    //register builtin commands
44
    void (Console::*help0)() = &Console::help;
45
    reg_cmd0("help",
46
             std::bind(help0, this), "Print list of commands.");
47
 
48
    void (Console::*help1)(const std::string&) = &Console::help;
49
    reg_cmd1<std::string>("help", std::bind(help1, this, std::placeholders::_1),
50
                          "Show help for specified command.");
51
 
52
    reg_cmd0("clear", std::bind(&Console::clear, this), "Clear console.");
53
 
54
    reg_cmd0("history", std::bind(&Console::history, this),
55
             "Show history of commands.");
56
    reg_cmd0("clear_history", std::bind(&Console::history, this),
57
             "Clear history of commands.");
58
    reg_cmd0("load_history", std::bind(&Console::load_history, this),
59
             "Load history of commands from file.");
60
    reg_cmd0("save_history", std::bind(&Console::save_history, this),
61
             "Save history of commands to file.");
62
}
63
 
64
Console::~Console() throw()
65
{
66
    save_history();
67
}
68
 
69
//----------------------------------------------------------------------------
70
 
71
void Console::load_history()
72
{
73
    std::ifstream ifs(history_filename);
74
 
75
    while (ifs.good())
76
    {
77
        std::string line;
78
        getline(ifs, line);
79
        if (!line.empty())
80
            m_history.push_back(std::move(line));
81
    }
82
 
83
    m_history_index = m_history.size();
84
}
85
 
86
void Console::save_history() const
87
{
88
    std::ofstream ofs(history_filename);
89
    if (!ofs)
90
        std::cerr << "Console: Unable to save history.";
91
    else
92
        for (auto it=m_history.begin(); it!=m_history.end(); ++it)
93
            ofs << *it << '\n';
94
}
95
 
96
void Console::clear_history()
97
{
98
    m_history.clear();
99
    m_history_index = 0;
100
}
101
 
102
//----------------------------------------------------------------------------
103
 
104
void Console::display(int scaling)
105
{
106
    if (m_font == 0)
107
    {
108
        glGenTextures(1, &m_font);
109
        glBindTexture(GL_TEXTURE_2D, m_font);
110
        int width, height, components=1;
111
        unsigned char* data = stbi_load_from_memory(g_png_data,
112
            int(g_png_size), &width, &height, &components, 1);
113
        assert(data);
114
        unsigned char* p = data;
115
        unsigned char* q = data + width*(height-1);
116
        for (int h=0; h<height/2; ++h, q-=2*width)
117
            for (int w=0; w<width; ++w)
118
                std::swap(*p++, *q++);
119
        glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA8, width, height, 0,
120
            GL_ALPHA, GL_UNSIGNED_BYTE, data);
121
        stbi_image_free(data);
122
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
123
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
124
        glBindTexture(GL_TEXTURE_2D, 0);
125
    }
126
 
127
    //setup matrices
128
    int vp[4];
129
    glGetIntegerv(GL_VIEWPORT, vp);
130
    int width = vp[2];
131
    int height = vp[3];
132
 
133
    glMatrixMode(GL_PROJECTION);
134
    glPushMatrix();
135
    glLoadIdentity();
136
    gluOrtho2D(0, width, 0, height);
137
    glMatrixMode(GL_MODELVIEW);
138
    glPushMatrix();
139
    glLoadIdentity();
140
 
141
    //gray background + separator
142
    glPushAttrib(GL_COLOR_BUFFER_BIT);
143
    glPushAttrib(GL_ENABLE_BIT);
144
    glEnable(GL_BLEND);
145
    glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
146
    glDisable(GL_LIGHTING);
147
    glDisable(GL_DEPTH_TEST);
148
 
149
    glColor4f(0.15f, 0.15f, 0.15f, 0.75f);
150
    glRecti(0, 0, width, height);
151
 
152
    int current = 3;
153
 
154
    //draw caret
155
    if (!m_is_executing)
156
    {
157
        glColor4f(1,1,0, 0.75f);
158
        const int cx = int(m_caret*char_spacing*scaling) + char_spacing*scaling + 1;
159
        glRecti(cx, current, cx+char_spacing*scaling, current+2);
160
    }
161
    glPopAttrib();
162
    glPopAttrib();
163
 
164
    //restore matrices
165
    glMatrixMode(GL_PROJECTION);
166
    glPopMatrix();
167
    glMatrixMode(GL_MODELVIEW);
168
    glPopMatrix();
169
 
170
    //draw command line
171
    if (!m_is_executing)
172
    {
173
        draw_textf(scaling, 1, current,
174
                   0.9f, 0.9f, 0.9f,
175
                   ">%s", m_current_command.c_str());
176
        current += line_spacing*scaling;
177
    }
178
 
179
    //draw rest
180
    std::vector<std::string>::const_reverse_iterator it;
181
    for (it=m_buffer.rbegin(); it!=m_buffer.rend(); ++it)
182
    {
183
        draw_text(scaling, 1, current,
184
                  0.75f, 0.75f, 0.75f,
185
                  it->c_str());
186
        current += scaling * line_spacing;
187
 
188
        if (current > height)
189
            break;
190
    }
191
}
192
 
193
//----------------------------------------------------------------------------
194
 
195
void Console::draw_text(int scaling, int cx, int cy,
196
                        float r, float g, float b,
197
                        const char* buffer)
198
{
199
    //save OpenGL state
200
    glPushAttrib(GL_ENABLE_BIT);
201
    glPushAttrib(GL_COLOR_BUFFER_BIT);
202
    glPushAttrib(GL_DEPTH_BUFFER_BIT);
203
 
204
    //setup texture mapping + blending
205
    glDisable(GL_DEPTH_TEST);
206
    glDisable(GL_LIGHTING);
207
    glEnable(GL_TEXTURE_2D);
208
    glEnable(GL_BLEND);
209
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
210
 
211
    //setup matrices
212
    int vp[4];
213
    glGetIntegerv(GL_VIEWPORT, vp);
214
    int width = vp[2];
215
    int height = vp[3];
216
 
217
    assert(width>0 && height>0);
218
    glMatrixMode(GL_PROJECTION);
219
    glPushMatrix();
220
    glLoadIdentity();
221
    gluOrtho2D(0, width, 0, height);
222
    glMatrixMode(GL_MODELVIEW);
223
    glPushMatrix();
224
    glLoadIdentity();
225
 
226
    //color + texture
227
    glColor3f(r,g,b);
228
    glBindTexture(GL_TEXTURE_2D, m_font);
229
 
230
    glBegin(GL_QUADS);
231
    while (*buffer)
232
    {
233
        char c = *buffer++;
234
 
235
        if (c < 32)
236
            continue;
237
 
238
        int fx = (c & 0x0F) << 4;
239
        float txl = (fx +  4.f) / 256.f;
240
        float txr = (fx + 11.f) / 256.f;
241
 
242
        int fy = 15*16 - (c & 0xF0);
243
        float tyl = (fy +  0.f) / 256.f;
244
        float tyu = (fy + 15.f) / 256.f;
245
 
246
        glTexCoord2f(txl, tyl);
247
        glVertex2i(cx +  0, cy +  1);
248
        glTexCoord2f(txr, tyl);
249
        glVertex2i(cx + 7 * scaling, cy +  1);
250
        glTexCoord2f(txr, tyu);
251
        glVertex2i(cx + 7 * scaling, cy +  16 * scaling);
252
        glTexCoord2f(txl, tyu);
253
        glVertex2i(cx +  0, cy +  16 * scaling);
254
 
255
        cx += char_spacing * scaling;
256
    }
257
    glEnd();
258
 
259
    glBindTexture(GL_TEXTURE_2D, 0);
260
 
261
    //restore matrices
262
    glMatrixMode(GL_PROJECTION);
263
    glPopMatrix();
264
    glMatrixMode(GL_MODELVIEW);
265
    glPopMatrix();
266
 
267
    //and attributes
268
    glPopAttrib();
269
    glPopAttrib();
270
    glPopAttrib();
271
}
272
 
273
void Console::draw_textf(int scaling, int x, int y,
274
                         float r, float g, float b,
275
                         const char* fmt, ...)
276
{
277
    //format text
278
    char buffer[1024];
279
    va_list arguments;
280
    va_start(arguments, fmt);
281
    vsnprintf(buffer, 1024, fmt, arguments);
282
    va_end(arguments);
283
 
284
    draw_text(scaling, x, y, r, g, b, buffer);
285
}
286
 
287
//----------------------------------------------------------------------------
288
 
289
void Console::tab_completion()
290
{
291
    if (m_current_command.empty())
292
        return;
293
 
294
    //search through command list..
295
    std::set<std::string> matches;
296
    command_map_t::const_iterator it1;
297
    for (it1=m_commands.begin(); it1!= m_commands.end(); ++it1)
298
    {
299
        std::string cmd = it1->first;
300
        if (cmd.find(m_current_command) != 0)
301
            continue;
302
 
303
        matches.insert(cmd);
304
    }
305
 
306
    if (matches.empty())
307
        return;
308
 
309
    if (matches.size() == 1)
310
    {
311
        m_current_command = *matches.begin() + " ";
312
        return;
313
    }
314
 
315
    //show possible matches
316
    std::stringstream ss;
317
    std::set<std::string>::const_iterator it2;
318
    for (it2=matches.begin(); it2!=matches.end(); ++it2)
319
        ss << *it2 << " ";
320
    print(ss.str().c_str());
321
 
322
    //find longest common prefix and set as current command
323
    it2 = matches.begin();
324
    std::string current = *it2++;
325
    for (; it2!=matches.end(); ++it2)
326
    {
327
        std::string::size_type n = 0;
328
        for (; n<(std::min)(current.size(), it2->size()); ++n)
329
             if (current.at(n) != it2->at(n))
330
                 break;
331
 
332
        current.resize(n);
333
    }
334
 
335
    m_current_command = current;
336
}
337
 
338
//----------------------------------------------------------------------------
339
 
340
void Console::keyboard(unsigned char key)
341
{
342
    switch (key)
343
    {
344
#ifdef __APPLE__
345
    case 0x7f: //apple's glut sends 127 (del) when backspace is pressed
346
#else
347
    case '\b': //backspace
348
#endif
349
        if (m_caret > 0)
350
        {
351
            //delete character before caret..
352
            m_current_command.erase(m_caret-1, 1);
353
            m_caret--;
354
        }
355
        break;
356
 
357
    case '\t': //tab
358
        tab_completion();
359
        m_caret = m_current_command.size();
360
        break;
361
 
362
    case '\r': //enter
363
        if (!m_current_command.empty())
364
        {
365
            std::string tmp = m_current_command;
366
            m_current_command.clear();
367
            m_caret = 0;
368
            printf(">%s", tmp.c_str());
369
 
370
            //add command to history..
371
            m_history.push_back(tmp);
372
            m_history_index = m_history.size();
373
 
374
            execute(tmp.c_str());
375
        }
376
        break;
377
 
378
    default:
379
        if (key>=' ' && key<0x7f) //127 == delete
380
        {
381
            m_current_command.insert(m_caret, 1, key);
382
            m_caret++;
383
        }
384
        break;
385
    }
386
}
387
 
388
void Console::key_left() {
389
    if (m_caret > 0)
390
        m_caret -= 1;
391
}
392
 
393
void Console::key_right(){
394
    if (m_caret < m_current_command.size())
395
        m_caret += 1;
396
}
397
 
398
void Console::key_home() {
399
    m_caret = 0;
400
}
401
 
402
void Console::key_end() {
403
    m_caret = m_current_command.size();
404
}
405
 
406
void Console::key_up() {
407
    if (!m_history.empty())
408
    {
409
        if (m_history_index > 0)
410
            m_history_index--;
411
 
412
        m_current_command = m_history[m_history_index];
413
        m_caret = m_current_command.size();
414
    }
415
}
416
 
417
void Console::key_down() {
418
    if (m_history_index < m_history.size())
419
    {
420
        if (m_history_index < m_history.size()-1)
421
            m_history_index++;
422
 
423
        assert(m_history_index < m_history.size());
424
        m_current_command = m_history[m_history_index];
425
        m_caret = m_current_command.size();
426
    }
427
}
428
 
429
 
430
//----------------------------------------------------------------------------
431
 
432
void Console::execute(const char* buffer)
433
{
434
    //split into command arg0 arg1 ..
435
    std::vector<std::string> tmp;
436
 
437
    try {
438
        tmp = parse_cmdline(buffer);
439
    }
440
    catch (std::exception& e)
441
    {
442
        printf("Error: %s", e.what());
443
        return;
444
    }
445
 
446
    if (tmp.empty())
447
        return;
448
 
449
    const std::string command_name = std::move(tmp[0]);
450
    std::vector<std::string> args;
451
    std::move(tmp.begin()+1, tmp.end(), std::back_inserter(args));
452
 
453
    //find commands with matching names
454
    std::pair<command_map_t::const_iterator,command_map_t::const_iterator> rng;
455
    rng = m_commands.equal_range(command_name);
456
 
457
     //find command with right number of arguments and execute
458
    command_map_t::const_iterator it;
459
     for (it=rng.first; it!=rng.second; ++it)
460
     {
461
         size_t arity = it->second->arity();
462
         if (arity!=any_arity && arity!=args.size())
463
             continue;
464
 
465
         m_is_executing = true;
466
 
467
         try {
468
             it->second->execute(args);
469
         }
470
         catch (std::exception& e)
471
         {
472
             printf("Error: %s", e.what());
473
         }
474
         catch (...)
475
         {
476
             printf("Unknown exception.");
477
         }
478
 
479
         m_is_executing = false;
480
 
481
         return;
482
     }
483
 
484
    //didn't find a matching command: error!
485
     if (rng.first == rng.second)
486
         printf("Syntax error: Command '%s' not found.", command_name.c_str());
487
     else
488
        printf("Syntax error: Command '%s' with %u arguments not found.",
489
            command_name.c_str(), args.size());
490
}
491
 
492
void Console::executef(const char* format, ...)
493
{
494
    //format text
495
    char buffer[1024];
496
    va_list arguments;
497
    va_start(arguments, format);
498
    vsprintf(buffer, format, arguments);
499
    va_end(arguments);
500
 
501
    execute(buffer);
502
}
503
 
504
//----------------------------------------------------------------------------
505
 
506
std::vector<std::string> Console::parse_cmdline(const char* buffer) const
507
{
508
    std::string str(buffer);
509
    std::vector<std::string> tmp;
510
    size_t curr = 0;
511
    while (true)
512
    {
513
        //eat whitespace, nom nom nom
514
        size_t start = str.find_first_not_of(' ', curr);
515
        if (start == std::string::npos)
516
            break;
517
 
518
        //grouping delimiters, note: doesn't have nesting
519
        const char delim[] = { '[' ,']', '(', ')', '{', '}', '"', '"'};
520
        const size_t n = sizeof(delim) / sizeof(delim[0]);
521
 
522
        char c = ' ';
523
        for (size_t i=0; i<n; i+=2)
524
        {
525
            if (str[start] != delim[i])
526
                continue;
527
 
528
            c = delim[i+1];
529
 
530
            if (c == '"')
531
                start++;
532
            break;
533
        }
534
 
535
        //find closing character
536
        size_t end = str.find_first_of(c, start+1);
537
 
538
        //done?
539
        if (end == std::string::npos)
540
        {
541
            if (c != ' ')
542
            {
543
                std::stringstream ss;
544
                ss << "Missing closing '" << c << "' in expression.";
545
                throw std::invalid_argument(ss.str());
546
            }
547
 
548
            tmp.push_back(str.substr(start, end));
549
            break;
550
        }
551
 
552
        //don't include '"' or trailing ' '
553
        if (c=='"' || c==' ')
554
            end--;
555
 
556
        size_t len = end - start + 1;
557
        tmp.push_back(str.substr(start, len));
558
 
559
        if (c=='"' || c==' ')
560
            end++;
561
 
562
        curr = end+1;
563
    }
564
 
565
    return tmp;
566
}
567
 
568
//----------------------------------------------------------------------------
569
 
570
void Console::print(const char* buffer)
571
{
572
    std::string tmp(buffer);
573
 
574
    //parse into multiple lines
575
    size_t curr = 0;
576
    while (curr < tmp.length())
577
    {
578
        //TODO: handle '\t'
579
        size_t end = tmp.find('\n', curr);
580
 
581
        if (end == std::string::npos)
582
        {
583
            m_buffer.push_back(tmp.substr(curr, end));
584
            break;
585
        }
586
 
587
        size_t len = end-curr;
588
        m_buffer.push_back(tmp.substr(curr, len));
589
        curr = end + 1;
590
    }
591
}
592
 
593
void Console::printf(const char* format, ...)
594
{
595
    //format text
596
    char buffer[1024];
597
    va_list args;
598
    va_start(args, format);
599
    vsprintf(buffer, format, args);
600
    va_end(args);
601
 
602
    print(buffer);
603
}
604
 
605
void Console::newline()
606
{
607
    m_buffer.push_back("");
608
}
609
 
610
//----------------------------------------------------------------------------
611
 
612
Console::cmd_token Console::add_command(const std::string& name,
613
                                        std::unique_ptr<command_base>&& ptr)
614
{
615
    auto it = m_commands.insert(std::make_pair(name, std::move(ptr)));
616
    return it->second->get_id();
617
}
618
 
619
void Console::remove_command(cmd_token id)
620
{
621
    for (auto it=m_commands.begin(); it!=m_commands.end(); ++it)
622
    {
623
        if (it->second->get_id() != id)
624
            continue;
625
 
626
        m_commands.erase(it);
627
        return;
628
    }
629
 
630
    assert(false);
631
}
632
 
633
//----------------------------------------------------------------------------
634
 
635
const char* Console::get_name(cmd_token id) const
636
{
637
    for (auto it=m_commands.begin(); it!=m_commands.end(); ++it)
638
    {
639
        if (it->second->get_id() != id)
640
            continue;
641
 
642
        return it->first.c_str();
643
    }
644
 
645
    assert(false);
646
    return NULL;
647
}
648
 
649
const char* Console::get_help(cmd_token id) const
650
{
651
    for (auto it=m_commands.begin(); it!=m_commands.end(); ++it)
652
    {
653
        if (it->second->get_id() != id)
654
            continue;
655
 
656
        return it->second->get_help();
657
    }
658
 
659
    assert(false);
660
    return NULL;
661
}
662
 
663
//----------------------------------------------------------------------------
664
 
665
void Console::clear()
666
{
667
    m_buffer.clear();
668
}
669
 
670
void Console::history()
671
{
672
    printf("Printing history:");
673
    std::vector<std::string>::const_iterator it;
674
    for (it=m_history.begin(); it!=m_history.end(); ++it)
675
        printf("  %s", it->c_str());
676
}
677
 
678
void Console::help()
679
{
680
    printf("Printing list of commands:");
681
 
682
    command_map_t::const_iterator it = m_commands.begin();
683
    while (it != m_commands.end())
684
    {
685
        int n = 0;
686
        std::string prev = it->first;
687
        do
688
        {
689
            ++n;
690
            ++it;
691
        }
692
        while (it!=m_commands.end() && it->first==prev);
693
 
694
        printf("  %s(%i)", prev.c_str(), n);
695
    }
696
}
697
 
698
void Console::help(const std::string& cmd)
699
{
700
    std::pair<command_map_t::const_iterator,command_map_t::const_iterator> rng;
701
    rng = m_commands.equal_range(cmd);
702
 
703
    if (rng.first == rng.second)
704
    {
705
        printf("Command '%s' not found.", cmd.c_str());
706
        return;
707
    }
708
 
709
    printf("Printing help for command(s) '%s':", cmd.c_str());
710
 
711
    for (command_map_t::const_iterator it=rng.first; it!=rng.second; ++it)
712
    {
713
        std::stringstream ss;
714
        if (it->second->arity() != any_arity)
715
            for (size_t i=0; i<it->second->arity(); ++i)
716
                ss << "arg" << i << " ";
717
        else
718
            ss << "arg0, arg1, .., argN";
719
 
720
        printf("  %s %s: %s",
721
            it->first.c_str(), ss.str().c_str(),
722
            it->second->get_help());
723
    }
724
}
725
 
726
//----------------------------------------------------------------------------
727
 
728
const unsigned char Console::g_png_data[] = {
729
 
730
    0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 0x0D,
731
    0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
732
    0x08, 0x03, 0x00, 0x00, 0x00, 0x6B, 0xAC, 0x58, 0x54, 0x00, 0x00, 0x00,
733
    0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xAE, 0xCE, 0x1C, 0xE9, 0x00, 0x00,
734
    0x00, 0x04, 0x67, 0x41, 0x4D, 0x41, 0x00, 0x00, 0xB1, 0x8F, 0x0B, 0xFC,
735
    0x61, 0x05, 0x00, 0x00, 0x03, 0x00, 0x50, 0x4C, 0x54, 0x45, 0x00, 0x00,
736
    0x00, 0x3A, 0x3A, 0x3A, 0x66, 0x66, 0x66, 0x90, 0x90, 0x90, 0xB6, 0xB6,
737
    0xB6, 0xDB, 0xDB, 0xDB, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
738
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
739
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
740
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
741
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
742
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
743
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
744
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
745
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
746
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
747
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
748
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
749
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
750
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
751
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
752
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
753
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
754
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
755
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
756
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
757
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
758
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
759
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
760
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
761
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
762
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
763
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
764
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
765
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
766
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
767
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
768
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
769
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
770
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
771
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
772
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
773
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
774
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
775
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
776
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
777
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
778
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
779
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
780
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
781
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
782
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
783
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
784
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
785
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
786
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
787
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
788
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
789
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
790
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
791
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
792
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
793
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
794
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
795
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
796
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
797
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
798
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
799
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x75,
800
    0x62, 0x5B, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00,
801
    0x0E, 0xC3, 0x00, 0x00, 0x0E, 0xC3, 0x01, 0xC7, 0x6F, 0xA8, 0x64, 0x00,
802
    0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77,
803
    0x61, 0x72, 0x65, 0x00, 0x50, 0x61, 0x69, 0x6E, 0x74, 0x2E, 0x4E, 0x45,
804
    0x54, 0x20, 0x76, 0x33, 0x2E, 0x35, 0x2E, 0x38, 0x37, 0x3B, 0x80, 0x5D,
805
    0x00, 0x00, 0x13, 0x3D, 0x49, 0x44, 0x41, 0x54, 0x78, 0x5E, 0xED, 0x5D,
806
    0xD9, 0x72, 0xDB, 0x30, 0x0C, 0xB4, 0x75, 0xFD, 0xFF, 0x27, 0x77, 0x41,
807
    0x77, 0x6A, 0xEC, 0x42, 0x25, 0x82, 0x52, 0x8E, 0x93, 0x94, 0x99, 0xC9,
808
    0x03, 0x2D, 0x89, 0xC7, 0x12, 0x24, 0x71, 0xF3, 0x76, 0x9B, 0x7F, 0x13,
809
    0x81, 0x89, 0xC0, 0x44, 0x60, 0x22, 0xA0, 0x08, 0x1C, 0xC7, 0x4E, 0x3F,
810
    0x7D, 0x76, 0x39, 0x9B, 0x91, 0xAC, 0x3F, 0xD5, 0xF1, 0x84, 0xF6, 0xB6,
811
    0xDB, 0x4A, 0xBF, 0x7D, 0x76, 0x39, 0x03, 0x20, 0xEB, 0x8F, 0x7E, 0x5F,
812
    0x7D, 0xFF, 0x96, 0x7D, 0xF0, 0xEA, 0xE7, 0x13, 0x80, 0x04, 0x81, 0x6C,
813
    0x02, 0x26, 0x05, 0x08, 0x02, 0x55, 0xC0, 0xE6, 0x12, 0xC8, 0x10, 0x7B,
814
    0xF5, 0xF3, 0xB9, 0x07, 0xBC, 0x7B, 0x0F, 0xC8, 0xCE, 0xD9, 0x57, 0x3F,
815
    0xCF, 0x28, 0x20, 0x6B, 0x7F, 0x98, 0x0F, 0xC8, 0x3A, 0x30, 0x9F, 0x4F,
816
    0x04, 0x26, 0x02, 0x13, 0x81, 0x89, 0xC0, 0x44, 0xE0, 0x07, 0x21, 0x90,
817
    0x9D, 0xAB, 0x5F, 0xFD, 0xF9, 0xF0, 0x54, 0xBC, 0x9A, 0xB5, 0x7D, 0x75,
818
    0xFD, 0x13, 0x80, 0x51, 0x04, 0x5E, 0x3D, 0x43, 0xAF, 0xAE, 0x7F, 0x74,
819
    0xFC, 0x6F, 0x17, 0x7F, 0x47, 0x01, 0x9A, 0x00, 0x8C, 0x22, 0x30, 0x3A,
820
    0x03, 0xEF, 0xFE, 0x7E, 0x74, 0xFC, 0x73, 0x09, 0x7C, 0xF5, 0x73, 0x3E,
821
    0xEB, 0xDF, 0x30, 0x05, 0xCC, 0x0A, 0x26, 0x02, 0x13, 0x81, 0x89, 0xC0,
822
    0x44, 0x60, 0x22, 0xF0, 0x44, 0x60, 0x65, 0xEB, 0xF8, 0xBE, 0x2D, 0xC7,
823
    0xBD, 0x8B, 0xCF, 0xE6, 0x1F, 0xAF, 0x66, 0x5C, 0xDF, 0x9C, 0x7D, 0x79,
824
    0x3D, 0x8E, 0x85, 0x3E, 0x5F, 0x8F, 0xA0, 0xB8, 0xF6, 0x3F, 0xAC, 0x6C,
825
    0x9B, 0xBE, 0xDD, 0xEE, 0xFA, 0xC3, 0xF0, 0x64, 0xAD, 0x5B, 0xB7, 0x0A,
826
    0x01, 0x60, 0xDB, 0xEE, 0x04, 0xC0, 0x7D, 0xBB, 0xED, 0x7E, 0x44, 0xDB,
827
    0x41, 0x23, 0x3C, 0x6E, 0xDB, 0xB2, 0xB8, 0x06, 0xEE, 0xC7, 0x6D, 0x61,
828
    0x44, 0x17, 0x05, 0x80, 0xAA, 0xBB, 0xDD, 0x18, 0xAF, 0xFB, 0xB1, 0xAC,
829
    0xFB, 0xC5, 0x10, 0xEC, 0xFD, 0x09, 0xF5, 0xDD, 0x07, 0x52, 0xDB, 0x8A,
830
    0x31, 0xB8, 0x3F, 0x3C, 0xF6, 0x15, 0x00, 0x2E, 0x7A, 0x6C, 0x00, 0xF8,
831
    0x1F, 0xEE, 0xFB, 0x8D, 0xBF, 0x57, 0x3C, 0x6E, 0x3A, 0x1F, 0x82, 0xD7,
832
    0x6D, 0x17, 0x02, 0x94, 0xFE, 0xD5, 0xE9, 0x41, 0x1B, 0xD0, 0x1A, 0xFA,
833
    0x0D, 0xEC, 0x98, 0xF0, 0xE3, 0x78, 0x4E, 0xC9, 0xBA, 0x61, 0x88, 0xEE,
834
    0x6F, 0x3B, 0x76, 0xBF, 0x00, 0x6C, 0x42, 0xB7, 0x3E, 0xC5, 0x85, 0x05,
835
    0x46, 0x14, 0x11, 0x29, 0x60, 0x18, 0x80, 0x8D, 0x97, 0x64, 0x40, 0x30,
836
    0x69, 0x00, 0x6B, 0x94, 0xA7, 0xFC, 0x90, 0xF1, 0x09, 0xC0, 0xAB, 0x3E,
837
    0x97, 0x06, 0xE3, 0x7C, 0x08, 0x49, 0xE8, 0x1E, 0x30, 0x0A, 0x00, 0x4F,
838
    0xD8, 0x09, 0x01, 0x25, 0x0D, 0x6C, 0x8B, 0xD4, 0xB0, 0xC8, 0x2E, 0x77,
839
    0x60, 0xDB, 0x7B, 0x2E, 0xB2, 0x75, 0xDF, 0x0E, 0x46, 0x4C, 0x01, 0x08,
840
    0xF4, 0xD1, 0x25, 0xD1, 0x07, 0x05, 0x76, 0x16, 0xB1, 0xED, 0x49, 0xDD,
841
    0x35, 0xCE, 0x04, 0x5A, 0x5D, 0x41, 0xF7, 0xD6, 0x3E, 0xB5, 0xB0, 0x2E,
842
    0xB4, 0xE8, 0xD7, 0x75, 0xBF, 0xBB, 0x9D, 0x1C, 0xAF, 0xEE, 0x3B, 0xEF,
843
    0x82, 0xDC, 0x66, 0xC4, 0x3B, 0x59, 0xA3, 0xA3, 0x14, 0x10, 0x0E, 0x21,
844
    0xC5, 0x40, 0x4E, 0x01, 0x7D, 0xBC, 0xDF, 0x75, 0x97, 0xC4, 0x36, 0xFD,
845
    0x7C, 0x09, 0xE4, 0x41, 0x00, 0xD8, 0x82, 0x76, 0x5B, 0x46, 0x04, 0x3C,
846
    0x5D, 0x02, 0xD9, 0x1E, 0x05, 0x0A, 0xEB, 0x9F, 0xD2, 0xFC, 0x3C, 0x1C,
847
    0xB3, 0xE1, 0xE3, 0x04, 0x80, 0xE3, 0x46, 0x55, 0x18, 0xC5, 0xF9, 0x16,
848
    0x30, 0xE3, 0x58, 0x02, 0x0E, 0x10, 0xDB, 0x32, 0xBB, 0x08, 0xF4, 0x37,
849
    0xC1, 0x13, 0xC4, 0x64, 0xCD, 0xAC, 0xC2, 0x67, 0x84, 0x19, 0x63, 0x00,
850
    0x12, 0xA6, 0xA6, 0xBA, 0x24, 0xF0, 0x7E, 0x8F, 0xBE, 0x3F, 0x52, 0x5D,
851
    0x76, 0x0C, 0x66, 0x75, 0x04, 0xBE, 0xA2, 0xCF, 0xE5, 0xF4, 0x8F, 0xA4,
852
    0xAC, 0xB1, 0xB3, 0xE7, 0xA3, 0x00, 0x30, 0x5F, 0xA5, 0x8C, 0x50, 0xDA,
853
    0x23, 0x65, 0x13, 0xD2, 0x0F, 0xBE, 0xE0, 0x0B, 0x44, 0xA3, 0xD9, 0x29,
854
    0xFD, 0x05, 0xFB, 0x3F, 0xBB, 0x34, 0x11, 0x98, 0x08, 0x4C, 0x04, 0xBE,
855
    0x0F, 0x02, 0xE0, 0xDC, 0xB9, 0xB3, 0x60, 0x5B, 0xE8, 0x20, 0x03, 0xB3,
856
    0x4B, 0x2F, 0xE8, 0x73, 0x30, 0x36, 0x72, 0xF0, 0xED, 0x24, 0xFE, 0x1A,
857
    0x63, 0x44, 0xE2, 0x16, 0x58, 0x25, 0x27, 0xCF, 0x37, 0xC6, 0xC9, 0x7F,
858
    0x20, 0xFA, 0x84, 0x1B, 0xCA, 0xD7, 0x1F, 0xD5, 0x32, 0x22, 0x5F, 0x34,
859
    0x36, 0xC2, 0xB3, 0x22, 0xCB, 0xCE, 0xE2, 0x3B, 0xF4, 0x1F, 0x37, 0x55,
860
    0x48, 0x70, 0x79, 0x23, 0x5E, 0x54, 0x84, 0xFF, 0xF8, 0x31, 0x1A, 0xF7,
861
    0xDC, 0xAF, 0xF1, 0xD5, 0xBE, 0x6C, 0x7D, 0xA9, 0x8A, 0x2B, 0xA2, 0x51,
862
    0xE1, 0x09, 0x3E, 0xD1, 0x7E, 0x50, 0xFF, 0xAD, 0x31, 0x9A, 0x42, 0xD5,
863
    0x5F, 0xA0, 0x3A, 0x15, 0xE8, 0xA9, 0x41, 0x41, 0x4C, 0x01, 0x38, 0x93,
864
    0x6C, 0xFC, 0xF7, 0xA6, 0x6E, 0xF2, 0x03, 0x36, 0x36, 0x80, 0xBF, 0x51,
865
    0x5E, 0x3F, 0xF0, 0xFE, 0x5D, 0x46, 0xFB, 0x4C, 0x12, 0xA1, 0xFE, 0xA3,
866
    0x00, 0x5E, 0xDD, 0xCB, 0x8F, 0x61, 0x0E, 0x99, 0x55, 0xC3, 0x1A, 0x22,
867
    0x0D, 0xD5, 0x71, 0xA7, 0x0F, 0x4C, 0x5C, 0xF4, 0x4B, 0x04, 0xC2, 0xA1,
868
    0x8A, 0xA7, 0x82, 0x09, 0xAF, 0x18, 0x03, 0x9B, 0xA5, 0xC7, 0x04, 0x00,
869
    0xD1, 0x58, 0x62, 0xC5, 0xF2, 0x12, 0x43, 0x75, 0xBC, 0xA4, 0x76, 0x5E,
870
    0xC2, 0xFB, 0x82, 0x15, 0xDB, 0x07, 0x20, 0x68, 0x74, 0xFC, 0x0F, 0x98,
871
    0xB1, 0x48, 0xF5, 0xAE, 0x45, 0x03, 0x57, 0x46, 0xAC, 0x1A, 0x1F, 0x96,
872
    0x16, 0x81, 0x57, 0x22, 0x8E, 0x75, 0x16, 0xF4, 0xF9, 0x5E, 0xBC, 0xB1,
873
    0xCE, 0x8A, 0x15, 0x42, 0x1B, 0x3A, 0x28, 0xAB, 0x5E, 0x76, 0x49, 0x01,
874
    0x90, 0xD7, 0xF0, 0x6F, 0xFD, 0x00, 0x6B, 0x2D, 0xFD, 0x00, 0x9A, 0xE8,
875
    0x48, 0x35, 0xF2, 0xF0, 0x6C, 0xCD, 0xAB, 0x38, 0x93, 0x68, 0x6D, 0x79,
876
    0x94, 0x36, 0x81, 0xEE, 0x2F, 0xA7, 0x00, 0x01, 0xC9, 0x66, 0x87, 0xA7,
877
    0x58, 0x26, 0x34, 0x8E, 0x5F, 0x37, 0xA9, 0x40, 0x01, 0x7E, 0x8D, 0xD8,
878
    0x43, 0x1E, 0xB2, 0x74, 0x18, 0xED, 0xCB, 0x8C, 0xB3, 0x16, 0x1A, 0xC7,
879
    0x02, 0x77, 0xD9, 0xA6, 0x8C, 0xFE, 0x8A, 0x7B, 0x80, 0x6E, 0xE9, 0x72,
880
    0xCC, 0x61, 0x89, 0xD3, 0x1A, 0x52, 0x44, 0xED, 0xB9, 0x68, 0xA9, 0xC3,
881
    0x1E, 0x40, 0xCF, 0xAD, 0x02, 0x9A, 0xA2, 0x70, 0x88, 0xD2, 0x73, 0x23,
882
    0x29, 0x1D, 0xB0, 0x9E, 0xDB, 0xAA, 0xD4, 0xAC, 0x9D, 0x02, 0x57, 0x2B,
883
    0xD9, 0x3F, 0x9D, 0x05, 0x12, 0x02, 0xF9, 0xF4, 0xF6, 0xDF, 0xDD, 0xE0,
884
    0x4F, 0x90, 0xFF, 0xDF, 0x8D, 0xE1, 0x6C, 0x7F, 0x22, 0x30, 0x11, 0x98,
885
    0x08, 0x38, 0x04, 0x02, 0xAF, 0xFE, 0x9F, 0xA1, 0x03, 0xBE, 0x80, 0x59,
886
    0x39, 0xE6, 0xB4, 0x1A, 0x63, 0xC4, 0x8C, 0x17, 0x49, 0x3B, 0x26, 0xCE,
887
    0x93, 0xB0, 0x61, 0xEF, 0xFB, 0x1F, 0xB4, 0xDC, 0x98, 0xE7, 0x67, 0x85,
888
    0x26, 0x09, 0xFA, 0xF6, 0x5B, 0x7B, 0xFA, 0xBD, 0x63, 0xFD, 0x4C, 0x7C,
889
    0x26, 0x17, 0x0B, 0x11, 0x77, 0x8D, 0xEF, 0xF7, 0xCF, 0x03, 0xAB, 0xAF,
890
    0x8C, 0x59, 0xB3, 0x73, 0xAD, 0x9E, 0xB7, 0xDA, 0xC9, 0xF2, 0x63, 0xCF,
891
    0x3D, 0xAB, 0x0C, 0x73, 0x35, 0xC1, 0xD1, 0xC4, 0x69, 0xEA, 0xB0, 0x10,
892
    0x90, 0xF0, 0x75, 0x67, 0xDF, 0x07, 0x07, 0x04, 0xAD, 0x82, 0x01, 0x60,
893
    0xD1, 0x41, 0x00, 0xD8, 0x51, 0xDE, 0xDC, 0x6F, 0x9B, 0x4C, 0x70, 0xD3,
894
    0x7F, 0x78, 0x66, 0x74, 0xBF, 0x63, 0x0E, 0x17, 0xC7, 0xBC, 0x2E, 0x2B,
895
    0x59, 0x7F, 0x1B, 0x00, 0xDE, 0xE3, 0x45, 0xD4, 0x35, 0x8F, 0x19, 0x74,
896
    0x3D, 0x54, 0x4B, 0x9D, 0x32, 0xB6, 0xA7, 0xDF, 0xFB, 0x11, 0x47, 0xE3,
897
    0xA7, 0xAF, 0x1E, 0x4F, 0x59, 0x16, 0x50, 0x00, 0xD0, 0x7F, 0xA8, 0x28,
898
    0xFE, 0x54, 0xB8, 0x61, 0xB4, 0x1E, 0xE0, 0xC6, 0x36, 0xFB, 0x1A, 0x76,
899
    0xBC, 0xBD, 0x7B, 0x00, 0xE0, 0xF1, 0xE3, 0xEB, 0x34, 0x92, 0x24, 0xC0,
900
    0x44, 0x10, 0x68, 0xE0, 0x10, 0x00, 0x22, 0x2C, 0x18, 0x49, 0xBB, 0x6F,
901
    0xD0, 0x01, 0x6C, 0x3A, 0x6E, 0x09, 0x04, 0xF9, 0x3D, 0x03, 0x40, 0x2C,
902
    0x27, 0x0A, 0x80, 0xD1, 0x2B, 0x01, 0xB0, 0x2E, 0x1E, 0x80, 0xD6, 0x55,
903
    0x27, 0x3C, 0xDC, 0xB7, 0x75, 0x5D, 0x36, 0x07, 0x40, 0x93, 0xDE, 0x3C,
904
    0x41, 0xD8, 0x9A, 0x73, 0x08, 0xA8, 0x28, 0x11, 0x01, 0xE8, 0x2F, 0x01,
905
    0x6B, 0xDB, 0x77, 0x48, 0xF7, 0x00, 0x08, 0xC7, 0x41, 0x25, 0x48, 0x14,
906
    0xA0, 0xEA, 0x15, 0x01, 0x00, 0xB6, 0x5B, 0x01, 0x00, 0x70, 0x38, 0xC0,
907
    0x15, 0x80, 0x65, 0xC5, 0xE8, 0x57, 0x07, 0x40, 0x93, 0xFE, 0xDC, 0x80,
908
    0xAD, 0x3B, 0x7E, 0x4D, 0xA8, 0x76, 0x24, 0x0C, 0x20, 0x5B, 0x02, 0xB2,
909
    0xE9, 0x95, 0x01, 0x10, 0x9F, 0x2D, 0x22, 0x57, 0x23, 0x46, 0xC3, 0xDF,
910
    0x11, 0x09, 0xEA, 0xDF, 0xFC, 0xA6, 0xA8, 0x4B, 0xC0, 0x00, 0xD8, 0xF0,
911
    0xFF, 0x67, 0xDA, 0xDA, 0x0B, 0x0E, 0xD5, 0xB6, 0xEB, 0x92, 0xD7, 0x57,
912
    0xDC, 0x04, 0x79, 0xD7, 0xEE, 0x53, 0x80, 0x69, 0xB0, 0x2A, 0x14, 0x70,
913
    0x5F, 0x58, 0x5F, 0x82, 0xFE, 0x74, 0x37, 0xC1, 0x13, 0x00, 0xEE, 0x5E,
914
    0xE7, 0x69, 0xD4, 0x4C, 0xFE, 0x0C, 0xF0, 0xE9, 0x82, 0x5F, 0xD3, 0x9F,
915
    0x4E, 0x3F, 0xFA, 0xE6, 0xA6, 0x59, 0xF7, 0x00, 0x34, 0x1F, 0x8E, 0x41,
916
    0xD6, 0x11, 0xEA, 0x31, 0x26, 0x80, 0xE8, 0xF7, 0xD9, 0x31, 0x88, 0x3D,
917
    0xDA, 0x2B, 0x40, 0x1E, 0xC7, 0xA0, 0xFB, 0xA5, 0xF9, 0xCC, 0x68, 0xFF,
918
    0x9F, 0x93, 0x64, 0x14, 0x46, 0x2A, 0x15, 0xD4, 0x47, 0x1A, 0x89, 0xD4,
919
    0x61, 0xE4, 0xA7, 0xB3, 0x45, 0x0D, 0xA1, 0x9F, 0x3E, 0xC8, 0xEE, 0xF8,
920
    0x40, 0x42, 0xFF, 0x37, 0x00, 0xFF, 0xF5, 0xEC, 0xCF, 0xC1, 0x4F, 0x04,
921
    0x26, 0x02, 0xDF, 0x0E, 0x01, 0x31, 0x1C, 0x04, 0xAB, 0x0C, 0x5B, 0xE3,
922
    0xF3, 0xE1, 0x05, 0x79, 0x5F, 0xE4, 0xE5, 0xC0, 0x08, 0xD9, 0x73, 0xC7,
923
    0x0C, 0xAA, 0xEF, 0xAE, 0xB0, 0xB6, 0xBF, 0x19, 0xAB, 0x27, 0xAB, 0xA4,
924
    0x9C, 0x9A, 0x89, 0xD2, 0x4E, 0x44, 0x7E, 0x08, 0x96, 0x4E, 0xE0, 0x08,
925
    0xA6, 0x2E, 0xF5, 0x75, 0x8E, 0x5E, 0x65, 0xE2, 0x0B, 0xCA, 0x96, 0xC1,
926
    0x80, 0x48, 0xE3, 0xAC, 0x3C, 0xEF, 0x2F, 0xF2, 0xB2, 0x99, 0xCE, 0xBC,
927
    0x00, 0x14, 0x0D, 0x97, 0x2C, 0xBC, 0x28, 0x6F, 0xAF, 0xBC, 0x77, 0x1B,
928
    0xA0, 0xEF, 0x34, 0xD0, 0xD4, 0xFA, 0xB5, 0x0D, 0x1A, 0xA3, 0x02, 0x10,
929
    0x9D, 0xBF, 0x19, 0x00, 0x13, 0xF7, 0x7A, 0x74, 0xD0, 0x84, 0x1D, 0xC7,
930
    0x0E, 0xB6, 0xCE, 0x38, 0x56, 0xD3, 0x00, 0xF0, 0xB2, 0x40, 0x15, 0x80,
931
    0x66, 0xFC, 0xF4, 0xD2, 0xA4, 0x02, 0xB0, 0x88, 0x31, 0xD8, 0xEC, 0xF5,
932
    0x6C, 0xFC, 0x63, 0x84, 0xC3, 0x80, 0x83, 0x07, 0x04, 0x0F, 0x18, 0x8F,
933
    0xBB, 0xDC, 0x6E, 0x53, 0x78, 0xB8, 0x0E, 0x36, 0xF2, 0x76, 0xF2, 0xB2,
934
    0x75, 0x9E, 0x94, 0x40, 0xBB, 0x9A, 0x06, 0xFB, 0x14, 0x60, 0xE0, 0x7A,
935
    0x85, 0x4A, 0xF3, 0xB5, 0xA6, 0x28, 0x23, 0x31, 0xF5, 0x00, 0x10, 0x61,
936
    0xCC, 0xB8, 0xFF, 0x01, 0x80, 0x20, 0x3E, 0x13, 0x00, 0x56, 0x59, 0xD7,
937
    0xDC, 0xAE, 0x6B, 0x3C, 0x00, 0x10, 0x8D, 0xA1, 0x02, 0x41, 0x1F, 0x00,
938
    0x03, 0xD3, 0xCF, 0x28, 0x84, 0x4F, 0x8E, 0xB9, 0x81, 0x7E, 0x44, 0x0D,
939
    0xF6, 0x4C, 0xB1, 0xB2, 0xC8, 0x23, 0xC9, 0xAB, 0xB5, 0x38, 0xF7, 0x07,
940
    0xF7, 0x0D, 0x28, 0x7E, 0x27, 0x4B, 0x80, 0x1D, 0x48, 0xF0, 0x31, 0xCB,
941
    0xA3, 0x09, 0x00, 0x90, 0xB5, 0xBD, 0xF4, 0x05, 0x00, 0x16, 0xAF, 0xB2,
942
    0xC2, 0xF4, 0x48, 0x18, 0x99, 0xF4, 0xC8, 0x9C, 0x94, 0xFC, 0x5F, 0xB6,
943
    0xE6, 0x59, 0x9F, 0xF3, 0x81, 0x53, 0x40, 0xEA, 0xB7, 0xDE, 0xF8, 0x25,
944
    0xD1, 0x36, 0x41, 0x7D, 0x87, 0xE4, 0x49, 0xEE, 0x70, 0x93, 0xB7, 0xFD,
945
    0xFB, 0xF7, 0x83, 0x7C, 0x9E, 0x36, 0xD3, 0x50, 0xF8, 0xF8, 0x02, 0x8B,
946
    0xA8, 0xA0, 0x5D, 0x4A, 0x00, 0xD0, 0x25, 0x7E, 0x12, 0xF1, 0x22, 0x6B,
947
    0x7C, 0x8C, 0x02, 0xCC, 0x4D, 0xCD, 0x8F, 0xCF, 0x00, 0xF0, 0x6E, 0x38,
948
    0x1A, 0x1F, 0x10, 0x54, 0x58, 0x38, 0x17, 0xD9, 0x03, 0x80, 0x5D, 0xB0,
949
    0x8C, 0x9C, 0xFC, 0x2F, 0xB6, 0xA3, 0xB0, 0x93, 0x87, 0x00, 0xAA, 0x3A,
950
    0xC3, 0x13, 0x00, 0xC4, 0xAB, 0xAC, 0x06, 0x40, 0xA4, 0x91, 0x2C, 0xAA,
951
    0x2C, 0xA7, 0xAA, 0x97, 0xBE, 0x71, 0x02, 0x80, 0x30, 0x43, 0xA3, 0x00,
952
    0x7C, 0x82, 0xAB, 0xE2, 0x08, 0x42, 0x69, 0xD0, 0x17, 0x47, 0xB4, 0x8C,
953
    0x34, 0xF5, 0x35, 0xBF, 0x8D, 0x3E, 0x34, 0x72, 0x68, 0x04, 0x17, 0x1E,
954
    0xDA, 0xF3, 0xDB, 0x8A, 0x52, 0x5F, 0xD7, 0xAF, 0x39, 0xD2, 0xD9, 0xAB,
955
    0x89, 0xC0, 0x44, 0xE0, 0x53, 0x10, 0x48, 0x36, 0x84, 0x8F, 0xC4, 0x69,
956
    0xF6, 0x3D, 0x3B, 0x6D, 0xD7, 0xFA, 0x7B, 0x2C, 0x6B, 0xAC, 0x3F, 0xE4,
957
    0x17, 0xA0, 0x1F, 0xA2, 0x57, 0xA6, 0xFA, 0x15, 0x96, 0x51, 0xEB, 0x07,
958
    0x77, 0x8F, 0x03, 0xD0, 0x77, 0x7E, 0x1F, 0x06, 0xE0, 0xC4, 0xBB, 0xBD,
959
    0x0C, 0x41, 0x26, 0x2E, 0x67, 0x15, 0xF6, 0x29, 0xA0, 0xEB, 0xC7, 0x79,
960
    0x62, 0x0A, 0xED, 0xB7, 0x16, 0x7D, 0xD9, 0xE3, 0x2F, 0x59, 0x7F, 0xFB,
961
    0xCF, 0xC5, 0x23, 0x04, 0xC2, 0x9B, 0x50, 0xB0, 0x98, 0xBE, 0x4C, 0x65,
962
    0xE3, 0x79, 0x7F, 0xD1, 0x28, 0x35, 0x8D, 0x91, 0x7F, 0xDE, 0x78, 0xE9,
963
    0xE7, 0x92, 0x08, 0xF5, 0x93, 0xFF, 0x88, 0xE9, 0x2A, 0xF8, 0x07, 0x1B,
964
    0x6E, 0x2F, 0xBE, 0x01, 0xA2, 0x15, 0x85, 0xEE, 0x2E, 0x9B, 0xB8, 0x00,
965
    0xA9, 0x87, 0xC8, 0x19, 0x1A, 0x14, 0x41, 0x02, 0x61, 0x95, 0xE4, 0x69,
966
    0x11, 0x5E, 0x43, 0xC4, 0x89, 0x28, 0x40, 0x48, 0xB9, 0x60, 0x92, 0xA4,
967
    0x39, 0x67, 0x7B, 0xF3, 0x3B, 0xEA, 0xEB, 0x3A, 0x6B, 0xB3, 0xBE, 0xC6,
968
    0x08, 0x5E, 0x14, 0x12, 0x4C, 0x01, 0x2D, 0xE5, 0x89, 0x37, 0xEE, 0x4A,
969
    0xFD, 0x6A, 0x1C, 0x8D, 0xE3, 0x17, 0xA7, 0x1F, 0xD5, 0x18, 0xA9, 0xA4,
970
    0x60, 0x83, 0x21, 0x8D, 0x51, 0x60, 0xB4, 0x78, 0x09, 0x04, 0x00, 0xC4,
971
    0xFA, 0x2C, 0xE3, 0xB5, 0xFE, 0xA9, 0x33, 0xB6, 0xF8, 0x4A, 0x0B, 0x00,
972
    0x10, 0xB6, 0x7B, 0xD6, 0xED, 0x87, 0x8A, 0xAE, 0xB3, 0x08, 0x54, 0x05,
973
    0x56, 0x05, 0x20, 0x6E, 0x79, 0x9A, 0x23, 0x45, 0xA4, 0xCD, 0x32, 0x00,
974
    0x1A, 0x5D, 0x70, 0x31, 0x00, 0x46, 0x22, 0x7E, 0xCD, 0x66, 0x4E, 0x52,
975
    0xCD, 0x05, 0xC7, 0xAD, 0xF1, 0x18, 0xCB, 0xCD, 0x00, 0xA8, 0xA8, 0xA6,
976
    0xFE, 0x07, 0x39, 0x05, 0xB0, 0x93, 0x98, 0xBE, 0xBF, 0x27, 0x14, 0x90,
977
    0x2F, 0x01, 0x53, 0x81, 0xD1, 0x80, 0x62, 0x58, 0x1D, 0x6D, 0x6A, 0xD8,
978
    0x63, 0xE8, 0x28, 0xB3, 0x4D, 0x86, 0x14, 0x1C, 0x91, 0x02, 0x14, 0x60,
979
    0x76, 0xC0, 0x90, 0x5D, 0x2F, 0xEE, 0x01, 0x10, 0x57, 0x9F, 0x9B, 0xE8,
980
    0x23, 0x64, 0xE5, 0x49, 0xD2, 0x19, 0x00, 0xAA, 0xEF, 0x18, 0x3B, 0x31,
981
    0xFE, 0xE1, 0xEB, 0xB6, 0xE1, 0xD5, 0x92, 0x18, 0x5C, 0x7D, 0xCE, 0xFD,
982
    0x43, 0xAF, 0x2F, 0xFC, 0xC4, 0x00, 0xA8, 0xA5, 0x3C, 0x08, 0x51, 0x7B,
983
    0x17, 0xF6, 0xE6, 0x0D, 0x55, 0x35, 0x92, 0xED, 0x67, 0x72, 0xA2, 0x5E,
984
    0x7D, 0xE4, 0xD8, 0x7E, 0xC3, 0x30, 0x66, 0x93, 0x13, 0x81, 0x89, 0xC0,
985
    0x97, 0x41, 0xE0, 0x23, 0xF2, 0xEA, 0x97, 0xE9, 0xEC, 0x25, 0x1D, 0x91,
986
    0xF0, 0x7C, 0x35, 0xA4, 0x24, 0x69, 0x85, 0x2E, 0xE9, 0x82, 0xAF, 0xE4,
987
    0xD3, 0x4F, 0xE9, 0x90, 0x77, 0x48, 0xEC, 0x56, 0x89, 0x5D, 0x03, 0xC7,
988
    0x50, 0xE1, 0x10, 0xFA, 0x00, 0x5C, 0x9F, 0x0E, 0x80, 0x4A, 0x1B, 0x61,
989
    0x09, 0xF4, 0x7D, 0x3F, 0xEF, 0xCB, 0x42, 0x00, 0x9C, 0xCA, 0xCB, 0x1E,
990
    0x53, 0x13, 0xAF, 0x55, 0xDE, 0x57, 0x4F, 0x55, 0x71, 0xAE, 0xF6, 0x73,
991
    0x24, 0xC6, 0xD6, 0xE0, 0x31, 0x62, 0x6E, 0xAC, 0xDE, 0xF4, 0x66, 0xEF,
992
    0xFB, 0xF8, 0x83, 0xC6, 0x37, 0xD0, 0x1C, 0x5F, 0x0D, 0x80, 0xC8, 0xFB,
993
    0x2A, 0xDF, 0x37, 0xE9, 0xDB, 0x63, 0xAA, 0xF8, 0x0A, 0x05, 0xA8, 0x70,
994
    0xD3, 0x6C, 0x8B, 0x6E, 0x00, 0x87, 0xF9, 0x07, 0x78, 0xF1, 0x00, 0xAC,
995
    0x21, 0xB9, 0xC3, 0xAB, 0x71, 0x15, 0x44, 0xC8, 0xB6, 0x46, 0xF5, 0x89,
996
    0x89, 0x14, 0xC0, 0xD9, 0x10, 0xCC, 0xDA, 0xEB, 0x24, 0xE8, 0x48, 0x01,
997
    0xD1, 0x7F, 0x9F, 0x56, 0x99, 0x0E, 0x58, 0xCD, 0xF9, 0x09, 0x00, 0x36,
998
    0x3A, 0x3F, 0x5E, 0x44, 0xA8, 0x90, 0xBC, 0x6E, 0xFA, 0x1D, 0x12, 0xF0,
999
    0xED, 0x7D, 0x5E, 0xA4, 0x6C, 0x8B, 0x0E, 0x7B, 0x5C, 0x3C, 0x05, 0x7C,
1000
    0x02, 0x06, 0x33, 0xC6, 0x53, 0x85, 0xC3, 0x00, 0x98, 0xF3, 0xB5, 0xEF,
1001
    0x71, 0x06, 0xC0, 0xCA, 0x21, 0x38, 0xE6, 0x9D, 0x2F, 0xFE, 0xEE, 0x2A,
1002
    0x2F, 0xCB, 0x88, 0x74, 0xC6, 0x55, 0xC7, 0xD8, 0xA7, 0x00, 0x80, 0xC9,
1003
    0x39, 0x2D, 0xCF, 0x00, 0xF0, 0x2A, 0x29, 0x95, 0xEF, 0xCF, 0xB4, 0x27,
1004
    0xBC, 0x0F, 0xF3, 0xA6, 0x0A, 0xBC, 0x49, 0x3F, 0x80, 0x68, 0x0B, 0x71,
1005
    0x59, 0x59, 0x8D, 0x06, 0x9E, 0x7F, 0x96, 0xB4, 0x95, 0x66, 0x1C, 0x4A,
1006
    0x2D, 0xBF, 0xF7, 0xFA, 0x70, 0x9E, 0xF6, 0xFB, 0xE8, 0x1E, 0x20, 0xA7,
1007
    0x40, 0x70, 0x83, 0x53, 0xF9, 0x3E, 0x44, 0x7D, 0x89, 0xD6, 0xD2, 0xD2,
1008
    0x07, 0x52, 0x50, 0x11, 0xEB, 0x13, 0xC4, 0x5B, 0xBF, 0x6D, 0x78, 0xDE,
1009
    0xE1, 0xE2, 0x11, 0xE6, 0xE6, 0x11, 0xE0, 0x84, 0x09, 0x6D, 0x13, 0xA4,
1010
    0x45, 0x30, 0x08, 0x80, 0x1E, 0x6C, 0x67, 0x7C, 0x54, 0x29, 0x85, 0xC5,
1011
    0x07, 0x4E, 0xCA, 0xDA, 0x2B, 0x59, 0x12, 0x9D, 0x9F, 0x0E, 0x40, 0xAA,
1012
    0x2C, 0x18, 0x64, 0x84, 0xBE, 0x3A, 0x05, 0x7C, 0x80, 0x4F, 0x93, 0x63,
1013
    0xE3, 0xDD, 0xAC, 0x70, 0x8D, 0xBE, 0xE7, 0xDB, 0x13, 0x81, 0x2A, 0x02,
1014
    0x1B, 0x52, 0x3D, 0x55, 0xBF, 0xF1, 0xEF, 0x8F, 0x7E, 0x3F, 0xD2, 0xF6,
1015
    0x35, 0xDF, 0x66, 0x79, 0x83, 0xB3, 0x56, 0x46, 0xBF, 0x8F, 0xF5, 0x53,
1016
    0xEA, 0xEC, 0xAC, 0xF9, 0x18, 0x0A, 0xAB, 0x07, 0x2F, 0xFB, 0x03, 0x04,
1017
    0x57, 0xE4, 0xBC, 0x81, 0xD1, 0x37, 0x8C, 0xF3, 0x29, 0xD5, 0x51, 0x94,
1018
    0xA7, 0x75, 0xC0, 0xCA, 0xE9, 0x12, 0x89, 0xDB, 0xED, 0x05, 0xDC, 0x19,
1019
    0x89, 0x4F, 0x08, 0x3D, 0x0D, 0xE6, 0xE7, 0xF8, 0x79, 0xDF, 0x85, 0xC2,
1020
    0xD8, 0xB2, 0xAE, 0x43, 0x7D, 0x38, 0x38, 0xA5, 0x87, 0x7D, 0xF0, 0x34,
1021
    0x21, 0x42, 0x48, 0x90, 0x20, 0x9F, 0x37, 0x0A, 0x70, 0x3A, 0x8D, 0x13,
1022
    0x4F, 0x6F, 0x62, 0x95, 0xC1, 0xC6, 0x67, 0x9C, 0x13, 0x09, 0x83, 0xA1,
1023
    0xB7, 0x41, 0xDC, 0x4E, 0x89, 0xA1, 0xAA, 0x83, 0x4B, 0x28, 0x20, 0xB6,
1024
    0xB7, 0x7B, 0xF9, 0xFF, 0x24, 0x3E, 0x81, 0x23, 0x5F, 0x39, 0x1D, 0xE1,
1025
    0x59, 0xEF, 0xFB, 0x1D, 0xAE, 0x26, 0xA6, 0xD2, 0xE8, 0xF2, 0x14, 0xAF,
1026
    0xE0, 0x03, 0x92, 0xF5, 0x47, 0x56, 0x98, 0x6E, 0x0A, 0x72, 0xE1, 0x87,
1027
    0x49, 0xFB, 0x5D, 0xD7, 0xC8, 0xBE, 0x31, 0x1C, 0x4F, 0x55, 0xE1, 0x92,
1028
    0x8E, 0x28, 0xA5, 0x38, 0xA9, 0xA1, 0x44, 0x01, 0xA7, 0x09, 0x28, 0xC9,
1029
    0xD8, 0xCA, 0x09, 0x14, 0x35, 0x1E, 0xE3, 0xA4, 0xF7, 0x59, 0xAA, 0xEA,
1030
    0xBE, 0x0B, 0xCF, 0x49, 0x85, 0xD5, 0x0F, 0x18, 0x80, 0x6C, 0x0F, 0xC0,
1031
    0x2D, 0x35, 0x41, 0x6D, 0x29, 0xF1, 0x09, 0xB5, 0x25, 0xA0, 0xF1, 0x06,
1032
    0x61, 0x44, 0x69, 0xFA, 0x46, 0x3D, 0x47, 0x85, 0x44, 0xB1, 0x60, 0xBD,
1033
    0x7C, 0x0F, 0xE9, 0x1F, 0x23, 0xE8, 0xE9, 0x5D, 0xFB, 0x4B, 0x60, 0x87,
1034
    0x2D, 0x74, 0x11, 0x1D, 0x80, 0xDE, 0x7B, 0x43, 0x97, 0xDC, 0x64, 0x9B,
1035
    0x60, 0x72, 0xA5, 0x0C, 0xF0, 0xD0, 0x80, 0x7A, 0x85, 0x48, 0xF2, 0xF7,
1036
    0xAB, 0x16, 0x18, 0xA3, 0xF7, 0x33, 0x34, 0x0A, 0x80, 0x52, 0x40, 0x8C,
1037
    0x4F, 0x08, 0xC7, 0x46, 0x77, 0x11, 0x9F, 0x64, 0x98, 0x4C, 0x17, 0xB9,
1038
    0xAE, 0x61, 0xE6, 0x44, 0x43, 0x4C, 0x1B, 0x52, 0x3A, 0x94, 0x0E, 0xC6,
1039
    0x6A, 0xFB, 0xEF, 0x7E, 0x9F, 0x83, 0xBA, 0xB0, 0x3E, 0x99, 0x6B, 0x82,
1040
    0xB6, 0xE6, 0x7A, 0x5E, 0xF3, 0xDD, 0x63, 0x9E, 0xED, 0x4F, 0x04, 0x26,
1041
    0x02, 0x13, 0x81, 0x1F, 0x8B, 0xC0, 0x8E, 0xCC, 0x5A, 0x89, 0x79, 0x98,
1042
    0x2D, 0x3F, 0xBA, 0xC9, 0xC3, 0x49, 0x8F, 0xE2, 0xFC, 0x84, 0x11, 0x2A,
1043
    0x03, 0xB7, 0x1D, 0x6B, 0xF7, 0x46, 0xC1, 0x51, 0x8D, 0x4E, 0xFD, 0x7B,
1044
    0x8D, 0xB7, 0xE7, 0xB0, 0x46, 0x49, 0xCE, 0xD6, 0xC2, 0x4C, 0x87, 0x74,
1045
    0x56, 0x50, 0x00, 0xB8, 0x93, 0xD5, 0x2E, 0x2E, 0x83, 0x3B, 0xF4, 0xDF,
1046
    0x0D, 0x25, 0x65, 0x80, 0x79, 0x02, 0x43, 0x7E, 0x82, 0x33, 0x5E, 0x5F,
1047
    0xD8, 0x1A, 0x1E, 0x1E, 0xC6, 0xCB, 0x2A, 0x1C, 0x08, 0xE4, 0x57, 0x32,
1048
    0x42, 0xB8, 0xB9, 0x6C, 0xC3, 0xA4, 0x75, 0xC6, 0x39, 0xA4, 0x21, 0x6C,
1049
    0x9E, 0xEF, 0x09, 0xF7, 0x2F, 0xB9, 0xBB, 0x25, 0xBA, 0x1D, 0x66, 0x2C,
1050
    0xCA, 0x89, 0x18, 0x19, 0xA1, 0x44, 0x38, 0x4D, 0xA6, 0x10, 0x89, 0xDD,
1051
    0x40, 0x72, 0x3E, 0x81, 0xA1, 0xFA, 0x15, 0x72, 0xF7, 0x1B, 0xC9, 0x74,
1052
    0x38, 0xD1, 0xE0, 0x5F, 0x10, 0xF3, 0x13, 0xD4, 0x89, 0xAA, 0xFB, 0x45,
1053
    0x7A, 0xDD, 0x5D, 0xB1, 0xBD, 0x38, 0xE1, 0x14, 0x6B, 0x8D, 0x9B, 0xDD,
1054
    0xEC, 0x92, 0xCB, 0x6E, 0xA5, 0x62, 0x5F, 0x7F, 0xB1, 0xE5, 0x4F, 0x00,
1055
    0x10, 0x61, 0xE4, 0x91, 0xBB, 0xBD, 0x12, 0xB9, 0xA9, 0xFE, 0x08, 0x72,
1056
    0xFF, 0x02, 0xAE, 0x34, 0x55, 0xEF, 0x6C, 0x05, 0x43, 0xE8, 0xE3, 0xE5,
1057
    0x9C, 0xFB, 0xD8, 0x12, 0x38, 0xD3, 0x68, 0xC4, 0x84, 0xFC, 0x7F, 0xDE,
1058
    0x82, 0x6C, 0x9A, 0xED, 0x40, 0xA9, 0x47, 0x49, 0x91, 0x24, 0xDF, 0xF0,
1059
    0xBA, 0xF8, 0x23, 0x50, 0x0F, 0x0E, 0x2C, 0x81, 0xEE, 0xB1, 0x1E, 0xFC,
1060
    0x0B, 0xAA, 0x3A, 0xCD, 0x37, 0x0C, 0xD8, 0x37, 0xA9, 0x41, 0x53, 0x51,
1061
    0x5B, 0x01, 0xB5, 0x7A, 0x47, 0xAF, 0x1F, 0xFD, 0x0B, 0xBE, 0x19, 0x00,
1062
    0x6F, 0xC6, 0x7F, 0x36, 0x3F, 0x11, 0x98, 0x08, 0x4C, 0x04, 0x26, 0x02,
1063
    0x83, 0x08, 0x7C, 0xFF, 0x63, 0x27, 0xB5, 0xAD, 0xF4, 0x11, 0x12, 0x00,
1064
    0xFA, 0xE9, 0x04, 0x06, 0xC1, 0x3E, 0xF9, 0x5C, 0xAF, 0x0B, 0xFC, 0x87,
1065
    0x16, 0x64, 0x04, 0x60, 0xBD, 0x9D, 0xEC, 0x11, 0xD2, 0xE7, 0x69, 0xB6,
1066
    0x79, 0x35, 0x8E, 0xAA, 0xA8, 0xBB, 0x23, 0x57, 0x36, 0x99, 0x7A, 0xC4,
1067
    0x11, 0x53, 0x9C, 0xD5, 0xAB, 0xFD, 0xB7, 0xCE, 0xD3, 0x00, 0x4C, 0x74,
1068
    0x28, 0x55, 0x62, 0x33, 0xE6, 0xFD, 0x07, 0x30, 0x62, 0x4F, 0x12, 0x8D,
1069
    0xD3, 0xF2, 0xCF, 0xC5, 0x39, 0x3A, 0x66, 0x9A, 0xEA, 0x3B, 0x23, 0x98,
1070
    0xDB, 0xAE, 0xE6, 0x90, 0xA8, 0x75, 0x98, 0x47, 0xB7, 0x21, 0xB1, 0x76,
1071
    0x9E, 0x7A, 0x88, 0xBE, 0x61, 0x79, 0x1B, 0xD3, 0xC3, 0xD2, 0x84, 0xCE,
1072
    0xA0, 0xE6, 0x02, 0x5B, 0x76, 0x11, 0x37, 0x83, 0x1F, 0x5F, 0x77, 0x3C,
1073
    0x07, 0x14, 0x44, 0x3E, 0xD7, 0xB9, 0x79, 0xE2, 0xD2, 0x07, 0x10, 0x7F,
1074
    0x2A, 0x31, 0x1A, 0x1B, 0x12, 0x2A, 0x66, 0xE2, 0x92, 0x10, 0x44, 0xB8,
1075
    0x0D, 0x8E, 0xCC, 0x8B, 0x9C, 0xCA, 0xFB, 0xE1, 0x6A, 0xCF, 0x01, 0xD1,
1076
    0x7D, 0x71, 0x13, 0xE8, 0xC8, 0xFD, 0x70, 0xD4, 0xFC, 0xB2, 0xB7, 0x80,
1077
    0x03, 0x47, 0x25, 0x26, 0x5E, 0xFB, 0x57, 0xEC, 0x82, 0x82, 0x82, 0x4B,
1078
    0x4F, 0x58, 0x02, 0x25, 0xF2, 0xC7, 0xCB, 0x96, 0xAD, 0x9F, 0xBE, 0x39,
1079
    0xA3, 0x00, 0xD7, 0xA1, 0xD4, 0xFC, 0x6D, 0x01, 0x14, 0x7F, 0xD7, 0xE0,
1080
    0xFC, 0x06, 0xE0, 0xEF, 0xB9, 0xAE, 0x31, 0x20, 0xA2, 0xB0, 0x66, 0x3C,
1081
    0xD5, 0x0C, 0x15, 0x5E, 0x3C, 0xAC, 0x6F, 0x82, 0x4C, 0xB2, 0xD0, 0x22,
1082
    0x76, 0x01, 0x08, 0x7B, 0x40, 0x96, 0x15, 0x04, 0xD1, 0x0C, 0x3D, 0x92,
1083
    0x84, 0x46, 0x94, 0x97, 0x80, 0x91, 0x1C, 0x5D, 0x81, 0x12, 0x29, 0xE0,
1084
    0xE2, 0x83, 0x56, 0xAA, 0x53, 0x85, 0x8B, 0x50, 0x40, 0x7A, 0x4B, 0x4C,
1085
    0x00, 0xA4, 0xEF, 0x65, 0x97, 0x06, 0x57, 0xDB, 0x9A, 0x93, 0x5D, 0xE4,
1086
    0xB5, 0x00, 0xC8, 0x00, 0xDA, 0x1E, 0xD0, 0x35, 0x87, 0xE7, 0x2E, 0x31,
1087
    0x5D, 0x0D, 0x86, 0xAE, 0xF9, 0xEA, 0x9A, 0x1D, 0x7F, 0x3F, 0x38, 0x32,
1088
    0x96, 0x9C, 0xE8, 0x62, 0xFB, 0x71, 0x7E, 0x32, 0xCB, 0xCC, 0xF8, 0x18,
1089
    0x86, 0x6A, 0x50, 0xAD, 0x39, 0x5D, 0x42, 0xF4, 0x0F, 0x35, 0x47, 0x1F,
1090
    0xA1, 0xC2, 0x26, 0xFE, 0x0F, 0xED, 0x0D, 0x7F, 0x92, 0x3A, 0x0D, 0x15,
1091
    0x5B, 0xB8, 0x78, 0x85, 0x16, 0x5B, 0x9F, 0xAF, 0x4F, 0x04, 0x26, 0x02,
1092
    0x13, 0x81, 0x44, 0x5C, 0x4F, 0x2E, 0x59, 0x51, 0x4F, 0x5C, 0xF0, 0x31,
1093
    0x72, 0x2E, 0x22, 0x1B, 0x78, 0xA7, 0x09, 0x13, 0x66, 0x4A, 0x6E, 0x74,
1094
    0xB5, 0xB7, 0x9B, 0xE7, 0xAC, 0xF3, 0xDE, 0xD5, 0x72, 0x73, 0x76, 0xE8,
1095
    0x7A, 0xF7, 0x46, 0xF1, 0x55, 0xBB, 0xAB, 0xE6, 0x7F, 0xE1, 0x64, 0xE5,
1096
    0xF6, 0x73, 0x15, 0xAD, 0x80, 0x6F, 0x49, 0x1C, 0xDD, 0xE5, 0x14, 0x02,
1097
    0x27, 0xDA, 0xBB, 0x05, 0xC7, 0xAE, 0xD6, 0xF3, 0xE7, 0x8C, 0x96, 0x4D,
1098
    0xB0, 0xEA, 0x9F, 0x43, 0x39, 0x00, 0xE1, 0xF6, 0xF6, 0x0A, 0x67, 0x04,
1099
    0x02, 0xAA, 0x01, 0x40, 0x37, 0x9B, 0x01, 0x4D, 0x0C, 0xB0, 0xEB, 0xED,
1100
    0xAA, 0xE9, 0xF3, 0xA5, 0x6C, 0x7E, 0xAE, 0x7D, 0x7D, 0x82, 0x20, 0xDC,
1101
    0xA4, 0x2B, 0x62, 0xD5, 0x02, 0x81, 0x77, 0x7D, 0x6C, 0x9A, 0x34, 0xEB,
1102
    0xA6, 0xCC, 0x14, 0x3A, 0x25, 0x0A, 0x50, 0x00, 0x24, 0x9A, 0xBC, 0x5D,
1103
    0x9E, 0x46, 0xE2, 0x31, 0x04, 0xFE, 0x5E, 0x19, 0xFE, 0x16, 0xC2, 0x78,
1104
    0x25, 0x77, 0x95, 0xAB, 0xAC, 0x66, 0xCC, 0x3F, 0x7B, 0xAC, 0x74, 0x49,
1105
    0x52, 0x01, 0x80, 0x87, 0x8A, 0x00, 0x90, 0x98, 0xA7, 0xD5, 0xBF, 0x40,
1106
    0x97, 0x00, 0x3A, 0x13, 0xC2, 0xB5, 0x45, 0xA5, 0x40, 0x78, 0x1C, 0xE1,
1107
    0x8A, 0x8D, 0x22, 0x00, 0xC5, 0x43, 0x24, 0x00, 0x80, 0xEF, 0x99, 0x02,
1108
    0x06, 0xED, 0xF3, 0xA8, 0x8C, 0x37, 0xA1, 0x03, 0x12, 0xB9, 0xEF, 0x24,
1109
    0x3C, 0x46, 0x98, 0x82, 0xE5, 0x79, 0x3A, 0xA0, 0xA2, 0x02, 0x49, 0xEA,
1110
    0xCB, 0x01, 0x48, 0x3B, 0xC0, 0x2F, 0x28, 0x05, 0x2A, 0x05, 0xAC, 0x2B,
1111
    0xDD, 0x27, 0xD8, 0xB4, 0x49, 0x9E, 0xE8, 0x71, 0x99, 0xA0, 0xE8, 0x18,
1112
    0x73, 0x07, 0xFA, 0x62, 0x17, 0x95, 0x00, 0x39, 0x7F, 0x40, 0xA0, 0x80,
1113
    0x91, 0xDA, 0xDB, 0x89, 0x46, 0x6B, 0x1E, 0x04, 0x41, 0x5A, 0x59, 0xA3,
1114
    0x36, 0xFF, 0x82, 0x3E, 0x37, 0x87, 0x92, 0xAE, 0x3F, 0xC1, 0xA8, 0x7F,
1115
    0xBD, 0xE9, 0x4F, 0x94, 0x31, 0x18, 0xA3, 0xA9, 0x3E, 0x60, 0x36, 0x1A,
1116
    0xB9, 0x52, 0x13, 0x5D, 0x70, 0xD7, 0xFA, 0xC8, 0x73, 0xBE, 0x30, 0x65,
1117
    0x6C, 0x32, 0x4E, 0xBF, 0x0E, 0x67, 0x2E, 0x2E, 0x54, 0x19, 0xCF, 0x5C,
1118
    0x7C, 0x61, 0x47, 0x5F, 0xAD, 0x8C, 0x08, 0x00, 0x60, 0x3E, 0xFA, 0x8C,
1119
    0xE0, 0xF0, 0x7D, 0x08, 0x35, 0x74, 0x92, 0x7B, 0x97, 0x6A, 0x95, 0x9D,
1120
    0xBC, 0xFD, 0xF5, 0xA5, 0x7F, 0x4A, 0x3B, 0x3C, 0x3C, 0xDE, 0x59, 0xC1,
1121
    0xF7, 0x47, 0xC0, 0x67, 0x1D, 0x7A, 0x8C, 0x46, 0xC2, 0xC4, 0xC4, 0x75,
1122
    0x36, 0xF3, 0xEE, 0x86, 0x69, 0xAB, 0x94, 0xAC, 0xAC, 0xDA, 0xBE, 0x22,
1123
    0x3E, 0xFA, 0x3D, 0x5F, 0xAD, 0x6E, 0xB5, 0x8B, 0x74, 0xA7, 0xEE, 0xE6,
1124
    0xEC, 0xDD, 0x6D, 0x99, 0xB3, 0x25, 0x98, 0xD5, 0xDF, 0x63, 0xFD, 0x11,
1125
    0xFA, 0xD0, 0x33, 0x22, 0x69, 0x3F, 0xF8, 0xFB, 0x8F, 0x7E, 0xFF, 0x91,
1126
    0x3E, 0x96, 0xDE, 0x29, 0x52, 0x40, 0xA9, 0xEE, 0x97, 0xBC, 0x2C, 0x24,
1127
    0x4E, 0x69, 0x8B, 0xAD, 0xC1, 0xD1, 0xE7, 0x9A, 0x69, 0xD9, 0xA4, 0x4D,
1128
    0x37, 0x10, 0xB5, 0xED, 0x15, 0xCB, 0x59, 0x78, 0x7E, 0xF6, 0x1C, 0x3D,
1129
    0xE1, 0x54, 0x57, 0x2F, 0x28, 0xF3, 0x75, 0x81, 0x2A, 0x8B, 0xA9, 0xB0,
1130
    0x5E, 0x2D, 0xA7, 0xD1, 0xE9, 0x99, 0xA5, 0x6A, 0xE1, 0x64, 0x67, 0xB7,
1131
    0xCB, 0xCB, 0x2C, 0x8F, 0x07, 0x5F, 0xF5, 0xEA, 0x80, 0x83, 0x76, 0x23,
1132
    0x1D, 0xA0, 0x66, 0x9C, 0x94, 0x32, 0x58, 0x55, 0x12, 0x8F, 0xAE, 0x2F,
1133
    0x43, 0xC2, 0x77, 0x97, 0xBB, 0xAB, 0x3A, 0x29, 0x78, 0x98, 0xA8, 0xC7,
1134
    0x49, 0x52, 0x1E, 0xA5, 0x00, 0x75, 0x70, 0xB8, 0xBC, 0x8C, 0xD0, 0x5A,
1135
    0xB2, 0x6E, 0x07, 0x00, 0x64, 0x63, 0xAB, 0x52, 0xC4, 0x28, 0x00, 0x9A,
1136
    0x11, 0xE2, 0x15, 0x65, 0x09, 0x77, 0xE7, 0x11, 0x57, 0x07, 0x7C, 0xF5,
1137
    0x12, 0x68, 0xE6, 0x7E, 0xB7, 0x06, 0xAE, 0x2E, 0x4B, 0x42, 0x4B, 0x7F,
1138
    0xC3, 0xEC, 0x03, 0x88, 0x37, 0x03, 0xF0, 0x3B, 0xC9, 0xE9, 0x9F, 0x7D,
1139
    0xE1, 0xEA, 0xB2, 0xED, 0x79, 0x6C, 0x59, 0xD0, 0x00, 0x80, 0xE2, 0xB1,
1140
    0xA7, 0x39, 0x3F, 0xB2, 0x63, 0x2E, 0x7B, 0xFE, 0x12, 0xCE, 0xA2, 0x5F,
1141
    0xE9, 0x2B, 0xD5, 0x23, 0x6F, 0x18, 0x4E, 0xBD, 0xC9, 0x4F, 0x96, 0xFF,
1142
    0xEB, 0x1D, 0x9C, 0x5F, 0x4C, 0x04, 0xFE, 0x6F, 0x04, 0x54, 0xDE, 0xAF,
1143
    0xCA, 0xDB, 0xA9, 0xBE, 0x20, 0x81, 0xB7, 0xDA, 0x5E, 0xAC, 0x4E, 0xF4,
1144
    0x19, 0xD5, 0xE9, 0x54, 0x79, 0x3F, 0xE8, 0x74, 0x07, 0xF5, 0x05, 0x69,
1145
    0x7F, 0x46, 0xE5, 0xFB, 0xBE, 0xB5, 0x3A, 0x6D, 0xFE, 0x1D, 0x2F, 0xD0,
1146
    0x55, 0xE4, 0xAF, 0xEE, 0x80, 0x3A, 0x5F, 0xAB, 0xFF, 0x82, 0x49, 0xFF,
1147
    0xE4, 0x8D, 0x7D, 0xF6, 0x81, 0xEF, 0x64, 0xF5, 0xB9, 0x0E, 0xD0, 0xBE,
1148
    0x77, 0x3A, 0x34, 0xF5, 0x3C, 0x2D, 0x96, 0x43, 0x7E, 0x00, 0x95, 0x15,
1149
    0x43, 0xF2, 0xB1, 0xC6, 0xAA, 0x39, 0x01, 0x71, 0x43, 0x6C, 0xB6, 0x07,
1150
    0xA0, 0x65, 0x9B, 0xF7, 0xE9, 0xF3, 0x47, 0xCB, 0x12, 0xC0, 0x80, 0xFA,
1151
    0x29, 0xFC, 0xBD, 0x38, 0xE0, 0x66, 0x06, 0xF3, 0xFD, 0xD5, 0xFC, 0x00,
1152
    0x8D, 0x13, 0x74, 0xA0, 0xDB, 0x78, 0xC9, 0xDB, 0xD7, 0x7E, 0xF0, 0x4A,
1153
    0xBD, 0x4D, 0x52, 0x44, 0x3C, 0x6E, 0x67, 0x7B, 0x4E, 0xD1, 0x68, 0x19,
1154
    0xE9, 0xFA, 0x49, 0x87, 0x08, 0xBC, 0x11, 0x32, 0xF2, 0xAC, 0x7F, 0x14,
1155
    0x00, 0xBD, 0xED, 0xBE, 0x19, 0x6B, 0xDD, 0x04, 0x62, 0xBC, 0xE4, 0x7B,
1156
    0xFD, 0x08, 0x20, 0x71, 0x3F, 0x6D, 0xEB, 0x0A, 0x2D, 0xE7, 0x13, 0xB2,
1157
    0xD6, 0x37, 0x07, 0xD9, 0x68, 0xD9, 0x8C, 0x93, 0x5E, 0x3A, 0x44, 0x01,
1158
    0xE9, 0xEF, 0x9F, 0xBF, 0x0C, 0x03, 0x00, 0xC3, 0xA4, 0xD7, 0x78, 0x18,
1159
    0x00, 0x44, 0x21, 0xEA, 0xAE, 0xD1, 0xDE, 0xE6, 0x19, 0x40, 0x36, 0xB8,
1160
    0x17, 0x02, 0x20, 0x5A, 0xF7, 0xC3, 0x52, 0xC7, 0x5D, 0x09, 0x80, 0x24,
1161
    0x7D, 0x31, 0x00, 0xBC, 0x35, 0x0C, 0xE3, 0x65, 0x07, 0x85, 0xC7, 0x12,
1162
    0x78, 0x0E, 0xB8, 0x99, 0x9F, 0x5D, 0x79, 0x94, 0xE4, 0xF5, 0x7B, 0x78,
1163
    0x37, 0x90, 0xB9, 0x1E, 0x01, 0x36, 0xE4, 0xF2, 0x31, 0x4C, 0x01, 0xA2,
1164
    0x20, 0xD1, 0xEC, 0xF9, 0x36, 0x5E, 0x72, 0xC3, 0x6A, 0x9B, 0x82, 0xDF,
1165
    0x04, 0xB1, 0x07, 0xFA, 0x3B, 0x3D, 0x75, 0x53, 0x19, 0x2D, 0xDB, 0xA6,
1166
    0x4A, 0x33, 0x02, 0xD3, 0x29, 0xAD, 0x51, 0xB9, 0x62, 0xA3, 0xB5, 0xE7,
1167
    0x7D, 0x8E, 0x92, 0xB2, 0x06, 0x69, 0x05, 0xDF, 0x77, 0x99, 0xF0, 0x16,
1168
    0x93, 0x24, 0x41, 0x61, 0x4C, 0x23, 0x9A, 0x6E, 0x70, 0xB4, 0xAC, 0xC7,
1169
    0xA0, 0xD6, 0x07, 0x8F, 0x10, 0xB2, 0x26, 0x57, 0xCB, 0x4A, 0x01, 0xA2,
1170
    0x02, 0x45, 0x40, 0xD6, 0xE5, 0x29, 0x2E, 0xC6, 0x58, 0x97, 0x4F, 0xE5,
1171
    0x82, 0xC6, 0xBA, 0x3A, 0xBF, 0x9E, 0x08, 0x4C, 0x04, 0x26, 0x02, 0x13,
1172
    0x81, 0x1C, 0x81, 0xEF, 0x66, 0x1E, 0x8F, 0x3E, 0x5C, 0xE2, 0xE6, 0x27,
1173
    0x7E, 0x96, 0x99, 0xC6, 0xE7, 0xDE, 0x4F, 0x0F, 0x18, 0x00, 0xAC, 0xB6,
1174
    0xAF, 0x15, 0x8C, 0x7E, 0x3F, 0xEE, 0x21, 0x22, 0xF1, 0xFF, 0x55, 0x17,
1175
    0x99, 0xAA, 0xC6, 0x49, 0xF3, 0x0D, 0x0C, 0x7F, 0x9F, 0xD3, 0xF4, 0x0F,
1176
    0x7F, 0x43, 0x14, 0x06, 0xCD, 0xF4, 0xE4, 0x87, 0x3C, 0x58, 0x06, 0x27,
1177
    0xBB, 0x31, 0x95, 0x4A, 0xB4, 0x77, 0x55, 0xA3, 0xA4, 0xEF, 0x4B, 0x77,
1178
    0xAD, 0xFF, 0x34, 0x63, 0x59, 0xD9, 0x5E, 0x56, 0xA7, 0x85, 0x6B, 0xCB,
1179
    0x30, 0x85, 0x79, 0x03, 0xB9, 0xE4, 0xFD, 0x6A, 0xF1, 0xFD, 0x5E, 0xE3,
1180
    0x54, 0x2C, 0xC7, 0xCB, 0xDA, 0x35, 0xBD, 0x42, 0x56, 0xB6, 0x00, 0x05,
1181
    0x8D, 0xBF, 0xBF, 0xB0, 0xFC, 0x88, 0x40, 0x79, 0x2A, 0x3C, 0xD4, 0x32,
1182
    0x38, 0x6A, 0x8E, 0x1F, 0x06, 0xC0, 0x3A, 0x44, 0xB7, 0xCD, 0x5F, 0x5B,
1183
    0xB6, 0x7C, 0x7F, 0x24, 0x8F, 0x29, 0x00, 0x1A, 0xD0, 0x55, 0x2D, 0x0F,
1184
    0x03, 0x60, 0xF2, 0xB6, 0xDE, 0xE9, 0x71, 0x61, 0x19, 0xEE, 0xFA, 0x7A,
1185
    0x7D, 0x1E, 0x47, 0xF0, 0x84, 0x90, 0x34, 0xCD, 0x0D, 0x90, 0x94, 0x87,
1186
    0x01, 0x68, 0xE1, 0x06, 0x7E, 0x8E, 0x2E, 0x2E, 0x5B, 0x4A, 0x14, 0xD2,
1187
    0x7B, 0x9B, 0x8A, 0xC6, 0xB7, 0xA7, 0x0A, 0x89, 0x62, 0xB9, 0xB9, 0x1B,
1188
    0x38, 0x90, 0xAA, 0xE5, 0x37, 0x1C, 0x71, 0xD3, 0x3F, 0xA0, 0x12, 0x76,
1189
    0xF8, 0x86, 0x09, 0x9A, 0x4D, 0x4E, 0x04, 0x26, 0x02, 0x13, 0x81, 0xFF,
1190
    0x0A, 0x01, 0x3B, 0x38, 0x39, 0x9D, 0x1D, 0x0B, 0xF4, 0x55, 0x79, 0x3B,
1191
    0xD3, 0x17, 0x64, 0xE0, 0x56, 0xDB, 0x8B, 0xF5, 0x91, 0x3E, 0x23, 0x0F,
1192
    0xE2, 0x82, 0xB8, 0x46, 0x21, 0x2E, 0x97, 0x7B, 0x88, 0xA8, 0xBE, 0x20,
1193
    0xF6, 0x98, 0x99, 0xBD, 0xAA, 0x87, 0x88, 0xD6, 0xCF, 0x1E, 0x22, 0x01,
1194
    0x80, 0xA0, 0x4F, 0x60, 0x4B, 0x55, 0x36, 0x3F, 0x17, 0x3C, 0x0F, 0x81,
1195
    0x7B, 0xF9, 0x24, 0x0D, 0xB4, 0x9A, 0x57, 0x2E, 0x37, 0x3A, 0x2E, 0x9B,
1196
    0x90, 0xC4, 0xA8, 0xBC, 0xAE, 0xDF, 0xEB, 0xF5, 0x06, 0x92, 0x3A, 0x4B,
1197
    0x83, 0xAF, 0xAB, 0x65, 0xCB, 0xBD, 0xEF, 0xFD, 0x0D, 0x90, 0x3E, 0x80,
1198
    0x48, 0x5C, 0x9F, 0x37, 0x59, 0xDC, 0x13, 0x9D, 0x25, 0xFB, 0x93, 0xCB,
1199
    0xD8, 0xA3, 0xF1, 0xD2, 0x3B, 0x1C, 0xC8, 0x8D, 0x0D, 0x99, 0xF1, 0x54,
1200
    0x27, 0x13, 0xEF, 0x53, 0x84, 0x7F, 0x75, 0xC0, 0xE1, 0x7D, 0x95, 0x66,
1201
    0x31, 0x1E, 0xF2, 0x70, 0x91, 0xE7, 0x0F, 0x17, 0x13, 0x51, 0x48, 0x78,
1202
    0xE1, 0xE8, 0x61, 0xDE, 0x7E, 0x76, 0x7B, 0xB8, 0xDC, 0x84, 0x17, 0xEF,
1203
    0x71, 0x82, 0x21, 0xB8, 0xFA, 0x47, 0x01, 0x30, 0x5F, 0x07, 0x1F, 0x00,
1204
    0xA2, 0x0E, 0x12, 0xFA, 0xBC, 0x29, 0x6B, 0x3E, 0x13, 0x00, 0xA5, 0x00,
1205
    0x64, 0x90, 0xA4, 0x24, 0x1F, 0xC3, 0x00, 0xC0, 0xC3, 0xA5, 0xE7, 0x21,
1206
    0x82, 0xFC, 0x02, 0xBC, 0x2D, 0x18, 0x79, 0x78, 0x25, 0x44, 0xC8, 0x01,
1207
    0x52, 0x24, 0xF1, 0x7C, 0x09, 0x48, 0xCA, 0x4E, 0x38, 0x23, 0x08, 0x89,
1208
    0x52, 0xFE, 0x01, 0x2C, 0xD1, 0x52, 0xD9, 0xBC, 0x1D, 0xFC, 0xA9, 0xDE,
1209
    0x3C, 0x44, 0x48, 0x25, 0xC3, 0xCF, 0x9B, 0x37, 0xBF, 0x22, 0xA6, 0x39,
1210
    0x2B, 0xC9, 0x5E, 0x3F, 0xEC, 0x1F, 0x20, 0xA7, 0xC0, 0x89, 0x7F, 0x00,
1211
    0xB5, 0x8F, 0x3D, 0xB9, 0x54, 0x56, 0x17, 0x19, 0x2C, 0x38, 0x8E, 0x5E,
1212
    0x1F, 0x4C, 0xE1, 0x31, 0x70, 0x22, 0x9D, 0x7F, 0x9A, 0x5D, 0x09, 0x5A,
1213
    0x6E, 0x90, 0x95, 0x6A, 0xF1, 0x18, 0xAC, 0xDE, 0x99, 0x5A, 0xEE, 0xC0,
1214
    0x9B, 0x3F, 0x10, 0x1D, 0xDB, 0x49, 0x3E, 0x83, 0x37, 0x77, 0xF0, 0xC5,
1215
    0xCD, 0x6B, 0x86, 0x10, 0x05, 0xC0, 0x3F, 0xFF, 0x05, 0x6D, 0x80, 0x60,
1216
    0x8A, 0x5F, 0xA6, 0xA3, 0x36, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E,
1217
    0x44, 0xAE, 0x42, 0x60, 0x82,
1218
};
1219
 
1220
const size_t Console::g_png_size = 5849;