]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
imported winuaesrc1600b9.zip
authorToni Wilen <twilen@winuae.net>
Wed, 21 Jan 2009 10:45:02 +0000 (12:45 +0200)
committerToni Wilen <twilen@winuae.net>
Mon, 22 Feb 2010 19:44:29 +0000 (21:44 +0200)
27 files changed:
cfgfile.c
custom.c
debug.c
drawing.c
filesys.c
filesys_bootrom.c
include/clipboard.h [new file with mode: 0644]
include/debug.h
include/native2amiga.h
include/native2amiga_api.h [new file with mode: 0644]
include/uae.h
missing.c
od-win32/ahidsound.c
od-win32/clipboard.c [deleted file]
od-win32/clipboard_win32.c [new file with mode: 0644]
od-win32/clipboard_win32.h [moved from od-win32/clipboard.h with 78% similarity]
od-win32/cloanto/RetroPlatformIPC.h
od-win32/cloanto/RetroPlatformIPC_doc_draft.txt
od-win32/picasso96_win.c
od-win32/resources/winuae.rc
od-win32/rp.c
od-win32/srcrelease.cmd
od-win32/win32.c
od-win32/win32.h
od-win32/win32gui.c
od-win32/winuae_msvc/winuae_msvc.vcproj
od-win32/winuaechangelog.txt

index eeabd91fa9de4e003a4bac71cfcfeeffdc7744a2..6dcfc36be8c618556ec5164b25109c5d26d08373 100644 (file)
--- a/cfgfile.c
+++ b/cfgfile.c
@@ -2870,7 +2870,7 @@ void default_prefs (struct uae_prefs *p, int type)
     p->config_hardware_path[0] = 0;
     p->config_host_path[0] = 0;
 
-    p->gfx_scandoubler = 0;
+    p->gfx_scandoubler = 1;
     p->start_gui = 1;
     p->start_debugger = 0;
 
index b8a7bc844caa88048eed20b5f662fc88762dc712..b1df8edd32da1845487a0cddaf42a90821f89d4d 100644 (file)
--- a/custom.c
+++ b/custom.c
@@ -66,8 +66,6 @@
 
 #define SPRBORDER 0
 
-void magic_centering (uae_u16, uae_u16, int);
-
 STATIC_INLINE int nocustom(void)
 {
     if (picasso_on && currprefs.picasso96_nocustom)
@@ -137,7 +135,7 @@ extern uae_u8* compiled_code;
 
 int vpos;
 int hack_vpos;
-static uae_u16 lof;
+static int lof;
 static int next_lineno, prev_lineno;
 static enum nln_how nextline_how;
 static int lof_changed = 0;
@@ -226,8 +224,8 @@ uae_u8 cycle_line[256];
 
 static uae_u16 bplxdat[8];
 static uae_s16 bpl1mod, bpl2mod;
-
-static uaecptr bplpt[8], f_bplpt[8];
+static uaecptr prevbpl[2][MAXVPOS][8];
+static uaecptr bplpt[8], bplptx[8], f_bplpt[8];
 /* Used as a debugging aid, to offset any bitplane temporarily.  */
 int bpl_off[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
 
@@ -627,15 +625,15 @@ static void add_modulos (void)
 
     switch (f_bplcon0_planes_limit) {
 #ifdef AGA
-       case 8: bplpt[7] += m2;
-       case 7: bplpt[6] += m1;
+       case 8: bplpt[7] += m2; bplptx[7] += m2;
+       case 7: bplpt[6] += m1; bplptx[6] += m1;
 #endif
-       case 6: bplpt[5] += m2;
-       case 5: bplpt[4] += m1;
-       case 4: bplpt[3] += m2;
-       case 3: bplpt[2] += m1;
-       case 2: bplpt[1] += m2;
-       case 1: bplpt[0] += m1;
+       case 6: bplpt[5] += m2; bplptx[5] += m2;
+       case 5: bplpt[4] += m1; bplptx[4] += m1;
+       case 4: bplpt[3] += m2; bplptx[3] += m2;
+       case 3: bplpt[2] += m1; bplptx[2] += m1;
+       case 2: bplpt[1] += m2; bplptx[1] += m2;
+       case 1: bplpt[0] += m1; bplptx[0] += m1;
     }
 }
 
@@ -982,6 +980,7 @@ STATIC_INLINE void fetch (int nr, int fm)
            else
                mod = bpl1mod;
            bplpt[nr] += mod;
+           bplptx[nr] += mod;
        }
     } else if (isocs7planes ()) {
        fetched[nr] = bplxdat[nr];
@@ -1252,8 +1251,10 @@ STATIC_INLINE void long_fetch_ecs (int plane, int nwords, int weird_number_of_bi
     uae_u32 fetchval = fetched[plane];
     uae_u32 *dataptr = (uae_u32 *)(line_data[next_lineno] + 2 * plane * MAX_WORDS_PER_LINE + 4 * out_offs);
 
-    if (dma)
+    if (dma) {
        bplpt[plane] += nwords * 2;
+       bplptx[plane] += nwords * 2;
+    }
 
     if (real_pt == 0)
        /* @@@ Don't do this, fall back on chipmem_wget instead.  */
@@ -1314,8 +1315,10 @@ STATIC_INLINE void long_fetch_aga (int plane, int nwords, int weird_number_of_bi
        off1 = 2;
     offs -= off1 * 32;
 
-    if (dma)
+    if (dma) {
        bplpt[plane] += nwords * 2;
+       bplptx[plane] += nwords * 2;
+    }
 
     if (real_pt == 0)
        /* @@@ Don't do this, fall back on chipmem_wget instead.  */
@@ -1461,6 +1464,7 @@ STATIC_INLINE void inc_bpl (int fm, int oe)
        if ((oe == 0) || (oe < 0 && (i & 1)) || (oe > 0 && !(i & 1))) {
            f_bplpt[i] = bplpt[i];
            bplpt[i] += 2 << fm;
+           bplptx[i] += 2 << fm;
        }
     }
 }
@@ -1679,6 +1683,16 @@ static void start_bpl_dma (int hpos, int hstart)
 {
     if (first_bpl_vpos < 0)
        first_bpl_vpos = vpos;
+
+    if (doflickerfix () && !scandoubled_line) {
+       int i;
+       for (i = 0; i < 8; i++) {
+           prevbpl[lof][vpos][i] = bplptx[i];
+           if (!lof && (bplcon0 & 4))
+               bplpt[i] = prevbpl[1 - lof][vpos][i];
+       }
+    }
+
     fetch_bpl_params ();
     copy_bpl_params (hpos);
     fetch_start (hpos);
@@ -1816,7 +1830,6 @@ static void record_color_change (int hpos, int regno, unsigned long value)
 
 static void record_register_change (int hpos, int regno, unsigned long value)
 {
-    //magic_centering (regno, value, vpos);
     if (regno == 0x100) {
        if (plfstate >= plf_end)
            return;
@@ -2793,9 +2806,9 @@ STATIC_INLINE uae_u16 VPOSR (void)
 
     if (!(currprefs.chipset_mask & CSMASK_ECS_AGNUS))
        vp &= 1;
-    vp = vp | lof | csbit;
+    vp = vp | (lof ? 0x8000 : 0) | csbit;
 #if 0
-    write_log ("vposr %x at %x\n", vp, m68k_getpc (&regs));
+    write_log ("VPOSR %04x at %08x\n", vp, M68K_GETPC);
 #endif
     if (currprefs.cpu_model >= 68020)
        hsyncdelay ();
@@ -2804,11 +2817,11 @@ STATIC_INLINE uae_u16 VPOSR (void)
 static void VPOSW (uae_u16 v)
 {
 #if 0
-    write_log ("vposw %d PC=%08x\n", v, M68K_GETPC);
+    write_log ("VPOSW %d PC=%08x\n", v, M68K_GETPC);
 #endif
-    if (lof != (v & 0x8000))
+    if (lof != ((v & 0x8000) ? 1 : 0))
        lof_changed = 1;
-    lof = v & 0x8000;
+    lof = (v & 0x8000) ? 1 : 0;
     if ((v & 1) && vpos > 0) {
        hack_vpos = vpos + 1;
        if (hack_vpos > maxvpos)
@@ -2831,6 +2844,12 @@ STATIC_INLINE uae_u16 VHPOSR (void)
     vp |= hp;
     if (currprefs.cpu_model >= 68020)
        hsyncdelay ();
+#if 0
+    write_log ("VPOS %04x %04x at %08x\n", VPOSR(), vp, M68K_GETPC);
+    if (M68K_GETPC == 0x40e6) {
+        activate_debugger();
+    }
+#endif
     return vp;
 }
 
@@ -3161,6 +3180,7 @@ static void BPLxPTH (int hpos, uae_u16 v, int num)
     decide_line (hpos);
     decide_fetch (hpos);
     bplpt[num] = (bplpt[num] & 0x0000ffff) | ((uae_u32)v << 16);
+    bplptx[num] = (bplptx[num] & 0x0000ffff) | ((uae_u32)v << 16);
     //write_log ("%d:%d:BPL%dPTH %08X\n", hpos, vpos, num, v);
 }
 static void BPLxPTL (int hpos, uae_u16 v, int num)
@@ -3174,6 +3194,7 @@ static void BPLxPTL (int hpos, uae_u16 v, int num)
        delta = 2 << f_fetchmode;
     }
     bplpt[num] = (bplpt[num] & 0xffff0000) | ((v + delta) & 0x0000fffe);
+    bplptx[num] = (bplptx[num] & 0xffff0000) | ((v + delta) & 0x0000fffe);
     //write_log ("%d:%d:BPL%dPTL %08X\n", hpos, vpos, num, v);
 }
 
@@ -3312,7 +3333,6 @@ static void BPL1MOD (int hpos, uae_u16 v)
        return;
     decide_line (hpos);
     decide_fetch (hpos);
-    //magic_centering (0x108, v, vpos);
     bpl1mod = v;
 }
 
@@ -3323,7 +3343,6 @@ static void BPL2MOD (int hpos, uae_u16 v)
        return;
     decide_line (hpos);
     decide_fetch (hpos);
-    //magic_centering (0x10a, v, vpos);
     bpl2mod = v;
 }
 
@@ -3393,7 +3412,6 @@ static void DDFSTRT (int hpos, uae_u16 v)
     ddfstrt_old_vpos = vpos;
     ddfstrt = v;
     calcdiw ();
