OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /or1k/trunk/uclinux/uClinux-2.0.x/arch/or32
    from Rev 1313 to Rev 1765
    Reverse comparison

Rev 1313 → Rev 1765

/kernel/misc.S
0,0 → 1,278
#include <asm/spr_defs.h>
#include <asm/board.h>
 
.text
/*
* Enable interrupts
* sti()
*/
.global _sti
_sti:
l.mfspr r3,r0,SPR_SR
l.ori r3,r3,(SPR_SR_IEE | SPR_SR_TEE)
l.mtspr r0,r3,SPR_SR
l.jr r9
l.nop
 
/*
* Disable interrupts
* cli()
*/
.global _cli
_cli:
l.addi r4,r0,-1
l.xori r4,r4,(SPR_SR_IEE | SPR_SR_TEE)
l.mfspr r3,r0,SPR_SR
l.and r3,r3,r4
l.mtspr r0,r3,SPR_SR
l.jr r9
l.nop
 
/*
* Get 'flags' (aka status register)
* __save_flags(long *ptr)
*/
.global ___save_flags
___save_flags:
l.mfspr r4,r0,SPR_SR
l.sw 0(r3),r4
l.jr r9
l.nop
 
/*
* Restore 'flags'
* __restore_flags(long val)
*/
.global ___restore_flags
___restore_flags:
l.mtspr r0,r3,SPR_SR
l.jr r9
l.nop
 
/*
* SPR write
* mtspr(long add, long val)
*/
.global _mtspr
_mtspr:
l.mtspr r3,r4,0
l.jr r9
l.nop
 
/*
* SPR read
* mtspr(long add)
*/
.global _mfspr
_mfspr:
l.mfspr r11,r3,0
l.jr r9
l.nop
 
/*
* Instruction cache enable
* ic_enable()
*/
.global _ic_enable
_ic_enable:
/* Disable IC */
l.mfspr r13,r0,SPR_SR
l.addi r11,r0,-1
l.xori r11,r11,SPR_SR_ICE
l.and r11,r13,r11
l.mtspr r0,r11,SPR_SR
 
/* Invalidate IC */
l.addi r13,r0,0
l.addi r11,r0,IC_SIZE
1:
l.mtspr r0,r13,SPR_ICBIR
l.sfne r13,r11
l.bf 1b
l.addi r13,r13,IC_LINE
 
/* Enable IC */
l.mfspr r13,r0,SPR_SR
l.ori r13,r13,SPR_SR_ICE
l.mtspr r0,r13,SPR_SR
l.nop
l.nop
l.nop
l.nop
l.nop
 
l.jr r9
l.nop
/*
* Instruction cache disable
* ic_disable()
*/
.global _ic_disable
_ic_disable:
/* Disable IC */
l.mfspr r13,r0,SPR_SR
l.addi r11,r0,-1
l.xori r11,r11,SPR_SR_ICE
l.and r11,r13,r11
l.mtspr r0,r11,SPR_SR
 
l.jr r9
l.nop
 
/*
* Instruction cache invalidate
* ic_flush()
*/
.global _ic_invalidate
_ic_invalidate:
/* Disable IC */
l.mfspr r13,r0,SPR_SR
l.addi r11,r0,-1
l.xori r11,r11,SPR_SR_ICE
l.and r11,r13,r11
l.mtspr r0,r11,SPR_SR
 
/* Invalidate IC */
l.addi r13,r0,0
l.addi r11,r0,IC_SIZE
1:
l.mtspr r0,r13,SPR_ICBIR
l.sfne r13,r11
l.bf 1b
l.addi r13,r13,IC_LINE
 
/* Enable IC */
l.mfspr r13,r0,SPR_SR
l.ori r13,r13,SPR_SR_ICE
l.mtspr r0,r13,SPR_SR
l.nop
l.nop
l.nop
l.nop
l.nop
 
l.jr r9
l.nop
 
/*
* Data cache enable
* dc_enable()
*/
.global _dc_enable
_dc_enable:
/* Disable DC */
l.mfspr r13,r0,SPR_SR
l.addi r11,r0,-1
l.xori r11,r11,SPR_SR_DCE
l.and r11,r13,r11
l.mtspr r0,r11,SPR_SR
 
/* Flush DC */
l.addi r13,r0,0
l.addi r11,r0,DC_SIZE
1:
l.mtspr r0,r13,SPR_DCBIR
l.sfne r13,r11
l.bf 1b
l.addi r13,r13,DC_LINE
 
/* Enable DC */
l.mfspr r13,r0,SPR_SR
l.ori r13,r13,SPR_SR_DCE
l.mtspr r0,r13,SPR_SR
 
l.jr r9
l.nop
/*
* Data cache disable
* dc_disable()
*/
.global _dc_disable
_dc_disable:
/* Disable DC */
l.mfspr r13,r0,SPR_SR
l.addi r11,r0,-1
l.xori r11,r11,SPR_SR_DCE
l.and r11,r13,r11
l.mtspr r0,r11,SPR_SR
 
l.jr r9
l.nop
/*
* Invalidate data cache line
* dc_line_invalidate(long ph_add)
*/
.global _dc_line_invalidate
_dc_line_invalidate:
l.mfspr r4,r0,SPR_SR
l.addi r5,r0,-1
l.xori r5,r5,SPR_SR_DCE
l.and r5,r4,r5
l.mtspr r0,r5,SPR_SR
l.mtspr r0,r3,SPR_DCBIR
l.mtspr r0,r4,SPR_SR
l.jr r9
l.nop
 
/*
* Data MMU enable
* dmmu_enable()
*/
.global _dmmu_enable
_dmmu_enable:
/* Invalidate all sets */
l.addi r11,r0,DMMU_SET_NB
l.addi r13,r0,0
1:
l.mtspr r13,r0,SPR_DTLBMR_BASE(0)
l.addi r11,r11,-1
l.sfeqi r11,0
l.bnf 1b
l.addi r13,r13,1
l.mfspr r11,r0,SPR_SR
l.ori r11,r11,SPR_SR_DME
l.mtspr r0,r11,SPR_SR
l.jr r9
l.nop
 
/*
* Instruction MMU enable
* immu_enable()
*/
.global _immu_enable
_immu_enable:
/* Invalidate all sets */
l.addi r11,r0,IMMU_SET_NB
l.addi r13,r0,0
1:
l.mtspr r13,r0,SPR_ITLBMR_BASE(0)
l.addi r11,r11,-1
l.sfeqi r11,0
l.bnf 1b
l.addi r13,r13,1
l.mfspr r11,r0,SPR_SR
l.ori r11,r11,SPR_SR_IME
l.mtspr r0,r11,SPR_SR
l.nop
l.nop
l.nop
l.nop
l.jr r9
l.nop
 
/*
* Print utility
* __print(const char *fmt, ...)
*/
.global __print
__print:
l.lwz r3,0(r1)
l.addi r4,r1,4
# l.sys 202
l.nop 3
l.jr r9
l.nop
 
/kernel/head.S
0,0 → 1,1080
#include <asm/spr_defs.h>
#include <asm/ptrace.h>
#include <asm/board.h>
#include <asm/mc.h>
#include <linux/errno.h>
 
#define RAM 0
#define TEMP_R_LOC 0x00000010
 
.global __text_start
.global __main
.global ___bss_start
.global __bss_end
.global __ram_start
.global __ram_end
.global __rom_start
.global __rom_end
.global ___data_start
.global __data_end
.global ___data_rom_start
 
.global splash_bits
.global __start
.global __stext
 
.global __switch
.global _putc
 
#define SAVE_REGS(mark) \
l.addi r1,r1,-(INT_FRAME_SIZE); \
l.mfspr r3,r0,SPR_EPCR_BASE; \
l.sw PC(r1),r3; \
l.mfspr r3,r0,SPR_ESR_BASE; \
l.sw SR(r1),r3; \
l.lwz r3,(TEMP_R_LOC + 4)(r0); /* Read r1 (sp) from tmp location */ \
l.sw SP(r1),r3; \
l.sw GPR2(r1),r2; \
l.sw GPR4(r1),r4; \
l.sw GPR5(r1),r5; \
l.sw GPR6(r1),r6; \
l.sw GPR7(r1),r7; \
l.sw GPR8(r1),r8; \
l.sw GPR9(r1),r9; \
l.sw GPR10(r1),r10; \
l.sw GPR11(r1),r11; \
l.sw GPR12(r1),r12; \
l.sw GPR13(r1),r13; \
l.sw GPR14(r1),r14; \
l.sw GPR15(r1),r15; \
l.sw GPR16(r1),r16; \
l.sw GPR17(r1),r17; \
l.sw GPR18(r1),r18; \
l.sw GPR19(r1),r19; \
l.sw GPR20(r1),r20; \
l.sw GPR21(r1),r21; \
l.sw GPR22(r1),r22; \
l.sw GPR23(r1),r23; \
l.sw GPR24(r1),r24; \
l.sw GPR25(r1),r25; \
l.sw GPR26(r1),r26; \
l.sw GPR27(r1),r27; \
l.sw GPR28(r1),r28; \
l.sw GPR29(r1),r29; \
l.sw GPR30(r1),r30; \
l.sw GPR31(r1),r31; \
l.lwz r3,(TEMP_R_LOC + 0)(r0); /* Read r3 from tmp location */ \
l.sw GPR3(r1),r3; \
l.sw ORIG_GPR3(r1),r3; \
l.sw RESULT(r1),r0
 
#define SAVE_INT_REGS(mark) \
l.sw (TEMP_R_LOC + 4)(r0),r1; /* Temporary store r1 to add 4!!! */ \
l.mfspr r3,r0,SPR_SR; \
l.addi r1,r0,-1; \
l.xori r1,r1,(SPR_SR_IEE | SPR_SR_TEE); \
l.and r3,r3,r1; \
l.mtspr r0,r3,SPR_SR; \
l.lwz r1,(TEMP_R_LOC + 4)(r0); \
l.mfspr r3,r0,SPR_ESR_BASE; /* Interrupt from user/system mode */ \
l.andi r3,r3,SPR_SR_SM; \
l.sfeqi r3,SPR_SR_SM; \
l.bf 10f; /* SIMON */ /* Branch if SUPV */ \
l.nop; \
l.movhi r3,hi(_current_set); \
l.ori r3,r3,lo(_current_set); \
l.lwz r3,0(r3); \
l.sw TSS+TSS_USP(r3),r1; \
l.mfspr r1,r0,SPR_EPCR_BASE; \
l.sw TSS+TSS_PC(r3),r1; \
l.lwz r1,TSS+TSS_KSP(r3); \
l.addi r1,r1,-(INT_FRAME_SIZE); \
l.sw TSS+TSS_REGS(r3),r1; \
l.lwz r1,TSS+TSS_KSP(r3); \
10: SAVE_REGS(mark)
 
#define RETURN_FROM_INT(mark) \
90: l.addi r4,r0,-1; /* Disable interrupts */ \
l.xori r4,r4,(SPR_SR_IEE | SPR_SR_TEE); \
l.mfspr r3,r0,SPR_SR; \
l.and r3,r3,r4; \
l.mtspr r0,r3,SPR_SR; \
l.movhi r2,hi(_intr_count); \
l.ori r2,r2,lo(_intr_count); \
l.lwz r3,0(r2); \
l.sfeqi r3,0; \
l.bnf 00f; \
l.nop; \
l.movhi r4,hi(_bh_mask); \
l.ori r4,r4,lo(_bh_mask); \
l.lwz r4,0(r4); \
l.movhi r5,hi(_bh_active); \
l.ori r5,r5,lo(_bh_active); \
l.lwz r5,0(r5); \
l.and r4,r4,r5; \
l.sfeqi r4,0; \
l.bf 00f; \
l.nop; \
l.addi r3,r3,1; \
l.sw 0(r2),r3; \
l.jal _do_bottom_half; \
l.nop; \
l.movhi r2,hi(_intr_count); \
l.ori r2,r2,lo(_intr_count); \
l.lwz r3,0(r2); \
l.addi r3,r3,-1; \
l.sw 0(r2),r3; \
00: l.lwz r2,SR(r1); \
l.andi r3,r2,SPR_SR_SM; \
l.sfeqi r3,0; \
l.bnf 10f; /* SIMON */ /* Branch if SUPV */ \
l.nop; \
l.andi r3,r2,SPR_SR_ICE; \
l.sfeqi r3,0; \
l.bf 05f; /* Branch if IC disabled */ \
l.nop; \
l.jal _ic_invalidate; \
l.nop; \
05: l.movhi r3,hi(_current_set); /* need to save kernel stack pointer */ \
l.ori r3,r3,lo(_current_set); \
l.lwz r3,0(r3); \
l.addi r4,r1,INT_FRAME_SIZE; \
l.sw TSS+TSS_KSP(r3),r4; \
l.lwz r4,STATE(r3); /* If state != 0, can't run */ \
l.sfeqi r4,0; \
l.bf 06f; \
l.nop; \
l.jal _schedule; \
l.nop; \
l.j 90b; \
l.nop; \
06: l.lwz r4,COUNTER(r3); \
l.sfeqi r4,0; \
l.bnf 07f; \
l.nop; \
l.jal _schedule; \
l.nop; \
l.j 90b; \
l.nop; \
07: l.addi r5,r0,-1; \
l.lwz r4,BLOCKED(r3); /* Check for pending unblocked signals */ \
l.xor r4,r4,r5; \
l.lwz r5,SIGNAL(r3); \
l.and r5,r5,r4; \
l.sfeqi r5,0; \
l.bf 10f; \
l.nop; \
l.addi r3,r4,0; \
l.addi r4,r1,0; \
l.jal _do_signal; \
l.nop; \
10: l.lwz r3,PC(r1); \
l.movhi r4,0x2; \
l.ori r4,r4,0x6034;\
l.sfeq r3,r4;\
l.bnf 20f; \
l.nop; \
l.lwz r10,GPR10(r1); \
l.sfeqi r10,0; \
l.bnf 20f; \
l.nop; \
l.lwz r4,SR(r1); \
l.andi r4,r4,SPR_SR_F;\
l.sfeqi r4,0x00; \
l.bf 20f; \
l.nop; \
l.j _fail; \
l.nop; \
20: l.mtspr r0,r3,SPR_EPCR_BASE; \
l.lwz r3,SR(r1); \
l.mtspr r0,r3,SPR_ESR_BASE; \
l.lwz r2,GPR2(r1); \
l.lwz r3,GPR3(r1); \
l.lwz r4,GPR4(r1); \
l.lwz r5,GPR5(r1); \
l.lwz r6,GPR6(r1); \
l.lwz r7,GPR7(r1); \
l.lwz r8,GPR8(r1); \
l.lwz r9,GPR9(r1); \
l.lwz r10,GPR10(r1); \
l.lwz r11,GPR11(r1); \
l.lwz r12,GPR12(r1); \
l.lwz r13,GPR13(r1); \
l.lwz r14,GPR14(r1); \
l.lwz r15,GPR15(r1); \
l.lwz r16,GPR16(r1); \
l.lwz r17,GPR17(r1); \
l.lwz r18,GPR18(r1); \
l.lwz r19,GPR19(r1); \
l.lwz r20,GPR20(r1); \
l.lwz r21,GPR21(r1); \
l.lwz r22,GPR22(r1); \
l.lwz r23,GPR23(r1); \
l.lwz r24,GPR24(r1); \
l.lwz r25,GPR25(r1); \
l.lwz r26,GPR26(r1); \
l.lwz r27,GPR27(r1); \
l.lwz r28,GPR28(r1); \
l.lwz r29,GPR29(r1); \
l.lwz r30,GPR30(r1); \
l.lwz r31,GPR31(r1); \
l.addi r1,r1,0; \
l.lwz r1,SP(r1); \
l.rfe; \
l.nop
 
.section .bss
sys_stack:
.space 4*4096
sys_stack_top:
#if CONFIG_ROMKERNEL
.section .romvec, "ax",
.org 0x100
 
l.movhi r3,hi(MC_BASE_ADD)
l.ori r3,r3,MC_BA_MASK
l.addi r5,r0,0x00
l.sw 0(r3),r5
 
l.movhi r3,hi(__start)
l.ori r3,r3,lo(__start)
l.jr r3
l.nop
 
.org 0x200
 
l.nop
l.rfe
l.nop
 
.org 0x300
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_dpfault)
l.ori r3,r3,lo(_dpfault)
l.jr r3
l.nop
 
.org 0x400
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_ipfault)
l.ori r3,r3,lo(_ipfault)
l.jr r3
l.nop
 
.org 0x500
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_tick)
l.ori r3,r3,lo(_tick)
l.jr r3
l.nop
 
.org 0x600
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_align)
l.ori r3,r3,lo(_align)
l.jr r3
l.nop
 
.org 0x800
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_ext_int)
l.ori r3,r3,lo(_ext_int)
l.jr r3
l.nop
 
.org 0x900
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_dtlbmiss)
l.ori r3,r3,lo(_dtlbmiss)
l.jr r3
l.nop
 
.org 0xa00
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_itlbmiss)
l.ori r3,r3,lo(_itlbmiss)
l.jr r3
l.nop
 
.org 0xb00
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_sys_call)
l.ori r3,r3,lo(_sys_call)
l.jr r3
l.nop
 
.org 0xc00
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_sys_call)
l.ori r3,r3,lo(_sys_call)
l.jr r3
l.nop
#endif
.section .ramvec, "ax"
.org 0x100
 
l.movhi r3,hi(__start)
l.ori r3,r3,lo(__start)
l.jr r3
l.nop
 
.org 0x200
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_trap_200)
l.ori r3,r3,lo(_trap_200)
l.jr r3
l.nop
 
.org 0x300
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_trap_300)
l.ori r3,r3,lo(_trap_300)
l.jr r3
l.nop
 
.org 0x400
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_trap_400)
l.ori r3,r3,lo(_trap_400)
l.jr r3
l.nop
 
.org 0x500
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_tick)
l.ori r3,r3,lo(_tick)
l.jr r3
l.nop
 
.org 0x600
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_align)
l.ori r3,r3,lo(_align)
l.jr r3
l.nop
 
.org 0x700
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_trap_700)
l.ori r3,r3,lo(_trap_700)
l.jr r3
l.nop
 
.org 0x800
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_ext_int)
l.ori r3,r3,lo(_ext_int)
l.jr r3
l.nop
 
.org 0x900
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_trap_900)
l.ori r3,r3,lo(_trap_900)
l.jr r3
l.nop
 
.org 0xa00
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_trap_a00)
l.ori r3,r3,lo(_trap_a00)
l.jr r3
l.nop
 
.org 0xb00
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_trap_b00)
l.ori r3,r3,lo(_trap_b00)
l.jr r3
l.nop
 
.org 0xc00
 
l.sw (TEMP_R_LOC + 0)(r0),r3; /* Temporary store r3 to add 0!!! */ \
l.movhi r3,hi(_sys_call)
l.ori r3,r3,lo(_sys_call)
l.jr r3
l.nop
 
 
.text
__start:
__stext:
l.addi r3,r0,SPR_SR_SM
l.mtspr r0,r3,SPR_SR
#if 1
 
/* Init uart */
l.jal _ua_init
l.nop
 
/* Jump to flash original location */
l.movhi r3,hi(__flsh_start)
l.ori r3,r3,lo(__flsh_start)
l.jr r3
l.nop
 
__flsh_start:
 
#if CONFIG_ROMKERNEL
#if MC_INIT
l.movhi r3,hi(MC_BASE_ADD)
l.ori r3,r3,lo(MC_BASE_ADD)
l.addi r4,r3,MC_CSC(0)
l.movhi r5,hi(FLASH_BASE_ADD)
l.srai r5,r5,6
l.ori r5,r5,0x0025
l.sw 0(r4),r5
l.addi r4,r3,MC_TMS(0)
l.movhi r5,hi(FLASH_TMS_VAL)
l.ori r5,r5,lo(FLASH_TMS_VAL)
l.sw 0(r4),r5
l.addi r4,r3,MC_BA_MASK
l.addi r5,r0,MC_MASK_VAL
l.sw 0(r4),r5
l.addi r4,r3,MC_CSR
l.movhi r5,hi(MC_CSR_VAL)
l.ori r5,r5,lo(MC_CSR_VAL)
l.sw 0(r4),r5
l.addi r4,r3,MC_TMS(1)
l.movhi r5,hi(SDRAM_TMS_VAL)
l.ori r5,r5,lo(SDRAM_TMS_VAL)
l.sw 0(r4),r5
l.addi r4,r3,MC_CSC(1)
l.movhi r5,hi(SDRAM_BASE_ADD)
l.srai r5,r5,6
l.ori r5,r5,0x0411
l.sw 0(r4),r5
 
#ifdef FBMEM_BASE_ADD
l.addi r4,r3,MC_CSC(2)
l.movhi r5,hi(FBMEM_BASE_ADD)
l.srai r5,r5,6
l.ori r5,r5,0x0005
l.sw 0(r4),r5
 
l.addi r4,r3,MC_TMS(2)
l.movhi r5,0xffff
l.ori r5,r5,0xffff
l.sw 0(r4),r5
#endif
#endif
#endif
#endif
 
#if ICACHE
l.jal _ic_enable
l.nop
#endif
 
#if DCACHE
l.jal _dc_enable
l.nop
#endif
 
l.movhi r1, hi(sys_stack_top) /* stack setup */
l.ori r1,r1,lo(sys_stack_top)
 
#if CONFIG_ROMKERNEL
/* Copy data segment from ROM to RAM */
l.movhi r3, hi(___data_rom_start)
l.ori r3,r3,lo(___data_rom_start)
 
l.movhi r4, hi(___data_start)
l.ori r4,r4,lo(___data_start)
 
l.movhi r5, hi(__data_end)
l.ori r5,r5,lo(__data_end)
 
/* Copy %r3 to %r4 until %r4 == %r5 */
1:
l.sfeq r3,r4
l.bf 3f
l.nop
2:
l.sfgeu r4,r5
l.bf 1f
l.nop
l.lwz r8,0(r3)
l.sw 0(r4),r8
l.addi r3,r3,4
l.j 2b
l.addi r4,r4,4
 
/* Copy ramvec segment from ROM to RAM */
1:
l.movhi r4, hi(__ramvec_start)
l.ori r4,r4,lo(__ramvec_start)
 
l.movhi r5, hi(__ramvec_end)
l.ori r5,r5,lo(__ramvec_end)
 
/* Copy %r3 to %r4 until %r4 == %r5 */
2:
l.sfgeu r4,r5
l.bf 1f
l.nop
l.lwz r8,0(r3)
l.sw 0(r4),r8
l.addi r3,r3,4
l.j 2b
l.addi r4,r4,4
#if 0
/* Copy initrd segment from ROM to RAM */
1:
l.movhi r4, hi(__initrd_start)
l.ori r4,r4,lo(__initrd_start)
 
l.movhi r5, hi(__initrd_end)
l.ori r5,r5,lo(__initrd_end)
 
/* Copy %r3 to %r4 until %r4 == %r5 */
2:
l.sfgeu r4,r5
l.bf 1f
l.nop
l.lwz r8,0(r3)
l.sw 0(r4),r8
l.addi r3,r3,4
l.j 2b
l.addi r4,r4,4
#endif
#endif
1:
3:
l.movhi r3, hi(___bss_start)
l.ori r3,r3,lo(___bss_start)
 
l.movhi r4, hi(end)
l.ori r4,r4,lo(end)
 
/* Copy 0 to %r3 until %r3 == %r4 */
1:
l.sfgeu r3,r4
l.bf 1f
l.nop
l.sw 0(r3),r0
l.j 1b
l.addi r3,r3,4
1:
 
#if IMMU
l.jal _immu_enable
l.nop
#endif
 
#if DMMU
l.jal _dmmu_enable
l.nop
#endif
 
l.j _start_kernel
l.nop
 
_exit:
l.j _exit
l.nop
 
_dpfault:
 
_ipfault:
 
_tick:
SAVE_INT_REGS(0x0500)
l.lwz r3,0(r1)
l.movhi r4,0x2
l.ori r4,r4,0x6034
l.sfeq r3,r4
l.bnf 1f
l.nop
l.sfeqi r10,0x00
l.bnf 1f
l.nop
l.lwz r3,0xc(r0)
l.addi r3,r3,1
l.sw 0xc(r0),r3
l.lwz r3,4(r1)
l.andi r3,r3,SPR_SR_F
l.sfeqi r3,0x00
l.bnf _fail
l.nop
1:
l.addi r3,r1,0
l.jal _timer_interrupt
l.nop
RETURN_FROM_INT(0x500)
 
_fail:
l.j _fail
l.nop
 
_align:
l.addi r1,r1,-128
l.sw 0x08(r1),r2
l.lwz r3,(TEMP_R_LOC + 0)(r0)
l.sw 0x0c(r1),r3
l.sw 0x10(r1),r4
l.sw 0x14(r1),r5
l.sw 0x18(r1),r6
l.sw 0x1c(r1),r7
l.sw 0x20(r1),r8
l.sw 0x24(r1),r9
l.sw 0x28(r1),r10
l.sw 0x2c(r1),r11
l.sw 0x30(r1),r12
l.sw 0x34(r1),r13
l.sw 0x38(r1),r14
l.sw 0x3c(r1),r15
l.sw 0x40(r1),r16
l.sw 0x44(r1),r17
l.sw 0x48(r1),r18
l.sw 0x4c(r1),r19
l.sw 0x50(r1),r20
l.sw 0x54(r1),r21
l.sw 0x58(r1),r22
l.sw 0x5c(r1),r23
l.sw 0x60(r1),r24
l.sw 0x64(r1),r25
l.sw 0x68(r1),r26
l.sw 0x6c(r1),r27
l.sw 0x70(r1),r28
l.sw 0x74(r1),r29
l.sw 0x78(r1),r30
l.sw 0x7c(r1),r31
l.mfspr r2,r0,SPR_EEAR_BASE /* Load the efective addres */
l.mfspr r5,r0,SPR_EPCR_BASE /* Load the insn address */
 
l.lwz r3,0(r5) /* Load insn */
l.srli r4,r3,26 /* Shift left to get the insn opcode */
 
l.sfeqi r4,0x00 /* Check if the load/store insn is in delay slot */
l.bf jmp
l.sfeqi r4,0x01
l.bf jmp
l.sfeqi r4,0x03
l.bf jmp
l.sfeqi r4,0x04
l.bf jmp
l.sfeqi r4,0x11
l.bf jr
l.sfeqi r4,0x12
l.bf jr
l.nop
l.j 1f
l.addi r5,r5,4 /* Increment PC to get return insn address */
jmp:
l.slli r4,r3,6 /* Get the signed extended jump length */
l.srai r4,r4,4
 
l.lwz r3,4(r5) /* Load the real load/store insn */
 
l.add r5,r5,r4 /* Calculate jump target address */
l.j 1f
l.srli r4,r3,26 /* Shift left to get the insn opcode */
 
jr:
l.slli r4,r3,9 /* Shift to get the reg nb */
l.andi r4,r4,0x7c
 
l.lwz r3,4(r5) /* Load the real load/store insn */
 
l.add r4,r4,r1 /* Load the jump register value from the stack */
l.lwz r5,0(r4)
 
l.srli r4,r3,26 /* Shift left to get the insn opcode */
1: l.mtspr r0,r5,SPR_EPCR_BASE
 
l.sfeqi r4,0x26
l.bf lhs
l.sfeqi r4,0x25
l.bf lhz
l.sfeqi r4,0x22
l.bf lws
l.sfeqi r4,0x21
l.bf lwz
l.sfeqi r4,0x37
l.bf sh
l.sfeqi r4,0x35
l.bf sw
l.nop
 
1: l.j 1b /* I don't know what to do */
l.nop
 
lhs: l.lbs r5,0(r2)
l.slli r5,r5,8
l.lbz r6,1(r2)
l.or r5,r5,r6
l.srli r4,r3,19
l.andi r4,r4,0x7c
l.add r4,r4,r1
l.j align_end
l.sw 0(r4),r5
lhz: l.lbz r5,0(r2)
l.slli r5,r5,8
l.lbz r6,1(r2)
l.or r5,r5,r6
l.srli r4,r3,19
l.andi r4,r4,0x7c
l.add r4,r4,r1
l.j align_end
l.sw 0(r4),r5
lws: l.lbs r5,0(r2)
l.slli r5,r5,24
l.lbz r6,1(r2)
l.slli r6,r6,16
l.or r5,r5,r6
l.lbz r6,2(r2)
l.slli r6,r6,8
l.or r5,r5,r6
l.lbz r6,3(r2)
l.or r5,r5,r6
l.srli r4,r3,19
l.andi r4,r4,0x7c
l.add r4,r4,r1
l.j align_end
l.sw 0(r4),r5
lwz: l.lbz r5,0(r2)
l.slli r5,r5,24
l.lbz r6,1(r2)
l.slli r6,r6,16
l.or r5,r5,r6
l.lbz r6,2(r2)
l.slli r6,r6,8
l.or r5,r5,r6
l.lbz r6,3(r2)
l.or r5,r5,r6
l.srli r4,r3,19
l.andi r4,r4,0x7c
l.add r4,r4,r1
l.j align_end
l.sw 0(r4),r5
sh:
l.srli r4,r3,9
l.andi r4,r4,0x7c
l.add r4,r4,r1
l.lwz r5,0(r4)
l.sb 1(r2),r5
l.srli r5,r5,8
l.j align_end
l.sb 0(r2),r5
 
sw:
l.srli r4,r3,9
l.andi r4,r4,0x7c
l.add r4,r4,r1
l.lwz r5,0(r4)
l.sb 3(r2),r5
l.srli r5,r5,8
l.sb 2(r2),r5
l.srli r5,r5,8
l.sb 1(r2),r5
l.srli r5,r5,8
l.j align_end
l.sb 0(r2),r5
 
align_end:
l.lwz r2,0x08(r1)
l.lwz r3,0x0c(r1)
l.lwz r4,0x10(r1)
l.lwz r5,0x14(r1)
l.lwz r6,0x18(r1)
l.lwz r7,0x1c(r1)
l.lwz r8,0x20(r1)
l.lwz r9,0x24(r1)
l.lwz r10,0x28(r1)
l.lwz r11,0x2c(r1)
l.lwz r12,0x30(r1)
l.lwz r13,0x34(r1)
l.lwz r14,0x38(r1)
l.lwz r15,0x3c(r1)
l.lwz r16,0x40(r1)
l.lwz r17,0x44(r1)
l.lwz r18,0x48(r1)
l.lwz r19,0x4c(r1)
l.lwz r20,0x50(r1)
l.lwz r21,0x54(r1)
l.lwz r22,0x58(r1)
l.lwz r23,0x5c(r1)
l.lwz r24,0x60(r1)
l.lwz r25,0x64(r1)
l.lwz r26,0x68(r1)
l.lwz r27,0x6c(r1)
l.lwz r28,0x70(r1)
l.lwz r29,0x74(r1)
l.lwz r30,0x78(r1)
l.lwz r31,0x7c(r1)
l.addi r1,r1,128
l.rfe
 
 
_ext_int:
SAVE_INT_REGS(0x0800)
l.lwz r3,0(r1)
l.movhi r4,0x2
l.ori r4,r4,0x6034
l.sfeq r3,r4
l.bnf 1f
l.nop
l.lwz r3,0xc(r0)
l.addi r3,r3,1
l.sw 0xc(r0),r3
l.sfeqi r10,0x00
l.bf _fail
l.nop
1:
l.addi r3,r1,0
l.jal _handle_IRQ
l.nop
RETURN_FROM_INT(0x800)
 
_dtlbmiss:
l.sw (TEMP_R_LOC + 4)(r0),r4
l.sw (TEMP_R_LOC + 8)(r0),r5
l.mfspr r3,r0,SPR_EEAR_BASE
l.srli r4,r3,DMMU_PAGE_ADD_BITS
l.andi r4,r4,DMMU_SET_ADD_MASK
l.addi r5,r0,-1
l.xori r5,r5,DMMU_PAGE_ADD_MASK
l.and r5,r3,r5
l.ori r5,r5,SPR_DTLBMR_V
l.mtspr r4,r5,SPR_DTLBMR_BASE(0)
l.movhi r5,hi(SPR_DTLBTR_PPN)
l.ori r5,r5,lo(SPR_DTLBTR_PPN)
l.and r5,r3,r5
l.ori r5,r5,DTLBTR_NO_LIMIT
l.movhi r3,0x8000
l.sfgeu r5,r3
l.bnf 1f
l.nop
l.ori r5,r5,SPR_DTLBTR_CI
1: l.mtspr r4,r5,SPR_DTLBTR_BASE(0)
l.lwz r3,(TEMP_R_LOC + 0)(r0)
l.lwz r4,(TEMP_R_LOC + 4)(r0)
l.lwz r5,(TEMP_R_LOC + 8)(r0)
l.rfe
l.nop
 
 
_itlbmiss:
l.sw (TEMP_R_LOC + 4)(r0),r4
l.sw (TEMP_R_LOC + 8)(r0),r5
l.mfspr r3,r0,SPR_EEAR_BASE
l.srli r4,r3,IMMU_PAGE_ADD_BITS
l.andi r4,r4,IMMU_SET_ADD_MASK
l.addi r5,r0,-1
l.xori r5,r5,IMMU_PAGE_ADD_MASK
l.and r5,r3,r5
l.ori r5,r5,SPR_ITLBMR_V
l.mtspr r4,r5,SPR_ITLBMR_BASE(0)
l.movhi r5,hi(SPR_ITLBTR_PPN)
l.ori r5,r5,lo(SPR_ITLBTR_PPN)
l.and r5,r3,r5
l.ori r5,r5,ITLBTR_NO_LIMIT
l.mtspr r4,r5,SPR_ITLBTR_BASE(0)
l.lwz r3,(TEMP_R_LOC + 0)(r0)
l.lwz r4,(TEMP_R_LOC + 4)(r0)
l.lwz r5,(TEMP_R_LOC + 8)(r0)
l.rfe
l.nop
 
_sys_call:
SAVE_INT_REGS(0x0c00)
/* EPCR was pointing to l.sys instruction, we have to incremet it */
/* l.lwz r2,PC(r1)
l.addi r2,r2,4
l.sw PC(r1),r2
*/
l.sfeqi r11,0x7777 /* Special case for 'sys_sigreturn' */
l.bnf 10f
l.nop
l.jal _sys_sigreturn
l.addi r3,r1,0
l.sfgtsi r11,0 /* Check for restarted system call */
l.bf 99f
l.nop
l.j 20f
l.nop
10:
l.movhi r2,hi(_sys_call_table)
l.ori r2,r2,lo(_sys_call_table)
l.slli r11,r11,2
l.add r2,r2,r11
l.lwz r2,0(r2)
l.addi r8,r1,0 /* regs pointer */
l.jalr r2
l.nop
l.sw GPR11(r1),r11 /* save return value */
20:
l.sw RESULT(r1),r11 /* save result */
l.sfgesi r11,0
l.bf 99f
l.nop
l.sfeqi r11,-ERESTARTNOHAND
l.bnf 22f
l.nop
l.addi r11,r0,EINTR
22:
l.sw RESULT(r1),r11
99:
RETURN_FROM_INT(0xc00)
 
/*
* This routine switches between two different tasks. The process
* state of one is saved on its kernel stack. Then the state
* of the other is restored from its kernel stack. The memory
* management hardware is updated to the second process's state.
* Finally, we can return to the second process, via the 'return'.
*
* Note: there are two ways to get to the "going out" portion
* of this code; either by coming in via the entry (_switch)
* or via "fork" which must set up an environment equivalent
* to the "_switch" path. If you change this (or in particular, the
* SAVE_REGS macro), you'll have to change the fork code also.
*/
__switch:
l.sw (TEMP_R_LOC + 0)(r0),r3 /* Temporary store r3 to add 0!!! */
l.sw (TEMP_R_LOC + 4)(r0),r1 /* Temporary store r1 to add 4!!! */
l.mtspr r0,r9,SPR_EPCR_BASE /* Link register to EPCR */
l.mfspr r3,r0,SPR_SR /* From SR to ESR */
l.mtspr r0,r3,SPR_ESR_BASE
SAVE_REGS(0x0FF0)
l.sw TSS_KSP(r3),r1 /* Set old stack pointer */
l.lwz r1,TSS_KSP(r4) /* Load new stack pointer */
RETURN_FROM_INT(0xFF0)
 
_ua_init:
l.movhi r3,hi(UART_BASE_ADD)
 
l.addi r4,r0,0x7
l.sb 0x2(r3),r4
 
l.addi r4,r0,0x0
l.sb 0x1(r3),r4
 
l.addi r4,r0,0x3
l.sb 0x3(r3),r4
 
l.lbz r5,3(r3)
l.ori r4,r5,0x80
l.sb 0x3(r3),r4
l.addi r4,r0,((UART_DEVISOR>>8) & 0x000000ff)
l.sb UART_DLM(r3),r4
l.addi r4,r0,((UART_DEVISOR) & 0x000000ff)
l.sb UART_DLL(r3),r4
l.sb 0x3(r3),r5
 
l.jr r9
l.nop
 
_putc:
l.movhi r4,hi(UART_BASE_ADD)
 
l.addi r6,r0,0x20
1: l.lbz r5,5(r4)
l.andi r5,r5,0x20
l.sfeq r5,r6
l.bnf 1b
l.nop
l.sb 0(r4),r3
 
l.addi r6,r0,0x60
1: l.lbz r5,5(r4)
l.andi r5,r5,0x60
l.sfeq r5,r6
l.bnf 1b
l.nop
 
l.jr r9
l.nop
 
 
_trap_200:
l.nop
l.nop
.word 0x21000001
1: l.j 1b
l.nop
 
_trap_300:
l.nop
l.nop
.word 0x21000001
1: l.j 1b
l.nop
 
_trap_400:
l.nop
l.nop
.word 0x21000001
1: l.j 1b
l.nop
 
_trap_700:
l.nop
l.nop
.word 0x21000001
1: l.j 1b
l.nop
 
_trap_900:
l.nop
l.nop
.word 0x21000001
1: l.j 1b
l.nop
 
_trap_a00:
l.nop
l.nop
.word 0x21000001
1: l.j 1b
l.nop
 
_trap_b00:
l.nop
l.nop
.word 0x21000001
1: l.j 1b
l.nop
 
.data
env:
.long 0
/kernel/irq.c
0,0 → 1,290
#include <linux/types.h>
#include <linux/sched.h>
#include <linux/kernel_stat.h>
#include <linux/errno.h>
 
#include <asm/system.h>
#include <asm/irq.h>
#include <asm/traps.h>
#include <asm/page.h>
#include <asm/machdep.h>
 
/* table for system interrupt handlers */
static irq_handler_t irq_list[SYS_IRQS];
 
static const char *default_names[SYS_IRQS] = {
"int0", "int1", "int2", "int3", "int4", "int5", "int6", "int7"
"int8", "int9", "int10", "int11", "int12", "int13", "int14", "int15"
"int16", "int17", "int18", "int19", "int20", "int21", "int22", "int23"
"int24", "int25", "int26", "int27", "int28", "int29", "int30", "int31"
};
 
int pic_enable_irq(unsigned int irq)
{
/* Enable in the IMR */
mtspr(SPR_PICMR, mfspr(SPR_PICMR) | (0x00000001L << irq));
 
return 0;
}
 
int pic_disable_irq(unsigned int irq)
{
/* Disable in the IMR */
mtspr(SPR_PICMR, mfspr(SPR_PICMR) & ~(0x00000001L << irq));
 
return 0;
}
 
int pic_init(void)
{
/* turn off all interrupts */
mtspr(SPR_PICMR, 0);
return 0;
}
 
int pic_do_irq(struct pt_regs *fp)
{
int irq;
int mask;
 
unsigned long pend = mfspr(SPR_PICSR) & 0xfffffffc;
 
if (pend & 0x0000ffff) {
if (pend & 0x000000ff) {
if (pend & 0x0000000f) {
mask = 0x00000001;
irq = 0;
} else {
mask = 0x00000010;
irq = 4;
}
} else {
if (pend & 0x00000f00) {
mask = 0x00000100;
irq = 8;
} else {
mask = 0x00001000;
irq = 12;
}
}
} else if(pend & 0xffff0000) {
if (pend & 0x00ff0000) {
if (pend & 0x000f0000) {
mask = 0x00010000;
irq = 16;
} else {
mask = 0x00100000;
irq = 20;
}
} else {
if (pend & 0x0f000000) {
mask = 0x01000000;
irq = 24;
} else {
mask = 0x10000000;
irq = 28;
}
}
} else {
return -1;
}
 
while (! (mask & pend)) {
mask <<=1;
irq++;
}
 
mtspr(SPR_PICSR, mfspr(SPR_PICSR) & ~mask);
return irq;
}
 
void init_IRQ(void)
{
int i;
 
for (i = 0; i < SYS_IRQS; i++) {
irq_list[i].handler = NULL;
irq_list[i].flags = IRQ_FLG_STD;
irq_list[i].dev_id = NULL;
irq_list[i].devname = default_names[i];
}
 
pic_init();
}
 
asmlinkage void handle_IRQ(struct pt_regs *regs)
{
int irq;
 
while((irq = pic_do_irq(regs)) >= 0) {
 
if (irq_list[irq].handler)
irq_list[irq].handler(irq, irq_list[irq].dev_id, regs);
else
panic("No interrupt handler for autovector %d\n", irq);
}
}
 
int request_irq(unsigned int irq, void (*handler)(int, void *, struct pt_regs *),
unsigned long flags, const char *devname, void *dev_id)
{
if (irq >= SYS_IRQS) {
printk("%s: Incorrect IRQ %d from %s\n", __FUNCTION__, irq, devname);
return -ENXIO;
}
 
if (!(irq_list[irq].flags & IRQ_FLG_STD)) {
if (irq_list[irq].flags & IRQ_FLG_LOCK) {
printk("%s: IRQ %d from %s is not replaceable\n",
__FUNCTION__, irq, irq_list[irq].devname);
return -EBUSY;
}
if (flags & IRQ_FLG_REPLACE) {
printk("%s: %s can't replace IRQ %d from %s\n",
__FUNCTION__, devname, irq, irq_list[irq].devname);
return -EBUSY;
}
}
irq_list[irq].handler = handler;
irq_list[irq].flags = flags;
irq_list[irq].dev_id = dev_id;
irq_list[irq].devname = devname;
 
pic_enable_irq(irq);
return 0;
}
 
void free_irq(unsigned int irq, void *dev_id)
{
if (irq >= SYS_IRQS) {
printk("%s: Incorrect IRQ %d\n", __FUNCTION__, irq);
return;
}
 
pic_disable_irq(irq);
 
irq_list[irq].handler = NULL;
irq_list[irq].flags = IRQ_FLG_STD;
irq_list[irq].dev_id = NULL;
irq_list[irq].devname = default_names[irq];
}
 
unsigned long probe_irq_on (void)
{
return 0;
}
 
int probe_irq_off (unsigned long irqs)
{
return 0;
}
 
void enable_irq(unsigned int irq)
{
if (irq >= SYS_IRQS) {
printk("%s: Incorrect IRQ %d\n", __FUNCTION__, irq);
return;
}
pic_enable_irq(irq);
}
 
void disable_irq(unsigned int irq)
{
if (irq >= SYS_IRQS) {
printk("%s: Incorrect IRQ %d\n", __FUNCTION__, irq);
return;
}
pic_disable_irq(irq);
}
 
int get_irq_list(char *buf)
{
int i, len = 0;
 
/* autovector interrupts */
for (i = 0; i < SYS_IRQS; i++) {
if (irq_list[i].handler) {
if (irq_list[i].flags & IRQ_FLG_LOCK)
len += sprintf(buf+len, "L ");
else
len += sprintf(buf+len, " ");
if (irq_list[i].flags & IRQ_FLG_PRI_HI)
len += sprintf(buf+len, "H ");
else
len += sprintf(buf+len, "L ");
len += sprintf(buf+len, "%s\n", irq_list[i].devname);
}
}
 
return len;
}
 
void dump(struct pt_regs *fp)
{
unsigned long *sp;
unsigned char *tp;
int i;
 
printk("\nCURRENT PROCESS:\n\n");
printk("COMM=%s PID=%d\n", current->comm, current->pid);
if (current->mm) {
printk("TEXT=%08x-%08x DATA=%08x-%08x BSS=%08x-%08x\n",
(int) current->mm->start_code,
(int) current->mm->end_code,
(int) current->mm->start_data,
(int) current->mm->end_data,
(int) current->mm->end_data,
(int) current->mm->brk);
printk("USER-STACK=%08x KERNEL-STACK=%08x\n\n",
(int) current->mm->start_stack,
(int) current->kernel_stack_page);
}
printk("PC: %08lx Status: %08lx\n",
fp->pc, fp->sr);
printk("R0 : %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
0L, fp->sp, fp->gprs[0], fp->gprs[1],
fp->gprs[2], fp->gprs[3], fp->gprs[4], fp->gprs[5]);
printk("R8 : %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
fp->gprs[6], fp->gprs[7], fp->gprs[8], fp->gprs[9],
fp->gprs[10], fp->gprs[11], fp->gprs[12], fp->gprs[13]);
printk("R16: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
fp->gprs[14], fp->gprs[15], fp->gprs[16], fp->gprs[17],
fp->gprs[18], fp->gprs[19], fp->gprs[20], fp->gprs[21]);
printk("R24: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
fp->gprs[22], fp->gprs[23], fp->gprs[24], fp->gprs[25],
fp->gprs[26], fp->gprs[27], fp->gprs[28], fp->gprs[29]);
 
printk("\nUSP: %08lx TRAPFRAME: %08x\n",
fp->sp, (unsigned int) fp);
 
printk("\nCODE:");
tp = ((unsigned char *) fp->pc) - 0x20;
for (sp = (unsigned long *) tp, i = 0; (i < 0x40); i += 4) {
if ((i % 0x10) == 0)
printk("\n%08x: ", (int) (tp + i));
printk("%08x ", (int) *sp++);
}
printk("\n");
 
printk("\nKERNEL STACK:");
tp = ((unsigned char *) fp) - 0x40;
for (sp = (unsigned long *) tp, i = 0; (i < 0xc0); i += 4) {
if ((i % 0x10) == 0)
printk("\n%08x: ", (int) (tp + i));
printk("%08x ", (int) *sp++);
}
printk("\n");
if (STACK_MAGIC != *(unsigned long *)current->kernel_stack_page)
printk("(Possibly corrupted stack page??)\n");
printk("\n");
 
printk("\nUSER STACK:");
tp = (unsigned char *) (fp->sp - 0x10);
for (sp = (unsigned long *) tp, i = 0; (i < 0x80); i += 4) {
if ((i % 0x10) == 0)
printk("\n%08x: ", (int) (tp + i));
printk("%08x ", (int) *sp++);
}
printk("\n\n");
}
/kernel/signal.c
0,0 → 1,262
/*
* linux/arch/ppc/kernel/signal.c
*
* Copyright (C) 1991, 1992 Linus Torvalds
* Adapted for PowerPC by Gary Thomas
*/
 
#include <linux/config.h>
 
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/kernel.h>
#include <linux/signal.h>
#include <linux/errno.h>
#include <linux/wait.h>
#include <linux/ptrace.h>
#include <linux/unistd.h>
 
#include <asm/segment.h>
#include <asm/pgtable.h>
#include <asm/traps.h>
 
/*
#define DEBUG
*/
 
#define offsetof(type, member) ((size_t)(&((type *)0)->member))
 
#define _S(nr) (1<<((nr)-1))
 
#define _BLOCKABLE (~(_S(SIGKILL) | _S(SIGSTOP)))
 
asmlinkage int sys_waitpid(pid_t pid,unsigned long * stat_addr, int options);
asmlinkage int do_signal(unsigned long oldmask, struct pt_regs *regs);
 
/*
* atomically swap in the new signal mask, and wait for a signal.
*/
asmlinkage int sys_sigsuspend(unsigned long set, int p2, int p3, int p4, int p6, int p7, struct pt_regs *regs)
{
unsigned long mask;
mask = current->blocked;
current->blocked = set & _BLOCKABLE;
regs->gprs[1] = -EINTR;
#if 0
printk("Task: %x[%d] - SIGSUSPEND at %x, Mask: %x\n", current, current->pid, regs->nip,
set);
#endif
while (1) {
current->state = TASK_INTERRUPTIBLE;
schedule();
if (do_signal(mask,regs))
return -EINTR;
}
}
 
/*
* This sets regs->esp even though we don't actually use sigstacks yet..
*/
asmlinkage int sys_sigreturn(struct pt_regs *regs)
{
struct sigcontext_struct *sc;
struct pt_regs *int_regs;
int signo;
sc = (struct sigcontext_struct *)regs->sp;
current->blocked = sc->oldmask & _BLOCKABLE;
int_regs = sc->regs;
signo = sc->signal;
sc++; /* Pop signal 'context' */
if (sc == (struct sigcontext_struct *)(int_regs))
{ /* Last stacked signal */
int i;
#if 1
memcpy(regs, int_regs, sizeof(*regs));
#else
/* Don't mess up 'my' stack frame */
for(i = 0; i < 30; i++)
if(i != 7)
regs->gprs[i] = int_regs->gprs[i];
regs->sp = int_regs->sp;
#endif
if ((int)regs->orig_gpr3 >= 0 &&
((int)regs->result == -ERESTARTNOHAND ||
(int)regs->result == -ERESTARTSYS ||
(int)regs->result == -ERESTARTNOINTR))
{
regs->gprs[1] = regs->orig_gpr3;
regs->pc -= 8; /* Back up & retry system call */
regs->result = 0;
}
return (regs->result);
} else
{ /* More signals to go */
regs->sp = (unsigned long)sc;
regs->gprs[1] = sc->signal; /* r3 */
regs->gprs[2] = (unsigned long)sc->regs; /* r4 */
regs->gprs[7] = (unsigned long)((sc->regs)+1); /* r9 - link register */
regs->pc = sc->handler;
return (sc->signal);
}
}
 
/*
* Note that 'init' is a special process: it doesn't get signals it doesn't
* want to handle. Thus you cannot kill init even with a SIGKILL even by
* mistake.
*
* Note that we go through the signals twice: once to check the signals that
* the kernel can handle, and then we build all the user-level signal handling
* stack-frames in one go after that.
*/
asmlinkage int do_signal(unsigned long oldmask, struct pt_regs * regs)
{
unsigned long mask = ~current->blocked;
unsigned long handler_signal = 0;
unsigned long *frame = NULL;
unsigned long *trampoline;
unsigned long *regs_ptr;
unsigned long nip = 0;
unsigned long signr;
int bitno;
struct sigcontext_struct *sc;
struct sigaction * sa;
unsigned long flags;
 
save_flags(flags);
cli();
 
while ((signr = current->signal & mask)) {
#if 0
signr = ffz(~signr); /* Compute bit # */
#else
for (bitno = 0; bitno < 32; bitno++)
{
if (signr & (1<<bitno)) break;
}
signr = bitno;
#endif
current->signal &= ~(1<<signr); /* Clear bit */
sa = current->sig->action + signr;
signr++;
if ((current->flags & PF_PTRACED) && signr != SIGKILL) {
current->exit_code = signr;
current->state = TASK_STOPPED;
notify_parent(current, SIGCHLD);
schedule();
if (!(signr = current->exit_code))
continue;
current->exit_code = 0;
if (signr == SIGSTOP)
continue;
if (_S(signr) & current->blocked) {
current->signal |= _S(signr);
continue;
}
sa = current->sig->action + signr - 1;
}
if (sa->sa_handler == SIG_IGN) {
if (signr != SIGCHLD)
continue;
/* check for SIGCHLD: it's special */
while (sys_waitpid(-1,NULL,WNOHANG) > 0)
/* nothing */;
continue;
}
if (sa->sa_handler == SIG_DFL) {
if (current->pid == 1)
continue;
switch (signr) {
case SIGCONT: case SIGCHLD: case SIGWINCH:
continue;
 
case SIGSTOP: case SIGTSTP: case SIGTTIN: case SIGTTOU:
if (current->flags & PF_PTRACED)
continue;
current->state = TASK_STOPPED;
current->exit_code = signr;
if (!(current->p_pptr->sig->action[SIGCHLD-1].sa_flags &
SA_NOCLDSTOP))
notify_parent(current, SIGCHLD);
schedule();
continue;
 
case SIGQUIT: case SIGILL: case SIGTRAP:
case SIGIOT: case SIGFPE: case SIGSEGV:
if (current->binfmt && current->binfmt->core_dump) {
if (current->binfmt->core_dump(signr, regs))
signr |= 0x80;
}
/* fall through */
default:
current->signal |= _S(signr & 0x7f);
do_exit(signr);
}
}
/*
* OK, we're invoking a handler
*/
if ((int)regs->orig_gpr3 >= 0) {
if ((int)regs->result == -ERESTARTNOHAND ||
((int)regs->result == -ERESTARTSYS && !(sa->sa_flags & SA_RESTART)))
(int)regs->result = -EINTR;
}
handler_signal |= 1 << (signr-1);
mask &= ~sa->sa_mask;
}
if (!handler_signal) /* no handler will be called - return 0 */
{
restore_flags(flags);
return 0;
}
nip = regs->pc;
frame = (unsigned long *) regs->sp;
/* Build trampoline code on stack */
frame -= 3;
trampoline = frame;
trampoline[0] = 0x9d607777; /* l.addi r11,r0,0x7777 */
trampoline[1] = 0x20000001; /* l.sys 1 */
trampoline[2] = 0x15000000; /* l.nop 0 */
frame -= sizeof(*regs) / sizeof(long);
regs_ptr = frame;
memcpy(regs_ptr, regs, sizeof(*regs));
signr = 1;
sa = current->sig->action;
for (mask = 1 ; mask ; sa++,signr++,mask += mask) {
if (mask > handler_signal)
break;
if (!(mask & handler_signal))
continue;
frame -= sizeof(struct sigcontext_struct) / sizeof(long);
sc = (struct sigcontext_struct *)frame;
nip = (unsigned long) sa->sa_handler;
#if 0 /* Old compiler */
nip = *(unsigned long *)nip;
#endif
if (sa->sa_flags & SA_ONESHOT)
sa->sa_handler = NULL;
sc->handler = nip;
sc->oldmask = current->blocked;
sc->regs = (struct pt_regs *)regs_ptr;
sc->signal = signr;
current->blocked |= sa->sa_mask;
regs->gprs[1] = signr; /* r3 = signr */
regs->gprs[2] = (unsigned long)regs_ptr; /* r4 = regs_ptr */
}
regs->gprs[7] = (unsigned long)trampoline; /* r9 = trampoline (r9 is link register) */
regs->pc = nip;
regs->sp = (unsigned long)sc;
/* The DATA cache must be flushed here to insure coherency */
/* between the DATA & INSTRUCTION caches. Since we just */
/* created an instruction stream using the DATA [cache] space */
/* and since the instruction cache will not look in the DATA */
/* cache for new data, we have to force the data to go on to */
/* memory and flush the instruction cache to force it to look */
/* there. The following function performs this magic */
#if ICACHE
ic_invalidate();
#endif
restore_flags(flags);
return 1;
}
/kernel/setup.c
0,0 → 1,262
/*
* linux/arch/or32/kernel/setup.c
*
* Based on m86k
*/
 
/*
* This file handles the architecture-dependent parts of system setup
*/
 
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/fs.h>
#include <linux/fb.h>
#include <linux/console.h>
#include <linux/genhd.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/major.h>
 
#include <asm/irq.h>
#include <asm/machdep.h>
 
#ifdef CONFIG_BLK_DEV_INITRD
#include <linux/blk.h>
#include <asm/pgtable.h>
#endif
 
extern void register_console(void (*proc)(const char *));
#ifdef CONFIG_CONSOLE
extern struct consw *conswitchp;
#ifdef CONFIG_FRAMEBUFFER
extern struct consw fb_con;
#endif
#endif
 
#ifdef CONFIG_BLK_DEV_INITRD
extern unsigned long _initrd_start;
extern unsigned long _initrd_end;
#endif
 
unsigned long rom_length;
unsigned long memory_start;
unsigned long memory_end;
 
#ifdef CONFIG_CONSOLE
char command_line[512] = "CONSOLE=/dev/tty MOUSE_TYPE=ps2 MOUSE_PORT=/dev/ttyS0";
#else
char command_line[512] = "CONSOLE=/dev/ttyS0";
#endif
char saved_command_line[512];
char console_device[16];
 
char console_default[] = "CONSOLE=/dev/tty";
 
/* setup some dummy routines */
static void dummy_waitbut(void)
{
}
 
void (*mach_sched_init) (void (*handler)(int, void *, struct pt_regs *)) = NULL;
void (*mach_tick)( void ) = NULL;
/* machine dependent keyboard functions */
int (*mach_keyb_init) (void) = NULL;
int (*mach_kbdrate) (struct kbd_repeat *) = NULL;
void (*mach_kbd_leds) (unsigned int) = NULL;
/* machine dependent irq functions */
void (*mach_init_IRQ) (void) = NULL;
void (*(*mach_default_handler)[]) (int, void *, struct pt_regs *) = NULL;
int (*mach_request_irq) (unsigned int, void (*)(int, void *, struct pt_regs *),
unsigned long, const char *, void *);
int (*mach_free_irq) (unsigned int, void *);
void (*mach_enable_irq) (unsigned int) = NULL;
void (*mach_disable_irq) (unsigned int) = NULL;
int (*mach_get_irq_list) (char *) = NULL;
int (*mach_process_int) (int, struct pt_regs *) = NULL;
void (*mach_trap_init) (void);
/* machine dependent timer functions */
unsigned long (*mach_gettimeoffset) (void) = NULL;
void (*mach_gettod) (int*, int*, int*, int*, int*, int*) = NULL;
int (*mach_hwclk) (int, struct hwclk_time*) = NULL;
int (*mach_set_clock_mmss) (unsigned long) = NULL;
void (*mach_mksound)( unsigned int count, unsigned int ticks ) = NULL;
void (*mach_reset)( void ) = NULL;
void (*waitbut)(void) = dummy_waitbut;
void (*mach_debug_init)(void) = NULL;
 
 
#ifdef CONFIG_OR32
#define CPU "OR32"
#endif
 
/*
* Setup the console. There may be a console defined in
* the command line arguments, so we look there first. If the
* command line arguments don't exist then we default to the
* first serial port. If we are going to use a console then
* setup its device name and the UART for it.
*/
void setup_console(void)
{
char *sp, *cp;
int i;
extern void rs_console_init(void);
extern void rs_console_print(const char *b);
#ifdef CONFIG_SERIAL
extern int rs_console_setup(char *arg);
#endif
/* Quickly check if any command line arguments for CONSOLE. */
for (sp = NULL, i = 0; (i < sizeof(command_line)-8); i++) {
if (command_line[i] == 0)
break;
if (command_line[i] == 'C') {
if (!strncmp(&command_line[i], "CONSOLE=", 8)) {
sp = &command_line[i + 8];
break;
}
}
}
 
#if 0
/* If no CONSOLE defined then default one */
if (sp == NULL) {
strcpy(command_line, console_default);
sp = command_line + 8;
}
#endif
 
/* If console specified then copy it into name buffer */
for (cp = sp, i = 0; (i < (sizeof(console_device) - 1)); i++) {
if ((*sp == 0) || (*sp == ' ') || (*sp == ','))
break;
console_device[i] = *sp++;
}
console_device[i] = 0;
 
#ifdef CONFIG_SERIAL
/* If a serial console then init it */
if (rs_console_setup(cp)) {
rs_console_init();
register_console(rs_console_print);
}
#endif
}
 
#if defined( CONFIG_GEN) && defined( CONFIG_OR32 )
#define CAT_ROMARRAY
#endif
 
void setup_arch(char **cmdline_p,
unsigned long * memory_start_p, unsigned long * memory_end_p)
{
extern int _stext, _etext;
extern int _sdata, _edata;
extern int _sbss, _ebss, _end;
extern int _ramstart, _ramend;
 
#ifdef CAT_ROMARRAY
extern int __data_rom_start;
extern int __data_start;
#endif
 
memory_start = (unsigned long)&_end;
memory_end = (unsigned long)&_ramend - 4096; /* <- stack area */
config_BSP(&command_line[0], sizeof(command_line));
setup_console();
printk("\nOpenRisc 1000 support (C) www.opencores.org\n");
printk("\r\n\nuClinux/" CPU "\n");
printk("Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne\n");
 
#ifdef DEBUG
printk("KERNEL -> TEXT=0x%06x-0x%06x DATA=0x%06x-0x%06x "
"BSS=0x%06x-0x%06x\n", (int) &_stext, (int) &_etext,
(int) &_sdata, (int) &_edata,
(int) &_sbss, (int) &_ebss);
printk("KERNEL -> ROMFS=0x%06x-0x%06x MEM=0x%06x-0x%06x "
"STACK=0x%06x-0x%06x\n",
(int) &_ebss, (int) memory_start,
(int) memory_start, (int) memory_end,
(int) memory_end, (int) &_ramend);
#endif
 
init_task.mm->start_code = (unsigned long) &_stext;
init_task.mm->end_code = (unsigned long) &_etext;
init_task.mm->end_data = (unsigned long) &_edata;
init_task.mm->brk = (unsigned long) &_end;
 
ROOT_DEV = MKDEV(RAMDISK_MAJOR,0);
 
/* Keep a copy of command line */
*cmdline_p = &command_line[0];
 
memcpy(saved_command_line, command_line, sizeof(saved_command_line));
saved_command_line[sizeof(saved_command_line)-1] = 0;
 
#ifdef DEBUG
if (strlen(*cmdline_p))
printk("Command line: '%s'\n", *cmdline_p);
else
printk("No Command line passed\n");
#endif
*memory_start_p = memory_start;
*memory_end_p = memory_end;
/*rom_length = (unsigned long)&_flashend - (unsigned long)&_romvec;*/
#ifdef CONFIG_BLK_DEV_INITRD
initrd_start = (unsigned long)&_initrd_start;
initrd_end = (unsigned long)&_initrd_end;
#endif
 
 
#ifdef CONFIG_CONSOLE
#ifdef CONFIG_FRAMEBUFFER
conswitchp = &fb_con;
#else
conswitchp = 0;
#endif
#endif
 
#ifdef DEBUG
printk("Done setup_arch\n");
#endif
 
}
 
int get_cpuinfo(char * buffer)
{
char *cpu, *mmu, *fpu;
u_long clockfreq, clockfactor;
 
cpu = CPU;
mmu = "none";
fpu = "none";
clockfactor = 16;
 
clockfreq = loops_per_sec*clockfactor;
 
return(sprintf(buffer, "CPU:\t\t%s\n"
"MMU:\t\t%s\n"
"FPU:\t\t%s\n"
"Clocking:\t%lu.%1luMHz\n"
"BogoMips:\t%lu.%02lu\n"
"Calibration:\t%lu loops\n",
cpu, mmu, fpu,
clockfreq/1000000,(clockfreq/100000)%10,
loops_per_sec/500000,(loops_per_sec/5000)%100,
loops_per_sec));
 
}
 
void arch_gettod(int *year, int *mon, int *day, int *hour,
int *min, int *sec)
{
if (mach_gettod)
mach_gettod(year, mon, day, hour, min, sec);
else
*year = *mon = *day = *hour = *min = *sec = 0;
}
 
/kernel/process.c
0,0 → 1,189
/*
* This file handles the architecture-dependent parts of process handling..
* Based on m86k.
*/
 
#include <linux/config.h>
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/stddef.h>
#include <linux/unistd.h>
#include <linux/ptrace.h>
#include <linux/malloc.h>
#include <linux/user.h>
#include <linux/a.out.h>
 
#include <asm/segment.h>
#include <asm/system.h>
#include <asm/traps.h>
#include <asm/machdep.h>
#include <asm/board.h>
 
asmlinkage void ret_from_exception(void);
 
/*
* The idle loop on an or32..
*/
asmlinkage int sys_idle(void)
{
if (current->pid != 0)
return -EPERM;
 
 
/* endless idle loop with no priority at all */
current->counter = -100;
for (;;) {
schedule();
}
}
 
void hard_reset_now(void)
{
HARD_RESET_NOW();
}
 
void show_regs(struct pt_regs * regs)
{
printk("\n");
printk("PC: %08lx Status: %08lx\n",
regs->pc, regs->sr);
printk("R0 : %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
0L, regs->sp, regs->gprs[0], regs->gprs[1],
regs->gprs[2], regs->gprs[3], regs->gprs[4], regs->gprs[5]);
printk("R8 : %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
regs->gprs[6], regs->gprs[7], regs->gprs[8], regs->gprs[9],
regs->gprs[10], regs->gprs[11], regs->gprs[12], regs->gprs[13]);
printk("R16: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
regs->gprs[14], regs->gprs[15], regs->gprs[16], regs->gprs[17],
regs->gprs[18], regs->gprs[19], regs->gprs[20], regs->gprs[21]);
printk("R24: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
regs->gprs[22], regs->gprs[23], regs->gprs[24], regs->gprs[25],
regs->gprs[26], regs->gprs[27], regs->gprs[28], regs->gprs[29]);
}
 
/*
* Free current thread data structures etc..
*/
void exit_thread(void)
{
}
 
void flush_thread(void)
{
set_fs(USER_DS);
current->tss.fs = USER_DS;
}
 
asmlinkage int sys_fork(int p1, int p2, int p3, int p4, int p5, struct pt_regs *regs)
{
return do_fork(SIGCHLD|CLONE_WAIT, regs->sp, regs);
}
 
asmlinkage int sys_clone(int p1, int p2, int p3, int p4, int p5, struct pt_regs *regs)
{
unsigned long clone_flags = (unsigned long)p1;
return do_fork(clone_flags, regs->sp, regs);
}
 
void release_thread(struct task_struct *dead_task)
{
}
 
void copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
struct task_struct * p, struct pt_regs * regs)
{
struct pt_regs * childregs;
 
/* Copy registers */
childregs = ((struct pt_regs *) (p->kernel_stack_page + PAGE_SIZE)) - 1;
*childregs = *regs; /* STRUCT COPY */
childregs->gprs[9] = 0x0; /* Result from fork() */
p->tss.ksp = childregs;
 
/* If this is kernel thread, than we can use kernel stack also as
"user" stack, if not, we use user stack from parent which should be a sleep
till we execute execve or exit (that is why sys_fork has CLONE_WAIT
flag allway set ) */
if(regs->sr & SPR_SR_SM) {
childregs->sp = (unsigned long)(childregs+1);
p->tss.usp = (unsigned long)(childregs+1);
}
else {
childregs->sp = usp;
p->tss.usp = usp;
}
}
 
/* Fill in the fpu structure for a core dump. */
 
int dump_fpu (struct pt_regs *regs, struct user_or32fp_struct *fpu)
{
return 0;
}
 
void switch_to(struct task_struct *prev, struct task_struct *new)
{
struct pt_regs *regs;
struct thread_struct *new_tss, *old_tss;
long flags;
 
save_flags(flags);
cli();
 
regs = (struct pt_regs *)new->tss.ksp;
new_tss = &new->tss;
old_tss = &current->tss;
current_set[0] = new; /* FIX ME! */
_switch(old_tss, new_tss);
restore_flags(flags);
}
 
/*
* fill in the user structure for a core dump..
*/
void dump_thread(struct pt_regs * regs, struct user * dump)
{
/* changed the size calculations - should hopefully work better. lbt */
dump->magic = CMAGIC;
dump->start_code = 0;
dump->start_stack = regs->sp & ~(PAGE_SIZE - 1);
dump->u_tsize = ((unsigned long) current->mm->end_code) >> PAGE_SHIFT;
dump->u_dsize = ((unsigned long) (current->mm->brk +
(PAGE_SIZE-1))) >> PAGE_SHIFT;
dump->u_dsize -= dump->u_tsize;
dump->u_ssize = 0;
 
 
dump->u_ar0 = (struct pt_regs *)(((int)(&dump->regs)) -((int)(dump)));
dump->regs = *regs;
/* dump floating point stuff */
dump->u_fpvalid = dump_fpu (regs, &dump->or32fp);
}
 
/*
* sys_execve() executes a new program.
*/
asmlinkage int sys_execve(char *name, char **argv, char **envp,
int dummy1, int dummy2, unsigned long sp)
{
int error;
char * filename;
struct pt_regs *regs = (struct pt_regs *) sp;
 
_print("%s - %s:%d\n",__FILE__,__FUNCTION__,__LINE__);
error = getname(name, &filename);
_print("%s - %s:%d\n",__FILE__,__FUNCTION__,__LINE__);
if (error)
return error;
_print("%s - %s:%d\n",__FILE__,__FUNCTION__,__LINE__);
error = do_execve(filename, argv, envp, regs);
_print("%s - %s:%d\n",__FILE__,__FUNCTION__,__LINE__);
putname(filename);
#if ICACHE
ic_invalidate();
#endif
_print("%s - %s:%d\n",__FILE__,__FUNCTION__,__LINE__);
return error;
}
/kernel/ptrace.c
0,0 → 1,356
/*
* linux/arch/m68knommu/kernel/ptrace.c
*
* Copyright (C) 1998 D. Jeff Dionne <jeff@ryeham.ee.ryerson.ca>,
* Kenneth Albanowski <kjahds@kjahds.com>,
* The Silver Hammer Group, Ltd.
*
* Based on:
*
* linux/arch/m68k/kernel/ptrace
*
* Copyright (C) 1994 by Hamish Macdonald
* Taken from linux/kernel/ptrace.c and modified for M680x0.
* linux/kernel/ptrace.c is by Ross Biro 1/23/92, edited by Linus Torvalds
*
* This file is subject to the terms and conditions of the GNU General
* Public License. See the file COPYING in the main directory of
* this archive for more details.
*/
 
#include <stddef.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/string.h>
 
#include <linux/mm.h>
#include <linux/errno.h>
#include <linux/ptrace.h>
#include <linux/user.h>
 
#include <asm/segment.h>
#include <asm/page.h>
#include <asm/pgtable.h>
#include <asm/system.h>
 
/*
* does not yet catch signals sent when the child dies.
* in exit.c or in signal.c.
*/
 
/* determines which bits in the SR the user has access to. */
/* 1 = access 0 = no access */
#define SR_MASK 0x001f
 
/* sets the trace bits. */
#define TRACE_BITS 0x8000
 
/* Mapping from PT_xxx to the stack offset at which the register is
saved. Notice that usp has no stack-slot and needs to be treated
specially (see get_reg/put_reg below). */
static int regoff[] = {0,0,0,0,0,0};
 
/* change a pid into a task struct. */
static inline struct task_struct * get_task(int pid)
{
int i;
 
for (i = 1; i < NR_TASKS; i++) {
if (task[i] != NULL && (task[i]->pid == pid))
return task[i];
}
return NULL;
}
 
/*
* Get contents of register REGNO in task TASK.
*/
static inline long get_reg(struct task_struct *task, int regno)
{
unsigned long *addr;
/* SIMON */
#if 0
if (regno == PT_USP)
addr = &task->tss.usp;
else if (regno < sizeof(regoff)/sizeof(regoff[0]))
addr = (unsigned long *)(task->tss.esp0 + regoff[regno]);
else
return 0;
#endif
return *addr;
}
 
/*
* Write contents of register REGNO in task TASK.
*/
static inline int put_reg(struct task_struct *task, int regno,
unsigned long data)
{
/* SIMON */
#if 0
unsigned long *addr;
if (regno == PT_USP)
addr = &task->tss.usp;
else if (regno < sizeof(regoff)/sizeof(regoff[0]))
addr = (unsigned long *) (task->tss.esp0 + regoff[regno]);
else
return -1;
*addr = data;
#endif
return 0;
}
 
inline
static unsigned long get_long(struct task_struct * tsk,
struct vm_area_struct * vma, unsigned long addr)
{
return *(unsigned long*)addr;
}
 
inline
static void put_long(struct task_struct * tsk, struct vm_area_struct * vma, unsigned long addr,
unsigned long data)
{
*(unsigned long*)addr = data;
}
 
 
inline
static int read_long(struct task_struct * tsk, unsigned long addr,
unsigned long * result)
{
*result = *(unsigned long *)addr;
return 0;
}
 
inline
static int write_long(struct task_struct * tsk, unsigned long addr,
unsigned long data)
{
*(unsigned long *)addr = data;
return 0;
}
 
asmlinkage int sys_ptrace(long request, long pid, long addr, long data)
{
/* SIMON */
#if 0
struct task_struct *child;
struct user * dummy;
dummy = NULL;
 
if (request == PTRACE_TRACEME) {
/* are we already being traced? */
if (current->flags & PF_PTRACED)
return -EPERM;
/* set the ptrace bit in the process flags. */
current->flags |= PF_PTRACED;
return 0;
}
if (pid == 1) /* you may not mess with init */
return -EPERM;
if (!(child = get_task(pid)))
return -ESRCH;
if (request == PTRACE_ATTACH) {
if (child == current)
return -EPERM;
if ((!child->dumpable ||
(current->uid != child->euid) ||
(current->uid != child->suid) ||
(current->uid != child->uid) ||
(current->gid != child->egid) ||
(current->gid != child->sgid) ||
(current->gid != child->gid)) && !suser())
return -EPERM;
/* the same process cannot be attached many times */
if (child->flags & PF_PTRACED)
return -EPERM;
child->flags |= PF_PTRACED;
if (child->p_pptr != current) {
REMOVE_LINKS(child);
child->p_pptr = current;
SET_LINKS(child);
}
send_sig(SIGSTOP, child, 1);
return 0;
}
if (!(child->flags & PF_PTRACED))
return -ESRCH;
if (child->state != TASK_STOPPED) {
if (request != PTRACE_KILL)
return -ESRCH;
}
if (child->p_pptr != current)
return -ESRCH;
 
switch (request) {
/* when I and D space are separate, these will need to be fixed. */
case PTRACE_PEEKTEXT: /* read word at location addr. */
case PTRACE_PEEKDATA: {
unsigned long tmp;
int res;
 
res = read_long(child, addr, &tmp);
if (res < 0)
return res;
res = verify_area(VERIFY_WRITE, (void *) data, sizeof(long));
if (!res)
put_user(tmp, (unsigned long *) data);
return res;
}
 
/* read the word at location addr in the USER area. */
case PTRACE_PEEKUSR: {
unsigned long tmp;
int res;
if ((addr & 3) || addr < 0 || addr >= sizeof(struct user))
return -EIO;
res = verify_area(VERIFY_WRITE, (void *) data,
sizeof(long));
if (res)
return res;
tmp = 0; /* Default return condition */
addr = addr >> 2; /* temporary hack. */
if (addr < 19) {
tmp = get_reg(child, addr);
if (addr == PT_SR)
tmp >>= 16;
}
else if (addr >= 21 && addr < 49)
tmp = child->tss.fp[addr - 21];
else if (addr == 49)
tmp = child->mm->start_code;
else if (addr == 50)
tmp = child->mm->start_data;
else
return -EIO;
put_user(tmp,(unsigned long *) data);
return 0;
}
 
/* when I and D space are separate, this will have to be fixed. */
case PTRACE_POKETEXT: /* write the word at location addr. */
case PTRACE_POKEDATA:
return write_long(child,addr,data);
 
case PTRACE_POKEUSR: /* write the word at location addr in the USER area */
if ((addr & 3) || addr < 0 || addr >= sizeof(struct user))
return -EIO;
 
addr = addr >> 2; /* temporary hack. */
if (addr == PT_ORIG_D0)
return -EIO;
if (addr == PT_SR) {
data &= SR_MASK;
data <<= 16;
data |= get_reg(child, PT_SR) & ~(SR_MASK << 16);
}
if (addr < 19) {
if (put_reg(child, addr, data))
return -EIO;
return 0;
}
if (addr >= 21 && addr < 48)
{
child->tss.fp[addr - 21] = data;
return 0;
}
return -EIO;
 
case PTRACE_SYSCALL: /* continue and stop at next (return from) syscall */
case PTRACE_CONT: { /* restart after signal. */
long tmp;
 
if ((unsigned long) data >= NSIG)
return -EIO;
if (request == PTRACE_SYSCALL)
child->flags |= PF_TRACESYS;
else
child->flags &= ~PF_TRACESYS;
child->exit_code = data;
wake_up_process(child);
/* make sure the single step bit is not set. */
tmp = get_reg(child, PT_SR) & ~(TRACE_BITS << 16);
put_reg(child, PT_SR, tmp);
return 0;
}
 
/*
* make the child exit. Best I can do is send it a sigkill.
* perhaps it should be put in the status that it wants to
* exit.
*/
case PTRACE_KILL: {
long tmp;
 
if (child->state == TASK_ZOMBIE) /* already dead */
return 0;
wake_up_process(child);
child->exit_code = SIGKILL;
/* make sure the single step bit is not set. */
tmp = get_reg(child, PT_SR) & ~(TRACE_BITS << 16);
put_reg(child, PT_SR, tmp);
return 0;
}
 
case PTRACE_SINGLESTEP: { /* set the trap flag. */
long tmp;
 
if ((unsigned long) data >= NSIG)
return -EIO;
child->flags &= ~PF_TRACESYS;
tmp = get_reg(child, PT_SR) | (TRACE_BITS << 16);
put_reg(child, PT_SR, tmp);
 
wake_up_process(child);
child->exit_code = data;
/* give it a chance to run. */
return 0;
}
 
case PTRACE_DETACH: { /* detach a process that was attached. */
long tmp;
 
if ((unsigned long) data >= NSIG)
return -EIO;
child->flags &= ~(PF_PTRACED|PF_TRACESYS);
wake_up_process(child);
child->exit_code = data;
REMOVE_LINKS(child);
child->p_pptr = child->p_opptr;
SET_LINKS(child);
/* make sure the single step bit is not set. */
tmp = get_reg(child, PT_SR) & ~(TRACE_BITS << 16);
put_reg(child, PT_SR, tmp);
return 0;
}
 
default:
return -EIO;
}
#endif
return 0;
}
 
asmlinkage void syscall_trace(void)
{
if ((current->flags & (PF_PTRACED|PF_TRACESYS))
!= (PF_PTRACED|PF_TRACESYS))
return;
current->exit_code = SIGTRAP;
current->state = TASK_STOPPED;
notify_parent(current, SIGCHLD);
schedule();
/*
* this isn't the same as continuing with a signal, but it will do
* for normal use. strace only continues with a signal if the
* stopping signal is not SIGTRAP. -brl
*/
if (current->exit_code)
current->signal |= (1 << (current->exit_code - 1));
current->exit_code = 0;
return;
}
/kernel/time.c
0,0 → 1,161
/*
* linux/arch/or32/kernel/time.c
*
* Copied/hacked from:
*
* linux/arch/m68knommu/kernel/time.c
*
* Copyright (C) 1991, 1992, 1995 Linus Torvalds
*
* This file contains the m68k-specific time handling details.
* Most of the stuff is located in the machine specific files.
*/
 
#include <linux/config.h>
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/param.h>
#include <linux/string.h>
#include <linux/mm.h>
 
#include <asm/machdep.h>
#include <asm/segment.h>
#include <asm/io.h>
 
#include <linux/timex.h>
 
 
static inline int set_rtc_mmss(unsigned long nowtime)
{
if (mach_set_clock_mmss)
return mach_set_clock_mmss (nowtime);
return -1;
}
 
/*
* timer_interrupt() needs to keep up the real-time clock,
* as well as call the "do_timer()" routine every clocktick
*/
/* void timer_interrupt(int irq, void *dummy, struct pt_regs * regs)
*/
void timer_interrupt(struct pt_regs * regs)
{
/* last time the cmos clock got updated */
static long last_rtc_update=0;
/* may need to kick the hardware timer */
if (mach_tick)
mach_tick();
 
do_timer(regs);
 
/*
* If we have an externally synchronized Linux clock, then update
* CMOS clock accordingly every ~11 minutes. Set_rtc_mmss() has to be
* called as close as possible to 500 ms before the new second starts.
*/
if (time_state != TIME_BAD && xtime.tv_sec > last_rtc_update + 660 &&
xtime.tv_usec > 500000 - (tick >> 1) &&
xtime.tv_usec < 500000 + (tick >> 1)) {
if (set_rtc_mmss(xtime.tv_sec) == 0)
last_rtc_update = xtime.tv_sec;
else
last_rtc_update = xtime.tv_sec - 600; /* do it again in 60 s */
}
 
}
 
/* Converts Gregorian date to seconds since 1970-01-01 00:00:00.
* Assumes input in normal date format, i.e. 1980-12-31 23:59:59
* => year=1980, mon=12, day=31, hour=23, min=59, sec=59.
*
* [For the Julian calendar (which was used in Russia before 1917,
* Britain & colonies before 1752, anywhere else before 1582,
* and is still in use by some communities) leave out the
* -year/100+year/400 terms, and add 10.]
*
* This algorithm was first published by Gauss (I think).
*
* WARNING: this function will overflow on 2106-02-07 06:28:16 on
* machines were long is 32-bit! (However, as time_t is signed, we
* will already get problems at other places on 2038-01-19 03:14:08)
*/
static inline unsigned long mktime(unsigned int year, unsigned int mon,
unsigned int day, unsigned int hour,
unsigned int min, unsigned int sec)
{
if (0 >= (int) (mon -= 2)) { /* 1..12 -> 11,12,1..10 */
mon += 12; /* Puts Feb last since it has leap day */
year -= 1;
}
return (((
(unsigned long)(year/4 - year/100 + year/400 + 367*mon/12 + day) +
year*365 - 719499
)*24 + hour /* now have hours */
)*60 + min /* now have minutes */
)*60 + sec; /* finally seconds */
}
 
void time_init(void)
{
unsigned int year, mon, day, hour, min, sec;
 
extern void arch_gettod(int *year, int *mon, int *day, int *hour,
int *min, int *sec);
 
arch_gettod (&year, &mon, &day, &hour, &min, &sec);
 
if ((year += 1900) < 1970)
year += 100;
xtime.tv_sec = mktime(year, mon, day, hour, min, sec);
xtime.tv_usec = 0;
 
if (mach_sched_init)
mach_sched_init(timer_interrupt);
}
 
/*
* This version of gettimeofday has near microsecond resolution.
*/
void do_gettimeofday(struct timeval *tv)
{
unsigned long flags;
save_flags(flags);
cli();
*tv = xtime;
if (mach_gettimeoffset) {
tv->tv_usec += mach_gettimeoffset();
if (tv->tv_usec >= 1000000) {
tv->tv_usec -= 1000000;
tv->tv_sec++;
}
}
restore_flags(flags);
}
 
void do_settimeofday(struct timeval *tv)
{
cli();
/* This is revolting. We need to set the xtime.tv_usec
* correctly. However, the value in this location is
* is value at the last tick.
* Discover what correction gettimeofday
* would have done, and then undo it!
*/
if (mach_gettimeoffset)
tv->tv_usec -= mach_gettimeoffset();
 
if (tv->tv_usec < 0) {
tv->tv_usec += 1000000;
tv->tv_sec--;
}
 
xtime = *tv;
time_state = TIME_BAD;
time_maxerror = MAXPHASE;
time_esterror = MAXPHASE;
sti();
}
 
/kernel/bios32.c
0,0 → 1,201
/*****************************************************************************/
 
/*
* bios32.c -- PCI access code for embedded CO-MEM Lite PCI controller.
*
* (C) Copyright 1999-2000, Greg Ungerer (gerg@moreton.com.au).
*/
 
/*****************************************************************************/
 
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/bios32.h>
#include <linux/pci.h>
#include <asm/anchor.h>
 
/*****************************************************************************/
#ifdef CONFIG_PCI
/*****************************************************************************/
 
unsigned long pcibios_init(unsigned long mem_start, unsigned long mem_end)
{
volatile unsigned long *rp;
int slot;
 
#if 0
printk("%s(%d): pcibios_init()\n", __FILE__, __LINE__);
#endif
 
/*
* Do some sort of basic check to see if the CO-MEM part
* is present...
*/
rp = (volatile unsigned long *) COMEM_BASE;
if ((rp[COMEM_LBUSCFG] & 0xffff) != 0x0b50) {
printk("PCI: no PCI bus present\n");
return(mem_start);
}
 
/*
* Do a quick scan of the PCI bus and see what is here.
*/
for (slot = COMEM_MINIDSEL; (slot <= COMEM_MAXIDSEL); slot++) {
rp[COMEM_DAHBASE] = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << slot);
rp[COMEM_PCIBUS] = 0; /* Clear bus */
printk("PCI: slot %d --> %08x\n", slot, rp[COMEM_PCIBUS]);
}
 
return(mem_start);
}
 
/*****************************************************************************/
 
unsigned long pcibios_fixup(unsigned long mem_start, unsigned long mem_end)
{
return(mem_start);
}
 
/*****************************************************************************/
 
int pcibios_present(void)
{
return(1);
}
 
/*****************************************************************************/
 
int pcibios_read_config_dword(unsigned char bus, unsigned char dev,
unsigned char offset, unsigned int *val)
{
#if 0
printk("%s(%d): pcibios_read_config_dword(bus=%x,dev=%x,offset=%x,"
"val=%x)\n", __FILE__, __LINE__, bus, dev, offset, val);
#endif
*val = 0xffffffff;
return(PCIBIOS_SUCCESSFUL);
}
 
/*****************************************************************************/
 
int pcibios_read_config_word(unsigned char bus, unsigned char dev,
unsigned char offset, unsigned short *val)
{
#if 0
printk("%s(%d): pcibios_read_config_word(bus=%x,dev=%x,offset=%x)\n",
__FILE__, __LINE__, bus, dev, offset);
#endif
*val = 0xffff;
return(PCIBIOS_SUCCESSFUL);
}
 
/*****************************************************************************/
 
int pcibios_read_config_byte(unsigned char bus, unsigned char dev,
unsigned char offset, unsigned char *val)
{
#if 0
printk("%s(%d): pcibios_read_config_byte(bus=%x,dev=%x,offset=%x)\n",
__FILE__, __LINE__, bus, dev, offset);
#endif
*val = 0xff;
return(PCIBIOS_SUCCESSFUL);
}
 
/*****************************************************************************/
 
int pcibios_write_config_dword(unsigned char bus, unsigned char dev,
unsigned char offset, unsigned int val)
{
#if 0
printk("%s(%d): pcibios_write_config_dword(bus=%x,dev=%x,offset=%x)\n",
__FILE__, __LINE__, bus, dev, offset);
#endif
return(PCIBIOS_SUCCESSFUL);
}
 
/*****************************************************************************/
 
int pcibios_write_config_word(unsigned char bus, unsigned char dev,
unsigned char offset, unsigned short val)
{
#if 0
printk("%s(%d): pcibios_write_config_word(bus=%x,dev=%x,offset=%x)\n",
__FILE__, __LINE__, bus, dev, offset);
#endif
return(PCIBIOS_SUCCESSFUL);
}
 
/*****************************************************************************/
 
int pcibios_write_config_byte(unsigned char bus, unsigned char dev,
unsigned char offset, unsigned char val)
{
#if 0
printk("%s(%d): pcibios_write_config_byte(bus=%x,dev=%x,offset=%x)\n",
__FILE__, __LINE__, bus, dev, offset);
#endif
return(PCIBIOS_SUCCESSFUL);
}
 
/*****************************************************************************/
 
int pcibios_find_device(unsigned short vendor, unsigned short devid,
unsigned short index, unsigned char *bus, unsigned char *dev)
{
unsigned int vendev, val;
unsigned char devnr;
 
#if 0
printk("%s(%d): pcibios_find_device(vendor=%04x,devid=%04x,"
"index=%d)\n", __FILE__, __LINE__, vendor, devid, index);
#endif
 
if (vendor == 0xffff)
return(PCIBIOS_BAD_VENDOR_ID);
 
vendev = (devid << 16) | vendor;
for (devnr = 0; (devnr < 32); devnr++) {
pcibios_read_config_dword(0, devnr, PCI_VENDOR_ID, &val);
if (vendev == val) {
if (index-- == 0) {
*bus = 0;
*dev = devnr;
return(PCIBIOS_SUCCESSFUL);
}
}
}
 
return(PCIBIOS_DEVICE_NOT_FOUND);
}
 
/*****************************************************************************/
 
int pcibios_find_class(unsigned int class, unsigned short index,
unsigned char *bus, unsigned char *dev)
{
unsigned int val;
unsigned char devnr;
 
#if 0
printk("%s(%d): pcibios_find_class(class=%04x,index=%d)\n",
__FILE__, __LINE__, class, index);
#endif
 
for (devnr = 0; (devnr < 32); devnr++) {
pcibios_read_config_dword(0, devnr, PCI_CLASS_REVISION, &val);
if ((val >> 8) == class) {
if (index-- == 0) {
*bus = 0;
*dev = devnr;
return(PCIBIOS_SUCCESSFUL);
}
}
}
 
return(PCIBIOS_DEVICE_NOT_FOUND);
}
 
/*****************************************************************************/
#endif /* CONFIG_PCI */
/kernel/console.c
0,0 → 1,2658
 
/*
* arch/or32/kernel/console.c
*
* Copyright (C) 2001,2002 Simon Srot <srot@opencores.org>,
* www.opencores.org
*
* Based on:
*
* arch/m68knommu/kernel/console.c
*
*
* linux/drivers/char/console.c
*
* Copyright (C) 1991, 1992 Linus Torvalds
*/
/*
* console.c
*
* This module exports the console io functions:
*
* 'void do_keyboard_interrupt(void)'
*
* 'int vc_allocate(unsigned int console)'
* 'int vc_cons_allocated(unsigned int console)'
* 'int vc_resize(unsigned long lines, unsigned long cols)'
* 'int vc_resize_con(unsigned long lines, unsigned long cols,
* unsigned int currcons)'
* 'void vc_disallocate(unsigned int currcons)'
*
* 'unsigned long con_init(unsigned long)'
* 'int con_open(struct tty_struct *tty, struct file * filp)'
* 'void con_write(struct tty_struct * tty)'
* 'void console_print(const char * b)'
* 'void update_screen(int new_console)'
*
* 'void do_blank_screen(int)'
* 'void do_unblank_screen(void)'
* 'void poke_blanked_console(void)'
*
* 'unsigned short *screen_pos(int currcons, int w_offset, int viewed)'
* 'void complement_pos(int currcons, int offset)'
* 'void invert_screen(int currcons, int offset, int count, int shift)'
*
* 'void scrollback(int lines)'
* 'void scrollfront(int lines)'
*
* 'int con_get_font(char *)'
* 'int con_set_font(char *)'
*
* 'void mouse_report(struct tty_struct * tty, int butt, int mrx, int mry)'
* 'int mouse_reporting(void)'
*
* 'unsigned long get_video_num_lines(unsigned int console)'
* 'unsigned long get_video_num_columns(unsigned int console)'
* 'unsigned long get_video_size_row(unsigned int console)'
*
* Hopefully this will be a rather complete VT102 implementation.
*
* Beeping thanks to John T Kohl.
*
* Virtual Consoles, Screen Blanking, Screen Dumping, Color, Graphics
* Chars, and VT100 enhancements by Peter MacDonald.
*
* Copy and paste function by Andrew Haylett,
* some enhancements by Alessandro Rubini.
*
* User definable mapping table and font loading by Eugene G. Crosser,
* <crosser@pccross.msk.su>
*
* Code to check for different video-cards mostly by Galen Hunt,
* <g-hunt@ee.utah.edu>
*
* Rudimentary ISO 10646/Unicode/UTF-8 character set support by
* Markus Kuhn, <mskuhn@immd4.informatik.uni-erlangen.de>.
*
* Dynamic allocation of consoles, aeb@cwi.nl, May 1994
* Resizing of consoles, aeb, 940926
*
* Code for xterm like mouse click reporting by Peter Orbaek 20-Jul-94
* <poe@daimi.aau.dk>
*
* 680x0 LINUX support by Arno Griffioen (arno@usn.nl)
*
* 9-Apr-94: Arno Griffioen: fixed scrolling and delete-char bug.
* Scrolling code moved to amicon.c
*
* 18-Apr-94: David Carter [carter@cs.bris.ac.uk]. 680x0 LINUX modified
* Integrated support for new low level driver `amicon_ocs.c'
*
*/
 
#define BLANK 0x0020
#define CAN_LOAD_EGA_FONTS /* undefine if the user must not do this */
 
/* A bitmap for codes <32. A bit of 1 indicates that the code
* corresponding to that bit number invokes some special action
* (such as cursor movement) and should not be displayed as a
* glyph unless the disp_ctrl mode is explicitly enabled.
*/
#define CTRL_ACTION 0x0d00ff81
#define CTRL_ALWAYS 0x0800f501 /* Cannot be overridden by disp_ctrl */
 
/*
* Here is the default bell parameters: 750HZ, 1/8th of a second
*/
#define DEFAULT_BELL_PITCH 750
#define DEFAULT_BELL_DURATION (HZ/8)
 
/*
* NOTE!!! We sometimes disable and enable interrupts for a short while
* (to put a word in video IO), but this will work even for keyboard
* interrupts. We know interrupts aren't enabled when getting a keyboard
* interrupt, as we use trap-gates. Hopefully all is well.
*/
 
#include <linux/config.h>
#include <linux/sched.h>
#include <linux/timer.h>
#include <linux/interrupt.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/errno.h>
#include <linux/console.h>
#include <linux/kd.h>
#include <linux/malloc.h>
#include <linux/major.h>
#include <linux/mm.h>
#include <linux/ioport.h>
 
#include <asm/io.h>
#include <asm/segment.h>
#include <asm/system.h>
#include <asm/bitops.h>
 
#include "../../../drivers/char/kbd_kern.h"
#include "../../../drivers/char/vt_kern.h"
#include "../../../drivers/char/consolemap.h"
#include "../../../drivers/char/selection.h"
 
 
#ifndef MIN
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#endif
 
struct tty_driver console_driver;
static int console_refcount;
static struct tty_struct *console_table[MAX_NR_CONSOLES];
static struct termios *console_termios[MAX_NR_CONSOLES];
static struct termios *console_termios_locked[MAX_NR_CONSOLES];
 
static void vc_init(unsigned int console, int do_clear);
 
static void update_attr(int currcons);
static void gotoxy(int currcons, int new_x, int new_y);
static void save_cur(int currcons);
static void blank_screen(void);
static void unblank_screen(void);
extern void change_console(unsigned int);
static inline void set_cursor(int currcons);
static void reset_terminal(int currcons, int do_clear);
extern void reset_vc(unsigned int new_console);
extern void vt_init(void);
extern void register_console(void (*proc)(const char *));
extern void vesa_blank(void);
extern void vesa_unblank(void);
extern void compute_shiftstate(void);
void poke_blanked_console(void);
void do_blank_screen(int);
 
unsigned long video_num_lines;
unsigned long video_num_columns;
unsigned long video_size_row;
 
static int printable = 0; /* Is console ready for printing? */
unsigned long video_font_height; /* Height of current screen font */
unsigned long video_scan_lines; /* Number of scan lines on screen */
unsigned long default_font_height; /* Height of default screen font */
int video_mode_512ch = 0; /* 512-character mode */
static unsigned short console_charmask = 0x0ff;
 
static unsigned short *vc_scrbuf[MAX_NR_CONSOLES];
 
/* used by kbd_bh - set by keyboard_interrupt */
int do_poke_blanked_console = 0;
int console_blanked = 0;
static int blankinterval = 10*60*HZ;
static int vesa_off_interval = 0;
static int vesa_blank_mode = 0; /* 0:none 1:suspendV 2:suspendH 3:powerdown */
 
static struct vc {
struct vc_data *d;
 
/* might add scrmem, vt_struct, kbd at some time,
to have everything in one place - the disadvantage
would be that vc_cons etc can no longer be static */
} vc_cons [MAX_NR_CONSOLES];
struct consw *conswitchp;
 
#define cols (vc_cons[currcons].d->vc_cols)
#define rows (vc_cons[currcons].d->vc_rows)
#define size_row (vc_cons[currcons].d->vc_size_row)
#define screenbuf_size (vc_cons[currcons].d->vc_screenbuf_size)
#define cons_num (vc_cons[currcons].d->vc_num)
#define origin (vc_cons[currcons].d->vc_origin)
#define scr_end (vc_cons[currcons].d->vc_scr_end)
#define pos (vc_cons[currcons].d->vc_pos)
#define top (vc_cons[currcons].d->vc_top)
#define bottom (vc_cons[currcons].d->vc_bottom)
#define x (vc_cons[currcons].d->vc_x)
#define y (vc_cons[currcons].d->vc_y)
#define vc_state (vc_cons[currcons].d->vc_state)
#define npar (vc_cons[currcons].d->vc_npar)
#define par (vc_cons[currcons].d->vc_par)
#define ques (vc_cons[currcons].d->vc_ques)
#define attr (vc_cons[currcons].d->vc_attr)
#define saved_x (vc_cons[currcons].d->vc_saved_x)
#define saved_y (vc_cons[currcons].d->vc_saved_y)
#define translate (vc_cons[currcons].d->vc_translate)
#define G0_charset (vc_cons[currcons].d->vc_G0_charset)
#define G1_charset (vc_cons[currcons].d->vc_G1_charset)
#define saved_G0 (vc_cons[currcons].d->vc_saved_G0)
#define saved_G1 (vc_cons[currcons].d->vc_saved_G1)
#define utf (vc_cons[currcons].d->vc_utf)
#define utf_count (vc_cons[currcons].d->vc_utf_count)
#define utf_char (vc_cons[currcons].d->vc_utf_char)
#define video_mem_start (vc_cons[currcons].d->vc_video_mem_start)
#define video_mem_end (vc_cons[currcons].d->vc_video_mem_end)
#define video_erase_char (vc_cons[currcons].d->vc_video_erase_char)
#define disp_ctrl (vc_cons[currcons].d->vc_disp_ctrl)
#define toggle_meta (vc_cons[currcons].d->vc_toggle_meta)
#define decscnm (vc_cons[currcons].d->vc_decscnm)
#define decom (vc_cons[currcons].d->vc_decom)
#define decawm (vc_cons[currcons].d->vc_decawm)
#define deccm (vc_cons[currcons].d->vc_deccm)
#define decim (vc_cons[currcons].d->vc_decim)
#define deccolm (vc_cons[currcons].d->vc_deccolm)
#define need_wrap (vc_cons[currcons].d->vc_need_wrap)
#define has_scrolled (vc_cons[currcons].d->vc_has_scrolled)
#define kmalloced (vc_cons[currcons].d->vc_kmalloced)
#define report_mouse (vc_cons[currcons].d->vc_report_mouse)
#define can_do_color (vc_cons[currcons].d->vc_can_do_color)
#define color (vc_cons[currcons].d->vc_color)
#define s_color (vc_cons[currcons].d->vc_s_color)
#define def_color (vc_cons[currcons].d->vc_def_color)
#define foreground (color & 0x0f)
#define background (color & 0xf0)
#define charset (vc_cons[currcons].d->vc_charset)
#define s_charset (vc_cons[currcons].d->vc_s_charset)
#define intensity (vc_cons[currcons].d->vc_intensity)
#define underline (vc_cons[currcons].d->vc_underline)
#define blink (vc_cons[currcons].d->vc_blink)
#define reverse (vc_cons[currcons].d->vc_reverse)
#define s_intensity (vc_cons[currcons].d->vc_s_intensity)
#define s_underline (vc_cons[currcons].d->vc_s_underline)
#define s_blink (vc_cons[currcons].d->vc_s_blink)
#define s_reverse (vc_cons[currcons].d->vc_s_reverse)
#define ulcolor (vc_cons[currcons].d->vc_ulcolor)
#define halfcolor (vc_cons[currcons].d->vc_halfcolor)
#define tab_stop (vc_cons[currcons].d->vc_tab_stop)
#define bell_pitch (vc_cons[currcons].d->vc_bell_pitch)
#define bell_duration (vc_cons[currcons].d->vc_bell_duration)
#define sw (vc_cons[currcons].d->vc_sw)
 
#define vcmode (vt_cons[currcons]->vc_mode)
#if 0 /* XXX */
#define vtmode (vt_cons[currcons]->vt_mode)
#define vtpid (vt_cons[currcons]->vt_pid)
#define vtnewvt (vt_cons[currcons]->vt_newvt)
#endif
 
#define structsize (sizeof(struct vc_data) + sizeof(struct vt_struct))
 
int vc_cons_allocated(unsigned int i)
{
return (i < MAX_NR_CONSOLES && vc_cons[i].d);
}
 
int vc_allocate(unsigned int currcons) /* return 0 on success */
{
if (currcons >= MAX_NR_CONSOLES)
return -ENODEV;
if (!vc_cons[currcons].d) {
long p, q;
 
/* prevent users from taking too much memory */
if (currcons >= MAX_NR_USER_CONSOLES && !suser())
return -EPERM;
 
/* due to the granularity of kmalloc, we waste some memory here */
/* the alloc is done in two steps, to optimize the common situation
of a 25x80 console (structsize=216, screenbuf_size=4000) */
p = (long) kmalloc(structsize, GFP_KERNEL);
if (!p)
return -ENOMEM;
vc_cons[currcons].d = (struct vc_data *) p;
vt_cons[currcons] = (struct vt_struct *)(p+sizeof(struct vc_data));
 
/* ++Geert: sw->con_init determines console size */
sw = conswitchp;
cons_num = currcons;
sw->con_init (vc_cons[currcons].d);
size_row = cols<<1;
screenbuf_size = rows*size_row;
 
q = (long) kmalloc(screenbuf_size, GFP_KERNEL);
if (!q) {
kfree_s((char *) p, structsize);
vc_cons[currcons].d = NULL;
return -ENOMEM;
}
vc_scrbuf[currcons] = (unsigned short *) q;
kmalloced = 1;
vc_init (currcons, 1);
}
return 0;
}
 
/*
* Change # of rows and columns (0 means the size of fg_console)
* [this is to be used together with some user program
* like resize that changes the hardware videomode]
*/
int vc_resize(unsigned long lines, unsigned long columns)
{
unsigned long cc, ll, ss, sr;
unsigned long occ, oll, oss, osr;
unsigned short *p;
unsigned int currcons = fg_console, i;
unsigned short *newscreens[MAX_NR_CONSOLES];
long ol, nl, rlth, rrem;
 
cc = (columns ? columns : cols);
ll = (lines ? lines : rows);
sr = cc << 1;
ss = sr * ll;
 
/*
* Some earlier version had all consoles of potentially
* different sizes, but that was really messy.
* So now we only change if there is room for all consoles
* of the same size.
*/
for (currcons = 0; currcons < MAX_NR_CONSOLES; currcons++) {
if (!vc_cons_allocated(currcons))
newscreens[currcons] = 0;
else {
p = (unsigned short *) kmalloc(ss, GFP_USER);
if (!p) {
for (i = 0; i< currcons; i++)
if (newscreens[i])
kfree_s(newscreens[i], ss);
return -ENOMEM;
}
newscreens[currcons] = p;
}
}
 
#if 0 /* XXX */
get_scrmem(fg_console);
#endif
 
for (currcons = 0; currcons < MAX_NR_CONSOLES; currcons++) {
if (!vc_cons_allocated(currcons))
continue;
 
oll = rows;
occ = cols;
osr = size_row;
oss = screenbuf_size;
 
rows = ll;
cols = cc;
size_row = sr;
screenbuf_size = ss;
 
rlth = MIN(osr, sr);
rrem = sr - rlth;
ol = origin;
nl = (long) newscreens[currcons];
if (ll < oll)
ol += (oll - ll) * osr;
 
update_attr(currcons);
while (ol < scr_end) {
/* ++Geert: TODO: Because the attributes have different meanings
on monochrome and color, they should really be converted if
can_do_color changes... */
memcpyw((unsigned short *) nl, (unsigned short *) ol, rlth);
if (rrem)
memsetw((void *)(nl + rlth), video_erase_char, rrem);
ol += osr;
nl += sr;
}
 
if (kmalloced)
kfree_s(vc_scrbuf[currcons], oss);
vc_scrbuf[currcons] = newscreens[currcons];
kmalloced = 1;
screenbuf_size = ss;
 
origin = (long) video_mem_start = vc_scrbuf[currcons];
scr_end = video_mem_end = ((long) video_mem_start) + ss;
 
if (scr_end > nl)
memsetw((void *) nl, video_erase_char, scr_end - nl);
 
/* do part of a reset_terminal() */
top = 0;
bottom = rows;
gotoxy(currcons, x, y);
save_cur(currcons);
}
 
#if 0 /* XXX */
set_scrmem(fg_console, 0);
set_origin(fg_console);
#endif /* XXX */
update_screen(fg_console);
set_cursor(fg_console);
 
return 0;
}
 
/*
* ++Geert: Change # of rows and columns for one specific console.
* Of course it's not messy to have all consoles of potentially different sizes,
* except on PCish hardware :-)
*
* This is called by the low level console driver (arch/m68k/console/fbcon.c or
* arch/m68k/console/txtcon.c)
*/
void vc_resize_con(unsigned long lines, unsigned long columns,
unsigned int currcons)
{
unsigned long cc, ll, ss, sr;
unsigned long occ, oll, oss, osr;
unsigned short *newscreen;
long ol, nl, rlth, rrem;
struct winsize ws;
 
if (!columns || !lines || currcons >= MAX_NR_CONSOLES)
return;
 
cc = columns;
ll = lines;
sr = cc << 1;
ss = sr * ll;
 
if (!vc_cons_allocated(currcons))
newscreen = 0;
else if (!(newscreen = (unsigned short *) kmalloc(ss, GFP_USER)))
return;
 
if (vc_cons_allocated(currcons)) {
oll = rows;
occ = cols;
osr = size_row;
oss = screenbuf_size;
 
rows = ll;
cols = cc;
size_row = sr;
screenbuf_size = ss;
 
rlth = MIN(osr, sr);
rrem = sr - rlth;
ol = origin;
nl = (long) newscreen;
if (ll < oll)
ol += (oll - ll) * osr;
 
update_attr(currcons);
while (ol < scr_end) {
/* ++Geert: TODO: Because the attributes have different meanings
on monochrome and color, they should really be converted if
can_do_color changes... */
memcpyw((unsigned short *) nl, (unsigned short *) ol, rlth);
if (rrem)
memsetw((void *)(nl + rlth), video_erase_char, rrem);
ol += osr;
nl += sr;
}
 
if (kmalloced)
kfree_s(vc_scrbuf[currcons], oss);
vc_scrbuf[currcons] = newscreen;
kmalloced = 1;
screenbuf_size = ss;
 
origin = (long) video_mem_start = vc_scrbuf[currcons];
scr_end = video_mem_end = ((long)video_mem_start) + ss;
 
if (scr_end > nl)
memsetw((void *) nl, video_erase_char, scr_end - nl);
 
/* do part of a reset_terminal() */
top = 0;
bottom = rows;
gotoxy(currcons, x, y);
save_cur(currcons);
 
ws.ws_row = rows;
ws.ws_col = cols;
if (memcmp(&ws, &console_table[currcons]->winsize, sizeof (struct winsize)) &&
console_table[currcons]->pgrp > 0)
kill_pg(console_table[currcons]->pgrp, SIGWINCH, 1);
console_table[currcons]->winsize = ws;
}
 
if (currcons == fg_console && vt_cons[fg_console]->vc_mode == KD_TEXT)
update_screen(fg_console);
}
 
void vc_disallocate(unsigned int currcons)
{
if (vc_cons_allocated(currcons)) {
if (kmalloced)
kfree_s(vc_scrbuf[currcons], screenbuf_size);
if (currcons >= MIN_NR_CONSOLES)
kfree_s(vc_cons[currcons].d, structsize);
vc_cons[currcons].d = 0;
}
}
 
 
#define set_kbd(x) set_vc_kbd_mode(kbd_table+currcons,x)
#define clr_kbd(x) clr_vc_kbd_mode(kbd_table+currcons,x)
#define is_kbd(x) vc_kbd_mode(kbd_table+currcons,x)
 
#define decarm VC_REPEAT
#define decckm VC_CKMODE
#define kbdapplic VC_APPLIC
#define lnm VC_CRLF
 
/*
* this is what the terminal answers to a ESC-Z or csi0c query.
*/
#define VT100ID "\033[?1;2c"
#define VT102ID "\033[?6c"
 
static unsigned char color_table[] = { 0, 4, 2, 6, 1, 5, 3, 7,
8,12,10,14, 9,13,11,15 };
 
/*
* gotoxy() must verify all boundaries, because the arguments
* might also be negative. If the given position is out of
* bounds, the cursor is placed at the nearest margin.
*/
static void gotoxy(int currcons, int new_x, int new_y)
{
int min_y, max_y;
 
if (new_x < 0)
x = 0;
else
if (new_x >= cols)
x = cols - 1;
else
x = new_x;
if (decom) {
min_y = top;
max_y = bottom;
} else {
min_y = 0;
max_y = rows;
}
if (new_y < min_y)
y = min_y;
else if (new_y >= max_y)
y = max_y - 1;
else
y = new_y;
pos = video_mem_start + y * cols + x;
need_wrap = 0;
}
 
/* for absolute user moves, when decom is set */
static void gotoxay(int currcons, int new_x, int new_y)
{
gotoxy(currcons, new_x, decom ? (top+new_y) : new_y);
}
 
static void hide_cursor(int currcons)
{
sw->con_cursor(vc_cons[currcons].d,CM_ERASE);
return;
}
 
static void set_cursor(int currcons)
{
if (currcons != fg_console || console_blanked || vcmode == KD_GRAPHICS)
return;
if (deccm)
sw->con_cursor(vc_cons[currcons].d,CM_DRAW);
else
hide_cursor(currcons);
return;
}
 
void no_scroll(char *str, int *ints)
{
/*
* no_scroll currently does nothing on the m68k.
*/
}
 
/*
* Arno:
* Why do we need these? The keyboard code doesn't seem to do anything
* with them either...
*/
void scrollfront(int l)
{
return;
}
 
void scrollback(int l)
{
return;
}
 
static void scrup(int currcons, unsigned int t, unsigned int b,
int nr)
{
unsigned short *p;
int i;
 
if (b > rows || t >= b)
return;
 
memmove (video_mem_start + t * cols,
video_mem_start + (t + nr) * cols,
(b - t - nr) * cols * 2);
 
p = video_mem_start + (b - nr) * cols;
for (i = nr * cols; i > 0; i--)
*p++ = video_erase_char;
 
if (currcons != fg_console)
return;
/*
* Arno:
* Scrolling has now been moved to amicon.c where it should have
* been all along.
*/
sw->con_scroll(vc_cons[currcons].d, t, b, SM_UP, nr);
 
return;
}
 
static void scrdown(int currcons, unsigned int t, unsigned int b,
int nr)
{
unsigned short *p;
int i;
 
if (b > rows || t >= b)
return;
 
memmove (video_mem_start + (t + nr) * cols,
video_mem_start + t * cols,
(b - t - nr) * cols * 2);
 
p = video_mem_start + t * cols;
for (i = nr * cols; i > 0; i--)
*p++ = video_erase_char;
 
if (currcons != fg_console)
return;
/*
* Arno:
* Scrolling has now been moved to amicon.c where it should have
* been all along.
*/
sw->con_scroll(vc_cons[currcons].d, t, b, SM_DOWN, nr);
 
return;
}
 
static void lf(int currcons)
{
/* don't scroll if above bottom of scrolling region, or
* if below scrolling region
*/
if (y+1 == bottom)
scrup(currcons,top,bottom, 1);
else if (y < rows-1) {
y++;
pos += cols;
}
need_wrap = 0;
}
 
static void ri(int currcons)
{
/* don't scroll if below top of scrolling region, or
* if above scrolling region
*/
if (y == top)
scrdown(currcons,top,bottom, 1);
else if (y > 0) {
y--;
pos -= cols;
}
need_wrap = 0;
}
 
static inline void cr(int currcons)
{
pos -= x;
need_wrap = x = 0;
}
 
static inline void bs(int currcons)
{
if (x) {
pos--;
x--;
need_wrap = 0;
}
}
 
static inline void del(int currcons)
{
/* ignored */
}
 
static void csi_J(int currcons, int vpar)
{
unsigned long count;
unsigned short *start;
 
switch (vpar) {
case 0: /* erase from cursor to end of display */
count = (video_mem_start
+ cols * rows
- pos);
start = pos;
if (currcons != fg_console)
break;
/* 680x0 do in two stages */
sw->con_clear(vc_cons[currcons].d,y,x,1,cols-x);
sw->con_clear(vc_cons[currcons].d,y+1,0,rows-y-1, cols);
break;
case 1: /* erase from start to cursor */
count = pos - video_mem_start + 1;
start = video_mem_start;
if (currcons != fg_console)
break;
/* 680x0 do in two stages */
sw->con_clear(vc_cons[currcons].d,0,0,y, cols);
sw->con_clear(vc_cons[currcons].d,y,0,1,x + 1);
break;
case 2: /* erase whole display */
count = cols * rows;
start = video_mem_start;
if (currcons != fg_console)
break;
sw->con_clear(vc_cons[currcons].d,0,0,rows, cols);
break;
default:
return;
}
while (count-- > 0)
*start++ = video_erase_char;
need_wrap = 0;
}
 
static void csi_K(int currcons, int vpar)
{
unsigned long count;
unsigned short *start;
 
switch (vpar) {
case 0: /* erase from cursor to end of line */
count = cols - x;
start = pos;
if (currcons != fg_console)
break;
sw->con_clear(vc_cons[currcons].d,y,x,1,cols-x);
break;
case 1: /* erase from start of line to cursor */
start = pos - x;
count = x + 1;
if (currcons != fg_console)
break;
sw->con_clear(vc_cons[currcons].d,y,0,1,x + 1);
break;
case 2: /* erase whole line */
start = pos - x;
count = cols;
if (currcons != fg_console)
break;
sw->con_clear(vc_cons[currcons].d,y,0,1,cols);
break;
default:
return;
}
while (count-- > 0)
*start++ = video_erase_char;
need_wrap = 0;
}
 
static void csi_X(int currcons, int vpar) /* erase the following vpar positions */
{ /* not vt100? */
unsigned long count;
unsigned short * start;
 
if (!vpar)
vpar++;
 
start=pos;
count=(vpar > cols-x) ? (cols-x) : vpar;
 
if (currcons == fg_console)
sw->con_clear(vc_cons[currcons].d,y,x,1,count);
 
while (count-- > 0)
*start++ = video_erase_char;
need_wrap = 0;
}
 
/*
* Arno:
* On 680x0 attributes are currently not used. This piece of code
* seems hardware independent, but uses the EGA/VGA way of representing
* attributes.
* TODO: modify for 680x0 and add attribute processing to putc code.
*
* ++roman: I completely changed the attribute format for monochrome
* mode (!can_do_color). The formerly used MDA (monochrome display
* adapter) format didn't allow the combination of certain effects.
* Now the attribute is just a bit vector:
* Bit 0..1: intensity (0..2)
* Bit 2 : underline
* Bit 3 : reverse
* Bit 7 : blink
*/
static void update_attr(int currcons)
{
if (!can_do_color) {
/* Special treatment for monochrome */
attr = intensity |
(underline ? 4 : 0) |
((reverse ^ decscnm) ? 8 : 0) |
(blink ? 0x80 : 0);
video_erase_char = ' ' | ((reverse ^ decscnm) ? 0x800 : 0);
return;
}
 
attr = color;
if (underline)
attr = (attr & 0xf0) | ulcolor;
else if (intensity == 0)
attr = (attr & 0xf0) | halfcolor;
if (reverse ^ decscnm)
attr = reverse_video_char(attr);
if (blink)
attr ^= 0x80;
if (intensity == 2)
attr ^= 0x08;
if (decscnm)
video_erase_char = (reverse_video_char(color) << 8) | ' ';
else
video_erase_char = (color << 8) | ' ';
}
 
static void default_attr(int currcons)
{
intensity = 1;
underline = 0;
reverse = 0;
blink = 0;
color = def_color;
}
 
static void csi_m(int currcons)
{
int i;
 
for (i=0;i<=npar;i++)
switch (par[i]) {
case 0: /* all attributes off */
default_attr(currcons);
break;
case 1:
intensity = 2;
break;
case 2:
intensity = 0;
break;
case 4:
underline = 1;
break;
case 5:
blink = 1;
break;
case 7:
reverse = 1;
break;
case 10: /* ANSI X3.64-1979 (SCO-ish?)
* Select primary font, don't display
* control chars if defined, don't set
* bit 8 on output.
*/
translate = set_translate(charset == 0
? G0_charset
: G1_charset);
disp_ctrl = 0;
toggle_meta = 0;
break;
case 11: /* ANSI X3.64-1979 (SCO-ish?)
* Select first alternate font, let's
* chars < 32 be displayed as ROM chars.
*/
translate = set_translate(IBMPC_MAP);
disp_ctrl = 1;
toggle_meta = 0;
break;
case 12: /* ANSI X3.64-1979 (SCO-ish?)
* Select second alternate font, toggle
* high bit before displaying as ROM char.
*/
translate = set_translate(IBMPC_MAP);
disp_ctrl = 1;
toggle_meta = 1;
break;
case 21:
case 22:
intensity = 1;
break;
case 24:
underline = 0;
break;
case 25:
blink = 0;
break;
case 27:
reverse = 0;
break;
case 38: /* ANSI X3.64-1979 (SCO-ish?)
* Enables underscore, white foreground
* with white underscore (Linux - use
* default foreground).
*/
color = (def_color & 0x0f) | background;
underline = 1;
break;
case 39: /* ANSI X3.64-1979 (SCO-ish?)
* Disable underline option.
* Reset colour to default? It did this
* before...
*/
color = (def_color & 0x0f) | background;
underline = 0;
break;
case 49:
color = (def_color & 0xf0) | foreground;
break;
default:
if (par[i] >= 30 && par[i] <= 37)
color = color_table[par[i]-30]
| background;
else if (par[i] >= 40 && par[i] <= 47)
color = (color_table[par[i]-40]<<4)
| foreground;
break;
}
update_attr(currcons);
}
 
static void respond_string(const char * p, struct tty_struct * tty)
{
while (*p) {
tty_insert_flip_char(tty, *p, 0);
p++;
}
tty_schedule_flip(tty);
}
 
static void cursor_report(int currcons, struct tty_struct * tty)
{
char buf[40];
 
sprintf(buf, "\033[%ld;%ldR", y + (decom ? top+1 : 1), x+1);
respond_string(buf, tty);
}
 
static inline void status_report(struct tty_struct * tty)
{
respond_string("\033[0n", tty); /* Terminal ok */
}
 
static inline void respond_ID(struct tty_struct * tty)
{
respond_string(VT102ID, tty);
}
 
void mouse_report(struct tty_struct * tty, int butt, int mrx, int mry)
{
char buf[8];
 
sprintf(buf, "\033[M%c%c%c", (char)(' ' + butt), (char)('!' + mrx),
(char)('!' + mry));
respond_string(buf, tty);
}
 
/* invoked via ioctl(TIOCLINUX) */
int mouse_reporting(void)
{
int currcons = fg_console;
 
return report_mouse;
}
 
static inline unsigned short *screenpos(int currcons, int offset, int viewed)
{
unsigned short *p = (unsigned short *)(origin + offset);
#if 0
if (viewed && currcons == fg_console)
p -= (__real_origin - __origin);
#endif
return p;
}
 
/* Note: inverting the screen twice should revert to the original state */
void invert_screen(int currcons, int offset, int count, int viewed)
{
unsigned short *p;
unsigned short xx, yy, oldattr;
 
count /= 2;
p = screenpos(currcons, offset, viewed);
xx = (offset >> 1) % cols;
yy = (offset >> 1) / cols;
oldattr = attr;
if (can_do_color)
while (count--) {
unsigned short old = scr_readw(p);
unsigned short new = reverse_video_short(old);
scr_writew(new, p);
p++;
if (currcons != fg_console)
continue;
attr = new >> 8;
sw->con_putc(vc_cons[currcons].d, new & 0xff, yy, xx);
if (++xx == cols)
xx = 0, ++yy;
}
else
while (count--) {
unsigned short old = scr_readw(p);
unsigned short new = old ^ 0x800;
scr_writew(new, p);
p++;
if (currcons != fg_console)
continue;
attr = new >> 8;
sw->con_putc(vc_cons[currcons].d, new & 0xff, yy, xx);
if (++xx == cols)
xx = 0, ++yy;
}
attr = oldattr;
}
 
/* used by selection: complement pointer position */
void complement_pos(int currcons, int offset)
{
static unsigned short *p = NULL;
static unsigned short old = 0;
static unsigned short oldx = 0, oldy = 0;
unsigned short new, oldattr;
 
oldattr = attr;
if (p) {
scr_writew(old, p);
if (currcons == fg_console) {
attr = old >> 8;
sw->con_putc(vc_cons[currcons].d, old & 0xff, oldy, oldx);
attr = oldattr;
}
}
if (offset == -1)
p = NULL;
else {
p = screenpos(currcons, offset, 1);
old = scr_readw(p);
oldx = (offset >> 1) % cols;
oldy = (offset >> 1) / cols;
if (can_do_color)
new = old ^ 0x7700;
else
new = old ^ 0x800;
scr_writew(new, p);
if (currcons == fg_console) {
attr = new >> 8;
sw->con_putc(vc_cons[currcons].d, new & 0xff, oldy, oldx);
attr = oldattr;
}
}
}
 
/* used by selection */
unsigned short screen_word(int currcons, int offset, int viewed)
{
return scr_readw(screenpos(currcons, offset, viewed));
}
 
/* used by selection - convert a screen word to a glyph number */
int scrw2glyph(unsigned short scr_word)
{
return ( video_mode_512ch )
? ((scr_word & 0x0800) >> 3) + (scr_word & 0x00ff)
: scr_word & 0x00ff;
}
 
/* used by vcs - note the word offset */
unsigned short *screen_pos(int currcons, int w_offset, int viewed)
{
return screenpos(currcons, 2 * w_offset, viewed);
}
 
void getconsxy(int currcons, char *p)
{
p[0] = x;
p[1] = y;
}
 
void putconsxy(int currcons, char *p)
{
gotoxy(currcons, p[0], p[1]);
set_cursor(currcons);
}
 
static void set_mode(int currcons, int on_off)
{
int i;
 
for (i=0; i<=npar; i++)
if (ques) switch(par[i]) { /* DEC private modes set/reset */
case 1: /* Cursor keys send ^[Ox/^[[x */
if (on_off)
set_kbd(decckm);
else
clr_kbd(decckm);
break;
case 3: /* 80/132 mode switch unimplemented */
deccolm = on_off;
#if 0
(void) vc_resize(rows, deccolm ? 132 : 80);
/* this alone does not suffice; some user mode
utility has to change the hardware regs */
#endif
break;
case 5: /* Inverted screen on/off */
if (decscnm != on_off) {
decscnm = on_off;
invert_screen(currcons, 0, screenbuf_size, 0);
update_attr(currcons);
}
break;
case 6: /* Origin relative/absolute */
decom = on_off;
gotoxay(currcons,0,0);
break;
case 7: /* Autowrap on/off */
decawm = on_off;
break;
case 8: /* Autorepeat on/off */
if (on_off)
set_kbd(decarm);
else
clr_kbd(decarm);
break;
case 9:
report_mouse = on_off ? 1 : 0;
break;
case 25: /* Cursor on/off */
deccm = on_off;
set_cursor(currcons);
break;
case 1000:
report_mouse = on_off ? 2 : 0;
break;
} else switch(par[i]) { /* ANSI modes set/reset */
case 3: /* Monitor (display ctrls) */
disp_ctrl = on_off;
break;
case 4: /* Insert Mode on/off */
decim = on_off;
break;
case 20: /* Lf, Enter == CrLf/Lf */
if (on_off)
set_kbd(lnm);
else
clr_kbd(lnm);
break;
}
}
 
static void setterm_command(int currcons)
{
switch(par[0]) {
case 1: /* set color for underline mode */
if (can_do_color && par[1] < 16) {
ulcolor = color_table[par[1]];
if (underline)
update_attr(currcons);
}
break;
case 2: /* set color for half intensity mode */
if (can_do_color && par[1] < 16) {
halfcolor = color_table[par[1]];
if (intensity == 0)
update_attr(currcons);
}
break;
case 8: /* store colors as defaults */
def_color = attr;
default_attr(currcons);
update_attr(currcons);
break;
case 9: /* set blanking interval */
blankinterval = ((par[1] < 60) ? par[1] : 60) * 60 * HZ;
poke_blanked_console();
break;
case 10: /* set bell frequency in Hz */
if (npar >= 1)
bell_pitch = par[1];
else
bell_pitch = DEFAULT_BELL_PITCH;
break;
case 11: /* set bell duration in msec */
if (npar >= 1)
bell_duration = (par[1] < 2000) ?
par[1]*HZ/1000 : 0;
else
bell_duration = DEFAULT_BELL_DURATION;
break;
case 12: /* bring specified console to the front */
if (par[1] >= 1 && vc_cons_allocated(par[1]-1))
update_screen(par[1]-1);
break;
case 13: /* unblank the screen */
unblank_screen();
break;
case 14: /* set vesa powerdown interval */
vesa_off_interval = ((par[1] < 60) ? par[1] : 60) * 60 * HZ;
break;
}
}
 
static void insert_char(int currcons)
{
int i;
unsigned short *p = pos;
 
for (i = cols - x - 2; i >= 0; i--)
p[i + 1] = p[i];
*pos = video_erase_char;
need_wrap = 0;
 
if (currcons != fg_console)
return;
 
/* Arno:
* Move the remainder of the line (-1 character) one spot to the right
*/
sw->con_bmove(vc_cons[currcons].d,y,x,y,x+1,1,(cols-x-1));
/*
* Print the erase char on the current position
*/
sw->con_putc(vc_cons[currcons].d,(video_erase_char & 0x00ff),y,x);
}
 
static void csi_at(int currcons, unsigned int nr)
{
int i;
unsigned short *p;
 
if (nr > cols - x)
nr = cols - x;
else if (!nr)
nr = 1;
 
p = pos + cols - x - nr;
while (--p >= pos)
p[nr] = *p;
for (i = 0; i < nr; i++)
*++p = video_erase_char;
need_wrap = 0;
 
if (currcons != fg_console)
return;
 
sw->con_bmove (vc_cons[currcons].d, y, x, y, x + nr,
1, cols - x - nr);
while (nr--)
sw->con_putc (vc_cons[currcons].d, video_erase_char & 0x00ff,
y, x + nr);
}
 
static void csi_L(int currcons, unsigned int nr)
{
if (nr > rows)
nr = rows;
else if (!nr)
nr = 1;
scrdown (currcons, y, bottom, nr);
need_wrap = 0;
}
 
static void csi_P(int currcons, unsigned int nr)
{
int i;
unsigned short *p, *end;
 
if (nr > cols - x)
nr = cols - x;
else if (!nr)
nr = 1;
 
p = pos;
end = pos + cols - x - nr;
while (p < end)
*p = p[nr], p++;
for (i = 0; i < nr; i++)
*p++ = video_erase_char;
need_wrap = 0;
 
if (currcons != fg_console)
return;
 
sw->con_bmove (vc_cons[currcons].d, y, x + nr, y, x,
1, cols - x - nr);
 
while (nr--)
sw->con_putc (vc_cons[currcons].d, video_erase_char & 0x00ff,
y, cols - 1 - nr);
}
 
static void csi_M(int currcons, unsigned int nr)
{
if (nr > rows)
nr = rows;
else if (!nr)
nr=1;
scrup (currcons, y, bottom, nr);
need_wrap = 0;
}
 
static void save_cur(int currcons)
{
saved_x = x;
saved_y = y;
s_intensity = intensity;
s_underline = underline;
s_blink = blink;
s_reverse = reverse;
s_charset = charset;
s_color = color;
saved_G0 = G0_charset;
saved_G1 = G1_charset;
}
 
static void restore_cur(int currcons)
{
gotoxy(currcons,saved_x,saved_y);
intensity = s_intensity;
underline = s_underline;
blink = s_blink;
reverse = s_reverse;
charset = s_charset;
color = s_color;
G0_charset = saved_G0;
G1_charset = saved_G1;
translate = set_translate(charset ? G1_charset : G0_charset);
update_attr(currcons);
need_wrap = 0;
}
 
enum { ESnormal, ESesc, ESsquare, ESgetpars, ESgotpars, ESfunckey,
EShash, ESsetG0, ESsetG1, ESpercent, ESignore, ESnonstd,
ESpalette };
 
static void reset_terminal(int currcons, int do_clear)
{
top = 0;
bottom = rows;
vc_state = ESnormal;
ques = 0;
translate = set_translate(LAT1_MAP);
G0_charset = LAT1_MAP;
G1_charset = GRAF_MAP;
charset = 0;
need_wrap = 0;
report_mouse = 0;
utf = 0;
utf_count = 0;
 
disp_ctrl = 0;
toggle_meta = 0;
 
decscnm = 0;
decom = 0;
decawm = 1;
deccm = 1;
decim = 0;
 
set_kbd(decarm);
clr_kbd(decckm);
clr_kbd(kbdapplic);
clr_kbd(lnm);
kbd_table[currcons].lockstate = 0;
kbd_table[currcons].slockstate = 0;
kbd_table[currcons].ledmode = LED_SHOW_FLAGS;
kbd_table[currcons].ledflagstate = kbd_table[currcons].default_ledflagstate;
set_leds();
 
default_attr(currcons);
update_attr(currcons);
 
tab_stop[0] = 0x01010100;
tab_stop[1] =
tab_stop[2] =
tab_stop[3] =
tab_stop[4] = 0x01010101;
 
bell_pitch = DEFAULT_BELL_PITCH;
bell_duration = DEFAULT_BELL_DURATION;
 
gotoxy(currcons,0,0);
save_cur(currcons);
if (do_clear)
csi_J(currcons,2);
}
 
/*
* Turn the Scroll-Lock LED on when the tty is stopped
*/
static void con_stop(struct tty_struct *tty)
{
int console_num;
if (!tty)
return;
console_num = MINOR(tty->device) - (tty->driver.minor_start);
if (!vc_cons_allocated(console_num))
return;
set_vc_kbd_led(kbd_table + console_num, VC_SCROLLOCK);
set_leds();
}
 
/*
* Turn the Scroll-Lock LED off when the console is started
*/
static void con_start(struct tty_struct *tty)
{
int console_num;
if (!tty)
return;
console_num = MINOR(tty->device) - (tty->driver.minor_start);
if (!vc_cons_allocated(console_num))
return;
clr_vc_kbd_led(kbd_table + console_num, VC_SCROLLOCK);
set_leds();
}
 
static int con_write(struct tty_struct * tty, int from_user,
const unsigned char *buf, int count)
{
int c, tc, ok, n = 0;
unsigned int currcons;
struct vt_struct *vt = (struct vt_struct *)tty->driver_data;
 
currcons = vt->vc_num;
if (!vc_cons_allocated(currcons)) {
/* could this happen? */
static int error = 0;
if (!error) {
error = 1;
printk("con_write: tty %d not allocated\n", currcons+1);
}
return 0;
}
 
/* undraw cursor first */
if (currcons == fg_console)
hide_cursor(currcons);
/* clear the selection */
if (currcons == sel_cons)
clear_selection();
 
disable_bh(CONSOLE_BH);
while (count) {
enable_bh(CONSOLE_BH);
c = from_user ? get_user(buf) : *buf;
buf++; n++; count--;
disable_bh(CONSOLE_BH);
 
if (utf) {
/* Combine UTF-8 into Unicode */
/* Incomplete characters silently ignored */
if(c > 0x7f) {
if (utf_count > 0 && (c & 0xc0) == 0x80) {
utf_char = (utf_char << 6) | (c & 0x3f);
utf_count--;
if (utf_count == 0)
tc = c = utf_char;
else continue;
} else {
if ((c & 0xe0) == 0xc0) {
utf_count = 1;
utf_char = (c & 0x1f);
} else if ((c & 0xf0) == 0xe0) {
utf_count = 2;
utf_char = (c & 0x0f);
} else if ((c & 0xf8) == 0xf0) {
utf_count = 3;
utf_char = (c & 0x07);
} else if ((c & 0xfc) == 0xf8) {
utf_count = 4;
utf_char = (c & 0x03);
} else if ((c & 0xfe) == 0xfc) {
utf_count = 5;
utf_char = (c & 0x01);
} else
utf_count = 0;
continue;
}
} else {
tc = c;
utf_count = 0;
}
} else { /* no utf */
tc = translate[toggle_meta ? (c|0x80) : c];
}
 
/* If the original code was a control character we
* only allow a glyph to be displayed if the code is
* not normally used (such as for cursor movement) or
* if the disp_ctrl mode has been explicitly enabled.
* Certain characters (as given by the CTRL_ALWAYS
* bitmap) are always displayed as control characters,
* as the console would be pretty useless without
* them; to display an arbitrary font position use the
* direct-to-font zone in UTF-8 mode.
*/
ok = tc && (c >= 32 ||
(!utf && !(((disp_ctrl ? CTRL_ALWAYS
: CTRL_ACTION) >> c) & 1)))
&& (c != 127 || disp_ctrl);
 
if (vc_state == ESnormal && ok) {
/* Now try to find out how to display it */
tc = conv_uni_to_pc(tc);
if ( tc == -4 ) {
/* If we got -4 (not found) then see if we have
defined a replacement character (U+FFFD) */
tc = conv_uni_to_pc(0xfffd);
} else if ( tc == -3 ) {
/* Bad hash table -- hope for the best */
tc = c;
}
if (tc & ~console_charmask)
continue; /* Conversion failed */
 
if (need_wrap) {
cr(currcons);
lf(currcons);
}
#if 1 /* XXX */
/* DPC: 1994-04-12
* Speed up overstrike mode, using new putcs.
*
* P.S. I hate 8 spaces per tab! Use Emacs!
*/
/* Only use this for the foreground console,
where we really draw the chars */
 
if (count > 2 &&
!decim && !utf && currcons == fg_console) {
static char putcs_buf[256];
char *p = putcs_buf;
int putcs_count = 1;
ushort nextx = x + 1;
 
*p++ = tc;
*pos++ = tc | (attr << 8);
if (nextx == cols) {
sw->con_putc(vc_cons[currcons].d,
*putcs_buf, y, x);
pos--;
need_wrap = decawm;
continue;
}
/* TAB TAB TAB - Arghh!!!! */
while (count)
{
enable_bh(CONSOLE_BH);
c = from_user ? get_user(buf) : *buf;
disable_bh(CONSOLE_BH);
tc = translate[toggle_meta ? (c|0x80) : c];
if (!tc ||
!(c >= 32
|| !(((disp_ctrl ? CTRL_ALWAYS
: CTRL_ACTION) >> c) & 1)))
break;
tc = conv_uni_to_pc(tc);
if (tc == -4)
tc = conv_uni_to_pc(0xfffd);
else if (tc == -3)
tc = c;
 
buf++; n++; count--;
if (tc & ~console_charmask)
continue; /* Conversion failed */
 
*p++ = tc;
*pos++ = tc | (attr << 8);
++putcs_count;
++nextx;
if (nextx == cols ||
putcs_count == sizeof (putcs_buf))
break;
}
sw->con_putcs(vc_cons[currcons].d,
putcs_buf, putcs_count, y, x);
if (nextx == cols) {
pos--;
x = cols-1;
need_wrap = decawm;
} else
x += putcs_count;
continue;
}
/* DPC: End of putcs support */
#endif
if (decim)
insert_char(currcons);
*pos = (attr << 8) + tc;
if (currcons == fg_console)
sw->con_putc(vc_cons[currcons].d,tc,y,x);
if (x == cols - 1)
need_wrap = decawm;
else {
pos++;
x++;
}
continue;
}
 
/*
* Control characters can be used in the _middle_
* of an escape sequence.
*/
switch (c) {
case 7:
if (bell_duration)
kd_mksound(bell_pitch, bell_duration);
continue;
case 8:
bs(currcons);
continue;
case 9:
pos -= x;
while (x < cols - 1) {
x++;
if (tab_stop[x >> 5] & (1 << (x & 31)))
break;
}
pos += x;
continue;
case 10: case 11: case 12:
lf(currcons);
if (!is_kbd(lnm))
continue;
case 13:
cr(currcons);
continue;
case 14:
charset = 1;
translate = set_translate(G1_charset);
disp_ctrl = 1;
continue;
case 15:
charset = 0;
translate = set_translate(G0_charset);
disp_ctrl = 0;
continue;
case 24: case 26:
vc_state = ESnormal;
continue;
case 27:
vc_state = ESesc;
continue;
case 127:
del(currcons);
continue;
case 128+27:
vc_state = ESsquare;
continue;
}
switch(vc_state) {
case ESesc:
vc_state = ESnormal;
switch (c) {
case '[':
vc_state = ESsquare;
continue;
case ']':
vc_state = ESnonstd;
continue;
case '%':
vc_state = ESpercent;
continue;
case 'E':
cr(currcons);
lf(currcons);
continue;
case 'M':
ri(currcons);
continue;
case 'D':
lf(currcons);
continue;
case 'H':
tab_stop[x >> 5] |= (1 << (x & 31));
continue;
case 'Z':
respond_ID(tty);
continue;
case '7':
save_cur(currcons);
continue;
case '8':
restore_cur(currcons);
continue;
case '(':
vc_state = ESsetG0;
continue;
case ')':
vc_state = ESsetG1;
continue;
case '#':
vc_state = EShash;
continue;
case 'c':
reset_terminal(currcons,1);
continue;
case '>': /* Numeric keypad */
clr_kbd(kbdapplic);
continue;
case '=': /* Appl. keypad */
set_kbd(kbdapplic);
continue;
}
continue;
case ESnonstd:
if (c=='P') { /* palette escape sequence */
for (npar=0; npar<NPAR; npar++)
par[npar] = 0 ;
npar = 0 ;
vc_state = ESpalette;
continue;
} else if (c=='R') { /* reset palette */
#if 0
reset_palette (currcons);
#endif
vc_state = ESnormal;
} else
vc_state = ESnormal;
continue;
case ESpalette:
if ( (c>='0'&&c<='9') || (c>='A'&&c<='F') || (c>='a'&&c<='f') ) {
par[npar++] = (c>'9' ? (c&0xDF)-'A'+10 : c-'0') ;
if (npar==7) {
#if 0
int i = par[0]*3, j = 1;
palette[i] = 16*par[j++];
palette[i++] += par[j++];
palette[i] = 16*par[j++];
palette[i++] += par[j++];
palette[i] = 16*par[j++];
palette[i] += par[j];
set_palette() ;
#endif
vc_state = ESnormal;
}
} else
vc_state = ESnormal;
continue;
case ESsquare:
for(npar = 0 ; npar < NPAR ; npar++)
par[npar] = 0;
npar = 0;
vc_state = ESgetpars;
if (c == '[') { /* Function key */
vc_state=ESfunckey;
continue;
}
ques = (c=='?');
if (ques)
continue;
case ESgetpars:
if (c==';' && npar<NPAR-1) {
npar++;
continue;
} else if (c>='0' && c<='9') {
par[npar] *= 10;
par[npar] += c-'0';
continue;
} else vc_state=ESgotpars;
case ESgotpars:
vc_state = ESnormal;
switch(c) {
case 'h':
set_mode(currcons,1);
continue;
case 'l':
set_mode(currcons,0);
continue;
case 'n':
if (!ques)
if (par[0] == 5)
status_report(tty);
else if (par[0] == 6)
cursor_report(currcons,tty);
continue;
}
if (ques) {
ques = 0;
continue;
}
switch(c) {
case 'G': case '`':
if (par[0]) par[0]--;
gotoxy(currcons,par[0],y);
continue;
case 'A':
if (!par[0]) par[0]++;
gotoxy(currcons,x,y-par[0]);
continue;
case 'B': case 'e':
if (!par[0]) par[0]++;
gotoxy(currcons,x,y+par[0]);
continue;
case 'C': case 'a':
if (!par[0]) par[0]++;
gotoxy(currcons,x+par[0],y);
continue;
case 'D':
if (!par[0]) par[0]++;
gotoxy(currcons,x-par[0],y);
continue;
case 'E':
if (!par[0]) par[0]++;
gotoxy(currcons,0,y+par[0]);
continue;
case 'F':
if (!par[0]) par[0]++;
gotoxy(currcons,0,y-par[0]);
continue;
case 'd':
if (par[0]) par[0]--;
gotoxay(currcons,x,par[0]);
continue;
case 'H': case 'f':
if (par[0]) par[0]--;
if (par[1]) par[1]--;
gotoxay(currcons,par[1],par[0]);
continue;
case 'J':
csi_J(currcons,par[0]);
continue;
case 'K':
csi_K(currcons,par[0]);
continue;
case 'L':
csi_L(currcons,par[0]);
continue;
case 'M':
csi_M(currcons,par[0]);
continue;
case 'P':
csi_P(currcons,par[0]);
continue;
case 'c':
if (!par[0])
respond_ID(tty);
continue;
case 'g':
if (!par[0])
tab_stop[x >> 5] &= ~(1 << (x & 31));
else if (par[0] == 3) {
tab_stop[0] =
tab_stop[1] =
tab_stop[2] =
tab_stop[3] =
tab_stop[4] = 0;
}
continue;
case 'm':
csi_m(currcons);
continue;
case 'q': /* DECLL - but only 3 leds */
/* map 0,1,2,3 to 0,1,2,4 */
if (par[0] < 4)
setledstate(kbd_table + currcons,
(par[0] < 3) ? par[0] : 4);
continue;
case 'r':
if (!par[0])
par[0]++;
if (!par[1])
par[1] = rows;
/* Minimum allowed region is 2 lines */
if (par[0] < par[1] &&
par[1] <= rows) {
top=par[0]-1;
bottom=par[1];
gotoxay(currcons,0,0);
}
continue;
case 's':
save_cur(currcons);
continue;
case 'u':
restore_cur(currcons);
continue;
case 'X':
csi_X(currcons, par[0]);
continue;
case '@':
csi_at(currcons,par[0]);
continue;
case ']': /* setterm functions */
setterm_command(currcons);
continue;
}
continue;
case ESpercent:
vc_state = ESnormal;
switch (c) {
case '@': /* defined in ISO 2022 */
utf = 0;
continue;
case 'G': /* prelim official escape code */
case '8': /* retained for compatibility */
utf = 1;
continue;
}
continue;
case ESfunckey:
vc_state = ESnormal;
continue;
case EShash:
vc_state = ESnormal;
if (c == '8') {
/* DEC screen alignment test. kludge :-) */
video_erase_char =
(video_erase_char & 0xff00) | 'E';
/* Arno:
* Doesn't work, because csi_J(c,2)
* calls con_clear and doesn't print
* the erase char..
*/
csi_J(currcons, 2);
video_erase_char =
(video_erase_char & 0xff00) | ' ';
}
continue;
case ESsetG0:
if (c == '0')
G0_charset = GRAF_MAP;
else if (c == 'B')
G0_charset = LAT1_MAP;
else if (c == 'U')
G0_charset = IBMPC_MAP;
else if (c == 'K')
G0_charset = USER_MAP;
if (charset == 0)
translate = set_translate(G0_charset);
vc_state = ESnormal;
continue;
case ESsetG1:
if (c == '0')
G1_charset = GRAF_MAP;
else if (c == 'B')
G1_charset = LAT1_MAP;
else if (c == 'U')
G1_charset = IBMPC_MAP;
else if (c == 'K')
G1_charset = USER_MAP;
if (charset == 1)
translate = set_translate(G1_charset);
vc_state = ESnormal;
continue;
default:
vc_state = ESnormal;
}
}
if (vcmode != KD_GRAPHICS)
set_cursor(currcons);
enable_bh(CONSOLE_BH);
return n;
}
 
static int con_write_room(struct tty_struct *tty)
{
if (tty->stopped)
return 0;
return 4096; /* No limit, really; we're not buffering */
}
 
static int con_chars_in_buffer(struct tty_struct *tty)
{
return 0; /* we're not buffering */
}
 
void poke_blanked_console(void)
{
timer_active &= ~(1<<BLANK_TIMER);
if (vt_cons[fg_console]->vc_mode == KD_GRAPHICS)
return;
if (console_blanked) {
timer_table[BLANK_TIMER].fn = unblank_screen;
timer_table[BLANK_TIMER].expires = 0;
timer_active |= 1<<BLANK_TIMER;
} else if (blankinterval) {
timer_table[BLANK_TIMER].expires = jiffies + blankinterval;
timer_active |= 1<<BLANK_TIMER;
}
}
 
/* DPC: New version of console_print using putcs */
 
void console_print(const char * b)
{
int currcons = fg_console;
unsigned char c;
const char *start = b;
ushort count = 0;
ushort myx = x;
static int printing = 0;
 
if (!printable || printing)
return; /* console not yet initialized */
printing = 1;
 
if (kmsg_redirect && vc_cons_allocated(kmsg_redirect - 1))
currcons = kmsg_redirect - 1;
 
if (!vc_cons_allocated(currcons)) {
/* impossible */
printk("console_print: tty %d not allocated ??\n", currcons+1);
printing = 0;
return;
}
 
/* undraw cursor first */
hide_cursor(currcons);
 
/* Contrived structure to try to emulate original need_wrap behaviour
* Problems caused when we have need_wrap set on '\n' character */
while ((c = *(b++)) != 0) {
if (c == 10 || c == 13 || c == 8 || need_wrap) {
if ((count = b - start - 1) > 0) {
sw->con_putcs(vc_cons[currcons].d, start, count ,
y, x);
x += count;
if (need_wrap)
x--;
}
 
if (c == 8) { /* backspace */
bs(currcons);
start = b;
myx = x;
continue;
}
if (c != 13)
lf(currcons);
cr(currcons);
 
if (c == 10 || c == 13) {
start = b; myx = x; continue;
}
 
start = b-1; myx = x;
}
 
*pos = c | (attr << 8);
if (myx == cols - 1) {
need_wrap = 1;
continue;
}
pos++;
myx++;
}
 
if ((count = b - start -1) > 0) {
sw->con_putcs(vc_cons[currcons].d, start, count ,
y, x);
x += count;
if (x == cols)
{
x--;
need_wrap = 1;
}
}
set_cursor(currcons);
poke_blanked_console();
printing = 0;
}
 
/* You didn't see this... */
void console_printn(const char * b, int n)
{
int i;
char buf[2];
buf[1] = '\0';
for(i=0;i<n;i++) {
buf[0] = *b++;
console_print(buf);
}
}
 
/*
* con_throttle and con_unthrottle are only used for
* paste_selection(), which has to stuff in a large number of
* characters...
*/
static void con_throttle(struct tty_struct *tty)
{
}
 
static void con_unthrottle(struct tty_struct *tty)
{
struct vt_struct *vt = (struct vt_struct *) tty->driver_data;
 
wake_up_interruptible(&vt->paste_wait);
}
 
static void vc_init(unsigned int currcons, int do_clear)
{
long base = (long) vc_scrbuf[currcons];
 
pos = (unsigned short *)(origin = (ulong)video_mem_start = base);
scr_end = base + screenbuf_size;
video_mem_end = base + screenbuf_size;
reset_vc(currcons);
def_color = 0x07; /* white */
ulcolor = 0x0f; /* bold white */
halfcolor = 0x08; /* grey */
vt_cons[currcons]->paste_wait = 0;
reset_terminal(currcons, do_clear);
}
 
/*
* This is the console switching bottom half handler.
*
* Doing console switching in a bottom half handler allows
* us to do the switches asynchronously (needed when we want
* to switch due to a keyboard interrupt), while still giving
* us the option to easily disable it to avoid races when we
* need to write to the console.
*/
static void console_bh(void)
{
if (want_console >= 0) {
if (want_console != fg_console) {
change_console(want_console);
/* we only changed when the console had already
been allocated - a new console is not created
in an interrupt routine */
}
want_console = -1;
}
if (do_poke_blanked_console) { /* do not unblank for a LED change */
do_poke_blanked_console = 0;
poke_blanked_console();
}
}
 
/*
* unsigned long con_init(unsigned long);
*
* This routine initializes console interrupts, and does nothing
* else. If you want the screen to clear, call tty_write with
* the appropriate escape-sequence.
*
* Reads the information preserved by setup.s to determine the current display
* type and sets everything accordingly.
*/
unsigned long con_init(unsigned long kmem_start)
{
 
#ifdef CONFIG_FRAMEBUFFER
 
#if 0 /* Disable console unless some buttons are pressed */
{
int i;
for(i=0;i<200000;i++) {
__asm__("nop");
if ((*(volatile unsigned char*)0xFFFFF419) & (8|1))
break;
}
if (!((*(volatile unsigned char*)0xFFFFF419) & (8|1)))
return;
}
}
#endif
char *display_desc = "????";
unsigned int currcons = 0;
extern int serial_debug;
memset(&console_driver, 0, sizeof(struct tty_driver));
console_driver.magic = TTY_DRIVER_MAGIC;
console_driver.name = "tty";
console_driver.name_base = 1;
console_driver.major = TTY_MAJOR;
console_driver.minor_start = 1;
console_driver.num = MAX_NR_CONSOLES;
console_driver.type = TTY_DRIVER_TYPE_CONSOLE;
console_driver.init_termios = tty_std_termios;
console_driver.flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_RESET_TERMIOS;
console_driver.refcount = &console_refcount;
console_driver.table = console_table;
console_driver.termios = console_termios;
console_driver.termios_locked = console_termios_locked;
 
console_driver.open = con_open;
console_driver.write = con_write;
console_driver.write_room = con_write_room;
console_driver.chars_in_buffer = con_chars_in_buffer;
console_driver.ioctl = vt_ioctl;
console_driver.stop = con_stop;
console_driver.start = con_start;
console_driver.throttle = con_throttle;
console_driver.unthrottle = con_unthrottle;
if (tty_register_driver(&console_driver))
panic("Couldn't register console driver\n");
 
kmem_start = conswitchp->con_startup (kmem_start, &display_desc);
/*conswitchp->con_set_font (&display_desc, 0, 0, "MINI4x6");*/
timer_table[BLANK_TIMER].fn = blank_screen;
timer_table[BLANK_TIMER].expires = 0;
if (blankinterval) {
timer_table[BLANK_TIMER].expires = jiffies + blankinterval;
timer_active |= 1<<BLANK_TIMER;
}
 
/* Due to kmalloc roundup allocating statically is more efficient -
so provide MIN_NR_CONSOLES for people with very little memory */
for (currcons = 0; currcons < MIN_NR_CONSOLES; currcons++) {
vc_cons[currcons].d = (struct vc_data *) kmem_start;
kmem_start += sizeof(struct vc_data);
vt_cons[currcons] = (struct vt_struct *) kmem_start;
kmem_start += sizeof(struct vt_struct);
 
/* ++Geert: sw->con_init determines console size */
sw = conswitchp;
cons_num = currcons;
sw->con_init (vc_cons[currcons].d);
size_row = cols<<1;
screenbuf_size = rows*size_row;
 
vc_scrbuf[currcons] = (unsigned short *) kmem_start;
kmem_start += screenbuf_size;
kmalloced = 0;
vc_init(currcons, currcons);
}
 
currcons = fg_console = 0;
 
gotoxy(currcons,0, 0);
printable = 1;
sw->con_cursor(vc_cons[currcons].d, CM_DRAW);
printable = 1;
 
/* If "serdebug" cmd line option was present, don't register for printk */
if (!serial_debug)
register_console(console_print);
 
printk("Console driver: %s %s %ldx%ld, %d virtual console%s (max %d)\n",
can_do_color ? "colour":"mono",
display_desc,
cols,rows,
MIN_NR_CONSOLES, (MIN_NR_CONSOLES == 1) ? "" : "s", MAX_NR_CONSOLES);
 
init_bh(CONSOLE_BH, console_bh);
#endif
return kmem_start;
}
 
void vesa_powerdown_screen(void)
{
int currcons = fg_console;
 
timer_active &= ~(1<<BLANK_TIMER);
timer_table[BLANK_TIMER].fn = unblank_screen;
 
/* Power down if currently suspended (1 or 2),
* suspend if currently blanked (0),
* else do nothing (i.e. already powered down (3)).
* Called only if powerdown features are allowed.
*/
switch (vesa_blank_mode) {
case 0:
sw->con_blank(2);
break;
case 1:
case 2:
sw->con_blank(4);
break;
}
}
 
void do_blank_screen(int nopowersave)
{
#if 0
int currcons;
 
if (console_blanked)
return;
 
if (!vc_cons_allocated(fg_console)) {
/* impossible */
printk("blank_screen: tty %d not allocated ??\n", fg_console+1);
return;
}
 
/* don't blank graphics */
if (vt_cons[fg_console]->vc_mode == KD_TEXT) {
if (vesa_off_interval && !nopowersave) {
timer_table[BLANK_TIMER].fn = vesa_powerdown_screen;
timer_table[BLANK_TIMER].expires = jiffies + vesa_off_interval;
timer_active |= (1<<BLANK_TIMER);
} else {
timer_active &= ~(1<<BLANK_TIMER);
timer_table[BLANK_TIMER].fn = unblank_screen;
}
 
/* try not to lose information by blanking,
and not to waste memory */
currcons = fg_console;
has_scrolled = 0;
sw->con_blank(1);
if (!nopowersave)
sw->con_blank(vesa_blank_mode + 1);
}
else
hide_cursor(fg_console);
console_blanked = fg_console + 1;
#endif
}
 
void do_unblank_screen(void)
{
#if 0
int currcons;
 
if (!console_blanked)
return;
if (!vc_cons_allocated(fg_console)) {
/* impossible */
printk("unblank_screen: tty %d not allocated ??\n", fg_console+1);
return;
}
timer_table[BLANK_TIMER].fn = blank_screen;
if (blankinterval) {
timer_table[BLANK_TIMER].expires = jiffies + blankinterval;
timer_active |= 1<<BLANK_TIMER;
}
 
currcons = fg_console;
console_blanked = 0;
if (sw->con_blank (0))
/* Low-level driver cannot restore -> do it ourselves */
update_screen( fg_console );
set_cursor (fg_console);
#endif
}
 
void update_screen(int new_console)
{
int currcons = fg_console;
int xx, yy, startx, attr_save;
char buf[256], *bufp;
unsigned short *p;
static int lock = 0;
 
if (/* new_console == fg_console || */ lock)
return;
if (!vc_cons_allocated(new_console)) {
/* strange ... */
printk("update_screen: tty %d not allocated ??\n", new_console+1);
return;
}
lock = 1;
 
clear_selection();
 
currcons = fg_console = new_console;
sw->con_cursor (vc_cons[currcons].d, CM_ERASE);
sw->con_switch (vc_cons[new_console].d);
/* Update the screen contents */
p = video_mem_start;
attr_save = attr;
for (yy = 0; yy < rows; yy++)
{
bufp = buf;
for (startx = xx = 0; xx < cols; xx++)
{
if (attr != ((*p >> 8) & 0xff))
{
if (bufp > buf)
sw->con_putcs (vc_cons[currcons].d, buf, bufp - buf,
yy, startx);
startx = xx;
bufp = buf;
attr = (*p >> 8) & 0xff;
}
*bufp++ = *p++;
if (bufp == buf + sizeof (buf))
{
sw->con_putcs (vc_cons[currcons].d, buf, bufp - buf,
yy, startx);
startx = xx + 1;
bufp = buf;
}
}
if (bufp > buf)
sw->con_putcs (vc_cons[currcons].d, buf, bufp - buf,
yy, startx);
}
set_cursor (currcons);
attr = attr_save;
set_leds();
compute_shiftstate();
lock = 0;
}
 
/*
* If a blank_screen is due to a timer, then a power save is allowed.
* If it is related to console_switching, then avoid vesa_blank().
*/
static void blank_screen(void)
{
do_blank_screen(0);
}
 
static void unblank_screen(void)
{
do_unblank_screen();
}
 
/*
* Allocate the console screen memory.
*/
int con_open(struct tty_struct *tty, struct file * filp)
{
unsigned int currcons;
int i;
 
currcons = MINOR(tty->device) - tty->driver.minor_start;
i = vc_allocate(currcons);
if (i)
return i;
 
vt_cons[currcons]->vc_num = currcons;
tty->driver_data = vt_cons[currcons];
if (!tty->winsize.ws_row && !tty->winsize.ws_col) {
tty->winsize.ws_row = rows;
tty->winsize.ws_col = cols;
}
 
return 0;
}
 
/*
* PIO_FONT support.
*
* Currently we only support 8 pixels wide fonts, at a maximum height
* of 32 pixels. Userspace fontdata is stored with 32 bytes reserved
* for each character which is kinda wasty, but this is done in order
* to maintain compatibility with the EGA/VGA fonts. It is upto the
* actual low-level console-driver convert data into its favorite
* format (maybe we should add a `fontoffset' field to the `display'
* structure so we wont have to convert the fontdata all the time.
* /Jes
*/
 
#define cmapsz 8192
 
static int set_get_font(char * arg, int set, int ch512)
{
#ifdef CAN_LOAD_EGA_FONTS
int i, unit, size;
char *charmap;
 
if (arg){
i = verify_area(set ? VERIFY_READ : VERIFY_WRITE,
(void *)arg, ch512 ? 2*cmapsz : cmapsz);
if (i)
return i;
}else
return -EINVAL;
 
 
size = ch512 ? 2*cmapsz : cmapsz;
 
charmap = (char *)kmalloc(size, GFP_USER);
 
if (set){
memcpy_fromfs(charmap, arg, size);
 
for (unit = 32; unit > 0; unit--)
for (i = 0; i < (ch512 ? 512 : 256); i++)
if (charmap[32*i+unit-1])
goto nonzero;
nonzero:
i = conswitchp->con_set_font(vc_cons[fg_console].d, 8,
unit, charmap);
}else{
memset(charmap, 0, size);
i = conswitchp->con_get_font(vc_cons[fg_console].d,
&unit, &unit, charmap);
memcpy_tofs(arg, charmap, size);
}
kfree(charmap);
 
return i;
#else
return -EINVAL;
#endif
}
 
/*
* Load palette into the EGA/VGA DAC registers. arg points to a colour
* map, 3 bytes per colour, 16 colours, range from 0 to 255.
*/
 
int con_set_cmap (unsigned char *arg)
{
return -EINVAL;
}
 
int con_get_cmap (unsigned char *arg)
{
return -EINVAL;
}
 
void reset_palette(int currcons)
{
}
 
void set_palette(void)
{
}
 
/*
* Load font into the EGA/VGA character generator. arg points to a 8192
* byte map, 32 bytes per character. Only first H of them are used for
* 8xH fonts (0 < H <= 32).
*/
 
int con_set_font (char *arg, int ch512)
{
int i;
 
i = set_get_font (arg,1,ch512);
if ( !i ) {
hashtable_contents_valid = 0;
video_mode_512ch = ch512;
console_charmask = ch512 ? 0x1ff : 0x0ff;
}
return i;
}
 
int con_get_font (char *arg)
{
return set_get_font (arg,0,video_mode_512ch);
}
 
/*
* Adjust the screen to fit a font of a certain height
*
* Returns < 0 for error, 0 if nothing changed, and the number
* of lines on the adjusted console if changed.
*/
int con_adjust_height(unsigned long fontheight)
{
return -EINVAL;
}
 
void set_vesa_blanking(int arg)
{
char *argp = (char *)arg + 1;
unsigned int mode = get_fs_byte(argp);
vesa_blank_mode = (mode < 4) ? mode : 0;
}
 
unsigned long get_video_num_lines(unsigned int currcons)
{
return(rows);
}
 
unsigned long get_video_num_columns(unsigned int currcons)
{
return(cols);
}
 
unsigned long get_video_size_row(unsigned int currcons)
{
return(size_row);
}
 
/*
* Report the current status of the vc. This is exported to modules (ARub)
*/
 
int con_get_info(int *mode, int *shift, int *col, int *row,
struct tty_struct **tty)
{
extern int shift_state;
extern struct tty_driver console_driver;
struct tty_struct **console_table=console_driver.table;
 
if (mode) *mode = vt_cons[fg_console]->vc_mode;
if (shift) *shift = shift_state;
if (col) *col = video_num_columns;
if (row) *row = video_num_lines;
if (tty) *tty = console_table[fg_console];
return fg_console;
}
/kernel/ksyms.c
0,0 → 1,40
#include <linux/config.h>
#include <linux/module.h>
#include <linux/linkage.h>
#include <linux/sched.h>
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/user.h>
#include <linux/elfcore.h>
 
#include <asm/pgtable.h>
#include <asm/irq.h>
#include <asm/semaphore.h>
 
extern void dump_thread(struct pt_regs *, struct user *);
extern int dump_fpu(elf_fpregset_t *);
 
static struct symbol_table arch_symbol_table = {
#include <linux/symtab_begin.h>
/* platform dependent support */
 
X(memcmp),
X(request_irq),
X(free_irq),
X(dump_fpu),
X(dump_thread),
X(strnlen),
 
/* The following are special because they're not called
explicitly (the C compiler generates them). Fortunately,
their interface isn't gonna change any time soon now, so
it's OK to leave it out of version control. */
XNOVERS(memcpy),
 
#include <linux/symtab_end.h>
};
 
void arch_syms_export(void)
{
register_symtab(&arch_symbol_table);
}
/kernel/mk_defs.c
0,0 → 1,136
/*
* This program is used to generate definitions needed by
* assembly language modules.
*/
#define MK_DEFS
#include <stdio.h>
 
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/head.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/types.h>
#include <linux/ptrace.h>
#include <linux/mman.h>
#include <linux/mm.h>
 
extern int errno;
 
main(int argc, char *argv[])
{
FILE *out;
struct task_struct task;
struct thread_struct tss;
struct pt_regs regs;
if (!(out = fopen(argv[1], "w")))
{
fprintf(stderr, "Can't create output file: %s\n", strerror(errno));
exit(1);
}
fprintf(out, "/*\n");
fprintf(out, " * WARNING! This file is automatically generated - DO NOT EDIT!\n");
fprintf(out, " */\n");
put_line(out, "STATE", (int)&task.state-(int)&task);
put_line(out, "COUNTER", (int)&task.counter-(int)&task);
put_line(out, "BLOCKED", (int)&task.blocked-(int)&task);
put_line(out, "SIGNAL", (int)&task.signal-(int)&task);
put_line(out, "KERNEL_STACK_PAGE", (int)&task.kernel_stack_page-(int)&task);
put_line(out, "TSS", (int)&task.tss-(int)&task);
put_line(out, "KSP", (int)&tss.ksp-(int)&tss);
put_line(out, "LAST_PC", (int)&tss.last_pc-(int)&tss);
put_line(out, "USER_STACK", (int)&tss.user_stack-(int)&tss);
put_line(out, "PT_REGS", (int)&tss.regs-(int)&tss);
put_line(out, "PF_TRACESYS", PF_TRACESYS);
put_line(out, "TASK_FLAGS", (int)&task.flags-(int)&task);
put_line(out, "MMU_SEG0", (int)&tss.segs[0]-(int)&tss);
put_line(out, "MMU_SEG1", (int)&tss.segs[1]-(int)&tss);
put_line(out, "MMU_SEG2", (int)&tss.segs[2]-(int)&tss);
put_line(out, "MMU_SEG3", (int)&tss.segs[3]-(int)&tss);
put_line(out, "MMU_SEG4", (int)&tss.segs[4]-(int)&tss);
put_line(out, "MMU_SEG5", (int)&tss.segs[5]-(int)&tss);
put_line(out, "MMU_SEG6", (int)&tss.segs[6]-(int)&tss);
put_line(out, "MMU_SEG7", (int)&tss.segs[7]-(int)&tss);
put_line(out, "MMU_SEG8", (int)&tss.segs[8]-(int)&tss);
put_line(out, "MMU_SEG9", (int)&tss.segs[9]-(int)&tss);
put_line(out, "MMU_SEG10", (int)&tss.segs[10]-(int)&tss);
put_line(out, "MMU_SEG11", (int)&tss.segs[11]-(int)&tss);
put_line(out, "MMU_SEG12", (int)&tss.segs[12]-(int)&tss);
put_line(out, "MMU_SEG13", (int)&tss.segs[13]-(int)&tss);
put_line(out, "MMU_SEG14", (int)&tss.segs[14]-(int)&tss);
put_line(out, "MMU_SEG15", (int)&tss.segs[15]-(int)&tss);
put_line(out, "TSS_FPR0", (int)&tss.fpr[0]-(int)&tss);
put_line(out, "TSS_FPR1", (int)&tss.fpr[1]-(int)&tss);
put_line(out, "TSS_FPR2", (int)&tss.fpr[2]-(int)&tss);
put_line(out, "TSS_FPR3", (int)&tss.fpr[3]-(int)&tss);
put_line(out, "TSS_FPR4", (int)&tss.fpr[4]-(int)&tss);
put_line(out, "TSS_FPR5", (int)&tss.fpr[5]-(int)&tss);
put_line(out, "TSS_FPR6", (int)&tss.fpr[6]-(int)&tss);
put_line(out, "TSS_FPR7", (int)&tss.fpr[7]-(int)&tss);
put_line(out, "TSS_FPR8", (int)&tss.fpr[8]-(int)&tss);
put_line(out, "TSS_FPR9", (int)&tss.fpr[9]-(int)&tss);
put_line(out, "TSS_FPR10", (int)&tss.fpr[10]-(int)&tss);
put_line(out, "TSS_FPR11", (int)&tss.fpr[11]-(int)&tss);
put_line(out, "TSS_FPR12", (int)&tss.fpr[12]-(int)&tss);
put_line(out, "TSS_FPR13", (int)&tss.fpr[13]-(int)&tss);
put_line(out, "TSS_FPR14", (int)&tss.fpr[14]-(int)&tss);
put_line(out, "TSS_FPR15", (int)&tss.fpr[15]-(int)&tss);
put_line(out, "TSS_FPR16", (int)&tss.fpr[16]-(int)&tss);
put_line(out, "TSS_FPR17", (int)&tss.fpr[17]-(int)&tss);
put_line(out, "TSS_FPR18", (int)&tss.fpr[18]-(int)&tss);
put_line(out, "TSS_FPR19", (int)&tss.fpr[19]-(int)&tss);
put_line(out, "TSS_FPR20", (int)&tss.fpr[20]-(int)&tss);
put_line(out, "TSS_FPR21", (int)&tss.fpr[21]-(int)&tss);
put_line(out, "TSS_FPR22", (int)&tss.fpr[22]-(int)&tss);
put_line(out, "TSS_FPR23", (int)&tss.fpr[23]-(int)&tss);
put_line(out, "TSS_FPR24", (int)&tss.fpr[24]-(int)&tss);
put_line(out, "TSS_FPR25", (int)&tss.fpr[25]-(int)&tss);
put_line(out, "TSS_FPR26", (int)&tss.fpr[26]-(int)&tss);
put_line(out, "TSS_FPR27", (int)&tss.fpr[27]-(int)&tss);
put_line(out, "TSS_FPR28", (int)&tss.fpr[28]-(int)&tss);
put_line(out, "TSS_FPR29", (int)&tss.fpr[29]-(int)&tss);
put_line(out, "TSS_FPR30", (int)&tss.fpr[30]-(int)&tss);
put_line(out, "TSS_FPR31", (int)&tss.fpr[31]-(int)&tss);
/* Interrupt register frame */
put_line(out, "INT_FRAME_SIZE", sizeof(regs));
put_line(out, "SP", (int)&regs.sp-(int)&regs);
put_line(out, "PC", (int)&regs.pc-(int)&regs);
put_line(out, "GPR2", (int)&regs.gprs[0]-(int)&regs);
put_line(out, "GPR3", (int)&regs.gprs[1]-(int)&regs);
put_line(out, "GPR4", (int)&regs.gprs[2]-(int)&regs);
put_line(out, "GPR5", (int)&regs.gprs[3]-(int)&regs);
put_line(out, "GPR6", (int)&regs.gprs[4]-(int)&regs);
put_line(out, "GPR7", (int)&regs.gprs[5]-(int)&regs);
put_line(out, "GPR8", (int)&regs.gprs[6]-(int)&regs);
put_line(out, "GPR9", (int)&regs.gprs[7]-(int)&regs);
put_line(out, "GPR10", (int)&regs.gprs[8]-(int)&regs);
put_line(out, "GPR11", (int)&regs.gprs[9]-(int)&regs);
put_line(out, "GPR12", (int)&regs.gprs[10]-(int)&regs);
put_line(out, "GPR13", (int)&regs.gprs[11]-(int)&regs);
put_line(out, "GPR14", (int)&regs.gprs[12]-(int)&regs);
put_line(out, "GPR15", (int)&regs.gprs[13]-(int)&regs);
put_line(out, "GPR16", (int)&regs.gprs[14]-(int)&regs);
put_line(out, "GPR17", (int)&regs.gprs[15]-(int)&regs);
put_line(out, "GPR18", (int)&regs.gprs[16]-(int)&regs);
put_line(out, "GPR19", (int)&regs.gprs[17]-(int)&regs);
put_line(out, "GPR20", (int)&regs.gprs[18]-(int)&regs);
put_line(out, "GPR21", (int)&regs.gprs[19]-(int)&regs);
put_line(out, "GPR22", (int)&regs.gprs[20]-(int)&regs);
put_line(out, "GPR23", (int)&regs.gprs[21]-(int)&regs);
put_line(out, "GPR24", (int)&regs.gprs[22]-(int)&regs);
put_line(out, "GPR25", (int)&regs.gprs[23]-(int)&regs);
put_line(out, "GPR26", (int)&regs.gprs[24]-(int)&regs);
put_line(out, "GPR27", (int)&regs.gprs[25]-(int)&regs);
put_line(out, "GPR28", (int)&regs.gprs[26]-(int)&regs);
put_line(out, "GPR29", (int)&regs.gprs[27]-(int)&regs);
put_line(out, "GPR30", (int)&regs.gprs[28]-(int)&regs);
put_line(out, "GPR31", (int)&regs.gprs[29]-(int)&regs);
put_line(out, "SR", (int)&regs.sr-(int)&regs);
exit(0);
}
 
put_line(FILE *out, char *name, int offset)
{
fprintf(out, "#define %s %d\n", name, offset);
}
/kernel/entry.S
0,0 → 1,368
 
#include <linux/sys.h>
#include <linux/config.h>
#include <linux/linkage.h>
#include <asm/segment.h>
 
LENOSYS = 38
 
/*
* these are offsets into the task-struct
*/
LTASK_STATE = 0
LTASK_COUNTER = 4
LTASK_PRIORITY = 8
LTASK_SIGNAL = 12
LTASK_BLOCKED = 16
LTASK_FLAGS = 20
 
/* the following macro is used when enabling interrupts */
#define ALLOWINT 0xf8ff
#define MAX_NOINT_IPL 0
 
LD0 = 0x1C
LORIG_D0 = 0x20
LSR = 0x28
LFORMATVEC = 0x2E
 
/*
* This defines the normal kernel pt-regs layout.
*
* regs are a2-a6 and d6-d7 preserved by C code
* the kernel doesn't mess with usp unless it needs to
*/
#define SAVE_ALL \
clrl %sp@-; /* stk_adj */ \
movel %d0,%sp@-; /* orig d0 */ \
movel %d0,%sp@-; /* d0 */ \
moveml %d1-%d5/%a0-%a1,%sp@-
 
/* moveml %sp@+,%a0-%a1/%d1-%d5; */
 
#define RESTORE_ALL \
moveml %sp@+,%d1-%d5/%a0-%a1; \
movel %sp@+,%d0; \
addql #4,%sp; /* orig d0 */ \
addl %sp@+,%sp; /* stk adj */ \
rte
 
#define SWITCH_STACK_SIZE (7*4+4) /* includes return address */
 
#define SAVE_SWITCH_STACK \
moveml %a2-%a6/%d6-%d7,%sp@-
 
#define RESTORE_SWITCH_STACK \
moveml %sp@+,%a2-%a6/%d6-%d7
 
.globl SYMBOL_NAME(system_call), SYMBOL_NAME(buserr), SYMBOL_NAME(trap)
.globl SYMBOL_NAME(resume), SYMBOL_NAME(ret_from_exception)
.globl SYMBOL_NAME(ret_from_signal)
.globl SYMBOL_NAME(trap3)
.globl SYMBOL_NAME(trap4)
.globl SYMBOL_NAME(trap5)
.globl SYMBOL_NAME(inthandler1)
.globl SYMBOL_NAME(inthandler1)
.globl SYMBOL_NAME(inthandler1)
.globl SYMBOL_NAME(inthandler2)
.globl SYMBOL_NAME(inthandler3)
.globl SYMBOL_NAME(inthandler4)
.globl SYMBOL_NAME(inthandler5)
.globl SYMBOL_NAME(inthandler6)
.globl SYMBOL_NAME(inthandler7)
.globl SYMBOL_NAME(inthandler8)
.globl SYMBOL_NAME(inthandler)
.globl SYMBOL_NAME(inthandler_wrap)
.globl SYMBOL_NAME(timerhandler)
.globl SYMBOL_NAME(serialhandler)
.globl SYMBOL_NAME(sys_call_table)
.globl SYMBOL_NAME(sys_fork), SYMBOL_NAME(sys_clone)
.globl SYMBOL_NAME(ret_from_interrupt), SYMBOL_NAME(bad_interrupt)
 
 
.text
ENTRY(buserr)
 
ENTRY(trap)
 
ENTRY(trap3)
 
ENTRY(trap4)
 
ENTRY(trap5)
 
ENTRY(trap6)
 
ENTRY(trap7)
 
ENTRY(trap8)
 
ENTRY(trap9)
 
ENTRY(trap10)
 
ENTRY(trap11)
 
ENTRY(trap12)
 
ENTRY(trap13)
 
ENTRY(trap14)
 
ENTRY(trap15)
 
ENTRY(trap33)
 
ENTRY(trap34)
 
ENTRY(trap35)
 
ENTRY(trap36)
 
ENTRY(trap37)
 
ENTRY(trap38)
 
ENTRY(trap39)
 
ENTRY(trap40)
 
ENTRY(trap41)
 
ENTRY(trap42)
 
ENTRY(trap43)
 
ENTRY(trap44)
 
ENTRY(trap45)
 
 
SYMBOL_NAME_LABEL(timerhandler)
 
 
SYMBOL_NAME_LABEL(serialhandler)
 
 
SYMBOL_NAME_LABEL(inthandler1)
 
 
SYMBOL_NAME_LABEL(inthandler2)
 
 
SYMBOL_NAME_LABEL(inthandler3)
 
 
SYMBOL_NAME_LABEL(inthandler4)
 
 
SYMBOL_NAME_LABEL(inthandler5)
 
 
SYMBOL_NAME_LABEL(inthandler6)
 
 
SYMBOL_NAME_LABEL(inthandler7)
 
 
SYMBOL_NAME_LABEL(inthandler8)
 
 
SYMBOL_NAME_LABEL(inthandler_wrap)
 
 
SYMBOL_NAME_LABEL(inthandler)
 
 
SYMBOL_NAME_LABEL(ret_from_interrupt)
 
 
SYMBOL_NAME_LABEL(bad_interrupt)
 
 
SYMBOL_NAME_LABEL(resume)
 
 
.text
ALIGN
SYMBOL_NAME_LABEL(sys_call_table)
.long SYMBOL_NAME(sys_setup) /* 0 */
.long SYMBOL_NAME(sys_exit)
.long SYMBOL_NAME(sys_fork)
.long SYMBOL_NAME(sys_read)
.long SYMBOL_NAME(sys_write)
.long SYMBOL_NAME(sys_open) /* 5 */
.long SYMBOL_NAME(sys_close)
.long SYMBOL_NAME(sys_waitpid)
.long SYMBOL_NAME(sys_creat)
.long SYMBOL_NAME(sys_link)
.long SYMBOL_NAME(sys_unlink) /* 10 */
.long SYMBOL_NAME(sys_execve)
.long SYMBOL_NAME(sys_chdir)
.long SYMBOL_NAME(sys_time)
.long SYMBOL_NAME(sys_mknod)
.long SYMBOL_NAME(sys_chmod) /* 15 */
.long SYMBOL_NAME(sys_chown)
.long SYMBOL_NAME(sys_break)
.long SYMBOL_NAME(sys_stat)
.long SYMBOL_NAME(sys_lseek)
.long SYMBOL_NAME(sys_getpid) /* 20 */
.long SYMBOL_NAME(sys_mount)
.long SYMBOL_NAME(sys_umount)
.long SYMBOL_NAME(sys_setuid)
.long SYMBOL_NAME(sys_getuid)
.long SYMBOL_NAME(sys_stime) /* 25 */
.long SYMBOL_NAME(sys_ptrace)
.long SYMBOL_NAME(sys_alarm)
.long SYMBOL_NAME(sys_fstat)
.long SYMBOL_NAME(sys_pause)
.long SYMBOL_NAME(sys_utime) /* 30 */
.long SYMBOL_NAME(sys_stty)
.long SYMBOL_NAME(sys_gtty)
.long SYMBOL_NAME(sys_access)
.long SYMBOL_NAME(sys_nice)
.long SYMBOL_NAME(sys_ftime) /* 35 */
.long SYMBOL_NAME(sys_sync)
.long SYMBOL_NAME(sys_kill)
.long SYMBOL_NAME(sys_rename)
.long SYMBOL_NAME(sys_mkdir)
.long SYMBOL_NAME(sys_rmdir) /* 40 */
.long SYMBOL_NAME(sys_dup)
.long SYMBOL_NAME(sys_pipe)
.long SYMBOL_NAME(sys_times)
.long SYMBOL_NAME(sys_prof)
.long SYMBOL_NAME(sys_brk) /* 45 */
.long SYMBOL_NAME(sys_setgid)
.long SYMBOL_NAME(sys_getgid)
.long SYMBOL_NAME(sys_signal)
.long SYMBOL_NAME(sys_geteuid)
.long SYMBOL_NAME(sys_getegid) /* 50 */
.long SYMBOL_NAME(sys_acct)
.long SYMBOL_NAME(sys_phys)
.long SYMBOL_NAME(sys_lock)
.long SYMBOL_NAME(sys_ioctl)
.long SYMBOL_NAME(sys_fcntl) /* 55 */
.long SYMBOL_NAME(sys_mpx)
.long SYMBOL_NAME(sys_setpgid)
.long SYMBOL_NAME(sys_ulimit)
.long SYMBOL_NAME(sys_olduname)
.long SYMBOL_NAME(sys_umask) /* 60 */
.long SYMBOL_NAME(sys_chroot)
.long SYMBOL_NAME(sys_ustat)
.long SYMBOL_NAME(sys_dup2)
.long SYMBOL_NAME(sys_getppid)
.long SYMBOL_NAME(sys_getpgrp) /* 65 */
.long SYMBOL_NAME(sys_setsid)
.long SYMBOL_NAME(sys_sigaction)
.long SYMBOL_NAME(sys_sgetmask)
.long SYMBOL_NAME(sys_ssetmask)
.long SYMBOL_NAME(sys_setreuid) /* 70 */
.long SYMBOL_NAME(sys_setregid)
.long SYMBOL_NAME(sys_sigsuspend)
.long SYMBOL_NAME(sys_sigpending)
.long SYMBOL_NAME(sys_sethostname)
.long SYMBOL_NAME(sys_setrlimit) /* 75 */
.long SYMBOL_NAME(sys_getrlimit)
.long SYMBOL_NAME(sys_getrusage)
.long SYMBOL_NAME(sys_gettimeofday)
.long SYMBOL_NAME(sys_settimeofday)
.long SYMBOL_NAME(sys_getgroups) /* 80 */
.long SYMBOL_NAME(sys_setgroups)
.long SYMBOL_NAME(old_select)
.long SYMBOL_NAME(sys_symlink)
.long SYMBOL_NAME(sys_lstat)
.long SYMBOL_NAME(sys_readlink) /* 85 */
.long SYMBOL_NAME(sys_uselib)
.long SYMBOL_NAME(sys_swapon)
.long SYMBOL_NAME(sys_reboot)
.long SYMBOL_NAME(old_readdir)
.long SYMBOL_NAME(old_mmap) /* 90 */
.long SYMBOL_NAME(sys_munmap)
.long SYMBOL_NAME(sys_truncate)
.long SYMBOL_NAME(sys_ftruncate)
.long SYMBOL_NAME(sys_fchmod)
.long SYMBOL_NAME(sys_fchown) /* 95 */
.long SYMBOL_NAME(sys_getpriority)
.long SYMBOL_NAME(sys_setpriority)
.long SYMBOL_NAME(sys_profil)
.long SYMBOL_NAME(sys_statfs)
.long SYMBOL_NAME(sys_fstatfs) /* 100 */
.long SYMBOL_NAME(sys_ioperm)
.long SYMBOL_NAME(sys_socketcall)
.long SYMBOL_NAME(sys_syslog)
.long SYMBOL_NAME(sys_setitimer)
.long SYMBOL_NAME(sys_getitimer) /* 105 */
.long SYMBOL_NAME(sys_newstat)
.long SYMBOL_NAME(sys_newlstat)
.long SYMBOL_NAME(sys_newfstat)
.long SYMBOL_NAME(sys_uname)
.long SYMBOL_NAME(sys_ni_syscall) /* iopl for i386 */ /* 110 */
.long SYMBOL_NAME(sys_vhangup)
.long SYMBOL_NAME(sys_idle)
.long SYMBOL_NAME(sys_ni_syscall) /* vm86 for i386 */
.long SYMBOL_NAME(sys_wait4)
.long SYMBOL_NAME(sys_swapoff) /* 115 */
.long SYMBOL_NAME(sys_sysinfo)
.long SYMBOL_NAME(sys_ipc)
.long SYMBOL_NAME(sys_fsync)
.long SYMBOL_NAME(sys_sigreturn)
.long SYMBOL_NAME(sys_clone) /* 120 */
.long SYMBOL_NAME(sys_setdomainname)
.long SYMBOL_NAME(sys_newuname)
.long SYMBOL_NAME(sys_cacheflush) /* modify_ldt for i386 */
.long SYMBOL_NAME(sys_adjtimex)
.long SYMBOL_NAME(sys_mprotect) /* 125 */
.long SYMBOL_NAME(sys_sigprocmask)
.long SYMBOL_NAME(sys_create_module)
.long SYMBOL_NAME(sys_init_module)
.long SYMBOL_NAME(sys_delete_module)
.long SYMBOL_NAME(sys_get_kernel_syms) /* 130 */
.long SYMBOL_NAME(sys_quotactl)
.long SYMBOL_NAME(sys_getpgid)
.long SYMBOL_NAME(sys_fchdir)
.long SYMBOL_NAME(sys_bdflush)
.long SYMBOL_NAME(sys_sysfs) /* 135 */
.long SYMBOL_NAME(sys_personality)
.long SYMBOL_NAME(sys_ni_syscall) /* for afs_syscall */
.long SYMBOL_NAME(sys_setfsuid)
.long SYMBOL_NAME(sys_setfsgid)
.long SYMBOL_NAME(sys_llseek) /* 140 */
.long SYMBOL_NAME(sys_getdents)
.long SYMBOL_NAME(sys_select)
.long SYMBOL_NAME(sys_flock)
.long SYMBOL_NAME(sys_msync)
.long SYMBOL_NAME(sys_readv) /* 145 */
.long SYMBOL_NAME(sys_writev)
.long SYMBOL_NAME(sys_getsid)
.long SYMBOL_NAME(sys_fdatasync)
.long SYMBOL_NAME(sys_sysctl)
.long SYMBOL_NAME(sys_mlock) /* 150 */
.long SYMBOL_NAME(sys_munlock)
.long SYMBOL_NAME(sys_mlockall)
.long SYMBOL_NAME(sys_munlockall)
.long SYMBOL_NAME(sys_sched_setparam)
.long SYMBOL_NAME(sys_sched_getparam) /* 155 */
.long SYMBOL_NAME(sys_sched_setscheduler)
.long SYMBOL_NAME(sys_sched_getscheduler)
.long SYMBOL_NAME(sys_sched_yield)
.long SYMBOL_NAME(sys_sched_get_priority_max)
.long SYMBOL_NAME(sys_sched_get_priority_min) /* 160 */
.long SYMBOL_NAME(sys_sched_rr_get_interval)
.long SYMBOL_NAME(sys_nanosleep)
.long SYMBOL_NAME(sys_mremap)
.space (NR_syscalls-163)*4
 
ENTRY(trap46)
 
ENTRY(trap47)
 
ENTRY(reschedule)
 
ENTRY(system_call)
 
SYMBOL_NAME_LABEL(ret_from_signal)
 
SYMBOL_NAME_LABEL(ret_from_exception)
 
Lsignal_return:
 
 
/kernel/semaphore.c
0,0 → 1,83
/*
* FILE: semaphore.c
* AUTHOR: kma@cse.ogi.edu
* DESCR: interrupt-safe i960 semaphore implementation; isn't ready for SMP
*/
 
#include <asm/semaphore.h>
#include <linux/sched.h>
 
extern int __down_common(struct semaphore* sem, int intrflag)
{
long flags;
int retval=0;
 
save_flags(flags);
cli();
if (--sem->count < 0) {
if (intrflag) {
interruptible_sleep_on(&sem->wait);
if (current->signal & ~current->blocked) {
retval = -1;
}
}
else
sleep_on(&sem->wait);
}
restore_flags(flags);
return retval;
}
 
void down(struct semaphore * sem)
{
__down_common(sem, 0);
}
 
 
/*
* This version waits in interruptible state so that the waiting
* process can be killed. The down_failed_interruptible routine
* returns negative for signalled and zero for semaphore acquired.
*/
extern int down_interruptible(struct semaphore * sem)
{
return __down_common(sem, 1);
return 0;
}
 
 
/*
* Primitives to spin on a lock. Needed only for SMP.
*/
extern void get_buzz_lock(int *lock_ptr)
{
#ifdef __SMP__
while (xchg(lock_ptr,1) != 0) ;
#endif
}
 
extern void give_buzz_lock(int *lock_ptr)
{
#ifdef __SMP__
*lock_ptr = 0 ;
#endif
}
 
 
/*
* We wake people up only if the semaphore was negative (== somebody was
* waiting on it).
*/
extern void up(struct semaphore * sem)
{
long flags;
save_flags(flags);
cli();
 
if (sem->count++ < 0)
wake_up(&sem->wait);
restore_flags(flags);
}
 
/kernel/traps.c
0,0 → 1,209
/*
* linux/arch/m68knommu/kernel/traps.c
*
* Copyright (C) 1998 D. Jeff Dionne <jeff@ryeham.ee.ryerson.ca>,
* Kenneth Albanowski <kjahds@kjahds.com>
* The Silver Hammer Group, Ltd.
*
* (Blame me for the icky bits -- kja)
*
* Based on:
*
* linux/arch/m68k/kernel/traps.c
*
* Copyright (C) 1993, 1994 by Hamish Macdonald
*
* 68040 fixes by Michael Rausch
* 68040 fixes by Martin Apel
* 68060 fixes by Roman Hodek
* 68060 fixes by Jesper Skov
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file COPYING in the main directory of this archive
* for more details.
*
* Feb/1999 - Greg Ungerer (gerg@moreton.com.au) changes to support ColdFire.
*/
 
/*
* Sets up all exception vectors
*/
 
#include <linux/config.h>
#include <linux/sched.h>
#include <linux/signal.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/types.h>
#include <linux/a.out.h>
#include <linux/user.h>
#include <linux/string.h>
#include <linux/linkage.h>
 
#include <asm/system.h>
#include <asm/segment.h>
#include <asm/traps.h>
#include <asm/pgtable.h>
#include <asm/machdep.h>
 
 
void trap_init (void)
{
if (mach_trap_init)
mach_trap_init();
}
 
static inline void console_verbose(void)
{
extern int console_loglevel;
console_loglevel = 15;
if (mach_debug_init)
mach_debug_init();
}
 
 
extern void die_if_kernel(char *,struct pt_regs *,int);
asmlinkage void trap_c(int vector, struct frame *fp);
 
asmlinkage void buserr_c(struct frame *fp)
{
#if 1
extern void dump(struct pt_regs *fp);
printk("%s(%d): BUSS ERROR TRAP\n", __FILE__, __LINE__);
dump((struct pt_regs *) fp);
#endif
 
/* Only set esp0 if coming from user mode */
if (user_mode(&fp->ptregs)) {
current->tss.esp0 = (unsigned long) fp;
} else {
die_if_kernel("Kernel mode BUS error",(struct pt_regs *)fp,0);
}
 
/* insert handler here */
force_sig(SIGSEGV, current);
}
 
 
static int bad_super_trap_count = 0;
 
void bad_super_trap (int vector, struct frame *fp)
{
extern void dump(struct pt_regs *fp);
 
if (bad_super_trap_count++) {
while(1);
}
 
printk ("KERNEL: Bad trap from supervisor state, vector=%d\n", vector);
dump((struct pt_regs *) fp);
panic ("Trap from supervisor state");
}
 
asmlinkage void trap_c(int vector, struct frame *fp)
{
int sig;
#if 0
if ((fp->ptregs.sr & PS_S)
&& ((fp->ptregs.vector) >> 2) == VEC_TRACE
&& !(fp->ptregs.sr & PS_T)) {
/* traced a trapping instruction */
unsigned char *lp = ((unsigned char *)&fp->un.fmt2) + 4;
current->flags |= PF_DTRACE;
/* clear the trace bit */
(*(unsigned short *)lp) &= ~PS_T;
return;
} else if (fp->ptregs.sr & PS_S) {
bad_super_trap(vector, fp);
return;
}
 
/* send the appropriate signal to the user program */
switch (vector) {
case VEC_ADDRERR:
sig = SIGBUS;
break;
case VEC_BUSERR:
sig = SIGSEGV;
break;
case VEC_ILLEGAL:
case VEC_PRIV:
case VEC_LINE10:
case VEC_LINE11:
case VEC_COPROC:
case VEC_TRAP2:
case VEC_TRAP3:
case VEC_TRAP4:
case VEC_TRAP5:
case VEC_TRAP6:
case VEC_TRAP7:
case VEC_TRAP8:
case VEC_TRAP9:
case VEC_TRAP10:
case VEC_TRAP11:
case VEC_TRAP12:
case VEC_TRAP13:
case VEC_TRAP14:
sig = SIGILL;
break;
#ifndef NO_FPU
case VEC_FPBRUC:
case VEC_FPIR:
case VEC_FPDIVZ:
case VEC_FPUNDER:
case VEC_FPOE:
case VEC_FPOVER:
case VEC_FPNAN:
{
unsigned char fstate[216];
 
__asm__ __volatile__ ("fsave %0@" : : "a" (fstate) : "memory");
/* Set the exception pending bit in the 68882 idle frame */
if (*(unsigned short *) fstate == 0x1f38)
{
fstate[fstate[1]] |= 1 << 3;
__asm__ __volatile__ ("frestore %0@" : : "a" (fstate));
}
}
/* fall through */
#endif
case VEC_ZERODIV:
case VEC_TRAP:
sig = SIGFPE;
break;
case VEC_TRACE: /* ptrace single step */
fp->ptregs.sr &= ~PS_T;
case VEC_TRAP15: /* breakpoint */
sig = SIGTRAP;
break;
case VEC_TRAP1: /* gdbserver breakpoint */
/* kwonsk: is this right? */
fp->ptregs.pc -= 2;
sig = SIGTRAP;
break;
default:
sig = SIGILL;
break;
}
 
send_sig (sig, current, 1);
#endif
}
 
asmlinkage void set_esp0 (unsigned long ssp)
{
current->tss.esp0 = ssp;
}
 
void die_if_kernel (char *str, struct pt_regs *fp, int nr)
{
extern void dump(struct pt_regs *fp);
 
if (!(fp->sr & PS_S))
return;
 
console_verbose();
dump(fp);
 
do_exit(SIGSEGV);
}
/kernel/Makefile
0,0 → 1,23
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definitions are now in the main makefile...
 
.S.o:
$(CC) -D__ASSEMBLY__ $(AFLAGS) -traditional -c $< -o $*.o
 
all: head.o kernel.o
 
 
O_TARGET := kernel.o
O_OBJS := setup.o process.o traps.o ptrace.o syscalls.o time.o ksyms.o irq.o misc.o entry.o signal.o semaphore.o
 
ifdef CONFIG_CONSOLE
O_OBJS += console.o
endif
 
include $(TOPDIR)/Rules.make
/kernel/syscalls.c
0,0 → 1,196
/*
* linux/arch/or32/kernel/syscalls.c
*
* Based on:
*
* linux/arch/m68knommu/kernel/sys_m68k.c
*
* This file contains various random system calls that
* have a non-standard calling sequence on the Linux/or32
* platform.
*/
 
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/sem.h>
#include <linux/msg.h>
#include <linux/shm.h>
#include <linux/stat.h>
#include <linux/mman.h>
 
#include <asm/segment.h>
#include <asm/traps.h>
 
/*
* sys_pipe() is the normal C calling standard for creating
* a pipe. It's not the way unix traditionally does this, though.
*/
asmlinkage int sys_pipe(unsigned long * fildes)
{
int fd[2];
int error;
 
error = verify_area(VERIFY_WRITE,fildes,8);
if (error)
return error;
error = do_pipe(fd);
if (error)
return error;
put_user(fd[0],0+fildes);
put_user(fd[1],1+fildes);
return 0;
}
 
/*
* Perform the select(nd, in, out, ex, tv) and mmap() system
* calls. Linux/m68k cloned Linux/i386, which didn't use to be able to
* handle more than 4 system call parameters, so these system calls
* used a memory block for parameter passing..
*/
 
asmlinkage int old_mmap(unsigned long *buffer)
{
int error;
unsigned long flags;
struct file * file = NULL;
 
error = verify_area(VERIFY_READ, buffer, 6*sizeof(long));
if (error)
return error;
flags = get_user(buffer+3);
if (!(flags & MAP_ANONYMOUS)) {
unsigned long fd = get_user(buffer+4);
if (fd >= NR_OPEN || !(file = current->files->fd[fd]))
return -EBADF;
}
flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
return do_mmap(file, get_user(buffer), get_user(buffer+1),
get_user(buffer+2), flags, get_user(buffer+5));
}
 
 
extern asmlinkage int sys_select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
 
asmlinkage int old_select(unsigned long *buffer)
{
int n;
fd_set *inp;
fd_set *outp;
fd_set *exp;
struct timeval *tvp;
 
n = verify_area(VERIFY_READ, buffer, 5*sizeof(unsigned long));
if (n)
return n;
 
n = get_user(buffer);
inp = (fd_set *) get_user(buffer+1);
outp = (fd_set *) get_user(buffer+2);
exp = (fd_set *) get_user(buffer+3);
tvp = (struct timeval *) get_user(buffer+4);
return sys_select(n, inp, outp, exp, tvp);
}
 
/*
* sys_ipc() is the de-multiplexer for the SysV IPC calls..
*
* This is really horribly ugly.
*/
asmlinkage int sys_ipc (uint call, int first, int second, int third, void *ptr, long fifth)
{
int version;
 
version = call >> 16; /* hack for backward compatibility */
call &= 0xffff;
 
if (call <= SEMCTL)
switch (call) {
case SEMOP:
return sys_semop (first, (struct sembuf *)ptr, second);
case SEMGET:
return sys_semget (first, second, third);
case SEMCTL: {
union semun fourth;
int err;
if (!ptr)
return -EINVAL;
if ((err = verify_area (VERIFY_READ, ptr, sizeof(long))))
return err;
fourth.__pad = get_user((void **)ptr);
return sys_semctl (first, second, third, fourth);
}
default:
return -EINVAL;
}
if (call <= MSGCTL)
switch (call) {
case MSGSND:
return sys_msgsnd (first, (struct msgbuf *) ptr,
second, third);
case MSGRCV:
switch (version) {
case 0: {
struct ipc_kludge tmp;
int err;
if (!ptr)
return -EINVAL;
if ((err = verify_area (VERIFY_READ, ptr, sizeof(tmp))))
return err;
memcpy_fromfs (&tmp,(struct ipc_kludge *) ptr,
sizeof (tmp));
return sys_msgrcv (first, tmp.msgp, second, tmp.msgtyp, third);
}
case 1: default:
return sys_msgrcv (first, (struct msgbuf *) ptr, second, fifth, third);
}
case MSGGET:
return sys_msgget ((key_t) first, second);
case MSGCTL:
return sys_msgctl (first, second, (struct msqid_ds *) ptr);
default:
return -EINVAL;
}
if (call <= SHMCTL)
switch (call) {
case SHMAT:
switch (version) {
case 0: default: {
ulong raddr;
int err;
if ((err = verify_area(VERIFY_WRITE, (ulong*) third, sizeof(ulong))))
return err;
err = sys_shmat (first, (char *) ptr, second, &raddr);
if (err)
return err;
put_user (raddr, (ulong *) third);
return 0;
}
case 1: /* iBCS2 emulator entry point */
if (get_fs() != get_ds())
return -EINVAL;
return sys_shmat (first, (char *) ptr, second, (ulong *) third);
}
case SHMDT:
return sys_shmdt ((char *)ptr);
case SHMGET:
return sys_shmget (first, second, third);
case SHMCTL:
return sys_shmctl (first, second, (struct shmid_ds *) ptr);
default:
return -EINVAL;
}
return -EINVAL;
}
 
asmlinkage int sys_ioperm(unsigned long from, unsigned long num, int on)
{
return -ENOSYS;
}
 
/* sys_cacheflush -- flush (part of) the processor cache. */
asmlinkage int
sys_cacheflush (unsigned long addr, int scope, int cache, unsigned long len)
{
return 0;
}
/Rules.make
0,0 → 1,93
#
# or32/Makefile
#
# This file is included by the global makefile so that you can add your own
# platform-specific flags and dependencies.
#
# This file is subject to the terms and conditions of the GNU General Public
# License. See the file "COPYING" in the main directory of this archive
# for more details.
#
# Based on m68k/Rules.make
#
 
CROSS_COMPILE =or32-uclinux-
 
# LIBGCC = /home/simons/delete/or32-rtems/lib/gcc-lib/or32-rtems/2.95.2/libgcc.a
LIBGCC = /shared/projects/or32-uclinux/lib/gcc-lib/or32-uclinux/3.1/libgcc.a
 
CFLAGS := $(CFLAGS) -pipe -DNO_MM -DNO_FPU -DMAGIC_ROM_PTR -DNO_FORGET -DUTS_SYSNAME='"uClinux"'
AFLAGS := $(AFLAGS) -pipe -DNO_MM -DNO_FPU -DMAGIC_ROM_PTR -DUTS_SYSNAME='"uClinux"'
 
LINKFLAGS = -T arch/$(ARCH)/board/$(MODEL).ld
 
INIT_B := arch/$(ARCH)/board/init_$(MODEL).b
STOB := arch/$(ARCH)/tools/stob
 
SUBDIRS := arch/$(ARCH)/kernel arch/$(ARCH)/mm arch/$(ARCH)/lib \
arch/$(ARCH)/board $(SUBDIRS)
ARCHIVES := arch/$(ARCH)/kernel/kernel.o arch/$(ARCH)/mm/mm.o \
arch/$(ARCH)/board/board.o $(ARCHIVES)
LIBS += arch/$(ARCH)/lib/lib.a $(LIBGCC)
 
ifdef CONFIG_FRAMEBUFFER
SUBDIRS := $(SUBDIRS) arch/$(ARCH)/console
ARCHIVES := $(ARCHIVES) arch/$(ARCH)/console/console.a
endif
 
romfs.s19: romfs.img arch/$(ARCH)/empty.o
$(CROSS_COMPILE)objcopy -v -R .text -R .data -R .bss --add-section=.fs=romfs.img --adjust-section-vma=.fs=$(ROMFS_LOAD_ADDR) arch/$(ARCH)/empty.o romfs.s19
$(CROSS_COMPILE)objcopy -O srec romfs.s19
 
romfs.b: romfs.s19
$(STOB) romfs.s19 > romfs.b
 
linux.data: linux
$(CROSS_COMPILE)objcopy -O binary --remove-section=.romvec --remove-section=.text --remove-section=.ramvec --remove-section=.bss --remove-section=.eram linux linux.data
 
linux.text: linux
$(CROSS_COMPILE)objcopy -O binary --remove-section=.ramvec --remove-section=.bss --remove-section=.data --remove-section=.eram --set-section-flags=.romvec=CONTENTS,ALLOC,LOAD,READONLY,CODE linux linux.text
 
romfs.img:
echo creating a vmlinux rom image without root filesystem!
 
linux.bin: linux.text linux.data romfs.img
if [ -f romfs.img ]; then\
cat linux.text linux.data romfs.img > linux.bin;\
else\
cat linux.text linux.data > linux.bin;\
fi
 
flash.s19: linux.bin arch/$(ARCH)/empty.o
$(CROSS_COMPILE)objcopy -v -R .text -R .data -R .bss --add-section=.fs=linux.bin --adjust-section-vma=.fs=$(FLASH_LOAD_ADDR) arch/$(ARCH)/empty.o flash.s19
$(CROSS_COMPILE)objcopy -O srec flash.s19
 
flash.b: flash.s19
$(STOB) flash.s19 > flash.b
 
linux.trg linux.rom: linux.bin
perl arch/$(ARCH)/tools/fixup.pl
 
linux.s19: linux
$(CROSS_COMPILE)objcopy -O srec --adjust-section-vma=.data=0x`$(CROSS_COMPILE)nm linux | awk '/__data_rom_start/ {printf $$1}'` linux linux.s19
 
$(CROSS_COMPILE)objcopy -O srec linux.s19
linux.b: linux.s19
if [ -f $(INIT_B) ]; then\
cp $(INIT_B) linux.b;\
fi
$(STOB) linux.s19 >> linux.b
 
linux.z: linux arch/$(ARCH)/board/uncomp.c linux arch/$(ARCH)/board/reset.S
$(CROSS_COMPILE)objcopy -O binary linux linux.img
arch/$(ARCH)/tools/comp linux.img
arch/$(ARCH)/tools/piggyback < linux.img.cmp |$(CROSS_COMPILE)as -o linux.o
$(CROSS_COMPILE)ld -Tarch/$(ARCH)/board/comp.ld -o linux.z \
arch/$(ARCH)/board/reset.o arch/$(ARCH)/board/uncomp.o linux.o
 
archclean:
rm -f linux.text linux.data linux.bin linux.rom linux.trg
rm -f linux.s19 romfs.s19 flash.s19
rm -f linux.img romdisk.img
rm -f linux.b romfs.b flash.b
/board/rom.ld
0,0 → 1,82
MEMORY
{
romvec : ORIGIN = 0xf0000000, LENGTH = 0x2000
flash : ORIGIN = 0xf0002000, LENGTH = 0x00800000 - 0x2000
eflash : ORIGIN = 0xf0800000, LENGTH = 0
ramvec : ORIGIN = 0x00000000, LENGTH = 0x00002000
ram : ORIGIN = 0x00002000, LENGTH = 0x00800000 - 0x2000
eram : ORIGIN = 0x00800000, LENGTH = 0
}
 
SECTIONS
{
.romvec :
{
__romvec = . ;
*(.romvec)
} > romvec
 
.text :
{
___rom_start = . ;
text_start = . ;
*(.text)
} > flash
 
.rodata :
{
*(.rodata)
__etext = . ;
} > flash
 
.initrd :
{
__initrd_start = . ;
*(.initrd)
__initrd_end = . ;
___data_rom_start = . ;
} > flash
 
.eflash :
{
__flashend = . ;
} > eflash
 
.data :
AT ( ADDR (.initrd) + SIZEOF (.initrd))
{
__ramstart = . ;
__sdata = . ;
___data_start = . ;
*(.data)
__edata = . ;
__end_data = . ;
__data_end = . ;
edata = ALIGN( 0x10 ) ;
} > ram
 
.bss :
{
__sbss = ALIGN( 0x10 ) ;
___bss_start = ALIGN( 0x10 ) ;
*(.bss)
*(COMMON)
__ebss = . ;
___bss_end = . ;
end = ALIGN( 0x10 ) ;
__end = ALIGN( 0x10 ) ;
} > ram
 
.ramvec :
AT ( ADDR (.initrd) + SIZEOF (.initrd) + SIZEOF (.data))
{
__ramvec_start = . ;
*(.ramvec)
__ramvec_end = . ;
} > ramvec
 
.eram :
{
__ramend = . ;
} > eram
}
/board/ram.ld
0,0 → 1,76
MEMORY
{
romvec : ORIGIN = 0xf0010000, LENGTH = 0x00002000
flash : ORIGIN = 0xf0012000, LENGTH = 0x00200000 - 0x00012000
eflash : ORIGIN = 0xf0200000, LENGTH = 0
ramvec : ORIGIN = 0x00000000, LENGTH = 0x00002000
ram : ORIGIN = 0x00020400, LENGTH = 0x00400000 - 0x00020400
eram : ORIGIN = 0x00800000, LENGTH = 0
initrd : ORIGIN = 0x00700000, LENGTH = 0x00400000
}
 
SECTIONS
{
.ramvec :
{
__ramvec = . ;
__ramvec_start = . ;
*(.ramvec)
__ramvec_end = . ;
} > ramvec
 
.romvec :
{
__romvec = . ;
} > romvec
 
.text :
{
__ramstart = . ;
text_start = . ;
*(.text)
___data_rom_start = ALIGN ( 4 ) ;
} > ram
 
.rodata :
{
*(.rodata)
*(.rodata.str1.1)
__etext = . ;
} > ram
 
.data :
{
__sdata = . ;
___data_start = . ;
*(.data)
__edata = . ;
__end_data = . ;
edata = ALIGN( 0x10 ) ;
} > ram
 
.bss :
{
__sbss = ALIGN( 0x10 ) ;
___bss_start = ALIGN( 0x10 ) ;
__data_end = ALIGN( 0x10 ) ;
*(.bss)
*(COMMON)
__ebss = . ;
___bss_end = . ;
end = ALIGN( 0x10 ) ;
__end = ALIGN( 0x10 ) ;
} > ram
 
.eram :
{
__ramend = . ;
} > eram
 
.initrd :
{
__initrd_start = . ;
*(.initrd)
__initrd_end = . ;
} > initrd
}
/board/initrd Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
board/initrd Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: board/uncomp.c =================================================================== --- board/uncomp.c (nonexistent) +++ board/uncomp.c (revision 1765) @@ -0,0 +1,56 @@ +#include + +#define CRCI(x) (crci = (crci << 5) | (x)) +#define CRCO(x) (crco = (crco << 5) | (x)) + +unsigned long decompress (unsigned char *in, unsigned char *out) +{ + unsigned char hist[0x10000]; + unsigned long size; + int b = 0, i; + unsigned char *orig = in; + unsigned char *mask; + unsigned short hash = 0; + unsigned long crci = 0, crco = 0; + + for (i = 0; i < 0x10000; i++) hist[i] = 0; + + CRCI(*in); size = (*in++) << 24; + CRCI(*in); size |= (*in++) << 16; + CRCI(*in); size |= (*in++) << 8; + CRCI(*in); size |= (*in++) << 0; + CRCI(*in); mask = in++; +_print("Size = %x\n", size); + for (i = 0; i < size; i++) { + unsigned char c; + if ((*mask >> b) & 1) c = hist[hash]; + else CRCI(c = *in++); + CRCO(*out++ = c); + hist[hash] = c; + hash <<= 8; + hash |= c; + hash &= 0xffff; + if (++b == 8) { + CRCI(*in); + mask = in++; + b = 0; + } + } +/* + print_str ("compressed CRC = "); + print_n (crci); + print_str ("\ndecompressed CRC = "); + print_n (crco); + print_str ("\ndecompressed size = "); + print_n (size); + print_str (" end "); + print_n (out); + print_str ("\ncompressed size = "); + print_n (in - orig); + print_str (" end "); + print_n (in); + print_str ("\n"); +*/ + return size; +} + Index: board/reset.S =================================================================== --- board/reset.S (nonexistent) +++ board/reset.S (revision 1765) @@ -0,0 +1,161 @@ +#include +#include +#include + +#undef IC_ENABLE +#define IC_ENABLE 1 + + .extern _reset_support + .extern _src_beg + .extern _dst_beg + .extern _dst_end + .extern _c_reset + + .global start + .global _lolev_ie + .global _str + + .section .stack + .space 0x30000 +_stack: + + .section .reset, "a" + + .org 0x100 +start: +_reset: + l.addi r3,r0,SPR_SR_SM + l.mtspr r0,r3,SPR_SR + l.movhi r3,hi(_start) + l.ori r3,r3,lo(_start) + l.jr r3 + l.nop + + .section .text + +_start: + l.jal init_mc + l.nop + +.if IC_ENABLE + l.jal _ic_enable + l.nop +.endif + + /* Copy form flash to sram */ +.if 1 + l.movhi r3,hi(_src_beg) + l.ori r3,r3,lo(_src_beg) + l.movhi r4,hi(_dst_beg) + l.ori r4,r4,lo(_dst_beg) + l.movhi r5,hi(_dst_end) + l.ori r5,r5,lo(_dst_end) + l.sub r5,r5,r4 + l.sfeqi r5,0 + l.bf 2f + l.nop +1: l.lwz r6,0(r3) + l.sw 0(r4),r6 + l.addi r3,r3,4 + l.addi r4,r4,4 + l.addi r5,r5,-4 + l.sfgtsi r5,0 + l.bf 1b + l.nop +2: +.endif + + l.movhi r1,hi(_stack) + l.addi r1,r1,lo(_stack) + l.addi r1,r1,-4 + + l.movhi r3,hi(_linux_start) + l.ori r3,r3,lo(_linux_start) + l.addi r4,r0,0 + l.jal _decompress + l.nop + + l.addi r2,r0,0x100 + l.jr r2 + l.addi r2,r0,0 + +init_mc: + + l.movhi r3,hi(MC_BASE_ADD) + l.ori r3,r3,lo(MC_BASE_ADD) + + l.addi r4,r3,MC_CSC(0) + l.movhi r5,hi(FLASH_BASE_ADD) + l.srai r5,r5,5 + l.ori r5,r5,0x0025 + l.sw 0(r4),r5 + + l.addi r4,r3,MC_TMS(0) + l.movhi r5,hi(FLASH_TMS_VAL) + l.ori r5,r5,lo(FLASH_TMS_VAL) + l.sw 0(r4),r5 + + l.addi r4,r3,MC_BA_MASK + l.addi r5,r0,MC_MASK_VAL + l.sw 0(r4),r5 + + l.addi r4,r3,MC_CSR + l.movhi r5,hi(MC_CSR_VAL) + l.ori r5,r5,lo(MC_CSR_VAL) + l.sw 0(r4),r5 + + l.addi r4,r3,MC_TMS(1) + l.movhi r5,hi(SDRAM_TMS_VAL) + l.ori r5,r5,lo(SDRAM_TMS_VAL) + l.sw 0(r4),r5 + + l.addi r4,r3,MC_CSC(1) + l.movhi r5,hi(SDRAM_BASE_ADD) + l.srai r5,r5,5 + l.ori r5,r5,0x0411 + l.sw 0(r4),r5 + + l.jr r9 + l.nop + +_ic_enable: + /* Disable IC */ + l.mfspr r13,r0,SPR_SR + l.addi r11,r0,-1 + l.xori r11,r11,SPR_SR_ICE + l.and r11,r13,r11 + l.mtspr r0,r11,SPR_SR + + /* Invalidate IC */ + l.addi r13,r0,0 + l.addi r11,r0,IC_SIZE +1: + l.mtspr r0,r13,SPR_ICBIR + l.sfne r13,r11 + l.bf 1b + l.addi r13,r13,IC_LINE + + /* Enable IC */ + l.mfspr r13,r0,SPR_SR + l.ori r13,r13,SPR_SR_ICE + l.mtspr r0,r13,SPR_SR + l.nop + l.nop + l.nop + l.nop + l.nop + + l.jr r9 + l.nop + + .global __print +__print: + l.lwz r3,0(r1) + l.addi r4,r1,4 +# l.sys 202 + l.nop 3 + l.jr r9 + l.nop + + + Index: board/comp.ld =================================================================== --- board/comp.ld (nonexistent) +++ board/comp.ld (revision 1765) @@ -0,0 +1,45 @@ +MEMORY + { + ram : ORIGIN = 0x01000000, LENGTH = 0x00010000 + flash : ORIGIN = 0x04000000, LENGTH = 0x00200000 + } + +SECTIONS +{ + .reset : + { + *(.reset) + } > flash + + .text : + { + *(.text) + } > flash + + .linux ALIGN(0x4): + { + _linux_start = .; + *(.linux) + _linux_end = .; + _src_beg = .; + } > flash + + .data : + AT ( ADDR (.text) + SIZEOF (.text) + SIZEOF (.linux)) + { + _dst_beg = .; + *(.rodata) + *(.data) + _dst_end = .; + } > ram + + .bss : + { + *(.bss) + } > ram + + .stack ALIGN(0x10) (NOLOAD): + { + *(.stack) + } > ram +} Index: board/Makefile =================================================================== --- board/Makefile (nonexistent) +++ board/Makefile (revision 1765) @@ -0,0 +1,28 @@ +# +# Makefile for the linux kernel. +# +# Note! Dependencies are done automagically by 'make dep', which also +# removes any old dependencies. DON'T put your own dependencies here +# unless it's something special (ie not a .c file). +# +.S.o: + $(CC) -D__ASSEMBLY__ $(AFLAGS) -c $< -o $*.o + +all: board.o + +O_TARGET := board.o +O_OBJS := config.o initrd.o + +initrd.o: initrd ../tools/bintoc ../tools/piggyback ../tools/comp reset.o uncomp.o + ../tools/bintoc < initrd |$(AS) -o initrd.o + +../tools/bintoc: ../tools/bintoc.c + $(HOSTCC) $(HOSTCFLAGS) -o ../tools/bintoc ../tools/bintoc.c + +../tools/piggyback: ../tools/piggyback.c + $(HOSTCC) $(HOSTCFLAGS) -o ../tools/piggyback ../tools/piggyback.c + +../tools/comp: ../tools/comp.c + $(HOSTCC) $(HOSTCFLAGS) -o ../tools/comp ../tools/comp.c + +include $(TOPDIR)/Rules.make Index: board/config.c =================================================================== --- board/config.c (nonexistent) +++ board/config.c (revision 1765) @@ -0,0 +1,91 @@ +/* + * linux/arch/$(ARCH)/platform/$(PLATFORM)/config.c + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive + * for more details. + * + * Based on m68knommu/platform/xx/config.c + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +extern void register_console(void (*proc)(const char *)); + +/* Tick timer period */ +unsigned long tick_period = SYS_TICK_PER; + +void BSP_sched_init(void (*timer_routine)(int, void *, struct pt_regs *)) +{ + /* Set counter period, enable timer and interrupt */ + mtspr(SPR_TTMR, SPR_TTMR_IE | SPR_TTMR_RT | (SYS_TICK_PER & SPR_TTMR_PERIOD)); +} + +void BSP_tick(void) +{ + mtspr(SPR_TTMR, SPR_TTMR_IE | SPR_TTMR_RT | (SYS_TICK_PER & SPR_TTMR_PERIOD)); +} + +unsigned long BSP_gettimeoffset (void) +{ + return 0; +} + +void BSP_gettod (int *yearp, int *monp, int *dayp, + int *hourp, int *minp, int *secp) +{ +} + +int BSP_hwclk(int op, struct hwclk_time *t) +{ + if (!op) { + /* read */ + } else { + /* write */ + } + return 0; +} + +int BSP_set_clock_mmss (unsigned long nowtime) +{ +#if 0 + short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60; + + tod->second1 = real_seconds / 10; + tod->second2 = real_seconds % 10; + tod->minute1 = real_minutes / 10; + tod->minute2 = real_minutes % 10; +#endif + return 0; +} + +void BSP_reset (void) +{ + cli(); +} + +void config_BSP(char *command, int len) +{ + mach_sched_init = BSP_sched_init; + mach_tick = BSP_tick; + mach_gettimeoffset = BSP_gettimeoffset; + mach_gettod = BSP_gettod; + mach_hwclk = NULL; + mach_set_clock_mmss = NULL; + mach_mksound = NULL; + mach_reset = BSP_reset; + mach_debug_init = NULL; +} + + Index: board/ext2 =================================================================== --- board/ext2 (nonexistent) +++ board/ext2 (revision 1765) @@ -0,0 +1,1157 @@ +ÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ@& ë‰e9[Še9Sďɉe9Ní˛ap4MAX’ U]×:R&˙˙˙€˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ɉe9ɉe9ɉe9íAlŠe9[Še9[Še9íA0ɉe9ɉe9ɉe9 + +˙AnŠe9DŠe9DŠe9Ęś!Še9Še9Še9&ś!3Še93Še93Še9@wśaDŠe9DŠe9DŠe9š˙œ[Še9[Še9[Še9 +  . ..  +lost+found devČlinuxrc .ô.. . .. + tty1ttyS0Ěram0zîĐřř.textř¨¸ .datařř @.bss€HH`HH`HHHHHH`˙˙HHœ!˙ôÔœA ÔHY„b˙üœƒ×â'ü˙˙ů…!„AHHœ! œ!˙ôÔHÔPÔ`Ŕ¨Ćř„f„Łœ€ä% F€„ŞœeÔ +„…H „j„ƒä$`˙˙÷…!…A…HHœ! œ!˙đÔHÔPÔ`Ôp `¨cœ€˙˙„Łä œă€¨„„dœ ä#( …œŔœ„„dä#0˙˙ýœĽ…œ`ä, ¸lŔáC8„jŒ˙˙HJ˙üä,p˙˙ű…!…A……Á HHœ!œ!˙üÔH ¨Ľü„…œ`ä$œ`˙˙ĘÔ…!HHœ!  +"’˜Ÿ.file.˙ţg:%!¸ +.bfe .efe_malloca ž.bfe.ef e_realloca Ä.bfe.efe_free !Ę.bf e.ef e_abort(!Đ".bf(e$.ef(e_raise0$ Ö(.bf0e”.ef4e.text<.datař.bss.file8˙ţgtest.c<<.text<L.datař.bss.fileŤ˙ţg˘ˆˆm˙ţ +D_NO_REGS˙˙ x˙˙ †˙˙ ˙˙ .eos˙˙f<Ą˙ţ +iŻ˙˙ _PQImode˙˙ _QImode˙˙ _PHImode˙˙ _HImode˙˙ _PSImode˙˙ _SImode˙˙ _PDImode˙˙ _DImode˙˙ _TImode ˙˙ _OImode +˙˙ _QFmode ˙˙ _HFmode ˙˙ _TQFmode +˙˙ _SFmode˙˙ _DFmode˙˙ _XFmode˙˙ _TFmode˙˙ _QCmode˙˙ _HCmode˙˙ _SCmode˙˙ _DCmode˙˙ _XCmode˙˙ _TCmode˙˙ _CQImode˙˙ _CHImode˙˙ _CSImode˙˙ _CDImode˙˙ _CTImode˙˙ _COImode˙˙ _BLKmode˙˙ _CCmode˙˙ š ˙˙ .eos˙˙fDË˙ţ +u×˙˙ ä˙˙ î˙˙ ú˙˙ _MODE_CC˙˙  ˙˙ ˙˙ 2˙˙ .eos˙˙fiB˙ţ +_size_t˙ţ +_wchar_t˙ţ +_wint_t˙ţ +_UQItype˙ţ +_SItype˙ţ +_USItype˙ţ +_DItype˙ţ +_UDItype˙ţ +_SFtype˙ţ +_DFtype˙ţ +M˙ţ +X˙ţ +‡_high˙˙_low˙˙.eos˙˙f_.0fake˙ţ Ž_s˙˙ _ll˙˙ .eos˙˙f‡_DIunion˙ţ +‡b˙ţ‘ +_p.3řlˆ!tܘ.bfˆeš.efčeü!´âž.bfüeĄ.ef˜e’ü___main°!8čĽ.bf°e.efÜe.textˆ` .datař.bss.fileÄ˙ţg˘ččB˙ţ +_size_t˙ţ +_wchar_t˙ţ +_wint_t˙ţ +_UQItype˙ţ +_SItype˙ţ +_USItype˙ţ +_DItype˙ţ +_UDItype˙ţ +_SFtype˙ţ +_DFtype˙ţ +M˙ţ +_DIunion˙ţ +‡b˙ţ‘ +.textč.data.bssşq__etextčÉřÖč__end__edataäqóđđ_main<gcc2_compiled.___gnu_compiled_c_rtems_provides_crt0../../../../../../gcc/newlib/libc/sys/rtems/crt0.c_reg_class_GENERAL_REGS_ALL_REGS_LIM_REG_CLASSES_machine_mode_VOIDmode_MAX_MACHINE_MODE_mode_class_MODE_RANDOM_MODE_INT_MODE_FLOAT_MODE_PARTIAL_INT_MODE_COMPLEX_INT_MODE_COMPLEX_FLOAT_MAX_MODE_CLASS_ptrdiff_t_word_type_DIstruct_func_ptr___do_global_dtors___do_global_ctors_initialized.10../../gcc/gcc/libgcc2.c___DTOR_LIST____DTOR_END____CTOR_LIST_____CTOR_LIST____CTOR_END____DTOR_LIST__˙?˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ˇ™b9ˇ™b9ˇ™b9íAő™b9ň™b9ň™b9íA0љb9ˇ™b9ˇ™b9 + +˙Aיb9יb9יb9<3˙Aň™b9ň™b9ň™b9˜3 . ..  +lost+found test +Čdev .ô.. .ô.. + . ..čramčs@Ďeˆr@Řü˙ż˜r@Y4@ˆt@|¤@˜r@Čp@ii +xü˙ż8f@˜r@ii +ˆü˙żX×@čs@°u@¤ő@ú)@ül@`ő@Lű@I˛@ül@$ř@ ř@nŘ@Ŕü˙żđŘ@@$ř@ ř@8f@˜r@ii +čü˙żX×@čs@°u@ý˙ż‚á@Pl@Čp@”ţ@Y4@|¤@$ř@Čé@0ý˙żđŘ@0Z@˜r@Č jď@0ý˙żGď@`ý˙żđŘ@Ěý˙żN`ý˙żî]Ěý˙ż`ý˙żÇ]Ěý˙ż˜k@pý˙ż$ř@Ěý˙ż ý˙żeť@Ěý˙żŕý˙ż“ě’$ř@ ý˙żLť@ŕý˙żô8f@ŕ—˜PWĚý˙żě’ [$ß@Äý˙ż l@­ţ˙żąţ˙ż´ţ˙żÖţ˙ż2˙˙ż8˙˙żE˙˙żd˙˙żp˙˙ż}˙˙ż…˙˙ż•˙˙żŁ˙˙ż´˙˙żť˙˙żĹ˙˙żč˙˙ż4€ @ ŕ— +˙űƒd¨ţ˙żi686awk-vprogname=/etc/cron.daily/tmpwatchprogname { + print progname ":\n" + progname=""; + } + { print; }PWD=/HOSTNAME=eirMACHTYPE=i386-redhat-linux-gnuMAILTO=rootLOGNAME=rootSHLVL=2SHELL=/bin/bashHOSTTYPE=i386OSTYPE=linux-gnuHOME=/TERM=dumbPATH=/sbin:/bin:/usr/sbin:/usr/bin_=/bin/awk/bin/awkÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖˇ¸¸‘›§‚‹—9?F + łłłŐŐŐÖÖÖŃŃŃÓÔÔëíďĺçęÖ×ÚŮŰŢŮÜŕ­˛¸Ÿ§˛š§gs‚FMUŚŚ§ÔÔÔÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÔÔÔĐĐĐÉÉÉpˆ•wžˆĽ´šˇČŹČŮ°ÉÖˇĚלĘÖ˛ÉטśĆtŽœiiiiiiooozzzˆˆˆżżż™™™<<<‹‹‹›››°°°ÄÄÄŃŃŃÔÔÔŐŐŐÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖŐŐŐÓÓÓĎĎĎÉÉÉÁÁÁ---żżż˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙333˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙żżżQQQcccwwwŒŒŒ˘˘˘´´´ÂÂÂĚĚĚÓÓÓŐŐŐŐŐŐÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÔÔÔŇŇŇÍÍÍÇÇÇŔŔŔˇˇˇŞŞŞßççßççyyyžšž–’–††††‚†y}yŽŽŽŽŠŽ–––quq–’–qqqY]Yy}yQUQQUQyyyIMIaaaY]YIEIIEIAAAA€?*€@B€A[€Bu€CŒ€DĽ€Eź€FŐ€Gî€H €I €N‹ €Q¤ €R˝ €SŐ €Tń €U +€V' +€X@ +€[[ +€^t +€b +€xÜ +€{ó +€~ €‚) €‡C €ˆ` €‹} €Œœ €š €Ř €“ň €– + €™) €šF €` € { ‚ůŒŻ ‚ˆ× €˘ +€T +€#“ +€4œ€<í€C'€FD€SŰ€Z€^9€€l5€t‹€y­€9€†y€Œ˘˘n [Š @ś ° ˆđ+|  J¸ŕÜ@$j@@€2˙˙˙˙ě0['['0P@€a |ŻimŘţ ý ý8f@á˙żýB@0ň˙żŒc@á˙ż0ň˙żíd@ELFŠ @?48”4 (444  !ŕÜ@Yi@P@Y@ăi@Y@  z“z“ °Š(ސd/d?d?€°Č¨8f@â˙żýB@0ó˙żŒc@â˙ż0ó˙żíd@ELFĐ4đ 4 (444  g“g“g“z“z“|“|Ł|ŁŒŹH˜H¨H¨ŔŔă”jsƒMcrIE…Od@+’%~‘NL'x_f5‰[ˆy#,‡Tbh*0 ŽDŒ†]"K“-k‚`Sg^4eo|}v$Ym(w‹;/„zt3{qaQlXŠA?n<7iF1P:pCJ&$ř@$ř@xç˙żů÷˙żŇ[ +@žřxç˙żůu[ +@žřÂÉ8ů=H)V>R2U.9Z86!\€WuGBÔ¸řÄěHŘč@ X +ˆ Đ ´ +ŕg“|Łp§t§|§„§H¨ŠŠUPPr ŔLn ´ -PuX r 4 űp~Ž ä 3ž ńJ, ( Ľ ĽŔl • T *Pe‡ )ŔFš ŃT|} …t†4  Ém—: b"ç ˝ŕ{k ŔŔGw ż@nž œ <ŕe‡ ML n†k éŕQ x um W€vk i y h E‡ Ď 7 R|0F‡ ] ŤP{‡ –çŠ V‡ řîw @u $ř@œT@`ô˙żw2@˜ô˙żœT@Ä0@Ź" B°u°g@œT@°sž Ě-ş Pjc eĐ'k Ó Šô  Öîw @Š>x @Ý +¨îw @u@d ?ô˙ż +”T@pď˙ż€ő˙ż@ô˙ż ˙˙˙˙!Şé Ť ń˙í›°‡„ ] Pd œT@s ˙˙˙˙ç˙˙˙¨ ř9ŕÜ@$ř@ŕÜ@ŕÜ@đ˙żć§ @0ő˙ż'˙˙˙˙ 88f@ˆô˙żˆô˙żflextronics.si group.bynameČQH4ôrH4ô† †¤Š €05˜žîpci::510:mihad,tadejmpci jakas:!:513:jakasdamjanl:!:507:ąœ@ąœ@¨Đ˙ż¸Đ˙żąœ@ë˙˙PR‰MÄ諏˙˙ş˙˙˙˙ƒÄƒřw‹”ƒ¨˙˙˙‹u°‹‰F‰U¸éţ˙˙‹$ĂU‰ĺVSčň˙˙˙Ă6ƒô˙˙˙pü‹@üƒř˙tt&ź'ƒî˙Ћƒř˙uô[^]ĂU‰ĺSƒěč´˙˙˙Ăř‹“´ƒě ‹ƒ¨‹‰jčěŒ˙˙‹]ü‰ě]ÐU‰ĺSRč[Ăƍvč˙˙‹]üÉĂprotocols.bynumberprotocols.byname%dservices.bynameservices.byservicename%d/%s# +hosts.bynamehosts.byaddrnetworks.bynamenetworks.byaddrgroup.byname%dgroup.bygidpasswd.bynamepasswd.adjunct.byname:%dpasswd.byuidrpc.bynumber%dethers.byname%x:%x:%x:%x:%x:%xethers.byaddrshadow.bynamenetgroup# +mail.aliasespublickey.bynamenetname2user: expecting uid '%s'netname2user: should not have uid 0netname2user: missing group id list in '%s'netname2user: missing group id list in '%s'.netid.bynamegroup.byname/lib/ld-linux.so.2|S@€W@˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙H¨ČŕŘ@žÍ@ŽÍ@žÍ@ÎÍ@đÖ@îÍ@ţÍ@Î@Î@ § @>Î@NÎ@^Î@4l +@~Î@ŽÎ@žÎ@ŽÎ@žÎ@ÎÎ@ŢÎ@îÎ@ţÎ@Ď@Ď@.Ď@>Ď@NĎ@€˛ @nĎ@~Ď@ŽĎ@¤= +@p“@0œ@¨É@ř|S@\ă@ˆ’Xă@ˆ”(â+ 7 I ‘ X +´Ôřż@¸ś@ +Ą „W@@Ě@ŘË@hü˙˙oěý˙˙oţ˙˙oH˙˙˙ođ˙˙oÄÉ@pW@„/@˘Ď‚ŕ‚&í‚‚˘˘€˘˘›‚Ž‚ÐŔ‚ׂcí‚Ř&€Ç˘;€˘˘™‚ą‚ wČ‚t$ń‚‚"‚=‚˘˘˘v‚˘“‚˘˘Ż‚Ć‚éđŰ‚Ź€?Ä€@Ü€Aő€B €C& €D? €EV €Fo €Gˆ €HŁ €Iş €N% +€Q> +€RW +€So +€T‹ +€U¨ +€VÁ +€XÚ +€[ő +€^ €b' €xv €{ €~¨ €‚Ă €‡Ý €ˆú €‹ €Œ6 €S €r €“Œ €–§ €™Ă €šŕ €ú €  +‚ůŒI +‚ˆq +€˘Ľ +€î +€#-€48€<‰€CĂ€Fŕ€Sw€Zˇ€^Ő€Ż€lŃ€t'€yI€Ő€†€Œ˘˘.€!D€"[€#p€$†€%œ€&´€'Ë€*â€.ř€5Attempt to remove a non-empty tableQuery illegal for named tableModify operation failedPassed object is not the same object on serverIllegal object type for operationNon NIS+ namespace encounteredError while talking to callback procNamed object is not searchableMissing or malformed attributeError in RPC subsystemToo many attributesPartial successLink points to illegal nameEntry/table type mismatchDatabase for table does not existModification failedName/entry isn't uniqueNot found, no such nameResults sent to callback procUnable to create callbackMalformed name, or illegal nameInvalid object for operationNot master server for this domainObject with same name existsServer out of memoryName not served by this serverNot ownerPermission deniedFirst/next chain brokenGeneric system errorServer busy, try againUnknown objectNIS+ servers unreachableCache expiredProbably not foundNot foundProbable successSuccess???%s: %s +%s: %sinetfcntl: F_SETFDunix.:.groups_dir.groups_dir.groups_dir.groups_dir..groups_dir.groups_dir.groups_dirGroup entry for "%s.%s" group: + Explicit members: + %s + No explicit members + Implicit members: + No implicit members + Recursive members: + No recursive members + Explicit nonmembers: + No explicit nonmembers + Implicit nonmembers: + No implicit nonmembers + %s=n No recursive nonmembers +.group=owner=ttl=access=NIS_DEFAULTSinetunable to free argumentsNIS+: callback timed outinetudptcpNIS+: failed to register callback dispatcherNIS+: failed to read local socket info%s.%d.%dNIS+: out of memory allocating callback/lib/ld-linux.so.2`w@˜|@flextronics.si#d@d@d@őc@çc@Îc@żc@¨c@“c@{c@ic@_c@@c@c@c@ŕb@Ŕb@ b@„b@fb@Nb@6b@"b@b@Öa@şa@Şa@–a@a@`a@@a@a@ŕ`@ `@``@B`@$`@`@Ŕ_@€_@M_@ _@_@Ŕ^@€^@c^@@^@^@ + + +˙˙˙˙˙˙˙˙d? ýŕŘ@Fw@Vw@ä˛@vw@†w@–w@Św@św@Ćw@Öw@ćw@öw@x@x@&x@6x@đÖ@Vx@ŕ @đ@†x@–x@Śx@śx@Ćx@Öx@ćx@öx@y@y@&y@6y@Ô˝@Vy@0@vy@†y@ä¸@Śy@śy@Ćy@ŕu@ćy@öy@z@z@&z@6z@Fz@d +@fz@vz@†z@–z@Śz@śz@Ćz@4{@ćz@öz@{@{@&{@6{@F{@V{@f{@v{@†{@Ç@Ś{@ś{@ +@Ö{@ć{@ö{@|@|@&|@6|@F|@@f|@°@†|@đ€@Ś|@ś|@T@Ö|@ć|@ö|@4 +@}@&}@6}@P @V}@f}@v}@†}@`Ŕ @Ś}@ś}@€˛ @Ö}@$@Đ@~@~@´Ů@6~@F~@V~@f~@äÍ@†~@ŕˇ@Ś~@ś~@Ć~@@ć~@ö~@@0§@ †@đ@`…@@Ŕ@@0ƒ@ř`@°‡@@ B@¨ @€@`w@đ„@0@Ŕ…@\ă@ @ˆ’ˆ@ŒB@đ†@`Ú@ âŔŚ@0@B@`@`@°@@°@Xă@đ€@ˆ”@`@°‰@°@Ń@0@†@@tý@ö> 7 +TÔd]@dL@ +J œ|@čs@řo@ ü˙˙o/ý˙˙oţ˙˙o¨/˙˙˙oœý˙żŽţ˙żŕÜ@dş Ŕ¨híwô l +œ + ¨ +HçMçSçXç^çHçhíhíp4@˙˙˙˙˙˙˙˙œý˙ż /dev/log o @ a @P` @‡ @Ŕ| @@i @Ŕx @`d @ˆ @p @pc @ôŇ@@Ü@€Ü@ŔÜ@ Ý@Pˆ @€ˆ @ˆ @ o @ a @P` @‡ @Ŕ| @@i @Ŕx @`d @ˆ @p @pc @ôŇ@@Ü@€Ü@€Ţ@ Ý@Pˆ @€ˆ @ˆ @ o @ a @P` @‡ @Ŕ| @@i @Ŕx @`d @ˆ @p @pc @ôŇ@°n @đp @ŕn @í@ m @€ˆ @ˆ @ o @ a @P` @‡ @Ŕ| @@i @Ŕx @`d @ˆ @p @pc @ôŇ@°n @đp @ŕn @í@ m @€ˆ @ˆ @Đ @đ @0 @` @ @ + @ @° @ˆ @ @pˆ @  @@ˆ @0ˆ @`ˆ @pˆ @Pˆ @€ˆ @ˆ @Đ @ @0 @` @ @ + @ @° @ˆ @ @pˆ @  @@ˆ @0ˆ @`ˆ @pˆ @Pˆ @€ˆ @ˆ @ o @đ$ @`! @` @$ @. @k @€( @ˆ @p @' @dâ@°n @đp @ŕn @Đm @ m @€ˆ @ˆ @ 1 @`2 @3 @Đ3 @4 @ 1 @4 @$/@ ; @‹ @đ @‡ @@Ž @ŕw @Ŕx @°Œ @ˆ @€y @°: @P‡ @@ˆ @0ˆ @`ˆ @pˆ @Pˆ @€ˆ @ˆ @ < @ @0 @` @ @ + @ @° @ˆ @ @ ; @  @@ˆ @0ˆ @`ˆ @pˆ @Pˆ @€ˆ @ˆ @€Ž @ŕA @đ @‡ @@Ž @ŕw @Ŕx @°Œ @ˆ @€y @pˆ @P‡ @@ˆ @0ˆ @`ˆ @pˆ @Pˆ @€ˆ @ˆ @ŕD @TB @0ž @@“ @0’ @‡ @Ŕ| @И @Ŕx @Д @ˆ @@› @Ŕœ @ôŇ@°n @Pœ @ŕn @ S @ m @€ˆ @ˆ @ o @ a @P` @‡ @Ŕ| @@i @k @`d @ˆ @p @pc @ôŇ@°n @đp @ŕn @Đm @ m @€ˆ @ˆ @€Ň@ˆ ­ű˙˙˙˙ŕŐ@˙˙˙˙˙˙˙˙Ö@`Ő@€Ň@„ ­űŔÖ@˙˙˙˙X×@˙˙˙˙˙˙˙˙€×@`Ő@€Ň@† ­ű@Ř@˙˙˙˙ŘŘ@˙˙˙˙˙˙˙˙Ů@`Ő@ŔŮ@ŔÖ@@Ř@ŔŮ@€Ž @‹ @đ @‡ @@Ž @ŕw @Ŕx @°Œ @ˆ @€y @pˆ @P‡ @@ˆ @0ˆ @`ˆ @pˆ @Pˆ @€ˆ @ˆ @0ž @@“ @0’ @‡ @Ŕ| @И @Ŕx @Д @ˆ @@› @Ŕœ @ôŇ@°n @Pœ @ŕn @Đm @ m @ˆ ­ű˙˙˙˙@Ű@ŕÚ@„ ­ű`Ű@˙˙˙˙°Ű@ŕÚ@† ­űŕŰ@˙˙˙˙0Ü@ŕÚ@Ôâ @˙ ¨ +ŕÜ@čÜ@čÜ@`ć`ćřÜ@řÜ@Ý@Ý@Ý@Ý@Ý@Ý@Ý@Ý@ Ý@ Ý@(Ý@(Ý@0Ý@0Ý@8Ý@8Ý@@Ý@@Ý@HÝ@HÝ@PÝ@PÝ@XÝ@XÝ@`Ý@`Ý@00pÝ@pÝ@xÝ@xÝ@€Ý@€Ý@ˆÝ@ˆÝ@Ý@Ý@˜Ý@˜Ý@ Ý@ Ý@¨Ý@¨Ý@°Ý@°Ý@¸Ý@¸Ý@ŔÝ@ŔÝ@ČÝ@ČÝ@ĐÝ@ĐÝ@ŘÝ@ŘÝ@ŕÝ@ŕÝ@°ë°ëđÝ@đÝ@řÝ@řÝ@Ţ@Ţ@Ţ@Ţ@Ţ@Ţ@Ţ@Ţ@ Ţ@ Ţ@(Ţ@(Ţ@0Ţ@0Ţ@8Ţ@8Ţ@@Ţ@@Ţ@HŢ@HŢ@`ă`ăXŢ@XŢ@`Ţ@`Ţ@hŢ@hŢ@pŢ@pŢ@xŢ@xŢ@€Ţ@€Ţ@ˆŢ@ˆŢ@Ţ@Ţ@˜Ţ@˜Ţ@ Ţ@ Ţ@¨Ţ@¨Ţ@°Ţ@°Ţ@¸Ţ@¸Ţ@ŔŢ@ŔŢ@ČŢ@ČŢ@ĐŢ@ĐŢ@ŘŢ@ŘŢ@ŕŢ@ŕŢ@čŢ@čŢ@đŢ@đŢ@  ß@ß@ß@ß@ß@ß@ß@ß@ ß@ ß@(ß@(ß@0ß@0ß@8ß@8ß@@ß@@ß@Hß@Hß@Pß@Pß@Xß@Xß@`ß@`ß@hß@hß@pß@pß@xß@xß@€ß@€ß@ˆß@ˆß@ß@ß@˜ß@˜ß@ ß@ ß@¨ß@¨ß@°ß@°ß@¸ß@¸ß@Ŕß@Ŕß@Čß@Čß@Đß@Đß@Řß@Řß@ŕß@ŕß@čß@čß@đß@đß@n19202122mmxosfxsrxmm2627282930amd3dAT_HWCAP: +/proc/sys/kernel/osreleaseFATAL: cannot determine library version +FATAL: kernel too old +AT_PHDR: 0xAT_PHNUM: AT_PAGESZ: AT_ENTRY: 0xAT_BASE: 0xAT_UID: AT_GID: AT_EUID: AT_EGID: AT_PLATFORM: AT_HWCAP: AT_FPUCW: cannot create capability list/Cannot allocate memoryInvalid argumentNo such file or directoryOperation not permittedInput/output errorPermission deniedError /dev/null€‘ÔĎ@ +•sÂH ż —œŰu +@ +‘ÔĎ ʚ; +m‹ŒĄ!Ÿ0ÁöW›Â˜qEu€ź}${fG5@KLnZk€áŹ”gƒńĘd QJ@ŽiI‘š™Ht#@¨s+A;ć4@Á<úL@Ř\ľ‘mż0123456789abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ/proc/self/cwd/proc/self/exe/d@@ +@@unexpected PLT reloc type 0x??unexpected reloc type 0x??€˙˙˙˙¤ý˙ż`ăŔgę@´ü@äÜ@ § @ œ@ ˆ@`Ŕ @â@Q@`ś @0đ@¤â@Tř@¤đ@t˝@äN@đ…@Pă@pv@$Ů@Ú@ôů@€˛ @ÄÉ@„@°=@$f@Äi@Či@Ěi@f@Đi@Ôi@Ři@Źi@j@”k@˜k@œk@ k@¤k@$ß@¨k@´k@0f@Ŕ@źk@Ŕk@Äk@Čk@Ěk@Ôk@´=@ŕŘ@Ük@ŕk@â@äk@čk@Ů@0@ěk@đk@@R@T@ük@l@l@l@ l@,f@ L@(f@ ú@l@@T@¤e@Pl@l@ e@4f@ŔA@l@ l@$l@(l@,l@0l@Dl@Äe@Ll@™ ” +@¸@ +§ 8f@Đ”@\@8ü˙˙o¸ý˙˙ođ˙˙oę@ʝĹzˇń˙˙˙˙řm@ 8n@(n@ ”e@Żyřý˙ż@t@€@ŕs@N?@”ý˙ż°r@°r@@ô€Ŕg@ őČp@đk@řg@đg@Čg@Đg@Řg@ŕg@čg@Ŕg@h@h@ h@h@h@0h@(h@8h@aœ@ @ŕs@ę@˙˙˙˙˙˙˙˙…‰ţ˙żHm@œý˙żHm@ô€ˆr@ Pl@@˙űƒPl@â@@k;@láČp@čm@láźá´á„áŒá”áœá¤átá|áÔáÜáäáÄáŹáĚáôáěáüá4€–°r@°r@C0<‚Đr@˙˙˙˙žŒ€˙˙˙˙Hm@Hm@˙˙˙˙źr@ôm@n@ n@n@n@i686/mmx/8n@`n@`n@ŔB@ČA@ŔB@ÎA@ LLLIIIIIIMMMWWWdddppp{{{†††•••¤¤¤ŻŻŻťťťĹĹĹĎĎĎÓÓÓŐŐŐÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖŐŐŐŐŐŐÔÔÔÓÓÓÓÓÓÓÓÓĐĐĐĐĐĐÎÎÎÍÍÍĘĘĘÉÉÉÇÇÇÄÄÄĂĂĂÁÁÁžžžťťťšššˇˇˇšššťťťżżżĂĂĂÉÉÉÍÍÍĐĐĐŇŇŇÓÓÓÔÔÔŐŐŐÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖŐŐŐÓÓÓŃŃŃÎÎÎĚĚĚÄÄÄšššŞŞŞšššŠŠŠuuunnngggddd``````^^^[[[\\\^^^]]]aaabbbeeejjjiiifffJJJ!"$" $$$ĹĹĹĐĐĐÓÓÓÔÔÔŐŐŐÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÉËĘŽł°˜“mwqO]ULXPO]UFQJR_U(0-!!!???:::NNN555sssšššÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ&&LVnŒŽĘŒŽĘLŽâ˜Úú˜ÚúĚúţÖţţÖţţđţţäţţäţţĘţţ´ćţ´ćţ|šÂÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ@Ń'ÁihŔ€É§&-Ŕ††€ÉÖÖÖÖÖÖÖÖÖÖÖÖ $ÁŔ~5ÁĐ'ÁĐ'ÁŔ~5ÁćŃ%ŔŔ~5Á’€ÉÖÖÖÖÖÖĐ'ÁĐ'Ák%ŔĐ'Á Î%Ŕ $Á Ž›ÇÁŠ%Ŕ`IÄ Î%Ŕ $Á Ž›ÇćŠ%Ŕ $ÁlyIÄlyIÄ@Ń'ÁihŔ€É§&-Ŕ@Ń'ÁihŔ€É§&-Ŕ– – €É@Ń'ÁihŔ€É§&-Ŕ‚‚€É§&-Ŕ††€É`.œÇŔ~5ÁĐ'ÁĐ'ÁŔ~5ÁćŃ%ŔŔ~5ÁĐ'ÁŽÁ€Đ'ÁĐ'Ák%ŔĐ'ÁzIÄzIÄŔj%Ŕ`.œÇ`IĐŃĂlH&Ŕ`.œÇôzIĤŃÞľ'ŔôzIÄkÔî{”ŃÐŃÔŃÐŃĂ`.œÇ§T&Ŕ`.œÇ@§T&Ŕ l{Ć@ +@€ĺÇ°zIÄ@Ń'ÁihŔ€É§&-Ŕ‚‚€É@@Œ@kĂŔ~5ÁĐ'ÁĐ'ÁŔ~5ÁćŃ%ŔŔ~5Á Ž›ÇŽÁx@Ń'ÁihŔ€É§&-Ŕ’’€É{IÄŔj%Ŕ@kĂŔ3­ĂŔ~5Á@Ń'ÁihŔ€É§&-Ŕ‚‚€É°†ÇxĐ'Á ‚ÝÇŔ~5ÁĐ'ÁĐ'ÁŔ~5ÁćŃ%ŔŔ~5ÁŔj%Ŕ°†Ç„Đ'ÁĐ'Ák%ŔĐ'ÁŒ{IČ{IÄŔj%Ŕ ‚ÝÇ`IÄЍĹlH&Ŕ ‚ÝÇp|IÄäĹžľ'Ŕp|IÄß6ďyԍĹЍĹԍĹЍŠ‚ÝǧT&Ŕ ‚ÝÇ@\|IÄ˝›Ç@@€+ +`ÓÖÇ,|IÄ2ş'Ŕ`ÓÖÇPľ'Ŕp|IȐ|IÄ˝›Ç@@ +Œ˝›Çx\|IĞ%Ŕ€  + +PâˆÇ +€ý(Ŕ`ÓÖÇŒ + +PâˆÇâá÷zx´|IÄ +x`ÓÖǘ}IĄHăuÇ×(Ŕ`ÓÖǘ}IĄč|IĞ%ŔHăuǘ}IĄč|IĖ)ŔŕĐ#ÄHŕˆÇŕĐ#ÄĎ ŕĐ#Āý(Ŕ +)Ŕ4Ń#ďvHŕˆÇŔ@@4âˆÇ„ŕĐ#Ä—Ŕ€]Ç Ě ˙˙˙˙€]Çg@Ú _ÁKAŔ íÉÇ Ě ˘)ŔŕˆÇ†°†Ç˙˙˙˙€]Ç íÉÇ0IŔ€]Ç íÉÇ Ě 0Ł+Äe@Úŕ\¨ÇŰ0)Ŕ ŕˆÇPâˆÇ@@.˙(ŔŕĐ#Äŕ\¨Ç`  Ě Đ4Ŕ€]Ç=6Ŕ€]Ç íÉÇ Ě @˘TÇ`IÄ`IÄŚŞŔ‚/­Ŕŕ\¨Ç ~IÄŕĐ#ÄŕĐ#Ä(~IÄŕ\¨Ç‡äŔŞ!Á€]Ç˝lŔŞ!Á|~IÄX~IÄ ďÉÇI|ŔsńÇűǏűÇsńÇ`rńÇüŠĹ†˙˙˙˙€]Çg°Š<ŃÁř~IĂěěŔó"Á`gĂ‚ř~IÄÍíŔ‚Ź`gĂ‚¨`gĂ`gĂ`gĂ`IÄőňŔ`IÄśóŔ`gĂř~IÄ`gĂĎ ŕ[¨Çŕ3vĈzŔŕ3vÄ<˜Ŕ Ţ"Á`ŢÁ`;Ă`;Ăŕ[¨ÇDQŔŕ3vÄ`IÄ`;Æô–˜IĀ]ǀ%ćÁ 4Ŕ†`IÄü˙˙`IÄ@d8Ŕ`IÄ`IÄ`IĄŔ`IÄ`IÄČY@`ý˙ż'qŔ$h@ČY@`ý˙ż++=Ę +@#F4ý˙ż+$j@€@č22˙˙˙˙ ˛@°Ĺ­Ĺ­°đčB h/ŕ:@0v@h€t@ +pt@8f@´ĺ˙żýB@Üö˙żŒc@´ĺ˙żÜö˙żíd@ELFź4`—F4 (=:444  ˛­˛­˛­Ĺ­Ĺ­ŕ­ŕ˝ŕ˝F…@ó@@°°˙ +"X_îşHtËQ%´ŢďŐg‚‡§ú˛K’ĘüA$ĄçÝ:¨=+G÷nŽ8˙Üž{ĺ"ÁŻ­ ű~c^•ö‘Ž6qYa˘7ßÚ×Đha;ýŞöňrU‡Ěşě{Î:€aú5s( +Š{7?LÚÉňGŸ˜í‰›°łZ& ˆ$QŐ Ĺĺ]÷QÍY}dŃw„9Ť­/Á÷ÔůŤú—0œětY¨Â^uŮÉl9Toœ×™LV´‹5˛ŽŹaXó°›ݙźńÖc–ć—˘/­^ÖřőZ`Z˘ž”ă¸[×ńťč…°§ÝÇČŚąËex šř" 6YťŃC!%ĄÜNŰ€‚C|ě7wPżŢ$.HŽęG[”( Œ`Zů5ƒ>Óâ_˝Óhx–ÁĐŕÚfAZ ţ˙Phô…W1˘œájŇŃĎ*e§äáuŇÁÓě${ĹŽ‡kâÖŘWÁĺí4Rg„ÄE|@ ~.!ć†JíÇąqŞ­ ĺbăÄçőęŘyˇĚďęińƒl +FŔŚœů@ođŚĹëF’ŠJS)DŰĂYËŔ@˜Ť­<N˜DĘ5ÍŒżT6޸+ćˆG@úW˙,rKvĆ–â!=‹Pţˆ ăđňMżî_‰˛)1󚌜řA|SŁúúäř•Ć˘“ŮĎŹU;‘š?ł\đNs6X;śą_Ě° đ˙ż5™Œš Iŕ +sŠÍ`k kk`j@k,ý +p ý +Q   -h F Ô ™ +đ Ô  @ ˆ  ? °…ü   – °Ó0 ˆ ß ˆ$ ` J  Œ +ˆ @ " °   ťţ + €ţ +ó ° ä Á 0™%   fű +đ] ˆ" ŕú +ü + V p" €ű +7  +” * ˆ 0Ş$ ` ‘ü +pîŕ! zü +€ äÜ ` ę °˜ Ô Í ŕ˛ŕ   … Pş + v L Ä-œ    Ç +Ŕ  ĺ     Ŕ É  ™ É ý 0ÉÔ Ŕ §  Ó  ™ L˙ +¸  ˙ +—ý +T `ý +n @9   Q ƒ @Ő@ ` U ŘX = 5 °Űp ŕ wţ +  ţ +Ö ŕŕ´   M đĺô  é pé ×  Pވ ď  đÇĚ  Şü +Đěœ! –ü +4ü +Ŕ@ L" ü +Ęü +ĐéL! Żü +ŕ P“ŕ Ö Ň Pö¤ € Ş Ŕ , € _   +đ T ˙ +Ě ŕţ +P Ŕ  +ü   t Đ  +P j tü +Ŕ9 (" @ü +c   -\ S > € t 1 , @ „  Óţ +ü Ŕţ + + ° ”  +  p  +  ŕ˙ +Ď ™ř Ď Ä˙ +ŕ Ř ¨˙ +H 0Ş€   Ą˙ +Ŕ&  €˙ +u˙ +Đ. € ^˙ +ü ‡ ä  p  +đ ě Âý +H  ý + +ý +„ ŕü +Y˙ +3   P˙ +ţ +< ŕý +=ý +d .ý +| D Ŕ `  Ŕ ` € @   `  é   @ ŕ   `   Ŕ + € + @ + ŕ ś €  Ŕ €  ŕ + € +  + ŕ  ŕ   `   @  @    @ ŕ €   Ŕ `  ß   Ŕ € € Ä ŕ Ŕ `    @    Ŕ € x i x @  Ŕ Ž t @ x ŕ   x @ ŕ Ć x €   `   ŕ € `!  ! ŕ ˇ Š ‹ v h [ G 4 #  ŕ x € _ `%  % ŕ$ €$ @$ $  # `# # Ŕ" `" "  !  % Ŕ- x `- - Ŕ, x `, , Ŕ+ `+ + Ŕ* x `* *  ) @) ŕ( €(  ( Ŕ' €' c' x  ' ŕ&  & x @& & `0  0 ŕ/  / @/ ŕ. €.  . ŕ0  0 %1 €4  4 ŕ3 Ę3 x €3 k3 x @3 3  2 x `2  2 x Ŕ1 `1 >1 @5 ŕ4 Ę4 6  5 ƒ5 Ŕ7 `7  7 Ŕ6 `6  9 Ŕ8 €8  8 8 > Ŕ= `= =  < @< < Ŕ; €; @; ; Ŕ: `: :  9 c9 A  @ @@ ŕ? €?  ? Ŕ> `> ?> ŕB €B  B ŔA `A €E  E ŔD `D D  C @C K  J `J  J ŕI x ÄI  I `I 'I I ŮH ťH ŤH ›H ŒH {H kH WH =H -H H H x ŔG €G  G ŕF x €F @F F x ŕE ÁE @Q ŕP €P  P ŔO `O O  N @N ŕM €M  M ŔL `L x L  K `K ŔQ €Q @b b  a `a a  ` `` ` Ŕ_  _ `_ 7_ _ Ŕ^ €^  ^ ŕ]  ] `]  ] Ŕ\ €\  \ ŕ[  [ `[  [ ŕZ  Z `Z  Z ŕY €Y  Y ŕX  X `X  X ŕW €W  W ŔV €V @V V ŔU `U  U ŔT €T @T %T ŕS  S x `S S  R `R  R  d Ŕc `c c  b b @f f  e @e ŕd €d ed €h  h ŕg €g  g Ŕf €f ed  i ŕh Ŕi €i Ŕi €i  j `j  j  w Ŕv `v  v x ňu x Ŕu €u @u u Ŕt €t @t t Ŕs €s @s s Ŕr €r @r r Ŕq `q q  p x @p p x Ŕo x €o x lo x @o x 0o o x Ňn  n vn @n  n Ŕm Şm `m x ?m x m Ŕl €l @l x l Ŕk x `k k ŕj Ŕw €w  x ÷w `| | Ŕ{ `{ {  z `z z  y @y ŕx €x cx   ‡ x @ ŕ~ €~ c~ x  ~ Ŕ} §} x `} } Ŕ| €…  … ŕ„ x  „ `„  „ ŕƒ  ƒ `ƒ  ƒ ŕ‚  ‚ o‚ Q‚  ‚ ŕ   x @ ŕ€ €€ @€ € á Ŕ‡ `‡ ‡  † `† † ŕ…  ‰ Ŕˆ €ˆ  ˆ ˆ `Š Š  ‰ f‰ € @  ŔŒ €Œ @Œ Œ Ŕ‹ `‹ ‹ ŔŠ    ţ˙żöţ˙ż˙˙˙˙ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0        + + + + + + + + +  + +   + +   + +   +  ((  ((  ((  ((  ((  ((  ((  ((          """"   " " " " ((((((((    """" ( ( ( ("("("("( + + ##%%&&))**,,//1122447788;;==>>@@CCEEFFIIJJLLOOQQRRTTWWXX[[]]^^aabbddgghhkkmmnnppssuuvvyyzz||<unix/var/run/keyservsockunix%s.%d@%s%s.%s@%snetname2userexecwr0123456789abcdefclntunix_create: out of memory +svc_unix.c - AF_UNIX socket creation problemsvc_unix.c - cannot getsockname or listensvcunix_create: out of memory +svc_unix: makefd_xprt: out of memory +%d/var/run/.nscd_socket%d/var/run/.nscd_socket/var/run/.nscd_socket/var/run/utmp/var/log/wtmp/var/run/utmpx/var/log/wtmpx/var/run/utmp/var/run/utmp/var/log/wtmp/var/run/utmpx/var/log/wtmpx/dev/ptmx/dev/pts/dev/pqrstuvwxyzabcde0123456789abcdef/dev/ptytty/usr/libexec/pt_chown/dev/pts//dev/ttyDST not allowed in SUID/SGID programsdlopenempty dynamic string token substitution +; opencount == +opening file=cannot extend global scopeinvalid mode for dlopen()shared object not open +; opencount == +closing file= + + +calling fini: /proc/self/exe/RTLD_NEXT used in code not dynamically loadedeh/lib/ld-linux.so.2ŠZ@ë[@Ű[@˙˙˙Ë[@Ű[@ë[@˙˙˙ť[@ë[@ą[@˙˙˙Ÿ[@ą[@ë[@˙˙˙[@ë[@}[@˙˙˙m[@\[@ë[@˙˙˙L[@}[@ë[@˙˙˙L[@<[@ë[@˙˙˙,[@ë[@<[@˙˙˙[@[@ë[@˙˙˙řZ@ë[@[@˙˙˙áZ@†^@n^@T^@;^@^@^@Ŕ]@˘]@„]@f]@S]@<]@$]@]@é\@Ň\@ş\@œ\@~\@`\@@\@ \@ô[@[_@4_@K_@b@9_@0f@ ß @ Ń @PĐ @÷ @Ŕě @@Ů @Ŕč @`Ô @ř @ŕ @pÓ @ôB @@L @€L @ŔL @ M @Př @€ř @ř @ ß @ Ń @PĐ @÷ @Ŕě @@Ů @Ŕč @`Ô @ř @ŕ @pÓ @ôB @@L @€L @€N @ M @Př @€ř @ř @ ß @ Ń @PĐ @÷ @Ŕě @@Ů @Ŕč @`Ô @ř @ŕ @pÓ @ôB @°Ţ @đŕ @ŕŢ @] @ Ý @€ř @ř @ ß @ Ń @PĐ @÷ @Ŕě @@Ů @Ŕč @`Ô @ř @ŕ @pÓ @ôB @°Ţ @đŕ @ŕŢ @] @ Ý @€ř @ř @Џ @đw @0 @`‡ @ @} @‰ @°‹ @ř @~ @př @ ‡ @@ř @0ř @`ř @př @Př @€ř @ř @Џ @Š @0 @`‡ @ @} @‰ @°‹ @ř @~ @př @ ‡ @@ř @0ř @`ř @př @Př @€ř @ř @ ß @đ” @`‘ @`‡ @$y @ž @Ű @€˜ @ř @ŕ @— @dR @°Ţ @đŕ @ŕŢ @ĐÝ @ Ý @€ř @ř @ Ą @`˘ @Ł @ĐŁ @¤ @ Ą @¤ @$Ÿ@ Ť @ű @đý @÷ @@ţ @ŕç @Ŕč @°ü @ř @€é @°Ş @P÷ @@ř @0ř @`ř @př @Př @€ř @ř @ Ź @Š @0 @`‡ @ @} @‰ @°‹ @ř @~ @ Ť @ ‡ @@ř @0ř @`ř @př @Př @€ř @ř @€ţ @ŕą @đý @÷ @@ţ @ŕç @Ŕč @°ü @ř @€é @př @P÷ @@ř @0ř @`ř @př @Př @€ř @ř @ŕ´ @T˛ @0 +@@ +@0 +@÷ @Ŕě @Đ +@Ŕč @Đ +@ř @@ +@Ŕ +@ôB @°Ţ @P +@ŕŢ @ Ă @ Ý @€ř @ř @ ß @ Ń @PĐ @÷ @Ŕě @@Ů @Ű @`Ô @ř @ŕ @pÓ @ôB @°Ţ @đŕ @ŕŢ @ĐÝ @ Ý @€ř @ř @€B@ˆ ­ű˙˙˙˙ŕE@˙˙˙˙˙˙˙˙F@`E@€B@…"­ű Ä  Ä  Ä  Ä  Ä  Ä  Ä üÇ ŔF@˙˙˙˙XG@˙˙˙˙˙˙˙˙€G@`E@€B@…"­ű Ŕ  Ŕ  Ŕ  Ŕ  Ŕ  Ŕ  Ŕ üĂ @H@˙˙˙˙ŘH@˙˙˙˙˙˙˙˙I@`E@ŔI@ŔF@@H@ŔI@€ţ @ű @đý @÷ @@ţ @ŕç @Ŕč @°ü @ř @€é @př @P÷ @@ř @0ř @`ř @př @Př @€ř @ř @0 +@@ +@0 +@÷ @Ŕě @Đ +@Ŕč @Đ +@ř @@ +@Ŕ +@ôB @°Ţ @P +@ŕŢ @ĐÝ @ Ý @ˆ ­ű˙˙˙˙@K@ŕJ@„ ­ű`K@˙˙˙˙°K@ŕJ@† ­űŕK@˙˙˙˙0L@ŕJ@ÔR +@ŕL@ŕL@čL@čL@đL@đL@řL@řL@M@M@M@M@M@M@M@M@ M@ M@(M@(M@0M@0M@8M@8M@@M@@M@HM@HM@PM@PM@XM@XM@`M@`M@hM@hM@pM@pM@xM@xM@€M@€M@ˆM@ˆM@M@M@˜M@˜M@ M@ M@¨M@¨M@°M@°M@¸M@¸M@ŔM@ŔM@ČM@ČM@ĐM@ĐM@ŘM@ŘM@ŕM@ŕM@čM@čM@đM@đM@řM@řM@N@N@N@N@N@N@N@N@ N@ N@(N@(N@0N@0N@8N@8N@@N@@N@HN@HN@PN@PN@XN@XN@`N@`N@hN@hN@pN@pN@xN@xN@€N@€N@ˆN@ˆN@N@N@˜N@˜N@ N@ N@¨N@¨N@°N@°N@¸N@¸N@ŔN@ŔN@ČN@ČN@ĐN@ĐN@ŘN@ŘN@ŕN@ŕN@čN@čN@đN@đN@řN@řN@O@O@O@O@O@O@O@O@ O@ O@(O@(O@0O@0O@8O@8O@@O@@O@HO@HO@PO@PO@XO@XO@`O@`O@hO@hO@pO@pO@xO@xO@€O@€O@ˆO@ˆO@O@O@˜O@˜O@ O@ O@¨O@¨O@°O@°O@¸O@¸O@ŔO@ŔO@ČO@ČO@ĐO@ĐO@ŘO@ŘO@ŕO@ŕO@čO@čO@đO@đO@Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq Đq  Ş €Ť d€á ’á `˛  ă ä Ú  +ä ĐÜ ä €Ü ýă Ý bĺ  W Kĺ Ÿ >ĺ ˆ' +ĺ Ÿ ĺ TŸ ĺ ¨S ůä l' îä ' Ýä œS Éä p' żä ' łä Œ' Ÿä T €ä Ÿ hä ˜S Zä  S Äĺ ć śĺ @ĺ Ÿĺ  ĺ ’ĺ Ŕä ~ĺ ŕć wĺ ŕĺ "ć ć ć ć  + ć  +ć  +ć  +ůĺ őĺ  ďĺ  ëĺ  ˘ă €+ Yć €+ Nć €3 Cć €; ¨ă €C ;ć €C 0ć €C &ć €K ˙ äč  +< +˙Gé Ÿ Dé DŸ Aé @Ÿ >é 4Ÿ ;é Ÿ 8é 8Ÿ 5é  Ÿ 2é HŸ /é Ÿ ,é ź‘ )é Б &é ԑ #é đ  é Ŕ‘ é ¸‘ é ȑ é ̑ é $Ÿ é °‘ é ´‘  é 0Ÿ é XŸ é ¨‘ !^pé Ÿë œë ¤ë ˘ë ŕ Œ° Ź° lď hď dď `ď \ď Xď Tď Nď Dď @ď  8ď  ++ď  !ď  ď  +ď  ď ď ď ˙î űî ÷î óî ďî ëî çî äî ŕî Üî Řî Ôî Đî Ěî Ćî  ľî !Śî "šî #Žî $î %wî &lî '[î (Iî )@î *6î +0î ,)î -#î -î -î .î / î /î 0î 1üí 2öí 3ńí 4ěí 5čí 6âí 7Üí 8×í 9Ńí :Çí ;¸í <Źí =ší >Œí ?~í @jí [`í \Pí \;í ]0í ^í ^í _í `űě {čě {Úě |Îě }şě }´ě ~°ě  ˙˙˙˙˙˙˙˙¤\ Pl@ŕŘ@$?@ŕ@քć„ö„43@…`k +@6… Đ +@D1@f…ŕÖ +@ôi@–…đF@ś…ÔĽ @Đl +@ŕ{@ö…†† É +@6†F†V†f†v†††–†Ś†ś†Ɔ´¨@ć†ö†Th@Ж +@Ô-@6‡4ę@V‡f‡b @†‡–‡Ś‡ŕĐ +@đ„@և`H@ö‡ˆˆ°0@ ę@FˆVˆfˆvˆĹ +@–ˆŔţ @śˆƈֈćˆ} +@$ä@„?@ds@ŕR@äM@V‰f‰t4@  +@–‰Ś‰Ô*@Ɖ°„@ć‰ö‰Š$Ń +@T~@› +@”{@VŠfŠ€ +@†Šp +@$Ň +@śŠô +@֊ćŠm +@$€ +@‹tę@6‹F‹Ä>@f‹v‹†‹–‹d^@¤Ň +@Ƌ֋ć‹ö‹ŒP– +@&Œ6Œđ +@VŒfŒvŒä=@–ŒŚŒśŒƌ֌ä?@öŒ |@¤Ń +@6 x +@Š p„ +LŽ +(Ô +4Ş +Ód 0l@lZ P €ČXţ˙˙oH˙˙˙ođ˙˙oŇrŕw@ţ˙ż@H@ŔI@ŕq@ŕi@ŔF@XZ ŕ:@ŔF@ + +đTA +UUĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎUUUUĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎUUUUT@ +UUĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎUUUUĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎUUUUT€A +UUĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎUUUUĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎUUUUTB +UUĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎUUUUĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎUUUUT€B +TC +T€C +TD +T€D +TE +T€E +TF +T€F +TG +T€G +TH +T€H +TI +T€I +TJ +T€J +TK +T€K +TL +T€L +TM +T€M +TN +T€N +TO +T€O +TT@0 +T€0 +TŔ0 +T1 +T@1 +T€1 +TŔ1 +T2 +T@2 +T€2 +TŔ2 +T3 +T@3 +T€3 +TŔ3 +T4 +T@4 +T€4 +TŔ4 +T5 +T@5 +T€5 +TŔ5 +T6 +T@6 +T€6 +TŔ6 +T7 +T@7 +T€7 +TŔ7 +T8 +T@8 +T€8 +TŔ8 +T9 +T@9 +T€9 +TŔ9 +T: +T@: +T€: +TŔ: +T; +T@; +T€; +TŔ; +T< +T@< +T€< +TŔ< +T= +T@= +T€= +TŔ= +T> +T@> +T€> +TŔ> +T? +T@? +T€? +TŔ? +TTĎĎ@ +ĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎĎUUUUT€ +TŔ +T! +T@! +T€! +TŔ! +T" +T@" +T€" +TŔ" +T# +T@# +T€# +TŔ# +T$ +T@$ +T€$ +TŔ$ +T% +T@% +T€% +TŔ% +T& +T@& +T€& +TŔ& +T' +T@' +T€' +TŔ' +T( +T@( +T€( +TŔ( +T) +T@) +T€) +TŔ) +T* +T@* +T€* +TŔ* +T+ +T@+ +T€+ +TŔ+ +T, +T@, +T€, +TŔ, +T- +T@- +T€- +TŔ- +T. +T@. +T€. +TŔ. +T/ +T@/ +T€/ +TŔ/ +T0 +'_@@i@_@ u@_@°{@_@°{@÷^@đŠ@ç^@ŕŽ@Đ^@•@š^@™@p2@|2@€2@œ2@x2@t2@˙˙˙˙„2@ˆ2@Œ2@2@”2@˜2@ 2@@5@€5@ 9@`4@ 4@`7@ 7@ŕ7@@8@€8@Ŕ8@‡`@|`@t`@i`@]`@Q`@J`@A`@9`@.`@!`@`@`@ÔĆ@ŔÍ@­@­@­@­@­@­@­@­@­@­@­@­@­@”a@`c@tc@La@Źb@$e@4e@u‰@q‰@m‰@i‰@e‰@a‰@]‰@V‰@O‰@G‰@=‰@4‰@-‰@$‰@ ‰@‰@‰@‰@‰@ ‰@‰@‰@‰@üˆ@řˆ@ôˆ@ěˆ@ăˆ@݈@׈@‰@҈@͈@ƈ@źˆ@´ˆ@Ťˆ@˘ˆ@Ÿˆ@œˆ@‡ˆ@~ˆ@uˆ@iˆ@hˆ@hˆ@hˆ@hˆ@hˆ@hˆ@Xˆ@Hˆ@8ˆ@(ˆ@ˆ@ˆ@ř‡@܇@Ŕ‡@ ‡@`‡@ ‡@‡@ŕ†@І@Ŕ†@°†@ †@†@€†@p†@`†@P†@@†@0†@ †@†@Ŕ…@¤…@Œ…@†@x…@d…@H…@ …@…@Ŕ„@€„@`„@T„@„@Ŕƒ@€ƒ@@ƒ@$ƒ@$ƒ@$ƒ@$ƒ@$ƒ@"ƒ@:ź0:ź0"ƒ@ ƒ@"ƒ@ ƒ@hˆ@­@˙˙˙˙)Ň­@˙˙˙˙z‰@y‰@y‰@y‰@y‰@y‰@­@˙˙˙˙ Ŕ‰@ ‰@ ‰@ ‰@ ‰@ ‰@ ‰@ ‰@ ‰@ ‰@ ‰@ ‰@­@˙˙˙˙í‰@ě‰@ě‰@ě‰@­@˙˙˙˙÷‰@­@˙˙˙˙n‹@@‹@‹@ߊ@ъ@Ê@ľŠ@´Š@°Š@´Š@´Š@´Š@ŹŠ@ĄŠ@Š@­@˙˙˙˙Œ‹@ŒŒ@ŕi@ŕk@ŕw@ŕq@ŕw@ŕq@|@`|@Ŕ|@ }@€}@ŕ}@@~@ ~@@`@Ŕ@ €@`€@ @ŕ@f‘@@:@P:@"’@ą9™ăźĽͤtgQ>ŞŠPNŒaPőqk„,‰jŻ—j‰6ůHŰT„‰Ń˙7œ˙‹ľqáYIŠ‘ĎƒŒ7 q¤ÇRŠ>)ĂOžqŰĂN´9ůN¤řą€‹L(ĂíÝKż‡ĺ@˛ÉKîé箂CAk[SÚĹžó°:@¤:@¤:@ ;@\œ@]œ@<;@bœ@H;@hœ@T;@pœ@`;@l;@ ę @pď@÷ @÷ @Ŕě @ŕç @Ŕč @đ÷ @ř @€é @př @P÷ @@ř @0ř @`ř @př @Př @@ˆ @ ô@÷ @÷ @$y @} @‰ @đ÷ @ř @~ @př @ ‡ @@ř @0ř @`ř @př @Př @É@üČ@âČ@ŇČ@şČ@§Č@‘Č@zČ@hČ@TČ@AČ@ Č@Č@đÇ@äÇ@ÎÇ@śÇ@ŞÇ@Ç@Ç@qÇ@bÇ@QÇ@3Ç@Ç@Ç@ćĆ@×Ć@żĆ@˛Ć@œĆ@Ć@Ć@`Ć@/Ć@Ć@Ć@ďĹ@ÖĹ@ÂĹ@ Ĺ@hĹ@UĹ@9Ĺ@ Ĺ@Ĺ@Ĺ@ęÄ@ÍÄ@˛Ä@ŁÄ@’Ä@wÄ@iÄ@`Ä@KÄ@>Ä@)Ä@Ä@Ä@őĂ@ÜĂ@žĂ@¨Ă@—Ă@Ă@qĂ@cĂ@GĂ@8Ă@%Ă@Ă@Ă@ŕÂ@ťÂ@žÂ@‡Â@`Â@ Â@Â@ŔÁ@€Á@@Á@Á@ÎŔ@żŔ@ Ŕ@pŔ@_Ŕ@@Ŕ@Ŕ@ůż@ßż@Çż@Šż@€ż@`ż@@ż@ż@ż@ŕž@ ž@‚ž@hž@@ž@ž@Ŕ˝@€˝@N˝@;˝@.˝@˝@˙ź@ĺź@Ďź@śź@šź@|ź@gź@Vź@Bź@2ź@ ź@Ë@úĘ@őĘ@áĘ@ËĘ@ĂĘ@šĘ@ Ę@™Ę@ƒĘ@pĘ@ZĘ@NĘ@BĘ@7Ę@+Ę@Ę@Ę@Ę@űÉ@çÉ@ŇÉ@˝É@ĽÉ@ŒÉ@vÉ@^É@OÉ@BÉ@4É@$É@Ë@™Ë@”Ë@Ë@‹Ë@†Ë@‚Ë@~Ë@yË@tË@oË@jË@eË@`Ë@[Ë@TË@OË@JË@EË@@Ë@;Ë@6Ë@2Ë@-Ë@(Ë@!Ë@Ë@Ë@Ë@Ë@ Ë@Ŕ`32Ŕ˙˙˙˙<`IÄFv 4Ŕ@ĂĂČf2Ŕr!Ď Ď r!`IÄ`IĘŔĘŔÄŹ˛:ŔŹŔÄŹŔÄ>ŔĀŁŔă€v Œ +˙ţ˙˙˙ţ˙˙@2Ŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙€˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙awkpartsŕęDŔ\ßÄ]“,#ý˙ż+€€€€`QUUUUUý@€˙?˙˙˙˙HĆÄ +ăă@ă€ăŔăă@ă€ăŔăă@ă€ăŔăă@ă€ăŔăă@ă€ăŔăă@ă€ăŔăă@ă€ăŔăă@ă€ăŔgŔ'g°'g 'g'g $g %g€&g%g%c0DŔ`32Ŕ +˙˙˙˙<ŔÄFvŔÄ@ĂĂČf2Ŕq!Ď Ď q!`IÄ`IÄŔĘÂǘÂÇ ˛:ŔŹÂÇŹÂÇ|ÂÇ>ÂǀŁŔ ă€vD}  +˙ţ˙˙˙ţ˙˙@2Ŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙€˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙run-parts ÂǙDŔ\ÂÇ€ő˙ż€€@¨XŠgäĚŠƒ Ŕ¸íZá.‚@P%ŤƒśŮ@ˇu6š~œ +@ˇu6š~œ +@ˇu6š~œ@€@˙˙˙˙HÂÇ ąœ@˜Ď˙żZ8ł@Ü!@ Ą@€t@xv@Źś@Đu@,} pt@HĐ˙ż€t@ü8@Źś@€t@Ŕ`32Ŕ˙˙˙˙<ÂÇFv 4ŔŔÄČf2Ŕ}!Ď Ď }!ÂÇÂǘŔ€Ă˜Ŕ€Ăв:ŔŹŔ€ĂŹŔ€Ă|߀Ă>Ŕ€Ă€ŁŔ vP`†, +˙ţ˙˙˙ţ˙˙@2Ŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙€˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙tmpwatchŕ€Ă™DŔ\߀Ăý˙ż€€€€`QUUUUUý@€˙?˙˙˙˙Hƀà +DŔ`32Ŕ˙˙˙˙<Ŕ€ĂFv 4ŔŔ€ĂČf2Ŕ›!Ď Ď ›!Ŕ€ĂŔ€Ă˜ŕúÁ˜ŕúÁH´:ŔŹŕúÁŹŕúÁ>ŕúÁ€ŁŔCv + + +˙ţ˙˙˙ţ˙˙@2Ŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙€˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙tmpwatchűÁ™DŔ\˙úÁý˙ż€€€€`QUUUUUý@€˙?˙˙˙˙HćúÁ + +/lib/libc.so.6@¸p@@@j@Pl@`r@@@@ˆ@`@h@p@x@€@P@X@H@¨@°@¸@˜@ @Ř@Đ@Č@Ŕ@ŕ@4@ź@Pl@˙Ü@Ř@ s@8C@xr@@čB@Hm@Hm@Ŕq@ ú¨r@lr@libc.so.6/liblibc.so.6”r@ld-linux.so.2j@Pl@Čp@j@Pl@Čp@j@<…ii +„0…si „őB@ii +˙B@ii + C@qi C@ri !C@si -C@ii +őB@ii +ňA@˙B@ii +ňA@-C@ii +ňA@ C@qi ňA@ż@ii +É@ii +Ó@qi ß@ii +ompress.opushback.ojarřconfig.statusödelete/openrisc_arch3.dochf.htmll.htm~ű#isa.html#0.htmhf.html~Etg.htm_files/header.htmfilelist.xmlöfilelist.xmlor1k_isa_filespenrisc_arch.docr1k_isa.html˙~$enrisc_arch.docůgcc0407.tar.gzlive.ram÷initrd/lost+foundget.oop.oype.o˙version.owhere.oansifyintdoc.h0řjava/stage1234űincludeparse.oclass.odecl.oexpr.oconstants.olang.otypeck.oexcept.overify.ozextract.ojcf-io.oparse.oümangle.o_name.oújcf-write.obuffer.ocheck-init.ojcf-depend.opath.oüxref.oboehm.ojvgenmain.ogjavah.oparse-scan.ojv-scan.ocf-dump.oúobjc/stage1234űincludeűMake-langconfig.statusstamp-honfig.hs-hconfig.hc1˙Makefilefixinc/Makefilemachname.hfixincl.otests.ofixes.oýserver.oprocopen.ognu-regex.ofixlib.oinclţull-stampřgccbugmklibgcchconfig.hgengenrtl.oobstack.cořgengenrtls-genrtlgenrtl.hcücodes.oýrtl.obitmap.oggc-none.oensupport.o˙hashtab.cořsafe-ctype.c oőprint-rtl.oerrors.ogencodess-codesinsn-codes.hgenflags.ořs-flagsinsn-flags.hgencheck.ořs-checktree-check.hc-parse.olang.oex.oýtm_p.hcs-tm_p.h-errors.opragma.odecl.otypeck.oconvert.oaux-info.ocommon.oformat.osemantics.odump.o˙pplib.oex.o˙macro.oexp.ofiles.ohash.oerror.oinit.odefault.oýhashtable.omkdeps.oprefix.oversion.ombchar.olibcpp.amain.oalias.ogenconfig.o ÷s-configinsn-config.hbb-reorder.ouiltins.o˙caller-save.os.oügenattr.oůs-attrinsn-attr.hcombine.onflict.overt.oţse.olib.oýdbxout.oce.oependence.oiagnostic.ooloop.ominance.o˙warf2asm.oout.o˙out.oűemit-rtl.oxcept.oplow.omed.or.oýfinal.olow.oold-const.ounction.o˙gcse.oenrtl.ogc-common.olobal.oraph.o˙haifa-sched.osh.oţifcvt.ogenattrtab.o +ös-attrtabinsn-attrtab.c +oógenemit.oůs-emitinsn-emit.c +oögenextract.o +ös-extractinsn-extract.c +oógenopinit.o ÷s-opinitinsn-opinit.c oôgenoutput.o ÷s-outputinsn-output.c oôgenpeep.oůs-peepinsn-peep.c +oögenrecog.ořs-recoginsn-recog.c o÷tegrate.ol.oýjump.olcm.oists.oocal-alloc.oop.oţoptabs.oparams.oredict.oint-tree.oofile.oţreal.ocog.og-stack.oclass.omove.orename.o˙load.o1.oüorg.osource.o˙tlanal.o˙sbitmap.oched-deps.oebb.orgn.ovis.oűdbout.oibcall.omplify-rtx.o˙play-tree.c +oösa.otmt.oor-layout.oringpool.oţtimevar.ooplev.oree.o˙unroll.ovarasm.oray.oýxcoffout.oggc-page.oi386.olibbackend.atradcpp.oif.opp0űgcov.oücollect2.oc1plus˙f771jc1tlink.os-mlibmultilib.hgcc.ojţjvgenmaingcjhjv-scancf-dump˙gccspec.oxgcccppmain.o0ýs-underpecs˙underscore.ocppspec.ounderscore.ccollect2pp˙specs.readyxlimits.hfixinc.shinclude/syslimits.htdarg.hdef.hývarargs.hproto.hstdbool.hiso646.hlinux/a.out.hi2c.hnls.hümits.hţfloat.hREADMEncurses/curses.hncurses.hřopenssl/bn.hůslang/slang.hűX11root/usr/X11R6/include/X11/Xarch.hlib.hos.h_r.hdefs.hţthreads.häcurses.hncurses.hpi-config.hzconf.hutil.h÷stmp-fixincint-hdrsűdf.og++lang-f77cs-tconfig.htconfig.hg77libgcc.mkcrtbegin.oS.oűend.oS.oúlibgcc/_muldi3.odivdi3.omoddi3.oudivdi3.omoddi3.o˙negdi2.olshrdi3.oashldi3.ordi3.oýffsdi2.oclz.oudiv_w_sdiv.omoddi4.oücmpdi2.oucmpdi2.ofloatdidf.osf.oúixunsdfsi.osfsi.odfdi.oýdfdi.ounssfdi.osfdi.oxfdi.ounsxfdi.oţloatdixf.oixunsxfsi.otfdi.ounstfdi.oţloatditf.o˙_gcc_bcmp.obb.oclear_cache.otrampoline.o_main.oexit.oabsvsi2.odi2.oýddvsi3.odi3.oüsubvsi3.odi3.oümulvsi3.odi3.oünegvsi2.odi2.oüctors.o˙unwind-dw2.o +-fde.oýsjlj.oů_eprintf.oůstmp-dirslibgcc.a_s.soúgthr-default.hlibgcc_s.so.0config.logread-rtl.ossa-dce.olibgcc_s.so.1.mapúcxxmain.c++filtűetcfastjar/config.loghstatusůstamp-hMakefileinstall-defs.shjartool.odostime.ocŔ`32Ŕ˙˙˙˙<@ĂÑv 4Ŕ@ĂĂČf2Ŕl!l!ůl!@ĂĂ@ĂØŕ˜ŕ”˛:ŔŹŕÂŹŕÂ}bvŕ€ŁŔˆvź +˙ţ˙˙˙ţ˙˙@2Ŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙€˙˙˙˙ =˙˙˙˙˙˙˙˙˙˙˙˙ţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙lshlession@–Ŕ™DŔ\˙Â@ó˙ż€€€€`QUUUUUý@ţ˙˙˙@€˙?˙˙˙˙HćÂ|ćÂp2ŔŔo2ŔőÇ”ć”ć¤ć¤ć¤ćÂŹćÂŹć´ć´ćÂ@p2Ŕć ť˛ďť7‚!CŕçÂŕçÂČé„ßřÇđçÂđçÂřçÂřçÂ`Ż¤@#Ű9#Ű9ŁˇŐ:V€HčÂHčÂ\čÂ\čÂp2ŔŔo2ŔőÇtčÂtč„č„č„čŒčŒč”č”čÂ@p2Ŕŕç ş˛ďť6‚!CŔéÂŔé¨ë„ßřÇĐéÂĐéÂŘéÂŘéÂ_Ż¤–'7'7ŁˇŐ:U€(ęÂ(ęÂ<ęÂ<ęÂp2ŔŔo2ŔőÇTęÂTęÂdęÂdęÂdęÂlęÂlęÂtęÂtęÂ@p2ŔŔé š˛ďť5‚!C ë ëˆí„ßřÇ°ë°ë¸ë¸ëÂ^Ż¤cu'7u'7ŁˇŐ:T€ěÂěÂěÂěÂp2ŔŔo2ŔőÇ4ěÂ4ěÂDěÂDěÂDěÂLěÂLěÂTěÂTěÂ@p2Ŕ ë ¸˛ďť4‚!C€í€íÂH„ßřǐíí˜í˜íÂ]Ż¤_j'7j'7ŁˇŐ:S€číÂčíÂüíÂüíÂp2ŔŔo2ŔőÇîÂîÂ$îÂ$îÂ$îÂ,îÂ,îÂ4îÂ4îÂ@p2Ŕ€í ˇ˛ďť3‚!C÷UUPÚ  „ UUUU÷UUIÚ   UUUU÷UUAÚ @ UUUU÷UU6Ú М UUUU÷UU,Ú Ŕ‚ UUUU÷UUÚ €‚ UUUU÷UUÚ p UUUU÷UUÚ › UUUU÷UU÷Ů ŕƒ UUUU÷UUëŮ ŕ UUUU÷UUŕŮ  – UUUU÷UUen_USUUUU÷ +UU/etc/inputrcUUUU÷UUěÁUUUUUUU÷UUls -la /dev/ramUUUU÷UUcd ..UUUU÷UUlsUUUUĎUUUUUUUUTŕÉUUĎĎĎĎUUUUUUUUUUUUU÷ UUHOME=/rootUUUUUT€ÄUUĎĎĎĎUUUUUUUUUUUUUUUU÷ UU/bin/mountUUUUUUUUUT ÂUUĎĎĎĎĎĎĎĎUUUUUUUU÷ UU--color=ttyUUUU÷ UUTERM=xtermUUUUU÷UU, +UUUU÷UU/bin/lsUUUUUUUUTĹUUĎĎĎĎĎĎĎĎUUUUU÷ UUOLDPWD=/UUUU÷ UUPWD=/initrdUUUU÷UUĚÁUUUUUUUUT`ÇUUĎĎĎĎĎĎĎĎUUUUUUUUUUU÷UUŒÂUUUUUUĎUUUUT€ÇUUĎĎĎĎĎUUUUUUUUUUUT@ÇUUĎĎĎĎĎĎĎĎUUUUĎUUUUTŔßUUĎĎĎĎUUUUUUUUUUUUT@ÄUUĎĎĎUUUUĎĎĎĎĎUUUUT ÄUUĎĎĎĎĎĎĎĎUUUUUUUUUUUU÷UUě +ŹĹUUUUUUUU÷UUĚÇUUUUUUUU÷ UU,É 9LĹUUUUT ÂUUĎĎĎĎĎĎĎĎUUUUUUUU÷UU ÂlÝUUUU÷UU Ěś +UUUUUUUUUUUU÷UUŹÇěĂUUUU÷UUlsUUUUĎUUUUUUUUU÷UU,ĆUUUUĎĎĎUUUUU÷UUěČĚÂŹĆUUUU÷UULO +UUUUĎĎĎUUUUU÷UU-laUUUUĎĎĎĎUUUUUUUU÷ UU--color=ttyUUUU÷UUinitrd/UUUUUUUUUUUU÷UUěČUUUUUUUUTČUUĎĎĎĎĎĎĎĎĎĎĎĎUUUU÷UU-laUUUUĎĎĎĎUUUUUUUT`ÉUUĎĎĎĎĎĎĎĎUUUUUUUU÷UU/UUUUĎĎĎĎUUUUUU÷UUŹČUUUUUUUU÷UU ÇŒ¸ UUUUUUUUT@ĂUUĎĎĎĎĎUUUUUUUĎĎĎUUUUTŔĆUUĎĎĎĎĎĎĎĎĎĎĎĎUUUUT ĘUUĎĎĎĎĎĎĎĎUUUUUUUU÷UUmountUUUUUUUUUUUUUU÷ +UU/sbin/mke2fsUUUU÷UU,ÇlĆUUUUUUUUTĘUUĎĎĎĎĎĎĎĎĎĎĎĎUUUUT`ÂUUĎĎĎĎĎĎĎĎUUUUUUUUT ČUUĎĎĎĎĎĎĎĎUUUUUUUU÷UUmke2fsUUUUUUUUUUUUU÷ +UU_=/bin/lsUUUUUU÷UUŹĆUUUUUUUUT€ĆUUĎĎĎĎĎUUUUĎĎĎUUUU÷UUlsUUUUĎUUUUĎĎĎUUUU÷ UU/initrdUUUUUUU÷ UU@Ń +UUUU÷UUlČĚÄUUUUT`ÄUUĎĎĎĎĎĎĎĎUUUUUUUUUUUU÷UU/bin/lsUUUUUUUUUUUUT@ČUUĎĎĎĎĎĎĎĎUUUUUTÄUUĎĎĎĎĎĎĎĎUUUUTŔÉUUĎĎĎĎĎĎĎĎUUUUUT ÉUUĎĎĎĎĎĎĎĎUUUUĎĎĎUUUUT@ĘT`ĘT€ĘT ĘTŔĘTŕĘTËT ËT@ËT`ËT€ËT ËTŔËTŕËTĚT ĚT@ĚT`ĚT€ĚT ĚTŔĚTŕĚTÍT ÍT@ÍT`ÍT€ÍT ÍTŔÍTŕÍTÎT ÎT@ÎT`ÎT€ÎT ÎTŔÎTŕÎTĎT ĎT@ĎT`ĎT€ĎT ĎTŔĎTŕĎT÷UUBASHUUUU÷UU  +Ěă UUUU÷ +UU/bin/bashUUUU÷ +UUBASH_VERSIONUUUU÷UUl + ä UUUU÷UUBASH_VERSINFOUUUU÷UUBASH_VERSINFOUUUU÷UUlÉ +Ě +Œä UUUU÷UU˙˙˙˙, +l +UUUU÷UUL +l +  +UUUU÷UU2UUUU÷UUŒ +Ź +, +UUUU÷UU04UUUU÷UUĚ +ě +l +UUUU÷UU11UUUU÷UU  +, +Ź +UUUU÷UU1UUUU÷UUL +l +ě +UUUU÷UUreleaseUUUU÷UU ĺ   +, +UUUU÷ UUHISTFILEUUUU÷ UUHISTFILEUUUU÷UUŹ +Œĺ UUUU÷ UUHISTSIZEUUUU÷ UUHISTSIZEUUUU÷UUŹ +  +Lĺ UUUU÷UUcd ..UUUUUUUUUU÷UUUIDUUUU÷UUUIDUUUU÷UUĚ +Œ + ć UUUU÷UU0UUUU÷UUEUIDUUUU÷UUEUIDUUUU÷UU  +Lć UUUU÷UU0UUUU÷UUSECONDSUUUU÷UUSECONDSUUUU÷UUŒ +Œć UUUU÷UURANDOMUUUU÷UURANDOMUUUU÷UU, +ě +Ěć UUUU÷UULINENOUUUU÷UULINENOUUUU÷UU, +L + ç UUUU÷UUHISTCMDUUUU÷UUHISTCMDUUUU÷UUŒ: +Ź +Lç UUUU÷ UUDIRSTACKUUUU÷ UUDIRSTACKUUUU÷UU  +Œç UUUU÷UU˙˙˙˙L +L +UUUU÷UUGROUPSUUUU÷UUGROUPSUUUU÷UUěÄ +Œ + č UUUU÷UU˙˙˙˙Ě +Ě +UUUU÷ UUFUNCNAMEUUUU÷ UUFUNCNAMEUUUU÷UU  +Œč UUUU÷ +UUSHELLOPTSUUUU÷ +UUSHELLOPTSUUUU÷UUl +Ěč UUUU÷UUň +đ*UUUUĎĎĎUUUU÷UU1000UUUUĎĎĎUUUU÷ +UUHISTFILESIZEUUUU÷ +UUHISTFILESIZEUUUU÷UUŹÄŒÝUUUUUUUUUUU÷UUě + é UUUU÷ UUŒ +°8ěÇUUUUUUU÷ UUěÄXÓ +UUUUUUUU÷UU ĆUUUUĎĎĎUUUU÷UULˇ +UUUUUUUU÷UUŹ +UUUUUUUU÷UU ś +UUUUUUUU÷UUl +UUUUUUUU÷UUĚľ +UUUUUUUU÷ UUcd initrd/UUUUUU÷UUL0 +UUUUUUUU÷UUŹ +UUUUUUUU÷UUcpUUUUĎUUUUUUUUUU÷ +UU"ßßßßßßßßßUUUU÷ UUUSERNAMEUUUUUUU÷UUrootUUUUUUUUUUUUUUU÷UU  + . +UUUU÷ +UUCDS_INST_DIRUUUUUUU÷UUls -laUUUUUĎĎUUUU÷UUě8 +UUUUUUUUUU÷UUĚ +UUUUUUUUUUUU÷UUŹ3 +UUUUUUUUU÷ UUPIPESTATUSUUUU÷UUls --color=ttyUUUUU÷UU  + ë wUUUU÷UU˙˙˙˙ Ę + Ę +UUUU÷ UUĚĹ +, +ßßßUUUU÷UUlsUUUUĎUUUUUUUUUUUU÷UUlĹ +UUUUĎĎĎĎUUUU÷UULM_LICENSE_FILEUUUU÷UUPRINTERUUUUĎĎĎĎUUUU÷UULD_LIBRARY_PATHUUUU÷UULD_LIBRARY_PATHUUUU÷UUŒ +UUUUUUUU÷UUĚ4 +UUUUUUUUUU÷UUvmwareUUUUUUUUU÷UUcp -iUUUUUUUUUU÷UUŒ3 +UUUUUUUU÷UU/usr/cad/ncsimUUUUU÷UU ţ +UUUUĎĎĎĎUUUU÷UUL +L +Ěë UUUU÷ +UU[\u@\h \w]# UUUUUUU÷UUvmwareUUUUUUUUU÷ UUBASH_ENVUUUUĎUUUUUU÷UUPRINTERUUUUUUUU÷UUls -laUUUUUUUUUUUUU÷UUl4 +L + í UUUU÷ UUBASH_ENVUUUUĎĎĎUUUU÷UUMAILUUUUUUUĎĎUUUU÷ +UUCDS_INST_DIRUUUU÷UUĚ\ +UUUUUUUU÷UUMAILUUUUUUUUĎUUUU÷UUrootUUUUUUUUĎĎĎUUUU÷UU & +UUUUĎĎĎĎUUUU÷UULM_LICENSE_FILEUUUU÷UU,0 + * +UUUU÷UUlp@odinUUUU÷UUrootUUUUUUU÷UUL +  +Ěé UUUU÷UUŹä, +L- +UUUU÷UUlsUUUUĎUUUUUUUUU÷ +UUCDS_LIC_FILEUUUUű‘. =ę.. +zŇ LC_MESSAGEStšŕĆL]Á€ÚƚƚƚĆB +ǀÚĆh)Ćh)Ćd)Ć ťĆčô"ÁŕYÁŕŕ`ÇÇ˙˙˙˙čžňĹäžňĹŕ`ÇÇŕ`ÇÇČbÇDŽßřÇđ`ÇÇđ`ÇÇř`ÇÇř`ÇÇW¤¤ +Tœ9Tœ9]şŐ:g}HaÇÇHaÇÇ\aÇÇ\aÇÇp2ŔŔo2ŔőÇtaÇÇtaÇDŽaÇDŽaÇDŽaÇnjaÇnjaÇǔaÇǔaÇÇ@p2Ŕŕ`ÇÇ [Çđť"†;wdefine_key.3x.gzŔbÇÇŔbÇǨdÇDŽßřÇĐbÇÇĐbÇÇŘbÇÇŘbÇÇV¤¤.Tœ9Tœ9]şŐ:f}(cÇÇ(cÇÇ…0aěˇŐ:fĎ 2LÁ 2LÁˆ4LÁ„ßřÇ°2LÁ°2LÁ¸2LÁ¸2LÁô(¤#-œ9-œ9şŐ:N|3LÁ3LÁ3LÁ3LÁp2ŔŔo2ŔőÇ43LÁ43LÁD3LÁD3LÁD3LÁL3LÁL3LÁT3LÁT3LÁ@p2Ŕ 2LÁ pŠđť=…0aěˇŐ:eĎ€4LÁ€4LÁh6LÁ„ßřǐ4LÁ4LÁ˜4LÁ˜4LÁó(¤-œ9-œ9şŐ:M|č4LÁč4LÁü4LÁü4LÁp2ŔŔo2ŔőÇ5LÁ5LÁ$5LÁ$5LÁ$5LÁ,5LÁ,5LÁ45LÁ45LÁ@p2Ŕ€4LÁ oŠđť<…0aěˇŐ:dĎ`6LÁ`6LÁH8LÁ„ßřÇp6LÁp6LÁx6LÁx6LÁň(¤/-œ9-œ9şŐ:L|Č6LÁČ6LÁÜ6LÁÜ6LÁp2ŔŔo2ŔőÇô6LÁô6LÁ7LÁ7LÁ7LÁ 7LÁ 7LÁ7LÁ7LÁ@p2Ŕ`6LÁ nŠđť;…0aěˇŐ:cĎ@8LÁ@8LÁ(:LÁ„ßřÇP8LÁP8LÁX8LÁX8LÁń(¤-œ9-œ9şŐ:K|¨8LÁ¨8LÁź8LÁź8LÁp2ŔŔo2ŔőÇÔ8LÁÔ8LÁä8LÁä8LÁä8LÁě8LÁě8LÁô8LÁô8LÁ@p2Ŕ@8LÁ mŠđť:…0aěˇŐ:bĎ :LÁ :LÁLÁH>LÁ\>LÁ\>LÁp2ŔŔo2ŔőÇt>LÁt>LÁ„>LÁ„>LÁ„>LÁŒ>LÁŒ>LÁ”>LÁ”>LÁ@p2Ŕŕ=LÁ GŠđťE…;whhhhhhhhhhhhhhhhhhhhhó5. čô"Á@P-Â``0¤Ă˙˙˙˙0`0¤Ă`0¤ĂH2¤Ă„ßřÇp0¤Ăp0¤Ăx0¤Ăx0¤Ă@'¤-œ9-œ9şŐ:Ý{Č0¤ĂČ0¤ĂÜ0¤ĂÜ0¤Ăp2ŔŔo2ŔőÇô0¤Ăô0¤Ă1¤Ă1¤Ă1¤Ă 1¤Ă 1¤Ă1¤Ă1¤Ă@p2Ŕ`0¤Ă ˙¨đťO…4ih!h!h!h!h!@2¤Ă@2¤Ă(4¤Ă„ßřÇP2¤ĂP2¤ĂX2¤ĂX2¤Ă?'¤}-œ9-œ9şŐ:Ü{¨2¤Ă¨2¤Ăź2¤Ăź2¤Ăp2ŔŔo2ŔőÇÔ2¤ĂÔ2¤Ăä2¤Ăä2¤Ăä2¤Ăě2¤Ăě2¤Ăô2¤Ăô2¤Ă@p2Ŕ@2¤Ă ţ¨đťM…4N…4ih!h!h!h!h! 4¤Ă 4¤Ă6¤Ă„ßřÇ04¤Ă04¤Ă84¤Ă84¤Ă>'¤ +-œ9-œ9şŐ:Ű{ˆ4¤Ăˆ4¤Ăœ4¤Ăœ4¤Ăp2ŔŔo2ŔőÇ´4¤Ă´4¤ĂÄ4¤ĂÄ4¤ĂÄ4¤ĂĚ4¤ĂĚ4¤ĂÔ4¤ĂÔ4¤Ă@p2Ŕ 4¤Ă ý¨đťL…4ih!h!h!h!h!6¤Ă6¤Ăč7¤Ă„ßřÇ6¤Ă6¤Ă6¤Ă6¤Ă='¤ż-œ9-œ9şŐ:Ú{h6¤Ăh6¤Ă|6¤Ă|6¤Ăp2ŔŔo2ŔőÇ”6¤Ă”6¤Ă¤6¤Ă¤6¤Ă¤6¤ĂŹ6¤ĂŹ6¤Ă´6¤Ă´6¤Ă@p2Ŕ6¤Ă ü¨đťK…4ih!h!h!h!h!ŕ7¤Ăŕ7¤ĂČ9¤Ă„ßřÇđ7¤Ăđ7¤Ăř7¤Ăř7¤Ă<'¤-œ9-œ9şŐ:Ů{H8¤ĂH8¤Ă\8¤Ă\8¤Ăp2ŔŔo2ŔőÇt8¤Ăt8¤Ă„8¤Ă„8¤Ă„8¤ĂŒ8¤ĂŒ8¤Ă”8¤Ă”8¤Ă@p2Ŕŕ7¤Ă ű¨đťJ…4ih!h!h!h!h!Ŕ9¤ĂŔ9¤Ă¨;¤Ă„ßřÇĐ9¤ĂĐ9¤ĂŘ9¤ĂŘ9¤Ă;'¤d -œ9-œ9şŐ:Ř{(:¤Ă(:¤Ă<:¤Ă<:¤Ăp2ŔŔo2ŔőÇT:¤ĂT:¤Ăd:¤Ăd:¤Ăd:¤Ăl:¤Ăl:¤Ăt:¤Ăt:¤Ă@p2ŔŔ9¤Ă ú¨đťI…4ih!h!h!h!h! ;¤Ă ;¤Ăˆ=¤Ă„ßřÇ°;¤Ă°;¤Ă¸;¤Ă¸;¤Ă:'¤6-œ9-œ9şŐ:×{<¤Ă<¤Ă<¤Ă<¤Ăp2ŔŔo2ŔőÇ4<¤Ă4<¤ĂD<¤ĂD<¤ĂD<¤ĂL<¤ĂL<¤ĂT<¤ĂT<¤Ă@p2Ŕ ;¤Ă ů¨đťH…4ih!h!h!h!h!€=¤Ă€=¤ĂHEÄßřǐ=¤Ă=¤Ă˜=¤Ă˜=¤Ă9'¤-œ9-œ9şŐ:Ö{č=¤Ăč=¤Ăü=¤Ăü=¤Ăp2ŔŔo2ŔőÇ>¤Ă>¤Ă$>¤Ă$>¤Ă$>¤Ă,>¤Ă,>¤Ă4>¤Ă4>¤Ă@p2Ŕ€=¤Ă ř¨đťG…4ih!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!h!Vy .1 ..Wy ChangeLog83calloutsXy caution.gifYyhome.gifZy +important.gif[ynext.gif\ynote.gif]yprev.gif^ytip.gif_y +toc-blank.gif`y +toc-minus.gifay toc-plus.gifbyup.gifcyô warning.gifw‚. wW..wƒMakefile(w„ show_memwd.c<w… +vpi_user.cŕŕ€Ă˙˙˙˙čžňĹäžňĹŕ€Ăŕ€Ăč€Ăč€Ăđ€Ăđ€Ăř€Ăř€Ä:¤&3–Ý:3–Ý:3–Ý: HĂHĂ\Ă\Ă y2Ŕŕx2Ŕ’řÇtĂtāāā́́ԁԁĂ`y2Ŕŕ€Ă „:Á{„:‚:×çu3–Ý:3–Ý:3–Ý:&,×çup‚Ăp‚Ăx‚Ăx‚À‚À‚ȂȂÄßřÇ°‚Ă°‚ø‚ø‚ĂŔ‚ĂŔ‚ĂȂĂȂĂЂĂЂĂ؂Ă؂Ă:¤&,–Ý:,–Ý:,–Ý: (ƒĂ(ƒĂ<ƒĂ<ƒĂ y2Ŕŕx2Ŕ’řÇTƒĂTƒĂdƒĂdƒĂdƒĂlƒĂlƒĂtƒĂtƒĂ`y2ŔŔ‚Ă :Á{:͋~:<çu,–Ý:,–Ý:,–Ý:&,<çuP„ĂP„ĂX„ĂX„Ă`„Ă`„Ăh„Ăh„Äßřǐ„Є؄؄Ă „Ă „è„è„Ă°„Ă°„ø„ø„Ăďu¤,–Ý:,–Ý:,–Ý: …Ă…Ă…Ă…Ă y2Ŕŕx2Ŕ’řÇ4…Ă4…ĂD…ĂD…ĂD…ĂL…ĂL…ĂT…ĂT…Ă`y2Ŕ „Ă ďuÁ{ďuËęu;çu,–Ý:,–Ý:,–Ý:,;çu0†Ă0†Ă8†Ă8†Ă@†Ă@†ĂH†ĂH†ÄßřÇp†Ăp†Ăx†Ăx†À†À†ȆȆІІ؆؆Ăěu¤#,–Ý:,–Ý:,–Ý: č†Ăč†Ăü†Ăü†Ă y2Ŕŕx2Ŕ’řLJÇĂ$‡Ă$‡Ă$‡Ă,‡Ă,‡Ă4‡Ă4‡Ă`y2Ŕ€†Ă ěuÁ{ěuś‹ęu;çu,–Ý:,–Ý:,–Ý:#,;çuˆĂˆĂˆĂˆĂ ˆĂ ˆĂ(ˆĂ(ˆÄßřÇPˆĂPˆĂXˆĂXˆĂ`ˆĂ`ˆĂhˆĂhˆĂpˆĂpˆĂxˆĂxˆĂE˛ ¤,–Ý:,–Ý:,–Ý: ȈĂȈĂ܈Ă܈Ă y2Ŕŕx2Ŕ’řÇôˆĂôˆĂ‰Ă‰Ă‰Ă ‰Ă ‰Ă‰Ă‰Ă`y2Ŕ`ˆĂ E˛ Á{E˛ ź‹A˛ 6çu,–Ý:,–Ý:,–Ý:,6çuđ‰Ăđ‰Ăř‰Ăř‰ÊÊĂŠĂŠÄßřÇ0ŠĂ0ŠĂ8ŠĂ8ŠĂ@ŠĂ@ŠĂHŠĂHŠĂPŠĂPŠĂXŠĂXŠĂG˛ ¤(,–Ý:,–Ý:,–Ý: ¨ŠèŠĂźŠĂźŠĂ y2Ŕŕx2Ŕ’řÇԊĂԊĂäŠĂäŠĂäŠĂěŠĂěŠĂôŠĂôŠĂ`y2Ŕ@ŠĂ G˛ Á{G˛ Š‹A˛ 6çu,–Ý:,–Ý:,–Ý:(,6çuЋĂЋĂ؋Ă؋Ăŕ‹Ăŕ‹Ăč‹Ăč‹ÄßřÇŒĂŒĂŒĂŒĂ ŒĂ ŒĂ(ŒĂ(ŒĂ0ŒĂ0ŒĂ8ŒĂ8ŒĂD˛ ¤'–Ý:'–Ý:'–Ý: ˆŒȌĂœŒ܌Ă y2Ŕŕx2Ŕ’řÇ´ŒĂ´ŒĂČĂČĂČĂ̌Ă̌ĂԌĂԌĂ`y2Ŕ ŒĂ D˛ Á{D˛ ÊA˛ 6çu'–Ý:'–Ý:'–Ý:,6çu°Ă°øøĂŔĂŔĂȍĂȍÄßřÇđĂđĂřĂřÎÎĂŽĂŽĂŽĂŽĂŽĂŽĂ-ő¤ƒ +6œü96œü9'–Ý: hŽĂhŽĂ|ŽĂ|ŽĂ y2Ŕŕx2Ŕ’řÇ”ŽԎäŽäŽäŽĂŹŽĂŹŽĂ´ŽĂ´ŽĂ`y2ŔŽĂ -őÁ{-ő.Šő(çu'–Ý:6œü96œü9ƒ +,(çuЏ؏؏Ă Ă èèĂBOOT_FILE=/boot/vmlinux-2.4.3-ram1UUUUwZ. ž&..w[Makefile(w\README8ž/srcD6testČŔóĆČŔóĆÜŔóĆÜŔóĆ y2Ŕŕx2Ŕ’řÇôŔóĆôŔóĆÁóĆÁóĆÁóĆ ÁóĆ ÁóĆÁóĆÁóĆ`y2Ŕ`ŔóĆ ŠžÁ{ŠžS‰žáçu4–Ý:4–Ý:4–Ý:&,áçuđÁóĆđÁóĆřÁóĆřÁóĆÂóĆÂóĆÂóĆÂóĆalgorithm.txt@ÂóĆ@ÂóĆHÂóĆHÂóĆPÂóĆPÂóĆXÂóĆXÂóĆÂ~¤"ëŤg:ëŤg:5–Ý: ¨ÂóƨÂóĆźÂóĆźÂóĆ y2Ŕŕx2Ŕ’řÇÔÂóĆÔÂóĆäÂóĆäÂóĆäÂóĆěÂóĆěÂóĆôÂóĆôÂóĆ`y2Ŕ@ÂóĆ Â~Á{Â~Žš~ŕçu5–Ý:ëŤg:ëŤg:",ŕçuĐĂóĆĐĂóĆŘĂóĆŘĂóĆŕĂóĆŕĂóĆčĂóĆčĂóĆ0D— ÄóĆ ÄóĆ(ÄóĆ(ÄóĆ0ÄóĆ0ÄóĆ8ÄóĆ8ÄóĆÁ~¤ëŤg:ëŤg:5–Ý: ˆÄóƈÄóĆœÄóƜÄóĆ y2Ŕŕx2Ŕ’řÇ´ÄóĆ´ÄóĆÄÄóĆÄÄóĆÄÄóĆĚÄóĆĚÄóĆÔÄóĆÔÄóĆ`y2Ŕ ÄóĆ Á~Á{Á~ţš~ŕçu5–Ý:ëŤg:ëŤg:,ŕçu°ĹóĆ°ĹóƸĹóƸĹóĆŔĹóĆŔĹóĆČĹóĆČĹóĆzconf.h<ĆóĆĆóĆĆóĆĆóĆĆóĆĆóĆĆóĆĆóĆŔ~¤×ëŤg:ëŤg:4–Ý: hĆóĆhĆóĆ|ĆóĆ|ĆóĆ y2Ŕŕx2Ŕ’řÇ”ĆóƔĆóƤĆóƤĆóƤĆóĆŹĆóĆŹĆóĆ´ĆóĆ´ĆóĆ`y2ŔĆóĆ Ŕ~Á{Ŕ~÷š~Ýçu4–Ý:ëŤg:ëŤg:×,ÝçuÇóƐÇóƘÇóƘÇóĆ ÇóĆ ÇóƨÇóƨÇóĆŕÇóĆŕÇóĆčÇóĆčÇóĆđÇóĆđÇóĆřÇóĆřÇóĆż~¤ÚëŤg:ëŤg:4–Ý: HČóĆHČóĆ\ČóĆ\ČóĆ y2Ŕŕx2Ŕ’řÇtČóĆtČóƄČóƄČóƄČóƌČóƌČóƔČóƔČóĆ`y2ŔŕÇóĆ ż~Á{ż~đš~Üçu4–Ý:ëŤg:ëŤg:Ú,ÜçupÉóĆpÉóĆxÉóĆxÉóƀÉóƀÉóƈÉóƈÉóĆŔÉóĆŔÉóĆČÉóĆČÉóĆĐÉóĆĐÉóĆŘÉóĆŘÉóĆž~¤ÜëŤg:ëŤg:4–Ý: (ĘóĆ(ĘóĆ<ĘóĆ<ĘóĆ y2Ŕŕx2Ŕ’řÇTĘóĆTĘóĆdĘóĆdĘóĆdĘóĆlĘóĆlĘóĆtĘóĆtĘóĆ`y2ŔŔÉóĆ ž~Á{ž~鍚~Üçu4–Ý:ëŤg:ëŤg:Ü,ÜçuPËóĆPËóĆXËóĆXËóĆ`ËóĆ`ËóĆhËóĆhËóĆ ËóĆ ËóƨËóƨËóĆ°ËóĆ°ËóƸËóƸËóĆť~¤ÝëŤg:ëŤg:4–Ý: ĚóĆĚóĆĚóĆĚóĆ y2Ŕŕx2Ŕ’řÇ4ĚóĆ4ĚóĆDĚóĆDĚóĆDĚóĆLĚóĆLĚóĆTĚóĆTĚóĆ`y2Ŕ ËóĆ ť~Á{ť~ԍš~Üçu4–Ý:ëŤg:ëŤg:Ý,Üçu0ÍóĆ0ÍóĆ8ÍóĆ8ÍóĆ@ÍóĆ@ÍóĆHÍóĆHÍóƀÍóƀÍóƈÍóƈÍóƐÍóƐÍóƘÍóƘÍóĆş~¤ŰëŤg:ëŤg:4–Ý: čÍóĆčÍóĆüÍóĆüÍóĆ y2Ŕŕx2Ŕ’řÇÎóĆÎóĆ$ÎóĆ$ÎóĆ$ÎóĆ,ÎóĆ,ÎóĆ4ÎóĆ4ÎóĆ`y2Ŕ€ÍóĆ ş~Á{ş~͍š~Üçu4–Ý:ëŤg:ëŤg:Ű,ÜçuĎóĆĎóĆĎóĆĎóĆ ĎóĆ ĎóĆ(ĎóĆ(ĎóĆ6. wZ..6Makefile(6cds.lib86hdl.varH6test.auX6 test.väđĺĆäđĺĆäđĺĆěđĺĆěđĺĆôđĺĆôđĺĆ`y2Ŕ@đĺĆ 7šÁ{7š +'šôçu7–Ý:O˜9O˜9Č ,ôçuĐńĺĆĐńĺĆŘńĺĆŘńĺĆŕńĺĆŕńĺĆčńĺĆčńĺĆ ňĺĆ ňĺĆ(ňĺĆ(ňĺĆ0ňĺĆ0ňĺĆ8ňĺĆ8ňĺĆ6š¤˙ +O˜9O˜97–Ý: ˆňĺƈňĺĆœňĺƜňĺĆ y2Ŕŕx2Ŕ’řÇ´ňĺĆ´ňĺĆÄňĺĆÄňĺĆÄňĺĆĚňĺĆĚňĺĆÔňĺĆÔňĺĆ`y2Ŕ ňĺĆ 6šÁ{6š'šôçu7–Ý:O˜9O˜9˙ +,ôçu°óĺĆ°óĺƸóĺƸóĺĆŔóĺĆŔóĺĆČóĺĆČóĺĆôĺĆôĺĆôĺĆôĺĆôĺĆôĺĆôĺĆôĺĆ5š¤ŒO˜9O˜97–Ý: hôĺĆhôĺĆ|ôĺĆ|ôĺĆ y2Ŕŕx2Ŕ’řÇ”ôĺƔôĺƤôĺƤôĺƤôĺĆŹôĺĆŹôĺĆ´ôĺĆ´ôĺĆ`y2ŔôĺĆ 5šÁ{5šüŽ'šôçu7–Ý:O˜9O˜9Œ,ôçuőĺƐőĺƘőĺƘőĺĆ őĺĆ őĺƨőĺƨőĺĆŕőĺĆŕőĺĆčőĺĆčőĺĆđőĺĆđőĺĆřőĺĆřőĺĆ4š¤%O˜9O˜97–Ý: HöĺĆHöĺĆ\öĺĆ\öĺĆ y2Ŕŕx2Ŕ’řÇtöĺĆtöĺƄöĺƄöĺƄöĺƌöĺƌöĺƔöĺƔöĺĆ`y2ŔŕőĺĆ 4šÁ{4šôŽ'šôçu7–Ý:O˜9O˜9%,ôçup÷ĺĆp÷ĺĆx÷ĺĆx÷ĺƀ÷ĺƀ÷ĺƈ÷ĺƈ÷ĺĆŔ÷ĺĆŔ÷ĺĆČ÷ĺĆČ÷ĺĆĐ÷ĺĆĐ÷ĺĆŘ÷ĺĆŘ÷ĺĆ3š¤ăO˜9O˜97–Ý: (řĺĆ(řĺĆ<řĺĆ<řĺĆ y2Ŕŕx2Ŕ’řÇTřĺĆTřĺĆdřĺĆdřĺĆdřĺĆlřĺĆlřĺĆtřĺĆtřĺĆ`y2ŔŔ÷ĺĆ 3šÁ{3šęŽ'šôçu7–Ý:O˜9O˜9ă,ôçuPůĺĆPůĺĆXůĺĆXůĺĆ`ůĺĆ`ůĺĆhůĺĆhůĺĆ ůĺĆ ůĺƨůĺƨůĺĆ°ůĺĆ°ůĺƸůĺƸůĺĆ2š¤=ír:ír:6–Ý: úĺĆúĺĆúĺĆúĺĆ y2Ŕŕx2Ŕ’řÇ4úĺĆ4úĺĆDúĺĆDúĺĆDúĺĆLúĺĆLúĺĆTúĺĆTúĺĆ`y2Ŕ ůĺĆ 2šÁ{2šăŽ'šôçu6–Ý:ír:ír:=,ôçu0űĺĆ0űĺĆ8űĺĆ8űĺĆ@űĺĆ@űĺĆHűĺĆHűĺƀűĺƀűĺƈűĺƈűĺƐűĺƐűĺƘűĺƘűĺĆ1š¤tO˜9O˜96–Ý: čűĺĆčűĺĆüűĺĆüűĺĆ y2Ŕŕx2Ŕ’řÇüĺĆüĺĆ$üĺĆ$üĺĆ$üĺĆ,üĺĆ,üĺĆ4üĺĆ4üĺĆ`y2Ŕ€űĺĆ 1šÁ{1š܎'šôçu6–Ý:O˜9O˜9t,ôçuýĺĆýĺĆýĺĆýĺĆ ýĺĆ ýĺĆ(ýĺĆ(ýĺĆ`ýĺĆ`ýĺĆhýĺĆhýĺĆpýĺĆpýĺĆxýĺĆxýĺĆ0š¤ŁO˜9O˜96–Ý: ČýĺĆČýĺĆÜýĺĆÜýĺĆ y2Ŕŕx2Ŕ’řÇôýĺĆôýĺĆţĺĆţĺĆţĺĆ ţĺĆ ţĺĆţĺĆţĺĆ`y2Ŕ`ýĺĆ 0šÁ{0šՎ'šôçu6–Ý:O˜9O˜9Ł,ôçuđţĺĆđţĺĆřţĺĆřţĺĆ˙ĺĆ˙ĺĆ˙ĺĆ˙ĺĆÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖőť. v{..őźMakefile(ő˝ show_memwd.c<őž +vpi_user.c¨ OĨ OÄ° OÄ° Oĸ Oĸ OÄŃź ¤&:–Ý::–Ý::–Ý: ĄOÄĄOÄĄOÄĄOÄ y2Ŕŕx2Ŕ’řÇ4ĄOÄ4ĄOÄDĄOÄDĄOÄDĄOÄLĄOÄLĄOÄTĄOÄTĄOÄ`y2Ŕ  OÄ Ńź Á{Ńź ŽĐź ču:–Ý::–Ý::–Ý:&,ču0˘OÄ0˘OÄ8˘OÄ8˘OÄ@˘OÄ@˘OÄH˘OÄH˘OĀ˘OĀ˘OĈ˘OĈ˘OТOТOʢOʢOĸř¤2gB:gB::–Ý: č˘OÄč˘OÄü˘OÄü˘OÄ y2Ŕŕx2Ŕ’řÇŁOÄŁOÄ$ŁOÄ$ŁOÄ$ŁOÄ,ŁOÄ,ŁOÄ4ŁOÄ4ŁOÄ`y2Ŕ€˘OÄ ¸řÁ{¸ř폯řču:–Ý:gB:gB:2,ču¤OĤOĤOĤOÄ ¤OÄ ¤OÄ(¤OÄ(¤OÄ`¤OÄ`¤OÄh¤OÄh¤OÄp¤OÄp¤OÄx¤OÄx¤Oġř¤Šk:k::–Ý: ȤOÄȤOÄܤOÄܤOÄ y2Ŕŕx2Ŕ’řÇô¤OÄô¤OÄĽOÄĽOÄĽOÄ ĽOÄ ĽOÄĽOÄĽOÄ`y2Ŕ`¤OÄ ˇřÁ{ˇř揯řču:–Ý:k:k:Š,čuđĽOÄđĽOÄřĽOÄřĽOÄŚOÄŚOÄŚOÄŚOÄ@ŚOÄ@ŚOÄHŚOÄHŚOÄPŚOÄPŚOÄXŚOÄXŚOÄśř¤O˜9O˜9:–Ý: ¨ŚOĨŚOÄźŚOÄźŚOÄ y2Ŕŕx2Ŕ’řÇÔŚOÄÔŚOÄäŚOÄäŚOÄäŚOÄěŚOÄěŚOÄôŚOÄôŚOÄ`y2Ŕ@ŚOÄ śřÁ{śřߏŻřču:–Ý:O˜9O˜9,čuЧOÄЧOÄاOÄاOÄŕ§OÄŕ§OÄč§OÄč§OÄ ¨OÄ ¨OÄ(¨OÄ(¨OÄ0¨OÄ0¨OÄ8¨OÄ8¨OÄ´ř¤Vť9ť9:–Ý: ˆ¨OĈ¨OÄœ¨OĜ¨OÄ y2Ŕŕx2Ŕ’řÇ´¨OÄ´¨OÄĨOÄĨOÄĨOĄ̈OĄ̈OÄÔ¨OÄÔ¨OÄ`y2Ŕ ¨OÄ ´řÁ{´řяŻřču:–Ý:ť9ť9V,ču°ŠOÄ°ŠOĸŠOĸŠOÄŔŠOÄŔŠOÄČŠOÄČŠOÄŞOÄŞOÄŞOÄŞOÄŞOÄŞOÄŞOÄŞOÄłř¤ŕ}čÜ:}čÜ::–Ý: hŞOÄhŞOÄ|ŞOÄ|ŞOÄ y2Ŕŕx2Ŕ’řÇ”ŞOĔŞOĤŞOĤŞOĤŞOÄŹŞOÄŹŞOÄ´ŞOÄ´ŞOÄ`y2ŔŞOÄ łřÁ{łřʏŻřču:–Ý:}čÜ:}čÜ:ŕ,čuŤOĐŤOĘŤOĘŤOÄ ŤOÄ ŤOĨŤOĨŤOÄŕŤOÄŕŤOÄčŤOÄčŤOÄđŤOÄđŤOÄřŤOÄřŤOħ=¤řŽţ9Žţ9:–Ý: HŹOÄHŹOÄ\ŹOÄ\ŹOÄ y2Ŕŕx2Ŕ’řÇtŹOÄtŹOĄŹOĄŹOĄŹOČŹOČŹOĔŹOĔŹOÄ`y2ŔŕŤOÄ §=Á{§=}=üçu:–Ý:Žţ9Žţ9ř,üçup­OÄp­OÄx­OÄx­OĀ­OĀ­OĈ­OĈ­OÄŔ­OÄŔ­OÄČ­OÄČ­OÄĐ­OÄĐ­OÄŘ­OÄŘ­OÄŚ=¤+Žţ9Žţ9:–Ý: (ŽOÄ(ŽOÄ<ŽOÄ<ŽOÄ y2Ŕŕx2Ŕ’řÇTŽOÄTŽOÄdŽOÄdŽOÄdŽOÄlŽOÄlŽOÄtŽOÄtŽOÄ`y2ŔŔ­OÄ Ś=Á{Ś=–}=üçu:–Ý:Žţ9Žţ9+,üçuPŻOÄPŻOÄXŻOÄXŻOÄ`ŻOÄ`ŻOÄhŻOÄhŻOÄ@. ž&..@Makefile(@README8"ň;srcDsűtest€ÚƈiËĹŔ€HĆŔ€HĆȀHĆȀHĆЀHĆЀHĆ؀HĆ؀HĆNľ¤ź O˜9O˜9<–Ý: (HĆ(HĆ<HĆ<HĆ y2Ŕŕx2Ŕ’řÇTHĆTHĆdHĆdHĆdHĆlHĆlHĆtHĆtHĆ`y2ŔŔ€HĆ NľÁ{Nľ*‘;ľču<–Ý:O˜9O˜9ź ,čuP‚HĆP‚HĆX‚HĆX‚HĆ`‚HĆ`‚HĆh‚HĆh‚HƄßřǐ‚HƐ‚HƘ‚HƘ‚HĆ ‚HĆ ‚Hƨ‚Hƨ‚HĆ°‚HĆ°‚HƸ‚HƸ‚HĆMľ¤ˆ O˜9O˜9<–Ý: ƒHĆƒHĆƒHĆƒHĆ y2Ŕŕx2Ŕ’řÇ4ƒHĆ4ƒHĆDƒHĆDƒHĆDƒHĆLƒHĆLƒHĆTƒHĆTƒHĆ`y2Ŕ ‚HĆ MľÁ{Mľ#‘;ľču<–Ý:O˜9O˜9ˆ ,ču0„HĆ0„HĆ8„HĆ8„HĆ@„HĆ@„HĆH„HĆH„HƄßřÇp„HĆp„HĆx„HĆx„Hƀ„Hƀ„Hƈ„Hƈ„HƐ„HƐ„HƘ„HƘ„HĆLľ¤,Čl@:Čl@:<–Ý: č„HĆč„HĆü„HĆü„HĆ y2Ŕŕx2Ŕ’řÇ…HĆ…HĆ$…HĆ$…HĆ$…HĆ,…HĆ,…HĆ4…HĆ4…HĆ`y2Ŕ€„HĆ LľÁ{Lľ‘;ľču<–Ý:Čl@:Čl@:,,ču†HƆHƆHƆHĆ †HĆ †HĆ(†HĆ(†HƄßřÇP†HĆP†HĆX†HĆX†HĆ`†HĆ`†HĆh†HĆh†HĆp†HĆp†HĆx†HĆx†HĆKľ¤… +Ŕ: +Ŕ:<–Ý: ȆHĆȆHĆ܆HĆ܆HĆ y2Ŕŕx2Ŕ’řÇô†HĆô†HƇHƇHƇHĆ ‡HĆ ‡HƇHƇHĆ`y2Ŕ`†HĆ KľÁ{Kľ‘;ľču<–Ý: +Ŕ: +Ŕ:…,čuđ‡HĆđ‡HĆř‡HĆř‡HƈHƈHĆˆHĆˆHƄßřÇ0ˆHĆ0ˆHĆ8ˆHĆ8ˆHĆ@ˆHĆ@ˆHĆHˆHĆHˆHĆPˆHĆPˆHĆXˆHĆXˆHĆJľ¤ šf: šf:;–Ý: ¨ˆHƨˆHĆźˆHĆźˆHĆ y2Ŕŕx2Ŕ’řÇԈHĆԈHĆäˆHĆäˆHĆäˆHĆěˆHĆěˆHĆôˆHĆôˆHĆ`y2Ŕ@ˆHĆ JľÁ{Jľ‘;ľču;–Ý: šf: šf:,čuЉHĆЉHĆ؉HĆ؉HĆŕ‰HĆŕ‰HĆč‰HĆč‰HƄßřÇŠHĆŠHĆŠHĆŠHĆ ŠHĆ ŠHĆ(ŠHĆ(ŠHĆ0ŠHĆ0ŠHĆ8ŠHĆ8ŠHĆIľ¤œO˜9O˜9;–Ý: ˆŠHƈŠHĆœŠHƜŠHĆ y2Ŕŕx2Ŕ’řÇ´ŠHĆ´ŠHĆĊHĆĊHĆĊHĆ̊HĆ̊HĆԊHĆԊHĆ`y2Ŕ ŠHĆ IľÁ{Iľ‘;ľču;–Ý:O˜9O˜9œ,ču°‹HĆ°‹HƸ‹HƸ‹HĆŔ‹HĆŔ‹HĆȋHĆȋHƄßřÇđ‹HĆđ‹HĆř‹HĆř‹HƌHƌHĆŒHĆŒHĆŒHĆŒHĆŒHĆŒHĆHľ¤ˆńŚo:ńŚo:;–Ý: hŒHĆhŒHĆ|ŒHĆ|ŒHĆ y2Ŕŕx2Ŕ’řÇ”ŒHƔŒHƤŒHƤŒHƤŒHĆŹŒHĆŹŒHĆ´ŒHĆ´ŒHĆ`y2ŔŒHĆ HľÁ{Hľ‘;ľču;–Ý:ńŚo:ńŚo:ˆ,čuHƐHƘHƘHĆ HĆ HƨHƨHƄßřÇЍHĆЍHĆ؍HĆ؍HĆŕHĆŕHĆčHĆčHĆđHĆđHĆřHĆřHĆGľ¤ šf: šf:;–Ý: HŽHĆHŽHĆ\ŽHĆ\ŽHĆ y2Ŕŕx2Ŕ’řÇtŽHĆtŽHƄŽHƄŽHƄŽHƌŽHƌŽHƔŽHƔŽHĆ`y2ŔŕHĆ GľÁ{Gľů;ľču;–Ý: šf: šf:,čupHĆpHĆxHĆxHƀHƀHƈHƈHƃ€˛€ę€'€x€É€ô€sű. @..süMakefile(sýcds.lib8sţhdl.varHs˙test.auXttest.vht test_out.au@°hÄ _ľÁ{_ľĽ‘;ľču=–Ý:ą´Ś:ą´Ś:t@,čuĐąhÄĐąhÄŘąhÄŘąhÄŕąhÄŕąhÄčąhÄčąhÄ ˛hÄ ˛hÄ(˛hÄ(˛hÄ0˛hÄ0˛hÄ8˛hÄ8˛hÄ^ľ¤t@ą´Ś:ą´Ś:=–Ý: (ˆ˛hĈ˛hÄœ˛hĜ˛hÄ y2Ŕŕx2Ŕ’řÇ´˛hÄ´˛hÄIJhÄIJhÄIJhÄ̲hÄ̲hÄÔ˛hÄÔ˛hÄ`y2Ŕ ˛hÄ ^ľÁ{^ľž‘;ľču=–Ý:ą´Ś:ą´Ś:t@,ču°łhÄ°łhĸłhĸłhÄŔłhÄŔłhÄČłhÄČłhÄ´hÄ´hÄ´hÄ´hÄ´hÄ´hÄ´hÄ´hÄ]ľ¤Ś !Xe:!Xe:=–Ý: h´hÄh´hÄ|´hÄ|´hÄ y2Ŕŕx2Ŕ’řÇ”´hĔ´hĤ´hĤ´hĤ´hÄŹ´hÄŹ´hÄ´´hÄ´´hÄ`y2Ŕ´hÄ ]ľÁ{]ľ—‘;ľču=–Ý:!Xe:!Xe:Ś ,čuľhĐľhĘľhĘľhÄ ľhÄ ľhĨľhĨľhÄŕľhÄŕľhÄčľhÄčľhÄđľhÄđľhÄřľhÄřľhÄ\ľ¤?}"Ý:}"Ý:=–Ý: HśhÄHśhÄ\śhÄ\śhÄ y2Ŕŕx2Ŕ’řÇtśhÄtśhĄśhĄśhĄśhČśhČśhĔśhĔśhÄ`y2ŔŕľhÄ \ľÁ{\ľ‘;ľču=–Ý:}"Ý:}"Ý:?,čupˇhÄpˇhÄxˇhÄxˇhĀˇhĀˇhĈˇhĈˇhÄŔˇhÄŔˇhÄȡhÄȡhÄСhÄСhÄءhÄءhÄ[ľ¤ą´Ś:ą´Ś:=–Ý: (¸hÄ(¸hÄ<¸hÄ<¸hÄ y2Ŕŕx2Ŕ’řÇT¸hÄT¸hÄd¸hÄd¸hÄd¸hÄl¸hÄl¸hÄt¸hÄt¸hÄ`y2ŔŔˇhÄ [ľÁ{[ľ‰‘;ľču=–Ý:ą´Ś:ą´Ś:,čuPšhÄPšhÄXšhÄXšhÄ`šhÄ`šhÄhšhÄhšhÄ šhÄ šhĨšhĨšhÄ°šhÄ°šhĸšhĸšhÄZľ¤€ą´Ś:ą´Ś:=–Ý: şhÄşhÄşhÄşhÄ y2Ŕŕx2Ŕ’řÇ4şhÄ4şhÄDşhÄDşhÄDşhÄLşhÄLşhÄTşhÄTşhÄ`y2Ŕ šhÄ ZľÁ{Zľ‚‘;ľču=–Ý:ą´Ś:ą´Ś:€,ču0ťhÄ0ťhÄ8ťhÄ8ťhÄ@ťhÄ@ťhÄHťhÄHťhĀťhĀťhĈťhĈťhĐťhĐťhĘťhĘťhÄYľ¤€ą´Ś:ą´Ś:=–Ý: čťhÄčťhÄüťhÄüťhÄ y2Ŕŕx2Ŕ’řÇźhÄźhÄ$źhÄ$źhÄ$źhÄ,źhÄ,źhÄ4źhÄ4źhÄ`y2Ŕ€ťhÄ YľÁ{Yľ{‘;ľču=–Ý:ą´Ś:ą´Ś:€,ču˝hÄ˝hÄ˝hÄ˝hÄ ˝hÄ ˝hÄ(˝hÄ(˝hÄ`˝hÄ`˝hÄh˝hÄh˝hÄp˝hÄp˝hÄx˝hÄx˝hÄWľ¤=;˜Ľ:;˜Ľ:=–Ý: Č˝hÄČ˝hÄÜ˝hÄÜ˝hÄ y2Ŕŕx2Ŕ’řÇô˝hÄô˝hÄžhÄžhÄžhÄ žhÄ žhÄžhÄžhÄ`y2Ŕ`˝hÄ WľÁ{Wľm‘;ľču=–Ý:;˜Ľ:;˜Ľ:=,čuđžhÄđžhÄřžhÄřžhÄżhÄżhÄżhÄżhÄc00.  ňű..1Makefile(2 load_memwd.c<3 show_memwd.cP4 +vpi_user.c.D–Ý:D–Ý:D–Ý: śĂśĂśĂśĂ y2Ŕŕx2Ŕ’řÇ4śĂ4śĂDśĂDśĂDśĂLśĂLśĂTśĂTśĂ`y2Ŕ śĂ ™žÁ{™žp’”žčuD–Ý:D–Ý:D–Ý:.,ču0śĂ0śĂ8śĂ8śĂ@śĂ@śĂHśĂHśĂŽ¸Ő:8%7€śĂ€śĂˆśĂˆśĂśĂśĂ˜śĂ˜śĂ–ž¤"D–Ý:D–Ý:D–Ý: čśĂčśĂüśĂüśĂ y2Ŕŕx2Ŕ’řǜÜĂ$śĂ$śĂ$śĂ,śĂ,śĂ4śĂ4śĂ`y2Ŕ€śĂ –žÁ{–ž^’”žčuD–Ý:D–Ý:D–Ý:",čuśĂśĂśĂśĂ śĂ śĂ(śĂ(śĂŽ¸Ő:8$7`śĂ`śĂhśĂhśĂpśĂpśĂxśĂxśĂ•ž¤&D–Ý:D–Ý:D–Ý: ČśĂČśĂÜśĂܜà y2Ŕŕx2Ŕ’řÇôśĂôśĂśĂśĂśĂ śĂ śĂśĂśĂ`y2Ŕ`śĂ •žÁ{•ž[’”žčuD–Ý:D–Ý:D–Ý:&,čuđśĂđśĂřśĂřśĂśĂśĂśĂśĂŽ¸Ő:@#7@śĂ@śĂHśĂHśĂPśĂPśĂXśĂXśĂU˛ ¤pW@Ä:W@Ä:D–Ý: ¨śĂ¨śĂźśĂźśĂ y2Ŕŕx2Ŕ’řÇÔśĂÔśĂäśĂäśĂäśĂěśĂěśĂôśĂôśĂ`y2Ŕ@śĂ U˛ Á{U˛ j’T˛ čuD–Ý:W@Ä:W@Ä:p,čuĐśĂĐśĂŘśĂŘśĂŕśĂŕśĂčśĂčśĂŽ¸Ő:"7 śĂ śĂ(śĂ(śĂ0śĂ0śĂ8śĂ8śĂ7¤&:–Ý::–Ý::–Ý: ˆśĂˆśĂœśĂœśĂ y2Ŕŕx2Ŕ’řÇ´śĂ´śĂÄśĂÄśĂÄśĂĚśĂĚśĂÔśĂÔśĂ`y2Ŕ śĂ 7Á{7¤œ7ču:–Ý::–Ý::–Ý:&,ču°śĂ°śĂ¸śĂ¸śĂŔśĂŔśĂČśĂȜθŐ:!7śĂśĂśĂśĂśĂśĂśĂśĂqľ¤ …Š:…Š:D–Ý: hśĂhśĂ|śĂ|śĂ y2Ŕŕx2Ŕ’řÇ”śĂ”śĂ¤śĂ¤śĂ¤śĂŹśĂŹśĂ´śĂ´śĂ`y2ŔśĂ qľÁ{qľ5’;ľčuD–Ý:…Š:…Š: ,čuśĂśĂ˜śĂ˜śĂ śĂ śĂ¨śĂ¨śĂŽ¸Ő:  7ŕśĂŕśĂčśĂčśĂđśĂđśĂřśĂřśĂpľ¤ŚO˜9O˜9D–Ý: HśĂHśĂ\śĂ\śĂ y2Ŕŕx2Ŕ’řÇtśĂtśĂ„śĂ„śĂ„śĂŒśĂŒśĂ”śĂ”śĂ`y2ŔŕśĂ pľÁ{pľ.’;ľčuD–Ý:O˜9O˜9Ś,čupśĂpśĂxśĂxśĂ€śĂ€śĂˆśĂˆśĂŽ¸Ő:7ŔśĂŔśĂČśĂČśĂĐśĂĐśĂŘśĂŘśĂoľ¤˜ňŚo:ňŚo:D–Ý: (śĂ(śĂ<śĂ<śĂ y2Ŕŕx2Ŕ’řÇTśĂTśĂdśĂdśĂdśĂlśĂlśĂtśĂtśĂ`y2ŔŔśĂ oľÁ{oľ'’;ľčuD–Ý:ňŚo:ňŚo:˜,čuPśĂPśĂXśĂXśĂ`śĂ`śĂhśĂhśĂlż LŠ UUUU÷UU1UUUU÷ +UUBASH_VERSIONUUUU÷UUBASHUUUUUUUUUUUw]. ž&..w^Makefile(w†src4 ňţtest@w_READMEŇôR;,ÝR;,ÝR; č´Áč´Áü´Áü´ÁŔy2Ŕ€y2Ŕ”řÇ´Á´Á$´Á$´Á$´Á,´Á,´Á4´Á4´Á`9Ŕ€´Á ¸q!˝¸q|W[txu,ÝR;,ÝR;ŇôR;¸ xu´Á´Á´Á´Á ´Á ´Á(´Á(´Á`bttyUSB7`´Á`´Áh´Áh´Áp´Áp´Áx´Áx´ÁÇríAţ˙ŇôR;%ÝR;%ÝR; Č´ÁČ´ÁÜ´ÁÜ´ÁŔy2Ŕ€y2Ŕ”řÇô´Áô´Á´Á´Á´Á ´Á ´Á´Á´Á`9Ŕ`´Á Çr!˝ÇrłěZrxu%ÝR;%ÝR;ŇôR;¸ xuđ´Áđ´Ář´Ář´Á´Á´Á´Á´Áddˆ@´Á@´ÁH´ÁH´ÁP´ÁP´ÁX´ÁX´Á5íAţ˙ŇôR;ÝR;ÝR; ¨´Á¨´Áź´Áź´ÁŔy2Ŕ€y2Ŕ”řÇÔ´ÁÔ´Áä´Áä´Áä´Áě´Áě´Áô´Áô´Á`9Ŕ@´Á 5!˝5NěZoxuÝR;ÝR;ŇôR;¸ xuĐ´ÁĐ´ÁŘ´ÁŘ´Áŕ´Áŕ´Áč´Áč´Á1ä¤9öˇŐ: ´Á ´Á(´Á(´Á0´Á0´Á8´Á8´Á35íAţ˙ŇôR; ÝR; ÝR; ˆ´Áˆ´Áœ´Áœ´ÁŔy2Ŕ€y2Ŕ”řÇ´´Á´´ÁÄ´ÁÄ´ÁÄ´ÁĚ´ÁĚ´ÁÔ´ÁÔ´Á`9Ŕ ´Á 35!˝35mŒZkxu ÝR; ÝR;ŇôR;¸ xu°´Á°´Á¸´Á¸´ÁŔ´ÁŔ´ÁČ´ÁČ´Á°! +i´Á´Á´Á´Á´Á´Á´Á´Á05íAţ˙ŇôR;ÝR;ÝR; h´Áh´Á|´Á|´ÁŔy2Ŕ€y2Ŕ”řÇ”´Á”´Á¤´Á¤´Á¤´ÁŹ´ÁŹ´Á´´Á´´Á`9Ŕ´Á 05!˝05ًZhxuÝR;ÝR;ŇôR;¸ xu ´Á ´Á˜ ´Á˜ ´Á  ´Á  ´Á¨ ´Á¨ ´Áŕ ´Áŕ ´Áč ´Áč ´Áđ ´Áđ ´Ář ´Ář ´ÁšríAţ˙ŇôR;(ÝR;(ÝR; H +´ÁH +´Á\ +´Á\ +´ÁŔy2Ŕ€y2Ŕ”řÇt +´Át +´Á„ +´Á„ +´Á„ +´ÁŒ +´ÁŒ +´Á” +´Á” +´Á`9Ŕŕ ´Á šr!˝šrۂZYxu(ÝR;(ÝR;ŇôR;¸ xup ´Áp ´Áx ´Áx ´Á€ ´Á€ ´Áˆ ´Áˆ ´Á°ŕ;`lŔ ´ÁŔ ´ÁČ ´ÁČ ´ÁĐ ´ÁĐ ´ÁŘ ´ÁŘ ´Á%5íAţ˙ŇôR;$ÝR;$ÝR; ( ´Á( ´Á< ´Á< ´ÁŔy2Ŕ€y2Ŕ”řÇT ´ÁT ´Ád ´Ád ´Ád ´Ál ´Ál ´Át ´Át ´Á`9ŔŔ ´Á %5!˝%5š‚ZVxu$ÝR;$ÝR;ŇôR;¸ xuP +´ÁP +´ÁX +´ÁX +´Á` +´Á` +´Áh +´Áh +´Á1ä¤91ä¤9  +´Á  +´Á¨ +´Á¨ +´Á° +´Á° +´Á¸ +´Á¸ +´Á"5íAţ˙ŇôR;ÝR;ÝR; ´Á´Á´Á´ÁŔy2Ŕ€y2Ŕ”řÇ4´Á4´ÁD´ÁD´ÁD´ÁL´ÁL´ÁT´ÁT´Á`9Ŕ  +´Á "5!˝"5L‚ZQxuÝR;ÝR;ŇôR;¸ xu0´Á0´Á8´Á8´Á@´Á@´ÁH´ÁH´ÁŰÓ°!K1ä¤91ä¤9öˇŐ:8(°ŕ;€ppˆ + ňţ. w].. ň˙Makefile( ócds.lib8 óhdl.varH ó ncelab.au\ óncsim.aul ó ncvlog.au€ ótest.v Ź:Á{Ź:™¤:%éui–Ý:ÓJ/7ÓJ/7] +,%éuĐáĆĐáĆŘáĆŘáĆŕáĆŕáĆčáĆčáĆÄ…öu‹UŘ1Ŕ…Ňtëv âĆ âĆ(âĆ(âĆ0âĆ0âĆ8âĆ8âĆŤ:¤é +ÓJ/7ÓJ/7i–Ý: ëZˆâƈâĆœâƜâĆ y2Ŕŕx2Ŕ’řÇ´âĆ´âĆÄâĆÄâĆÄâĆĚâĆĚâĆÔâĆÔâĆ`y2Ŕ âĆ Ť:Á{Ť: ™¤:%éui–Ý:ÓJ/7ÓJ/7é +,%éu°ăĆ°ăƸăƸăĆŔăĆŔăĆČăĆČăĆô[^_]Í´&ź'äĆäĆäĆäĆäĆäĆäĆäĆŞ:¤ß ÓJ/7ÓJ/7i–Ý: íZhäĆhäĆ|äĆ|äĆ y2Ŕŕx2Ŕ’řÇ”äƔäƤäƤäƤäĆŹäĆŹäĆ´äĆ´äĆ`y2ŔäĆ Ş:Á{Ş:™¤:%éui–Ý:ÓJ/7ÓJ/7ß ,%éuĺƐĺƘĺƘĺĆ ĺĆ ĺƨĺƨĺƄĎţ˙˙‹‡Đ…Ŕt ƒě W‹ŕĺĆŕĺĆčĺĆčĺĆđĺĆđĺĆřĺĆřĺĆŠ:¤žÓJ/7ÓJ/7i–Ý: îZHćĆHćĆ\ćĆ\ćĆ y2Ŕŕx2Ŕ’řÇtćĆtćƄćƄćƄćƌćƌćƔćƔćĆ`y2ŔŕĺĆ Š:Á{Š:ţ˜¤:%éui–Ý:ÓJ/7ÓJ/7ž,%éupçĆpçĆxçĆxçƀçƀçƈçƈçƔu.‹Ž0…ÉuƒěŔçĆŔçĆČçĆČçĆĐçĆĐçĆŘçĆŘçƝ˛¤h–Ý:h–Ý:h–Ý: ćZ(čĆ(čĆ<čĆ<čĆ y2Ŕŕx2Ŕ’řÇTčĆTčĆdčĆdčĆdčĆlčĆlčĆtčĆtčĆ`y2ŔŔçĆ ˛Á{˛ۘ›˛'éuh–Ý:h–Ý:h–Ý:,'éuPéĆPéĆXéĆXéĆ`éĆ`éĆhéĆhéĆO$1˙‰V9×}`‰Uđ‰Â‰E쐠éĆ éƨéƨéĆ°éĆ°éƸéƸéĆŻ:¤ÓJ/7ÓJ/7i–Ý: çZęĆęĆęĆęĆ y2Ŕŕx2Ŕ’řÇ4ęĆ4ęĆDęĆDęĆDęĆLęĆLęĆTęĆTęĆ`y2Ŕ éĆ Ż:Á{Ż:)™¤:%éui–Ý:ÓJ/7ÓJ/7,%éu0ëĆ0ëĆ8ëĆ8ëĆ@ëĆ@ëĆHëĆHëĆtP‹…Éu8ƒěR‹U‹Rč̀ëƀëƈëƈëƐëƐëƘëƘëĆ­:¤— +ÓJ/7ÓJ/7i–Ý: čZčëĆčëĆüëĆüëĆ y2Ŕŕx2Ŕ’řÇěĆěĆ$ěĆ$ěĆ$ěĆ,ěĆ,ěĆ4ěĆ4ěĆ`y2Ŕ€ëĆ ­:Á{­:™¤:%éui–Ý:ÓJ/7ÓJ/7— +,%éuíĆíĆíĆíĆ íĆ íĆ(íĆ(íƐ…}ôt‹‰ƒÂƒÁ`íĆ`íĆhíĆhíĆpíĆpíĆxíĆxíƸż¤˜<ˆ:<ˆ:˜‘Ý: ů*ČíĆČíĆÜíĆÜíĆ y2Ŕŕx2Ŕ’řÇôíĆôíĆîĆîĆîĆ îĆ îĆîĆîĆ`y2Ŕ`íĆ ¸żÁ{¸żŘ\žiŢu˜‘Ý:<ˆ:<ˆ:˜,iŢuđîĆđîĆřîĆřîĆďĆďĆďĆďƋG$…Ŕ„€ÇE̍EȋM ÇEЃě‰E”ÇEŘfÇE̡GWQ‰MČf‰E΍E¨P‰EfÇEĐfÇEŇÇEÔÇE¤ÇE č†ů˙˙E¤‹M‹U”‰$E PQRWč.ü˙˙ƒÄ …Ŕt1Ŕ鋆ЅŔt ƒě V‹˙ЃÄ‹†0‰E˜‹VlB ;Fpvƒě VčÚű˙‹VlƒÄ‰VdĆ‹Ež3. w`..ž4Makefile(ž5 load_memwd.c<ž6 show_memwd.cPž7 +vpi_user.c’řÇÔÜĆÔÜĆäÜĆäÜĆäÜĆěÜĆěÜĆôÜĆôÜĆ`y2Ŕ@ÜĆ Á{|Đú~Géu˜ Ý:˜ Ý:Ů Ý:TE,GéuĐÜĆĐÜĆŘÜĆŘÜĆŕÜĆŕÜĆčÜĆčÜĆ ÜĆ ÜĆ(ÜĆ(ÜĆ0ÜĆ0ÜĆ8ÜĆ8ÜƤ5× Ý:| Ý:| Ý: ťZˆÜƈÜĆœÜƜÜĆ y2Ŕŕx2Ŕ’řÇ´ÜĆ´ÜĆÄÜĆÄÜĆÄÜĆĚÜĆĚÜĆÔÜĆÔÜĆ`y2Ŕ ÜĆ Á{"Ŕú~Géu| Ý:| Ý:× Ý:5,Géu°ÜĆ°ÜƸÜƸÜĆŔÜĆŔÜĆČÜĆČÜĆĐ˙˙˙Đ˙˙˙Đ˙˙˙Đ˙˙˙Đ˙˙˙ÜĆÜĆÜĆÜĆÜĆÜĆÜĆÜƤŔŘŮ Ý:| Ý:| Ý: xźZhÜĆhÜĆ|ÜĆ|ÜĆ y2Ŕŕx2Ŕ’řÇ”ÜƔÜƤÜƤÜƤÜĆŹÜĆŹÜĆ´ÜĆ´ÜĆ`y2ŔÜĆ Á{ĺÂú~Géu| Ý:| Ý:Ů Ý:ŔŘ,GéuÜƐÜƘÜƘÜĆ ÜĆ ÜƨÜƨÜĆŕÜĆŕÜĆčÜĆčÜĆđÜĆđÜĆřÜĆřÜƤ>× Ý:x Ý:x Ý: ˝ZHÜĆHÜĆ\ÜĆ\ÜĆ y2Ŕŕx2Ŕ’řÇtÜĆtÜƄÜƄÜƄÜƌÜƌÜƔÜƔÜĆ`y2ŔŕÜĆ Á{ľťú~Géux Ý:x Ý:× Ý:>,GéupÜĆpÜĆxÜĆxÜƀÜƀÜƈÜƈÜĆĐ˙˙˙Đ˙˙˙Đ˙˙˙Đ˙˙˙Đ˙˙˙ŔÜĆŔÜĆČÜĆČÜĆĐÜĆĐÜĆŘÜĆŘÜƤ”’Ů Ý:x Ý:x Ý: XžZ(ÜĆ(ÜĆ<ÜĆ<ÜĆ y2Ŕŕx2Ŕ’řÇTÜĆTÜĆdÜĆdÜĆdÜĆlÜĆlÜĆtÜĆtÜĆ`y2ŔŔÜĆ Á{{žú~Géux Ý:x Ý:Ů Ý:”’,GéuP ÜĆP ÜĆX ÜĆX ÜĆ` ÜĆ` ÜĆh ÜĆh ÜĆ˙˙˙˙˙˙˙˙  ÜĆ  Üƨ Üƨ ÜĆ° ÜĆ° ÜƸ ÜƸ ÜĆĚż¤3<ˆ:<ˆ:˜‘Ý: î* +ÜĆ +ÜĆ +ÜĆ +ÜĆ y2Ŕŕx2Ŕ’řÇ4 +ÜĆ4 +ÜĆD +ÜĆD +ÜĆD +ÜĆL +ÜĆL +ÜĆT +ÜĆT +ÜĆ`y2Ŕ  ÜĆ ĚżÁ{Ěżd]žjŢu˜‘Ý:<ˆ:<ˆ:3,jŢu0 ÜĆ0 ÜĆ8 ÜĆ8 ÜĆ@ ÜĆ@ ÜĆH ÜĆH ÜĆ˙˙˙˙˙˙˙˙€ Üƀ Üƈ Üƈ ÜƐ ÜƐ ÜƘ ÜƘ ÜƤ2× Ý:o Ý:o Ý: żZč ÜĆč ÜĆü ÜĆü ÜĆ y2Ŕŕx2Ŕ’řÇ ÜĆ ÜĆ$ ÜĆ$ ÜĆ$ ÜĆ, ÜĆ, ÜĆ4 ÜĆ4 ÜĆ`y2Ŕ€ ÜĆ Á{Rľú~Géuo Ý:o Ý:× Ý:2,Géu +ÜĆ +ÜĆ +ÜĆ +ÜĆ +ÜĆ +ÜĆ( +ÜĆ( +ÜĆ` +ÜĆ` +ÜĆh +ÜĆh +ÜĆp +ÜĆp +ÜĆx +ÜĆx +ÜƤˆŮ Ý:o Ý:o Ý: ˜ŔZČ +ÜĆČ +ÜĆÜ +ÜĆÜ +ÜĆ y2Ŕŕx2Ŕ’řÇô +ÜĆô +ÜĆÜĆÜĆÜĆ ÜĆ ÜĆÜĆÜĆ`y2Ŕ` +ÜĆ Á{p¸ú~Géuo Ý:o Ý:Ů Ý:ˆ,GéuđÜĆđÜĆřÜĆřÜĆÜĆÜĆÜĆÜĆ wc. ž&..wdMakefile(weREADME8 ósrcD5testď<ˆ:<ˆ:˜‘Ý: ó*čĆĆčĆĆüĆĆüĆĆ y2Ŕŕx2Ŕ’řÇ‘ĆĆ‘ĆĆ$‘ĆĆ$‘ĆĆ$‘ĆĆ,‘ĆĆ,‘ĆĆ4‘ĆĆ4‘ĆĆ`y2Ŕ€ĆĆ ĹżÁ{Ĺż3]žjŢu˜‘Ý:<ˆ:<ˆ:ď,jŢu’ĆĆ’ĆĆ’ĆĆ’ĆĆ ’ĆĆ ’ĆĆ(’ĆĆ(’ĆĆčŇ÷˙‰ÁƒÄ…ÉtD‹ty`’ĆĆ`’ĆĆh’ĆĆh’ĆĆp’ĆĆp’ĆĆx’ĆĆx’ĆƜ€¤(8 Ý:3 Ý:3 Ý: ˆZȒĆĆȒĆĆܒĆĆܒĆĆ y2Ŕŕx2Ŕ’řÇô’ĆĆô’ĆĆ“ĆĆ“ĆĆ“ĆĆ “ĆĆ “ĆĆ“ĆĆ“ĆĆ`y2Ŕ`’ĆĆ œ€Á{œ€Äs{€Uéu3 Ý:3 Ý:8 Ý:(,Uéuđ“ĆĆđ“ĆĆř“ĆĆř“ĆƔĆƔĆĆ”ĆĆ”ĆƋu ‹}‹H‹@‰ň!ʍ Ћ@”ĆĆ@”ĆĆH”ĆĆH”ĆĆP”ĆĆP”ĆĆX”ĆĆX”ĆƝ€¤œ8 Ý:3 Ý:3 Ý: ‰Z¨”Ćƨ”ĆĆź”ĆĆź”ĆĆ y2Ŕŕx2Ŕ’řÇԔĆĆԔĆĆä”ĆĆä”ĆĆä”ĆĆě”ĆĆě”ĆĆô”ĆĆô”ĆĆ`y2Ŕ@”ĆĆ €Á{€ús{€Uéu3 Ý:3 Ý:8 Ý:œ,UéuЕĆĆЕĆĆؕĆĆؕĆĆŕ•ĆĆŕ•ĆĆč•ĆĆč•ĆĆ˙)lj=˜żd)ßŻĎ –ĆĆ –ĆĆ(–ĆĆ(–ĆĆ0–ĆĆ0–ĆĆ8–ĆĆ8–Ćƚ€¤*8 Ý:3 Ý:3 Ý: ŠZˆ–Ćƈ–ĆĆœ–ĆƜ–ĆĆ y2Ŕŕx2Ŕ’řÇ´–ĆĆ´–ĆĆĖĆĆĖĆĆĖĆĆ̖ĆĆ̖ĆĆԖĆĆԖĆĆ`y2Ŕ –ĆĆ š€Á{š€÷q{€Uéu3 Ý:3 Ý:8 Ý:*,Uéu°—ĆĆ°—ĆƸ—ĆƸ—ĆĆŔ—ĆĆŔ—ĆĆȗĆĆȗĆƍCŁ°ë‹EÇ@(˜ĆƘĆĆ˜ĆĆ˜ĆĆ˜ĆĆ˜ĆĆ˜ĆĆ˜Ćƛ€¤ř8 Ý:3 Ý:3 Ý: ‹Zh˜ĆĆh˜ĆĆ|˜ĆĆ|˜ĆĆ y2Ŕŕx2Ŕ’řÇ”˜ĆƔ˜ĆƤ˜ĆƤ˜ĆƤ˜ĆĆŹ˜ĆĆŹ˜ĆĆ´˜ĆĆ´˜ĆĆ`y2Ŕ˜ĆĆ ›€Á{›€1r{€Uéu3 Ý:3 Ý:8 Ý:ř,Uéu™ĆƐ™ĆƘ™ĆƘ™ĆĆ ™ĆĆ ™Ćƨ™Ćƨ™ĆƍC‰BĄty‰‰C ŕ™ĆĆŕ™ĆĆč™ĆĆč™ĆĆđ™ĆĆđ™ĆĆř™ĆĆř™ĆĆ €¤"8 Ý:4 Ý:4 Ý: ZHšĆĆHšĆĆ\šĆĆ\šĆĆ y2Ŕŕx2Ŕ’řÇtšĆĆtšĆƄšĆƄšĆƄšĆƌšĆƌšĆƔšĆƔšĆĆ`y2Ŕŕ™ĆĆ  €Á{ €Vw{€Véu4 Ý:4 Ý:8 Ý:",Véup›ĆĆp›ĆĆx›ĆĆx›Ćƀ›Ćƀ›Ćƈ›Ćƈ›ĆĆ ‹S,ƒě R˙ЃÄÇC,Ŕ›ĆĆŔ›ĆĆțĆĆțĆĆЛĆĆЛĆĆ؛ĆĆ؛ĆĆĄ€¤ÄB8 Ý:4 Ý:4 Ý: ( Z(œĆĆ(œĆĆ<œĆĆ<œĆĆ y2Ŕŕx2Ŕ’řÇTœĆĆTœĆĆdœĆĆdœĆĆdœĆĆlœĆĆlœĆĆtœĆĆtœĆĆ`y2ŔŔ›ĆĆ Ą€Á{Ą€œw{€Véu4 Ý:4 Ý:8 Ý:ÄB,VéuPĆĆPĆĆXĆĆXĆĆ`ĆĆ`ĆĆhĆĆhĆƍt&‹…Ŕuš‹„Fć˙ ĆĆ ĆƨĆƨĆĆ°ĆĆ°ĆƸĆƸĆƞ€¤,8 Ý:4 Ý:4 Ý:  +ZžĆĆžĆĆžĆĆžĆĆ y2Ŕŕx2Ŕ’řÇ4žĆĆ4žĆĆDžĆĆDžĆĆDžĆĆLžĆĆLžĆĆTžĆĆTžĆĆ`y2Ŕ ĆĆ ž€Á{ž€u{€Véu4 Ý:4 Ý:8 Ý:,,Véu0ŸĆĆ0ŸĆĆ8ŸĆĆ8ŸĆĆ@ŸĆĆ@ŸĆĆHŸĆĆHŸĆĆě]ÐU‰ĺWVSś8°ƒě ‹U‹BHƒř˙‰Bt‹‹Mś@‰9Úë‰ö‹}ƒě ‹UW‹’ ˙҃Ä9Řu}ś9°‹M‹AHƒř˙‰At‹ś@‰9Ú됍t&‹uƒě ‹UV‹’ ˙҃Ä9Řu=‹M‹AH5. wc..6Makefile(7cds.lib88hdl.varH9in1.datX:in2.dath;test.aux<test.vˆ= test_out.auœ> test_out2.au ŢvÁ{Ţv`Ĺ(žv•éuź¤Ý:ť¤Ý:ĽÝ: ,•éu02ËĆ02ËĆ82ËĆ82ËĆ@2ËĆ@2ËĆH2ËĆH2ËƅŰt!‹Mä‹uđIx‹E ‹P8€2Ëƀ2Ëƈ2Ëƈ2ËƐ2ËƐ2ËƘ2ËƘ2ËĆŘv¤/ł¤Ý:˘¤Ý:˘¤Ý:  Zč2ËĆč2ËĆü2ËĆü2ËĆ y2Ŕŕx2Ŕ’řÇ3ËĆ3ËĆ$3ËĆ$3ËĆ$3ËĆ,3ËĆ,3ËĆ43ËĆ43ËĆ`y2Ŕ€2ËĆ ŘvÁ{Řvý(žv”éu˘¤Ý:˘¤Ý:ł¤Ý:/,”éu4ËĆ4ËĆ4ËĆ4ËĆ 4ËĆ 4ËĆ(4ËĆ(4ËĆƒĂ;]´rۋE ‹P(‹E܋M`4ËĆ`4ËĆh4ËĆh4ËĆp4ËĆp4ËĆx4ËĆx4ËĆŮv¤§ˇ¤Ý:˘¤Ý:˘¤Ý: ` +ZČ4ËĆČ4ËĆÜ4ËĆÜ4ËĆ y2Ŕŕx2Ŕ’řÇô4ËĆô4ËĆ5ËĆ5ËĆ5ËĆ 5ËĆ 5ËĆ5ËĆ5ËĆ`y2Ŕ`4ËĆ ŮvÁ{Ův(žv”éu˘¤Ý:˘¤Ý:ˇ¤Ý:§,”éuđ5ËĆđ5ËĆř5ËĆř5ËĆ6ËĆ6ËĆ6ËĆ6ËĆƒÇfÇ@ ˙˙Ç@˙M@6ËĆ@6ËĆH6ËĆH6ËĆP6ËĆP6ËĆX6ËĆX6ËĆŐv¤ˆÂˇ¤Ý: ˘Ý: ˘Ý: pZ¨6Ëƨ6ËĆź6ËĆź6ËĆ y2Ŕŕx2Ŕ’řÇÔ6ËĆÔ6ËĆä6ËĆä6ËĆä6ËĆě6ËĆě6ËĆô6ËĆô6ËĆ`y2Ŕ@6ËĆ ŐvÁ{Őv$)#žv”éu ˘Ý: ˘Ý:ˇ¤Ý:ˆÂ,”éuĐ7ËĆĐ7ËĆŘ7ËĆŘ7ËĆŕ7ËĆŕ7ËĆč7ËĆč7ËĆ˙Óâ‰ńЉEܸÓŕp˙ 8ËĆ 8ËĆ(8ËĆ(8ËĆ08ËĆ08ËĆ88ËĆ88ËĆŇv¤A¤¤Ý:ߥÝ:ߥÝ: Zˆ8Ëƈ8ËĆœ8ËƜ8ËĆ y2Ŕŕx2Ŕ’řÇ´8ËĆ´8ËĆÄ8ËĆÄ8ËĆÄ8ËĆĚ8ËĆĚ8ËĆÔ8ËĆÔ8ËĆ`y2Ŕ 8ËĆ ŇvÁ{Ňv# #žv”éuߥÝ:ߥÝ:¤¤Ý:A,”éu°9ËĆ°9ËƸ9ËƸ9ËĆŔ9ËĆŔ9ËĆČ9ËĆČ9ËƋU‹E‰}čЋU ‰ú‰:ËĆ:ËĆ:ËĆ:ËĆ:ËĆ:ËĆ:ËĆ:ËĆÓv¤ě\ˇ¤Ý:ߥÝ:ߥÝ: 8Zh:ËĆh:ËĆ|:ËĆ|:ËĆ y2Ŕŕx2Ŕ’řÇ”:ËƔ:ËƤ:ËƤ:ËƤ:ËĆŹ:ËĆŹ:ËĆ´:ËĆ´:ËĆ`y2Ŕ:ËĆ ÓvÁ{Óvň$#žv”éuߥÝ:ߥÝ:ˇ¤Ý:ě\,”éu;ËƐ;ËƘ;ËƘ;ËĆ ;ËĆ ;Ëƨ;Ëƨ;ËĆu‹Eż‹P8‰Áŕ‰ŕ;ËĆŕ;ËĆč;ËĆč;ËĆđ;ËĆđ;ËĆř;ËĆř;ËĆĐv¤5¤¤Ý:ŮĄÝ:ŮĄÝ: ZH<ËĆH<ËĆ\<ËĆ\<ËĆ y2Ŕŕx2Ŕ’řÇt<ËĆt<ËƄ<ËƄ<ËƄ<Ëƌ<Ëƌ<ËƔ<ËƔ<ËĆ`y2Ŕŕ;ËĆ ĐvÁ{ĐvH#žv”éuŮĄÝ:ŮĄÝ:¤¤Ý:5,”éup=ËĆp=ËĆx=ËĆx=Ëƀ=Ëƀ=Ëƈ=Ëƈ=ËĆ‹E‹P8‰‹MԉL‚ƒĆŔ=ËĆŔ=ËĆČ=ËĆČ=ËĆĐ=ËĆĐ=ËĆŘ=ËĆŘ=ËĆĆż¤ <ˆ:<ˆ:˜‘Ý: ň*(>ËĆ(>ËĆ<>ËĆ<>ËĆ y2Ŕŕx2Ŕ’řÇT>ËĆT>ËĆd>ËĆd>ËĆd>ËĆl>ËĆl>ËĆt>ËĆt>ËĆ`y2ŔŔ=ËĆ ĆżÁ{Ćż:]žjŢu˜‘Ý:<ˆ:<ˆ: ,jŢuP?ËĆP?ËĆX?ËĆX?ËĆ`?ËĆ`?ËĆh?ËĆh?ËƅŰ„ÇEč‹EÇEԉEź÷Uź‹UźB!ƒ}‰UätV ‹M…Étéσ}„‚éŔ‹E‹‹A ‰E܉Eŕ‹Q U܋U‹A EÜ÷U܋A‰E̋Eŕwf. ú...wgMakefile(wh +var_args.c<wi +vpi_user.cr˘Ý:r˘Ý: ČđÓÁČđÓÁÜđÓÁÜđÓÁ y2Ŕŕx2Ŕ’řÇôđÓÁôđÓÁńÓÁńÓÁńÓÁ ńÓÁ ńÓÁńÓÁńÓÁ`y2Ŕ`đÓÁ ‰řÁ{‰řěî#3öěéur˘Ý:r˘Ý:ˇ¤Ý:0,ěéuđńÓÁđńÓÁřńÓÁřńÓÁňÓÁňÓÁňÓÁňÓÁbÄô˘Á Ŕ@ňÓÁ@ňÓÁHňÓÁHňÓÁPňÓÁPňÓÁXňÓÁXňÓÁ‰tíAůůEőR;|Ü:|Ü: ¨ňÓÁ¨ňÓÁźňÓÁźňÓÁŔy2Ŕ€y2Ŕ”řÇÔňÓÁÔňÓÁäňÓÁäňÓÁäňÓÁěňÓÁěňÓÁôňÓÁôňÓÁ`9Ŕ@ňÓÁ ‰t!˝‰tźPĽu|Ü:|Ü:EőR;¸ LĽuĐóÓÁĐóÓÁŘóÓÁŘóÓÁŕóÓÁŕóÓÁčóÓÁčóÓÁĹŔ´GÁ Ŕ ôÓÁ ôÓÁ(ôÓÁ(ôÓÁ0ôÓÁ0ôÓÁ8ôÓÁ8ôÓÁ‡ř¤Đˇ¤Ý:r˘Ý:r˘Ý: ˆôÓÁˆôÓÁœôÓÁœôÓÁ y2Ŕŕx2Ŕ’řÇ´ôÓÁ´ôÓÁÄôÓÁÄôÓÁÄôÓÁĚôÓÁĚôÓÁÔôÓÁÔôÓÁ`y2Ŕ ôÓÁ ‡řÁ{‡řmí#3öěéur˘Ý:r˘Ý:ˇ¤Ý:Đ,ěéu°őÓÁ°őÓÁ¸őÓÁ¸őÓÁŔőÓÁŔőÓÁČőÓÁČőÓÁpKŔŹ@Á ŔöÓÁöÓÁöÓÁöÓÁöÓÁöÓÁöÓÁöÓÁ†ř¤fĽ¤Ý:r˘Ý:r˘Ý: höÓÁhöÓÁ|öÓÁ|öÓÁ y2Ŕŕx2Ŕ’řÇ”öÓÁ”öÓÁ¤öÓÁ¤öÓÁ¤öÓÁŹöÓÁŹöÓÁ´öÓÁ´öÓÁ`y2ŔöÓÁ †řÁ{†řţě#3öěéur˘Ý:r˘Ý:Ľ¤Ý:f,ěéu÷ÓÁ÷ÓÁ˜÷ÓÁ˜÷ÓÁ ÷ÓÁ ÷ÓÁ¨÷ÓÁ¨÷ÓÁŕíĆsÁ Ŕŕ÷ÓÁŕ÷ÓÁč÷ÓÁč÷ÓÁđ÷ÓÁđ÷ÓÁř÷ÓÁř÷ÓÁł˛$˙Aţ˙ÓôR; T; T; HřÓÁHřÓÁ\řÓÁ\řÓÁŔy2Ŕ€y2Ŕ”řÇtřÓÁtřÓÁ„řÓÁ„řÓÁ„řÓÁŒřÓÁŒřÓÁ”řÓÁ”řÓÁ`9Ŕŕ÷ÓÁ ł˛$!˝ł˛$[Üxu T; T;ÓôR;¸ ÔxupůÓÁpůÓÁxůÓÁxůÓÁ€ůÓÁ€ůÓÁˆůÓÁˆůÓÁ°ŻÇźŞ Á ŔŔůÓÁŔůÓÁČůÓÁČůÓÁĐůÓÁĐůÓÁŘůÓÁŘůÓÁˆř¤NĽ¤Ý:r˘Ý:r˘Ý: (úÓÁ(úÓÁ<úÓÁ<úÓÁ y2Ŕŕx2Ŕ’řÇTúÓÁTúÓÁdúÓÁdúÓÁdúÓÁlúÓÁlúÓÁtúÓÁtúÓÁ`y2ŔŔůÓÁ ˆřÁ{ˆř}î#3öěéur˘Ý:r˘Ý:Ľ¤Ý:N,ěéuPűÓÁPűÓÁXűÓÁXűÓÁ`űÓÁ`űÓÁhűÓÁhűÓÁđÄĚ!Á Ŕ űÓÁ űÓÁ¨űÓÁ¨űÓÁ°űÓÁ°űÓÁ¸űÓÁ¸űÓÁ‹ř¤äˆˇ¤Ý:s˘Ý:s˘Ý: HüÓÁüÓÁüÓÁüÓÁ y2Ŕŕx2Ŕ’řÇ4üÓÁ4üÓÁDüÓÁDüÓÁDüÓÁLüÓÁLüÓÁTüÓÁTüÓÁ`y2Ŕ űÓÁ ‹řÁ{‹ř~đ#3öěéus˘Ý:s˘Ý:ˇ¤Ý:äˆ,ěéu0ýÓÁ0ýÓÁ8ýÓÁ8ýÓÁ@ýÓÁ@ýÓÁHýÓÁHýÓÁđbŒ$ +Á Ŕ€ýÓÁ€ýÓÁˆýÓÁˆýÓÁýÓÁýÓÁ˜ýÓÁ˜ýÓÁŠř¤6Ľ¤Ý:s˘Ý:s˘Ý: čýÓÁčýÓÁüýÓÁüýÓÁ y2Ŕŕx2Ŕ’řÇţÓÁţÓÁ$ţÓÁ$ţÓÁ$ţÓÁ,ţÓÁ,ţÓÁ4ţÓÁ4ţÓÁ`y2Ŕ€ýÓÁ ŠřÁ{Šřůď#3öěéus˘Ý:s˘Ý:Ľ¤Ý:6,ěéu˙ÓÁ˙ÓÁ˙ÓÁ˙ÓÁ ˙ÓÁ ˙ÓÁ(˙ÓÁ(˙ÓÁ€IĂpř +Á Ŕ-\l˙ÓÁl˙ÓÁŁ€˙ÓÁ`ŠÂčO Á Ŕ-řĚ˙ÓÁĚ˙ÓÁ..čô"Á`poŔ€€ ^Ŕ˙˙˙˙€ ^Ŕ€ ^Ŕh˘^Ŕ„ßřǐ ^Ŕ ^Ŕ˜ ^Ŕ˜ ^Ŕć,¤ŕĹ +7Ĺ +7ÖˇŐ:âč ^Ŕč ^Ŕü ^Ŕü ^Ŕp2ŔŔo2ŔőÇĄ^ŔĄ^Ŕ$Ą^Ŕ$Ą^Ŕ$Ą^Ŕ,Ą^Ŕ,Ą^Ŕ4Ą^Ŕ4Ą^Ŕ@p2Ŕ€ ^Ŕ âťďť;‚&M3131Œ`˘^Ŕ`˘^ŔH¤^Ŕ„ßřÇp˘^Ŕp˘^Ŕx˘^Ŕx˘^ŔlŻ¤JĹ +7Ĺ +7ÖˇŐ:ŕȢ^ŔȢ^Ŕܢ^Ŕܢ^Ŕp2ŔŔo2ŔőÇô˘^Ŕô˘^ŔŁ^ŔŁ^ŔŁ^Ŕ Ł^Ŕ Ł^ŔŁ^ŔŁ^Ŕ@p2Ŕ`˘^Ŕ ŕťďťI‚!C2DAC60453947.gif@¤^Ŕ@¤^Ŕ(Ś^Ŕ„ßřÇP¤^ŔP¤^ŔX¤^ŔX¤^ŔkŻ¤Ĺ +7Ĺ +7ÖˇŐ:߁¨¤^Ŕ¨¤^Ŕź¤^Ŕź¤^Ŕp2ŔŔo2ŔőÇÔ¤^ŔÔ¤^Ŕä¤^Ŕä¤^Ŕä¤^Ŕě¤^Ŕě¤^Ŕô¤^Ŕô¤^Ŕ@p2Ŕ@¤^Ŕ ßťďťH‚!Cź"őd Ś^Ŕ Ś^Ŕ¨^Ŕ„ßřÇ0Ś^Ŕ0Ś^Ŕ8Ś^Ŕ8Ś^ŔjŻ¤ˆ0Ĺ +7Ĺ +7ÖˇŐ: ށˆŚ^ŔˆŚ^ŔœŚ^ŔœŚ^Ŕp2ŔŔo2ŔőÇ´Ś^Ŕ´Ś^ŔÄŚ^ŔÄŚ^ŔÄŚ^ŔĚŚ^ŔĚŚ^ŔÔŚ^ŔÔŚ^Ŕ@p2Ŕ Ś^Ŕ ŢťďťD‚!E‚!F‚!G‚!Cj(j(j(j(j(¨^Ŕ¨^ŔčŠ^Ŕ„ßřǨ^Ŕ¨^Ŕ¨^Ŕ¨^ŔiŻ¤/ +Ĺ +7Ĺ +7ÖˇŐ:݁h¨^Ŕh¨^Ŕ|¨^Ŕ|¨^Ŕp2ŔŔo2ŔőÇ”¨^Ŕ”¨^Ŕ¤¨^Ŕ¤¨^Ŕ¤¨^ŔŹ¨^ŔŹ¨^Ŕ´¨^Ŕ´¨^Ŕ@p2Ŕ¨^Ŕ ÝťďťC‚!Cj(j(j(j(j(ŕŠ^ŔŕŠ^ŔČŤ^Ŕ„ßřÇđŠ^ŔđŠ^ŔřŠ^ŔřŠ^ŔhŻ¤ß?Ĺ +7Ĺ +7ÖˇŐ: ܁HŞ^ŔHŞ^Ŕ\Ş^Ŕ\Ş^Ŕp2ŔŔo2ŔőÇtŞ^ŔtŞ^Ŕ„Ş^Ŕ„Ş^Ŕ„Ş^ŔŒŞ^ŔŒŞ^Ŕ”Ş^Ŕ”Ş^Ŕ@p2ŔŕŠ^Ŕ Üťďť?‚!@‚!A‚!B‚!Cj(j(j(j(j(ŔŤ^ŔŔŤ^Ŕ¨­^Ŕ„ßřÇĐŤ^ŔĐŤ^ŔŘŤ^ŔŘŤ^ŔgŻ¤!Ĺ +7Ĺ +7ÖˇŐ:ہ(Ź^Ŕ(Ź^Ŕ<Ź^Ŕ<Ź^Ŕp2ŔŔo2ŔőÇTŹ^ŔTŹ^ŔdŹ^ŔdŹ^ŔdŹ^ŔlŹ^ŔlŹ^ŔtŹ^ŔtŹ^Ŕ@p2ŔŔŤ^Ŕ Űťďť>‚!Cj(j(j(j(j( ­^Ŕ ­^Ŕh€PŔ„ßřÇ°­^Ŕ°­^Ŕ¸­^Ŕ¸­^ŔfŻ¤ Ĺ +7Ĺ +7ÖˇŐ:ځŽ^ŔŽ^ŔŽ^ŔŽ^Ŕp2ŔŔo2ŔőÇ4Ž^Ŕ4Ž^ŔDŽ^ŔDŽ^ŔDŽ^ŔLŽ^ŔLŽ^ŔTŽ^ŔTŽ^Ŕ@p2Ŕ ­^Ŕ Úťďť=‚!Cj(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(j(ơ .î ..ǡ ChangelogȡÔhdparm-3.9.lsm= .î ..>CHANGES?COPYING@READMEA comments.docB gv-1.htmlC +gv-10.htmlD +gv-11.htmlE +gv-12.htmlF +gv-13.htmlG gv-2.htmlH gv-3.htmlI gv-4.htmlJ gv-5.htmlK gv-6.htmlL gv-7.htmlM gv-8.htmlN gv-9.htmlO gv-faq.htmlP +gv-faq.txtQgv.htmlRhkey-bindings.txt~ŕ .‘# ..ŕball.png€ŕ convert.pngŕ examples.jpg‚ŕhome.pngƒŕlogo.png„ŕ +magick.png…ŕmagick_small.png†ŕmail.png‡ŕright_triangle.pngˆŕ$right_triangle_option.png‰ŕ +screen.pngž8. ž&..ž9src$w“test0ž>Makefile@ž?READ.MEPž@dtran_program.doc<ˆ:<ˆ:˜‘Ý: 5Ń+ĆŃ+ĆŃ+ĆŃ+Ć y2Ŕŕx2Ŕ’řÇ4Ń+Ć4Ń+ĆDŃ+ĆDŃ+ĆDŃ+ĆLŃ+ĆLŃ+ĆTŃ+ĆTŃ+Ć`y2Ŕ Đ+Ć ć4Á{ć4¨bČ4Ţu˜‘Ý:<ˆ:<ˆ:J,Ţu0Ň+Ć0Ň+Ć8Ň+Ć8Ň+Ć@Ň+Ć@Ň+ĆHŇ+ĆHŇ+ƀŇ+ƀŇ+ƈŇ+ƈŇ+ƐŇ+ƐŇ+ƘŇ+ƘŇ+Ćç4¤J<ˆ:<ˆ:˜‘Ý: 4čŇ+ĆčŇ+ĆüŇ+ĆüŇ+Ć y2Ŕŕx2Ŕ’řÇÓ+ĆÓ+Ć$Ó+Ć$Ó+Ć$Ó+Ć,Ó+Ć,Ó+Ć4Ó+Ć4Ó+Ć`y2Ŕ€Ň+Ć ç4Á{ç4ŻbČ4Ţu˜‘Ý:<ˆ:<ˆ:J,ŢuÔ+ĆÔ+ĆÔ+ĆÔ+Ć Ô+Ć Ô+Ć(Ô+Ć(Ô+Ć`Ô+Ć`Ô+ĆhÔ+ĆhÔ+ĆpÔ+ĆpÔ+ĆxÔ+ĆxÔ+Ćä4¤I<ˆ:<ˆ:˜‘Ý: ŤČÔ+ĆČÔ+ĆÜÔ+ĆÜÔ+Ć y2Ŕŕx2Ŕ’řÇôÔ+ĆôÔ+ĆŐ+ĆŐ+ĆŐ+Ć Ő+Ć Ő+ĆŐ+ĆŐ+Ć`y2Ŕ`Ô+Ć ä4Á{ä4šbČ4€Ţu˜‘Ý:<ˆ:<ˆ:I,€ŢuđŐ+ĆđŐ+ĆřŐ+ĆřŐ+ĆÖ+ĆÖ+ĆÖ+ĆÖ+Ć@Ö+Ć@Ö+ĆHÖ+ĆHÖ+ĆPÖ+ĆPÖ+ĆXÖ+ĆXÖ+Ćĺ4¤I<ˆ:<ˆ:˜‘Ý: ިÖ+ƨÖ+ĆźÖ+ĆźÖ+Ć y2Ŕŕx2Ŕ’řÇÔÖ+ĆÔÖ+ĆäÖ+ĆäÖ+ĆäÖ+ĆěÖ+ĆěÖ+ĆôÖ+ĆôÖ+Ć`y2Ŕ@Ö+Ć ĺ4Á{ĺ4ĄbČ4Ţu˜‘Ý:<ˆ:<ˆ:I,ŢuĐ×+ĆĐ×+ĆŘ×+ĆŘ×+Ćŕ×+Ćŕ×+Ćč×+Ćč×+Ć Ř+Ć Ř+Ć(Ř+Ć(Ř+Ć0Ř+Ć0Ř+Ć8Ř+Ć8Ř+Ć~ů¤9˛¤Ý:¤Ý:¤Ý: ÁFˆŘ+ƈŘ+ĆœŘ+ƜŘ+Ć y2Ŕŕx2Ŕ’řÇ´Ř+Ć´Ř+ĆÄŘ+ĆÄŘ+ĆÄŘ+ĆĚŘ+ĆĚŘ+ĆÔŘ+ĆÔŘ+Ć`y2Ŕ Ř+Ć ~ůÁ{~ů„Ý'3öôéu¤Ý:¤Ý:˛¤Ý:9,ôéu°Ů+Ć°Ů+ƸŮ+ƸŮ+ĆŔŮ+ĆŔŮ+ĆČŮ+ĆČŮ+ĆÚ+ĆÚ+ĆÚ+ĆÚ+ĆÚ+ĆÚ+ĆÚ+ĆÚ+Ćă4¤K<ˆ:<ˆ:˜‘Ý: ŠhÚ+ĆhÚ+Ć|Ú+Ć|Ú+Ć y2Ŕŕx2Ŕ’řÇ”Ú+ƔÚ+ƤÚ+ƤÚ+ƤÚ+ĆŹÚ+ĆŹÚ+Ć´Ú+Ć´Ú+Ć`y2ŔÚ+Ć ă4Á{ă4“bČ4€Ţu˜‘Ý:<ˆ:<ˆ:K,€ŢuŰ+ƐŰ+ƘŰ+ƘŰ+Ć Ű+Ć Ű+ƨŰ+ƨŰ+ĆŕŰ+ĆŕŰ+ĆčŰ+ĆčŰ+ĆđŰ+ĆđŰ+ĆřŰ+ĆřŰ+Ćá4¤L<ˆ:<ˆ:˜‘Ý: ¨HÜ+ĆHÜ+Ć\Ü+Ć\Ü+Ć y2Ŕŕx2Ŕ’řÇtÜ+ĆtÜ+ƄÜ+ƄÜ+ƄÜ+ƌÜ+ƌÜ+ƔÜ+ƔÜ+Ć`y2ŔŕŰ+Ć á4Á{á4…bČ4€Ţu˜‘Ý:<ˆ:<ˆ:L,€ŢupÝ+ĆpÝ+ĆxÝ+ĆxÝ+ƀÝ+ƀÝ+ƈÝ+ƈÝ+ĆŔÝ+ĆŔÝ+ĆČÝ+ĆČÝ+ĆĐÝ+ĆĐÝ+ĆŘÝ+ĆŘÝ+Ćâ4¤K<ˆ:<ˆ:˜‘Ý: §(Ţ+Ć(Ţ+Ć<Ţ+Ć<Ţ+Ć y2Ŕŕx2Ŕ’řÇTŢ+ĆTŢ+ĆdŢ+ĆdŢ+ĆdŢ+ĆlŢ+ĆlŢ+ĆtŢ+ĆtŢ+Ć`y2ŔŔÝ+Ć â4Á{â4ŒbČ4€Ţu˜‘Ý:<ˆ:<ˆ:K,€ŢuPß+ĆPß+ĆXß+ĆXß+Ć`ß+Ć`ß+Ćhß+Ćhß+Ć"´ .Ňs ..#´  animate.html$´  +annotate.html%´ attributes.html&´  blob.html'´  +cache.html(´ cache_view.html)´  colors.html*´  +compress.html+´ constitute.html,´  +decorate.html-´ delegates.html.´  display.html/´  draw.html0´  effects.html1´  enhance.html2´  +error.html3´  gems.html4´  +image.html5´ mac.html6´  magick.html7´  memory.html8´  monitor.html9´  montage.html:´ nt.html;´ pixel_cache.html<´  +quantize.html=´  segment.html>´  +shear.html?´ signature.html@´  stream.htmlA´ transform.htmln$typesB´  utility.htmlC´ vms.htmlD´  widget.htmlE´  +xwindows.htmlF´ ř zoom.htmlw“. ž8..w”Makefile(w•cds.lib8w–dtran.vHw—hdl.varXw˜test.auhw™test.vxwš testCONT.auŒw› +testCONT.vDŃxĂLŃxĂLŃxĂTŃxĂTŃxĂ`y2Ŕ ĐxĂ ť9Á{ť9rhş9ĺăuu•Ý:u•Ý:u•Ý:&,ĺău0ŇxĂ0ŇxĂ8ŇxĂ8ŇxĂ@ŇxĂ@ŇxĂHŇxĂHŇxĂNquz2Ŕ’řÇNqu€ŇxÀŇxÈŇxÈŇxÐŇxÐŇxØŇxØŇxĂŇ˝ +¤‹ 6Ń7 6Ń7x•Ý: čŇxĂčŇxĂüŇxĂüŇxĂ y2Ŕŕx2Ŕ’řÇÓxĂÓxĂ$ÓxĂ$ÓxĂ$ÓxĂ,ÓxĂ,ÓxĂ4ÓxĂ4ÓxĂ`y2Ŕ€ŇxĂ Ň˝ +Á{Ň˝ +$iĹ˝ +áăux•Ý: 6Ń7 6Ń7‹,áăuÔxĂÔxĂÔxĂÔxĂ ÔxĂ ÔxĂ(ÔxĂ(ÔxĂČÓxĂPÔxĂPÔxĂXÔxĂXÔxĂ`ÔxĂ`ÔxĂhÔxĂhÔxĂpÔxĂpÔxĂxÔxĂxÔxĂŃ˝ +¤ia&°:a&°:w•Ý: ČÔxĂČÔxĂÜÔxĂÜÔxĂ y2Ŕŕx2Ŕ’řÇôÔxĂôÔxĂŐxĂŐxĂŐxĂ ŐxĂ ŐxĂŐxĂŐxĂ`y2Ŕ`ÔxĂ Ń˝ +Á{Ń˝ +iĹ˝ +áăuw•Ý:a&°:a&°:i,áăuđŐxĂđŐxĂřŐxĂřŐxĂÖxĂÖxĂÖxĂÖxĂŔ#oÄ0ÖxĂ0ÖxĂ8ÖxĂ8ÖxĂ@ÖxĂ@ÖxĂHÖxĂHÖxĂPÖxĂPÖxĂXÖxĂXÖxĂĐ˝ +¤BĐ6BĐ6w•Ý: ¨ÖxèÖxĂźÖxĂźÖxĂ y2Ŕŕx2Ŕ’řÇÔÖxĂÔÖxĂäÖxĂäÖxĂäÖxĂěÖxĂěÖxĂôÖxĂôÖxĂ`y2Ŕ@ÖxĂ Đ˝ +Á{Đ˝ +iĹ˝ +áăuw•Ý:BĐ6BĐ6,áăuĐ×xĂĐ×xĂŘ×xĂŘ×xĂŕ×xĂŕ×xĂč×xĂč×xĂ ŘxĂ ŘxĂ(ŘxĂ(ŘxĂ0ŘxĂ0ŘxĂ8ŘxĂ8ŘxĂĎ˝ +¤ + 6Ń7 6Ń7w•Ý: ˆŘxÈŘxĂœŘxÜŘxĂ y2Ŕŕx2Ŕ’řÇ´ŘxĂ´ŘxĂÄŘxĂÄŘxĂÄŘxĂĚŘxĂĚŘxĂÔŘxĂÔŘxĂ`y2Ŕ ŘxĂ Ď˝ +Á{Ď˝ + iĹ˝ +áăuw•Ý: 6Ń7 6Ń7 +,áău°ŮxĂ°ŮxøŮxøŮxĂŔŮxĂŔŮxĂČŮxĂČŮxĂNquz2Ŕ’řÇNquÚxĂÚxĂÚxĂÚxĂÚxĂÚxĂÚxĂÚxĂν +¤Š 6Ń7 6Ń7w•Ý: hÚxĂhÚxĂ|ÚxĂ|ÚxĂ y2Ŕŕx2Ŕ’řÇ”ÚxÔÚxäÚxäÚxäÚxĂŹÚxĂŹÚxĂ´ÚxĂ´ÚxĂ`y2ŔÚxĂ ν +Á{ν +iĹ˝ +áăuw•Ý: 6Ń7 6Ń7Š,áăuŰxÐŰxØŰxØŰxĂ ŰxĂ ŰxèŰxèŰxÈ RĂĐŰxĂĐŰxĂŘŰxĂŘŰxĂŕŰxĂŕŰxĂčŰxĂčŰxĂđŰxĂđŰxĂřŰxĂřŰxĂÍ˝ +¤ +:eâ8:eâ8w•Ý: HÜxĂHÜxĂ\ÜxĂ\ÜxĂ y2Ŕŕx2Ŕ’řÇtÜxĂtÜxÄÜxÄÜxÄÜxÌÜxÌÜxÔÜxÔÜxĂ`y2ŔŕŰxĂ Í˝ +Á{Í˝ +ţhĹ˝ +áăuw•Ý::eâ8:eâ8 +,áăupÝxĂpÝxĂxÝxĂxÝxÀÝxÀÝxÈÝxÈÝxĂŔ#oÄ°ÝxĂ°ÝxøÝxøÝxĂŔÝxĂŔÝxĂČÝxĂČÝxĂĐÝxĂĐÝxĂŘÝxĂŘÝxĂĚ˝ +¤-PžçR:žçR:w•Ý: 0(ŢxĂ(ŢxĂ<ŢxĂ<ŢxĂ y2Ŕŕx2Ŕ’řÇTŢxĂTŢxĂdŢxĂdŢxĂdŢxĂlŢxĂlŢxĂtŢxĂtŢxĂ`y2ŔŔÝxĂ Ě˝ +Á{Ě˝ +żhĹ˝ +áăuw•Ý:žçR:žçR:-P,áăuPßxĂPßxĂXßxĂXßxĂ`ßxĂ`ßxĂhßxĂhßxĂn$ ."´ ..o$AnnotateInfo.htmlp$ ChromaticityInfo.htmlq$ColorPacket.htmlr$Enumerations.htmls$ExceptionInfo.htmlt$ +Image.htmlu$ImageAttribute.htmlv$ImageInfo.htmlw$MagickInfo.htmlx$PixelPacket.htmly$PointInfo.htmlz$ProfileInfo.html{$´RectangleInfo.html;; .î ..<;bg.gif=;border_diag.gif>;border_eg1.gif?;border_eg2.gif@;border_eg3.gifA; +curve1.gifB; +curve2.gifC; imlib.gifD;< +index.html͡ .̡ ..Ρ +bullet.gifϡpixel_gray.gifСpixel_white.gifѡ rh_logo.gifҡsignup_now.gifÓˇ +spacer.gifÔˇd tagline.gifG# .žç ..H# +extended.htmlI# +hardware.htmlJ# +index.htmlK#isp.htmlL# logotp3.pngM#€ +overview.htmlk; .žç ..l; kmidi-1.htmlm; kmidi-2.htmln; kmidi-3.htmlo; kmidi-4.htmlp; kmidi-5.htmlq; +kmidi.htmlr; +kmidi.sgmls;\ logotp3.gif¤e҄9ô¸Ő:e҄9•žD𝤁 +e҄9ô¸Ő:e҄9–żD𝤁† e҄9ô¸Ő:e҄9—ŔD𝤁! e҄9ô¸Ő:e҄9˜ÁD𝤁 + +e҄9ô¸Ő:e҄9™ÂD𝤁Š+e҄9ô¸Ő:e҄9šĂD𝤁 +e҄9ô¸Ő:e҄9›ÄDđť¤Ř +e҄9ô¸Ő:e҄9œĹD𝤁„e҄9ô¸Ő:e҄9ĆD𝤁… e҄9ô¸Ő:e҄9žÇD𝤁úe҄9ô¸Ő:e҄9ŸČDđťíAN™b9šŐ:šŐ: @J𝤁Ť™Ö–9šŐ:™Ö–9ĄAJ𝤁ř™Ö–9šŐ:™Ö–9˘BJ𝤁÷™Ö–9šŐ:™Ö–9ŁCJ𝤁C™Ö–9šŐ:™Ö–9¤DJ𝤁´™Ö–9šŐ:™Ö–9ĽEJ𝤁=™Ö–9šŐ:™Ö–9ŚFJ𝤁ű™Ö–9šŐ:™Ö–9§GJ𝤁ޙ֖9šŐ:™Ö–9¨HJ𝤁0™Ö–9šŐ:™Ö–9ŠIJ𝤁ޙ֖9šŐ:™Ö–9ŞJJ𝤁=™Ö–9šŐ:™Ö–9ŤKJ𝤁9™Ö–9šŐ:™Ö–9ŹLJ𝤁ď™Ö–9šŐ:™Ö–9­MJ𝤁y™Ö–9šŐ:™Ö–9ŽNJ𝤁F™Ö–9šŐ:™Ö–9ŻOJ𝤁¨™Ö–9šŐ:™Ö–9°PJ𝤁K +™Ö–9šŐ:™Ö–9ąQJ𝤁r™Ö–9šŐ:™Ö–9˛RJ𝤁™Ö–9šŐ:™Ö–9łSJ𝤁™Ö–9šŐ:™Ö–9´TJđťíAK™b9šŐ:šŐ:1ŐG𝤁6ŽÖ–9šŐ:ŽÖ–9ž1Ÿ1ÖG𝤁BŽÖ–9šŐ:ŽÖ–9 1×GđťíAN™b9šŐ:šŐ:Ą1ţJ𝤁¨šÖ–9šŐ:šÖ–9˘1˙J𝤁é +šÖ–9šŐ:šÖ–9Ł1K𝤁šÖ–9šŐ:šÖ–9¤1KđťíAN™b9šŐ:šŐ: +Ľ1ăKđťíAN™b9šŐ:šŐ:Ś1äK𝤁*œÖ–9šŐ:œÖ–9§1ĺK𝤁.œÖ–9šŐ:œÖ–9¨1ćK𝤁iœÖ–9šŐ:œÖ–9Š1çK𝤁Ł œÖ–9šŐ:œÖ–9Ş1čK𝤁L +œÖ–9šŐ:œÖ–9Ť1éK𝤁>œÖ–9šŐ:œÖ–9Ź1­1ęK𝤁 œÖ–9šŐ:œÖ–9Ž1ëK𝤁à œÖ–9šŐ:œÖ–9Ż1ěK𝤁ŰœÖ–9šŐ:œÖ–9°1íK𝤁RžÖ–9šŐ:žÖ–9ą1L𝤁žÖ–9šŐ:žÖ–9˛1 LđťíAP™b9šŐ:šŐ:ł1Mđť¤Ô ‘Ö–9šŐ:‘Ö–9´1 M𝤁S‘Ö–9šŐ:‘Ö–9ľ1!MđťíAŕ—b9šŐ:šŐ:ś1đN𝤁7sŤÜ: +šŐ:gé˘9 ˇ1¸1š1ş1ńN𝤁hsŤÜ: +šŐ:gé˘98ť1ź1˝1ž1ż1Ŕ1Á1ňN𝤁Đ.sŤÜ: +šŐ:gé˘9Â1Ă1Ä1óN𝤁$…sŤÜ: +šŐ:gé˘9HĹ1Ć1Ç1Č1É1Ę1Ë1Ě1Í1ôN𝤁losŤÜ: +šŐ:gé˘98Î1Ď1Đ1Ń1Ň1Ó1Ô1őN𝤁xsŤÜ: +šŐ:gé˘9Ő1Ö1öN𝤁HUsŤÜ: +šŐ:gé˘98×1Ř1Ů1Ú1Ű1Ü1Ý1Ţ1ß1ŕ1á1â1ă1÷N𝤁¨sŤÜ: +šŐ:fé˘9ţ1˙1řN𻆠.„ĺ ..]%čC‡ .„ĺ ..ˆ  index-1.html‰  +index-10.htmlŠ  +index-11.html‹  +index-12.htmlŒ  +index-13.html  +index-14.htmlŽ  +index-15.html  index-2.html  index-3.html‘  index-4.html’  index-5.html“  index-6.html”  index-7.html•  index-8.html–  index-9.html—  +index.html˜  logotp3.pngŸö .̡ ..Áń isdn-configÎkcontrol‰ůkdehelp?kdisknavŇń kdm]kfindíˇ kfmď0 kfontmanagerŰ°kikbdł#kmediażđ kmenueditŮ|konsoleëŹkpager(kpanel‡$ kthememgrľ# kvtݜ# kwm”şkabaloneŁó  kblackboxŔĄ kmahjongg"kminesŞ&konquestp# kpatˆčkpokerV;kreversi›şksameŠó kshisen=ł + +ksmiletrisŹ&ksnakeĹĄksokobanţŹ kdvi" kfaxu#kfractŽó  +kghostviewK3 + kiconedit-kpaintč ksnapshoty>kview¤şkdelibs ů kfiledialogó +kspellŻş kmid–/kmidi§ě kmix˜č kscd]3 +karchierkbiffŢjkfingeryĺkmail•> knuv; kornÓ2 kppp / krnV%ksircUł +ktalkdś. pwsâ kodo¸ arkžě kabë¨ karm};kcalcG´ kedith3 +kfloppy˝.khexditâkjotsÂş kljettool\s + klpq^ł +knotes%r kpmŔě ktop,"kwriteç¤kdevelop ^" kpppload¤ŐB1Ľ9é¸Ő:B1Ľ9‘B𝤁?B1Ľ9é¸Ő:B1Ľ9’“B𝤁` +B1Ľ9é¸Ő:B1Ľ9”B𝤁úB1Ľ9é¸Ő:B1Ľ9•BđťíAN™b9ř¸Ő:ř¸Ő:–$Eđť˙Ąř¸Ő:ř¸Ő:ř¸Ő:kpm.html%E𝤁v u҄9ř¸Ő:u҄9—&E𝤁#u҄9ř¸Ő:u҄9˜™'E𝤁_%u҄9ř¸Ő:u҄9š›œ(E𝤁÷u҄9ř¸Ő:u҄9ž)E𝤁|u҄9ř¸Ő:u҄9Ÿ*E𝤁úu҄9ř¸Ő:u҄9 +EđťíAN™b9šŐ:šŐ:ĄüJ𝤁kšÖ–9šŐ:šÖ–9˘ýJđťíAN™b9šŐ:šŐ:Ł‡K𝤁Ÿ›Ö–9šŐ:›Ö–9¤‹Kđť¤É +›Ö–9šŐ:›Ö–9ĽŒK𝤁. +›Ö–9šŐ:›Ö–9ŚK𝤁‡ ›Ö–9šŐ:›Ö–9§ŽK𝤁Q›Ö–9šŐ:›Ö–9¨K𝤁R›Ö–9šŐ:›Ö–9ŠK𝤁+›Ö–9šŐ:›Ö–9Ş‘KđťíAO™b9šŐ:šŐ:ŤuL𝤁Đ֖9šŐ:Ö–9ŹŒLđťíAP™b9šŐ:šŐ:­ąLđťíAP™b9šŐ:šŐ:Ž´L𝤁Ś’Ö–9šŐ:’Ö–9Ż°ľL𝤁B’Ö–9šŐ:’Ö–9ąśLđťíAP™b9šŐ:šŐ:˛M𝤁‘Ö–9šŐ:‘Ö–9ł´M𝤁,‘Ö–9šŐ:‘Ö–9ľMđťíA ŕ—b9 šŐ: šŐ:śŘŚMđťÁń .Ÿö ..Âń +extended.htmlĂń +hardware.htmlÄń +index.htmlĹńisp.htmlĆń logotp3.pngÇń€ +overview.html×ű .Î ..Řű bell-1.htmlŮű bell.htmlÚűŔ logotp3.gifáň + .Î ..âň + info-1.htmlăň + info-10.htmläň + info-11.htmlĺň + info-2.htmlćň + info-3.htmlçň + info-4.htmlčň + info-5.htmléň + info-6.htmlęň + info-7.htmlëň + info-8.htmlěň + info-9.htmlíň + info.htmlîň +ř logotp3.gif? .Î ..? keys-1.html? keys.html?Ŕ logotp3.gifšđ .Î ..şđ +kpanel-1.htmlťđ +kpanel-2.htmlźđ +kpanel-3.html˝đ kpanel.htmlžđŒ logotp3.gifŽ# .Î ..Ż# logotp3.gif°#smbstatus-1.htmlą#smbstatus-2.html˛#¤smbstatus.htmlŇ .Î ..Ó +index.htmlÔkdm-appear.htmlŐkdm-backgnd.htmlÖ +kdm-font.html× +kdm-sess.htmlŘtkdm-users.html‰ů .Ÿö ..Šů contact.html‹ů +devel.htmlŒůexec.xpmů +index.htmlŽů +intro.htmlůkde.htmlů kdeside.gif‘ů kogo3.gifE;kpanel’ů ksearch.html“ůkule.gifä kwm”ů logotp3.gif•ů main.html–ů nav_bar.gif\  +quickstart—ůsingle_pixel.gif˜ů support.html™ů tealbar.gifšů whatis.html›ůlwhatiskde.htmlä .‰ů ..Ĥ index-1.htmlŤ index-2.htmlƤ index-3.htmlǤ index-4.htmlȤ index-5.htmlɤ index-6.htmlʤ +index.htmlˤ\ logotp3.gif? .Ÿö ..?kdisknav-1.html?kdisknav-2.html?kdisknav-3.html?kdisknav-4.html ?kdisknav-5.html!?kdisknav-6.html"?kdisknav-7.html#? +kdisknav.html$? +kdisknav.sgml%? logotp3.gif] .Ÿö ..^ index-1.html_ index-2.html` index-3.htmla index-4.htmlb +index.htmlc +index.sgmldp logotp3.gifď0 .Ÿö ..đ0 index-1.htmlń0 index-2.htmlň0 index-3.htmló0 index-4.htmlô0 +index.htmlő0„ logotp3.gifł# .Ÿö ..´# maudio.htmlJ$ index-1.htmlK$ index-2.htmlL$ index-3.htmlM$ index-4.htmlN$ index-5.htmlO$ +index.htmlP$\ logotp3.gifŮ| .Ÿö ..Ú|konsole-1.htmlŰ|konsole-2.htmlÜ|konsole-3.htmlÝ|konsole-4.htmlŢ|konsole-5.htmlß| konsole.htmlŕ| logotp3.gifá| techref.htmlâ|4 vt100.gif( .Ÿö ..( index-1.html ( index-2.html +( index-3.html ( index-4.html ( index-5.html +( +index.html(p logotp3.gifľ# .Ÿö ..ś#č +index.htmlݜ# .Ÿö ..ޜ# index-1.htmlߜ# index-2.htmlŕœ# index-3.htmláœ# index-4.htmlâœ# index-5.htmlăœ# index-6.htmläœ# +index.htmlĺœ#\ logotp3.gifö<. <..ö=Makefile.nc.lnx864ö>Makefile.nc.definesPö?Makefile.nc.targetslö@Makefile.xl.lnx86ˆöAMakefile.xl.defines¤öBMakefile.xl.targets`41‹U´ƒęëKƒ}´d~‹U´ƒę ˘”Ă ˘”ä”Ă„ßřÇ0˘”Ă0˘”Ă8˘”Ă8˘”ĂŽ8 °a_4$ä¤9$ä¤9ďˇŐ:ŕˆ˘”Ăˆ˘”Ăœ˘”Ăœ˘”Ă€9Ŕb2ŔőÇ´˘”Ă´˘”ĂĢ”ĂĢ”ĂĢ”Ă̢”Ă̢”ĂÔ˘”ĂÔ˘”Ă`9Ŕ ˘”Ă Văďť_41˙1ö‰•Œő˙˙t&ź'¤”ä”Ă襔ÄßřǤ”ä”ä”ä”Í8 °a^4$ä¤9$ä¤9ďˇŐ:ŕh¤”Ăh¤”Ă|¤”Ă|¤”Ă€9Ŕb2ŔőÇ”¤”Ă”¤”䤔䤔䤔Ϥ”ĂŹ¤”Ă´¤”Ă´¤”Ă`9Ŕ¤”Ă Uăďť^41Ű$Z‹•€ő˙˙Ý‹•„༔Ă॔Ăȧ”Ă„ßřÇđĽ”ĂđĽ”ĂřĽ”ĂřĽ”ĂŒ8 °a]4$ä¤9$ä¤9ďˇŐ:ŕHŚ”ĂHŚ”Ă\Ś”Ă\Ś”Ă€9Ŕb2ŔőÇtŚ”ĂtŚ”Ă„Ś”Ă„Ś”Ă„Ś”ĂŒŚ”ĂŒŚ”Ă”Ś”Ă”Ś”Ă`9Ŕ॔Ă Tăďť]41ő˙˙‹…°ő˙˙Ý$Pčbň˙˙Ű­Ŕ§”ĂŔ§”èŠ”Ă„ßřÇЧ”ĂЧ”Ăا”Ăا”Ă‹8 °a\4$ä¤9$ä¤9ďˇŐ:ŕ(¨”Ă(¨”Ă<¨”Ă<¨”Ă€9Ŕb2ŔőÇT¨”ĂT¨”Ăd¨”Ăd¨”Ăd¨”Ăl¨”Ăl¨”Ăt¨”Ăt¨”Ă`9ŔŔ§”Ă Săďť\41˙d~‹•ő˙˙ƒę +ë[t& Š”Ă Š”ĂˆŤ”Ă„ßřÇ°Š”Ă°Š”øŠ”øŠ”ĂŠ8 °a[4$ä¤9$ä¤9ďˇŐ:ઔê”ĂŞ”ĂŞ”Ă€9Ŕb2ŔőÇ4Ş”Ă4Ş”ĂDŞ”ĂDŞ”ĂDŞ”ĂLŞ”ĂLŞ”ĂTŞ”ĂTŞ”Ă`9Ŕ Š”Ă Răďť[41…đű˙˙ۅđű˙˙ݝŔű˙˙‹…đ€Ť”Ă€Ť”Ăh­”Ă„ßřǐŤ”ÐŤ”Ă˜Ť”Ă˜Ť”É8 °aZ4$ä¤9$ä¤9ďˇŐ:ŕ諔Ă諔ĂüŤ”ĂüŤ”Ă€9Ŕb2ŔőÇŹ”ĂŹ”Ă$Ź”Ă$Ź”Ă$Ź”Ă,Ź”Ă,Ź”Ă4Ź”Ă4Ź”Ă`9Ŕ€Ť”Ă QăďťZ41ɃÄëÝŮÝ őŮÉÚéßŕ`­”Ă`­”ĂhłÇ„ßřÇp­”Ăp­”Ăx­”Ăx­”Ăˆ8 °aY4$ä¤9$ä¤9ďˇŐ:ŕČ­”ĂČ­”ĂÜ­”ĂÜ­”Ă€9Ŕb2ŔőÇô­”Ăô­”ĂŽ”ĂŽ”ĂŽ”Ă Ž”Ă Ž”ĂŽ”ĂŽ”Ă`9Ŕ`­”Ă PăďťY41ät‹u …öt‹E ‹…ŰtÇEŕ‹U‹‚„‹ŠŒ€ÁăËč‰Á¸ńđđđ÷áÁę‰ĐÁŕĐ1ŇRŔ)Á‰ČPß,$XZÜŔőÜ5ČőÝ]Ŕ‹uŔ‹}Äčâ‰Á¸ńđđđ÷áÁę‰ĐÁŕĐ1ŇRŔ)Á‰ČPß,$XZ‹UÜŔőƒ:Ü5ČőŽó‹Uŕ…Ňt(Ű}ȋE ƒěPSčĄŰmȃÄ…Ŕu‹E ]äÇ +ž\.  ˝Ü.. +ž] libsdfi.a, +ž^ omnitasks.o@ +ž_ env_czc.oT +ž` +gr_tasks.oh +ža +libcosim.a| +žb +libvoids.a +žc libnewsdfa.a¤ +ždlibdlc.a´ +že omi_vlog.soČ +žfomi_vlog_2.0.soŕ +žgconfig_reader.soř +žh +shm_vlog.a  +živlog.o&ń;Ę  +| +xt€Ý Ó`’QÄ`’QÄH”QĄßřÇp’QÄp’QÄx’QÄx’QÄi8 °aG3%ä¤9%ä¤9ďˇŐ:ôßȒQÄȒQÄܒQÄܒQĀ9Ŕb2ŔőÇô’QÄô’QÄ“QÄ“QÄ“QÄ “QÄ “QÄ“QÄ“QÄ`9Ŕ`’QÄ 1ăďťG31(ŁÝUsŔéÚéi]j†W4U†Şî@”QÄ@”QÄ(–QĄßřÇP”QÄP”QÄX”QÄX”QÄh8 °aF3%ä¤9%ä¤9ďˇŐ:óߨ”QĨ”QÄź”QÄź”QĀ9Ŕb2ŔőÇԔQÄԔQÄä”QÄä”QÄä”QÄě”QÄě”QÄô”QÄô”QÄ`9Ŕ@”QÄ 0ăďťF313–nćÄŘÍÓZ +œsúś^×؋ –QÄ –QĘQĄßřÇ0–QÄ0–QÄ8–QÄ8–QÄg8 °aE3%ä¤9%ä¤9ďˇŐ:ň߈–QĈ–QÄœ–QĜ–QĀ9Ŕb2ŔőÇ´–QÄ´–QÄĖQÄĖQÄĖQÄ̖QÄ̖QÄԖQÄԖQÄ`9Ŕ –QÄ /ăďťE31˜QĘQÄč™QĄßřǘQĘQĘQĘQÄf8 °aD3%ä¤9%ä¤9ďˇŐ:ńßh˜QÄh˜QÄ|˜QÄ|˜QĀ9Ŕb2ŔőÇ”˜QĔ˜QĤ˜QĤ˜QĤ˜QÄŹ˜QÄŹ˜QÄ´˜QÄ´˜QÄ`9Ŕ˜QÄ .ăďťD31ŕ™QÄŕ™QÄțQĄßřÇđ™QÄđ™QÄř™QÄř™QÄe8 °aC3%ä¤9%ä¤9ďˇŐ:đßHšQÄHšQÄ\šQÄ\šQĀ9Ŕb2ŔőÇtšQÄtšQĄšQĄšQĄšQȚQȚQĔšQĔšQÄ`9Ŕŕ™QÄ -ăďťC31Ŕ›QÄŔ›QĨQĄßřÇЛQÄЛQÄ؛QÄ؛QÄd8 °aB3%ä¤9%ä¤9ďˇŐ:ďß(œQÄ(œQÄ<œQÄ<œQĀ9Ŕb2ŔőÇTœQÄTœQÄdœQÄdœQÄdœQÄlœQÄlœQÄtœQÄtœQÄ`9ŔŔ›QÄ ,ăďťB31 QÄ QÄhp´Ç„ßřÇ°QÄ°QĸQĸQÄc8 °aA3%ä¤9%ä¤9ďˇŐ:îßžQÄžQÄžQÄžQĀ9Ŕb2ŔőÇ4žQÄ4žQÄDžQÄDžQÄDžQÄLžQÄLžQÄTžQÄTžQÄ`9Ŕ QÄ +ăďťA31ˇ\.  ˝Ü..ˇ] +veriuser.c,ˇ^ +vpi_user.c@ˇ_main.cc¨PľĹ¨PľĹźPľĹźPľĹ€9Ŕb2ŔőÇÔPľĹÔPľĹäPľĹäPľĹäPľĹěPľĹěPľĹôPľĹôPľĹ`9Ŕ@PľĹ 'ăďť>31vƒůu ÝŮŮĘ됍t& RľĹ RľĹTľĹ„ßřÇ0RľĹ0RľĹ8RľĹ8RľĹ^8 °a=3%ä¤9%ä¤9ďˇŐ:é߈RľĹˆRľĹœRľĹœRľĹ€9Ŕb2ŔőÇ´RľĹ´RľĹÄRľĹÄRľĹÄRľĹĚRľĹĚRľĹÔRľĹÔRľĹ`9Ŕ RľĹ &ăďť=31U‰ĺWVSƒě ‹E‹]‹TľĹTľĹčUľĹ„ßřÇTľĹTľĹTľĹTľĹ]8 °a<3%ä¤9%ä¤9ďˇŐ:čßhTľĹhTľĹ|TľĹ|TľĹ€9Ŕb2ŔőÇ”TľĹ”TľĹ¤TľĹ¤TľĹ¤TľĹŹTľĹŹTľĹ´TľĹ´TľĹ`9ŔTľĹ %ăďť<31ÁčŰ$Ůʉ$řŃřÜeŔŮÉŕUľĹŕUľĹČWľĹ„ßřÇđUľĹđUľĹřUľĹřUľĹ\8 °a;3%ä¤9%ä¤9ďˇŐ:çßHVľĹHVľĹ\VľĹ\VľĹ€9Ŕb2ŔőÇtVľĹtVľĹ„VľĹ„VľĹ„VľĹŒVľĹŒVľĹ”VľĹ”VľĹ`9ŔŕUľĹ $ăďť;31]D…Ű„Ô‹MH…É„”ŔWľĹŔWľĹ¨YľĹ„ßřÇĐWľĹĐWľĹŘWľĹŘWľĹ[8 °a:3%ä¤9%ä¤9ďˇŐ:ćß(XľĹ(XľĹ œÖ–9šŐ:œÖ–9Šƒ +ŹK𝤁ˇœÖ–9šŐ:œÖ–9ރ +Ťƒ +­K𝤁 œÖ–9šŐ:œÖ–9Źƒ +ŽK𝤁iœÖ–9šŐ:œÖ–9­ƒ +ŻK𝤁šœÖ–9šŐ:œÖ–9Žƒ +°Kđť¤Ő œÖ–9šŐ:œÖ–9Żƒ +ąK𝤁ޜ֖9šŐ:œÖ–9°ƒ +˛K𝤁÷œÖ–9šŐ:œÖ–9ąƒ +łK𝤁ŚœÖ–9šŐ:œÖ–9˛ƒ +łƒ +´K𝤁˙œÖ–9šŐ:œÖ–9´ƒ +ľƒ +ľK𝤁ĚœÖ–9šŐ:œÖ–9śƒ +śK𝤁ôœÖ–9šŐ:œÖ–9ˇƒ +ˇKđť¤É œÖ–9šŐ:œÖ–9¸ƒ +¸K𝤁é +œÖ–9šŐ:œÖ–9šƒ +šK𝤁aœÖ–9šŐ:œÖ–9şƒ +şK𝤁Œ œÖ–9šŐ:œÖ–9ťƒ +ťK𝤁œÖ–9šŐ:œÖ–9źƒ +źKđť \ No newline at end of file Index: board/initrd-working =================================================================== --- board/initrd-working (nonexistent) +++ board/initrd-working (revision 1765) @@ -0,0 +1,1453 @@ +-rom1fs-ŕ&i*Łrom 3b742c91I Ń˙˙—.` ŃŃ˙€..I€›šˆ7dev `Ń˙˙.Ŕ ŃŃ˙ ..勇…étty1@[‡…httyS0$‘Źram0‹‡†űttyŔjżŻ!linuxrcELFP‘ü4( -c-tShell invoked to run file: %s + +Sash command shell (version %s) +PATHPATH=/bin:/usr/bin:/etcœ!˙ÜÔ œA$ÔH×âü×â'ř×â/ô˙˙ŕœ`×âě„b˙üœ€ĺC „b˙řœƒ„d€¨„˙˙Ňœkœ€ä# œ`˙˙Ę„b˙üœ€ĺC „b˙řœƒ„d€¨„˙˙žœkœ€ä# „b˙윃×â'쀨„Ô „‚˙řœd„ƒÔ ˙˙­ +`¨c%Ô€¨„6lÔ ˙˙Ł`¨cF¤˙˙Ÿœ`€¨„8˙˙šœ`€¨„°˙˙•˙˙ţ`¨cG˙˙œkœ€ä# `¨cL˙˙„„b˙윀ä# „b˙řœƒ„d$œ`œ`˙˙r…!„A DHœ!$Too many source files +rCommand: %s +Reading command lineExecution Finished, Exiting +œ!˙ÜÔ œA$ÔH×âü`¨c?”„ƒœ` ĺD `¨cPÔ`¨cFĚ˙˙E€¨„F|×â'ř„b˙üœ€ä# „b˙üœ€˙˙œ Ŕ¨Ćg˙˙4œk×âř„b˙řœ€ä# „b˙ü˙˙*ý ¨Ľ?l`¨c?”„ƒœÄ¸ćŕĽ8„Â˙řÔ0œ„Ô „‚˙ř„d˙˙œk×âđś`¨cF¤˙˙„b˙ř€¨„F|ä o`¨cFp„ƒœ`ä$ „b˙đœ€ä# „b˙ř€¨„F|ä# „b˙ř˙ţń€¨„?”`¨c?”€¨„?”„¤œ…˙˙Ô ť`¨c?˜œ€˙„˘˙ř˙ţŕœkœ€ä# „b˙ř„ƒ¤dœ€ä# `¨cJř„ƒœ`ä +„b˙ř„‚˙ř„¤œŔü˙ŕ…0Ô ˙˙ąg`¨c?˜˙ţż×â_ô`¨c?˜„˘˙ôœ…˙˙ŕc ƒœ` +ä „b˙ôœƒ˙˙×â'ô„b˙ôœ€ĺC `¨c?˜„˘˙ôœ…˙˙ŕc ƒœ` ä`¨c?˜„˘˙ôœ…˙˙ŕc ƒœ` ä„b˙ôœƒ˙˙×â'ô˙˙ŕ`¨c?˜„‚˙ôŕc œ€Ř „b˙ř€¨„F|ä# +Ŕ¨ĆiÔ0`¨c?˜Ô˙ţz€¨„?˜×â'ě„b˙쐃œ` ä„b˙윃×â'ě˙˙ő„b˙쐃œ`#ä$ `¨c?˜:˙˙J„b˙ř„ƒ¤dœ€ä# `¨cv˙ţS„b˙ř€¨„F|ä œ`˙ţJ„b˙ř„‚˙ř„¤œŔü˙ŕ…0Ô „b˙ř€¨„F|ä# +„b˙ř˙ţ;`¨c‹Ô˙ţ6€¨„?”`¨c?”€¨„?”„¤œ…˙˙Ô …!„A DHœ!$ œ!˙ŕÔœA ÔH×âü`¨cFpœ€Ô ˙ţ„b˙üƒœ` ä +„b˙üƒœ` ä„b˙üœƒ×â'ü˙˙ď„b˙üœ€&˙ţœk×âč„b˙蜀ä# „b˙蜀Ř œ`×âěœ€×â'ě„b˙ü˙ýóœk×âü„b˙üœ€ä# h„b˙üƒœ`ä$ œ‚˙đœ˘˙ô„b˙ü˙ýßœkœ€ä# T„‚˙ô„dŒœk×âř„b˙řœ€ä# /`¨c?˜×âü„‚˙ř„b˙ü„„˙ýĂ„b˙đœƒ˙˙œd×âđœ€ĺC „b˙ü€¨„d˙ý´„‚˙ôœdœƒ×â'ô„b˙ü„„˙ýŹ˙˙霂˙đœ˘˙ô„b˙ü˙ýĽœkœ€ä# „‚˙ô„dœkœ€ä#  +„b˙đ„‚˙ôŹœkœ€ä# „b˙ü„‚˙섢˙đ„Â˙ô…!„ADHœ! /œ!˙ŹÔœATÔH×âü„b˙üœ€/˙ývœkœ€ä# i`¨cG˙ýmœk×⸄b˙¸œ€ä# +„b˙¸ƒœ`ä$R`¨c>d„‚˙¸˙ýW`¨c>dœ€:˙ýRœk×â´„b˙´œ€ä# „b˙´œ€Ř `¨c>d˙ýDœkœ€ä# `¨c>d€¨„ +˙ý9`¨c>d„‚˙ü˙ý4œ‚˙ź`¨c>d˙ý/œkœ€ä#  ”b˙ĤƒI¤d˙˙œ€ä# `.„b˙¸œ€:˙ýœk×â´„b˙´œ€ä# „b˙´œƒ×â'¸œ`×â¸˙˙Łœ‚˙ź„b˙ü˙ýœkœ€ä#  ”b˙ĤƒI¤d˙˙œ€ä# ``…!„ADHœ!Tusage: %s %s +Too many arguments +œ!ţ@ÔœAŔÔH ×âü×â'ř`¨c6@×âô„b˙ôœƒ4×â'ô„b˙ôƒœ`ä$`¤„‚˙ř„d„‚˙ô˙üÍœkœ€ä# ˙˙č„b˙ô„‚˙ü„c,ĺ„ +„b˙ô„‚˙ü„c0ĺD€¨„ HÔ „â˙ôÔ8„b˙ôœƒ +Ô `¨cFĚ˙üŞ`¨cFĚ˙üŚ`u„b˙ř„ƒ×â'œŕ×â?ěœ`×âđ„b˙đœƒœd×âđ„‚˙üĺƒ [„b˙đœ€ŕc#„‚˙řŕc œ˘ţT„cœ€2˙üˆœk×âč„b˙čœ€ĺƒ `P„b˙섂˙čŕc œ€1ĺC €¨„ VÔ `¨cFĚ˙üp`?„b˙蜀ä# œb˙섃œ¤¸Ĺœâ˙ŕ§0„Â˙đœŕŕĆ;„â˙řŕĆ8„ćÔ8œ„Ô œ`×âä„b˙䄂˙čĺƒ œb˙섃œ¤¸Ĺœâ˙ŕ§0„Â˙äœć¸ÇœâţTŕÇ0„ćÔ8œ„Ô „b˙䜃×â'ä˙˙ç˙˙Ÿ„b˙ôœ‚˙„Ł(„b˙ěH(`…! „ADHœ!Ŕ%s: no such file or directory +Bad command or file name%s: %s +vfork failed[%d] +sh %d: child %d died +pid %d: %s (signal %d) +core dumpedkilledœ!ţ$ÔœAÜÔHÔP×âü×â'ř×â/ô×â7đ„b˙đ„ƒ×â' œŕ×â?ܜ`×âŕ„b˙ŕœƒœd×âŕ„‚˙ôĺƒ Y„b˙ŕœ€ŕc#„‚˙đŕc œ˘ţD„cœ€2˙űăœk×â؄b˙؜€ĺƒ a„b˙܄‚˙Řŕc œ€1ĺC €¨„ VÔ `¨cFĚ˙űĚQ„b˙؜€ä# œb˙܄ƒœ¤¸Ĺœâ˙ ŕ§0„Â˙ŕœŕŕĆ;„â˙đŕĆ8„ćÔ8œ„Ô œ`×âԄb˙Ԅ‚˙Řĺƒ œb˙܄ƒœ¤¸Ĺœâ˙ ŕ§0„Â˙Ԝć¸ÇœâţDŕÇ0„ćÔ8œ„Ô „b˙Ԝƒ×â'Ô˙˙ç˙˙Ą„b˙ܜƒ¸dœ‚˙ ŕdœ€Ô œŕ×â?ě„b˙윀ä# `¨cXÔ„‚˙üÔ ˙ű„b˙ü˙ű~„b˙řœ€ä# œ`œ€˙űs` œ`ď˙äK `¨cJřŕ€Xœ¤Ô(`˙˙œk×â蜀ä# Tœŕ×â>@`¨c?”„‚ţ@„cĺ„`¨c?l„‚ţ@œ¤¸…ŕc „ƒ`¨cF|ä$ `¨c?l„‚ţ@œ¤¸…ŕc „ƒ„d˙ű?„bţ@œƒ×â&@˙˙Ţœ`œ€˙ű6œ`œ€˙ű2œ`œ€˙ű.œ‚˙ „b˙ ˙ű*`¨cJř„ƒœ`ä$ +€¨„Jř„d˙űœk`¨cw€¨„Ô „â˙ Ô8Ô˙űœ`˙ű„b˙čœ€ĺƒ ˙˙ţ`¨c˜˙ű†„b˙řœ€ä# `¨cĽÔ„‚˙čÔ ˙úóx„b˙蜀ä# lœŕ×â?ä`¨c>`œ€Ô œ‚˙ä„b˙蜠œŔ˙úŕœk×â@„bţ@œ€ĺƒ `¨cJř„ƒœ`ä „bţ@œ€ĺƒ „bţ@„‚˙čä# ˙úÂœkŕ¨çŤÔ8Ô„bţ@Ô`¨cFĚ˙úˇ˙˙Ď˙˙ţ`¨c>`œ€Ô „‚˙ä¤d˙œ€ä# )ŕ¨çÁÔ8„b˙čÔ„‚˙ä¤d€œ€ä# €¨„ŮÔ ŕ¨çĺÔ8„b˙䤃Ô `¨cFĚ˙úˆ`¨cFĚ˙ú„ „‚˙đ„d˙ú~œ`˙ú{…!„A…ADHœ!Ü%-10s %s +œ!˙ŕÔœA ÔH ×âü×â'ř`¨c6t×âô„b˙ôœ€ä# +„b˙ôƒœ`ä$`¨c0Ô„b˙ôÔ„b˙ôœƒ +Ô ˙úQ„b˙ôœƒ4×â'ô˙˙ä…! „ADHœ! œ!˙ěÔœAÔH×âü`¨c?h„ƒ×â'ô`¨c?d„ƒ×â'řœ‚˙ô„¤œeœĽ˙˙Ô(œ€ĺC „‚˙ř„b˙ü„„˙ú+œkœ€ä# „b˙řc +„b˙řœƒ×â'ř˙˙ä`…!„ADHœ!œ!˙đÔœAÔH×âü×â'ř„b˙řœƒ„d˙úľ…!„ADHœ!%d +œ!˙čÔ œAÔH×âü×â'ř˙ůţœk€¨„ěÔ Ô˙ů÷…!„A DHœ!œ!˙ěÔœAÔH×âü×â'ř„‚˙řœd„ƒ×â'ô„b˙ôœ€˙ůĺœkœ€ä# „b˙ô˙ůÝ?€¨„?”`¨c?”€¨„?”„ÄœŚ˙˙œ…Ô œ`ĺd`¨c?l€¨„?”„¤œ…¸¤ŕc(„ƒ`¨cF|ä$ +`¨c?l€¨„?”„¤œ…¸¤ŕƒ(„d˙ůą˙˙ׄb˙ř„‚˙ôÔ „‚˙řœdœ€Ô „b˙ô„‚˙ř˙ů¤„b˙ô˙ůĄœ`˙ůž…!„ADHœ!> œ!˙´ÔœALÔHÔPœ`ŰâŔœ‚˙Ŕœdœ€;˙ůœ‚˙Ŕœd€¨„ œ ;˙ů†œ`ŰâűB˙Ŕœ‚˙Ŕœd˙ůœŤœ`œŠ˙ůz…!„A…ADHœ!L +œ!˙řÔœAÔHœ`€¨„8˙ůk`¨cFpœ€Ô `¨c>`„ƒœ`ä$ œ`€¨„4œ ˙ůZ…!„ADHœ!œ!˙řÔœAÔHœ`€¨„°˙ůM`¨cFpœ€Ô `¨c>`„ƒœ`ä$ œ`€¨„4œ ˙ů<…!„ADHœ!sh %d: Child %d stopped +sh %d: Child %d died +œ!˙¸ÔœAHÔH ÔPœ‚˙М`˙˙œ œŔ˙ů!œk×âԄ‚˙Фd˙œ€ä ˙ůœ‹œb˙Ř ¨Ľ(Ô(Ô „‚˙ÔÔ ˙ů +˙ů œ‹œb˙Ř ¨ĽAÔ(Ô „‚˙ÔÔ ˙ř˙`¨cFpœ Ô(`¨c>`„ƒœ`ä$ œ`€¨„4œ ˙řîB˙؜‚˙؜d˙řéœŤœ`œŠ˙řä…! „A…ADHœ!Hœ!˙ěÔœAÔH×âü×â'řœ`×âôœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC „b˙ôœ€ä# œ` €¨„F¤˙řÂœ`×âô„‚˙řœdœƒ×â'ř„d€¨„F¤˙řˇ˙˙ŕœ` +€¨„F¤˙ř°…!„ADHœ!Cannot get current directory +%s +œ!ţčÔ œAÔH×âü×â'řœ‚ţřœdœ€˙ř˜œkœ€ä#  `¨cXÔ`¨cFĚ˙řŒ `¨cvÔœbţřÔ˙řƒ…!„A DHœ!Time of day = %d.%6.6d seconds +œ!˙ÜÔœA$ÔH ×âü×â'řœ‚˙đœdœ€˙řl`¨c Ô„b˙đÔ„b˙ôÔ˙řc…! „ADHœ!$HOMENo HOME environment variable +œ!˙čÔœAÔH×âü×â'ř„b˙üœ€ĺC „‚˙řœd„ƒ×â'ô`¨cŒ˙řAœk×âô„b˙ôœ€ä#  `¨c‘Ô`¨cFĚ˙ř3 +„b˙ô˙ř.œkœ€ĺƒ „b˙ô˙ř&…!„ADHœ!œ!˙đÔœAÔH×âü×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC „b˙řœƒ„dœ€˙˙ř œkœ€ĺƒ „b˙řœƒ„d˙ř„b˙řœƒ×â'ř˙˙â…!„ADHœ!œ!˙đÔœAÔH×âü×â'ř„b˙üœ€ĺC „b˙řœƒ„d˙÷čœ‹œd˙÷ä…!„ADHœ!bcBad device type +Bad major number +Bad minor number +œ!˙ÜÔœA$ÔH×âü×â'řœ`ś×âđ„b˙řœƒ„d€¨„ ˆ˙÷Âœkœ€ä# „b˙đ¨ƒ`×â'đ„b˙řœƒ„d€¨„ Š˙÷ąœkœ€ä# „b˙𨃠×â'𠀨„ ŒÔ `¨cFĚ˙÷ ™œ`×â섂˙řœd „ƒ×â'ô„b˙ôƒœ`/ĺD +„b˙ôƒœ`9处b˙윣¸…ŕ„¸¤œb˙ô„ƒÄŕĽ0œĹ˙Đ×â7위Ô ˙˙ă„b˙ôƒœ`ä$„b˙ěœ€ĺƒ  „b˙윀˙ĺC  `¨c Ô`¨cFĚ˙÷`Yœ€×â'脂˙řœd„ƒ×â'ô„b˙ôƒœ`/ĺD +„b˙ôƒœ`9处b˙蜣¸…ŕ„¸¤œb˙ô„ƒÄŕĽ0œĹ˙Đ×â7蜄Ô ˙˙ă„b˙ôƒœ`ä$„b˙čœ€ĺƒ  „b˙蜀˙ĺC  `¨c ŻÔ`¨cFĚ˙÷ „‚˙řœd”‚˙ň„˘˙ěœĹ¸ŚœĹ”˘˙ęŕĆ(¤Ś˙˙„c˙÷œkœ€ĺƒ „b˙řœƒ„d˙÷…!„ADHœ!$œ!˙đÔœAÔH×âü×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC „b˙řœƒ„d˙öíœkœ€ĺƒ „b˙řœƒ„d˙öă„b˙řœƒ×â'ř˙˙ă…!„ADHœ!œ!˙đÔœAÔH×âü×â'ř˙öŇ…!„ADHœ!œ!˙đÔœAÔH×âü×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC „b˙řœƒ„d˙ö¸œkœ€ĺƒ „b˙řœƒ„d˙öŽ„b˙řœƒ×â'ř˙˙ă…!„ADHœ!Mode must be octal +œ!˙äÔœAÔH×âü×â'řœ`×âđ„‚˙řœd„ƒ×â'ô„b˙ôƒœ`/ĺD +„b˙ôƒœ`7处b˙𜃸dœŁ˙Мb˙ô„ƒÄŕĽ0×â/đœ„Ô ˙˙ĺ„b˙ôƒœ`ä$ `¨c%tÔ`¨cFĚ˙öj(„b˙üœƒ˙˙×â'ü„b˙řœƒ×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC „‚˙řœd”‚˙ň„c˙öQœkœ€ĺƒ „b˙řœƒ„d˙öG„b˙řœƒ×â'ř˙˙â…!„ADHœ!Bad uid value +Unknown user name +œ!˙ ÔœA`ÔH×âü×â'ř„‚˙řœd„ƒ×â'ô„b˙ôƒœ`/ĺD :„b˙ôƒœ`9ĺ¤ 4œ`×âđ„b˙ôƒœ`/ĺD +„b˙ôƒœ`9处b˙𜣸…ŕ„¸dœŁ˙Мb˙ô„ƒÄŕĽ0×â/đœ„Ô ˙˙ă„b˙ôƒœ`ä$ €¨„'Ô `¨cFĚ˙őńK„b˙ô˙őęœk×âě„b˙윀ä#  `¨c'Ô`¨cFĚ˙őÜ6„b˙씃×â'đ„b˙üœƒ˙˙×â'ü„b˙řœƒ×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC "„b˙řœƒ×â'ř„b˙řœ‚˙Ź„c˙őžœkœ€ĺƒ „b˙ř”‚˙ň”˘˙ş„c˙őłœkœ€ĺƒ „‚˙ř„d˙ő¨˙˙×…!„ADHœ!`Bad gid value +Unknown group name +œ!˙ ÔœA`ÔH×âü×â'ř„‚˙řœd„ƒ×â'ô„b˙ôƒœ`/ĺD :„b˙ôƒœ`9ĺ¤ 4œ`×âđ„b˙ôƒœ`/ĺD +„b˙ôƒœ`9处b˙𜣸…ŕ„¸dœŁ˙Мb˙ô„ƒÄŕĽ0×â/đœ„Ô ˙˙ă„b˙ôƒœ`ä$ €¨„)€Ô `¨cFĚ˙őUK„b˙ô˙őNœk×âě„b˙윀ä#  `¨c)Ô`¨cFĚ˙ő@6„b˙씃×â'đ„b˙üœƒ˙˙×â'ü„b˙řœƒ×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC "„b˙řœƒ×â'ř„b˙řœ‚˙Ź„c˙ő"œkœ€ĺƒ „b˙ř”‚˙¸”˘˙ň„c˙őœkœ€ĺƒ „‚˙ř„d˙ő ˙˙×…!„ADHœ!`œ!˙ŘÔ œA(ÔH×âü×â'řœ‚˙čœd˙ôü„b˙č×â윂˙ü„¤œeœĽ˙˙Ô(œ€ĺC )„‚˙řœdœƒ×â'ř„d×âôœ‚˙č„b˙ô˙ôĺœkœ€ĺƒ œ`ÁÔœ`śÔ„b˙ô˙ôŮœk×âđ„b˙đœ€ĺc „b˙đ˙ôĎ˙˙Ő„b˙ô˙ôĘ˙˙Đ…!„A DHœ!(%s: not a directory +œ!˙ŘÔ œA(ÔH×âü×â'ř„b˙üœ€ŕc#„‚˙řŕc œƒ˙ü„d×âč„b˙č˙ô­œk×âô„b˙üœ€ĺC „b˙ôœ€ä#  +`¨c,řÔ„b˙čÔ`¨cFĚ˙ô˜_œ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC S„‚˙řœdœƒ×â'ř„d×âđ„b˙đœ€˙ô€œkœ€ĺƒ „b˙đ˙ôx˙˙ă„b˙č×âě„b˙ôœ€ä# „b˙섂˙đ˙ôkœk×âě„b˙đ„‚˙ě˙ôeœkœ€ĺc ˙˙Ë`¨cJř„ƒœ`ä$ „b˙ě˙ôT˙˙ż„b˙đ„‚˙유˙ôMœkœ€ä# ˙˙ł„b˙đ˙ôCœkœ€ĺƒ „b˙đ˙ô;˙˙Ś…!„A DHœ!(-sUnknown option +Wrong number of arguments for symbolic link +œ!˙ŘÔ œA(ÔH×âü×â'ř„‚˙řœd„ƒdœ€-ä 9„b˙řœƒ„d€¨„/4˙ôœkœ€ä# `¨c/7Ô`¨cFĚ˙ôƒ„b˙üœ€ä# `¨c/GÔ`¨cFĚ˙óöu„‚˙řœd„˘˙řœ… „c„„˙óěœkœ€ĺƒ „b˙řœƒ „d˙óâa„b˙üœ€ŕc#„‚˙řŕc œƒ˙ü„d×âč„b˙č˙óŐœk×âô„b˙üœ€ĺC „b˙ôœ€ä#  +`¨c,řÔ„b˙čÔ`¨cFĚ˙óŔ?œ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC 3„‚˙řœdœƒ×â'ř„d×âđ„b˙đœ€˙ó¨œkœ€ĺƒ „b˙đ˙ó ˙˙ă„b˙č×âě„b˙ôœ€ä# „b˙섂˙đ˙ó“œk×âě„b˙đ„‚˙ě˙óœkœ€ĺƒ „b˙ě˙ó…˙˙Č˙˙Ć…!„A DHœ!(œ!˙ŘÔ œA(ÔH×âü×â'ř„b˙üœ€ŕc#„‚˙řŕc œƒ˙ü„d×âč„b˙č˙ólœk×âô„b˙üœ€ĺC „b˙ôœ€ä#  +`¨c,řÔ„b˙čÔ`¨cFĚ˙óW(œ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC „b˙č×â섂˙řœdœƒ×â'ř„d×âđ„b˙ôœ€ä# „b˙섂˙đ˙ó8œk×âě„b˙đ„‚˙유˙ó1˙˙Ý…!„A DHœ!(minixMissing file system type +Wrong number of arguments for mount +mount failedœ!˙äÔœAÔH×âü×â'ř„b˙üœƒ˙˙×â'ü„b˙řœƒ×â'ř`¨c3\×âđ„b˙üœ€ĺC „b˙ř„ƒdœ€-ä M„b˙üœƒ˙˙×â'üœb˙ř„ƒ„¤×â/ôœ„Ô „‚˙ôœdœƒ×â'ôdœ€ä# 7„b˙ôƒœ`tä$„b˙üœ€ĺŁ  „b˙ř„ƒdœ€-ä  `¨c3bÔ`¨cFĚ˙ňĆ:œb˙ř„ƒ„¤×â/đœ„Ô „b˙üœƒ˙˙×â'ü `¨c/7Ô`¨cFĚ˙ň˛&˙˙Â˙˙§„b˙üœ€ä#  ¨Ľ3|Ô(`¨cFĚ˙ň „b˙ř„˘˙řœ…„c„„„˘˙đœŔ˙ň•œkœ€ĺƒ `¨c3Ą˙ňŒ…!„ADHœ!œ!˙đÔœAÔH×âü×â'ř„b˙řœƒ„d˙ň}œkœ€ĺƒ „b˙řœƒ„d˙ňs…!„ADHœ!Files are links to each other +Files are different sizes +Files are identical +First file is shorter than second +Second file is shorter than first +Files differ at byte position %ld +œ!˙8Ô œAČÔH×âü×â'ř„‚˙řœdœ‚˙ˆ„c˙ň5œkœ€ĺƒ „b˙řœƒ„d˙ň+„‚˙řœdœ‚˙H„c˙ň#œkœ€ĺƒ „b˙řœƒ„d˙ňň”b˙ˆ”‚˙Hä „b˙Œ„‚˙Lä `¨c6LÔ˙ňá„b˙œ„‚˙\ä# €¨„6kÔ ˙ńüŐ„‚˙řœdœ€Ô „c˙ńóœk×âô„b˙ôœ€ĺƒ „b˙řœƒ„d˙ńçŔ„‚˙řœdœ€Ô „c˙ńŢœk×âđ„b˙đœ€ĺƒ „b˙řœƒ„d˙ńŇ„b˙ô˙ńϨœ`đ˙ńĘœk×â̜`đ˙ńĹœk×âȜ`×âä‹`¨cFp„ƒœ`ä$ ƒ„b˙ô„‚˙̜ đ˙ńŻ×â_ě„b˙ěœ€ĺƒ „b˙řœƒ„d˙ń¤q„b˙đ„‚˙Ȝ đ˙ń×â_č„b˙čœ€ĺƒ „b˙řœƒ„d˙ń’_„b˙윀ä# „b˙蜀ä#  €¨„6†Ô ˙ńN„b˙섂˙čĺƒ `¨c6›Ô˙ńuB„b˙섂˙čĺC €¨„6žÔ ˙ńi6„b˙̄‚˙Ȅ˘˙ě˙ńbœkœ€ä# „b˙䄂˙ěŕc ×âä˙˙˜„b˙Ě×âԄ‚˙Č×â'Мb˙Ԅƒœâ˙Ѕ¤ČÔ@œ„Ô ä0„b˙䜃×â'ä˙˙î`¨c6áÔ„‚˙äÔ ˙ń8˙˙u„b˙ô˙ń0„b˙đ˙ń-„b˙Ě˙ń*„b˙Č˙ń'…!„A DHœ!Čr<< %s >> +--More--œ!˙„Ô œA|ÔH×âü×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC „‚˙řœdœƒ×â'ř„d×âđ„b˙đœ€˙˙œ Ŕ¨Ć;|˙đ˙œk×âô„b˙ôœ€ä# „b˙đ˙đőü ¨Ľ;~Ô(„b˙đÔ˙đěœ ×â/čœ`×âä„b˙ôœ€ä# „b˙ô˙đŕœk×âě„b˙윀˙˙ä# Ô„b˙윀 ä !œ€ ĺC œ€ä  (œ€ +ä  œ€ +ä œ ×â/ä„b˙蜃×â'čœ`×âä„‚˙äœd¨ƒœd×âä„b˙䜀ĺC „b˙䜃˙˙×â'ä„b˙䜃×â'ä`¨cF¤€¨„F¤„c„„äc „b˙쀨„F¤˙đ `¨cF¤„ƒŒ˘˙ďŘ(œ„Ô „b˙䜀OĺC „b˙䜃˙°×â'ä„b˙蜃×â'č„b˙蜀ĺŁ ˙˙Ž„b˙䜀ĺC `¨cF¤€¨„F¤„c„„äc œ` +€¨„F¤˙đa `¨cF¤„ƒœ  +Ř(œ„Ô `¨c;ˆÔ˙đS`¨cF¤˙đO`¨cFp„ƒœ`ä$ œ‚˙”œ`œ P˙đC „b˙ôœ€ä# „b˙ô˙đ9@b˙”×âě„b˙윀:ä b˙•×âě„b˙윀Qä œ€QĺC œ€Nä œ€nä œ€qä  „b˙ô˙đœ ×â/ô„b˙ô˙đ œ`×â䜠×â/č˙˙„b˙ôœ€ä# „b˙ô˙ďű˙ţä…!„A DHœ!|œ!˙đÔœAÔH×âü×â'řœ`˙ďě…!„ADHœ!œ!˙đÔœAÔH×âü×â'ř„‚˙řœd„˘˙řœ…„c„„œ ˙ďŮ…!„ADHœ!œ!˙ŕÔ œA ÔH×âü×â'ř`¨c•ˆ„ƒ×â'ô„b˙üœ€ä „b˙ô„ƒœ`ä$ ¨ĽvÔ(œb˙ô„ƒ„¤Ô(œ„Ô ˙ďł˙˙íA„b˙řœƒ„d˙ďŞ×â_đ„b˙ô„ƒœ`ä$3„‚˙ô„d˙ďœk„‚˙đäC %„b˙ô„ƒ„˘˙đŕd(ƒœ`=ä „‚˙řœd„‚˙ô„c„„„˘˙đ˙ď‡œkœ€ä# `¨cvÔ„b˙ô„˘˙đœ…„cŕƒ Ô ˙ďw„b˙ôœƒ×â'ô˙˙É…!„A DHœ! %03o +Bad umask value +œ!˙ŕÔ œA ÔH×âü×â'ř„b˙üœ€ĺŁ œ`˙ďXœk¤ƒ˙˙×â'đ”‚˙ňœd˙ďQ`¨cBXÔ„‚˙đÔ ˙ďJAœ ×â/đ„‚˙řœd„ƒ×â'ô„b˙ôƒœ`/ĺD +„b˙ôƒœ`7处b˙𜃸¤œb˙ô„ƒÄŕĽ0œĹ˙Đ×â7đœ„Ô ˙˙ĺ„b˙ôƒœ`ä$ „‚˙đœ ţŕd(œ€ä#  `¨cB^Ô`¨cFĚ˙˙ňœd˙ď …!„A DHœ! HUPINTQUITILLTRAPABRTIOTBUSFPEKILLUSR1SEGVUSR2PIPEALRMTERMSTKFLTCHLDCONTSTOPTSTPTTINTTOUURGPWRUnknown signal +Non-numeric pid +œ!˙ŕÔœA ÔH×âü×â'řœ`×âđ„‚˙řœd„ƒdœ€-ä ›„‚˙řœd„ƒœd×âô„b˙ô€¨„Cô˙îĹœkœ€ä# œ`×âđ‚„b˙ô€¨„Cř˙îˇœkœ€ä# œ`×âđt„b˙ô€¨„Cü˙kœ€ä# œ`×âđf„b˙ô€¨„D˙kœ€ä# œ`×âđX„b˙ô€¨„D˙kœ€ä# œ`×âđJ„b˙ô€¨„D +˙îœkœ€ä# œ`×âđ<„b˙ô€¨„D˙îqœkœ€ä# œ`×âđ.„b˙ô€¨„D˙îcœkœ€ä# œ`×âđ „b˙ô€¨„D˙îUœkœ€ä# œ`×âđ„b˙ô€¨„D˙îGœkœ€ä# œ` ×âđ„b˙ô€¨„D ˙î9œkœ€ä# œ` +×âđö„b˙ô€¨„D%˙î+œkœ€ä# œ` ×âđč„b˙ô€¨„D*˙îœkœ€ä# œ` ×âđÚ„b˙ô€¨„D/˙îœkœ€ä# œ` +×âđĚ„b˙ô€¨„D4˙îœkœ€ä# œ`×âđž„b˙ô€¨„D9˙íóœkœ€ä# œ`×âđ°„b˙ô€¨„D>˙íĺœkœ€ä# œ`×âđ˘„b˙ô€¨„DE˙íלkœ€ä# œ`×âđ”„b˙ô€¨„DJ˙íÉœkœ€ä# œ`×âđ†„b˙ô€¨„DO˙íťœkœ€ä# œ`×âđx„b˙ô€¨„DT˙í­œkœ€ä# œ`×âđj„b˙ô€¨„DY˙ퟜkœ€ä# œ`×âđ\„b˙ô€¨„D^˙í‘œkœ€ä# œ`×âđN„b˙ô€¨„Dc˙태kœ€ä# œ`×âđ@„b˙ô€¨„Dg˙íuœkœ€ä# œ`×âđ2œ`×âđ„b˙ôƒœ`/ĺD +„b˙ôƒœ`9处b˙𜣸…ŕ„¸¤œb˙ô„ƒÄŕĽ0œĹ˙Đ×â7đœ„Ô ˙˙ă„b˙ôƒœ`ä$ `¨cDkÔ`¨cFĚ˙í>Y„b˙üœƒ˙˙×â'ü„b˙řœƒ×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC G„‚˙řœdœƒ×â'ř„d×âôœ`×âě„b˙ôƒœ`/ĺD +„b˙ôƒœ`9处b˙윣¸…ŕ„¸¤œb˙ô„ƒÄŕĽ0œĹ˙Đ×â7위Ô ˙˙ă„b˙ôƒœ`ä$ `¨cD{Ô`¨cFĚ˙ěö„b˙섂˙đ˙ěđœkœ€ĺƒ „‚˙ř„d˙ěç˙˙˛…!„ADHœ! rœ!˙”ÔœAlÔH×âü×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC S`¨cFp„ƒœ`ä$ „b˙ô˙ěĹG„‚˙řœdœƒ×â'ř„d×âđ„b˙đœ€˙˙œ Ŕ¨ĆL„˙ěśœk×âô„b˙ôœ€ä# „b˙đ˙ěŹ.„b˙ôœ€ä# œ‚˙œœdœ€œ P„Â˙ô˙ěœ‹œd×â윀ä#  œ‚˙œœdœ€„˘˙ěŔ¨ĆF¤˙ěŠ˙˙á„b˙ôœ€ä# „b˙ô˙ě€˙˙Ś…!„ADHœ!lNo memory for ls buffer +Unknown option -%c +Cannot do compact list with other options +ls. +%s: +/No memory for filenames +œ!ţ„Ô œA|ÔHÔP×âü×â'ř`¨c@Єƒœ`ä$@ŠJ@̜`˙ěGœkÔ +`¨c@̄ƒœ`ä$ `¨cN Ô`¨cFĚ˙ě78`¨c@М€Ô `¨c@Ԝ Ô(œ`×âě„b˙üœ€ĺC ‚„‚˙řœd„ƒdœ€-ä z„b˙üœƒ˙˙×â'ü„‚˙řœdœƒ×â'ř„dœƒ×â'ô„b˙ôƒœ`ä$hœ‚˙ô„¤ŒeœĂ˙˝¸f¸c˜œĽÔ(œ€)äC Mœ€ŕc# ¨ĽP(ŕƒ(„dDQ Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q Q4Q4PäQ4Q4Q4Q4PřQ4Q4PЄb˙쨃×â'ě#„b˙쨃×â'ě„b˙쨃×â'ě„b˙쨃×â'ě„b˙쨃 ×â'ě`¨cN9Ô„‚˙ôœd˙˙ƒÔ `¨cFĚ˙몍˙˙”„‚˙ě¤d œ€ä# „‚˙유˙ßŕd(œ€ä# `¨cNMÔ`¨cFĚ˙ë’“„b˙üœ€ĺŁ œ€×â'ü ¨Ľ@œ×â/ř„b˙ř€¨„NxÔ „‚˙řœd ¨ĽN{Ô(„b˙üœ€ĺC „b˙쨃×â'ěœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC `„‚˙řœdœƒ×â'ř„d×âđ@„b˙𐃜`ä$ „b˙đ˙ëYœk„‚˙đŕc œƒ˙˙dœ€/ä @×âWŕœ‚ţ˜„b˙đ˙ëJœkœ€ĺƒ „b˙đ˙ëB˙˙΄‚˙ě¤dœ€ä#  ”bţ ¤ƒđ¤d˙˙œ€@ä#  œ‚ţ˜„b˙đ„˘˙ěA˙˙¸„b˙đ˙ë'œk×âä„b˙䜀ä# „b˙đ˙ë˙˙Š„‚˙ě¤dœ€ä# €¨„N}Ô „˘˙đÔ(˙ë„b˙ä˙ë +œk×â؄b˙؜€ä#  „b˙ؐƒ +œ`.ä +„‚˙ě¤dœ€ä# ˙˙čœ`Űâ؄b˙𐃜`.ä$ „‚˙đœdƒœ`ä$œ‚ţ؜d„‚˙đ˙ęÝ„b˙ŕœ€ä# œ‚ţ؜d€¨„Nƒ˙ęŇœbţ؄˘˙؜… +˙ęÍ`¨c@Ô€¨„@Єc„„ĺc 2`¨c@Єƒœdœ ŕƒ+œd˙ęťœk×â܄b˙ܜ€ä#  €¨„N Ô `¨cFĚ˙ę­J€¨„@Ě`¨c@ЄŁœe¸Ł„b˙܄„˙ę €¨„@̄d˙ę›`¨c@Đ€¨„@Є¤œ…Ô œ‚ţ؜d˙ęœk ¨Ľ@Ԅ…œ ŕ„+Ŕ¨Ć@̄Śŕ„(Ô€¨„@Ԅdœ€ŕc# ¨Ľ@̄…ŕc „ƒœ`ä$  ¨ĽN…Ô(`¨cFĚ˙ęp +€¨„@Ô`¨c@Ô€¨„@Ԅ¤œ…Ô ˙˙X„b˙ä˙ę``¨c@Ě€¨„@Ԅc„„œ Ŕ¨Ćˆ°˙ęUœ`×âč`¨c@Ԅ‚˙č„cĺ„;„b˙蜀ŕc# ¨Ľ@̄…ŕc „ƒ×â'đœ‚ţ˜„b˙đ˙ę=œkœ€ĺƒ +„b˙đ˙ę5„b˙đ˙ę2„b˙đœ€/˙ę,œk×âô„b˙ôœ€ä# „b˙ôœƒ×â'ô„˘˙đ×â/ôœ‚ţ˜„b˙ô„˘˙ě.„b˙đ˙ę„b˙蜃×â'č˙˙Ŕ`¨c@Ԝ€Ô ˙ţ™`¨c@˜„ƒœ`ä$ œ` +€¨„F¤˙é˙…!„A …ADHœ!|%5d %3d %d%-8s %3d, %3d %8d %-12s -> %sœ!ţĐÔœA0ÔH ×âü×â'ř×â/ôœbţä×âđ„b˙đœ€Ř „‚˙ô¤dœ€ä# `¨cX Ô„b˙ř„ƒÔ „b˙đ˙éŇ„b˙đ˙éĎœk„‚˙đŕd×âđ„‚˙ô¤dœ€ä# Ę„b˙ř”ƒœd˙éŔœ‹„b˙đ˙éź„b˙đ˙éšœk„‚˙đŕd×âđ`¨cX%Ô„b˙ř”ƒ +Ô „b˙đ˙鏄b˙đ˙銜k„‚˙đŕd×âđ`¨c@´„ƒœ`ä$ „‚˙ř”d €¨„@°„¤ä#(€¨„X*Ô „b˙ř”ƒ Ô `¨c@¤˙éŠ`¨c@°„‚˙ř”¤ Ô(`¨c@´œ€Ô `¨cX-Ô€¨„@¤Ô „b˙đ˙éx„b˙đ˙éuœk„‚˙đŕd×âđ`¨c@Ȅƒœ`ä$ „‚˙ř”d€¨„@Ą¤ä#(`¨cX*Ô„b˙ř”ƒÔ `¨c@¸˙éV`¨c@Ą‚˙ř”¤Ô(`¨c@Ȝ€Ô `¨cX-Ô€¨„@¸Ô „b˙đ˙éD„b˙đ˙éAœk„‚˙đŕd×âđ„b˙ř”ƒ¤dđ¤ƒ˙˙œ``ä „b˙ř”ƒ¤dđ¤ƒ˙˙œ` ä`¨cX3Ô„b˙ř”ƒ¸dH¤ƒ˙˙Ô „b˙ř”ƒ¤d˙¤ƒ˙˙Ô „b˙đ˙é €¨„X=Ô „b˙ř„ƒÔ „b˙đ˙é„b˙đ˙é +œk„‚˙đŕd×âđ„‚˙ř„d(˙éœk€¨„XBÔ Ô„b˙đ˙čýœ‚ţäœd€¨„F¤˙č÷„b˙ü€¨„F¤˙čň„‚˙ô¤dœ€ä# "„b˙ř”ƒ¤dđ¤ƒ˙˙¨` ä œ‚ţä„b˙üœ ˙˙čßœk×âä„b˙䜀ĺc œbţ䄂˙äŕc œ€Ř `¨cXJÔœbţäÔ˙čĚ„‚˙ô¤d œ€ä# ;„b˙ü˙čĂ×â_ä„b˙䜀ĺŁ „b˙䜀ĺŁ  œ` €¨„F¤˙čą„b˙䜃×â'ä˙˙ń`¨c@˜€¨„@˜„¤œ…Ô `¨c@˜œ€PÔ `¨c@˜„ƒœ`OĺD œ` +€¨„F¤˙č“`¨c@˜œ€Ô œ` +€¨„F¤˙čˆ…! „ADHœ!0X%dS%d%c%xœ!˙äÔœAÔH ×â'řßâţ„b˙ř€¨„]ř˙ču”b˙ţ¸ƒH¤d˙˙œ€Kä `¨c]ůÔ”b˙ţ¤ƒ˙¤d˙˙Ô„b˙ř˙čd1”b˙ţ¸ƒH¤d˙˙œ€ä `¨c]ýÔ”b˙ţ¤ƒ˙¤d˙˙œƒ˙ŔÔ „b˙ř˙čP”b˙ţ¸ƒH¤d˙˙œ€ä `¨c^Ô`¨c@ؔ‚˙ţ¤¤˙¤Ĺ˙˙¸†D¤¤˙˙ŕc(ƒÔ ”b˙ţ¤ƒ¤d˙˙Ô„b˙ř˙č3…! „ADHœ! PID PORT STAT SIZE SHARED %%CPU COMMAND +/proc/uptimeUnable to open /proc/uptime +Unable to read uptime/proc/proc/%s/statUnable to read status/proc/%s/statusrMem:Shared:/proc/%s/cmdlineUnable to open cmdlineUnable to read cmdline%5d %4s %c %3ldK %3ldK %2u.%u %s +A BȜ!˙xÔ(œAˆÔH$ÔP,×âü×â'ř`¨c_LÔ˙çŮœ€Ô `¨c_w˙çÓœk×âđ„b˙đœ€˙˙ä `¨c_„˙çČŤ„b˙đ€¨„A,œ ˙˙çŔœk×âЄb˙đ˙çť„b˙М€ĺŁ `¨c_Ą˙粕`¨cA,„‚˙Đŕc œ Ř(`¨cA,œ€Ř ˙ ¨ĽA,×â/Ԅb˙Ô˙ç ×â_Ȝ`˙眜k×âĚ`¨c_ˇ˙ç–œk×âä„b˙䜀ä# r„b˙ä˙牜k×â؄b˙؜€ä# bœ`×âô„b˙؜ƒ +œd˙çyœk„‚˙ôä„`¨cK؄‚˙؜¤ +„‚˙ô༠…ŕc Œƒ¤d¤ƒ˙œ`ä$A„b˙ôœƒ×â'ô˙˙ŕ€¨„_˝Ô „b˙؜ƒ +Ô `¨cA,˙çRœ Ô(`¨cA,˙çLœk×âđ„b˙đœ€˙˙ä ˙˙š„b˙đ€¨„A,œ ˙˙ç=œk×âЄb˙М€ĺŁ `¨c_Ë˙ç2„b˙đ˙ç/˙˙Ł`¨cA,„‚˙Đŕc œ€Ř `¨cA,œ Ř(˙`¨cA,œ€)˙çœk×âԄb˙Ԝ€Ř `¨cB\„˘˙Ԝ…Œ¤Ř(„b˙Ԝƒ×â'Ԅb˙Ô˙ç +œk€¨„B`Ô„b˙Ԝ€ ˙çœkœƒ×â'Ԅb˙Ô˙ć˙œk€¨„BdÔ„b˙Ԝ€ ˙ć÷œkœƒ×â'Ԅb˙Ô˙ćńœk€¨„BhÔ„b˙Ԝ€ ˙ćéœkœƒ×â'Ô@ŠJBl„b˙Ô˙ćáœkÜ +„b˙Ԝ€ ˙ćŰœkœƒ×â'Ԅb˙Ԝ€ ˙ćÔœkœƒ×â'Ԅb˙Ԝ€ ˙ćÍœkœƒ×â'Ԅb˙Ԝ€ ˙ćĆœkœƒ×â'Ԅb˙Ԝ€ ˙ćżœkœƒ×â'Ԅb˙Ԝ€ ˙ć¸œkœƒ×â'Ԅb˙Ԝ€ ˙ćąœkœƒ×â'Ԅb˙Ô˙ćŤœk×â´„b˙Ԝ€ ˙ćĽœkœƒ×â'Ԅb˙Ô˙ćŸœk×â°„b˙Ԝ€ ˙ć™œkœƒ×â'Ԅb˙Ԝ€ ˙ć’œkœƒ×â'Ԅb˙Ԝ€ ˙ć‹œkœƒ×â'Ԅb˙Ԝ€ ˙ć„œkœƒ×â'Ԅb˙Ԝ€ ˙ć}œkœƒ×â'Ԅb˙Ԝ€ ˙ćvœkœƒ×â'Ԅb˙Ԝ€ ˙ćoœkœƒ×â'Ԅb˙Ô˙ćiœk×âŹ`¨cA,œ€(˙ćbœk×âԄb˙Ԝƒ×â'Ô`¨cB,„‚˙Ô˙ćX`¨cA,˙ćTœk€¨„BTÔ`¨cBX€¨„B\¤Ô(„b˙đ˙ćG`¨cBl”ƒœd€¨„Bn˙ýÁœ`×âŕœ€×â'Ü ¨Ľ_áÔ(„b˙؜ƒ +Ô `¨cA,˙ć1`¨cA,œ€˙˙œ Ŕ¨Ć_ń˙ć)œk×âč„b˙蜀ä# 8`¨cA,œ€ú„˘˙č˙ćœkœ€ä# (`¨cA,€¨„_óœ ˙ćœkœ€ä#  `¨cA1˙ć×â_ŕ`¨cA,€¨„_řœ ˙ĺűœkœ€ä# `¨cA4˙ĺň×â_Ü˙˙Ď„b˙č˙ĺě„‚˙ŕ¸dJ×âŕ„‚˙ܸdJ×â܄b˙ȜŁ¸…ŕ„¸¤ŕĽ¸e„˘˙Źŕƒ(œdœ€d˙ĺŮœ‹œd˙ĺŐ×â_Ŕ„b˙Ě˙ĺŃœ‹œd„‚˙Ŕ˙ĺĚœk×âź„b˙´„˘˙°ŕƒ(œd˙ĺÄ×â_¸„b˙Ŕ ¨Ľ`h„…˙ĺ˝œkœ€ä# €¨„`l„b˙¸„„˙ĺ˛œk€¨„`p„„˙ĺŹœk€¨„`p„„˙ĺŚœ‹œd„‚˙Ŕ˙ĺĄœ‹œd˙ĺœkœ`×⨄b˙¨œ€çĺC œ`ç×⨀¨„`Ô „b˙؜ƒ +Ô `¨cA,˙ĺ‡œ Ô(`¨cA,˙ĺœk×âđ„b˙đœ€˙˙ä `¨c`˙ĺv˙ýę„b˙đ€¨„A,œ ˙˙ĺnœk×âЄb˙М€ĺƒ `¨c`(˙ĺc„b˙đ˙ĺ`˙ýÔ„b˙đ˙ĺ[`¨cA,€¨„A,„˘˙Đŕ„(œ Ř(œ€Ř ˙ ¨Ľ`?Ô(`¨cBT„ƒÔ  ¨ĽBnÔ(`¨cBX„ƒÔ „˘˙ŕÔ(„b˙ÜÔ„‚˙¨œdœ€ +˙ĺ:œkÔ„‚˙¨œdœ€ +˙ĺ3œkÔ„b˙М€ä# €¨„A,Ô  ¨ĽB,Ô( ˙ĺ"˙ý–„b˙ä˙ĺ…!$„A(…A,DHœ!ˆ-sr %4X:- -%02.2X %02.2X %s +--more--œ!˙4Ô œAĚÔH×âü×â'řœ`×âPœ€×â'L„b˙ř„Ł×â/H„b˙üœ€ĺC „b˙řœƒ„d€¨„k¨˙äîœkœ€ä# „b˙řœƒ„dœ€œ ˙äâœk×âL„b˙üœƒ˙ţ×â'ü„b˙řœƒ×â'ř„b˙üœ€ĺC „‚˙řœd„ƒ×â'P„b˙Pœ€˙˙œ Ŕ¨ĆkŤ˙äĘœk×âô„b˙ô„‚˙Lœ ˙äĂœ ×â/ěœ`Űâč„b˙ô„ƒ¤dœ€ä# œ‚˙؜d€¨„k­˙ä°„‚˙L¤d„‚˙ěä„)„b˙윀ä#  €¨„kžÔ „b˙Lœ ˙đŕƒ(Ô ˙äš„b˙윀ä `¨ckĂÔ€¨„kÇÔ ˙ä‹œb˙؄‚˙ěŕc œ  Ř(„b˙윃×â'ě˙˙Óœ`×âDœb˙T„‚˙L¤¤œ€€ŕ¤(œ€„Â˙ô˙ävœk×âđ„b˙đœ€ĺŁ Ő„b˙D„‚˙đĺƒ f„b˙L¤ƒ×â'ě„b˙윀ä#  €¨„kžÔ „b˙Lœ ˙đŕƒ(Ô ˙äTœb˙T„‚˙Dŕc Œƒœ`ä¤ œb˙T„‚˙Dŕc Œƒœ`~äD œb˙؄‚˙ěŕc œ€.Ř +œb˙؄‚˙ěŕc œ‚˙T„˘˙Dŕ„(Œ¤Ř(„b˙윀ä# „b˙윀ä `¨ckËÔ€¨„kÓÔ  ¨ĽkÓÔ(œb˙T„‚˙Dŕc ŒƒÔ ˙ä„b˙윀ä `¨ckŰÔœb˙ŘÔ˙ä „b˙Lœƒ×â'L„b˙Dœƒ×â'D˙˙—„b˙L¤ƒœd×â윀ä# )„b˙윀ĺŁ „b˙윀ä €¨„kĂÔ  ¨ĽkÇÔ(˙ăăœb˙؄‚˙ěŕc œ€ Ř „b˙윃×â'ě˙˙â ¨ĽkŰÔ(œb˙ŘÔ˙ăŇ„b˙ô„ƒ¤dœ€ä# 1`¨ckŕÔ˙ăÄ`¨cF¤˙ăŔœ‚˙Tœdœ€P ¨ĽF|˙ăš`¨cK،‚˙Tŕc Œƒ¤d¤ƒ˙œ`ä$ Œb˙TŹƒ ¤d˙œ€Qä   Œb˙Tœ€Qä ˙ţÝ…!„A DHœ!Ě/Unable to get disk space of %s: %s +Total bytes: %ld +Free bytes: %ld +Total nodes: %ld +Free nodes: %ld +œ!˙ ÔœA`ÔH ×âü×â'ř„b˙üœ€ĺŁ `¨cq°×âô„‚˙řœd„ƒ×â'ôœ‚˙´„b˙ô˙ăcœkœ€˙˙ä €¨„Jř„d˙ăYœk€¨„q˛Ô „‚˙ôÔ Ô˙ăP"`¨cqÖÔ„b˙¸„‚˙źŕc#Ô˙ăE€¨„qčÔ „b˙¸„‚˙Ŕŕc#Ô˙ă<`¨cqůÔ„‚˙ČÔ ˙ă5`¨cr Ô„‚˙ĚÔ ˙ă.…! „ADHœ!`/proc/meminforUnable to open /proc/meminfo: œ!ţčÔœAÔH×âü×â'ř`¨cs`œ€˙˙œ Ŕ¨Ćsn˙ăœk×âđ„b˙đœ€ä# `¨csp˙ă œ`×âô„b˙ôœ€ĺŁ œ‚ţđœdœ€ú„˘˙đ˙âóœ‚ţđœd€¨„F¤˙âí„b˙ôœƒ×â'ô˙˙ę„b˙đ˙âĺ…!„ADHœ!That name is too long. +%s +œ!ţŕÔ œA ÔHÔP×âü×â'ř„b˙üœ€ĺC „b˙řœƒ„d˙âÉœkœ€äC `¨ct„Ô˙âż +„b˙řC„b˙řœƒ„d˙âśœ‹„j˙â˛œ‚ţôœdœ€˙âŤ`¨ctœÔœbţôÔ˙⤅!„A …ADHœ! Invalid date %s +%2d%2d%2d%2d%dUnable to set date +%s +œ!˙°Ô œAPÔHÔP×âü×â'řœ‚˙ôœd˙↝B˙Ȝ‚˙ôœd˙⁜‹œjœ ,˙â|„b˙üœ€ĺC j„‚˙řœdœ‚˙Ȝ¤œ‚˙ČœÄ œ‚˙Ȝ䜂˙ȝœ‚˙ȝ$ÔH„c€¨„u˙âeœk×âĄb˙Ĝ€ĺŁ  „b˙Ĝ€ĺC `¨cuŒÔ„‚˙řœd„ƒÔ `¨cFĚ˙âL`J„b˙ܜ€kĺC „b˙ܜƒř”×â'܄b˙؜ƒ˙˙×â'؜‚˙Ȝd˙â:œk×âô„b˙ôœ€ĺƒ `¨cuŒÔ„‚˙řœd„ƒÔ `¨cFĚ˙â(`&œ‚˙ôœd˙â!œkœ€ĺƒ `¨cuŹÔ`¨cFĚ˙â``œ‚˙Ȝd˙â œk€¨„uŔÔ Ô˙â`…!„A …ADHœ!P----------œ!˙ôÔœA ÔH×âü`¨cBx€¨„x˙áî„‚˙ü¤dđœ€@ä `¨cBxœ€dŘ „‚˙ü¤d𜀠ä `¨cBxœ€cŘ „‚˙ü¤dđœ€`ä `¨cBxœ€bŘ „‚˙ü¤dđœ€ä `¨cBxœ€pŘ „‚˙ü¤d𨀠ä `¨cBxœ€lŘ „‚˙ü¤dđ¨€Ŕä `¨cBxœ€sŘ „‚˙ü¤dœ€ä# `¨cBxœ€rŘ „‚˙ü¤d€œ€ä# `¨cBxœ€wŘ „‚˙ü¤d@œ€ä# `¨cBxœ€xŘ „‚˙ü¤d œ€ä# `¨cBxœ€rŘ „‚˙ü¤dœ€ä# `¨cBxœ€wŘ „‚˙ü¤dœ€ä# `¨cBxœ€xŘ „‚˙ü¤dœ€ä# `¨cBxœ€rŘ „‚˙ü¤dœ€ä# `¨cBxœ€wŘ „‚˙ü¤dœ€ä# `¨cBxœ€xŘ „‚˙ü¤dœ€ä# `¨cBx„˘˙ü¤…@œ ä$( œ€sœ€SŘ „‚˙ü¤dœ€ä# `¨cBx„˘˙ü¤…œ ä$( œ€sœ€SŘ „‚˙ü¤dœ€ä# `¨cBx„˘˙ü¤…œ ä$( œ€tœ€TŘ `ŠkBx…!„ADHœ! œ!˙ěÔœAÔH×âüœ‚˙řœd˙ᜂ˙üœd˙á +œk×âô„b˙ôœƒ`¨cB„˙á`¨cB„œ€Ř „b˙ü„‚˙řĺC  „‚˙ř ţ¨ĽĚ€ŕd(„‚˙üĺ„ „b˙ôœƒ`¨cB‹˙ŕé`¨cB„œ€Ř `ŠkB„…!„ADHœ!œ!˙´ÔœALÔH×âüœ‚˙ź„b˙ü˙ŕÔœkœ€ĺƒ `œ`”‚˙Ĥ¤đ¤…˙˙œ @ä( œ`c…!„ADHœ!LCopying file "%s" to itself +Unable to allocate buffer of %d bytes +œ!˙@Ô œAŔÔH×âü×â'ř×â/ôœ`đ×âTœ`×âPœ‚˙ „b˙ü˙ŕœœkœ€ĺƒ „b˙ü˙ŕ”`ďœ‚˙`„b˙ř˙ŕœkœ€ĺƒ œ`˙˙×âd¨`˙˙ßâ`”b˙ ”‚˙`ä „b˙¤„‚˙dä `¨c}Ô„b˙üÔ`¨cFĚ˙ŕq`Ěœ`Ô„b˙ü˙ŕiœk×âđ„b˙đœ€ĺƒ „b˙ü˙ŕ_`şœ`AÔ”b˙¨Ô„b˙ř˙ŕUœk×âě„b˙ěœ€ĺƒ „b˙ř˙ŕK„b˙đ˙ŕH`Ł„b˙T˙ŕBœk×âP„b˙Pœ€ä# `¨c}5Ô„b˙TÔ`¨cFĚ˙ŕ2`„b˙đ„‚˙P„˘˙T˙ŕ)œk×âč„b˙蜀ĺC >`¨cFp„ƒœ`ä$ „b˙đ˙ŕ„b˙ě˙ŕ„b˙P˙ŕ`k„b˙P×âŕ„b˙蜀ĺC  „b˙섂˙ŕ„˘˙č˙ß˙œk×âä„b˙äœ€ĺƒ +„b˙ř˙ßő„b˙P˙ßňE„b˙ŕ„‚˙äŕc ×âŕ„b˙脂˙äŕc ×âč˙˙Ý˙˙¸„b˙P˙ßá„b˙čœ€ĺƒ „b˙ü˙ßŮ,„b˙đ˙ßÔ„b˙ě˙ßŃœkœ€ĺƒ „b˙ř˙ßɝ`$„b˙ôœ€ä# ”‚˙¨„b˙ř˙ß˝”‚˙Ź”˘˙Ž„b˙ř˙߸„b˙Ŕ×âX„b˙Č×â\œ‚˙X„b˙ř˙ß°` „b˙đ˙ߪ„b˙ě˙ߧ`…!„A DHœ!Ŕ/œ!˙ěÔœAÔH×âü×â'ř„b˙üœ€ä# +„b˙üƒœ`ä$„b˙řc$„b˙řœ€/˙߄œk×âô„b˙ôœ€ä# „b˙ôœƒ×â'ř`¨cBž„‚˙ü˙ßu`¨cBž€¨„ˆ˙ßo`¨cBž„‚˙ř˙ßj`ŠkBž…!„ADHœ!Wildcards only implemented for last filename component +...Too many filename matches +No memory for filename +No matches +œ!ţČÔœA8ÔH×âü×â'ř×â/ô„b˙üœ€/˙ß8œk×âđ„b˙đœ€ä# „b˙đœƒ×â'đ„b˙ü×âđ„b˙üœ€*˙ß&œk×âě„b˙üœ€?˙ß œk×âč„b˙üœ€[˙ßœk×âä„b˙윀ä# „b˙蜀ä#  +„b˙䜀ä# `.„b˙윀ä# „b˙섂˙đäƒ „b˙蜀ä# „b˙脂˙đäƒ „b˙䜀ä# „b˙䄂˙đäƒ  €¨„‚€Ô `¨cFĚ˙Ţ۝`˙˙œŔ.Űâ6Ԝ`ŰâՄb˙đ„‚˙üä# œbţԄ‚˙đ„Â˙üŕ¤0„‚˙ü˙ŢČ„b˙đ„‚˙üŕc œƒ˙˙œbţÔŕƒ œŔŘ0bţԜ€ä# œ`/ŰâԜ€Űâ&՜‚ţԜd˙Ţłœk×âŕ„b˙ŕœ€ä#  œ‚ţԜd˙ި`˙˙Íœ‚ţԜd˙ŢĄ×â_؄b˙đ„‚˙üä œŔ×â7؜`ŰâÔ„‚˙؜d˙˙œ‚ţÔŕdƒœ`/ä$ œb˙؄ƒœ˘ţԜÄŕĽ0œŔ/Ř0œ„Ô œbţԄ‚˙Řŕc œ€Ř œŔ×â7Ԅb˙ŕ˙Ţyœk×â܄b˙ܜ€ä# {„b˙ܜƒ +œd€¨„‚¸˙Ţiœkœ€ä# „b˙ܜƒ +œd€¨„‚ş˙Ţ]œkœ€ä# ˙˙Ú„b˙ܜƒ +œd„‚˙đŽœkœ€ä# ˙˙Í„b˙Ԅ‚˙řĺc `¨c‚˝Ô`¨cFĚ˙Ţ;„b˙ŕ˙Ţ8`˙˙]„b˙ܜƒ +œd˙Ţ0œk„‚˙Řŕc œƒœdWœk×âě„b˙윀ä# €¨„‚ŘÔ `¨cFĚ˙Ţ„b˙ŕ˙ޝ`˙˙=„b˙؜€ä# œ‚ţԄb˙섢˙Ř˙Ţ „b˙섂˙Řŕc „˘˙ܜ… +˙Ţœb˙Ԅƒœ¤œŔŕĽ3„Â˙ôŕĽ0„Â˙ěÔ0œ„Ô ˙˙}„b˙ŕ˙Ýô„b˙Ԝ€ä#  `¨c‚đÔ`¨cFĚ˙Ýč`˙˙ +„b˙ô„‚˙Ԝ Ŕ¨Ćˆ°˙ÝŢ„b˙ԝc…!„ADHœ!8œ!˙đÔœAÔH×âü×â'ř„b˙ü„‚˙ř„c„„˙ÝĘœkc…!„ADHœ!œ!˙äÔœA×âü×â'řœ`×âôœ`×âđ„b˙üƒœ`ä$ +„b˙řƒœ`ä$¨œb˙ř„ƒ¤×â/위Ô „b˙윀?ä Tœ€?ĺC œ€*ä fœ€[ä œ€\ä P\„b˙ř×âô„b˙ü×âđyœ`×âčœb˙ř„ƒÄœŚ×â/위Ô œ`]ä%„b˙윀\ä œb˙ř„ƒ¤×â/위Ô „b˙윀ä# `d„b˙üƒ„b˙ěä œ`×âč˙˙Ř„b˙蜀ä#  „b˙ô×âř„‚˙đœdœƒ×â'đ×â'üœ‚˙ü„¤eœĽÔ(œ€ä# `B3œb˙ř„ƒ¤×â/위Ô „b˙윀ä# `2„b˙üƒ„b˙ěä +„b˙üƒœ`ä$ „b˙üœƒ×â'ü„b˙üƒœ`ä$ „b˙ô×âř„‚˙đœdœƒ×â'đ×â'ü`„b˙řœ€ä# `˙˙N`„ADHœ!Too many arguments +œ!˙ÔÔœA,ÔHÔP Ô`×âü×â'ř×â/ô`¨cCž„‚˙ü˙Üěœ`×â쀨„Cž×â'đ„b˙𐃜`ä$„b˙윀1ĺC  ¨ĽŒ Ô(`¨cFĚ˙Üӝ`  ¨ĽD œb˙섃œÄ¸ćŕĽ8„Â˙đÔ0œ„Ô „b˙𐃜`ä$ „b˙𐃜` ä$ +„b˙𐃜` ä$T„b˙𐃜`"ä +„b˙𐃜`'äAœb˙đ„ƒ×â'蜄Ô „b˙𐃜`ä$ „b˙đ„‚˙čc„ä# „b˙đœƒ×â'đ˙˙ě„b˙đ„‚˙čc„ä „‚˙čœd„‚˙đ„˘˙čŕ„(œ¤˙˙„‚˙č˙Üv„b˙đC„b˙đƒ˙˙„b˙đœƒœd˙ÜmœkœŁœjœŒ˙Üg„b˙đœƒ˙˙×â'đ„b˙đœƒ×â'đ˙˙š„b˙𐃜` ä +„b˙𐃜` ä +œb˙đ„ƒœ Ř(œ„Ô ˙˙ě˙˙_`¨cD „‚˙윤¸…ŕc œŔÔ0„b˙ř„‚˙ěÔ „b˙ô ¨ĽD Ô(`…!„A…A …DHœ!,Argument string too long +œ!˙ŕÔœA ÔH×âü×â'ř×â/ô×â7đœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC 6„‚˙ř„d˙Ü×â_ě„b˙섂˙đĺc `¨cXÔ`¨cFĚ˙ܝ`(œb˙ř„Ł„…œĽÔ(„b˙ô˙Űö„b˙ô„‚˙ěŕc ×âô„b˙đ„‚˙ěŕc ×âđ„b˙üœ€ä# œb˙ô„ƒœ  Ř(œ„Ô „b˙đœƒ˙˙×â'đ˙˙Ă„b˙ôœ€Ř `…!„ADHœ! œ!˙đÔœAÔH×âü„b˙üœ€ĺŁ œ`×âü„b˙üœƒœd˙ŰĂœk×âř„b˙řœ€ä# `„b˙ř€¨„Ft„¤Ô(`¨cFt„‚˙řÔ „‚˙řœdc…!„ADHœ!œ!˙ôÔœA ÔH`¨cFt„ƒœ`ä$`¨cFt„ƒ×â'ü`¨cFt„‚˙ü„¤Ô(„b˙ü˙ۍ˙˙ë…!„ADHœ! Variable expansion too long +œ!ţŘÔœA(ÔH×âü`¨cEl×âřœ€×â'ô„b˙üœ€ä# `Ë„b˙ü˙Űjœk„‚˙ôäC ŕ¨ç‘ěÔ8`¨cFĚ˙Ű^`š„b˙üƒœ`ä$Š„‚˙üdœ€$ä )œ€\ä }„b˙ôœ€ĺŁ `¨c‘ěÔ`¨cFĚ˙Ű:`•„b˙üœƒ×â'üœb˙ř„ƒœ˘˙ü„ĹŒćŘ8œĆÔ0œ„Ô „b˙ôœƒ˙˙×â'ôz„b˙üœƒ×â'üœbţđ×âě`¨cK؄‚˙ü¤ŕc(Œƒ¤d¤ƒ˙œ`ä$ +„b˙üƒœ`_äœbţ섃œ˘˙ü„ĹŒćŘ8œĆÔ0œ„Ô ˙˙â„bţ윀Ř bţđœ€ä# -œ‚ţđœd˙Úôœk×âč„bţ蜀ä# "„bţč˙Úę×â^ä„bţ䄂˙ôĺC ŕ¨ç‘ěÔ8`¨cFĚ˙Úݝ`8„b˙ř„‚ţ脢ţä˙ÚŐ„b˙ř„‚ţäŕc ×âř„b˙ô„‚ţäŕc ×âô „b˙ôœ€ĺŁ `¨c‘ěÔ`¨cFĚ˙Úż`œb˙ř„ƒœ˘˙ü„ĹŒćŘ8œĆÔ0œ„Ô „b˙ôœƒ˙˙×â'ô˙˙S„b˙řœ€Ř `ŠkEl…!„ADHœ!(œĂœ¤ĺ‘fœ‡œkœĽä œĆä+@˙˙÷ák8DHœ!˙řÔHÔP€¨„L䜠„„ä$( CH ˙ڀœj…!…ADHœ!œ!˙üÔH`¨cF¤„˙ÚuœĄ…!DHœ!œ!˙ôÔHÔPÔ``¨cF¤˙Új`¨cFĚ˙Úf`¨cFx…Cœ€ä* €˙Ú]œj˙Ú[„jœ`˙˙Ô +…J$ä*`˙˙ř…!…A…DHœ! œ!˙ôÔHÔPÔ`€¨„Fô„d€ä#`Bœ` ¨ĽJčŔ¨ĆFřÔÔ0€¨„F| ¨ĽFüÔ0Ô0Ô0Ô(Ô0 œŚœŔÔ`Ô0€¨„JěŔ¨ĆHđÔôÔ0@ŠJF¤€¨„HôÔ +0Ô +0Ô +0Ô +0 Ô +œŔ$Ô + Ô +0€¨„FĚÔěŔ¨ĆF𠨼FčÔ0Ô(Ô(Ô(Ô( œŔ"œ Ô0˙ÚÔ(ä+` „j¨cÔ +`¨c–@˙Ú…!…A…DHœ! œ!˙ÜÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ Cž@ä*(`¨cF|˙˙ďä+``˙˙`¨cF¤˙˙čä+Y`˙˙`¨cFĚ˙˙áä+R`˙˙`¨cFx…Cä* €˙˙֜jä+`G`˙˙…J$ä*`˙˙ůA`„Š¤d€ä# '¤d@„j„Š რä, -ÄžŸ˙˙ŔŞÖJřž€œŽ„j˙١œŹĺK€ áÎXĺK€˙˙÷áŒXä Ŕ „vä ˙˙ńœŽä,€ „j¨cž@˙˙Ô +ä# „Š„já„ĺL ŕ€`„j˙ٕœ „Šœ ú?„j rŕ„(Ô +Ô +Ô +Ô + …!…A……Á ††A††Á‡ DHœ!$œ!˙ÜÔHœŔÔ Ô(œœĄÔ0˙ŮwÔ0 œ`˙˙ä+ c„ac…!DHœ!$œ!˙üÔH ŕ¨Ľ˙˙é…!DHœ!œ!˙čÔHÔPÔ`Ôp ԀԐ˙Ů\ž`¨c•ˆœ „cä#(‹`C„Šä$( `Ŕž@=œp˙ŮIœŹä+p„jŕc`ƒäcJ„Šä$p˙˙ń`…!…A……Á ††ADHœ!œ!˙ŕÔHÔPÔ`Ôp ԀԐԠ԰žC˙Ů'œ€=ž‹œ`ä4áԐ˙Ů œrË`¨c•ˆ€„ƒä$` +žĂ˙Ůœ`œ€œ œk˙ŮÔX`¨cJôœ€Ô …V„Šä$` #œr€ŞJô˙ŮœŽä+`œ€=„jŕcpŁä „jä#` Ô +œ€J„jä# ˙˙ýÔ +„pœcԝJ„Šä$`˙˙äœrŔä4p 3``¨cJô„ƒĺ¤p $žƒ„vœŔ˙üŕjŕc0˙Řלc‹ä,pœŔ˙ü!`˙˙„–ઠŕĽ0œl˙Ř˜Ľœ€„vŞJđœŔ˙üŕjÔ ŕc0„ä$p áL˙Ř˝œdÔ`Ô`˙Řšœrœ`Ô +XÔ +„tœc˙˙`Ô…!…A……Á ††A††ÁDHœ! œ!˙üÔH„˙ŘŁœĄ…!DHœ!œ!˙ŘÔHÔP Ô`ÔpԀԐԠ Ô°$…Ŕž„Fž@žä,p žĂ„ŒœŔ˙óœlŕ¤0ĽÄ˙Ř‡Ô (jä# %œ€r+œŕaœŔwœ jä JĺC  ä0ä@ä8 +j j ŠÎŠÎ ž@@ŠÎ ž@@ŠÎ0jä#(˙˙㤎0œ`äĺDœ` œ`äm`ŞRä ŞRŞR@ä,P +˙ŘGœ`(ž ä0P@Y`ä6P œvœ€śÔ˙Ř:Ô ž‹ĺ”P ä0P L`˙Ř2œpH`€¨„Fřŕg Ô $ÔHä,P6œ€`¨cFx„ݐÔ0$Ô`œt˙ŘÔ ä+P œŔ„l¨cÔ @ ŠHěœŕœ řœˆ„dä#P˙˙ßŕ„(œĆá(ĺŚH˙˙ůŕç(œ`ä ˙Řœ`ôÔX „ œ`ä$œ„ôœpœ$Ô Ô „p¨cÔ Ô„l „ŒlÔ  ŕ„pÔ Ô Ô Ô …!…A ……Á††A† †Á$DHœ!(: perror: +œ!˙řÔHÔPCœ`ä* œ`˙×Ҝjœ`œŠ˙×ΜŤœ`€¨„ ˆ˙×ɜ €¨„ ‹˙×Ü €¨„Jř˙׿„dK˙ןœjœ`œŠ˙׸œŤœ`€¨„ ”˙׳œ …!…ADHœ!œ!˙ĐÔHÔPÔ`€ŠŒJř…L˙׌œ œ`ä+cœ`cÔ P…!…A…DHœ!0œ!˙ôÔHÔPÔ`€Cä*`œ€`¨cJř`˙˙hÔ ˙׊œjä+`c`˙˙˙ׅ„jä+` €˙˙„jœ€˙˙Ô + ¤cœ€ä# +ŕ¨çFř„Ę ä8 œ `¨cHěÔ(œĽœ`ĺĽ ¸eŕc(¸cŕƒ8ä ˙˙řœĽœĽ˙˙€¨„Hěŕc œ€Ô œ`ä œ€˙×X„j œ€Ô + „jœ€˙űŕc œ€Ô +Ô + „jœ€¤cä# #`¨cFxÔ + „ƒœă„„$œŔä$0 œ œ ä$P œ`œ`ŕeä#0˙˙ôäP ä(0„j$Ô„Š$Ô $˙×+œjlœ`Ô +l…!…A…DHœ! œ!˙ŕÔHÔPÔ`Ôp ԀԐԠ԰CÄ…žŔž€˙˙ž@ +ž +Ř +Xä JÎ˙˙ä.° œ`„Œ„läd œd˙לldÔ ä  ˙˙ěä +€ `œ`Ř +„lœ€¤cä# `p…!…A……Á ††A††ÁDHœ! `ŠkJřDHœŁœ`…ä$ eœ€kkä# ˙˙ţkk˙˙ák(DHœŔŁä cä%0˙˙űœc`DHœ!˙ôÔHÔPÔ`„C˙ÖžœlœjœŒ˙ÖşœŤ…!…A…DHœ! œ!˙ôÔHÔPÔ`C˙ÖŽ„ŕjX˙ÖŤœŒj…!…A…DHœ! `j DHDH/bin/shsh-cWaiting for child %d +œ!˙ŕÔHÔPÔ`Ôp ԀԐԠĂ€ä.`œ`Z`˙քœ€œ`œ€˙րž œ`œ€˙Ö|žKž‹` œ`ď˙äK ŕ€X`¨cJř`˙˙Ô KĺŠ` œ`˙Öjœœ`˙Ögœ’œ`˙Ödœ”6`˙˙ä*`˙Ö]œ€œ`˙ÖZœ€œ`˙ÖWœ€`¨cĽ€¨„Ľ˜ ¨ĽĽ›œÎ˙ÖNœŕ˙ÖLœ`œ`˙ÖIœ€œ`˙ÖFœ€`¨cĽž˙ÖBœŠœjœœ ˙Ö=œŔœ`˙˙ä  Ôœ`˙Ö5œœ`˙Ö2œ’œ`˙Ö/œ”…a…!…A……Á ††A†DHœ! ` DHDHœ!˙üÔHŔ¨Ć•ˆ˙Ö„Ś…!DHœ!/usr/lib/liberror.txt/lib/liberror.txtUnknown error œ!ţŕÔHÔPÔ`Ôp ԀԐԠ԰€¨„Kž„„ä$€ žƒĺ”€aœ`ĺt ^¸”`¨cJü„Łŕ„(k…d崀Uœ``¨c§´˙Ő䜀žK咀 +`¨c§Ę˙Őܜ€žK咀Eœ`ŔŞÖK8œr 5€ŔŠÎKŕ`œd ŒŁ˙¸…¸„˜œ` +ä ŕppœ€Ř ˙ŐÜnäX œv˙Őžœ€ Kœ`ä* &œ€ jä Jjä ˙˙ţJJ˙˙˙Ő­œr+jžœ`Nä° ŕp°žŘ(ŒĺŒP˙˙Ňŕ`œrœ ˙՛œ Kœ`ĺJ˙˙ÄĺƒPœ`ĺr ˙Րœr€¨„§Ü@ŠJKœ ˙Չœj˙Շœt`¨cK˙Ճœ‹j…!…A……Á ††A††ÁDHœ! ` DHDH`r DHDH` DHDH`! DHDHœ!˙üÔHŔ¨Ć•ˆ˙ŐV„Ś…!DHœ!./œ!˙řÔHÔPœă`¨cKT ¨ĽKXÔ8œŔĺ¤0 Ô `¨cJřœ€"`Ô €¨„Şź˙Ő;œg@ŠJKd`¨cŞž˙Ő5œŠœ`ĺ‹ `”Ş`¨cK\Ü(…J€¨„K`ÔP…!…ADHœ!/..œ!˙đÔHÔPÔ`Ôp @ŠJKT€ŠŒKd„j˙ŐœŒœ`ĺ‹1•Ě`¨cK\”ƒä …Œ`¨cK`„ƒä €¨„Şž˙Ő„j…j˙Ôţ„j`¨cKX„ƒkäK œ€"`¨cJř`Ô €¨„Ťx˙Ôî„j˙˙Ëœ`ä+ œn œŒ`…!…A……Á DHœ!œ!˙ÔÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$Ôŕ(žÄ§˙˙Ŕ¨ĆKd ¨ĽKTœ†ŸE„ež†˙Ôş€ĺ‹ŕ_`”tä8 Ÿ€˙Ôť„z„z‹ŕĂ`ž˙˙œ`/ä$ œŒ`¨cKX„ŁĺD( œ€"`¨cJřD`ž€¨„ŞžŒ˙Ô˘œp„z˙ԟŒËœ`ä.+ž@5``¨cJř/œ€"˙Ԓœn-…zK +„kä ˙Ԉœj`¨cKX„ƒálXäK ˙˙ëœp˙ÔœŠ„z˙Ô|œ”勐 +„tä° ”täŔ˙˙ß˙Ôoœnä+˙˙Ţä<˙Ôjœn`¨cJřœ€`Ô …!…A……Á ††A††Á‡ ‡A$‡(DHœ!,œ!˙ěÔHÔPÔ`Ôp Ô€ž„˙ÔNĹœlœ€œŽ˙ÔIáPXœ`ä+ œjŕŤ`œŒ˙ÔAœĽ pœŒ˙Ô<œŽŕjpœ€Ř p…!…A……Á †DHœ!` DHDHœ!˙řÔHÔP@ŠJK¤œĄ Ô +„˙Ô œj„jœ€Ř …!…ADHœ!œ!˙ěÔHÔPÔ`Ôp Ô€ž˙ԝD…ŠŔ¤l@ä#p ¤Œ ˙Ôœjä+p6`˙˙¤Œ œ` ä$1`˙˙„Š„jäd ˙Óůœjœ`ä+&`˙˙„jŘ€„Šœ  +œc¨„€Ô +ä( Ô + ¤Œœ`ä$¤Œœ`ä$ +¤Œ˙Óߜjœ`ä+ `˙˙¤Œœ`ä$ „j „jÔ +Ľp˙…!…A……Á †DHœ!œ!˙čÔHÔPÔ`Ôp ԀԐCŔjä#p „ž˙˙ž@„Ź„läe +œŒj˙ÓłJä €`˙˙ +jŒjŘŒ…œeJä€ Ô `˙˙jä#˙˙çÎn…!…A……Á ††ADHœ!`N DHDH` DHDH`' DHDHœ!˙üÔHœĂœ ˙˙Œfœ€`ŕc( Œfŕc(¤c˙äŁ ˙˙üœĆœĆ˙˙†œ`-ä œ`+ ä œĆŒfœc˙Н ¤c˙äŁ@ œ`œŕ˙АŚ¸kœĆŕcXŒ†¸cŕ„8ŕc8¤„˙ä¤@˙˙öác(œ`ä) á`X…!DHœ!œ!˙ěÔHÔPÔ`C€ŠŒB@˙ÓAœŒœjœŒ˙Ó=ÔX œ`œá œ€œ œŔ˙Ó6ÔX…!…A…DHœ!œ!˙ôÔHœáœ€Ôœ œ`œŔ˙Ó'Ô…a…!DHœ! ` DHDH`( DHDH`$ DHDH` + DHDH` DHDH/etc/passwdœ!˙čÔHÔPÔ` ÔpÔ€ž@ä0Pœ€`¨cJřœ€`!Ô `¨c´˙ŇčÔ ‹ĺŒP `˙ŇŕœljŔ„j˙Ňٜä+p˙˙ö˙ŇԜlKä*p˙˙ö˙ŇΜl`…!…A… …Á†DHœ!` DHDH/etc/groupœ!˙čÔHÔPÔ` ÔpÔ€ž@ä0Pœ€`¨cJřœ€`!Ô `¨cľ ˙ҧÔ ‹ĺŒP `˙ҟœljŔ„j˙Ҙœä+p˙˙ö˙ғœlKä*p˙˙ö˙ҍœl`…!…A… …Á†DHœ!` + DHDH` DHDH` DHDH`& DHDH`S DHDH` DHDH` DHDH` DHDHœ!˙üÔHœƒœ œŔ!œŕ˙ŇDœ`œ‹œ`˙˙ä`d…!DHœ!` DHDHœ!˙üÔHœäœĂ` œeä#H +œĽ˙˙‘‘gœˆœkœĆä# ˙˙öœçák@…!DHœ!œ!˙üÔH˙Ňœ€…!DHœ!œ!˙ôÔHÔPÔ`˙ҝC„j€¤c€ä#` ˙Ňœj„jœ€¤cä# `˙˙„Š„jäd œĘ„Š „ŞœdÔ + Ô + œ€˙ŃőŕĽä+`œ ű˙ +`˙˙„j„Š¨c@ŕ„Xŕc(Ô + Ô +„jcœcÔ +…!…A…DHœ! =œ!˙ŘÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$žƒŸD˙ŃО`¨c•ˆ€žK„ƒä$` +žĂ˙ŃƜ`œ€œ œk˙ŃÁÔX`¨cKМ€Ô …V„Šä$` %€ŔŠÎKМt˙Ńłœ˛ä+`œ€=„jŕcŁä ä0` W„jä#` Ô +œ€J„jä# ˙˙ýÔ +„nœcԝJ„Šä$`˙˙âœt`¨cKНŔ„ƒĺ¤p "Ÿ„vœŔ˙üŕjŕc0˙шœc‹ä,p 3œŔ˙ü„–ઠŕĽ0œl˙Ń~œĽœ€„vŞK̜Ŕ˙üŕjÔ ŕc0„ä$p áL˙ŃpœdÔ`Ô`˙Ńlœzŕk˙Ńiœc‹œ`ä, œl˙Ńbœ”€¨„¸ˆ˙Ń^œlœl˙Ń[œšœ`Ô +`Ô +„xœc˙˙`ԝ`˙˙…!…A……Á ††A††Á‡ ‡A$DHœ!(`< DHDH`% DHDHœ!˙ŕÔHÔPÔ`Ôp ԀԐԠ԰žž„Ĺ˙Ń*†…Lž@¤j€ä# žŔ˙Ń"œl¤Šœ`ä$)`áÔs„l„ŒáC äjp œp˙ŃœŽ„lŕcpnÔ ĺJ œŞ˙Ń +žJŕ„l˙ŃஐK劰 ä*°„l¨c@ŕrP„l¨cÔ ŕrP˙Đöœ”…!…A……Á ††A††ÁDHœ! œ!˙ŘÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$FĂ€† +ŸD¤p@ä#` žE˙Đ֜jä+`L`¤ œ` ä$G`ᚓ„Š„jádäLX ˙ĐŜjœ`ä+:`„j„Şác(äŹX œe„ĘœŽ¨Ć€œŹ˙ĐľÔ +0„j¤°ŕc`œ€ä% Ô +˙ĐŹœj#rŸ žžŔ˙˙€Ş”Jřž@œŽ„j˙Đ œŹĺK€ áÎXĺK€˙˙÷áŒXä ° „tä˙˙ńœŽĺ‹€ ŕx`„j¨cÔ +ŕx`˙Љœš…!…A……Á ††A††Á‡ ‡A$DHœ!(`k DHDHœ!˙°ÔHÔPÔ`Ôp Cœ˙ĐmŔä+p”aœ€@¤cđä# œ€`¨cJřA``œjœ€ ‹ĺŒp9``7œlœ€œ  ĺ‹p .`˙ĐKœ` Kä*p„a(`œl Ô +œƒœ`˙ä¤ œ€Ô + ˙Đ8„jœkä#p +œ€jÔ +`Ô + Ô + Ô + Ô +  +Ô + `œl ˙Đ&œj`¨cJřœ€ `Ô …!…A……Á DHœ!PœĂœŕä&8œ€ `¨cJř`#Ô „†„fä¤ `„f„† „Ś œ`ÔœkĺŁ8 ŕ`€¨„Jř`Ôœ€ÔXÔ „f „†ŕc ”Łŕ„(cÔ „cÔDHcœ`ä% +œËœŕ˙˙Ř@ŕĽ8œ„ä%˙˙űœĆDHœ!˙đÔHÔPÔ`Ôp ˙Ď؝݋˙Ď՜lKœ`ä* œjœŽ˙Ď͜Źj…!…A……Á DHœ!œ!˙ôÔHÔPÔ`Cœ`ä*`˙˙`¨cJřœ€ …Šä X +œ€ „j ˙Ď˛Ô +X˙Ď°œj`œl `¨cJřÔ …!…A…DHœ! œ!˙ÄÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$Ôŕ(Ôđ,ŸDŸ…žƒŸÁ8Ô04ĺ\Đ Tŕzŕ¸c¸cŕc ¸š„Łŕ„ Ô(„ÄÔ0„~Úžĺšŕ .ÔžDťşÜœ€á#áV Œ˙üžÖ˙üž˙˙œj„Ą4H(œžœŔĺK0˙˙÷J˙üŕl „cáX œ ÔJžRŸÎ厀 +„Á4œjœžH0Ô(0„Ą0ĺŤ(˙˙ó„’ŕl ĺŽ€˙˙ŮÔ ¸nŕŽĐ„Ţŕc ŕœpĺ… +Ô0œtœš„Á4œŽ˙˙˙˙¤ŸN˙˙´œtœŽ„Á4˙˙œź˙˙­ŸŽ˙˙…!…A……Á ††A††Á‡ ‡A$‡(‡Á,DHœ!<œ!˙ÄÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$Ôŕ(Ôđ,ŸDŸ…žƒŸÁ8Ô04ĺ\Đ Tŕzŕ¸c¸cŕc ¸š„Łŕ„ Ô(„ÄÔ0„~Úžĺšŕ .ÔžDťşÜœ€á#áV Œ˙üžÖ˙üž˙˙œj„Ą4H(œžœŔĺK0˙˙÷J˙üŕl „cáX œ ÔJžRŸÎ厀 +„Á4œjœžH0Ô(0„Ą0ĺŤ(˙˙ó„’ŕl ĺŽ€˙˙ŮÔ ¸nŕŽĐ„Ţŕc ŕœpĺ… +Ô0œtœš„Á4œŽ˙˙˙˙¤ŸN˙˙´œtœŽ„Á4˙˙œź˙˙­ŸŽ˙˙…!…A……Á ††A††Á‡ ‡A$‡(‡Á,DHœ!<œ!˙źÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$Ôŕ(Ôđ,ŸCĆÔ @Ô(<ĺE …Ô88„@„Ą<ŕd(¸cŕnŔ¨ĆKԟ„Śâšä%  žœeœ”˙ÜŽ„a@áŽáZ`ä4P œtœŠ˙ΊœŽ ¨ĽKԄ…ä* œj˙΂œŽ„a@„<Ŕ¨ĆKԆ†ĺƒ 9žLžĘŕ pŸŇă„sÔ(4á˜sá\ĐăœpŸ˙˙áŒ0áJ0œj„Ą8H(œ”œŔĺK0˙˙ö„Á4ŕš`ä6 œv˙Î`œŽá^Đœ áJpâÖpăŢpžĺŔ âNƒ„Á8œjœ”H0Ô(0„Ą0ĺŤ(˙˙ňŕz`๐ä# ˙ÎFœŽĺŔ˙˙Ńá˜sŕzä#  œ”˙Î=œŽ„a@„Ą<ŕŕe€ĺ„ „@œzœ°˙˙„á8žœÎ˙˙yÔ€@ +„Á<œzœ„á8˙˙rœÎž˙˙Ô€<„Á<„a@ĺF˙˙€„@…!…A……Á ††A††Á‡ ‡A$‡(‡Á,DHœ!Dœ!˙xÔHÔPŕ¨çKԝ Łäež&…ä(HGœ`€äK"œaÔ +œ`ä  œmœ€œŻ˙˙˙ţXœŃ„Šœ`ä  œmœ€œŻ˙˙˙ţÜŃ„Šœ€œŻ˙˙œË˙˙1œń„Šœaä œ`Ô +…!…ADHœ!ˆœ!˙ěÔHÔPÔ`Ôp Ô€Ŕ„ä,pC˙ÍĐ +ájXžĘNœj˙ÍǜŒKä*€˙˙ůn…!…A……Á †DHœ!`U DHDHœ!˙üÔHœĂœ ˙˙Œfœ€`ŕc( Œfŕc(¤c˙äŁ ˙˙üœĆœĆ˙˙†œ`-ä œ`+ ä œĆŒfœc˙Н ¤c˙äŁ@ œ`œŕ˙АŚ¸kœĆŕcXŒ†¸cŕ„8ŕc8¤„˙ä¤@˙˙öác(œ`ä) á`X…!DHœ! ¨ĽKŘŕƒ(dškĽk ákDH ¨ĽKŘŕƒ(dškĽk ákDHœ!˙üÔHœăœÄ` œeä#@ +œĽ˙˙‘&‘gœ‰œkœĆä# œçä+@˙˙ôœeákH…!DHœ!œ!˙řÔHÔPh Š)KŘŕcHŒĂd¤Ćœ`ä& œčœŔœçgŕcHŒƒ¤„ä$0˙˙űœçœç˙˙œ`-‡ä @@œh œ‹œ`ä* á`X…!…ADHœ!œ!˙üÔHœŔœăä0 ždœ`$ĺE œ€œ†ŕh œ€ä# ĺ… œ gŔ¨ĆKŘŕc0Œƒ¤„œ`ä$ &œçgŕc0Œƒ¤„ä$@˙˙űœçœç˙˙‡œ`-ä œ`+äœŔä%0 œ`0ä œ`§ŕ…HŒd¤cä#0 œeœ€XŹc ä œ  œ œ`Xä œ œçœ œçœ`ä%œ  +ÇŠŕ†hŒd`¤cä#X $œ`ž ˙Нŕ˙ÉŕfHŒc¤ƒä$@ ¸cŒ‡¤c ŕ„¸Ä¸Ć˜gŕcHŒƒ¤„ä$@ ák+ŕkˆŕkxác0œçÇŕ†hŒd¤cä#@˙˙ĺŕfHœ`ä3 Ô8…!DHœ!œ!˙čÔHÔPÔ`Ôp ԀԐCÄž„Šœ`@¤„@ä œ œ €ä°` œ`œlŕež@ä# !œ€„j˙̃œŹœ`˙˙ä *ä` ŕ‹p„j„Şŕc žáĂ(ä0œjĺŽX „j „ŠŕcXŕc ĺn ŕnXŕd`Ô +œj˙Ěd€˙˙ä ` œŽ„j˙Ě^œ°œ‹œ`ĺ„l``˙˙…!…A……Á ††ADHœ!`c DHDH`J DHDHœ!ţdÔHÔPÔ`Ôp Ô€Ăœ`ä. žAœj˙Ě1€˙˙ä `lJA˙Ě+œjkäK€œn˙Ě%œŠ``¨cJřœ€`˙˙Ô …!…A……Á †DHœ!œ`DHœ!˙ěÔHÔPÔ`ƒœ ˙Ě œ`„Ą ¸e@ŠJLXŕĽœŒ¸Ľ˙Ěœjj…!…A…DHœ!œ!˙üÔH€¨„L„Ôœd„˙ËôœĄ…!DHœ!;Zx—ľÔó0Nm<[y˜śŐô1Onœ!˙ĚÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$Ôŕ(Ôđ,žĂ@ŸDŸ…ŸĆŸ¸v‚Ô80Ľ6ä)Pžƒ۞”˙˙†X¸r‚¤’ä$Pž۞˙˙œt˙ËŔœ€œtœ€˙ËźËšK_œp˙˸œ€œpœ€˙Ë´‹ŕ֐œ`mŕĆšk_áNPálXŕŠXšJ‚šk‚ŕt€áJXŕc ŕcP„˜ŕĆŕš ŕĆ ¸f„¸ŕc0¸cŕź(ŕc(¸ƒ„¸ŕ„¸„ŕž(ŕ„(¸d…xŕc „0¸cádXácX…!…A……Á ††A††Á‡ ‡A$‡(‡Á,DHœ!4œ!˙üÔH€¨„úŹ ¨ĽLŹ…!DHœ!œ!˙dÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$Ôŕ(Ôđ,ĂŸÄ…Nœ€ œj˙ËcÔ(8œjœ€ ‹˙Ë^†„Ž‡Nž@šL_‡ž€¸j‡Ž ákPŕcPâÄX¸c„Ž VláŒÔ 4¤jä# šŒœj˙ËGœ€dä+ œj˙ËBœ€ä+ œ`ž€œ`ŕt Š)ĐDŕlŕcH”ƒÔ€0ŕ„ŕœ`ĺ „˙˙žœ`;ĺP žœvœŒœ¸ FœÚÔH„œđ ÔHpÔHtÔHxÔHŒ˙˙;p„8„dŸ‹ŕ|Ô@ ž@âRä20Žc„a@ŕcXÔ@œtHđœpœvœŒœ¸œÚœđ˙˙! œŔä+0˙˙ëœ`˙˙…!4œ ĺi( I„áĺg( Fœiä(œ`ä'( œƒœ„˙˙ä$0 ;¸dŕc ¸cŕc ¸c„@ŕ„žR˙˙ä20 1Ô <@œaË ž@ž@ ž€0žŔŸ@ž@œ`ä- J„Ę˙üJ”Ę˙ţœ`XŒä œ œ œfœ’˙Č5Ôx8œŔË…á8ä/0 œ œ œ`ä œ€œ€ŕe ä#0 œn˙Č#ž€0žË˙ţűŕJŒj˙˙Řœ€Ř J…Ę˙üŸ€ž€ œpœŽœÜ„Ą<œôÔĐ˙ţÔŔ+ăŢXŕ¨çÚ `¨cFĚ˙ČÔ8˙Čœ`˙˙„„päd l˙Çúœœ` +ŒlŘœdÔœ` +ŸŢŒä œ œ œ`ä œ€œƒŕ… œ`ä$ ˙ÇáœpŒŒĚ¸†¸„˜œ`ä$˙ţ˘œ`%„pŕcŔœ€ä Ô˙Çќpœ`ä ~„ Ô …!…A ……Á††A† †Á$‡(‡A,‡0‡Á4DHœ!€` DHDH`C DHDHœĹcœ`œëä% œĆ˙˙œ Ř œfœçä#(˙˙üœĆ˙˙DHœ!˙ôÔHœ TÔ ˙ǙÔ(…!DHœ! œ!˙¨ÔHÔPÔ`Ôp Ô€ž€ÁÔ œ œŽœ„„dä#(˙˙ýŒœ`嬝A˙ǸlKœŔ„aœŠœŽÔ +œĽ„eÔä#0˙˙üœ„€¨„•ˆ„¤œp˙ÇmœŠœaä* ‹˙Çgœjl…!…A……Á †DHœ!XPATH/bin:/usr/bin/œ!˙dÔHÔPÔ`Ôp ԀԐԠžž„žEœ€/˙ÇK€ä+`Eœp`¨câŒ˙ÇDKä*`@ŠJâ‘ä*` ;`˙˙jä#` 2Ŕœl˙Ç3œŠœl˙Ç0œ€:ä+p œ`Ř ˙Ç*œlä+p œl€¨„âŸ˙Ç#œlœl˙Ç œœlœ”˙Çœ˛`¨cJř„Łœ€ä% œj˙Çœ€:@ä+P Kä*p `˙˙jä#p˙˙Ԝl`˙˙œ”˙Çœ˛…!…A……Á ††A†DHœ!œœ!˙ěÔHÔPÔ`Ôp Ô€C€ŠŒLňšĘ_œ`ä. œ`á@PžŘ œjœ€ +˙Ć䝌˙˙œjk0œ€ +˙ĆßŘ XKä*€˙˙öœjœ`ä. œ`-Œ˙˙Ř l…!…A……Á †DHœ!` DHDHœĹcœ`ä% œĆ˙˙œ kä œfkä#(˙˙úœĆ˙˙`DH`R œ`ĺkŕ`X€¨„Jř`˙˙ÔDHœ!˙ÜÔHÔPÔ`Ôp ԀԐԠ԰žCŞLôœrœ˙Ɨœ ‹ŔĺŹp œp”`˙Ǝœ€ +Kä*p +œr ¨ĽLóŕŒ(œ ˙Ć„ŕŠ œ`#Ŕœ˙Ć~œ ‹ĺŹp˙˙ęœp˙Ćxœ€ +Kä*p˙˙őœrŕŠ€ŕ„`œ ˙Ćoœ„˙˙՜r°ä œŔœŔœ` ä œ€œ€ŕ† œ`ä$˙˙Ɯrœ` +ä˙˙Áœrœ` ä˙˙˝œrœ`Ř +€œ`PäL(œ`¸l€¨„ćđŕc „ƒD ç çç,ç4ç<çLç\`¨cMôÔP`¨cMôÔPžĘ +žŠ`¨cMô ÔP `¨cMôÔP`¨cMôÔPœ`ĺŹ œj˙Ć"œ€:Kœ`ä*˙˙„œ Ř +(JŒœ`ĺŹ˙˙Ȝ  +œtA €ŠŒMô˙ĆœŠÜ X +„a ƒŔä$p˙˙qœrœvœŠ˙Ćœ  +Ü X„a ƒä$p˙˙gœrl…!…A……Á ††A††ÁDHœ!$œ!˙ÜÔHÔPÔ`Ôp ԀԐԠ԰žCŞN œrœ˙Ĺ䜠€‹ŔĺŹp œp`˙Ĺۜ€ +Kä*p +œr ¨ĽN ŕŒ(œ ˙ĹŃ੠œ`#Ŕœ˙Ĺ˜ €‹ĺŹp˙˙ęœp˙ĹŜ€ +Kä*p˙˙őœrŕŠ€ŕ„`œ ˙Ĺźœ„˙˙՜rä œŔœŔœ` ä œ œ ŕf(Ŕä#p˙˙ƜržŔ +ä°˙˙Áœ` ä˙˙˝œrœ€Ř + œp@ŠJN¸œ€:˙ĹšÔ +€‹ä,p˙˙°žŠœ Ř (Œœ€:œl˙ŏÔ`‹ä,p˙˙Ľœ`LŘ œ€:˙ņœj‹ä,p˙˙œœ œjŘ (œ ˙Ĺ}œśÜX„a ƒä$p˙˙‘ŒŞNŒ LŘ ¸nœŽŕc€ŒÔPšÄšÎLœl˙Ĺgœ€,‹œ€ä, ˙˙ńœ`jä# ¸n ŕc€œn¸Ž¸cŕ„€ÔPŕc€œ€Ô  ¨ĽNŒtÔ( …!…A……Á ††A††ÁDHœ!$œ!˙č`ZÔÔ Ô(Ô0 Ô8Ô@œa DHœ!`[ DHDH`z DHDHœ!˙čÔHÔPÔ`Ôp ԀԐDŞQ€žC…„j˙Ĺœœ„j˙Ĺ Ëá‹`œ`ĺŒ œœ ˙˙ጠĺŒ˙˙ţáÎ(`¨cQĺL @€˙ţ¨„Ž€áŒ ĺL˙˙ţÎ@œl˙Ä󜊜lœŠ˙ÄďÔX‹œ€<˙Äëœlœlœ€<˙ÄçÔXœnœ€˙ÄăÔXœ`ĺ‹ ÔXœkԝ@˛žJáÎ`¤jä#€€mœj˙Äќ€dä+€ €nœj˙ʀä+€€m€nĺn`˙˙ěœ`ĺŽ €J˙˙¤jä#`œj˙Äşœ€dä+`œj˙Äľœ€ä+`ÎnÎmĺŽ`˙˙îJ˙˙J€œjř”¤ŠÔpä$`Ôœj˙ÄĄœ€dä+`œj˙Ĝœ€ä+`¸l€¸lŕc`¸c€¨„ë\ŕc ”ƒĺn +@œŁ”…œĽ”eáÎ ĺn˙˙űJœ`˙˙Ô œnÔPÔ …!…A……Á ††ADHœ! + + 0123456789ABCDEFLIBC:SCANFœ!˙(ÔHÔPÔ` ÔpԀԐԠ԰ ÔŔ$ÔĐ(Ôŕ,Ôđ0žœ€Ô <Ÿ„Ą<ä$(žCő`„’„räd œd˙ÄQœrËÄԝ@ĺNP Ҝ`%ä ”žŔ ¨Ľî$ŒĹŘ0XŒeŘYŒ…Ř ZŒĹŘ0[ŒeŘ\ŒĹŘ0]Ÿ€Ô°8ž€˙˙ŒĽ€ +€¨„î+Ř(^œaDœśœÖÔ(@Ô04œ ˙Ä'ŸTœ`*ä žÔŕ8Ôŕ4žp ¨ĽKŘŕc(Œƒ¤„ä$P ŸĹT ˙НœŕäP ¸tž€¸tĐŕc ž¸c°ŕcHŕĽ@âƒ0Œ…¤„ä$8˙˙đžÔž˙˙ž°ŕeđŒƒ¤„œ`ä$ œeŹƒ œ…œ`xäDb¸d€¨„đhŕc „ƒD ů4ůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐňLůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐöůĐůĐůĐůĐůĐůĐň|őđň”őĐőĐőĐňhňtůĐůĐň\ůĐůĐň„ůĐůĐůĐ÷ ůĐň˜ůĐůĐňŒœ Ô(8˙˙oÔ(4œŔ˙˙lÔ0@œ`˙˙iÔ@ €€€€Ÿ@ŕnđŒƒ¤„œ`ä$ „’„räd œd˙ĂNœrËÄÔœ ĺŽ(ĎŕŽđŒd¤cä#(˙˙îpŕcđŒƒ¤„œ`ä$ œ€Ô @ä,/œ œ`%€ +ä Ÿ@?€œ`0ä $œ „’„räd œd˙Ă#œrËÄÔœŔĺŽ0y„Ą8œ`xä. œ œ œ`Xä. œ€œ€ŕe ä#0 œ €UŘ(L€ä:(œŔœŔœ` +ä  œ€œ€ŕf ä#( œ`-ä Ÿ@Ÿ@ä:(œ`+ä ŕÁ`„’„räd œd˙ÂęœrËÄÔœ`ĺŽl`˙˙ŕÁ`œ€œfŘŰă'lŕŽđŒ…¸„¤„ œaD˙Â×ŕ„pœ€Kä. œ œ ä* œ`œ`ŕeä# ä4 Q`˙˙œD„Ň੠„˛äf( ム˙ÂźœrËĆœfÔŕnđŒƒ¸„¤„ œaD˙°ŕ„pKœ€ä* œ`˙˙â”ä4 ä. ˙˙âŕ|c„Ą8œ€ä% #œ`ä „Á@ă€ŕä& Ÿ„x˙üÔŕŸ„x˙üÜŕ„a<œcÔ<€¨„î<`¨cFĚ˙ˆÔ ˙†œ`˙˙œŔž–Ř0Xœ œ`Ô(4Ô@žœ`^AXä œ°œ€žÔ @œ Ô(@œŕ]œŔpä8 œ œ -ä@ œ€œ€ŕ… œ`ä$ ŒĐŘ +0œŔžJŒ¸d¸c˜ä#8 : h€˙ţ¸d¸c˜ä#H ֜`ä +ĺFä`äHœ° Žœ°ŽŒŠ˙ţpĺ¤ œŔáJ@ĺ„ œ°Ř + œ„pĺ„˙˙üJ +œŔœŔpäX œ°œŔœŔŽŘ +€žŒ¸d¸c˜ä#8˙˙ϝJœ`Ř +ŕnđŒƒœ ¤„ä$( Ô(@„’„räd œd˙ œrËÄÔœ ĺŽ(ŕŽđŒd¤cä#(˙˙€ä4` …X˙üœaX˙Á÷œŽĺŽ` œ`ä+„Á@œ`ä „8„4œ`ä$ qœ oŘ +(˙Á䜎ä+`œ`œ`„Á@ä„Ą8„8œ`ä$ Ř +pJ„’„räd œd˙ÁΜrËÄԝ€ĺŽ`„Ą8ž”˙˙ä4`˙˙ޜaX„Ą8œ`ä% @„Á4ä& „<Ř +„<œ„8Ô <'ž˙˙p ¨ĽKŘŕc(Œƒ¤„ä$P ŸĹŕŽđŒd¤cä#P '„’„räd œd˙ÁœrËÄÔœ ĺŽ(ŕŽđŒd¤cä#(˙˙pä.`˙˙„’„räd œd˙ÁƒœrËÄÔžœ`ä$˙ý/@`˙˙äX œ œ œ€„Á<ä& œ`œ`ŕeä# ä.X œn˙Áfœ’…a<…!…A… …Á††A††Á ‡$‡A(‡,‡Á0DHœ!؜!˙ěÔHÔPÔ`ƒDœ`˙ÁNœ „Ą ¸eŕĽœŒ¸Ľ˙ÁGœjj…!…A…DHœ!œ!˙řÔHÔPCœd˙Á:œ€ +k0Ř +X…!…ADHœ!Err Err .. ..:..:.. .... +œ!˙đÔHÔPÔ`Ôp Ă„€¨„ű8˙Á"œ „Œœ`ä¤ ¸dŕc €¨„NĚŕc ŒƒŘ ŒƒŘ ŒcŘ„Œœ` ä¤ +¸dŕc €¨„Nâŕc ŒƒŘ ŒƒŘ ŒcŘ„l œ€ +˙Ŕ˙Nœj˙˙˝œ‹„Œ ˙˙şœn „lœ€ +˙ŔőN œj˙˙łœ‹„Œ˙˙°œn „lœ€ +˙ŔëNœj˙˙Šœ‹„Œ˙˙Śœn„lœ€ +˙ŔáNœj˙˙Ÿœ‹„Œ˙˙œœn…ŒŒlœ€čœl˙Ŕ՝Nœj˙˙“œ‹œlœ€d˙ŔΝNœj˙˙Œœ‹œlœ€ +˙ŔǝNœj˙˙…œ‹œn˙˙‚œŒ…!…A……Á DHœ!œ!˙ěÔHÔPÔ`Ôp Ô€ŕ¨çO ¨ĽL䜀˙˙„ǝĂÔ@ᆠœ ĺl( Ô ¸l€¨„O žáC „Ş„ŠŒ˙˙œnH(J˙řĺl€˙˙ů…!…A……Á †DHœ!œ!˙ôÔHÔPÔ`@ĺƒP €€ŕ`ä+P œ€œ€ä,P œ`œ`ŕdä#P œ`-k˙˙Ř …!…A…DHœ! œ!˙ÜÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ žĂœ˙ţœ`"äD ž… `€ŠŒO͞@Ÿ œ`žŔWŘ œn˙ŔVœœnœ˙ŔRKĺJŔ Ëä4 Œ˙˙œj7ŕj°Œ˙˙œj0ä.˙˙ěŘ l…!…A……Á ††A††Á‡ DHœ!$`6 DHDHœ!˙ôÔHÔPÔ`D„Šœ ¤„€ä$( ƒ˙Ŕ#œj„Ęœ`¤†ä$`˙˙„Š„Ş ¨fäD( Ô +œd˙˙Ô +Ľl˙ +Ř`„jä(œŠ`˙˙„dŘ`œcĽl˙Ô…!…A…DHœ! œ!˙ôÔHÔPÔ`Ŕ¨ĆOЄf„Łœ€ä% F€„ŞœeÔ +„…H „j„ƒä$`˙˙÷…!…A…DHœ! œ!˙đÔHÔPÔ`Ôp `¨cOđœ€˙˙„Łä œă€¨„Oô„dœ ä#( …œŔœ„„dä#0˙˙ýœĽ…œ`ä, ¸lŔáC8„jŒ˙˙HJ˙üä,p˙˙ű…!…A……Á DHœ!œ!˙üÔH ¨ĽOԄ…œ`ä$œ`˙˙ĘÔ…!DHœ!œ!˙üÔH`œŁä(X 6œŕäH(2ä(.ä‹@ +   €œŔ˙˙ŕeH¸‡ĺ¸c_á­0ŕää‡@˙˙ů¸Ľ¸çA­ ä‰h œŻŕ€ž ŕex¸‡¸c_ŕäŕÇ@ŕfx¸c_œ€ä# ¸kœ€¸Ľä$ˆ ác œć)ä‰h˙˙í`œĺ…!DHœ!œ!˙řÔHÔPœŁ@ĺ…P œ`@ŕ (ĺ„ Jŕ€ ˙˙˛œeœ`ä + á`X…!…ADHœ!œ!˙üÔH˙˙Ľg…!DHœ!œ!˙řÔHÔPĺƒ @ŕ`ĺ„ ŕ€ ˙˙“œ`ä + gá`X…!…ADHœ!œ!˙üÔHœŁ…e „…œŔœŕ…%ä¤8 œ`œgä#0 œ``¨cœŔ˙9ákä ä(0œ`ä ä(0 ä+0)` 'œ`˙‚„…ĺ„ ŕƒ œ`ĺD ák H`œ`ĺD œÄœŔ˙`œ`@¤‹ä ¤‹€œ`ä$ k@k?œ`ĺ‹ škAœĆškG€¨„˙˙¤f˙ák ¸c¸‰ákák …!DHœ!„Ł`¨c˙˙ŕŸe_˙¸ĽWœäŕ…@œ ä$(Ôä&(¸Ćœ€-Ô œ„˙‚œ `?˙¨c˙˙Ô(äŚ Ô œ ˙˙¸ĆäŚ˙˙ţŕ„(Ô ä@ ä&(œ`Ô€¨„ŕf ä#( œ Ô(œ`Ô Ô0 œ Ô(¸f @¨Ľœ„˙ŕc(Ô Ô DHœ!˙üÔHcœŔ ¤… ä¨0 œĺ&œ`ä)°„ä¤0 ŕœfä#xBœ`ä œ œŚä%x ä œ œŚä%x ›„‹„mä$ –`ŠkOؒä œ œŚä%x%œ ä( œ`œfä#x ä( œ`œfä#x ~„kÔ„kÔ„kÔ„k Ô „k„ŕc gpÔ„kä( œ€œ€ä$x fm„Ë„­…+ ŕ†(ĺ„x … + ŕ€ œ`ĺ¤ ĺF(…kĺF( …­¸ˆA¤hœĽĺF(˙˙üá ĺE0 ¸‰A¤iœĆĺE0˙˙üá#   …k…­…kœĹ …­ä+h &œ`ä+ŕˆHŕ‰@œ`ĺd ÔÔ0Ô œ`Ôŕ` Ô0Ô „§ œ€˙˙?˙Š˙ţŕe äŁ@ œÄ¸e„‡œŁÔ ŕ„0ŕe0äŁ@˙˙ůÔ œ`ŕi@ÔXÔ0Ô œ`Ô„§ œ`ĺ… ¤e„‡¸ĽAœ„ŕc(Ô Ô g…!DHœ!œ!˙źÔHÔPÔ`4ÔÔ œa˙ţřœŒA$œa ˙ţôœŠœlœŠ˙˙0œĄ˙ţ˜œk…!…A…DHœ!Dœ!˙źÔHÔPÔ`4ÔÔ œa˙ţߜŒA$œa ˙ţۜŠ„Ą(ŹĽœlÔ((œŠ˙˙œĄ˙ţ|œk…!…A…DHœ!Dœ!˙¨ÔHÔPÔ`Ôp ÔÔ œa˙ţ܁Hœa˙ţŔœ8œ  „ÁHäŚ( œ`œeä#H?„L„8ä¤( œ`œeä#H +„a<„Lä$ œŔœĹœa8—Ô0<œŕä8 œ`œeä#H Ŕœ`ä œŔœĹä&H„L„a<ä8 œ`œeä#H +œ`ä œ€œ…ä$H „L`¨cOŘsœŕä8 œ`œeä#H ä8„L„a<ä$ œŔœĹœaHbÔ0L œ`œ`ä#p +„L„a<ä$ œ œ œa8TÔ(<„ÁTœ`…Dœ Ô ÔHœa Ô0$˙˝2Ô@„k…ĄL„‹…PŕœŁ…a@EœÄ„Ą<áŒX*ä-( Ô`0ŕŒ(Ôx,ĺ‰p Ô`0œ€¤iä# Œ¸ĆA`€ŠkŕĆXš)Aĺ‰ ˙˙÷¤iÔ`0`?˙¨c˙˙äŠ „0œŕœŁœ„˙˙`€ŠkŕfXä#8 š)Š)äŠ(˙˙÷¸ĆÔ 0¤‰œ`@ä ¤i€œ€ä# ä& œ`)@œ`Ô(ÔH4œh˙ýš…!…A……Á DHœ!Xœ!˙ÔÔHÔÔ œa˙ţœœa˙ý˙œ œ „ÁäŚ( œ`œe ä#H „á `œĄä§( œ`œeä#H „a WœĄ „ŕc œ€ä Ô ä(H ä@ œ`œeä#H ä „„a ä @œĄ ¨ĽOŘ< œ`œeä#H œ`œĄÔ(2Ô$ä@ œeä#H œĄ)Ô „Ą(„$„a„áŕdä…8 Ô$œc˙˙¸ĽÔ$`@¨cœŔœ€äe8 ŕĆŕĽ8¸cAä# ˙˙ů¸Ľ¤†œ`@ä ¤f€œ€ä# ä% œ¨œĆ@œ¨Ô0(˙ý=œe…!DHœ!,œ!˙üÔHœ …häŤ( œŕœĺœŔä'0 +…$äŠ( œ`œeä#0 œŕu`ä 8 œ`œeä#0 ä 8 œ`œeä#0 œŕ„d…hdácXœŕ„¨ä8 œ`œ`œŔä#0 ä 8„hä#0 V`T`˙˙ œ`œ`ä#0 „dä#0 J`˙˙H`œŕä8 œ`œ`ä#0 ä 8 œ`œ`ä#0:`œŔä0 œ`œ`œŕä#8 ä 0„dä#8 -`˙˙+` œ`œ`ä#8 „hä#8 !``˙˙„Č„dä& ä&8 ``˙˙„¨„dĺE˙˙řĺ… ä&8 `˙˙ `„h „„ äC ˙˙ěäƒ ˙˙ö`…!DHœ!œ!˙ĚÔHÔPÔ`$ÔÔ œa˙üůœŒAœa ˙üőœŠœl˙˙dœŠ…!…A…DHœ!4œ!˙ĚÔHÔPÔ`$ÔÔ œa˙ü㜌Aœa ˙üߜŠœ€„a$äŁ œ œ¤œŔä%0 +`„aäŁ œ œ¤ä%0`œl˙˙<œŠ…!…A…DHœ!4œ!˙ĚÔHÔPÔ`$ÔÔ œa˙üťœŒAœa ˙üˇœŠœ€„a$äŁ œ œ¤œŔä%0 +`„aäŁ œ œ¤ä%0`œl˙˙œŠ…!…A…DHœ!4œ!˙ĚÔHÔPÔ`$ÔÔ œa˙ü“œŒAœa ˙üœŠœ€„a$äŁ œ œ¤œŔä%0 +`˙˙„aäŁ œ œ¤ä%0`˙˙œl˙ţ윊…!…A…DHœ!4œ!˙ĚÔHÔPÔ`$ÔÔ œa˙ükœŒAœa ˙ügœŠœ€„a$äŁ œ œ¤œŔä%0 +`˙˙„aäŁ œ œ¤ä%0`˙˙œl˙ţĜŠ…!…A…DHœ!4œ!˙ĚÔHÔPÔ`$ÔÔ œa˙üCœŒAœa ˙ü?œŠœ€„a$äŁ œ œ¤œŔä%0 +`„aäŁ œ œ¤ä%0`œl˙ţœœŠ…!…A…DHœ!4œ!˙ĚÔHÔPÔ`$ÔÔ œa˙üœŒAœa ˙üœŠœ€„a$äŁ œ œ¤œŔä%0 +`„aäŁ œ œ¤ä%0`œl˙ţtœŠ…!…A…DHœ!4Ϝ!˙ěÔHœƒœ ¸d_Ô(œ ä$(ÔœŔ Ô0œŔä#( +Ô0 `€¨cä ŕ` `¨cŹ…cÔÔ „ĄŔ?˙¨Ć˙˙äĽ0 +œŕ˙˙„ ¸eŕ„8äŁ0˙˙ýœŁÔ Ô˙űyœa…!DHœ!œ!˙čÔHÔœ˙űƜaœ`„ä œ œ œŔä%0/`œ ä¤( œ`œeä#0'`œ`ä œŕœĺä'0 „a `˙Šk˙˙ä#0 k„ĺ„0`œ ĺD( „a `˙Šk˙˙ä#0  k„aŕ… „Ą ä%0 ác Há`X…!DHœ!œ!˙äÔHÔPԝA œa˙ű„œŠ„aœ€ä# œjœ€˙ű&Ô …!…ADHœ!œ!˙ěÔHÔÔ Ô( Ô0˙űœa…!DHœ!œ!˙ÜÔHÔPÔœ˙űfœa„Á „a¸ćB„š„ĄœÁ Ô8 ˙ş6Ô@„k@ŠJOčÔ +j…!…ADHœ!$œ!˙ôÔHÔPÔ`„ㄤ…„ĝ‡E¨f(œ†¨ŕ˙˙¸¤Pŕi8á+ŕ„8ŕă#š)Pŕ‰#¸gPáá äˆ á)+`¨cá)¸Č¤g˙˙šPŕĆŕmSŕě[ŕ‰@ŕc8`ŠkPŕc Ô 0Ô …!…A…DHœ! œ!˙ÔÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ œŁ†e„…‡žŔ†E ä¤@ œ`œhä#°  `¨cŕ˛œÓžE`žŔ˙œ`ä œŔœČä&°'œ`ä œŔœČä&° ŕsž@Nž`ä°LŚ6˙„ĺœ€üĺ‡ ŕ„8œ`8ĺD œa$ž@9ž`Ԑ$˙ššÔ˜(„k„‹œŁ0žEœ`˙ĺG œ`ž@žŔ˙/ž`œ œ€˙žÇ˙äH ŕÓ œŕ€ä8 +œŔŕ“0ŕdäHœ‡ŕÓ œčœ€œŕŕÓ ä†˜œ˛œŕŕĽ8žEžf`˙¨c˙˙äR ¸Ň¸łAŕ†(¸rAžCžÖžd¸Ň¸łHŕ†(¸rHžCždŚ6˙ ¨Ľ˙˙œ‘ŕň(šd¤¸ž‡Eá´Xšęžŕtxžƒ`ŠkPžłÔ  …!…A……Á ††A††Á‡ DHœ!,œ!˙čÔHÔPÔ`Ôp ԀԐ„Ă Ş1˙˙„Łž@˙˙¤áĺˆ%œĺšÉTš‡_œ ˙žân(¤lœŕä38%Ô +ŕpxä8 œ`AÔ +¸ĐX¸Żŕf(œ ¸Ô +(ăœłüž`˙¨c˙˙äO#Ô +(2¸đ_¸Ďŕg0„­¸ŕĽHăÔ +(äO@˙˙÷žÔ +€ä( ŕpxä8 œ`Ô + ¨Ľŕo(ä8œ`œ Ô +(Ô +Ô +€Ô +x šPXš/œ ŕjHÔ +(¸3ü ¨ĽÔ +Hŕă(Ô + Ô +8 …!…A……Á ††ADHœ!œ!˙ŕÔHÔPÔ`Ôp Ô€ăœŕœÄ…/äŠ8 žœ`ä( o„†ä¤8 œ`œgä#@ůfœ`ä  œ œ§ä%@ ä œ œ§ä%@ ëo„„f`ŠkPä$äâoä œ œ§ä%@۝fœ ä( œ`œgä#@ ä ( œ`œgä#@˙˙˝p„oÔ„oÔ„oÔ„o Ô „oÔ„o„†ŕc žÔ„oä( œ€œ€ä$@śf…Ď…&…Ż…f… ŕŽHĺ„@ …F ŕ€ œ`?ĺ¤ !ĺNH†/ĺNH +†fš +¸ëAŕˆ8œ ¸jA¤ËáE)ĺNH˙˙÷áf ĺIp š ¸íAŕˆ8œ ¸lA¤ÍᅝÎĺIp˙˙÷ጠ †/@†f`†/É€†f ä1˜ Uœ`ä1 œaÔ`Ôh˙¸WÔX…a„k„‹œăŕČXä†@œ`œ`ŕ§P ŕĽŕÍXäFhœ`œ`ŕŹPŕĽœ`ĺ…ÔÔp +Ô0œ`ÔÔpœaÔ(˙¸4Ô0„k„‹œŁÔ Ô( `˙ţ +@˙˙„„p š$_š„đŕŠ@ŕçP¸ÄÔ8Ô0Ô( …œ ˙˙„đ œĹŕˆ0ä„@  ŕg(ŕcH ˙¨Ľ˙˙äC(ä#(˙˙ĺäDX˙˙ℐ…ďŕXÔxœ ä„hÔpœ ŕlPŕc(Ô Ô …Đœ`Ô…° `˙¨c˙˙äM œŽœmšƒšdANœŕŕĚX…0¸ŁAĽ +ŕg()ŕˆ0ÔHÔ Ô p…!…A……Á †DHœ! œ!˙¨ÔHÔPÔ`„ŁÔ(„¤DÔ( œa˙ţsœŒA0œa ˙ţoœŠœlœŠ˙ţҜĄ˙ýϜk„k@ŠJP$Ô +j…!…A…DHœ!Xœ!˙¨ÔHÔPÔ`„ŁÔ(„¤DÔ( œa˙ţSœŒA0œa ˙ţOœŠ„Ą4ŹĽœlÔ(4œŠ˙ţŻœĄ˙ýŹœk„k@ŠJP,Ô +j…!…A…DHœ!Xœ!˙PÔHÔPÔ`Ôp ԀԐԠ„ŁÔ(\„ÄÔ0Tœa\˙ţ-œœœaT˙ţ*œˆœŔ„áœä§0 œ€œ†œ`ä$:„ „ˆä¤0 œ œfä#( „aŒB„ ä@ œ`œfä#( œ`ä œŕœćä'(„  „aŒä@ œ`œfä#( œ`ä œ€œ†ä$( !„ `¨cP€Ş”P4!ä@ œ`œfä#( +ä@„ „aŒä$ œ œŚœaœ€Ş”P4Ô(  œ`œ`ä#( „ „aŒœ ä$ œaˆœ €Ş”P4ţÔ(Œ…aŹ…Ą˜…A¨Ŕ…”œalœdÔˆœÎÔpDÔX(Ôh$ëœę-œŹÔhpÔXhÔ8PÔHHÔ(@Ô0lÔpdœŕÔx ˙ˇÔ8<…a(„Ť„˝ ÔHdœad…!@œlœĺÔplœŚÔXpÔ(8Ô84œ ÔHh˙ˇÔ(L„Ť…Ą$ ÔHl…!DœadÔhhœĺ…ĄPœlžÔHd˙śóÔhp„Ť„Ë…Ą@œĺÔ8,œad„áP œlÔHdÔHlœŚÔhhÔ(0˙śăÔ8p†!…Ą0„káh„‹ œŁ`%€äˆˆD „a,ŕđŕçhäP8ä08„8äQ@ œh`€„8œh„Ą4žœĹâE€äF ždœ€ŕĚ ä†`œdœ`œŤŕĽe†œ‡œ œÄáPäˆ0œ`œ`ŕĺHŕçáL@äŠ`œ`œ`„Á „Ą¤á+8˛„Œá)œŕ„aÓiढ़Šä& Ô(|œŕœĽ`˙¨c˙˙€Ş”P4žAtÔ8xäK Ô(|ŕC%¤Œä$x )¸¸nAŕĸ­Aŕ€¨çĽŕm8ŁĆ¸Ë¸ŹAŕ†(¸kAcäKP˙˙을ÔH|`˙¨c˙˙äK…á|ž žš _¸ëá(8šLď˙˙`€¨ciŕ­äˆŠ¨Œ„¸Î_¸­ŕf(¸ŽŁäK€˙˙ěÄÔx|œ`œ œ€˙œŕä8 ŕĚ €ä@ œŔŕŒ0ŕdä8 ŕnhä8 +œŕœˆŕĚ ä†`œŕœŕœŤŕĽ8e†œŕœrÔ`„ÔX€Ô8t˙ü6„kԝt…!…A……Á ††A†DHœ!°œ!˙ˆÔHÔPÔ`Ôp ԀԐԠ„ŁÔ(8„¤Ô(0œa8˙üľœdœa0˙ü˛œPœ „ÁdäŚ( œ`œe ä#H „áP€Ş”P<ÁœĄdä§( œ`œeä#H „ah€Ş”P<śœĄP„Tŕc œ€ä Ôhä(H ä@ œ`œeä#H +ä „d„aP€Ş”P<ä œĄd ¨ĽP™ œ`œeä#H œŔœĄd€Ş”P<Ô0tÔ0pŒÔ0lä@ œ`œeä#H œĄd€Ş”P<Ô d…At†`„al„X…!p…á\ŕc äOHÔlä/HäPP œaHœ@œ ÔHHÔPLÔ@DÔx˙ľŹÔ(@„k„ál„‹…áœŁœç˙˙%Ô8lD`Šk žAd€Ş”P<€ŔäOHœ`ä/HŕmXäPPœ`ŕmXŕŽ`ŕʀŁœŕäFPÄœŕŕŠxŕĽ8%Fœ`œ€š ¸ěAÔH@ÔPDÔh ÔxÔHÔ LŕČ8œa@¸ŤAœHÔ0(˙ľtÔ(,„k„Ą,„Á(…Ą „‹ž …áeœă†'ŕŹ(äˆ˙˙̝Dœ`œ œ€˙€ä` ŕÎ `€äX œŔŕŽ0ŕdä` ŕj8äˆ +œ˛œ‹ŕÎ ä†pœŕœŕœ­ŕĽ8ĽĆœ˛ÔptÔhp˙űIœe„ŤÔ(t…!…A……Á ††A†DHœ!xœ!˙üÔH#œ …iäŤ( œŕœĺœŔä'0 +„ää§( œ`œeä#0 ‰`ä @ œ`œeä#0 ä@ œ`œeä#0 „d…ixácX„Šä@ œ`œ`œŔä#0 ä@„iä#0 j`h`˙˙ œ`œ`ä#0 „dä#0 ^`˙˙\`ä@ œ`œ`ä#0 ä@ œ`œ`ä#0N`œŔä0 œ`œ`ŕä#x ä0„dä#x A`˙˙?` œ`œ`ä#x „iä#x 5`3`˙˙„d…Šä- ä-x +`)`˙˙„Š„dĺE˙˙řĺ… ä-x `˙˙`… „é „¤ äG(˙˙ě„Ää'(äH0˙˙ç…„ä „Š äG(„Éä'( +`äH0 œ`ä- `˙˙`…!DHœ!œ!˙źÔHÔPÔ`„ŁÔ(„¤0Ô( œa˙ű*œŒAœa ˙ű&œŠœl˙˙NœŠ…!…A…DHœ!Dœ!˙źÔHÔPÔ`„ŁÔ(„¤0Ô( œa˙űœŒAœa ˙űœŠœ€„a0äŁ œ œ¤œŔä%0 +`„aäŁ œ œ¤ä%0`œl˙˙$œŠ…!…A…DHœ!Dœ!˙źÔHÔPÔ`„ŁÔ(„¤0Ô( œa˙ú蜌Aœa ˙ú䜊œ€„a0äŁ œ œ¤œŔä%0 +`„aäŁ œ œ¤ä%0`œl˙ţúœŠ…!…A…DHœ!Dœ!˙źÔHÔPÔ`„ŁÔ(„¤0Ô( œa˙úžœŒAœa ˙úşœŠœ€„a0äŁ œ œ¤œŔä%0 +`˙˙„aäŁ œ œ¤ä%0`˙˙œl˙ţМŠ…!…A…DHœ!Dœ!˙źÔHÔPÔ`„ŁÔ(„¤0Ô( œa˙ú”œŒAœa ˙úœŠœ€„a0äŁ œ œ¤œŔä%0 +`˙˙„aäŁ œ œ¤ä%0`˙˙œl˙ţŚœŠ…!…A…DHœ!Dœ!˙źÔHÔPÔ`„ŁÔ(„¤0Ô( œa˙újœŒAœa ˙úfœŠœ€„a0äŁ œ œ¤œŔä%0 +`„aäŁ œ œ¤ä%0`œl˙ţ|œŠ…!…A…DHœ!Dœ!˙źÔHÔPÔ`„ŁÔ(„¤0Ô( œa˙ú@œŒAœa ˙ú<œŠœ€„a0äŁ œ œ¤œŔä%0 +`„aäŁ œ œ¤ä%0`œl˙ţRœŠ…!…A…DHœ!DÁŕœ!˙äÔHÔPœĂœ€¸f_Ô œ€ä& Ô œ @ŠJPD7Ô(œ <ä# Ô(`€¨cä ŕ`0`¨c2„Ł€¨„PD+Ô(œŁ¸ĂŸÔ(Ô0œ†¸ŚŸÔ Ô( ˙¨Ľ˙˙„a@ŠJPDäC(„ ˙˙eœÄ…!œŁœ†œe¸Ä_¸Łŕć(šá)hœ§œeäCX˙˙öœČÔHÔ(Ô@˙ů?œa„kÔ +`ŠkPD…!…ADHœ!œ!˙ĐÔH„ƒÔ œa ˙ůʜœ`„ä œŔœŔœ ä&(-`œŔä¤0 œ`œfä#(%`œ`ä œŕœćä'( „a `˙Šk˙˙ä#( k„$ĺ„(`œ`ĺD „a `˙Šk˙˙ä#( k„ä#( dá`X…!DHœ!0œ!˙ÜÔHÔP„ƒÔ Aœa˙ů‰œŠ„aœ€ä# œjœ€˙řçÔ „k@ŠJPLÔ +j…!…ADHœ!$œ!˙äÔHÔP„ć…ÔÔ Ô(Ô@Ô8˙řҜa„k@ŠJPTÔ +j…!…ADHœ!œ!˙ÔÔHÔPÔ`Ôp „ƒÔ œ˙ůYœa„Á(„Ą$œ`?˙Š˙˙FšĹšŚ^ŕŠ@áŽhŕdœ ä(œĚ¨Ć„a„˙˛Ľ„Ą …!…A……Á DHœ!,œ!˙řÔHÔP„ădœ€ä+ …`¨cP\Ô8Ô@œ` œ§ŕcXĺŁ œČ ŕ`áEHŕ…á%XHŕfXHáC `¨cP\ÔHÔP`ŠkP\…!…ADHœ!„Ł„Ăœeœ†ŕ  ŕ€œ`ä( œ„˙˙`ŠkPdÔ Ô (DH1.1.1cd[dirname]°sleepseconds (chgrpgid filename ...)¤2chmodmode filename ...%ˆ2chownuid filename ...'42cmpfilename1 filename27cpsrcname ... destname22df[file-system]recho[args] ...Œ2execfilename [args]<2exit@4freeshelp<2hexdump[-s] filenamekěhostname[hostname]t kill[-sig] pid ...DŒ2ln[-s] srcname ... destname/t2ls[-lidC] filename ...N 2mkdirdirname ...€2mknodfilename type major minor Ämorefilename ...;”2mount[-t type] devname dirname3°2mvsrcname ... destname-2printenv[name]@´pwd|pidđquit@4rmfilename ...$Đ2rmdirdirname ...#ü2setenvname value@hsourcefilename°sync$ touchfilename ...+đ2umask[mask]Bpumountfilename5čps`t2catfilename ...Lˆ2datedate [MMDDhhmm[YYYY]]uÄpqrstuvwxyzabcde + +  "˙˙˙˙˙˙˙˙˙˙˙˙  AAAAAAAAAA BBBBBB DDDDDD ˙˙˙˙˙˙˙˙˙˙˙˙SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecOü*‚dCd[€‚€”€Ŕ€đ€%€i€­€ˀí€ €(€:€M€e€’€­€ɀę€ö€=€Š€7€vG€ŞT€˙b€o€X~€Y‹€Z™€[Ś€\´€^€_Ѐhŕ€ €‹3€5K$ a$ 6tw$ G(_ +d@4d@=€d€v€˘€Ň€€K€€­€πí€ +€€/€G€t€€Ť€̀؀ 怡ô€Ł€¤€Ľ€Ź)€­7€ŽE€ČU€Éi€Ęy€Ëˆ€؀Aí€Tl€{Ś$ľ@ł@´ż$%˜Î@$Ú@$â$˜ó@~ ů@ +˙@€$ ˜  +  + ($ü5 ?  I$Ů lV Ř` Řj$D |w C C‹$]`ž@\¤@\Ş$Ź”ˇ ŤÁ Ť Ë$žě× ˝á ˝ ë$ĎŒ÷ Î Î  $ŕ, ß! ß +$ńĚ7 đA đ K$lW a  k$ w   ‹$%°›@$Ľ$Kpł J˝$‰pĘ ˆÔ$šŔâ@–ě@—ô@˜ű@™$ąě °)zdTCdT[€‚€”€Ŕ€đ€%€i€­€ˀí€ €(€:€M€e€’€­€ɀę€ö€=€Š€7€vG€ŞT€˙b€o€X~€Y‹€Z™€[Ś€\´€^€_Ѐhŕ€ €‹3€5K kh l)LdTCdT[€‚€”€Ŕ€đ€%€i€­€ˀí€ €(€:€M€e€’€­€ɀę€ö€=€Š€7€vG€ŞT€˙b€o€X~€Y‹€Z™€[Ś€\´€^€_Ѐhŕ€ €‹3$%T@@$F@$_- +d4d=€d€v€˘€Ň€€K€€­€πí€ +€€/€G€t€€Ť€̀؀Ÿ怠ô€˘€Ł€¤€Ť)€Ź7€­E€ŢU€ßi€ŕy€áˆ€؀@í€Sl€z´$´Á@łÍ$$€Ü@#č@# +đ$€@}@~ +@$ + Œ"  ,  6$! C M  W$Ř!˜d ×\n ×Tx$C'x… B8 B0™$\+,Ź@[ ˛@[¸$Ť-°Ĺ ŞĎ Ş Ů$˝.ĺ źď ź ů$Î.¸ Í Í $ß/`% Ţ/ Ţ 9$đ0E ďO ď Y$0°e ˙o ˙ y$1X…   ™$$2Š@#ł$J3DÁ I Ë$ˆ4@Ř ‡â$Ă4¨đ@Âú@Â@ @Â$Ń4ü# Đ)Md5ŒCd5Œ[€‚€”€Ŕ€đ€%€i€­€ˀí€ €(€:€M€e€’€­€ɀę€ö€=€Š€7€vG€ŞT€˙b€o€X~€Y‹€Z™€[Ś€\´€^€_Ѐhŕ€ €‹3$ś5ŒA@ľG@ľ (Fd6$Cd6$[€‚€”€Ŕ€đ€%€i€­€ˀí€ €(€:€M€e€’€­€ɀę€ö€=€Š€7€vG€ŞT€˙b€o€X~€Y‹€Z™€[Ś€\´€^€_Ѐhŕ€ €‹3$¤6$@@Ł../../gcc/gcc/libgcc2.c/projects/gcc/simons/or1k/b-or32-elf/gcc/../../gcc/gcc/libgcc2.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19reg_class:T20=eNO_REGS:0,GENERAL_REGS:1,ALL_REGS:2,LIM_REG_CLASSES:3,;machine_mode:T21=eVOIDmode:0,PQImode:1,QImode:2,PHImode:3,HImode:4,PSImode:5,SImode:6,PDImode:7,DImode:8,TImode:9,OImode:10,QFmode:11,HFmode:12,TQFmode:13,SFmode:14,DFmode:15,XFmode:16,TFmode:17,QCmode:18,HCmode:19,SCmode:20,DCmode:21,XCmode:22,TCmode:23,CQImode:24,CHImode:25,CSImode:26,CDImode:27,CTImode:28,COImode:29,BLKmode:30,CCmode:31,MAX_MACHINE_MODE:32,;mode_class:T22=eMODE_RANDOM:0,MODE_INT:1,MODE_FLOAT:2,MODE_PARTIAL_INT:3,MODE_CC:4,MODE_COMPLEX_INT:5,MODE_COMPLEX_FLOAT:6,MAX_MODE_CLASS:7,;ptrdiff_t:t23=3size_t:t24=5wchar_t:t25=1wint_t:t26=4UQItype:t27=11SItype:t28=1USItype:t29=4DItype:t30=6UDItype:t31=7SFtype:t32=12DFtype:t33=13word_type:t34=1DIstruct:T35=s8high:28,0,32;low:28,32,32;;DIunion:t36=37=u8s:35,0,64;ll:30,0,64;;func_ptr:t38=39=*40=f19__do_global_dtors:F19__do_global_ctors:F19__main:F19fp-bit.c/projects/gcc/simons/or1k/b-or32-elf/gcc/fp-bit.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19SFtype:t20=12DFtype:t21=13HItype:t22=8SItype:t23=1DItype:t24=6UHItype:t25=9USItype:t26=4UDItype:t27=7fractype:t28=26halffractype:t29=25FLO_type:t30=20intfrac:t31=23 :T32=eCLASS_SNAN:0,CLASS_QNAN:1,CLASS_ZERO:2,CLASS_NUMBER:3,CLASS_INFINITY:4,;fp_class_type:t33=32fp_number_type:t34=35=s16class:33,0,32;sign:4,32,32;normal_exp:1,64,32;fraction:36=u4ll:28,0,32;l:37=ar1;0;1;29,0,32;;,96,32;;FLO_union_type:t38=39=u4value:30,0,32;value_raw:28,0,32;;__pack_f:F30src:P40=*34__unpack_f:F19src:P41=*38dst:P40_fpadd_parts:f40a:P40b:P40tmp:P40__addsf3:F30arg_a:p30arg_b:p30__subsf3:F30arg_a:p30arg_b:p30__mulsf3:F30arg_a:p30arg_b:p30__divsf3:F30arg_a:p30arg_b:p30__fpcmp_parts_f:F1a:P40b:P40__cmpsf2:F23arg_a:p30arg_b:p30__eqsf2:F23arg_a:p30arg_b:p30__nesf2:F23arg_a:p30arg_b:p30__gtsf2:F23arg_a:p30arg_b:p30__gesf2:F23arg_a:p30arg_b:p30__ltsf2:F23arg_a:p30arg_b:p30__lesf2:F23arg_a:p30arg_b:p30__floatsisf:F30arg_a:P23__fixsfsi:F23arg_a:p30__negsf2:F30arg_a:p30__make_fp:F20class:P33sign:P4exp:P1frac:P26__extendsfdf2:F21arg_a:p20../../gcc/gcc/libgcc2.c/projects/gcc/simons/or1k/b-or32-elf/gcc/../../gcc/gcc/libgcc2.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19reg_class:T20=eNO_REGS:0,GENERAL_REGS:1,ALL_REGS:2,LIM_REG_CLASSES:3,;machine_mode:T21=eVOIDmode:0,PQImode:1,QImode:2,PHImode:3,HImode:4,PSImode:5,SImode:6,PDImode:7,DImode:8,TImode:9,OImode:10,QFmode:11,HFmode:12,TQFmode:13,SFmode:14,DFmode:15,XFmode:16,TFmode:17,QCmode:18,HCmode:19,SCmode:20,DCmode:21,XCmode:22,TCmode:23,CQImode:24,CHImode:25,CSImode:26,CDImode:27,CTImode:28,COImode:29,BLKmode:30,CCmode:31,MAX_MACHINE_MODE:32,;mode_class:T22=eMODE_RANDOM:0,MODE_INT:1,MODE_FLOAT:2,MODE_PARTIAL_INT:3,MODE_CC:4,MODE_COMPLEX_INT:5,MODE_COMPLEX_FLOAT:6,MAX_MODE_CLASS:7,;ptrdiff_t:t23=3size_t:t24=5wchar_t:t25=1wint_t:t26=4UQItype:t27=11SItype:t28=1USItype:t29=4DItype:t30=6UDItype:t31=7SFtype:t32=12DFtype:t33=13word_type:t34=1DIstruct:T35=s8high:28,0,32;low:28,32,32;;DIunion:t36=37=u8s:35,0,64;ll:30,0,64;;func_ptr:t38=39=*40=f19__CTOR_LIST__:G41=ar1;0;1;38__DTOR_LIST__:G41../../gcc/gcc/libgcc2.c/projects/gcc/simons/or1k/b-or32-elf/gcc/../../gcc/gcc/libgcc2.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19reg_class:T20=eNO_REGS:0,GENERAL_REGS:1,ALL_REGS:2,LIM_REG_CLASSES:3,;machine_mode:T21=eVOIDmode:0,PQImode:1,QImode:2,PHImode:3,HImode:4,PSImode:5,SImode:6,PDImode:7,DImode:8,TImode:9,OImode:10,QFmode:11,HFmode:12,TQFmode:13,SFmode:14,DFmode:15,XFmode:16,TFmode:17,QCmode:18,HCmode:19,SCmode:20,DCmode:21,XCmode:22,TCmode:23,CQImode:24,CHImode:25,CSImode:26,CDImode:27,CTImode:28,COImode:29,BLKmode:30,CCmode:31,MAX_MACHINE_MODE:32,;mode_class:T22=eMODE_RANDOM:0,MODE_INT:1,MODE_FLOAT:2,MODE_PARTIAL_INT:3,MODE_CC:4,MODE_COMPLEX_INT:5,MODE_COMPLEX_FLOAT:6,MAX_MODE_CLASS:7,;ptrdiff_t:t23=3size_t:t24=5wchar_t:t25=1wint_t:t26=4UQItype:t27=11SItype:t28=1USItype:t29=4DItype:t30=6UDItype:t31=7SFtype:t32=12DFtype:t33=13word_type:t34=1DIstruct:T35=s8high:28,0,32;low:28,32,32;;DIunion:t36=37=u8s:35,0,64;ll:30,0,64;;__muldi3:F30u:P30v:P30dp-bit.c/projects/gcc/simons/or1k/b-or32-elf/gcc/dp-bit.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19SFtype:t20=12DFtype:t21=13HItype:t22=8SItype:t23=1DItype:t24=6UHItype:t25=9USItype:t26=4UDItype:t27=7fractype:t28=27halffractype:t29=26FLO_type:t30=21intfrac:t31=24 :T32=eCLASS_SNAN:0,CLASS_QNAN:1,CLASS_ZERO:2,CLASS_NUMBER:3,CLASS_INFINITY:4,;fp_class_type:t33=32fp_number_type:t34=35=s20class:33,0,32;sign:4,32,32;normal_exp:1,64,32;fraction:36=u8ll:28,0,64;l:37=ar1;0;1;29,0,64;;,96,64;;FLO_union_type:t38=39=u8value:30,0,64;value_raw:28,0,64;words:37,0,64;;__pack_d:F30src:P40=*34__unpack_d:F19src:P41=*38dst:P40_fpadd_parts:f40a:P40b:P40tmp:P40__adddf3:F30arg_a:p30arg_b:p30__subdf3:F30arg_a:p30arg_b:p30__muldf3:F30arg_a:p30arg_b:p30__divdf3:F30arg_a:p30arg_b:p30__fpcmp_parts_d:F1a:P40b:P40__cmpdf2:F23arg_a:p30arg_b:p30__eqdf2:F23arg_a:p30arg_b:p30__nedf2:F23arg_a:p30arg_b:p30__gtdf2:F23arg_a:p30arg_b:p30__gedf2:F23arg_a:p30arg_b:p30__ltdf2:F23arg_a:p30arg_b:p30__ledf2:F23arg_a:p30arg_b:p30__floatsidf:F30arg_a:P23__fixdfsi:F23arg_a:p30__negdf2:F30arg_a:p30__make_dp:F21class:P33sign:P4exp:P1frac:P27__truncdfsf2:F20arg_a:p21../../gcc/gcc/libgcc2.c/projects/gcc/simons/or1k/b-or32-elf/gcc/../../gcc/gcc/libgcc2.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19reg_class:T20=eNO_REGS:0,GENERAL_REGS:1,ALL_REGS:2,LIM_REG_CLASSES:3,;machine_mode:T21=eVOIDmode:0,PQImode:1,QImode:2,PHImode:3,HImode:4,PSImode:5,SImode:6,PDImode:7,DImode:8,TImode:9,OImode:10,QFmode:11,HFmode:12,TQFmode:13,SFmode:14,DFmode:15,XFmode:16,TFmode:17,QCmode:18,HCmode:19,SCmode:20,DCmode:21,XCmode:22,TCmode:23,CQImode:24,CHImode:25,CSImode:26,CDImode:27,CTImode:28,COImode:29,BLKmode:30,CCmode:31,MAX_MACHINE_MODE:32,;mode_class:T22=eMODE_RANDOM:0,MODE_INT:1,MODE_FLOAT:2,MODE_PARTIAL_INT:3,MODE_CC:4,MODE_COMPLEX_INT:5,MODE_COMPLEX_FLOAT:6,MAX_MODE_CLASS:7,;ptrdiff_t:t23=3size_t:t24=5wchar_t:t25=1wint_t:t26=4UQItype:t27=11SItype:t28=1USItype:t29=4DItype:t30=6UDItype:t31=7SFtype:t32=12DFtype:t33=13word_type:t34=1DIstruct:T35=s8high:28,0,32;low:28,32,32;;DIunion:t36=37=u8s:35,0,64;ll:30,0,64;;__lshrdi3:F30u:P30b:P34../../gcc/gcc/libgcc2.c/projects/gcc/simons/or1k/b-or32-elf/gcc/../../gcc/gcc/libgcc2.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19reg_class:T20=eNO_REGS:0,GENERAL_REGS:1,ALL_REGS:2,LIM_REG_CLASSES:3,;machine_mode:T21=eVOIDmode:0,PQImode:1,QImode:2,PHImode:3,HImode:4,PSImode:5,SImode:6,PDImode:7,DImode:8,TImode:9,OImode:10,QFmode:11,HFmode:12,TQFmode:13,SFmode:14,DFmode:15,XFmode:16,TFmode:17,QCmode:18,HCmode:19,SCmode:20,DCmode:21,XCmode:22,TCmode:23,CQImode:24,CHImode:25,CSImode:26,CDImode:27,CTImode:28,COImode:29,BLKmode:30,CCmode:31,MAX_MACHINE_MODE:32,;mode_class:T22=eMODE_RANDOM:0,MODE_INT:1,MODE_FLOAT:2,MODE_PARTIAL_INT:3,MODE_CC:4,MODE_COMPLEX_INT:5,MODE_COMPLEX_FLOAT:6,MAX_MODE_CLASS:7,;ptrdiff_t:t23=3size_t:t24=5wchar_t:t25=1wint_t:t26=4UQItype:t27=11SItype:t28=1USItype:t29=4DItype:t30=6UDItype:t31=7SFtype:t32=12DFtype:t33=13word_type:t34=1DIstruct:T35=s8high:28,0,32;low:28,32,32;;DIunion:t36=37=u8s:35,0,64;ll:30,0,64;;__negdi2:F30u:P30.symtab.strtab.shstrtab.text.rel.text.data.rel.data.bss.stab.rel.stab.stabstr46l! oČL ++6l6 1 ťč8 +;PlP @PlP Ř F ˝ ŕ +PcDcx.(‘ Y“ÜĂ . VěÜ˙ń6lPl)6l2>`;?CG%KGOLSŕV\Y|\8f°q´t´wÄzź}ř(…¨4“@–Pšgži˘vŚ‹Ť?”¸üźTŔhÄhČ?lŐ°ŮŔݐáđĺ¤ńpőüůôýDH´ ź +Đ ,L`!ˆ%h.ŕ2ŕ60:d?”CĚGŕK(O0S`W ř[¨_°cčn rüv $z `~ ‚ + “ ŕ— lŁ ŕ§ěŻ>d˝ + ŕĆ +\Ę +Î +˜Ň ŘÖ +čÚ $Ţ ˆâ 8ć Čę Đî Đň ,ö ,ú H˙ V  Ŕ H Ŕ đ ř +0 +|$ +˜( +Ŕ,$04T8¤<°@ĚDHLXQwV[˜`ĽeŤjÁoŮtĺy,}T°… ‰ŕ‘0•<™X¨Ą”ĽŠ<­pąĐľş´ż Ä É ÎœÓ¤Ř ÝäâäçôěěńDöűpČ4 +ä<4@@#P(H-€2Ŕ7Ě<0A`F”KœPŘUÄZŘ_?hk?dw|H”†€‹ €•ÜšěŸ,¤œŠŽ łŕ¸L˝DÂ Ç Ě4Ń Ö Űŕĺ(ęAďXűÜ P +x˙ńŒ@˜PlŒŒSŹYŘV4q“H;X?vtŕwüC z|GŒK‘ôD}pźD¸pĘÝÄŐ Ů Ŕ ń xá xO ˆ– Šš Œž ˘ Żů!(ý!!lő#ě +! !¨!ŕ!č"$"l"!"¨6"ŕ2"č.#$?#lW#G#ěK$S$@O$_$|C$[$Ŕr$čv%z%d~%Pn%dŚ%tŁ%¸Ć%đÂ%řâ&,Ň&h“'ę&€Ę&ŹÎ'Ö&ě:'˝'Ţ(Tć'”ö'Ěň'Ôî( (LÚ)p(Ź( (Ä(đ)p)X )hú)€˙),*Ä(*8*<4*D0*€<*ź$+ŕD+H+@+4y+`‰+ŕ}+ȁ+؍, •,L‘,č,ŕĄ,Ô…,čL,řĽ-°™/$Š-´ą-ŕ­/$ľ.0ż.dÄ.ş.ŔÉ.đÎ/Q/4V/7[/GŘ0ˆÝ0Ó2ç08â0€ě1ń1ű1@ö211Ä1ü2´ +3L2¸2ä#3L(30`3\e3bj3|o3Ą23ěA4$Z4,75XP4PK4|U5P‹4œ†5$4Ôw4ř-5ŘF5H5•5ŘŠ6<Ÿ6<t6L<6kš6†Â6›Ě6žĺ6áŽ7d¤;l¸7Źł7đ˝8 Ç8tÖ8ÔŃ9Ű9ŕ;8 +98ű;<9€9Č: :< :l%:Ź*:ź/:ř4; ę;|9;~>;ˆC;ŹH;ŘM@$R<<W@$\§>8Ź>¨ą>Œś>¨ť?Ŕ?,Ĺ?$Ę?PĎ?ĐÔ?ŒŮ?´Ţ?äă?´č?Đí?äň@÷@Xü@¤AL@đ AADBHAdA„$BH)B4.BX3B^8Bč=CäBCGC8LC@QCtVC°[CÔ`CôeCřjCüoDtDyD +~DƒDˆDD’D —D%œD*ĄD/ŚD4ŤD9°D>ľDEşDJżDOÄDTÉDYÎD^ÓDcŘDgÝDkâD{çK0ěEńKöEPűEˆEŔEř +F0FhF FŘG#GH(G€-G¸2Gđ7H(<H`AH˜FHĐKIPI@UIxZI°_IčdJ iJXnJ`sJ˜xJ }JÜ‚Lt‡KŒK‘K–K›K KĽKŞKŻK´KšKžKĂKČKÍKŇK×KÜKáKćKëKđKőKúK˙KK4 K`LtK€K¸KŔ"Kü'L8,Ll1˙ńL„@˜PlL„L„;L„SL YLĚVNqLü“NwM`tMdM¸}MŔzMčN?˙ńN @˜PlN N D@˜M@œ;N ?N9CNMGNxKN{ON}–NƒšN…T@ĐSOD^@ĚVO4“X d@ÔYQpqO¸tOŘŔQ4ÄP(¸Q źQ PäPř}PĐzQhwQpŐQČÝRŮR4áR8őRdńWÜůRĚýS +SDS`nXT SœSĐSÔTV|T<.T€!TŔ2TŔ6U¸WU\?VPGVźOVŕCWÄSWHKW°_Wˆ[WnX v@¤‚@°Œ@´›@¸Š@Äľ@ČžX ˘X%ŚX*:X-˝X3úX=˙XBLXJzXÜv\“Y¸~ZâZˆŁZÔĆ[\Â[¤Ň[Čę\ŘÎ\ŘĘ]ÔÖ]|Ú]î]0Ţ]Xć]Dň]Œö]Ě ]čr]čĆ˙ń]ř@ŘPl]ř]ř;]ř?]ůC]ýG^q^€w_<t^Đ}_<z_<Y_<K_LO_w–_„š_Ąž_ˇ˘_˝Ś_Ë:_á˝_ńú_ó˙_ř[```e`(j`?L`hQ`lV`p`đk”źaH¸aÔŔaŘŐbÄkˆÝbńb@Ůb˜áb„ůk€őb„ýbücT +hX g€g´hLhhDhD!i .i¤2iÄ6j8Wj?klGkxË˙ńk¨BxPlk¨k¨;k¨?kŤCk­GkžKkĂOkÇ–kËškÓžkۢkŕSl VlÄYm wm0qq tmH}mhznm mČźmÔ¸nTŔnXŐntÄpÝn¸áoŮońo<őoŒýoxo„ůo˜ +oä pŔp$p@p¤phpt!pä2qt6q.q˜“q Ő˙ńq°BxPlq°q°;q°?q˛CqÖGqčKqůOr qr\wrltrĐYsPÚ˙ńs`BxPls`s`;s`?snCspSsü“ttVtwt$YthqtTá˙ńt„BxPlt„t„;t„?tœSuHVuYu@qux“uxě˙ńuŒBxPluŒuŒóuŒ;u?uŹCuŔSwĚYvŹVvä“xqwwwttwŔ˙ńxBxPlxx Bx;xSxxVx YxČqxđwyty@zyh}yy¸yŕźz¸z0ŔzXÄz€Őz¨ÝzôŮzěázđń{@ő{8ů{<ý{Œ{„ +{ˆ“{œB„|L|t |„|Ř}|ü?}C}5.}Ä!x2}ř6~PW~˜?~ôGLCPOˆK€xSÔ_Ünř[€pr€HzTv€Ź~€đ“HBžGˆŘâčŁ‚pƂ K‚€O‚¸–‚şš‚˝ž‚آ‚đęƒX΃`ʃđ҈ ބ ڄ€ć„Pք¨î…,ň…,ö…t …´††††Hˆ,†° †¸$†ě,‡4(‡´0‡Ü4ˆt8ˆđD‰$@‰\H‹ô™ŠĐɉ°y‰Řą‹@‰đŠ‹‰‹Ě}‰řŠ,…Š ‘ŠX•Šx<ŒŠ˜ĄŠĐĽ‹­‹@ľ‹„ż‹|ċŔ΋ěCž+D ŚŒ ،l猌ݎřâŒČӏ@ěŒôűDöLńŽ”„Ž€˜ÔÜ +đ#ŽxŽŒ(Ž˜2ŽĐ-Žđ:XZ”PŔAU7¨K|‹čw‘$F‘\8Ft†‘€‘¤|‘܁‘ÜCEl˝‘ěŸ’T••xŠ’œ¤’ ¸’ŔŽ•\֓t˝’đ”ÜǓ,ł•TѓˆۓŘŕ” +”Ôű” ••ˆFxPlN˙ń•ŒFxPl•Œ•ŒY•˜V•ÄW˙ń•ĐFxPl•Đ•ĐS–`˙ń–FxPl––i˙ń–@FxPl–@–@V–´q–ŒqFôt—ô}Jč„Jě}—äi˙ń˜JđPl˜˜S˜Ü™Řt˜Ô}˜°ź™„ő™´ٙ™  +™HędŒ˙ńšJđPlššYšD•˙ńštJđPlštštSšź}›wšŘq›ž˙ń›<JđPl›<›<§JđłJôS›ŒY›Ôwœlń›ôtœXœHźœ4á@՝ݜÄٝ`˙ńhJřPlhhi˙ńˆJřPlˆˆSěYžˆqž tžT¸žDžt}žhSž|zž\VžxĞÔőžźC `ážĐ_ŸůŸŸ$ +Ÿ`KŸHŸč <[Ÿ¨.ŸÄW ? ,˝˙ń ˆJřPl ˆ ˆ; ˆ? ‹C ”S ěV üĆ˙ńĄLJřPlĄLĄLVĄˆi˙ńĄ JřPlĄ Ą SĄŘ +ŁpY˘q˘Čz˘Lt˘ ˘P˘Ź¸ŁdŔ˘üŐ˘řŮŁᣠőŁTůŁLi˙ńŁ„JřPlŁ„Ł„SŁÜzŁČV¤(Ŕ¤,w¤ t¤¸¤LĎ˙ń¤tJřPl¤t¤tN˙ń¤„JüPl¤„¤„V¤¸w¤¤N˙ń¤ÄJüPl¤Ä¤ÄS¤Čt¤čN˙ń¤đJüPl¤đ¤đN˙ńĽ4JüPlĽ4Ľ4Ű˙ńâ˙ńâ˙ńŰ˙ńĽtJüPlë˙ńĽJüPlĽĽ;Ľ?Ľ˜CĽ›GĽžSĽđt§PVŚHYŚ€qŚŘw§(ô˙ńâ˙ńâ˙ńô˙ń§tJüPlü˙ń§JüPl§§ ˙ń§´JüPl§´§´ +K;§´?§ĘC§ÜS¨\!Š´Ş¨¨Š¨¸}ŠŒ2¨ĚŐŠdÝŠ\ńŠL.Š8ŔŠ|ŠČ ˙ńâ˙ńâ˙ń ˙ńŞ(KTPl ˙ńâ˙ńâ˙ń ˙ńŞDKTPl '˙ńâ˙ńâ˙ń '˙ńŞ`KTPl 0˙ńâ˙ńâ˙ń 0˙ńŞ|KTPl 9˙ńޘKTPlޘޘ A˙ńŞźKTPlŞźŞź;Şź?Şž JKT TKXSŤ YŤh _KdVŤh cK\ mK` wŤ|CŤx}ŹxtŹŹ|zŹ@ Ź” Žt¸­Ŕ­€Ä­h.ŽpŽD­¨Žl­¸á­Č!­ŕÝŽDN˙ńŽ¨K¤PlŽ¨Ž¨SŻ YŻ( ˙ńâ˙ńâ˙ń ˙ńŻDK¤Pl`˙ńŻ`K¤PlŻ`Ż` •K¤i˙ńŻ¤KĚPlŻ¤Ż¤¸Żř°ÄY°4t°pw°„Ŕ°¤z°¸ź°źi˙ń°ŕKĚPl°ŕ°ŕVąˆYąwąP}ąŒą|qąx Ÿ˙ńâ˙ńâ˙ń Ÿ˙ńąŹKĚPl ¨˙ńâ˙ńâ˙ń ¨˙ńąČKĚPl °˙ńâ˙ńâ˙ń °˙ńąäKĚPl ¸˙ń˛KĚPl˛˛Ŕ˛0Ő˛(w˛`IJlt˛pݲﲐ¸˛Ô ż˙ń˛ŕKĚPl˛ŕ˛ŕ Ç˙ńâ˙ńâ˙ń Ç˙ńł|KĚPl Ď˙ńâ˙ńâ˙ń Ď˙ńł˜KĚPl ×˙ńâ˙ńâ˙ń ×˙ńł´KĚPl Ţ˙ńâ˙ńâ˙ń Ţ˙ńłĐKĚPl ç˙ńâ˙ńâ˙ń ç˙ńłěKĚPl ď˙ń´KĚPl´´;´S´X}´ÔV´´€Y´°w´˜ ú˙ńâ˙ńâ˙ń ú˙ń´đKĚPl +˙ńľ KĚPlľ ľ ;ľ Sľ\}ľŘVľ”ľ„Yľ´wľœ + +˙ńâ˙ńâ˙ń + +˙ńľôKĚPl +˙ńâ˙ńâ˙ń +˙ńśKĚPl +˙ńâ˙ńâ˙ń +˙ńś,KĚPl +#˙ńâ˙ńâ˙ń +#˙ńśHKĚPl +,˙ńâ˙ńâ˙ń +,˙ńśdKĚPl +6˙ńâ˙ńâ˙ń +6˙ńś€KĚPl +=˙ńâ˙ńâ˙ń +=˙ńśœKĚPl +E˙ńâ˙ńâ˙ń +E˙ńś¸KĚPl +N˙ńśÔKĚPlśÔśÔVˇ +V˙ńâ˙ńâ˙ń +V˙ńˇKĚPlN˙ńˇ8KĚPlˇ8ˇ8qˇTVˇ„ +N˙ńˇ”KĚPlˇ”ˇ”i˙ńˇ°KĚPlˇ°ˇ°Vˇčt¸tq¸dw¸H +]˙ń¸ˆKĚPl¸ˆ¸ˆ§KĚłKĐ;¸ˆSšYš´ńš4qš Ýşźšš|ŔşPŐşHŮşŔ +f˙ńâ˙ńâ˙ń +f˙ńşđKÔPl +n˙ńâ˙ńâ˙ń +n˙ńť KÔPli˙ńť(KÔPlť(ť(Sť€ź0YťĚqťŕtźź źź(i˙ńźXKÔPlźXźXSźźŐ˝äY˝w˝`t˝X¸˝xá˝|Ý˝¤˝Ŕń˝Ü +u˙ńâ˙ńâ˙ń +u˙ńžKÔPl +}˙ńž0KÔPlž0ž0ÝžĚwž„ńż€Őż„}žÔżáżp¸ż ŔżX +‡˙ńżœKÔPlżœżœVżÄtŔHYŔ$wŔN˙ńŔPKÔPlŔPŔPVŔ„qŔhN˙ńŔŒKÔPlŔŒŔŒSŔÔ +‘˙ńŔđKÔPlŔđŔđVÁ$tÁhYÁ`wÁl +œ˙ńÁ€KÔPlÁ€Á€ +¤Á€őÁČVĂwÂŔtÂzÂ8Â,źÂ€ŔÂp¸ÂŹŮĂ +­ĂTSÜÄđĔĂđÄ Ä.ÄT6ÄD2ĀCÄÔ +śĹ(nDŽĹ|zĹźvĹŕ~ĆŁĆüĆ8ÂĆPŇĆ@ÎƈĘƤÚƔÖĆÔ“ĆđöÇ ÇTÇt$ČȄ(Č0DČp4ČXN˙ńȔKŘPlȔȔSČĐtČüVČŕqČŘ +ż˙ńâ˙ńâ˙ń +ż˙ńÉKŘPl +Ę˙ńÉ4KŘPlÉ4É4ŔÉdŐÉ\wɔÄÉ tɤÝÉřÉÄ¸Ę +Ń˙ńĘKŘPlĘĘN˙ńĘ\LXPlĘ\Ę\tĘ|VĘ´ +Ů˙ńĘÄLXPlĘÄĘÄVË(zËwË@tË`źË”¸Ë¨ËāËČÄĚCËř?̤ĚźKĚŹ̈O̘ýĚ ą́SÍh_Ěđ!Í.Í<GÍ@WÍxi˙ń̈́LXPl̈́̈́VÍČYÍÜSÎl}ÎŹwÎ(źÎpÎ° +â˙ńâ˙ńâ˙ń +â˙ńÎĐLXPl +ë˙ńâ˙ńâ˙ń +ë˙ńÎěLXPl +ö˙ńĎLXPlĎĎYĎ|qϐ ˙ńϸLXPlϸϸ +LX ˙ńĐL„PlĐĐ •L„ ˙ńĐDLŹPlĐDĐD %ĐxSĐŕVĐü 4LŹwÓtÓ ÓzÓH}Ó\ÓÔ¸Ó°źÓČŐřŐŐ<ÝÔ<ŮÔLԈýŐ ՜ՀՄ F˙ńâ˙ńâ˙ń F˙ńÖ0L°Pl N˙ńÖLL°PlÖLÖL XL°Sր c˙ń֐LĘPl֐֐ kLĘ s˙ńÖüLäPlÖüÖüV×,Y×N˙ń×4LäPl×4×4q×D×”ź×€W˙ńלLäPlללS×ĐYŘ$VŘ `˙ńŘ,LčPlŘ,Ř, }Ř,SŘ´VŘÄ2ŘČwŘŘtŘčqŮ6Ů}Ú0Ů ÄŮ,ŐŮ<ŔٌŮŮXáŮhůٸWŮ !Ůźý٨Ů°őŮŔ Ůä.ŮôÚÚ?Ú4GÚDCÚX;Ú Sŕ¤öŰ$ÚŕěŰHrŰpvÜńۤŁŰČzÜĆŰÜŇŰěçÜHąÜPÖŢ4îŢH…ß„ňŢPŢŢ<ŢtŠßŕ<Ţä,ŢčߌތބŢ|0ŢĚ4Ţԕߤ(ŢčöŢl ިŢ°$ß´Hß@ß ‰ß$ßP}ßd‘ߏľŕ„żŕ(âŕ<ÉŕTÎŕhŘŕÄűŕÜ …˙ńâ˙ńâ˙ń …˙ńáLěPl ˙ńâ˙ńâ˙ń ˙ńá0LěPlN˙ńáLLěPláLáLVá„Yál ™˙ńáŒLěPláŒáŒ Ł˙ńá°LěPlá°á°qáŕtââ$źâl Ť˙ńâŒLěPlâŒâŒ;âŒ?â‘CâŸSăôÝăŐäŮăěńă4}ăXá〟ăĐ ľ˙ńä$LěPlä$ä$ źLězä`}ältä´ Á˙ńâ˙ńâ˙ń Á˙ńäÔLóPlN˙ńäđLóPläđäđVĺ,Yĺ tĺ0 Ę˙ńĺ8LóPlĺ8ĺ8qĺd Ó˙ńĺlLôPlĺlĺl ŕLô íMôSĺœ?ĺ VĺČWĺŔ2čYćqćTGć¸ćhŔć|ŮćČCçlćđńç őçůç,ýç4ç< +çL ç\áçhÝçœ ÷˙ńč8N Plč8č8 ŕN  NŒ N¸SčhčlVč”čŒ +ęČYčĚqé čиé4ŔéHáę`őę<ýę˜ę´ ˙ńęđNČPlęđęđ ˙ńâ˙ńâ˙ń ˙ńë$NČPl (˙ńâ˙ńâ˙ń (˙ńë@NČPl 0˙ńë\NČPlë\ë\ :ë\VěYëđ2ě0zěě”ě¨¸ě ÄěěŔěě.í\6íőíHýí@ŮíL +í¨ í¤WíŹíđíÔ ˙ńî$NČPlî$î$;î$?î+Cî<Sî¨ŰútVîĚ˝îÔHîŘ.ú$zů<}ďŒđ źďÄďŘÄđKđ<Fđ@PůĐUđhZů4ÝňL(öůň|$őđ +ň”őĐáňhńňtŮň\ýň„ż÷ őň˜ňŒóň´ňŘ!ňŕ6ó(óč?óPGôDWóčOó„SóŒőxró°zóÄnóŕvő,“óřŁô ~ô€Âô, ô„ĆôhŇôp%ú(ĘôÄÖôÔ +őPćôôňő [őt‹ú *ő˜ő´őŔ,ř 0ö<4öD<ö`Döt8öœ@÷”RöČ}÷ ąöüĄ÷P\÷tĽ÷l4÷X‘÷H•÷0÷pÉ÷źÓ÷ŕŘ÷čűř˜ěřT/řHWřœ +řp(řˆCůř´řŘ#řŕMů(|ůx•ůœŸů¤ú¸úÖú8ŃúPŕúp I˙ńúŹNĚPlúŹúŹ W˙ńűNĚPlűű bű gNĚ oNâ;ű8VűźYűüW˙ńýOPlýýVý¤qý€ w˙ńýŔOŹPlýŔýŔSýčYţqţVţ(tţˆŐ˙ €OŹÄţ¤ţčźţŕÝţđ …˙ńâ˙ńâ˙ń …˙ń˙,OÎPli˙ń˙HOÎPl˙H˙HS˙|z˙ěY˙Ŕw˙ŘOĐPl  ”OĐV`Y4ŘůܸÄzáô ™OÔTPlcD Š˙ń`OŘPl ł˙ń@OŘPl@@ @ źOŘźpÄlÝ WőźńĐ 6h !L?TC KärŁd[zlv<“\ Ć˜ęÄÎŒâčŘôćŢLö\ xÔ,4č0ü<D€@T‰<‘¨…`•˜ĄDçČŠä­řşTżÝXɈ/ źG +źR Ük +f üH \a +‰ +P„ +<8 +ˆç +Ŕ Ô +`˜ +˜ +|[ +ôś +Źť +ÜĹ +ĐĘ +čă Ů č €ň ĐV  Ô ź  ě  LB H‚ PA źF ÔŻLK äP řĽ +  +@Z +4_ +d‘ +pŒ +Œn +œx +°s +Ü +đ "D,@ ŮH Ţ„ ă´ č¨ íź ňˆ ÷Ě ü +ä + +  +@ +L +p +„ +$¨ +)œ +.ź +3ä +8đ += +B< +G( +Ll +QX +V< +[x +`` +eÜ +j +o +t| +y¸ +~  +ƒ +ˆX +@ +’ź +—ř +œŕ +Ą\ +Ś˜ +Ť€;Ź +°ä +ľ\ +ş  +ż +Äd +É$ +Î@ +Ó  +Řd +ÝÄ +âä +ç  +ěd +ńH +ö¨ +űOčRpiĆTOđPlTT TVđpćTPPlTT T +˙PqĐXčw`˙ńPPl  źP +˙Pźl”Ä Ý¨CHőÄńÜS 8?ôKđX! 6ČOŹ_źntrÂüĘź“@ÚŔĆČҔθ ĆîXćph p „¨đ Ŕ(8 4€H8y”}Č…T‘•č­„Ľ ąpżÜÄŕşÔÉüÎôÓ(Hç„ěX-\ń¨ ü l P$P,P4Ĺ!řŞ"č_""0F#0Ô"D÷"tü"`A"Ź›"ě "„$"Ä" P#(Ů'@Q"ŘG#["üV#ç#PĽ#@ń$´ö$ŕU$ě $đő%4%$đ%T +%pë%°Ü&@%äá&Í&¸#&\Ň&”-',K'Z'0ž'P< +'Ř#'ř(*ô-( +($2(D7(l +3(`<(˜ +=(¤A(ĚF(Ü +B(řK)4P)|U)œ +Q)ř +)ÄZ)ä_*č +G*Ŕd*ě ň*Ř +V+Pi+€ +`+tn+ˆs-¤x+˜ +[+Ě}+° +Î+Đ +o+ä‚, ‡,Œ,< +y,P‘,t–,h›,ˆ +ƒ,° ,źĽ,ŕ +œ-Ş,ô +Ą-4Ż-` +ş-´.h +Ý.¤š.Œž/ +ń/LĂ/4 +Ř/¸Č/ô +ě/ÜÍ0`Ň0œ×0„Ü1á1Dć1,ë1°đ1ěő1ÔúPD<2˙2H3 2œ2ˆ3,2Ź2ŕ"3x'44,3œ13ź63ä;44@4 EPLJ4|OPTT5dZŕ}Ź5ŒP\Pl5Œ5Œ 5Œ +˙P\S5Ä“6 V5ěY5ü_`„Ů6$PdPl6$6$ 6$ +˙PdS6TaX‹&Y˛ŕaŞ`iptá°{¸…ÎЍ!˜—NȨśdąŒşŻ`ĂuÄĚŞ(Ó4üáüëOřúśáŒ ˇ”Ľ4Bp$•Œ,Ö03T=rD‚üUúŹbąäi‰płDwBl|6$†1Xś¸—°˘€Ź+đśśœ˝7ŁŒĐ^Ý3Dč”ň! üx$ě˙HŔđ)ˆ2FĚ:|B-Iâ¤R,[ޘbĺ8 €?˜jKÔq`‚ýŔŠÄ•Ň,¨ł˜ŻKťˆ°ĹŽ¨Î$ כ<ß.¸č@hóšý{Ź żœ#üŻ¤#§+Ę4Bd:˜DFxOA,Vkěb|”j@´wĎ„á0Œ˜BXŸŇ§F|Ž°ŕľ•ˆž lȖ@ی ĺ¤t÷ĄL˙Fř%ˆś,2,‘l8,Ał|HźXP×4Y’ gĎŹvt ƒ\č8™˛Ÿ ÄŠBnłŔPťž0Ä0ÍáLŐ;”ŢĽtä§ěîë$ö@ŘţąČĘ8˜îHä$%Îě2(:hCsL)¤Vá]<fĘÄn wLč‰ý”ŔŒœěĽtąN ¸ |ÂOđŃ/`Úť(á€íľ÷+,@ě'O8BľôH'4RĚ[֐bLˆj/tqÖüx´‚Fp‹ä𓜀™˜ĽBTŞF¤˛štş´đÁŞ|É<Ňë@Ů4@ăëŒî6töśHţ¤Ä.ˇ°p °'šP/śÔ7Ą ?¤đGĐÖ́VäÔ^ˇ8fלnłěu ˜}t-°š5čĽĎ¸°DŒšžŔŔË'xŐLäŕÖLé$ĐđłĐřĺl5ŒBh4¨#l,O =B,CŞŔK@4TĘ\]–ČmÉwŻD~ł´„äŽB\–Č”Ÿ`ŞËpłÉ4šŁ„Ŕ3°Ę˙,Ńť ×@ᤄéđń (űĐD2JřąŹ#Jü2ˇ8°E}\O•ĐUęđ[¸ŒcŞDj`tqţ<z–‚0°‹B`‘şđ˜ÇźŸűTŞ Œ´KŘ˝dĂÚŹÍĽ´Ő§tsash.cgcc2_compiled.___gnu_compiled_c_version_intcrlfLC0LC1LC2LC3LC4LC5L3L4L5_catchint_catchquitL6L8L7L9L10L11_readfileL12L2LC6LC7LC8LC9LC10_sourcecountL14L13L15L16_sourcefilesL17L19L18L20_showpromptL21L22L23L24L25L28L27L26L29L30L32L31L33_commandL34L35L36LC11L38L40L39L41L42L43L37L45L44_findaliasL46L47L49L48L50_command_in_pathL51_trybuiltinL52_runcmd_path_copy.12LC12L54L55L59L58L56L60L61L62L53L63L57L64L65L66LC13LC14L68L70L67L71L72L69L74L73L75L77L76L78L79L80L81L84L82L83LC15LC16LC17LC18LC19LC20LC21LC22LC23L86L88L87L89L85L90L91L92L95L93L94L96L97L98L99L100L103L101L102L104L105L106L107L108L110L109L111L112L113L114L117L116L118L115L119L120L122L121L123L124L125L126LC24L128L132L131L129L130L127_aliascount_aliastableL134L137L135L136L133L138L139LC25L140L142L141L143L145L144L146LC26L147LC27L149L148L151L150LC28LC29_catchchildL153L154L155L152cmds.cL156L157L158L159L160L162L161LC30LC31L164L166L165L167L163L168L171L170L169L175L180L176L178L174L173L172L177L181L182L183L184L185L186L187L189L188L190L191L196L199L194L192L193L195L198L200L201L202L204L205L207L206L203L208L210L209L211LC32LC33L213L212L214L217L216L215L219L218LC34LC35LC36LC37LC38LC39LC40LC41LC42LC43LC44LC45LC46LC47LC48LC49LC50LC51LC52LC53LC54LC55LC56LC57LC58LC59LC60L221L222L223L224L226L228L230L232L234L236L238L240L242L244L246L248L250L252L254L256L258L260L262L264L266L268L270L272L275L274L273L220L276L271L269L267L265L263L261L259L257L255L253L251L249L247L245L243L241L239L237L235L233L231L229L227L225L277L279L278L280L283L282L281L284L285cmd_uclinux.cls.c_linelen_def.3_listsize_list_listused_lsfile_username.7_userid.8_useridknown.9_groupname.10_groupid.11_groupidknown.12ps.chexdump.cdf.cfree.chostname.cdate.c_invalid_dateutils.c_buf.3_buf.7_buf.17_strings.30_argtable.31_chunklist_newcmd.44string.catexit.cprintf.cstdio.c_first_time_bufin_bufoutsignal.cgetenv.cputenv.c_mall_env.3_extras.4perror.cisatty.cerrno_loc.cstat.Ssysdep.hsystem.cclose.Sexecvp.cerror.c_retbuf.3_exit.Swait4.Sgetpid.Saccess.Sexecv.cgetcwd.c_path_buf_path_size_st_root_dev_root_ino_recurser_search_dirwrite.S_string.3gettod.Schdir.Smkdir.Satoi.csleep.cmknod.Srmdir.Ssync.Sunlink.Schmod.Sgetpwnam.cchown.Sgetgrnam.ctime.Sutime.Sopen.Srename.Ssymlink.Slink.Smount.Sumount.Salloc.cread.Ssetenv.cumask.Skill.Slstat.Sopendir.creaddir.cclosedir.cqsort.c__wqsort__lqsort__nqsortreadlink.Satol.cctype.cstrtol.cstatfs.Ssethstnm.Sgethstnm.clocaltime.c_tmb.3scanf.cmktime.c_ydhms_tm_diff_localtime_offsetstime.Sasctime.c_timebuf.3ctime.c_cbuf.3aliases.c_prtfldlseek.Ssigaction.Stermios.cexecl.cexecvep.citoa.c_a.3execve.Sselect.c__getpwent.c_line_buff.3_passwd.4__getgrent.c_members.4_group.5mmap.cmunmap.Suname.Stm_conv.c___mon_lengthslocaltime_r.casc_conv.c_hit_days.6_mons.7ltostr.c_bufioctl.SLtext0_p.3_initialized.10libgcc1.Sfp-bit.c_thenan.3__fpadd_partsL179L286L290L289L292L288L339L295L294L297L342L300L299L305L304L310L309L312L315L314L320L319L324L340L330L341L347L351L349L355L359L357L363L367L365L371L375L373L379L383L381L387L391L389L393L394L395L396L402L397L400L406L421L409L412L411L423L417L427LF1LF0dp-bit.cLF8LF9LF14L197LF21L306L307L308L311L313L316L321L322L325L326L329L332L334L343L346L345L398L352L354L356L362L361L366L369L372L377L376L399L390L405L407L413L415L425L429L433L431L437L441L439L445L449L447LF23L451L452L453L454L450L455L458L464L479L467L470L469L481L475LF26L485LF27L488_usleep_getpid___fixsfsi_execl_getchunk_statfs___muldf3__vfscanf_fp_ref_symlink_do_echo_sprintf_do_date__exit___truncdfsf2___subsf3___DTOR_LIST___utime_tcgetattr_free_strcat_do_umask_strcmp_stime___muldi3_do_df_expandwildcards_localtime_r_mkdir_match_sleep_tty___negdi2___ledf2_umount_do_source_do_mkdir_do_touch_mount_do_cmp_buildname_dev_to_name___fixdfsi___cmpsf2___subdf3_modestring___extendsfdf2_ungetc_closedir___fopen_stderr_do_pwd_do_mv_execvep_do_time_execv_select__qbuf___fpcmp_parts_f_ltostr___umodsi3___mktime_internal_rmdir___sys_nerr_namesort_strncat_do_sync_putenv___nedf2_do_setenv___signal_timestring_readdir_do_rmdir_fputc_execvp_toupper_pgrp___addsf3___IO_list_psbuf_do_hexdump_isadir_do_printenv_gethostname_sigaction___nesf2_state_mktime_stdin_fputs_environ___mulsf3___stdio_close_all_makeargs___errno_location_isatty__fixed_buffers_do_chmod_open___floatsidf_freechunks___gtsf2_mknod_fwrite_strncpy_expandenvvar_gethostbyname_do_hostname___divsi3___getgrent_atoi_do_mknod_tty_name_memcpy_opendir___gedf2_memset_do_more_stat_strerror_munmap_master_chdir_tolower_fflush_vfscanf_itoa_sethostname___main_fprintf_do_free_do_chgrp_lseek_do_exec_strtol___lesf2__vfprintf_fp_ref___do_exit_strdup___eqsf2_makestring_do_ls___divsf3___CTOR_LIST_____gtdf2_fread___unpack_d_getgrnam___fpcmp_parts_d___do_global_dtors_port_xlate___on_exit_count___pack_d_time_do_chown___gesf2_ctime_do_cat_do_ln_bcopy_getpwnam_intflag_memchr_link___unpack_f_pid_stdout_getenv_chown_access_do_help_uname___negdf2___tm_conv_cmdtab_rename_strchr___eqdf2_fgetc___negsf2_do_cd_signal_malloc_fclose_strcpy_sscanf_fseek_execve_memcmp_atexit_chmod_perror___do_global_ctors___cmpdf2_do_umount_localtime_do_kill_lstat___make_fp___divdf3___cleanup_asctime_do_rm_unlink___getpwent___lshrdi3_session___make_dp___ltsf2___on_exit_table_name_getcwd_do_exit_strncmp___io_init_vars_readlink_write_sync___modsi3_statec_strrchr___udivsi3_strtoul_atol_fgets_do_mount_ioctl_kill___pack_f_strlen_do_pid_do_sleep___mon_yday_do_cp_errno_gettimeofday___sys_errlist_read___floatsisf_copyfile_exit_mmap_setenv_wait4_do_ps_ultostr_printf___ltdf2_ppid_umask_qsort___asctime___adddf3___ctype_main_vfprintf_system_close€ Ż°´¸ CŘ  C04L %\`hlt %| Ő€ Ő„ Ť”˜ 䤨Ź äÄČĚ Öčěđ q8 źŔŘÜä _č _ě °ü ‡ ‡(,0 ^X îhlpt  ŽŔ ŐÄ ŐČ ŤÔ ‡Ř ‡đ Đô Đ$ ‡( ‡< ćDHLPTXpt€ ¸ ź ü \`„ˆĐÔě ‡đ ‡  % $x|Ź°´ îŔ ‡Ä ‡Ř ü ‡ ‡ ć ( %048<@D| Đ€ ĐŒ “č ß4 ˜„ ŒÜŕô ç ( , 0 A P A l Œ +( ß +D +H +L Ö +˜ +œ +¤ ç +Ź +° +¸ ß +č +ě +đ       A $ ( 0 A < @ D Ľ  ß č Ľ „ ˆ Ě C +0 +4 +P _ +T _ +X ° +` _ +d _ +h Ť +ŕ G,08 _< _@ °t GźŔČ _Ě _Đ °čěü % /4 äX \ ”´¸Đ ‡Ô ‡äč 0( ä8 äH äX y` d | € ˆ Śœ ¤¨ź %Č :ôřü î $4 %`d€ "¤ ¨ ř / _ _$ °PT€„Ź°ŔÄŘ _Ü _ŕ °č _ě _đ Ť î TXœ ź %ü T C /$ %l ŘŒ î ¤¨Ź°´ŕäčě ‡ ‡ $< ćp d| îˆ Ě Üŕč o  LPT ä\ Đ` ĐlpŒ˜ ÄČĚ äÔ ĐŘ Đäč | "¤ /´¸Ě 8Ü /ěđ 8 Đ Đ <@H \ p đ Őô Őř x Ő Ő$ ˆ8 Ő< Ő@ x  źŔČ _Ě _Đ °ŕäô %P X\t %ôřü Ö $, _0 _4 °H Šh îÔ Iü î `  p K đ ô ř C!4!8!< C!l!p!x _!| _!€ °"l"p"x _"| _"€ °#l#p#x _#| _#€ °#ź •#ä î$L l$t î$¸ % ú%H î&D&H&P _&T _&X °&ź í&ä î(((,(4 _(8 _(< °(X Ď(|(€(ˆ _(Œ _( °) Ľ)4 ×)` î*˜*œ*¤ _*¨ _*Ź °*Č Â*ě*đ*ř _*ü _+ °+x Ľ+¤ ×+Đ î, Č,l >,œ ‘,Ä 0,Ř î-L €-„-ˆ-˜ _-œ _-  °. Ř. î.T U.l Ţ. .” .° î.Ě .ô ú/ î/¸/ź/Ŕ C/Ü/ŕ/č _/ě _/đ °000 _0$ _0( °0P 60x î0Ź €0ä0č0ř _0ü _1 °1` Ř1€ î1´ U1Ě Ň1ě î2P €2ˆ2Œ2œ _2  _2¤ °3 U3< 3ŕ3ä4Ô4Ř4ŕ _4ä _4č °5$5(50 _54 _58 °5l5p5x _5| _5€ °5Ź S5Č5Ě5Đ î6 O64 î7, Ľ7T î7t Ľ7œ î7Ô7Ř7ŕ %888 %84 ‘8d î8ˆ ‘8¸ î8Ä 08Ř ĺ8ě ĺ9 Đ9 Đ9D 9p î9Œ 9¸ î9đ9ô9ü %: :$:, %:P:T:\ %:x ë; ;; %;@ 0;L 0;X @;d @;ü<< ^<, î<<<@L Ő>P Ő>T Ő>X Ő>t Ő>x Ő>| x>Œ Ő> Ő>¨>Ź>´ %>ź Ő>Ŕ Ő>Ä Ť>Ě Đ>Đ Đ>ô ? ć?¸ ć?Ô ć@ ć@P @œ !@Ě ‰@Đ ‰AAA4 %AX AŒ Aä ëBBB$ %B  (Bź (BÄBČBŘ %C°C´Cź _CŔ _CÄ °CÜ (DäDčDě CEE E$ CETEXE\ CEŒEE” CEÄEČEĚ CEüFF CF4F8F< CFlFpFt CF¤F¨FŹ CFÜFŕFä CGGG CGLGPGT CG„GˆGŒ CGźGŔGÄ CGôGřGü CH,H0H4 CHdHhHl CHœH H¤ CHÔHŘHÜ CI II CIDIHIL CI|I€I„ CI´I¸Iź CIěIđIô CJ$J(J, CJôJřK _K _K °LLL _L$ _L( °L@ Ld îLĚ ĐLĐ ĐLě ćM M$M( ^MP îMŒ ŔMĐ ŐMÔ ŐMŘ –N ćNźNŔNŘNÜNä ĺNôNřOOO _O _O$ °O4O8ODOHPPP(P,P0P4P8P<P@PDPHPLPPPTPXP\P`PdPhPlPpPtPxP|P€P„PˆPŒPP”P˜PœP P¤P¨PŹP°P´P¸PźPŔPÄPČPĚQ4Q8QP _QT _QX °Q¤Q¨Q° _Q´ _Q¸ °QäQčQôQřRR Rœ RŘ ôRř îSd ĄSŒ îS´S¸SČ %SŘ vTŒ çT°T´T¸ ATĚ ATÔTŘTÜTŕTřTüU ĺU8U<UD _UH _UL °U\U`UdUhU€  UˆUŒU” @UœU U¤U¨UŔ šUĚUĐUŕUäUôUřVV V,V0V8 _V< _V@ °VPVTVXV\V`VdV€ ]VˆVŒVV”V¤ nV¨ nVŹ )VźVŔVěVđW ôW, îW8 @WP W¨ @WÄWČWÜWŕWü ŐX ŐX xXœX X¸ 8XÄ Y ZY çY Y4Y8YP 8Y\ YtYxY˜YœY¸YźYĐYÔYŘ 8YŕYäYôYřZZZZZ 8Z, ZDZHZhZlZˆZŒZ Z¤Z¨ 8Z°Z´ZÄZČZÔZŘZŕZäZđ 8Zü [\[`[” 8[¤[¨[Ŕ 8[Ě [ě u[ř[ü\ 8\ Ő\ Ő\$ ˆ\0 Ő\4 Ő\8 ˆ\„ \ź\Ŕ\Đ %\ô ]4 Ő]8 Ő]< x]X]\]`]d]|]€]Œ]]Ź Ő]° Ő]´ x]ź]Ŕ]Ř Ő]Ü Ő]ŕ x^$^(^, ç^P^T^p 8^œ^ ^Ŕ 8^ě^đ^ř^ü_4 8``”`œ %`Ź`°`´ ‘`Ř`Ü`ŕ î`ô`řa a 0a0a4a8 îaHaLa`adapata€ a Ča a¤a¨ ĄaÜ vb b@ ,bD ,b˜bœb°b´b¸ 8bČbĚbĐ ‘ccc c0c4c8 îcD 0cTcXclcpc|c€cˆ c¤c¨cĚ cŘcÜcě ßd ddd$ ßd< dHdLd\ ßdpdtd| d” ßd° ßdĚ ßdč ße ße ße< ßeT el ße„ eœ ße¸ ßeÔ ßeđ ßf ßf( ßfD ßf\ flfpfx ßf”f˜f  çf¨fŹf° fźfŔfČfĚfĐfÔfä 0fěfđfüggg g4g8g< 8gDgHgTgXg\ ^g€g„g g´g¸gźgŔgČ gägčgě hhhh h h0h4h8 hP ćhœ ›hŹ hź hĐ <hđ iii „i(i,i8 ŠiDiHiP Ši\i`ih ˝i| ˝iŒ 0iÄiČiÜiŕiä 8iôiřiü ‘j j$j( îj<j@jH jljpjt îj€ 0j” 0jœj j¤j¨jÄjČjĐjÔjŕjäjějđk ›k4 kXk\klkpkx %kŒ ]l@lDlH Clx +lĐlÔlŘ ^lô ém8m<m@ Cm|m€m˜ %m´m¸mČmĚmÔ %n( Ŕn”n˜n° %odohoxo|oŒooŹ %oČoĚoÜ %pTpXphplpt %p¤p¨p¸ %päpčpđ %př Őpü Őq Ťq ‡q ‡q q$ ,q( ,rHrLrt 3r r” rœ Śr¨rŹrŔ %rĐrÔrě %rôrřs %sss, %s4s8sH %s¨sŹs¸sźsŔ ^säsčsě ît4 tD ŐtH ŐtL ˆtl ćtÜ třtüu %u( u8 ŽuT ‚u\u`up %uč Čuü ňv  vdvhvl čvŹv°vČ _vĚ _vĐ °w †w<w@wX _w\ _w` °w| Dw˜wœw¤ _w¨ _wŹ °wÔ řwŕwäwđ %x8x<x@xDxH çxhxlxx”x¸xźxŕxäyy y0y4yXy\y€y„y¨yŹyĐyÔyřyüz z$zHzLzpztz˜zœzŔzÄ{ {{X{\{Œ{{Č Č{Ř Ë{đ{ô{ř ç|||T|X|\ ç|d|h|t|x|° Ľ} Ľ}° î}Ě Ľ~ ~$~4 _~8 _~< °~\ ‘~„ î~Ź ‘~Ô î~ŕ 0~ř ĺ 0 _4 _8 °\ ˆŒ¨ 0´ 0Ŕ @€ €, î€8 @€| @€œ  0€ź 0€Ü î í ×@ >X 0d 0đ ‚ ‚$‚, ç‚4‚8‚<‚@‚D A‚L‚P‚X A‚`‚dƒ ƒh ߃€ ߃˜ ß„€„„„Œ _„ _„” °„ŕ  …4 Ą…` î…| † v†T†X†\ C†„†ˆ†Œ C‡‡‡ _‡ _‡ °‡ ]‡@ ‡€‡„‡Œ _‡ _‡” °‡  ]‡Ô  ‡đ çˆ0 ]ˆLˆPˆX _ˆ\ _ˆ` °ˆ€ˆ„ˆˆ )ˆŘ CŒDŒHŒP çŒ`ŒdŒ Œ¤ŒŹ _Œ° _Œ´ °ŒČŒĚŽ( ÎŽL Žd ÎŽřŽü(,Č čěô _ř _ü °( çô ĺ‘(‘,‘8‘<‘€‘„‘¤‘¨‘´‘¸‘Ě @’ ’$’X ’t’x’€ _’„ _’ˆ °“““ _“ _“ °“ˆ ,“Œ ,”0 Ö”X ”x”|”„ _”ˆ _”Œ °”Ź —”đ”ô”ü _• _• °•h•l•Ü ÷•ŕ ÷– :– Ő–$ Ő–, .–P–T–X Ť–`–d–h Ť–p–t–Œ Ť–” 0–Ř–Ü–ô–ř–ü—— ————@—D—H—L—X—\—`—d—ˆ—Œ—”—˜—œ— —Ä Ž—ä—č—ě ě˜D ‡˜H ‡˜` Ő˜d Ő˜| _˜€ _˜˜ }˜œ }™ ™ ™$ ™Ź łš$ ƒš š˜ ‰šœ ‰šÜ ë›d ß›€ ›Œ ‰› ‰›¨ 囟 Ł›Ä›Č›ě›đ›ô ëœ|œ€œ¤ ĺœÔ  œäœč @ št .ä ćžä ĺŸ ‘Ÿ8 @ŸH ŸL Ÿl }Ÿp }Ÿˆ ŽŸ° Ÿ´ Ÿř ĺ ¸  Č  Ô Ř Ü  ě đ ô  ü Ą Ą ŚĄ Ą Ą,Ą0Ą4 Ą\ Ą` Ąh ?ĄÄ ĄČ ĄŘ ŤĄě 0˘$ ˘( ˘< ˘@ ˘| ˘€ ˘  @˘ŕ }˘ä }ŁT @Łü á¤t¤xĽ Ľ  ĽH ĽT çĽđ äŚ äŚ äŚ8 Ś< ŚX äŚd äŚp äŚŒ äŚ˜ 䌤 䌏Ś°Ś´Ś¸ŚźŚŔŚČ 1ŚĐ :ŚÜ äŚč äŚđŚôŚř %§ "§, ä§8 ä§D 䧘 ‰§œ ‰§  b¨¨¨D¨H¨h¨l¨p ‘¨ˆ¨Œ¨ ‘¨¨¨Ź¨Ŕ¨Ä¨ô Š ߊL 0Š” ŠŔ 0ŠČŠĚŠĐŠÔŠÜ  Šä ­ŠěŠđŠô 窠 ‰ޤ ‰ި ęŞĐŞÔŞŘŞÜŞô Şř Ť ŤŤ 獍 Ť$Ť(Ť, ĽŤHŤLŤXŤ\ŤŤ”Ť˜ŤœŤ¤ ĽŤŔŤÄŤŘŤÜŤđŤôŤř çŹ ŹŹŹ, Ź0 Ź@ŹDŹH AŹĚŹĐŹÔŹŘŹě Ľ­ ­@­D­X ­\ ­l­p­x ç­„ Ą­¨ ­Ź ­¸ ]­ŕ ­č­ěŽ çŽ ĽŽD vŽX ]Ž` Žd ŽČ ŽÜ ŃŽü  Ż  ŻlŻpŻ€ .ŻŔ Żŕ Ť° Ť°„ Ťą4 x˛ü ł jł( ełd e´@ ´D ´X´\´` ‘´€ 0´œ C´° ű´Č 0ľD ľH ľ\ľ`ľd ‘ľ„ 0ľ  Cľ´ œľĚ 0śđ ˇœ §ˇŔ ˇŕ Ť¸, Ŕ¸Ŕ ¸Č ‰¸Ě ‰¸č ĺ¸ü Łššš(š,š4 ëš´š¸šŕ ĺş  şşş@ @şP ş\ ĺşx 纀ş„şˆ Aş” AťX ťx Ťť°  ťŘ  ťč ź( ź¨ Ťźě Ť˝,  ˝P Ť˝l ˝p ˝€ ˝Ü žL Ľžt žx žÔ ĺż ĺżh @żp żt ż° ż´ Ŕ Ŕ Ŕ  ŔŹ ĺŔĚ  Á Á Á8 @Á@ @Á` Ád ŌŐĹ´  ĹŘ  ĹŕĹäĹř  ĆĆ ƀ  Ćč  Ç  ÇČÇĚČŔ Čä ßĘĘĘ8Ę<ĘŘ ,ĘÜ ,ËĚ ,ËĐ ,Íô łÎp ŤΈ łĎ< ÚĎT Ďl çĎ| π ĎĐ ĎŕĎäĎô ÜĐĐ Đ0 ŹŃ ›Ń Ń ›Ń0 Ň HŇ HŇŇŇt ҈ ›Ňä Ňř ÓÓÖlÖpÖt *Ö¨ ÖČÖĚÖĐ ÜÖÜ *ל Ć×  Ć׸ ן ×Đ×Ô×Ř ¸×Ü ¸×ô ×ř Ř Ř ، ŮÔ xÚ( ŤŰ< ŤÜ0Ü4ÜPÜTÜXÜ\Ü`ÜdÜhÜlÜpÜtÜxÜ|܀܄܈܌ܐܔܘܜÜ ܤܨÜŹÜ°Ü´ܸÜźÜŔÜÄÜČÜĚÜĐÜÔÜŘÜÜÜŕÜäÜčÜěÜđÜôÜřÜüÝÝÝÝ ÝÝÝÝÝ Ý$Ý(Ý,Ý0Ý4Ý8Ý<Ý@ÝDÝHÝLÝPÝTÝXÝ\Ý`ÝdÝhÝlÝpÝtÝxÝ|݄݈݀݌ݐݔݘݜÝ ݤݨÝŹÝ°Ý´ݸÝźÝŔÝÄÝČÝĚÝĐÝÔÝŘÝÜÝŕÝäÝčÝěÝđÝôÝřÝüŢŢŢŢ ŢŢŢŢŢ Ţ$Ţ(Ţ,Ţ0Ţ´ iß, $ßt ßŕßäßč _ßě _ßđ °ßř ŕ xŕ| Ťŕź Ťᜠâ ĺâ< ‰â@ ‰âL ęâd @âÔ ßâčâěâđ Öăă ă4 çă@ ßăX ălăpăt A〠A㐠ę㘠㜠ă´ ßăř ęä@äDäp ä„ ›ĺT ĺX ĺ”ĺ˜ĺ¤ ĺČ ßĺŕĺäĺđ łć ć ßćD łćŘćÜćđćôćřćüçççç ççç ç<ç@çLçPç\ç`çx ßç¸çźçŔ +çě +č`čdčp č” ßčŹč°čź łčÔ čě ßé łéŒéé˜ ßéÄ ßéč ßę +ę,ę0ęd ßę¸ęźëŔ ›ëĐ ě4 ›ěD ěT ›ěd ět ěź ěÔ í í, í| í í´í¸îź áîôîřď@ďDďd  ď” ,ď˜ ,đPđTđhđlđpđtđxđ|đ€đ„đˆđŒđđ”đ˜đœđ đ¤đ¨đŹđ°đ´đ¸đźđŔđÄđČđĚđĐđÔđŘđÜđŕđäđčđěđđđôđřđüńńńń ńńńńń ń$ń(ń,ń0ń4ń8ń<ń@ńDńHńLńPńTńXń\ń`ńdńhńlńpńtńxń|ń€ń„ńˆńŒńń”ń˜ńœń ń¤ń¨ńŹń°ń´ń¸ńźńŔńÄńČńĚńĐńÔńŘńÜńŕńäńčńěńđńôńřńüňňňň ňňňňň ň$ň(ň,ň0ň4ň8ň<ň@ňDňHňČ áót áôX áô¤ ßő áő@ ßőĐőÔőŘ _őÜ _őŕ °őč ÷Đ ář$ ßřp ßřČ áů@ ,ůD ,ůŒ áůô áúh \úČ úä Üű űpűtűx  ű˜űœűŘűÜü ›ü, ›üT ›ü| ›üŹ ›üČ ›üä ›ý4ý8ý< ÷ý@ ÷ýpýtţˆţŒţ¨ jţ¸ ˙t Ťˆ žŒ ž¤ ž¨ ž04<@ +ˆ +Œ 8 E +T +X ( ţ48đô üDHÔؤ M0 M č ě!t!x"Ź"°"´"¸###@#D#´ E#ü E$4 E$t E%ź%Ŕ'č'ě(((t(x(ˆ(Œ(´(¸(č(ě)P E)Œ)*0 E282<2l2p2x2|2¸2ź3,304ˆ4Œ4Ü4ŕ5l ő5°5´5ü66 66T6X0 ăd ˜ ˛Ě  É4 Th œ FĐ 78 l ą Ô  š< óp ͤ źŘ Q ž@ ¤t ¨ aÜ  `Dx Ź ůŕ w sH| p° Rä B ńL #€ Ě´ 9d = čô$Ôě@dˆŹĐô<`„¨Ěđ 8t˜¤œ +X +ˆ +” D \ € ° Ô ř + +@ +d +ˆ +Ź +Đ +ô<`x¨äĐ ČĘj ԏŠź_procELFPÄ4(/dev/ttyS0New processNew process +œ!˙ŒÔœAtÔH×âü×â'ř×â/ô˙˙đœ`×âđ`¨cœ€œ kœk×â윂˙˜œd€¨„ ˙˙ŕœk×├b˙”„ƒœ  +Ř(œ„Ô œb˙”„ƒœ Ř(œ„Ô œ‚˙˜œb˙˜„˘˙”ŕeœŁ˙˙„b˙ě;„b˙đœ€˙ĺŁ  œ‚˙˜„b˙đ˙˙ż×â_”œb˙”„ƒœ  +Ř(œ„Ô œb˙”„ƒœ Ř(œ„Ô œ‚˙˜œb˙˜„˘˙”ŕeœŁ˙˙„b˙ě„b˙đœƒ×â'đ˙˙Ýœ‚˙˜œd€¨„˙˙Ÿœk×├‚˙˜œb˙˜„˘˙”ŕeœŁ˙˙„b˙ě…!„AHHœ!tœ!˙üÔœAœĂœä`œfœ‡œ¨ „AHHœ!œ!˙üÔœAœĂœä`œfœ‡œ¨ „AHHœ!œ!˙üÔœA„AHHœ!œ!˙đÔœA×âü×â'ř×â/ô„b˙ôœƒ˙˙œd×âôœ€˙˙ä# œb˙ü„ƒœ˘˙ř„ĹŒćŘ8œĆÔ0œ„Ô ˙˙ě„AHHœ!0123456789ABCDEFœ!˙ŘÔœA(ÔH×âü×â'řœb˙ŕ€¨„čœb˙ŕœ ˙˙Ńœkœ`×âô„b˙ôœ€ĺŁ œb˙ř„ƒœ „Â˙ôŕĽ0œŔŕĽ3„Â˙üŕŚ(H¤Ĺœ˘˙ŕŕĹ0ŒŚŘ(œ„Ô „b˙ôœƒ×â'ô˙˙ć„b˙řc…!„AHHœ!(œ!˙ôÔœA ×âü×â'ř„b˙řƒœ`ä$œb˙ü„ƒœ˘˙ř„ĹŒćŘ8œĆÔ0œ„Ô ˙˙î„b˙üœ€Ř „b˙üc„AHHœ! .symtab.strtab.shstrtab.text.rel.text.data.bss4X! t`+XŒ1XŒŒ6Ŕ' ÄŽ˙ńXX)- 15 ;ÄBŕFüJtN´RUHY˙ńTXXTTN`J„`ŹFÜBÜ)čd<hXlŹp˜tźxŕ|€0„Lˆül˜T Ě¨$proc.cgcc2_compiled.___gnu_compiled_cLC0LC1LC2_open_writeL15L17L16L14L8L11ulib.cL18L20L23L21L22L19L25L27L26L24_ul2str_memcpy___main_strcpy_main@)PTx|€*'|€„*ELF‰ʀÄ÷binĘ Ę`Ńúk.ĘŔ ŃĎ5 ..‰ężŒ–CŽsashELFP‘ü4( -c-tShell invoked to run file: %s + +Sash command shell (version %s) +PATHPATH=/bin:/usr/bin:/etcœ!˙ÜÔ œA$ÔH×âü×â'ř×â/ô˙˙ŕœ`×âě„b˙üœ€ĺC „b˙řœƒ„d€¨„˙˙Ňœkœ€ä# œ`˙˙Ę„b˙üœ€ĺC „b˙řœƒ„d€¨„˙˙žœkœ€ä# „b˙윃×â'쀨„Ô „‚˙řœd„ƒÔ ˙˙­ +`¨c%Ô€¨„6lÔ ˙˙Ł`¨cF¤˙˙Ÿœ`€¨„8˙˙šœ`€¨„°˙˙•˙˙ţ`¨cG˙˙œkœ€ä# `¨cL˙˙„„b˙윀ä# „b˙řœƒ„d$œ`œ`˙˙r…!„A DHœ!$Too many source files +rCommand: %s +Reading command lineExecution Finished, Exiting +œ!˙ÜÔ œA$ÔH×âü`¨c?”„ƒœ` ĺD `¨cPÔ`¨cFĚ˙˙E€¨„F|×â'ř„b˙üœ€ä# „b˙üœ€˙˙œ Ŕ¨Ćg˙˙4œk×âř„b˙řœ€ä# „b˙ü˙˙*ý ¨Ľ?l`¨c?”„ƒœÄ¸ćŕĽ8„Â˙řÔ0œ„Ô „‚˙ř„d˙˙œk×âđś`¨cF¤˙˙„b˙ř€¨„F|ä o`¨cFp„ƒœ`ä$ „b˙đœ€ä# „b˙ř€¨„F|ä# „b˙ř˙ţń€¨„?”`¨c?”€¨„?”„¤œ…˙˙Ô ť`¨c?˜œ€˙„˘˙ř˙ţŕœkœ€ä# „b˙ř„ƒ¤dœ€ä# `¨cJř„ƒœ`ä +„b˙ř„‚˙ř„¤œŔü˙ŕ…0Ô ˙˙ąg`¨c?˜˙ţż×â_ô`¨c?˜„˘˙ôœ…˙˙ŕc ƒœ` +ä „b˙ôœƒ˙˙×â'ô„b˙ôœ€ĺC `¨c?˜„˘˙ôœ…˙˙ŕc ƒœ` ä`¨c?˜„˘˙ôœ…˙˙ŕc ƒœ` ä„b˙ôœƒ˙˙×â'ô˙˙ŕ`¨c?˜„‚˙ôŕc œ€Ř „b˙ř€¨„F|ä# +Ŕ¨ĆiÔ0`¨c?˜Ô˙ţz€¨„?˜×â'ě„b˙쐃œ` ä„b˙윃×â'ě˙˙ő„b˙쐃œ`#ä$ `¨c?˜:˙˙J„b˙ř„ƒ¤dœ€ä# `¨cv˙ţS„b˙ř€¨„F|ä œ`˙ţJ„b˙ř„‚˙ř„¤œŔü˙ŕ…0Ô „b˙ř€¨„F|ä# +„b˙ř˙ţ;`¨c‹Ô˙ţ6€¨„?”`¨c?”€¨„?”„¤œ…˙˙Ô …!„A DHœ!$ œ!˙ŕÔœA ÔH×âü`¨cFpœ€Ô ˙ţ„b˙üƒœ` ä +„b˙üƒœ` ä„b˙üœƒ×â'ü˙˙ď„b˙üœ€&˙ţœk×âč„b˙蜀ä# „b˙蜀Ř œ`×âěœ€×â'ě„b˙ü˙ýóœk×âü„b˙üœ€ä# h„b˙üƒœ`ä$ œ‚˙đœ˘˙ô„b˙ü˙ýßœkœ€ä# T„‚˙ô„dŒœk×âř„b˙řœ€ä# /`¨c?˜×âü„‚˙ř„b˙ü„„˙ýĂ„b˙đœƒ˙˙œd×âđœ€ĺC „b˙ü€¨„d˙ý´„‚˙ôœdœƒ×â'ô„b˙ü„„˙ýŹ˙˙霂˙đœ˘˙ô„b˙ü˙ýĽœkœ€ä# „‚˙ô„dœkœ€ä#  +„b˙đ„‚˙ôŹœkœ€ä# „b˙ü„‚˙섢˙đ„Â˙ô…!„ADHœ! /œ!˙ŹÔœATÔH×âü„b˙üœ€/˙ývœkœ€ä# i`¨cG˙ýmœk×⸄b˙¸œ€ä# +„b˙¸ƒœ`ä$R`¨c>d„‚˙¸˙ýW`¨c>dœ€:˙ýRœk×â´„b˙´œ€ä# „b˙´œ€Ř `¨c>d˙ýDœkœ€ä# `¨c>d€¨„ +˙ý9`¨c>d„‚˙ü˙ý4œ‚˙ź`¨c>d˙ý/œkœ€ä#  ”b˙ĤƒI¤d˙˙œ€ä# `.„b˙¸œ€:˙ýœk×â´„b˙´œ€ä# „b˙´œƒ×â'¸œ`×â¸˙˙Łœ‚˙ź„b˙ü˙ýœkœ€ä#  ”b˙ĤƒI¤d˙˙œ€ä# ``…!„ADHœ!Tusage: %s %s +Too many arguments +œ!ţ@ÔœAŔÔH ×âü×â'ř`¨c6@×âô„b˙ôœƒ4×â'ô„b˙ôƒœ`ä$`¤„‚˙ř„d„‚˙ô˙üÍœkœ€ä# ˙˙č„b˙ô„‚˙ü„c,ĺ„ +„b˙ô„‚˙ü„c0ĺD€¨„ HÔ „â˙ôÔ8„b˙ôœƒ +Ô `¨cFĚ˙üŞ`¨cFĚ˙üŚ`u„b˙ř„ƒ×â'œŕ×â?ěœ`×âđ„b˙đœƒœd×âđ„‚˙üĺƒ [„b˙đœ€ŕc#„‚˙řŕc œ˘ţT„cœ€2˙üˆœk×âč„b˙čœ€ĺƒ `P„b˙섂˙čŕc œ€1ĺC €¨„ VÔ `¨cFĚ˙üp`?„b˙蜀ä# œb˙섃œ¤¸Ĺœâ˙ŕ§0„Â˙đœŕŕĆ;„â˙řŕĆ8„ćÔ8œ„Ô œ`×âä„b˙䄂˙čĺƒ œb˙섃œ¤¸Ĺœâ˙ŕ§0„Â˙äœć¸ÇœâţTŕÇ0„ćÔ8œ„Ô „b˙䜃×â'ä˙˙ç˙˙Ÿ„b˙ôœ‚˙„Ł(„b˙ěH(`…! „ADHœ!Ŕ%s: no such file or directory +Bad command or file name%s: %s +vfork failed[%d] +sh %d: child %d died +pid %d: %s (signal %d) +core dumpedkilledœ!ţ$ÔœAÜÔHÔP×âü×â'ř×â/ô×â7đ„b˙đ„ƒ×â' œŕ×â?ܜ`×âŕ„b˙ŕœƒœd×âŕ„‚˙ôĺƒ Y„b˙ŕœ€ŕc#„‚˙đŕc œ˘ţD„cœ€2˙űăœk×â؄b˙؜€ĺƒ a„b˙܄‚˙Řŕc œ€1ĺC €¨„ VÔ `¨cFĚ˙űĚQ„b˙؜€ä# œb˙܄ƒœ¤¸Ĺœâ˙ ŕ§0„Â˙ŕœŕŕĆ;„â˙đŕĆ8„ćÔ8œ„Ô œ`×âԄb˙Ԅ‚˙Řĺƒ œb˙܄ƒœ¤¸Ĺœâ˙ ŕ§0„Â˙Ԝć¸ÇœâţDŕÇ0„ćÔ8œ„Ô „b˙Ԝƒ×â'Ô˙˙ç˙˙Ą„b˙ܜƒ¸dœ‚˙ ŕdœ€Ô œŕ×â?ě„b˙윀ä# `¨cXÔ„‚˙üÔ ˙ű„b˙ü˙ű~„b˙řœ€ä# œ`œ€˙űs` œ`ď˙äK `¨cJřŕ€Xœ¤Ô(`˙˙œk×â蜀ä# Tœŕ×â>@`¨c?”„‚ţ@„cĺ„`¨c?l„‚ţ@œ¤¸…ŕc „ƒ`¨cF|ä$ `¨c?l„‚ţ@œ¤¸…ŕc „ƒ„d˙ű?„bţ@œƒ×â&@˙˙Ţœ`œ€˙ű6œ`œ€˙ű2œ`œ€˙ű.œ‚˙ „b˙ ˙ű*`¨cJř„ƒœ`ä$ +€¨„Jř„d˙űœk`¨cw€¨„Ô „â˙ Ô8Ô˙űœ`˙ű„b˙čœ€ĺƒ ˙˙ţ`¨c˜˙ű†„b˙řœ€ä# `¨cĽÔ„‚˙čÔ ˙úóx„b˙蜀ä# lœŕ×â?ä`¨c>`œ€Ô œ‚˙ä„b˙蜠œŔ˙úŕœk×â@„bţ@œ€ĺƒ `¨cJř„ƒœ`ä „bţ@œ€ĺƒ „bţ@„‚˙čä# ˙úÂœkŕ¨çŤÔ8Ô„bţ@Ô`¨cFĚ˙úˇ˙˙Ď˙˙ţ`¨c>`œ€Ô „‚˙ä¤d˙œ€ä# )ŕ¨çÁÔ8„b˙čÔ„‚˙ä¤d€œ€ä# €¨„ŮÔ ŕ¨çĺÔ8„b˙䤃Ô `¨cFĚ˙úˆ`¨cFĚ˙ú„ „‚˙đ„d˙ú~œ`˙ú{…!„A…ADHœ!Ü%-10s %s +œ!˙ŕÔœA ÔH ×âü×â'ř`¨c6t×âô„b˙ôœ€ä# +„b˙ôƒœ`ä$`¨c0Ô„b˙ôÔ„b˙ôœƒ +Ô ˙úQ„b˙ôœƒ4×â'ô˙˙ä…! „ADHœ! œ!˙ěÔœAÔH×âü`¨c?h„ƒ×â'ô`¨c?d„ƒ×â'řœ‚˙ô„¤œeœĽ˙˙Ô(œ€ĺC „‚˙ř„b˙ü„„˙ú+œkœ€ä# „b˙řc +„b˙řœƒ×â'ř˙˙ä`…!„ADHœ!œ!˙đÔœAÔH×âü×â'ř„b˙řœƒ„d˙úľ…!„ADHœ!%d +œ!˙čÔ œAÔH×âü×â'ř˙ůţœk€¨„ěÔ Ô˙ů÷…!„A DHœ!œ!˙ěÔœAÔH×âü×â'ř„‚˙řœd„ƒ×â'ô„b˙ôœ€˙ůĺœkœ€ä# „b˙ô˙ůÝ?€¨„?”`¨c?”€¨„?”„ÄœŚ˙˙œ…Ô œ`ĺd`¨c?l€¨„?”„¤œ…¸¤ŕc(„ƒ`¨cF|ä$ +`¨c?l€¨„?”„¤œ…¸¤ŕƒ(„d˙ůą˙˙ׄb˙ř„‚˙ôÔ „‚˙řœdœ€Ô „b˙ô„‚˙ř˙ů¤„b˙ô˙ůĄœ`˙ůž…!„ADHœ!> œ!˙´ÔœALÔHÔPœ`ŰâŔœ‚˙Ŕœdœ€;˙ůœ‚˙Ŕœd€¨„ œ ;˙ů†œ`ŰâűB˙Ŕœ‚˙Ŕœd˙ůœŤœ`œŠ˙ůz…!„A…ADHœ!L +œ!˙řÔœAÔHœ`€¨„8˙ůk`¨cFpœ€Ô `¨c>`„ƒœ`ä$ œ`€¨„4œ ˙ůZ…!„ADHœ!œ!˙řÔœAÔHœ`€¨„°˙ůM`¨cFpœ€Ô `¨c>`„ƒœ`ä$ œ`€¨„4œ ˙ů<…!„ADHœ!sh %d: Child %d stopped +sh %d: Child %d died +œ!˙¸ÔœAHÔH ÔPœ‚˙М`˙˙œ œŔ˙ů!œk×âԄ‚˙Фd˙œ€ä ˙ůœ‹œb˙Ř ¨Ľ(Ô(Ô „‚˙ÔÔ ˙ů +˙ů œ‹œb˙Ř ¨ĽAÔ(Ô „‚˙ÔÔ ˙ř˙`¨cFpœ Ô(`¨c>`„ƒœ`ä$ œ`€¨„4œ ˙řîB˙؜‚˙؜d˙řéœŤœ`œŠ˙řä…! „A…ADHœ!Hœ!˙ěÔœAÔH×âü×â'řœ`×âôœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC „b˙ôœ€ä# œ` €¨„F¤˙řÂœ`×âô„‚˙řœdœƒ×â'ř„d€¨„F¤˙řˇ˙˙ŕœ` +€¨„F¤˙ř°…!„ADHœ!Cannot get current directory +%s +œ!ţčÔ œAÔH×âü×â'řœ‚ţřœdœ€˙ř˜œkœ€ä#  `¨cXÔ`¨cFĚ˙řŒ `¨cvÔœbţřÔ˙řƒ…!„A DHœ!Time of day = %d.%6.6d seconds +œ!˙ÜÔœA$ÔH ×âü×â'řœ‚˙đœdœ€˙řl`¨c Ô„b˙đÔ„b˙ôÔ˙řc…! „ADHœ!$HOMENo HOME environment variable +œ!˙čÔœAÔH×âü×â'ř„b˙üœ€ĺC „‚˙řœd„ƒ×â'ô`¨cŒ˙řAœk×âô„b˙ôœ€ä#  `¨c‘Ô`¨cFĚ˙ř3 +„b˙ô˙ř.œkœ€ĺƒ „b˙ô˙ř&…!„ADHœ!œ!˙đÔœAÔH×âü×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC „b˙řœƒ„dœ€˙˙ř œkœ€ĺƒ „b˙řœƒ„d˙ř„b˙řœƒ×â'ř˙˙â…!„ADHœ!œ!˙đÔœAÔH×âü×â'ř„b˙üœ€ĺC „b˙řœƒ„d˙÷čœ‹œd˙÷ä…!„ADHœ!bcBad device type +Bad major number +Bad minor number +œ!˙ÜÔœA$ÔH×âü×â'řœ`ś×âđ„b˙řœƒ„d€¨„ ˆ˙÷Âœkœ€ä# „b˙đ¨ƒ`×â'đ„b˙řœƒ„d€¨„ Š˙÷ąœkœ€ä# „b˙𨃠×â'𠀨„ ŒÔ `¨cFĚ˙÷ ™œ`×â섂˙řœd „ƒ×â'ô„b˙ôƒœ`/ĺD +„b˙ôƒœ`9处b˙윣¸…ŕ„¸¤œb˙ô„ƒÄŕĽ0œĹ˙Đ×â7위Ô ˙˙ă„b˙ôƒœ`ä$„b˙ěœ€ĺƒ  „b˙윀˙ĺC  `¨c Ô`¨cFĚ˙÷`Yœ€×â'脂˙řœd„ƒ×â'ô„b˙ôƒœ`/ĺD +„b˙ôƒœ`9处b˙蜣¸…ŕ„¸¤œb˙ô„ƒÄŕĽ0œĹ˙Đ×â7蜄Ô ˙˙ă„b˙ôƒœ`ä$„b˙čœ€ĺƒ  „b˙蜀˙ĺC  `¨c ŻÔ`¨cFĚ˙÷ „‚˙řœd”‚˙ň„˘˙ěœĹ¸ŚœĹ”˘˙ęŕĆ(¤Ś˙˙„c˙÷œkœ€ĺƒ „b˙řœƒ„d˙÷…!„ADHœ!$œ!˙đÔœAÔH×âü×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC „b˙řœƒ„d˙öíœkœ€ĺƒ „b˙řœƒ„d˙öă„b˙řœƒ×â'ř˙˙ă…!„ADHœ!œ!˙đÔœAÔH×âü×â'ř˙öŇ…!„ADHœ!œ!˙đÔœAÔH×âü×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC „b˙řœƒ„d˙ö¸œkœ€ĺƒ „b˙řœƒ„d˙öŽ„b˙řœƒ×â'ř˙˙ă…!„ADHœ!Mode must be octal +œ!˙äÔœAÔH×âü×â'řœ`×âđ„‚˙řœd„ƒ×â'ô„b˙ôƒœ`/ĺD +„b˙ôƒœ`7处b˙𜃸dœŁ˙Мb˙ô„ƒÄŕĽ0×â/đœ„Ô ˙˙ĺ„b˙ôƒœ`ä$ `¨c%tÔ`¨cFĚ˙öj(„b˙üœƒ˙˙×â'ü„b˙řœƒ×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC „‚˙řœd”‚˙ň„c˙öQœkœ€ĺƒ „b˙řœƒ„d˙öG„b˙řœƒ×â'ř˙˙â…!„ADHœ!Bad uid value +Unknown user name +œ!˙ ÔœA`ÔH×âü×â'ř„‚˙řœd„ƒ×â'ô„b˙ôƒœ`/ĺD :„b˙ôƒœ`9ĺ¤ 4œ`×âđ„b˙ôƒœ`/ĺD +„b˙ôƒœ`9处b˙𜣸…ŕ„¸dœŁ˙Мb˙ô„ƒÄŕĽ0×â/đœ„Ô ˙˙ă„b˙ôƒœ`ä$ €¨„'Ô `¨cFĚ˙őńK„b˙ô˙őęœk×âě„b˙윀ä#  `¨c'Ô`¨cFĚ˙őÜ6„b˙씃×â'đ„b˙üœƒ˙˙×â'ü„b˙řœƒ×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC "„b˙řœƒ×â'ř„b˙řœ‚˙Ź„c˙őžœkœ€ĺƒ „b˙ř”‚˙ň”˘˙ş„c˙őłœkœ€ĺƒ „‚˙ř„d˙ő¨˙˙×…!„ADHœ!`Bad gid value +Unknown group name +œ!˙ ÔœA`ÔH×âü×â'ř„‚˙řœd„ƒ×â'ô„b˙ôƒœ`/ĺD :„b˙ôƒœ`9ĺ¤ 4œ`×âđ„b˙ôƒœ`/ĺD +„b˙ôƒœ`9处b˙𜣸…ŕ„¸dœŁ˙Мb˙ô„ƒÄŕĽ0×â/đœ„Ô ˙˙ă„b˙ôƒœ`ä$ €¨„)€Ô `¨cFĚ˙őUK„b˙ô˙őNœk×âě„b˙윀ä#  `¨c)Ô`¨cFĚ˙ő@6„b˙씃×â'đ„b˙üœƒ˙˙×â'ü„b˙řœƒ×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC "„b˙řœƒ×â'ř„b˙řœ‚˙Ź„c˙ő"œkœ€ĺƒ „b˙ř”‚˙¸”˘˙ň„c˙őœkœ€ĺƒ „‚˙ř„d˙ő ˙˙×…!„ADHœ!`œ!˙ŘÔ œA(ÔH×âü×â'řœ‚˙čœd˙ôü„b˙č×â윂˙ü„¤œeœĽ˙˙Ô(œ€ĺC )„‚˙řœdœƒ×â'ř„d×âôœ‚˙č„b˙ô˙ôĺœkœ€ĺƒ œ`ÁÔœ`śÔ„b˙ô˙ôŮœk×âđ„b˙đœ€ĺc „b˙đ˙ôĎ˙˙Ő„b˙ô˙ôĘ˙˙Đ…!„A DHœ!(%s: not a directory +œ!˙ŘÔ œA(ÔH×âü×â'ř„b˙üœ€ŕc#„‚˙řŕc œƒ˙ü„d×âč„b˙č˙ô­œk×âô„b˙üœ€ĺC „b˙ôœ€ä#  +`¨c,řÔ„b˙čÔ`¨cFĚ˙ô˜_œ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC S„‚˙řœdœƒ×â'ř„d×âđ„b˙đœ€˙ô€œkœ€ĺƒ „b˙đ˙ôx˙˙ă„b˙č×âě„b˙ôœ€ä# „b˙섂˙đ˙ôkœk×âě„b˙đ„‚˙ě˙ôeœkœ€ĺc ˙˙Ë`¨cJř„ƒœ`ä$ „b˙ě˙ôT˙˙ż„b˙đ„‚˙유˙ôMœkœ€ä# ˙˙ł„b˙đ˙ôCœkœ€ĺƒ „b˙đ˙ô;˙˙Ś…!„A DHœ!(-sUnknown option +Wrong number of arguments for symbolic link +œ!˙ŘÔ œA(ÔH×âü×â'ř„‚˙řœd„ƒdœ€-ä 9„b˙řœƒ„d€¨„/4˙ôœkœ€ä# `¨c/7Ô`¨cFĚ˙ôƒ„b˙üœ€ä# `¨c/GÔ`¨cFĚ˙óöu„‚˙řœd„˘˙řœ… „c„„˙óěœkœ€ĺƒ „b˙řœƒ „d˙óâa„b˙üœ€ŕc#„‚˙řŕc œƒ˙ü„d×âč„b˙č˙óŐœk×âô„b˙üœ€ĺC „b˙ôœ€ä#  +`¨c,řÔ„b˙čÔ`¨cFĚ˙óŔ?œ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC 3„‚˙řœdœƒ×â'ř„d×âđ„b˙đœ€˙ó¨œkœ€ĺƒ „b˙đ˙ó ˙˙ă„b˙č×âě„b˙ôœ€ä# „b˙섂˙đ˙ó“œk×âě„b˙đ„‚˙ě˙óœkœ€ĺƒ „b˙ě˙ó…˙˙Č˙˙Ć…!„A DHœ!(œ!˙ŘÔ œA(ÔH×âü×â'ř„b˙üœ€ŕc#„‚˙řŕc œƒ˙ü„d×âč„b˙č˙ólœk×âô„b˙üœ€ĺC „b˙ôœ€ä#  +`¨c,řÔ„b˙čÔ`¨cFĚ˙óW(œ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC „b˙č×â섂˙řœdœƒ×â'ř„d×âđ„b˙ôœ€ä# „b˙섂˙đ˙ó8œk×âě„b˙đ„‚˙유˙ó1˙˙Ý…!„A DHœ!(minixMissing file system type +Wrong number of arguments for mount +mount failedœ!˙äÔœAÔH×âü×â'ř„b˙üœƒ˙˙×â'ü„b˙řœƒ×â'ř`¨c3\×âđ„b˙üœ€ĺC „b˙ř„ƒdœ€-ä M„b˙üœƒ˙˙×â'üœb˙ř„ƒ„¤×â/ôœ„Ô „‚˙ôœdœƒ×â'ôdœ€ä# 7„b˙ôƒœ`tä$„b˙üœ€ĺŁ  „b˙ř„ƒdœ€-ä  `¨c3bÔ`¨cFĚ˙ňĆ:œb˙ř„ƒ„¤×â/đœ„Ô „b˙üœƒ˙˙×â'ü `¨c/7Ô`¨cFĚ˙ň˛&˙˙Â˙˙§„b˙üœ€ä#  ¨Ľ3|Ô(`¨cFĚ˙ň „b˙ř„˘˙řœ…„c„„„˘˙đœŔ˙ň•œkœ€ĺƒ `¨c3Ą˙ňŒ…!„ADHœ!œ!˙đÔœAÔH×âü×â'ř„b˙řœƒ„d˙ň}œkœ€ĺƒ „b˙řœƒ„d˙ňs…!„ADHœ!Files are links to each other +Files are different sizes +Files are identical +First file is shorter than second +Second file is shorter than first +Files differ at byte position %ld +œ!˙8Ô œAČÔH×âü×â'ř„‚˙řœdœ‚˙ˆ„c˙ň5œkœ€ĺƒ „b˙řœƒ„d˙ň+„‚˙řœdœ‚˙H„c˙ň#œkœ€ĺƒ „b˙řœƒ„d˙ňň”b˙ˆ”‚˙Hä „b˙Œ„‚˙Lä `¨c6LÔ˙ňá„b˙œ„‚˙\ä# €¨„6kÔ ˙ńüŐ„‚˙řœdœ€Ô „c˙ńóœk×âô„b˙ôœ€ĺƒ „b˙řœƒ„d˙ńçŔ„‚˙řœdœ€Ô „c˙ńŢœk×âđ„b˙đœ€ĺƒ „b˙řœƒ„d˙ńŇ„b˙ô˙ńϨœ`đ˙ńĘœk×â̜`đ˙ńĹœk×âȜ`×âä‹`¨cFp„ƒœ`ä$ ƒ„b˙ô„‚˙̜ đ˙ńŻ×â_ě„b˙ěœ€ĺƒ „b˙řœƒ„d˙ń¤q„b˙đ„‚˙Ȝ đ˙ń×â_č„b˙čœ€ĺƒ „b˙řœƒ„d˙ń’_„b˙윀ä# „b˙蜀ä#  €¨„6†Ô ˙ńN„b˙섂˙čĺƒ `¨c6›Ô˙ńuB„b˙섂˙čĺC €¨„6žÔ ˙ńi6„b˙̄‚˙Ȅ˘˙ě˙ńbœkœ€ä# „b˙䄂˙ěŕc ×âä˙˙˜„b˙Ě×âԄ‚˙Č×â'Мb˙Ԅƒœâ˙Ѕ¤ČÔ@œ„Ô ä0„b˙䜃×â'ä˙˙î`¨c6áÔ„‚˙äÔ ˙ń8˙˙u„b˙ô˙ń0„b˙đ˙ń-„b˙Ě˙ń*„b˙Č˙ń'…!„A DHœ!Čr<< %s >> +--More--œ!˙„Ô œA|ÔH×âü×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC „‚˙řœdœƒ×â'ř„d×âđ„b˙đœ€˙˙œ Ŕ¨Ć;|˙đ˙œk×âô„b˙ôœ€ä# „b˙đ˙đőü ¨Ľ;~Ô(„b˙đÔ˙đěœ ×â/čœ`×âä„b˙ôœ€ä# „b˙ô˙đŕœk×âě„b˙윀˙˙ä# Ô„b˙윀 ä !œ€ ĺC œ€ä  (œ€ +ä  œ€ +ä œ ×â/ä„b˙蜃×â'čœ`×âä„‚˙äœd¨ƒœd×âä„b˙䜀ĺC „b˙䜃˙˙×â'ä„b˙䜃×â'ä`¨cF¤€¨„F¤„c„„äc „b˙쀨„F¤˙đ `¨cF¤„ƒŒ˘˙ďŘ(œ„Ô „b˙䜀OĺC „b˙䜃˙°×â'ä„b˙蜃×â'č„b˙蜀ĺŁ ˙˙Ž„b˙䜀ĺC `¨cF¤€¨„F¤„c„„äc œ` +€¨„F¤˙đa `¨cF¤„ƒœ  +Ř(œ„Ô `¨c;ˆÔ˙đS`¨cF¤˙đO`¨cFp„ƒœ`ä$ œ‚˙”œ`œ P˙đC „b˙ôœ€ä# „b˙ô˙đ9@b˙”×âě„b˙윀:ä b˙•×âě„b˙윀Qä œ€QĺC œ€Nä œ€nä œ€qä  „b˙ô˙đœ ×â/ô„b˙ô˙đ œ`×â䜠×â/č˙˙„b˙ôœ€ä# „b˙ô˙ďű˙ţä…!„A DHœ!|œ!˙đÔœAÔH×âü×â'řœ`˙ďě…!„ADHœ!œ!˙đÔœAÔH×âü×â'ř„‚˙řœd„˘˙řœ…„c„„œ ˙ďŮ…!„ADHœ!œ!˙ŕÔ œA ÔH×âü×â'ř`¨c•ˆ„ƒ×â'ô„b˙üœ€ä „b˙ô„ƒœ`ä$ ¨ĽvÔ(œb˙ô„ƒ„¤Ô(œ„Ô ˙ďł˙˙íA„b˙řœƒ„d˙ďŞ×â_đ„b˙ô„ƒœ`ä$3„‚˙ô„d˙ďœk„‚˙đäC %„b˙ô„ƒ„˘˙đŕd(ƒœ`=ä „‚˙řœd„‚˙ô„c„„„˘˙đ˙ď‡œkœ€ä# `¨cvÔ„b˙ô„˘˙đœ…„cŕƒ Ô ˙ďw„b˙ôœƒ×â'ô˙˙É…!„A DHœ! %03o +Bad umask value +œ!˙ŕÔ œA ÔH×âü×â'ř„b˙üœ€ĺŁ œ`˙ďXœk¤ƒ˙˙×â'đ”‚˙ňœd˙ďQ`¨cBXÔ„‚˙đÔ ˙ďJAœ ×â/đ„‚˙řœd„ƒ×â'ô„b˙ôƒœ`/ĺD +„b˙ôƒœ`7处b˙𜃸¤œb˙ô„ƒÄŕĽ0œĹ˙Đ×â7đœ„Ô ˙˙ĺ„b˙ôƒœ`ä$ „‚˙đœ ţŕd(œ€ä#  `¨cB^Ô`¨cFĚ˙˙ňœd˙ď …!„A DHœ! HUPINTQUITILLTRAPABRTIOTBUSFPEKILLUSR1SEGVUSR2PIPEALRMTERMSTKFLTCHLDCONTSTOPTSTPTTINTTOUURGPWRUnknown signal +Non-numeric pid +œ!˙ŕÔœA ÔH×âü×â'řœ`×âđ„‚˙řœd„ƒdœ€-ä ›„‚˙řœd„ƒœd×âô„b˙ô€¨„Cô˙îĹœkœ€ä# œ`×âđ‚„b˙ô€¨„Cř˙îˇœkœ€ä# œ`×âđt„b˙ô€¨„Cü˙kœ€ä# œ`×âđf„b˙ô€¨„D˙kœ€ä# œ`×âđX„b˙ô€¨„D˙kœ€ä# œ`×âđJ„b˙ô€¨„D +˙îœkœ€ä# œ`×âđ<„b˙ô€¨„D˙îqœkœ€ä# œ`×âđ.„b˙ô€¨„D˙îcœkœ€ä# œ`×âđ „b˙ô€¨„D˙îUœkœ€ä# œ`×âđ„b˙ô€¨„D˙îGœkœ€ä# œ` ×âđ„b˙ô€¨„D ˙î9œkœ€ä# œ` +×âđö„b˙ô€¨„D%˙î+œkœ€ä# œ` ×âđč„b˙ô€¨„D*˙îœkœ€ä# œ` ×âđÚ„b˙ô€¨„D/˙îœkœ€ä# œ` +×âđĚ„b˙ô€¨„D4˙îœkœ€ä# œ`×âđž„b˙ô€¨„D9˙íóœkœ€ä# œ`×âđ°„b˙ô€¨„D>˙íĺœkœ€ä# œ`×âđ˘„b˙ô€¨„DE˙íלkœ€ä# œ`×âđ”„b˙ô€¨„DJ˙íÉœkœ€ä# œ`×âđ†„b˙ô€¨„DO˙íťœkœ€ä# œ`×âđx„b˙ô€¨„DT˙í­œkœ€ä# œ`×âđj„b˙ô€¨„DY˙ퟜkœ€ä# œ`×âđ\„b˙ô€¨„D^˙í‘œkœ€ä# œ`×âđN„b˙ô€¨„Dc˙태kœ€ä# œ`×âđ@„b˙ô€¨„Dg˙íuœkœ€ä# œ`×âđ2œ`×âđ„b˙ôƒœ`/ĺD +„b˙ôƒœ`9处b˙𜣸…ŕ„¸¤œb˙ô„ƒÄŕĽ0œĹ˙Đ×â7đœ„Ô ˙˙ă„b˙ôƒœ`ä$ `¨cDkÔ`¨cFĚ˙í>Y„b˙üœƒ˙˙×â'ü„b˙řœƒ×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC G„‚˙řœdœƒ×â'ř„d×âôœ`×âě„b˙ôƒœ`/ĺD +„b˙ôƒœ`9处b˙윣¸…ŕ„¸¤œb˙ô„ƒÄŕĽ0œĹ˙Đ×â7위Ô ˙˙ă„b˙ôƒœ`ä$ `¨cD{Ô`¨cFĚ˙ěö„b˙섂˙đ˙ěđœkœ€ĺƒ „‚˙ř„d˙ěç˙˙˛…!„ADHœ! rœ!˙”ÔœAlÔH×âü×â'řœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC S`¨cFp„ƒœ`ä$ „b˙ô˙ěĹG„‚˙řœdœƒ×â'ř„d×âđ„b˙đœ€˙˙œ Ŕ¨ĆL„˙ěśœk×âô„b˙ôœ€ä# „b˙đ˙ěŹ.„b˙ôœ€ä# œ‚˙œœdœ€œ P„Â˙ô˙ěœ‹œd×â윀ä#  œ‚˙œœdœ€„˘˙ěŔ¨ĆF¤˙ěŠ˙˙á„b˙ôœ€ä# „b˙ô˙ě€˙˙Ś…!„ADHœ!lNo memory for ls buffer +Unknown option -%c +Cannot do compact list with other options +ls. +%s: +/No memory for filenames +œ!ţ„Ô œA|ÔHÔP×âü×â'ř`¨c@Єƒœ`ä$@ŠJ@̜`˙ěGœkÔ +`¨c@̄ƒœ`ä$ `¨cN Ô`¨cFĚ˙ě78`¨c@М€Ô `¨c@Ԝ Ô(œ`×âě„b˙üœ€ĺC ‚„‚˙řœd„ƒdœ€-ä z„b˙üœƒ˙˙×â'ü„‚˙řœdœƒ×â'ř„dœƒ×â'ô„b˙ôƒœ`ä$hœ‚˙ô„¤ŒeœĂ˙˝¸f¸c˜œĽÔ(œ€)äC Mœ€ŕc# ¨ĽP(ŕƒ(„dDQ Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q4Q Q4Q4PäQ4Q4Q4Q4PřQ4Q4PЄb˙쨃×â'ě#„b˙쨃×â'ě„b˙쨃×â'ě„b˙쨃×â'ě„b˙쨃 ×â'ě`¨cN9Ô„‚˙ôœd˙˙ƒÔ `¨cFĚ˙몍˙˙”„‚˙ě¤d œ€ä# „‚˙유˙ßŕd(œ€ä# `¨cNMÔ`¨cFĚ˙ë’“„b˙üœ€ĺŁ œ€×â'ü ¨Ľ@œ×â/ř„b˙ř€¨„NxÔ „‚˙řœd ¨ĽN{Ô(„b˙üœ€ĺC „b˙쨃×â'ěœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC `„‚˙řœdœƒ×â'ř„d×âđ@„b˙𐃜`ä$ „b˙đ˙ëYœk„‚˙đŕc œƒ˙˙dœ€/ä @×âWŕœ‚ţ˜„b˙đ˙ëJœkœ€ĺƒ „b˙đ˙ëB˙˙΄‚˙ě¤dœ€ä#  ”bţ ¤ƒđ¤d˙˙œ€@ä#  œ‚ţ˜„b˙đ„˘˙ěA˙˙¸„b˙đ˙ë'œk×âä„b˙䜀ä# „b˙đ˙ë˙˙Š„‚˙ě¤dœ€ä# €¨„N}Ô „˘˙đÔ(˙ë„b˙ä˙ë +œk×â؄b˙؜€ä#  „b˙ؐƒ +œ`.ä +„‚˙ě¤dœ€ä# ˙˙čœ`Űâ؄b˙𐃜`.ä$ „‚˙đœdƒœ`ä$œ‚ţ؜d„‚˙đ˙ęÝ„b˙ŕœ€ä# œ‚ţ؜d€¨„Nƒ˙ęŇœbţ؄˘˙؜… +˙ęÍ`¨c@Ô€¨„@Єc„„ĺc 2`¨c@Єƒœdœ ŕƒ+œd˙ęťœk×â܄b˙ܜ€ä#  €¨„N Ô `¨cFĚ˙ę­J€¨„@Ě`¨c@ЄŁœe¸Ł„b˙܄„˙ę €¨„@̄d˙ę›`¨c@Đ€¨„@Є¤œ…Ô œ‚ţ؜d˙ęœk ¨Ľ@Ԅ…œ ŕ„+Ŕ¨Ć@̄Śŕ„(Ô€¨„@Ԅdœ€ŕc# ¨Ľ@̄…ŕc „ƒœ`ä$  ¨ĽN…Ô(`¨cFĚ˙ęp +€¨„@Ô`¨c@Ô€¨„@Ԅ¤œ…Ô ˙˙X„b˙ä˙ę``¨c@Ě€¨„@Ԅc„„œ Ŕ¨Ćˆ°˙ęUœ`×âč`¨c@Ԅ‚˙č„cĺ„;„b˙蜀ŕc# ¨Ľ@̄…ŕc „ƒ×â'đœ‚ţ˜„b˙đ˙ę=œkœ€ĺƒ +„b˙đ˙ę5„b˙đ˙ę2„b˙đœ€/˙ę,œk×âô„b˙ôœ€ä# „b˙ôœƒ×â'ô„˘˙đ×â/ôœ‚ţ˜„b˙ô„˘˙ě.„b˙đ˙ę„b˙蜃×â'č˙˙Ŕ`¨c@Ԝ€Ô ˙ţ™`¨c@˜„ƒœ`ä$ œ` +€¨„F¤˙é˙…!„A …ADHœ!|%5d %3d %d%-8s %3d, %3d %8d %-12s -> %sœ!ţĐÔœA0ÔH ×âü×â'ř×â/ôœbţä×âđ„b˙đœ€Ř „‚˙ô¤dœ€ä# `¨cX Ô„b˙ř„ƒÔ „b˙đ˙éŇ„b˙đ˙éĎœk„‚˙đŕd×âđ„‚˙ô¤dœ€ä# Ę„b˙ř”ƒœd˙éŔœ‹„b˙đ˙éź„b˙đ˙éšœk„‚˙đŕd×âđ`¨cX%Ô„b˙ř”ƒ +Ô „b˙đ˙鏄b˙đ˙銜k„‚˙đŕd×âđ`¨c@´„ƒœ`ä$ „‚˙ř”d €¨„@°„¤ä#(€¨„X*Ô „b˙ř”ƒ Ô `¨c@¤˙éŠ`¨c@°„‚˙ř”¤ Ô(`¨c@´œ€Ô `¨cX-Ô€¨„@¤Ô „b˙đ˙éx„b˙đ˙éuœk„‚˙đŕd×âđ`¨c@Ȅƒœ`ä$ „‚˙ř”d€¨„@Ą¤ä#(`¨cX*Ô„b˙ř”ƒÔ `¨c@¸˙éV`¨c@Ą‚˙ř”¤Ô(`¨c@Ȝ€Ô `¨cX-Ô€¨„@¸Ô „b˙đ˙éD„b˙đ˙éAœk„‚˙đŕd×âđ„b˙ř”ƒ¤dđ¤ƒ˙˙œ``ä „b˙ř”ƒ¤dđ¤ƒ˙˙œ` ä`¨cX3Ô„b˙ř”ƒ¸dH¤ƒ˙˙Ô „b˙ř”ƒ¤d˙¤ƒ˙˙Ô „b˙đ˙é €¨„X=Ô „b˙ř„ƒÔ „b˙đ˙é„b˙đ˙é +œk„‚˙đŕd×âđ„‚˙ř„d(˙éœk€¨„XBÔ Ô„b˙đ˙čýœ‚ţäœd€¨„F¤˙č÷„b˙ü€¨„F¤˙čň„‚˙ô¤dœ€ä# "„b˙ř”ƒ¤dđ¤ƒ˙˙¨` ä œ‚ţä„b˙üœ ˙˙čßœk×âä„b˙䜀ĺc œbţ䄂˙äŕc œ€Ř `¨cXJÔœbţäÔ˙čĚ„‚˙ô¤d œ€ä# ;„b˙ü˙čĂ×â_ä„b˙䜀ĺŁ „b˙䜀ĺŁ  œ` €¨„F¤˙čą„b˙䜃×â'ä˙˙ń`¨c@˜€¨„@˜„¤œ…Ô `¨c@˜œ€PÔ `¨c@˜„ƒœ`OĺD œ` +€¨„F¤˙č“`¨c@˜œ€Ô œ` +€¨„F¤˙čˆ…! „ADHœ!0X%dS%d%c%xœ!˙äÔœAÔH ×â'řßâţ„b˙ř€¨„]ř˙ču”b˙ţ¸ƒH¤d˙˙œ€Kä `¨c]ůÔ”b˙ţ¤ƒ˙¤d˙˙Ô„b˙ř˙čd1”b˙ţ¸ƒH¤d˙˙œ€ä `¨c]ýÔ”b˙ţ¤ƒ˙¤d˙˙œƒ˙ŔÔ „b˙ř˙čP”b˙ţ¸ƒH¤d˙˙œ€ä `¨c^Ô`¨c@ؔ‚˙ţ¤¤˙¤Ĺ˙˙¸†D¤¤˙˙ŕc(ƒÔ ”b˙ţ¤ƒ¤d˙˙Ô„b˙ř˙č3…! „ADHœ! PID PORT STAT SIZE SHARED %%CPU COMMAND +/proc/uptimeUnable to open /proc/uptime +Unable to read uptime/proc/proc/%s/statUnable to read status/proc/%s/statusrMem:Shared:/proc/%s/cmdlineUnable to open cmdlineUnable to read cmdline%5d %4s %c %3ldK %3ldK %2u.%u %s +A BȜ!˙xÔ(œAˆÔH$ÔP,×âü×â'ř`¨c_LÔ˙çŮœ€Ô `¨c_w˙çÓœk×âđ„b˙đœ€˙˙ä `¨c_„˙çČŤ„b˙đ€¨„A,œ ˙˙çŔœk×âЄb˙đ˙çť„b˙М€ĺŁ `¨c_Ą˙粕`¨cA,„‚˙Đŕc œ Ř(`¨cA,œ€Ř ˙ ¨ĽA,×â/Ԅb˙Ô˙ç ×â_Ȝ`˙眜k×âĚ`¨c_ˇ˙ç–œk×âä„b˙䜀ä# r„b˙ä˙牜k×â؄b˙؜€ä# bœ`×âô„b˙؜ƒ +œd˙çyœk„‚˙ôä„`¨cK؄‚˙؜¤ +„‚˙ô༠…ŕc Œƒ¤d¤ƒ˙œ`ä$A„b˙ôœƒ×â'ô˙˙ŕ€¨„_˝Ô „b˙؜ƒ +Ô `¨cA,˙çRœ Ô(`¨cA,˙çLœk×âđ„b˙đœ€˙˙ä ˙˙š„b˙đ€¨„A,œ ˙˙ç=œk×âЄb˙М€ĺŁ `¨c_Ë˙ç2„b˙đ˙ç/˙˙Ł`¨cA,„‚˙Đŕc œ€Ř `¨cA,œ Ř(˙`¨cA,œ€)˙çœk×âԄb˙Ԝ€Ř `¨cB\„˘˙Ԝ…Œ¤Ř(„b˙Ԝƒ×â'Ԅb˙Ô˙ç +œk€¨„B`Ô„b˙Ԝ€ ˙çœkœƒ×â'Ԅb˙Ô˙ć˙œk€¨„BdÔ„b˙Ԝ€ ˙ć÷œkœƒ×â'Ԅb˙Ô˙ćńœk€¨„BhÔ„b˙Ԝ€ ˙ćéœkœƒ×â'Ô@ŠJBl„b˙Ô˙ćáœkÜ +„b˙Ԝ€ ˙ćŰœkœƒ×â'Ԅb˙Ԝ€ ˙ćÔœkœƒ×â'Ԅb˙Ԝ€ ˙ćÍœkœƒ×â'Ԅb˙Ԝ€ ˙ćĆœkœƒ×â'Ԅb˙Ԝ€ ˙ćżœkœƒ×â'Ԅb˙Ԝ€ ˙ć¸œkœƒ×â'Ԅb˙Ԝ€ ˙ćąœkœƒ×â'Ԅb˙Ô˙ćŤœk×â´„b˙Ԝ€ ˙ćĽœkœƒ×â'Ԅb˙Ô˙ćŸœk×â°„b˙Ԝ€ ˙ć™œkœƒ×â'Ԅb˙Ԝ€ ˙ć’œkœƒ×â'Ԅb˙Ԝ€ ˙ć‹œkœƒ×â'Ԅb˙Ԝ€ ˙ć„œkœƒ×â'Ԅb˙Ԝ€ ˙ć}œkœƒ×â'Ԅb˙Ԝ€ ˙ćvœkœƒ×â'Ԅb˙Ԝ€ ˙ćoœkœƒ×â'Ԅb˙Ô˙ćiœk×âŹ`¨cA,œ€(˙ćbœk×âԄb˙Ԝƒ×â'Ô`¨cB,„‚˙Ô˙ćX`¨cA,˙ćTœk€¨„BTÔ`¨cBX€¨„B\¤Ô(„b˙đ˙ćG`¨cBl”ƒœd€¨„Bn˙ýÁœ`×âŕœ€×â'Ü ¨Ľ_áÔ(„b˙؜ƒ +Ô `¨cA,˙ć1`¨cA,œ€˙˙œ Ŕ¨Ć_ń˙ć)œk×âč„b˙蜀ä# 8`¨cA,œ€ú„˘˙č˙ćœkœ€ä# (`¨cA,€¨„_óœ ˙ćœkœ€ä#  `¨cA1˙ć×â_ŕ`¨cA,€¨„_řœ ˙ĺűœkœ€ä# `¨cA4˙ĺň×â_Ü˙˙Ď„b˙č˙ĺě„‚˙ŕ¸dJ×âŕ„‚˙ܸdJ×â܄b˙ȜŁ¸…ŕ„¸¤ŕĽ¸e„˘˙Źŕƒ(œdœ€d˙ĺŮœ‹œd˙ĺŐ×â_Ŕ„b˙Ě˙ĺŃœ‹œd„‚˙Ŕ˙ĺĚœk×âź„b˙´„˘˙°ŕƒ(œd˙ĺÄ×â_¸„b˙Ŕ ¨Ľ`h„…˙ĺ˝œkœ€ä# €¨„`l„b˙¸„„˙ĺ˛œk€¨„`p„„˙ĺŹœk€¨„`p„„˙ĺŚœ‹œd„‚˙Ŕ˙ĺĄœ‹œd˙ĺœkœ`×⨄b˙¨œ€çĺC œ`ç×⨀¨„`Ô „b˙؜ƒ +Ô `¨cA,˙ĺ‡œ Ô(`¨cA,˙ĺœk×âđ„b˙đœ€˙˙ä `¨c`˙ĺv˙ýę„b˙đ€¨„A,œ ˙˙ĺnœk×âЄb˙М€ĺƒ `¨c`(˙ĺc„b˙đ˙ĺ`˙ýÔ„b˙đ˙ĺ[`¨cA,€¨„A,„˘˙Đŕ„(œ Ř(œ€Ř ˙ ¨Ľ`?Ô(`¨cBT„ƒÔ  ¨ĽBnÔ(`¨cBX„ƒÔ „˘˙ŕÔ(„b˙ÜÔ„‚˙¨œdœ€ +˙ĺ:œkÔ„‚˙¨œdœ€ +˙ĺ3œkÔ„b˙М€ä# €¨„A,Ô  ¨ĽB,Ô( ˙ĺ"˙ý–„b˙ä˙ĺ…!$„A(…A,DHœ!ˆ-sr %4X:- -%02.2X %02.2X %s +--more--œ!˙4Ô œAĚÔH×âü×â'řœ`×âPœ€×â'L„b˙ř„Ł×â/H„b˙üœ€ĺC „b˙řœƒ„d€¨„k¨˙äîœkœ€ä# „b˙řœƒ„dœ€œ ˙äâœk×âL„b˙üœƒ˙ţ×â'ü„b˙řœƒ×â'ř„b˙üœ€ĺC „‚˙řœd„ƒ×â'P„b˙Pœ€˙˙œ Ŕ¨ĆkŤ˙äĘœk×âô„b˙ô„‚˙Lœ ˙äĂœ ×â/ěœ`Űâč„b˙ô„ƒ¤dœ€ä# œ‚˙؜d€¨„k­˙ä°„‚˙L¤d„‚˙ěä„)„b˙윀ä#  €¨„kžÔ „b˙Lœ ˙đŕƒ(Ô ˙äš„b˙윀ä `¨ckĂÔ€¨„kÇÔ ˙ä‹œb˙؄‚˙ěŕc œ  Ř(„b˙윃×â'ě˙˙Óœ`×âDœb˙T„‚˙L¤¤œ€€ŕ¤(œ€„Â˙ô˙ävœk×âđ„b˙đœ€ĺŁ Ő„b˙D„‚˙đĺƒ f„b˙L¤ƒ×â'ě„b˙윀ä#  €¨„kžÔ „b˙Lœ ˙đŕƒ(Ô ˙äTœb˙T„‚˙Dŕc Œƒœ`ä¤ œb˙T„‚˙Dŕc Œƒœ`~äD œb˙؄‚˙ěŕc œ€.Ř +œb˙؄‚˙ěŕc œ‚˙T„˘˙Dŕ„(Œ¤Ř(„b˙윀ä# „b˙윀ä `¨ckËÔ€¨„kÓÔ  ¨ĽkÓÔ(œb˙T„‚˙Dŕc ŒƒÔ ˙ä„b˙윀ä `¨ckŰÔœb˙ŘÔ˙ä „b˙Lœƒ×â'L„b˙Dœƒ×â'D˙˙—„b˙L¤ƒœd×â윀ä# )„b˙윀ĺŁ „b˙윀ä €¨„kĂÔ  ¨ĽkÇÔ(˙ăăœb˙؄‚˙ěŕc œ€ Ř „b˙윃×â'ě˙˙â ¨ĽkŰÔ(œb˙ŘÔ˙ăŇ„b˙ô„ƒ¤dœ€ä# 1`¨ckŕÔ˙ăÄ`¨cF¤˙ăŔœ‚˙Tœdœ€P ¨ĽF|˙ăš`¨cK،‚˙Tŕc Œƒ¤d¤ƒ˙œ`ä$ Œb˙TŹƒ ¤d˙œ€Qä   Œb˙Tœ€Qä ˙ţÝ…!„A DHœ!Ě/Unable to get disk space of %s: %s +Total bytes: %ld +Free bytes: %ld +Total nodes: %ld +Free nodes: %ld +œ!˙ ÔœA`ÔH ×âü×â'ř„b˙üœ€ĺŁ `¨cq°×âô„‚˙řœd„ƒ×â'ôœ‚˙´„b˙ô˙ăcœkœ€˙˙ä €¨„Jř„d˙ăYœk€¨„q˛Ô „‚˙ôÔ Ô˙ăP"`¨cqÖÔ„b˙¸„‚˙źŕc#Ô˙ăE€¨„qčÔ „b˙¸„‚˙Ŕŕc#Ô˙ă<`¨cqůÔ„‚˙ČÔ ˙ă5`¨cr Ô„‚˙ĚÔ ˙ă.…! „ADHœ!`/proc/meminforUnable to open /proc/meminfo: œ!ţčÔœAÔH×âü×â'ř`¨cs`œ€˙˙œ Ŕ¨Ćsn˙ăœk×âđ„b˙đœ€ä# `¨csp˙ă œ`×âô„b˙ôœ€ĺŁ œ‚ţđœdœ€ú„˘˙đ˙âóœ‚ţđœd€¨„F¤˙âí„b˙ôœƒ×â'ô˙˙ę„b˙đ˙âĺ…!„ADHœ!That name is too long. +%s +œ!ţŕÔ œA ÔHÔP×âü×â'ř„b˙üœ€ĺC „b˙řœƒ„d˙âÉœkœ€äC `¨ct„Ô˙âż +„b˙řC„b˙řœƒ„d˙âśœ‹„j˙â˛œ‚ţôœdœ€˙âŤ`¨ctœÔœbţôÔ˙⤅!„A …ADHœ! Invalid date %s +%2d%2d%2d%2d%dUnable to set date +%s +œ!˙°Ô œAPÔHÔP×âü×â'řœ‚˙ôœd˙↝B˙Ȝ‚˙ôœd˙⁜‹œjœ ,˙â|„b˙üœ€ĺC j„‚˙řœdœ‚˙Ȝ¤œ‚˙ČœÄ œ‚˙Ȝ䜂˙ȝœ‚˙ȝ$ÔH„c€¨„u˙âeœk×âĄb˙Ĝ€ĺŁ  „b˙Ĝ€ĺC `¨cuŒÔ„‚˙řœd„ƒÔ `¨cFĚ˙âL`J„b˙ܜ€kĺC „b˙ܜƒř”×â'܄b˙؜ƒ˙˙×â'؜‚˙Ȝd˙â:œk×âô„b˙ôœ€ĺƒ `¨cuŒÔ„‚˙řœd„ƒÔ `¨cFĚ˙â(`&œ‚˙ôœd˙â!œkœ€ĺƒ `¨cuŹÔ`¨cFĚ˙â``œ‚˙Ȝd˙â œk€¨„uŔÔ Ô˙â`…!„A …ADHœ!P----------œ!˙ôÔœA ÔH×âü`¨cBx€¨„x˙áî„‚˙ü¤dđœ€@ä `¨cBxœ€dŘ „‚˙ü¤d𜀠ä `¨cBxœ€cŘ „‚˙ü¤dđœ€`ä `¨cBxœ€bŘ „‚˙ü¤dđœ€ä `¨cBxœ€pŘ „‚˙ü¤d𨀠ä `¨cBxœ€lŘ „‚˙ü¤dđ¨€Ŕä `¨cBxœ€sŘ „‚˙ü¤dœ€ä# `¨cBxœ€rŘ „‚˙ü¤d€œ€ä# `¨cBxœ€wŘ „‚˙ü¤d@œ€ä# `¨cBxœ€xŘ „‚˙ü¤d œ€ä# `¨cBxœ€rŘ „‚˙ü¤dœ€ä# `¨cBxœ€wŘ „‚˙ü¤dœ€ä# `¨cBxœ€xŘ „‚˙ü¤dœ€ä# `¨cBxœ€rŘ „‚˙ü¤dœ€ä# `¨cBxœ€wŘ „‚˙ü¤dœ€ä# `¨cBxœ€xŘ „‚˙ü¤dœ€ä# `¨cBx„˘˙ü¤…@œ ä$( œ€sœ€SŘ „‚˙ü¤dœ€ä# `¨cBx„˘˙ü¤…œ ä$( œ€sœ€SŘ „‚˙ü¤dœ€ä# `¨cBx„˘˙ü¤…œ ä$( œ€tœ€TŘ `ŠkBx…!„ADHœ! œ!˙ěÔœAÔH×âüœ‚˙řœd˙ᜂ˙üœd˙á +œk×âô„b˙ôœƒ`¨cB„˙á`¨cB„œ€Ř „b˙ü„‚˙řĺC  „‚˙ř ţ¨ĽĚ€ŕd(„‚˙üĺ„ „b˙ôœƒ`¨cB‹˙ŕé`¨cB„œ€Ř `ŠkB„…!„ADHœ!œ!˙´ÔœALÔH×âüœ‚˙ź„b˙ü˙ŕÔœkœ€ĺƒ `œ`”‚˙Ĥ¤đ¤…˙˙œ @ä( œ`c…!„ADHœ!LCopying file "%s" to itself +Unable to allocate buffer of %d bytes +œ!˙@Ô œAŔÔH×âü×â'ř×â/ôœ`đ×âTœ`×âPœ‚˙ „b˙ü˙ŕœœkœ€ĺƒ „b˙ü˙ŕ”`ďœ‚˙`„b˙ř˙ŕœkœ€ĺƒ œ`˙˙×âd¨`˙˙ßâ`”b˙ ”‚˙`ä „b˙¤„‚˙dä `¨c}Ô„b˙üÔ`¨cFĚ˙ŕq`Ěœ`Ô„b˙ü˙ŕiœk×âđ„b˙đœ€ĺƒ „b˙ü˙ŕ_`şœ`AÔ”b˙¨Ô„b˙ř˙ŕUœk×âě„b˙ěœ€ĺƒ „b˙ř˙ŕK„b˙đ˙ŕH`Ł„b˙T˙ŕBœk×âP„b˙Pœ€ä# `¨c}5Ô„b˙TÔ`¨cFĚ˙ŕ2`„b˙đ„‚˙P„˘˙T˙ŕ)œk×âč„b˙蜀ĺC >`¨cFp„ƒœ`ä$ „b˙đ˙ŕ„b˙ě˙ŕ„b˙P˙ŕ`k„b˙P×âŕ„b˙蜀ĺC  „b˙섂˙ŕ„˘˙č˙ß˙œk×âä„b˙äœ€ĺƒ +„b˙ř˙ßő„b˙P˙ßňE„b˙ŕ„‚˙äŕc ×âŕ„b˙脂˙äŕc ×âč˙˙Ý˙˙¸„b˙P˙ßá„b˙čœ€ĺƒ „b˙ü˙ßŮ,„b˙đ˙ßÔ„b˙ě˙ßŃœkœ€ĺƒ „b˙ř˙ßɝ`$„b˙ôœ€ä# ”‚˙¨„b˙ř˙ß˝”‚˙Ź”˘˙Ž„b˙ř˙߸„b˙Ŕ×âX„b˙Č×â\œ‚˙X„b˙ř˙ß°` „b˙đ˙ߪ„b˙ě˙ߧ`…!„A DHœ!Ŕ/œ!˙ěÔœAÔH×âü×â'ř„b˙üœ€ä# +„b˙üƒœ`ä$„b˙řc$„b˙řœ€/˙߄œk×âô„b˙ôœ€ä# „b˙ôœƒ×â'ř`¨cBž„‚˙ü˙ßu`¨cBž€¨„ˆ˙ßo`¨cBž„‚˙ř˙ßj`ŠkBž…!„ADHœ!Wildcards only implemented for last filename component +...Too many filename matches +No memory for filename +No matches +œ!ţČÔœA8ÔH×âü×â'ř×â/ô„b˙üœ€/˙ß8œk×âđ„b˙đœ€ä# „b˙đœƒ×â'đ„b˙ü×âđ„b˙üœ€*˙ß&œk×âě„b˙üœ€?˙ß œk×âč„b˙üœ€[˙ßœk×âä„b˙윀ä# „b˙蜀ä#  +„b˙䜀ä# `.„b˙윀ä# „b˙섂˙đäƒ „b˙蜀ä# „b˙脂˙đäƒ „b˙䜀ä# „b˙䄂˙đäƒ  €¨„‚€Ô `¨cFĚ˙Ţ۝`˙˙œŔ.Űâ6Ԝ`ŰâՄb˙đ„‚˙üä# œbţԄ‚˙đ„Â˙üŕ¤0„‚˙ü˙ŢČ„b˙đ„‚˙üŕc œƒ˙˙œbţÔŕƒ œŔŘ0bţԜ€ä# œ`/ŰâԜ€Űâ&՜‚ţԜd˙Ţłœk×âŕ„b˙ŕœ€ä#  œ‚ţԜd˙ި`˙˙Íœ‚ţԜd˙ŢĄ×â_؄b˙đ„‚˙üä œŔ×â7؜`ŰâÔ„‚˙؜d˙˙œ‚ţÔŕdƒœ`/ä$ œb˙؄ƒœ˘ţԜÄŕĽ0œŔ/Ř0œ„Ô œbţԄ‚˙Řŕc œ€Ř œŔ×â7Ԅb˙ŕ˙Ţyœk×â܄b˙ܜ€ä# {„b˙ܜƒ +œd€¨„‚¸˙Ţiœkœ€ä# „b˙ܜƒ +œd€¨„‚ş˙Ţ]œkœ€ä# ˙˙Ú„b˙ܜƒ +œd„‚˙đŽœkœ€ä# ˙˙Í„b˙Ԅ‚˙řĺc `¨c‚˝Ô`¨cFĚ˙Ţ;„b˙ŕ˙Ţ8`˙˙]„b˙ܜƒ +œd˙Ţ0œk„‚˙Řŕc œƒœdWœk×âě„b˙윀ä# €¨„‚ŘÔ `¨cFĚ˙Ţ„b˙ŕ˙ޝ`˙˙=„b˙؜€ä# œ‚ţԄb˙섢˙Ř˙Ţ „b˙섂˙Řŕc „˘˙ܜ… +˙Ţœb˙Ԅƒœ¤œŔŕĽ3„Â˙ôŕĽ0„Â˙ěÔ0œ„Ô ˙˙}„b˙ŕ˙Ýô„b˙Ԝ€ä#  `¨c‚đÔ`¨cFĚ˙Ýč`˙˙ +„b˙ô„‚˙Ԝ Ŕ¨Ćˆ°˙ÝŢ„b˙ԝc…!„ADHœ!8œ!˙đÔœAÔH×âü×â'ř„b˙ü„‚˙ř„c„„˙ÝĘœkc…!„ADHœ!œ!˙äÔœA×âü×â'řœ`×âôœ`×âđ„b˙üƒœ`ä$ +„b˙řƒœ`ä$¨œb˙ř„ƒ¤×â/위Ô „b˙윀?ä Tœ€?ĺC œ€*ä fœ€[ä œ€\ä P\„b˙ř×âô„b˙ü×âđyœ`×âčœb˙ř„ƒÄœŚ×â/위Ô œ`]ä%„b˙윀\ä œb˙ř„ƒ¤×â/위Ô „b˙윀ä# `d„b˙üƒ„b˙ěä œ`×âč˙˙Ř„b˙蜀ä#  „b˙ô×âř„‚˙đœdœƒ×â'đ×â'üœ‚˙ü„¤eœĽÔ(œ€ä# `B3œb˙ř„ƒ¤×â/위Ô „b˙윀ä# `2„b˙üƒ„b˙ěä +„b˙üƒœ`ä$ „b˙üœƒ×â'ü„b˙üƒœ`ä$ „b˙ô×âř„‚˙đœdœƒ×â'đ×â'ü`„b˙řœ€ä# `˙˙N`„ADHœ!Too many arguments +œ!˙ÔÔœA,ÔHÔP Ô`×âü×â'ř×â/ô`¨cCž„‚˙ü˙Üěœ`×â쀨„Cž×â'đ„b˙𐃜`ä$„b˙윀1ĺC  ¨ĽŒ Ô(`¨cFĚ˙Üӝ`  ¨ĽD œb˙섃œÄ¸ćŕĽ8„Â˙đÔ0œ„Ô „b˙𐃜`ä$ „b˙𐃜` ä$ +„b˙𐃜` ä$T„b˙𐃜`"ä +„b˙𐃜`'äAœb˙đ„ƒ×â'蜄Ô „b˙𐃜`ä$ „b˙đ„‚˙čc„ä# „b˙đœƒ×â'đ˙˙ě„b˙đ„‚˙čc„ä „‚˙čœd„‚˙đ„˘˙čŕ„(œ¤˙˙„‚˙č˙Üv„b˙đC„b˙đƒ˙˙„b˙đœƒœd˙ÜmœkœŁœjœŒ˙Üg„b˙đœƒ˙˙×â'đ„b˙đœƒ×â'đ˙˙š„b˙𐃜` ä +„b˙𐃜` ä +œb˙đ„ƒœ Ř(œ„Ô ˙˙ě˙˙_`¨cD „‚˙윤¸…ŕc œŔÔ0„b˙ř„‚˙ěÔ „b˙ô ¨ĽD Ô(`…!„A…A …DHœ!,Argument string too long +œ!˙ŕÔœA ÔH×âü×â'ř×â/ô×â7đœ‚˙ü„¤œeœĽ˙˙Ô(œ€ĺC 6„‚˙ř„d˙Ü×â_ě„b˙섂˙đĺc `¨cXÔ`¨cFĚ˙ܝ`(œb˙ř„Ł„…œĽÔ(„b˙ô˙Űö„b˙ô„‚˙ěŕc ×âô„b˙đ„‚˙ěŕc ×âđ„b˙üœ€ä# œb˙ô„ƒœ  Ř(œ„Ô „b˙đœƒ˙˙×â'đ˙˙Ă„b˙ôœ€Ř `…!„ADHœ! œ!˙đÔœAÔH×âü„b˙üœ€ĺŁ œ`×âü„b˙üœƒœd˙ŰĂœk×âř„b˙řœ€ä# `„b˙ř€¨„Ft„¤Ô(`¨cFt„‚˙řÔ „‚˙řœdc…!„ADHœ!œ!˙ôÔœA ÔH`¨cFt„ƒœ`ä$`¨cFt„ƒ×â'ü`¨cFt„‚˙ü„¤Ô(„b˙ü˙ۍ˙˙ë…!„ADHœ! Variable expansion too long +œ!ţŘÔœA(ÔH×âü`¨cEl×âřœ€×â'ô„b˙üœ€ä# `Ë„b˙ü˙Űjœk„‚˙ôäC ŕ¨ç‘ěÔ8`¨cFĚ˙Ű^`š„b˙üƒœ`ä$Š„‚˙üdœ€$ä )œ€\ä }„b˙ôœ€ĺŁ `¨c‘ěÔ`¨cFĚ˙Ű:`•„b˙üœƒ×â'üœb˙ř„ƒœ˘˙ü„ĹŒćŘ8œĆÔ0œ„Ô „b˙ôœƒ˙˙×â'ôz„b˙üœƒ×â'üœbţđ×âě`¨cK؄‚˙ü¤ŕc(Œƒ¤d¤ƒ˙œ`ä$ +„b˙üƒœ`_äœbţ섃œ˘˙ü„ĹŒćŘ8œĆÔ0œ„Ô ˙˙â„bţ윀Ř bţđœ€ä# -œ‚ţđœd˙Úôœk×âč„bţ蜀ä# "„bţč˙Úę×â^ä„bţ䄂˙ôĺC ŕ¨ç‘ěÔ8`¨cFĚ˙Úݝ`8„b˙ř„‚ţ脢ţä˙ÚŐ„b˙ř„‚ţäŕc ×âř„b˙ô„‚ţäŕc ×âô „b˙ôœ€ĺŁ `¨c‘ěÔ`¨cFĚ˙Úż`œb˙ř„ƒœ˘˙ü„ĹŒćŘ8œĆÔ0œ„Ô „b˙ôœƒ˙˙×â'ô˙˙S„b˙řœ€Ř `ŠkEl…!„ADHœ!(œĂœ¤ĺ‘fœ‡œkœĽä œĆä+@˙˙÷ák8DHœ!˙řÔHÔP€¨„L䜠„„ä$( CH ˙ڀœj…!…ADHœ!œ!˙üÔH`¨cF¤„˙ÚuœĄ…!DHœ!œ!˙ôÔHÔPÔ``¨cF¤˙Új`¨cFĚ˙Úf`¨cFx…Cœ€ä* €˙Ú]œj˙Ú[„jœ`˙˙Ô +…J$ä*`˙˙ř…!…A…DHœ! œ!˙ôÔHÔPÔ`€¨„Fô„d€ä#`Bœ` ¨ĽJčŔ¨ĆFřÔÔ0€¨„F| ¨ĽFüÔ0Ô0Ô0Ô(Ô0 œŚœŔÔ`Ô0€¨„JěŔ¨ĆHđÔôÔ0@ŠJF¤€¨„HôÔ +0Ô +0Ô +0Ô +0 Ô +œŔ$Ô + Ô +0€¨„FĚÔěŔ¨ĆF𠨼FčÔ0Ô(Ô(Ô(Ô( œŔ"œ Ô0˙ÚÔ(ä+` „j¨cÔ +`¨c–@˙Ú…!…A…DHœ! œ!˙ÜÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ Cž@ä*(`¨cF|˙˙ďä+``˙˙`¨cF¤˙˙čä+Y`˙˙`¨cFĚ˙˙áä+R`˙˙`¨cFx…Cä* €˙˙֜jä+`G`˙˙…J$ä*`˙˙ůA`„Š¤d€ä# '¤d@„j„Š რä, -ÄžŸ˙˙ŔŞÖJřž€œŽ„j˙١œŹĺK€ áÎXĺK€˙˙÷áŒXä Ŕ „vä ˙˙ńœŽä,€ „j¨cž@˙˙Ô +ä# „Š„já„ĺL ŕ€`„j˙ٕœ „Šœ ú?„j rŕ„(Ô +Ô +Ô +Ô + …!…A……Á ††A††Á‡ DHœ!$œ!˙ÜÔHœŔÔ Ô(œœĄÔ0˙ŮwÔ0 œ`˙˙ä+ c„ac…!DHœ!$œ!˙üÔH ŕ¨Ľ˙˙é…!DHœ!œ!˙čÔHÔPÔ`Ôp ԀԐ˙Ů\ž`¨c•ˆœ „cä#(‹`C„Šä$( `Ŕž@=œp˙ŮIœŹä+p„jŕc`ƒäcJ„Šä$p˙˙ń`…!…A……Á ††ADHœ!œ!˙ŕÔHÔPÔ`Ôp ԀԐԠ԰žC˙Ů'œ€=ž‹œ`ä4áԐ˙Ů œrË`¨c•ˆ€„ƒä$` +žĂ˙Ůœ`œ€œ œk˙ŮÔX`¨cJôœ€Ô …V„Šä$` #œr€ŞJô˙ŮœŽä+`œ€=„jŕcpŁä „jä#` Ô +œ€J„jä# ˙˙ýÔ +„pœcԝJ„Šä$`˙˙äœrŔä4p 3``¨cJô„ƒĺ¤p $žƒ„vœŔ˙üŕjŕc0˙Řלc‹ä,pœŔ˙ü!`˙˙„–ઠŕĽ0œl˙Ř˜Ľœ€„vŞJđœŔ˙üŕjÔ ŕc0„ä$p áL˙Ř˝œdÔ`Ô`˙Řšœrœ`Ô +XÔ +„tœc˙˙`Ô…!…A……Á ††A††ÁDHœ! œ!˙üÔH„˙ŘŁœĄ…!DHœ!œ!˙ŘÔHÔP Ô`ÔpԀԐԠ Ô°$…Ŕž„Fž@žä,p žĂ„ŒœŔ˙óœlŕ¤0ĽÄ˙Ř‡Ô (jä# %œ€r+œŕaœŔwœ jä JĺC  ä0ä@ä8 +j j ŠÎŠÎ ž@@ŠÎ ž@@ŠÎ0jä#(˙˙㤎0œ`äĺDœ` œ`äm`ŞRä ŞRŞR@ä,P +˙ŘGœ`(ž ä0P@Y`ä6P œvœ€śÔ˙Ř:Ô ž‹ĺ”P ä0P L`˙Ř2œpH`€¨„Fřŕg Ô $ÔHä,P6œ€`¨cFx„ݐÔ0$Ô`œt˙ŘÔ ä+P œŔ„l¨cÔ @ ŠHěœŕœ řœˆ„dä#P˙˙ßŕ„(œĆá(ĺŚH˙˙ůŕç(œ`ä ˙Řœ`ôÔX „ œ`ä$œ„ôœpœ$Ô Ô „p¨cÔ Ô„l „ŒlÔ  ŕ„pÔ Ô Ô Ô …!…A ……Á††A† †Á$DHœ!(: perror: +œ!˙řÔHÔPCœ`ä* œ`˙×Ҝjœ`œŠ˙×ΜŤœ`€¨„ ˆ˙×ɜ €¨„ ‹˙×Ü €¨„Jř˙׿„dK˙ןœjœ`œŠ˙׸œŤœ`€¨„ ”˙׳œ …!…ADHœ!œ!˙ĐÔHÔPÔ`€ŠŒJř…L˙׌œ œ`ä+cœ`cÔ P…!…A…DHœ!0œ!˙ôÔHÔPÔ`€Cä*`œ€`¨cJř`˙˙hÔ ˙׊œjä+`c`˙˙˙ׅ„jä+` €˙˙„jœ€˙˙Ô + ¤cœ€ä# +ŕ¨çFř„Ę ä8 œ `¨cHěÔ(œĽœ`ĺĽ ¸eŕc(¸cŕƒ8ä ˙˙řœĽœĽ˙˙€¨„Hěŕc œ€Ô œ`ä œ€˙×X„j œ€Ô + „jœ€˙űŕc œ€Ô +Ô + „jœ€¤cä# #`¨cFxÔ + „ƒœă„„$œŔä$0 œ œ ä$P œ`œ`ŕeä#0˙˙ôäP ä(0„j$Ô„Š$Ô $˙×+œjlœ`Ô +l…!…A…DHœ! œ!˙ŕÔHÔPÔ`Ôp ԀԐԠ԰CÄ…žŔž€˙˙ž@ +ž +Ř +Xä JÎ˙˙ä.° œ`„Œ„läd œd˙לldÔ ä  ˙˙ěä +€ `œ`Ř +„lœ€¤cä# `p…!…A……Á ††A††ÁDHœ! `ŠkJřDHœŁœ`…ä$ eœ€kkä# ˙˙ţkk˙˙ák(DHœŔŁä cä%0˙˙űœc`DHœ!˙ôÔHÔPÔ`„C˙ÖžœlœjœŒ˙ÖşœŤ…!…A…DHœ! œ!˙ôÔHÔPÔ`C˙ÖŽ„ŕjX˙ÖŤœŒj…!…A…DHœ! `j DHDH/bin/shsh-cWaiting for child %d +œ!˙ŕÔHÔPÔ`Ôp ԀԐԠĂ€ä.`œ`Z`˙քœ€œ`œ€˙րž œ`œ€˙Ö|žKž‹` œ`ď˙äK ŕ€X`¨cJř`˙˙Ô KĺŠ` œ`˙Öjœœ`˙Ögœ’œ`˙Ödœ”6`˙˙ä*`˙Ö]œ€œ`˙ÖZœ€œ`˙ÖWœ€`¨cĽ€¨„Ľ˜ ¨ĽĽ›œÎ˙ÖNœŕ˙ÖLœ`œ`˙ÖIœ€œ`˙ÖFœ€`¨cĽž˙ÖBœŠœjœœ ˙Ö=œŔœ`˙˙ä  Ôœ`˙Ö5œœ`˙Ö2œ’œ`˙Ö/œ”…a…!…A……Á ††A†DHœ! ` DHDHœ!˙üÔHŔ¨Ć•ˆ˙Ö„Ś…!DHœ!/usr/lib/liberror.txt/lib/liberror.txtUnknown error œ!ţŕÔHÔPÔ`Ôp ԀԐԠ԰€¨„Kž„„ä$€ žƒĺ”€aœ`ĺt ^¸”`¨cJü„Łŕ„(k…d崀Uœ``¨c§´˙Ő䜀žK咀 +`¨c§Ę˙Őܜ€žK咀Eœ`ŔŞÖK8œr 5€ŔŠÎKŕ`œd ŒŁ˙¸…¸„˜œ` +ä ŕppœ€Ř ˙ŐÜnäX œv˙Őžœ€ Kœ`ä* &œ€ jä Jjä ˙˙ţJJ˙˙˙Ő­œr+jžœ`Nä° ŕp°žŘ(ŒĺŒP˙˙Ňŕ`œrœ ˙՛œ Kœ`ĺJ˙˙ÄĺƒPœ`ĺr ˙Րœr€¨„§Ü@ŠJKœ ˙Չœj˙Շœt`¨cK˙Ճœ‹j…!…A……Á ††A††ÁDHœ! ` DHDH`r DHDH` DHDH`! DHDHœ!˙üÔHŔ¨Ć•ˆ˙ŐV„Ś…!DHœ!./œ!˙řÔHÔPœă`¨cKT ¨ĽKXÔ8œŔĺ¤0 Ô `¨cJřœ€"`Ô €¨„Şź˙Ő;œg@ŠJKd`¨cŞž˙Ő5œŠœ`ĺ‹ `”Ş`¨cK\Ü(…J€¨„K`ÔP…!…ADHœ!/..œ!˙đÔHÔPÔ`Ôp @ŠJKT€ŠŒKd„j˙ŐœŒœ`ĺ‹1•Ě`¨cK\”ƒä …Œ`¨cK`„ƒä €¨„Şž˙Ő„j…j˙Ôţ„j`¨cKX„ƒkäK œ€"`¨cJř`Ô €¨„Ťx˙Ôî„j˙˙Ëœ`ä+ œn œŒ`…!…A……Á DHœ!œ!˙ÔÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$Ôŕ(žÄ§˙˙Ŕ¨ĆKd ¨ĽKTœ†ŸE„ež†˙Ôş€ĺ‹ŕ_`”tä8 Ÿ€˙Ôť„z„z‹ŕĂ`ž˙˙œ`/ä$ œŒ`¨cKX„ŁĺD( œ€"`¨cJřD`ž€¨„ŞžŒ˙Ô˘œp„z˙ԟŒËœ`ä.+ž@5``¨cJř/œ€"˙Ԓœn-…zK +„kä ˙Ԉœj`¨cKX„ƒálXäK ˙˙ëœp˙ÔœŠ„z˙Ô|œ”勐 +„tä° ”täŔ˙˙ß˙Ôoœnä+˙˙Ţä<˙Ôjœn`¨cJřœ€`Ô …!…A……Á ††A††Á‡ ‡A$‡(DHœ!,œ!˙ěÔHÔPÔ`Ôp Ô€ž„˙ÔNĹœlœ€œŽ˙ÔIáPXœ`ä+ œjŕŤ`œŒ˙ÔAœĽ pœŒ˙Ô<œŽŕjpœ€Ř p…!…A……Á †DHœ!` DHDHœ!˙řÔHÔP@ŠJK¤œĄ Ô +„˙Ô œj„jœ€Ř …!…ADHœ!œ!˙ěÔHÔPÔ`Ôp Ô€ž˙ԝD…ŠŔ¤l@ä#p ¤Œ ˙Ôœjä+p6`˙˙¤Œ œ` ä$1`˙˙„Š„jäd ˙Óůœjœ`ä+&`˙˙„jŘ€„Šœ  +œc¨„€Ô +ä( Ô + ¤Œœ`ä$¤Œœ`ä$ +¤Œ˙Óߜjœ`ä+ `˙˙¤Œœ`ä$ „j „jÔ +Ľp˙…!…A……Á †DHœ!œ!˙čÔHÔPÔ`Ôp ԀԐCŔjä#p „ž˙˙ž@„Ź„läe +œŒj˙ÓłJä €`˙˙ +jŒjŘŒ…œeJä€ Ô `˙˙jä#˙˙çÎn…!…A……Á ††ADHœ!`N DHDH` DHDH`' DHDHœ!˙üÔHœĂœ ˙˙Œfœ€`ŕc( Œfŕc(¤c˙äŁ ˙˙üœĆœĆ˙˙†œ`-ä œ`+ ä œĆŒfœc˙Н ¤c˙äŁ@ œ`œŕ˙АŚ¸kœĆŕcXŒ†¸cŕ„8ŕc8¤„˙ä¤@˙˙öác(œ`ä) á`X…!DHœ!œ!˙ěÔHÔPÔ`C€ŠŒB@˙ÓAœŒœjœŒ˙Ó=ÔX œ`œá œ€œ œŔ˙Ó6ÔX…!…A…DHœ!œ!˙ôÔHœáœ€Ôœ œ`œŔ˙Ó'Ô…a…!DHœ! ` DHDH`( DHDH`$ DHDH` + DHDH` DHDH/etc/passwdœ!˙čÔHÔPÔ` ÔpÔ€ž@ä0Pœ€`¨cJřœ€`!Ô `¨c´˙ŇčÔ ‹ĺŒP `˙ŇŕœljŔ„j˙Ňٜä+p˙˙ö˙ŇԜlKä*p˙˙ö˙ŇΜl`…!…A… …Á†DHœ!` DHDH/etc/groupœ!˙čÔHÔPÔ` ÔpÔ€ž@ä0Pœ€`¨cJřœ€`!Ô `¨cľ ˙ҧÔ ‹ĺŒP `˙ҟœljŔ„j˙Ҙœä+p˙˙ö˙ғœlKä*p˙˙ö˙ҍœl`…!…A… …Á†DHœ!` + DHDH` DHDH` DHDH`& DHDH`S DHDH` DHDH` DHDH` DHDHœ!˙üÔHœƒœ œŔ!œŕ˙ŇDœ`œ‹œ`˙˙ä`d…!DHœ!` DHDHœ!˙üÔHœäœĂ` œeä#H +œĽ˙˙‘‘gœˆœkœĆä# ˙˙öœçák@…!DHœ!œ!˙üÔH˙Ňœ€…!DHœ!œ!˙ôÔHÔPÔ`˙ҝC„j€¤c€ä#` ˙Ňœj„jœ€¤cä# `˙˙„Š„jäd œĘ„Š „ŞœdÔ + Ô + œ€˙ŃőŕĽä+`œ ű˙ +`˙˙„j„Š¨c@ŕ„Xŕc(Ô + Ô +„jcœcÔ +…!…A…DHœ! =œ!˙ŘÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$žƒŸD˙ŃО`¨c•ˆ€žK„ƒä$` +žĂ˙ŃƜ`œ€œ œk˙ŃÁÔX`¨cKМ€Ô …V„Šä$` %€ŔŠÎKМt˙Ńłœ˛ä+`œ€=„jŕcŁä ä0` W„jä#` Ô +œ€J„jä# ˙˙ýÔ +„nœcԝJ„Šä$`˙˙âœt`¨cKНŔ„ƒĺ¤p "Ÿ„vœŔ˙üŕjŕc0˙шœc‹ä,p 3œŔ˙ü„–ઠŕĽ0œl˙Ń~œĽœ€„vŞK̜Ŕ˙üŕjÔ ŕc0„ä$p áL˙ŃpœdÔ`Ô`˙Ńlœzŕk˙Ńiœc‹œ`ä, œl˙Ńbœ”€¨„¸ˆ˙Ń^œlœl˙Ń[œšœ`Ô +`Ô +„xœc˙˙`ԝ`˙˙…!…A……Á ††A††Á‡ ‡A$DHœ!(`< DHDH`% DHDHœ!˙ŕÔHÔPÔ`Ôp ԀԐԠ԰žž„Ĺ˙Ń*†…Lž@¤j€ä# žŔ˙Ń"œl¤Šœ`ä$)`áÔs„l„ŒáC äjp œp˙ŃœŽ„lŕcpnÔ ĺJ œŞ˙Ń +žJŕ„l˙ŃஐK劰 ä*°„l¨c@ŕrP„l¨cÔ ŕrP˙Đöœ”…!…A……Á ††A††ÁDHœ! œ!˙ŘÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$FĂ€† +ŸD¤p@ä#` žE˙Đ֜jä+`L`¤ œ` ä$G`ᚓ„Š„jádäLX ˙ĐŜjœ`ä+:`„j„Şác(äŹX œe„ĘœŽ¨Ć€œŹ˙ĐľÔ +0„j¤°ŕc`œ€ä% Ô +˙ĐŹœj#rŸ žžŔ˙˙€Ş”Jřž@œŽ„j˙Đ œŹĺK€ áÎXĺK€˙˙÷áŒXä ° „tä˙˙ńœŽĺ‹€ ŕx`„j¨cÔ +ŕx`˙Љœš…!…A……Á ††A††Á‡ ‡A$DHœ!(`k DHDHœ!˙°ÔHÔPÔ`Ôp Cœ˙ĐmŔä+p”aœ€@¤cđä# œ€`¨cJřA``œjœ€ ‹ĺŒp9``7œlœ€œ  ĺ‹p .`˙ĐKœ` Kä*p„a(`œl Ô +œƒœ`˙ä¤ œ€Ô + ˙Đ8„jœkä#p +œ€jÔ +`Ô + Ô + Ô + Ô +  +Ô + `œl ˙Đ&œj`¨cJřœ€ `Ô …!…A……Á DHœ!PœĂœŕä&8œ€ `¨cJř`#Ô „†„fä¤ `„f„† „Ś œ`ÔœkĺŁ8 ŕ`€¨„Jř`Ôœ€ÔXÔ „f „†ŕc ”Łŕ„(cÔ „cÔDHcœ`ä% +œËœŕ˙˙Ř@ŕĽ8œ„ä%˙˙űœĆDHœ!˙đÔHÔPÔ`Ôp ˙Ď؝݋˙Ď՜lKœ`ä* œjœŽ˙Ď͜Źj…!…A……Á DHœ!œ!˙ôÔHÔPÔ`Cœ`ä*`˙˙`¨cJřœ€ …Šä X +œ€ „j ˙Ď˛Ô +X˙Ď°œj`œl `¨cJřÔ …!…A…DHœ! œ!˙ÄÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$Ôŕ(Ôđ,ŸDŸ…žƒŸÁ8Ô04ĺ\Đ Tŕzŕ¸c¸cŕc ¸š„Łŕ„ Ô(„ÄÔ0„~Úžĺšŕ .ÔžDťşÜœ€á#áV Œ˙üžÖ˙üž˙˙œj„Ą4H(œžœŔĺK0˙˙÷J˙üŕl „cáX œ ÔJžRŸÎ厀 +„Á4œjœžH0Ô(0„Ą0ĺŤ(˙˙ó„’ŕl ĺŽ€˙˙ŮÔ ¸nŕŽĐ„Ţŕc ŕœpĺ… +Ô0œtœš„Á4œŽ˙˙˙˙¤ŸN˙˙´œtœŽ„Á4˙˙œź˙˙­ŸŽ˙˙…!…A……Á ††A††Á‡ ‡A$‡(‡Á,DHœ!<œ!˙ÄÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$Ôŕ(Ôđ,ŸDŸ…žƒŸÁ8Ô04ĺ\Đ Tŕzŕ¸c¸cŕc ¸š„Łŕ„ Ô(„ÄÔ0„~Úžĺšŕ .ÔžDťşÜœ€á#áV Œ˙üžÖ˙üž˙˙œj„Ą4H(œžœŔĺK0˙˙÷J˙üŕl „cáX œ ÔJžRŸÎ厀 +„Á4œjœžH0Ô(0„Ą0ĺŤ(˙˙ó„’ŕl ĺŽ€˙˙ŮÔ ¸nŕŽĐ„Ţŕc ŕœpĺ… +Ô0œtœš„Á4œŽ˙˙˙˙¤ŸN˙˙´œtœŽ„Á4˙˙œź˙˙­ŸŽ˙˙…!…A……Á ††A††Á‡ ‡A$‡(‡Á,DHœ!<œ!˙źÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$Ôŕ(Ôđ,ŸCĆÔ @Ô(<ĺE …Ô88„@„Ą<ŕd(¸cŕnŔ¨ĆKԟ„Śâšä%  žœeœ”˙ÜŽ„a@áŽáZ`ä4P œtœŠ˙ΊœŽ ¨ĽKԄ…ä* œj˙΂œŽ„a@„<Ŕ¨ĆKԆ†ĺƒ 9žLžĘŕ pŸŇă„sÔ(4á˜sá\ĐăœpŸ˙˙áŒ0áJ0œj„Ą8H(œ”œŔĺK0˙˙ö„Á4ŕš`ä6 œv˙Î`œŽá^Đœ áJpâÖpăŢpžĺŔ âNƒ„Á8œjœ”H0Ô(0„Ą0ĺŤ(˙˙ňŕz`๐ä# ˙ÎFœŽĺŔ˙˙Ńá˜sŕzä#  œ”˙Î=œŽ„a@„Ą<ŕŕe€ĺ„ „@œzœ°˙˙„á8žœÎ˙˙yÔ€@ +„Á<œzœ„á8˙˙rœÎž˙˙Ô€<„Á<„a@ĺF˙˙€„@…!…A……Á ††A††Á‡ ‡A$‡(‡Á,DHœ!Dœ!˙xÔHÔPŕ¨çKԝ Łäež&…ä(HGœ`€äK"œaÔ +œ`ä  œmœ€œŻ˙˙˙ţXœŃ„Šœ`ä  œmœ€œŻ˙˙˙ţÜŃ„Šœ€œŻ˙˙œË˙˙1œń„Šœaä œ`Ô +…!…ADHœ!ˆœ!˙ěÔHÔPÔ`Ôp Ô€Ŕ„ä,pC˙ÍĐ +ájXžĘNœj˙ÍǜŒKä*€˙˙ůn…!…A……Á †DHœ!`U DHDHœ!˙üÔHœĂœ ˙˙Œfœ€`ŕc( Œfŕc(¤c˙äŁ ˙˙üœĆœĆ˙˙†œ`-ä œ`+ ä œĆŒfœc˙Н ¤c˙äŁ@ œ`œŕ˙АŚ¸kœĆŕcXŒ†¸cŕ„8ŕc8¤„˙ä¤@˙˙öác(œ`ä) á`X…!DHœ! ¨ĽKŘŕƒ(dškĽk ákDH ¨ĽKŘŕƒ(dškĽk ákDHœ!˙üÔHœăœÄ` œeä#@ +œĽ˙˙‘&‘gœ‰œkœĆä# œçä+@˙˙ôœeákH…!DHœ!œ!˙řÔHÔPh Š)KŘŕcHŒĂd¤Ćœ`ä& œčœŔœçgŕcHŒƒ¤„ä$0˙˙űœçœç˙˙œ`-‡ä @@œh œ‹œ`ä* á`X…!…ADHœ!œ!˙üÔHœŔœăä0 ždœ`$ĺE œ€œ†ŕh œ€ä# ĺ… œ gŔ¨ĆKŘŕc0Œƒ¤„œ`ä$ &œçgŕc0Œƒ¤„ä$@˙˙űœçœç˙˙‡œ`-ä œ`+äœŔä%0 œ`0ä œ`§ŕ…HŒd¤cä#0 œeœ€XŹc ä œ  œ œ`Xä œ œçœ œçœ`ä%œ  +ÇŠŕ†hŒd`¤cä#X $œ`ž ˙Нŕ˙ÉŕfHŒc¤ƒä$@ ¸cŒ‡¤c ŕ„¸Ä¸Ć˜gŕcHŒƒ¤„ä$@ ák+ŕkˆŕkxác0œçÇŕ†hŒd¤cä#@˙˙ĺŕfHœ`ä3 Ô8…!DHœ!œ!˙čÔHÔPÔ`Ôp ԀԐCÄž„Šœ`@¤„@ä œ œ €ä°` œ`œlŕež@ä# !œ€„j˙̃œŹœ`˙˙ä *ä` ŕ‹p„j„Şŕc žáĂ(ä0œjĺŽX „j „ŠŕcXŕc ĺn ŕnXŕd`Ô +œj˙Ěd€˙˙ä ` œŽ„j˙Ě^œ°œ‹œ`ĺ„l``˙˙…!…A……Á ††ADHœ!`c DHDH`J DHDHœ!ţdÔHÔPÔ`Ôp Ô€Ăœ`ä. žAœj˙Ě1€˙˙ä `lJA˙Ě+œjkäK€œn˙Ě%œŠ``¨cJřœ€`˙˙Ô …!…A……Á †DHœ!œ`DHœ!˙ěÔHÔPÔ`ƒœ ˙Ě œ`„Ą ¸e@ŠJLXŕĽœŒ¸Ľ˙Ěœjj…!…A…DHœ!œ!˙üÔH€¨„L„Ôœd„˙ËôœĄ…!DHœ!;Zx—ľÔó0Nm<[y˜śŐô1Onœ!˙ĚÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$Ôŕ(Ôđ,žĂ@ŸDŸ…ŸĆŸ¸v‚Ô80Ľ6ä)Pžƒ۞”˙˙†X¸r‚¤’ä$Pž۞˙˙œt˙ËŔœ€œtœ€˙ËźËšK_œp˙˸œ€œpœ€˙Ë´‹ŕ֐œ`mŕĆšk_áNPálXŕŠXšJ‚šk‚ŕt€áJXŕc ŕcP„˜ŕĆŕš ŕĆ ¸f„¸ŕc0¸cŕź(ŕc(¸ƒ„¸ŕ„¸„ŕž(ŕ„(¸d…xŕc „0¸cádXácX…!…A……Á ††A††Á‡ ‡A$‡(‡Á,DHœ!4œ!˙üÔH€¨„úŹ ¨ĽLŹ…!DHœ!œ!˙dÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$Ôŕ(Ôđ,ĂŸÄ…Nœ€ œj˙ËcÔ(8œjœ€ ‹˙Ë^†„Ž‡Nž@šL_‡ž€¸j‡Ž ákPŕcPâÄX¸c„Ž VláŒÔ 4¤jä# šŒœj˙ËGœ€dä+ œj˙ËBœ€ä+ œ`ž€œ`ŕt Š)ĐDŕlŕcH”ƒÔ€0ŕ„ŕœ`ĺ „˙˙žœ`;ĺP žœvœŒœ¸ FœÚÔH„œđ ÔHpÔHtÔHxÔHŒ˙˙;p„8„dŸ‹ŕ|Ô@ ž@âRä20Žc„a@ŕcXÔ@œtHđœpœvœŒœ¸œÚœđ˙˙! œŔä+0˙˙ëœ`˙˙…!4œ ĺi( I„áĺg( Fœiä(œ`ä'( œƒœ„˙˙ä$0 ;¸dŕc ¸cŕc ¸c„@ŕ„žR˙˙ä20 1Ô <@œaË ž@ž@ ž€0žŔŸ@ž@œ`ä- J„Ę˙üJ”Ę˙ţœ`XŒä œ œ œfœ’˙Č5Ôx8œŔË…á8ä/0 œ œ œ`ä œ€œ€ŕe ä#0 œn˙Č#ž€0žË˙ţűŕJŒj˙˙Řœ€Ř J…Ę˙üŸ€ž€ œpœŽœÜ„Ą<œôÔĐ˙ţÔŔ+ăŢXŕ¨çÚ `¨cFĚ˙ČÔ8˙Čœ`˙˙„„päd l˙Çúœœ` +ŒlŘœdÔœ` +ŸŢŒä œ œ œ`ä œ€œƒŕ… œ`ä$ ˙ÇáœpŒŒĚ¸†¸„˜œ`ä$˙ţ˘œ`%„pŕcŔœ€ä Ô˙Çќpœ`ä ~„ Ô …!…A ……Á††A† †Á$‡(‡A,‡0‡Á4DHœ!€` DHDH`C DHDHœĹcœ`œëä% œĆ˙˙œ Ř œfœçä#(˙˙üœĆ˙˙DHœ!˙ôÔHœ TÔ ˙ǙÔ(…!DHœ! œ!˙¨ÔHÔPÔ`Ôp Ô€ž€ÁÔ œ œŽœ„„dä#(˙˙ýŒœ`嬝A˙ǸlKœŔ„aœŠœŽÔ +œĽ„eÔä#0˙˙üœ„€¨„•ˆ„¤œp˙ÇmœŠœaä* ‹˙Çgœjl…!…A……Á †DHœ!XPATH/bin:/usr/bin/œ!˙dÔHÔPÔ`Ôp ԀԐԠžž„žEœ€/˙ÇK€ä+`Eœp`¨câŒ˙ÇDKä*`@ŠJâ‘ä*` ;`˙˙jä#` 2Ŕœl˙Ç3œŠœl˙Ç0œ€:ä+p œ`Ř ˙Ç*œlä+p œl€¨„âŸ˙Ç#œlœl˙Ç œœlœ”˙Çœ˛`¨cJř„Łœ€ä% œj˙Çœ€:@ä+P Kä*p `˙˙jä#p˙˙Ԝl`˙˙œ”˙Çœ˛…!…A……Á ††A†DHœ!œœ!˙ěÔHÔPÔ`Ôp Ô€C€ŠŒLňšĘ_œ`ä. œ`á@PžŘ œjœ€ +˙Ć䝌˙˙œjk0œ€ +˙ĆßŘ XKä*€˙˙öœjœ`ä. œ`-Œ˙˙Ř l…!…A……Á †DHœ!` DHDHœĹcœ`ä% œĆ˙˙œ kä œfkä#(˙˙úœĆ˙˙`DH`R œ`ĺkŕ`X€¨„Jř`˙˙ÔDHœ!˙ÜÔHÔPÔ`Ôp ԀԐԠ԰žCŞLôœrœ˙Ɨœ ‹ŔĺŹp œp”`˙Ǝœ€ +Kä*p +œr ¨ĽLóŕŒ(œ ˙Ć„ŕŠ œ`#Ŕœ˙Ć~œ ‹ĺŹp˙˙ęœp˙Ćxœ€ +Kä*p˙˙őœrŕŠ€ŕ„`œ ˙Ćoœ„˙˙՜r°ä œŔœŔœ` ä œ€œ€ŕ† œ`ä$˙˙Ɯrœ` +ä˙˙Áœrœ` ä˙˙˝œrœ`Ř +€œ`PäL(œ`¸l€¨„ćđŕc „ƒD ç çç,ç4ç<çLç\`¨cMôÔP`¨cMôÔPžĘ +žŠ`¨cMô ÔP `¨cMôÔP`¨cMôÔPœ`ĺŹ œj˙Ć"œ€:Kœ`ä*˙˙„œ Ř +(JŒœ`ĺŹ˙˙Ȝ  +œtA €ŠŒMô˙ĆœŠÜ X +„a ƒŔä$p˙˙qœrœvœŠ˙Ćœ  +Ü X„a ƒä$p˙˙gœrl…!…A……Á ††A††ÁDHœ!$œ!˙ÜÔHÔPÔ`Ôp ԀԐԠ԰žCŞN œrœ˙Ĺ䜠€‹ŔĺŹp œp`˙Ĺۜ€ +Kä*p +œr ¨ĽN ŕŒ(œ ˙ĹŃ੠œ`#Ŕœ˙Ĺ˜ €‹ĺŹp˙˙ęœp˙ĹŜ€ +Kä*p˙˙őœrŕŠ€ŕ„`œ ˙Ĺźœ„˙˙՜rä œŔœŔœ` ä œ œ ŕf(Ŕä#p˙˙ƜržŔ +ä°˙˙Áœ` ä˙˙˝œrœ€Ř + œp@ŠJN¸œ€:˙ĹšÔ +€‹ä,p˙˙°žŠœ Ř (Œœ€:œl˙ŏÔ`‹ä,p˙˙Ľœ`LŘ œ€:˙ņœj‹ä,p˙˙œœ œjŘ (œ ˙Ĺ}œśÜX„a ƒä$p˙˙‘ŒŞNŒ LŘ ¸nœŽŕc€ŒÔPšÄšÎLœl˙Ĺgœ€,‹œ€ä, ˙˙ńœ`jä# ¸n ŕc€œn¸Ž¸cŕ„€ÔPŕc€œ€Ô  ¨ĽNŒtÔ( …!…A……Á ††A††ÁDHœ!$œ!˙č`ZÔÔ Ô(Ô0 Ô8Ô@œa DHœ!`[ DHDH`z DHDHœ!˙čÔHÔPÔ`Ôp ԀԐDŞQ€žC…„j˙Ĺœœ„j˙Ĺ Ëá‹`œ`ĺŒ œœ ˙˙ጠĺŒ˙˙ţáÎ(`¨cQĺL @€˙ţ¨„Ž€áŒ ĺL˙˙ţÎ@œl˙Ä󜊜lœŠ˙ÄďÔX‹œ€<˙Äëœlœlœ€<˙ÄçÔXœnœ€˙ÄăÔXœ`ĺ‹ ÔXœkԝ@˛žJáÎ`¤jä#€€mœj˙Äќ€dä+€ €nœj˙ʀä+€€m€nĺn`˙˙ěœ`ĺŽ €J˙˙¤jä#`œj˙Äşœ€dä+`œj˙Äľœ€ä+`ÎnÎmĺŽ`˙˙îJ˙˙J€œjř”¤ŠÔpä$`Ôœj˙ÄĄœ€dä+`œj˙Ĝœ€ä+`¸l€¸lŕc`¸c€¨„ë\ŕc ”ƒĺn +@œŁ”…œĽ”eáÎ ĺn˙˙űJœ`˙˙Ô œnÔPÔ …!…A……Á ††ADHœ! + + 0123456789ABCDEFLIBC:SCANFœ!˙(ÔHÔPÔ` ÔpԀԐԠ԰ ÔŔ$ÔĐ(Ôŕ,Ôđ0žœ€Ô <Ÿ„Ą<ä$(žCő`„’„räd œd˙ÄQœrËÄԝ@ĺNP Ҝ`%ä ”žŔ ¨Ľî$ŒĹŘ0XŒeŘYŒ…Ř ZŒĹŘ0[ŒeŘ\ŒĹŘ0]Ÿ€Ô°8ž€˙˙ŒĽ€ +€¨„î+Ř(^œaDœśœÖÔ(@Ô04œ ˙Ä'ŸTœ`*ä žÔŕ8Ôŕ4žp ¨ĽKŘŕc(Œƒ¤„ä$P ŸĹT ˙НœŕäP ¸tž€¸tĐŕc ž¸c°ŕcHŕĽ@âƒ0Œ…¤„ä$8˙˙đžÔž˙˙ž°ŕeđŒƒ¤„œ`ä$ œeŹƒ œ…œ`xäDb¸d€¨„đhŕc „ƒD ů4ůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐňLůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐůĐöůĐůĐůĐůĐůĐůĐň|őđň”őĐőĐőĐňhňtůĐůĐň\ůĐůĐň„ůĐůĐůĐ÷ ůĐň˜ůĐůĐňŒœ Ô(8˙˙oÔ(4œŔ˙˙lÔ0@œ`˙˙iÔ@ €€€€Ÿ@ŕnđŒƒ¤„œ`ä$ „’„räd œd˙ĂNœrËÄÔœ ĺŽ(ĎŕŽđŒd¤cä#(˙˙îpŕcđŒƒ¤„œ`ä$ œ€Ô @ä,/œ œ`%€ +ä Ÿ@?€œ`0ä $œ „’„räd œd˙Ă#œrËÄÔœŔĺŽ0y„Ą8œ`xä. œ œ œ`Xä. œ€œ€ŕe ä#0 œ €UŘ(L€ä:(œŔœŔœ` +ä  œ€œ€ŕf ä#( œ`-ä Ÿ@Ÿ@ä:(œ`+ä ŕÁ`„’„räd œd˙ÂęœrËÄÔœ`ĺŽl`˙˙ŕÁ`œ€œfŘŰă'lŕŽđŒ…¸„¤„ œaD˙Â×ŕ„pœ€Kä. œ œ ä* œ`œ`ŕeä# ä4 Q`˙˙œD„Ň੠„˛äf( ム˙ÂźœrËĆœfÔŕnđŒƒ¸„¤„ œaD˙°ŕ„pKœ€ä* œ`˙˙â”ä4 ä. ˙˙âŕ|c„Ą8œ€ä% #œ`ä „Á@ă€ŕä& Ÿ„x˙üÔŕŸ„x˙üÜŕ„a<œcÔ<€¨„î<`¨cFĚ˙ˆÔ ˙†œ`˙˙œŔž–Ř0Xœ œ`Ô(4Ô@žœ`^AXä œ°œ€žÔ @œ Ô(@œŕ]œŔpä8 œ œ -ä@ œ€œ€ŕ… œ`ä$ ŒĐŘ +0œŔžJŒ¸d¸c˜ä#8 : h€˙ţ¸d¸c˜ä#H ֜`ä +ĺFä`äHœ° Žœ°ŽŒŠ˙ţpĺ¤ œŔáJ@ĺ„ œ°Ř + œ„pĺ„˙˙üJ +œŔœŔpäX œ°œŔœŔŽŘ +€žŒ¸d¸c˜ä#8˙˙ϝJœ`Ř +ŕnđŒƒœ ¤„ä$( Ô(@„’„räd œd˙ œrËÄÔœ ĺŽ(ŕŽđŒd¤cä#(˙˙€ä4` …X˙üœaX˙Á÷œŽĺŽ` œ`ä+„Á@œ`ä „8„4œ`ä$ qœ oŘ +(˙Á䜎ä+`œ`œ`„Á@ä„Ą8„8œ`ä$ Ř +pJ„’„räd œd˙ÁΜrËÄԝ€ĺŽ`„Ą8ž”˙˙ä4`˙˙ޜaX„Ą8œ`ä% @„Á4ä& „<Ř +„<œ„8Ô <'ž˙˙p ¨ĽKŘŕc(Œƒ¤„ä$P ŸĹŕŽđŒd¤cä#P '„’„räd œd˙ÁœrËÄÔœ ĺŽ(ŕŽđŒd¤cä#(˙˙pä.`˙˙„’„räd œd˙ÁƒœrËÄÔžœ`ä$˙ý/@`˙˙äX œ œ œ€„Á<ä& œ`œ`ŕeä# ä.X œn˙Áfœ’…a<…!…A… …Á††A††Á ‡$‡A(‡,‡Á0DHœ!؜!˙ěÔHÔPÔ`ƒDœ`˙ÁNœ „Ą ¸eŕĽœŒ¸Ľ˙ÁGœjj…!…A…DHœ!œ!˙řÔHÔPCœd˙Á:œ€ +k0Ř +X…!…ADHœ!Err Err .. ..:..:.. .... +œ!˙đÔHÔPÔ`Ôp Ă„€¨„ű8˙Á"œ „Œœ`ä¤ ¸dŕc €¨„NĚŕc ŒƒŘ ŒƒŘ ŒcŘ„Œœ` ä¤ +¸dŕc €¨„Nâŕc ŒƒŘ ŒƒŘ ŒcŘ„l œ€ +˙Ŕ˙Nœj˙˙˝œ‹„Œ ˙˙şœn „lœ€ +˙ŔőN œj˙˙łœ‹„Œ˙˙°œn „lœ€ +˙ŔëNœj˙˙Šœ‹„Œ˙˙Śœn„lœ€ +˙ŔáNœj˙˙Ÿœ‹„Œ˙˙œœn…ŒŒlœ€čœl˙Ŕ՝Nœj˙˙“œ‹œlœ€d˙ŔΝNœj˙˙Œœ‹œlœ€ +˙ŔǝNœj˙˙…œ‹œn˙˙‚œŒ…!…A……Á DHœ!œ!˙ěÔHÔPÔ`Ôp Ô€ŕ¨çO ¨ĽL䜀˙˙„ǝĂÔ@ᆠœ ĺl( Ô ¸l€¨„O žáC „Ş„ŠŒ˙˙œnH(J˙řĺl€˙˙ů…!…A……Á †DHœ!œ!˙ôÔHÔPÔ`@ĺƒP €€ŕ`ä+P œ€œ€ä,P œ`œ`ŕdä#P œ`-k˙˙Ř …!…A…DHœ! œ!˙ÜÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ žĂœ˙ţœ`"äD ž… `€ŠŒO͞@Ÿ œ`žŔWŘ œn˙ŔVœœnœ˙ŔRKĺJŔ Ëä4 Œ˙˙œj7ŕj°Œ˙˙œj0ä.˙˙ěŘ l…!…A……Á ††A††Á‡ DHœ!$`6 DHDHœ!˙ôÔHÔPÔ`D„Šœ ¤„€ä$( ƒ˙Ŕ#œj„Ęœ`¤†ä$`˙˙„Š„Ş ¨fäD( Ô +œd˙˙Ô +Ľl˙ +Ř`„jä(œŠ`˙˙„dŘ`œcĽl˙Ô…!…A…DHœ! œ!˙ôÔHÔPÔ`Ŕ¨ĆOЄf„Łœ€ä% F€„ŞœeÔ +„…H „j„ƒä$`˙˙÷…!…A…DHœ! œ!˙đÔHÔPÔ`Ôp `¨cOđœ€˙˙„Łä œă€¨„Oô„dœ ä#( …œŔœ„„dä#0˙˙ýœĽ…œ`ä, ¸lŔáC8„jŒ˙˙HJ˙üä,p˙˙ű…!…A……Á DHœ!œ!˙üÔH ¨ĽOԄ…œ`ä$œ`˙˙ĘÔ…!DHœ!œ!˙üÔH`œŁä(X 6œŕäH(2ä(.ä‹@ +   €œŔ˙˙ŕeH¸‡ĺ¸c_á­0ŕää‡@˙˙ů¸Ľ¸çA­ ä‰h œŻŕ€ž ŕex¸‡¸c_ŕäŕÇ@ŕfx¸c_œ€ä# ¸kœ€¸Ľä$ˆ ác œć)ä‰h˙˙í`œĺ…!DHœ!œ!˙řÔHÔPœŁ@ĺ…P œ`@ŕ (ĺ„ Jŕ€ ˙˙˛œeœ`ä + á`X…!…ADHœ!œ!˙üÔH˙˙Ľg…!DHœ!œ!˙řÔHÔPĺƒ @ŕ`ĺ„ ŕ€ ˙˙“œ`ä + gá`X…!…ADHœ!œ!˙üÔHœŁ…e „…œŔœŕ…%ä¤8 œ`œgä#0 œ``¨cœŔ˙9ákä ä(0œ`ä ä(0 ä+0)` 'œ`˙‚„…ĺ„ ŕƒ œ`ĺD ák H`œ`ĺD œÄœŔ˙`œ`@¤‹ä ¤‹€œ`ä$ k@k?œ`ĺ‹ škAœĆškG€¨„˙˙¤f˙ák ¸c¸‰ákák …!DHœ!„Ł`¨c˙˙ŕŸe_˙¸ĽWœäŕ…@œ ä$(Ôä&(¸Ćœ€-Ô œ„˙‚œ `?˙¨c˙˙Ô(äŚ Ô œ ˙˙¸ĆäŚ˙˙ţŕ„(Ô ä@ ä&(œ`Ô€¨„ŕf ä#( œ Ô(œ`Ô Ô0 œ Ô(¸f @¨Ľœ„˙ŕc(Ô Ô DHœ!˙üÔHcœŔ ¤… ä¨0 œĺ&œ`ä)°„ä¤0 ŕœfä#xBœ`ä œ œŚä%x ä œ œŚä%x ›„‹„mä$ –`ŠkOؒä œ œŚä%x%œ ä( œ`œfä#x ä( œ`œfä#x ~„kÔ„kÔ„kÔ„k Ô „k„ŕc gpÔ„kä( œ€œ€ä$x fm„Ë„­…+ ŕ†(ĺ„x … + ŕ€ œ`ĺ¤ ĺF(…kĺF( …­¸ˆA¤hœĽĺF(˙˙üá ĺE0 ¸‰A¤iœĆĺE0˙˙üá#   …k…­…kœĹ …­ä+h &œ`ä+ŕˆHŕ‰@œ`ĺd ÔÔ0Ô œ`Ôŕ` Ô0Ô „§ œ€˙˙?˙Š˙ţŕe äŁ@ œÄ¸e„‡œŁÔ ŕ„0ŕe0äŁ@˙˙ůÔ œ`ŕi@ÔXÔ0Ô œ`Ô„§ œ`ĺ… ¤e„‡¸ĽAœ„ŕc(Ô Ô g…!DHœ!œ!˙źÔHÔPÔ`4ÔÔ œa˙ţřœŒA$œa ˙ţôœŠœlœŠ˙˙0œĄ˙ţ˜œk…!…A…DHœ!Dœ!˙źÔHÔPÔ`4ÔÔ œa˙ţߜŒA$œa ˙ţۜŠ„Ą(ŹĽœlÔ((œŠ˙˙œĄ˙ţ|œk…!…A…DHœ!Dœ!˙¨ÔHÔPÔ`Ôp ÔÔ œa˙ţ܁Hœa˙ţŔœ8œ  „ÁHäŚ( œ`œeä#H?„L„8ä¤( œ`œeä#H +„a<„Lä$ œŔœĹœa8—Ô0<œŕä8 œ`œeä#H Ŕœ`ä œŔœĹä&H„L„a<ä8 œ`œeä#H +œ`ä œ€œ…ä$H „L`¨cOŘsœŕä8 œ`œeä#H ä8„L„a<ä$ œŔœĹœaHbÔ0L œ`œ`ä#p +„L„a<ä$ œ œ œa8TÔ(<„ÁTœ`…Dœ Ô ÔHœa Ô0$˙˝2Ô@„k…ĄL„‹…PŕœŁ…a@EœÄ„Ą<áŒX*ä-( Ô`0ŕŒ(Ôx,ĺ‰p Ô`0œ€¤iä# Œ¸ĆA`€ŠkŕĆXš)Aĺ‰ ˙˙÷¤iÔ`0`?˙¨c˙˙äŠ „0œŕœŁœ„˙˙`€ŠkŕfXä#8 š)Š)äŠ(˙˙÷¸ĆÔ 0¤‰œ`@ä ¤i€œ€ä# ä& œ`)@œ`Ô(ÔH4œh˙ýš…!…A……Á DHœ!Xœ!˙ÔÔHÔÔ œa˙ţœœa˙ý˙œ œ „ÁäŚ( œ`œe ä#H „á `œĄä§( œ`œeä#H „a WœĄ „ŕc œ€ä Ô ä(H ä@ œ`œeä#H ä „„a ä @œĄ ¨ĽOŘ< œ`œeä#H œ`œĄÔ(2Ô$ä@ œeä#H œĄ)Ô „Ą(„$„a„áŕdä…8 Ô$œc˙˙¸ĽÔ$`@¨cœŔœ€äe8 ŕĆŕĽ8¸cAä# ˙˙ů¸Ľ¤†œ`@ä ¤f€œ€ä# ä% œ¨œĆ@œ¨Ô0(˙ý=œe…!DHœ!,œ!˙üÔHœ …häŤ( œŕœĺœŔä'0 +…$äŠ( œ`œeä#0 œŕu`ä 8 œ`œeä#0 ä 8 œ`œeä#0 œŕ„d…hdácXœŕ„¨ä8 œ`œ`œŔä#0 ä 8„hä#0 V`T`˙˙ œ`œ`ä#0 „dä#0 J`˙˙H`œŕä8 œ`œ`ä#0 ä 8 œ`œ`ä#0:`œŔä0 œ`œ`œŕä#8 ä 0„dä#8 -`˙˙+` œ`œ`ä#8 „hä#8 !``˙˙„Č„dä& ä&8 ``˙˙„¨„dĺE˙˙řĺ… ä&8 `˙˙ `„h „„ äC ˙˙ěäƒ ˙˙ö`…!DHœ!œ!˙ĚÔHÔPÔ`$ÔÔ œa˙üůœŒAœa ˙üőœŠœl˙˙dœŠ…!…A…DHœ!4œ!˙ĚÔHÔPÔ`$ÔÔ œa˙ü㜌Aœa ˙üߜŠœ€„a$äŁ œ œ¤œŔä%0 +`„aäŁ œ œ¤ä%0`œl˙˙<œŠ…!…A…DHœ!4œ!˙ĚÔHÔPÔ`$ÔÔ œa˙üťœŒAœa ˙üˇœŠœ€„a$äŁ œ œ¤œŔä%0 +`„aäŁ œ œ¤ä%0`œl˙˙œŠ…!…A…DHœ!4œ!˙ĚÔHÔPÔ`$ÔÔ œa˙ü“œŒAœa ˙üœŠœ€„a$äŁ œ œ¤œŔä%0 +`˙˙„aäŁ œ œ¤ä%0`˙˙œl˙ţ윊…!…A…DHœ!4œ!˙ĚÔHÔPÔ`$ÔÔ œa˙ükœŒAœa ˙ügœŠœ€„a$äŁ œ œ¤œŔä%0 +`˙˙„aäŁ œ œ¤ä%0`˙˙œl˙ţĜŠ…!…A…DHœ!4œ!˙ĚÔHÔPÔ`$ÔÔ œa˙üCœŒAœa ˙ü?œŠœ€„a$äŁ œ œ¤œŔä%0 +`„aäŁ œ œ¤ä%0`œl˙ţœœŠ…!…A…DHœ!4œ!˙ĚÔHÔPÔ`$ÔÔ œa˙üœŒAœa ˙üœŠœ€„a$äŁ œ œ¤œŔä%0 +`„aäŁ œ œ¤ä%0`œl˙ţtœŠ…!…A…DHœ!4Ϝ!˙ěÔHœƒœ ¸d_Ô(œ ä$(ÔœŔ Ô0œŔä#( +Ô0 `€¨cä ŕ` `¨cŹ…cÔÔ „ĄŔ?˙¨Ć˙˙äĽ0 +œŕ˙˙„ ¸eŕ„8äŁ0˙˙ýœŁÔ Ô˙űyœa…!DHœ!œ!˙čÔHÔœ˙űƜaœ`„ä œ œ œŔä%0/`œ ä¤( œ`œeä#0'`œ`ä œŕœĺä'0 „a `˙Šk˙˙ä#0 k„ĺ„0`œ ĺD( „a `˙Šk˙˙ä#0  k„aŕ… „Ą ä%0 ác Há`X…!DHœ!œ!˙äÔHÔPԝA œa˙ű„œŠ„aœ€ä# œjœ€˙ű&Ô …!…ADHœ!œ!˙ěÔHÔÔ Ô( Ô0˙űœa…!DHœ!œ!˙ÜÔHÔPÔœ˙űfœa„Á „a¸ćB„š„ĄœÁ Ô8 ˙ş6Ô@„k@ŠJOčÔ +j…!…ADHœ!$œ!˙ôÔHÔPÔ`„ㄤ…„ĝ‡E¨f(œ†¨ŕ˙˙¸¤Pŕi8á+ŕ„8ŕă#š)Pŕ‰#¸gPáá äˆ á)+`¨cá)¸Č¤g˙˙šPŕĆŕmSŕě[ŕ‰@ŕc8`ŠkPŕc Ô 0Ô …!…A…DHœ! œ!˙ÔÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ œŁ†e„…‡žŔ†E ä¤@ œ`œhä#°  `¨cŕ˛œÓžE`žŔ˙œ`ä œŔœČä&°'œ`ä œŔœČä&° ŕsž@Nž`ä°LŚ6˙„ĺœ€üĺ‡ ŕ„8œ`8ĺD œa$ž@9ž`Ԑ$˙ššÔ˜(„k„‹œŁ0žEœ`˙ĺG œ`ž@žŔ˙/ž`œ œ€˙žÇ˙äH ŕÓ œŕ€ä8 +œŔŕ“0ŕdäHœ‡ŕÓ œčœ€œŕŕÓ ä†˜œ˛œŕŕĽ8žEžf`˙¨c˙˙äR ¸Ň¸łAŕ†(¸rAžCžÖžd¸Ň¸łHŕ†(¸rHžCždŚ6˙ ¨Ľ˙˙œ‘ŕň(šd¤¸ž‡Eá´Xšęžŕtxžƒ`ŠkPžłÔ  …!…A……Á ††A††Á‡ DHœ!,œ!˙čÔHÔPÔ`Ôp ԀԐ„Ă Ş1˙˙„Łž@˙˙¤áĺˆ%œĺšÉTš‡_œ ˙žân(¤lœŕä38%Ô +ŕpxä8 œ`AÔ +¸ĐX¸Żŕf(œ ¸Ô +(ăœłüž`˙¨c˙˙äO#Ô +(2¸đ_¸Ďŕg0„­¸ŕĽHăÔ +(äO@˙˙÷žÔ +€ä( ŕpxä8 œ`Ô + ¨Ľŕo(ä8œ`œ Ô +(Ô +Ô +€Ô +x šPXš/œ ŕjHÔ +(¸3ü ¨ĽÔ +Hŕă(Ô + Ô +8 …!…A……Á ††ADHœ!œ!˙ŕÔHÔPÔ`Ôp Ô€ăœŕœÄ…/äŠ8 žœ`ä( o„†ä¤8 œ`œgä#@ůfœ`ä  œ œ§ä%@ ä œ œ§ä%@ ëo„„f`ŠkPä$äâoä œ œ§ä%@۝fœ ä( œ`œgä#@ ä ( œ`œgä#@˙˙˝p„oÔ„oÔ„oÔ„o Ô „oÔ„o„†ŕc žÔ„oä( œ€œ€ä$@śf…Ď…&…Ż…f… ŕŽHĺ„@ …F ŕ€ œ`?ĺ¤ !ĺNH†/ĺNH +†fš +¸ëAŕˆ8œ ¸jA¤ËáE)ĺNH˙˙÷áf ĺIp š ¸íAŕˆ8œ ¸lA¤ÍᅝÎĺIp˙˙÷ጠ †/@†f`†/É€†f ä1˜ Uœ`ä1 œaÔ`Ôh˙¸WÔX…a„k„‹œăŕČXä†@œ`œ`ŕ§P ŕĽŕÍXäFhœ`œ`ŕŹPŕĽœ`ĺ…ÔÔp +Ô0œ`ÔÔpœaÔ(˙¸4Ô0„k„‹œŁÔ Ô( `˙ţ +@˙˙„„p š$_š„đŕŠ@ŕçP¸ÄÔ8Ô0Ô( …œ ˙˙„đ œĹŕˆ0ä„@  ŕg(ŕcH ˙¨Ľ˙˙äC(ä#(˙˙ĺäDX˙˙ℐ…ďŕXÔxœ ä„hÔpœ ŕlPŕc(Ô Ô …Đœ`Ô…° `˙¨c˙˙äM œŽœmšƒšdANœŕŕĚX…0¸ŁAĽ +ŕg()ŕˆ0ÔHÔ Ô p…!…A……Á †DHœ! œ!˙¨ÔHÔPÔ`„ŁÔ(„¤DÔ( œa˙ţsœŒA0œa ˙ţoœŠœlœŠ˙ţҜĄ˙ýϜk„k@ŠJP$Ô +j…!…A…DHœ!Xœ!˙¨ÔHÔPÔ`„ŁÔ(„¤DÔ( œa˙ţSœŒA0œa ˙ţOœŠ„Ą4ŹĽœlÔ(4œŠ˙ţŻœĄ˙ýŹœk„k@ŠJP,Ô +j…!…A…DHœ!Xœ!˙PÔHÔPÔ`Ôp ԀԐԠ„ŁÔ(\„ÄÔ0Tœa\˙ţ-œœœaT˙ţ*œˆœŔ„áœä§0 œ€œ†œ`ä$:„ „ˆä¤0 œ œfä#( „aŒB„ ä@ œ`œfä#( œ`ä œŕœćä'(„  „aŒä@ œ`œfä#( œ`ä œ€œ†ä$( !„ `¨cP€Ş”P4!ä@ œ`œfä#( +ä@„ „aŒä$ œ œŚœaœ€Ş”P4Ô(  œ`œ`ä#( „ „aŒœ ä$ œaˆœ €Ş”P4ţÔ(Œ…aŹ…Ą˜…A¨Ŕ…”œalœdÔˆœÎÔpDÔX(Ôh$ëœę-œŹÔhpÔXhÔ8PÔHHÔ(@Ô0lÔpdœŕÔx ˙ˇÔ8<…a(„Ť„˝ ÔHdœad…!@œlœĺÔplœŚÔXpÔ(8Ô84œ ÔHh˙ˇÔ(L„Ť…Ą$ ÔHl…!DœadÔhhœĺ…ĄPœlžÔHd˙śóÔhp„Ť„Ë…Ą@œĺÔ8,œad„áP œlÔHdÔHlœŚÔhhÔ(0˙śăÔ8p†!…Ą0„káh„‹ œŁ`%€äˆˆD „a,ŕđŕçhäP8ä08„8äQ@ œh`€„8œh„Ą4žœĹâE€äF ždœ€ŕĚ ä†`œdœ`œŤŕĽe†œ‡œ œÄáPäˆ0œ`œ`ŕĺHŕçáL@äŠ`œ`œ`„Á „Ą¤á+8˛„Œá)œŕ„aÓiढ़Šä& Ô(|œŕœĽ`˙¨c˙˙€Ş”P4žAtÔ8xäK Ô(|ŕC%¤Œä$x )¸¸nAŕĸ­Aŕ€¨çĽŕm8ŁĆ¸Ë¸ŹAŕ†(¸kAcäKP˙˙을ÔH|`˙¨c˙˙äK…á|ž žš _¸ëá(8šLď˙˙`€¨ciŕ­äˆŠ¨Œ„¸Î_¸­ŕf(¸ŽŁäK€˙˙ěÄÔx|œ`œ œ€˙œŕä8 ŕĚ €ä@ œŔŕŒ0ŕdä8 ŕnhä8 +œŕœˆŕĚ ä†`œŕœŕœŤŕĽ8e†œŕœrÔ`„ÔX€Ô8t˙ü6„kԝt…!…A……Á ††A†DHœ!°œ!˙ˆÔHÔPÔ`Ôp ԀԐԠ„ŁÔ(8„¤Ô(0œa8˙üľœdœa0˙ü˛œPœ „ÁdäŚ( œ`œe ä#H „áP€Ş”P<ÁœĄdä§( œ`œeä#H „ah€Ş”P<śœĄP„Tŕc œ€ä Ôhä(H ä@ œ`œeä#H +ä „d„aP€Ş”P<ä œĄd ¨ĽP™ œ`œeä#H œŔœĄd€Ş”P<Ô0tÔ0pŒÔ0lä@ œ`œeä#H œĄd€Ş”P<Ô d…At†`„al„X…!p…á\ŕc äOHÔlä/HäPP œaHœ@œ ÔHHÔPLÔ@DÔx˙ľŹÔ(@„k„ál„‹…áœŁœç˙˙%Ô8lD`Šk žAd€Ş”P<€ŔäOHœ`ä/HŕmXäPPœ`ŕmXŕŽ`ŕʀŁœŕäFPÄœŕŕŠxŕĽ8%Fœ`œ€š ¸ěAÔH@ÔPDÔh ÔxÔHÔ LŕČ8œa@¸ŤAœHÔ0(˙ľtÔ(,„k„Ą,„Á(…Ą „‹ž …áeœă†'ŕŹ(äˆ˙˙̝Dœ`œ œ€˙€ä` ŕÎ `€äX œŔŕŽ0ŕdä` ŕj8äˆ +œ˛œ‹ŕÎ ä†pœŕœŕœ­ŕĽ8ĽĆœ˛ÔptÔhp˙űIœe„ŤÔ(t…!…A……Á ††A†DHœ!xœ!˙üÔH#œ …iäŤ( œŕœĺœŔä'0 +„ää§( œ`œeä#0 ‰`ä @ œ`œeä#0 ä@ œ`œeä#0 „d…ixácX„Šä@ œ`œ`œŔä#0 ä@„iä#0 j`h`˙˙ œ`œ`ä#0 „dä#0 ^`˙˙\`ä@ œ`œ`ä#0 ä@ œ`œ`ä#0N`œŔä0 œ`œ`ŕä#x ä0„dä#x A`˙˙?` œ`œ`ä#x „iä#x 5`3`˙˙„d…Šä- ä-x +`)`˙˙„Š„dĺE˙˙řĺ… ä-x `˙˙`… „é „¤ äG(˙˙ě„Ää'(äH0˙˙ç…„ä „Š äG(„Éä'( +`äH0 œ`ä- `˙˙`…!DHœ!œ!˙źÔHÔPÔ`„ŁÔ(„¤0Ô( œa˙ű*œŒAœa ˙ű&œŠœl˙˙NœŠ…!…A…DHœ!Dœ!˙źÔHÔPÔ`„ŁÔ(„¤0Ô( œa˙űœŒAœa ˙űœŠœ€„a0äŁ œ œ¤œŔä%0 +`„aäŁ œ œ¤ä%0`œl˙˙$œŠ…!…A…DHœ!Dœ!˙źÔHÔPÔ`„ŁÔ(„¤0Ô( œa˙ú蜌Aœa ˙ú䜊œ€„a0äŁ œ œ¤œŔä%0 +`„aäŁ œ œ¤ä%0`œl˙ţúœŠ…!…A…DHœ!Dœ!˙źÔHÔPÔ`„ŁÔ(„¤0Ô( œa˙úžœŒAœa ˙úşœŠœ€„a0äŁ œ œ¤œŔä%0 +`˙˙„aäŁ œ œ¤ä%0`˙˙œl˙ţМŠ…!…A…DHœ!Dœ!˙źÔHÔPÔ`„ŁÔ(„¤0Ô( œa˙ú”œŒAœa ˙úœŠœ€„a0äŁ œ œ¤œŔä%0 +`˙˙„aäŁ œ œ¤ä%0`˙˙œl˙ţŚœŠ…!…A…DHœ!Dœ!˙źÔHÔPÔ`„ŁÔ(„¤0Ô( œa˙újœŒAœa ˙úfœŠœ€„a0äŁ œ œ¤œŔä%0 +`„aäŁ œ œ¤ä%0`œl˙ţ|œŠ…!…A…DHœ!Dœ!˙źÔHÔPÔ`„ŁÔ(„¤0Ô( œa˙ú@œŒAœa ˙ú<œŠœ€„a0äŁ œ œ¤œŔä%0 +`„aäŁ œ œ¤ä%0`œl˙ţRœŠ…!…A…DHœ!DÁŕœ!˙äÔHÔPœĂœ€¸f_Ô œ€ä& Ô œ @ŠJPD7Ô(œ <ä# Ô(`€¨cä ŕ`0`¨c2„Ł€¨„PD+Ô(œŁ¸ĂŸÔ(Ô0œ†¸ŚŸÔ Ô( ˙¨Ľ˙˙„a@ŠJPDäC(„ ˙˙eœÄ…!œŁœ†œe¸Ä_¸Łŕć(šá)hœ§œeäCX˙˙öœČÔHÔ(Ô@˙ů?œa„kÔ +`ŠkPD…!…ADHœ!œ!˙ĐÔH„ƒÔ œa ˙ůʜœ`„ä œŔœŔœ ä&(-`œŔä¤0 œ`œfä#(%`œ`ä œŕœćä'( „a `˙Šk˙˙ä#( k„$ĺ„(`œ`ĺD „a `˙Šk˙˙ä#( k„ä#( dá`X…!DHœ!0œ!˙ÜÔHÔP„ƒÔ Aœa˙ů‰œŠ„aœ€ä# œjœ€˙řçÔ „k@ŠJPLÔ +j…!…ADHœ!$œ!˙äÔHÔP„ć…ÔÔ Ô(Ô@Ô8˙řҜa„k@ŠJPTÔ +j…!…ADHœ!œ!˙ÔÔHÔPÔ`Ôp „ƒÔ œ˙ůYœa„Á(„Ą$œ`?˙Š˙˙FšĹšŚ^ŕŠ@áŽhŕdœ ä(œĚ¨Ć„a„˙˛Ľ„Ą …!…A……Á DHœ!,œ!˙řÔHÔP„ădœ€ä+ …`¨cP\Ô8Ô@œ` œ§ŕcXĺŁ œČ ŕ`áEHŕ…á%XHŕfXHáC `¨cP\ÔHÔP`ŠkP\…!…ADHœ!„Ł„Ăœeœ†ŕ  ŕ€œ`ä( œ„˙˙`ŠkPdÔ Ô (DH1.1.1cd[dirname]°sleepseconds (chgrpgid filename ...)¤2chmodmode filename ...%ˆ2chownuid filename ...'42cmpfilename1 filename27cpsrcname ... destname22df[file-system]recho[args] ...Œ2execfilename [args]<2exit@4freeshelp<2hexdump[-s] filenamekěhostname[hostname]t kill[-sig] pid ...DŒ2ln[-s] srcname ... destname/t2ls[-lidC] filename ...N 2mkdirdirname ...€2mknodfilename type major minor Ämorefilename ...;”2mount[-t type] devname dirname3°2mvsrcname ... destname-2printenv[name]@´pwd|pidđquit@4rmfilename ...$Đ2rmdirdirname ...#ü2setenvname value@hsourcefilename°sync$ touchfilename ...+đ2umask[mask]Bpumountfilename5čps`t2catfilename ...Lˆ2datedate [MMDDhhmm[YYYY]]uÄpqrstuvwxyzabcde + +  "˙˙˙˙˙˙˙˙˙˙˙˙  AAAAAAAAAA BBBBBB DDDDDD ˙˙˙˙˙˙˙˙˙˙˙˙SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecOü*‚dCd[€‚€”€Ŕ€đ€%€i€­€ˀí€ €(€:€M€e€’€­€ɀę€ö€=€Š€7€vG€ŞT€˙b€o€X~€Y‹€Z™€[Ś€\´€^€_Ѐhŕ€ €‹3€5K$ a$ 6tw$ G(_ +d@4d@=€d€v€˘€Ň€€K€€­€πí€ +€€/€G€t€€Ť€̀؀ 怡ô€Ł€¤€Ľ€Ź)€­7€ŽE€ČU€Éi€Ęy€Ëˆ€؀Aí€Tl€{Ś$ľ@ł@´ż$%˜Î@$Ú@$â$˜ó@~ ů@ +˙@€$ ˜  +  + ($ü5 ?  I$Ů lV Ř` Řj$D |w C C‹$]`ž@\¤@\Ş$Ź”ˇ ŤÁ Ť Ë$žě× ˝á ˝ ë$ĎŒ÷ Î Î  $ŕ, ß! ß +$ńĚ7 đA đ K$lW a  k$ w   ‹$%°›@$Ľ$Kpł J˝$‰pĘ ˆÔ$šŔâ@–ě@—ô@˜ű@™$ąě °)zdTCdT[€‚€”€Ŕ€đ€%€i€­€ˀí€ €(€:€M€e€’€­€ɀę€ö€=€Š€7€vG€ŞT€˙b€o€X~€Y‹€Z™€[Ś€\´€^€_Ѐhŕ€ €‹3€5K kh l)LdTCdT[€‚€”€Ŕ€đ€%€i€­€ˀí€ €(€:€M€e€’€­€ɀę€ö€=€Š€7€vG€ŞT€˙b€o€X~€Y‹€Z™€[Ś€\´€^€_Ѐhŕ€ €‹3$%T@@$F@$_- +d4d=€d€v€˘€Ň€€K€€­€πí€ +€€/€G€t€€Ť€̀؀Ÿ怠ô€˘€Ł€¤€Ť)€Ź7€­E€ŢU€ßi€ŕy€áˆ€؀@í€Sl€z´$´Á@łÍ$$€Ü@#č@# +đ$€@}@~ +@$ + Œ"  ,  6$! C M  W$Ř!˜d ×\n ×Tx$C'x… B8 B0™$\+,Ź@[ ˛@[¸$Ť-°Ĺ ŞĎ Ş Ů$˝.ĺ źď ź ů$Î.¸ Í Í $ß/`% Ţ/ Ţ 9$đ0E ďO ď Y$0°e ˙o ˙ y$1X…   ™$$2Š@#ł$J3DÁ I Ë$ˆ4@Ř ‡â$Ă4¨đ@Âú@Â@ @Â$Ń4ü# Đ)Md5ŒCd5Œ[€‚€”€Ŕ€đ€%€i€­€ˀí€ €(€:€M€e€’€­€ɀę€ö€=€Š€7€vG€ŞT€˙b€o€X~€Y‹€Z™€[Ś€\´€^€_Ѐhŕ€ €‹3$ś5ŒA@ľG@ľ (Fd6$Cd6$[€‚€”€Ŕ€đ€%€i€­€ˀí€ €(€:€M€e€’€­€ɀę€ö€=€Š€7€vG€ŞT€˙b€o€X~€Y‹€Z™€[Ś€\´€^€_Ѐhŕ€ €‹3$¤6$@@Ł../../gcc/gcc/libgcc2.c/projects/gcc/simons/or1k/b-or32-elf/gcc/../../gcc/gcc/libgcc2.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19reg_class:T20=eNO_REGS:0,GENERAL_REGS:1,ALL_REGS:2,LIM_REG_CLASSES:3,;machine_mode:T21=eVOIDmode:0,PQImode:1,QImode:2,PHImode:3,HImode:4,PSImode:5,SImode:6,PDImode:7,DImode:8,TImode:9,OImode:10,QFmode:11,HFmode:12,TQFmode:13,SFmode:14,DFmode:15,XFmode:16,TFmode:17,QCmode:18,HCmode:19,SCmode:20,DCmode:21,XCmode:22,TCmode:23,CQImode:24,CHImode:25,CSImode:26,CDImode:27,CTImode:28,COImode:29,BLKmode:30,CCmode:31,MAX_MACHINE_MODE:32,;mode_class:T22=eMODE_RANDOM:0,MODE_INT:1,MODE_FLOAT:2,MODE_PARTIAL_INT:3,MODE_CC:4,MODE_COMPLEX_INT:5,MODE_COMPLEX_FLOAT:6,MAX_MODE_CLASS:7,;ptrdiff_t:t23=3size_t:t24=5wchar_t:t25=1wint_t:t26=4UQItype:t27=11SItype:t28=1USItype:t29=4DItype:t30=6UDItype:t31=7SFtype:t32=12DFtype:t33=13word_type:t34=1DIstruct:T35=s8high:28,0,32;low:28,32,32;;DIunion:t36=37=u8s:35,0,64;ll:30,0,64;;func_ptr:t38=39=*40=f19__do_global_dtors:F19__do_global_ctors:F19__main:F19fp-bit.c/projects/gcc/simons/or1k/b-or32-elf/gcc/fp-bit.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19SFtype:t20=12DFtype:t21=13HItype:t22=8SItype:t23=1DItype:t24=6UHItype:t25=9USItype:t26=4UDItype:t27=7fractype:t28=26halffractype:t29=25FLO_type:t30=20intfrac:t31=23 :T32=eCLASS_SNAN:0,CLASS_QNAN:1,CLASS_ZERO:2,CLASS_NUMBER:3,CLASS_INFINITY:4,;fp_class_type:t33=32fp_number_type:t34=35=s16class:33,0,32;sign:4,32,32;normal_exp:1,64,32;fraction:36=u4ll:28,0,32;l:37=ar1;0;1;29,0,32;;,96,32;;FLO_union_type:t38=39=u4value:30,0,32;value_raw:28,0,32;;__pack_f:F30src:P40=*34__unpack_f:F19src:P41=*38dst:P40_fpadd_parts:f40a:P40b:P40tmp:P40__addsf3:F30arg_a:p30arg_b:p30__subsf3:F30arg_a:p30arg_b:p30__mulsf3:F30arg_a:p30arg_b:p30__divsf3:F30arg_a:p30arg_b:p30__fpcmp_parts_f:F1a:P40b:P40__cmpsf2:F23arg_a:p30arg_b:p30__eqsf2:F23arg_a:p30arg_b:p30__nesf2:F23arg_a:p30arg_b:p30__gtsf2:F23arg_a:p30arg_b:p30__gesf2:F23arg_a:p30arg_b:p30__ltsf2:F23arg_a:p30arg_b:p30__lesf2:F23arg_a:p30arg_b:p30__floatsisf:F30arg_a:P23__fixsfsi:F23arg_a:p30__negsf2:F30arg_a:p30__make_fp:F20class:P33sign:P4exp:P1frac:P26__extendsfdf2:F21arg_a:p20../../gcc/gcc/libgcc2.c/projects/gcc/simons/or1k/b-or32-elf/gcc/../../gcc/gcc/libgcc2.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19reg_class:T20=eNO_REGS:0,GENERAL_REGS:1,ALL_REGS:2,LIM_REG_CLASSES:3,;machine_mode:T21=eVOIDmode:0,PQImode:1,QImode:2,PHImode:3,HImode:4,PSImode:5,SImode:6,PDImode:7,DImode:8,TImode:9,OImode:10,QFmode:11,HFmode:12,TQFmode:13,SFmode:14,DFmode:15,XFmode:16,TFmode:17,QCmode:18,HCmode:19,SCmode:20,DCmode:21,XCmode:22,TCmode:23,CQImode:24,CHImode:25,CSImode:26,CDImode:27,CTImode:28,COImode:29,BLKmode:30,CCmode:31,MAX_MACHINE_MODE:32,;mode_class:T22=eMODE_RANDOM:0,MODE_INT:1,MODE_FLOAT:2,MODE_PARTIAL_INT:3,MODE_CC:4,MODE_COMPLEX_INT:5,MODE_COMPLEX_FLOAT:6,MAX_MODE_CLASS:7,;ptrdiff_t:t23=3size_t:t24=5wchar_t:t25=1wint_t:t26=4UQItype:t27=11SItype:t28=1USItype:t29=4DItype:t30=6UDItype:t31=7SFtype:t32=12DFtype:t33=13word_type:t34=1DIstruct:T35=s8high:28,0,32;low:28,32,32;;DIunion:t36=37=u8s:35,0,64;ll:30,0,64;;func_ptr:t38=39=*40=f19__CTOR_LIST__:G41=ar1;0;1;38__DTOR_LIST__:G41../../gcc/gcc/libgcc2.c/projects/gcc/simons/or1k/b-or32-elf/gcc/../../gcc/gcc/libgcc2.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19reg_class:T20=eNO_REGS:0,GENERAL_REGS:1,ALL_REGS:2,LIM_REG_CLASSES:3,;machine_mode:T21=eVOIDmode:0,PQImode:1,QImode:2,PHImode:3,HImode:4,PSImode:5,SImode:6,PDImode:7,DImode:8,TImode:9,OImode:10,QFmode:11,HFmode:12,TQFmode:13,SFmode:14,DFmode:15,XFmode:16,TFmode:17,QCmode:18,HCmode:19,SCmode:20,DCmode:21,XCmode:22,TCmode:23,CQImode:24,CHImode:25,CSImode:26,CDImode:27,CTImode:28,COImode:29,BLKmode:30,CCmode:31,MAX_MACHINE_MODE:32,;mode_class:T22=eMODE_RANDOM:0,MODE_INT:1,MODE_FLOAT:2,MODE_PARTIAL_INT:3,MODE_CC:4,MODE_COMPLEX_INT:5,MODE_COMPLEX_FLOAT:6,MAX_MODE_CLASS:7,;ptrdiff_t:t23=3size_t:t24=5wchar_t:t25=1wint_t:t26=4UQItype:t27=11SItype:t28=1USItype:t29=4DItype:t30=6UDItype:t31=7SFtype:t32=12DFtype:t33=13word_type:t34=1DIstruct:T35=s8high:28,0,32;low:28,32,32;;DIunion:t36=37=u8s:35,0,64;ll:30,0,64;;__muldi3:F30u:P30v:P30dp-bit.c/projects/gcc/simons/or1k/b-or32-elf/gcc/dp-bit.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19SFtype:t20=12DFtype:t21=13HItype:t22=8SItype:t23=1DItype:t24=6UHItype:t25=9USItype:t26=4UDItype:t27=7fractype:t28=27halffractype:t29=26FLO_type:t30=21intfrac:t31=24 :T32=eCLASS_SNAN:0,CLASS_QNAN:1,CLASS_ZERO:2,CLASS_NUMBER:3,CLASS_INFINITY:4,;fp_class_type:t33=32fp_number_type:t34=35=s20class:33,0,32;sign:4,32,32;normal_exp:1,64,32;fraction:36=u8ll:28,0,64;l:37=ar1;0;1;29,0,64;;,96,64;;FLO_union_type:t38=39=u8value:30,0,64;value_raw:28,0,64;words:37,0,64;;__pack_d:F30src:P40=*34__unpack_d:F19src:P41=*38dst:P40_fpadd_parts:f40a:P40b:P40tmp:P40__adddf3:F30arg_a:p30arg_b:p30__subdf3:F30arg_a:p30arg_b:p30__muldf3:F30arg_a:p30arg_b:p30__divdf3:F30arg_a:p30arg_b:p30__fpcmp_parts_d:F1a:P40b:P40__cmpdf2:F23arg_a:p30arg_b:p30__eqdf2:F23arg_a:p30arg_b:p30__nedf2:F23arg_a:p30arg_b:p30__gtdf2:F23arg_a:p30arg_b:p30__gedf2:F23arg_a:p30arg_b:p30__ltdf2:F23arg_a:p30arg_b:p30__ledf2:F23arg_a:p30arg_b:p30__floatsidf:F30arg_a:P23__fixdfsi:F23arg_a:p30__negdf2:F30arg_a:p30__make_dp:F21class:P33sign:P4exp:P1frac:P27__truncdfsf2:F20arg_a:p21../../gcc/gcc/libgcc2.c/projects/gcc/simons/or1k/b-or32-elf/gcc/../../gcc/gcc/libgcc2.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19reg_class:T20=eNO_REGS:0,GENERAL_REGS:1,ALL_REGS:2,LIM_REG_CLASSES:3,;machine_mode:T21=eVOIDmode:0,PQImode:1,QImode:2,PHImode:3,HImode:4,PSImode:5,SImode:6,PDImode:7,DImode:8,TImode:9,OImode:10,QFmode:11,HFmode:12,TQFmode:13,SFmode:14,DFmode:15,XFmode:16,TFmode:17,QCmode:18,HCmode:19,SCmode:20,DCmode:21,XCmode:22,TCmode:23,CQImode:24,CHImode:25,CSImode:26,CDImode:27,CTImode:28,COImode:29,BLKmode:30,CCmode:31,MAX_MACHINE_MODE:32,;mode_class:T22=eMODE_RANDOM:0,MODE_INT:1,MODE_FLOAT:2,MODE_PARTIAL_INT:3,MODE_CC:4,MODE_COMPLEX_INT:5,MODE_COMPLEX_FLOAT:6,MAX_MODE_CLASS:7,;ptrdiff_t:t23=3size_t:t24=5wchar_t:t25=1wint_t:t26=4UQItype:t27=11SItype:t28=1USItype:t29=4DItype:t30=6UDItype:t31=7SFtype:t32=12DFtype:t33=13word_type:t34=1DIstruct:T35=s8high:28,0,32;low:28,32,32;;DIunion:t36=37=u8s:35,0,64;ll:30,0,64;;__lshrdi3:F30u:P30b:P34../../gcc/gcc/libgcc2.c/projects/gcc/simons/or1k/b-or32-elf/gcc/../../gcc/gcc/libgcc2.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19reg_class:T20=eNO_REGS:0,GENERAL_REGS:1,ALL_REGS:2,LIM_REG_CLASSES:3,;machine_mode:T21=eVOIDmode:0,PQImode:1,QImode:2,PHImode:3,HImode:4,PSImode:5,SImode:6,PDImode:7,DImode:8,TImode:9,OImode:10,QFmode:11,HFmode:12,TQFmode:13,SFmode:14,DFmode:15,XFmode:16,TFmode:17,QCmode:18,HCmode:19,SCmode:20,DCmode:21,XCmode:22,TCmode:23,CQImode:24,CHImode:25,CSImode:26,CDImode:27,CTImode:28,COImode:29,BLKmode:30,CCmode:31,MAX_MACHINE_MODE:32,;mode_class:T22=eMODE_RANDOM:0,MODE_INT:1,MODE_FLOAT:2,MODE_PARTIAL_INT:3,MODE_CC:4,MODE_COMPLEX_INT:5,MODE_COMPLEX_FLOAT:6,MAX_MODE_CLASS:7,;ptrdiff_t:t23=3size_t:t24=5wchar_t:t25=1wint_t:t26=4UQItype:t27=11SItype:t28=1USItype:t29=4DItype:t30=6UDItype:t31=7SFtype:t32=12DFtype:t33=13word_type:t34=1DIstruct:T35=s8high:28,0,32;low:28,32,32;;DIunion:t36=37=u8s:35,0,64;ll:30,0,64;;__negdi2:F30u:P30.symtab.strtab.shstrtab.text.rel.text.data.rel.data.bss.stab.rel.stab.stabstr46l! oČL ++6l6 1 ťč8 +;PlP @PlP Ř F ˝ ŕ +PcDcx.(‘ Y“ÜĂ . VěÜ˙ń6lPl)6l2>`;?CG%KGOLSŕV\Y|\8f°q´t´wÄzź}ř(…¨4“@–Pšgži˘vŚ‹Ť?”¸üźTŔhÄhČ?lŐ°ŮŔݐáđĺ¤ńpőüůôýDH´ ź +Đ ,L`!ˆ%h.ŕ2ŕ60:d?”CĚGŕK(O0S`W ř[¨_°cčn rüv $z `~ ‚ + “ ŕ— lŁ ŕ§ěŻ>d˝ + ŕĆ +\Ę +Î +˜Ň ŘÖ +čÚ $Ţ ˆâ 8ć Čę Đî Đň ,ö ,ú H˙ V  Ŕ H Ŕ đ ř +0 +|$ +˜( +Ŕ,$04T8¤<°@ĚDHLXQwV[˜`ĽeŤjÁoŮtĺy,}T°… ‰ŕ‘0•<™X¨Ą”ĽŠ<­pąĐľş´ż Ä É ÎœÓ¤Ř ÝäâäçôěěńDöűpČ4 +ä<4@@#P(H-€2Ŕ7Ě<0A`F”KœPŘUÄZŘ_?hk?dw|H”†€‹ €•ÜšěŸ,¤œŠŽ łŕ¸L˝DÂ Ç Ě4Ń Ö Űŕĺ(ęAďXűÜ P +x˙ńŒ@˜PlŒŒSŹYŘV4q“H;X?vtŕwüC z|GŒK‘ôD}pźD¸pĘÝÄŐ Ů Ŕ ń xá xO ˆ– Šš Œž ˘ Żů!(ý!!lő#ě +! !¨!ŕ!č"$"l"!"¨6"ŕ2"č.#$?#lW#G#ěK$S$@O$_$|C$[$Ŕr$čv%z%d~%Pn%dŚ%tŁ%¸Ć%đÂ%řâ&,Ň&h“'ę&€Ę&ŹÎ'Ö&ě:'˝'Ţ(Tć'”ö'Ěň'Ôî( (LÚ)p(Ź( (Ä(đ)p)X )hú)€˙),*Ä(*8*<4*D0*€<*ź$+ŕD+H+@+4y+`‰+ŕ}+ȁ+؍, •,L‘,č,ŕĄ,Ô…,čL,řĽ-°™/$Š-´ą-ŕ­/$ľ.0ż.dÄ.ş.ŔÉ.đÎ/Q/4V/7[/GŘ0ˆÝ0Ó2ç08â0€ě1ń1ű1@ö211Ä1ü2´ +3L2¸2ä#3L(30`3\e3bj3|o3Ą23ěA4$Z4,75XP4PK4|U5P‹4œ†5$4Ôw4ř-5ŘF5H5•5ŘŠ6<Ÿ6<t6L<6kš6†Â6›Ě6žĺ6áŽ7d¤;l¸7Źł7đ˝8 Ç8tÖ8ÔŃ9Ű9ŕ;8 +98ű;<9€9Č: :< :l%:Ź*:ź/:ř4; ę;|9;~>;ˆC;ŹH;ŘM@$R<<W@$\§>8Ź>¨ą>Œś>¨ť?Ŕ?,Ĺ?$Ę?PĎ?ĐÔ?ŒŮ?´Ţ?äă?´č?Đí?äň@÷@Xü@¤AL@đ AADBHAdA„$BH)B4.BX3B^8Bč=CäBCGC8LC@QCtVC°[CÔ`CôeCřjCüoDtDyD +~DƒDˆDD’D —D%œD*ĄD/ŚD4ŤD9°D>ľDEşDJżDOÄDTÉDYÎD^ÓDcŘDgÝDkâD{çK0ěEńKöEPűEˆEŔEř +F0FhF FŘG#GH(G€-G¸2Gđ7H(<H`AH˜FHĐKIPI@UIxZI°_IčdJ iJXnJ`sJ˜xJ }JÜ‚Lt‡KŒK‘K–K›K KĽKŞKŻK´KšKžKĂKČKÍKŇK×KÜKáKćKëKđKőKúK˙KK4 K`LtK€K¸KŔ"Kü'L8,Ll1˙ńL„@˜PlL„L„;L„SL YLĚVNqLü“NwM`tMdM¸}MŔzMčN?˙ńN @˜PlN N D@˜M@œ;N ?N9CNMGNxKN{ON}–NƒšN…T@ĐSOD^@ĚVO4“X d@ÔYQpqO¸tOŘŔQ4ÄP(¸Q źQ PäPř}PĐzQhwQpŐQČÝRŮR4áR8őRdńWÜůRĚýS +SDS`nXT SœSĐSÔTV|T<.T€!TŔ2TŔ6U¸WU\?VPGVźOVŕCWÄSWHKW°_Wˆ[WnX v@¤‚@°Œ@´›@¸Š@Äľ@ČžX ˘X%ŚX*:X-˝X3úX=˙XBLXJzXÜv\“Y¸~ZâZˆŁZÔĆ[\Â[¤Ň[Čę\ŘÎ\ŘĘ]ÔÖ]|Ú]î]0Ţ]Xć]Dň]Œö]Ě ]čr]čĆ˙ń]ř@ŘPl]ř]ř;]ř?]ůC]ýG^q^€w_<t^Đ}_<z_<Y_<K_LO_w–_„š_Ąž_ˇ˘_˝Ś_Ë:_á˝_ńú_ó˙_ř[```e`(j`?L`hQ`lV`p`đk”źaH¸aÔŔaŘŐbÄkˆÝbńb@Ůb˜áb„ůk€őb„ýbücT +hX g€g´hLhhDhD!i .i¤2iÄ6j8Wj?klGkxË˙ńk¨BxPlk¨k¨;k¨?kŤCk­GkžKkĂOkÇ–kËškÓžkۢkŕSl VlÄYm wm0qq tmH}mhznm mČźmÔ¸nTŔnXŐntÄpÝn¸áoŮońo<őoŒýoxo„ůo˜ +oä pŔp$p@p¤phpt!pä2qt6q.q˜“q Ő˙ńq°BxPlq°q°;q°?q˛CqÖGqčKqůOr qr\wrltrĐYsPÚ˙ńs`BxPls`s`;s`?snCspSsü“ttVtwt$YthqtTá˙ńt„BxPlt„t„;t„?tœSuHVuYu@qux“uxě˙ńuŒBxPluŒuŒóuŒ;u?uŹCuŔSwĚYvŹVvä“xqwwwttwŔ˙ńxBxPlxx Bx;xSxxVx YxČqxđwyty@zyh}yy¸yŕźz¸z0ŔzXÄz€Őz¨ÝzôŮzěázđń{@ő{8ů{<ý{Œ{„ +{ˆ“{œB„|L|t |„|Ř}|ü?}C}5.}Ä!x2}ř6~PW~˜?~ôGLCPOˆK€xSÔ_Ünř[€pr€HzTv€Ź~€đ“HBžGˆŘâčŁ‚pƂ K‚€O‚¸–‚şš‚˝ž‚آ‚đęƒX΃`ʃđ҈ ބ ڄ€ć„Pք¨î…,ň…,ö…t …´††††Hˆ,†° †¸$†ě,‡4(‡´0‡Ü4ˆt8ˆđD‰$@‰\H‹ô™ŠĐɉ°y‰Řą‹@‰đŠ‹‰‹Ě}‰řŠ,…Š ‘ŠX•Šx<ŒŠ˜ĄŠĐĽ‹­‹@ľ‹„ż‹|ċŔ΋ěCž+D ŚŒ ،l猌ݎřâŒČӏ@ěŒôűDöLńŽ”„Ž€˜ÔÜ +đ#ŽxŽŒ(Ž˜2ŽĐ-Žđ:XZ”PŔAU7¨K|‹čw‘$F‘\8Ft†‘€‘¤|‘܁‘ÜCEl˝‘ěŸ’T••xŠ’œ¤’ ¸’ŔŽ•\֓t˝’đ”ÜǓ,ł•TѓˆۓŘŕ” +”Ôű” ••ˆFxPlN˙ń•ŒFxPl•Œ•ŒY•˜V•ÄW˙ń•ĐFxPl•Đ•ĐS–`˙ń–FxPl––i˙ń–@FxPl–@–@V–´q–ŒqFôt—ô}Jč„Jě}—äi˙ń˜JđPl˜˜S˜Ü™Řt˜Ô}˜°ź™„ő™´ٙ™  +™HędŒ˙ńšJđPlššYšD•˙ńštJđPlštštSšź}›wšŘq›ž˙ń›<JđPl›<›<§JđłJôS›ŒY›Ôwœlń›ôtœXœHźœ4á@՝ݜÄٝ`˙ńhJřPlhhi˙ńˆJřPlˆˆSěYžˆqž tžT¸žDžt}žhSž|zž\VžxĞÔőžźC `ážĐ_ŸůŸŸ$ +Ÿ`KŸHŸč <[Ÿ¨.ŸÄW ? ,˝˙ń ˆJřPl ˆ ˆ; ˆ? ‹C ”S ěV üĆ˙ńĄLJřPlĄLĄLVĄˆi˙ńĄ JřPlĄ Ą SĄŘ +ŁpY˘q˘Čz˘Lt˘ ˘P˘Ź¸ŁdŔ˘üŐ˘řŮŁᣠőŁTůŁLi˙ńŁ„JřPlŁ„Ł„SŁÜzŁČV¤(Ŕ¤,w¤ t¤¸¤LĎ˙ń¤tJřPl¤t¤tN˙ń¤„JüPl¤„¤„V¤¸w¤¤N˙ń¤ÄJüPl¤Ä¤ÄS¤Čt¤čN˙ń¤đJüPl¤đ¤đN˙ńĽ4JüPlĽ4Ľ4Ű˙ńâ˙ńâ˙ńŰ˙ńĽtJüPlë˙ńĽJüPlĽĽ;Ľ?Ľ˜CĽ›GĽžSĽđt§PVŚHYŚ€qŚŘw§(ô˙ńâ˙ńâ˙ńô˙ń§tJüPlü˙ń§JüPl§§ ˙ń§´JüPl§´§´ +K;§´?§ĘC§ÜS¨\!Š´Ş¨¨Š¨¸}ŠŒ2¨ĚŐŠdÝŠ\ńŠL.Š8ŔŠ|ŠČ ˙ńâ˙ńâ˙ń ˙ńŞ(KTPl ˙ńâ˙ńâ˙ń ˙ńŞDKTPl '˙ńâ˙ńâ˙ń '˙ńŞ`KTPl 0˙ńâ˙ńâ˙ń 0˙ńŞ|KTPl 9˙ńޘKTPlޘޘ A˙ńŞźKTPlŞźŞź;Şź?Şž JKT TKXSŤ YŤh _KdVŤh cK\ mK` wŤ|CŤx}ŹxtŹŹ|zŹ@ Ź” Žt¸­Ŕ­€Ä­h.ŽpŽD­¨Žl­¸á­Č!­ŕÝŽDN˙ńŽ¨K¤PlŽ¨Ž¨SŻ YŻ( ˙ńâ˙ńâ˙ń ˙ńŻDK¤Pl`˙ńŻ`K¤PlŻ`Ż` •K¤i˙ńŻ¤KĚPlŻ¤Ż¤¸Żř°ÄY°4t°pw°„Ŕ°¤z°¸ź°źi˙ń°ŕKĚPl°ŕ°ŕVąˆYąwąP}ąŒą|qąx Ÿ˙ńâ˙ńâ˙ń Ÿ˙ńąŹKĚPl ¨˙ńâ˙ńâ˙ń ¨˙ńąČKĚPl °˙ńâ˙ńâ˙ń °˙ńąäKĚPl ¸˙ń˛KĚPl˛˛Ŕ˛0Ő˛(w˛`IJlt˛pݲﲐ¸˛Ô ż˙ń˛ŕKĚPl˛ŕ˛ŕ Ç˙ńâ˙ńâ˙ń Ç˙ńł|KĚPl Ď˙ńâ˙ńâ˙ń Ď˙ńł˜KĚPl ×˙ńâ˙ńâ˙ń ×˙ńł´KĚPl Ţ˙ńâ˙ńâ˙ń Ţ˙ńłĐKĚPl ç˙ńâ˙ńâ˙ń ç˙ńłěKĚPl ď˙ń´KĚPl´´;´S´X}´ÔV´´€Y´°w´˜ ú˙ńâ˙ńâ˙ń ú˙ń´đKĚPl +˙ńľ KĚPlľ ľ ;ľ Sľ\}ľŘVľ”ľ„Yľ´wľœ + +˙ńâ˙ńâ˙ń + +˙ńľôKĚPl +˙ńâ˙ńâ˙ń +˙ńśKĚPl +˙ńâ˙ńâ˙ń +˙ńś,KĚPl +#˙ńâ˙ńâ˙ń +#˙ńśHKĚPl +,˙ńâ˙ńâ˙ń +,˙ńśdKĚPl +6˙ńâ˙ńâ˙ń +6˙ńś€KĚPl +=˙ńâ˙ńâ˙ń +=˙ńśœKĚPl +E˙ńâ˙ńâ˙ń +E˙ńś¸KĚPl +N˙ńśÔKĚPlśÔśÔVˇ +V˙ńâ˙ńâ˙ń +V˙ńˇKĚPlN˙ńˇ8KĚPlˇ8ˇ8qˇTVˇ„ +N˙ńˇ”KĚPlˇ”ˇ”i˙ńˇ°KĚPlˇ°ˇ°Vˇčt¸tq¸dw¸H +]˙ń¸ˆKĚPl¸ˆ¸ˆ§KĚłKĐ;¸ˆSšYš´ńš4qš Ýşźšš|ŔşPŐşHŮşŔ +f˙ńâ˙ńâ˙ń +f˙ńşđKÔPl +n˙ńâ˙ńâ˙ń +n˙ńť KÔPli˙ńť(KÔPlť(ť(Sť€ź0YťĚqťŕtźź źź(i˙ńźXKÔPlźXźXSźźŐ˝äY˝w˝`t˝X¸˝xá˝|Ý˝¤˝Ŕń˝Ü +u˙ńâ˙ńâ˙ń +u˙ńžKÔPl +}˙ńž0KÔPlž0ž0ÝžĚwž„ńż€Őż„}žÔżáżp¸ż ŔżX +‡˙ńżœKÔPlżœżœVżÄtŔHYŔ$wŔN˙ńŔPKÔPlŔPŔPVŔ„qŔhN˙ńŔŒKÔPlŔŒŔŒSŔÔ +‘˙ńŔđKÔPlŔđŔđVÁ$tÁhYÁ`wÁl +œ˙ńÁ€KÔPlÁ€Á€ +¤Á€őÁČVĂwÂŔtÂzÂ8Â,źÂ€ŔÂp¸ÂŹŮĂ +­ĂTSÜÄđĔĂđÄ Ä.ÄT6ÄD2ĀCÄÔ +śĹ(nDŽĹ|zĹźvĹŕ~ĆŁĆüĆ8ÂĆPŇĆ@ÎƈĘƤÚƔÖĆÔ“ĆđöÇ ÇTÇt$ČȄ(Č0DČp4ČXN˙ńȔKŘPlȔȔSČĐtČüVČŕqČŘ +ż˙ńâ˙ńâ˙ń +ż˙ńÉKŘPl +Ę˙ńÉ4KŘPlÉ4É4ŔÉdŐÉ\wɔÄÉ tɤÝÉřÉÄ¸Ę +Ń˙ńĘKŘPlĘĘN˙ńĘ\LXPlĘ\Ę\tĘ|VĘ´ +Ů˙ńĘÄLXPlĘÄĘÄVË(zËwË@tË`źË”¸Ë¨ËāËČÄĚCËř?̤ĚźKĚŹ̈O̘ýĚ ą́SÍh_Ěđ!Í.Í<GÍ@WÍxi˙ń̈́LXPl̈́̈́VÍČYÍÜSÎl}ÎŹwÎ(źÎpÎ° +â˙ńâ˙ńâ˙ń +â˙ńÎĐLXPl +ë˙ńâ˙ńâ˙ń +ë˙ńÎěLXPl +ö˙ńĎLXPlĎĎYĎ|qϐ ˙ńϸLXPlϸϸ +LX ˙ńĐL„PlĐĐ •L„ ˙ńĐDLŹPlĐDĐD %ĐxSĐŕVĐü 4LŹwÓtÓ ÓzÓH}Ó\ÓÔ¸Ó°źÓČŐřŐŐ<ÝÔ<ŮÔLԈýŐ ՜ՀՄ F˙ńâ˙ńâ˙ń F˙ńÖ0L°Pl N˙ńÖLL°PlÖLÖL XL°Sր c˙ń֐LĘPl֐֐ kLĘ s˙ńÖüLäPlÖüÖüV×,Y×N˙ń×4LäPl×4×4q×D×”ź×€W˙ńלLäPlללS×ĐYŘ$VŘ `˙ńŘ,LčPlŘ,Ř, }Ř,SŘ´VŘÄ2ŘČwŘŘtŘčqŮ6Ů}Ú0Ů ÄŮ,ŐŮ<ŔٌŮŮXáŮhůٸWŮ !Ůźý٨Ů°őŮŔ Ůä.ŮôÚÚ?Ú4GÚDCÚX;Ú Sŕ¤öŰ$ÚŕěŰHrŰpvÜńۤŁŰČzÜĆŰÜŇŰěçÜHąÜPÖŢ4îŢH…ß„ňŢPŢŢ<ŢtŠßŕ<Ţä,ŢčߌތބŢ|0ŢĚ4Ţԕߤ(ŢčöŢl ިŢ°$ß´Hß@ß ‰ß$ßP}ßd‘ߏľŕ„żŕ(âŕ<ÉŕTÎŕhŘŕÄűŕÜ …˙ńâ˙ńâ˙ń …˙ńáLěPl ˙ńâ˙ńâ˙ń ˙ńá0LěPlN˙ńáLLěPláLáLVá„Yál ™˙ńáŒLěPláŒáŒ Ł˙ńá°LěPlá°á°qáŕtââ$źâl Ť˙ńâŒLěPlâŒâŒ;âŒ?â‘CâŸSăôÝăŐäŮăěńă4}ăXá〟ăĐ ľ˙ńä$LěPlä$ä$ źLězä`}ältä´ Á˙ńâ˙ńâ˙ń Á˙ńäÔLóPlN˙ńäđLóPläđäđVĺ,Yĺ tĺ0 Ę˙ńĺ8LóPlĺ8ĺ8qĺd Ó˙ńĺlLôPlĺlĺl ŕLô íMôSĺœ?ĺ VĺČWĺŔ2čYćqćTGć¸ćhŔć|ŮćČCçlćđńç őçůç,ýç4ç< +çL ç\áçhÝçœ ÷˙ńč8N Plč8č8 ŕN  NŒ N¸SčhčlVč”čŒ +ęČYčĚqé čиé4ŔéHáę`őę<ýę˜ę´ ˙ńęđNČPlęđęđ ˙ńâ˙ńâ˙ń ˙ńë$NČPl (˙ńâ˙ńâ˙ń (˙ńë@NČPl 0˙ńë\NČPlë\ë\ :ë\VěYëđ2ě0zěě”ě¨¸ě ÄěěŔěě.í\6íőíHýí@ŮíL +í¨ í¤WíŹíđíÔ ˙ńî$NČPlî$î$;î$?î+Cî<Sî¨ŰútVîĚ˝îÔHîŘ.ú$zů<}ďŒđ źďÄďŘÄđKđ<Fđ@PůĐUđhZů4ÝňL(öůň|$őđ +ň”őĐáňhńňtŮň\ýň„ż÷ őň˜ňŒóň´ňŘ!ňŕ6ó(óč?óPGôDWóčOó„SóŒőxró°zóÄnóŕvő,“óřŁô ~ô€Âô, ô„ĆôhŇôp%ú(ĘôÄÖôÔ +őPćôôňő [őt‹ú *ő˜ő´őŔ,ř 0ö<4öD<ö`Döt8öœ@÷”RöČ}÷ ąöüĄ÷P\÷tĽ÷l4÷X‘÷H•÷0÷pÉ÷źÓ÷ŕŘ÷čűř˜ěřT/řHWřœ +řp(řˆCůř´řŘ#řŕMů(|ůx•ůœŸů¤ú¸úÖú8ŃúPŕúp I˙ńúŹNĚPlúŹúŹ W˙ńűNĚPlűű bű gNĚ oNâ;ű8VűźYűüW˙ńýOPlýýVý¤qý€ w˙ńýŔOŹPlýŔýŔSýčYţqţVţ(tţˆŐ˙ €OŹÄţ¤ţčźţŕÝţđ …˙ńâ˙ńâ˙ń …˙ń˙,OÎPli˙ń˙HOÎPl˙H˙HS˙|z˙ěY˙Ŕw˙ŘOĐPl  ”OĐV`Y4ŘůܸÄzáô ™OÔTPlcD Š˙ń`OŘPl ł˙ń@OŘPl@@ @ źOŘźpÄlÝ WőźńĐ 6h !L?TC KärŁd[zlv<“\ Ć˜ęÄÎŒâčŘôćŢLö\ xÔ,4č0ü<D€@T‰<‘¨…`•˜ĄDçČŠä­řşTżÝXɈ/ źG +źR Ük +f üH \a +‰ +P„ +<8 +ˆç +Ŕ Ô +`˜ +˜ +|[ +ôś +Źť +ÜĹ +ĐĘ +čă Ů č €ň ĐV  Ô ź  ě  LB H‚ PA źF ÔŻLK äP řĽ +  +@Z +4_ +d‘ +pŒ +Œn +œx +°s +Ü +đ "D,@ ŮH Ţ„ ă´ č¨ íź ňˆ ÷Ě ü +ä + +  +@ +L +p +„ +$¨ +)œ +.ź +3ä +8đ += +B< +G( +Ll +QX +V< +[x +`` +eÜ +j +o +t| +y¸ +~  +ƒ +ˆX +@ +’ź +—ř +œŕ +Ą\ +Ś˜ +Ť€;Ź +°ä +ľ\ +ş  +ż +Äd +É$ +Î@ +Ó  +Řd +ÝÄ +âä +ç  +ěd +ńH +ö¨ +űOčRpiĆTOđPlTT TVđpćTPPlTT T +˙PqĐXčw`˙ńPPl  źP +˙Pźl”Ä Ý¨CHőÄńÜS 8?ôKđX! 6ČOŹ_źntrÂüĘź“@ÚŔĆČҔθ ĆîXćph p „¨đ Ŕ(8 4€H8y”}Č…T‘•č­„Ľ ąpżÜÄŕşÔÉüÎôÓ(Hç„ěX-\ń¨ ü l P$P,P4Ĺ!řŞ"č_""0F#0Ô"D÷"tü"`A"Ź›"ě "„$"Ä" P#(Ů'@Q"ŘG#["üV#ç#PĽ#@ń$´ö$ŕU$ě $đő%4%$đ%T +%pë%°Ü&@%äá&Í&¸#&\Ň&”-',K'Z'0ž'P< +'Ř#'ř(*ô-( +($2(D7(l +3(`<(˜ +=(¤A(ĚF(Ü +B(řK)4P)|U)œ +Q)ř +)ÄZ)ä_*č +G*Ŕd*ě ň*Ř +V+Pi+€ +`+tn+ˆs-¤x+˜ +[+Ě}+° +Î+Đ +o+ä‚, ‡,Œ,< +y,P‘,t–,h›,ˆ +ƒ,° ,źĽ,ŕ +œ-Ş,ô +Ą-4Ż-` +ş-´.h +Ý.¤š.Œž/ +ń/LĂ/4 +Ř/¸Č/ô +ě/ÜÍ0`Ň0œ×0„Ü1á1Dć1,ë1°đ1ěő1ÔúPD<2˙2H3 2œ2ˆ3,2Ź2ŕ"3x'44,3œ13ź63ä;44@4 EPLJ4|OPTT5dZŕ}Ź5ŒP\Pl5Œ5Œ 5Œ +˙P\S5Ä“6 V5ěY5ü_`„Ů6$PdPl6$6$ 6$ +˙PdS6TaX‹&Y˛ŕaŞ`iptá°{¸…ÎЍ!˜—NȨśdąŒşŻ`ĂuÄĚŞ(Ó4üáüëOřúśáŒ ˇ”Ľ4Bp$•Œ,Ö03T=rD‚üUúŹbąäi‰płDwBl|6$†1Xś¸—°˘€Ź+đśśœ˝7ŁŒĐ^Ý3Dč”ň! üx$ě˙HŔđ)ˆ2FĚ:|B-Iâ¤R,[ޘbĺ8 €?˜jKÔq`‚ýŔŠÄ•Ň,¨ł˜ŻKťˆ°ĹŽ¨Î$ כ<ß.¸č@hóšý{Ź żœ#üŻ¤#§+Ę4Bd:˜DFxOA,Vkěb|”j@´wĎ„á0Œ˜BXŸŇ§F|Ž°ŕľ•ˆž lȖ@ی ĺ¤t÷ĄL˙Fř%ˆś,2,‘l8,Ał|HźXP×4Y’ gĎŹvt ƒ\č8™˛Ÿ ÄŠBnłŔPťž0Ä0ÍáLŐ;”ŢĽtä§ěîë$ö@ŘţąČĘ8˜îHä$%Îě2(:hCsL)¤Vá]<fĘÄn wLč‰ý”ŔŒœěĽtąN ¸ |ÂOđŃ/`Úť(á€íľ÷+,@ě'O8BľôH'4RĚ[֐bLˆj/tqÖüx´‚Fp‹ä𓜀™˜ĽBTŞF¤˛štş´đÁŞ|É<Ňë@Ů4@ăëŒî6töśHţ¤Ä.ˇ°p °'šP/śÔ7Ą ?¤đGĐÖ́VäÔ^ˇ8fלnłěu ˜}t-°š5čĽĎ¸°DŒšžŔŔË'xŐLäŕÖLé$ĐđłĐřĺl5ŒBh4¨#l,O =B,CŞŔK@4TĘ\]–ČmÉwŻD~ł´„äŽB\–Č”Ÿ`ŞËpłÉ4šŁ„Ŕ3°Ę˙,Ńť ×@ᤄéđń (űĐD2JřąŹ#Jü2ˇ8°E}\O•ĐUęđ[¸ŒcŞDj`tqţ<z–‚0°‹B`‘şđ˜ÇźŸűTŞ Œ´KŘ˝dĂÚŹÍĽ´Ő§tsash.cgcc2_compiled.___gnu_compiled_c_version_intcrlfLC0LC1LC2LC3LC4LC5L3L4L5_catchint_catchquitL6L8L7L9L10L11_readfileL12L2LC6LC7LC8LC9LC10_sourcecountL14L13L15L16_sourcefilesL17L19L18L20_showpromptL21L22L23L24L25L28L27L26L29L30L32L31L33_commandL34L35L36LC11L38L40L39L41L42L43L37L45L44_findaliasL46L47L49L48L50_command_in_pathL51_trybuiltinL52_runcmd_path_copy.12LC12L54L55L59L58L56L60L61L62L53L63L57L64L65L66LC13LC14L68L70L67L71L72L69L74L73L75L77L76L78L79L80L81L84L82L83LC15LC16LC17LC18LC19LC20LC21LC22LC23L86L88L87L89L85L90L91L92L95L93L94L96L97L98L99L100L103L101L102L104L105L106L107L108L110L109L111L112L113L114L117L116L118L115L119L120L122L121L123L124L125L126LC24L128L132L131L129L130L127_aliascount_aliastableL134L137L135L136L133L138L139LC25L140L142L141L143L145L144L146LC26L147LC27L149L148L151L150LC28LC29_catchchildL153L154L155L152cmds.cL156L157L158L159L160L162L161LC30LC31L164L166L165L167L163L168L171L170L169L175L180L176L178L174L173L172L177L181L182L183L184L185L186L187L189L188L190L191L196L199L194L192L193L195L198L200L201L202L204L205L207L206L203L208L210L209L211LC32LC33L213L212L214L217L216L215L219L218LC34LC35LC36LC37LC38LC39LC40LC41LC42LC43LC44LC45LC46LC47LC48LC49LC50LC51LC52LC53LC54LC55LC56LC57LC58LC59LC60L221L222L223L224L226L228L230L232L234L236L238L240L242L244L246L248L250L252L254L256L258L260L262L264L266L268L270L272L275L274L273L220L276L271L269L267L265L263L261L259L257L255L253L251L249L247L245L243L241L239L237L235L233L231L229L227L225L277L279L278L280L283L282L281L284L285cmd_uclinux.cls.c_linelen_def.3_listsize_list_listused_lsfile_username.7_userid.8_useridknown.9_groupname.10_groupid.11_groupidknown.12ps.chexdump.cdf.cfree.chostname.cdate.c_invalid_dateutils.c_buf.3_buf.7_buf.17_strings.30_argtable.31_chunklist_newcmd.44string.catexit.cprintf.cstdio.c_first_time_bufin_bufoutsignal.cgetenv.cputenv.c_mall_env.3_extras.4perror.cisatty.cerrno_loc.cstat.Ssysdep.hsystem.cclose.Sexecvp.cerror.c_retbuf.3_exit.Swait4.Sgetpid.Saccess.Sexecv.cgetcwd.c_path_buf_path_size_st_root_dev_root_ino_recurser_search_dirwrite.S_string.3gettod.Schdir.Smkdir.Satoi.csleep.cmknod.Srmdir.Ssync.Sunlink.Schmod.Sgetpwnam.cchown.Sgetgrnam.ctime.Sutime.Sopen.Srename.Ssymlink.Slink.Smount.Sumount.Salloc.cread.Ssetenv.cumask.Skill.Slstat.Sopendir.creaddir.cclosedir.cqsort.c__wqsort__lqsort__nqsortreadlink.Satol.cctype.cstrtol.cstatfs.Ssethstnm.Sgethstnm.clocaltime.c_tmb.3scanf.cmktime.c_ydhms_tm_diff_localtime_offsetstime.Sasctime.c_timebuf.3ctime.c_cbuf.3aliases.c_prtfldlseek.Ssigaction.Stermios.cexecl.cexecvep.citoa.c_a.3execve.Sselect.c__getpwent.c_line_buff.3_passwd.4__getgrent.c_members.4_group.5mmap.cmunmap.Suname.Stm_conv.c___mon_lengthslocaltime_r.casc_conv.c_hit_days.6_mons.7ltostr.c_bufioctl.SLtext0_p.3_initialized.10libgcc1.Sfp-bit.c_thenan.3__fpadd_partsL179L286L290L289L292L288L339L295L294L297L342L300L299L305L304L310L309L312L315L314L320L319L324L340L330L341L347L351L349L355L359L357L363L367L365L371L375L373L379L383L381L387L391L389L393L394L395L396L402L397L400L406L421L409L412L411L423L417L427LF1LF0dp-bit.cLF8LF9LF14L197LF21L306L307L308L311L313L316L321L322L325L326L329L332L334L343L346L345L398L352L354L356L362L361L366L369L372L377L376L399L390L405L407L413L415L425L429L433L431L437L441L439L445L449L447LF23L451L452L453L454L450L455L458L464L479L467L470L469L481L475LF26L485LF27L488_usleep_getpid___fixsfsi_execl_getchunk_statfs___muldf3__vfscanf_fp_ref_symlink_do_echo_sprintf_do_date__exit___truncdfsf2___subsf3___DTOR_LIST___utime_tcgetattr_free_strcat_do_umask_strcmp_stime___muldi3_do_df_expandwildcards_localtime_r_mkdir_match_sleep_tty___negdi2___ledf2_umount_do_source_do_mkdir_do_touch_mount_do_cmp_buildname_dev_to_name___fixdfsi___cmpsf2___subdf3_modestring___extendsfdf2_ungetc_closedir___fopen_stderr_do_pwd_do_mv_execvep_do_time_execv_select__qbuf___fpcmp_parts_f_ltostr___umodsi3___mktime_internal_rmdir___sys_nerr_namesort_strncat_do_sync_putenv___nedf2_do_setenv___signal_timestring_readdir_do_rmdir_fputc_execvp_toupper_pgrp___addsf3___IO_list_psbuf_do_hexdump_isadir_do_printenv_gethostname_sigaction___nesf2_state_mktime_stdin_fputs_environ___mulsf3___stdio_close_all_makeargs___errno_location_isatty__fixed_buffers_do_chmod_open___floatsidf_freechunks___gtsf2_mknod_fwrite_strncpy_expandenvvar_gethostbyname_do_hostname___divsi3___getgrent_atoi_do_mknod_tty_name_memcpy_opendir___gedf2_memset_do_more_stat_strerror_munmap_master_chdir_tolower_fflush_vfscanf_itoa_sethostname___main_fprintf_do_free_do_chgrp_lseek_do_exec_strtol___lesf2__vfprintf_fp_ref___do_exit_strdup___eqsf2_makestring_do_ls___divsf3___CTOR_LIST_____gtdf2_fread___unpack_d_getgrnam___fpcmp_parts_d___do_global_dtors_port_xlate___on_exit_count___pack_d_time_do_chown___gesf2_ctime_do_cat_do_ln_bcopy_getpwnam_intflag_memchr_link___unpack_f_pid_stdout_getenv_chown_access_do_help_uname___negdf2___tm_conv_cmdtab_rename_strchr___eqdf2_fgetc___negsf2_do_cd_signal_malloc_fclose_strcpy_sscanf_fseek_execve_memcmp_atexit_chmod_perror___do_global_ctors___cmpdf2_do_umount_localtime_do_kill_lstat___make_fp___divdf3___cleanup_asctime_do_rm_unlink___getpwent___lshrdi3_session___make_dp___ltsf2___on_exit_table_name_getcwd_do_exit_strncmp___io_init_vars_readlink_write_sync___modsi3_statec_strrchr___udivsi3_strtoul_atol_fgets_do_mount_ioctl_kill___pack_f_strlen_do_pid_do_sleep___mon_yday_do_cp_errno_gettimeofday___sys_errlist_read___floatsisf_copyfile_exit_mmap_setenv_wait4_do_ps_ultostr_printf___ltdf2_ppid_umask_qsort___asctime___adddf3___ctype_main_vfprintf_system_close€ Ż°´¸ CŘ  C04L %\`hlt %| Ő€ Ő„ Ť”˜ 䤨Ź äÄČĚ Öčěđ q8 źŔŘÜä _č _ě °ü ‡ ‡(,0 ^X îhlpt  ŽŔ ŐÄ ŐČ ŤÔ ‡Ř ‡đ Đô Đ$ ‡( ‡< ćDHLPTXpt€ ¸ ź ü \`„ˆĐÔě ‡đ ‡  % $x|Ź°´ îŔ ‡Ä ‡Ř ü ‡ ‡ ć ( %048<@D| Đ€ ĐŒ “č ß4 ˜„ ŒÜŕô ç ( , 0 A P A l Œ +( ß +D +H +L Ö +˜ +œ +¤ ç +Ź +° +¸ ß +č +ě +đ       A $ ( 0 A < @ D Ľ  ß č Ľ „ ˆ Ě C +0 +4 +P _ +T _ +X ° +` _ +d _ +h Ť +ŕ G,08 _< _@ °t GźŔČ _Ě _Đ °čěü % /4 äX \ ”´¸Đ ‡Ô ‡äč 0( ä8 äH äX y` d | € ˆ Śœ ¤¨ź %Č :ôřü î $4 %`d€ "¤ ¨ ř / _ _$ °PT€„Ź°ŔÄŘ _Ü _ŕ °č _ě _đ Ť î TXœ ź %ü T C /$ %l ŘŒ î ¤¨Ź°´ŕäčě ‡ ‡ $< ćp d| îˆ Ě Üŕč o  LPT ä\ Đ` ĐlpŒ˜ ÄČĚ äÔ ĐŘ Đäč | "¤ /´¸Ě 8Ü /ěđ 8 Đ Đ <@H \ p đ Őô Őř x Ő Ő$ ˆ8 Ő< Ő@ x  źŔČ _Ě _Đ °ŕäô %P X\t %ôřü Ö $, _0 _4 °H Šh îÔ Iü î `  p K đ ô ř C!4!8!< C!l!p!x _!| _!€ °"l"p"x _"| _"€ °#l#p#x _#| _#€ °#ź •#ä î$L l$t î$¸ % ú%H î&D&H&P _&T _&X °&ź í&ä î(((,(4 _(8 _(< °(X Ď(|(€(ˆ _(Œ _( °) Ľ)4 ×)` î*˜*œ*¤ _*¨ _*Ź °*Č Â*ě*đ*ř _*ü _+ °+x Ľ+¤ ×+Đ î, Č,l >,œ ‘,Ä 0,Ř î-L €-„-ˆ-˜ _-œ _-  °. Ř. î.T U.l Ţ. .” .° î.Ě .ô ú/ î/¸/ź/Ŕ C/Ü/ŕ/č _/ě _/đ °000 _0$ _0( °0P 60x î0Ź €0ä0č0ř _0ü _1 °1` Ř1€ î1´ U1Ě Ň1ě î2P €2ˆ2Œ2œ _2  _2¤ °3 U3< 3ŕ3ä4Ô4Ř4ŕ _4ä _4č °5$5(50 _54 _58 °5l5p5x _5| _5€ °5Ź S5Č5Ě5Đ î6 O64 î7, Ľ7T î7t Ľ7œ î7Ô7Ř7ŕ %888 %84 ‘8d î8ˆ ‘8¸ î8Ä 08Ř ĺ8ě ĺ9 Đ9 Đ9D 9p î9Œ 9¸ î9đ9ô9ü %: :$:, %:P:T:\ %:x ë; ;; %;@ 0;L 0;X @;d @;ü<< ^<, î<<<@L Ő>P Ő>T Ő>X Ő>t Ő>x Ő>| x>Œ Ő> Ő>¨>Ź>´ %>ź Ő>Ŕ Ő>Ä Ť>Ě Đ>Đ Đ>ô ? ć?¸ ć?Ô ć@ ć@P @œ !@Ě ‰@Đ ‰AAA4 %AX AŒ Aä ëBBB$ %B  (Bź (BÄBČBŘ %C°C´Cź _CŔ _CÄ °CÜ (DäDčDě CEE E$ CETEXE\ CEŒEE” CEÄEČEĚ CEüFF CF4F8F< CFlFpFt CF¤F¨FŹ CFÜFŕFä CGGG CGLGPGT CG„GˆGŒ CGźGŔGÄ CGôGřGü CH,H0H4 CHdHhHl CHœH H¤ CHÔHŘHÜ CI II CIDIHIL CI|I€I„ CI´I¸Iź CIěIđIô CJ$J(J, CJôJřK _K _K °LLL _L$ _L( °L@ Ld îLĚ ĐLĐ ĐLě ćM M$M( ^MP îMŒ ŔMĐ ŐMÔ ŐMŘ –N ćNźNŔNŘNÜNä ĺNôNřOOO _O _O$ °O4O8ODOHPPP(P,P0P4P8P<P@PDPHPLPPPTPXP\P`PdPhPlPpPtPxP|P€P„PˆPŒPP”P˜PœP P¤P¨PŹP°P´P¸PźPŔPÄPČPĚQ4Q8QP _QT _QX °Q¤Q¨Q° _Q´ _Q¸ °QäQčQôQřRR Rœ RŘ ôRř îSd ĄSŒ îS´S¸SČ %SŘ vTŒ çT°T´T¸ ATĚ ATÔTŘTÜTŕTřTüU ĺU8U<UD _UH _UL °U\U`UdUhU€  UˆUŒU” @UœU U¤U¨UŔ šUĚUĐUŕUäUôUřVV V,V0V8 _V< _V@ °VPVTVXV\V`VdV€ ]VˆVŒVV”V¤ nV¨ nVŹ )VźVŔVěVđW ôW, îW8 @WP W¨ @WÄWČWÜWŕWü ŐX ŐX xXœX X¸ 8XÄ Y ZY çY Y4Y8YP 8Y\ YtYxY˜YœY¸YźYĐYÔYŘ 8YŕYäYôYřZZZZZ 8Z, ZDZHZhZlZˆZŒZ Z¤Z¨ 8Z°Z´ZÄZČZÔZŘZŕZäZđ 8Zü [\[`[” 8[¤[¨[Ŕ 8[Ě [ě u[ř[ü\ 8\ Ő\ Ő\$ ˆ\0 Ő\4 Ő\8 ˆ\„ \ź\Ŕ\Đ %\ô ]4 Ő]8 Ő]< x]X]\]`]d]|]€]Œ]]Ź Ő]° Ő]´ x]ź]Ŕ]Ř Ő]Ü Ő]ŕ x^$^(^, ç^P^T^p 8^œ^ ^Ŕ 8^ě^đ^ř^ü_4 8``”`œ %`Ź`°`´ ‘`Ř`Ü`ŕ î`ô`řa a 0a0a4a8 îaHaLa`adapata€ a Ča a¤a¨ ĄaÜ vb b@ ,bD ,b˜bœb°b´b¸ 8bČbĚbĐ ‘ccc c0c4c8 îcD 0cTcXclcpc|c€cˆ c¤c¨cĚ cŘcÜcě ßd ddd$ ßd< dHdLd\ ßdpdtd| d” ßd° ßdĚ ßdč ße ße ße< ßeT el ße„ eœ ße¸ ßeÔ ßeđ ßf ßf( ßfD ßf\ flfpfx ßf”f˜f  çf¨fŹf° fźfŔfČfĚfĐfÔfä 0fěfđfüggg g4g8g< 8gDgHgTgXg\ ^g€g„g g´g¸gźgŔgČ gägčgě hhhh h h0h4h8 hP ćhœ ›hŹ hź hĐ <hđ iii „i(i,i8 ŠiDiHiP Ši\i`ih ˝i| ˝iŒ 0iÄiČiÜiŕiä 8iôiřiü ‘j j$j( îj<j@jH jljpjt îj€ 0j” 0jœj j¤j¨jÄjČjĐjÔjŕjäjějđk ›k4 kXk\klkpkx %kŒ ]l@lDlH Clx +lĐlÔlŘ ^lô ém8m<m@ Cm|m€m˜ %m´m¸mČmĚmÔ %n( Ŕn”n˜n° %odohoxo|oŒooŹ %oČoĚoÜ %pTpXphplpt %p¤p¨p¸ %päpčpđ %př Őpü Őq Ťq ‡q ‡q q$ ,q( ,rHrLrt 3r r” rœ Śr¨rŹrŔ %rĐrÔrě %rôrřs %sss, %s4s8sH %s¨sŹs¸sźsŔ ^säsčsě ît4 tD ŐtH ŐtL ˆtl ćtÜ třtüu %u( u8 ŽuT ‚u\u`up %uč Čuü ňv  vdvhvl čvŹv°vČ _vĚ _vĐ °w †w<w@wX _w\ _w` °w| Dw˜wœw¤ _w¨ _wŹ °wÔ řwŕwäwđ %x8x<x@xDxH çxhxlxx”x¸xźxŕxäyy y0y4yXy\y€y„y¨yŹyĐyÔyřyüz z$zHzLzpztz˜zœzŔzÄ{ {{X{\{Œ{{Č Č{Ř Ë{đ{ô{ř ç|||T|X|\ ç|d|h|t|x|° Ľ} Ľ}° î}Ě Ľ~ ~$~4 _~8 _~< °~\ ‘~„ î~Ź ‘~Ô î~ŕ 0~ř ĺ 0 _4 _8 °\ ˆŒ¨ 0´ 0Ŕ @€ €, î€8 @€| @€œ  0€ź 0€Ü î í ×@ >X 0d 0đ ‚ ‚$‚, ç‚4‚8‚<‚@‚D A‚L‚P‚X A‚`‚dƒ ƒh ߃€ ߃˜ ß„€„„„Œ _„ _„” °„ŕ  …4 Ą…` î…| † v†T†X†\ C†„†ˆ†Œ C‡‡‡ _‡ _‡ °‡ ]‡@ ‡€‡„‡Œ _‡ _‡” °‡  ]‡Ô  ‡đ çˆ0 ]ˆLˆPˆX _ˆ\ _ˆ` °ˆ€ˆ„ˆˆ )ˆŘ CŒDŒHŒP çŒ`ŒdŒ Œ¤ŒŹ _Œ° _Œ´ °ŒČŒĚŽ( ÎŽL Žd ÎŽřŽü(,Č čěô _ř _ü °( çô ĺ‘(‘,‘8‘<‘€‘„‘¤‘¨‘´‘¸‘Ě @’ ’$’X ’t’x’€ _’„ _’ˆ °“““ _“ _“ °“ˆ ,“Œ ,”0 Ö”X ”x”|”„ _”ˆ _”Œ °”Ź —”đ”ô”ü _• _• °•h•l•Ü ÷•ŕ ÷– :– Ő–$ Ő–, .–P–T–X Ť–`–d–h Ť–p–t–Œ Ť–” 0–Ř–Ü–ô–ř–ü—— ————@—D—H—L—X—\—`—d—ˆ—Œ—”—˜—œ— —Ä Ž—ä—č—ě ě˜D ‡˜H ‡˜` Ő˜d Ő˜| _˜€ _˜˜ }˜œ }™ ™ ™$ ™Ź łš$ ƒš š˜ ‰šœ ‰šÜ ë›d ß›€ ›Œ ‰› ‰›¨ 囟 Ł›Ä›Č›ě›đ›ô ëœ|œ€œ¤ ĺœÔ  œäœč @ št .ä ćžä ĺŸ ‘Ÿ8 @ŸH ŸL Ÿl }Ÿp }Ÿˆ ŽŸ° Ÿ´ Ÿř ĺ ¸  Č  Ô Ř Ü  ě đ ô  ü Ą Ą ŚĄ Ą Ą,Ą0Ą4 Ą\ Ą` Ąh ?ĄÄ ĄČ ĄŘ ŤĄě 0˘$ ˘( ˘< ˘@ ˘| ˘€ ˘  @˘ŕ }˘ä }ŁT @Łü á¤t¤xĽ Ľ  ĽH ĽT çĽđ äŚ äŚ äŚ8 Ś< ŚX äŚd äŚp äŚŒ äŚ˜ 䌤 䌏Ś°Ś´Ś¸ŚźŚŔŚČ 1ŚĐ :ŚÜ äŚč äŚđŚôŚř %§ "§, ä§8 ä§D 䧘 ‰§œ ‰§  b¨¨¨D¨H¨h¨l¨p ‘¨ˆ¨Œ¨ ‘¨¨¨Ź¨Ŕ¨Ä¨ô Š ߊL 0Š” ŠŔ 0ŠČŠĚŠĐŠÔŠÜ  Šä ­ŠěŠđŠô 窠 ‰ޤ ‰ި ęŞĐŞÔŞŘŞÜŞô Şř Ť ŤŤ 獍 Ť$Ť(Ť, ĽŤHŤLŤXŤ\ŤŤ”Ť˜ŤœŤ¤ ĽŤŔŤÄŤŘŤÜŤđŤôŤř çŹ ŹŹŹ, Ź0 Ź@ŹDŹH AŹĚŹĐŹÔŹŘŹě Ľ­ ­@­D­X ­\ ­l­p­x ç­„ Ą­¨ ­Ź ­¸ ]­ŕ ­č­ěŽ çŽ ĽŽD vŽX ]Ž` Žd ŽČ ŽÜ ŃŽü  Ż  ŻlŻpŻ€ .ŻŔ Żŕ Ť° Ť°„ Ťą4 x˛ü ł jł( ełd e´@ ´D ´X´\´` ‘´€ 0´œ C´° ű´Č 0ľD ľH ľ\ľ`ľd ‘ľ„ 0ľ  Cľ´ œľĚ 0śđ ˇœ §ˇŔ ˇŕ Ť¸, Ŕ¸Ŕ ¸Č ‰¸Ě ‰¸č ĺ¸ü Łššš(š,š4 ëš´š¸šŕ ĺş  şşş@ @şP ş\ ĺşx 纀ş„şˆ Aş” AťX ťx Ťť°  ťŘ  ťč ź( ź¨ Ťźě Ť˝,  ˝P Ť˝l ˝p ˝€ ˝Ü žL Ľžt žx žÔ ĺż ĺżh @żp żt ż° ż´ Ŕ Ŕ Ŕ  ŔŹ ĺŔĚ  Á Á Á8 @Á@ @Á` Ád ŌŐĹ´  ĹŘ  ĹŕĹäĹř  ĆĆ ƀ  Ćč  Ç  ÇČÇĚČŔ Čä ßĘĘĘ8Ę<ĘŘ ,ĘÜ ,ËĚ ,ËĐ ,Íô łÎp ŤΈ łĎ< ÚĎT Ďl çĎ| π ĎĐ ĎŕĎäĎô ÜĐĐ Đ0 ŹŃ ›Ń Ń ›Ń0 Ň HŇ HŇŇŇt ҈ ›Ňä Ňř ÓÓÖlÖpÖt *Ö¨ ÖČÖĚÖĐ ÜÖÜ *ל Ć×  Ć׸ ן ×Đ×Ô×Ř ¸×Ü ¸×ô ×ř Ř Ř ، ŮÔ xÚ( ŤŰ< ŤÜ0Ü4ÜPÜTÜXÜ\Ü`ÜdÜhÜlÜpÜtÜxÜ|܀܄܈܌ܐܔܘܜÜ ܤܨÜŹÜ°Ü´ܸÜźÜŔÜÄÜČÜĚÜĐÜÔÜŘÜÜÜŕÜäÜčÜěÜđÜôÜřÜüÝÝÝÝ ÝÝÝÝÝ Ý$Ý(Ý,Ý0Ý4Ý8Ý<Ý@ÝDÝHÝLÝPÝTÝXÝ\Ý`ÝdÝhÝlÝpÝtÝxÝ|݄݈݀݌ݐݔݘݜÝ ݤݨÝŹÝ°Ý´ݸÝźÝŔÝÄÝČÝĚÝĐÝÔÝŘÝÜÝŕÝäÝčÝěÝđÝôÝřÝüŢŢŢŢ ŢŢŢŢŢ Ţ$Ţ(Ţ,Ţ0Ţ´ iß, $ßt ßŕßäßč _ßě _ßđ °ßř ŕ xŕ| Ťŕź Ťᜠâ ĺâ< ‰â@ ‰âL ęâd @âÔ ßâčâěâđ Öăă ă4 çă@ ßăX ălăpăt A〠A㐠ę㘠㜠ă´ ßăř ęä@äDäp ä„ ›ĺT ĺX ĺ”ĺ˜ĺ¤ ĺČ ßĺŕĺäĺđ łć ć ßćD łćŘćÜćđćôćřćüçççç ççç ç<ç@çLçPç\ç`çx ßç¸çźçŔ +çě +č`čdčp č” ßčŹč°čź łčÔ čě ßé łéŒéé˜ ßéÄ ßéč ßę +ę,ę0ęd ßę¸ęźëŔ ›ëĐ ě4 ›ěD ěT ›ěd ět ěź ěÔ í í, í| í í´í¸îź áîôîřď@ďDďd  ď” ,ď˜ ,đPđTđhđlđpđtđxđ|đ€đ„đˆđŒđđ”đ˜đœđ đ¤đ¨đŹđ°đ´đ¸đźđŔđÄđČđĚđĐđÔđŘđÜđŕđäđčđěđđđôđřđüńńńń ńńńńń ń$ń(ń,ń0ń4ń8ń<ń@ńDńHńLńPńTńXń\ń`ńdńhńlńpńtńxń|ń€ń„ńˆńŒńń”ń˜ńœń ń¤ń¨ńŹń°ń´ń¸ńźńŔńÄńČńĚńĐńÔńŘńÜńŕńäńčńěńđńôńřńüňňňň ňňňňň ň$ň(ň,ň0ň4ň8ň<ň@ňDňHňČ áót áôX áô¤ ßő áő@ ßőĐőÔőŘ _őÜ _őŕ °őč ÷Đ ář$ ßřp ßřČ áů@ ,ůD ,ůŒ áůô áúh \úČ úä Üű űpűtűx  ű˜űœűŘűÜü ›ü, ›üT ›ü| ›üŹ ›üČ ›üä ›ý4ý8ý< ÷ý@ ÷ýpýtţˆţŒţ¨ jţ¸ ˙t Ťˆ žŒ ž¤ ž¨ ž04<@ +ˆ +Œ 8 E +T +X ( ţ48đô üDHÔؤ M0 M č ě!t!x"Ź"°"´"¸###@#D#´ E#ü E$4 E$t E%ź%Ŕ'č'ě(((t(x(ˆ(Œ(´(¸(č(ě)P E)Œ)*0 E282<2l2p2x2|2¸2ź3,304ˆ4Œ4Ü4ŕ5l ő5°5´5ü66 66T6X0 ăd ˜ ˛Ě  É4 Th œ FĐ 78 l ą Ô  š< óp ͤ źŘ Q ž@ ¤t ¨ aÜ  `Dx Ź ůŕ w sH| p° Rä B ńL #€ Ě´ 9d = čô$Ôě@dˆŹĐô<`„¨Ěđ 8t˜¤œ +X +ˆ +” D \ € ° Ô ř + +@ +d +ˆ +Ź +Đ +ô<`x¨äĐ Č +xtšœechoELFPC$4( œ!˙üÔHŔ¨Ć&Hœŕ˙˙űÔ8˙˙ůœk…!HHœ!This is test app +argc = %d + %s +%cœ!˙ŕÔHÔP Ô`ÔpÔ€Ă˙˙ăD`¨c0Ô˙˙ޝ€€¨„BÔpŞ˙˙×Ô ĺŒp `¨cMÔ„Š˙˙ÎÔ „„dŒ˙˙ɝJĺŒp˙˙ôA€q`¨cTÔP˙˙żÔa€¨„TÔ ˙˙šÔ„˙˙ś„daä`˙˙đ`…!…A ……Á†HHœ! `Šk&HHHœ!˙řÔHÔP€¨„&Lœ „„ä$( CH ˙˙™œj…!…AHHœ!œ!˙üÔH`¨c&|„˙˙ŽœĄ…!HHœ!œ!˙ÜÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ Cž@ä*(`¨c&T˙˙ďä+``˙˙`¨c&|˙˙čä+Y`˙˙`¨c&¤˙˙áä+R`˙˙`¨c&P…Cä* €˙˙֜jä+`G`˙˙…J$ä*`˙˙ůA`„Š¤d€ä# '¤d@„j„Š რä, -ÄžŸ˙˙ŔŞÖ&Hž€œŽ„j˙˙BœŹĺK€ áÎXĺK€˙˙÷áŒXä Ŕ „vä ˙˙ńœŽä,€ „j¨cž@˙˙Ô +ä# „Š„já„ĺL ŕ€`„j˙˙ œ „Šœ ú?„j rŕ„(Ô +Ô +Ô +Ô + …!…A……Á ††A††Á‡ HHœ!$œ!˙üÔH`¨c&T„˙˙œĄ…!HHœ!ŕ¨ç*М€„§äE œĂ`¨c&Hœ€ `˙˙Ô `¨c&LŠđœ€ä& Ô@¸eŠ*Ôŕƒ@œĽÔ0€¨„*ŘÔ(ŕc Ô@`HH` HHHHœ!˙ôÔHÔPÔ``¨c&|˙ţĎ`¨c&¤˙ţË`¨c&P…Cœ€ä* €˙ţœj˙ţŔ„jœ`˙˙Ô +…J$ä*`˙˙ř…!…A…HHœ! œ!˙ôÔHÔPÔ`€¨„&̄d€ä#`Bœ` ¨Ľ*ŔŔ¨Ć&ĐÔÔ0€¨„&T ¨Ľ&ÔÔ0Ô0Ô0Ô(Ô0 œŚœŔÔ`Ô0€¨„*ÄŔ¨Ć(ČÔôÔ0@ŠJ&|€¨„(ĚÔ +0Ô +0Ô +0Ô +0 Ô +œŔ$Ô + Ô +0€¨„&¤ÔěŔ¨Ć&Č ¨Ľ&ŔÔ0Ô(Ô(Ô(Ô( œŔ"œ Ô0˙ţtÔ(ä+` „j¨cÔ +`¨cŹ˙ţj…!…A…HHœ! œ!˙ÔÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ ÔĐ$Ôŕ(žČş†ş”˜žC…A,şÇşÖ˜ŸE‡0œp˙ţLŸœ`-Œä ‹’žä4Ŕ œ`˙˙Œœ`˙˙ä* ĺLP ŠĺŽ` ŸĚŸœ`4áŘ`œ`ä: +ä. ä, ä4 œ`0ä ĽT˙ĽV˙ä, +ä4 ĽT˙ž€PžŒ˙˙ĽV˙Î˙˙„’„räd œj˙ţœ’œ` +ŘPœdÔœ` +ä + œ`ä œ`˙ţœrœ`ä.˙˙Íä,˙˙˝x…!…A……Á ††A††Á‡ ‡A$‡(HHœ!,LIBC:PRINTFœ!˙€ÔHÔP Ô`ÔpԀԐԠ Ô°$ÔŔ(ÔĐ,Ôŕ0Ôđ4ž„pœŕ˙üŕĂ8„Ô0ŒĚŸŔE¸†¸„˜ä$đ M§¸†¸„˜œ`%ä &œ`ä œ`˙ýĜpœ`Ÿ€ž€ žŔ˙˙ ž@ +Á@ `ŸVÔ<ŒŒlœ  œc˙Фc˙äC(œ€œŕ˙МŔ ¸dŕc ¸cŒŕc8ä)0 ŕƒ ŸDä$0ä@žÄŒŒlŕc8¤c˙äC(˙˙ě¸dŒœ`xäDď¸d€¨„ ŕŕc „ƒH ˙˙Ӟ€0 Ä +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t Ř +t +t ř +t +t +t +t +t +t ŕ Ř +t Ě  +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +T +t +T +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t +t t +t +t +t +t +t +t +t +t +t T +  +T +T +T   +t +t +t +t \ d +t +t + +t x +t +t tlŒ˙˙œŕ˙˙UÔ8<˙˙S“ŒJœ`ä) „Š˙ü˙˙LŸD˙˙JžÄ˙˙H ˙˙F`˙˙D`œ`ä+ J„j˙üJ˜j˙ţœ€ +˙ü7Ë ž@ž@`ž€0žŔŸ@ž@œ`ä+ J„Ę˙üJ”Ę˙ţœ`XŒä œ œ œfœ’˙üŃÔh8œ`…Ą8ä- Ëœ`ä œn˙üƞ€0žË˙˙  JŒj˙˙Řœ€Ř J…Ę˙üŸ€ž€ œpœŽœÜ„Ą<œôÔĐ˙ţLÔŔ#ăŢXŕ¨çT`¨c&¤˙ü§Ô8˙üĽœ`˙˙„„päd l˙üœœ` +ŒlŘœdÔœ` +Œä ŸŢœ`ä ˙üŒœpŒŒĚ¸†¸„˜œ`ä$˙ţşœ`%„pŕcŔœ€ä Ô˙ü|œpœ`ä ~„ Ô …!…A ……Á††A† †Á$‡(‡A,‡0‡Á4HHœ!€` HHHH` HHHH + + 0123456789ABCDEFLIBC:SCANFœ!˙(ÔHÔPÔ` ÔpԀԐԠ԰ ÔŔ$ÔĐ(Ôŕ,Ôđ0žœ€Ô <Ÿ„Ą<ä$(žCç`„’„räd œd˙ü2œrËÄԝ@ĺNP ɜ`%ä ‹€ ¨Ľ ŒĹŘ0XŒeŘYŒ…Ř ZŒĹŘ0[ŒeŘ\ŒĹŘ0]Ÿ€Ô`8ž€˙˙ŒĽžŔ +€¨„§Ř(^œaDœŹœĚÔ(@Ô04œ ˙üŸTœ`*ä žÔŕ8Ôŕ4žp ¨Ľ+–ŕc(Œƒ¤„ä$P ŸĹT ˙НœŕäP ¸tž€¸tĐŕc ž¸c°ŕcHŕĽ@âƒ0Œ…¤„ä$8˙˙𝔞˙˙ž°ŕeđŒƒ¤„œ`ä$ œeŹƒ œ…œ`xäDY¸d€¨„äŕc „ƒH Œ(((((((((((((((((((((((((((((((((((((((((Č((((((((((((((((((((((((((((((((((((((((((((((((|((((((ř\<<<äđ((Ř(((((ř(((œ Ô(8˙˙oÔ(4œŔ˙˙lÔ0@œ`˙˙iÔ@ žŔžŔžŔžŔŸ@ŕnđŒƒ¤„œ`ä$ „’„räd œd˙ű/œrËÄÔœ ĺŽ(ĆŕŽđŒd¤cä#(˙˙îpŕcđŒƒ¤„œ`ä$ œ€Ô @ä6(œ€œ`%žŔ +ä Ÿ@2žŔœ`0ä œ€„’„räd œd˙űœrËÄÔœ`ĺŽu„Ą8œ`xä. œ`Xä. œ žŔUŘ(LžŔä:  ŕÁ°œ` +ä œ`-ä Ÿ@Ÿ@ä: œ`+ä ŕÁ°„’„räd œd˙ú؜rËÄÔœ`ĺŽp`˙˙ŕÁ°œ€œfŘŰă'lŕŽđŒd€œĄD¤cä#` œŽŹŽ ˙úÁœeä.` Kä*`ä4`Wä*` /„Ą8œ`˙˙â”ä4 )œ`ä. '„Ą8ŕ|łœD„Ň੠„˛äf( ム˙ú¤œrËĆœfÔŕnđŒƒ€œŽ¤„ä$` œaDŹŽ ˙ú”œ…Kä*` œ`˙˙â”ä4 ä.`˙˙ßŕ|ł„Ą8œ€ä% œ`ä „Á@ă€ŕä& Ÿ„x˙üÔŕŸ„x˙üÜŕ„a<œc Ô<€¨„¸`¨c&¤˙úmÔ ˙úkœ`˙˙œŔžŒŘ0Xœ œ`Ô(4|Ô@žœ`^AXä œ°œ€žÔ @œ Ô(@Œ°œ`]¸…¸„˜äœŔœ`-ä žŘ +(œŔJŒ¸d¸c˜œ ]ä#( ;œŕ€`- ˙ţ¸d¸c˜ä#8 ֜`ä +ĺFä`ä8œ° Žœ°ŽŒŠ˙ţpĺ¤ œŔáJHĺ„ œ°Ř + œ„pĺ„˙˙üJ +œŔœŔpäX œ°œŔœŔŽŘ +€žŒ¸d¸c˜ä#@˙˙ϝJœŔŘ +0ŕnđŒƒœ`¤„ä$ Ô@„’„räd œd˙ůöœrËÄÔœ ĺŽ(ŕŽđŒd¤cä#(˙˙€ä4` …X˙üœaX˙ůᜎĺŽ` +„Ą4œ`ä+„@œ`ä „Ą4œ`ä% qœŔoŘ +0˙ů̎ä+`œ`œ`„@ä„Á8„Ą8œ`ä% Ř +pJ„’„räd œd˙ů¸œrËÄԝ€ĺŽ`„Á8ž”˙˙ä4`˙˙ޜaX„Á8œ`ä& @„4ä$ œ Ř +(„Á<œĆ8Ô0<'ž˙˙p ¨Ľ+–ŕc(Œƒ¤„ä$P ŸĹŕŽđŒd¤cä#P '„’„räd œd˙ů‡œrËÄÔœ ĺŽ(ŕŽđŒd¤cä#(˙˙pä.`˙˙„’„räd œd˙ůmœrËÄÔžœ`ä$˙ý8@`˙˙äX „<œ`ä$ œ`˙˙ä. œn˙ůUœ’…a<…!…A… …Á††A††Á ‡$‡A(‡,‡Á0HHœ!؜!˙ěÔHÔPÔ`Ôp Ô€ŕ¨ç*Đ ¨Ľ&Lœ€˙˙„ǝĂÔ@ᆠœ ĺl( Ô ¸l€¨„*ԞáC „Ş„ŠŒ˙˙œnH(J˙řĺl€˙˙ů…!…A……Á †HHœ!` HHHHœ!˙ĐÔHÔPÔ`€ŠŒ&H…L˙ů +œ œ`ä+cœ`cÔ P…!…A…HHœ!0œŁœ`…ä$ eœ€kkä# ˙˙ţkk˙˙ák(HHœ!˙ěÔHÔPÔ`Ôp Ô€ž˙řčD…ŠŔ¤l@ä#p ¤Œ ˙řŕœjä+p6`˙˙¤Œ œ` ä$1`˙˙„Š„jäd ˙řќjœ`ä+&`˙˙„jŘ€„Šœ  +œc¨„€Ô +ä( Ô + ¤Œœ`ä$¤Œœ`ä$ +¤Œ˙řˇœjœ`ä+ `˙˙¤Œœ`ä$ „j „jÔ +Ľp˙…!…A……Á †HHœ!œ!˙ôÔHÔPÔ`@ĺƒP €@ŕ`ä+` ä*` œ`-k˙˙Ř …!…A…HHœ! œ!˙ÜÔHÔPÔ`Ôp ԀԐԠ԰ÔŔ žĂœ˙ţœ`"äD ž… `€ŠŒ+•ž@Ÿ œ`žŔWŘ œn˙řmœœnœ˙řiKĺJŔ Ëä4 Œ˙˙œj7ŕj°Œ˙˙œj0ä.˙˙ěŘ l…!…A……Á ††A††Á‡ HHœ!$œ!˙üÔH„˙řIœĄ…!HHœ!œ!˙ôÔHÔPÔ`˙ř@C„j€¤c€ä#` ˙ř8œj„jœ€¤cä# `˙˙„Š„jäd œĘ„Š „ŞœdÔ + Ô + œ€˙ř%ŕĽä+`œ ű˙ +`˙˙„j„Š¨c@ŕ„Xŕc(Ô + Ô +„jcœcÔ +…!…A…HHœ! cœ`ä% +œËœŕ˙˙Ř@ŕĽ8œ„ä%˙˙űœĆHHc€¨„+–ŕk Œƒ¤„œ`ä$ ­k HHc€¨„+–ŕk Œƒ¤„œ`ä$ ­k HHœŔŁä cä%0˙˙űœc`HHœ!˙ôÔHÔPÔ`D„Šœ ¤„€ä$( ƒ˙÷Ϝj„Ęœ`¤†ä$`˙˙„Š„Ş ¨fäD( Ô +œd˙˙Ô +Ľl˙ +Ř`„jä(œŠ`˙˙„dŘ`œcĽl˙Ô…!…A…HHœ! œ!˙ôÔHœ TÔ ˙÷¨Ô(…!HHœ! œ!˙ŕÔHÔPÔ`Ôp ԀԐԠ԰žž„Ĺ˙÷—†…Lž@¤j€ä# žŔ˙÷œl¤Šœ`ä$)`áÔs„l„ŒáC äjp œp˙÷œŽ„lŕcpnÔ ĺJ œŞ˙÷wžJŕ„l˙÷sஐK劰 ä*°„l¨c@ŕrP„l¨cÔ ŕrP˙÷cœ”…!…A……Á ††A††ÁHHœ! `6 HHHH` HHHHœ!˙ôÔHÔPÔ`Ŕ¨Ć,„f„Łœ€ä% F€„ŞœeÔ +„…H „j„ƒä$`˙˙÷…!…A…HHœ! œ!˙đÔHÔPÔ`Ôp `¨c, œ€˙˙„Łä œă€¨„,$„dœ ä#( …œŔœ„„dä#0˙˙ýœĽ…œ`ä, ¸lŔáC8„jŒ˙˙HJ˙üä,p˙˙ű…!…A……Á HHœ!œ!˙üÔH ¨Ľ,„…œ`ä$œ`˙˙ĘÔ…!HHœ!œ!˙üÔH`œŁä(X 6œŕäH(2ä(.ä‹@ +   €œŔ˙˙ŕeH¸‡ĺ¸c_á­0ŕää‡@˙˙ů¸Ľ¸çA­ ä‰h œŻŕ€ž ŕex¸‡¸c_ŕäŕÇ@ŕfx¸c_œ€ä# ¸kœ€¸Ľä$ˆ ác œć)ä‰h˙˙í`œĺ…!HHœ!œ!˙řÔHÔPœŁ@ĺ…P œ`@ŕ (ĺ„ Jŕ€ ˙˙˛œeœ`ä + á`X…!…AHHœ!œ!˙üÔH˙˙Ľg…!HHœ!œ!˙řÔHÔPĺƒ @ŕ`ĺ„ ŕ€ ˙˙“œ`ä + gá`X…!…AHHœ!@(#)crt0.c 5.7 (Berkeley) 7/3/91 " AAAAAAAAAA BBBBBB DDDDDD ,,#Ł3d„dś€Ý€ď€€K€€€Ā€&€H€f€ƒ€•€¨€Ŕ€í€€$€E€Q&#&g /D;DsDuDvDw$z$;„@:Œ@:•@:Ŕŕ$(0&D*d"ÜPd"Üh€€Ą€Í€ý€2€v€ş€؀ú€€5€G€Z€r€Ÿ€ş€ր÷€€J€ś€D€vT€Şa€˙o€|€X‹€Y˜€ZŚ€[ł€\Á€^π_݀h퀀‹@€5X$ "Ün$ 6#P„$ G$)‡d&Pd&h€€Ą€Í€ý€2€v€ş€؀ú€€5€G€Z€r€Ÿ€ş€ր÷€€J€ś€D€vT€Şa€˙o€|€X‹€Y˜€ZŚ€[ł€\Á€^π_݀h퀀‹@€5X ku l../../../../../../gcc/newlib/libc/sys/or32/crt0.c/home/simons/cvs_opencores/or1k/b-gcc-elf-uclinux/or32-elf/newlib/libc/sys/or32/../../../../../../gcc/newlib/libc/sys/or32/crt0.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19sccsid:S20=ar1;0;32;2environ:G21=*22=*2_start:F1argc:P1argv:P21env:P21fd:S1../../gcc/gcc/libgcc2.c/home/simons/cvs_opencores/or1k/b-gcc-elf-uclinux/gcc/../../gcc/gcc/libgcc2.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19reg_class:T20=eNO_REGS:0,GENERAL_REGS:1,ALL_REGS:2,LIM_REG_CLASSES:3,;machine_mode:T21=eVOIDmode:0,PQImode:1,QImode:2,PHImode:3,HImode:4,PSImode:5,SImode:6,PDImode:7,DImode:8,TImode:9,OImode:10,QFmode:11,HFmode:12,TQFmode:13,SFmode:14,DFmode:15,XFmode:16,TFmode:17,QCmode:18,HCmode:19,SCmode:20,DCmode:21,XCmode:22,TCmode:23,CQImode:24,CHImode:25,CSImode:26,CDImode:27,CTImode:28,COImode:29,BLKmode:30,CCmode:31,MAX_MACHINE_MODE:32,;mode_class:T22=eMODE_RANDOM:0,MODE_INT:1,MODE_FLOAT:2,MODE_PARTIAL_INT:3,MODE_CC:4,MODE_COMPLEX_INT:5,MODE_COMPLEX_FLOAT:6,MAX_MODE_CLASS:7,;ptrdiff_t:t23=3size_t:t24=5wchar_t:t25=1wint_t:t26=4UQItype:t27=11SItype:t28=1USItype:t29=4DItype:t30=6UDItype:t31=7SFtype:t32=12DFtype:t33=13word_type:t34=1DIstruct:T35=s8high:28,0,32;low:28,32,32;;DIunion:t36=37=u8s:35,0,64;ll:30,0,64;;func_ptr:t38=39=*40=f19__do_global_dtors:F19__do_global_ctors:F19__main:F19../../gcc/gcc/libgcc2.c/home/simons/cvs_opencores/or1k/b-gcc-elf-uclinux/gcc/../../gcc/gcc/libgcc2.cint:t1=r1;0020000000000;0017777777777;char:t2=r2;0;127;long int:t3=r1;0020000000000;0017777777777;unsigned int:t4=r1;0000000000000;0037777777777;long unsigned int:t5=r1;0000000000000;0037777777777;long long int:t6=r1;01000000000000000000000;0777777777777777777777;long long unsigned int:t7=r1;0000000000000;01777777777777777777777;short int:t8=r8;-32768;32767;short unsigned int:t9=r9;0;65535;signed char:t10=r10;-128;127;unsigned char:t11=r11;0;255;float:t12=r1;4;0;double:t13=r1;8;0;long double:t14=r1;8;0;complex int:t15=s8real:1,0,32;imag:1,32,32;;complex float:t16=r16;4;0;complex double:t17=r17;8;0;complex long double:t18=r18;8;0;void:t19=19reg_class:T20=eNO_REGS:0,GENERAL_REGS:1,ALL_REGS:2,LIM_REG_CLASSES:3,;machine_mode:T21=eVOIDmode:0,PQImode:1,QImode:2,PHImode:3,HImode:4,PSImode:5,SImode:6,PDImode:7,DImode:8,TImode:9,OImode:10,QFmode:11,HFmode:12,TQFmode:13,SFmode:14,DFmode:15,XFmode:16,TFmode:17,QCmode:18,HCmode:19,SCmode:20,DCmode:21,XCmode:22,TCmode:23,CQImode:24,CHImode:25,CSImode:26,CDImode:27,CTImode:28,COImode:29,BLKmode:30,CCmode:31,MAX_MACHINE_MODE:32,;mode_class:T22=eMODE_RANDOM:0,MODE_INT:1,MODE_FLOAT:2,MODE_PARTIAL_INT:3,MODE_CC:4,MODE_COMPLEX_INT:5,MODE_COMPLEX_FLOAT:6,MAX_MODE_CLASS:7,;ptrdiff_t:t23=3size_t:t24=5wchar_t:t25=1wint_t:t26=4UQItype:t27=11SItype:t28=1USItype:t29=4DItype:t30=6UDItype:t31=7SFtype:t32=12DFtype:t33=13word_type:t34=1DIstruct:T35=s8high:28,0,32;low:28,32,32;;DIunion:t36=37=u8s:35,0,64;ll:30,0,64;;func_ptr:t38=39=*40=f19__CTOR_LIST__:G41=ar1;0;1;38__DTOR_LIST__:G41.symtab.strtab.shstrtab.text.rel.text.data.rel.data.bss.stab.rel.stab.stabstr4&! jl +h ++&&P1 wÔ +;,0,d@,0,dŹ F wܘ +P1Ü2šBÉYEŕ Ć dä†&,0")&16$;&D,01Ü?˙ń0&H,000F0JBNMRTVđY¸\ř`˙ń\&H,0\\l˙ńl&L,0lluœx˙ń´&L,0´´˙ńÜ&L,0ÜÜu°‰Ź¨\„X”ˆ˜đœô ¤8¨˙ńŘ&L,0ŘŘl˙ń&L,0u4°ˆV„ł˙ńť˙ńť˙ńł˙ń&P,0˙ńŹ&P,0ŹŹV YřÄ&̍`Đ*Ŕ×*Ä\Px˙ńt*Č,0ttßtuřV  Y$ç8ë \Dď€óŹœ”÷°¤œű¤˙´˜Ř‰čFT +řŘ +tü $ Ź T x# ' Œ+ Ř/ ŕ3 Ä7 Ř; ř? ŕC ĚG K +TO tS TW +[ _ c g \k do +s xw ü{ 8 @ƒ +(‡ ”‹ œ ´“ + — +Ř› +œŸ +°Ł§0Ť˙ńť˙ńť˙ńŤ˙ńh*Ě,0ł˙ńť˙ńť˙ńł˙ń„*Ě,0¨˙ń *Ě,0  F J§N¸u$ť¸VHŔPĹTĘ|Δ\Ńˆ@ŐT¤ŒÚ¸ßźä(éäîŒóČ;|ëř\ ‹<÷äűđ˜Ř÷§ř”‰œ€˙0T\¤HĚ Œ#H'ä@3ŒĚ"t7°?¸&€+üc/04ŕ8T€S°=dBG O,KdW¨“°OÜoěSěW /dTŁ¨\Ě+Äa°f jˆnČrw8|@đ†°‹¤Č•ŕš\Ÿ ¤0Š8Ž|łĐ¸ô˝üÂhÇ\ĚœŃ´l˙ńđ*Đ,0đđVxYTÖ˙ńť˙ńť˙ńÖ˙ń”+t,0Ţ˙ń°+t,0°°Věç˙ń+t,0V8đ$˙ńD+t,0DD˙˜ód°Ôđ$óDÎX\÷˙ń€+t,0€€u¨VĚY,ó¤+t˙H\Œó„¤”x˙ńĐ+–,0ĐЁ˙ńđ+–,0đđV(´Y¤đˆç˙ńČ+–,0ČČVüYŕ˙ń +–,0  u 0° dç˙ń l,,0 l lu p ˙ń ˜,,0 ˜ ˜u ĚÎ!<°!đ!( +˙ń!P,,0!P!P˙ń!t,,0!t!tu!Ěó"|°"Y","\Ń"l"t˙ńť˙ńť˙ń˙ń"¤,,0˙ńť˙ńť˙ń˙ń"Ŕ,,0"Ü,,0"Ü"Ü""Ü&,V#<°#ó#´ë#¸˙# Î#ě÷#Đ+,‰$0-ŕ5;˙ń$<, ,0&, ,0&&"&/ä<E*ĚV],(l!Pw ˜&¤‡€% šDĄ Ş&PľŘź&TĂ&@ĚŹß\ń°ů&Đ %8Č# 8,Ü4Ä=$EĐN„U*Čgđr, !tˆ"Ü›*ĐŹ&|´ lźđĂË#PŢ&Lé*Ôú4h%Ŕ($<3"¤:B&HI"ŔOlUŕ^´f+–oXu`”gcc2_compiled.___gnu_compiled_cLtext0_sccsidLBB2LBE2_fdtest.cLC0LC1LC2LC3L4L6L10errno_loc.catexit.cL3printf.cstdio.cL25L8L13L22L19L29L26L16scanf.cL5_exit.Ssysdep.h_first_time_bufin_bufout_prtfldL27L23L28L15L24L17L14L32L96L48L94L36L38L95L41L37L43L92L84L47L51L74L52L49L55L82L68L63L75L59L57L56L65L66L77L64L53L60L61L62L70L71L72L76L85L86L93L90L97write.Slseek.SL145L142L160L34L9L12L149L127L128L125L126L123L18L20L21L30L33L150L39L42L151L46L152L50L153L54L146L45L154L129L155L67L73L78L80L161L162L156L87L88L83L100L102L103L110L157L158L114L119L159L113L116L117L122L133L135L136L148L140L143L144close.Sisatty.cstring.cL7L11ltostr.c_bufctype.ctermios.cioctl.Sread.S_p.3_initialized.10libgcc1.S__vfscanf_fp_ref__exit___DTOR_LIST___tcgetattr_ungetc_stderr_ltostr___umodsi3_fputc_toupper___IO_list_scanf_stdin_environ___stdio_close_all___errno_location_isatty__fixed_buffers___divsi3_memcpy__start_tolower_fflush_vfscanf___main_fprintf_lseek__vfprintf_fp_ref___do_exit___CTOR_LIST___fread___do_global_dtors___on_exit_count_stdout_strchr_fgetc_atexit___do_global_ctors___cleanup___on_exit_table__impure_ptr___io_init_vars_write___modsi3___udivsi3_ioctl_strlen_errno_read_exit_ultostr_printf___ctype_main_vfprintf_closeő őű÷tŢ|€ˆů”œî î¤ů¸źČůÜÜřüŃů(Ü\`xě|ěœÇźçŔçČüŇŇ4ç8çPËTËlĐpĐäőčőřđ€ŕŕŇäŇěÝććő ő48<â@âXí\ípítíźŔÄÜĚĐÔÜÜŕřÜýDH`dhlx|€„Ź°´¸ÄČĚĐôř 0ÖPTXęĐôČÎÜđÜ Ŕ Ä ŕ ä č ě đ ô ř ü + + + +  + + + + +  +$ +( +, +0 +4 +8 +< +@ +D +H +L +P +T +X +\ +` +d +h +l +p +t +x +| +€ +„ +ˆ +Œ + +” +˜ +œ +  +¤ +¨ +Ź +° +´ +¸ +ź +Ŕ +Ä +Č +Ě +Đ +Ô +Ř +Ü +ŕ +ä +č +ě +đ +ô +ř +ü          $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x | € „ ˆ Œ  ” ˜ œ   ¤ ¨ Ź ° ´ ¸ ź Ŕ DĚ źř čô +T +X +\Ë +`Ë +dß +l÷ +ŒÎ +ĐÜÜ8éptźŔŕŮúúĚĐäčěđôřü  $(,048<@DHLPTX\`dhlptx|€„ˆŒ”˜œ ¤¨Ź°´¸źŔÄČĚĐÔŘÜŕäčěđôřü  $(,048<@DHLPTX\`dhlptx|€„ˆŒ”˜œ ¤¨Ź°´¸źŔÄDéđé éüčpé°č<@DËHËLßT÷(é|čČč é˜úœúäéLéŹĘ ěěDHŔőÄőĚÉ`ď€ÜźÜ$Ü,0LÍ\ňÜüď Ülä   < @ ÄÜ!`ó!¤ď!ÄÜ!üŮ"$Ů"4ö"tň"ě"đ#dă#hă#€ă#„ă$ $üČ (4@LXd” ŹÄĐ˜¤°ČÔ 2ŠL/$zMakefile +all: initrd + +initrd: + genromfs -f ../romdisk + mv ../romdisk /home/simons/cvs_opencores/or1k/uclinux/uClinux-2.0.x/arch/or1k/board/initrd + +all: …Î5'ŻMakefile~ +all: initrd + +initrd: + genromfs -f ../romdisk + mv ../romdisk /home/simons/cvs_opencores/uclinux/uClinux-2.0.x/arch/or1k/board/initrd + +all: initr \ No newline at end of file Index: console/crtfb.c =================================================================== --- console/crtfb.c (nonexistent) +++ console/crtfb.c (revision 1765) @@ -0,0 +1,1136 @@ +/* + * linux/arch/or32/console/crtfb.c -- Low level implementation of the + * crt frame buffer device + * + * Copyright (C) 2001,2002 Simon Srot , + * www.opencores.org + * + * This file is based on the m68328 frame buffer LCD device (68328fb.c): + * + * Copyright (C) 1998,1999 Kenneth Albanowski , + * The Silver Hammer Group, Ltd. + * + * + * This file is based on the Amiga CyberVision frame buffer device (Cyberfb.c): + * + * Copyright (C) 1996 Martin Apel + * Geert Uytterhoeven + * + * + * This file is based on the Amiga frame buffer device (amifb.c): + * + * Copyright (C) 1995 Geert Uytterhoeven + * + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive + * for more details. + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define LCD 0 +#define arraysize(x) (sizeof(x)/sizeof(*(x))) + +struct crt_fb_par { + int xres; + int yres; + int bpp; +}; + +static struct crt_fb_par current_par; + +static int current_par_valid = 0; +static int currcon = 0; + +static struct display disp[MAX_NR_CONSOLES]; +static struct fb_info fb_info; + +static int node; /* node of the /dev/fb?current file */ + + + /* + * Switch for Chipset Independency + */ + +static struct fb_hwswitch { + + /* Initialisation */ + + int (*init)(void); + + /* Display Control */ + + int (*encode_fix)(struct fb_fix_screeninfo *fix, struct crt_fb_par *par); + int (*decode_var)(struct fb_var_screeninfo *var, struct crt_fb_par *par); + int (*encode_var)(struct fb_var_screeninfo *var, struct crt_fb_par *par); + int (*getcolreg)(u_int regno, u_int *red, u_int *green, u_int *blue, + u_int *transp); + int (*setcolreg)(u_int regno, u_int red, u_int green, u_int blue, + u_int transp); + void (*blank)(int blank); +} *fbhw; + + + /* + * Frame Buffer Name + */ + +static char crt_fb_name[16] = "crt"; + + + /* + * crtvision Graphics Board + */ + + +#define CRT_CTL_REG (CRT_BASE_ADD + 0) +#define CRT_FB_BASE_REG (CRT_BASE_ADD + 4) +#define CRT_PAL_PTR ((unsigned long *)(CRT_BASE_ADD + 0x400)) + +#define setpal(i,r,g,b) *(CRT_PAL_PTR + (i)) = ((((unsigned long)(r) & 0xff)) << 11) | \ + ((((unsigned long)(g) & 0xff)) << 5) | \ + ((((unsigned long)(b) & 0xff)) << 0) + +#if LCD +#define CRT_WIDTH 320 +#define CRT_HEIGHT 240 +#else +#define CRT_WIDTH 640 +#define CRT_HEIGHT 480 +#endif + + +static int crtKey = 0; +static u_char crt_colour_table [256][4]; +static unsigned long crtMem; +static unsigned long crtSize; + +static long *memstart; + + + /* + * Predefined Video Mode Names + */ + +static char *crt_fb_modenames[] = { + + /* + * Autodetect (Default) Video Mode + */ + + "default", + + /* + * Predefined Video Modes + */ + + "CRT", + + /* + * Dummy Video Modes + */ + + "dummy", "dummy", "dummy", "dummy", "dummy", "dummy", "dummy", "dummy", + "dummy", "dummy", "dummy", "dummy", "dummy", "dummy", "dummy", "dummy", + "dummy", "dummy", "dummy", "dummy", + + /* + * User Defined Video Modes + * + * This doesn't work yet!! + */ + + "user0", "user1", "user2", "user3", "user4", "user5", "user6", "user7" +}; + + + /* + * Predefined Video Mode Definitions + */ + +static struct fb_var_screeninfo crt_fb_predefined[] = { + + /* + * Autodetect (Default) Video Mode + */ + + { 0, }, + + /* + * Predefined Video Modes + */ + + { + /* CRT */ + CRT_WIDTH, CRT_HEIGHT, CRT_WIDTH, CRT_HEIGHT, + 0, 0, + 8, 0, + {0, 2, 0}, {0, 2, 0}, {0, 2, 0}, {0, 0, 0}, + 0, FB_ACTIVATE_NOW, + -1, -1, /* phys height, width */ + FB_ACCEL_NONE, + 0, 0, 0, 0, 0, 0, 0, /* timing */ + 0, /* sync */ + FB_VMODE_NONINTERLACED + }, + + /* + * Dummy Video Modes + */ + + { 0, }, { 0, }, { 0, }, { 0, }, { 0, }, { 0, }, { 0, }, { 0, }, { 0, }, + { 0, }, { 0, }, { 0, }, { 0, }, { 0, }, { 0, }, { 0, }, { 0, }, { 0, }, + { 0, }, { 0, }, + + /* + * User Defined Video Modes + */ + + { 0, }, { 0, }, { 0, }, { 0, }, { 0, }, { 0, }, { 0, }, { 0, } +}; + + +#define NUM_TOTAL_MODES arraysize(crt_fb_predefined) +#define NUM_PREDEF_MODES (2) + + +static int crtfb_inverse = 0xf; +static int crtfb_mode = 0; +static int crtfbCursorMode = 0; + + + /* + * Some default modes + */ + +#define CRT_DEFMODE (1) + + /* + * Interface used by the world + */ + +void crt_video_setup(char *options, int *ints); + +static int crt_fb_get_fix(struct fb_fix_screeninfo *fix, int con); +static int crt_fb_get_var(struct fb_var_screeninfo *var, int con); +static int crt_fb_set_var(struct fb_var_screeninfo *var, int con); +static int crt_fb_get_cmap(struct fb_cmap *cmap, int kspc, int con); +static int crt_fb_set_cmap(struct fb_cmap *cmap, int kspc, int con); +static int crt_fb_pan_display(struct fb_var_screeninfo *var, int con); +static int crt_fb_ioctl(struct inode *inode, struct file *file, u_int cmd, + u_long arg, int con); + + + /* + * Interface to the low level console driver + */ + +struct fb_info *crt_fb_init(long *mem_start); /* Through amiga_fb_init() */ +static int crtfb_switch(int con); +static int crtfb_updatevar(int con); +static void crtfb_blank(int blank); + + + /* + * Accelerated Functions used by the low level console driver + */ + +void crt_WaitQueue(u_short fifo); +void crt_WaitBlit(void); +void crt_BitBLT(u_short curx, u_short cury, u_short destx, u_short desty, + u_short width, u_short height, u_short mode); +void crt_RectFill(u_short x, u_short y, u_short width, u_short height, + u_short mode, u_short color); +void crt_MoveCursor(u_short x, u_short y); + + + /* + * Hardware Specific Routines + */ + +static int crt_init(void); +static int crt_encode_fix(struct fb_fix_screeninfo *fix, + struct crt_fb_par *par); +static int crt_decode_var(struct fb_var_screeninfo *var, + struct crt_fb_par *par); +static int crt_encode_var(struct fb_var_screeninfo *var, + struct crt_fb_par *par); +static int crt_getcolreg(u_int regno, u_int *red, u_int *green, u_int *blue, + u_int *transp); +static int crt_setcolreg(u_int regno, u_int red, u_int green, u_int blue, + u_int transp); +static void crt_blank(int blank); + + + /* + * Internal routines + */ + +static void crt_fb_get_par(struct crt_fb_par *par); +static void crt_fb_set_par(struct crt_fb_par *par); +static int do_fb_set_var(struct fb_var_screeninfo *var, int isactive); +static struct fb_cmap *get_default_colormap(int bpp); +static int do_fb_get_cmap(struct fb_cmap *cmap, struct fb_var_screeninfo *var, + int kspc); +static int do_fb_set_cmap(struct fb_cmap *cmap, struct fb_var_screeninfo *var, + int kspc); +static void do_install_cmap(int con); +static void memcpy_fs(int fsfromto, void *to, void *from, int len); +static void copy_cmap(struct fb_cmap *from, struct fb_cmap *to, int fsfromto); +static int alloc_cmap(struct fb_cmap *cmap, int len, int transp); +static void crt_fb_set_disp(int con); +static int get_video_mode(const char *name); + + +/* -------------------- Hardware specific routines -------------------------- */ + + + /* + * Initialization + * + * Set the default video mode for this chipset. If a video mode was + * specified on the command line, it will override the default mode. + */ + +static int crt_init(void) +{ + int i; + unsigned long *pfb; + + if (crtfb_mode == -1) + crtfb_mode = CRT_DEFMODE; + +#ifndef FBMEM_BASE_ADD + crtMem = (*memstart + 0x0ful) & ~(0x0ful); + crtSize = CRT_WIDTH*CRT_HEIGHT; + *memstart = crtMem + crtSize; +#else + crtMem = FBMEM_BASE_ADD; + crtSize = CRT_WIDTH*CRT_HEIGHT; +#endif + + REG32(CRT_FB_BASE_REG) = crtMem; + + for (i = 0, pfb = (unsigned long *)crtMem; i < crtSize; i += 4, pfb++) + *pfb = 0x01010101; + + REG32(CRT_CTL_REG) = 0x01ul; + + return (0); +} + + + /* + * This function should fill in the `fix' structure based on the + * values in the `par' structure. + */ + +static int crt_encode_fix(struct fb_fix_screeninfo *fix, + struct crt_fb_par *par) +{ + int i; + + strcpy(fix->id, crt_fb_name); + fix->smem_start = crtMem; + fix->smem_len = crtSize; + + fix->type = FB_TYPE_PACKED_PIXELS; + fix->type_aux = 0; + fix->visual = FB_VISUAL_PSEUDOCOLOR; + + fix->xpanstep = 0; + fix->ypanstep = 0; + fix->ywrapstep = 0; + fix->line_length = CRT_WIDTH; + + for (i = 0; i < arraysize(fix->reserved); i++) + fix->reserved[i] = 0; + + return(0); +} + + + /* + * Get the video params out of `var'. If a value doesn't fit, round + * it up, if it's too big, return -EINVAL. + */ + +static int crt_decode_var(struct fb_var_screeninfo *var, + struct crt_fb_par *par) +{ + par->xres = CRT_WIDTH; + par->yres = CRT_HEIGHT; + par->bpp = 8; + return(0); +} + + + /* + * Fill the `var' structure based on the values in `par' and maybe + * other values read out of the hardware. + */ + +static int crt_encode_var(struct fb_var_screeninfo *var, + struct crt_fb_par *par) +{ + int i; + + var->xres = par->xres; + var->yres = par->yres; + var->xres_virtual = par->xres; +// var->yres_virtual = par->yres; + var->yres_virtual = 512*1024; + var->xoffset = 0; + var->yoffset = 0; + + var->bits_per_pixel = par->bpp; + var->grayscale = 0; + + var->red.offset = 0; + var->red.length = 5; + var->red.msb_right = 0; + var->green.offset = 0; + var->green.length = 6; + var->green.msb_right = 0; + var->blue.offset = 0; + var->blue.length = 5; + var->blue.msb_right = 0; + + var->transp.offset = 0; + var->transp.length = 0; + var->transp.msb_right = 0; + + var->nonstd = 0; + var->activate = FB_ACTIVATE_NOW; + + var->height = -1; + var->width = -1; + var->accel = FB_ACCEL_NONE; + var->vmode = FB_VMODE_NONINTERLACED; + + /* Dummy values */ + + var->pixclock = 0; + var->sync = 0; + var->left_margin = 0; + var->right_margin = 0; + var->upper_margin = 0; + var->lower_margin = 0; + var->hsync_len = 0; + var->vsync_len = 0; + + for (i = 0; i < arraysize(var->reserved); i++) + var->reserved[i] = 0; + + return(0); +} + + + /* + * Set a single color register. The values supplied are already + * rounded down to the hardware's capabilities (according to the + * entries in the var structure). Return != 0 for invalid regno. + */ + +static int crt_setcolreg(u_int regno, u_int red, u_int green, u_int blue, + u_int transp) +{ + if (regno > 255) + return (1); + + setpal(regno, red, green, blue); + crt_colour_table [regno][0] = red & 0xff; + crt_colour_table [regno][1] = green & 0xff; + crt_colour_table [regno][2] = blue & 0xff; + crt_colour_table [regno][3] = transp; + + return (0); +} + + + /* + * Read a single color register and split it into + * colors/transparent. Return != 0 for invalid regno. + */ + +static int crt_getcolreg(u_int regno, u_int *red, u_int *green, u_int *blue, + u_int *transp) +{ + if (regno > 255) + return (1); + + *red = crt_colour_table [regno][0]; + *green = crt_colour_table [regno][1]; + *blue = crt_colour_table [regno][2]; + *transp = crt_colour_table [regno][3]; + + return (0); +} + + + /* + * (Un)Blank the screen + */ + +void crt_blank(int blank) +{ +#if 0 + if (blank) + (*(volatile unsigned char*)0xFFFFFA27) &= ~128; + else + (*(volatile unsigned char*)0xFFFFFA27) |= 128; +#endif +} + + +/************************************************************** + * We are waiting for "fifo" FIFO-slots empty + */ +void crt_WaitQueue (u_short fifo) +{ +} + +/************************************************************** + * We are waiting for Hardware (Graphics Engine) not busy + */ +void crt_WaitBlit (void) +{ +} + +/************************************************************** + * BitBLT - Through the Plane + */ +void crt_BitBLT (u_short curx, u_short cury, u_short destx, u_short desty, + u_short width, u_short height, u_short mode) +{ +#if 0 +u_short blitcmd = S3_BITBLT; + +/* Set drawing direction */ +/* -Y, X maj, -X (default) */ +if (curx > destx) + blitcmd |= 0x0020; /* Drawing direction +X */ +else + { + curx += (width - 1); + destx += (width - 1); + } + +if (cury > desty) + blitcmd |= 0x0080; /* Drawing direction +Y */ +else + { + cury += (height - 1); + desty += (height - 1); + } + +crt_WaitQueue (0x8000); + +*((u_short volatile *)(crtRegs + S3_PIXEL_CNTL)) = 0xa000; +*((u_short volatile *)(crtRegs + S3_FRGD_MIX)) = (0x0060 | mode); + +*((u_short volatile *)(crtRegs + S3_CUR_X)) = curx; +*((u_short volatile *)(crtRegs + S3_CUR_Y)) = cury; + +*((u_short volatile *)(crtRegs + S3_DESTX_DIASTP)) = destx; +*((u_short volatile *)(crtRegs + S3_DESTY_AXSTP)) = desty; + +*((u_short volatile *)(crtRegs + S3_MIN_AXIS_PCNT)) = height - 1; +*((u_short volatile *)(crtRegs + S3_MAJ_AXIS_PCNT)) = width - 1; + +*((u_short volatile *)(crtRegs + S3_CMD)) = blitcmd; +#endif +} + +/************************************************************** + * Rectangle Fill Solid + */ +void crt_RectFill (u_short x, u_short y, u_short width, u_short height, + u_short mode, u_short color) +{ +#if 0 +u_short blitcmd = S3_FILLEDRECT; + +crt_WaitQueue (0x8000); + +*((u_short volatile *)(crtRegs + S3_PIXEL_CNTL)) = 0xa000; +*((u_short volatile *)(crtRegs + S3_FRGD_MIX)) = (0x0020 | mode); + +*((u_short volatile *)(crtRegs + S3_MULT_MISC)) = 0xe000; +*((u_short volatile *)(crtRegs + S3_FRGD_COLOR)) = color; + +*((u_short volatile *)(crtRegs + S3_CUR_X)) = x; +*((u_short volatile *)(crtRegs + S3_CUR_Y)) = y; + +*((u_short volatile *)(crtRegs + S3_MIN_AXIS_PCNT)) = height - 1; +*((u_short volatile *)(crtRegs + S3_MAJ_AXIS_PCNT)) = width - 1; + +*((u_short volatile *)(crtRegs + S3_CMD)) = blitcmd; +#endif +} + + +/************************************************************** + * Move cursor to x, y + */ +void crt_MoveCursor (u_short x, u_short y) +{ + (*(volatile unsigned short*)0xFFFFFA18) = (crtfbCursorMode << 14) | x; + (*(volatile unsigned short*)0xFFFFFA1A) = y; +#if 0 +*(crtRegs + S3_CRTC_ADR) = 0x39; +*(crtRegs + S3_CRTC_DATA) = 0xa0; + +*(crtRegs + S3_CRTC_ADR) = S3_HWGC_ORGX_H; +*(crtRegs + S3_CRTC_DATA) = (char)((x & 0x0700) >> 8); +*(crtRegs + S3_CRTC_ADR) = S3_HWGC_ORGX_L; +*(crtRegs + S3_CRTC_DATA) = (char)(x & 0x00ff); + +*(crtRegs + S3_CRTC_ADR) = S3_HWGC_ORGY_H; +*(crtRegs + S3_CRTC_DATA) = (char)((y & 0x0700) >> 8); +*(crtRegs + S3_CRTC_ADR) = S3_HWGC_ORGY_L; +*(crtRegs + S3_CRTC_DATA) = (char)(y & 0x00ff); +#endif +} + + +/* -------------------- Interfaces to hardware functions -------------------- */ + + +static struct fb_hwswitch crt_switch = { + crt_init, crt_encode_fix, crt_decode_var, crt_encode_var, + crt_getcolreg, crt_setcolreg, crt_blank +}; + + +/* -------------------- Generic routines ------------------------------------ */ + + + /* + * Fill the hardware's `par' structure. + */ + +static void crt_fb_get_par(struct crt_fb_par *par) +{ + if (current_par_valid) + *par = current_par; + else + fbhw->decode_var(&crt_fb_predefined[crtfb_mode], par); +} + + +static void crt_fb_set_par(struct crt_fb_par *par) +{ + current_par = *par; + current_par_valid = 1; +} + + +static int do_fb_set_var(struct fb_var_screeninfo *var, int isactive) +{ + int err, activate; + struct crt_fb_par par; + + if ((err = fbhw->decode_var(var, &par))) + return(err); + activate = var->activate; + if ((var->activate & FB_ACTIVATE_MASK) == FB_ACTIVATE_NOW && isactive) + crt_fb_set_par(&par); + fbhw->encode_var(var, &par); + var->activate = activate; + return(0); +} + + + /* + * Default Colormaps + */ + +static u_short red16[] = + { 0xc000, 0x0000, 0x0000, 0x0000, 0xc000, 0xc000, 0xc000, 0x0000, + 0x8000, 0x0000, 0x0000, 0x0000, 0xffff, 0xffff, 0xffff, 0xffff}; +static u_short green16[] = + { 0xc000, 0x0000, 0xc000, 0xc000, 0x0000, 0x0000, 0xc000, 0x0000, + 0x8000, 0x0000, 0xffff, 0xffff, 0x0000, 0x0000, 0xffff, 0xffff}; +static u_short blue16[] = + { 0xc000, 0x0000, 0x0000, 0xc000, 0x0000, 0xc000, 0x0000, 0x0000, + 0x8000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff}; + + +static struct fb_cmap default_16_colors = + { 0, 16, red16, green16, blue16, NULL }; + + +static struct fb_cmap *get_default_colormap(int bpp) +{ + return(&default_16_colors); +} + + +#define CNVT_TOHW(val,width) ((((val)<<(width))+0x7fff-(val))>>16) +#define CNVT_FROMHW(val,width) (((width) ? ((((val)<<16)-(val)) / \ + ((1<<(width))-1)) : 0)) + +static int do_fb_get_cmap(struct fb_cmap *cmap, struct fb_var_screeninfo *var, + int kspc) +{ + int i, start; + u_short *red, *green, *blue, *transp; + u_int hred, hgreen, hblue, htransp; + + red = cmap->red; + green = cmap->green; + blue = cmap->blue; + transp = cmap->transp; + start = cmap->start; + if (start < 0) + return(-EINVAL); + for (i = 0; i < cmap->len; i++) { + if (fbhw->getcolreg(start++, &hred, &hgreen, &hblue, &htransp)) + return(0); + hred = CNVT_FROMHW(hred, var->red.length); + hgreen = CNVT_FROMHW(hgreen, var->green.length); + hblue = CNVT_FROMHW(hblue, var->blue.length); + htransp = CNVT_FROMHW(htransp, var->transp.length); + if (kspc) { + *red = hred; + *green = hgreen; + *blue = hblue; + if (transp) + *transp = htransp; + } else { + put_fs_word(hred, red); + put_fs_word(hgreen, green); + put_fs_word(hblue, blue); + if (transp) + put_fs_word(htransp, transp); + } + red++; + green++; + blue++; + if (transp) + transp++; + } + return(0); +} + + +static int do_fb_set_cmap(struct fb_cmap *cmap, struct fb_var_screeninfo *var, + int kspc) +{ + int i, start; + u_short *red, *green, *blue, *transp; + u_int hred, hgreen, hblue, htransp; + + red = cmap->red; + green = cmap->green; + blue = cmap->blue; + transp = cmap->transp; + start = cmap->start; + + if (start < 0) + return(-EINVAL); + for (i = 0; i < cmap->len; i++) { + if (kspc) { + hred = *red; + hgreen = *green; + hblue = *blue; + htransp = transp ? *transp : 0; + } else { + hred = get_fs_word(red); + hgreen = get_fs_word(green); + hblue = get_fs_word(blue); + htransp = transp ? get_fs_word(transp) : 0; + } + hred = CNVT_TOHW(hred, var->red.length); + hgreen = CNVT_TOHW(hgreen, var->green.length); + hblue = CNVT_TOHW(hblue, var->blue.length); + htransp = CNVT_TOHW(htransp, var->transp.length); + red++; + green++; + blue++; + if (transp) + transp++; + if (fbhw->setcolreg(start++, hred, hgreen, hblue, htransp)) + return(0); + } + return(0); +} + + +static void do_install_cmap(int con) +{ + if (con != currcon) + return; + if (disp[con].cmap.len) + do_fb_set_cmap(&disp[con].cmap, &disp[con].var, 1); + else + do_fb_set_cmap(get_default_colormap(disp[con].var.bits_per_pixel), + &disp[con].var, 1); +} + + +static void memcpy_fs(int fsfromto, void *to, void *from, int len) +{ + switch (fsfromto) { + case 0: + memcpy(to, from, len); + return; + case 1: + memcpy_fromfs(to, from, len); + return; + case 2: + memcpy_tofs(to, from, len); + return; + } +} + + +static void copy_cmap(struct fb_cmap *from, struct fb_cmap *to, int fsfromto) +{ + int size; + int tooff = 0, fromoff = 0; + + if (to->start > from->start) + fromoff = to->start-from->start; + else + tooff = from->start-to->start; + size = to->len-tooff; + if (size > from->len-fromoff) + size = from->len-fromoff; + if (size < 0) + return; + size *= sizeof(u_short); + memcpy_fs(fsfromto, to->red+tooff, from->red+fromoff, size); + memcpy_fs(fsfromto, to->green+tooff, from->green+fromoff, size); + memcpy_fs(fsfromto, to->blue+tooff, from->blue+fromoff, size); + if (from->transp && to->transp) + memcpy_fs(fsfromto, to->transp+tooff, from->transp+fromoff, size); +} + + +static int alloc_cmap(struct fb_cmap *cmap, int len, int transp) +{ + int size = len*sizeof(u_short); + + if (cmap->len != len) { + if (cmap->red) + kfree(cmap->red); + if (cmap->green) + kfree(cmap->green); + if (cmap->blue) + kfree(cmap->blue); + if (cmap->transp) + kfree(cmap->transp); + cmap->red = cmap->green = cmap->blue = cmap->transp = NULL; + cmap->len = 0; + if (!len) + return(0); + if (!(cmap->red = kmalloc(size, GFP_ATOMIC))) + return(-1); + if (!(cmap->green = kmalloc(size, GFP_ATOMIC))) + return(-1); + if (!(cmap->blue = kmalloc(size, GFP_ATOMIC))) + return(-1); + if (transp) { + if (!(cmap->transp = kmalloc(size, GFP_ATOMIC))) + return(-1); + } else + cmap->transp = NULL; + } + cmap->start = 0; + cmap->len = len; + copy_cmap(get_default_colormap(len), cmap, 0); + return(0); +} + + + /* + * Get the Fixed Part of the Display + */ + +static int crt_fb_get_fix(struct fb_fix_screeninfo *fix, int con) +{ + struct crt_fb_par par; + int error = 0; + + if (con == -1) + crt_fb_get_par(&par); + else + error = fbhw->decode_var(&disp[con].var, &par); + return(error ? error : fbhw->encode_fix(fix, &par)); +} + + + /* + * Get the User Defined Part of the Display + */ + +static int crt_fb_get_var(struct fb_var_screeninfo *var, int con) +{ + struct crt_fb_par par; + int error = 0; + + if (con == -1) { + crt_fb_get_par(&par); + error = fbhw->encode_var(var, &par); + } else + *var = disp[con].var; + return(error); +} + + +static void crt_fb_set_disp(int con) +{ + struct fb_fix_screeninfo fix; + + crt_fb_get_fix(&fix, con); + if (con == -1) + con = 0; + disp[con].screen_base = (u_char *)fix.smem_start; + disp[con].visual = fix.visual; + disp[con].type = fix.type; + disp[con].type_aux = fix.type_aux; + disp[con].ypanstep = fix.ypanstep; + disp[con].ywrapstep = fix.ywrapstep; + disp[con].line_length = fix.line_length; + disp[con].can_soft_blank = 0; + disp[con].inverse = crtfb_inverse; +} + + + /* + * Set the User Defined Part of the Display + */ + +static int crt_fb_set_var(struct fb_var_screeninfo *var, int con) +{ + int err, oldxres, oldyres, oldvxres, oldvyres, oldbpp; + + if ((err = do_fb_set_var(var, con == currcon))) + return(err); + if ((var->activate & FB_ACTIVATE_MASK) == FB_ACTIVATE_NOW) { + oldxres = disp[con].var.xres; + oldyres = disp[con].var.yres; + oldvxres = disp[con].var.xres_virtual; + oldvyres = disp[con].var.yres_virtual; + oldbpp = disp[con].var.bits_per_pixel; + disp[con].var = *var; + if (oldxres != var->xres || oldyres != var->yres || + oldvxres != var->xres_virtual || oldvyres != var->yres_virtual || + oldbpp != var->bits_per_pixel) { + crt_fb_set_disp(con); + (*fb_info.changevar)(con); + alloc_cmap(&disp[con].cmap, 0, 0); + do_install_cmap(con); + } + } + var->activate = 0; + return(0); +} + + + /* + * Get the Colormap + */ + +static int crt_fb_get_cmap(struct fb_cmap *cmap, int kspc, int con) +{ + if (con == currcon) /* current console? */ + return(do_fb_get_cmap(cmap, &disp[con].var, kspc)); + else if (disp[con].cmap.len) /* non default colormap? */ + copy_cmap(&disp[con].cmap, cmap, kspc ? 0 : 2); + else + copy_cmap(get_default_colormap(disp[con].var.bits_per_pixel), cmap, + kspc ? 0 : 2); + return(0); +} + + + /* + * Set the Colormap + */ + +static int crt_fb_set_cmap(struct fb_cmap *cmap, int kspc, int con) +{ + int err; + + if (!disp[con].cmap.len) { /* no colormap allocated? */ + if ((err = alloc_cmap(&disp[con].cmap, 1<init(); + fbhw->decode_var(&crt_fb_predefined[crtfb_mode], &par); + fbhw->encode_var(&crt_fb_predefined[0], &par); + + strcpy(fb_info.modename, crt_fb_name); + fb_info.disp = disp; +#if LCD + strcpy(fb_info.fontname, "VGA8x8"); +#else + strcpy(fb_info.fontname, "VGA8x16"); +#endif + fb_info.switch_con = &crtfb_switch; + fb_info.updatevar = &crtfb_updatevar; + fb_info.blank = &crtfb_blank; + + do_fb_set_var(&crt_fb_predefined[0], 1); + crt_fb_get_var(&disp[0].var, -1); + crt_fb_set_disp(-1); + do_install_cmap(0); + return(&fb_info); +} + + +static int crtfb_switch(int con) +{ + /* Do we have to save the colormap? */ + if (disp[currcon].cmap.len) + do_fb_get_cmap(&disp[currcon].cmap, &disp[currcon].var, 1); + + do_fb_set_var(&disp[con].var, 1); + currcon = con; + /* Install new colormap */ + do_install_cmap(con); + return(0); +} + + + /* + * Update the `var' structure (called by fbcon.c) + * + * This call looks only at yoffset and the FB_VMODE_YWRAP flag in `var'. + * Since it's called by a kernel driver, no range checking is done. + */ + +static int crtfb_updatevar(int con) +{ + struct display *d; + + d = &disp[con]; + + REG32(CRT_FB_BASE_REG) = crtMem + d->var.yoffset; + + return(0); +} + + + /* + * Blank the display. + */ + +static void crtfb_blank(int blank) +{ + fbhw->blank(blank); +} + + + /* + * Get a Video Mode + */ + +static int get_video_mode(const char *name) +{ + int i; + + for (i = 1; i < NUM_PREDEF_MODES; i++) + if (!strcmp(name, crt_fb_modenames[i])) + return(i); + return(0); +} Index: console/fbcon.c =================================================================== --- console/fbcon.c (nonexistent) +++ console/fbcon.c (revision 1765) @@ -0,0 +1,4010 @@ +/* + * linux/arch/or32/console/fbcon.c -- Low level frame buffer based console + * driver + * + * Copyright (C) 2001,2002 Simon Srot , + * www.opencores.org + * + * Based on: + * + * linux/arch/m68knommu/console/fbcon.c -- Low level frame buffer based console + * driver + * + * Copyright (C) 1998,1999 Kenneth Albanowski , + * The Silver Hammer Group, Ltd. + * + * linux/arch/m68k/console/fbcon.c -- Low level frame buffer based console + * driver + * + * Copyright (C) 1995 Geert Uytterhoeven + * + * + * This file is based on the original Amiga console driver (amicon.c): + * + * Copyright (C) 1993 Hamish Macdonald + * Greg Harp + * Copyright (C) 1994 David Carter [carter@compsci.bristol.ac.uk] + * + * with work by William Rucklidge (wjr@cs.cornell.edu) + * Geert Uytterhoeven + * Jes Sorensen (jds@kom.auc.dk) + * Martin Apel + * + * and on the original Atari console driver (atacon.c): + * + * Copyright (C) 1993 Bjoern Brauel + * Roman Hodek + * + * with work by Guenther Kelleter + * Martin Schaller + * Andreas Schwab + * + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive + * for more details. + */ + +/* + * To do: + * - Implement 16 plane mode. + * - Add support for 16/24/32 bit packed pixels + * - Hardware cursor + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +#include "../../../drivers/char/vt_kern.h" /* vt_cons and vc_resize_con() */ + +extern void vc_resize_con(unsigned long lines, unsigned long columns, unsigned int currcons); +extern struct fb_info *crt_fb_init(long *mem_start); + + +/* Import console_blanked from console.c */ + +extern int console_blanked; + + + /* + * The following symbols select what modes are supported. They should + * be settable by the user ("make config") later. + */ + +/* Clear all definitions */ + +#undef CONFIG_FBCON_MONO +#undef CONFIG_FBCON_ILBM +#undef CONFIG_FBCON_PLANES +#undef CONFIG_FBCON_2PLANE +#undef CONFIG_FBCON_4PLANE +#undef CONFIG_FBCON_8PLANE +#undef CONFIG_FBCON_8PACKED +#undef CONFIG_FBCON_8PACKED_NOTLIGNED +#undef CONFIG_FBCON_16PACKED +#undef CONFIG_FBCON_24PACKED +#undef CONFIG_FBCON_32PACKED +#undef CONFIG_FBCON_CYBER + +/* Frame buffer notaligned wrap boundary */ +#define CRT_WRAP_BOUNDARY (512*1024) +#define CRT_WRAP(base, add) (((base) & ~(CRT_WRAP_BOUNDARY - 1)) | ((add) & (CRT_WRAP_BOUNDARY - 1))) + +/* Monochrome is default */ + +#define CONFIG_FBCON_MONO +#define CONFIG_FBCON_8PACKED_NOTALIGNED + +/* Extra definitions to make the code more readable */ + +#if defined(CONFIG_FBCON_2PLANE) || defined(CONFIG_FBCON_4PLANE) || \ + defined(CONFIG_FBCON_8PLANE) +#define CONFIG_FBCON_IPLAN2 +#else +#undef CONFIG_FBCON_IPLAN2 +#endif + +#if defined(CONFIG_FBCON_CYBER) || defined(CONFIG_FBCON_8PACKED) || \ + defined(CONFIG_FBCON_8PACKED_NOTALIGNED) || \ + defined(CONFIG_FBCON_16PACKED) || defined(CONFIG_FBCON_24PACKED) || \ + defined(CONFIG_FBCON_32PACKED) +#define CONFIG_FBCON_PACKED +#else +#undef CONFIG_FBCON_PACKED +#endif + + +struct fb_info *fb_info; +struct display *disp; + + +/* ++Geert: Sorry, no hardware cursor support at the moment; + use Atari alike software cursor */ + +static int cursor_drawn = 0; + +#define CURSOR_DRAW_DELAY (2) + +/* # VBL ints between cursor state changes */ +#define AMIGA_CURSOR_BLINK_RATE (20) +#define ATARI_CURSOR_BLINK_RATE (42) + +static int vbl_cursor_cnt = 0; +static int cursor_on = 0; +static int cursor_blink_rate; + +static __inline__ int CURSOR_UNDRAWN(void) +{ + int cursor_was_drawn; + vbl_cursor_cnt = 0; + cursor_was_drawn = cursor_drawn; + cursor_drawn = 0; + return(cursor_was_drawn); +} + + /* + * Attribute Decoding + */ + +/* Color */ +#define attr_fgcol(p,conp) \ + (((conp)->vc_attr >> ((p)->inverse ? 4 : 0)) & 0x0f) +#define attr_bgcol(p,conp) \ + (((conp)->vc_attr >> ((p)->inverse ? 0 : 4)) & 0x0f) +#define attr_bgcol_ec(p,conp) \ + (((conp)->vc_video_erase_char >> ((p)->inverse ? 8 : 12)) & 0x0f) + +/* Monochrome */ +#define attr_bold(p,conp) \ + (((conp)->vc_attr & 3) == 2) +#define attr_reverse(p,conp) \ + (((conp)->vc_attr & 8) ^ ((p)->inverse ? 8 : 0)) +#define attr_underline(p,conp) \ + (((conp)->vc_attr) & 4) + + + /* + * Scroll Method + */ + +#define SCROLL_YWRAP (0) +#define SCROLL_YPAN (1) +#define SCROLL_YMOVE (2) +#define SCROLL_YWRAP_NOTALIGNED (4) + +#define divides(a, b) ((!(a) || (b)%(a)) ? 0 : 1) + + + /* + * Interface used by the world + */ + +static u_long fbcon_startup(u_long kmem_start, char **display_desc); +static void fbcon_init(struct vc_data *conp); +static int fbcon_deinit(struct vc_data *conp); +static int fbcon_changevar(int con); +static int fbcon_clear(struct vc_data *conp, int sy, int sx, int height, + int width); +static int fbcon_putc(struct vc_data *conp, int c, int y, int x); +static int fbcon_putcs(struct vc_data *conp, const char *s, int count, int y, + int x); +static int fbcon_cursor(struct vc_data *conp, int mode); +static int fbcon_scroll(struct vc_data *conp, int t, int b, int dir, int count); +static int fbcon_bmove(struct vc_data *conp, int sy, int sx, int dy, int dx, + int height, int width); +static int fbcon_switch(struct vc_data *conp); +static int fbcon_blank(int blank); + + + /* + * Internal routines + */ + +static void fbcon_setup(int con, int setcol, int cls); +static __inline__ void *mymemclear_small(void *s, size_t count); +static __inline__ void *mymemclear(void *s, size_t count); +static __inline__ void *mymemset(void *s, size_t count); +static __inline__ void *mymemmove(void *d, void *s, size_t count); +static __inline__ void *mymemmove_notaligned(void *d, void *s, size_t count); +static __inline__ void fast_memmove(char *dst, char *src, size_t size); +static __inline__ void memclear_4p_col(void *d, size_t h, u_long val, int bpr); +static __inline__ void memset_even_4p(void *d, size_t count, u_long val1, + u_long val2); +static __inline__ void memmove_4p_col(void *d, void *s, int h, int bpr); +static __inline__ u_long expand4l(u_char c); +static __inline__ void expand4dl(u_char c, u_long *ret1, u_long *ret2); +static __inline__ u_long dup4l(u_char c); +static __inline__ void memclear_8p_col(void *d, size_t h, u_long val1, + u_long val2, int bpr); +static __inline__ void memset_even_8p(void *d, size_t count, u_long val1, + u_long val2, u_long val3, u_long val4); +static __inline__ void memmove_8p_col(void *d, void *s, int h, int bpr); +static __inline__ void expand8dl(u_char c, u_long *ret1, u_long *ret2); +static __inline__ void memclear_2p_col(void *d, size_t h, u_short val, int bpr); +static __inline__ void memset_even_2p(void *d, size_t count, u_long val); +static __inline__ void memmove_2p_col(void *d, void *s, int h, int bpr); +static __inline__ u_short expand2w(u_char c); +static __inline__ u_long expand2l(u_char c); +static __inline__ u_short dup2w(u_char c); +static __inline__ int real_y(struct display *p, int y); +static void fbcon_vbl_handler(int irq, struct pt_regs *fp, void *dummy); +static void fbcon_bmove_rec(struct display *p, int sy, int sx, int dy, int dx, + int height, int width, u_int y_break); + + + /* + * Monochrome + */ + +#ifdef CONFIG_FBCON_MONO +static void bmove_mono(struct display *p, int sy, int sx, int dy, int dx, + int height, int width); +static void clear_mono(struct vc_data *conp, struct display *p, int sy, int sx, + int height, int width); +static void putc_mono(struct vc_data *conp, struct display *p, int c, int y, + int x); +static void putcs_mono(struct vc_data *conp, struct display *p, const char *s, + int count, int y, int x); +static void rev_char_mono(struct display *p, int x, int y); +#endif /* CONFIG_FBCON_MONO */ + + + /* + * Color Interleaved Planes + */ + +#ifdef CONFIG_FBCON_ILBM +static void bmove_ilbm(struct display *p, int sy, int sx, int dy, int dx, + int height, int width); +static void clear_ilbm(struct vc_data *conp, struct display *p, int sy, int sx, + int height, int width); +static void putc_ilbm(struct vc_data *conp, struct display *p, int c, int y, + int x); +static void putcs_ilbm(struct vc_data *conp, struct display *p, const char *s, + int count, int y, int x); +static void rev_char_ilbm(struct display *p, int x, int y); +#endif /* CONFIG_FBCON_ILBM */ + + + /* + * Color Planes + */ + +#ifdef CONFIG_FBCON_PLANES +static void bmove_plan(struct display *p, int sy, int sx, int dy, int dx, + int height, int width); +static void clear_plan(struct vc_data *conp, struct display *p, int sy, int sx, + int height, int width); +static void putc_plan(struct vc_data *conp, struct display *p, int c, int y, + int x); +static void putcs_plan(struct vc_data *conp, struct display *p, const char *s, + int count, int y, int x); +static void rev_char_plan(struct display *p, int x, int y); +#endif /* CONFIG_FBCON_PLANES */ + + + /* + * 2 Planes (2-bytes interleave) + */ + +#ifdef CONFIG_FBCON_2PLANE +static void bmove_2_plane(struct display *p, int sy, int sx, int dy, int dx, + int height, int width); +static void clear_2_plane(struct vc_data *conp, struct display *p, int sy, + int sx, int height, int width); +static void putc_2_plane(struct vc_data *conp, struct display *p, int c, int y, + int x); +static void putcs_2_plane(struct vc_data *conp, struct display *p, + const char *s, int count, int y, int x); +static void rev_char_2_plane(struct display *display, int x, int y); +#endif /* CONFIG_FBCON_2PLANE */ + + + /* + * 4 Planes (2-bytes interleave) + */ + +#ifdef CONFIG_FBCON_4PLANE +static void bmove_4_plane(struct display *p, int sy, int sx, int dy, int dx, + int height, int width); +static void clear_4_plane(struct vc_data *conp, struct display *p, int sy, + int sx, int height, int width); +static void putc_4_plane(struct vc_data *conp, struct display *p, int c, int y, + int x); +static void putcs_4_plane(struct vc_data *conp, struct display *p, + const char *s, int count, int y, int x); +static void rev_char_4_plane(struct display *p, int x, int y); +#endif /* CONFIG_FBCON_4PLANE */ + + + /* + * 8 Planes (2-bytes interleave) + */ + +#ifdef CONFIG_FBCON_8PLANE +static void bmove_8_plane(struct display *p, int sy, int sx, int dy, int dx, + int height, int width); +static void clear_8_plane(struct vc_data *conp, struct display *p, int sy, + int sx, int height, int width); +static void putc_8_plane(struct vc_data *conp, struct display *p, int c, int y, + int x); +static void putcs_8_plane(struct vc_data *conp, struct display *p, + const char *s, int count, int y, int x); +static void rev_char_8_plane(struct display *display, int x, int y); +#endif /* CONFIG_FBCON_8PLANE */ + + + /* + * 8 bpp Packed Pixels + */ + +#ifdef CONFIG_FBCON_8PACKED +static void bmove_8_packed(struct display *p, int sy, int sx, int dy, int dx, + int height, int width); +static void clear_8_packed(struct vc_data *conp, struct display *p, int sy, + int sx, int height, int width); +static void putc_8_packed(struct vc_data *conp, struct display *p, int c, int y, + int x); +static void putcs_8_packed(struct vc_data *conp, struct display *p, + const char *s, int count, int y, int x); +static void rev_char_8_packed(struct display *p, int x, int y); +#endif /* CONFIG_FBCON_8PACKED */ + + + + /* + * 8 bpp Packed Pixels + */ + +#ifdef CONFIG_FBCON_8PACKED_NOTALIGNED +static void bmove_8_packed(struct display *p, int sy, int sx, int dy, int dx, + int height, int width); +static void clear_8_packed(struct vc_data *conp, struct display *p, int sy, + int sx, int height, int width); +static void putc_8_packed(struct vc_data *conp, struct display *p, int c, int y, + int x); +static void putcs_8_packed(struct vc_data *conp, struct display *p, + const char *s, int count, int y, int x); +static void rev_char_8_packed(struct display *p, int x, int y); +#endif /* CONFIG_FBCON_8PACKED_NOTALIGNED */ + + + /* + * 16 bpp Packed Pixels + */ + +#ifdef CONFIG_FBCON_16PACKED +static void bmove_16_packed(struct display *p, int sy, int sx, int dy, int dx, + int height, int width); +static void clear_16_packed(struct vc_data *conp, struct display *p, int sy, + int sx, int height, int width); +static void putc_16_packed(struct vc_data *conp, struct display *p, int c, + int y, int x); +static void putcs_16_packed(struct vc_data *conp, struct display *p, + const char *s, int count, int y, int x); +static void rev_char_16_packed(struct display *p, int x, int y); +#endif /* CONFIG_FBCON_8PACKED */ + + + /* + * Cybervision (accelerated) + */ + +#ifdef CONFIG_FBCON_CYBER +static void bmove_cyber(struct display *p, int sy, int sx, int dy, int dx, + int height, int width); +static void clear_cyber(struct vc_data *conp, struct display *p, int sy, int sx, + int height, int width); +static void putc_cyber(struct vc_data *conp, struct display *p, int c, int y, + int x); +static void putcs_cyber(struct vc_data *conp, struct display *p, const char *s, + int count, int y, int x); +static void rev_char_cyber(struct display *p, int x, int y); + +extern void Cyber_WaitQueue(u_short fifo); +extern void Cyber_WaitBlit(void); +extern void Cyber_BitBLT(u_short curx, u_short cury, u_short destx, + u_short desty, u_short width, u_short height, + u_short mode); +extern void Cyber_RectFill(u_short x, u_short y, u_short width, u_short height, + u_short mode, u_short color); +extern void Cyber_MoveCursor(u_short x, u_short y); +#endif /* CONFIG_FBCON_CYBER */ + + + /* + * `switch' for the Low Level Operations + */ + +struct display_switch { + void (*bmove)(struct display *p, int sy, int sx, int dy, int dx, int height, + int width); + void (*clear)(struct vc_data *conp, struct display *p, int sy, int sx, + int height, int width); + void (*putc)(struct vc_data *conp, struct display *p, int c, int y, int x); + void (*putcs)(struct vc_data *conp, struct display *p, const char *s, + int count, int y, int x); + void (*rev_char)(struct display *p, int x, int y); +}; + + +#ifdef CONFIG_FBCON_MONO +struct display_switch dispsw_mono = { + bmove_mono, clear_mono, putc_mono, putcs_mono, rev_char_mono +}; +#else /* CONFIG_FBCON_MONO */ +struct display_switch dispsw_mono = { + NULL, NULL, NULL, NULL, NULL +}; +#endif + +#ifdef CONFIG_FBCON_ILBM +struct display_switch dispsw_ilbm = { + bmove_ilbm, clear_ilbm, putc_ilbm, putcs_ilbm, rev_char_ilbm +}; +#endif /* CONFIG_FBCON_ILBM */ + +#ifdef CONFIG_FBCON_PLANES +struct display_switch dispsw_plan = { + bmove_plan, clear_plan, putc_plan, putcs_plan, rev_char_plan +}; +#endif /* CONFIG_FBCON_PLANES */ + +#ifdef CONFIG_FBCON_2PLANE +struct display_switch dispsw_2_plane = { + bmove_2_plane, clear_2_plane, putc_2_plane, putcs_2_plane, rev_char_2_plane +}; +#endif /* CONFIG_FBCON_2PLANE */ + +#ifdef CONFIG_FBCON_4PLANE +struct display_switch dispsw_4_plane = { + bmove_4_plane, clear_4_plane, putc_4_plane, putcs_4_plane, rev_char_4_plane +}; +#endif /* CONFIG_FBCON_4PLANE */ + +#ifdef CONFIG_FBCON_8PLANE +struct display_switch dispsw_8_plane = { + bmove_8_plane, clear_8_plane, putc_8_plane, putcs_8_plane, rev_char_8_plane +}; +#endif /* CONFIG_FBCON_8PLANE */ + +#ifdef CONFIG_FBCON_8PACKED +struct display_switch dispsw_8_packed = { + bmove_8_packed, clear_8_packed, putc_8_packed, putcs_8_packed, rev_char_8_packed +}; +#endif /* CONFIG_FBCON_8PACKED */ + +#ifdef CONFIG_FBCON_8PACKED_NOTALIGNED +struct display_switch dispsw_8_packed = { + bmove_8_packed, clear_8_packed, putc_8_packed, putcs_8_packed, rev_char_8_packed +}; +#endif /* CONFIG_FBCON_8PACKED_NOTALIGNED */ + +#ifdef CONFIG_FBCON_16PACKED +struct display_switch dispsw_16_packed = { + bmove_16_packed, clear_16_packed, putc_16_packed, putcs_16_packed, + rev_char_16_packed +}; +#endif /* CONFIG_FBCON_16PACKED */ + +#ifdef CONFIG_FBCON_CYBER +struct display_switch dispsw_cyber = { + bmove_cyber, clear_cyber, putc_cyber, putcs_cyber, rev_char_cyber +}; +#endif /* CONFIG_FBCON_CYBER */ + + +static u_long fbcon_startup(u_long kmem_start, char **display_desc) +{ + int irqres = 0; + + fb_info = crt_fb_init(&kmem_start); + disp = fb_info->disp; + *display_desc = fb_info->modename; + fb_info->changevar = &fbcon_changevar; + +#ifdef CONFIG_AMIGA + if (MACH_IS_AMIGA) { + cursor_blink_rate = AMIGA_CURSOR_BLINK_RATE; + irqres = add_isr(IRQ_AMIGA_VERTB, fbcon_vbl_handler, 0, NULL, + "console/cursor"); + } +#endif /* CONFIG_AMIGA */ +#ifdef CONFIG_ATARI + if (MACH_IS_ATARI) { + cursor_blink_rate = ATARI_CURSOR_BLINK_RATE; + irqres = add_isr(IRQ_AUTO_4, fbcon_vbl_handler, IRQ_TYPE_PRIO, NULL, + "console/cursor"); + } +#endif /* CONFIG_ATARI */ + +#if defined(CONFIG_AMIGA) || defined(CONFIG_ATARI) + if (!irqres) + panic("fbcon_startup: Couldn't add vblank interrupt"); +#endif + + return(kmem_start); +} + + +static void fbcon_init(struct vc_data *conp) +{ + int unit = conp->vc_num; + + if (unit) + disp[unit] = disp[0]; + disp[unit].conp = conp; + fbcon_setup(unit, 1, 0); +} + + +static int fbcon_deinit(struct vc_data *conp) +{ + disp[conp->vc_num].conp = 0; + return(0); +} + + +static int fbcon_changevar(int con) +{ + fbcon_setup(con, 1, 1); + return(0); +} + + +static void fbcon_setup(int con, int setcol, int cls) +{ + struct display *p = &disp[con]; + struct vc_data *conp = p->conp; + +#ifdef CONFIG_SERIAL_ECHO + void rs_console_init(void); + rs_console_init(); +#endif + + p->var.xoffset = p->var.yoffset = p->yscroll = 0; /* reset wrap/pan */ + + if (!fb_info->fontname[0] || + !findsoftfont(fb_info->fontname, &p->fontwidth, &p->fontheight, + &p->fontdata)) + getdefaultfont(p->var.xres, p->var.yres, NULL, &p->fontwidth, + &p->fontheight, &p->fontdata); + + if (divides(p->ywrapstep, p->fontheight) && divides(p->fontheight, p->var.yres_virtual)) + p->scrollmode = SCROLL_YWRAP; + else if (divides(p->ypanstep, p->fontheight) && + p->var.yres_virtual >= p->var.yres+p->fontheight) + p->scrollmode = SCROLL_YPAN; + else if ((p->var.yres_virtual == 512*1024)) + p->scrollmode = SCROLL_YWRAP_NOTALIGNED; + else + p->scrollmode = SCROLL_YMOVE; + + conp->vc_cols = p->var.xres/p->fontwidth; + conp->vc_rows = p->var.yres/p->fontheight; + p->vrows = p->var.yres_virtual/p->fontheight; + conp->vc_can_do_color = p->var.bits_per_pixel != 1; + +#ifdef CONFIG_FBCON_MONO + if (p->var.bits_per_pixel == 1) { + if (p->line_length) + p->next_line = p->line_length; + else + p->next_line = p->var.xres_virtual/8; + p->next_plane = 0; + p->dispsw = &dispsw_mono; + } else +#endif /* CONFIG_FBCON_MONO */ +#ifdef CONFIG_FBCON_IPLAN2 + if (p->type == FB_TYPE_INTERLEAVED_PLANES && p->type_aux == 2) { + p->next_line = p->var.xres_virtual*p->var.bits_per_pixel>>3; + p->next_plane = 0; +#ifdef CONFIG_FBCON_2PLANE + if (p->var.bits_per_pixel == 2) + p->dispsw = &dispsw_2_plane; + else +#endif /* CONFIG_FBCON_2PLANE */ +#ifdef CONFIG_FBCON_4PLANE + if (p->var.bits_per_pixel == 4) + p->dispsw = &dispsw_4_plane; + else +#endif /* CONFIG_FBCON_4PLANE */ +#ifdef CONFIG_FBCON_8PLANE + if (p->var.bits_per_pixel == 8) + p->dispsw = &dispsw_8_plane; + else +#endif /* CONFIG_FBCON_8PLANE */ + goto fail; + } else +#endif /* CONFIG_FBCON_IPLAN2 */ +#ifdef CONFIG_FBCON_ILBM + if (p->type == FB_TYPE_INTERLEAVED_PLANES && p->type_aux != 2) { + if (p->line_length) { + p->next_line = p->line_length*p->var.bits_per_pixel; + p->next_plane = p->line_length; + } else { + p->next_line = p->type_aux; + p->next_plane = p->type_aux/p->var.bits_per_pixel; + } + p->dispsw = &dispsw_ilbm; + } else +#endif /* CONFIG_FBCON_ILBM */ +#ifdef CONFIG_FBCON_PLANES + if (p->type == FB_TYPE_PLANES) { + if (p->line_length) + p->next_line = p->line_length; + else + p->next_line = p->var.xres_virtual>>3; + p->next_plane = p->var.yres_virtual*p->next_line; + p->dispsw = &dispsw_plan; + } else +#endif /* CONFIG_FBCON_PLANES */ +#ifdef CONFIG_FBCON_PACKED + if (p->type == FB_TYPE_PACKED_PIXELS) { + p->next_line = p->var.xres_virtual*p->var.bits_per_pixel>>3; + p->next_plane = 0; +#ifdef CONFIG_FBCON_CYBER + if (p->var.accel == FB_ACCEL_CYBERVISION) + p->dispsw = &dispsw_cyber; + else +#endif /* CONFIG_FBCON_CYBER */ +#ifdef CONFIG_FBCON_8PACKED + if (p->var.bits_per_pixel == 8) + p->dispsw = &dispsw_8_packed; + else +#endif /* CONFIG_FBCON_8PACKED */ +#ifdef CONFIG_FBCON_8PACKED_NOTALIGNED + if (p->var.bits_per_pixel == 8) + p->dispsw = &dispsw_8_packed; + else +#endif /* CONFIG_FBCON_8PACKED_NOTALIGNED */ +#ifdef CONFIG_FBCON_16PACKED + if (p->var.bits_per_pixel == 16) + p->dispsw = &dispsw_16_packed; + else +#endif /* CONFIG_FBCON_16PACKED */ +#ifdef CONFIG_FBCON_24PACKED + if (p->var.bits_per_pixel == 24) + p->dispsw = &dispsw_24_packed; + else +#endif /* CONFIG_FBCON_24PACKED */ +#ifdef CONFIG_FBCON_32PACKED + if (p->var.bits_per_pixel == 32) + p->dispsw = &dispsw_32_packed; + else +#endif /* CONFIG_FBCON_32PACKED */ + goto fail; + } else +#endif /* CONFIG_FBCON_PACKED */ + { +fail: +#ifdef CONFIG_FBCON_MONO + printk("fbcon_setup: type %d (aux %d) not supported, trying mono\n", + p->type, p->type_aux); + if (p->line_length) + p->next_line = p->line_length; + else + p->next_line = p->var.xres_virtual/8; + p->next_plane = 0; + p->var.bits_per_pixel = 1; + p->dispsw = &dispsw_mono; +#else /* CONFIG_FBCON_MONO */ + panic("fbcon_setup: no default driver"); +#endif /* CONFIG_FBCON_MONO */ + } + + if ((p->dispsw != &dispsw_mono) && (p->fontwidth != 8)) + panic("fbcon_setup: No support for fontwidth != 8 on non-monochrome targets"); + + if ((p->dispsw == &dispsw_mono) && (p->fontwidth != 8) && (p->fontwidth != 4) ) + panic("fbcon_setup: No support for fontwidth != 8/4 on monochrome targets"); + + if (setcol) { + p->fgcol = p->var.bits_per_pixel > 2 ? 7 : (1<var.bits_per_pixel)-1; + p->bgcol = 0; + } + + if (cls) + vc_resize_con(conp->vc_rows, conp->vc_cols, con); +} + + +/* ================================================================= */ +/* Utility Assembler Functions */ +/* ================================================================= */ + + +/* ====================================================================== */ + +/* Those of a delicate disposition might like to skip the next couple of + * pages. + * + * These functions are drop in replacements for memmove and + * memset(_, 0, _). However their five instances add at least a kilobyte + * to the object file. You have been warned. + * + * Not a great fan of assembler for the sake of it, but I think + * that these routines are at least 10 times faster than their C + * equivalents for large blits, and that's important to the lowest level of + * a graphics driver. Question is whether some scheme with the blitter + * would be faster. I suspect not for simple text system - not much + * asynchrony. + * + * Code is very simple, just gruesome expansion. Basic strategy is to + * increase data moved/cleared at each step to 16 bytes to reduce + * instruction per data move overhead. movem might be faster still + * For more than 15 bytes, we try to align the write direction on a + * longword boundary to get maximum speed. This is even more gruesome. + * Unaligned read/write used requires 68020+ - think this is a problem? + * + * Sorry! + */ + + +/* ++roman: I've optimized Robert's original versions in some minor + * aspects, e.g. moveq instead of movel, let gcc choose the registers, + * use movem in some places... + * For other modes than 1 plane, lots of more such assembler functions + * were needed (e.g. the ones using movep or expanding color values). + */ + +/* ++andreas: more optimizations: + subl #65536,d0 replaced by clrw d0; subql #1,d0 for dbcc + addal is faster than addaw + movep is rather expensive compared to ordinary move's + some functions rewritten in C for clarity, no speed loss */ + +static __inline__ void *mymemclear_small(void *s, size_t count) +{ + unsigned char *sb = (unsigned char *)s; + + while (count--) + *(sb++) = 0; + + return(0); +} + + +static __inline__ void *mymemclear(void *s, size_t count) +{ + unsigned char *sb = (unsigned char *)s; + + while (count--) + *(sb++) = 0; + + return(0); +} + + +static __inline__ void *mymemset(void *s, size_t count) +{ + unsigned char *sb = (unsigned char *)s; + + while (count--) + *(sb++) = 0; + + return(0); +} + + +static __inline__ void *mymemmove(void *d, void *s, size_t count) +{ + unsigned char *db = (unsigned char *)d; + unsigned char *sb = (unsigned char *)s; + + while (count--) + *(db++) = *(sb++); + + return(0); +} + + +static __inline__ void *mymemmove_notaligned(void *d, void *s, size_t count) +{ + unsigned long dst = (unsigned long)d, src = (unsigned long)s; + unsigned char *db = (unsigned char *)d; + unsigned char *sb = (unsigned char *)s; + + while (count--) { + *db = *sb; + db = (unsigned char *)CRT_WRAP(dst, ++dst); + sb = (unsigned char *)CRT_WRAP(src, ++src); + } + + return(0); +} + + +/* ++andreas: Simple and fast version of memmove, assumes size is + divisible by 16, suitable for moving the whole screen bitplane */ +static __inline__ void fast_memmove(char *dst, char *src, size_t size) +{ + unsigned long tmp; + + __asm__ __volatile__ + ("1:" + " l.sfgui %2,0\n" + " l.bnf 1f\n" + " l.addi %2,%2,-16\n" + " l.lwz %3,0(%0)\n" + " l.sw 0(%1)%3\n" + " l.lwz %3,4(%0)\n" + " l.sw 4(%1)%3\n" + " l.lwz %3,8(%0)\n" + " l.sw 8(%1)%3\n" + " l.lwz %3,12(%0)\n" + " l.j 1b\n" + " l.sw 12(%1)%3\n" + "1:" + : "=r" (src), "=r" (dst), "=r" (size), "=r" (tmp) + : "r" (src), "r" (dst), "r" (size), "r" (tmp) + : "memory"); +} + + +/* Sets the bytes in the visible column at d, height h, to the value + * val for a 4 plane screen. The the bis of the color in 'color' are + * moved (8 times) to the respective bytes. This means: + * + * for(h times; d += bpr) + * *d = (color & 1) ? 0xff : 0; + * *(d+2) = (color & 2) ? 0xff : 0; + * *(d+4) = (color & 4) ? 0xff : 0; + * *(d+6) = (color & 8) ? 0xff : 0; + */ + +static __inline__ void memclear_4p_col(void *d, size_t h, u_long val, int bpr) +{ +#if 0 + __asm__ __volatile__ + ("1: movepl %4,%0@(0)\n\t" + "addal %5,%0\n\t" + "dbra %1,1b" + : "=a" (d), "=d" (h) + : "0" (d), "1" (h - 1), "d" (val), "r" (bpr) + ); +#endif +} + +/* Sets a 4 plane region from 'd', length 'count' bytes, to the color + * in val1/val2. 'd' has to be an even address and count must be divisible + * by 8, because only whole words and all planes are accessed. I.e.: + * + * for(count/8 times) + * *d = *(d+1) = (color & 1) ? 0xff : 0; + * *(d+2) = *(d+3) = (color & 2) ? 0xff : 0; + * *(d+4) = *(d+5) = (color & 4) ? 0xff : 0; + * *(d+6) = *(d+7) = (color & 8) ? 0xff : 0; + */ + +static __inline__ void memset_even_4p(void *d, size_t count, u_long val1, + u_long val2) +{ + u_long *dd = d; + + count /= 8; + while (count--) + { + *dd++ = val1; + *dd++ = val2; + } +} + +/* Copies a 4 plane column from 's', height 'h', to 'd'. */ + +static __inline__ void memmove_4p_col (void *d, void *s, int h, int bpr) +{ + u_char *dd = d, *ss = s; + + while (h--) + { + dd[0] = ss[0]; + dd[2] = ss[2]; + dd[4] = ss[4]; + dd[6] = ss[6]; + dd += bpr; + ss += bpr; + } +} + + +/* This expands a 4 bit color into a long for movepl (4 plane) operations. */ + +static __inline__ u_long expand4l(u_char c) +{ +#if 0 + u_long rv; + + __asm__ __volatile__ + ("lsrb #1,%2\n\t" + "scs %0\n\t" + "lsll #8,%0\n\t" + "lsrb #1,%2\n\t" + "scs %0\n\t" + "lsll #8,%0\n\t" + "lsrb #1,%2\n\t" + "scs %0\n\t" + "lsll #8,%0\n\t" + "lsrb #1,%2\n\t" + "scs %0\n\t" + : "=&d" (rv), "=d" (c) + : "1" (c) + ); + return(rv); +#endif + return 0; +} + +/* This expands a 4 bit color into two longs for two movel operations + * (4 planes). + */ + +static __inline__ void expand4dl(u_char c, u_long *ret1, u_long *ret2) +{ +#if 0 + u_long rv1, rv2; + + __asm__ __volatile__ + ("lsrb #1,%3\n\t" + "scs %0\n\t" + "extw %0\n\t" + "swap %0\n\t" + "lsrb #1,%3\n\t" + "scs %0\n\t" + "extw %0\n\t" + "lsrb #1,%3\n\t" + "scs %1\n\t" + "extw %1\n\t" + "swap %1\n\t" + "lsrb #1,%3\n\t" + "scs %1\n\t" + "extw %1" + : "=&d" (rv1), "=&d" (rv2), "=d" (c) + : "2" (c) + ); + *ret1 = rv1; + *ret2 = rv2; +#endif +} + + +/* This duplicates a byte 4 times into a long. */ + +static __inline__ u_long dup4l(u_char c) +{ +#if 0 + ushort tmp; + ulong rv; + + __asm__ __volatile__ + ("moveb %2,%0\n\t" + "lslw #8,%0\n\t" + "moveb %2,%0\n\t" + "movew %0,%1\n\t" + "swap %0\n\t" + "movew %1,%0" + : "=&d" (rv), "=d" (tmp) + : "d" (c) + ); + + return(rv); +#endif + return 0; +} + + +/* Sets the bytes in the visible column at d, height h, to the value + * val1,val2 for a 8 plane screen. The the bis of the color in 'color' are + * moved (8 times) to the respective bytes. This means: + * + * for(h times; d += bpr) + * *d = (color & 1) ? 0xff : 0; + * *(d+2) = (color & 2) ? 0xff : 0; + * *(d+4) = (color & 4) ? 0xff : 0; + * *(d+6) = (color & 8) ? 0xff : 0; + * *(d+8) = (color & 16) ? 0xff : 0; + * *(d+10) = (color & 32) ? 0xff : 0; + * *(d+12) = (color & 64) ? 0xff : 0; + * *(d+14) = (color & 128) ? 0xff : 0; + */ + +static __inline__ void memclear_8p_col(void *d, size_t h, u_long val1, + u_long val2, int bpr) +{ +#if 0 + __asm__ __volatile__ + ("1: movepl %4,%0@(0)\n\t" + "movepl %5,%0@(8)\n\t" + "addal %6,%0\n\t" + "dbra %1,1b" + : "=a" (d), "=d" (h) + : "0" (d), "1" (h - 1), "d" (val1), "d" (val2), "r" (bpr) + ); +#endif +} + +/* Sets a 8 plane region from 'd', length 'count' bytes, to the color + * val1..val4. 'd' has to be an even address and count must be divisible + * by 16, because only whole words and all planes are accessed. I.e.: + * + * for(count/16 times) + * *d = *(d+1) = (color & 1) ? 0xff : 0; + * *(d+2) = *(d+3) = (color & 2) ? 0xff : 0; + * *(d+4) = *(d+5) = (color & 4) ? 0xff : 0; + * *(d+6) = *(d+7) = (color & 8) ? 0xff : 0; + * *(d+8) = *(d+9) = (color & 16) ? 0xff : 0; + * *(d+10) = *(d+11) = (color & 32) ? 0xff : 0; + * *(d+12) = *(d+13) = (color & 64) ? 0xff : 0; + * *(d+14) = *(d+15) = (color & 128) ? 0xff : 0; + */ + +static __inline__ void memset_even_8p(void *d, size_t count, u_long val1, + u_long val2, u_long val3, u_long val4) +{ + u_long *dd = d; + + count /= 16; + while (count--) + { + *dd++ = val1; + *dd++ = val2; + *dd++ = val3; + *dd++ = val4; + } +} + +/* Copies a 8 plane column from 's', height 'h', to 'd'. */ + +static __inline__ void memmove_8p_col (void *d, void *s, int h, int bpr) +{ + u_char *dd = d, *ss = s; + + while (h--) + { + dd[0] = ss[0]; + dd[2] = ss[2]; + dd[4] = ss[4]; + dd[6] = ss[6]; + dd[8] = ss[8]; + dd[10] = ss[10]; + dd[12] = ss[12]; + dd[14] = ss[14]; + dd += bpr; + ss += bpr; + } +} + + +/* This expands a 8 bit color into two longs for two movepl (8 plane) + * operations. + */ + +static __inline__ void expand8dl(u_char c, u_long *ret1, u_long *ret2) +{ +#if 0 + u_long rv1, rv2; + + __asm__ __volatile__ + ("lsrb #1,%3\n\t" + "scs %0\n\t" + "lsll #8,%0\n\t" + "lsrb #1,%3\n\t" + "scs %0\n\t" + "lsll #8,%0\n\t" + "lsrb #1,%3\n\t" + "scs %0\n\t" + "lsll #8,%0\n\t" + "lsrb #1,%3\n\t" + "scs %0\n\t" + "lsrb #1,%3\n\t" + "scs %1\n\t" + "lsll #8,%1\n\t" + "lsrb #1,%3\n\t" + "scs %1\n\t" + "lsll #8,%1\n\t" + "lsrb #1,%3\n\t" + "scs %1\n\t" + "lsll #8,%1\n\t" + "lsrb #1,%3\n\t" + "scs %1" + : "=&d" (rv1), "=&d" (rv2),"=d" (c) + : "2" (c) + ); + + *ret1 = rv1; + *ret2 = rv2; +#endif +} + +/* This expands a 8 bit color into four longs for four movel operations + * (8 planes). + */ + +/* ++andreas: use macro to avoid taking address of return values */ +#if 0 +#define expand8ql(c, rv1, rv2, rv3, rv4) \ +do { u_char tmp = c; \ + __asm__ __volatile__ \ + ("lsrb #1,%5\n\t" \ + "scs %0\n\t" \ + "extw %0\n\t" \ + "swap %0\n\t" \ + "lsrb #1,%5\n\t" \ + "scs %0\n\t" \ + "extw %0\n\t" \ + "lsrb #1,%5\n\t" \ + "scs %1\n\t" \ + "extw %1\n\t" \ + "swap %1\n\t" \ + "lsrb #1,%5\n\t" \ + "scs %1\n\t" \ + "extw %1\n\t" \ + "lsrb #1,%5\n\t" \ + "scs %2\n\t" \ + "extw %2\n\t" \ + "swap %2\n\t" \ + "lsrb #1,%5\n\t" \ + "scs %2\n\t" \ + "extw %2\n\t" \ + "lsrb #1,%5\n\t" \ + "scs %3\n\t" \ + "extw %3\n\t" \ + "swap %3\n\t" \ + "lsrb #1,%5\n\t" \ + "scs %3\n\t" \ + "extw %3" \ + : "=&d" (rv1), "=&d" (rv2), "=&d" (rv3), \ + "=&d" (rv4), "=d" (tmp) \ + : "4" (tmp) \ + ); \ +} while (0) +#endif + + +/* Sets the bytes in the visible column at d, height h, to the value + * val for a 2 plane screen. The the bis of the color in 'color' are + * moved (8 times) to the respective bytes. This means: + * + * for(h times; d += bpr) + * *d = (color & 1) ? 0xff : 0; + * *(d+2) = (color & 2) ? 0xff : 0; + */ + +static __inline__ void memclear_2p_col(void *d, size_t h, u_short val, int bpr) +{ +#if 0 + __asm__ __volatile__ + ("1: movepw %4,%0@(0)\n\t" + "addal %5,%0\n\t" + "dbra %1,1b" + : "=a" (d), "=d" (h) + : "0" (d), "1" (h - 1), "d" (val), "r" (bpr) + ); +#endif +} + +/* Sets a 2 plane region from 'd', length 'count' bytes, to the color + * in val1. 'd' has to be an even address and count must be divisible + * by 8, because only whole words and all planes are accessed. I.e.: + * + * for(count/4 times) + * *d = *(d+1) = (color & 1) ? 0xff : 0; + * *(d+2) = *(d+3) = (color & 2) ? 0xff : 0; + */ + +static __inline__ void memset_even_2p(void *d, size_t count, u_long val) +{ + u_long *dd = d; + + count /= 4; + while (count--) + *dd++ = val; +} + +/* Copies a 2 plane column from 's', height 'h', to 'd'. */ + +static __inline__ void memmove_2p_col (void *d, void *s, int h, int bpr) +{ + u_char *dd = d, *ss = s; + + while (h--) + { + dd[0] = ss[0]; + dd[2] = ss[2]; + dd += bpr; + ss += bpr; + } +} + + +/* This expands a 2 bit color into a short for movepw (2 plane) operations. */ + +static __inline__ u_short expand2w(u_char c) +{ +#if 0 + u_short rv; + + __asm__ __volatile__ + ("lsrb #1,%2\n\t" + "scs %0\n\t" + "lsll #8,%0\n\t" + "lsrb #1,%2\n\t" + "scs %0\n\t" + : "=&d" (rv), "=d" (c) + : "1" (c) + ); + return(rv); +#endif + return 0; +} + +/* This expands a 2 bit color into one long for a movel operation + * (2 planes). + */ + +static __inline__ u_long expand2l(u_char c) +{ +#if 0 + u_long rv; + + __asm__ __volatile__ + ("lsrb #1,%2\n\t" + "scs %0\n\t" + "extw %0\n\t" + "swap %0\n\t" + "lsrb #1,%2\n\t" + "scs %0\n\t" + "extw %0\n\t" + : "=&d" (rv), "=d" (c) + : "1" (c) + ); + + return rv; +#endif + return 0; +} + + +/* This duplicates a byte 2 times into a short. */ + +static __inline__ u_short dup2w(u_char c) +{ +#if 0 + ushort rv; + + __asm__ __volatile__ + ( "moveb %1,%0\n\t" + "lslw #8,%0\n\t" + "moveb %1,%0\n\t" + : "=&d" (rv) + : "d" (c) + ); + + return( rv ); +#endif + return 0; +} + + +/* ====================================================================== */ + +/* fbcon_XXX routines - interface used by the world + * + * This system is now divided into two levels because of complications + * caused by hardware scrolling. Top level functions: + * + * fbcon_bmove(), fbcon_clear(), fbcon_putc() + * + * handles y values in range [0, scr_height-1] that correspond to real + * screen positions. y_wrap shift means that first line of bitmap may be + * anywhere on this display. These functions convert lineoffsets to + * bitmap offsets and deal with the wrap-around case by splitting blits. + * + * fbcon_bmove_physical_8() -- These functions fast implementations + * fbcon_clear_physical_8() -- of original fbcon_XXX fns. + * fbcon_putc_physical_8() -- (fontwidth != 8) may be added later + * + * WARNING: + * + * At the moment fbcon_putc() cannot blit across vertical wrap boundary + * Implies should only really hardware scroll in rows. Only reason for + * restriction is simplicity & efficiency at the moment. + */ + +static __inline__ int real_y(struct display *p, int y) +{ + int rows = p->vrows; + + y += p->yscroll; + return(y < rows ? y : y-rows); +} + + +static int fbcon_clear(struct vc_data *conp, int sy, int sx, int height, + int width) +{ + int unit = conp->vc_num; + struct display *p = &disp[unit]; + u_int y_break; + + if (!p->can_soft_blank && console_blanked) + return(0); + + if ((sy <= p->cursor_y) && (p->cursor_y < sy+height) && + (sx <= p->cursor_x) && (p->cursor_x < sx+width)) + CURSOR_UNDRAWN(); + + /* Split blits that cross physical y_wrap boundary */ + + y_break = p->vrows-p->yscroll; + if (sy < y_break && sy+height-1 >= y_break) { + u_int b = y_break-sy; + p->dispsw->clear(conp, p, real_y(p, sy), sx, b, width); + p->dispsw->clear(conp, p, real_y(p, sy+b), sx, height-b, width); + } else + p->dispsw->clear(conp, p, real_y(p, sy), sx, height, width); + + return(0); +} + + +static int fbcon_putc(struct vc_data *conp, int c, int y, int x) +{ + int unit = conp->vc_num; + struct display *p = &disp[unit]; + +#ifdef CONFIG_SERIAL_ECHO + extern void putc(char); + putc(c); +#endif + if (!p->can_soft_blank && console_blanked) + return(0); + + if ((p->cursor_x == x) && (p->cursor_y == y)) + CURSOR_UNDRAWN(); + + p->dispsw->putc(conp, p, c, real_y(p, y), x); + + return(0); +} + + +static int fbcon_putcs(struct vc_data *conp, const char *s, int count, int y, + int x) +{ + int unit = conp->vc_num; + struct display *p = &disp[unit]; + +#ifdef CONFIG_SERIAL_ECHO + void rs_console_print(const char *p); + rs_console_print(s); +#endif + + if (!p->can_soft_blank && console_blanked) + return(0); + + if ((p->cursor_y == y) && (x <= p->cursor_x) && (p->cursor_x < x+count)) + CURSOR_UNDRAWN(); + + p->dispsw->putcs(conp, p, s, count, real_y(p, y), x); + + return(0); +} + + +static int fbcon_cursor(struct vc_data *conp, int mode) +{ + int unit = conp->vc_num; + struct display *p = &disp[unit]; + + if (CURSOR_UNDRAWN ()) + p->dispsw->rev_char(p, p->cursor_x, real_y(p, p->cursor_y)); + p->cursor_x = conp->vc_x; + p->cursor_y = conp->vc_y; + + switch (mode) { + case CM_ERASE: + cursor_on = 0; + break; + + case CM_MOVE: + case CM_DRAW: + vbl_cursor_cnt = CURSOR_DRAW_DELAY; + cursor_on = 1; + break; + } + + return(0); +} + + +static void fbcon_vbl_handler(int irq, struct pt_regs *fp, void *dummy) +{ + struct display *p; + + if (!cursor_on) + return; + + if (vbl_cursor_cnt && --vbl_cursor_cnt == 0) { + /* Here no check is possible for console changing. The console + * switching code should set vbl_cursor_cnt to an appropriate value. + */ + p = &disp[fg_console]; + p->dispsw->rev_char(p, p->cursor_x, real_y(p, p->cursor_y)); + cursor_drawn ^= 1; + vbl_cursor_cnt = cursor_blink_rate; + } +} + +static int fbcon_scroll(struct vc_data *conp, int t, int b, int dir, int count) +{ + int unit = conp->vc_num; + struct display *p = &disp[unit]; + + if (!p->can_soft_blank && console_blanked) + return(0); + + fbcon_cursor(conp, CM_ERASE); + + /* + * ++Geert: Only use ywrap/ypan if the console is in text mode + */ + + switch (dir) { + case SM_UP: + if (t == 0 && b == conp->vc_rows && + vt_cons[unit]->vc_mode == KD_TEXT) { + if (count > conp->vc_rows) /* Maximum realistic size */ + count = conp->vc_rows; + switch (p->scrollmode) { + case SCROLL_YWRAP: + p->yscroll += count; + if (p->yscroll >= p->vrows) /* Deal with wrap */ + p->yscroll -= p->vrows; + p->var.xoffset = 0; + p->var.yoffset = p->yscroll*p->fontheight; + p->var.vmode |= FB_VMODE_YWRAP; + fb_info->updatevar(unit); + break; + + case SCROLL_YPAN: + p->yscroll += count; + if (p->yscroll+conp->vc_rows > p->vrows) { + p->dispsw->bmove(p, p->yscroll, 0, 0, 0, b-count, + conp->vc_cols); + p->yscroll = 0; + } + p->var.xoffset = 0; + p->var.yoffset = p->yscroll*p->fontheight; + p->var.vmode &= ~FB_VMODE_YWRAP; + fb_info->updatevar(unit); + break; + + case SCROLL_YWRAP_NOTALIGNED: + p->var.xoffset = 0; + p->var.yoffset = (p->var.yoffset + count*p->fontheight*p->var.xres) & (CRT_WRAP_BOUNDARY - 1); + p->var.vmode = SCROLL_YWRAP_NOTALIGNED; + fb_info->updatevar(unit); + break; + + case SCROLL_YMOVE: + p->dispsw->bmove(p, count, 0, 0, 0, b-count, conp->vc_cols); + break; + } + } else + fbcon_bmove(conp, t+count, 0, t, 0, b-t-count, conp->vc_cols); + fbcon_clear(conp, b-count, 0, count, conp->vc_cols); + break; + + case SM_DOWN: + if (t == 0 && b == conp->vc_rows && + vt_cons[unit]->vc_mode == KD_TEXT) { + if (count > conp->vc_rows) /* Maximum realistic size */ + count = conp->vc_rows; + switch (p->scrollmode) { + case SCROLL_YWRAP: + p->yscroll -= count; + if (p->yscroll < 0) /* Deal with wrap */ + p->yscroll += p->vrows; + p->var.xoffset = 0; + p->var.yoffset = p->yscroll*p->fontheight; + p->var.vmode |= FB_VMODE_YWRAP; + fb_info->updatevar(unit); + break; + + case SCROLL_YPAN: + p->yscroll -= count; + if (p->yscroll < 0) { + p->yscroll = p->vrows-conp->vc_rows; + p->dispsw->bmove(p, 0, 0, p->yscroll+count, 0, b-count, + conp->vc_cols); + } + p->var.xoffset = 0; + p->var.yoffset = p->yscroll*p->fontheight; + p->var.vmode &= ~FB_VMODE_YWRAP; + fb_info->updatevar(unit); + break; + + case SCROLL_YWRAP_NOTALIGNED: + p->var.xoffset = 0; + p->var.yoffset = (p->var.yoffset - count*p->fontheight*p->var.xres) & (CRT_WRAP_BOUNDARY - 1); + p->var.vmode = SCROLL_YWRAP_NOTALIGNED; + fb_info->updatevar(unit); + break; + + case SCROLL_YMOVE: + p->dispsw->bmove(p, 0, 0, count, 0, b-count, conp->vc_cols); + break; + } + } else + fbcon_bmove(conp, t, 0, t+count, 0, b-t-count, conp->vc_cols); + + /* Fixed bmove() should end Arno's frustration with copying? + * Confucius says: + * Man who copies in wrong direction, end up with trashed data + */ + fbcon_clear(conp, t, 0, count, conp->vc_cols); + break; + + case SM_LEFT: + fbcon_bmove(conp, 0, t+count, 0, t, conp->vc_rows, b-t-count); + fbcon_clear(conp, 0, b-count, conp->vc_rows, count); + break; + + case SM_RIGHT: + fbcon_bmove(conp, 0, t, 0, t+count, conp->vc_rows, b-t-count); + fbcon_clear(conp, 0, t, conp->vc_rows, count); + break; + } + + return(0); +} + +static int fbcon_bmove(struct vc_data *conp, int sy, int sx, int dy, int dx, + int height, int width) +{ + int unit = conp->vc_num; + struct display *p = &disp[unit]; + + if (!p->can_soft_blank && console_blanked) + return(0); + + if (((sy <= p->cursor_y) && (p->cursor_y < sy+height) && + (sx <= p->cursor_x) && (p->cursor_x < sx+width)) || + ((dy <= p->cursor_y) && (p->cursor_y < dy+height) && + (dx <= p->cursor_x) && (p->cursor_x < dx+width))) + fbcon_cursor(conp, CM_ERASE); + + /* Split blits that cross physical y_wrap case. + * Pathological case involves 4 blits, better to use recursive + * code rather than unrolled case + * + * Recursive invocations don't need to erase the cursor over and + * over again, so we use fbcon_bmove_rec() + */ + fbcon_bmove_rec(p, sy, sx, dy, dx, height, width, p->vrows-p->yscroll); + + return(0); +} + + +static void fbcon_bmove_rec(struct display *p, int sy, int sx, int dy, int dx, + int height, int width, u_int y_break) +{ + u_int b; + + if (sy < y_break && sy+height > y_break) { + b = y_break-sy; + if (dy < sy) { /* Avoid trashing self */ + fbcon_bmove_rec(p, sy, sx, dy, dx, b, width, y_break); + fbcon_bmove_rec(p, sy+b, sx, dy+b, dx, height-b, width, y_break); + } else { + fbcon_bmove_rec(p, sy+b, sx, dy+b, dx, height-b, width, y_break); + fbcon_bmove_rec(p, sy, sx, dy, dx, b, width, y_break); + } + return; + } + + if (dy < y_break && dy+height > y_break) { + b = y_break-dy; + if (dy < sy) { /* Avoid trashing self */ + fbcon_bmove_rec(p, sy, sx, dy, dx, b, width, y_break); + fbcon_bmove_rec(p, sy+b, sx, dy+b, dx, height-b, width, y_break); + } else { + fbcon_bmove_rec(p, sy+b, sx, dy+b, dx, height-b, width, y_break); + fbcon_bmove_rec(p, sy, sx, dy, dx, b, width, y_break); + } + return; + } + p->dispsw->bmove(p, real_y(p, sy), sx, real_y(p, dy), dx, height, width); +} + + +static int fbcon_switch(struct vc_data *conp) +{ + if (fb_info && fb_info->switch_con) + (*fb_info->switch_con)(conp->vc_num); + return(0); +} + + +static int fbcon_blank(int blank) +{ + struct display *p = &disp[fg_console]; + + fbcon_cursor(p->conp, blank ? CM_ERASE : CM_DRAW); + + if (!p->can_soft_blank) { + if (blank) { + if (p->visual == FB_VISUAL_MONO01) + mymemset(p->screen_base, p->var.xres_virtual*p->var.yres_virtual* + p->var.bits_per_pixel>>3); + else + mymemclear(p->screen_base, p->var.xres_virtual*p->var.yres_virtual* + p->var.bits_per_pixel>>3); + return(0); + } else { + /* Tell console.c that it has to restore the screen itself */ + return(1); + } + } + (*fb_info->blank)(blank); + return(0); +} + + +static int fbcon_get_font(struct vc_data *conp, int *w, int *h, char *data) +{ + int unit = conp->vc_num; + struct display *p = &disp[unit]; + int i, size, alloc; + + size = (p->fontwidth+7)/8 * p->fontheight * 256; + alloc = (*w+7)/8 * *h * 256; + *w = p->fontwidth; + *h = p->fontheight; + + if (alloc < size) + /* allocation length not sufficient */ + return( -ENAMETOOLONG ); + + if ((i = verify_area( VERIFY_WRITE, (void *)data, size ))) + return i; + + memcpy_tofs( data, p->fontdata, size ); + return( 0 ); +} + + +#define REFCOUNT(fd) (((int *)(fd))[-1]) + +static int fbcon_set_font(struct vc_data *conp, int w, int h, char *data) +{ + int unit = conp->vc_num; + struct display *p = &disp[unit]; + int i, size, userspace = 1, resize; + char *old_data = NULL, *new_data; + + if (w < 0) + w = p->fontwidth; + if (h < 0) + h = p->fontheight; + + printk("Set_font, w=%d, h=%d, data=%s\n", w, h, data); + + if (w == 0) { + /* engage predefined font, name in 'data' */ + char name[MAX_FONT_NAME+1]; + + if ((i = verify_area( VERIFY_READ, (void *)data, MAX_FONT_NAME ))) + return i; + memcpy_fromfs( name, data, MAX_FONT_NAME ); + name[sizeof(name)-1] = 0; + + if (!findsoftfont( name, &w, &h, (u_char **)&data )) + return( -ENOENT ); + userspace = 0; + } + else if (w == 1) { + /* copy font from some other console in 'h'*/ + struct display *op; + + if (h < 0 || !vc_cons_allocated( h )) + return( -ENOTTY ); + if (h == unit) + return( 0 ); /* nothing to do */ + op = &disp[h]; + if (op->fontdata == p->fontdata) + return( 0 ); /* already the same font... */ + + resize = (op->fontwidth != p->fontwidth) || + (op->fontheight != p->fontheight); + if (p->userfont) + old_data = p->fontdata; + p->fontdata = op->fontdata; + w = p->fontwidth = op->fontwidth; + h = p->fontheight = op->fontheight; + if ((p->userfont = op->userfont)) + REFCOUNT(p->fontdata)++; /* increment usage counter */ + goto activate; + } + + if ((p->dispsw != &dispsw_mono) && (w != 8)) + /* Currently only fontwidth == 8 supported */ + return( -ENXIO ); + if ((p->dispsw == &dispsw_mono) && (w != 8) && (w != 4)) + return( -ENXIO ); + + resize = (w != p->fontwidth) || (h != p->fontheight); + size = (w+7)/8 * h * 256; + + if (p->userfont) + old_data = p->fontdata; + + if (userspace) { + if ((i = verify_area( VERIFY_READ, (void *)data, size ))) + return i; + if (!(new_data = kmalloc( sizeof(int)+size, GFP_USER ))) + return( -ENOMEM ); + new_data += sizeof(int); + REFCOUNT(new_data) = 1; /* usage counter */ + memcpy_fromfs( new_data, data, size ); + p->fontdata = new_data; + p->userfont = 1; + } + else { + p->fontdata = data; + p->userfont = 0; + } + p->fontwidth = w; + p->fontheight = h; + + activate: + if (resize) { + p->var.xoffset = p->var.yoffset = p->yscroll = 0; /* reset wrap/pan */ + if (divides(p->ywrapstep, p->fontheight)) + p->scrollmode = SCROLL_YWRAP; + else if (divides(p->ypanstep, p->fontheight) && + p->var.yres_virtual >= p->var.yres+p->fontheight) + p->scrollmode = SCROLL_YPAN; + else if ((p->var.yres_virtual == 512*1024)) + p->scrollmode = SCROLL_YWRAP_NOTALIGNED; + else + p->scrollmode = SCROLL_YMOVE; + + vc_resize_con( p->var.yres/h, p->var.xres/w, unit ); + } + else if (unit == fg_console) + update_screen( unit ); + + if (old_data) { + if (--REFCOUNT(old_data) == 0) { + kfree( old_data - sizeof(int) ); + } + } + + return( 0 ); +} + + +/* ====================================================================== */ + +/* + * Low Level Operations for the various display memory organizations. + * + * Currently only the following organizations are supported here: + * + * - Monochrome + * - Color Interleaved Planes ŕ la Amiga + * - Color Normal Planes + * - Color Interleaved Planes ŕ la Atari (2, 4 and 8 planes) + * - Color Packed Pixels (8 and 16 bpp) + * - Cybervision Color Packed Pixels (accelerated) + */ + +#ifdef CONFIG_FBCON_MONO + + /* + * Monochrome + */ + + +static u_char mask4[2] = {0xF0, 0x0F}; + +static void bmove_mono(struct display *p, int sy, int sx, int dy, int dx, + int height, int width) +{ + u_char *src, *dest; + u_int rows; + + if (p->fontwidth == 8) { + if (sx == 0 && sy == 0 && width == p->next_line) { + src = p->screen_base; + dest = p->screen_base+dy*p->fontheight*width; + mymemmove(dest, src, height*p->fontheight*width); + } else if (dy <= sy) { + src = p->screen_base+sy*p->fontheight*p->next_line+sx; + dest = p->screen_base+dy*p->fontheight*p->next_line+dx; + for (rows = height*p->fontheight; rows--;) { + mymemmove(dest, src, width); + src += p->next_line; + dest += p->next_line; + } + } else { + src = p->screen_base+((sy+height)*p->fontheight-1)*p->next_line+sx; + dest = p->screen_base+((dy+height)*p->fontheight-1)*p->next_line+dx; + for (rows = height*p->fontheight; rows--;) { + mymemmove(dest, src, width); + src -= p->next_line; + dest -= p->next_line; + } + } + } else { /* fw == 4 */ + if ((sx == 0) && (sy == 0) && (width == (p->next_line*2))) { + src = p->screen_base; + dest = p->screen_base+dy*p->fontheight*p->next_line; + mymemmove(dest, src, height*p->fontheight*p->next_line); + } else if ((dy <= sy) && ((width & 1) == 0) && ((sx & 1) == 0) && ((dy & 1) == 0)) { + src = p->screen_base+sy*p->fontheight*p->next_line+(sx>>1); + dest = p->screen_base+dy*p->fontheight*p->next_line+(dx>>1); + for (rows = height*p->fontheight; rows--;) { + mymemmove(dest, src, width); + src += p->next_line; + dest += p->next_line; + } + } else { + int x,y,ry; + for(x=0;xfontheight;ry++) { + u_char * src = p->screen_base+((sy+y)*p->fontheight+ry)*p->next_line+((sx+x)>>1); + u_char * dest = p->screen_base+((dy+y)*p->fontheight+ry)*p->next_line+((dx+x)>>1); + int rs = (sx+x) & 1; + int rd = (dx+x) & 1; + if (rs == rd) + *dest = (*dest & ~mask4[rd]) | (*src & mask4[rs]); + else if (rs == 0) + *dest = (*dest & ~mask4[rd]) | ((*src & mask4[rs]) >> 4); + else if (rs == 1) + *dest = (*dest & ~mask4[rd]) | ((*src & mask4[rs]) << 4); + } + } + } + +} + + +static void clear_mono(struct vc_data *conp, struct display *p, int sy, int sx, + int height, int width) +{ + u_char *dest; + u_int rows; + + dest = p->screen_base+sy*p->fontheight*p->next_line+sx; + + if (p->fontwidth == 8) { + if (sx == 0 && width == p->next_line) + if (attr_reverse(p,conp)) + mymemset(dest, height*p->fontheight*width); + else + mymemclear(dest, height*p->fontheight*width); + else + for (rows = height*p->fontheight; rows--; dest += p->next_line) + if (attr_reverse(p,conp)) + mymemset(dest, width); + else + mymemclear_small(dest, width); + } else { /* fw == 4 */ + + if ((sx == 0) && (width == (p->next_line*2))) + if (attr_reverse(p,conp)) + mymemset(dest, height*p->fontheight*p->next_line); + else + mymemclear(dest, height*p->fontheight*p->next_line); + else + { + int x,y,ry; + for(x=sx;xfontheight;ry++) + *(p->screen_base+(y*p->fontheight+ry)*p->next_line+(x>>1)) &= mask4[x & 1 ^ 1]; + } + } +} + + +static void putc_mono(struct vc_data *conp, struct display *p, int c, int y, + int x) +{ + u_char *dest, *cdat; + u_int rows, bold, reverse, underline; + u_char d; + + c &= 0xff; + + if (p->fontwidth == 8) { + + dest = p->screen_base+y*p->fontheight*p->next_line+x; + cdat = p->fontdata+c*p->fontheight; + bold = attr_bold(p,conp); + reverse = attr_reverse(p,conp); + underline = attr_underline(p,conp); + + for (rows = p->fontheight; rows--; dest += p->next_line) { + d = *cdat++; + if (underline && !rows) + d = 0xff; + else if (bold) + d |= d>>1; + if (reverse) + d = ~d; + *dest = d; + } + } else { /* fontwidth == 4 */ + int r = x & 1; + dest = p->screen_base+y*p->fontheight*p->next_line+(x>>1); + + cdat = p->fontdata+c*p->fontheight; + bold = attr_bold(p,conp); + reverse = attr_reverse(p,conp); + underline = attr_underline(p,conp); + + for (rows = p->fontheight; rows--; dest += p->next_line) { + d = *cdat++; + if (underline && !rows) + d = 0xff; + else if (bold) + d |= d>>1; + if (reverse) + d = ~d; + *dest = (*dest & ~mask4[r]) | (d & mask4[r]); + } + } +} + + +static void putcs_mono(struct vc_data *conp, struct display *p, const char *s, + int count, int y, int x) +{ + u_char *dest, *dest0, *cdat; + u_int rows, bold, reverse, underline; + u_char c, d; + + if (p->fontwidth==8) { + + dest0 = p->screen_base+y*p->fontheight*p->next_line+x; + bold = attr_bold(p,conp); + reverse = attr_reverse(p,conp); + underline = attr_underline(p,conp); + + while (count--) { + c = *s++; + dest = dest0++; + cdat = p->fontdata+c*p->fontheight; + for (rows = p->fontheight; rows--; dest += p->next_line) { + d = *cdat++; + if (underline && !rows) + d = 0xff; + else if (bold) + d |= d>>1; + if (reverse) + d = ~d; + *dest = d; + } + } + + } else { /* fontwidth == 4 */ + + int r = x & 1; + dest0 = p->screen_base+y*p->fontheight*p->next_line+(x>>1); + bold = attr_bold(p,conp); + reverse = attr_reverse(p,conp); + underline = attr_underline(p,conp); + + while (count--) { + c = *s++; + dest = dest0; + cdat = p->fontdata+c*p->fontheight; + for (rows = p->fontheight; rows--; dest += p->next_line) { + d = *cdat++; + if (underline && !rows) + d = 0xff; + else if (bold) + d |= d>>1; + if (reverse) + d = ~d; + *dest = (*dest & ~mask4[r]) | (d & mask4[r]); + } + r ^= 1; + if (!r) + dest0++; + } + + } +} + + +static void rev_char_mono(struct display *p, int x, int y) +{ + u_char *dest; + u_int rows; + + if (p->fontwidth == 8) { + dest = p->screen_base+y*p->fontheight*p->next_line+x; + for (rows = p->fontheight; rows--; dest += p->next_line) + *dest = ~*dest; + } else { /* fw == 4 */ + dest = p->screen_base+y*p->fontheight*p->next_line+(x>>1); + for (rows = p->fontheight; rows--; dest += p->next_line) + *dest ^= mask4[x&1]; + } +} + +#endif /* CONFIG_FBCON_MONO */ + + +/* ====================================================================== */ + +#ifdef CONFIG_FBCON_ILBM + + /* + * Color Interleaved Planes + * + * This code heavily relies on the fact that + * + * next_line == interleave == next_plane*bits_per_pixel + * + * But maybe it can be merged with the code for normal bitplanes without + * much performance loss? + */ + +static void bmove_ilbm(struct display *p, int sy, int sx, int dy, int dx, + int height, int width) +{ + if (sx == 0 && sy == 0 && width == p->next_plane) + mymemmove(p->screen_base+dy*p->fontheight*p->next_line, p->screen_base, + height*p->fontheight*p->next_line); + else { + u_char *src, *dest; + u_int i; + + if (dy <= sy) { + src = p->screen_base+sy*p->fontheight*p->next_line+sx; + dest = p->screen_base+dy*p->fontheight*p->next_line+dx; + for (i = p->var.bits_per_pixel*height*p->fontheight; i--;) { + mymemmove(dest, src, width); + src += p->next_plane; + dest += p->next_plane; + } + } else { + src = p->screen_base+(sy+height)*p->fontheight*p->next_line+sx; + dest = p->screen_base+(dy+height)*p->fontheight*p->next_line+dx; + for (i = p->var.bits_per_pixel*height*p->fontheight; i--;) { + src -= p->next_plane; + dest -= p->next_plane; + mymemmove(dest, src, width); + } + } + } +} + + +static void clear_ilbm(struct vc_data *conp, struct display *p, int sy, int sx, + int height, int width) +{ + u_char *dest; + u_int i, rows; + int bg, bg0; + + dest = p->screen_base+sy*p->fontheight*p->next_line+sx; + + bg0 = attr_bgcol_ec(p,conp); + for (rows = height*p->fontheight; rows--;) { + bg = bg0; + for (i = p->var.bits_per_pixel; i--; dest += p->next_plane) { + if (bg & 1) + mymemset(dest, width); + else + mymemclear(dest, width); + bg >>= 1; + } + } +} + + +static void putc_ilbm(struct vc_data *conp, struct display *p, int c, int y, + int x) +{ + u_char *dest, *cdat; + u_int rows, i; + u_char d; + int fg0, bg0, fg, bg; + + c &= 0xff; + + dest = p->screen_base+y*p->fontheight*p->next_line+x; + cdat = p->fontdata+c*p->fontheight; + fg0 = attr_fgcol(p,conp); + bg0 = attr_bgcol(p,conp); + + for (rows = p->fontheight; rows--;) { + d = *cdat++; + fg = fg0; + bg = bg0; + for (i = p->var.bits_per_pixel; i--; dest += p->next_plane) { + if (bg & 1) + if (fg & 1) + *dest = 0xff; + else + *dest = ~d; + else + if (fg & 1) + *dest = d; + else + *dest = 0x00; + bg >>= 1; + fg >>= 1; + } + } +} + + +/* + * I split the console character loop in two parts: + * + * - slow version: this blits one character at a time + * + * - fast version: this blits 4 characters at a time at a longword aligned + * address, to reduce the number of expensive Chip RAM + * accesses. + * + * Experiments on my A4000/040 revealed that this makes a console switch on a + * 640x400 screen with 256 colors about 3 times faster. + * + * Geert + */ + +static void putcs_ilbm(struct vc_data *conp, struct display *p, const char *s, + int count, int y, int x) +{ + u_char *dest0, *dest, *cdat1, *cdat2, *cdat3, *cdat4; + u_int rows, i; + u_char c1, c2, c3, c4; + u_long d; + int fg0, bg0, fg, bg; + + dest0 = p->screen_base+y*p->fontheight*p->next_line+x; + fg0 = attr_fgcol(p,conp); + bg0 = attr_bgcol(p,conp); + + while (count--) + if (x&3 || count < 3) { /* Slow version */ + c1 = *s++; + dest = dest0++; + x++; + + cdat1 = p->fontdata+c1*p->fontheight; + for (rows = p->fontheight; rows--;) { + d = *cdat1++; + fg = fg0; + bg = bg0; + for (i = p->var.bits_per_pixel; i--; dest += p->next_plane) { + if (bg & 1) + if (fg & 1) + *dest = 0xff; + else + *dest = ~d; + else + if (fg & 1) + *dest = d; + else + *dest = 0x00; + bg >>= 1; + fg >>= 1; + } + } + } else { /* Fast version */ + c1 = s[0]; + c2 = s[1]; + c3 = s[2]; + c4 = s[3]; + + dest = dest0; + cdat1 = p->fontdata+c1*p->fontheight; + cdat2 = p->fontdata+c2*p->fontheight; + cdat3 = p->fontdata+c3*p->fontheight; + cdat4 = p->fontdata+c4*p->fontheight; + for (rows = p->fontheight; rows--;) { + d = *cdat1++<<24 | *cdat2++<<16 | *cdat3++<<8 | *cdat4++; + fg = fg0; + bg = bg0; + for (i = p->var.bits_per_pixel; i--; dest += p->next_plane) { + if (bg & 1) + if (fg & 1) + *(u_long *)dest = 0xffffffff; + else + *(u_long *)dest = ~d; + else + if (fg & 1) + *(u_long *)dest = d; + else + *(u_long *)dest = 0x00000000; + bg >>= 1; + fg >>= 1; + } + } + s += 4; + dest0 += 4; + x += 4; + count -= 3; + } +} + + +static void rev_char_ilbm(struct display *p, int x, int y) +{ + u_char *dest, *dest0; + u_int rows, i; + int mask; + + dest0 = p->screen_base+y*p->fontheight*p->next_line+x; + mask = p->fgcol ^ p->bgcol; + + /* + * This should really obey the individual character's + * background and foreground colors instead of simply + * inverting. + */ + + for (i = p->var.bits_per_pixel; i--; dest0 += p->next_plane) { + if (mask & 1) { + dest = dest0; + for (rows = p->fontheight; rows--; dest += p->next_line) + *dest = ~*dest; + } + mask >>= 1; + } +} + +#endif /* CONFIG_FBCON_ILBM */ + + +/* ====================================================================== */ + +#ifdef CONFIG_FBCON_PLANES + + /* + * Color Planes + */ + +static void bmove_plan(struct display *p, int sy, int sx, int dy, int dx, + int height, int width) +{ + u_char *src, *dest, *src0, *dest0; + u_int i, rows; + + if (sx == 0 && sy == 0 && width == p->next_line) { + src = p->screen_base; + dest = p->screen_base+dy*p->fontheight*width; + for (i = p->var.bits_per_pixel; i--;) { + mymemmove(dest, src, height*p->fontheight*width); + src += p->next_plane; + dest += p->next_plane; + } + } else if (dy <= sy) { + src0 = p->screen_base+sy*p->fontheight*p->next_line+sx; + dest0 = p->screen_base+dy*p->fontheight*p->next_line+dx; + for (i = p->var.bits_per_pixel; i--;) { + src = src0; + dest = dest0; + for (rows = height*p->fontheight; rows--;) { + mymemmove(dest, src, width); + src += p->next_line; + dest += p->next_line; + } + src0 += p->next_plane; + dest0 += p->next_plane; + } + } else { + src0 = p->screen_base+(sy+height)*p->fontheight*p->next_line+sx; + dest0 = p->screen_base+(dy+height)*p->fontheight*p->next_line+dx; + for (i = p->var.bits_per_pixel; i--;) { + src = src0; + dest = dest0; + for (rows = height*p->fontheight; rows--;) { + src -= p->next_line; + dest -= p->next_line; + mymemmove(dest, src, width); + } + src0 += p->next_plane; + dest0 += p->next_plane; + } + } +} + + +static void clear_plan(struct vc_data *conp, struct display *p, int sy, int sx, + int height, int width) +{ + u_char *dest, *dest0; + u_int i, rows; + int bg; + + dest0 = p->screen_base+sy*p->fontheight*p->next_line+sx; + + bg = attr_bgcol_ec(p,conp); + for (i = p->var.bits_per_pixel; i--; dest0 += p->next_plane) { + dest = dest0; + for (rows = height*p->fontheight; rows--; dest += p->next_line) + if (bg & 1) + mymemset(dest, width); + else + mymemclear(dest, width); + bg >>= 1; + } +} + + +static void putc_plan(struct vc_data *conp, struct display *p, int c, int y, + int x) +{ + u_char *dest, *dest0, *cdat, *cdat0; + u_int rows, i; + u_char d; + int fg, bg; + + c &= 0xff; + + dest0 = p->screen_base+y*p->fontheight*p->next_line+x; + cdat0 = p->fontdata+c*p->fontheight; + fg = attr_fgcol(p,conp); + bg = attr_bgcol(p,conp); + + for (i = p->var.bits_per_pixel; i--; dest0 += p->next_plane) { + dest = dest0; + cdat = cdat0; + for (rows = p->fontheight; rows--; dest += p->next_line) { + d = *cdat++; + if (bg & 1) + if (fg & 1) + *dest = 0xff; + else + *dest = ~d; + else + if (fg & 1) + *dest = d; + else + *dest = 0x00; + } + bg >>= 1; + fg >>= 1; + } +} + + +/* + * I split the console character loop in two parts + * (cfr. fbcon_putcs_ilbm()) + */ + +static void putcs_plan(struct vc_data *conp, struct display *p, const char *s, + int count, int y, int x) +{ + u_char *dest, *dest0, *dest1; + u_char *cdat1, *cdat2, *cdat3, *cdat4, *cdat10, *cdat20, *cdat30, *cdat40; + u_int rows, i; + u_char c1, c2, c3, c4; + u_long d; + int fg0, bg0, fg, bg; + + dest0 = p->screen_base+y*p->fontheight*p->next_line+x; + fg0 = attr_fgcol(p,conp); + bg0 = attr_bgcol(p,conp); + + while (count--) + if (x&3 || count < 3) { /* Slow version */ + c1 = *s++; + dest1 = dest0++; + x++; + + cdat10 = p->fontdata+c1*p->fontheight; + fg = fg0; + bg = bg0; + + for (i = p->var.bits_per_pixel; i--; dest1 += p->next_plane) { + dest = dest1; + cdat1 = cdat10; + for (rows = p->fontheight; rows--; dest += p->next_line) { + d = *cdat1++; + if (bg & 1) + if (fg & 1) + *dest = 0xff; + else + *dest = ~d; + else + if (fg & 1) + *dest = d; + else + *dest = 0x00; + } + bg >>= 1; + fg >>= 1; + } + } else { /* Fast version */ + c1 = s[0]; + c2 = s[1]; + c3 = s[2]; + c4 = s[3]; + + dest1 = dest0; + cdat10 = p->fontdata+c1*p->fontheight; + cdat20 = p->fontdata+c2*p->fontheight; + cdat30 = p->fontdata+c3*p->fontheight; + cdat40 = p->fontdata+c4*p->fontheight; + fg = fg0; + bg = bg0; + + for (i = p->var.bits_per_pixel; i--; dest1 += p->next_plane) { + dest = dest1; + cdat1 = cdat10; + cdat2 = cdat20; + cdat3 = cdat30; + cdat4 = cdat40; + for (rows = p->fontheight; rows--; dest += p->next_line) { + d = *cdat1++<<24 | *cdat2++<<16 | *cdat3++<<8 | *cdat4++; + if (bg & 1) + if (fg & 1) + *(u_long *)dest = 0xffffffff; + else + *(u_long *)dest = ~d; + else + if (fg & 1) + *(u_long *)dest = d; + else + *(u_long *)dest = 0x00000000; + } + bg >>= 1; + fg >>= 1; + } + s += 4; + dest0 += 4; + x += 4; + count -= 3; + } +} + + +static void rev_char_plan(struct display *p, int x, int y) +{ + u_char *dest, *dest0; + u_int rows, i; + int mask; + + dest0 = p->screen_base+y*p->fontheight*p->next_line+x; + mask = p->fgcol ^ p->bgcol; + + /* + * This should really obey the individual character's + * background and foreground colors instead of simply + * inverting. + */ + + for (i = p->var.bits_per_pixel; i--; dest0 += p->next_plane) { + if (mask & 1) { + dest = dest0; + for (rows = p->fontheight; rows--; dest += p->next_line) + *dest = ~*dest; + } + mask >>= 1; + } +} + +#endif /* CONFIG_FBCON_PLANES */ + + +/* ====================================================================== */ + +#ifdef CONFIG_FBCON_2PLANE + + /* + * 2 Planes (2-bytes interleave) + */ + +/* Increment/decrement 2 plane addresses */ + +#define INC_2P(p) do { if (!((long)(++(p)) & 1)) (p) += 2; } while(0) +#define DEC_2P(p) do { if ((long)(--(p)) & 1) (p) -= 2; } while(0) + +/* Convert a standard 4 bit color to our 2 bit color assignment: + * If at least two RGB channels are active, the low bit is turned on; + * The intensity bit (b3) is shifted into b1. + */ + +#define COLOR_2P(c) (((c & 7) >= 3 && (c & 7) != 4) | (c & 8) >> 2) + + +static void bmove_2_plane(struct display *p, int sy, int sx, int dy, int dx, + int height, int width) +{ + /* bmove() has to distinguish two major cases: If both, source and + * destination, start at even addresses or both are at odd + * addresses, just the first odd and last even column (if present) + * require special treatment (memmove_col()). The rest between + * then can be copied by normal operations, because all adjacent + * bytes are affected and are to be stored in the same order. + * The pathological case is when the move should go from an odd + * address to an even or vice versa. Since the bytes in the plane + * words must be assembled in new order, it seems wisest to make + * all movements by memmove_col(). + */ + + if (sx == 0 && dx == 0 && width == p->next_line/2) { + /* Special (but often used) case: Moving whole lines can be + * done with memmove() + */ + mymemmove(p->screen_base + dy * p->next_line * p->fontheight, + p->screen_base + sy * p->next_line * p->fontheight, + p->next_line * height * p->fontheight); + } else { + int rows, cols; + u_char *src; + u_char *dst; + int bytes = p->next_line; + int linesize = bytes * p->fontheight; + u_int colsize = height * p->fontheight; + u_int upwards = (dy < sy) || (dy == sy && dx < sx); + + if ((sx & 1) == (dx & 1)) { + /* odd->odd or even->even */ + + if (upwards) { + + src = p->screen_base + sy * linesize + (sx>>1)*4 + (sx & 1); + dst = p->screen_base + dy * linesize + (dx>>1)*4 + (dx & 1); + + if (sx & 1) { + memmove_2p_col(dst, src, colsize, bytes); + src += 3; + dst += 3; + --width; + } + + if (width > 1) { + for(rows = colsize; rows > 0; --rows) { + mymemmove(dst, src, (width>>1)*4); + src += bytes; + dst += bytes; + } + } + + if (width & 1) { + src -= colsize * bytes; + dst -= colsize * bytes; + memmove_2p_col(dst + (width>>1)*4, src + (width>>1)*4, + colsize, bytes); + } + } + else { + + if (!((sx+width-1) & 1)) { + src = p->screen_base + sy * linesize + ((sx+width-1)>>1)*4; + dst = p->screen_base + dy * linesize + ((dx+width-1)>>1)*4; + memmove_2p_col(dst, src, colsize, bytes); + --width; + } + + src = p->screen_base + sy * linesize + (sx>>1)*4 + (sx & 1); + dst = p->screen_base + dy * linesize + (dx>>1)*4 + (dx & 1); + + if (width > 1) { + src += colsize * bytes + (sx & 1)*3; + dst += colsize * bytes + (sx & 1)*3; + for(rows = colsize; rows > 0; --rows) { + src -= bytes; + dst -= bytes; + mymemmove(dst, src, (width>>1)*4); + } + } + + if (width & 1) { + memmove_2p_col(dst-3, src-3, colsize, bytes); + } + + } + } + else { + /* odd->even or even->odd */ + + if (upwards) { + src = p->screen_base + sy * linesize + (sx>>1)*4 + (sx & 1); + dst = p->screen_base + dy * linesize + (dx>>1)*4 + (dx & 1); + for(cols = width; cols > 0; --cols) { + memmove_2p_col(dst, src, colsize, bytes); + INC_2P(src); + INC_2P(dst); + } + } + else { + sx += width-1; + dx += width-1; + src = p->screen_base + sy * linesize + (sx>>1)*4 + (sx & 1); + dst = p->screen_base + dy * linesize + (dx>>1)*4 + (dx & 1); + for(cols = width; cols > 0; --cols) { + memmove_2p_col(dst, src, colsize, bytes); + DEC_2P(src); + DEC_2P(dst); + } + } + } + + + } +} + + +static void clear_2_plane(struct vc_data *conp, struct display *p, int sy, + int sx, int height, int width) +{ + ulong offset; + u_char *start; + int rows; + int bytes = p->next_line; + int lines = height * p->fontheight; + ulong size; + u_long cval; + u_short pcval; + + cval = expand2l (COLOR_2P (attr_bgcol_ec(p,conp))); + + if (sx == 0 && width == bytes/2) { + + offset = sy * bytes * p->fontheight; + size = lines * bytes; + memset_even_2p(p->screen_base+offset, size, cval); + + } else { + + offset = (sy * bytes * p->fontheight) + (sx>>1)*4 + (sx & 1); + start = p->screen_base + offset; + pcval = expand2w(COLOR_2P(attr_bgcol_ec(p,conp))); + + /* Clears are split if the region starts at an odd column or + * end at an even column. These extra columns are spread + * across the interleaved planes. All in between can be + * cleared by normal mymemclear_small(), because both bytes of + * the single plane words are affected. + */ + + if (sx & 1) { + memclear_2p_col(start, lines, pcval, bytes); + start += 3; + width--; + } + + if (width & 1) { + memclear_2p_col(start + (width>>1)*4, lines, pcval, bytes); + width--; + } + + if (width) { + for(rows = lines; rows-- ; start += bytes) + memset_even_2p(start, width*2, cval); + } + } +} + + +static void putc_2_plane(struct vc_data *conp, struct display *p, int c, int y, + int x) +{ + u_char *dest; + u_char *cdat; + int rows; + int bytes = p->next_line; + ulong eorx, fgx, bgx, fdx; + + c &= 0xff; + + dest = p->screen_base + y * p->fontheight * bytes + (x>>1)*4 + (x & 1); + cdat = p->fontdata + (c * p->fontheight); + + fgx = expand2w(COLOR_2P(attr_fgcol(p,conp))); + bgx = expand2w(COLOR_2P(attr_bgcol(p,conp))); + eorx = fgx ^ bgx; + + for(rows = p->fontheight ; rows-- ; dest += bytes) { + fdx = dup2w(*cdat++); + __asm__ __volatile__ ("movepw %1,%0@(0)" : /* no outputs */ + : "a" (dest), "d" ((fdx & eorx) ^ bgx)); + } +} + + +static void putcs_2_plane(struct vc_data *conp, struct display *p, + const char *s, int count, int y, int x) +{ + u_char *dest, *dest0; + u_char *cdat, c; + int rows; + int bytes; + ulong eorx, fgx, bgx, fdx; + + bytes = p->next_line; + dest0 = p->screen_base + y * p->fontheight * bytes + (x>>1)*4 + (x & 1); + fgx = expand2w(COLOR_2P(attr_fgcol(p,conp))); + bgx = expand2w(COLOR_2P(attr_bgcol(p,conp))); + eorx = fgx ^ bgx; + + while (count--) { + + c = *s++; + cdat = p->fontdata + (c * p->fontheight); + + for(rows = p->fontheight, dest = dest0; rows-- ; dest += bytes) { + fdx = dup2w(*cdat++); + __asm__ __volatile__ ("movepw %1,%0@(0)" : /* no outputs */ + : "a" (dest), "d" ((fdx & eorx) ^ bgx)); + } + INC_2P(dest0); + } +} + + +static void rev_char_2_plane(struct display *p, int x, int y) +{ + u_char *dest; + int j; + int bytes; + + dest = p->screen_base + y * p->fontheight * p->next_line + (x>>1)*4 + (x & 1); + j = p->fontheight; + bytes = p->next_line; + while (j--) + { + /* This should really obey the individual character's + * background and foreground colors instead of simply + * inverting. + */ + dest[0] = ~dest[0]; + dest[2] = ~dest[2]; + dest += bytes; + } +} +#endif /* CONFIG_FBCON_2PLANE */ + + +/* ====================================================================== */ + +#ifdef CONFIG_FBCON_4PLANE + + /* + * 4 Planes (2-bytes interleave) + */ + +/* Increment/decrement 4 plane addresses */ + +#define INC_4P(p) do { if (!((long)(++(p)) & 1)) (p) += 6; } while(0) +#define DEC_4P(p) do { if ((long)(--(p)) & 1) (p) -= 6; } while(0) + + +static void bmove_4_plane(struct display *p, int sy, int sx, int dy, int dx, + int height, int width) +{ + /* bmove() has to distinguish two major cases: If both, source and + * destination, start at even addresses or both are at odd + * addresses, just the first odd and last even column (if present) + * require special treatment (memmove_col()). The rest between + * then can be copied by normal operations, because all adjacent + * bytes are affected and are to be stored in the same order. + * The pathological case is when the move should go from an odd + * address to an even or vice versa. Since the bytes in the plane + * words must be assembled in new order, it seems wisest to make + * all movements by memmove_col(). + */ + + if (sx == 0 && dx == 0 && width == p->next_line/4) { + /* Special (but often used) case: Moving whole lines can be + * done with memmove() + */ + mymemmove(p->screen_base + dy * p->next_line * p->fontheight, + p->screen_base + sy * p->next_line * p->fontheight, + p->next_line * height * p->fontheight); + } else { + int rows, cols; + u_char *src; + u_char *dst; + int bytes = p->next_line; + int linesize = bytes * p->fontheight; + u_int colsize = height * p->fontheight; + u_int upwards = (dy < sy) || (dy == sy && dx < sx); + + if ((sx & 1) == (dx & 1)) { + /* odd->odd or even->even */ + + if (upwards) { + + src = p->screen_base + sy * linesize + (sx>>1)*8 + (sx & 1); + dst = p->screen_base + dy * linesize + (dx>>1)*8 + (dx & 1); + + if (sx & 1) { + memmove_4p_col(dst, src, colsize, bytes); + src += 7; + dst += 7; + --width; + } + + if (width > 1) { + for(rows = colsize; rows > 0; --rows) { + mymemmove(dst, src, (width>>1)*8); + src += bytes; + dst += bytes; + } + } + + if (width & 1) { + src -= colsize * bytes; + dst -= colsize * bytes; + memmove_4p_col(dst + (width>>1)*8, src + (width>>1)*8, + colsize, bytes); + } + } + else { + + if (!((sx+width-1) & 1)) { + src = p->screen_base + sy * linesize + ((sx+width-1)>>1)*8; + dst = p->screen_base + dy * linesize + ((dx+width-1)>>1)*8; + memmove_4p_col(dst, src, colsize, bytes); + --width; + } + + src = p->screen_base + sy * linesize + (sx>>1)*8 + (sx & 1); + dst = p->screen_base + dy * linesize + (dx>>1)*8 + (dx & 1); + + if (width > 1) { + src += colsize * bytes + (sx & 1)*7; + dst += colsize * bytes + (sx & 1)*7; + for(rows = colsize; rows > 0; --rows) { + src -= bytes; + dst -= bytes; + mymemmove(dst, src, (width>>1)*8); + } + } + + if (width & 1) { + memmove_4p_col(dst-7, src-7, colsize, bytes); + } + + } + } + else { + /* odd->even or even->odd */ + + if (upwards) { + src = p->screen_base + sy * linesize + (sx>>1)*8 + (sx & 1); + dst = p->screen_base + dy * linesize + (dx>>1)*8 + (dx & 1); + for(cols = width; cols > 0; --cols) { + memmove_4p_col(dst, src, colsize, bytes); + INC_4P(src); + INC_4P(dst); + } + } + else { + sx += width-1; + dx += width-1; + src = p->screen_base + sy * linesize + (sx>>1)*8 + (sx & 1); + dst = p->screen_base + dy * linesize + (dx>>1)*8 + (dx & 1); + for(cols = width; cols > 0; --cols) { + memmove_4p_col(dst, src, colsize, bytes); + DEC_4P(src); + DEC_4P(dst); + } + } + } + + + } +} + + +static void clear_4_plane(struct vc_data *conp, struct display *p, int sy, + int sx, int height, int width) +{ + ulong offset; + u_char *start; + int rows; + int bytes = p->next_line; + int lines = height * p->fontheight; + ulong size; + u_long cval1, cval2, pcval; + + expand4dl(attr_bgcol_ec(p,conp), &cval1, &cval2); + + if (sx == 0 && width == bytes/4) { + + offset = sy * bytes * p->fontheight; + size = lines * bytes; + memset_even_4p(p->screen_base+offset, size, cval1, cval2); + + } else { + + offset = (sy * bytes * p->fontheight) + (sx>>1)*8 + (sx & 1); + start = p->screen_base + offset; + pcval = expand4l(attr_bgcol_ec(p,conp)); + + /* Clears are split if the region starts at an odd column or + * end at an even column. These extra columns are spread + * across the interleaved planes. All in between can be + * cleared by normal mymemclear_small(), because both bytes of + * the single plane words are affected. + */ + + if (sx & 1) { + memclear_4p_col(start, lines, pcval, bytes); + start += 7; + width--; + } + + if (width & 1) { + memclear_4p_col(start + (width>>1)*8, lines, pcval, bytes); + width--; + } + + if (width) { + for(rows = lines; rows-- ; start += bytes) + memset_even_4p(start, width*4, cval1, cval2); + } + } +} + + +static void putc_4_plane(struct vc_data *conp, struct display *p, int c, int y, + int x) +{ + u_char *dest; + u_char *cdat; + int rows; + int bytes = p->next_line; + ulong eorx, fgx, bgx, fdx; + + c &= 0xff; + + dest = p->screen_base + y * p->fontheight * bytes + (x>>1)*8 + (x & 1); + cdat = p->fontdata + (c * p->fontheight); + + fgx = expand4l(attr_fgcol(p,conp)); + bgx = expand4l(attr_bgcol(p,conp)); + eorx = fgx ^ bgx; + + for(rows = p->fontheight ; rows-- ; dest += bytes) { + fdx = dup4l(*cdat++); + __asm__ __volatile__ ("movepl %1,%0@(0)" : /* no outputs */ + : "a" (dest), "d" ((fdx & eorx) ^ bgx)); + } +} + + +static void putcs_4_plane(struct vc_data *conp, struct display *p, + const char *s, int count, int y, int x) +{ + u_char *dest, *dest0; + u_char *cdat, c; + int rows; + int bytes; + ulong eorx, fgx, bgx, fdx; + + bytes = p->next_line; + dest0 = p->screen_base + y * p->fontheight * bytes + (x>>1)*8 + (x & 1); + fgx = expand4l(attr_fgcol(p,conp)); + bgx = expand4l(attr_bgcol(p,conp)); + eorx = fgx ^ bgx; + + while (count--) { + + /* I think, unrolling the loops like in the 1 plane case isn't + * practicable here, because the body is much longer for 4 + * planes (mostly the dup4l()). I guess, unrolling this would + * need more than 256 bytes and so exceed the instruction + * cache :-( + */ + + c = *s++; + cdat = p->fontdata + (c * p->fontheight); + + for(rows = p->fontheight, dest = dest0; rows-- ; dest += bytes) { + fdx = dup4l(*cdat++); + __asm__ __volatile__ ("movepl %1,%0@(0)" : /* no outputs */ + : "a" (dest), "d" ((fdx & eorx) ^ bgx)); + } + INC_4P(dest0); + } +} + + +static void rev_char_4_plane(struct display *p, int x, int y) +{ + u_char *dest; + int j; + int bytes; + + dest = p->screen_base + y * p->fontheight * p->next_line + (x>>1)*8 + (x & 1); + j = p->fontheight; + bytes = p->next_line; + + while (j--) + { + /* This should really obey the individual character's + * background and foreground colors instead of simply + * inverting. + */ + dest[0] = ~dest[0]; + dest[2] = ~dest[2]; + dest[4] = ~dest[4]; + dest[6] = ~dest[6]; + dest += bytes; + } +} +#endif /* CONFIG_FBCON_4PLANE */ + + +/* ====================================================================== */ + +#ifdef CONFIG_FBCON_8PLANE + + /* + * 8 Planes (2-bytes interleave) + */ + +/* In 8 plane mode, 256 colors would be possible, but only the first + * 16 are used by the console code (the upper 4 bits are + * background/unused). For that, the following functions mask off the + * higher 4 bits of each color. + */ + +/* Increment/decrement 8 plane addresses */ + +#define INC_8P(p) do { if (!((long)(++(p)) & 1)) (p) += 14; } while(0) +#define DEC_8P(p) do { if ((long)(--(p)) & 1) (p) -= 14; } while(0) + + +static void bmove_8_plane(struct display *p, int sy, int sx, int dy, int dx, + int height, int width) +{ + /* bmove() has to distinguish two major cases: If both, source and + * destination, start at even addresses or both are at odd + * addresses, just the first odd and last even column (if present) + * require special treatment (memmove_col()). The rest between + * then can be copied by normal operations, because all adjacent + * bytes are affected and are to be stored in the same order. + * The pathological case is when the move should go from an odd + * address to an even or vice versa. Since the bytes in the plane + * words must be assembled in new order, it seems wisest to make + * all movements by memmove_col(). + */ + + if (sx == 0 && dx == 0 && width == p->next_line/8) { + /* Special (but often used) case: Moving whole lines can be + * done with memmove() + */ + fast_memmove (p->screen_base + dy * p->next_line * p->fontheight, + p->screen_base + sy * p->next_line * p->fontheight, + p->next_line * height * p->fontheight); + } else { + int rows, cols; + u_char *src; + u_char *dst; + int bytes = p->next_line; + int linesize = bytes * p->fontheight; + u_int colsize = height * p->fontheight; + u_int upwards = (dy < sy) || (dy == sy && dx < sx); + + if ((sx & 1) == (dx & 1)) { + /* odd->odd or even->even */ + + if (upwards) { + + src = p->screen_base + sy * linesize + (sx>>1)*16 + (sx & 1); + dst = p->screen_base + dy * linesize + (dx>>1)*16 + (dx & 1); + + if (sx & 1) { + memmove_8p_col(dst, src, colsize, bytes); + src += 15; + dst += 15; + --width; + } + + if (width > 1) { + for(rows = colsize; rows > 0; --rows) { + fast_memmove (dst, src, (width >> 1) * 16); + src += bytes; + dst += bytes; + } + } + + if (width & 1) { + src -= colsize * bytes; + dst -= colsize * bytes; + memmove_8p_col(dst + (width>>1)*16, src + (width>>1)*16, + colsize, bytes); + } + } + else { + + if (!((sx+width-1) & 1)) { + src = p->screen_base + sy * linesize + ((sx+width-1)>>1)*16; + dst = p->screen_base + dy * linesize + ((dx+width-1)>>1)*16; + memmove_8p_col(dst, src, colsize, bytes); + --width; + } + + src = p->screen_base + sy * linesize + (sx>>1)*16 + (sx & 1); + dst = p->screen_base + dy * linesize + (dx>>1)*16 + (dx & 1); + + if (width > 1) { + src += colsize * bytes + (sx & 1)*15; + dst += colsize * bytes + (sx & 1)*15; + for(rows = colsize; rows > 0; --rows) { + src -= bytes; + dst -= bytes; + fast_memmove (dst, src, (width>>1)*16); + } + } + + if (width & 1) { + memmove_8p_col(dst-15, src-15, colsize, bytes); + } + + } + } + else { + /* odd->even or even->odd */ + + if (upwards) { + src = p->screen_base + sy * linesize + (sx>>1)*16 + (sx & 1); + dst = p->screen_base + dy * linesize + (dx>>1)*16 + (dx & 1); + for(cols = width; cols > 0; --cols) { + memmove_8p_col(dst, src, colsize, bytes); + INC_8P(src); + INC_8P(dst); + } + } + else { + sx += width-1; + dx += width-1; + src = p->screen_base + sy * linesize + (sx>>1)*16 + (sx & 1); + dst = p->screen_base + dy * linesize + (dx>>1)*16 + (dx & 1); + for(cols = width; cols > 0; --cols) { + memmove_8p_col(dst, src, colsize, bytes); + DEC_8P(src); + DEC_8P(dst); + } + } + } + + + } +} + + +static void clear_8_plane(struct vc_data *conp, struct display *p, int sy, + int sx, int height, int width) +{ + ulong offset; + u_char *start; + int rows; + int bytes = p->next_line; + int lines = height * p->fontheight; + ulong size; + u_long cval1, cval2, cval3, cval4, pcval1, pcval2; + + expand8ql(attr_bgcol_ec(p,conp), cval1, cval2, cval3, cval4); + + if (sx == 0 && width == bytes/8) { + + offset = sy * bytes * p->fontheight; + size = lines * bytes; + memset_even_8p(p->screen_base+offset, size, cval1, cval2, cval3, cval4); + + } else { + + offset = (sy * bytes * p->fontheight) + (sx>>1)*16 + (sx & 1); + start = p->screen_base + offset; + expand8dl(attr_bgcol_ec(p,conp), &pcval1, &pcval2); + + /* Clears are split if the region starts at an odd column or + * end at an even column. These extra columns are spread + * across the interleaved planes. All in between can be + * cleared by normal mymemclear_small(), because both bytes of + * the single plane words are affected. + */ + + if (sx & 1) { + memclear_8p_col(start, lines, pcval1, pcval2, bytes); + start += 7; + width--; + } + + if (width & 1) { + memclear_8p_col(start + (width>>1)*16, lines, pcval1, + pcval2, bytes); + width--; + } + + if (width) { + for(rows = lines; rows-- ; start += bytes) + memset_even_8p(start, width*8, cval1, cval2, cval3, cval4); + } + } +} + + +static void putc_8_plane(struct vc_data *conp, struct display *p, int c, int y, + int x) +{ + u_char *dest; + u_char *cdat; + int rows; + int bytes = p->next_line; + ulong eorx1, eorx2, fgx1, fgx2, bgx1, bgx2, fdx; + + c &= 0xff; + + dest = p->screen_base + y * p->fontheight * bytes + (x>>1)*16 + (x & 1); + cdat = p->fontdata + (c * p->fontheight); + + expand8dl(attr_fgcol(p,conp), &fgx1, &fgx2); + expand8dl(attr_bgcol(p,conp), &bgx1, &bgx2); + eorx1 = fgx1 ^ bgx1; eorx2 = fgx2 ^ bgx2; + + for(rows = p->fontheight ; rows-- ; dest += bytes) { + fdx = dup4l(*cdat++); + __asm__ __volatile__ + ("movepl %1,%0@(0)\n\t" + "movepl %2,%0@(8)" + : /* no outputs */ + : "a" (dest), "d" ((fdx & eorx1) ^ bgx1), + "d" ((fdx & eorx2) ^ bgx2) + ); + } +} + + +static void putcs_8_plane(struct vc_data *conp, struct display *p, + const char *s, int count, int y, int x) +{ + u_char *dest, *dest0; + u_char *cdat, c; + int rows; + int bytes; + ulong eorx1, eorx2, fgx1, fgx2, bgx1, bgx2, fdx; + + bytes = p->next_line; + dest0 = p->screen_base + y * p->fontheight * bytes + (x>>1)*16 + (x & 1); + + expand8dl(attr_fgcol(p,conp), &fgx1, &fgx2); + expand8dl(attr_bgcol(p,conp), &bgx1, &bgx2); + eorx1 = fgx1 ^ bgx1; eorx2 = fgx2 ^ bgx2; + + while (count--) { + + /* I think, unrolling the loops like in the 1 plane case isn't + * practicable here, because the body is much longer for 4 + * planes (mostly the dup4l()). I guess, unrolling this would + * need more than 256 bytes and so exceed the instruction + * cache :-( + */ + + c = *s++; + cdat = p->fontdata + (c * p->fontheight); + + for(rows = p->fontheight, dest = dest0; rows-- ; dest += bytes) { + fdx = dup4l(*cdat++); + __asm__ __volatile__ + ("movepl %1,%0@(0)\n\t" + "movepl %2,%0@(8)" + : /* no outputs */ + : "a" (dest), "d" ((fdx & eorx1) ^ bgx1), + "d" ((fdx & eorx2) ^ bgx2) + ); + } + INC_8P(dest0); + } +} + + +static void rev_char_8_plane(struct display *p, int x, int y) +{ + u_char *dest; + int j; + int bytes; + + dest = p->screen_base + y * p->fontheight * p->next_line + (x>>1)*16 + (x & 1); + j = p->fontheight; + bytes = p->next_line; + + while (j--) + { + /* This should really obey the individual character's + * background and foreground colors instead of simply + * inverting. For 8 plane mode, only the lower 4 bits of the + * color are inverted, because only that color registers have + * been set up. + */ + dest[0] = ~dest[0]; + dest[2] = ~dest[2]; + dest[4] = ~dest[4]; + dest[6] = ~dest[6]; + dest += bytes; + } +} +#endif /* CONFIG_FBCON_8PLANE */ + + +/* ====================================================================== */ + +#ifdef CONFIG_FBCON_8PACKED + + /* + * 8 bpp Packed Pixels + */ + +static u_long nibbletab_8_packed[]={ +0x00000000,0x000000ff,0x0000ff00,0x0000ffff, +0x00ff0000,0x00ff00ff,0x00ffff00,0x00ffffff, +0xff000000,0xff0000ff,0xff00ff00,0xff00ffff, +0xffff0000,0xffff00ff,0xffffff00,0xffffffff}; + +static void bmove_8_packed(struct display *p, int sy, int sx, int dy, int dx, + int height, int width) +{ + int bytes = p->next_line, linesize = bytes * p->fontheight, rows; + u_char *src,*dst; + + if (sx == 0 && dx == 0 && width * 8 == bytes) { + mymemmove(p->screen_base + dy * linesize, + p->screen_base + sy * linesize, + height * linesize); + } + else { + if (dy < sy || (dy == sy && dx < sx)) { + src = p->screen_base + sy * linesize + sx * 8; + dst = p->screen_base + dy * linesize + dx * 8; + for (rows = height * p->fontheight ; rows-- ;) { + mymemmove(dst, src, width * 8); + src += bytes; + dst += bytes; + } + } + else { + src = p->screen_base + (sy+height) * linesize + sx * 8 + - bytes; + dst = p->screen_base + (dy+height) * linesize + dx * 8 + - bytes; + for (rows = height * p->fontheight ; rows-- ;) { + mymemmove(dst, src, width * 8); + src -= bytes; + dst -= bytes; + } + } + } +} + + +static void clear_8_packed(struct vc_data *conp, struct display *p, int sy, + int sx, int height, int width) +{ + u_char *dest0,*dest; + int bytes=p->next_line,lines=height * p->fontheight, rows, i; + u_long bgx; + + dest = p->screen_base + sy * p->fontheight * bytes + sx * 8; + + bgx=attr_bgcol_ec(p,conp); + bgx |= (bgx << 8); + bgx |= (bgx << 16); + + if (sx == 0 && width * 8 == bytes) { + for (i = 0 ; i < lines * width ; i++) { + ((u_long *)dest)[0]=bgx; + ((u_long *)dest)[1]=bgx; + dest+=8; + } + } else { + dest0=dest; + for (rows = lines; rows-- ; dest0 += bytes) { + dest=dest0; + for (i = 0 ; i < width ; i++) { + ((u_long *)dest)[0]=bgx; + ((u_long *)dest)[1]=bgx; + dest+=8; + } + } + } +} + + +static void putc_8_packed(struct vc_data *conp, struct display *p, int c, int y, + int x) +{ + u_char *dest,*cdat; + int bytes=p->next_line,rows; + ulong eorx,fgx,bgx; + + c &= 0xff; + + dest = p->screen_base + y * p->fontheight * bytes + x * 8; + cdat = p->fontdata + c * p->fontheight; + + fgx=attr_fgcol(p,conp); + bgx=attr_bgcol(p,conp); + fgx |= (fgx << 8); + fgx |= (fgx << 16); + bgx |= (bgx << 8); + bgx |= (bgx << 16); + eorx = fgx ^ bgx; + + for (rows = p->fontheight ; rows-- ; dest += bytes) { + ((u_long *)dest)[0]= + (nibbletab_8_packed[*cdat >> 4] & eorx) ^ bgx; + ((u_long *)dest)[1]= + (nibbletab_8_packed[*cdat++ & 0xf] & eorx) ^ bgx; + } +/* + for (rows = p->fontheight ; rows-- ; dest += bytes) { + ((u_long *)dest)[0]= + nibbletab_8_packed[*cdat >> 4]; + ((u_long *)dest)[1]= + nibbletab_8_packed[*cdat++ & 0xf]; + } +*/ +} + + +static void putcs_8_packed(struct vc_data *conp, struct display *p, + const char *s, int count, int y, int x) +{ + u_char *cdat, c, *dest, *dest0; + int rows,bytes=p->next_line; + u_long eorx, fgx, bgx; + + dest0 = p->screen_base + y * p->fontheight * bytes + x * 8; + fgx=attr_fgcol(p,conp); + bgx=attr_bgcol(p,conp); + fgx |= (fgx << 8); + fgx |= (fgx << 16); + bgx |= (bgx << 8); + bgx |= (bgx << 16); + eorx = fgx ^ bgx; + while (count--) { + c = *s++; + cdat = p->fontdata + c * p->fontheight; + + for (rows = p->fontheight, dest = dest0; rows-- ; dest += bytes) { + ((u_long *)dest)[0]= + (nibbletab_8_packed[*cdat >> 4] & eorx) ^ bgx; + ((u_long *)dest)[1]= + (nibbletab_8_packed[*cdat++ & 0xf] & eorx) ^ bgx; + } + dest0+=8; + } +} + + +static void rev_char_8_packed(struct display *p, int x, int y) +{ + u_char *dest; + int bytes=p->next_line, rows; + + dest = p->screen_base + y * p->fontheight * bytes + x * 8; + for (rows = p->fontheight ; rows-- ; dest += bytes) { + ((u_long *)dest)[0] ^= 0x0f0f0f0f; + ((u_long *)dest)[1] ^= 0x0f0f0f0f; + } +} + +#endif /* CONFIG_FBCON_8PACKED */ + +/* ====================================================================== */ + +#ifdef CONFIG_FBCON_8PACKED_NOTALIGNED + + /* + * 8 bpp Packed Pixels + */ + +static u_long nibbletab_8_packed[]={ +0x00000000,0x000000ff,0x0000ff00,0x0000ffff, +0x00ff0000,0x00ff00ff,0x00ffff00,0x00ffffff, +0xff000000,0xff0000ff,0xff00ff00,0xff00ffff, +0xffff0000,0xffff00ff,0xffffff00,0xffffffff}; + +static void bmove_8_packed(struct display *p, int sy, int sx, int dy, int dx, + int height, int width) +{ + int bytes = p->next_line, linesize = bytes * p->fontheight, rows; + u_char *src,*dst; + + if (sx == 0 && dx == 0 && width * 8 == bytes) { + mymemmove_notaligned(p->screen_base + p->var.yoffset + dy * linesize, + p->screen_base + p->var.yoffset + sy * linesize, + height * linesize); + } + else { + if (dy < sy || (dy == sy && dx < sx)) { + src = p->screen_base + p->var.yoffset + sy * linesize + sx * 8; + dst = p->screen_base + p->var.yoffset + dy * linesize + dx * 8; + for (rows = height * p->fontheight ; rows-- ;) { + mymemmove_notaligned(dst, src, width * 8); + src += bytes; + dst += bytes; + } + } + else { + src = p->screen_base + p->var.yoffset + (sy+height) * linesize + sx * 8 + - bytes; + dst = p->screen_base + p->var.yoffset + (dy+height) * linesize + dx * 8 + - bytes; + for (rows = height * p->fontheight ; rows-- ;) { + mymemmove_notaligned(dst, src, width * 8); + src -= bytes; + dst -= bytes; + } + } + } +} + + +static void clear_8_packed(struct vc_data *conp, struct display *p, int sy, + int sx, int height, int width) +{ + u_long dest0,dest; + int bytes=p->next_line,lines=height * p->fontheight, rows, i; + u_long bgx; + u_long fb_base = (u_long)p->screen_base; + + dest = fb_base + p->var.yoffset + sy * p->fontheight * bytes + sx * 8; + + bgx=attr_bgcol_ec(p,conp); + bgx |= (bgx << 8); + bgx |= (bgx << 16); + + if (sx == 0 && width * 8 == bytes) { + for (i = 0 ; i < lines * width ; i++) { + *((u_long *)CRT_WRAP(fb_base, dest)) = bgx; + *((u_long *)CRT_WRAP(fb_base, dest + 4)) = bgx; + dest+=8; + } + } else { + dest0=dest; + for (rows = lines; rows-- ; dest0 += bytes) { + dest=dest0; + for (i = 0 ; i < width ; i++) { + *((u_long *)CRT_WRAP(fb_base, dest0)) = bgx; + *((u_long *)CRT_WRAP(fb_base, dest0 + 4)) = bgx; + dest+=8; + } + } + } +} + + +static void putc_8_packed(struct vc_data *conp, struct display *p, int c, int y, + int x) +{ + u_long dest; + u_char *cdat; + int bytes=p->next_line,rows; + ulong eorx,fgx,bgx; + u_long fb_base = (u_long)p->screen_base; + + c &= 0xff; + + dest = fb_base + p->var.yoffset + y * p->fontheight * bytes + x * 8; + cdat = p->fontdata + c * p->fontheight; + + fgx=attr_fgcol(p,conp); + bgx=attr_bgcol(p,conp); + fgx |= (fgx << 8); + fgx |= (fgx << 16); + bgx |= (bgx << 8); + bgx |= (bgx << 16); + eorx = fgx ^ bgx; + + for (rows = p->fontheight ; rows-- ; dest += bytes) { + *((u_long *)CRT_WRAP(fb_base, dest)) = + (nibbletab_8_packed[*cdat >> 4] & eorx) ^ bgx; + *((u_long *)CRT_WRAP(fb_base, dest + 4)) = + (nibbletab_8_packed[*cdat++ & 0xf] & eorx) ^ bgx; + } +} + + +static void putcs_8_packed(struct vc_data *conp, struct display *p, + const char *s, int count, int y, int x) +{ + u_long dest, dest0; + u_char *cdat, c; + int rows,bytes=p->next_line; + u_long eorx, fgx, bgx; + u_long fb_base = (u_long)p->screen_base; + + + dest0 = fb_base + p->var.yoffset + y * p->fontheight * bytes + x * 8; + fgx=attr_fgcol(p,conp); + bgx=attr_bgcol(p,conp); + fgx |= (fgx << 8); + fgx |= (fgx << 16); + bgx |= (bgx << 8); + bgx |= (bgx << 16); + eorx = fgx ^ bgx; + while (count--) { + c = *s++; + cdat = p->fontdata + c * p->fontheight; + + for (rows = p->fontheight, dest = dest0; rows-- ; dest += bytes) { + *((u_long *)CRT_WRAP(fb_base, dest)) = + (nibbletab_8_packed[*cdat >> 4] & eorx) ^ bgx; + *((u_long *)CRT_WRAP(fb_base, dest + 4)) = + (nibbletab_8_packed[*cdat++ & 0xf] & eorx) ^ bgx; + } + dest0+=8; + } +} + + +static void rev_char_8_packed(struct display *p, int x, int y) +{ + u_long dest; + int bytes=p->next_line, rows; + u_long fb_base = (u_long)p->screen_base; + + + dest = fb_base + p->var.yoffset + y * p->fontheight * bytes + x * 8; + for (rows = p->fontheight ; rows-- ; dest += bytes) { + *((u_long *)CRT_WRAP(fb_base, dest)) ^= 0x0f0f0f0f; + *((u_long *)CRT_WRAP(fb_base, dest + 4)) ^= 0x0f0f0f0f; + } +} + +#endif /* CONFIG_FBCON_8PACKED_NOTALIGNED */ + + +/* ====================================================================== */ + +#ifdef CONFIG_FBCON_16PACKED + + /* + * 16 bpp Packed Pixels + */ + +u_short packed16_cmap[16]; + +static u_long tab_16_packed[]={ +0x00000000,0x0000ffff,0xffff0000,0xffffffff}; + +static void bmove_16_packed(struct display *p, int sy, int sx, int dy, int dx, + int height, int width) +{ + int bytes = p->next_line, linesize = bytes * p->fontheight, rows; + u_char *src,*dst; + + if (sx == 0 && dx == 0 && width * 16 == bytes) { + mymemmove(p->screen_base + dy * linesize, + p->screen_base + sy * linesize, + height * linesize); + } + else { + if (dy < sy || (dy == sy && dx < sx)) { + src = p->screen_base + sy * linesize + sx * 16; + dst = p->screen_base + dy * linesize + dx * 16; + for (rows = height * p->fontheight ; rows-- ;) { + mymemmove(dst, src, width * 16); + src += bytes; + dst += bytes; + } + } + else { + src = p->screen_base + (sy+height) * linesize + sx * 16 + - bytes; + dst = p->screen_base + (dy+height) * linesize + dx * 16 + - bytes; + for (rows = height * p->fontheight ; rows-- ;) { + mymemmove(dst, src, width * 16); + src -= bytes; + dst -= bytes; + } + } + } +} + + +static void clear_16_packed(struct vc_data *conp, struct display *p, int sy, + int sx, int height, int width) +{ + u_char *dest0,*dest; + int bytes=p->next_line,lines=height * p->fontheight, rows, i; + u_long bgx; + + dest = p->screen_base + sy * p->fontheight * bytes + sx * 16; + + bgx = attr_bgcol_ec(p,conp); + bgx = packed16_cmap[bgx]; + bgx |= (bgx << 16); + + if (sx == 0 && width * 16 == bytes) { + for (i = 0 ; i < lines * width ; i++) { + ((u_long *)dest)[0]=bgx; + ((u_long *)dest)[1]=bgx; + ((u_long *)dest)[2]=bgx; + ((u_long *)dest)[3]=bgx; + dest+=16; + } + } else { + dest0=dest; + for (rows = lines; rows-- ; dest0 += bytes) { + dest=dest0; + for (i = 0 ; i < width ; i++) { + ((u_long *)dest)[0]=bgx; + ((u_long *)dest)[1]=bgx; + ((u_long *)dest)[2]=bgx; + ((u_long *)dest)[3]=bgx; + dest+=16; + } + } + } +} + + +static void putc_16_packed(struct vc_data *conp, struct display *p, int c, + int y, int x) +{ + u_char *dest,*cdat; + int bytes=p->next_line,rows; + ulong eorx,fgx,bgx; + + c &= 0xff; + + dest = p->screen_base + y * p->fontheight * bytes + x * 16; + cdat = p->fontdata + c * p->fontheight; + + fgx = attr_fgcol(p,conp); + fgx = packed16_cmap[fgx]; + bgx = attr_bgcol(p,conp); + bgx = packed16_cmap[bgx]; + fgx |= (fgx << 16); + bgx |= (bgx << 16); + eorx = fgx ^ bgx; + + for (rows = p->fontheight ; rows-- ; dest += bytes) { + ((u_long *)dest)[0]= + (tab_16_packed[*cdat >> 6] & eorx) ^ bgx; + ((u_long *)dest)[1]= + (tab_16_packed[*cdat >> 4 & 0x3] & eorx) ^ bgx; + ((u_long *)dest)[2]= + (tab_16_packed[*cdat >> 2 & 0x3] & eorx) ^ bgx; + ((u_long *)dest)[3]= + (tab_16_packed[*cdat++ & 0x3] & eorx) ^ bgx; + } +} + + +/* TODO */ +static void putcs_16_packed(struct vc_data *conp, struct display *p, + const char *s, int count, int y, int x) +{ + u_char *cdat, c, *dest, *dest0; + int rows,bytes=p->next_line; + u_long eorx, fgx, bgx; + + dest0 = p->screen_base + y * p->fontheight * bytes + x * 16; + fgx = attr_fgcol(p,conp); + fgx = packed16_cmap[fgx]; + bgx = attr_bgcol(p,conp); + bgx = packed16_cmap[bgx]; + fgx |= (fgx << 16); + bgx |= (bgx << 16); + eorx = fgx ^ bgx; + while (count--) { + c = *s++; + cdat = p->fontdata + c * p->fontheight; + + for (rows = p->fontheight, dest = dest0; rows-- ; dest += bytes) { + ((u_long *)dest)[0]= + (tab_16_packed[*cdat >> 6] & eorx) ^ bgx; + ((u_long *)dest)[1]= + (tab_16_packed[*cdat >> 4 & 0x3] & eorx) ^ bgx; + ((u_long *)dest)[2]= + (tab_16_packed[*cdat >> 2 & 0x3] & eorx) ^ bgx; + ((u_long *)dest)[3]= + (tab_16_packed[*cdat++ & 0x3] & eorx) ^ bgx; + } + dest0+=16; + } +} + + +static void rev_char_16_packed(struct display *p, int x, int y) +{ + u_char *dest; + int bytes=p->next_line, rows; + + dest = p->screen_base + y * p->fontheight * bytes + x * 16; + for (rows = p->fontheight ; rows-- ; dest += bytes) { + ((u_long *)dest)[0] ^= 0xffffffff; + ((u_long *)dest)[1] ^= 0xffffffff; + ((u_long *)dest)[2] ^= 0xffffffff; + ((u_long *)dest)[3] ^= 0xffffffff; + } +} + +#endif /* CONFIG_FBCON_16PACKED */ + + +/* ====================================================================== */ + +#ifdef CONFIG_FBCON_CYBER + + /* + * Cybervision (accelerated) + */ + +static void bmove_cyber(struct display *p, int sy, int sx, int dy, int dx, + int height, int width) +{ + sx *= 8; dx *= 8; width *= 8; + Cyber_BitBLT((u_short)sx, (u_short)(sy*p->fontheight), (u_short)dx, + (u_short)(dy*p->fontheight), (u_short)width, + (u_short)(height*p->fontheight), (u_short)S3_NEW); +} + + +static void clear_cyber(struct vc_data *conp, struct display *p, int sy, int sx, + int height, int width) +{ + u_char bg; + + sx *= 8; width *= 8; + bg = attr_bgcol_ec(p,conp); + Cyber_RectFill((u_short)sx, (u_short)(sy*p->fontheight), (u_short)width, + (u_short)(height*p->fontheight), (u_short)S3_NEW, + (u_short)bg); +} + + +static void putc_cyber(struct vc_data *conp, struct display *p, int c, int y, + int x) +{ + u_char *dest, *cdat; + u_long tmp; + u_int rows, reverse, underline; + u_char d; + u_char fg, bg; + + c &= 0xff; + + dest = p->screen_base+y*p->fontheight*p->next_line+8*x; + cdat = p->fontdata+(c*p->fontheight); + fg = disp->fgcol; + bg = disp->bgcol; + reverse = conp->vc_reverse; + underline = conp->vc_underline; + + Cyber_WaitBlit(); + for (rows = p->fontheight; rows--; dest += p->next_line) { + d = *cdat++; + + if (underline && !rows) + d = 0xff; + if (reverse) + d = ~d; + + tmp = ((d & 0x80) ? fg : bg) << 24; + tmp |= ((d & 0x40) ? fg : bg) << 16; + tmp |= ((d & 0x20) ? fg : bg) << 8; + tmp |= ((d & 0x10) ? fg : bg); + *((u_long*) dest) = tmp; + tmp = ((d & 0x8) ? fg : bg) << 24; + tmp |= ((d & 0x4) ? fg : bg) << 16; + tmp |= ((d & 0x2) ? fg : bg) << 8; + tmp |= ((d & 0x1) ? fg : bg); + *((u_long*) dest + 1) = tmp; + } +} + + +static void putcs_cyber(struct vc_data *conp, struct display *p, const char *s, + int count, int y, int x) +{ + u_char *dest, *dest0, *cdat; + u_long tmp; + u_int rows, reverse, underline; + u_char c, d; + u_char fg, bg; + + dest0 = p->screen_base+y*p->fontheight*p->next_line+8*x; + fg = disp->fgcol; + bg = disp->bgcol; + reverse = conp->vc_reverse; + underline = conp->vc_underline; + + Cyber_WaitBlit(); + while (count--) { + c = *s++; + dest = dest0; + dest0 += 8; + cdat = p->fontdata+(c*p->fontheight); + for (rows = p->fontheight; rows--; dest += p->next_line) { + d = *cdat++; + + if (underline && !rows) + d = 0xff; + if (reverse) + d = ~d; + + tmp = ((d & 0x80) ? fg : bg) << 24; + tmp |= ((d & 0x40) ? fg : bg) << 16; + tmp |= ((d & 0x20) ? fg : bg) << 8; + tmp |= ((d & 0x10) ? fg : bg); + *((u_long*) dest) = tmp; + tmp = ((d & 0x8) ? fg : bg) << 24; + tmp |= ((d & 0x4) ? fg : bg) << 16; + tmp |= ((d & 0x2) ? fg : bg) << 8; + tmp |= ((d & 0x1) ? fg : bg); + *((u_long*) dest + 1) = tmp; + } + } +} + + +static void rev_char_cyber(struct display *p, int x, int y) +{ + u_char *dest; + u_int rows; + u_char fg, bg; + + fg = disp->fgcol; + bg = disp->bgcol; + + dest = p->screen_base+y*p->fontheight*p->next_line+8*x; + Cyber_WaitBlit(); + for (rows = p->fontheight; rows--; dest += p->next_line) { + *dest = (*dest == fg) ? bg : fg; + *(dest+1) = (*(dest + 1) == fg) ? bg : fg; + *(dest+2) = (*(dest + 2) == fg) ? bg : fg; + *(dest+3) = (*(dest + 3) == fg) ? bg : fg; + *(dest+4) = (*(dest + 4) == fg) ? bg : fg; + *(dest+5) = (*(dest + 5) == fg) ? bg : fg; + *(dest+6) = (*(dest + 6) == fg) ? bg : fg; + *(dest+7) = (*(dest + 7) == fg) ? bg : fg; + } +} + +#endif /* CONFIG_FBCON_CYBER */ + + +/* ====================================================================== */ + + /* + * The console `switch' structure for the frame buffer based console + */ + +struct consw fb_con = { + fbcon_startup, fbcon_init, fbcon_deinit, fbcon_clear, fbcon_putc, + fbcon_putcs, fbcon_cursor, fbcon_scroll, fbcon_bmove, fbcon_switch, + fbcon_blank, fbcon_get_font, fbcon_set_font +}; + Index: console/txtcon.c =================================================================== --- console/txtcon.c (nonexistent) +++ console/txtcon.c (revision 1765) @@ -0,0 +1,131 @@ +/* + * linux/arch/or32/console/txtcon.c -- Low level text mode based console driver + * + * Based on: + * + * linux/arch/m68k/console/txtcon.c -- Low level text mode based console driver + * + * Copyright (C) 1995 Geert Uytterhoeven + * + * + * This file is currently only a skeleton, since all Amigas and Ataris have + * bitmapped graphics. + * + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive + * for more details. + */ + + +#include +#include + + + /* + * Interface used by the world + */ + +static u_long txtcon_startup(u_long kmem_start, char **display_desc); +static void txtcon_init(struct vc_data *conp); +static int txtcon_deinit(struct vc_data *conp); +static int txtcon_clear(struct vc_data *conp, int sy, int sx, int height, + int width); +static int txtcon_putc(struct vc_data *conp, int c, int y, int x); +static int txtcon_putcs(struct vc_data *conp, const char *s, int count, int y, + int x); +static int txtcon_cursor(struct vc_data *conp, int mode); +static int txtcon_scroll(struct vc_data *conp, int t, int b, int dir, int count); +static int txtcon_bmove(struct vc_data *conp, int sy, int sx, int dy, int dx, + int height, int width); +static int txtcon_switch(struct vc_data *conp); +static int txtcon_blank(int blank); + + + +static u_long txtcon_startup(u_long kmem_start, char **display_desc) +{ + *display_desc = "Not yet implemented"; + return(kmem_start); +} + + +static void txtcon_init(struct vc_data *conp) +{ +} + + +static int txtcon_deinit(struct vc_data *conp) +{ + return(0); +} + + +/* ====================================================================== */ + +/* txtcon_XXX routines - interface used by the world */ + + +static int txtcon_clear(struct vc_data *conp, int sy, int sx, int height, + int width) +{ + return(0); +} + + +static int txtcon_putc(struct vc_data *conp, int c, int y, int x) +{ + return(0); +} + + +static int txtcon_putcs(struct vc_data *conp, const char *s, int count, int y, + int x) +{ + return(0); +} + + +static int txtcon_cursor(struct vc_data *conp, int mode) +{ + return(0); +} + + +static int txtcon_scroll(struct vc_data *conp, int t, int b, int dir, int count) +{ + return(0); +} + + +static int txtcon_bmove(struct vc_data *conp, int sy, int sx, int dy, int dx, + int height, int width) +{ + return(0); +} + + +static int txtcon_switch(struct vc_data *conp) +{ + return(0); +} + + +static int txtcon_blank(int blank) +{ + return(0); +} + + +/* ====================================================================== */ + + /* + * The console `switch' structure for the text mode based console + */ + +struct consw txt_con = { + txtcon_startup, txtcon_init, txtcon_deinit, txtcon_clear, txtcon_putc, + txtcon_putcs, txtcon_cursor, txtcon_scroll, txtcon_bmove, txtcon_switch, + txtcon_blank +}; + Index: console/fonts.c =================================================================== --- console/fonts.c (nonexistent) +++ console/fonts.c (revision 1765) @@ -0,0 +1,112 @@ + +/* + * arch/or32/console/fonts.c -- `Soft' font definitions + * + * Created 1995 by Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive + * for more details. + */ + + +#include +#include +#include + + + /* + * External Font Definitions + */ + +/* VGA8x8 */ +extern char fontname_8x8[]; +extern int fontwidth_8x8, fontheight_8x8; +extern u_char fontdata_8x8[]; + +/* VGA8x16 */ +extern char fontname_8x16[]; +extern int fontwidth_8x16, fontheight_8x16; +extern u_char fontdata_8x16[]; + +/* PEARL8x8 */ +extern char fontname_pearl8x8[]; +extern int fontwidth_pearl8x8, fontheight_pearl8x8; +extern u_char fontdata_pearl8x8[]; + +/* MINI4x6 */ +extern char fontname_mini4x6[]; +extern int fontwidth_mini4x6, fontheight_mini4x6; +extern u_char fontdata_mini4x6[]; + + + /* + * Font Descriptor Array + */ + +struct softfontdesc { + char *name; + int *width; + int *height; + u_char *data; +}; + +#define VGA8x8_IDX 0 +#define VGA8x16_IDX 1 +#define PEARL8x8_IDX 2 +#define MINI4x6_IDX 3 + +static struct softfontdesc softfonts[] = { + { fontname_8x8, &fontwidth_8x8, &fontheight_8x8, fontdata_8x8 }, + { fontname_8x16, &fontwidth_8x16, &fontheight_8x16, fontdata_8x16 }, + { fontname_pearl8x8, &fontwidth_pearl8x8, &fontheight_pearl8x8, + fontdata_pearl8x8 }, + { fontname_mini4x6, &fontwidth_mini4x6, &fontheight_mini4x6, + fontdata_mini4x6 }, +}; + +static u_long numsoftfonts = sizeof(softfonts)/sizeof(*softfonts); + + + /* + * Find a font with a specific name + */ + +int findsoftfont(char *name, int *width, int *height, u_char *data[]) +{ + int i; + + for (i = 0; i < numsoftfonts; i++) + if (!strcmp(softfonts[i].name, name)) { + if (width) + *width = *softfonts[i].width; + if (height) + *height = *softfonts[i].height; + if (data) + *data = softfonts[i].data; + return(1); + } + return(0); +} + + + /* + * Get the default font for a specific screen size + */ + +void getdefaultfont(int xres, int yres, char *name[], int *width, int *height, + u_char *data[]) +{ + int i; + + i = MINI4x6_IDX; + + if (name) + *name = softfonts[i].name; + if (width) + *width = *softfonts[i].width; + if (height) + *height = *softfonts[i].height; + if (data) + *data = softfonts[i].data; +} Index: console/pearl_8x8.c =================================================================== --- console/pearl_8x8.c (nonexistent) +++ console/pearl_8x8.c (revision 1765) @@ -0,0 +1,2582 @@ +/**********************************************/ +/* */ +/* Font file generated by cpi2fnt */ +/* ------------------------------ */ +/* Combined with the alpha-numeric */ +/* portion of Greg Harp's old PEARL */ +/* font (from earlier versions of */ +/* linux-m86k) by John Shifflett */ +/* */ +/**********************************************/ + +#define FONTDATAMAX 2048 + +char fontname_pearl8x8[] = "PEARL8x8"; + +int fontheight_pearl8x8 = 8; +int fontwidth_pearl8x8 = 8; + +unsigned char fontdata_pearl8x8[FONTDATAMAX] = { + + /* 0 0x00 '^@' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 1 0x01 '^A' */ + 0x7e, /* 01111110 */ + 0x81, /* 10000001 */ + 0xa5, /* 10100101 */ + 0x81, /* 10000001 */ + 0xbd, /* 10111101 */ + 0x99, /* 10011001 */ + 0x81, /* 10000001 */ + 0x7e, /* 01111110 */ + + /* 2 0x02 '^B' */ + 0x7e, /* 01111110 */ + 0xff, /* 11111111 */ + 0xdb, /* 11011011 */ + 0xff, /* 11111111 */ + 0xc3, /* 11000011 */ + 0xe7, /* 11100111 */ + 0xff, /* 11111111 */ + 0x7e, /* 01111110 */ + + /* 3 0x03 '^C' */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0x10, /* 00010000 */ + 0x00, /* 00000000 */ + + /* 4 0x04 '^D' */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x7c, /* 01111100 */ + 0xfe, /* 11111110 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0x10, /* 00010000 */ + 0x00, /* 00000000 */ + + /* 5 0x05 '^E' */ + 0x38, /* 00111000 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xd6, /* 11010110 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + + /* 6 0x06 '^F' */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x7c, /* 01111100 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0x7c, /* 01111100 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + + /* 7 0x07 '^G' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 8 0x08 '^H' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xe7, /* 11100111 */ + 0xc3, /* 11000011 */ + 0xc3, /* 11000011 */ + 0xe7, /* 11100111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 9 0x09 '^I' */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x42, /* 01000010 */ + 0x42, /* 01000010 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 10 0x0a '^J' */ + 0xff, /* 11111111 */ + 0xc3, /* 11000011 */ + 0x99, /* 10011001 */ + 0xbd, /* 10111101 */ + 0xbd, /* 10111101 */ + 0x99, /* 10011001 */ + 0xc3, /* 11000011 */ + 0xff, /* 11111111 */ + + /* 11 0x0b '^K' */ + 0x0f, /* 00001111 */ + 0x07, /* 00000111 */ + 0x0f, /* 00001111 */ + 0x7d, /* 01111101 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x78, /* 01111000 */ + + /* 12 0x0c '^L' */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + + /* 13 0x0d '^M' */ + 0x3f, /* 00111111 */ + 0x33, /* 00110011 */ + 0x3f, /* 00111111 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x70, /* 01110000 */ + 0xf0, /* 11110000 */ + 0xe0, /* 11100000 */ + + /* 14 0x0e '^N' */ + 0x7f, /* 01111111 */ + 0x63, /* 01100011 */ + 0x7f, /* 01111111 */ + 0x63, /* 01100011 */ + 0x63, /* 01100011 */ + 0x67, /* 01100111 */ + 0xe6, /* 11100110 */ + 0xc0, /* 11000000 */ + + /* 15 0x0f '^O' */ + 0x18, /* 00011000 */ + 0xdb, /* 11011011 */ + 0x3c, /* 00111100 */ + 0xe7, /* 11100111 */ + 0xe7, /* 11100111 */ + 0x3c, /* 00111100 */ + 0xdb, /* 11011011 */ + 0x18, /* 00011000 */ + + /* 16 0x10 '^P' */ + 0x80, /* 10000000 */ + 0xe0, /* 11100000 */ + 0xf8, /* 11111000 */ + 0xfe, /* 11111110 */ + 0xf8, /* 11111000 */ + 0xe0, /* 11100000 */ + 0x80, /* 10000000 */ + 0x00, /* 00000000 */ + + /* 17 0x11 '^Q' */ + 0x02, /* 00000010 */ + 0x0e, /* 00001110 */ + 0x3e, /* 00111110 */ + 0xfe, /* 11111110 */ + 0x3e, /* 00111110 */ + 0x0e, /* 00001110 */ + 0x02, /* 00000010 */ + 0x00, /* 00000000 */ + + /* 18 0x12 '^R' */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + + /* 19 0x13 '^S' */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + + /* 20 0x14 '^T' */ + 0x7f, /* 01111111 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0x7b, /* 01111011 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x00, /* 00000000 */ + + /* 21 0x15 '^U' */ + 0x3e, /* 00111110 */ + 0x61, /* 01100001 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x86, /* 10000110 */ + 0x7c, /* 01111100 */ + + /* 22 0x16 '^V' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 23 0x17 '^W' */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + + /* 24 0x18 '^X' */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 25 0x19 '^Y' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 26 0x1a '^Z' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0xfe, /* 11111110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 27 0x1b '^[' */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xfe, /* 11111110 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 28 0x1c '^\' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 29 0x1d '^]' */ + 0x00, /* 00000000 */ + 0x24, /* 00100100 */ + 0x66, /* 01100110 */ + 0xff, /* 11111111 */ + 0x66, /* 01100110 */ + 0x24, /* 00100100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 30 0x1e '^^' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 31 0x1f '^_' */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 32 0x20 ' ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 33 0x21 '!' */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 34 0x22 '"' */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 35 0x23 '#' */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + + /* 36 0x24 '$' */ + 0x18, /* 00011000 */ + 0x3e, /* 00111110 */ + 0x60, /* 01100000 */ + 0x3c, /* 00111100 */ + 0x06, /* 00000110 */ + 0x7c, /* 01111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 37 0x25 '%' */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xcc, /* 11001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x66, /* 01100110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 38 0x26 '&' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x68, /* 01101000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 39 0x27 ''' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 40 0x28 '(' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + + /* 41 0x29 ')' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + + /* 42 0x2a '*' */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0xff, /* 11111111 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 43 0x2b '+' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 44 0x2c ',' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + + /* 45 0x2d '-' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 46 0x2e '.' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 47 0x2f '/' */ + 0x03, /* 00000011 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + + /* 48 0x30 '0' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xde, /* 11011110 */ + 0xfe, /* 11111110 */ + 0xf6, /* 11110110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 49 0x31 '1' */ + 0x18, /* 00011000 */ + 0x78, /* 01111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 50 0x32 '2' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 51 0x33 '3' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x06, /* 00000110 */ + 0x1c, /* 00011100 */ + 0x06, /* 00000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 52 0x34 '4' */ + 0x1c, /* 00011100 */ + 0x3c, /* 00111100 */ + 0x6c, /* 01101100 */ + 0xcc, /* 11001100 */ + 0xfe, /* 11111110 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + + /* 53 0x35 '5' */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xfc, /* 11111100 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 54 0x36 '6' */ + 0x38, /* 00111000 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 55 0x37 '7' */ + 0xfe, /* 11111110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x00, /* 00000000 */ + + /* 56 0x38 '8' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 57 0x39 '9' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + + /* 58 0x3a ':' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 59 0x3b ';' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + + /* 60 0x3c '<' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + + /* 61 0x3d '=' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 62 0x3e '>' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + + /* 63 0x3f '?' */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 64 0x40 '@' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xde, /* 11011110 */ + 0xde, /* 11011110 */ + 0xde, /* 11011110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 65 0x41 'A' */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 66 0x42 'B' */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + + /* 67 0x43 'C' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 68 0x44 'D' */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + + /* 69 0x45 'E' */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xf8, /* 11111000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 70 0x46 'F' */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xf8, /* 11111000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + + /* 71 0x47 'G' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xce, /* 11001110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 72 0x48 'H' */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 73 0x49 'I' */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 74 0x4a 'J' */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 75 0x4b 'K' */ + 0xc6, /* 11000110 */ + 0xcc, /* 11001100 */ + 0xd8, /* 11011000 */ + 0xf0, /* 11110000 */ + 0xd8, /* 11011000 */ + 0xcc, /* 11001100 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 76 0x4c 'L' */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 77 0x4d 'M' */ + 0x82, /* 10000010 */ + 0xc6, /* 11000110 */ + 0xee, /* 11101110 */ + 0xfe, /* 11111110 */ + 0xd6, /* 11010110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 78 0x4e 'N' */ + 0xc6, /* 11000110 */ + 0xe6, /* 11100110 */ + 0xf6, /* 11110110 */ + 0xde, /* 11011110 */ + 0xce, /* 11001110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 79 0x4f 'O' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 80 0x50 'P' */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfc, /* 11111100 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + + /* 81 0x51 'Q' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xf6, /* 11110110 */ + 0xde, /* 11011110 */ + 0x7c, /* 01111100 */ + 0x06, /* 00000110 */ + + /* 82 0x52 'R' */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfc, /* 11111100 */ + 0xd8, /* 11011000 */ + 0xcc, /* 11001100 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 83 0x53 'S' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x60, /* 01100000 */ + 0x38, /* 00111000 */ + 0x0c, /* 00001100 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 84 0x54 'T' */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 85 0x55 'U' */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 86 0x56 'V' */ + 0xc3, /* 11000011 */ + 0xc3, /* 11000011 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 87 0x57 'W' */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xd6, /* 11010110 */ + 0xfe, /* 11111110 */ + 0xee, /* 11101110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 88 0x58 'X' */ + 0xc3, /* 11000011 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0xc3, /* 11000011 */ + 0x00, /* 00000000 */ + + /* 89 0x59 'Y' */ + 0xc3, /* 11000011 */ + 0xc3, /* 11000011 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 90 0x5a 'Z' */ + 0xfe, /* 11111110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 91 0x5b '[' */ + 0x3c, /* 00111100 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 92 0x5c '\' */ + 0xc0, /* 11000000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x06, /* 00000110 */ + 0x03, /* 00000011 */ + 0x00, /* 00000000 */ + + /* 93 0x5d ']' */ + 0x3c, /* 00111100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 94 0x5e '^' */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 95 0x5f '_' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + + /* 96 0x60 '`' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 97 0x61 'a' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0x06, /* 00000110 */ + 0x7e, /* 01111110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 98 0x62 'b' */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + + /* 99 0x63 'c' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 100 0x64 'd' */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x7e, /* 01111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 101 0x65 'e' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 102 0x66 'f' */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x00, /* 00000000 */ + + /* 103 0x67 'g' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0x7c, /* 01111100 */ + + /* 104 0x68 'h' */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 105 0x69 'i' */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 106 0x6a 'j' */ + 0x06, /* 00000110 */ + 0x00, /* 00000000 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + + /* 107 0x6b 'k' */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xcc, /* 11001100 */ + 0xd8, /* 11011000 */ + 0xf0, /* 11110000 */ + 0xd8, /* 11011000 */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + + /* 108 0x6c 'l' */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 109 0x6d 'm' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xec, /* 11101100 */ + 0xfe, /* 11111110 */ + 0xd6, /* 11010110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 110 0x6e 'n' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 111 0x6f 'o' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 112 0x70 'p' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfc, /* 11111100 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + + /* 113 0x71 'q' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + + /* 114 0x72 'r' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xdc, /* 11011100 */ + 0xe6, /* 11100110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + + /* 115 0x73 's' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x06, /* 00000110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + + /* 116 0x74 't' */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x7c, /* 01111100 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x36, /* 00110110 */ + 0x1c, /* 00011100 */ + 0x00, /* 00000000 */ + + /* 117 0x75 'u' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 118 0x76 'v' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + + /* 119 0x77 'w' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xd6, /* 11010110 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + + /* 120 0x78 'x' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 121 0x79 'y' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc3, /* 11000011 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + + /* 122 0x7a 'z' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x0c, /* 00001100 */ + 0x38, /* 00111000 */ + 0x60, /* 01100000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 123 0x7b '{' */ + 0x0e, /* 00001110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x70, /* 01110000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x0e, /* 00001110 */ + 0x00, /* 00000000 */ + + /* 124 0x7c '|' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 125 0x7d '}' */ + 0x70, /* 01110000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x0e, /* 00001110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + + /* 126 0x7e '~' */ + 0x72, /* 01110010 */ + 0x9c, /* 10011100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 127 0x7f '' */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 128 0x80 '€' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x0c, /* 00001100 */ + 0x78, /* 01111000 */ + + /* 129 0x81 '' */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 130 0x82 '‚' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 131 0x83 'ƒ' */ + 0x7c, /* 01111100 */ + 0x82, /* 10000010 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 132 0x84 '„' */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 133 0x85 '…' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 134 0x86 '†' */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 135 0x87 '‡' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x7e, /* 01111110 */ + 0x0c, /* 00001100 */ + 0x38, /* 00111000 */ + + /* 136 0x88 'ˆ' */ + 0x7c, /* 01111100 */ + 0x82, /* 10000010 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 137 0x89 '‰' */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 138 0x8a 'Š' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 139 0x8b '‹' */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 140 0x8c 'Œ' */ + 0x7c, /* 01111100 */ + 0x82, /* 10000010 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 141 0x8d '' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 142 0x8e 'Ž' */ + 0xc6, /* 11000110 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 143 0x8f '' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 144 0x90 '' */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xf8, /* 11111000 */ + 0xc0, /* 11000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 145 0x91 '‘' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0xd8, /* 11011000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 146 0x92 '’' */ + 0x3e, /* 00111110 */ + 0x6c, /* 01101100 */ + 0xcc, /* 11001100 */ + 0xfe, /* 11111110 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xce, /* 11001110 */ + 0x00, /* 00000000 */ + + /* 147 0x93 '“' */ + 0x7c, /* 01111100 */ + 0x82, /* 10000010 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 148 0x94 '”' */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 149 0x95 '•' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 150 0x96 '–' */ + 0x78, /* 01111000 */ + 0x84, /* 10000100 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 151 0x97 '—' */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 152 0x98 '˜' */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0xfc, /* 11111100 */ + + /* 153 0x99 '™' */ + 0xc6, /* 11000110 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + + /* 154 0x9a 'š' */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 155 0x9b '›' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 156 0x9c 'œ' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x64, /* 01100100 */ + 0xf0, /* 11110000 */ + 0x60, /* 01100000 */ + 0x66, /* 01100110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + + /* 157 0x9d '' */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 158 0x9e 'ž' */ + 0xf8, /* 11111000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xfa, /* 11111010 */ + 0xc6, /* 11000110 */ + 0xcf, /* 11001111 */ + 0xc6, /* 11000110 */ + 0xc7, /* 11000111 */ + + /* 159 0x9f 'Ÿ' */ + 0x0e, /* 00001110 */ + 0x1b, /* 00011011 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0xd8, /* 11011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + + /* 160 0xa0 ' ' */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 161 0xa1 'Ą' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 162 0xa2 '˘' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 163 0xa3 'Ł' */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 164 0xa4 '¤' */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0xdc, /* 11011100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + + /* 165 0xa5 'Ľ' */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0xe6, /* 11100110 */ + 0xf6, /* 11110110 */ + 0xde, /* 11011110 */ + 0xce, /* 11001110 */ + 0x00, /* 00000000 */ + + /* 166 0xa6 'Ś' */ + 0x3c, /* 00111100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x3e, /* 00111110 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 167 0xa7 '§' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 168 0xa8 '¨' */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x63, /* 01100011 */ + 0x3e, /* 00111110 */ + 0x00, /* 00000000 */ + + /* 169 0xa9 'Š' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 170 0xaa 'Ş' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 171 0xab 'Ť' */ + 0x63, /* 01100011 */ + 0xe6, /* 11100110 */ + 0x6c, /* 01101100 */ + 0x7e, /* 01111110 */ + 0x33, /* 00110011 */ + 0x66, /* 01100110 */ + 0xcc, /* 11001100 */ + 0x0f, /* 00001111 */ + + /* 172 0xac 'Ź' */ + 0x63, /* 01100011 */ + 0xe6, /* 11100110 */ + 0x6c, /* 01101100 */ + 0x7a, /* 01111010 */ + 0x36, /* 00110110 */ + 0x6a, /* 01101010 */ + 0xdf, /* 11011111 */ + 0x06, /* 00000110 */ + + /* 173 0xad '­' */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 174 0xae 'Ž' */ + 0x00, /* 00000000 */ + 0x33, /* 00110011 */ + 0x66, /* 01100110 */ + 0xcc, /* 11001100 */ + 0x66, /* 01100110 */ + 0x33, /* 00110011 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 175 0xaf 'Ż' */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0x66, /* 01100110 */ + 0x33, /* 00110011 */ + 0x66, /* 01100110 */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 176 0xb0 '°' */ + 0x22, /* 00100010 */ + 0x88, /* 10001000 */ + 0x22, /* 00100010 */ + 0x88, /* 10001000 */ + 0x22, /* 00100010 */ + 0x88, /* 10001000 */ + 0x22, /* 00100010 */ + 0x88, /* 10001000 */ + + /* 177 0xb1 'ą' */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + + /* 178 0xb2 '˛' */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + + /* 179 0xb3 'ł' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 180 0xb4 '´' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 181 0xb5 'ľ' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 182 0xb6 'ś' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf6, /* 11110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 183 0xb7 'ˇ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 184 0xb8 '¸' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 185 0xb9 'š' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf6, /* 11110110 */ + 0x06, /* 00000110 */ + 0xf6, /* 11110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 186 0xba 'ş' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 187 0xbb 'ť' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x06, /* 00000110 */ + 0xf6, /* 11110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 188 0xbc 'ź' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf6, /* 11110110 */ + 0x06, /* 00000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 189 0xbd '˝' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 190 0xbe 'ž' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 191 0xbf 'ż' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 192 0xc0 'Ŕ' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 193 0xc1 'Á' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 194 0xc2 'Â' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 195 0xc3 'Ă' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 196 0xc4 'Ä' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 197 0xc5 'Ĺ' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 198 0xc6 'Ć' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 199 0xc7 'Ç' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x37, /* 00110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 200 0xc8 'Č' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x37, /* 00110111 */ + 0x30, /* 00110000 */ + 0x3f, /* 00111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 201 0xc9 'É' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3f, /* 00111111 */ + 0x30, /* 00110000 */ + 0x37, /* 00110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 202 0xca 'Ę' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf7, /* 11110111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 203 0xcb 'Ë' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xf7, /* 11110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 204 0xcc 'Ě' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x37, /* 00110111 */ + 0x30, /* 00110000 */ + 0x37, /* 00110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 205 0xcd 'Í' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 206 0xce 'Î' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf7, /* 11110111 */ + 0x00, /* 00000000 */ + 0xf7, /* 11110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 207 0xcf 'Ď' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 208 0xd0 'Đ' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 209 0xd1 'Ń' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 210 0xd2 'Ň' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 211 0xd3 'Ó' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x3f, /* 00111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 212 0xd4 'Ô' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 213 0xd5 'Ő' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 214 0xd6 'Ö' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3f, /* 00111111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 215 0xd7 '×' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xff, /* 11111111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 216 0xd8 'Ř' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 217 0xd9 'Ů' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 218 0xda 'Ú' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 219 0xdb 'Ű' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 220 0xdc 'Ü' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 221 0xdd 'Ý' */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + + /* 222 0xde 'Ţ' */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + + /* 223 0xdf 'ß' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 224 0xe0 'ŕ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0xc8, /* 11001000 */ + 0xdc, /* 11011100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 225 0xe1 'á' */ + 0x78, /* 01111000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xd8, /* 11011000 */ + 0xcc, /* 11001100 */ + 0xc6, /* 11000110 */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + + /* 226 0xe2 'â' */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + + /* 227 0xe3 'ă' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + + /* 228 0xe4 'ä' */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 229 0xe5 'ĺ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + + /* 230 0xe6 'ć' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0xc0, /* 11000000 */ + + /* 231 0xe7 'ç' */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 232 0xe8 'č' */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + + /* 233 0xe9 'é' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + + /* 234 0xea 'ę' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0xee, /* 11101110 */ + 0x00, /* 00000000 */ + + /* 235 0xeb 'ë' */ + 0x0e, /* 00001110 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x3e, /* 00111110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 236 0xec 'ě' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 237 0xed 'í' */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x7e, /* 01111110 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0x7e, /* 01111110 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + + /* 238 0xee 'î' */ + 0x1e, /* 00011110 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x7e, /* 01111110 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x1e, /* 00011110 */ + 0x00, /* 00000000 */ + + /* 239 0xef 'ď' */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 240 0xf0 'đ' */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 241 0xf1 'ń' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 242 0xf2 'ň' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 243 0xf3 'ó' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 244 0xf4 'ô' */ + 0x0e, /* 00001110 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 245 0xf5 'ő' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0x70, /* 01110000 */ + + /* 246 0xf6 'ö' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 247 0xf7 '÷' */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 248 0xf8 'ř' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 249 0xf9 'ů' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 250 0xfa 'ú' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 251 0xfb 'ű' */ + 0x0f, /* 00001111 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0xec, /* 11101100 */ + 0x6c, /* 01101100 */ + 0x3c, /* 00111100 */ + 0x1c, /* 00011100 */ + + /* 252 0xfc 'ü' */ + 0x6c, /* 01101100 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 253 0xfd 'ý' */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 254 0xfe 'ţ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 255 0xff '˙' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + +}; + Index: console/Makefile =================================================================== --- console/Makefile (nonexistent) +++ console/Makefile (revision 1765) @@ -0,0 +1,13 @@ +# +# Makefile for Linux arch/or32/console source directory +# +# Note! Dependencies are done automagically by 'make dep', which also +# removes any old dependencies. DON'T put your own dependencies here +# unless it's something special (ie not a .c file). +# + +L_TARGET = console.a +L_OBJS = crtfb.o fbcon.o fonts.o font_8x16.o font_8x8.o pearl_8x8.o mini_4x6.o +M_OBJS = + +include $(TOPDIR)/Rules.make Index: console/font_8x16.c =================================================================== --- console/font_8x16.c (nonexistent) +++ console/font_8x16.c (revision 1765) @@ -0,0 +1,4625 @@ +/**********************************************/ +/* */ +/* Font file generated by cpi2fnt */ +/* */ +/**********************************************/ + +#define FONTDATAMAX 4096 + +char fontname_8x16[] = "VGA8x16"; + +int fontheight_8x16 = 16; +int fontwidth_8x16 = 8; + +unsigned char fontdata_8x16[FONTDATAMAX] = { + + /* 0 0x00 '^@' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 1 0x01 '^A' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x81, /* 10000001 */ + 0xa5, /* 10100101 */ + 0x81, /* 10000001 */ + 0x81, /* 10000001 */ + 0xbd, /* 10111101 */ + 0x99, /* 10011001 */ + 0x81, /* 10000001 */ + 0x81, /* 10000001 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 2 0x02 '^B' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xff, /* 11111111 */ + 0xdb, /* 11011011 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xc3, /* 11000011 */ + 0xe7, /* 11100111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 3 0x03 '^C' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0x10, /* 00010000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 4 0x04 '^D' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x7c, /* 01111100 */ + 0xfe, /* 11111110 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0x10, /* 00010000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 5 0x05 '^E' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0xe7, /* 11100111 */ + 0xe7, /* 11100111 */ + 0xe7, /* 11100111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 6 0x06 '^F' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 7 0x07 '^G' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 8 0x08 '^H' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xe7, /* 11100111 */ + 0xc3, /* 11000011 */ + 0xc3, /* 11000011 */ + 0xe7, /* 11100111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 9 0x09 '^I' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x42, /* 01000010 */ + 0x42, /* 01000010 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 10 0x0a '^J' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xc3, /* 11000011 */ + 0x99, /* 10011001 */ + 0xbd, /* 10111101 */ + 0xbd, /* 10111101 */ + 0x99, /* 10011001 */ + 0xc3, /* 11000011 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 11 0x0b '^K' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1e, /* 00011110 */ + 0x0e, /* 00001110 */ + 0x1a, /* 00011010 */ + 0x32, /* 00110010 */ + 0x78, /* 01111000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x78, /* 01111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 12 0x0c '^L' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 13 0x0d '^M' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3f, /* 00111111 */ + 0x33, /* 00110011 */ + 0x3f, /* 00111111 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x70, /* 01110000 */ + 0xf0, /* 11110000 */ + 0xe0, /* 11100000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 14 0x0e '^N' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7f, /* 01111111 */ + 0x63, /* 01100011 */ + 0x7f, /* 01111111 */ + 0x63, /* 01100011 */ + 0x63, /* 01100011 */ + 0x63, /* 01100011 */ + 0x63, /* 01100011 */ + 0x67, /* 01100111 */ + 0xe7, /* 11100111 */ + 0xe6, /* 11100110 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 15 0x0f '^O' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xdb, /* 11011011 */ + 0x3c, /* 00111100 */ + 0xe7, /* 11100111 */ + 0x3c, /* 00111100 */ + 0xdb, /* 11011011 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 16 0x10 '^P' */ + 0x00, /* 00000000 */ + 0x80, /* 10000000 */ + 0xc0, /* 11000000 */ + 0xe0, /* 11100000 */ + 0xf0, /* 11110000 */ + 0xf8, /* 11111000 */ + 0xfe, /* 11111110 */ + 0xf8, /* 11111000 */ + 0xf0, /* 11110000 */ + 0xe0, /* 11100000 */ + 0xc0, /* 11000000 */ + 0x80, /* 10000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 17 0x11 '^Q' */ + 0x00, /* 00000000 */ + 0x02, /* 00000010 */ + 0x06, /* 00000110 */ + 0x0e, /* 00001110 */ + 0x1e, /* 00011110 */ + 0x3e, /* 00111110 */ + 0xfe, /* 11111110 */ + 0x3e, /* 00111110 */ + 0x1e, /* 00011110 */ + 0x0e, /* 00001110 */ + 0x06, /* 00000110 */ + 0x02, /* 00000010 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 18 0x12 '^R' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 19 0x13 '^S' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 20 0x14 '^T' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7f, /* 01111111 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0x7b, /* 01111011 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 21 0x15 '^U' */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x60, /* 01100000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x0c, /* 00001100 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 22 0x16 '^V' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 23 0x17 '^W' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 24 0x18 '^X' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 25 0x19 '^Y' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 26 0x1a '^Z' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0xfe, /* 11111110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 27 0x1b '^[' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xfe, /* 11111110 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 28 0x1c '^\' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 29 0x1d '^]' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x28, /* 00101000 */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x28, /* 00101000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 30 0x1e '^^' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x38, /* 00111000 */ + 0x7c, /* 01111100 */ + 0x7c, /* 01111100 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 31 0x1f '^_' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0x7c, /* 01111100 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0x38, /* 00111000 */ + 0x10, /* 00010000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 32 0x20 ' ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 33 0x21 '!' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 34 0x22 '"' */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x24, /* 00100100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 35 0x23 '#' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 36 0x24 '$' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc2, /* 11000010 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x86, /* 10000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 37 0x25 '%' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc2, /* 11000010 */ + 0xc6, /* 11000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc6, /* 11000110 */ + 0x86, /* 10000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 38 0x26 '&' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 39 0x27 ''' */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 40 0x28 '(' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 41 0x29 ')' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 42 0x2a '*' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0xff, /* 11111111 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 43 0x2b '+' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 44 0x2c ',' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 45 0x2d '-' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 46 0x2e '.' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 47 0x2f '/' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x02, /* 00000010 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0x80, /* 10000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 48 0x30 '0' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 49 0x31 '1' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x38, /* 00111000 */ + 0x78, /* 01111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 50 0x32 '2' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 51 0x33 '3' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x3c, /* 00111100 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 52 0x34 '4' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x0c, /* 00001100 */ + 0x1c, /* 00011100 */ + 0x3c, /* 00111100 */ + 0x6c, /* 01101100 */ + 0xcc, /* 11001100 */ + 0xfe, /* 11111110 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x1e, /* 00011110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 53 0x35 '5' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfc, /* 11111100 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 54 0x36 '6' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 55 0x37 '7' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 56 0x38 '8' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 57 0x39 '9' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x78, /* 01111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 58 0x3a ':' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 59 0x3b ';' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 60 0x3c '<' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x06, /* 00000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 61 0x3d '=' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 62 0x3e '>' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 63 0x3f '?' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 64 0x40 '@' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xde, /* 11011110 */ + 0xde, /* 11011110 */ + 0xde, /* 11011110 */ + 0xdc, /* 11011100 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 65 0x41 'A' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 66 0x42 'B' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfc, /* 11111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 67 0x43 'C' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0xc2, /* 11000010 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc2, /* 11000010 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 68 0x44 'D' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xf8, /* 11111000 */ + 0x6c, /* 01101100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x6c, /* 01101100 */ + 0xf8, /* 11111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 69 0x45 'E' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x66, /* 01100110 */ + 0x62, /* 01100010 */ + 0x68, /* 01101000 */ + 0x78, /* 01111000 */ + 0x68, /* 01101000 */ + 0x60, /* 01100000 */ + 0x62, /* 01100010 */ + 0x66, /* 01100110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 70 0x46 'F' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x66, /* 01100110 */ + 0x62, /* 01100010 */ + 0x68, /* 01101000 */ + 0x78, /* 01111000 */ + 0x68, /* 01101000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 71 0x47 'G' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0xc2, /* 11000010 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xde, /* 11011110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x66, /* 01100110 */ + 0x3a, /* 00111010 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 72 0x48 'H' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 73 0x49 'I' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 74 0x4a 'J' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1e, /* 00011110 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x78, /* 01111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 75 0x4b 'K' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xe6, /* 11100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x6c, /* 01101100 */ + 0x78, /* 01111000 */ + 0x78, /* 01111000 */ + 0x6c, /* 01101100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0xe6, /* 11100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 76 0x4c 'L' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xf0, /* 11110000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x62, /* 01100010 */ + 0x66, /* 01100110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 77 0x4d 'M' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xee, /* 11101110 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xd6, /* 11010110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 78 0x4e 'N' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xe6, /* 11100110 */ + 0xf6, /* 11110110 */ + 0xfe, /* 11111110 */ + 0xde, /* 11011110 */ + 0xce, /* 11001110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 79 0x4f 'O' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 80 0x50 'P' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfc, /* 11111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 81 0x51 'Q' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xd6, /* 11010110 */ + 0xde, /* 11011110 */ + 0x7c, /* 01111100 */ + 0x0c, /* 00001100 */ + 0x0e, /* 00001110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 82 0x52 'R' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfc, /* 11111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0x6c, /* 01101100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0xe6, /* 11100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 83 0x53 'S' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x60, /* 01100000 */ + 0x38, /* 00111000 */ + 0x0c, /* 00001100 */ + 0x06, /* 00000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 84 0x54 'T' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x5a, /* 01011010 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 85 0x55 'U' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 86 0x56 'V' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x10, /* 00010000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 87 0x57 'W' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xfe, /* 11111110 */ + 0xee, /* 11101110 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 88 0x58 'X' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0x38, /* 00111000 */ + 0x7c, /* 01111100 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 89 0x59 'Y' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 90 0x5a 'Z' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0x86, /* 10000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc2, /* 11000010 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 91 0x5b '[' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 92 0x5c '\' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x80, /* 10000000 */ + 0xc0, /* 11000000 */ + 0xe0, /* 11100000 */ + 0x70, /* 01110000 */ + 0x38, /* 00111000 */ + 0x1c, /* 00011100 */ + 0x0e, /* 00001110 */ + 0x06, /* 00000110 */ + 0x02, /* 00000010 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 93 0x5d ']' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 94 0x5e '^' */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 95 0x5f '_' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 96 0x60 '`' */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 97 0x61 'a' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 98 0x62 'b' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xe0, /* 11100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x78, /* 01111000 */ + 0x6c, /* 01101100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 99 0x63 'c' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 100 0x64 'd' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1c, /* 00011100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x3c, /* 00111100 */ + 0x6c, /* 01101100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 101 0x65 'e' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 102 0x66 'f' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1c, /* 00011100 */ + 0x36, /* 00110110 */ + 0x32, /* 00110010 */ + 0x30, /* 00110000 */ + 0x78, /* 01111000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x78, /* 01111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 103 0x67 'g' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x7c, /* 01111100 */ + 0x0c, /* 00001100 */ + 0xcc, /* 11001100 */ + 0x78, /* 01111000 */ + 0x00, /* 00000000 */ + + /* 104 0x68 'h' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xe0, /* 11100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x6c, /* 01101100 */ + 0x76, /* 01110110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0xe6, /* 11100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 105 0x69 'i' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 106 0x6a 'j' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x00, /* 00000000 */ + 0x0e, /* 00001110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 107 0x6b 'k' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xe0, /* 11100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x66, /* 01100110 */ + 0x6c, /* 01101100 */ + 0x78, /* 01111000 */ + 0x78, /* 01111000 */ + 0x6c, /* 01101100 */ + 0x66, /* 01100110 */ + 0xe6, /* 11100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 108 0x6c 'l' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 109 0x6d 'm' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xec, /* 11101100 */ + 0xfe, /* 11111110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 110 0x6e 'n' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xdc, /* 11011100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 111 0x6f 'o' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 112 0x70 'p' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xdc, /* 11011100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + 0x00, /* 00000000 */ + + /* 113 0x71 'q' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x7c, /* 01111100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x1e, /* 00011110 */ + 0x00, /* 00000000 */ + + /* 114 0x72 'r' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xdc, /* 11011100 */ + 0x76, /* 01110110 */ + 0x66, /* 01100110 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 115 0x73 's' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x60, /* 01100000 */ + 0x38, /* 00111000 */ + 0x0c, /* 00001100 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 116 0x74 't' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0xfc, /* 11111100 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x36, /* 00110110 */ + 0x1c, /* 00011100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 117 0x75 'u' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 118 0x76 'v' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 119 0x77 'w' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 120 0x78 'x' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x38, /* 00111000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 121 0x79 'y' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0xf8, /* 11111000 */ + 0x00, /* 00000000 */ + + /* 122 0x7a 'z' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xcc, /* 11001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 123 0x7b '{' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x0e, /* 00001110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x70, /* 01110000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x0e, /* 00001110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 124 0x7c '|' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 125 0x7d '}' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x70, /* 01110000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x0e, /* 00001110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 126 0x7e '~' */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 127 0x7f '' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 128 0x80 '€' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0xc2, /* 11000010 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc2, /* 11000010 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 129 0x81 '' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 130 0x82 '‚' */ + 0x00, /* 00000000 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 131 0x83 'ƒ' */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 132 0x84 '„' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 133 0x85 '…' */ + 0x00, /* 00000000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 134 0x86 '†' */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 135 0x87 '‡' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x18, /* 00011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 136 0x88 'ˆ' */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 137 0x89 '‰' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 138 0x8a 'Š' */ + 0x00, /* 00000000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 139 0x8b '‹' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 140 0x8c 'Œ' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 141 0x8d '' */ + 0x00, /* 00000000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 142 0x8e 'Ž' */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 143 0x8f '' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 144 0x90 '' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x66, /* 01100110 */ + 0x62, /* 01100010 */ + 0x68, /* 01101000 */ + 0x78, /* 01111000 */ + 0x68, /* 01101000 */ + 0x62, /* 01100010 */ + 0x66, /* 01100110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 145 0x91 '‘' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xec, /* 11101100 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x7e, /* 01111110 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0x6e, /* 01101110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 146 0x92 '’' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3e, /* 00111110 */ + 0x6c, /* 01101100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xfe, /* 11111110 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xce, /* 11001110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 147 0x93 '“' */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 148 0x94 '”' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 149 0x95 '•' */ + 0x00, /* 00000000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 150 0x96 '–' */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x78, /* 01111000 */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 151 0x97 '—' */ + 0x00, /* 00000000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 152 0x98 '˜' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x78, /* 01111000 */ + 0x00, /* 00000000 */ + + /* 153 0x99 '™' */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 154 0x9a 'š' */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 155 0x9b '›' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 156 0x9c 'œ' */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x64, /* 01100100 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0xe6, /* 11100110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 157 0x9d '' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 158 0x9e 'ž' */ + 0x00, /* 00000000 */ + 0xf8, /* 11111000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xf8, /* 11111000 */ + 0xc4, /* 11000100 */ + 0xcc, /* 11001100 */ + 0xde, /* 11011110 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 159 0x9f 'Ÿ' */ + 0x00, /* 00000000 */ + 0x0e, /* 00001110 */ + 0x1b, /* 00011011 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xd8, /* 11011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 160 0xa0 ' ' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 161 0xa1 'Ą' */ + 0x00, /* 00000000 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 162 0xa2 '˘' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 163 0xa3 'Ł' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 164 0xa4 '¤' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0xdc, /* 11011100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 165 0xa5 'Ľ' */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xe6, /* 11100110 */ + 0xf6, /* 11110110 */ + 0xfe, /* 11111110 */ + 0xde, /* 11011110 */ + 0xce, /* 11001110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 166 0xa6 'Ś' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x3e, /* 00111110 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 167 0xa7 '§' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 168 0xa8 '¨' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 169 0xa9 'Š' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 170 0xaa 'Ş' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 171 0xab 'Ť' */ + 0x00, /* 00000000 */ + 0x60, /* 01100000 */ + 0xe0, /* 11100000 */ + 0x62, /* 01100010 */ + 0x66, /* 01100110 */ + 0x6c, /* 01101100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xdc, /* 11011100 */ + 0x86, /* 10000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x3e, /* 00111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 172 0xac 'Ź' */ + 0x00, /* 00000000 */ + 0x60, /* 01100000 */ + 0xe0, /* 11100000 */ + 0x62, /* 01100010 */ + 0x66, /* 01100110 */ + 0x6c, /* 01101100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x66, /* 01100110 */ + 0xce, /* 11001110 */ + 0x9a, /* 10011010 */ + 0x3f, /* 00111111 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 173 0xad '­' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 174 0xae 'Ž' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x36, /* 00110110 */ + 0x6c, /* 01101100 */ + 0xd8, /* 11011000 */ + 0x6c, /* 01101100 */ + 0x36, /* 00110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 175 0xaf 'Ż' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xd8, /* 11011000 */ + 0x6c, /* 01101100 */ + 0x36, /* 00110110 */ + 0x6c, /* 01101100 */ + 0xd8, /* 11011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 176 0xb0 '°' */ + 0x11, /* 00010001 */ + 0x44, /* 01000100 */ + 0x11, /* 00010001 */ + 0x44, /* 01000100 */ + 0x11, /* 00010001 */ + 0x44, /* 01000100 */ + 0x11, /* 00010001 */ + 0x44, /* 01000100 */ + 0x11, /* 00010001 */ + 0x44, /* 01000100 */ + 0x11, /* 00010001 */ + 0x44, /* 01000100 */ + 0x11, /* 00010001 */ + 0x44, /* 01000100 */ + 0x11, /* 00010001 */ + 0x44, /* 01000100 */ + + /* 177 0xb1 'ą' */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + + /* 178 0xb2 '˛' */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + + /* 179 0xb3 'ł' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 180 0xb4 '´' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 181 0xb5 'ľ' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 182 0xb6 'ś' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf6, /* 11110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 183 0xb7 'ˇ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 184 0xb8 '¸' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 185 0xb9 'š' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf6, /* 11110110 */ + 0x06, /* 00000110 */ + 0xf6, /* 11110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 186 0xba 'ş' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 187 0xbb 'ť' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x06, /* 00000110 */ + 0xf6, /* 11110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 188 0xbc 'ź' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf6, /* 11110110 */ + 0x06, /* 00000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 189 0xbd '˝' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 190 0xbe 'ž' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 191 0xbf 'ż' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 192 0xc0 'Ŕ' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 193 0xc1 'Á' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 194 0xc2 'Â' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 195 0xc3 'Ă' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 196 0xc4 'Ä' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 197 0xc5 'Ĺ' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 198 0xc6 'Ć' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 199 0xc7 'Ç' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x37, /* 00110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 200 0xc8 'Č' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x37, /* 00110111 */ + 0x30, /* 00110000 */ + 0x3f, /* 00111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 201 0xc9 'É' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3f, /* 00111111 */ + 0x30, /* 00110000 */ + 0x37, /* 00110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 202 0xca 'Ę' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf7, /* 11110111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 203 0xcb 'Ë' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xf7, /* 11110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 204 0xcc 'Ě' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x37, /* 00110111 */ + 0x30, /* 00110000 */ + 0x37, /* 00110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 205 0xcd 'Í' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 206 0xce 'Î' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf7, /* 11110111 */ + 0x00, /* 00000000 */ + 0xf7, /* 11110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 207 0xcf 'Ď' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 208 0xd0 'Đ' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 209 0xd1 'Ń' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 210 0xd2 'Ň' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 211 0xd3 'Ó' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x3f, /* 00111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 212 0xd4 'Ô' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 213 0xd5 'Ő' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 214 0xd6 'Ö' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3f, /* 00111111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 215 0xd7 '×' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xff, /* 11111111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 216 0xd8 'Ř' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 217 0xd9 'Ů' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 218 0xda 'Ú' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 219 0xdb 'Ű' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 220 0xdc 'Ü' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 221 0xdd 'Ý' */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + + /* 222 0xde 'Ţ' */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + + /* 223 0xdf 'ß' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 224 0xe0 'ŕ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0xdc, /* 11011100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 225 0xe1 'á' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xd8, /* 11011000 */ + 0xcc, /* 11001100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 226 0xe2 'â' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 227 0xe3 'ă' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 228 0xe4 'ä' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 229 0xe5 'ĺ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 230 0xe6 'ć' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + + /* 231 0xe7 'ç' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 232 0xe8 'č' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 233 0xe9 'é' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 234 0xea 'ę' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0xee, /* 11101110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 235 0xeb 'ë' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1e, /* 00011110 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x3e, /* 00111110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 236 0xec 'ě' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 237 0xed 'í' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x03, /* 00000011 */ + 0x06, /* 00000110 */ + 0x7e, /* 01111110 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0xf3, /* 11110011 */ + 0x7e, /* 01111110 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 238 0xee 'î' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1c, /* 00011100 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x7c, /* 01111100 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x1c, /* 00011100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 239 0xef 'ď' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 240 0xf0 'đ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 241 0xf1 'ń' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 242 0xf2 'ň' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 243 0xf3 'ó' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 244 0xf4 'ô' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x0e, /* 00001110 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 245 0xf5 'ő' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 246 0xf6 'ö' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 247 0xf7 '÷' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 248 0xf8 'ř' */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 249 0xf9 'ů' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 250 0xfa 'ú' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 251 0xfb 'ű' */ + 0x00, /* 00000000 */ + 0x0f, /* 00001111 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0xec, /* 11101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x3c, /* 00111100 */ + 0x1c, /* 00011100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 252 0xfc 'ü' */ + 0x00, /* 00000000 */ + 0x6c, /* 01101100 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 253 0xfd 'ý' */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x32, /* 00110010 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 254 0xfe 'ţ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 255 0xff '˙' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + +}; + Index: console/font_8x8.c =================================================================== --- console/font_8x8.c (nonexistent) +++ console/font_8x8.c (revision 1765) @@ -0,0 +1,2577 @@ +/**********************************************/ +/* */ +/* Font file generated by cpi2fnt */ +/* */ +/**********************************************/ + +#define FONTDATAMAX 2048 + +char fontname_8x8[] = "VGA8x8"; + +int fontheight_8x8 = 8; +int fontwidth_8x8 = 8; + +unsigned char fontdata_8x8[FONTDATAMAX] = { + + /* 0 0x00 '^@' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 1 0x01 '^A' */ + 0x7e, /* 01111110 */ + 0x81, /* 10000001 */ + 0xa5, /* 10100101 */ + 0x81, /* 10000001 */ + 0xbd, /* 10111101 */ + 0x99, /* 10011001 */ + 0x81, /* 10000001 */ + 0x7e, /* 01111110 */ + + /* 2 0x02 '^B' */ + 0x7e, /* 01111110 */ + 0xff, /* 11111111 */ + 0xdb, /* 11011011 */ + 0xff, /* 11111111 */ + 0xc3, /* 11000011 */ + 0xe7, /* 11100111 */ + 0xff, /* 11111111 */ + 0x7e, /* 01111110 */ + + /* 3 0x03 '^C' */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0x10, /* 00010000 */ + 0x00, /* 00000000 */ + + /* 4 0x04 '^D' */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x7c, /* 01111100 */ + 0xfe, /* 11111110 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0x10, /* 00010000 */ + 0x00, /* 00000000 */ + + /* 5 0x05 '^E' */ + 0x38, /* 00111000 */ + 0x7c, /* 01111100 */ + 0x38, /* 00111000 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xd6, /* 11010110 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + + /* 6 0x06 '^F' */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x7c, /* 01111100 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0x7c, /* 01111100 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + + /* 7 0x07 '^G' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 8 0x08 '^H' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xe7, /* 11100111 */ + 0xc3, /* 11000011 */ + 0xc3, /* 11000011 */ + 0xe7, /* 11100111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 9 0x09 '^I' */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x42, /* 01000010 */ + 0x42, /* 01000010 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 10 0x0a '^J' */ + 0xff, /* 11111111 */ + 0xc3, /* 11000011 */ + 0x99, /* 10011001 */ + 0xbd, /* 10111101 */ + 0xbd, /* 10111101 */ + 0x99, /* 10011001 */ + 0xc3, /* 11000011 */ + 0xff, /* 11111111 */ + + /* 11 0x0b '^K' */ + 0x0f, /* 00001111 */ + 0x07, /* 00000111 */ + 0x0f, /* 00001111 */ + 0x7d, /* 01111101 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x78, /* 01111000 */ + + /* 12 0x0c '^L' */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + + /* 13 0x0d '^M' */ + 0x3f, /* 00111111 */ + 0x33, /* 00110011 */ + 0x3f, /* 00111111 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x70, /* 01110000 */ + 0xf0, /* 11110000 */ + 0xe0, /* 11100000 */ + + /* 14 0x0e '^N' */ + 0x7f, /* 01111111 */ + 0x63, /* 01100011 */ + 0x7f, /* 01111111 */ + 0x63, /* 01100011 */ + 0x63, /* 01100011 */ + 0x67, /* 01100111 */ + 0xe6, /* 11100110 */ + 0xc0, /* 11000000 */ + + /* 15 0x0f '^O' */ + 0x18, /* 00011000 */ + 0xdb, /* 11011011 */ + 0x3c, /* 00111100 */ + 0xe7, /* 11100111 */ + 0xe7, /* 11100111 */ + 0x3c, /* 00111100 */ + 0xdb, /* 11011011 */ + 0x18, /* 00011000 */ + + /* 16 0x10 '^P' */ + 0x80, /* 10000000 */ + 0xe0, /* 11100000 */ + 0xf8, /* 11111000 */ + 0xfe, /* 11111110 */ + 0xf8, /* 11111000 */ + 0xe0, /* 11100000 */ + 0x80, /* 10000000 */ + 0x00, /* 00000000 */ + + /* 17 0x11 '^Q' */ + 0x02, /* 00000010 */ + 0x0e, /* 00001110 */ + 0x3e, /* 00111110 */ + 0xfe, /* 11111110 */ + 0x3e, /* 00111110 */ + 0x0e, /* 00001110 */ + 0x02, /* 00000010 */ + 0x00, /* 00000000 */ + + /* 18 0x12 '^R' */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + + /* 19 0x13 '^S' */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + + /* 20 0x14 '^T' */ + 0x7f, /* 01111111 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0x7b, /* 01111011 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x00, /* 00000000 */ + + /* 21 0x15 '^U' */ + 0x3e, /* 00111110 */ + 0x61, /* 01100001 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x86, /* 10000110 */ + 0x7c, /* 01111100 */ + + /* 22 0x16 '^V' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 23 0x17 '^W' */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + + /* 24 0x18 '^X' */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 25 0x19 '^Y' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 26 0x1a '^Z' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0xfe, /* 11111110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 27 0x1b '^[' */ + 0x00, /* 00000000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xfe, /* 11111110 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 28 0x1c '^\' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 29 0x1d '^]' */ + 0x00, /* 00000000 */ + 0x24, /* 00100100 */ + 0x66, /* 01100110 */ + 0xff, /* 11111111 */ + 0x66, /* 01100110 */ + 0x24, /* 00100100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 30 0x1e '^^' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 31 0x1f '^_' */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0x7e, /* 01111110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 32 0x20 ' ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 33 0x21 '!' */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 34 0x22 '"' */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x24, /* 00100100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 35 0x23 '#' */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + + /* 36 0x24 '$' */ + 0x18, /* 00011000 */ + 0x3e, /* 00111110 */ + 0x60, /* 01100000 */ + 0x3c, /* 00111100 */ + 0x06, /* 00000110 */ + 0x7c, /* 01111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 37 0x25 '%' */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xcc, /* 11001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x66, /* 01100110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 38 0x26 '&' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 39 0x27 ''' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 40 0x28 '(' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + + /* 41 0x29 ')' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + + /* 42 0x2a '*' */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0xff, /* 11111111 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 43 0x2b '+' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 44 0x2c ',' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + + /* 45 0x2d '-' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 46 0x2e '.' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 47 0x2f '/' */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0x80, /* 10000000 */ + 0x00, /* 00000000 */ + + /* 48 0x30 '0' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xd6, /* 11010110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + + /* 49 0x31 '1' */ + 0x18, /* 00011000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 50 0x32 '2' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x06, /* 00000110 */ + 0x1c, /* 00011100 */ + 0x30, /* 00110000 */ + 0x66, /* 01100110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 51 0x33 '3' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x06, /* 00000110 */ + 0x3c, /* 00111100 */ + 0x06, /* 00000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 52 0x34 '4' */ + 0x1c, /* 00011100 */ + 0x3c, /* 00111100 */ + 0x6c, /* 01101100 */ + 0xcc, /* 11001100 */ + 0xfe, /* 11111110 */ + 0x0c, /* 00001100 */ + 0x1e, /* 00011110 */ + 0x00, /* 00000000 */ + + /* 53 0x35 '5' */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xfc, /* 11111100 */ + 0x06, /* 00000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 54 0x36 '6' */ + 0x38, /* 00111000 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + 0xfc, /* 11111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 55 0x37 '7' */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + + /* 56 0x38 '8' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 57 0x39 '9' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x78, /* 01111000 */ + 0x00, /* 00000000 */ + + /* 58 0x3a ':' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 59 0x3b ';' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + + /* 60 0x3c '<' */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x06, /* 00000110 */ + 0x00, /* 00000000 */ + + /* 61 0x3d '=' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 62 0x3e '>' */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x00, /* 00000000 */ + + /* 63 0x3f '?' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 64 0x40 '@' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xde, /* 11011110 */ + 0xde, /* 11011110 */ + 0xde, /* 11011110 */ + 0xc0, /* 11000000 */ + 0x78, /* 01111000 */ + 0x00, /* 00000000 */ + + /* 65 0x41 'A' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 66 0x42 'B' */ + 0xfc, /* 11111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + + /* 67 0x43 'C' */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 68 0x44 'D' */ + 0xf8, /* 11111000 */ + 0x6c, /* 01101100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x6c, /* 01101100 */ + 0xf8, /* 11111000 */ + 0x00, /* 00000000 */ + + /* 69 0x45 'E' */ + 0xfe, /* 11111110 */ + 0x62, /* 01100010 */ + 0x68, /* 01101000 */ + 0x78, /* 01111000 */ + 0x68, /* 01101000 */ + 0x62, /* 01100010 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 70 0x46 'F' */ + 0xfe, /* 11111110 */ + 0x62, /* 01100010 */ + 0x68, /* 01101000 */ + 0x78, /* 01111000 */ + 0x68, /* 01101000 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + 0x00, /* 00000000 */ + + /* 71 0x47 'G' */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xce, /* 11001110 */ + 0x66, /* 01100110 */ + 0x3a, /* 00111010 */ + 0x00, /* 00000000 */ + + /* 72 0x48 'H' */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 73 0x49 'I' */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 74 0x4a 'J' */ + 0x1e, /* 00011110 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x78, /* 01111000 */ + 0x00, /* 00000000 */ + + /* 75 0x4b 'K' */ + 0xe6, /* 11100110 */ + 0x66, /* 01100110 */ + 0x6c, /* 01101100 */ + 0x78, /* 01111000 */ + 0x6c, /* 01101100 */ + 0x66, /* 01100110 */ + 0xe6, /* 11100110 */ + 0x00, /* 00000000 */ + + /* 76 0x4c 'L' */ + 0xf0, /* 11110000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0x62, /* 01100010 */ + 0x66, /* 01100110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 77 0x4d 'M' */ + 0xc6, /* 11000110 */ + 0xee, /* 11101110 */ + 0xfe, /* 11111110 */ + 0xfe, /* 11111110 */ + 0xd6, /* 11010110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 78 0x4e 'N' */ + 0xc6, /* 11000110 */ + 0xe6, /* 11100110 */ + 0xf6, /* 11110110 */ + 0xde, /* 11011110 */ + 0xce, /* 11001110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 79 0x4f 'O' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 80 0x50 'P' */ + 0xfc, /* 11111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + 0x00, /* 00000000 */ + + /* 81 0x51 'Q' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xce, /* 11001110 */ + 0x7c, /* 01111100 */ + 0x0e, /* 00001110 */ + + /* 82 0x52 'R' */ + 0xfc, /* 11111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0x6c, /* 01101100 */ + 0x66, /* 01100110 */ + 0xe6, /* 11100110 */ + 0x00, /* 00000000 */ + + /* 83 0x53 'S' */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 84 0x54 'T' */ + 0x7e, /* 01111110 */ + 0x7e, /* 01111110 */ + 0x5a, /* 01011010 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 85 0x55 'U' */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 86 0x56 'V' */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + + /* 87 0x57 'W' */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + + /* 88 0x58 'X' */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 89 0x59 'Y' */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 90 0x5a 'Z' */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0x8c, /* 10001100 */ + 0x18, /* 00011000 */ + 0x32, /* 00110010 */ + 0x66, /* 01100110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 91 0x5b '[' */ + 0x3c, /* 00111100 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 92 0x5c '\' */ + 0xc0, /* 11000000 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x06, /* 00000110 */ + 0x02, /* 00000010 */ + 0x00, /* 00000000 */ + + /* 93 0x5d ']' */ + 0x3c, /* 00111100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 94 0x5e '^' */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 95 0x5f '_' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + + /* 96 0x60 '`' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 97 0x61 'a' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 98 0x62 'b' */ + 0xe0, /* 11100000 */ + 0x60, /* 01100000 */ + 0x7c, /* 01111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + + /* 99 0x63 'c' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 100 0x64 'd' */ + 0x1c, /* 00011100 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 101 0x65 'e' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 102 0x66 'f' */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x60, /* 01100000 */ + 0xf8, /* 11111000 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + 0x00, /* 00000000 */ + + /* 103 0x67 'g' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x7c, /* 01111100 */ + 0x0c, /* 00001100 */ + 0xf8, /* 11111000 */ + + /* 104 0x68 'h' */ + 0xe0, /* 11100000 */ + 0x60, /* 01100000 */ + 0x6c, /* 01101100 */ + 0x76, /* 01110110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0xe6, /* 11100110 */ + 0x00, /* 00000000 */ + + /* 105 0x69 'i' */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 106 0x6a 'j' */ + 0x06, /* 00000110 */ + 0x00, /* 00000000 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + + /* 107 0x6b 'k' */ + 0xe0, /* 11100000 */ + 0x60, /* 01100000 */ + 0x66, /* 01100110 */ + 0x6c, /* 01101100 */ + 0x78, /* 01111000 */ + 0x6c, /* 01101100 */ + 0xe6, /* 11100110 */ + 0x00, /* 00000000 */ + + /* 108 0x6c 'l' */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 109 0x6d 'm' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xec, /* 11101100 */ + 0xfe, /* 11111110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0x00, /* 00000000 */ + + /* 110 0x6e 'n' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xdc, /* 11011100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + + /* 111 0x6f 'o' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 112 0x70 'p' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xdc, /* 11011100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + + /* 113 0x71 'q' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x7c, /* 01111100 */ + 0x0c, /* 00001100 */ + 0x1e, /* 00011110 */ + + /* 114 0x72 'r' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xdc, /* 11011100 */ + 0x76, /* 01110110 */ + 0x60, /* 01100000 */ + 0x60, /* 01100000 */ + 0xf0, /* 11110000 */ + 0x00, /* 00000000 */ + + /* 115 0x73 's' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x06, /* 00000110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + + /* 116 0x74 't' */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0xfc, /* 11111100 */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x36, /* 00110110 */ + 0x1c, /* 00011100 */ + 0x00, /* 00000000 */ + + /* 117 0x75 'u' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 118 0x76 'v' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + + /* 119 0x77 'w' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xd6, /* 11010110 */ + 0xd6, /* 11010110 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + + /* 120 0x78 'x' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 121 0x79 'y' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0xfc, /* 11111100 */ + + /* 122 0x7a 'z' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x4c, /* 01001100 */ + 0x18, /* 00011000 */ + 0x32, /* 00110010 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 123 0x7b '{' */ + 0x0e, /* 00001110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x70, /* 01110000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x0e, /* 00001110 */ + 0x00, /* 00000000 */ + + /* 124 0x7c '|' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 125 0x7d '}' */ + 0x70, /* 01110000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x0e, /* 00001110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + + /* 126 0x7e '~' */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 127 0x7f '' */ + 0x00, /* 00000000 */ + 0x10, /* 00010000 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 128 0x80 '€' */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x0c, /* 00001100 */ + 0x78, /* 01111000 */ + + /* 129 0x81 '' */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 130 0x82 '‚' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 131 0x83 'ƒ' */ + 0x7c, /* 01111100 */ + 0x82, /* 10000010 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 132 0x84 '„' */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 133 0x85 '…' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 134 0x86 '†' */ + 0x30, /* 00110000 */ + 0x30, /* 00110000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 135 0x87 '‡' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x7e, /* 01111110 */ + 0x0c, /* 00001100 */ + 0x38, /* 00111000 */ + + /* 136 0x88 'ˆ' */ + 0x7c, /* 01111100 */ + 0x82, /* 10000010 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 137 0x89 '‰' */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 138 0x8a 'Š' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 139 0x8b '‹' */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 140 0x8c 'Œ' */ + 0x7c, /* 01111100 */ + 0x82, /* 10000010 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 141 0x8d '' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 142 0x8e 'Ž' */ + 0xc6, /* 11000110 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 143 0x8f '' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 144 0x90 '' */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xf8, /* 11111000 */ + 0xc0, /* 11000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 145 0x91 '‘' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0xd8, /* 11011000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 146 0x92 '’' */ + 0x3e, /* 00111110 */ + 0x6c, /* 01101100 */ + 0xcc, /* 11001100 */ + 0xfe, /* 11111110 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xce, /* 11001110 */ + 0x00, /* 00000000 */ + + /* 147 0x93 '“' */ + 0x7c, /* 01111100 */ + 0x82, /* 10000010 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 148 0x94 '”' */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 149 0x95 '•' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 150 0x96 '–' */ + 0x78, /* 01111000 */ + 0x84, /* 10000100 */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 151 0x97 '—' */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 152 0x98 '˜' */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7e, /* 01111110 */ + 0x06, /* 00000110 */ + 0xfc, /* 11111100 */ + + /* 153 0x99 '™' */ + 0xc6, /* 11000110 */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + + /* 154 0x9a 'š' */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 155 0x9b '›' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 156 0x9c 'œ' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x64, /* 01100100 */ + 0xf0, /* 11110000 */ + 0x60, /* 01100000 */ + 0x66, /* 01100110 */ + 0xfc, /* 11111100 */ + 0x00, /* 00000000 */ + + /* 157 0x9d '' */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 158 0x9e 'ž' */ + 0xf8, /* 11111000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xfa, /* 11111010 */ + 0xc6, /* 11000110 */ + 0xcf, /* 11001111 */ + 0xc6, /* 11000110 */ + 0xc7, /* 11000111 */ + + /* 159 0x9f 'Ÿ' */ + 0x0e, /* 00001110 */ + 0x1b, /* 00011011 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0xd8, /* 11011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + + /* 160 0xa0 ' ' */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x7c, /* 01111100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 161 0xa1 'Ą' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x38, /* 00111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 162 0xa2 '˘' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + + /* 163 0xa3 'Ł' */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 164 0xa4 '¤' */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0xdc, /* 11011100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x00, /* 00000000 */ + + /* 165 0xa5 'Ľ' */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0xe6, /* 11100110 */ + 0xf6, /* 11110110 */ + 0xde, /* 11011110 */ + 0xce, /* 11001110 */ + 0x00, /* 00000000 */ + + /* 166 0xa6 'Ś' */ + 0x3c, /* 00111100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x3e, /* 00111110 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 167 0xa7 '§' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 168 0xa8 '¨' */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x63, /* 01100011 */ + 0x3e, /* 00111110 */ + 0x00, /* 00000000 */ + + /* 169 0xa9 'Š' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 170 0xaa 'Ş' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x06, /* 00000110 */ + 0x06, /* 00000110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 171 0xab 'Ť' */ + 0x63, /* 01100011 */ + 0xe6, /* 11100110 */ + 0x6c, /* 01101100 */ + 0x7e, /* 01111110 */ + 0x33, /* 00110011 */ + 0x66, /* 01100110 */ + 0xcc, /* 11001100 */ + 0x0f, /* 00001111 */ + + /* 172 0xac 'Ź' */ + 0x63, /* 01100011 */ + 0xe6, /* 11100110 */ + 0x6c, /* 01101100 */ + 0x7a, /* 01111010 */ + 0x36, /* 00110110 */ + 0x6a, /* 01101010 */ + 0xdf, /* 11011111 */ + 0x06, /* 00000110 */ + + /* 173 0xad '­' */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 174 0xae 'Ž' */ + 0x00, /* 00000000 */ + 0x33, /* 00110011 */ + 0x66, /* 01100110 */ + 0xcc, /* 11001100 */ + 0x66, /* 01100110 */ + 0x33, /* 00110011 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 175 0xaf 'Ż' */ + 0x00, /* 00000000 */ + 0xcc, /* 11001100 */ + 0x66, /* 01100110 */ + 0x33, /* 00110011 */ + 0x66, /* 01100110 */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 176 0xb0 '°' */ + 0x22, /* 00100010 */ + 0x88, /* 10001000 */ + 0x22, /* 00100010 */ + 0x88, /* 10001000 */ + 0x22, /* 00100010 */ + 0x88, /* 10001000 */ + 0x22, /* 00100010 */ + 0x88, /* 10001000 */ + + /* 177 0xb1 'ą' */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + 0x55, /* 01010101 */ + 0xaa, /* 10101010 */ + + /* 178 0xb2 '˛' */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + 0x77, /* 01110111 */ + 0xdd, /* 11011101 */ + + /* 179 0xb3 'ł' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 180 0xb4 '´' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 181 0xb5 'ľ' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 182 0xb6 'ś' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf6, /* 11110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 183 0xb7 'ˇ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 184 0xb8 '¸' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 185 0xb9 'š' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf6, /* 11110110 */ + 0x06, /* 00000110 */ + 0xf6, /* 11110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 186 0xba 'ş' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 187 0xbb 'ť' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x06, /* 00000110 */ + 0xf6, /* 11110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 188 0xbc 'ź' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf6, /* 11110110 */ + 0x06, /* 00000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 189 0xbd '˝' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 190 0xbe 'ž' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 191 0xbf 'ż' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xf8, /* 11111000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 192 0xc0 'Ŕ' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 193 0xc1 'Á' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 194 0xc2 'Â' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 195 0xc3 'Ă' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 196 0xc4 'Ä' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 197 0xc5 'Ĺ' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 198 0xc6 'Ć' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 199 0xc7 'Ç' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x37, /* 00110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 200 0xc8 'Č' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x37, /* 00110111 */ + 0x30, /* 00110000 */ + 0x3f, /* 00111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 201 0xc9 'É' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3f, /* 00111111 */ + 0x30, /* 00110000 */ + 0x37, /* 00110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 202 0xca 'Ę' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf7, /* 11110111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 203 0xcb 'Ë' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xf7, /* 11110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 204 0xcc 'Ě' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x37, /* 00110111 */ + 0x30, /* 00110000 */ + 0x37, /* 00110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 205 0xcd 'Í' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 206 0xce 'Î' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xf7, /* 11110111 */ + 0x00, /* 00000000 */ + 0xf7, /* 11110111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 207 0xcf 'Ď' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 208 0xd0 'Đ' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 209 0xd1 'Ń' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 210 0xd2 'Ň' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 211 0xd3 'Ó' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x3f, /* 00111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 212 0xd4 'Ô' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 213 0xd5 'Ő' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 214 0xd6 'Ö' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3f, /* 00111111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 215 0xd7 '×' */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0xff, /* 11111111 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + + /* 216 0xd8 'Ř' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0xff, /* 11111111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 217 0xd9 'Ů' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xf8, /* 11111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 218 0xda 'Ú' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x1f, /* 00011111 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 219 0xdb 'Ű' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 220 0xdc 'Ü' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + + /* 221 0xdd 'Ý' */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + 0xf0, /* 11110000 */ + + /* 222 0xde 'Ţ' */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + 0x0f, /* 00001111 */ + + /* 223 0xdf 'ß' */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0xff, /* 11111111 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 224 0xe0 'ŕ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0xc8, /* 11001000 */ + 0xdc, /* 11011100 */ + 0x76, /* 01110110 */ + 0x00, /* 00000000 */ + + /* 225 0xe1 'á' */ + 0x78, /* 01111000 */ + 0xcc, /* 11001100 */ + 0xcc, /* 11001100 */ + 0xd8, /* 11011000 */ + 0xcc, /* 11001100 */ + 0xc6, /* 11000110 */ + 0xcc, /* 11001100 */ + 0x00, /* 00000000 */ + + /* 226 0xe2 'â' */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0xc0, /* 11000000 */ + 0x00, /* 00000000 */ + + /* 227 0xe3 'ă' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x00, /* 00000000 */ + + /* 228 0xe4 'ä' */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + + /* 229 0xe5 'ĺ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0x70, /* 01110000 */ + 0x00, /* 00000000 */ + + /* 230 0xe6 'ć' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x7c, /* 01111100 */ + 0xc0, /* 11000000 */ + + /* 231 0xe7 'ç' */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + + /* 232 0xe8 'č' */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x3c, /* 00111100 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + + /* 233 0xe9 'é' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xfe, /* 11111110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + + /* 234 0xea 'ę' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0xee, /* 11101110 */ + 0x00, /* 00000000 */ + + /* 235 0xeb 'ë' */ + 0x0e, /* 00001110 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x3e, /* 00111110 */ + 0x66, /* 01100110 */ + 0x66, /* 01100110 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + + /* 236 0xec 'ě' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 237 0xed 'í' */ + 0x06, /* 00000110 */ + 0x0c, /* 00001100 */ + 0x7e, /* 01111110 */ + 0xdb, /* 11011011 */ + 0xdb, /* 11011011 */ + 0x7e, /* 01111110 */ + 0x60, /* 01100000 */ + 0xc0, /* 11000000 */ + + /* 238 0xee 'î' */ + 0x1e, /* 00011110 */ + 0x30, /* 00110000 */ + 0x60, /* 01100000 */ + 0x7e, /* 01111110 */ + 0x60, /* 01100000 */ + 0x30, /* 00110000 */ + 0x1e, /* 00011110 */ + 0x00, /* 00000000 */ + + /* 239 0xef 'ď' */ + 0x00, /* 00000000 */ + 0x7c, /* 01111100 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0xc6, /* 11000110 */ + 0x00, /* 00000000 */ + + /* 240 0xf0 'đ' */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0xfe, /* 11111110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 241 0xf1 'ń' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x7e, /* 01111110 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 242 0xf2 'ň' */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 243 0xf3 'ó' */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x18, /* 00011000 */ + 0x0c, /* 00001100 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + + /* 244 0xf4 'ô' */ + 0x0e, /* 00001110 */ + 0x1b, /* 00011011 */ + 0x1b, /* 00011011 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + + /* 245 0xf5 'ő' */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0xd8, /* 11011000 */ + 0xd8, /* 11011000 */ + 0x70, /* 01110000 */ + + /* 246 0xf6 'ö' */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x7e, /* 01111110 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 247 0xf7 '÷' */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0x76, /* 01110110 */ + 0xdc, /* 11011100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 248 0xf8 'ř' */ + 0x38, /* 00111000 */ + 0x6c, /* 01101100 */ + 0x6c, /* 01101100 */ + 0x38, /* 00111000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 249 0xf9 'ů' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 250 0xfa 'ú' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x18, /* 00011000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 251 0xfb 'ű' */ + 0x0f, /* 00001111 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0x0c, /* 00001100 */ + 0xec, /* 11101100 */ + 0x6c, /* 01101100 */ + 0x3c, /* 00111100 */ + 0x1c, /* 00011100 */ + + /* 252 0xfc 'ü' */ + 0x6c, /* 01101100 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x36, /* 00110110 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 253 0xfd 'ý' */ + 0x78, /* 01111000 */ + 0x0c, /* 00001100 */ + 0x18, /* 00011000 */ + 0x30, /* 00110000 */ + 0x7c, /* 01111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 254 0xfe 'ţ' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x3c, /* 00111100 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + + /* 255 0xff '˙' */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + 0x00, /* 00000000 */ + +}; + Index: console/mini_4x6.c =================================================================== --- console/mini_4x6.c (nonexistent) +++ console/mini_4x6.c (revision 1765) @@ -0,0 +1,2149 @@ + +/* Hand composed "Miniscule" 4x6 font, with binary data generated using Perl stub. + * + * Use 'perl -x mini_4x6.c < mini_4x6.c > new_version.c' to regenerate binary data. + * + * Created by Kenneth Albanowski. No rights reserved, released to the public domain. + * + * Version 1.0 + * + */ + +/* + +#!/usr/bin/perl -pn + +s{((0x)?[0-9a-fA-F]+)(.*\[([\*\ ]{4})\])}{ + + ($num,$pat,$bits) = ($1,$3,$4); + + $bits =~ s/([^\s0])|(.)/ defined($1) + 0 /ge; + + $num = ord(pack("B8", $bits)); + $num |= $num >> 4; + $num = sprintf("0x%.2x", $num); + + #print "$num,$pat,$bits\n"; + + $num . $pat; +}ge; + +__END__; +*/ + +#define FONTDATAMAX 1536 + +char fontname_mini4x6[] = "MINI4x6"; + +int fontheight_mini4x6 = 6; +int fontwidth_mini4x6 = 4; + +/* Note: binary data consists of one byte for each row of each character top + to bottom, character 0 to character 255, six bytes per character. Each + byte contains the same four character bits in both nybbles. + MSBit to LSBit = left to right. + */ + +unsigned char fontdata_mini4x6[FONTDATAMAX] = { + + /*{*/ + /* Char 0: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 1: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 2: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 3: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 4: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 5: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 6: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 7: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 8: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 9: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 10: '' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 11: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 12: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 13: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 14: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 15: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 16: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 17: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 18: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 19: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 20: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 21: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 22: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 23: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 24: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 25: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 26: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 27: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 28: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 29: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 30: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 31: ' ' */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 32: ' ' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 33: '!' */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 34: '"' */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 35: '#' */ + 0xaa, /*= [* * ] */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 36: '$' */ + 0x44, /*= [ * ] */ + 0x66, /*= [ ** ] */ + 0xee, /*= [*** ] */ + 0xcc, /*= [** ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 37: '%' */ + 0xaa, /*= [* * ] */ + 0x22, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x88, /*= [* ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 38: '&' */ + 0xaa, /*= [* * ] */ + 0x22, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x88, /*= [* ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 39: ''' */ + 0x22, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 40: '(' */ + 0x22, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 41: ')' */ + 0x44, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 42: '*' */ + 0x00, /*= [ ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 43: '+' */ + 0x00, /*= [ ] */ + 0x44, /*= [ * ] */ + 0xee, /*= [*** ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 44: ',' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x44, /*= [ * ] */ + 0x88, /*= [* ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 45: '-' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 46: '.' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 47: '/' */ + 0x00, /*= [ ] */ + 0x22, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x88, /*= [* ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 48: '0' */ + 0x44, /*= [ * ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 49: '1' */ + 0x44, /*= [ * ] */ + 0xcc, /*= [** ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 50: '2' */ + 0xcc, /*= [** ] */ + 0x22, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x88, /*= [* ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ + /* Char 51: '3' */ + 0xee, /*= [*** ] */ + 0x22, /*= [ * ] */ + 0x66, /*= [ ** ] */ + 0x22, /*= [ * ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 52: '4' */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0x22, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 53: '5' */ + 0xee, /*= [*** ] */ + 0x88, /*= [* ] */ + 0xee, /*= [*** ] */ + 0x22, /*= [ * ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 54: '6' */ + 0xee, /*= [*** ] */ + 0x88, /*= [* ] */ + 0xee, /*= [*** ] */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 55: '7' */ + 0xee, /*= [*** ] */ + 0x22, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 56: '8' */ + 0xee, /*= [*** ] */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 57: '9' */ + 0xee, /*= [*** ] */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0x22, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 58: ':' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 59: ';' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + 0x44, /*= [ * ] */ + 0x88, /*= [* ] */ + /*}*/ + /*{*/ /* Char 60: '<' */ + 0x22, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x88, /*= [* ] */ + 0x44, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 61: '=' */ + 0x00, /*= [ ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 62: '>' */ + 0x88, /*= [* ] */ + 0x44, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x88, /*= [* ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 63: '?' */ + 0xee, /*= [*** ] */ + 0x22, /*= [ * ] */ + 0x66, /*= [ ** ] */ + 0x00, /*= [ ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 64: '@' */ + 0x44, /*= [ * ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x88, /*= [* ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 65: 'A' */ + 0x44, /*= [ * ] */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 66: 'B' */ + 0xcc, /*= [** ] */ + 0xaa, /*= [* * ] */ + 0xcc, /*= [** ] */ + 0xaa, /*= [* * ] */ + 0xcc, /*= [** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 67: 'C' */ + 0x66, /*= [ ** ] */ + 0x88, /*= [* ] */ + 0x88, /*= [* ] */ + 0x88, /*= [* ] */ + 0x66, /*= [ ** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 68: 'D' */ + 0xcc, /*= [** ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0xcc, /*= [** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 69: 'E' */ + 0xee, /*= [*** ] */ + 0x88, /*= [* ] */ + 0xee, /*= [*** ] */ + 0x88, /*= [* ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 70: 'F' */ + 0xee, /*= [*** ] */ + 0x88, /*= [* ] */ + 0xee, /*= [*** ] */ + 0x88, /*= [* ] */ + 0x88, /*= [* ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 71: 'G' */ + 0x66, /*= [ ** ] */ + 0x88, /*= [* ] */ + 0xee, /*= [*** ] */ + 0xaa, /*= [* * ] */ + 0x66, /*= [ ** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 72: 'H' */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 73: 'I' */ + 0xee, /*= [*** ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 74: 'J' */ + 0x22, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0xaa, /*= [* * ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 75: 'K' */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0xcc, /*= [** ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 76: 'L' */ + 0x88, /*= [* ] */ + 0x88, /*= [* ] */ + 0x88, /*= [* ] */ + 0x88, /*= [* ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 77: 'M' */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 78: 'N' */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 79: 'O' */ + 0x44, /*= [ * ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 80: 'P' */ + 0xcc, /*= [** ] */ + 0xaa, /*= [* * ] */ + 0xcc, /*= [** ] */ + 0x88, /*= [* ] */ + 0x88, /*= [* ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 81: 'Q' */ + 0x44, /*= [ * ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0x66, /*= [ ** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 82: 'R' */ + 0xcc, /*= [** ] */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0xcc, /*= [** ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 83: 'S' */ + 0x66, /*= [ ** ] */ + 0x88, /*= [* ] */ + 0x44, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0xcc, /*= [** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 84: 'T' */ + 0xee, /*= [*** ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 85: 'U' */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0x66, /*= [ ** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 86: 'V' */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 87: 'W' */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 88: 'X' */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0x44, /*= [ * ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 89: 'Y' */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 90: 'Z' */ + 0xee, /*= [*** ] */ + 0x22, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x88, /*= [* ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 91: '[' */ + 0x66, /*= [ ** ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x66, /*= [ ** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 92: '\' */ + 0x00, /*= [ ] */ + 0x88, /*= [* ] */ + 0x44, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 93: ']' */ + 0x66, /*= [ ** ] */ + 0x22, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x66, /*= [ ** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 94: '^' */ + 0x44, /*= [ * ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 95: '_' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xff, /*= [****] */ + /*}*/ + /*{*/ /* Char 96: '`' */ + 0x88, /*= [* ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 97: 'a' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x66, /*= [ ** ] */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 98: 'b' */ + 0x88, /*= [* ] */ + 0x88, /*= [* ] */ + 0xcc, /*= [** ] */ + 0xaa, /*= [* * ] */ + 0xcc, /*= [** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 99: 'c' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x66, /*= [ ** ] */ + 0x88, /*= [* ] */ + 0x66, /*= [ ** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 100: 'd' */ + 0x22, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x66, /*= [ ** ] */ + 0xaa, /*= [* * ] */ + 0x66, /*= [ ** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 101: 'e' */ + 0x00, /*= [ ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x88, /*= [* ] */ + 0x66, /*= [ ** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 102: 'f' */ + 0x22, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0xee, /*= [*** ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 103: 'g' */ + 0x00, /*= [ ] */ + 0x66, /*= [ ** ] */ + 0xaa, /*= [* * ] */ + 0x66, /*= [ ** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 104: 'h' */ + 0x88, /*= [* ] */ + 0x88, /*= [* ] */ + 0xcc, /*= [** ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 105: 'i' */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 106: 'j' */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x88, /*= [* ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 107: 'k' */ + 0x00, /*= [ ] */ + 0x88, /*= [* ] */ + 0xaa, /*= [* * ] */ + 0xcc, /*= [** ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 108: 'l' */ + 0x00, /*= [ ] */ + 0xcc, /*= [** ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 109: 'm' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 110: 'n' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xcc, /*= [** ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 111: 'o' */ + 0x00, /*= [ ] */ + 0x44, /*= [ * ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 112: 'p' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xcc, /*= [** ] */ + 0xaa, /*= [* * ] */ + 0xcc, /*= [** ] */ + 0x88, /*= [* ] */ + /*}*/ + /*{*/ /* Char 113: 'q' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x66, /*= [ ** ] */ + 0xaa, /*= [* * ] */ + 0x66, /*= [ ** ] */ + 0x22, /*= [ * ] */ + /*}*/ + /*{*/ /* Char 114: 'r' */ + 0x00, /*= [ ] */ + 0xcc, /*= [** ] */ + 0xaa, /*= [* * ] */ + 0x88, /*= [* ] */ + 0x88, /*= [* ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 115: 's' */ + 0x00, /*= [ ] */ + 0x66, /*= [ ** ] */ + 0xcc, /*= [** ] */ + 0x22, /*= [ * ] */ + 0xcc, /*= [** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 116: 't' */ + 0x00, /*= [ ] */ + 0x44, /*= [ * ] */ + 0xee, /*= [*** ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 117: 'u' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0x66, /*= [ ** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 118: 'v' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 119: 'w' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 120: 'x' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xaa, /*= [* * ] */ + 0x44, /*= [ * ] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 121: 'y' */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0x22, /*= [ * ] */ + 0xcc, /*= [** ] */ + /*}*/ + /*{*/ /* Char 122: 'z' */ + 0x00, /*= [ ] */ + 0xee, /*= [*** ] */ + 0x66, /*= [ ** ] */ + 0xcc, /*= [** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 123: '{' */ + 0x22, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0xcc, /*= [** ] */ + 0x44, /*= [ * ] */ + 0x22, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 124: '|' */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 125: '}' */ + 0x88, /*= [* ] */ + 0x44, /*= [ * ] */ + 0x66, /*= [ ** ] */ + 0x44, /*= [ * ] */ + 0x88, /*= [* ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 126: '~' */ + 0x55, /*= [ * *] */ + 0xaa, /*= [* * ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 127: '' */ + 0x44, /*= [ * ] */ + 0xaa, /*= [* * ] */ + 0xaa, /*= [* * ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 128: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 129: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 130: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 131: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 132: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 133: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 134: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 135: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 136: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 137: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 138: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 139: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 140: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 141: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 142: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 143: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 144: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 145: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 146: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 147: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 148: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 149: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 150: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 151: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 152: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 153: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 154: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 155: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 156: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 157: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 158: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 159: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 160: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 161: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 162: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 163: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 164: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 165: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 166: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 167: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 168: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 169: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 170: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 171: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 172: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 173: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 174: */ + 0x00, /*= [ ] */ + 0x66, /*= [ ** ] */ + 0xcc, /*= [** ] */ + 0x66, /*= [ ** ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 175: */ + 0x00, /*= [ ] */ + 0xcc, /*= [** ] */ + 0x66, /*= [ ** ] */ + 0xcc, /*= [** ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 176: */ + 0x88, /*= [* ] */ + 0x22, /*= [ * ] */ + 0x88, /*= [* ] */ + 0x22, /*= [ * ] */ + 0x88, /*= [* ] */ + 0x22, /*= [ * ] */ + /*}*/ + /*{*/ /* Char 177: */ + 0xaa, /*= [* * ] */ + 0x55, /*= [ * *] */ + 0xaa, /*= [* * ] */ + 0x55, /*= [ * *] */ + 0xaa, /*= [* * ] */ + 0x55, /*= [ * *] */ + /*}*/ + /*{*/ /* Char 178: */ + 0xdd, /*= [** *] */ + 0xbb, /*= [* **] */ + 0xdd, /*= [** *] */ + 0xbb, /*= [* **] */ + 0xdd, /*= [** *] */ + 0xbb, /*= [* **] */ + /*}*/ + /*{*/ /* Char 179: */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + /*}*/ + /*{*/ /* Char 180: */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0xcc, /*= [** ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + /*}*/ + /*{*/ /* Char 181: */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0xcc, /*= [** ] */ + 0xcc, /*= [** ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + /*}*/ + /*{*/ /* Char 182: */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0xee, /*= [*** ] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + /*}*/ + /*{*/ /* Char 183: */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xee, /*= [*** ] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + /*}*/ + /*{*/ /* Char 184: */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xcc, /*= [** ] */ + 0xcc, /*= [** ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + /*}*/ + /*{*/ /* Char 185: */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + /*}*/ + /*{*/ /* Char 186: */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + /*}*/ + /*{*/ /* Char 187: */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + /*}*/ + /*{*/ /* Char 188: */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 189: */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 190: */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0xcc, /*= [** ] */ + 0xcc, /*= [** ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 191: */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xcc, /*= [** ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + /*}*/ + /*{*/ /* Char 192: */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x77, /*= [ ***] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 193: */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0xff, /*= [****] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 194: */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xff, /*= [****] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + /*}*/ + /*{*/ /* Char 195: */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x77, /*= [ ***] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + /*}*/ + /*{*/ /* Char 196: */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xff, /*= [****] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 197: */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0xff, /*= [****] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + /*}*/ + /*{*/ /* Char 198: */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x77, /*= [ ***] */ + 0x77, /*= [ ***] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + /*}*/ + /*{*/ /* Char 199: */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0x77, /*= [ ***] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + /*}*/ + /*{*/ /* Char 200: */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0x77, /*= [ ***] */ + 0x77, /*= [ ***] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 201: */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x77, /*= [ ***] */ + 0x77, /*= [ ***] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + /*}*/ + /*{*/ /* Char 202: */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 203: */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + /*}*/ + /*{*/ /* Char 204: */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0x77, /*= [ ***] */ + 0x77, /*= [ ***] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + /*}*/ + /*{*/ /* Char 205: */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 206: */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + /*}*/ + /*{*/ /* Char 207: */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 208: */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0xff, /*= [****] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 209: */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + /*}*/ + /*{*/ /* Char 210: */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xff, /*= [****] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + /*}*/ + /*{*/ /* Char 211: */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0x77, /*= [ ***] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 212: */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x77, /*= [ ***] */ + 0x77, /*= [ ***] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 213: */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x77, /*= [ ***] */ + 0x77, /*= [ ***] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + /*}*/ + /*{*/ /* Char 214: */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x77, /*= [ ***] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + /*}*/ + /*{*/ /* Char 215: */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0xff, /*= [****] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + /*}*/ + /*{*/ /* Char 216: */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + /*}*/ + /*{*/ /* Char 217: */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0xcc, /*= [** ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 218: */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x77, /*= [ ***] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + 0x44, /*= [ * ] */ + /*}*/ + /*{*/ /* Char 219: */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + /*}*/ + /*{*/ /* Char 220: */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + /*}*/ + /*{*/ /* Char 221: */ + 0xcc, /*= [** ] */ + 0xcc, /*= [** ] */ + 0xcc, /*= [** ] */ + 0xcc, /*= [** ] */ + 0xcc, /*= [** ] */ + 0xcc, /*= [** ] */ + /*}*/ + /*{*/ /* Char 222: */ + 0x33, /*= [ **] */ + 0x33, /*= [ **] */ + 0x33, /*= [ **] */ + 0x33, /*= [ **] */ + 0x33, /*= [ **] */ + 0x33, /*= [ **] */ + /*}*/ + /*{*/ /* Char 223: */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + 0xff, /*= [****] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 224: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 225: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 226: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 227: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 228: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 229: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 230: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 231: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 232: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 233: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 234: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 235: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 236: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 237: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 238: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 239: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 240: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 241: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 242: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 243: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 244: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 245: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 246: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 247: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 248: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 249: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 250: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 251: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 252: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 253: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 254: */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + 0x66, /*= [ ** ] */ + 0x66, /*= [ ** ] */ + 0x00, /*= [ ] */ + 0x00, /*= [ ] */ + /*}*/ + /*{*/ /* Char 255: */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0xee, /*= [*** ] */ + 0x00, /*= [ ] */ + /*}*/ +}; Index: mm/init.c =================================================================== --- mm/init.c (nonexistent) +++ mm/init.c (revision 1765) @@ -0,0 +1,209 @@ +/* + * linux/arch/m68knommu/mm/init.c + * + * Based on: linux/arch/m68knommu/mm/init.c + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef CONFIG_BLK_DEV_RAM +#include +#endif + +#include +#include +#include +#include +#include + +#ifndef PAGE_OFFSET +#define PAGE_OFFSET 0 +#endif + +extern void die_if_kernel(char *,struct pt_regs *,long); +extern void show_net_buffers(void); + +/* + * BAD_PAGE is the page that is used for page faults when linux + * is out-of-memory. Older versions of linux just did a + * do_exit(), but using this instead means there is less risk + * for a process dying in kernel mode, possibly leaving a inode + * unused etc.. + * + * BAD_PAGETABLE is the accompanying page-table: it is initialized + * to point to BAD_PAGE entries. + * + * ZERO_PAGE is a special page that is used for zero-initialized + * data and COW. + */ +static unsigned long empty_bad_page_table; + +static unsigned long empty_bad_page; + +unsigned long empty_zero_page; + +extern unsigned long rom_length; + +void show_mem(void) +{ + unsigned long i; + int free = 0, total = 0, reserved = 0, nonshared = 0, shared = 0; + + printk("\nMem-info:\n"); + show_free_areas(); + printk("Free swap: %6dkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); + i = high_memory >> PAGE_SHIFT; + while (i-- > 0) { + total++; + if (PageReserved(mem_map+i)) + reserved++; + else if (!mem_map[i].count) + free++; + else if (mem_map[i].count == 1) + nonshared++; + else + shared += mem_map[i].count-1; + } + printk("%d pages of RAM\n",total); + printk("%d free pages\n",free); + printk("%d reserved pages\n",reserved); + printk("%d pages nonshared\n",nonshared); + printk("%d pages shared\n",shared); + show_buffers(); +#ifdef CONFIG_NET + show_net_buffers(); +#endif +} + +extern unsigned long free_area_init(unsigned long, unsigned long); + +/* + * paging_init() continues the virtual memory environment setup which + * was begun by the code in arch/head.S. + * The parameters are pointers to where to stick the starting and ending + * addresses of available kernel virtual memory. + */ +unsigned long paging_init(unsigned long start_mem, unsigned long end_mem) +{ +#ifdef DEBUG + printk ("start_mem is %#lx\nvirtual_end is %#lx\n", + start_mem, end_mem); +#endif + + /* + * initialize the bad page table and bad page to point + * to a couple of allocated pages + */ + empty_bad_page_table = start_mem; + start_mem += PAGE_SIZE; + empty_bad_page = start_mem; + start_mem += PAGE_SIZE; + empty_zero_page = start_mem; + start_mem += PAGE_SIZE; + memset((void *)empty_zero_page, 0, PAGE_SIZE); + + /* + * Set up SFC/DFC registers (user data space) + */ + set_fs (USER_DS); + +#ifdef DEBUG + printk ("before free_area_init\n"); + + printk ("free_area_init -> start_mem is %#lx\nvirtual_end is %#lx\n", + start_mem, end_mem); +#endif + + return PAGE_ALIGN(free_area_init (start_mem, end_mem)); +} + +void mem_init(unsigned long start_mem, unsigned long end_mem) +{ + int codek = 0; + int datapages = 0; + unsigned long tmp; + extern char _etext, __data_start; + unsigned long len = end_mem-(unsigned long)&__data_start; +#ifdef CONFIG_ROMKERNEL + extern char _romvec; +#else + extern char _ramvec; +#endif + +#ifdef DEBUG + printk("Mem_init: start=%lx, end=%lx\n", start_mem, end_mem); +#endif + + end_mem &= PAGE_MASK; + high_memory = end_mem; + + start_mem = PAGE_ALIGN(start_mem); + while (start_mem < high_memory) { + clear_bit(PG_reserved, &mem_map[MAP_NR(start_mem)].flags); + start_mem += PAGE_SIZE; + } + + for (tmp = PAGE_OFFSET ; tmp < end_mem ; tmp += PAGE_SIZE) { + +#ifdef MAX_DMA_ADDRESS + if (VTOP (tmp) >= MAX_DMA_ADDRESS) + clear_bit(PG_DMA, &mem_map[MAP_NR(tmp)].flags); +#endif + + if (PageReserved(mem_map+MAP_NR(tmp))) { + datapages++; + continue; + } + mem_map[MAP_NR(tmp)].count = 1; +#ifdef CONFIG_BLK_DEV_INITRD + if (!initrd_start || + (tmp < (initrd_start & PAGE_MASK) || tmp >= initrd_end)) +#endif + free_page(tmp); + } + +#ifdef CONFIG_ROMKERNEL + codek = (&_etext - &_romvec) >> 10; +#else + codek = (&_etext - &_ramvec) >> 10; +#endif + tmp = nr_free_pages << PAGE_SHIFT; + printk("Memory available: %luk/%luk RAM, %luk/%luk ROM (%dk kernel data, %dk code)\n", + tmp >> 10, + len >> 10, + (rom_length > 0) ? ((rom_length >> 10) - codek) : 0, + rom_length >> 10, + datapages << (PAGE_SHIFT-10), + codek + ); +} + +void si_meminfo(struct sysinfo *val) +{ + unsigned long i; + + i = (high_memory - PAGE_OFFSET) >> PAGE_SHIFT; + val->totalram = 0; + val->sharedram = 0; + val->freeram = nr_free_pages << PAGE_SHIFT; + val->bufferram = buffermem; + while (i-- > 0) { + if (PageReserved(mem_map+i)) + continue; + val->totalram++; + if (!mem_map[i].count) + continue; + val->sharedram += mem_map[i].count-1; + } + val->totalram <<= PAGE_SHIFT; + val->sharedram <<= PAGE_SHIFT; + return; +} + Index: mm/memory.c =================================================================== --- mm/memory.c (nonexistent) +++ mm/memory.c (revision 1765) @@ -0,0 +1,107 @@ +/* + * linux/arch/or32/mm/memory.c + * + * Based on: linux/arch/m68knommu/mm/memory.c + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +/* + * The following two routines map from a physical address to a kernel + * virtual address and vice versa. + */ +unsigned long mm_vtop (unsigned long vaddr) +{ + return vaddr; +} + +unsigned long mm_ptov (unsigned long paddr) +{ + return paddr; +} + +/* + * cache_clear() semantics: Clear any cache entries for the area in question, + * without writing back dirty entries first. This is useful if the data will + * be overwritten anyway, e.g. by DMA to memory. The range is defined by a + * _physical_ address. + */ + +void cache_clear (unsigned long paddr, int len) +{ +} + + +/* + * cache_push() semantics: Write back any dirty cache data in the given area, + * and invalidate the range in the instruction cache. It needs not (but may) + * invalidate those entries also in the data cache. The range is defined by a + * _physical_ address. + */ + +void cache_push (unsigned long paddr, int len) +{ +} + + +/* + * cache_push_v() semantics: Write back any dirty cache data in the given + * area, and invalidate those entries at least in the instruction cache. This + * is intended to be used after data has been written that can be executed as + * code later. The range is defined by a _user_mode_ _virtual_ address (or, + * more exactly, the space is defined by the %sfc/%dfc register.) + */ + +void cache_push_v (unsigned long vaddr, int len) +{ +} + +unsigned long mm_phys_to_virt (unsigned long addr) +{ + return PTOV (addr); +} + +/* Map some physical address range into the kernel address space. The + * code is copied and adapted from map_chunk(). + */ + +unsigned long kernel_map(unsigned long paddr, unsigned long size, + int nocacheflag, unsigned long *memavailp ) +{ + return paddr; +} + + +void kernel_set_cachemode( unsigned long address, unsigned long size, + unsigned cmode ) +{ +} + +#ifdef MAGIC_ROM_PTR +#ifdef CONFIG_ROMKERNEL +int is_in_rom(unsigned long addr) { + extern unsigned long __rom_start, _flashend; + + /* Anything not in operational RAM is returned as in rom! */ + if ((addr >= (unsigned long)&__rom_start) && (addr < (unsigned long)&_flashend)) + return(1); + return(0); +} +#else +int is_in_rom(unsigned long addr) { + return 0; +} +#endif +#endif + Index: mm/Makefile =================================================================== --- mm/Makefile (nonexistent) +++ mm/Makefile (revision 1765) @@ -0,0 +1,13 @@ +# +# Makefile for the linux m68k-specific parts of the memory manager. +# +# Note! Dependencies are done automagically by 'make dep', which also +# removes any old dependencies. DON'T put your own dependencies here +# unless it's something special (ie not a .c file). +# +# Note 2! The CFLAGS definition is now in the main makefile... + +O_TARGET := mm.o +O_OBJS := init.o memory.o + +include $(TOPDIR)/Rules.make Index: tools/comp.c =================================================================== --- tools/comp.c (nonexistent) +++ tools/comp.c (revision 1765) @@ -0,0 +1,112 @@ +#include + +unsigned char src[5000000]; +unsigned char dest[10000000]; +unsigned char dec[10000000]; + +#define CRC(x) (crc = (crc << 5) | (x)) + +unsigned long compress (unsigned char *in, unsigned char *out, unsigned long size) +{ + unsigned char hist[0x10000] = {0}; + unsigned char *mask; + unsigned short hash = 0; + unsigned i, b; + unsigned long csize = 5; + unsigned long crc = 0; + + *out++ = (size >> 24) & 0xff; + *out++ = (size >> 16) & 0xff; + *out++ = (size >> 8) & 0xff; + *out++ = (size >> 0) & 0xff; + mask = out++; + *mask = 0; + for (i = 0, b = 0; i < size; i++) { + CRC(*in); + if (*in == hist[hash]) *mask |= 1 << b; + else { + *out++ = *in; + csize++; + } + hist[hash] = *in; + hash <<= 8; + hash |= *in; + if (++b == 8) { + mask = out++; + csize++; + *mask = 0; + b = 0; + } + in++; + } + printf ("original CRC = %08x\n", crc); + return csize; +} + +unsigned long decompress (unsigned char *in, unsigned char *out) +{ + unsigned char hist[0x10000] = {0}; + unsigned long size; + int b = 0, i; + unsigned char *mask; + unsigned short hash = 0; + unsigned long crc = 0; + + CRC(*in); size = (*in++) << 24; + CRC(*in); size |= (*in++) << 16; + CRC(*in); size |= (*in++) << 8; + CRC(*in); size |= (*in++) << 0; + CRC(*in); mask = in++; + for (i = 0; i < size; i++) { + unsigned char c; + if ((*mask >> b) & 1) c = hist[hash]; + else CRC(c = *in++); + *out++ = c; + hist[hash] = c; + hash <<= 8; + hash |= c; + hash &= 0xffff; + if (++b == 8) { + CRC(*in); + mask = in++; + b = 0; + } + } + printf ("compressed CRC = %08x\n", crc); + return size; +} + +int main (int argc, char *argv[]) +{ + FILE *fi; + unsigned short hash = 0; + int i, size; + char tmp[50]; + unsigned long crc = 0; + if (argc != 2) return -1; + + fi = fopen (argv[1], "rb"); + if (!fi) return 1; + size = fread (src, 1, sizeof (src), fi); + fclose (fi); + printf ("original size = %i (%08x)\n", size, size); + size = compress (src, dest, size); + printf ("compressed size = %i (%08x)\n", size, size); + sprintf (tmp, "%s.cmp", argv[1]); + fi = fopen (tmp, "wb+"); + fwrite (dest, 1, size, fi); + fclose (fi); + size = decompress (dest, dec); + printf ("decompressed size = %i (%08x)\n", size, size); + for (i = 0; i < size; i++) + if (src[i] != dec[i]) { + printf ("error!\n"); + return 1; + } +#if 0 + fi = fopen ("fl_img.dec", "wb+"); + fwrite (dec, 1, size, fi); + fclose (fi); +#endif + return 0; +} Index: tools/piggyback.c =================================================================== --- tools/piggyback.c (nonexistent) +++ tools/piggyback.c (revision 1765) @@ -0,0 +1,55 @@ +#include + +extern long ce_exec_config[]; + +main(int argc, char *argv[]) +{ + int i, cnt, pos, len; + unsigned char *lp; + unsigned char buf[8192]; + if (argc != 1) + { + fprintf(stderr, "usage: %s out-file\n", argv[0]); + exit(1); + } + fprintf(stdout, "#\n"); + fprintf(stdout, "# Miscellaneous data structures:\n"); + fprintf(stdout, "# WARNING - this file is automatically generated!\n"); + fprintf(stdout, "#\n"); + fprintf(stdout, "\n"); + fprintf(stdout, "\t.section .linux, \"a\"\n"); + pos = 0; + while ((len = read(0, buf, sizeof(buf))) > 0) + { + cnt = 0; + lp = (unsigned char *)buf; + len = (len + 3) & ~3; /* Round up to longwords */ + for (i = 0; i < len; i += 4) + { + if (cnt == 0) + { + fprintf(stdout, "\t.long\t"); + } + fprintf(stdout, "0x%02X%02X%02X%02X", lp[0], lp[1], lp[2], lp[3]); + lp += 4; + if (++cnt == 4) + { + cnt = 0; + fprintf(stdout, "/* %x */\n", pos+i-12); + fflush(stdout); + } else + { + fprintf(stdout, ","); + } + } + if (cnt) + { + fprintf(stdout, "0\n"); + } + pos += len; + } + fflush(stdout); + fclose(stdout); + exit(0); +} + Index: tools/bintoc.c =================================================================== --- tools/bintoc.c (nonexistent) +++ tools/bintoc.c (revision 1765) @@ -0,0 +1,55 @@ +#include + +extern long ce_exec_config[]; + +main(int argc, char *argv[]) +{ + int i, cnt, pos, len; + unsigned char *lp; + unsigned char buf[8192]; + if (argc != 1) + { + fprintf(stderr, "usage: %s out-file\n", argv[0]); + exit(1); + } + fprintf(stdout, "#\n"); + fprintf(stdout, "# Miscellaneous data structures:\n"); + fprintf(stdout, "# WARNING - this file is automatically generated!\n"); + fprintf(stdout, "#\n"); + fprintf(stdout, "\n"); + fprintf(stdout, "\t.section .initrd, \"a\"\n"); + pos = 0; + while ((len = read(0, buf, sizeof(buf))) > 0) + { + cnt = 0; + lp = (unsigned char *)buf; + len = (len + 3) & ~3; /* Round up to longwords */ + for (i = 0; i < len; i += 4) + { + if (cnt == 0) + { + fprintf(stdout, "\t.long\t"); + } + fprintf(stdout, "0x%02X%02X%02X%02X", lp[0], lp[1], lp[2], lp[3]); + lp += 4; + if (++cnt == 4) + { + cnt = 0; + fprintf(stdout, "/* %x */\n", pos+i-12); + fflush(stdout); + } else + { + fprintf(stdout, ","); + } + } + if (cnt) + { + fprintf(stdout, "0\n"); + } + pos += len; + } + fflush(stdout); + fclose(stdout); + exit(0); +} + Index: tools/bintoc =================================================================== --- tools/bintoc (nonexistent) +++ tools/bintoc (revision 1765) @@ -0,0 +1,45 @@ +ELF°„4Ř,4 (44€4€ŔŔôô€ô€€€÷÷řř˜ř˜řP P™P™   /lib/ld-linux.so.2GNU +  +„"7(„-08„ł?H„Ź"đ™cô™~X„ŕ\h„]!x„‘"jˆ„oä‡W˜„@ __gmon_start__libc.so.6stdout__cxa_finalizefflushfprintf__deregister_frame_inforeadfclosestderrexit_IO_stdin_used__libc_start_main__register_frame_infoGLIBC_2.1.3GLIBC_2.1GLIBC_2.0si Śii +˛ii +źL™ +đ™ô™(™,™0™4™8™<™@™ D™ +H™ U‰ĺSPč[Ă:‹ƒ0…Ŕt˙ЍvčSč~‹]üÉĂ˙5 ™˙%$™˙%(™héŕ˙˙˙˙%,™héĐ˙˙˙˙%0™héŔ˙˙˙˙%4™hé°˙˙˙˙%8™h é ˙˙˙˙%<™h(é˙˙˙˙%@™h0é€˙˙˙˙%D™h8ép˙˙˙˙%H™h@é`˙˙˙1í^‰áƒäřPTRhŔ‡h؃QVh…č‡˙˙˙ôU‹™‰ĺƒě…ŇuI‹™‹…Ŕtt&BŁ™˙‹™‹ +…Éuę¸H„…Ŕtƒě h™č˙˙˙ƒÄ¸Ł™‰ě]ÍvU‰ĺƒě‰ě]ÍśU‰ĺ¸„ƒě…Ŕtƒěhř™h™č§ţ˙˙ƒÄ‰ě]Ѝ´&U‰ĺƒě‰ě]ÍśUWVSě ƒź$0 t(V‹„$8 ˙0hˆ˙5ô™čjţ˙˙Ç$čžţ˙˙‰öƒěhˆ˙5đ™čIţ˙˙Y[h@ˆ˙5đ™č7ţ˙˙XZh€ˆ˙5đ™č%ţ˙˙_]hˆ˙5đ™čţ˙˙[^hłˆ˙5đ™čţ˙˙ZYhľˆ˙5đ™čďý˙˙ÇD$ƒÄD$‰D$éݍvƒĂ1öƒăü9ދ|$ÇD$  ‹l$ƒí …öuƒěh͈˙5đ™č™ý˙˙ƒÄƒěśGPśGPśGPśPhՈ˙5đ™Fčoý˙˙ƒÇƒÄ ƒţu$PUhčˆ˙5đ™čRý˙˙Y˙5đ™čVý˙˙1öë‰öƒěhňˆ˙5đ™č-ý˙˙ƒÄƒD$ ƒĹ9\$ Œh˙˙˙…ötƒěhôˆ˙5đ™čý˙˙ƒÄ\$Rh ˙t$ jčYý˙˙‰ĂƒÄ…ۏ˙˙˙ƒě ˙5đ™čŢü˙˙X˙5đ™čý˙˙Ç$čý˙˙UĄ ™‰ĺSƒěƒř˙ť ™tvź'ƒë˙Ћƒř˙uôX[]ĂU‰ĺƒě‰ě]ÍśU‰ĺSRč[ĂRvčý˙˙‹]üÉĂusage: %s out-file +# +# Miscellaneous data structures: +# WARNING - this file is automatically generated! + + .section .initrd, "a" + .long 0x%02X%02X%02X%02X/* %x */ +,0 +™˙˙˙˙˙˙˙˙P™„.„>„N„^„n„~„Ž„ž„ ؃ +Ŕ‡(T‚t +Ś ™Hƒxƒţ˙˙o8ƒ˙˙˙ođ˙˙oƒ—@dԄdԄ,<;€e€€Ž€ć€#€t€Ĺ€đ€€I€r€Œ€§€Č€€$€I€s€œ‚˘ś‚gVÝ‚‰s‚‚˘˘2‚Řk€Ç˘€ –€!­€"€#Ř€%đ€&€1€25€3L€4e€5}€6–€8Ž€9Ç€;ç€=ý€>€?)€@?€AV€Bn€C„€D›€Eą€FÉ€Gŕ€Hů€I€Nt€QŒ€RŹ€SĂ€TŢ€Uú€V€X*€[D€^\€bt€xž€{Ô€~ €‡! €ˆ< €‹W €Œt € €Ź €“Ä €–Ý €™ř €š +€- +€ G +‚ůŒ{ +‚ˆŁ +€˘Ö +€ €#Z €4` €<­ €Cĺ €F +€S” +€ZŇ +€^ď +€Ä€lä€t8€yY€á€†€Œ˘˘2‚ +7€L€8˘`‚s‚b…€F˘˘€J€#‚˘‚-Á`Âs‚˘ł€’€É€Gó€J"€KS€T†€ZÁ€^ú€a2€bj€€Â€¸€/€­˘˘S€5Ć€7Ţ€8ö€9€:˘* "dԄinit.c/usr/src/bs/BUILD/glibc-2.1.92/csu/gcc2_compiled.int:t(0,1)=r(0,1);-2147483648;2147483647;char:t(0,2)=r(0,2);0;127;long int:t(0,3)=r(0,3);-2147483648;2147483647;unsigned int:t(0,4)=r(0,4);0000000000000;0037777777777;long unsigned int:t(0,5)=r(0,5);0000000000000;0037777777777;long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;short int:t(0,8)=@s16;r(0,8);-32768;32767;short unsigned int:t(0,9)=@s16;r(0,9);0;65535;signed char:t(0,10)=@s8;r(0,10);-128;127;unsigned char:t(0,11)=@s8;r(0,11);0;255;float:t(0,12)=r(0,1);4;0;double:t(0,13)=r(0,1);8;0;long double:t(0,14)=r(0,1);12;0;complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;complex float:t(0,16)=r(0,16);8;0;complex double:t(0,17)=r(0,17);16;0;complex long double:t(0,18)=r(0,18);24;0;__builtin_va_list:t(0,19)=*(0,20)=(0,20)../include/libc-symbols.h../sysdeps/unix/sysv/linux/_G_config.h../sysdeps/unix/sysv/linux/bits/types.h../include/features.h../include/sys/cdefs.h/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.hsize_t:t(6,1)=(0,4)__u_char:t(3,1)=(0,11)__u_short:t(3,2)=(0,9)__u_int:t(3,3)=(0,4)__u_long:t(3,4)=(0,5)__u_quad_t:t(3,5)=(0,7)__quad_t:t(3,6)=(0,6)__int8_t:t(3,7)=(0,10)__uint8_t:t(3,8)=(0,11)__int16_t:t(3,9)=(0,8)__uint16_t:t(3,10)=(0,9)__int32_t:t(3,11)=(0,1)__uint32_t:t(3,12)=(0,4)__int64_t:t(3,13)=(0,6)__uint64_t:t(3,14)=(0,7)__qaddr_t:t(3,15)=(3,16)=*(3,6)__dev_t:t(3,17)=(3,5)__uid_t:t(3,18)=(3,3)__gid_t:t(3,19)=(3,3)__ino_t:t(3,20)=(3,4)__mode_t:t(3,21)=(3,3)__nlink_t:t(3,22)=(3,3)__off_t:t(3,23)=(0,3)__loff_t:t(3,24)=(3,6)__pid_t:t(3,25)=(0,1)__ssize_t:t(3,26)=(0,1)__rlim_t:t(3,27)=(3,4)__rlim64_t:t(3,28)=(3,5)__id_t:t(3,29)=(3,3)__fsid_t:t(3,30)=(3,31)=s8__val:(3,32)=ar(3,33)=r(3,33);0000000000000;0037777777777;;0;1;(0,1),0,64;;__daddr_t:t(3,34)=(0,1)__caddr_t:t(3,35)=(3,36)=*(0,2)__time_t:t(3,37)=(0,3)__useconds_t:t(3,38)=(0,4)__suseconds_t:t(3,39)=(0,3)__swblk_t:t(3,40)=(0,3)__clock_t:t(3,41)=(0,3)__clockid_t:t(3,42)=(0,1)__timer_t:t(3,43)=(0,1)__fd_mask:t(3,44)=(0,5)__fd_set:t(3,45)=(3,46)=s128fds_bits:(3,47)=ar(3,33);0;31;(3,44),0,1024;;__key_t:t(3,48)=(0,1)__ipc_pid_t:t(3,49)=(0,9)__blksize_t:t(3,50)=(0,3)__blkcnt_t:t(3,51)=(0,3)__blkcnt64_t:t(3,52)=(3,6)__fsblkcnt_t:t(3,53)=(3,4)__fsblkcnt64_t:t(3,54)=(3,5)__fsfilcnt_t:t(3,55)=(3,4)__fsfilcnt64_t:t(3,56)=(3,5)__ino64_t:t(3,57)=(3,5)__off64_t:t(3,58)=(3,24)__t_scalar_t:t(3,59)=(0,3)__t_uscalar_t:t(3,60)=(0,5)__intptr_t:t(3,61)=(0,1)__socklen_t:t(3,62)=(0,4)../linuxthreads/sysdeps/pthread/bits/pthreadtypes.h../sysdeps/unix/sysv/linux/bits/sched.h__sched_param:T(8,1)=s4sched_priority:(0,1),0,32;;_pthread_fastlock:T(7,1)=s8__status:(0,3),0,32;__spinlock:(0,1),32,32;;_pthread_descr:t(7,2)=(7,3)=*(7,4)=xs_pthread_descr_struct:pthread_attr_t:t(7,5)=(7,6)=s36__detachstate:(0,1),0,32;__schedpolicy:(0,1),32,32;__schedparam:(8,1),64,32;__inheritsched:(0,1),96,32;__scope:(0,1),128,32;__guardsize:(6,1),160,32;__stackaddr_set:(0,1),192,32;__stackaddr:(0,19),224,32;__stacksize:(6,1),256,32;;pthread_cond_t:t(7,7)=(7,8)=s12__c_lock:(7,1),0,64;__c_waiting:(7,2),64,32;;pthread_condattr_t:t(7,9)=(7,10)=s4__dummy:(0,1),0,32;;pthread_key_t:t(7,11)=(0,4)pthread_mutex_t:t(7,12)=(7,13)=s24__m_reserved:(0,1),0,32;__m_count:(0,1),32,32;__m_owner:(7,2),64,32;__m_kind:(0,1),96,32;__m_lock:(7,1),128,64;;pthread_mutexattr_t:t(7,14)=(7,15)=s4__mutexkind:(0,1),0,32;;pthread_once_t:t(7,16)=(0,1)_pthread_rwlock_t:T(7,17)=s32__rw_lock:(7,1),0,64;__rw_readers:(0,1),64,32;__rw_writer:(7,2),96,32;__rw_read_waiting:(7,2),128,32;__rw_write_waiting:(7,2),160,32;__rw_kind:(0,1),192,32;__rw_pshared:(0,1),224,32;;pthread_rwlock_t:t(7,18)=(7,17)pthread_rwlockattr_t:t(7,19)=(7,20)=s8__lockkind:(0,1),0,32;__pshared:(0,1),32,32;;pthread_spinlock_t:t(7,21)=(0,1)pthread_barrier_t:t(7,22)=(7,23)=s20__ba_lock:(7,1),0,64;__ba_required:(0,1),64,32;__ba_present:(0,1),96,32;__ba_waiting:(7,2),128,32;;pthread_barrierattr_t:t(7,24)=(7,25)=s4__pshared:(0,1),0,32;;pthread_t:t(7,26)=(0,5)wchar_t:t(9,1)=(0,3)wint_t:t(9,2)=(0,4)../include/wchar.h../wcsmbs/wchar.h__mbstate_t:t(11,1)=(11,2)=s8__count:(0,1),0,32;__value:(11,3)=u4__wch:(9,2),0,32;__wchb:(11,4)=ar(3,33);0;3;(0,2),0,32;;,32,32;;_G_fpos_t:t(2,1)=(2,2)=s12__pos:(3,23),0,32;__state:(11,1),32,64;;_G_fpos64_t:t(2,3)=(2,4)=s16__pos:(3,58),0,64;__state:(11,1),64,64;;../include/gconv.h../iconv/gconv.h :T(13,1)=e__GCONV_OK:0,__GCONV_NOCONV:1,__GCONV_NODB:2,__GCONV_NOMEM:3,__GCONV_EMPTY_INPUT:4,__GCONV_FULL_OUTPUT:5,__GCONV_ILLEGAL_INPUT:6,__GCONV_INCOMPLETE_INPUT:7,__GCONV_ILLEGAL_DESCRIPTOR:8,__GCONV_INTERNAL_ERROR:9,; :T(13,2)=e__GCONV_IS_LAST:1,__GCONV_IGNORE_ERRORS:2,;__gconv_fct:t(13,3)=(13,4)=*(13,5)=f(0,1)__gconv_init_fct:t(13,6)=(13,7)=*(13,8)=f(0,1)__gconv_end_fct:t(13,9)=(13,10)=*(13,11)=f(0,20)__gconv_trans_fct:t(13,12)=(13,13)=*(13,14)=f(0,1)__gconv_trans_context_fct:t(13,15)=(13,16)=*(13,17)=f(0,1)__gconv_trans_query_fct:t(13,18)=(13,19)=*(13,20)=f(0,1)__gconv_trans_init_fct:t(13,21)=(13,22)=*(13,23)=f(0,1)__gconv_trans_end_fct:t(13,24)=(13,25)=*(13,26)=f(0,20)__gconv_trans_data:T(13,27)=s20__trans_fct:(13,12),0,32;__trans_context_fct:(13,15),32,32;__trans_end_fct:(13,24),64,32;__data:(0,19),96,32;__next:(13,28)=*(13,27),128,32;;__gconv_step:T(13,29)=s56__shlib_handle:(13,30)=*(13,31)=xs__gconv_loaded_object:,0,32;__modname:(13,32)=*(0,2),32,32;__counter:(0,1),64,32;__from_name:(13,32),96,32;__to_name:(13,32),128,32;__fct:(13,3),160,32;__init_fct:(13,6),192,32;__end_fct:(13,9),224,32;__min_needed_from:(0,1),256,32;__max_needed_from:(0,1),288,32;__min_needed_to:(0,1),320,32;__max_needed_to:(0,1),352,32;__stateful:(0,1),384,32;__data:(0,19),416,32;;__gconv_step_data:T(13,33)=s36__outbuf:(13,34)=*(0,11),0,32;__outbufend:(13,34),32,32;__flags:(0,1),64,32;__invocation_counter:(0,1),96,32;__internal_use:(0,1),128,32;__statep:(13,35)=*(11,1),160,32;__state:(11,1),192,64;__trans:(13,28),256,32;;__gconv_info:T(13,36)=s8__nsteps:(6,1),0,32;__steps:(13,37)=*(13,29),32,32;__data:(13,38)=ar(3,33);0;-1;(13,33),64,0;;__gconv_t:t(13,39)=(13,40)=*(13,36)_G_iconv_t:t(2,5)=(2,6)=u44__cd:(13,36),0,64;__combined:(2,7)=s44__cd:(13,36),0,64;__data:(13,33),64,288;;,0,352;;_G_int16_t:t(2,8)=(0,8)_G_int32_t:t(2,9)=(0,1)_G_uint16_t:t(2,10)=(0,9)_G_uint32_t:t(2,11)=(0,4)_IO_stdin_used:G(0,1)GCC: (GNU) 2.96 20000731 (experimental)GCC: (GNU) 2.96 20000731 (experimental)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-81)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-81)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-81)GCC: (GNU) 2.96 20000731 (experimental)01.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.got.rel.bss.rel.plt.init.plt.text.fini.rodata.data.eh_frame.ctors.dtors.got.dynamic.sbss.bss.stab.stabstr.comment.noteô€ô# 1((L7 ttŕ?T‚TĆG˙˙˙oƒTţ˙˙o8ƒ8@c xƒxl €ƒ€u ƒH ~؃Ř/„„ ‰°„°Ŕ‡Ŕ•ŕ‡ŕ ř˜řŁ™ ­ ™ ´™ ť™ 4ŔP™P  Éđ™đ Ďđ™đ Ôđ  Ú@ăP*ěm+xĺ+ň°1P; 7“ô€(tT‚ƒ8ƒxƒ€ƒ ƒ +؃ „ °„ +Ŕ‡ŕ‡ř˜™ ™™™P™đ™đ™ń˙ Ԅ +ń˙"ń˙ ŕ„ +-™1™?™Kŕ„ +a™t@… +ř™ˆP… +”€… +Ÿ™­ ™"ń˙ €‡ +ť€‡ +Ń™”°‡ +Ÿ™Ţ™ë™ń˙ Ŕ‡ +ůń˙ … +P™ „",3(„-F8„łXü˜e؃ kH„Ź"Žđ™ ô™˛°„ +šđ™ń˙Ő…â +ĘX„ŕçř˜ ňŔ‡řh„] +x„‘"&ˆ„6đ™ń˙=™Sšń˙Xä‡gř˜t˜„@„ initfini.cgcc2_compiled.init.ccrtstuff.cp.0__DTOR_LIST__completed.1__do_global_dtors_aux__EH_FRAME_BEGIN__fini_dummyobject.2frame_dummyinit_dummyforce_to_data__CTOR_LIST____do_global_ctors_aux__CTOR_END____DTOR_END____FRAME_END__bintoc.c_DYNAMIC__register_frame_info@@GLIBC_2.0_fp_hwfprintf@@GLIBC_2.0fflush@@GLIBC_2.0__dso_handle_init__deregister_frame_info@@GLIBC_2.0stdout@@GLIBC_2.0stderr@@GLIBC_2.0_start__bss_startmain__libc_start_main@@GLIBC_2.0data_start_finifclose@@GLIBC_2.1__cxa_finalize@@GLIBC_2.1.3exit@@GLIBC_2.0_edata_GLOBAL_OFFSET_TABLE__end_IO_stdin_used__data_startread@@GLIBC_2.0__gmon_start__ \ No newline at end of file
tools/bintoc Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: tools/fixup.pl =================================================================== --- tools/fixup.pl (nonexistent) +++ tools/fixup.pl (revision 1765) @@ -0,0 +1,91 @@ +#!/usr/bin/perl + +# +# Nasty piece of work, designed to translated linux.bin binary image +# in to several different formats. +# +# Copyright (C) 1998 Kenneth Albanowski , +# The Silver Hammer Group, Ltd. +# + +@CRC = ( + 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7, + 0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF, + 0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6, + 0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE, + 0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485, + 0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D, + 0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4, + 0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC, + 0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823, + 0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B, + 0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12, + 0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A, + 0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41, + 0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49, + 0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70, + 0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78, + 0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F, + 0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067, + 0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E, + 0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256, + 0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D, + 0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, + 0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C, + 0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634, + 0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB, + 0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3, + 0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A, + 0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92, + 0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9, + 0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1, + 0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8, + 0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0 +); + +sub CrcBlock { + my($data,$crc) = @_; + my($i); + printf "Crc of %d bytes\n", length($data); + for ($i=0;$i>8) ^ +# ord(substr($data,$i,1)), +#$CRC[ ($crc>>8) ^ +# ord(substr($data,$i,1)) & +#0xff]; +# + + $crc = ($crc << 8) ^ $CRC[ + ((($crc>>8) & 0xff) ^ + ord(substr($data,$i,1))) & + 0xff + ]; + $crc &= 0xffff; + } + return $crc & 0xffff; +} + +open(T,"); +close(T); + +$realLength = length($image); +$image .= "\0" x (0x100000 - $realLength); + +$posOfCardLength = 108; +$posOfChecksum = 112; +#$crc = CrcBlock(substr($image, 0, $posOfChecksum), 0); +#$crc = CrcBlock(substr($image, $posOfChecksum+2), $crc); + +#substr($image, $posOfCardLength, 4) = pack("N", length($image)); +#substr($image, $posOfChecksum, 2) = pack("n", $crc); + +open(O,">linux.trg"); +print O substr($image, 0x10000, (($realLength - 0x10000) + 0xffff) & ~0xffff); +close(O); + +open(O, ">linux.rom"); +print O $image; +close(O); Index: tools/stob =================================================================== --- tools/stob (nonexistent) +++ tools/stob (revision 1765) @@ -0,0 +1,59 @@ +#!/usr/bin/perl + +sub S0 { + for ($i=0; $i<$length - 1; $i++) { + $ch = hex (substr($data, $i*2, 2)); + printf STDERR "%c", $ch; + } + printf STDERR "\n"; +} + +sub S1 { + printf "0000%s%02X%s\n", + substr($data, 0, 4), $length - 3, substr($data, 4); +} + +sub S2 { + printf "00%s%02X%s\n", + substr($data, 0, 6), $length - 4, substr($data, 6); +} + +sub S3 { + printf "%s%02X%s\n", + substr($data, 0, 8), $length - 5, substr($data, 8); +} + +sub S5 { +} + +sub S7 { + if ($start_slag) { + printf "%s00\n", substr($data, 0, 8); + } +} + +sub S8 { + if ($start_slag) { + printf "00%s00\n", substr($data, 0, 6); + } +} + +sub S9 { + if ($start_slag) { + printf "0000%s00\n", substr($data, 0, 4); + } +} + +# +# MAIN +# +while(<>) { + if ( /^S([0-357-9])([0-9A-F]{2})/ ) { + $record_type = $1; + $length = hex($2); + $data = substr($_, 4, ($length-1) * 2); + $checksum = hex(substr($_, ($length - 1) * 2 + 4, 2)); + $sub = "S$record_type"; + &$sub; + } +} Index: tools/bootlogo.pl =================================================================== --- tools/bootlogo.pl (nonexistent) +++ tools/bootlogo.pl (revision 1765) @@ -0,0 +1,10 @@ + +$_ = join("", <>); + +s/(0x[0-9a-f]{2})/sprintf("0x%.2x",ord(pack("b8",unpack("B8",chr(hex($1))))))/gei; + +s/^ / .byte /gm; +s/[,};]+$//gm; +s/^static.*//gm; + +print $_; Index: defconfig =================================================================== --- defconfig (nonexistent) +++ defconfig (revision 1765) @@ -0,0 +1,150 @@ +# +# Automatically generated make config: don't edit +# +CONFIG_UCLINUX=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y + +# +# Platform dependant setup +# +# CONFIG_M68000 is not set +# CONFIG_M68EN302 is not set +# CONFIG_M68328 is not set +# CONFIG_M68EZ328=y +# CONFIG_M68332 is not set +# CONFIG_M68360 is not set +# CONFIG_M5206 is not set +# CONFIG_M5206e is not set +# CONFIG_M5307 is not set +# CONFIG_M5204 is not set +CONFIG_OR32=y + +# +# Platform +# +# CONFIG_M68EZ328ADS is not set +# CONFIG_ALMA_ANS is not set +# CONFIG_UCSIMM=y +# CONFIG_PILOT is not set +CONFIG_GEN=y +# CONFIG_RAMKERNEL is not set +CONFIG_ROMKERNEL=y + +# +# General setup +# +# CONFIG_PCI is not set +CONFIG_NET=y +# CONFIG_SYSVIPC is not set +# CONFIG_REDUCED_MEMORY is not set +# CONFIG_BINFMT_FLAT is not set +# CONFIG_KERNEL_ELF is not set +CONFIG_BINFMT_ELF=y +# CONFIG_CONSOLE is not set +# CONFIG_SERIAL_ECHO is not set +# CONFIG_FRAMEBUFFER=y + +# +# Floppy, IDE, and other block devices +# +CONFIG_BLK_DEV_BLKMEM=y +# CONFIG_BLK_DEV_IDE is not set + +# +# Additional Block/FLASH Devices +# +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_MD is not set +CONFIG_BLK_DEV_RAM=y +# CONFIG_RD_RELEASE_BLOCKS is not set +CONFIG_BLK_DEV_INITRD=y +# CONFIG_DEV_FLASH is not set + +# +# Networking options +# +# CONFIG_FIREWALL is not set +# CONFIG_NET_ALIAS is not set +CONFIG_INET=y +# CONFIG_IP_FORWARD is not set +# CONFIG_IP_MULTICAST is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_IP_ACCT is not set +# CONFIG_IP_ROUTER is not set +# CONFIG_NET_IPIP is not set + +# +# (it is safe to leave these untouched) +# +# CONFIG_INET_PCTCP is not set +# CONFIG_INET_RARP is not set +# CONFIG_NO_PATH_MTU_DISCOVERY is not set +# CONFIG_IP_NOSR is not set +# CONFIG_SKB_LARGE is not set + +# +# +# +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_AX25 is not set +# CONFIG_BRIDGE is not set +# CONFIG_NETLINK is not set + +# +# Network device support +# +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_SLIP is not set +# CONFIG_SLIP_COMPRESSED is not set +# CONFIG_SLIP_SMART is not set +# CONFIG_SLIP_MODE_SLIP6 is not set +# CONFIG_PPP is not set + +# +# CCP compressors for PPP are only built as modules. +# +# CONFIG_EQUALIZER is not set +# CONFIG_UCCS8900 is not set +# CONFIG_UCCS8900_HW_SWAP is not set +# CONFIG_SMC9194 is not set +# CONFIG_NE2000 is not set +CONFIG_OETH=y + +# +# Filesystems +# +# CONFIG_QUOTA is not set +# CONFIG_MINIX_FS is not set +# CONFIG_EXT_FS is not set +CONFIG_EXT2_FS=y +# CONFIG_XIA_FS is not set +# CONFIG_NLS is not set +CONFIG_PROC_FS=y +CONFIG_NFS_FS=y +# CONFIG_ROOT_NFS is not set +# CONFIG_SMB_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AFFS_FS is not set +CONFIG_ROMFS_FS=y +# CONFIG_JFFS_FS is not set +# CONFIG_UFS_FS is not set + +# +# Character devices +# +CONFIG_SERIAL=y +# CONFIG_WATCHDOG is not set +# CONFIG_KEYBOARD is not set + +# +# Kernel hacking +# +# CONFIG_PROFILE is not set Index: config.in =================================================================== --- config.in (nonexistent) +++ config.in (revision 1765) @@ -0,0 +1,162 @@ +# +# For a description of the syntax of this configuration file, +# see the Configure script. +# +mainmenu_name 'uClinux/OR1K (w/o MMU) Kernel Configuration' + +define_bool CONFIG_UCLINUX y + +mainmenu_option next_comment +comment 'Code maturity level options' +bool 'Prompt for development and/or incomplete code/drivers' CONFIG_EXPERIMENTAL +endmenu + +# mainmenu_option next_comment +# comment 'Loadable module support' +# bool 'Enable loadable module support' CONFIG_MODULES +# if [ "$CONFIG_MODULES" = "y" ]; then +# bool 'Set version information on all symbols for modules' CONFIG_MODVERSIONS +# bool 'Kernel daemon support (e.g. autoload of modules)' CONFIG_KERNELD +# fi +# endmenu + + +mainmenu_option next_comment +comment 'Platform dependant setup' + +choice 'CPU' \ + "OR32 CONFIG_OR32" OR32 + +comment 'Platform' + +if [ "$CONFIG_OR32" = "y" ]; then + bool 'General OR32 board support' CONFIG_GEN +fi + +choice 'Kernel executes from' \ + "RAM CONFIG_RAMKERNEL \ + ROM CONFIG_ROMKERNEL" RAM + +endmenu + +mainmenu_option next_comment +comment 'General setup' + +bool 'PCI bios support' CONFIG_PCI +if [ "$CONFIG_PCI" = "y" ]; then + bool ' PCI device list support' CONFIG_PCIDEVLIST +fi + +bool 'Networking support' CONFIG_NET +bool 'System V IPC' CONFIG_SYSVIPC +bool 'Reduced memory footprint' CONFIG_REDUCED_MEMORY +tristate 'Kernel support for flat binaries' CONFIG_BINFMT_FLAT +# tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT +tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF +bool 'Compile kernel as ELF - if your GCC is ELF-GCC' CONFIG_KERNEL_ELF +bool 'Console support' CONFIG_CONSOLE +if [ "$CONFIG_CONSOLE" = "y" ]; then + bool 'Enable serial echo' CONFIG_SERIAL_ECHO + bool 'Frame buffer' CONFIG_FRAMEBUFFER +fi + +endmenu + +# +# Block device driver configuration +# +mainmenu_option next_comment +comment 'Floppy, IDE, and other block devices' + +tristate 'ROM disk memory block device' CONFIG_BLK_DEV_BLKMEM +# tristate 'Normal floppy disk support' CONFIG_BLK_DEV_FD +bool 'IDE harddisk support' CONFIG_BLK_DEV_IDE +if [ "$CONFIG_BLK_DEV_IDE" = "y" ]; then + bool ' Include IDE/ATAPI CDROM support' CONFIG_BLK_DEV_IDECD + bool ' Include IDE/ATAPI TAPE support' CONFIG_BLK_DEV_IDETAPE + bool ' Include IDE/ATAPI FLOPPY support (new)' CONFIG_BLK_DEV_IDEFLOPPY +fi + +comment 'Additional Block/FLASH Devices' + +tristate 'Loopback device support' CONFIG_BLK_DEV_LOOP +bool 'Multiple devices driver support' CONFIG_BLK_DEV_MD +if [ "$CONFIG_BLK_DEV_MD" = "y" ]; then + tristate ' Linear (append) mode' CONFIG_MD_LINEAR + tristate ' RAID-0 (striping) mode' CONFIG_MD_STRIPED +fi +tristate 'RAM disk support' CONFIG_BLK_DEV_RAM +if [ "$CONFIG_BLK_DEV_RAM" = "y" ]; then + bool ' Release empty RAM disk blocks' CONFIG_RD_RELEASE_BLOCKS + bool ' Initial RAM disk (initrd) support' CONFIG_BLK_DEV_INITRD +fi +tristate 'FLASH device support' CONFIG_DEV_FLASH +if [ "$CONFIG_DEV_FLASH" = "y" ]; then + bool ' FLASH Block device' CONFIG_BLK_DEV_FLASH + bool ' FLASH Character device' CONFIG_CHR_DEV_FLASH +fi +endmenu + +if [ "$CONFIG_NET" = "y" ]; then + source net/Config.in +fi + +if [ "$CONFIG_NET" = "y" ]; then + +mainmenu_option next_comment +comment 'Network device support' + +bool 'Network device support' CONFIG_NETDEVICES +if [ "$CONFIG_NETDEVICES" = "y" ]; then +# +# Network device configuration +# +tristate 'Dummy net driver support' CONFIG_DUMMY +tristate 'SLIP (serial line) support' CONFIG_SLIP +if [ "$CONFIG_SLIP" != "n" ]; then + bool ' CSLIP compressed headers' CONFIG_SLIP_COMPRESSED + bool ' Keepalive and linefill' CONFIG_SLIP_SMART + bool ' Six bit SLIP encapsulation' CONFIG_SLIP_MODE_SLIP6 +fi +tristate 'PPP (point-to-point) support' CONFIG_PPP +if [ ! "$CONFIG_PPP" = "n" ]; then + comment 'CCP compressors for PPP are only built as modules.' +fi +tristate 'EQL (serial line load balancing) support' CONFIG_EQUALIZER +bool 'Open ethernet core' CONFIG_OETH + +fi +endmenu +fi + +source fs/Config.in + +mainmenu_option next_comment +comment 'Character devices' + +bool 'Serial support' CONFIG_SERIAL +# bool 'Support for user serial device modules' CONFIG_USERIAL +bool 'Watchdog Timer Support' CONFIG_WATCHDOG +# if [ "$CONFIG_WATCHDOG" != "n" ]; then +# bool ' Disable watchdog shutdown on close' CONFIG_WATCHDOG_NOWAYOUT +# bool ' Software Watchdog' CONFIG_SOFT_WATCHDOG +# fi +bool 'PS/2 Keyboard' CONFIG_KEYBOARD +endmenu + +# mainmenu_option next_comment +# comment 'Sound support' +# +# tristate 'Sound support' CONFIG_SOUND +# endmenu + +mainmenu_option next_comment +comment 'Kernel hacking' + +# bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC +bool 'Kernel profiling support' CONFIG_PROFILE +if [ "$CONFIG_PROFILE" = "y" ]; then + int ' Profile shift count' CONFIG_PROFILE_SHIFT 2 +fi +endmenu + Index: lib/checksum.c =================================================================== --- lib/checksum.c (nonexistent) +++ lib/checksum.c (revision 1765) @@ -0,0 +1,157 @@ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * IP/TCP/UDP checksumming routines + * + * Authors: Jorge Cwik, + * Arnt Gulbrandsen, + * Tom May, + * Andreas Schwab, + * Lots of code moved from tcp.c and ip.c; see those files + * for more names. + * + * 03/02/96 Jes Sorensen, Andreas Schwab, Roman Hodek: + * Fixed some nasty bugs, causing some horrible crashes. + * A: At some points, the sum (%0) was used as + * length-counter instead of the length counter + * (%1). Thanks to Roman Hodek for pointing this out. + * B: GCC seems to mess up if one uses too many + * data-registers to hold input values and one tries to + * specify d0 and d1 as scratch registers. Letting gcc choose these + * registers itself solves the problem. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +/* Revised by Kenneth Albanowski for m68knommu. Basic problem: unaligned access kills, so most + of the assembly has to go. */ + +#include + +extern unsigned short _ip_fast_csum(unsigned char *buf); + +static inline unsigned short from32to16(unsigned long x) +{ + /* add up 16-bit and 16-bit for 16+c bit */ + x = (x & 0xffff) + (x >> 16); + /* add up carry.. */ + x = (x & 0xffff) + (x >> 16); + return x; +} + +static unsigned long do_csum(const unsigned char * buff, int len) +{ + int odd, count; + unsigned long result = 0; + + if (len <= 0) + goto out; + odd = 1 & (unsigned long) buff; + if (odd) { + result = *buff; + len--; + buff++; + } + count = len >> 1; /* nr of 16-bit words.. */ + if (count) { + if (2 & (unsigned long) buff) { + result += *(unsigned short *) buff; + count--; + len -= 2; + buff += 2; + } + count >>= 1; /* nr of 32-bit words.. */ + if (count) { + unsigned long carry = 0; + do { + unsigned long w = *(unsigned long *) buff; + count--; + buff += 4; + result += carry; + result += w; + carry = (w > result); + } while (count); + result += carry; + result = (result & 0xffff) + (result >> 16); + } + if (len & 2) { + result += *(unsigned short *) buff; + buff += 2; + } + } + if (len & 1) + result += (*buff << 8); + result = from32to16(result); + if (odd) + result = ((result >> 8) & 0xff) | ((result & 0xff) << 8); +out: + return result; +} + +/* + * This is a version of ip_compute_csum() optimized for IP headers, + * which always checksum on 4 octet boundaries. + */ +unsigned short ip_fast_csum(unsigned char * iph, unsigned int ihl) +{ + return ~do_csum(iph,ihl*4); +} + +/* + * computes the checksum of a memory block at buff, length len, + * and adds in "sum" (32-bit) + * + * returns a 32-bit number suitable for feeding into itself + * or csum_tcpudp_magic + * + * this function must be called with even lengths, except + * for the last fragment, which may be odd + * + * it's best to have buff aligned on a 32-bit boundary + */ +unsigned int csum_partial(const unsigned char * buff, int len, unsigned int sum) +{ + unsigned int result = do_csum(buff, len); + + /* add in old sum, and carry.. */ + result += sum; + /* 16+c bits -> 16 bits */ + result = (result & 0xffff) + (result >> 16); + return result; +} + +/* + * this routine is used for miscellaneous IP-like checksums, mainly + * in icmp.c + */ +unsigned short ip_compute_csum(const unsigned char * buff, int len) +{ + return ~do_csum(buff,len); +} + +/* + * copy from fs while checksumming, otherwise like csum_partial + */ + +unsigned int +csum_partial_copy_fromuser(const char *src, char *dst, int len, int sum) +{ + memcpy(dst, src, len); + return csum_partial(dst, len, sum); +} + +/* + * copy from ds while checksumming, otherwise like csum_partial + */ + +unsigned int +csum_partial_copy(const char *src, char *dst, int len, int sum) +{ + memcpy(dst, src, len); + return csum_partial(dst, len, sum); +} Index: lib/memcmp.c =================================================================== --- lib/memcmp.c (nonexistent) +++ lib/memcmp.c (revision 1765) @@ -0,0 +1,11 @@ +#include + +int memcmp(const void * cs,const void * ct,size_t count) +{ + const unsigned char *su1, *su2; + + for( su1 = cs, su2 = ct; 0 < count; ++su1, ++su2, count--) + if (*su1 != *su2) + return((*su1 < *su2) ? -1 : +1); + return(0); +} Index: lib/bzero.c =================================================================== --- lib/bzero.c (nonexistent) +++ lib/bzero.c (revision 1765) @@ -0,0 +1,8 @@ +#include +#include + +/* FIXME: put this over in libgcc.a on the compiler side */ + +void bzero(void * s, size_t count) { + memset(s, '\0', count); +} Index: lib/Makefile =================================================================== --- lib/Makefile (nonexistent) +++ lib/Makefile (revision 1765) @@ -0,0 +1,11 @@ +# +# Makefile for or32-specific library files.. +# + +.S.o: + $(CC) $(AFLAGS) -D__ASSEMBLY__ -traditional -c $< -o $@ + +L_TARGET = lib.a +L_OBJS = bzero.o checksum.o memcmp.o + +include $(TOPDIR)/Rules.make Index: Boards.mk =================================================================== --- Boards.mk (nonexistent) +++ Boards.mk (revision 1765) @@ -0,0 +1,9 @@ +# Put definitions for platforms and boards in here. + +ifdef CONFIG_OR32 +PLATFORM := or32 +ifdef CONFIG_GEN +BOARD := gen +endif +endif + Index: Makefile =================================================================== --- Makefile (nonexistent) +++ Makefile (revision 1765) @@ -0,0 +1,36 @@ +# +# or32/Makefile +# +# This file is included by the global makefile so that you can add your own +# architecture-specific flags and dependencies. Remember to do have actions +# for "archclean" and "archdep" for cleaning up and making dependencies for +# this architecture +# +# This file is subject to the terms and conditions of the GNU General Public +# License. See the file "COPYING" in the main directory of this archive +# for more details. +# +# Based on arch/m68k/Makefile: +# + +# test for cross compiling +COMPILE_ARCH = $(shell uname -m) + +# Find out which board we are compiling for +include arch/$(ARCH)/Boards.mk + +HEAD := arch/or32/kernel/head.o + +# Set up the memory model. RAM or ROM. +ifdef CONFIG_RAMKERNEL +MODEL = ram +else +MODEL = rom +endif + +# get the compiler, flags and targets from the platform +# include arch/$(ARCH)/platform/$(PLATFORM)/Rules.make +include arch/$(ARCH)/Rules.make + +archdep: +

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.