-    //magic_centering (0x92, v, vpos);
     if (ddfstop > 0xD4 && (ddfstrt & 4) == 4) {
        static int last_warned;
        last_warned = (last_warned + 1) & 4095;
@@ -3414,7 +3432,6 @@ static void DDFSTOP (int hpos, uae_u16 v)
     decide_blitter (hpos);
     ddfstop = v;
     calcdiw ();
-    //magic_centering (0x94, v, vpos);
     if (fetch_state != fetch_not_started)
        estimate_last_fetch_cycle (hpos);
     if (ddfstop > 0xD4 && (ddfstrt & 4) == 4) {
@@ -3429,7 +3446,6 @@ static void FMODE (uae_u16 v)
 {
     if (! (currprefs.chipset_mask & CSMASK_AGA))
        v = 0;
-    //magic_centering (0x1fc, v, vpos);
     ddf_change = vpos;
     fmode = v;
     sprite_width = GET_SPRITEWIDTH (fmode);
@@ -4368,7 +4384,7 @@ static void do_sprites (int hpos)
 
     if (vpos < sprite_vblank_endline)
        return;
-    if (doflickerfix () && !(next_lineno & 1))
+    if (doflickerfix () && (next_lineno & 1))
        return;
 
 #ifndef CUSTOM_SIMPLE
@@ -4607,7 +4623,6 @@ static void fpscounter (void)
 
 static void vsync_handler (void)
 {
-    //magic_centering (0, 0, 0);
     fpscounter ();
 
     if (!isvsync ()
@@ -4648,7 +4663,7 @@ static void vsync_handler (void)
 
     INTREQ_d (0x8000 | 0x0020, 3);
     if (bplcon0 & 4)
-       lof ^= 0x8000;
+       lof ^= 1;
 
 #ifdef PICASSO96
     picasso_handle_vsync ();
@@ -4761,28 +4776,85 @@ static void CIA_vsync_prehandler (int dotod)
     ciavsync_counter++;
 }
 
-static uaecptr prevbpl[2][MAXVPOS][8];
-static void hsync_scandoubler (int lof)
+/*
+
+0 0 -
+1 1 --
+2 2 -
+3 3 --
+4 4 -
+5 5 --
+
+0 x -
+1 0 --
+2 1 -
+3 2 --
+4 3 -
+5 4 --
+
+*/
+
+static void hsync_scandoubler (void)
 {
-    int i;
+    int i, idx1;
+    struct draw_info *dip1;
+    uaecptr bpltmp[8], bpltmpx[8];
+
+    next_lineno++;
+    scandoubled_line = 1;
 
     for (i = 0; i < 8; i++) {
-       prevbpl[lof][vpos][i] = bplpt[i];
-       bplpt[i] = prevbpl[1 - lof][vpos - lof][i];
+       int diff;
+       bpltmp[i] = bplpt[i];
+       bpltmpx[i] = bplptx[i];
+       diff = prevbpl[lof][vpos][i] - prevbpl[1 - lof][vpos][i];
+       if (lof) {
+           if (bplcon0 & 4)
+               bplpt[i] = prevbpl[lof][vpos][i] - diff;
+       } else {
+           if (bplcon0 & 4)
+               bplpt[i] = prevbpl[lof][vpos][i];
+           else
+               bplpt[i] = bplpt[i] - diff;
+
+       }
     }
 
-    next_lineno++;
-    scandoubled_line = 1;
     reset_decisions ();
     plfstate = plf_idle;
+
+    // copy color changes
+    dip1 = curr_drawinfo + next_lineno - 1;
+    for (idx1 = dip1->first_color_change; idx1 < dip1->last_color_change; idx1++) {
+       struct color_change *cs2 = &curr_color_changes[idx1];
+       int regno = cs2->regno;
+       int hpos = cs2->linepos;
+       if (regno < 0x1000 && hpos < HBLANK_OFFSET && !(beamcon0 & 0x80) && prev_lineno >= 0) {
+           struct draw_info *pdip = curr_drawinfo + next_lineno - 1;
+           int idx = pdip->last_color_change;
+           pdip->last_color_change++;
+           pdip->nr_color_changes++;
+           curr_color_changes[idx].linepos = hpos + maxhpos + 1;
+           curr_color_changes[idx].regno = regno;
+           curr_color_changes[idx].value = cs2->value;
+           curr_color_changes[idx + 1].regno = -1;
+       } else {
+           struct color_change *cs1 = &curr_color_changes[next_color_change];
+           memcpy (cs1, cs2, sizeof (struct color_change));
+           next_color_change++;
+       }
+    }
+    curr_color_changes[next_color_change].regno = -1;
+
     finish_decisions (maxhpos);
     hsync_record_line_state (next_lineno, nln_normal, thisline_changed);
     hardware_line_completed (next_lineno);
     scandoubled_line = 0;
-    next_lineno--;
 
-    for (i = 0; i < 8; i++)
-       bplpt[i] = prevbpl[lof][vpos][i];
+    for (i = 0; i < 8; i++) {
+       bplpt[i] = bpltmp[i];
+       bplptx[i] = bpltmpx[i];
+    }
 }
 
 static void hsync_handler (void)
@@ -4870,17 +4942,15 @@ static void hsync_handler (void)
                cycle_diagram_free_cycles[f_fetchmode][GET_RES (f_bplcon0)][GET_PLANES_LIMIT (f_bplcon0)]);
        }
        hardware_line_completed (next_lineno);
-       if (doflickerfix ()) {
-           hsync_scandoubler (lof ? 1 : 0);
-           next_lineno++;
-       }
+       if (doflickerfix ())
+           hsync_scandoubler ();
     }
 
     /* In theory only an equality test is needed here - but if a program
        goes haywire with the VPOSW register, it can cause us to miss this,
        with vpos going into the thousands (and all the nasty consequences
        this has).  */
-    if (++vpos >= (maxvpos + (lof == 0 ? 0 : 1))) {
+    if (++vpos >= maxvpos + lof) {
        if ((bplcon0 & 8) && !lightpen_triggered) {
            vpos_lpen = vpos - 1;
            hpos_lpen = maxhpos;
@@ -4924,7 +4994,7 @@ static void hsync_handler (void)
        }
     } else {
 #endif
-       is_lastline = vpos + 1 == maxvpos + (lof == 0 ? 0 : 1) && currprefs.m68k_speed == -1;
+       is_lastline = vpos + 1 == maxvpos + lof && currprefs.m68k_speed == -1;
 #ifdef JIT
     }
 #endif
@@ -4936,8 +5006,6 @@ static void hsync_handler (void)
        nextline_how = nln_normal;
        if (doflickerfix ()) {
            lineno *= 2;
-           if (!lof)
-               lineno++;
        } else if (currprefs.gfx_linedbl && (doublescan <= 0 || interlace_seen > 0)) {
            lineno *= 2;
            nextline_how = currprefs.gfx_linedbl == 1 ? nln_doubled : nln_nblack;
@@ -5322,6 +5390,9 @@ void customreset (int hardreset)
 
     if (hardreset)
        rtc_hardreset();
+
+    picasso_reset ();
+    target_reset ();
 }
 
 void dumpcustom (void)
@@ -5894,7 +5965,7 @@ uae_u8 *restore_custom (uae_u8 *src)
     dsklen = RW;               /* 024 DSKLEN */
     RW;                                /* 026 DSKDAT */
     RW;                                /* 028 REFPTR */
-    lof = RW;                  /* 02A VPOSW */
+    lof = RW ? 1 : 0;          /* 02A VPOSW */
     RW;                                /* 02C VHPOSW */
     COPCON(RW);                        /* 02E COPCON */
     RW;                                /* 030 SERDAT* */
@@ -5948,7 +6019,7 @@ uae_u8 *restore_custom (uae_u8 *src)
     intreq = intreqr = RW | 0x20; /* 09C INTREQ */
     adkcon = RW;               /* 09E ADKCON */
     for (i = 0; i < 8; i++)
-       bplpt[i] = RL;
+       bplptx[i] = bplpt[i] = RL;
     bplcon0 = RW;              /* 100 BPLCON0 */
     bplcon1 = RW;              /* 102 BPLCON1 */
     bplcon2 = RW;              /* 104 BPLCON2 */
@@ -6046,7 +6117,7 @@ uae_u8 *save_custom (int *len, uae_u8 *dstptr, int full)
     SW (dsklen);               /* 024 DSKLEN */
     SW (0);                    /* 026 DSKDAT */
     SW (0);                    /* 028 REFPTR */
-    SW (lof);                  /* 02A VPOSW */
+    SW (lof ? 0x8001 : 0);     /* 02A VPOSW */
     SW (0);                    /* 02C VHPOSW */
     SW (copcon);               /* 02E COPCON */
     SW (serper);               /* 030 SERDAT * */
diff --git a/debug.c b/debug.c
index 5739006b6cf8808f583e4d6d82970745450951d5..44293d9a4716b62c26a634d4b3c20e9d4b72800c 100644 (file)
--- a/debug.c
+++ b/debug.c
@@ -124,8 +124,7 @@ static char help[] = {
     "                        Search for string/bytes\n"
     "  T                     Show exec tasks and their PCs\n"
     "  b                     Step to previous state capture position\n"
-    "  am <channel mask>     Enable or disable audio channels\n"
-    "  sm <sprite mask>      Enable or disable sprites\n"
+    "  M<a/b/s> <val>        Enable or disable audio channels, bitplanes or sprites\n"
     "  sp <addr> [<addr2][<size>] Dump sprite information\n"
     "  di <mode> [<track>]   Break on disk access. R=DMA read,W=write,RW=both,P=PIO\n"
     "                        Also enables level 1 disk logging\n"
@@ -2680,11 +2679,6 @@ static void debug_1 (void)
                        smc_detect_init (&inptr);
                    else
                        smc_free ();
-               } else {
-                   next_char (&inptr);
-                   if (more_params (&inptr))
-                       debug_sprite_mask = readhex (&inptr);
-                   console_out_f ("sprite mask: %02X\n", debug_sprite_mask);
                }
            } else {
                searchmem (&inptr);
@@ -2826,6 +2820,32 @@ static void debug_1 (void)
            m68k_setpc (&regs, oldpc);
        }
        break;
+       case 'M':
+           if (more_params (&inptr)) {
+               switch (next_char (&inptr))
+               {
+                   case 'a':
+                   if (more_params (&inptr))
+                       audio_channel_mask = readhex (&inptr);
+                   console_out_f ("Audio mask = %02X\n", audio_channel_mask);
+                   break;
+                   case 's':
+                   if (more_params (&inptr))
+                       debug_sprite_mask = readhex (&inptr);
+                   console_out_f ("sprite mask: %02X\n", debug_sprite_mask);
+                   break;
+                   case 'b':
+                   if (more_params (&inptr)) {
+                       debug_bpl_mask = readhex (&inptr) & 0xff;
+                       if (more_params (&inptr))
+                           debug_bpl_mask_one = readhex (&inptr) & 0xff;
+                       notice_screen_contents_lost ();
+                   }
+                   console_out_f ("bitplane mask: %02X (%02X)\n", debug_bpl_mask, debug_bpl_mask_one);
+                   break;
+               }
+           }
+       break;
        case 'm':
        {
            uae_u32 maddr;
@@ -2876,16 +2896,6 @@ static void debug_1 (void)
            if (staterecorder (&inptr))
                return;
            break;
-       case 'a':
-           if (more_params (&inptr)) {
-               char nc = next_char (&inptr);
-               if (nc == 'm') {
-                   if (more_params (&inptr))
-                       audio_channel_mask = readint (&inptr);
-                   console_out_f ("Audio mask = %02X\n", audio_channel_mask);
-               }
-           }
-           break;
        case 'h':
        case '?':
            if (more_params (&inptr))
@@ -2919,7 +2929,7 @@ void debug (void)
        return;
 
     bogusframe = 1;
-    addhistory();
+    addhistory ();
 
 #if 0
     if (do_skip && skipaddr_start == 0xC0DEDBAD) {
@@ -2942,10 +2952,13 @@ void debug (void)
 
     if (!memwatch_triggered) {
        if (do_skip) {
-           uae_u32 pc = munge24 (m68k_getpc (&regs));
-           uae_u16 opcode = (currprefs.cpu_compatible || currprefs.cpu_cycle_exact) ? regs.ir : get_word (pc);
+           uae_u32 pc;
+           uae_u16 opcode;
            int bp = 0;
 
+           pc = munge24 (m68k_getpc (&regs));
+           opcode = (currprefs.cpu_compatible || currprefs.cpu_cycle_exact) ? regs.ir : get_word (pc);
+
            for (i = 0; i < BREAKPOINT_TOTAL; i++) {
                if (!bpnodes[i].enabled)
                    continue;
@@ -2955,6 +2968,7 @@ void debug (void)
                    break;
                }
            }
+
            if (skipaddr_doskip) {
                if (skipaddr_start == pc)
                    bp = 1;
index b30d49b78af59d1fc09fb88d2cd799583eaf2c51..444869c87d381e7ef37523e3cd4279876b553ccf 100644 (file)
--- a/drawing.c
+++ b/drawing.c
@@ -55,6 +55,8 @@
 extern int sprite_buffer_res;
 int lores_factor, lores_shift;
 
+int debug_bpl_mask = 0xff, debug_bpl_mask_one;
+
 static void lores_reset (void)
 {
     lores_factor = currprefs.gfx_resolution ? 2 : 1;
@@ -154,6 +156,9 @@ union sps_union spixstate;
 static uae_u32 ham_linebuf[MAX_PIXELS_PER_LINE * 2];
 static uae_u8 *real_bplpt[8];
 
+static uae_u8 all_ones[MAX_PIXELS_PER_LINE];
+static uae_u8 all_zeros[MAX_PIXELS_PER_LINE];
+
 uae_u8 *xlinebuffer;
 
 static int *amiga2aspect_line_map, *native2amiga_line_map;
@@ -364,7 +369,7 @@ int get_custom_limits (int *pw, int *ph, int *pdx, int *pdy)
        dx = 1;
 
     dbl2 = dbl1 = currprefs.gfx_linedbl ? 1 : 0;
-    if (doublescan && interlace_seen <= 0) {
+    if (doublescan > 0 && interlace_seen <= 0) {
        dbl1--;
        dbl2--;
     }
@@ -375,7 +380,7 @@ int get_custom_limits (int *pw, int *ph, int *pdx, int *pdy)
     if (w == 0 || h == 0)
        return 0;
 
-    if (!doublescan) {
+    if (doublescan <= 0) {
        if ((w >> currprefs.gfx_resolution) < MIN_DISPLAY_W)
            w = MIN_DISPLAY_W << currprefs.gfx_resolution;
        if ((h >> dbl1) < MIN_DISPLAY_H) {
@@ -399,7 +404,7 @@ int get_custom_limits (int *pw, int *ph, int *pdx, int *pdy)
 
     if (w <= 0 || h <= 0 || dx <= 0 || dy <= 0)
        return ret;
-    if (!doublescan) {
+    if (doublescan <= 0) {
        if (dx > gfxvidinfo.width / 3)
            return ret;
        if (dy > gfxvidinfo.height / 3)
@@ -458,7 +463,7 @@ void get_custom_mouse_limits (int *pw, int *ph, int *pdx, int *pdy, int dbl)
     dx = xshift (dx, res_shift);
 
     dbl2 = dbl1 = currprefs.gfx_linedbl ? 1 : 0;
-    if ((doublescan || interlace_seen > 0) && !dbl) {
+    if ((doublescan > 0 || interlace_seen > 0) && !dbl) {
         dbl1--;
         dbl2--;
     }
@@ -1434,6 +1439,9 @@ static void gen_pfield_tables (void)
                     | (((i & 48) && (i & 192)) << 14));
 
     }
+
+    memset (all_ones, 0xff, MAX_PIXELS_PER_LINE);
+
 }
 
 /* When looking at this function and the ones that inline it, bear in mind
@@ -1616,7 +1624,7 @@ static void pfield_doline (int lineno)
     uae_u32 *data = pixdata.apixels_l + MAX_PIXELS_PER_LINE / 4;
 
 #ifdef SMART_UPDATE
-#define DATA_POINTER(n) (line_data[lineno] + (n) * MAX_WORDS_PER_LINE * 2)
+#define DATA_POINTER(n) ((debug_bpl_mask & (1 << n)) ? (line_data[lineno] + (n) * MAX_WORDS_PER_LINE * 2) : (debug_bpl_mask_one ? all_ones : all_zeros))
     real_bplpt[0] = DATA_POINTER (0);
     real_bplpt[1] = DATA_POINTER (1);
     real_bplpt[2] = DATA_POINTER (2);
@@ -2075,9 +2083,8 @@ static void pfield_draw_line (int lineno, int gfx_ypos, int follow_ypos)
        if (dosprites) {
 
            int i;
-           for (i = 0; i < dip_for_drawing->nr_sprites; i++) {
+           for (i = 0; i < dip_for_drawing->nr_sprites; i++)
                draw_sprites_aga (curr_sprite_entries + dip_for_drawing->first_sprite_entry + i, 1);
-           }
            do_color_changes (pfield_do_fill_line, pfield_do_linetoscr);
 
        } else {
@@ -2346,7 +2353,7 @@ STATIC_INLINE void putpixel (uae_u8 *buf, int bpp, int x, xcolnr c8, int opaq)
     case 4:
     {
        int i;
-       if (opaq || currprefs.gfx_filter == 0) {
+       if (1 || opaq || currprefs.gfx_filter == 0) {
            uae_u32 *p = (uae_u32*)buf + x;
            *p = c8;
        } else {
@@ -2949,37 +2956,3 @@ void drawing_init (void)
     reset_drawing ();
 }
 
-#include "crc32.h"
-void magic_centering (uae_u16 regno, uae_u16 value, int vpos)
-{
-#if 0
-    static uae_u32 crc;
-    static uae_u32 prevcrc;
-    static int count;
-    uae_u16 v;
-
-    if (!regno) {
-       if (count > 0) {
-           count--;
-           if (count == 0) {
-               write_log ("**** CHANGED ****\n");
-           }
-       }
-       if (crc != 0 && crc != prevcrc && count == 0) {
-           count = 3;
-           prevcrc = crc;
-       }
-       crc = 0;
-       return;
-    }
-    v = regno;
-    crc = get_crc32_val (v >> 8, crc);
-    crc = get_crc32_val (v, crc);
-    if (regno == 0x92 || regno == 0x94)
-       return;
-    v = value;
-    crc = get_crc32_val (v >> 8, crc);
-    crc = get_crc32_val (v, crc);
-#endif
-}
-
index dfee0a104bf4b35b484911ab5bd98fddd605dbcb..59b3ea99c302545b26d308ac81ca9f1646592569 100644 (file)
--- a/filesys.c
+++ b/filesys.c
@@ -50,6 +50,7 @@
 #include "bsdsocket.h"
 #include "uaeresource.h"
 #include "inputdevice.h"
+#include "clipboard.h"
 
 #define TRACING_ENABLED 0
 #if TRACING_ENABLED
@@ -5404,10 +5405,22 @@ static uae_u32 REGPARAM2 filesys_dev_storeinfo (TrapContext *context)
 static uae_u32 REGPARAM2 mousehack_done (TrapContext *context)
 {
     int mode = m68k_dreg (&context->regs, 1);
-    uaecptr diminfo = m68k_areg (&context->regs, 2);
-    uaecptr dispinfo = m68k_areg (&context->regs, 3);
-    uaecptr vp = m68k_areg (&context->regs, 4);
-    input_mousehack_status (mode, diminfo, dispinfo, vp);
+    if (mode < 10) {
+       uaecptr diminfo = m68k_areg (&context->regs, 2);
+       uaecptr dispinfo = m68k_areg (&context->regs, 3);
+       uaecptr vp = m68k_areg (&context->regs, 4);
+       input_mousehack_status (mode, diminfo, dispinfo, vp);
+    } else if (mode == 10) {
+       amiga_clipboard_init ();
+    } else if (mode == 11) {
+       amiga_clipboard_got_data (m68k_areg (&context->regs, 2), m68k_dreg (&context->regs, 2), m68k_dreg (&context->regs, 0) + 8);
+    } else if (mode == 12) {
+       amiga_clipboard_want_data ();
+    } else if (mode == 13) {
+       return amiga_clipboard_proc_start ();
+    } else if (mode == 14) {
+       amiga_clipboard_task_start (m68k_dreg (&context->regs, 0));
+    }
     return 1;
 }
 
index 1014d6bb4af782a8a642ab7d77c4f8e55b9cfb0f..023dc47acc008c42986dae06edca962b158d6392 100644 (file)
@@ -1,15 +1,15 @@
  db(0x00); db(0x00); db(0x00); db(0x10); db(0x00); db(0x00); db(0x00); db(0x00);
- db(0x60); db(0x00); db(0x09); db(0x6a); db(0x00); db(0x00); db(0x07); db(0x48);
- db(0x00); db(0x00); db(0x00); db(0x30); db(0x00); db(0x00); db(0x01); db(0x74);
- db(0x00); db(0x00); db(0x00); db(0x1c); db(0x00); db(0x00); db(0x02); db(0x30);
- db(0x00); db(0x00); db(0x0d); db(0x38); db(0x43); db(0xfa); db(0x12); db(0xb7);
+ db(0x60); db(0x00); db(0x09); db(0x8e); db(0x00); db(0x00); db(0x07); db(0x6c);
+ db(0x00); db(0x00); db(0x00); db(0x30); db(0x00); db(0x00); db(0x01); db(0x8c);
+ db(0x00); db(0x00); db(0x00); db(0x1c); db(0x00); db(0x00); db(0x02); db(0x48);
+ db(0x00); db(0x00); db(0x0d); db(0x5c); db(0x43); db(0xfa); db(0x14); db(0xd3);
  db(0x4e); db(0xae); db(0xff); db(0xa0); db(0x20); db(0x40); db(0x20); db(0x28);
  db(0x00); db(0x16); db(0x20); db(0x40); db(0x4e); db(0x90); db(0x4e); db(0x75);
  db(0x48); db(0xe7); db(0xff); db(0xfe); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x30); db(0x3c); db(0xff); db(0xfc); db(0x61); db(0x00); db(0x0b); db(0x66);
- db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x12); db(0xc0); db(0x70); db(0x24);
+ db(0x30); db(0x3c); db(0xff); db(0xfc); db(0x61); db(0x00); db(0x0b); db(0x8a);
+ db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x14); db(0xdc); db(0x70); db(0x24);
  db(0x7a); db(0x01); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80);
- db(0x66); db(0x0c); db(0x43); db(0xfa); db(0x12); db(0xb0); db(0x70); db(0x00);
+ db(0x66); db(0x0c); db(0x43); db(0xfa); db(0x14); db(0xcc); db(0x70); db(0x00);
  db(0x7a); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x28); db(0x40);
  db(0x4a); db(0xad); db(0x01); db(0x0c); db(0x67); db(0x5a); db(0x20); db(0x3c);
  db(0x00); db(0x00); db(0x02); db(0x2c); db(0x22); db(0x3c); db(0x00); db(0x01);
@@ -17,7 +17,7 @@
  db(0x27); db(0x4c); db(0x01); db(0x9c); db(0x7c); db(0x00); db(0xbc); db(0xad);
  db(0x01); db(0x0c); db(0x64); db(0x2c); db(0x2f); db(0x06); db(0x7e); db(0x01);
  db(0x4a); db(0x45); db(0x67); db(0x04); db(0x08); db(0xc7); db(0x00); db(0x02);
- db(0x2f); db(0x0b); db(0x20); db(0x4b); db(0x61); db(0x00); db(0x06); db(0xb2);
+ db(0x2f); db(0x0b); db(0x20); db(0x4b); db(0x61); db(0x00); db(0x06); db(0xd6);
  db(0x26); db(0x5f); db(0x0c); db(0x80); db(0xff); db(0xff); db(0xff); db(0xfe);
  db(0x67); db(0x08); db(0x48); db(0x46); db(0x52); db(0x46); db(0x48); db(0x46);
  db(0x60); db(0xdc); db(0x2c); db(0x1f); db(0x52); db(0x46); db(0x60); db(0xce);
  db(0x00); db(0x00); db(0x02); db(0x2c); db(0x4e); db(0xae); db(0xff); db(0x2e);
  db(0x2c); db(0x78); db(0x00); db(0x04); db(0x22); db(0x4c); db(0x4e); db(0xae);
  db(0xfe); db(0x62); db(0x30); db(0x3c); db(0xff); db(0x80); db(0x61); db(0x00);
- db(0x0a); db(0xd4); db(0x4e); db(0x90); db(0x72); db(0x03); db(0x74); db(0xf6);
+ db(0x0a); db(0xf8); db(0x4e); db(0x90); db(0x72); db(0x03); db(0x74); db(0xf6);
  db(0x20); db(0x7c); db(0x00); db(0x20); db(0x00); db(0x00); db(0x90); db(0x88);
  db(0x65); db(0x0a); db(0x67); db(0x08); db(0x78); db(0x00); db(0x22); db(0x44);
- db(0x4e); db(0xae); db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x11); db(0xbb);
- db(0x43); db(0xfa); db(0x00); db(0x1c); db(0x70); db(0x0a); db(0x61); db(0x00);
- db(0x0b); db(0x88); db(0x22); db(0x40); db(0x72); db(0x01); db(0x30); db(0x3c);
- db(0xff); db(0x48); db(0x61); db(0x00); db(0x0a); db(0xa0); db(0x4e); db(0x90);
- db(0x4c); db(0xdf); db(0x7f); db(0xff); db(0x4e); db(0x75); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d);
- db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x43); db(0xfa); db(0x11); db(0xb7);
- db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80);
- db(0x67); db(0xe4); db(0x2c); db(0x40); db(0x41); db(0xfa); db(0x11); db(0x8e);
- db(0x22); db(0x08); db(0x74); db(0x0f); db(0x41); db(0xfa); db(0x00); db(0x22);
- db(0x26); db(0x08); db(0xe4); db(0x8b); db(0x28); db(0x3c); db(0x00); db(0x00);
- db(0x1f); db(0x40); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x22); db(0x4e);
+ db(0x4e); db(0xae); db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x13); db(0xd7);
+ db(0x43); db(0xfa); db(0x00); db(0x54); db(0x70); db(0x0a); db(0x61); db(0x00);
+ db(0x0b); db(0xac); db(0x22); db(0x40); db(0x72); db(0x01); db(0x30); db(0x3c);
+ db(0xff); db(0x48); db(0x61); db(0x00); db(0x0a); db(0xc4); db(0x4e); db(0x90);
+ db(0x4c); db(0xdf); db(0x7f); db(0xff); db(0x4e); db(0x75); db(0x48); db(0xe7);
+ db(0x38); db(0x22); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x24); db(0x00);
+ db(0x28); db(0x01); db(0x26); db(0x09); db(0x24); db(0x48); db(0x43); db(0xfa);
+ db(0x13); db(0xd1); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x4a); db(0x80); db(0x67); db(0x14); db(0x2c); db(0x40); db(0x22); db(0x0a);
+ db(0xe4); db(0x8b); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x22); db(0x4e);
  db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xfe); db(0x62);
- db(0x60); db(0xbc); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x10);
+ db(0x4c); db(0xdf); db(0x44); db(0x1c); db(0x4e); db(0x75); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d);
+ db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x41); db(0xfa); db(0x13); db(0x82);
+ db(0x43); db(0xfa); db(0x00); db(0x16); db(0x70); db(0x0f); db(0x22); db(0x3c);
+ db(0x00); db(0x00); db(0x1f); db(0x40); db(0x61); db(0x00); db(0xff); db(0xa8);
+ db(0x60); db(0xdc); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x10);
  db(0x00); db(0x00); db(0x00); db(0x00); db(0x72); db(0x02); db(0x30); db(0x3c);
- db(0xff); db(0x48); db(0x61); db(0x00); db(0x0a); db(0x40); db(0x4e); db(0x90);
- db(0x22); db(0x00); db(0x6b); db(0x04); db(0x61); db(0x00); db(0x07); db(0x86);
+ db(0xff); db(0x48); db(0x61); db(0x00); db(0x0a); db(0x4c); db(0x4e); db(0x90);
+ db(0x22); db(0x00); db(0x6b); db(0x04); db(0x61); db(0x00); db(0x07); db(0x92);
  db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x00); db(0x20);
- db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00); db(0x0a); db(0x26);
+ db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00); db(0x0a); db(0x32);
  db(0x70); db(0x00); db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x00);
  db(0x00); db(0xa2); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x30); db(0x3c);
- db(0xff); db(0x50); db(0x61); db(0x00); db(0x0a); db(0x10); db(0x70); db(0x02);
+ db(0xff); db(0x50); db(0x61); db(0x00); db(0x0a); db(0x1c); db(0x70); db(0x02);
  db(0x4e); db(0x90); db(0x0c); db(0x40); db(0x00); db(0x01); db(0x6d); db(0x00);
  db(0x00); db(0x7c); db(0x6e); db(0x06); db(0x4e); db(0xae); db(0xfe); db(0x92);
  db(0x60); db(0xe4); db(0x0c); db(0x40); db(0x00); db(0x02); db(0x6e); db(0x08);
  db(0x00); db(0x18); db(0x25); db(0x49); db(0x00); db(0x1a); db(0x20); db(0x69);
  db(0x00); db(0x10); db(0x22); db(0x4a); db(0x4e); db(0xae); db(0xfe); db(0x92);
  db(0x60); db(0x00); db(0xff); db(0x74); db(0x30); db(0x3c); db(0xff); db(0x50);
- db(0x61); db(0x00); db(0x09); db(0x82); db(0x70); db(0x04); db(0x4e); db(0x90);
+ db(0x61); db(0x00); db(0x09); db(0x8e); db(0x70); db(0x04); db(0x4e); db(0x90);
  db(0x70); db(0x01); db(0x4c); db(0xdf); db(0x04); db(0x00); db(0x4e); db(0x75);
  db(0x48); db(0xe7); db(0xc0); db(0xc0); db(0x70); db(0x1a); db(0x22); db(0x3c);
  db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x22); db(0x40); db(0x41); db(0xfa); db(0x10); db(0x56); db(0x23); db(0x48);
+ db(0x22); db(0x40); db(0x41); db(0xfa); db(0x12); db(0x5a); db(0x23); db(0x48);
  db(0x00); db(0x0a); db(0x41); db(0xfa); db(0xff); db(0x28); db(0x23); db(0x48);
  db(0x00); db(0x0e); db(0x41); db(0xfa); db(0xff); db(0x20); db(0x23); db(0x48);
  db(0x00); db(0x12); db(0x33); db(0x7c); db(0x02); db(0x14); db(0x00); db(0x08);
  db(0x70); db(0x03); db(0x4e); db(0xae); db(0xff); db(0x58); db(0x30); db(0x3a);
- db(0x0a); db(0xd0); db(0x67); db(0x04); db(0x61); db(0x00); db(0x0a); db(0x6e);
- db(0x4c); db(0xdf); db(0x03); db(0x03); db(0x4e); db(0x75); db(0x48); db(0xe7);
- db(0xc0); db(0xf2); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x24); db(0x48);
- db(0x26); db(0x49); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0xbe);
- db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x20); db(0x40); db(0x70); db(0x00); db(0x43); db(0xeb);
- db(0x01); db(0xa0); db(0x11); db(0xb1); db(0x00); db(0x00); db(0x00); db(0x0e);
- db(0x52); db(0x40); db(0x0c); db(0x40); db(0x00); db(0x8c); db(0x66); db(0xf2);
- db(0x20); db(0x0a); db(0xe4); db(0x88); db(0x21); db(0x40); db(0x00); db(0x36);
- db(0x22); db(0x48); db(0x41); db(0xfa); db(0x0f); db(0xe6); db(0x23); db(0x48);
- db(0x00); db(0x0a); db(0x20); db(0x6b); db(0x01); db(0x98); db(0x41); db(0xe8);
- db(0x00); db(0x12); db(0x4e); db(0xae); db(0xff); db(0x10); db(0x4c); db(0xdf);
- db(0x4f); db(0x03); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x7f); db(0x7e);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x24); db(0x48); db(0x0c); db(0x9a);
- db(0x00); db(0x00); db(0x03); db(0xf3); db(0x66); db(0x00); db(0x00); db(0xe4);
- db(0x50); db(0x8a); db(0x2e); db(0x2a); db(0x00); db(0x04); db(0x9e); db(0x92);
- db(0x50); db(0x8a); db(0x52); db(0x87); db(0x26); db(0x4a); db(0x20); db(0x07);
- db(0xd0); db(0x80); db(0xd0); db(0x80); db(0xd7); db(0xc0); db(0x28); db(0x4a);
- db(0x9b); db(0xcd); db(0x7c); db(0x00); db(0x24); db(0x12); db(0x72); db(0x01);
- db(0x08); db(0x02); db(0x00); db(0x1e); db(0x67); db(0x04); db(0x08); db(0xc1);
- db(0x00); db(0x01); db(0x08); db(0xc1); db(0x00); db(0x10); db(0xe5); db(0x8a);
- db(0x20); db(0x02); db(0x66); db(0x04); db(0x42); db(0x9a); db(0x60); db(0x1e);
- db(0x50); db(0x80); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80);
- db(0x67); db(0x00); db(0x00); db(0xa0); db(0x20); db(0x40); db(0x20); db(0xc2);
- db(0x24); db(0xc8); db(0x22); db(0x0d); db(0x67); db(0x06); db(0x20); db(0x08);
- db(0xe4); db(0x88); db(0x2a); db(0x80); db(0x2a); db(0x48); db(0x52); db(0x86);
- db(0xbe); db(0x86); db(0x66); db(0xc0); db(0x7c); db(0x00); db(0x22); db(0x06);
- db(0xd2); db(0x81); db(0xd2); db(0x81); db(0x20); db(0x74); db(0x18); db(0x00);
- db(0x58); db(0x88); db(0x26); db(0x1b); db(0x28); db(0x1b); db(0xe5); db(0x8c);
- db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xe9); db(0x67); db(0x08);
- db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xea); db(0x66); db(0x0c);
- db(0x20); db(0x04); db(0x4a); db(0x80); db(0x67); db(0x0e); db(0x10); db(0xdb);
- db(0x53); db(0x80); db(0x60); db(0xf6); db(0x0c); db(0x83); db(0x00); db(0x00);
- db(0x03); db(0xeb); db(0x66); db(0x4e); db(0x26); db(0x1b); db(0x0c); db(0x83);
- db(0x00); db(0x00); db(0x03); db(0xec); db(0x66); db(0x28); db(0x22); db(0x06);
- db(0xd2); db(0x81); db(0xd2); db(0x81); db(0x20); db(0x74); db(0x18); db(0x00);
- db(0x58); db(0x88); db(0x20); db(0x1b); db(0x67); db(0xe6); db(0x22); db(0x1b);
- db(0xd2); db(0x81); db(0xd2); db(0x81); db(0x26); db(0x34); db(0x18); db(0x00);
- db(0x58); db(0x83); db(0x24); db(0x1b); db(0xd7); db(0xb0); db(0x28); db(0x00);
- db(0x53); db(0x80); db(0x66); db(0xf6); db(0x60); db(0xe4); db(0x0c); db(0x83);
- db(0x00); db(0x00); db(0x03); db(0xf2); db(0x66); db(0x14); db(0x52); db(0x86);
- db(0xbe); db(0x86); db(0x66); db(0x00); db(0xff); db(0x8a); db(0x7e); db(0x01);
- db(0x20); db(0x54); db(0x20); db(0x07); db(0x4c); db(0xdf); db(0x7e); db(0xfe);
- db(0x4e); db(0x75); db(0x7e); db(0x00); db(0x60); db(0xf4); db(0x48); db(0xe7);
- db(0x40); db(0xe2); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x41); db(0xee);
- db(0x01); db(0x50); db(0x20); db(0x50); db(0x4a); db(0x90); db(0x67); db(0x1a);
- db(0x22); db(0x68); db(0x00); db(0x0a); db(0x45); db(0xfa); db(0x0f); db(0x38);
- db(0x10); db(0x19); db(0x12); db(0x1a); db(0xb0); db(0x01); db(0x66); db(0x06);
- db(0x4a); db(0x00); db(0x67); db(0x42); db(0x60); db(0xf2); db(0x20); db(0x50);
- db(0x60); db(0xe2); db(0x70); db(0x20); db(0x22); db(0x3c); db(0x00); db(0x01);
- db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x24); db(0x40);
- db(0x15); db(0x7c); db(0x00); db(0x08); db(0x00); db(0x08); db(0x41); db(0xfa);
- db(0x0f); db(0x0e); db(0x25); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa);
- db(0x0e); db(0x8a); db(0x25); db(0x48); db(0x00); db(0x0e); db(0x41); db(0xea);
- db(0x00); db(0x12); db(0x20); db(0x88); db(0x58); db(0x90); db(0x21); db(0x48);
- db(0x00); db(0x08); db(0x41); db(0xee); db(0x01); db(0x50); db(0x22); db(0x4a);
- db(0x4e); db(0xae); db(0xff); db(0x0a); db(0x20); db(0x4a); db(0x20); db(0x08);
- db(0x4c); db(0xdf); db(0x47); db(0x02); db(0x4e); db(0x75); db(0x48); db(0xe7);
- db(0x01); db(0x02); db(0x2e); db(0x00); db(0x4a); db(0x2b); db(0x00); db(0x4c);
- db(0x67); db(0x7c); db(0x2c); db(0x6b); db(0x00); db(0xa0); db(0x0c); db(0x6e);
- db(0x00); db(0x25); db(0x00); db(0x14); db(0x65); db(0x3e); db(0x72); db(0x0e);
- db(0x4e); db(0xae); db(0xfd); db(0x66); db(0x02); db(0x80); db(0xff); db(0xff);
- db(0xff); db(0xfe); db(0x67); db(0x62); db(0x08); db(0x07); db(0x00); db(0x00);
- db(0x67); db(0x0a); db(0x41); db(0xeb); db(0x00); db(0x20); db(0x22); db(0x08);
- db(0x4e); db(0xae); db(0xfd); db(0x5a); db(0x08); db(0x07); db(0x00); db(0x01);
- db(0x67); db(0x12); db(0x4a); db(0x2b); db(0x00); db(0x9e); db(0x66); db(0x0c);
- db(0x50); db(0xeb); db(0x00); db(0x9e); db(0x22); db(0x2b); db(0x00); db(0xb4);
- db(0x4e); db(0xae); db(0xfd); db(0x5a); db(0x72); db(0x0e); db(0x4e); db(0xae);
- db(0xfd); db(0x6c); db(0x60); db(0x32); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x08); db(0x07); db(0x00); db(0x00);
- db(0x67); db(0x08); db(0x41); db(0xeb); db(0x00); db(0x20); db(0x61); db(0x00);
- db(0x00); db(0xac); db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x12);
- db(0x4a); db(0x2b); db(0x00); db(0x9e); db(0x66); db(0x0c); db(0x50); db(0xeb);
- db(0x00); db(0x9e); db(0x20); db(0x6b); db(0x00); db(0xb4); db(0x61); db(0x00);
- db(0x00); db(0x94); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4c); db(0xdf);
- db(0x40); db(0x80); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x01); db(0x22);
- db(0x2e); db(0x00); db(0x2c); db(0x6b); db(0x00); db(0xa0); db(0x0c); db(0x6e);
- db(0x00); db(0x25); db(0x00); db(0x14); db(0x65); db(0x3e); db(0x72); db(0x0e);
- db(0x4e); db(0xae); db(0xfd); db(0x66); db(0x02); db(0x80); db(0xff); db(0xff);
- db(0xff); db(0xfe); db(0x67); db(0x62); db(0x08); db(0x07); db(0x00); db(0x00);
- db(0x67); db(0x0a); db(0x41); db(0xeb); db(0x00); db(0x20); db(0x22); db(0x08);
- db(0x4e); db(0xae); db(0xfd); db(0x60); db(0x08); db(0x07); db(0x00); db(0x01);
- db(0x67); db(0x12); db(0x4a); db(0x2b); db(0x00); db(0x9e); db(0x67); db(0x0c);
- db(0x42); db(0x2b); db(0x00); db(0x9e); db(0x22); db(0x2b); db(0x00); db(0xb4);
- db(0x4e); db(0xae); db(0xfd); db(0x60); db(0x72); db(0x0e); db(0x4e); db(0xae);
- db(0xfd); db(0x6c); db(0x60); db(0x32); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x08); db(0x07); db(0x00); db(0x00);
- db(0x67); db(0x08); db(0x41); db(0xeb); db(0x00); db(0x20); db(0x61); db(0x00);
- db(0x00); db(0x44); db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x12);
- db(0x4a); db(0x2b); db(0x00); db(0x9e); db(0x67); db(0x0c); db(0x42); db(0x2b);
- db(0x00); db(0x9e); db(0x20); db(0x6b); db(0x00); db(0xb4); db(0x61); db(0x00);
- db(0x00); db(0x2c); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4c); db(0xdf);
- db(0x44); db(0x80); db(0x4e); db(0x75); db(0x22); db(0x48); db(0x20); db(0x6b);
- db(0x00); db(0xa0); db(0x20); db(0x68); db(0x00); db(0x22); db(0x20); db(0x68);
- db(0x00); db(0x18); db(0xd1); db(0xc8); db(0xd1); db(0xc8); db(0x22); db(0xa8);
- db(0x00); db(0x04); db(0x20); db(0x09); db(0xe4); db(0x88); db(0x21); db(0x40);
- db(0x00); db(0x04); db(0x4e); db(0x75); db(0x24); db(0x48); db(0x20); db(0x6b);
- db(0x00); db(0xa0); db(0x20); db(0x68); db(0x00); db(0x22); db(0x20); db(0x68);
- db(0x00); db(0x18); db(0xd1); db(0xc8); db(0xd1); db(0xc8); db(0x22); db(0x68);
- db(0x00); db(0x04); db(0xd3); db(0xc9); db(0xd3); db(0xc9); db(0xb3); db(0xca);
- db(0x66); db(0x06); db(0x21); db(0x52); db(0x00); db(0x04); db(0x60); db(0x18);
- db(0x20); db(0x09); db(0x67); db(0x0e); db(0x20); db(0x11); db(0xd0); db(0x80);
- db(0xd0); db(0x80); db(0xb5); db(0xc0); db(0x67); db(0x04); db(0x22); db(0x40);
- db(0x60); db(0xee); db(0x20); db(0x09); db(0x67); db(0x02); db(0x22); db(0x92);
- db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x20); db(0x22); db(0x74); db(0x16);
- db(0x9f); db(0xc2); db(0x24); db(0x4f); db(0x32); db(0x02); db(0x42); db(0x32);
- db(0x10); db(0xff); db(0x53); db(0x41); db(0x66); db(0xf8); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x72); db(0x0f); db(0x4a); db(0x80); db(0x67); db(0x02);
- db(0x72); db(0x10); db(0x15); db(0x41); db(0x00); db(0x04); db(0x35); db(0x7c);
- db(0x08); db(0x00); db(0x00); db(0x08); db(0x22); db(0x6b); db(0x00); db(0xa4);
- db(0x33); db(0x7c); db(0x00); db(0x0b); db(0x00); db(0x1c); db(0x23); db(0x7c);
- db(0x00); db(0x00); db(0x00); db(0x16); db(0x00); db(0x24); db(0x23); db(0x4a);
- db(0x00); db(0x28); db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e);
- db(0x22); db(0x6b); db(0x00); db(0xa8); db(0x33); db(0x7c); db(0x00); db(0x0a);
- db(0x00); db(0x1c); db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e);
- db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x22); db(0x6b); db(0x00); db(0xa8);
- db(0x25); db(0x69); db(0x00); db(0x20); db(0x00); db(0x0e); db(0x25); db(0x69);
- db(0x00); db(0x24); db(0x00); db(0x12); db(0x22); db(0x6b); db(0x00); db(0xa4);
- db(0x4e); db(0xae); db(0xfe); db(0x38); db(0xdf); db(0xc2); db(0x4c); db(0xdf);
- db(0x44); db(0x04); db(0x4e); db(0x75); db(0x4a); db(0x00); db(0x67); db(0x26);
- db(0x4a); db(0x2b); db(0x00); db(0x4c); db(0x66); db(0x36); db(0x70); db(0x00);
- db(0x4a); db(0x33); db(0x00); db(0x4d); db(0x67); db(0x04); db(0x52); db(0x00);
- db(0x60); db(0xf6); db(0x17); db(0x40); db(0x00); db(0x4c); db(0x67); db(0x24);
- db(0x20); db(0x01); db(0x61); db(0x00); db(0xfd); db(0xf2); db(0x70); db(0x01);
- db(0x61); db(0x00); db(0xff); db(0x60); db(0x60); db(0x16); db(0x4a); db(0x2b);
- db(0x00); db(0x4c); db(0x67); db(0x10); db(0x42); db(0x2b); db(0x00); db(0x4c);
- db(0x20); db(0x01); db(0x61); db(0x00); db(0xfe); db(0x68); db(0x70); db(0x00);
- db(0x61); db(0x00); db(0xff); db(0x48); db(0x4e); db(0x75); db(0x4a); db(0xac);
- db(0x00); db(0x14); db(0x67); db(0x0a); db(0x70); db(0x00); db(0x72); db(0x01);
- db(0x61); db(0x00); db(0xff); db(0xb2); db(0x4e); db(0x75); db(0x70); db(0x01);
- db(0x72); db(0x03); db(0x61); db(0x00); db(0xff); db(0xa8); db(0x4e); db(0x75);
- db(0x10); db(0x2b); db(0x00); db(0xac); db(0x6b); db(0x0a); db(0x70); db(0x01);
- db(0x72); db(0x03); db(0x61); db(0x00); db(0xff); db(0x98); db(0x4e); db(0x75);
- db(0x72); db(0x01); db(0x0c); db(0x00); db(0x00); db(0xfe); db(0x66); db(0x02);
- db(0x72); db(0x03); db(0x70); db(0x00); db(0x61); db(0x00); db(0xff); db(0x86);
- db(0x4e); db(0x75); db(0x20); db(0x6c); db(0x00); db(0x24); db(0x4a); db(0x90);
- db(0x67); db(0x0c); db(0x4a); db(0xa8); db(0x00); db(0x08); db(0x66); db(0x0a);
- db(0x4a); db(0xa8); db(0x00); db(0x0c); db(0x66); db(0x04); db(0x70); db(0x01);
- db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x3f); db(0x3e); db(0x2a); db(0x48);
- db(0x24); db(0x6c); db(0x00); db(0x18); db(0x2e); db(0x15); db(0x7a); db(0x00);
- db(0x4a); db(0x87); db(0x67); db(0x70); db(0x20); db(0x0a); db(0x67); db(0x6c);
- db(0x7c); db(0x00); db(0x22); db(0x2d); db(0x00); db(0x08); db(0x67); db(0x12);
- db(0x24); db(0x2a); db(0x00); db(0x04); db(0x2c); db(0x6b); db(0x00); db(0xa0);
- db(0x4e); db(0xae); db(0xfc); db(0x34); db(0x4a); db(0x80); db(0x66); db(0x02);
- db(0x50); db(0xc6); db(0x22); db(0x2d); db(0x00); db(0x0c); db(0x67); db(0x1c);
- db(0x20); db(0x41); db(0x22); db(0x4a); db(0x2f); db(0x0a); db(0x45); db(0xec);
- db(0x00); db(0x20); db(0x48); db(0x7a); db(0x00); db(0x08); db(0x2f); db(0x28);
- db(0x00); db(0x08); db(0x4e); db(0x75); db(0x24); db(0x5f); db(0x4a); db(0x80);
- db(0x66); db(0x02); db(0x50); db(0xc6); db(0x4a); db(0x06); db(0x67); db(0x24);
- db(0x20); db(0x2a); db(0x00); db(0x04); db(0x90); db(0x8a); db(0x4a); db(0x92);
- db(0x66); db(0x0a); db(0x20); db(0x05); db(0x67); db(0x10); db(0x20); db(0x40);
- db(0x42); db(0x90); db(0x60); db(0x0a); db(0x20); db(0x52); db(0x22); db(0x4a);
- db(0x22); db(0xd8); db(0x59); db(0x80); db(0x6a); db(0xfa); db(0x53); db(0x95);
- db(0x53); db(0x87); db(0x60); db(0x94); db(0x2a); db(0x0a); db(0x24); db(0x52);
- db(0x53); db(0x87); db(0x60); db(0x8c); db(0x4c); db(0xdf); db(0x7c); db(0xfc);
- db(0x20); db(0x6c); db(0x00); db(0x24); db(0x4a); db(0x90); db(0x4e); db(0x75);
- db(0x61); db(0x00); db(0xfc); db(0x7c); db(0x21); db(0x40); db(0x01); db(0x98);
- db(0x2f); db(0x08); db(0x30); db(0x3c); db(0xff); db(0xfc); db(0x61); db(0x00);
- db(0x04); db(0x4c); db(0x2a); db(0x50); db(0x30); db(0x3c); db(0xff); db(0x28);
- db(0x61); db(0x00); db(0x04); db(0x42); db(0x22); db(0x48); db(0x20); db(0x5f);
- db(0x42); db(0xa8); db(0x01); db(0x90); db(0x42); db(0xa8); db(0x01); db(0x94);
- db(0x4e); db(0x91); db(0x26); db(0x00); db(0x0c); db(0x43); db(0xff); db(0xfe);
- db(0x67); db(0x00); db(0xf9); db(0x92); db(0x20); db(0x28); db(0x01); db(0x90);
- db(0x67); db(0x14); db(0x6b); db(0x12); db(0x2f); db(0x08); db(0x72); db(0x01);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x20); db(0x5f); db(0x21); db(0x40); db(0x01); db(0x94); db(0x4a); db(0x83);
- db(0x6a); db(0x0e); db(0x22); db(0x48); db(0x30); db(0x3c); db(0xff); db(0x20);
- db(0x61); db(0x00); db(0x04); db(0x02); db(0x4e); db(0x90); db(0x60); db(0x26);
- db(0x2c); db(0x4c); db(0x2f); db(0x08); db(0x4e); db(0xae); db(0xff); db(0x70);
- db(0x20); db(0x5f); db(0x22); db(0x48); db(0x26); db(0x40); db(0x30); db(0x3c);
- db(0xff); db(0x20); db(0x61); db(0x00); db(0x03); db(0xe8); db(0x4e); db(0x90);
- db(0x70); db(0x00); db(0x27); db(0x40); db(0x00); db(0x08); db(0x27); db(0x40);
- db(0x00); db(0x10); db(0x27); db(0x40); db(0x00); db(0x20); db(0x4a); db(0xa9);
- db(0x01); db(0x94); db(0x67); db(0x28); db(0x20); db(0x69); db(0x01); db(0x94);
- db(0x61); db(0x00); db(0xfa); db(0xf2); db(0x48); db(0xe7); db(0x80); db(0xc0);
- db(0x20); db(0x29); db(0x01); db(0x90); db(0x22); db(0x69); db(0x01); db(0x94);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x2e);
- db(0x4c); db(0xdf); db(0x03); db(0x01); db(0x4a); db(0x80); db(0x67); db(0x04);
- db(0x61); db(0x00); db(0xfa); db(0x7c); db(0x4a); db(0x83); db(0x6b); db(0x00);
- db(0xf9); db(0x0c); db(0x30); db(0x3c); db(0xff); db(0x18); db(0x61); db(0x00);
- db(0x03); db(0x9c); db(0x4e); db(0x90); db(0x20); db(0x03); db(0x16); db(0x29);
- db(0x00); db(0x4f); db(0x4a); db(0x80); db(0x66); db(0x1a); db(0x27); db(0x7c);
- db(0x00); db(0x00); db(0x17); db(0x70); db(0x00); db(0x14); db(0x41); db(0xfa);
- db(0xf7); db(0xdc); db(0x20); db(0x08); db(0xe4); db(0x88); db(0x27); db(0x40);
- db(0x00); db(0x20); db(0x70); db(0xff); db(0x27); db(0x40); db(0x00); db(0x24);
- db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x3a); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x70); db(0x14); db(0x72); db(0x00); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x22); db(0x40); db(0x70); db(0x00); db(0x22); db(0x80);
- db(0x23); db(0x40); db(0x00); db(0x04); db(0x33); db(0x40); db(0x00); db(0x0e);
- db(0x30); db(0x3c); db(0x10); db(0x00); db(0x80); db(0x03); db(0x33); db(0x40);
- db(0x00); db(0x08); db(0x23); db(0x6d); db(0x01); db(0x04); db(0x00); db(0x0a);
- db(0x23); db(0x4b); db(0x00); db(0x10); db(0x41); db(0xec); db(0x00); db(0x4a);
- db(0x4e); db(0xae); db(0xfe); db(0xf2); db(0x70); db(0x00); db(0x4e); db(0x75);
- db(0x24); db(0x49); db(0x20); db(0x4b); db(0x72); db(0x00); db(0x22); db(0x41);
- db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x08); db(0x08); db(0x07);
- db(0x00); db(0x02); db(0x67); db(0x02); db(0x72); db(0x01); db(0x70); db(0xec);
- db(0x2c); db(0x4c); db(0x4e); db(0xae); db(0xff); db(0x6a); db(0x08); db(0x07);
- db(0x00); db(0x01); db(0x67); db(0x5c); db(0x08); db(0x07); db(0x00); db(0x02);
- db(0x66); db(0x56); db(0x20); db(0x52); db(0x74); db(0x02); db(0x52); db(0x82);
- db(0x4a); db(0x30); db(0x28); db(0xfd); db(0x66); db(0xf8); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x20); db(0x02); db(0x72); db(0x01); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x3a); db(0x20); db(0x52);
- db(0x24); db(0x40); db(0x22); db(0x4a); db(0x12); db(0xd8); db(0x66); db(0xfc);
- db(0x13); db(0x7c); db(0x00); db(0x3a); db(0xff); db(0xff); db(0x42); db(0x11);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x0a); db(0x07);
- db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x2c); db(0x40);
- db(0x22); db(0x0a); db(0x4e); db(0xae); db(0xff); db(0x52); db(0x22); db(0x4e);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xfe); db(0x62);
- db(0x22); db(0x4a); db(0x20); db(0x02); db(0x4e); db(0xae); db(0xff); db(0x2e);
- db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x3f); db(0x3e);
- db(0x2c); db(0x01); db(0x7e); db(0x06); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x43); db(0xfa); db(0x0a); db(0x02); db(0x70); db(0x24); db(0x4e); db(0xae);
- db(0xfd); db(0xd8); db(0x4a); db(0x80); db(0x66); db(0x0e); db(0x08); db(0x87);
- db(0x00); db(0x02); db(0x43); db(0xfa); db(0x09); db(0xf0); db(0x70); db(0x00);
- db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x28); db(0x40); db(0x20); db(0x3c);
- db(0x00); db(0x00); db(0x02); db(0x2c); db(0x22); db(0x3c); db(0x00); db(0x01);
- db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x20); db(0x40);
- db(0x4a); db(0x80); db(0x67); db(0x2c); db(0x21); db(0x4c); db(0x01); db(0x9c);
- db(0x48); db(0xe7); db(0x00); db(0x8a); db(0x61); db(0x00); db(0xfe); db(0x0a);
- db(0x4c); db(0xdf); db(0x51); db(0x00); db(0x0c); db(0x80); db(0xff); db(0xff);
- db(0xff); db(0xfe); db(0x67); db(0x08); db(0x48); db(0x46); db(0x52); db(0x46);
- db(0x48); db(0x46); db(0x60); db(0xe4); db(0x22); db(0x48); db(0x20); db(0x3c);
- db(0x00); db(0x00); db(0x02); db(0x2c); db(0x4e); db(0xae); db(0xff); db(0x2e);
- db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x4c); db(0xdf);
- db(0x7c); db(0xfc); db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x20); db(0x40);
- db(0x4b); db(0xe8); db(0x00); db(0x5c); db(0x43); db(0xfa); db(0x09); db(0x57);
- db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x24); db(0x40);
- db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0xb9); db(0x22); db(0x3c);
- db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x26); db(0x40); db(0x7c); db(0x00); db(0x26); db(0x86); db(0x27); db(0x46);
- db(0x00); db(0x04); db(0x27); db(0x46); db(0x00); db(0x08); db(0x27); db(0x4a);
- db(0x00); db(0xa0); db(0x50); db(0xeb); db(0x00); db(0x9e); db(0x93); db(0xc9);
- db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x27); db(0x40); db(0x00); db(0xb0);
- db(0x41); db(0xfa); db(0x08); db(0xa4); db(0x70); db(0x00); db(0x72); db(0x00);
- db(0x61); db(0x00); db(0x02); db(0x84); db(0x27); db(0x40); db(0x00); db(0xa4);
- db(0x41); db(0xfa); db(0x08); db(0xa1); db(0x70); db(0x00); db(0x72); db(0x00);
- db(0x61); db(0x00); db(0x02); db(0x74); db(0x27); db(0x40); db(0x00); db(0xa8);
- db(0x7a); db(0x00); db(0x20); db(0x4d); db(0x4e); db(0xae); db(0xfe); db(0x80);
- db(0x20); db(0x4d); db(0x4e); db(0xae); db(0xfe); db(0x8c); db(0x28); db(0x40);
- db(0x26); db(0x2c); db(0x00); db(0x0a); db(0x30); db(0x3c); db(0xff); db(0x40);
- db(0x61); db(0x00); db(0x01); db(0xb2); db(0x70); db(0x00); db(0x4e); db(0x90);
- db(0x24); db(0x00); db(0x70); db(0x01); db(0x61); db(0x00); db(0xfa); db(0x38);
- db(0x08); db(0x02); db(0x00); db(0x01); db(0x67); db(0x06); db(0x70); db(0x01);
- db(0x61); db(0x00); db(0xfb); db(0xa0); db(0x60); db(0x00); db(0x00); db(0xf8);
- db(0x20); db(0x4d); db(0x4e); db(0xae); db(0xfe); db(0x8c); db(0x28); db(0x40);
- db(0x4a); db(0x80); db(0x66); db(0x10); db(0x70); db(0x00); db(0x12); db(0x2d);
- db(0x00); db(0x0f); db(0x03); db(0xc0); db(0x08); db(0xc0); db(0x00); db(0x0d);
- db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x4a); db(0x2b); db(0x00); db(0xac);
- db(0x67); db(0x08); db(0x61); db(0x00); db(0xfc); db(0x4c); db(0x42); db(0x2b);
- db(0x00); db(0xac); db(0x20); db(0x0c); db(0x67); db(0xd2); db(0x0c); db(0x6c);
- db(0x00); db(0x26); db(0x00); db(0x12); db(0x66); db(0x4c); db(0x0c); db(0xac);
- db(0x40); db(0x00); db(0x00); db(0x00); db(0x00); db(0x14); db(0x66); db(0x42);
- db(0x0c); db(0x6c); db(0x12); db(0x34); db(0x00); db(0x18); db(0x66); db(0x3a);
- db(0x20); db(0x6c); db(0x00); db(0x1a); db(0x20); db(0x28); db(0x00); db(0x0c);
- db(0x02); db(0x80); db(0x80); db(0x00); db(0x00); db(0x08); db(0x0c); db(0x80);
- db(0x80); db(0x00); db(0x00); db(0x08); db(0x66); db(0x18); db(0x02); db(0xa8);
- db(0x7f); db(0xff); db(0xff); db(0xff); db(0x00); db(0x0c); db(0x20); db(0x68);
- db(0x00); db(0x10); db(0x22); db(0x4c); db(0x12); db(0xbc); db(0x00); db(0x08);
- db(0x4e); db(0xae); db(0xfe); db(0x92); db(0x60); db(0x8a); db(0x22); db(0x4c);
- db(0x70); db(0x26); db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x60); db(0x00);
- db(0xff); db(0x80); db(0x26); db(0x2c); db(0x00); db(0x0a); db(0x66); db(0x3e);
- db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00); db(0x01); db(0x06);
- db(0x70); db(0x01); db(0x4e); db(0x90); db(0x45); db(0xeb); db(0x00); db(0x04);
- db(0x20); db(0x52); db(0x20); db(0x08); db(0x67); db(0x00); db(0xff); db(0x62);
- db(0x22); db(0x50); db(0x20); db(0x40); db(0x20); db(0x28); db(0x00); db(0x04);
- db(0x6a); db(0x16); db(0x48); db(0xe7); db(0x00); db(0xc0); db(0x28); db(0x68);
- db(0x00); db(0x0a); db(0x61); db(0x4a); db(0x53); db(0x85); db(0x4c); db(0xdf);
- db(0x03); db(0x00); db(0x24); db(0x89); db(0x20); db(0x49); db(0x60); db(0xda);
- db(0x24); db(0x48); db(0x20); db(0x49); db(0x60); db(0xd4); db(0x0c); db(0x85);
- db(0x00); db(0x00); db(0x00); db(0x14); db(0x65); db(0x00); db(0x00); db(0x0a);
- db(0x70); db(0x01); db(0x29); db(0x40); db(0x00); db(0x04); db(0x60); db(0x12);
- db(0x61); db(0x5c); db(0x30); db(0x3c); db(0xff); db(0x30); db(0x61); db(0x00);
- db(0x00); db(0xb4); db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x0e);
- db(0x52); db(0x85); db(0x28); db(0xab); db(0x00); db(0x04); db(0x27); db(0x4c);
- db(0x00); db(0x04); db(0x60); db(0x00); db(0xff); db(0x0c); db(0x28); db(0x43);
- db(0x61); db(0x04); db(0x60); db(0x00); db(0xff); db(0x04); db(0x0c); db(0xac);
- db(0x00); db(0x00); db(0x00); db(0x1f); db(0x00); db(0x08); db(0x66); db(0x04);
- db(0x61); db(0x00); db(0xfb); db(0x4c); db(0x0c); db(0xac); db(0x00); db(0x00);
- db(0x04); db(0x09); db(0x00); db(0x08); db(0x66); db(0x12); db(0x61); db(0x00);
- db(0xfb); db(0x7a); db(0x66); db(0x0c); db(0x30); db(0x3c); db(0xff); db(0x58);
- db(0x61); db(0x00); db(0x00); db(0x72); db(0x4e); db(0x90); db(0x60); db(0xee);
- db(0x22); db(0x54); db(0x20); db(0x6c); db(0x00); db(0x04); db(0x29); db(0x4d);
- db(0x00); db(0x04); db(0x4e); db(0xee); db(0xfe); db(0x92); db(0x2f); db(0x05);
- db(0x7a); db(0xfc); db(0x24); db(0x53); db(0x2e); db(0x0a); db(0x22); db(0x0a);
- db(0x67); db(0x00); db(0x00); db(0x0c); db(0x52); db(0x85); db(0x67); db(0x1e);
- db(0x22); db(0x4a); db(0x24); db(0x52); db(0x60); db(0xf0); db(0x52); db(0x85);
- db(0x67); db(0x3c); db(0x24); db(0x47); db(0x70); db(0x18); db(0x72); db(0x01);
- db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x52); db(0x46); db(0x24); db(0x40);
- db(0x24); db(0x87); db(0x2e); db(0x0a); db(0x60); db(0xe8); db(0x20); db(0x12);
- db(0x67); db(0x24); db(0x20); db(0x40); db(0x20); db(0x10); db(0x67); db(0x1e);
- db(0x20); db(0x40); db(0x20); db(0x10); db(0x67); db(0x18); db(0x70); db(0x00);
- db(0x22); db(0x80); db(0x22); db(0x4a); db(0x24); db(0x51); db(0x70); db(0x18);
- db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x06); db(0x86); db(0x00); db(0x01);
- db(0x00); db(0x00); db(0x20); db(0x0a); db(0x66); db(0xec); db(0x26); db(0x87);
- db(0x2a); db(0x1f); db(0x4e); db(0x75); db(0x41); db(0xfa); db(0xf4); db(0x4e);
- db(0x02); db(0x80); db(0x00); db(0x00); db(0xff); db(0xff); db(0xd1); db(0xc0);
- db(0x4e); db(0x75); db(0x20); db(0x88); db(0x58); db(0x90); db(0x42); db(0xa8);
- db(0x00); db(0x04); db(0x21); db(0x48); db(0x00); db(0x08); db(0x4e); db(0x75);
- db(0x48); db(0xe7); db(0x20); db(0x22); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x70); db(0xff); db(0x4e); db(0xae); db(0xfe); db(0xb6); db(0x91); db(0xc8);
- db(0x24); db(0x00); db(0x6b); db(0x32); db(0x70); db(0x22); db(0x22); db(0x3c);
- db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x91); db(0xc8); db(0x24); db(0x40); db(0x4a); db(0x80); db(0x67); db(0x1e);
- db(0x15); db(0x7c); db(0x00); db(0x04); db(0x00); db(0x08); db(0x15); db(0x42);
- db(0x00); db(0x0f); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda);
- db(0x25); db(0x40); db(0x00); db(0x10); db(0x41); db(0xea); db(0x00); db(0x14);
- db(0x61); db(0x00); db(0xff); db(0xb0); db(0x20); db(0x4a); db(0x20); db(0x08);
- db(0x4c); db(0xdf); db(0x44); db(0x04); db(0x4e); db(0x75); db(0x48); db(0xe7);
- db(0x20); db(0x22); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4a); db(0x80);
- db(0x67); db(0x24); db(0x24); db(0x40); db(0x24); db(0x01); db(0x66); db(0x02);
- db(0x74); db(0x30); db(0x20); db(0x02); db(0x22); db(0x3c); db(0x00); db(0x01);
+ db(0x0a); db(0xdc); db(0x67); db(0x04); db(0x61); db(0x00); db(0x0a); db(0x7a);
+ db(0x0c); db(0x6e); db(0x00); db(0x24); db(0x00); db(0x14); db(0x65); db(0x04);
+ db(0x61); db(0x00); db(0x0f); db(0x62); db(0x4c); db(0xdf); db(0x03); db(0x03);
+ db(0x4e); db(0x75); db(0x48); db(0xe7); db(0xc0); db(0xf2); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x24); db(0x48); db(0x26); db(0x49); db(0x20); db(0x3c);
+ db(0x00); db(0x00); db(0x00); db(0xbe); db(0x22); db(0x3c); db(0x00); db(0x01);
  db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x20); db(0x40);
- db(0x11); db(0x7c); db(0x00); db(0x0a); db(0x00); db(0x08); db(0x31); db(0x42);
- db(0x00); db(0x12); db(0x21); db(0x4a); db(0x00); db(0x0e); db(0x4a); db(0x80);
- db(0x4c); db(0xdf); db(0x44); db(0x04); db(0x4e); db(0x75); db(0x48); db(0xe7);
- db(0x30); db(0x22); db(0x24); db(0x48); db(0x24); db(0x00); db(0x26); db(0x01);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x61); db(0x00); db(0xff); db(0x6a);
- db(0x22); db(0x03); db(0x61); db(0x00); db(0xff); db(0xb2); db(0x67); db(0x18);
- db(0x20); db(0x4a); db(0x22); db(0x40); db(0x24); db(0x40); db(0x20); db(0x02);
- db(0x72); db(0x00); db(0x4e); db(0xae); db(0xfe); db(0x44); db(0x22); db(0x00);
- db(0x70); db(0x00); db(0x4a); db(0x81); db(0x66); db(0x02); db(0x20); db(0x0a);
- db(0x4a); db(0x80); db(0x4c); db(0xdf); db(0x44); db(0x0c); db(0x4e); db(0x75);
- db(0x48); db(0xe7); db(0x38); db(0x32); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x28); db(0x00); db(0x24); db(0x08); db(0x26); db(0x09); db(0x20); db(0x3c);
- db(0x00); db(0x00); db(0x08); db(0x5c); db(0x22); db(0x3c); db(0x00); db(0x01);
- db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80);
- db(0x67); db(0x00); db(0x00); db(0x34); db(0x24); db(0x40); db(0x15); db(0x7c);
- db(0x00); db(0x01); db(0x00); db(0x08); db(0x15); db(0x44); db(0x00); db(0x09);
- db(0x25); db(0x42); db(0x00); db(0x0a); db(0x47); db(0xea); db(0x00); db(0x5c);
- db(0x25); db(0x4b); db(0x00); db(0x3a); db(0x47); db(0xeb); db(0x08); db(0x00);
- db(0x25); db(0x4b); db(0x00); db(0x3e); db(0x25); db(0x4b); db(0x00); db(0x36);
- db(0x22); db(0x4a); db(0x24); db(0x43); db(0x97); db(0xcb); db(0x24); db(0x09);
- db(0x4e); db(0xae); db(0xfe); db(0xe6); db(0x20); db(0x02); db(0x4c); db(0xdf);
- db(0x4c); db(0x1c); db(0x4e); db(0x75); db(0x41); db(0xfa); db(0x05); db(0xab);
- db(0x43); db(0xfa); db(0x01); db(0x30); db(0x70); db(0x13); db(0x61); db(0x00);
- db(0xff); db(0x98); db(0x4e); db(0x75); db(0x22); db(0x6d); db(0x01); db(0x9e);
+ db(0x70); db(0x00); db(0x43); db(0xeb); db(0x01); db(0xa0); db(0x11); db(0xb1);
+ db(0x00); db(0x00); db(0x00); db(0x0e); db(0x52); db(0x40); db(0x0c); db(0x40);
+ db(0x00); db(0x8c); db(0x66); db(0xf2); db(0x20); db(0x0a); db(0xe4); db(0x88);
+ db(0x21); db(0x40); db(0x00); db(0x36); db(0x22); db(0x48); db(0x41); db(0xfa);
+ db(0x11); db(0xde); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x20); db(0x6b);
+ db(0x01); db(0x98); db(0x41); db(0xe8); db(0x00); db(0x12); db(0x4e); db(0xae);
+ db(0xff); db(0x10); db(0x4c); db(0xdf); db(0x4f); db(0x03); db(0x4e); db(0x75);
+ db(0x48); db(0xe7); db(0x7f); db(0x7e); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x24); db(0x48); db(0x0c); db(0x9a); db(0x00); db(0x00); db(0x03); db(0xf3);
+ db(0x66); db(0x00); db(0x00); db(0xe4); db(0x50); db(0x8a); db(0x2e); db(0x2a);
+ db(0x00); db(0x04); db(0x9e); db(0x92); db(0x50); db(0x8a); db(0x52); db(0x87);
+ db(0x26); db(0x4a); db(0x20); db(0x07); db(0xd0); db(0x80); db(0xd0); db(0x80);
+ db(0xd7); db(0xc0); db(0x28); db(0x4a); db(0x9b); db(0xcd); db(0x7c); db(0x00);
+ db(0x24); db(0x12); db(0x72); db(0x01); db(0x08); db(0x02); db(0x00); db(0x1e);
+ db(0x67); db(0x04); db(0x08); db(0xc1); db(0x00); db(0x01); db(0x08); db(0xc1);
+ db(0x00); db(0x10); db(0xe5); db(0x8a); db(0x20); db(0x02); db(0x66); db(0x04);
+ db(0x42); db(0x9a); db(0x60); db(0x1e); db(0x50); db(0x80); db(0x4e); db(0xae);
+ db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x00); db(0x00); db(0xa0);
+ db(0x20); db(0x40); db(0x20); db(0xc2); db(0x24); db(0xc8); db(0x22); db(0x0d);
+ db(0x67); db(0x06); db(0x20); db(0x08); db(0xe4); db(0x88); db(0x2a); db(0x80);
+ db(0x2a); db(0x48); db(0x52); db(0x86); db(0xbe); db(0x86); db(0x66); db(0xc0);
+ db(0x7c); db(0x00); db(0x22); db(0x06); db(0xd2); db(0x81); db(0xd2); db(0x81);
+ db(0x20); db(0x74); db(0x18); db(0x00); db(0x58); db(0x88); db(0x26); db(0x1b);
+ db(0x28); db(0x1b); db(0xe5); db(0x8c); db(0x0c); db(0x83); db(0x00); db(0x00);
+ db(0x03); db(0xe9); db(0x67); db(0x08); db(0x0c); db(0x83); db(0x00); db(0x00);
+ db(0x03); db(0xea); db(0x66); db(0x0c); db(0x20); db(0x04); db(0x4a); db(0x80);
+ db(0x67); db(0x0e); db(0x10); db(0xdb); db(0x53); db(0x80); db(0x60); db(0xf6);
+ db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xeb); db(0x66); db(0x4e);
+ db(0x26); db(0x1b); db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xec);
+ db(0x66); db(0x28); db(0x22); db(0x06); db(0xd2); db(0x81); db(0xd2); db(0x81);
+ db(0x20); db(0x74); db(0x18); db(0x00); db(0x58); db(0x88); db(0x20); db(0x1b);
+ db(0x67); db(0xe6); db(0x22); db(0x1b); db(0xd2); db(0x81); db(0xd2); db(0x81);
+ db(0x26); db(0x34); db(0x18); db(0x00); db(0x58); db(0x83); db(0x24); db(0x1b);
+ db(0xd7); db(0xb0); db(0x28); db(0x00); db(0x53); db(0x80); db(0x66); db(0xf6);
+ db(0x60); db(0xe4); db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xf2);
+ db(0x66); db(0x14); db(0x52); db(0x86); db(0xbe); db(0x86); db(0x66); db(0x00);
+ db(0xff); db(0x8a); db(0x7e); db(0x01); db(0x20); db(0x54); db(0x20); db(0x07);
+ db(0x4c); db(0xdf); db(0x7e); db(0xfe); db(0x4e); db(0x75); db(0x7e); db(0x00);
+ db(0x60); db(0xf4); db(0x48); db(0xe7); db(0x40); db(0xe2); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x41); db(0xee); db(0x01); db(0x50); db(0x20); db(0x50);
+ db(0x4a); db(0x90); db(0x67); db(0x1a); db(0x22); db(0x68); db(0x00); db(0x0a);
+ db(0x45); db(0xfa); db(0x11); db(0x30); db(0x10); db(0x19); db(0x12); db(0x1a);
+ db(0xb0); db(0x01); db(0x66); db(0x06); db(0x4a); db(0x00); db(0x67); db(0x42);
+ db(0x60); db(0xf2); db(0x20); db(0x50); db(0x60); db(0xe2); db(0x70); db(0x20);
+ db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
+ db(0xff); db(0x3a); db(0x24); db(0x40); db(0x15); db(0x7c); db(0x00); db(0x08);
+ db(0x00); db(0x08); db(0x41); db(0xfa); db(0x11); db(0x06); db(0x25); db(0x48);
+ db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x10); db(0x82); db(0x25); db(0x48);
+ db(0x00); db(0x0e); db(0x41); db(0xea); db(0x00); db(0x12); db(0x20); db(0x88);
+ db(0x58); db(0x90); db(0x21); db(0x48); db(0x00); db(0x08); db(0x41); db(0xee);
+ db(0x01); db(0x50); db(0x22); db(0x4a); db(0x4e); db(0xae); db(0xff); db(0x0a);
+ db(0x20); db(0x4a); db(0x20); db(0x08); db(0x4c); db(0xdf); db(0x47); db(0x02);
+ db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x01); db(0x02); db(0x2e); db(0x00);
+ db(0x4a); db(0x2b); db(0x00); db(0x4c); db(0x67); db(0x7c); db(0x2c); db(0x6b);
+ db(0x00); db(0xa0); db(0x0c); db(0x6e); db(0x00); db(0x25); db(0x00); db(0x14);
+ db(0x65); db(0x3e); db(0x72); db(0x0e); db(0x4e); db(0xae); db(0xfd); db(0x66);
+ db(0x02); db(0x80); db(0xff); db(0xff); db(0xff); db(0xfe); db(0x67); db(0x62);
+ db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x0a); db(0x41); db(0xeb);
+ db(0x00); db(0x20); db(0x22); db(0x08); db(0x4e); db(0xae); db(0xfd); db(0x5a);
+ db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x12); db(0x4a); db(0x2b);
+ db(0x00); db(0x9e); db(0x66); db(0x0c); db(0x50); db(0xeb); db(0x00); db(0x9e);
+ db(0x22); db(0x2b); db(0x00); db(0xb4); db(0x4e); db(0xae); db(0xfd); db(0x5a);
+ db(0x72); db(0x0e); db(0x4e); db(0xae); db(0xfd); db(0x6c); db(0x60); db(0x32);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x7c);
+ db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x08); db(0x41); db(0xeb);
+ db(0x00); db(0x20); db(0x61); db(0x00); db(0x00); db(0xac); db(0x08); db(0x07);
+ db(0x00); db(0x01); db(0x67); db(0x12); db(0x4a); db(0x2b); db(0x00); db(0x9e);
+ db(0x66); db(0x0c); db(0x50); db(0xeb); db(0x00); db(0x9e); db(0x20); db(0x6b);
+ db(0x00); db(0xb4); db(0x61); db(0x00); db(0x00); db(0x94); db(0x4e); db(0xae);
+ db(0xff); db(0x76); db(0x4c); db(0xdf); db(0x40); db(0x80); db(0x4e); db(0x75);
+ db(0x48); db(0xe7); db(0x01); db(0x22); db(0x2e); db(0x00); db(0x2c); db(0x6b);
+ db(0x00); db(0xa0); db(0x0c); db(0x6e); db(0x00); db(0x25); db(0x00); db(0x14);
+ db(0x65); db(0x3e); db(0x72); db(0x0e); db(0x4e); db(0xae); db(0xfd); db(0x66);
+ db(0x02); db(0x80); db(0xff); db(0xff); db(0xff); db(0xfe); db(0x67); db(0x62);
+ db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x0a); db(0x41); db(0xeb);
+ db(0x00); db(0x20); db(0x22); db(0x08); db(0x4e); db(0xae); db(0xfd); db(0x60);
+ db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x12); db(0x4a); db(0x2b);
+ db(0x00); db(0x9e); db(0x67); db(0x0c); db(0x42); db(0x2b); db(0x00); db(0x9e);
+ db(0x22); db(0x2b); db(0x00); db(0xb4); db(0x4e); db(0xae); db(0xfd); db(0x60);
+ db(0x72); db(0x0e); db(0x4e); db(0xae); db(0xfd); db(0x6c); db(0x60); db(0x32);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x7c);
+ db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x08); db(0x41); db(0xeb);
+ db(0x00); db(0x20); db(0x61); db(0x00); db(0x00); db(0x44); db(0x08); db(0x07);
+ db(0x00); db(0x01); db(0x67); db(0x12); db(0x4a); db(0x2b); db(0x00); db(0x9e);
+ db(0x67); db(0x0c); db(0x42); db(0x2b); db(0x00); db(0x9e); db(0x20); db(0x6b);
+ db(0x00); db(0xb4); db(0x61); db(0x00); db(0x00); db(0x2c); db(0x4e); db(0xae);
+ db(0xff); db(0x76); db(0x4c); db(0xdf); db(0x44); db(0x80); db(0x4e); db(0x75);
+ db(0x22); db(0x48); db(0x20); db(0x6b); db(0x00); db(0xa0); db(0x20); db(0x68);
+ db(0x00); db(0x22); db(0x20); db(0x68); db(0x00); db(0x18); db(0xd1); db(0xc8);
+ db(0xd1); db(0xc8); db(0x22); db(0xa8); db(0x00); db(0x04); db(0x20); db(0x09);
+ db(0xe4); db(0x88); db(0x21); db(0x40); db(0x00); db(0x04); db(0x4e); db(0x75);
+ db(0x24); db(0x48); db(0x20); db(0x6b); db(0x00); db(0xa0); db(0x20); db(0x68);
+ db(0x00); db(0x22); db(0x20); db(0x68); db(0x00); db(0x18); db(0xd1); db(0xc8);
+ db(0xd1); db(0xc8); db(0x22); db(0x68); db(0x00); db(0x04); db(0xd3); db(0xc9);
+ db(0xd3); db(0xc9); db(0xb3); db(0xca); db(0x66); db(0x06); db(0x21); db(0x52);
+ db(0x00); db(0x04); db(0x60); db(0x18); db(0x20); db(0x09); db(0x67); db(0x0e);
+ db(0x20); db(0x11); db(0xd0); db(0x80); db(0xd0); db(0x80); db(0xb5); db(0xc0);
+ db(0x67); db(0x04); db(0x22); db(0x40); db(0x60); db(0xee); db(0x20); db(0x09);
+ db(0x67); db(0x02); db(0x22); db(0x92); db(0x4e); db(0x75); db(0x48); db(0xe7);
+ db(0x20); db(0x22); db(0x74); db(0x16); db(0x9f); db(0xc2); db(0x24); db(0x4f);
+ db(0x32); db(0x02); db(0x42); db(0x32); db(0x10); db(0xff); db(0x53); db(0x41);
+ db(0x66); db(0xf8); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x72); db(0x0f);
+ db(0x4a); db(0x80); db(0x67); db(0x02); db(0x72); db(0x10); db(0x15); db(0x41);
+ db(0x00); db(0x04); db(0x35); db(0x7c); db(0x08); db(0x00); db(0x00); db(0x08);
+ db(0x22); db(0x6b); db(0x00); db(0xa4); db(0x33); db(0x7c); db(0x00); db(0x0b);
+ db(0x00); db(0x1c); db(0x23); db(0x7c); db(0x00); db(0x00); db(0x00); db(0x16);
+ db(0x00); db(0x24); db(0x23); db(0x4a); db(0x00); db(0x28); db(0x13); db(0x7c);
+ db(0x00); db(0x01); db(0x00); db(0x1e); db(0x22); db(0x6b); db(0x00); db(0xa8);
  db(0x33); db(0x7c); db(0x00); db(0x0a); db(0x00); db(0x1c); db(0x13); db(0x7c);
  db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0x38);
- db(0x22); db(0x6d); db(0x01); db(0x9e); db(0x25); db(0x69); db(0x00); db(0x20);
+ db(0x22); db(0x6b); db(0x00); db(0xa8); db(0x25); db(0x69); db(0x00); db(0x20);
  db(0x00); db(0x0e); db(0x25); db(0x69); db(0x00); db(0x24); db(0x00); db(0x12);
- db(0x22); db(0x6d); db(0x01); db(0x9a); db(0x13); db(0x7c); db(0x00); db(0x01);
- db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x4e); db(0x75);
- db(0x42); db(0xaa); db(0x00); db(0x0e); db(0x42); db(0xaa); db(0x00); db(0x12);
- db(0x22); db(0x6d); db(0x01); db(0x9a); db(0x13); db(0x7c); db(0x00); db(0x01);
- db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x4e); db(0x75);
- db(0x00); db(0x00); db(0xff); db(0xff); db(0x00); db(0x00); db(0x00); db(0x00);
+ db(0x22); db(0x6b); db(0x00); db(0xa4); db(0x4e); db(0xae); db(0xfe); db(0x38);
+ db(0xdf); db(0xc2); db(0x4c); db(0xdf); db(0x44); db(0x04); db(0x4e); db(0x75);
+ db(0x4a); db(0x00); db(0x67); db(0x26); db(0x4a); db(0x2b); db(0x00); db(0x4c);
+ db(0x66); db(0x36); db(0x70); db(0x00); db(0x4a); db(0x33); db(0x00); db(0x4d);
+ db(0x67); db(0x04); db(0x52); db(0x00); db(0x60); db(0xf6); db(0x17); db(0x40);
+ db(0x00); db(0x4c); db(0x67); db(0x24); db(0x20); db(0x01); db(0x61); db(0x00);
+ db(0xfd); db(0xf2); db(0x70); db(0x01); db(0x61); db(0x00); db(0xff); db(0x60);
+ db(0x60); db(0x16); db(0x4a); db(0x2b); db(0x00); db(0x4c); db(0x67); db(0x10);
+ db(0x42); db(0x2b); db(0x00); db(0x4c); db(0x20); db(0x01); db(0x61); db(0x00);
+ db(0xfe); db(0x68); db(0x70); db(0x00); db(0x61); db(0x00); db(0xff); db(0x48);
+ db(0x4e); db(0x75); db(0x4a); db(0xac); db(0x00); db(0x14); db(0x67); db(0x0a);
+ db(0x70); db(0x00); db(0x72); db(0x01); db(0x61); db(0x00); db(0xff); db(0xb2);
+ db(0x4e); db(0x75); db(0x70); db(0x01); db(0x72); db(0x03); db(0x61); db(0x00);
+ db(0xff); db(0xa8); db(0x4e); db(0x75); db(0x10); db(0x2b); db(0x00); db(0xac);
+ db(0x6b); db(0x0a); db(0x70); db(0x01); db(0x72); db(0x03); db(0x61); db(0x00);
+ db(0xff); db(0x98); db(0x4e); db(0x75); db(0x72); db(0x01); db(0x0c); db(0x00);
+ db(0x00); db(0xfe); db(0x66); db(0x02); db(0x72); db(0x03); db(0x70); db(0x00);
+ db(0x61); db(0x00); db(0xff); db(0x86); db(0x4e); db(0x75); db(0x20); db(0x6c);
+ db(0x00); db(0x24); db(0x4a); db(0x90); db(0x67); db(0x0c); db(0x4a); db(0xa8);
+ db(0x00); db(0x08); db(0x66); db(0x0a); db(0x4a); db(0xa8); db(0x00); db(0x0c);
+ db(0x66); db(0x04); db(0x70); db(0x01); db(0x4e); db(0x75); db(0x48); db(0xe7);
+ db(0x3f); db(0x3e); db(0x2a); db(0x48); db(0x24); db(0x6c); db(0x00); db(0x18);
+ db(0x2e); db(0x15); db(0x7a); db(0x00); db(0x4a); db(0x87); db(0x67); db(0x70);
+ db(0x20); db(0x0a); db(0x67); db(0x6c); db(0x7c); db(0x00); db(0x22); db(0x2d);
+ db(0x00); db(0x08); db(0x67); db(0x12); db(0x24); db(0x2a); db(0x00); db(0x04);
+ db(0x2c); db(0x6b); db(0x00); db(0xa0); db(0x4e); db(0xae); db(0xfc); db(0x34);
+ db(0x4a); db(0x80); db(0x66); db(0x02); db(0x50); db(0xc6); db(0x22); db(0x2d);
+ db(0x00); db(0x0c); db(0x67); db(0x1c); db(0x20); db(0x41); db(0x22); db(0x4a);
+ db(0x2f); db(0x0a); db(0x45); db(0xec); db(0x00); db(0x20); db(0x48); db(0x7a);
+ db(0x00); db(0x08); db(0x2f); db(0x28); db(0x00); db(0x08); db(0x4e); db(0x75);
+ db(0x24); db(0x5f); db(0x4a); db(0x80); db(0x66); db(0x02); db(0x50); db(0xc6);
+ db(0x4a); db(0x06); db(0x67); db(0x24); db(0x20); db(0x2a); db(0x00); db(0x04);
+ db(0x90); db(0x8a); db(0x4a); db(0x92); db(0x66); db(0x0a); db(0x20); db(0x05);
+ db(0x67); db(0x10); db(0x20); db(0x40); db(0x42); db(0x90); db(0x60); db(0x0a);
+ db(0x20); db(0x52); db(0x22); db(0x4a); db(0x22); db(0xd8); db(0x59); db(0x80);
+ db(0x6a); db(0xfa); db(0x53); db(0x95); db(0x53); db(0x87); db(0x60); db(0x94);
+ db(0x2a); db(0x0a); db(0x24); db(0x52); db(0x53); db(0x87); db(0x60); db(0x8c);
+ db(0x4c); db(0xdf); db(0x7c); db(0xfc); db(0x20); db(0x6c); db(0x00); db(0x24);
+ db(0x4a); db(0x90); db(0x4e); db(0x75); db(0x61); db(0x00); db(0xfc); db(0x7c);
+ db(0x21); db(0x40); db(0x01); db(0x98); db(0x2f); db(0x08); db(0x30); db(0x3c);
+ db(0xff); db(0xfc); db(0x61); db(0x00); db(0x04); db(0x4c); db(0x2a); db(0x50);
+ db(0x30); db(0x3c); db(0xff); db(0x28); db(0x61); db(0x00); db(0x04); db(0x42);
+ db(0x22); db(0x48); db(0x20); db(0x5f); db(0x42); db(0xa8); db(0x01); db(0x90);
+ db(0x42); db(0xa8); db(0x01); db(0x94); db(0x4e); db(0x91); db(0x26); db(0x00);
+ db(0x0c); db(0x43); db(0xff); db(0xfe); db(0x67); db(0x00); db(0xf9); db(0x6e);
+ db(0x20); db(0x28); db(0x01); db(0x90); db(0x67); db(0x14); db(0x6b); db(0x12);
+ db(0x2f); db(0x08); db(0x72); db(0x01); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x20); db(0x5f); db(0x21); db(0x40);
+ db(0x01); db(0x94); db(0x4a); db(0x83); db(0x6a); db(0x0e); db(0x22); db(0x48);
+ db(0x30); db(0x3c); db(0xff); db(0x20); db(0x61); db(0x00); db(0x04); db(0x02);
+ db(0x4e); db(0x90); db(0x60); db(0x26); db(0x2c); db(0x4c); db(0x2f); db(0x08);
+ db(0x4e); db(0xae); db(0xff); db(0x70); db(0x20); db(0x5f); db(0x22); db(0x48);
+ db(0x26); db(0x40); db(0x30); db(0x3c); db(0xff); db(0x20); db(0x61); db(0x00);
+ db(0x03); db(0xe8); db(0x4e); db(0x90); db(0x70); db(0x00); db(0x27); db(0x40);
+ db(0x00); db(0x08); db(0x27); db(0x40); db(0x00); db(0x10); db(0x27); db(0x40);
+ db(0x00); db(0x20); db(0x4a); db(0xa9); db(0x01); db(0x94); db(0x67); db(0x28);
+ db(0x20); db(0x69); db(0x01); db(0x94); db(0x61); db(0x00); db(0xfa); db(0xf2);
+ db(0x48); db(0xe7); db(0x80); db(0xc0); db(0x20); db(0x29); db(0x01); db(0x90);
+ db(0x22); db(0x69); db(0x01); db(0x94); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x4c); db(0xdf); db(0x03); db(0x01);
+ db(0x4a); db(0x80); db(0x67); db(0x04); db(0x61); db(0x00); db(0xfa); db(0x7c);
+ db(0x4a); db(0x83); db(0x6b); db(0x00); db(0xf8); db(0xe8); db(0x30); db(0x3c);
+ db(0xff); db(0x18); db(0x61); db(0x00); db(0x03); db(0x9c); db(0x4e); db(0x90);
+ db(0x20); db(0x03); db(0x16); db(0x29); db(0x00); db(0x4f); db(0x4a); db(0x80);
+ db(0x66); db(0x1a); db(0x27); db(0x7c); db(0x00); db(0x00); db(0x17); db(0x70);
+ db(0x00); db(0x14); db(0x41); db(0xfa); db(0xf7); db(0xb8); db(0x20); db(0x08);
+ db(0xe4); db(0x88); db(0x27); db(0x40); db(0x00); db(0x20); db(0x70); db(0xff);
+ db(0x27); db(0x40); db(0x00); db(0x24); db(0x08); db(0x07); db(0x00); db(0x00);
+ db(0x67); db(0x3a); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x70); db(0x14);
+ db(0x72); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x22); db(0x40);
+ db(0x70); db(0x00); db(0x22); db(0x80); db(0x23); db(0x40); db(0x00); db(0x04);
+ db(0x33); db(0x40); db(0x00); db(0x0e); db(0x30); db(0x3c); db(0x10); db(0x00);
+ db(0x80); db(0x03); db(0x33); db(0x40); db(0x00); db(0x08); db(0x23); db(0x6d);
+ db(0x01); db(0x04); db(0x00); db(0x0a); db(0x23); db(0x4b); db(0x00); db(0x10);
+ db(0x41); db(0xec); db(0x00); db(0x4a); db(0x4e); db(0xae); db(0xfe); db(0xf2);
+ db(0x70); db(0x00); db(0x4e); db(0x75); db(0x24); db(0x49); db(0x20); db(0x4b);
+ db(0x72); db(0x00); db(0x22); db(0x41); db(0x08); db(0x07); db(0x00); db(0x01);
+ db(0x67); db(0x08); db(0x08); db(0x07); db(0x00); db(0x02); db(0x67); db(0x02);
+ db(0x72); db(0x01); db(0x70); db(0xec); db(0x2c); db(0x4c); db(0x4e); db(0xae);
+ db(0xff); db(0x6a); db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x5c);
+ db(0x08); db(0x07); db(0x00); db(0x02); db(0x66); db(0x56); db(0x20); db(0x52);
+ db(0x74); db(0x02); db(0x52); db(0x82); db(0x4a); db(0x30); db(0x28); db(0xfd);
+ db(0x66); db(0xf8); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x20); db(0x02);
+ db(0x72); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80);
+ db(0x67); db(0x3a); db(0x20); db(0x52); db(0x24); db(0x40); db(0x22); db(0x4a);
+ db(0x12); db(0xd8); db(0x66); db(0xfc); db(0x13); db(0x7c); db(0x00); db(0x3a);
+ db(0xff); db(0xff); db(0x42); db(0x11); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x43); db(0xfa); db(0x0b); db(0xff); db(0x70); db(0x00); db(0x4e); db(0xae);
+ db(0xfd); db(0xd8); db(0x2c); db(0x40); db(0x22); db(0x0a); db(0x4e); db(0xae);
+ db(0xff); db(0x52); db(0x22); db(0x4e); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x22); db(0x4a); db(0x20); db(0x02);
+ db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x70); db(0x00); db(0x4e); db(0x75);
+ db(0x48); db(0xe7); db(0x3f); db(0x3e); db(0x2c); db(0x01); db(0x7e); db(0x06);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x0b); db(0xfa);
+ db(0x70); db(0x24); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80);
+ db(0x66); db(0x0e); db(0x08); db(0x87); db(0x00); db(0x02); db(0x43); db(0xfa);
+ db(0x0b); db(0xe8); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x28); db(0x40); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c);
+ db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
+ db(0xff); db(0x3a); db(0x20); db(0x40); db(0x4a); db(0x80); db(0x67); db(0x2c);
+ db(0x21); db(0x4c); db(0x01); db(0x9c); db(0x48); db(0xe7); db(0x00); db(0x8a);
+ db(0x61); db(0x00); db(0xfe); db(0x0a); db(0x4c); db(0xdf); db(0x51); db(0x00);
+ db(0x0c); db(0x80); db(0xff); db(0xff); db(0xff); db(0xfe); db(0x67); db(0x08);
+ db(0x48); db(0x46); db(0x52); db(0x46); db(0x48); db(0x46); db(0x60); db(0xe4);
+ db(0x22); db(0x48); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c);
+ db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x22); db(0x4c); db(0x4e); db(0xae);
+ db(0xfe); db(0x62); db(0x4c); db(0xdf); db(0x7c); db(0xfc); db(0x4e); db(0x75);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x93); db(0xc9); db(0x4e); db(0xae);
+ db(0xfe); db(0xda); db(0x20); db(0x40); db(0x4b); db(0xe8); db(0x00); db(0x5c);
+ db(0x43); db(0xfa); db(0x0b); db(0x4f); db(0x70); db(0x00); db(0x4e); db(0xae);
+ db(0xfd); db(0xd8); db(0x24); db(0x40); db(0x20); db(0x3c); db(0x00); db(0x00);
+ db(0x00); db(0xb9); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
+ db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x26); db(0x40); db(0x7c); db(0x00);
+ db(0x26); db(0x86); db(0x27); db(0x46); db(0x00); db(0x04); db(0x27); db(0x46);
+ db(0x00); db(0x08); db(0x27); db(0x4a); db(0x00); db(0xa0); db(0x50); db(0xeb);
+ db(0x00); db(0x9e); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda);
+ db(0x27); db(0x40); db(0x00); db(0xb0); db(0x41); db(0xfa); db(0x0a); db(0x86);
+ db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0x02); db(0x84);
+ db(0x27); db(0x40); db(0x00); db(0xa4); db(0x41); db(0xfa); db(0x0a); db(0x83);
+ db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0x02); db(0x74);
+ db(0x27); db(0x40); db(0x00); db(0xa8); db(0x7a); db(0x00); db(0x20); db(0x4d);
+ db(0x4e); db(0xae); db(0xfe); db(0x80); db(0x20); db(0x4d); db(0x4e); db(0xae);
+ db(0xfe); db(0x8c); db(0x28); db(0x40); db(0x26); db(0x2c); db(0x00); db(0x0a);
+ db(0x30); db(0x3c); db(0xff); db(0x40); db(0x61); db(0x00); db(0x01); db(0xb2);
+ db(0x70); db(0x00); db(0x4e); db(0x90); db(0x24); db(0x00); db(0x70); db(0x01);
+ db(0x61); db(0x00); db(0xfa); db(0x38); db(0x08); db(0x02); db(0x00); db(0x01);
+ db(0x67); db(0x06); db(0x70); db(0x01); db(0x61); db(0x00); db(0xfb); db(0xa0);
+ db(0x60); db(0x00); db(0x00); db(0xf8); db(0x20); db(0x4d); db(0x4e); db(0xae);
+ db(0xfe); db(0x8c); db(0x28); db(0x40); db(0x4a); db(0x80); db(0x66); db(0x10);
+ db(0x70); db(0x00); db(0x12); db(0x2d); db(0x00); db(0x0f); db(0x03); db(0xc0);
+ db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2);
+ db(0x4a); db(0x2b); db(0x00); db(0xac); db(0x67); db(0x08); db(0x61); db(0x00);
+ db(0xfc); db(0x4c); db(0x42); db(0x2b); db(0x00); db(0xac); db(0x20); db(0x0c);
+ db(0x67); db(0xd2); db(0x0c); db(0x6c); db(0x00); db(0x26); db(0x00); db(0x12);
+ db(0x66); db(0x4c); db(0x0c); db(0xac); db(0x40); db(0x00); db(0x00); db(0x00);
+ db(0x00); db(0x14); db(0x66); db(0x42); db(0x0c); db(0x6c); db(0x12); db(0x34);
+ db(0x00); db(0x18); db(0x66); db(0x3a); db(0x20); db(0x6c); db(0x00); db(0x1a);
+ db(0x20); db(0x28); db(0x00); db(0x0c); db(0x02); db(0x80); db(0x80); db(0x00);
+ db(0x00); db(0x08); db(0x0c); db(0x80); db(0x80); db(0x00); db(0x00); db(0x08);
+ db(0x66); db(0x18); db(0x02); db(0xa8); db(0x7f); db(0xff); db(0xff); db(0xff);
+ db(0x00); db(0x0c); db(0x20); db(0x68); db(0x00); db(0x10); db(0x22); db(0x4c);
+ db(0x12); db(0xbc); db(0x00); db(0x08); db(0x4e); db(0xae); db(0xfe); db(0x92);
+ db(0x60); db(0x8a); db(0x22); db(0x4c); db(0x70); db(0x26); db(0x4e); db(0xae);
+ db(0xff); db(0x2e); db(0x60); db(0x00); db(0xff); db(0x80); db(0x26); db(0x2c);
+ db(0x00); db(0x0a); db(0x66); db(0x3e); db(0x30); db(0x3c); db(0xff); db(0x50);
+ db(0x61); db(0x00); db(0x01); db(0x06); db(0x70); db(0x01); db(0x4e); db(0x90);
+ db(0x45); db(0xeb); db(0x00); db(0x04); db(0x20); db(0x52); db(0x20); db(0x08);
+ db(0x67); db(0x00); db(0xff); db(0x62); db(0x22); db(0x50); db(0x20); db(0x40);
+ db(0x20); db(0x28); db(0x00); db(0x04); db(0x6a); db(0x16); db(0x48); db(0xe7);
+ db(0x00); db(0xc0); db(0x28); db(0x68); db(0x00); db(0x0a); db(0x61); db(0x4a);
+ db(0x53); db(0x85); db(0x4c); db(0xdf); db(0x03); db(0x00); db(0x24); db(0x89);
+ db(0x20); db(0x49); db(0x60); db(0xda); db(0x24); db(0x48); db(0x20); db(0x49);
+ db(0x60); db(0xd4); db(0x0c); db(0x85); db(0x00); db(0x00); db(0x00); db(0x14);
+ db(0x65); db(0x00); db(0x00); db(0x0a); db(0x70); db(0x01); db(0x29); db(0x40);
+ db(0x00); db(0x04); db(0x60); db(0x12); db(0x61); db(0x5c); db(0x30); db(0x3c);
+ db(0xff); db(0x30); db(0x61); db(0x00); db(0x00); db(0xb4); db(0x4e); db(0x90);
+ db(0x4a); db(0x80); db(0x67); db(0x0e); db(0x52); db(0x85); db(0x28); db(0xab);
+ db(0x00); db(0x04); db(0x27); db(0x4c); db(0x00); db(0x04); db(0x60); db(0x00);
+ db(0xff); db(0x0c); db(0x28); db(0x43); db(0x61); db(0x04); db(0x60); db(0x00);
+ db(0xff); db(0x04); db(0x0c); db(0xac); db(0x00); db(0x00); db(0x00); db(0x1f);
+ db(0x00); db(0x08); db(0x66); db(0x04); db(0x61); db(0x00); db(0xfb); db(0x4c);
+ db(0x0c); db(0xac); db(0x00); db(0x00); db(0x04); db(0x09); db(0x00); db(0x08);
+ db(0x66); db(0x12); db(0x61); db(0x00); db(0xfb); db(0x7a); db(0x66); db(0x0c);
+ db(0x30); db(0x3c); db(0xff); db(0x58); db(0x61); db(0x00); db(0x00); db(0x72);
+ db(0x4e); db(0x90); db(0x60); db(0xee); db(0x22); db(0x54); db(0x20); db(0x6c);
+ db(0x00); db(0x04); db(0x29); db(0x4d); db(0x00); db(0x04); db(0x4e); db(0xee);
+ db(0xfe); db(0x92); db(0x2f); db(0x05); db(0x7a); db(0xfc); db(0x24); db(0x53);
+ db(0x2e); db(0x0a); db(0x22); db(0x0a); db(0x67); db(0x00); db(0x00); db(0x0c);
+ db(0x52); db(0x85); db(0x67); db(0x1e); db(0x22); db(0x4a); db(0x24); db(0x52);
+ db(0x60); db(0xf0); db(0x52); db(0x85); db(0x67); db(0x3c); db(0x24); db(0x47);
+ db(0x70); db(0x18); db(0x72); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
+ db(0x52); db(0x46); db(0x24); db(0x40); db(0x24); db(0x87); db(0x2e); db(0x0a);
+ db(0x60); db(0xe8); db(0x20); db(0x12); db(0x67); db(0x24); db(0x20); db(0x40);
+ db(0x20); db(0x10); db(0x67); db(0x1e); db(0x20); db(0x40); db(0x20); db(0x10);
+ db(0x67); db(0x18); db(0x70); db(0x00); db(0x22); db(0x80); db(0x22); db(0x4a);
+ db(0x24); db(0x51); db(0x70); db(0x18); db(0x4e); db(0xae); db(0xff); db(0x2e);
+ db(0x06); db(0x86); db(0x00); db(0x01); db(0x00); db(0x00); db(0x20); db(0x0a);
+ db(0x66); db(0xec); db(0x26); db(0x87); db(0x2a); db(0x1f); db(0x4e); db(0x75);
+ db(0x41); db(0xfa); db(0xf4); db(0x2a); db(0x02); db(0x80); db(0x00); db(0x00);
+ db(0xff); db(0xff); db(0xd1); db(0xc0); db(0x4e); db(0x75); db(0x20); db(0x88);
+ db(0x58); db(0x90); db(0x42); db(0xa8); db(0x00); db(0x04); db(0x21); db(0x48);
+ db(0x00); db(0x08); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x20); db(0x22);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x70); db(0xff); db(0x4e); db(0xae);
+ db(0xfe); db(0xb6); db(0x91); db(0xc8); db(0x24); db(0x00); db(0x6b); db(0x32);
+ db(0x70); db(0x22); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
+ db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x91); db(0xc8); db(0x24); db(0x40);
+ db(0x4a); db(0x80); db(0x67); db(0x1e); db(0x15); db(0x7c); db(0x00); db(0x04);
+ db(0x00); db(0x08); db(0x15); db(0x42); db(0x00); db(0x0f); db(0x93); db(0xc9);
+ db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x25); db(0x40); db(0x00); db(0x10);
+ db(0x41); db(0xea); db(0x00); db(0x14); db(0x61); db(0x00); db(0xff); db(0xb0);
+ db(0x20); db(0x4a); db(0x20); db(0x08); db(0x4c); db(0xdf); db(0x44); db(0x04);
+ db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x20); db(0x22); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x4a); db(0x80); db(0x67); db(0x24); db(0x24); db(0x40);
+ db(0x24); db(0x01); db(0x66); db(0x02); db(0x74); db(0x30); db(0x20); db(0x02);
+ db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
+ db(0xff); db(0x3a); db(0x20); db(0x40); db(0x11); db(0x7c); db(0x00); db(0x0a);
+ db(0x00); db(0x08); db(0x31); db(0x42); db(0x00); db(0x12); db(0x21); db(0x4a);
+ db(0x00); db(0x0e); db(0x4a); db(0x80); db(0x4c); db(0xdf); db(0x44); db(0x04);
+ db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x30); db(0x22); db(0x24); db(0x48);
+ db(0x24); db(0x00); db(0x26); db(0x01); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x61); db(0x00); db(0xff); db(0x6a); db(0x22); db(0x03); db(0x61); db(0x00);
+ db(0xff); db(0xb2); db(0x67); db(0x18); db(0x20); db(0x4a); db(0x22); db(0x40);
+ db(0x24); db(0x40); db(0x20); db(0x02); db(0x72); db(0x00); db(0x4e); db(0xae);
+ db(0xfe); db(0x44); db(0x22); db(0x00); db(0x70); db(0x00); db(0x4a); db(0x81);
+ db(0x66); db(0x02); db(0x20); db(0x0a); db(0x4a); db(0x80); db(0x4c); db(0xdf);
+ db(0x44); db(0x0c); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x38); db(0x32);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x28); db(0x00); db(0x24); db(0x08);
+ db(0x26); db(0x09); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x08); db(0x5c);
+ db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
+ db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x00); db(0x00); db(0x34);
+ db(0x24); db(0x40); db(0x15); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x08);
+ db(0x15); db(0x44); db(0x00); db(0x09); db(0x25); db(0x42); db(0x00); db(0x0a);
+ db(0x47); db(0xea); db(0x00); db(0x5c); db(0x25); db(0x4b); db(0x00); db(0x3a);
+ db(0x47); db(0xeb); db(0x08); db(0x00); db(0x25); db(0x4b); db(0x00); db(0x3e);
+ db(0x25); db(0x4b); db(0x00); db(0x36); db(0x22); db(0x4a); db(0x24); db(0x43);
+ db(0x97); db(0xcb); db(0x24); db(0x09); db(0x4e); db(0xae); db(0xfe); db(0xe6);
+ db(0x20); db(0x02); db(0x4c); db(0xdf); db(0x4c); db(0x1c); db(0x4e); db(0x75);
+ db(0x41); db(0xfa); db(0x07); db(0xa3); db(0x43); db(0xfa); db(0x01); db(0x30);
+ db(0x70); db(0x13); db(0x61); db(0x00); db(0xff); db(0x98); db(0x4e); db(0x75);
+ db(0x22); db(0x6d); db(0x01); db(0x9e); db(0x33); db(0x7c); db(0x00); db(0x0a);
+ db(0x00); db(0x1c); db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e);
+ db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x22); db(0x6d); db(0x01); db(0x9e);
+ db(0x25); db(0x69); db(0x00); db(0x20); db(0x00); db(0x0e); db(0x25); db(0x69);
+ db(0x00); db(0x24); db(0x00); db(0x12); db(0x22); db(0x6d); db(0x01); db(0x9a);
+ db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae);
+ db(0xfe); db(0x38); db(0x4e); db(0x75); db(0x42); db(0xaa); db(0x00); db(0x0e);
+ db(0x42); db(0xaa); db(0x00); db(0x12); db(0x22); db(0x6d); db(0x01); db(0x9a);
+ db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae);
+ db(0xfe); db(0x38); db(0x4e); db(0x75); db(0x00); db(0x00); db(0xff); db(0xff);
+ db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00);
  db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00);
  db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00);
  db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00);
  db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00);
- db(0x00); db(0x00); db(0x00); db(0x00); db(0x48); db(0xe7); db(0xf0); db(0xfe);
- db(0x2a); db(0x48); db(0x95); db(0xca); db(0x97); db(0xcb); db(0x99); db(0xcc);
- db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x20); db(0x6d); db(0x00); db(0x14);
- db(0x20); db(0x28); db(0x00); db(0x3c); db(0x67); db(0x40); db(0x20); db(0x40);
- db(0x41); db(0xe8); db(0x00); db(0x2c); db(0x28); db(0x48); db(0x4e); db(0xae);
- db(0xfc); db(0xe8); db(0x72); db(0xff); db(0xb2); db(0x80); db(0x67); db(0x2e);
- db(0x26); db(0x00); db(0x91); db(0xc8); db(0x43); db(0xed); db(0x00); db(0x30);
- db(0x70); db(0x00); db(0x30); db(0x3c); db(0x00); db(0x58); db(0x22); db(0x3c);
- db(0x80); db(0x00); db(0x10); db(0x00); db(0x24); db(0x03); db(0x4e); db(0xae);
- db(0xfd); db(0x0c); db(0x72); db(0xff); db(0x74); db(0xff); db(0x4a); db(0x80);
- db(0x6b); db(0x0c); db(0x45); db(0xed); db(0x00); db(0x30); db(0x22); db(0x2a);
- db(0x00); db(0x32); db(0x24); db(0x2a); db(0x00); db(0x36); db(0x20); db(0x2c);
- db(0x00); db(0x1c); db(0xb0); db(0xad); db(0x00); db(0x28); db(0x66); db(0x0c);
- db(0xb2); db(0xad); db(0x00); db(0x20); db(0x66); db(0x06); db(0xb4); db(0xad);
- db(0x00); db(0x24); db(0x67); db(0x38); db(0x2b); db(0x40); db(0x00); db(0x28);
- db(0x2b); db(0x41); db(0x00); db(0x20); db(0x2b); db(0x42); db(0x00); db(0x24);
- db(0x91); db(0xc8); db(0x43); db(0xed); db(0x00); db(0x88); db(0x70); db(0x00);
- db(0x30); db(0x3c); db(0x00); db(0x58); db(0x22); db(0x3c); db(0x80); db(0x00);
- db(0x00); db(0x00); db(0x24); db(0x03); db(0x4e); db(0xae); db(0xfd); db(0x0c);
- db(0x4a); db(0x80); db(0x6b); db(0x04); db(0x47); db(0xed); db(0x00); db(0x88);
- db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x01); db(0x61); db(0x00);
- db(0xfd); db(0x9c); db(0x4e); db(0x90); db(0x4c); db(0xdf); db(0x7f); db(0x0f);
- db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x3e); db(0x2e);
- db(0x00); db(0x14); db(0x70); db(0xff); db(0x4e); db(0xae); db(0xfe); db(0xb6);
- db(0x7c); db(0x00); db(0x01); db(0xc6); db(0x93); db(0xc9); db(0x4e); db(0xae);
- db(0xfe); db(0xda); db(0x28); db(0x40); db(0x70); db(0x14); db(0x22); db(0x4c);
- db(0x4e); db(0xae); db(0xfe); db(0xd4); db(0x70); db(0x00); db(0x30); db(0x3c);
- db(0x01); db(0xa2); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
- db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x2a); db(0x40); db(0x47); db(0xed);
- db(0x00); db(0x16); db(0x27); db(0x4e); db(0x00); db(0x10); db(0x27); db(0x4c);
- db(0x00); db(0x08); db(0x27); db(0x46); db(0x00); db(0x0c); db(0x70); db(0xff);
- db(0x37); db(0x40); db(0x00); db(0x00); db(0x43); db(0xed); db(0x00); db(0x00);
- db(0x13); db(0x7c); db(0x00); db(0x02); db(0x00); db(0x08); db(0x13); db(0x7c);
- db(0x00); db(0x05); db(0x00); db(0x09); db(0x41); db(0xfa); db(0x04); db(0x1b);
- db(0x23); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x03); db(0x0e);
- db(0x23); db(0x48); db(0x00); db(0x12); db(0x23); db(0x4d); db(0x00); db(0x0e);
- db(0x70); db(0x05); db(0x4e); db(0xae); db(0xff); db(0x58); db(0x20); db(0x06);
- db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x70); db(0x00); db(0x53); db(0xab);
- db(0x00); db(0x1c); db(0x6a); db(0x06); db(0x70); db(0x0a); db(0x27); db(0x40);
- db(0x00); db(0x1c); db(0x4a); db(0xab); db(0x00); db(0x14); db(0x66); db(0x18);
- db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xe0); db(0x43); db(0xfa);
- db(0x04); db(0x39); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
- db(0x27); db(0x40); db(0x00); db(0x14); db(0x67); db(0x00); db(0xff); db(0xd0);
- db(0x4a); db(0xab); db(0x00); db(0x18); db(0x66); db(0x18); db(0x4a); db(0xab);
- db(0x00); db(0x1c); db(0x66); db(0xc2); db(0x43); db(0xfa); db(0x04); db(0x2d);
- db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x27); db(0x40);
- db(0x00); db(0x18); db(0x67); db(0x00); db(0xff); db(0xb2); db(0x4a); db(0xad);
- db(0x01); db(0x9a); db(0x66); db(0x38); db(0x4a); db(0xab); db(0x00); db(0x1c);
- db(0x66); db(0xa4); db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee);
- db(0x01); db(0x5e); db(0x43); db(0xfa); db(0x03); db(0x72); db(0x4e); db(0xae);
- db(0xfe); db(0xec); db(0x24); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x76);
- db(0x4a); db(0x82); db(0x67); db(0x8a); db(0x41); db(0xfa); db(0x03); db(0x60);
- db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0xfd); db(0x40);
- db(0x2b); db(0x40); db(0x01); db(0x9a); db(0x67); db(0x00); db(0x02); db(0x74);
- db(0x60); db(0x00); db(0xff); db(0x74); db(0x4a); db(0xad); db(0x01); db(0x9e);
- db(0x66); db(0x48); db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0x00);
- db(0xff); db(0x66); db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee);
- db(0x01); db(0x5e); db(0x43); db(0xfa); db(0x03); db(0x3f); db(0x4e); db(0xae);
- db(0xfe); db(0xec); db(0x24); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x76);
- db(0x4a); db(0x82); db(0x67); db(0x00); db(0xff); db(0x4a); db(0x41); db(0xfa);
- db(0x03); db(0x2b); db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00);
- db(0xfc); db(0xfe); db(0x2b); db(0x40); db(0x01); db(0x9e); db(0x67); db(0x00);
- db(0x02); db(0x32); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x00);
- db(0x61); db(0x00); db(0xfc); db(0x4a); db(0x4e); db(0x90); db(0x60); db(0x00);
- db(0xff); db(0x26); db(0x0c); db(0x47); db(0x00); db(0x24); db(0x65); db(0x06);
- db(0x20); db(0x4b); db(0x61); db(0x00); db(0xfd); db(0xf8); db(0x22); db(0x6d);
- db(0x01); db(0x9a); db(0x45); db(0xed); db(0x00); db(0xce); db(0x33); db(0x7c);
- db(0x00); db(0x0b); db(0x00); db(0x1c); db(0x23); db(0x7c); db(0x00); db(0x00);
- db(0x00); db(0x16); db(0x00); db(0x24); db(0x23); db(0x4a); db(0x00); db(0x28);
- db(0x10); db(0x3a); db(0xfd); db(0xae); db(0x6a); db(0x08); db(0x0c); db(0x47);
- db(0x00); db(0x24); db(0x65); db(0x00); db(0x01); db(0xaa); db(0x15); db(0x7c);
- db(0x00); db(0x13); db(0x00); db(0x04); db(0x42); db(0x6a); db(0x00); db(0x06);
- db(0x22); db(0x3a); db(0xfd); db(0xb8); db(0x02); db(0x41); db(0x00); db(0x07);
- db(0x70); db(0x07); db(0x90); db(0x41); db(0xe1); db(0x48); db(0xe9); db(0x48);
- db(0x35); db(0x40); db(0x00); db(0x08); db(0x41); db(0xed); db(0x00); db(0xfa);
- db(0x25); db(0x48); db(0x00); db(0x0a); db(0x10); db(0x3a); db(0xfd); db(0x7a);
- db(0x6b); db(0x00); db(0x00); db(0xf2); db(0x0c); db(0x47); db(0x00); db(0x27);
- db(0x65); db(0x00); db(0x00); db(0xee); db(0x15); db(0x7c); db(0x00); db(0x03);
- db(0x00); db(0x05); db(0x42); db(0x90); db(0x42); db(0xa8); db(0x00); db(0x04);
- db(0x42); db(0xa8); db(0x00); db(0x08); db(0x42); db(0x68); db(0x00); db(0x0c);
- db(0x31); db(0x7a); db(0xfd); db(0x60); db(0x00); db(0x0e); db(0x42); db(0x68);
- db(0x00); db(0x10); db(0x31); db(0x7a); db(0xfd); db(0x58); db(0x00); db(0x12);
- db(0x42); db(0x68); db(0x00); db(0x14); db(0x31); db(0x7a); db(0xfd); db(0x46);
- db(0x00); db(0x16); db(0x42); db(0x68); db(0x00); db(0x18); db(0x31); db(0x7a);
- db(0xfd); db(0x3e); db(0x00); db(0x1a); db(0x43); db(0xed); db(0x01); db(0x1a);
- db(0x21); db(0x49); db(0x00); db(0x1c); db(0x22); db(0xfc); db(0x80); db(0x03);
- db(0xa0); db(0x06); db(0x30); db(0x3a); db(0xfd); db(0x44); db(0x48); db(0xc0);
- db(0xe1); db(0x80); db(0x22); db(0xc0); db(0x22); db(0xfc); db(0x80); db(0x03);
- db(0xa0); db(0x07); db(0x22); db(0xfa); db(0xfd); db(0x36); db(0x70); db(0x00);
- db(0x30); db(0x3a); db(0xfd); db(0x1e); db(0x6b); db(0x08); db(0x22); db(0xfc);
- db(0x80); db(0x03); db(0xa0); db(0x09); db(0x22); db(0xc0); db(0x30); db(0x3a);
- db(0xfd); db(0x12); db(0x6b); db(0x08); db(0x22); db(0xfc); db(0x80); db(0x03);
- db(0xa0); db(0x0a); db(0x22); db(0xc0); db(0x30); db(0x3a); db(0xfc); db(0xfa);
- db(0x6b); db(0x14); db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x02);
- db(0x22); db(0xc0); db(0x30); db(0x3a); db(0xfc); db(0xf2); db(0x22); db(0xfc);
- db(0x80); db(0x03); db(0xa0); db(0x01); db(0x22); db(0xc0); db(0x30); db(0x3a);
- db(0xfc); db(0xec); db(0x6b); db(0x10); db(0x22); db(0xfc); db(0x80); db(0x03);
- db(0xa0); db(0x03); db(0x30); db(0x3a); db(0xfc); db(0xe6); db(0x48); db(0xc0);
- db(0xe1); db(0x80); db(0x22); db(0xc0); db(0x30); db(0x3a); db(0xfc); db(0xd8);
- db(0x6b); db(0x10); db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x04);
- db(0x30); db(0x3a); db(0xfc); db(0xd2); db(0x48); db(0xc0); db(0xe1); db(0x80);
- db(0x22); db(0xc0); db(0x30); db(0x3a); db(0xfc); db(0xc4); db(0x6b); db(0x10);
- db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x05); db(0x30); db(0x3a);
- db(0xfc); db(0xbe); db(0x48); db(0xc0); db(0xe1); db(0x80); db(0x22); db(0xc0);
- db(0x70); db(0x00); db(0x30); db(0x3a); db(0xfc); db(0xba); db(0x6b); db(0x08);
- db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x08); db(0x22); db(0xc0);
- db(0x42); db(0x91); db(0x60); db(0x32); db(0x42); db(0x6a); db(0x00); db(0x08);
- db(0x0c); db(0x47); db(0x00); db(0x24); db(0x65); db(0x00); db(0xfd); db(0xc8);
- db(0x15); db(0x7c); db(0x00); db(0x02); db(0x00); db(0x05); db(0x30); db(0xba);
- db(0xfc); db(0x74); db(0x31); db(0x7a); db(0xfc); db(0x72); db(0x00); db(0x02);
- db(0x31); db(0x7a); db(0xfc); db(0x70); db(0x00); db(0x04); db(0x31); db(0x7a);
- db(0xfc); db(0x6c); db(0x00); db(0x06); db(0x30); db(0x3a); db(0xfc); db(0x7a);
- db(0xe0); db(0x40); db(0x31); db(0x40); db(0x00); db(0x08); db(0x61); db(0x00);
- db(0xfc); db(0x38); db(0x10); db(0x3a); db(0xfc); db(0x4c); db(0x6b); db(0x00);
- db(0xfd); db(0x96); db(0x36); db(0x3c); db(0x00); db(0x68); db(0x74); db(0x01);
- db(0x28); db(0x3a); db(0xfc); db(0x60); db(0x20); db(0x04); db(0xc0); db(0x82);
- db(0x22); db(0x2b); db(0x00); db(0x04); db(0xc2); db(0x82); db(0xb2); db(0x80);
- db(0x67); db(0x22); db(0x42); db(0x92); db(0x35); db(0x7c); db(0x02); db(0x00);
- db(0x00); db(0x04); db(0x42); db(0xaa); db(0x00); db(0x0a); db(0x32); db(0x03);
- db(0x4a); db(0x00); db(0x66); db(0x04); db(0x08); db(0xc1); db(0x00); db(0x07);
- db(0x35); db(0x41); db(0x00); db(0x06); db(0x42); db(0x6a); db(0x00); db(0x08);
- db(0x61); db(0x00); db(0xfb); db(0xf6); db(0x52); db(0x43); db(0xd4); db(0x42);
- db(0x0c); db(0x42); db(0x00); db(0x08); db(0x66); db(0xc6); db(0x27); db(0x44);
- db(0x00); db(0x04); db(0x60); db(0x00); db(0xfd); db(0x4a); db(0x42); db(0x92);
- db(0x35); db(0x7c); db(0x04); db(0x00); db(0x00); db(0x04); db(0x42); db(0x6a);
- db(0x00); db(0x06); db(0x42); db(0x6a); db(0x00); db(0x08); db(0x20); db(0x6b);
- db(0x00); db(0x14); db(0x30); db(0x3a); db(0xfc); db(0x0c); db(0x32); db(0x28);
- db(0x00); db(0x30); db(0xd2); db(0x41); db(0x90); db(0x41); db(0x6a); db(0x02);
- db(0x70); db(0x00); db(0x35); db(0x40); db(0x00); db(0x0a); db(0x30); db(0x3a);
- db(0xfb); db(0xfa); db(0x32); db(0x28); db(0x00); db(0x2e); db(0xd2); db(0x41);
+ db(0x48); db(0xe7); db(0xf0); db(0xfe); db(0x2a); db(0x48); db(0x95); db(0xca);
+ db(0x97); db(0xcb); db(0x99); db(0xcc); db(0x2c); db(0x6d); db(0x00); db(0x18);
+ db(0x20); db(0x6d); db(0x00); db(0x14); db(0x20); db(0x28); db(0x00); db(0x3c);
+ db(0x67); db(0x40); db(0x20); db(0x40); db(0x41); db(0xe8); db(0x00); db(0x2c);
+ db(0x28); db(0x48); db(0x4e); db(0xae); db(0xfc); db(0xe8); db(0x72); db(0xff);
+ db(0xb2); db(0x80); db(0x67); db(0x2e); db(0x26); db(0x00); db(0x91); db(0xc8);
+ db(0x43); db(0xed); db(0x00); db(0x30); db(0x70); db(0x00); db(0x30); db(0x3c);
+ db(0x00); db(0x58); db(0x22); db(0x3c); db(0x80); db(0x00); db(0x10); db(0x00);
+ db(0x24); db(0x03); db(0x4e); db(0xae); db(0xfd); db(0x0c); db(0x72); db(0xff);
+ db(0x74); db(0xff); db(0x4a); db(0x80); db(0x6b); db(0x0c); db(0x45); db(0xed);
+ db(0x00); db(0x30); db(0x22); db(0x2a); db(0x00); db(0x32); db(0x24); db(0x2a);
+ db(0x00); db(0x36); db(0x20); db(0x2c); db(0x00); db(0x1c); db(0xb0); db(0xad);
+ db(0x00); db(0x28); db(0x66); db(0x0c); db(0xb2); db(0xad); db(0x00); db(0x20);
+ db(0x66); db(0x06); db(0xb4); db(0xad); db(0x00); db(0x24); db(0x67); db(0x38);
+ db(0x2b); db(0x40); db(0x00); db(0x28); db(0x2b); db(0x41); db(0x00); db(0x20);
+ db(0x2b); db(0x42); db(0x00); db(0x24); db(0x91); db(0xc8); db(0x43); db(0xed);
+ db(0x00); db(0x88); db(0x70); db(0x00); db(0x30); db(0x3c); db(0x00); db(0x58);
+ db(0x22); db(0x3c); db(0x80); db(0x00); db(0x00); db(0x00); db(0x24); db(0x03);
+ db(0x4e); db(0xae); db(0xfd); db(0x0c); db(0x4a); db(0x80); db(0x6b); db(0x04);
+ db(0x47); db(0xed); db(0x00); db(0x88); db(0x30); db(0x3c); db(0xff); db(0x38);
+ db(0x72); db(0x01); db(0x61); db(0x00); db(0xfd); db(0x9c); db(0x4e); db(0x90);
+ db(0x4c); db(0xdf); db(0x7f); db(0x0f); db(0x4e); db(0x75); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x3e); db(0x2e); db(0x00); db(0x14); db(0x70); db(0xff);
+ db(0x4e); db(0xae); db(0xfe); db(0xb6); db(0x7c); db(0x00); db(0x01); db(0xc6);
+ db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x28); db(0x40);
+ db(0x70); db(0x14); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0xd4);
+ db(0x70); db(0x00); db(0x30); db(0x3c); db(0x01); db(0xa2); db(0x22); db(0x3c);
+ db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
+ db(0x2a); db(0x40); db(0x47); db(0xed); db(0x00); db(0x16); db(0x27); db(0x4e);
+ db(0x00); db(0x10); db(0x27); db(0x4c); db(0x00); db(0x08); db(0x27); db(0x46);
+ db(0x00); db(0x0c); db(0x70); db(0xff); db(0x37); db(0x40); db(0x00); db(0x00);
+ db(0x43); db(0xed); db(0x00); db(0x00); db(0x13); db(0x7c); db(0x00); db(0x02);
+ db(0x00); db(0x08); db(0x13); db(0x7c); db(0x00); db(0x05); db(0x00); db(0x09);
+ db(0x41); db(0xfa); db(0x06); db(0x13); db(0x23); db(0x48); db(0x00); db(0x0a);
+ db(0x41); db(0xfa); db(0x03); db(0x0e); db(0x23); db(0x48); db(0x00); db(0x12);
+ db(0x23); db(0x4d); db(0x00); db(0x0e); db(0x70); db(0x05); db(0x4e); db(0xae);
+ db(0xff); db(0x58); db(0x20); db(0x06); db(0x4e); db(0xae); db(0xfe); db(0xc2);
+ db(0x70); db(0x00); db(0x53); db(0xab); db(0x00); db(0x1c); db(0x6a); db(0x06);
+ db(0x70); db(0x0a); db(0x27); db(0x40); db(0x00); db(0x1c); db(0x4a); db(0xab);
+ db(0x00); db(0x14); db(0x66); db(0x18); db(0x4a); db(0xab); db(0x00); db(0x1c);
+ db(0x66); db(0xe0); db(0x43); db(0xfa); db(0x06); db(0x31); db(0x70); db(0x00);
+ db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x27); db(0x40); db(0x00); db(0x14);
+ db(0x67); db(0x00); db(0xff); db(0xd0); db(0x4a); db(0xab); db(0x00); db(0x18);
+ db(0x66); db(0x18); db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xc2);
+ db(0x43); db(0xfa); db(0x06); db(0x25); db(0x70); db(0x00); db(0x4e); db(0xae);
+ db(0xfd); db(0xd8); db(0x27); db(0x40); db(0x00); db(0x18); db(0x67); db(0x00);
+ db(0xff); db(0xb2); db(0x4a); db(0xad); db(0x01); db(0x9a); db(0x66); db(0x38);
+ db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xa4); db(0x4e); db(0xae);
+ db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e); db(0x43); db(0xfa);
+ db(0x05); db(0x54); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00);
+ db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82); db(0x67); db(0x8a);
+ db(0x41); db(0xfa); db(0x05); db(0x42); db(0x70); db(0x00); db(0x72); db(0x00);
+ db(0x61); db(0x00); db(0xfd); db(0x40); db(0x2b); db(0x40); db(0x01); db(0x9a);
+ db(0x67); db(0x00); db(0x02); db(0x74); db(0x60); db(0x00); db(0xff); db(0x74);
+ db(0x4a); db(0xad); db(0x01); db(0x9e); db(0x66); db(0x48); db(0x4a); db(0xab);
+ db(0x00); db(0x1c); db(0x66); db(0x00); db(0xff); db(0x66); db(0x4e); db(0xae);
+ db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e); db(0x43); db(0xfa);
+ db(0x05); db(0x21); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00);
+ db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82); db(0x67); db(0x00);
+ db(0xff); db(0x4a); db(0x41); db(0xfa); db(0x05); db(0x0d); db(0x70); db(0x00);
+ db(0x72); db(0x00); db(0x61); db(0x00); db(0xfc); db(0xfe); db(0x2b); db(0x40);
+ db(0x01); db(0x9e); db(0x67); db(0x00); db(0x02); db(0x32); db(0x30); db(0x3c);
+ db(0xff); db(0x38); db(0x72); db(0x00); db(0x61); db(0x00); db(0xfc); db(0x4a);
+ db(0x4e); db(0x90); db(0x60); db(0x00); db(0xff); db(0x26); db(0x0c); db(0x47);
+ db(0x00); db(0x24); db(0x65); db(0x06); db(0x20); db(0x4b); db(0x61); db(0x00);
+ db(0xfd); db(0xf8); db(0x22); db(0x6d); db(0x01); db(0x9a); db(0x45); db(0xed);
+ db(0x00); db(0xce); db(0x33); db(0x7c); db(0x00); db(0x0b); db(0x00); db(0x1c);
+ db(0x23); db(0x7c); db(0x00); db(0x00); db(0x00); db(0x16); db(0x00); db(0x24);
+ db(0x23); db(0x4a); db(0x00); db(0x28); db(0x10); db(0x3a); db(0xfd); db(0xae);
+ db(0x6a); db(0x08); db(0x0c); db(0x47); db(0x00); db(0x24); db(0x65); db(0x00);
+ db(0x01); db(0xaa); db(0x15); db(0x7c); db(0x00); db(0x13); db(0x00); db(0x04);
+ db(0x42); db(0x6a); db(0x00); db(0x06); db(0x22); db(0x3a); db(0xfd); db(0xb8);
+ db(0x02); db(0x41); db(0x00); db(0x07); db(0x70); db(0x07); db(0x90); db(0x41);
+ db(0xe1); db(0x48); db(0xe9); db(0x48); db(0x35); db(0x40); db(0x00); db(0x08);
+ db(0x41); db(0xed); db(0x00); db(0xfa); db(0x25); db(0x48); db(0x00); db(0x0a);
+ db(0x10); db(0x3a); db(0xfd); db(0x7a); db(0x6b); db(0x00); db(0x00); db(0xf2);
+ db(0x0c); db(0x47); db(0x00); db(0x27); db(0x65); db(0x00); db(0x00); db(0xee);
+ db(0x15); db(0x7c); db(0x00); db(0x03); db(0x00); db(0x05); db(0x42); db(0x90);
+ db(0x42); db(0xa8); db(0x00); db(0x04); db(0x42); db(0xa8); db(0x00); db(0x08);
+ db(0x42); db(0x68); db(0x00); db(0x0c); db(0x31); db(0x7a); db(0xfd); db(0x60);
+ db(0x00); db(0x0e); db(0x42); db(0x68); db(0x00); db(0x10); db(0x31); db(0x7a);
+ db(0xfd); db(0x58); db(0x00); db(0x12); db(0x42); db(0x68); db(0x00); db(0x14);
+ db(0x31); db(0x7a); db(0xfd); db(0x46); db(0x00); db(0x16); db(0x42); db(0x68);
+ db(0x00); db(0x18); db(0x31); db(0x7a); db(0xfd); db(0x3e); db(0x00); db(0x1a);
+ db(0x43); db(0xed); db(0x01); db(0x1a); db(0x21); db(0x49); db(0x00); db(0x1c);
+ db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x06); db(0x30); db(0x3a);
+ db(0xfd); db(0x44); db(0x48); db(0xc0); db(0xe1); db(0x80); db(0x22); db(0xc0);
+ db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x07); db(0x22); db(0xfa);
+ db(0xfd); db(0x36); db(0x70); db(0x00); db(0x30); db(0x3a); db(0xfd); db(0x1e);
+ db(0x6b); db(0x08); db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x09);
+ db(0x22); db(0xc0); db(0x30); db(0x3a); db(0xfd); db(0x12); db(0x6b); db(0x08);
+ db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x0a); db(0x22); db(0xc0);
+ db(0x30); db(0x3a); db(0xfc); db(0xfa); db(0x6b); db(0x14); db(0x22); db(0xfc);
+ db(0x80); db(0x03); db(0xa0); db(0x02); db(0x22); db(0xc0); db(0x30); db(0x3a);
+ db(0xfc); db(0xf2); db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x01);
+ db(0x22); db(0xc0); db(0x30); db(0x3a); db(0xfc); db(0xec); db(0x6b); db(0x10);
+ db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x03); db(0x30); db(0x3a);
+ db(0xfc); db(0xe6); db(0x48); db(0xc0); db(0xe1); db(0x80); db(0x22); db(0xc0);
+ db(0x30); db(0x3a); db(0xfc); db(0xd8); db(0x6b); db(0x10); db(0x22); db(0xfc);
+ db(0x80); db(0x03); db(0xa0); db(0x04); db(0x30); db(0x3a); db(0xfc); db(0xd2);
+ db(0x48); db(0xc0); db(0xe1); db(0x80); db(0x22); db(0xc0); db(0x30); db(0x3a);
+ db(0xfc); db(0xc4); db(0x6b); db(0x10); db(0x22); db(0xfc); db(0x80); db(0x03);
+ db(0xa0); db(0x05); db(0x30); db(0x3a); db(0xfc); db(0xbe); db(0x48); db(0xc0);
+ db(0xe1); db(0x80); db(0x22); db(0xc0); db(0x70); db(0x00); db(0x30); db(0x3a);
+ db(0xfc); db(0xba); db(0x6b); db(0x08); db(0x22); db(0xfc); db(0x80); db(0x03);
+ db(0xa0); db(0x08); db(0x22); db(0xc0); db(0x42); db(0x91); db(0x60); db(0x32);
+ db(0x42); db(0x6a); db(0x00); db(0x08); db(0x0c); db(0x47); db(0x00); db(0x24);
+ db(0x65); db(0x00); db(0xfd); db(0xc8); db(0x15); db(0x7c); db(0x00); db(0x02);
+ db(0x00); db(0x05); db(0x30); db(0xba); db(0xfc); db(0x74); db(0x31); db(0x7a);
+ db(0xfc); db(0x72); db(0x00); db(0x02); db(0x31); db(0x7a); db(0xfc); db(0x70);
+ db(0x00); db(0x04); db(0x31); db(0x7a); db(0xfc); db(0x6c); db(0x00); db(0x06);
+ db(0x30); db(0x3a); db(0xfc); db(0x7a); db(0xe0); db(0x40); db(0x31); db(0x40);
+ db(0x00); db(0x08); db(0x61); db(0x00); db(0xfc); db(0x38); db(0x10); db(0x3a);
+ db(0xfc); db(0x4c); db(0x6b); db(0x00); db(0xfd); db(0x96); db(0x36); db(0x3c);
+ db(0x00); db(0x68); db(0x74); db(0x01); db(0x28); db(0x3a); db(0xfc); db(0x60);
+ db(0x20); db(0x04); db(0xc0); db(0x82); db(0x22); db(0x2b); db(0x00); db(0x04);
+ db(0xc2); db(0x82); db(0xb2); db(0x80); db(0x67); db(0x22); db(0x42); db(0x92);
+ db(0x35); db(0x7c); db(0x02); db(0x00); db(0x00); db(0x04); db(0x42); db(0xaa);
+ db(0x00); db(0x0a); db(0x32); db(0x03); db(0x4a); db(0x00); db(0x66); db(0x04);
+ db(0x08); db(0xc1); db(0x00); db(0x07); db(0x35); db(0x41); db(0x00); db(0x06);
+ db(0x42); db(0x6a); db(0x00); db(0x08); db(0x61); db(0x00); db(0xfb); db(0xf6);
+ db(0x52); db(0x43); db(0xd4); db(0x42); db(0x0c); db(0x42); db(0x00); db(0x08);
+ db(0x66); db(0xc6); db(0x27); db(0x44); db(0x00); db(0x04); db(0x60); db(0x00);
+ db(0xfd); db(0x4a); db(0x42); db(0x92); db(0x35); db(0x7c); db(0x04); db(0x00);
+ db(0x00); db(0x04); db(0x42); db(0x6a); db(0x00); db(0x06); db(0x42); db(0x6a);
+ db(0x00); db(0x08); db(0x20); db(0x6b); db(0x00); db(0x14); db(0x30); db(0x3a);
+ db(0xfc); db(0x0c); db(0x32); db(0x28); db(0x00); db(0x30); db(0xd2); db(0x41);
  db(0x90); db(0x41); db(0x6a); db(0x02); db(0x70); db(0x00); db(0x35); db(0x40);
- db(0x00); db(0x0c); db(0x61); db(0x00); db(0xfb); db(0x70); db(0x60); db(0x00);
- db(0xfd); db(0x06); db(0x4e); db(0x75); db(0x4a); db(0xa9); db(0x01); db(0x9a);
- db(0x67); db(0x14); db(0x4a); db(0xa9); db(0x01); db(0x9e); db(0x67); db(0x0e);
- db(0x30); db(0x3a); db(0xfb); db(0xa8); db(0xb0); db(0x69); db(0x00); db(0x16);
- db(0x67); db(0x14); db(0x33); db(0x40); db(0x00); db(0x16); db(0x2c); db(0x69);
- db(0x00); db(0x26); db(0x20); db(0x29); db(0x00); db(0x22); db(0x22); db(0x69);
- db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0xbc); db(0x53); db(0x69);
- db(0x00); db(0x42); db(0x6a); db(0x12); db(0x33); db(0x7c); db(0x00); db(0x32);
- db(0x00); db(0x42); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x02);
- db(0x61); db(0x00); db(0xf9); db(0xe2); db(0x4e); db(0x90); db(0x41); db(0xf9);
- db(0x00); db(0xdf); db(0xf0); db(0x00); db(0x70); db(0x00); db(0x4e); db(0x75);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x20); db(0x3c); db(0x00); db(0x00);
- db(0x00); db(0x84); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
- db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x2a); db(0x40); db(0x93); db(0xc9);
- db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x2b); db(0x40); db(0x00); db(0x04);
- db(0x41); db(0xfa); db(0x00); db(0x86); db(0x70); db(0x00); db(0x72); db(0x00);
- db(0x32); db(0x3c); db(0x00); db(0x34); db(0x61); db(0x00); db(0xfa); db(0x48);
- db(0x28); db(0x40); db(0x41); db(0xed); db(0x00); db(0x0c); db(0x29); db(0x48);
- db(0x00); db(0x28); db(0x70); db(0x01); db(0x29); db(0x40); db(0x00); db(0x24);
- db(0x39); db(0x7c); db(0x00); db(0x0c); db(0x00); db(0x1c); db(0x2b); db(0x4d);
- db(0x00); db(0x1c); db(0x41); db(0xfa); db(0x00); db(0x1c); db(0x2b); db(0x48);
- db(0x00); db(0x14); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38);
- db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae);
- db(0xfe); db(0xc2); db(0x39); db(0x7c); db(0x00); db(0x02); db(0x00); db(0x1c);
- db(0x48); db(0xe7); db(0x00); db(0x06); db(0x2a); db(0x48); db(0x2b); db(0x69);
- db(0x00); db(0x08); db(0x00); db(0x08); db(0x2c); db(0x6d); db(0x00); db(0x00);
- db(0x22); db(0x6d); db(0x00); db(0x04); db(0x70); db(0x00); db(0x08); db(0xc0);
- db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xbc); db(0x70); db(0x00);
- db(0x4c); db(0xdf); db(0x60); db(0x00); db(0x4e); db(0x75); db(0x69); db(0x6e);
- db(0x70); db(0x75); db(0x74); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69);
- db(0x63); db(0x65); db(0x00); db(0x74); db(0x69); db(0x6d); db(0x65); db(0x72);
- db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00);
- db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72);
- db(0x64); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65);
- db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x6d); db(0x6f); db(0x75);
- db(0x73); db(0x65); db(0x20); db(0x64); db(0x72); db(0x69); db(0x76); db(0x65);
- db(0x72); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x69);
- db(0x6c); db(0x65); db(0x73); db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d);
- db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); db(0x20);
- db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e);
- db(0x74); db(0x65); db(0x72); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20);
- db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d);
- db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x20); db(0x70); db(0x72); db(0x6f);
- db(0x63); db(0x65); db(0x73); db(0x73); db(0x00); db(0x64); db(0x6f); db(0x73);
- db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79);
- db(0x00); db(0x69); db(0x6e); db(0x74); db(0x75); db(0x69); db(0x74); db(0x69);
- db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61);
- db(0x72); db(0x79); db(0x00); db(0x67); db(0x72); db(0x61); db(0x70); db(0x68);
- db(0x69); db(0x63); db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72);
- db(0x61); db(0x72); db(0x79); db(0x00); db(0x65); db(0x78); db(0x70); db(0x61);
- db(0x6e); db(0x73); db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69);
- db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x46); db(0x69);
- db(0x6c); db(0x65); db(0x53); db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d);
- db(0x2e); db(0x72); db(0x65); db(0x73); db(0x6f); db(0x75); db(0x72); db(0x63);
- db(0x65); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x03); db(0xf2);
+ db(0x00); db(0x0a); db(0x30); db(0x3a); db(0xfb); db(0xfa); db(0x32); db(0x28);
+ db(0x00); db(0x2e); db(0xd2); db(0x41); db(0x90); db(0x41); db(0x6a); db(0x02);
+ db(0x70); db(0x00); db(0x35); db(0x40); db(0x00); db(0x0c); db(0x61); db(0x00);
+ db(0xfb); db(0x70); db(0x60); db(0x00); db(0xfd); db(0x06); db(0x4e); db(0x75);
+ db(0x4a); db(0xa9); db(0x01); db(0x9a); db(0x67); db(0x14); db(0x4a); db(0xa9);
+ db(0x01); db(0x9e); db(0x67); db(0x0e); db(0x30); db(0x3a); db(0xfb); db(0xa8);
+ db(0xb0); db(0x69); db(0x00); db(0x16); db(0x67); db(0x14); db(0x33); db(0x40);
+ db(0x00); db(0x16); db(0x2c); db(0x69); db(0x00); db(0x26); db(0x20); db(0x29);
+ db(0x00); db(0x22); db(0x22); db(0x69); db(0x00); db(0x1e); db(0x4e); db(0xae);
+ db(0xfe); db(0xbc); db(0x53); db(0x69); db(0x00); db(0x42); db(0x6a); db(0x12);
+ db(0x33); db(0x7c); db(0x00); db(0x32); db(0x00); db(0x42); db(0x30); db(0x3c);
+ db(0xff); db(0x38); db(0x72); db(0x02); db(0x61); db(0x00); db(0xf9); db(0xe2);
+ db(0x4e); db(0x90); db(0x41); db(0xf9); db(0x00); db(0xdf); db(0xf0); db(0x00);
+ db(0x70); db(0x00); db(0x4e); db(0x75); db(0x41); db(0xfa); db(0x02); db(0x99);
+ db(0x43); db(0xfa); db(0x00); db(0x0a); db(0x70); db(0xf6); db(0x61); db(0x00);
+ db(0xfa); db(0xa4); db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0x34); db(0x22); db(0x3c);
+ db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
+ db(0x4a); db(0x80); db(0x67); db(0xe6); db(0x2a); db(0x40); db(0x2b); db(0x4e);
+ db(0x00); db(0x14); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda);
+ db(0x2b); db(0x40); db(0x00); db(0x08); db(0x30); db(0x3c); db(0xff); db(0x38);
+ db(0x72); db(0x0e); db(0x61); db(0x00); db(0xf9); db(0x94); db(0x20); db(0x0d);
+ db(0x4e); db(0x90); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d);
+ db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x4e); db(0xae); db(0xff); db(0x7c);
+ db(0x41); db(0xee); db(0x01); db(0x7a); db(0x43); db(0xfa); db(0x02); db(0xa3);
+ db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00); db(0x4e); db(0xae);
+ db(0xff); db(0x76); db(0x4a); db(0x82); db(0x67); db(0xdc); db(0x42); db(0xad);
+ db(0x00); db(0x08); db(0x41); db(0xfa); db(0x02); db(0x2b); db(0x43); db(0xfa);
+ db(0x00); db(0x18); db(0x70); db(0xf6); db(0x22); db(0x3c); db(0x00); db(0x00);
+ db(0x0f); db(0xa0); db(0x61); db(0x00); db(0xee); db(0x9a); db(0x70); db(0x00);
+ db(0x4e); db(0x75); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x10);
+ db(0x00); db(0x00); db(0x00); db(0x00); db(0x30); db(0x3c); db(0xff); db(0x38);
+ db(0x72); db(0x0d); db(0x61); db(0x00); db(0xf9); db(0x3c); db(0x4e); db(0x90);
+ db(0x4a); db(0x80); db(0x67); db(0x00); db(0xff); db(0x6e); db(0x2a); db(0x40);
+ db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x93); db(0xc9); db(0x4e); db(0xae);
+ db(0xfe); db(0xda); db(0x2b); db(0x40); db(0x00); db(0x08); db(0x61); db(0x00);
+ db(0xf9); db(0x3c); db(0x72); db(0x00); db(0x32); db(0x3c); db(0x00); db(0x34);
+ db(0x61); db(0x00); db(0xf9); db(0x80); db(0x28); db(0x40); db(0x4a); db(0x80);
+ db(0x67); db(0x00); db(0xff); db(0x48); db(0x70); db(0x00); db(0x08); db(0xc0);
+ db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x72); db(0x00);
+ db(0x20); db(0x2d); db(0x00); db(0x0c); db(0x41); db(0xfa); db(0x01); db(0xb0);
+ db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x44); db(0x24); db(0x00);
+ db(0x66); db(0xe2); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0a);
+ db(0x61); db(0x00); db(0xf8); db(0xe6); db(0x4e); db(0x90); db(0x41); db(0xed);
+ db(0x00); db(0x18); db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x01);
+ db(0x29); db(0x40); db(0x00); db(0x24); db(0x39); db(0x7c); db(0x00); db(0x0c);
+ db(0x00); db(0x1c); db(0x2b); db(0x4d); db(0x00); db(0x28); db(0x41); db(0xfa);
+ db(0x01); db(0x38); db(0x2b); db(0x48); db(0x00); db(0x20); db(0x22); db(0x4c);
+ db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x70); db(0x00); db(0x08); db(0xc0);
+ db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x20); db(0x2d);
+ db(0x00); db(0x00); db(0x67); db(0x00); db(0x00); db(0x72); db(0x72); db(0x01);
+ db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x2b); db(0x40); db(0x00); db(0x04);
+ db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0c); db(0x61); db(0x00);
+ db(0xf8); db(0x98); db(0x4e); db(0x90); db(0x4a); db(0xad); db(0x00); db(0x04);
+ db(0x67); db(0x3a); db(0x39); db(0x7c); db(0x00); db(0x03); db(0x00); db(0x1c);
+ db(0x42); db(0x2c); db(0x00); db(0x1f); db(0x42); db(0xac); db(0x00); db(0x20);
+ db(0x29); db(0x6d); db(0x00); db(0x00); db(0x00); db(0x24); db(0x29); db(0x6d);
+ db(0x00); db(0x04); db(0x00); db(0x28); db(0x42); db(0xac); db(0x00); db(0x2c);
+ db(0x42); db(0xac); db(0x00); db(0x30); db(0x22); db(0x4c); db(0x4e); db(0xae);
+ db(0xfe); db(0x38); db(0x2b); db(0x6c); db(0x00); db(0x30); db(0x00); db(0x10);
+ db(0x39); db(0x7c); db(0x00); db(0x04); db(0x00); db(0x1c); db(0x22); db(0x4c);
+ db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x20); db(0x2d); db(0x00); db(0x00);
+ db(0x42); db(0xad); db(0x00); db(0x00); db(0x22); db(0x2d); db(0x00); db(0x04);
+ db(0x67); db(0x00); db(0xff); db(0x8a); db(0x22); db(0x41); db(0x4e); db(0xae);
+ db(0xff); db(0x2e); db(0x60); db(0x00); db(0xff); db(0x80); db(0x39); db(0x7c);
+ db(0x00); db(0x02); db(0x00); db(0x1c); db(0x41); db(0xed); db(0x00); db(0x2c);
+ db(0x42); db(0x90); db(0x42); db(0xa8); db(0x00); db(0x04); db(0x42); db(0x2c);
+ db(0x00); db(0x1f); db(0x42); db(0xac); db(0x00); db(0x2c); db(0x42); db(0xac);
+ db(0x00); db(0x30); db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x08);
+ db(0x29); db(0x40); db(0x00); db(0x24); db(0x22); db(0x4c); db(0x4e); db(0xae);
+ db(0xfe); db(0x38); db(0x0c); db(0xad); db(0x46); db(0x4f); db(0x52); db(0x4d);
+ db(0x00); db(0x2c); db(0x66); db(0x52); db(0x20); db(0x2d); db(0x00); db(0x30);
+ db(0x67); db(0x4c); db(0x6b); db(0x4a); db(0x2b); db(0x6c); db(0x00); db(0x30);
+ db(0x00); db(0x10); db(0x50); db(0x80); db(0x24); db(0x00); db(0x72); db(0x01);
+ db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x36);
+ db(0x24); db(0x40); db(0x20); db(0x4a); db(0x20); db(0xed); db(0x00); db(0x2c);
+ db(0x20); db(0xed); db(0x00); db(0x30); db(0x29); db(0x48); db(0x00); db(0x28);
+ db(0x20); db(0x02); db(0x51); db(0x80); db(0x29); db(0x40); db(0x00); db(0x24);
+ db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x30); db(0x3c);
+ db(0xff); db(0x38); db(0x72); db(0x0b); db(0x61); db(0x00); db(0xf7); db(0xc2);
+ db(0x20); db(0x2c); db(0x00); db(0x20); db(0x4e); db(0x90); db(0x22); db(0x4a);
+ db(0x20); db(0x02); db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x4a); db(0xac);
+ db(0x00); db(0x20); db(0x67); db(0x00); db(0xfe); db(0xf0); db(0x41); db(0xed);
+ db(0x00); db(0x2c); db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x01);
+ db(0x29); db(0x40); db(0x00); db(0x24); db(0x42); db(0xac); db(0x00); db(0x20);
+ db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x60); db(0xde);
+ db(0x41); db(0xe8); db(0xff); db(0xe8); db(0x20); db(0x29); db(0x00); db(0x08);
+ db(0xb0); db(0xa8); db(0x00); db(0x10); db(0x67); db(0x1a); db(0x21); db(0x40);
+ db(0x00); db(0x10); db(0x2f); db(0x0e); db(0x2c); db(0x68); db(0x00); db(0x14);
+ db(0x22); db(0x68); db(0x00); db(0x08); db(0x70); db(0x00); db(0x08); db(0xc0);
+ db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xbc); db(0x2c); db(0x5f);
+ db(0x70); db(0x00); db(0x4e); db(0x75); db(0x69); db(0x6e); db(0x70); db(0x75);
+ db(0x74); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65);
+ db(0x00); db(0x74); db(0x69); db(0x6d); db(0x65); db(0x72); db(0x2e); db(0x64);
+ db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x63); db(0x6c);
+ db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64); db(0x2e);
+ db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x55);
+ db(0x41); db(0x45); db(0x20); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62);
+ db(0x6f); db(0x61); db(0x72); db(0x64); db(0x20); db(0x73); db(0x68); db(0x61);
+ db(0x72); db(0x69); db(0x6e); db(0x67); db(0x00); db(0x55); db(0x41); db(0x45);
+ db(0x20); db(0x6d); db(0x6f); db(0x75); db(0x73); db(0x65); db(0x20); db(0x64);
+ db(0x72); db(0x69); db(0x76); db(0x65); db(0x72); db(0x00); db(0x55); db(0x41);
+ db(0x45); db(0x20); db(0x66); db(0x69); db(0x6c); db(0x65); db(0x73); db(0x79);
+ db(0x73); db(0x74); db(0x65); db(0x6d); db(0x00); db(0x55); db(0x41); db(0x45);
+ db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74); db(0x6f);
+ db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x65); db(0x72); db(0x00);
+ db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); db(0x20); db(0x61);
+ db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74);
+ db(0x20); db(0x70); db(0x72); db(0x6f); db(0x63); db(0x65); db(0x73); db(0x73);
+ db(0x00); db(0x64); db(0x6f); db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62);
+ db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x69); db(0x6e); db(0x74);
+ db(0x75); db(0x69); db(0x74); db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c);
+ db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x67);
+ db(0x72); db(0x61); db(0x70); db(0x68); db(0x69); db(0x63); db(0x73); db(0x2e);
+ db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00);
+ db(0x65); db(0x78); db(0x70); db(0x61); db(0x6e); db(0x73); db(0x69); db(0x6f);
+ db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72);
+ db(0x79); db(0x00); db(0x46); db(0x69); db(0x6c); db(0x65); db(0x53); db(0x79);
+ db(0x73); db(0x74); db(0x65); db(0x6d); db(0x2e); db(0x72); db(0x65); db(0x73);
+ db(0x6f); db(0x75); db(0x72); db(0x63); db(0x65); db(0x00); db(0x00); db(0x00);
+ db(0x00); db(0x00); db(0x03); db(0xf2);
 
diff --git a/include/clipboard.h b/include/clipboard.h
new file mode 100644 (file)
index 0000000..db94cef
--- /dev/null
@@ -0,0 +1,8 @@
+
+extern void amiga_clipboard_want_data (void);
+extern void amiga_clipboard_got_data (uaecptr data, uae_u32 size, uae_u32 actual);
+extern void amiga_clipboard_init (void);
+extern uaecptr amiga_clipboard_proc_start (void);
+extern void amiga_clipboard_task_start (uaecptr);
+
+extern void clipboard_vsync (void);
\ No newline at end of file
index 99f8ac5e588aa70b294bfe363055a68f02f866e2..3479a964b689e9c45bd338255c5ea6dd99e21f05 100644 (file)
@@ -16,6 +16,7 @@ extern int debugging;
 extern int exception_debugging;
 extern int debug_copper;
 extern int debug_sprite_mask;
+extern int debug_bpl_mask, debug_bpl_mask_one;
 extern int debugger_active;
 
 extern void debug(void);
index 31ca6f8542b168862a875c5133a277ccc7f5b0ba..1d8469381280a977e88dd6123efb320333e9f3ed 100644 (file)
   * and some of it needs thread support.
   */
 
-/*
- * The following functions do exactly the same thing as their
- * Amiga counterpart, but can be called in situation where calling
- * the exec.library functions is impossible.
- */
-#ifdef SUPPORT_THREADS
-void uae_Cause(uaecptr interrupt);
-void uae_ReplyMsg(uaecptr msg);
-void uae_PutMsg(uaecptr port, uaecptr msg);
-void uae_Signal(uaecptr task, uae_u32 mask);
-void uae_NotificationHack(uaecptr, uaecptr);
-#endif
-void uae_NewList(uaecptr list);
+#include "native2amiga_api.h"
+
+#include "traps.h"
 
 /*
  * The following functions are shortcuts for calling
diff --git a/include/native2amiga_api.h b/include/native2amiga_api.h
new file mode 100644 (file)
index 0000000..1a243ba
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * The following functions do exactly the same thing as their
+ * Amiga counterpart, but can be called in situation where calling
+ * the exec.library functions is impossible.
+ */
+#ifdef SUPPORT_THREADS
+void uae_Cause(uaecptr interrupt);
+void uae_ReplyMsg(uaecptr msg);
+void uae_PutMsg(uaecptr port, uaecptr msg);
+void uae_Signal(uaecptr task, uae_u32 mask);
+void uae_NotificationHack(uaecptr, uaecptr);
+#endif
+void uae_NewList(uaecptr list);
index d829ea15b008f0f16088fa4e367c9273cb393c7c..84f13495f4022a7788dda9401d28c6be62b79164 100644 (file)
@@ -21,6 +21,7 @@ extern void uae_reset (int);
 extern void uae_quit (void);
 extern void uae_restart (int, char*);
 extern void reset_all_systems (void);
+extern void target_reset (void);
 
 extern int quit_program;
 
index 47ba7f8442b6ef65852eb00e21f74efdd2917a30..5486369258cb03ec8d96e61c0e4b43df78fd3b57 100644 (file)
--- a/missing.c
+++ b/missing.c
@@ -37,5 +37,6 @@ void *xcalloc (size_t n, size_t size)
 
 void xfree (void *p)
 {
+
     free (p);
 }
index f7dc73fa0d75c2c2f960cca9bca1424c60dc83cc..d9ff13752fa8cecb7e825c4b3d8ba4f25db4a004 100644 (file)
@@ -552,6 +552,7 @@ uae_u32 REGPARAM2 ahi_demux (TrapContext *context)
        return 1;
 
        case 10:
+#if 0
            if (OpenClipboard (0)) {
                clipdat = GetClipboardData (CF_TEXT);
                if (clipdat) {
@@ -560,19 +561,23 @@ uae_u32 REGPARAM2 ahi_demux (TrapContext *context)
                    return clipsize;
                }
            }
-       return 0;
+#endif
+           return 0;
 
        case 11:
        {
+#if 0
            int i;
            for (i = 0; i < clipsize; i++)
                put_byte (m68k_areg (&context->regs, 0) + i, clipdat[i]);
            CloseClipboard ();
+#endif
        }
        return 0;
 
        case 12:
        {
+#if 0
            uae_u8 *addr = get_real_address (m68k_areg (&regs, 0));
            static LPTSTR p;
            int slen;
@@ -595,6 +600,7 @@ uae_u32 REGPARAM2 ahi_demux (TrapContext *context)
                }
                CloseClipboard ();
            }
+#endif
        }
        return 0;
 
diff --git a/od-win32/clipboard.c b/od-win32/clipboard.c
deleted file mode 100644 (file)
index 92648df..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-
-#include "sysconfig.h"
-#include "sysdeps.h"
-
-#include <stdlib.h>
-#include <stdarg.h>
-
-#include <windows.h>
-
-#include "clipboard.h"
-
-static HWND chwnd;
-
-void clipboard_init (HWND hwnd)
-{
-    chwnd = hwnd;
-}
-
-void clipboard_changed (HWND hwnd)
-{
-    HGLOBAL hglb;
-    
-    if (!IsClipboardFormatAvailable (CF_TEXT)) 
-       return;
-    if (!OpenClipboard (hwnd))
-       return;
-    hglb = GetClipboardData (CF_TEXT); 
-    if (hglb != NULL) { 
-       char *lptstr = GlobalLock (hglb); 
-       if (lptstr != NULL) {
-           GlobalUnlock (hglb);
-       }
-    }
-     CloseClipboard ();
-}
-
-int clipboard_put_text (const char *txt)
-{
-    HGLOBAL hglb;
-    int ret = FALSE;
-
-    if (!OpenClipboard (chwnd)) 
-       return ret; 
-    EmptyClipboard (); 
-    hglb = GlobalAlloc (GMEM_MOVEABLE, strlen (txt) + 1);
-    if (hglb) {
-       char *lptstr = GlobalLock (hglb);
-       strcpy (lptstr, txt);
-       GlobalUnlock (hglb);
-       SetClipboardData (CF_TEXT, hglb); 
-       ret = TRUE;
-    }
-    CloseClipboard ();
-    return ret;
-}
diff --git a/od-win32/clipboard_win32.c b/od-win32/clipboard_win32.c
new file mode 100644 (file)
index 0000000..5e7efc8
--- /dev/null
@@ -0,0 +1,261 @@
+
+#include "sysconfig.h"
+#include "sysdeps.h"
+
+#include <stdlib.h>
+#include <stdarg.h>
+
+#include <windows.h>
+
+#include "clipboard_win32.h"
+#include "clipboard.h"
+
+#include "memory.h"
+#include "native2amiga_api.h"
+
+static HWND chwnd;
+static uaecptr clipboard_data;
+static int vdelay, signaling;
+static uae_u8 *to_amiga;
+static uae_u32 to_amiga_size;
+static int clipopen;
+
+void clipboard_vsync (void)
+{
+    uaecptr task;
+    if (!signaling || !clipboard_data)
+       return;
+    vdelay--;
+    if (vdelay > 0)
+       return;
+    task = get_long (clipboard_data + 8);
+    if (task)
+       uae_Signal (task, 1 << 13);
+    vdelay = 50;
+}
+
+void clipboard_reset (void)
+{
+    vdelay = 100;
+    clipboard_data = 0;
+    signaling = 0;
+    xfree (to_amiga);
+    to_amiga = NULL;
+    to_amiga_size = 0;
+}
+
+void clipboard_init (HWND hwnd)
+{
+    chwnd = hwnd;
+}
+
+static void to_amiga_start (void)
+{
+    if (!clipboard_data)
+       return;
+    put_long (clipboard_data, to_amiga_size);
+    uae_Signal (get_long (clipboard_data + 8), 1 << 13);
+}
+
+static char *pctoamiga (const char *txt)
+{
+    int len;
+    char *txt2;
+    int i, j;
+
+    len = strlen (txt) + 1;
+    txt2 = xmalloc (len);
+    j = 0;
+    for (i = 0; i < len; i++) {
+       char c = txt[i];
+       if (c == 13)
+           continue;
+       txt2[j++] = c;
+    }
+    return txt2;
+}
+static char *amigatopc (const char *txt)
+{
+    int i, j, cnt;
+    int len, pc;
+    char *txt2;
+
+    pc = 0;
+    cnt = 0;
+    len = strlen (txt) + 1;
+    for (i = 0; i < len; i++) {
+       char c = txt[i];
+       if (c == 13)
+           pc = 1;
+       if (c == 10)
+           cnt++;
+    }
+    if (pc)
+        return my_strdup (txt);
+    txt2 = xmalloc (len + cnt);
+    j = 0;
+    for (i = 0; i < len; i++) {
+       char c = txt[i];
+       if (c == 0 && i + 1 < len)
+           continue;
+       if (c == 10)
+           txt2[j++] = 13;
+       txt2[j++] = c;
+    }
+    return txt2;
+}
+
+
+static void to_iff_text (char *pctxt)
+{
+    uae_u8 b[] = { 'F','O','R','M',0,0,0,0,'F','T','X','T','C','H','R','S',0,0,0,0 };
+    uae_u32 size;
+    int txtlen;
+    char *txt;
+    
+    txt = pctoamiga (pctxt);
+    txtlen = strlen (txt);
+    xfree (to_amiga);
+    size = txtlen + sizeof b + (txtlen & 1) - 8;
+    b[4] = size >> 24;
+    b[5] = size >> 16;
+    b[6] = size >>  8;
+    b[7] = size >>  0;
+    size = txtlen;
+    b[16] = size >> 24;
+    b[17] = size >> 16;
+    b[18] = size >>  8;
+    b[19] = size >>  0;
+    to_amiga_size = sizeof b + txtlen + (txtlen & 1);
+    to_amiga = xcalloc (to_amiga_size, 1);
+    memcpy (to_amiga, b, sizeof b);
+    memcpy (to_amiga + sizeof b, txt, strlen (txt));
+    to_amiga_start ();
+    xfree (txt);
+}
+
+static void from_iff_text (uaecptr ftxt, uae_u32 len)
+{
+    uae_u32 size;
+    uae_u8 *addr;
+    char *txt, *pctxt;
+
+    if (len < 18)
+       return;
+    if (!valid_address (ftxt, len))
+       return;
+    addr = get_real_address (ftxt);
+    if (memcmp ("FORM", addr, 4))
+       return;
+    if (memcmp ("FTXTCHRS", addr + 8, 8))
+       return;
+    size = (addr[16] << 24) | (addr[17] << 16) | (addr[18] << 8) | (addr[19] << 0);
+    if (size >= len)
+       return;
+    txt = xcalloc (size + 1, 1);
+    if (!txt)
+       return;
+    memcpy (txt, addr + 20, size);
+    pctxt = amigatopc (txt);
+    clipboard_put_text (pctxt);
+    xfree (pctxt);
+    xfree (txt);
+}
+
+void clipboard_changed (HWND hwnd)
+{
+    HGLOBAL hglb;
+    UINT f;
+    int text = FALSE;
+    
+    if (!clipboard_data)
+       return;
+    if (clipopen)
+       return;
+    if (!OpenClipboard (hwnd))
+       return;
+    f = 0;
+    write_log ("clipboard: windows clipboard change: ");
+    while (f = EnumClipboardFormats (f)) {
+       write_log ("%d ", f);
+       if (f == CF_TEXT)
+           text = TRUE;
+    }
+    write_log ("\n");
+    if (text) {
+       hglb = GetClipboardData (CF_TEXT); 
+       if (hglb != NULL) { 
+           char *lptstr = GlobalLock (hglb); 
+           if (lptstr != NULL) {
+               to_iff_text (lptstr);
+               GlobalUnlock (hglb);
+           }
+       }
+    }
+    CloseClipboard ();
+}
+
+int clipboard_put_text (const char *txt)
+{
+    HGLOBAL hglb;
+    int ret = FALSE;
+
+    if (!OpenClipboard (chwnd)) 
+       return ret;
+    clipopen++;
+    EmptyClipboard (); 
+    hglb = GlobalAlloc (GMEM_MOVEABLE, strlen (txt) + 1);
+    if (hglb) {
+       char *lptstr = GlobalLock (hglb);
+       strcpy (lptstr, txt);
+       GlobalUnlock (hglb);
+       SetClipboardData (CF_TEXT, hglb); 
+       ret = TRUE;
+    }
+    CloseClipboard ();
+    clipopen--;
+    write_log ("clipboard: writing to windows clipboard\n");
+    return ret;
+}
+
+void amiga_clipboard_init (void)
+{
+    signaling = 0;
+    write_log ("clipboard active\n");
+}
+
+void amiga_clipboard_task_start (uaecptr data)
+{
+    clipboard_data = data;
+    signaling = 1;
+    write_log ("clipboard task init: %08x\n", data);
+}
+
+uae_u32 amiga_clipboard_proc_start (void)
+{
+    write_log ("clipboard process init\n");
+    signaling = 1;
+    return clipboard_data;
+}
+
+void amiga_clipboard_got_data (uaecptr data, uae_u32 size, uae_u32 actual)
+{
+    uae_u8 *addr = get_real_address (data);
+    write_log ("clipboard: <-amiga, %08x %d %d\n", data, size, actual);
+    from_iff_text (data, actual);
+}
+
+void amiga_clipboard_want_data (void)
+{
+    uae_u32 addr;
+
+    addr = get_long (clipboard_data + 4);
+    if (addr) {
+       uae_u8 *raddr = get_real_address (addr);
+       memcpy (raddr, to_amiga, to_amiga_size);
+    }
+    xfree (to_amiga);
+    write_log ("clipboard: ->amiga, %08x %d bytes\n", addr, to_amiga_size);
+    to_amiga = NULL;
+    to_amiga_size = 0;
+}
similarity index 78%
rename from od-win32/clipboard.h
rename to od-win32/clipboard_win32.h
index 9006605da0b2c98475339146f39a9381be85cede..fd14b1656799c3b01c1873815ed53c675895e317 100644 (file)
@@ -2,4 +2,4 @@
 extern void clipboard_init (HWND hwnd);
 extern void clipboard_changed (HWND);
 extern int clipboard_put_text (const char *txt);
-
+extern void clipboard_reset (void);
\ No newline at end of file
index 9960c664736977985b9334a404dacf0ffa101dd5..be6b9efd23646e7790a30bee9e1d60f508f4e928 100644 (file)
@@ -7,7 +7,7 @@
          : License version 2 as published by the Free Software Foundation.
  Authors : os, mcb
  Created : 2007-08-27 13:55:49
- Updated : 2008-05-28 18:50:10
+ Updated : 2008-12-19 12:38:00
  Comment : RP Player interprocess communication include file
  *****************************************************************************/
 
@@ -70,6 +70,7 @@
 #define RPIPCHM_MOUSECAPTURE   (WM_APP + 212)
 #define RPIPCHM_SAVESTATE      (WM_APP + 213)
 #define RPIPCHM_LOADSTATE      (WM_APP + 214)
+#define RPIPCHM_FLUSH          (WM_APP + 215)
 
 
 // ****************************************************************************
@@ -88,6 +89,7 @@
 #define RP_FEATURE_TURBO         0x00000100 // turbo mode functionality is available (see RPIPCHM_TURBO message)
 #define RP_FEATURE_VOLUME        0x00000200 // volume adjustment is possible (see RPIPCHM_VOLUME message)
 #define RP_FEATURE_STATE         0x00000400 // loading and saving of emulation state is supported (see RPIPCHM_SAVESTATE/RPIPCHM_LOADSTATE message)
+#define RP_FEATURE_SCANLINES     0x00000800 // scan lines video effect is available
 
 // Screen Modes
 #define RP_SCREENMODE_1X            0x00000000 // 1x window or full-screen mode ("CGA mode")
 #define RP_SCREENMODE_3X            0x00000002 // 3x window or full-screen mode ("triple CGA mode")
 #define RP_SCREENMODE_4X            0x00000003 // 4x window or full-screen mode ("double VGA mode")
 #define RP_SCREENMODE_XX            0x000000FF // autoset maximum nX (integer n, preserve ratio)
+#define RP_SCREENMODE_MODEMASK      0x000000FF
 #define RP_SCREENMODE_FULLSCREEN_1     0x00000100 // full screen on primary (default) display
 #define RP_SCREENMODE_FULLSCREEN_2     0x00000200 // full screen on secondary display (fallback to 1 if unavailable)
+#define RP_SCREENMODE_DISPLAYMASK      0x0000FF00
 #define RP_SCREENMODE_FULLWINDOW       0x00010000 // use "full window" when in fullscreen (no gfx card full screen)
-#define RP_SCREENMODE_MODE(m)       ((m) & 0x000000FF) // given a mode 'm' returns the #X mode
-#define RP_SCREENMODE_DISPLAY(m)    (((m) >> 8) & 0x000000FF) // given a mode 'm' returns the display number (1-255) or 0 if full screen is not active
+#define RP_SCREENMODE_USETVM_NEVER  0x00000000 // never use TV modes
+#define RP_SCREENMODE_USETVM_ALWAYS 0x00020000 // always use TV modes
+#define RP_SCREENMODE_USETVM_AUTO   0x00040000 // use all available modes
+#define RP_SCREENMODE_USETVMMASK    0x00060000
+#define RP_SCREENMODE_SCANLINES     0x00080000 // show video scan lines
+#define RP_SCREENMODE_DISPLAY(m)    (((m) & RP_SCREENMODE_DISPLAYMASK) >> 8) // given a mode 'm' returns the display number (1-255) or 0 if full screen is not active
+#define RP_SCREENMODE_USETVM(m)     ((m) & RP_SCREENMODE_USETVMMASK) // given a mode 'm' returns the RP_SCREENMODE_USETVM_* value in it (automatic display mode selection in full screen modes)
+#define RP_SCREENMODE_MODE(m)       ((m) & RP_SCREENMODE_MODEMASK) // given a mode 'm' returns the #X mode
 
 typedef struct RPScreenMode
 {
@@ -135,9 +145,9 @@ typedef struct RPDeviceContent
 #define RP_IPD_MOUSE2    L"Mouse2" // second mouse type (e.g. Mouse for WinUAE)
 #define RP_IPD_MOUSE3    L"Mouse3" // third mouse type (e.g. Mousehack Mouse for WinUAE)
 #define RP_IPD_MOUSE4    L"Mouse4" // fourth mouse type (e.g. RAW Mouse for WinUAE)
-#define RP_IPD_JOYSTICK1 L"Joystick1" // first joystick type (e.g. standard joystick for WinUAE, described as "Joystick1\ProductGUID\ProductName")
-#define RP_IPD_JOYSTICK2 L"Joystick2" // second joystick type (e.g. X-Arcade (Left) joystick for WinUAE, described as "Joystick2\ProductGUID\ProductName")
-#define RP_IPD_JOYSTICK3 L"Joystick3" // third joystick type (e.g. X-Arcade (Right) joystick for WinUAE, described as "Joystick3\ProductGUID\ProductName")
+#define RP_IPD_JOYSTICK1 L"Joystick1" // first joystick type (e.g. standard joystick for WinUAE, described as "Joystick1\ProductGUID InstanceGUID\ProductName")
+#define RP_IPD_JOYSTICK2 L"Joystick2" // second joystick type (e.g. X-Arcade (Left) joystick for WinUAE, described as "Joystick2\ProductGUID InstanceGUID\ProductName")
+#define RP_IPD_JOYSTICK3 L"Joystick3" // third joystick type (e.g. X-Arcade (Right) joystick for WinUAE, described as "Joystick3\ProductGUID InstanceGUID\ProductName")
 #define RP_IPD_KEYBDL1   L"KeyboardLayout1" // first joystick emulation keyboard layout (e.g. Keyboard Layout A for WinUAE)
 #define RP_IPD_KEYBDL2   L"KeyboardLayout2" // second joystick emulation keyboard layout (e.g. Keyboard Layout B for WinUAE)
 #define RP_IPD_KEYBDL3   L"KeyboardLayout3" // third joystick emulation keyboard layout (e.g. Keyboard Layout C for WinUAE)
@@ -156,7 +166,9 @@ typedef struct RPDeviceContent
 #define RP_MOUSECAPTURE_MAGICMOUSE   0x00000002
 
 // RPIPCGM_DEVICEACTIVITY
-#define RP_DEVICEACTIVITY_READ     0x0000 // the device activity is about a read operation
-#define RP_DEVICEACTIVITY_WRITE    0x0001 // the device activity is about a write operation
+#define RP_DEVICEACTIVITY_GREEN    0x0000 // green led
+#define RP_DEVICEACTIVITY_RED      0x0001 // red led
+#define RP_DEVICEACTIVITY_READ     RP_DEVICEACTIVITY_GREEN // the device activity is about a read operation
+#define RP_DEVICEACTIVITY_WRITE    RP_DEVICEACTIVITY_RED   // the device activity is about a write operation
 
 #endif // __CLOANTO_RETROPLATFORMIPC_H__
index 2dd40de6368c3bb96787e57e5fe775c50be35db1..823db4141d7357ed0de457450980761e9f5fb1b0 100644 (file)
@@ -1,4 +1,17 @@
-Reference for RetroPlatformIPC.h (RP Player interprocess communication include file)
+/*****************************************************************************
+ Name    : RetroPlatformIPC_doc.txt
+ Project : RPSampleGuest
+ Client  : Cloanto Italia srl
+ Legal   : CONFIDENTIAL TRADE SECRET PROPERTY OF CLOANTO ITALIA SRL
+         : Copyright Â© Cloanto Italia srl 2007-2008.
+         : All rights reserved, except where licensed,
+         : assigned or transferred by contract.
+ Authors : os, mcb
+ Created : 2007-08-23 10:08:25
+ Comment : Reference for RetroPlatformIPC.h (RP Player interprocess communication include file)
+ *****************************************************************************/
+
+
 
 
 ****************************************************************************
@@ -42,7 +55,10 @@ Response:
 Message:
    RPIPCGM_CLOSED
 Description:
-   this message is sent to the host when the guest is terminating
+   this message is sent to the host when the guest is terminating;
+   the RPPostMessage() function (instead of RPSendMessage()) should be used
+   to send this message, since the host may wait for the guest process to terminate
+   when RPIPCGM_CLOSED is received
 Data sent:
    none
 Response:
@@ -157,14 +173,14 @@ Data sent:
             e.g. MAKEWORD(RP_DEVICE_FLOPPY, 0);
             the RP_ALL_DEVICES define may be used as device number
             to turn on or off all the activity leds for a device category
-   LPARAM = led status and flags combined with the MAKEWORD macro;
-            e.g. MAKEWORD(Status, Flags);
+   LPARAM = led status and flags combined with the MAKELONG macro;
+            e.g. MAKELONG(Status, Flags);
             the Status value can be set to 0 to turn off the activity LED,
-            or set to -1 to turn on the activity LED,
-            or set to a <millisecond delay> value to turn on the activity LED
+            to -1 to turn on the activity LED,
+            or to a <millisecond delay> value to turn on the activity LED
             for the specified amount of time (blink);
             the Flags value can be set
-            using one of the RP_DEVICEACTIVITY_* defines
+            using one or more of the RP_DEVICEACTIVITY_* defines
 Response:
    none
 
@@ -427,7 +443,7 @@ Data sent:
            contains an empty string, the guest should
            unload the current content from the device;
            for joysticks, szContent may contain multiple identifiers
-           using the "Joystick1\ProductGUID\ProductName" format
+           using the "Joystick1\ProductGUID InstanceGUID\ProductName" format
            (ProductName is last and may contain unescaped backslash
            characters itself)
 Response:
@@ -537,3 +553,15 @@ Data sent:
    pData = (Unicode) full path and name of the file to load
 Response:
    LRESULT = 1 if the guest successfully loaded the status file or 0 otherwise
+
+
+Message:
+   RPIPCHM_FLUSH
+Description:
+   the host sends the RPIPCHM_FLUSH command to ask the guest
+   to flush any change applied to the emulated media
+   and update the corresponding image files
+Data sent:
+   none
+Response:
+   LRESULT = 1 if the guest successfully executed the command or 0 otherwise
index 5bdd3866654b45a583f76c511378df39bc0c421b..1cfb3c11ba4a37595f235726103116aafc6432d1 100644 (file)
@@ -690,6 +690,7 @@ void picasso_handle_vsync (void)
     rp_vsync ();
 #endif
 
+    clipboard_vsync ();
     if (!picasso_on)
        createwindowscursor (0, 0, 0, 0, 0, 1);
 
index e62d0a2e1d00cea29fdc11092f6a41d8058324de..64b53e95e1f1410248f5a45111305be4848e2fd0 100644 (file)
@@ -116,7 +116,7 @@ BEGIN
     PUSHBUTTON      "Reset to defaults",IDC_DA_RESET,212,218,73,14\r
     RTEXT           "Resolution:",IDC_STATIC,27,152,59,15,SS_CENTERIMAGE\r
     COMBOBOX        IDC_LORES,100,152,102,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    CONTROL         "Flickerfixer",IDC_FLICKERFIXER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,139,89,10\r
+    CONTROL         "Remove interlace artifacts",IDC_FLICKERFIXER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,139,99,10\r
 END\r
 \r
 IDD_MEMORY DIALOGEX 0, 0, 300, 239\r
index 514513bcfa32d925099a3993be3dff753938bf80..b432feec3a551189c04922fec2dc0f2403cdb071 100644 (file)
@@ -691,7 +691,7 @@ void rp_free (void)
     if (hwndset)
        rp_set_hwnd (NULL);
     initialized = 0;
-    RPSendMessagex (RPIPCGM_CLOSED, 0, 0, NULL, 0, &guestinfo, NULL);
+    RPPostMessagex (RPIPCGM_CLOSED, 0, 0, &guestinfo);
     RPUninitializeGuest (&guestinfo);
 }
 
index bc8423d448e08229061b6a00464f594748dc9cc1..b59021f1f3ca4b6ebd05da137a9378ca84a53236 100644 (file)
@@ -1,7 +1,7 @@
 cd c:\projects\winuae_bak
 rm -rf bak
 mkdir bak
-cp -r c:\projects\winuae\src\. c:\projects\winuae_bak\bak\
+copy c:\projects\winuae\src\ c:\projects\winuae_bak\bak\ /s
 copy d:\amiga\text\winuaechangelog.txt c:\projects\winuae_bak\bak\od-win32
 
 cd bak
@@ -107,12 +107,12 @@ cd ..
 
 cd ..
 
-#zip -9 -r winuaesrc *
+zip -9 -r winuaesrc *
 
-#copy winuaesrc.zip d:\amiga\winuaepackets\winuaesrc%1.zip
-#move winuaesrc.zip d:\amiga
-#cd c:\projects\winuae\src\od-win32
-#zip -9 winuaedebug%1 winuae_msvc\release\winuae.pdb winuae_msvc\fullrelease\winuae.pdb
-#move winuaedebug%1.zip d:\amiga\winuaepackets\
-#copy winuae_msvc\fullrelease\winuae.pdb d:\amiga\dump
-#copy d:\amiga\winuae.exe d:\amiga\dump
+copy winuaesrc.zip d:\amiga\winuaepackets\winuaesrc%1.zip
+move winuaesrc.zip d:\amiga
+cd c:\projects\winuae\src\od-win32
+zip -9 winuaedebug%1 winuae_msvc\release\winuae.pdb winuae_msvc\fullrelease\winuae.pdb
+move winuaedebug%1.zip d:\amiga\winuaepackets\
+copy winuae_msvc\fullrelease\winuae.pdb d:\amiga\dump
+copy d:\amiga\winuae.exe d:\amiga\dump
index 911b63a19bd3f720c12129273afd2656a4c571ec..ae71e75e208f5446ed2b085b8f18413b305d6325 100644 (file)
@@ -78,7 +78,7 @@
 #include "akiko.h"
 #include "cdtv.h"
 #include "direct3d.h"
-#include "clipboard.h"
+#include "clipboard_win32.h"
 #ifdef RETROPLATFORM
 #include "rp.h"
 #endif
@@ -4157,6 +4157,11 @@ int get_guid_target (uae_u8 *out)
     return 1;
 }
 
+void target_reset (void)
+{
+    clipboard_reset ();
+}
+
 typedef BOOL (CALLBACK* SETPROCESSDPIAWARE)(void);
 typedef BOOL (CALLBACK* CHANGEWINDOWMESSAGEFILTER)(UINT, DWORD);
 
index a2a389f956d63fa37b2b05b57503d2a055fa791e..122f1a22ea972139aaff85e0ffeb4ed1954d2fb9 100644 (file)
@@ -17,8 +17,8 @@
 
 #define WINUAEPUBLICBETA 1
 
-#define WINUAEBETA "8"
-#define WINUAEDATE MAKEBD(2009, 1, 11)
+#define WINUAEBETA "9"
+#define WINUAEDATE MAKEBD(2009, 1, 21)
 #define WINUAEEXTRA ""
 #define WINUAEREV ""
 
index 886052c89b0734343d459b3007437700fb0e3a69..9f70caafd4fd42dc70c6f6170b1210a4e4fe6c96 100644 (file)
@@ -158,6 +158,31 @@ static void ew (HWND hDlg, DWORD id, int enable)
     EnableWindow (w, !!enable);
 }
 
+static char *ua (const WCHAR *s)
+{
+    char *d;
+    int len;
+
+    if (s == NULL)
+       return NULL;
+    len = WideCharToMultiByte (CP_ACP, 0, s, -1, NULL, 0, 0, FALSE);
+    if (!len)
+       return my_strdup ("");
+    d = xmalloc (len + 1);
+    WideCharToMultiByte (CP_ACP, 0, s, -1, d, len, 0, FALSE);
+    return d;
+}
+static WCHAR *au (const char *s)
+{
+    WCHAR *d;
+    int len = MultiByteToWideChar (CP_ACP, MB_PRECOMPOSED, s, -1, NULL, 0);
+    if (!len)
+       return xcalloc (2, 1);
+    d = xmalloc ((len + 1) * sizeof (WCHAR));
+    MultiByteToWideChar (CP_ACP, MB_PRECOMPOSED, s, -1, d, len);
+    return d;
+}
+
 void write_disk_history (void)
 {
     int i, j;
@@ -293,16 +318,6 @@ static int getcbn (HWND hDlg, int v, char *out, int len)
     }
 }
 
-static WCHAR *au (const char *s)
-{
-    WCHAR *d;
-    int len = MultiByteToWideChar (CP_ACP, MB_PRECOMPOSED, s, -1, NULL, 0);
-    if (!len)
-       return xcalloc (2, 1);
-    d = xmalloc ((len + 1) * sizeof (WCHAR));
-    MultiByteToWideChar (CP_ACP, MB_PRECOMPOSED, s, -1, d, len);
-    return d;
-}
 #define MAXFAVORITES 30
 static void writefavoritepaths (int num, char **values, char **paths)
 {
@@ -1291,48 +1306,32 @@ static void gui_to_prefs (void)
 
     updatewinfsmode (&changed_prefs);
 }
-#if 0
-static BOOL GetNewFileName (OPENFILENAME *opn, int save)
-{  
-    IFileDialog *pfd;
-    HRESULT hr;
-
-    // CoCreate the dialog object.
-    hr = CoCreateInstance(CLSID_FileOpenDialog, 
-           NULL, 
-            CLSCTX_INPROC_SERVER, 
-            IID_PPV_ARG(IFileDialog, &pfd));
-    if (SUCCEEDED(hr)) {
-        // Show the dialog
-        hr = pfd->Show(hwnd);
-        if (SUCCEEDED(hr)) {
-            // Obtain the result of the user's interaction with the dialog.
-            IShellItem *psiResult;
-            hr = pfd->GetResult(&psiResult);
-            if (SUCCEEDED(hr)) {
-                // Do something with the result.
-                psiResult->Release();
-            }
-        }
-        pfd->Release();
-    }
-    return SUCCEEDED(hr);
-}
-#endif
-static BOOL GetOpenFileName_2 (OPENFILENAME *opn)
-{
-    if (osVersion.dwMajorVersion < 6)
-       return GetOpenFileName (opn);
-    return GetOpenFileName (opn);
-}
-
-static BOOL GetSaveFileName_2 (OPENFILENAME *opn)
-{
-    if (osVersion.dwMajorVersion < 6)
-       return GetSaveFileName (opn);
-    return GetSaveFileName (opn);
-}
 
+typedef struct tagOFNX { 
+  DWORD         lStructSize; 
+  HWND          hwndOwner; 
+  HINSTANCE     hInstance; 
+  PWCHAR         lpstrFilter; 
+  PWCHAR         lpstrCustomFilter; 
+  DWORD         nMaxCustFilter; 
+  DWORD         nFilterIndex; 
+  PWCHAR        lpstrFile; 
+  DWORD         nMaxFile; 
+  PWCHAR        lpstrFileTitle; 
+  DWORD         nMaxFileTitle; 
+  PWCHAR       lpstrInitialDir; 
+  PWCHAR       lpstrTitle; 
+  DWORD         Flags; 
+  WORD          nFileOffset; 
+  WORD          nFileExtension; 
+  PWCHAR       lpstrDefExt; 
+  LPARAM        lCustData; 
+  LPOFNHOOKPROC lpfnHook; 
+  PWCHAR       lpTemplateName; 
+  void *        pvReserved;
+  DWORD         dwReserved;
+  DWORD         FlagsEx;
+} OPENFILENAMEX, *LPOPENFILENAMEX;
 
 // Common routine for popping up a file-requester
 // flag - 0 for floppy loading, 1 for floppy creation, 2 for loading hdf, 3 for saving hdf
@@ -1356,7 +1355,7 @@ int DiskSelection_2 (HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs
     char file_name[MAX_DPATH] = "";
     char init_path[MAX_DPATH] = "";
     BOOL result = FALSE;
-    char *amiga_path = NULL;
+    char *amiga_path = NULL, *initialdir = NULL, *defext = NULL;
     char description[CFG_DESCRIPTION_LENGTH] = "";
     char *p, *nextp;
     int all = 1;
@@ -1429,24 +1428,22 @@ int DiskSelection_2 (HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs
     openFileName.hwndOwner = hDlg;
     openFileName.hInstance = hInst;
 
+    szFilter[0] = 0;
+    szFilter[1] = 0;
     switch (flag) {
     case 0:
        WIN32GUI_LoadUIString (IDS_SELECTADF, szTitle, MAX_DPATH);
        WIN32GUI_LoadUIString (IDS_ADF, szFormat, MAX_DPATH);
        sprintf (szFilter, "%s ", szFormat);
        memcpy (szFilter + strlen (szFilter), DISK_FORMAT_STRING, sizeof (DISK_FORMAT_STRING) + 1);
-
-       openFileName.lpstrDefExt = "ADF";
-       openFileName.lpstrFilter = szFilter;
+       defext = "ADF";
        break;
     case 1:
        WIN32GUI_LoadUIString (IDS_CHOOSEBLANK, szTitle, MAX_DPATH);
        WIN32GUI_LoadUIString (IDS_ADF, szFormat, MAX_DPATH);
        sprintf (szFilter, "%s ", szFormat);
        memcpy (szFilter + strlen (szFilter), "(*.adf)\0*.adf\0", 15);
-
-       openFileName.lpstrDefExt = "ADF";
-       openFileName.lpstrFilter = szFilter;
+       defext = "ADF";
        break;
     case 2:
     case 3:
@@ -1454,9 +1451,7 @@ int DiskSelection_2 (HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs
        WIN32GUI_LoadUIString (IDS_HDF, szFormat, MAX_DPATH);
        sprintf (szFilter, "%s ", szFormat);
        memcpy (szFilter + strlen (szFilter),  HDF_FORMAT_STRING, sizeof (HDF_FORMAT_STRING) + 1);
-
-       openFileName.lpstrDefExt = "HDF";
-       openFileName.lpstrFilter = szFilter;
+       defext = "HDF";
        break;
     case 4:
     case 5:
@@ -1464,27 +1459,21 @@ int DiskSelection_2 (HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs
        WIN32GUI_LoadUIString (IDS_UAE, szFormat, MAX_DPATH );
        sprintf (szFilter, "%s ", szFormat);
        memcpy (szFilter + strlen (szFilter), "(*.uae)\0*.uae\0", 15);
-
-       openFileName.lpstrDefExt = "UAE";
-       openFileName.lpstrFilter = szFilter;
+       defext = "UAE";
        break;
     case 6:
        WIN32GUI_LoadUIString (IDS_SELECTROM, szTitle, MAX_DPATH);
        WIN32GUI_LoadUIString (IDS_ROM, szFormat, MAX_DPATH);
        sprintf (szFilter, "%s ", szFormat);
        memcpy (szFilter + strlen(szFilter), ROM_FORMAT_STRING, sizeof (ROM_FORMAT_STRING) + 1);
-
-       openFileName.lpstrDefExt = "ROM";
-       openFileName.lpstrFilter = szFilter;
+       defext = "ROM";
        break;
     case 7:
        WIN32GUI_LoadUIString (IDS_SELECTKEY, szTitle, MAX_DPATH);
        WIN32GUI_LoadUIString (IDS_KEY, szFormat, MAX_DPATH);
        sprintf (szFilter, "%s ", szFormat);
        memcpy (szFilter + strlen(szFilter), "(*.key)\0*.key\0", 15);
-
-       openFileName.lpstrDefExt = "KEY";
-       openFileName.lpstrFilter = szFilter;
+       defext = "KEY";
        break;
     case 15:
     case 16:
@@ -1492,9 +1481,7 @@ int DiskSelection_2 (HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs
        WIN32GUI_LoadUIString (IDS_INP, szFormat, MAX_DPATH);
        sprintf (szFilter, "%s ", szFormat);
        memcpy (szFilter + strlen(szFilter), INP_FORMAT_STRING, sizeof (INP_FORMAT_STRING) + 1);
-
-       openFileName.lpstrDefExt = "INP";
-       openFileName.lpstrFilter = szFilter;
+       defext = "IMP";
        break;
     case 9:
     case 10:
@@ -1532,47 +1519,32 @@ int DiskSelection_2 (HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs
            all = 0;
            filterindex = statefile_previousfilter;
        }
-       openFileName.lpstrDefExt = "USS";
-       openFileName.lpstrFilter = szFilter;
+       defext = "USS";
        break;
     case 11:
        WIN32GUI_LoadUIString (IDS_SELECTFLASH, szTitle, MAX_DPATH);
        WIN32GUI_LoadUIString (IDS_FLASH, szFormat, MAX_DPATH);
        sprintf (szFilter, "%s ", szFormat);
        memcpy (szFilter + strlen (szFilter), "(*.nvr)\0*.nvr\0", 15);
-
-       openFileName.lpstrDefExt = "NVR";
-       openFileName.lpstrFilter = szFilter;
+       defext = "NVR";
        break;
     case 8:
     default:
        WIN32GUI_LoadUIString (IDS_SELECTINFO, szTitle, MAX_DPATH);
-
-       openFileName.lpstrFilter = NULL;
-       openFileName.lpstrDefExt = NULL;
        break;
     case 12:
        WIN32GUI_LoadUIString (IDS_SELECTFS, szTitle, MAX_DPATH);
-
-       openFileName.lpstrFilter = NULL;
-       openFileName.lpstrDefExt = NULL;
-       openFileName.lpstrInitialDir = path_out;
+       initialdir = path_out;
        break;
     case 13:
        WIN32GUI_LoadUIString (IDS_SELECTINFO, szTitle, MAX_DPATH);
-
-       openFileName.lpstrFilter = NULL;
-       openFileName.lpstrDefExt = NULL;
-       openFileName.lpstrInitialDir = path_out;
+       initialdir = path_out;
        break;
     case 14:
        strcpy (szTitle, "Select supported archive file");
        sprintf (szFilter, "%s (%s)", "Archive", ARCHIVE_STRING);
        strcpy (szFilter + strlen (szFilter) + 1, ARCHIVE_STRING);
-
-       openFileName.lpstrFilter = NULL;
-       openFileName.lpstrFilter = szFilter;
-       openFileName.lpstrInitialDir = path_out;
+       initialdir = path_out;
        break;
     }
     if (all) {
@@ -1587,21 +1559,26 @@ int DiskSelection_2 (HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs
     }
     openFileName.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST |
        OFN_LONGNAMES | OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
+    openFileName.lpstrFilter = szFilter;
+    openFileName.lpstrDefExt = defext;
     openFileName.nFilterIndex = filterindex;
     openFileName.lpstrFile = full_path;
     openFileName.nMaxFile = MAX_DPATH;
     openFileName.lpstrFileTitle = file_name;
     openFileName.nMaxFileTitle = MAX_DPATH;
-    openFileName.lpstrInitialDir = init_path;
+    if (initialdir)
+       openFileName.lpstrInitialDir = initialdir;
+    else
+       openFileName.lpstrInitialDir = init_path;
     openFileName.lpstrTitle = szTitle;
 
     if (multi)
        openFileName.Flags |= OFN_ALLOWMULTISELECT;
     if (flag == 1 || flag == 3 || flag == 5 || flag == 9 || flag == 11 || flag == 16) {
-       if (!(result = GetSaveFileName_2 (&openFileName)))
+       if (!(result = GetSaveFileName (&openFileName)))
            write_log ("GetSaveFileName() failed, err=%d.\n", GetLastError());
     } else {
-       if (!(result = GetOpenFileName_2 (&openFileName)))
+       if (!(result = GetOpenFileName (&openFileName)))
            write_log ("GetOpenFileName() failed, err=%d.\n", GetLastError());
     }
     memcpy (full_path2, full_path, sizeof (full_path));
index 5ebbfad2350aa1cbe8e57b3552e24bb322b1d036..ab4ee6e4624872e7d2876bb63c7646f2f71c8e17 100644 (file)
                                >
                        </File>
                        <File
-                               RelativePath="..\clipboard.c"
+                               RelativePath="..\clipboard_win32.c"
                                >
                        </File>
                        <File
index a01cd4a360a0cc6e74085ec9b7288dcf549a7ab2..c9c7547356a9babfe9ef1919da82d2817ece63aa 100644 (file)
@@ -1,4 +1,21 @@
 
+Beta 9:
+
+- flickerfixer improved, also first and last line glitch fixed, sprite
+  positioning fixed. Now interlaced WB is rock solid.
+- "Flicker fixer" renamed to "Remove interlace artifacts" (it really
+  isn't same as flickerfixer or scandoubler)
+- led transparency removed, it read from display ram which caused huge
+  slow down
+- artifact removal broke autoscaling
+- am and sm debugger commands merged to single M<sub command> command
+- bitplane disable debugger command added, Mb <enabled planes>
+  [<if disabled plane, show it as all zeros or as all ones>]
+- automatic, transparent clipboard sharing! Data in Windows clipboard
+  is automatically copied to Amiga clipboard.device unit 0 and vice
+  versa. Only text-based content currently supported.
+- REPEAT NOTE: D3D/OGL filter is still broken. Do not use.
+
 Beta 8:
 
 - UAE boot rom was enabled when it should not have been (b7)
@@ -20,11 +37,10 @@ Beta 8:
   inserted.
 - removable drive insert/eject used unallocated signal bit, it did not
   cause problems but fixed now
-- experimental "flicker fixer" implemented. Works perfectly in WB, not
-  so perfect in games yet (and impossible to get perfect in all cases,
-  as usual..) No more interlace artifacts when any graphics object or
-  mouse pointer moves.
-  
+- experimental "flicker fixer" implemented (Display panel). Works
+  perfectly in WB, not so perfect in games yet (and impossible to get
+  perfect in all cases, as usual..) No more interlace artifacts when
+  any graphics object or mouse pointer moves.
   NOTE: first and last line will flicker or show garbage.
   
   Technical details: normal interlaced display goes like this: draw