summaryrefslogtreecommitdiffstats
path: root/include/asm-sparc64
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-sparc64')
-rw-r--r--include/asm-sparc64/a.out.h4
-rw-r--r--include/asm-sparc64/asm_offsets.h188
-rw-r--r--include/asm-sparc64/bitops.h27
-rw-r--r--include/asm-sparc64/checksum.h12
-rw-r--r--include/asm-sparc64/current.h6
-rw-r--r--include/asm-sparc64/elf.h26
-rw-r--r--include/asm-sparc64/fs_mount.h44
-rw-r--r--include/asm-sparc64/head.h47
-rw-r--r--include/asm-sparc64/linux_logo.h1042
-rw-r--r--include/asm-sparc64/mmu_context.h12
-rw-r--r--include/asm-sparc64/pgtable.h109
-rw-r--r--include/asm-sparc64/processor.h24
-rw-r--r--include/asm-sparc64/spitfire.h10
-rw-r--r--include/asm-sparc64/string.h8
-rw-r--r--include/asm-sparc64/system.h40
-rw-r--r--include/asm-sparc64/termbits.h6
16 files changed, 336 insertions, 1269 deletions
diff --git a/include/asm-sparc64/a.out.h b/include/asm-sparc64/a.out.h
index 9b17dc36d..1a16d0a74 100644
--- a/include/asm-sparc64/a.out.h
+++ b/include/asm-sparc64/a.out.h
@@ -1,4 +1,4 @@
-/* $Id: a.out.h,v 1.3 1997/04/07 18:57:14 jj Exp $ */
+/* $Id: a.out.h,v 1.4 1997/05/04 07:21:19 davem Exp $ */
#ifndef __SPARC64_A_OUT_H__
#define __SPARC64_A_OUT_H__
@@ -95,7 +95,7 @@ struct relocation_info /* used when header.a_machtype == M_SPARC */
#ifdef __KERNEL__
-#define STACK_TOP TASK_SIZE
+#define STACK_TOP (current->tss.flags & SPARC_FLAG_32BIT ? 0xf0000000 : TASK_SIZE)
#endif
diff --git a/include/asm-sparc64/asm_offsets.h b/include/asm-sparc64/asm_offsets.h
index a232d9e80..ac7449777 100644
--- a/include/asm-sparc64/asm_offsets.h
+++ b/include/asm-sparc64/asm_offsets.h
@@ -30,123 +30,125 @@
#define ASIZ_task_next_run 0x00000008
#define AOFF_task_prev_run 0x000000a0
#define ASIZ_task_prev_run 0x00000008
-#define AOFF_task_saved_kernel_stack 0x000000a8
-#define ASIZ_task_saved_kernel_stack 0x00000008
-#define AOFF_task_kernel_stack_page 0x000000b0
-#define ASIZ_task_kernel_stack_page 0x00000008
-#define AOFF_task_exit_code 0x000000b8
+#define AOFF_task_exit_code 0x000000a8
#define ASIZ_task_exit_code 0x00000004
-#define AOFF_task_exit_signal 0x000000bc
+#define AOFF_task_exit_signal 0x000000ac
#define ASIZ_task_exit_signal 0x00000004
-#define AOFF_task_personality 0x000000c0
+#define AOFF_task_personality 0x000000b0
#define ASIZ_task_personality 0x00000008
-#define AOFF_task_pid 0x000000cc
+#define AOFF_task_pid 0x000000bc
#define ASIZ_task_pid 0x00000004
-#define AOFF_task_pgrp 0x000000d0
+#define AOFF_task_pgrp 0x000000c0
#define ASIZ_task_pgrp 0x00000004
-#define AOFF_task_tty_old_pgrp 0x000000d4
+#define AOFF_task_tty_old_pgrp 0x000000c4
#define ASIZ_task_tty_old_pgrp 0x00000004
-#define AOFF_task_session 0x000000d8
+#define AOFF_task_session 0x000000c8
#define ASIZ_task_session 0x00000004
-#define AOFF_task_leader 0x000000dc
+#define AOFF_task_leader 0x000000cc
#define ASIZ_task_leader 0x00000004
-#define AOFF_task_ngroups 0x000000e0
+#define AOFF_task_ngroups 0x000000d0
#define ASIZ_task_ngroups 0x00000004
-#define AOFF_task_groups 0x000000e4
+#define AOFF_task_groups 0x000000d4
#define ASIZ_task_groups 0x00000080
-#define AOFF_task_p_opptr 0x00000168
+#define AOFF_task_p_opptr 0x00000158
#define ASIZ_task_p_opptr 0x00000008
-#define AOFF_task_p_pptr 0x00000170
+#define AOFF_task_p_pptr 0x00000160
#define ASIZ_task_p_pptr 0x00000008
-#define AOFF_task_p_cptr 0x00000178
+#define AOFF_task_p_cptr 0x00000168
#define ASIZ_task_p_cptr 0x00000008
-#define AOFF_task_p_ysptr 0x00000180
+#define AOFF_task_p_ysptr 0x00000170
#define ASIZ_task_p_ysptr 0x00000008
-#define AOFF_task_p_osptr 0x00000188
+#define AOFF_task_p_osptr 0x00000178
#define ASIZ_task_p_osptr 0x00000008
-#define AOFF_task_wait_chldexit 0x00000190
+#define AOFF_task_pidhash_next 0x00000180
+#define ASIZ_task_pidhash_next 0x00000008
+#define AOFF_task_pidhash_pprev 0x00000188
+#define ASIZ_task_pidhash_pprev 0x00000008
+#define AOFF_task_tarray_ptr 0x00000190
+#define ASIZ_task_tarray_ptr 0x00000008
+#define AOFF_task_wait_chldexit 0x00000198
#define ASIZ_task_wait_chldexit 0x00000008
-#define AOFF_task_uid 0x00000198
+#define AOFF_task_uid 0x000001a0
#define ASIZ_task_uid 0x00000002
-#define AOFF_task_euid 0x0000019a
+#define AOFF_task_euid 0x000001a2
#define ASIZ_task_euid 0x00000002
-#define AOFF_task_suid 0x0000019c
+#define AOFF_task_suid 0x000001a4
#define ASIZ_task_suid 0x00000002
-#define AOFF_task_fsuid 0x0000019e
+#define AOFF_task_fsuid 0x000001a6
#define ASIZ_task_fsuid 0x00000002
-#define AOFF_task_gid 0x000001a0
+#define AOFF_task_gid 0x000001a8
#define ASIZ_task_gid 0x00000002
-#define AOFF_task_egid 0x000001a2
+#define AOFF_task_egid 0x000001aa
#define ASIZ_task_egid 0x00000002
-#define AOFF_task_sgid 0x000001a4
+#define AOFF_task_sgid 0x000001ac
#define ASIZ_task_sgid 0x00000002
-#define AOFF_task_fsgid 0x000001a6
+#define AOFF_task_fsgid 0x000001ae
#define ASIZ_task_fsgid 0x00000002
-#define AOFF_task_timeout 0x000001a8
+#define AOFF_task_timeout 0x000001b0
#define ASIZ_task_timeout 0x00000008
-#define AOFF_task_policy 0x000001b0
+#define AOFF_task_policy 0x000001b8
#define ASIZ_task_policy 0x00000008
-#define AOFF_task_rt_priority 0x000001b8
+#define AOFF_task_rt_priority 0x000001c0
#define ASIZ_task_rt_priority 0x00000008
-#define AOFF_task_it_real_value 0x000001c0
+#define AOFF_task_it_real_value 0x000001c8
#define ASIZ_task_it_real_value 0x00000008
-#define AOFF_task_it_prof_value 0x000001c8
+#define AOFF_task_it_prof_value 0x000001d0
#define ASIZ_task_it_prof_value 0x00000008
-#define AOFF_task_it_virt_value 0x000001d0
+#define AOFF_task_it_virt_value 0x000001d8
#define ASIZ_task_it_virt_value 0x00000008
-#define AOFF_task_it_real_incr 0x000001d8
+#define AOFF_task_it_real_incr 0x000001e0
#define ASIZ_task_it_real_incr 0x00000008
-#define AOFF_task_it_prof_incr 0x000001e0
+#define AOFF_task_it_prof_incr 0x000001e8
#define ASIZ_task_it_prof_incr 0x00000008
-#define AOFF_task_it_virt_incr 0x000001e8
+#define AOFF_task_it_virt_incr 0x000001f0
#define ASIZ_task_it_virt_incr 0x00000008
-#define AOFF_task_real_timer 0x000001f0
+#define AOFF_task_real_timer 0x000001f8
#define ASIZ_task_real_timer 0x00000028
-#define AOFF_task_utime 0x00000218
+#define AOFF_task_utime 0x00000220
#define ASIZ_task_utime 0x00000008
-#define AOFF_task_stime 0x00000220
+#define AOFF_task_stime 0x00000228
#define ASIZ_task_stime 0x00000008
-#define AOFF_task_cutime 0x00000228
+#define AOFF_task_cutime 0x00000230
#define ASIZ_task_cutime 0x00000008
-#define AOFF_task_cstime 0x00000230
+#define AOFF_task_cstime 0x00000238
#define ASIZ_task_cstime 0x00000008
-#define AOFF_task_start_time 0x00000238
+#define AOFF_task_start_time 0x00000240
#define ASIZ_task_start_time 0x00000008
-#define AOFF_task_min_flt 0x00000240
+#define AOFF_task_min_flt 0x00000248
#define ASIZ_task_min_flt 0x00000008
-#define AOFF_task_maj_flt 0x00000248
+#define AOFF_task_maj_flt 0x00000250
#define ASIZ_task_maj_flt 0x00000008
-#define AOFF_task_nswap 0x00000250
+#define AOFF_task_nswap 0x00000258
#define ASIZ_task_nswap 0x00000008
-#define AOFF_task_cmin_flt 0x00000258
+#define AOFF_task_cmin_flt 0x00000260
#define ASIZ_task_cmin_flt 0x00000008
-#define AOFF_task_cmaj_flt 0x00000260
+#define AOFF_task_cmaj_flt 0x00000268
#define ASIZ_task_cmaj_flt 0x00000008
-#define AOFF_task_cnswap 0x00000268
+#define AOFF_task_cnswap 0x00000270
#define ASIZ_task_cnswap 0x00000008
-#define AOFF_task_swap_address 0x00000278
+#define AOFF_task_swap_address 0x00000280
#define ASIZ_task_swap_address 0x00000008
-#define AOFF_task_old_maj_flt 0x00000280
+#define AOFF_task_old_maj_flt 0x00000288
#define ASIZ_task_old_maj_flt 0x00000008
-#define AOFF_task_dec_flt 0x00000288
+#define AOFF_task_dec_flt 0x00000290
#define ASIZ_task_dec_flt 0x00000008
-#define AOFF_task_swap_cnt 0x00000290
+#define AOFF_task_swap_cnt 0x00000298
#define ASIZ_task_swap_cnt 0x00000008
-#define AOFF_task_rlim 0x00000298
+#define AOFF_task_rlim 0x000002a0
#define ASIZ_task_rlim 0x000000a0
-#define AOFF_task_used_math 0x00000338
+#define AOFF_task_used_math 0x00000340
#define ASIZ_task_used_math 0x00000002
-#define AOFF_task_comm 0x0000033a
+#define AOFF_task_comm 0x00000342
#define ASIZ_task_comm 0x00000010
-#define AOFF_task_link_count 0x0000034c
+#define AOFF_task_link_count 0x00000354
#define ASIZ_task_link_count 0x00000004
-#define AOFF_task_tty 0x00000350
+#define AOFF_task_tty 0x00000358
#define ASIZ_task_tty 0x00000008
-#define AOFF_task_semundo 0x00000358
+#define AOFF_task_semundo 0x00000360
#define ASIZ_task_semundo 0x00000008
-#define AOFF_task_semsleeping 0x00000360
+#define AOFF_task_semsleeping 0x00000368
#define ASIZ_task_semsleeping 0x00000008
-#define AOFF_task_ldt 0x00000368
+#define AOFF_task_ldt 0x00000370
#define ASIZ_task_ldt 0x00000008
#define AOFF_task_tss 0x00000380
#define ASIZ_task_tss 0x00000600
@@ -158,56 +160,62 @@
#define ASIZ_task_mm 0x00000008
#define AOFF_task_sig 0x00000998
#define ASIZ_task_sig 0x00000008
-#define AOFF_task_processor 0x000009a0
+#define AOFF_task_has_cpu 0x000009a0
+#define ASIZ_task_has_cpu 0x00000004
+#define AOFF_task_processor 0x000009a4
#define ASIZ_task_processor 0x00000004
-#define AOFF_task_last_processor 0x000009a4
+#define AOFF_task_last_processor 0x000009a8
#define ASIZ_task_last_processor 0x00000004
-#define AOFF_task_lock_depth 0x000009a8
+#define AOFF_task_lock_depth 0x000009ac
#define ASIZ_task_lock_depth 0x00000004
-#define AOFF_mm_count 0x00000000
-#define ASIZ_mm_count 0x00000004
-#define AOFF_mm_pgd 0x00000008
+#define AOFF_task_sigmask_lock 0x000009b0
+#define ASIZ_task_sigmask_lock 0x00000000
+#define AOFF_mm_mmap 0x00000000
+#define ASIZ_mm_mmap 0x00000008
+#define AOFF_mm_mmap_cache 0x00000008
+#define ASIZ_mm_mmap_cache 0x00000008
+#define AOFF_mm_pgd 0x00000010
#define ASIZ_mm_pgd 0x00000008
-#define AOFF_mm_context 0x00000010
+#define AOFF_mm_count 0x00000018
+#define ASIZ_mm_count 0x00000004
+#define AOFF_mm_mmap_sem 0x00000020
+#define ASIZ_mm_mmap_sem 0x00000010
+#define AOFF_mm_context 0x00000030
#define ASIZ_mm_context 0x00000008
-#define AOFF_mm_start_code 0x00000018
+#define AOFF_mm_start_code 0x00000038
#define ASIZ_mm_start_code 0x00000008
-#define AOFF_mm_end_code 0x00000020
+#define AOFF_mm_end_code 0x00000040
#define ASIZ_mm_end_code 0x00000008
-#define AOFF_mm_start_data 0x00000028
+#define AOFF_mm_start_data 0x00000048
#define ASIZ_mm_start_data 0x00000008
-#define AOFF_mm_end_data 0x00000030
+#define AOFF_mm_end_data 0x00000050
#define ASIZ_mm_end_data 0x00000008
-#define AOFF_mm_start_brk 0x00000038
+#define AOFF_mm_start_brk 0x00000058
#define ASIZ_mm_start_brk 0x00000008
-#define AOFF_mm_brk 0x00000040
+#define AOFF_mm_brk 0x00000060
#define ASIZ_mm_brk 0x00000008
-#define AOFF_mm_start_stack 0x00000048
+#define AOFF_mm_start_stack 0x00000068
#define ASIZ_mm_start_stack 0x00000008
-#define AOFF_mm_start_mmap 0x00000050
+#define AOFF_mm_start_mmap 0x00000070
#define ASIZ_mm_start_mmap 0x00000008
-#define AOFF_mm_arg_start 0x00000058
+#define AOFF_mm_arg_start 0x00000078
#define ASIZ_mm_arg_start 0x00000008
-#define AOFF_mm_arg_end 0x00000060
+#define AOFF_mm_arg_end 0x00000080
#define ASIZ_mm_arg_end 0x00000008
-#define AOFF_mm_env_start 0x00000068
+#define AOFF_mm_env_start 0x00000088
#define ASIZ_mm_env_start 0x00000008
-#define AOFF_mm_env_end 0x00000070
+#define AOFF_mm_env_end 0x00000090
#define ASIZ_mm_env_end 0x00000008
-#define AOFF_mm_rss 0x00000078
+#define AOFF_mm_rss 0x00000098
#define ASIZ_mm_rss 0x00000008
-#define AOFF_mm_total_vm 0x00000080
+#define AOFF_mm_total_vm 0x000000a0
#define ASIZ_mm_total_vm 0x00000008
-#define AOFF_mm_locked_vm 0x00000088
+#define AOFF_mm_locked_vm 0x000000a8
#define ASIZ_mm_locked_vm 0x00000008
-#define AOFF_mm_def_flags 0x00000090
+#define AOFF_mm_def_flags 0x000000b0
#define ASIZ_mm_def_flags 0x00000008
-#define AOFF_mm_mmap 0x00000098
-#define ASIZ_mm_mmap 0x00000008
-#define AOFF_mm_mmap_avl 0x000000a0
-#define ASIZ_mm_mmap_avl 0x00000008
-#define AOFF_mm_mmap_sem 0x000000a8
-#define ASIZ_mm_mmap_sem 0x00000010
+#define AOFF_mm_cpu_vm_mask 0x000000b8
+#define ASIZ_mm_cpu_vm_mask 0x00000008
#define AOFF_thread_float_regs 0x00000000
#define ASIZ_thread_float_regs 0x00000100
#define AOFF_thread_fsr 0x00000100
diff --git a/include/asm-sparc64/bitops.h b/include/asm-sparc64/bitops.h
index 39a16948d..8e7a9a472 100644
--- a/include/asm-sparc64/bitops.h
+++ b/include/asm-sparc64/bitops.h
@@ -1,4 +1,4 @@
-/* $Id: bitops.h,v 1.11 1997/04/10 23:32:42 davem Exp $
+/* $Id: bitops.h,v 1.12 1997/05/14 20:48:04 davem Exp $
* bitops.h: Bit string operations on the V9.
*
* Copyright 1996 David S. Miller (davem@caip.rutgers.edu)
@@ -19,7 +19,7 @@
* all bit-ops return 0 if bit was previously clear and != 0 otherwise.
*/
-extern __inline__ unsigned long set_bit(unsigned long nr, void *addr)
+extern __inline__ unsigned long test_and_set_bit(unsigned long nr, void *addr)
{
unsigned long oldbit;
unsigned long temp0, temp1;
@@ -42,7 +42,12 @@ extern __inline__ unsigned long set_bit(unsigned long nr, void *addr)
return oldbit != 0;
}
-extern __inline__ unsigned long clear_bit(unsigned long nr, void *addr)
+extern __inline__ void set_bit(unsigned long nr, void *addr)
+{
+ (void) test_and_set_bit(nr, addr);
+}
+
+extern __inline__ unsigned long test_and_clear_bit(unsigned long nr, void *addr)
{
unsigned long oldbit;
unsigned long temp0, temp1;
@@ -65,7 +70,12 @@ extern __inline__ unsigned long clear_bit(unsigned long nr, void *addr)
return oldbit != 0;
}
-extern __inline__ unsigned long change_bit(unsigned long nr, void *addr)
+extern __inline__ void clear_bit(unsigned long nr, void *addr)
+{
+ (void) test_and_clear_bit(nr, addr);
+}
+
+extern __inline__ unsigned long test_and_change_bit(unsigned long nr, void *addr)
{
unsigned long oldbit;
unsigned long temp0, temp1;
@@ -86,6 +96,11 @@ extern __inline__ unsigned long change_bit(unsigned long nr, void *addr)
return oldbit != 0;
}
+extern __inline__ void change_bit(unsigned long nr, void *addr)
+{
+ (void) test_and_change_bit(nr, addr);
+}
+
extern __inline__ unsigned long test_bit(int nr, __const__ void *addr)
{
return 1UL & (((__const__ int *) addr)[nr >> 5] >> (nr & 31));
@@ -266,8 +281,8 @@ found_middle:
#define ext2_find_next_zero_bit find_next_zero_le_bit
/* Bitmap functions for the minix filesystem. */
-#define minix_set_bit(nr,addr) set_bit(nr,addr)
-#define minix_clear_bit(nr,addr) clear_bit(nr,addr)
+#define minix_set_bit(nr,addr) test_and_set_bit(nr,addr)
+#define minix_clear_bit(nr,addr) test_and_clear_bit(nr,addr)
#define minix_test_bit(nr,addr) test_bit(nr,addr)
#define minix_find_first_zero_bit(addr,size) find_first_zero_bit(addr,size)
diff --git a/include/asm-sparc64/checksum.h b/include/asm-sparc64/checksum.h
index 543e5a627..63dbfec3d 100644
--- a/include/asm-sparc64/checksum.h
+++ b/include/asm-sparc64/checksum.h
@@ -1,4 +1,4 @@
-/* $Id: checksum.h,v 1.6 1997/04/10 23:32:43 davem Exp $ */
+/* $Id: checksum.h,v 1.7 1997/05/14 07:02:44 davem Exp $ */
#ifndef __SPARC64_CHECKSUM_H
#define __SPARC64_CHECKSUM_H
@@ -54,6 +54,7 @@ csum_partial_copy_nocheck (const char *src, char *dst, int len,
__asm__ __volatile__ ("
call __csum_partial_copy_sparc_generic
mov %4, %%g7
+ srl %%o0, 0, %%o0
" : "=r" (ret) : "0" (ret), "r" (d), "r" (l), "r" (sum) :
"o1", "o2", "o3", "o4", "o5", "o7", "g1", "g2", "g3", "g5", "g7");
return (unsigned int)ret;
@@ -81,6 +82,7 @@ csum_partial_copy_from_user(const char *src, char *dst, int len,
1:
call __csum_partial_copy_sparc_generic
stx %5, [%%sp + 0x7ff + 128]
+ srl %%o0, 0, %%o0
" : "=r" (ret) : "0" (ret), "r" (d), "r" (l), "r" (s), "r" (err) :
"o1", "o2", "o3", "o4", "o5", "o7", "g1", "g2", "g3", "g5", "g7");
return (unsigned int)ret;
@@ -108,6 +110,7 @@ csum_partial_copy_to_user(const char *src, char *dst, int len,
1:
call __csum_partial_copy_sparc_generic
stx %5, [%%sp + 0x7ff + 128]
+ srl %%o0, 0, %%o0
" : "=r" (ret) : "0" (ret), "r" (d), "r" (l), "r" (s), "r" (err) :
"o1", "o2", "o3", "o4", "o5", "o7", "g1", "g2", "g3", "g5", "g7");
return (unsigned int)ret;
@@ -151,6 +154,7 @@ extern __inline__ unsigned short ip_fast_csum(__const__ unsigned char *iph,
srl %%g2, 16, %0
addc %0, %%g0, %0
xnor %%g0, %0, %0
+ srl %0, 0, %0
" : "=r" (sum), "=&r" (iph)
: "r" (ihl), "1" (iph)
: "g2", "g3", "g7", "cc");
@@ -179,11 +183,11 @@ extern __inline__ unsigned short csum_tcpudp_magic(unsigned long saddr,
" : "=r" (sum), "=r" (saddr)
: "r" (daddr), "r" ((proto<<16)+len), "0" (sum), "1" (saddr)
: "cc");
- return sum;
+ return (sum & 0xffff);
}
/* Fold a partial checksum without adding pseudo headers. */
-extern __inline__ unsigned int csum_fold(unsigned int sum)
+extern __inline__ unsigned short csum_fold(unsigned int sum)
{
unsigned int tmp;
@@ -195,7 +199,7 @@ extern __inline__ unsigned int csum_fold(unsigned int sum)
" : "=&r" (sum), "=r" (tmp)
: "0" (sum), "1" (sum<<16)
: "cc");
- return sum;
+ return (sum & 0xffff);
}
#define _HAVE_ARCH_IPV6_CSUM
diff --git a/include/asm-sparc64/current.h b/include/asm-sparc64/current.h
index 8cdfc6109..80652fb35 100644
--- a/include/asm-sparc64/current.h
+++ b/include/asm-sparc64/current.h
@@ -1,12 +1,6 @@
#ifndef _SPARC64_CURRENT_H
#define _SPARC64_CURRENT_H
-/* Some architectures may want to do something "clever" here since
- * this is the most frequently accessed piece of data in the entire
- * kernel.
- */
-extern struct task_struct *current_set[NR_CPUS];
-
/* Sparc rules... */
register struct task_struct *current asm("g6");
diff --git a/include/asm-sparc64/elf.h b/include/asm-sparc64/elf.h
index d5e29751c..9a43b6c3f 100644
--- a/include/asm-sparc64/elf.h
+++ b/include/asm-sparc64/elf.h
@@ -1,4 +1,4 @@
-/* $Id: elf.h,v 1.3 1997/04/04 00:50:12 davem Exp $ */
+/* $Id: elf.h,v 1.6 1997/05/17 11:51:27 davem Exp $ */
#ifndef __ASM_SPARC64_ELF_H
#define __ASM_SPARC64_ELF_H
@@ -7,6 +7,7 @@
*/
#include <asm/ptrace.h>
+#include <asm/processor.h>
typedef unsigned long elf_greg_t;
@@ -16,21 +17,24 @@ typedef elf_greg_t elf_gregset_t[ELF_NGREG];
typedef unsigned long elf_fpregset_t;
/*
- * This is used to ensure we don't load something for the wrong architecture.
- */
-#define elf_check_arch(x) ((x) == EM_SPARC)
-
-/*
* These are used to set parameters in the core dumps.
*/
#ifndef ELF_ARCH
-#define ELF_ARCH EM_SPARC64
-#define ELF_CLASS ELFCLASS64
-#define ELF_DATA ELFDATA2MSB;
+#define ELF_ARCH EM_SPARC64
+#define ELF_CLASS ELFCLASS64
+#define ELF_DATA ELFDATA2MSB;
#endif
-#define USE_ELF_CORE_DUMP
-#define ELF_EXEC_PAGESIZE 4096
+#ifndef ELF_FLAGS_INIT
+#define ELF_FLAGS_INIT current->tss.flags &= ~SPARC_FLAG_32BIT
+#endif
+/*
+ * This is used to ensure we don't load something for the wrong architecture.
+ */
+#define elf_check_arch(x) ((x) == ELF_ARCH) /* Might be EM_SPARC64 or EM_SPARC */
+
+#define USE_ELF_CORE_DUMP
+#define ELF_EXEC_PAGESIZE 8192
#endif /* !(__ASM_SPARC64_ELF_H) */
diff --git a/include/asm-sparc64/fs_mount.h b/include/asm-sparc64/fs_mount.h
new file mode 100644
index 000000000..3ad7ad698
--- /dev/null
+++ b/include/asm-sparc64/fs_mount.h
@@ -0,0 +1,44 @@
+/* $Id: fs_mount.h,v 1.2 1997/04/18 14:34:46 jj Exp $
+ * fs_mount.h: Definitions for mount structure conversions.
+ *
+ * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
+ */
+
+#ifndef __ASM_FS_MOUNT_H
+#define __ASM_FS_MOUNT_H
+
+#if defined(CONFIG_SPARC32_COMPAT) || defined(CONFIG_SPARC32_COMPAT_MODULE)
+
+#include <linux/sched.h>
+
+/* We need this to convert 32bit mount structures to 64bit */
+
+extern void *do_ncp_super_data_conv(void *raw_data);
+extern void *do_smb_super_data_conv(void *raw_data);
+
+extern __inline__ void *ncp_super_data_conv(void *raw_data)
+{
+ if (current->tss.flags & SPARC_FLAG_32BIT)
+ return do_ncp_super_data_conv(raw_data);
+ else
+ return raw_data;
+}
+
+extern __inline__ void *smb_super_data_conv(void *raw_data)
+{
+ if (current->tss.flags & SPARC_FLAG_32BIT)
+ return do_smb_super_data_conv(raw_data);
+ else
+ return raw_data;
+}
+
+#else /* CONFIG_SPARC32_COMPAT* */
+
+#define ncp_super_data_conv(__x) __x
+#define smb_super_data_conv(__x) __x
+
+#endif /* CONFIG_SPARC32_COMPAT* */
+
+#define nfs_super_data_conv(__x) __x
+
+#endif /* __ASM_FS_MOUNT_H */
diff --git a/include/asm-sparc64/head.h b/include/asm-sparc64/head.h
index 60ed4ca66..e3d03bf0f 100644
--- a/include/asm-sparc64/head.h
+++ b/include/asm-sparc64/head.h
@@ -1,4 +1,4 @@
-/* $Id: head.h,v 1.16 1997/04/08 11:03:13 davem Exp $ */
+/* $Id: head.h,v 1.19 1997/05/18 08:42:18 davem Exp $ */
#ifndef _SPARC64_HEAD_H
#define _SPARC64_HEAD_H
@@ -113,7 +113,7 @@
#define INDIRECT_SOLARIS_SYSCALL(tlvl) TRAP_ARG(indirect_syscall, tlvl)
#define TRAP_IRQ(routine, level) \
- rdpr %pil, %g4; \
+ rdpr %pil, %g2; \
wrpr %g0, 15, %pil; \
ba,pt %xcc, etrap_irq; \
rd %pc, %g7; \
@@ -147,6 +147,9 @@
flushw; \
done; nop; nop; nop; nop; nop; nop;
+/* Before touching these macros, you owe it to yourself to go and
+ * see how arch/sparc64/kernel/winfixup.S works... -DaveM
+ */
/* Normal kernel spill */
#define SPILL_0_NORMAL \
@@ -189,23 +192,25 @@
stxa %i6, [%sp + STACK_BIAS + 0x70] %asi; \
stxa %i7, [%sp + STACK_BIAS + 0x78] %asi; \
saved; retry; nop; nop; nop; nop; nop; nop; \
- nop; nop; nop; nop; nop; nop; nop;
+ nop; nop; nop; nop; nop; nop; \
+ b,a,pt %xcc, spill_fixup;
/* Normal 32bit spill */
#define SPILL_2_GENERIC(xxx) \
wr %g0, xxx, %asi; \
srl %sp, 0, %sp; \
stda %l0, [%sp + 0x00] %asi; \
- stda %l2, [%sp + 0x10] %asi; \
- stda %l4, [%sp + 0x20] %asi; \
- stda %l6, [%sp + 0x30] %asi; \
- stda %i0, [%sp + 0x40] %asi; \
- stda %i2, [%sp + 0x50] %asi; \
- stda %i4, [%sp + 0x60] %asi; \
- stda %i6, [%sp + 0x70] %asi; \
+ stda %l2, [%sp + 0x08] %asi; \
+ stda %l4, [%sp + 0x10] %asi; \
+ stda %l6, [%sp + 0x18] %asi; \
+ stda %i0, [%sp + 0x20] %asi; \
+ stda %i2, [%sp + 0x28] %asi; \
+ stda %i4, [%sp + 0x30] %asi; \
+ stda %i6, [%sp + 0x38] %asi; \
saved; retry; nop; nop; nop; nop; \
nop; nop; nop; nop; nop; nop; nop; nop; \
- nop; nop; nop; nop; nop; nop; nop; nop;
+ nop; nop; nop; nop; nop; nop; nop; \
+ b,a,pt %xcc, spill_fixup;
#define SPILL_1_NORMAL SPILL_1_GENERIC(ASI_AIUP)
#define SPILL_2_NORMAL SPILL_2_GENERIC(ASI_AIUP)
@@ -265,23 +270,25 @@
ldxa [%sp + STACK_BIAS + 0x70] %asi, %i6; \
ldxa [%sp + STACK_BIAS + 0x78] %asi, %i7; \
restored; retry; nop; nop; nop; nop; nop; nop; \
- nop; nop; nop; nop; nop; nop; nop;
+ nop; nop; nop; nop; nop; nop; \
+ b,a,pt %xcc, fill_fixup;
/* Normal 32bit fill */
#define FILL_2_GENERIC(xxx) \
wr %g0, xxx, %asi; \
srl %sp, 0, %sp; \
ldda [%sp + 0x00] %asi, %l0; \
- ldda [%sp + 0x10] %asi, %l2; \
- ldda [%sp + 0x20] %asi, %l4; \
- ldda [%sp + 0x30] %asi, %l6; \
- ldda [%sp + 0x40] %asi, %i0; \
- ldda [%sp + 0x50] %asi, %i2; \
- ldda [%sp + 0x60] %asi, %i4; \
- ldda [%sp + 0x70] %asi, %i6; \
+ ldda [%sp + 0x08] %asi, %l2; \
+ ldda [%sp + 0x10] %asi, %l4; \
+ ldda [%sp + 0x18] %asi, %l6; \
+ ldda [%sp + 0x20] %asi, %i0; \
+ ldda [%sp + 0x28] %asi, %i2; \
+ ldda [%sp + 0x30] %asi, %i4; \
+ ldda [%sp + 0x38] %asi, %i6; \
restored; retry; nop; nop; nop; nop; \
nop; nop; nop; nop; nop; nop; nop; nop; \
- nop; nop; nop; nop; nop; nop; nop; nop;
+ nop; nop; nop; nop; nop; nop; nop; \
+ b,a,pt %xcc, fill_fixup;
#define FILL_1_NORMAL FILL_1_GENERIC(ASI_AIUP)
#define FILL_2_NORMAL FILL_2_GENERIC(ASI_AIUP)
diff --git a/include/asm-sparc64/linux_logo.h b/include/asm-sparc64/linux_logo.h
index 7787fb059..35254c6a3 100644
--- a/include/asm-sparc64/linux_logo.h
+++ b/include/asm-sparc64/linux_logo.h
@@ -1040,1045 +1040,3 @@ unsigned char *linux_serial_image __initdata = "\n"
"'!!!!!!!W..e$$!!!!!!` %s\n"
" \"~^^~ ^~~^\n"
"\n";
-/* $Id: linux_logo.h,v 1.1 1997/04/16 17:51:37 jj Exp $
- * include/asm-sparc64/linux_logo.h: This is a linux logo
- * to be displayed on boot.
- *
- * Copyright (C) 1996 Larry Ewing (lewing@isc.tamu.edu)
- * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
- *
- * You can put anything here, but:
- * LINUX_LOGO_COLORS has to be less than 224
- * image size has to be 80x80
- * values have to start from 0x20
- * (i.e. RGB(linux_logo_red[0],
- * linux_logo_green[0],
- * linux_logo_blue[0]) is color 0x20)
- * BW image has to be 80x80 as well, with MS bit
- * on the left
- * Serial_console ascii image can be any size,
- * but should contain %s to display the version
- */
-
-#include <linux/init.h>
-#include <linux/version.h>
-
-#define linux_logo_banner "Linux/UltraSPARC version " UTS_RELEASE
-
-#define LINUX_LOGO_COLORS 215
-
-unsigned char linux_logo_red[] __initdata = {
- 0x99, 0x95, 0x92, 0x8E, 0x8A, 0x86, 0x02, 0x00,
- 0xA5, 0xA9, 0xA2, 0x9E, 0xAD, 0x1B, 0x3B, 0x25,
- 0x71, 0x65, 0x2C, 0x82, 0x5B, 0x33, 0x13, 0xB0,
- 0x0C, 0xB1, 0xD4, 0xCE, 0x04, 0x06, 0x16, 0xB6,
- 0xCD, 0xB2, 0x42, 0x46, 0x4B, 0xA8, 0xF3, 0xCA,
- 0xC5, 0x1C, 0xDC, 0xA0, 0xD4, 0xE6, 0xED, 0xF3,
- 0xC2, 0x8E, 0xCC, 0xA5, 0x7E, 0x52, 0xF7, 0xE3,
- 0x56, 0x79, 0x68, 0x8D, 0xAF, 0xFC, 0x8E, 0x3E,
- 0x6B, 0x11, 0x37, 0x79, 0x5C, 0x3C, 0x3F, 0x3C,
- 0x48, 0x47, 0x3D, 0xB9, 0x62, 0xE1, 0x4D, 0x57,
- 0x84, 0x78, 0xA6, 0x58, 0x99, 0xCD, 0xB7, 0xE3,
- 0x6D, 0x5A, 0xAF, 0x79, 0x79, 0xF2, 0x42, 0x46,
- 0xDD, 0x89, 0xC3, 0xF2, 0xF0, 0xE0, 0xD1, 0x90,
- 0x76, 0x6B, 0x4A, 0xBE, 0xBD, 0xE3, 0xF6, 0xE9,
- 0xEC, 0xE8, 0xEC, 0xC0, 0x66, 0x63, 0xCB, 0xAB,
- 0x49, 0x5C, 0xAD, 0xD6, 0xEE, 0xF5, 0xF5, 0xE9,
- 0x6E, 0x00, 0x69, 0x6A, 0xA1, 0x7A, 0xB4, 0xDE,
- 0xF1, 0xF6, 0xDD, 0x00, 0x73, 0xDB, 0x4C, 0x53,
- 0x6A, 0xF5, 0xF5, 0xD6, 0xC3, 0x6A, 0x4B, 0x4B,
- 0x60, 0xF8, 0x9B, 0xD7, 0xD7, 0x71, 0xB3, 0xA4,
- 0xCA, 0xAB, 0xB4, 0xB2, 0x76, 0xBA, 0x8B, 0xA0,
- 0xA5, 0xEE, 0xE7, 0x67, 0x5F, 0x08, 0x94, 0xDB,
- 0xE5, 0x4F, 0x00, 0x34, 0xEE, 0xEC, 0xE2, 0x48,
- 0xF3, 0xEB, 0xF4, 0xF4, 0xEF, 0xD6, 0xB6, 0xE6,
- 0xE6, 0xED, 0xE7, 0xE6, 0x3D, 0xE7, 0xCD, 0x44,
- 0xEF, 0xEC, 0xF5, 0x66, 0xF3, 0xA9, 0x77, 0x58,
- 0x75, 0x6C, 0x53, 0x24, 0xAC, 0x0D, 0x3C
-};
-
-unsigned char linux_logo_green[] __initdata = {
- 0x99, 0x95, 0x92, 0x8E, 0x8A, 0x86, 0x02, 0x00,
- 0xA5, 0xA9, 0xA2, 0x9E, 0xAD, 0x1B, 0x3B, 0x25,
- 0x71, 0x65, 0x2C, 0x82, 0x5B, 0x33, 0x13, 0xAD,
- 0x0C, 0xB1, 0x92, 0xAB, 0x03, 0x06, 0x16, 0xB6,
- 0xCD, 0x88, 0x42, 0x46, 0x4B, 0x94, 0xBB, 0xCA,
- 0xC5, 0x1C, 0xAB, 0xA0, 0xD4, 0xE6, 0xED, 0xF3,
- 0xC2, 0x73, 0xCA, 0x91, 0x7E, 0x52, 0xF7, 0xE3,
- 0x56, 0x5A, 0x49, 0x56, 0x6E, 0xFC, 0x6B, 0x3E,
- 0x6B, 0x0D, 0x37, 0x79, 0x51, 0x44, 0x3F, 0x43,
- 0x38, 0x3D, 0x48, 0xB9, 0x62, 0xA5, 0x47, 0x48,
- 0x49, 0x4A, 0x97, 0x48, 0x81, 0x95, 0x8E, 0xE3,
- 0x6D, 0x57, 0x51, 0x51, 0x47, 0xB2, 0x42, 0x46,
- 0xDD, 0x5B, 0x87, 0xBE, 0xC7, 0xC8, 0x56, 0x75,
- 0x5D, 0x4B, 0x4D, 0xBE, 0x85, 0xA6, 0xBC, 0xC7,
- 0xCA, 0xCD, 0xCC, 0xA4, 0x53, 0x4D, 0x9F, 0x55,
- 0x52, 0x5E, 0x75, 0x9C, 0xB6, 0xC3, 0xD7, 0xCC,
- 0x55, 0x00, 0x6A, 0x59, 0x7D, 0x55, 0x7C, 0xA3,
- 0xB7, 0xBF, 0xA5, 0x00, 0x67, 0xC6, 0x47, 0x54,
- 0x46, 0xB8, 0xBE, 0xB2, 0x87, 0x52, 0x4B, 0x43,
- 0x41, 0xF8, 0x69, 0x96, 0x9B, 0x66, 0xB0, 0x6C,
- 0x8E, 0x81, 0xB4, 0x76, 0x76, 0xB9, 0x65, 0x77,
- 0x6D, 0xED, 0xE7, 0x67, 0x5F, 0x06, 0x54, 0x6C,
- 0xCB, 0x4F, 0x00, 0x2F, 0xC2, 0xB5, 0xB6, 0x30,
- 0xC3, 0xAE, 0xC4, 0xCA, 0xC6, 0xB4, 0x7B, 0xAD,
- 0xAD, 0xB6, 0xB6, 0xAD, 0x29, 0xAB, 0x93, 0x2E,
- 0xBC, 0xBC, 0xC9, 0x53, 0xBF, 0x77, 0x54, 0x3B,
- 0x4B, 0x3F, 0x39, 0x19, 0x76, 0x08, 0x2C
-};
-
-unsigned char linux_logo_blue[] __initdata = {
- 0x99, 0x95, 0x92, 0x8E, 0x8A, 0x86, 0xD6, 0x00,
- 0xA5, 0xA9, 0xA2, 0x9E, 0xAD, 0x1B, 0x39, 0x25,
- 0x71, 0x65, 0x2C, 0x82, 0x5B, 0x33, 0x13, 0xA7,
- 0x0C, 0xB1, 0x58, 0x8A, 0x03, 0x07, 0x16, 0xB6,
- 0xCD, 0x5A, 0x42, 0x46, 0x4F, 0x6F, 0x77, 0xCA,
- 0xC5, 0x1C, 0x6F, 0xA5, 0xD4, 0xE6, 0xF5, 0xF3,
- 0xC2, 0x4D, 0xD1, 0x64, 0x7E, 0x52, 0xF7, 0xE3,
- 0x56, 0x49, 0x3C, 0x47, 0x45, 0xFE, 0x3B, 0x41,
- 0x6B, 0x09, 0x37, 0x79, 0x39, 0x39, 0x3F, 0x42,
- 0x3A, 0x42, 0x5F, 0xB9, 0x62, 0x4C, 0x39, 0x44,
- 0x3B, 0x3A, 0xA0, 0x3D, 0x08, 0x08, 0x09, 0xDE,
- 0x6D, 0x48, 0x3B, 0x3F, 0x42, 0xF3, 0x36, 0x3C,
- 0xDD, 0x06, 0x16, 0x08, 0x13, 0x0A, 0x4B, 0x71,
- 0x5D, 0x44, 0x47, 0xBE, 0x08, 0x0C, 0x0D, 0x0C,
- 0x19, 0x29, 0x36, 0x06, 0x43, 0x44, 0xBA, 0x45,
- 0x50, 0x58, 0x07, 0x07, 0x0D, 0x0E, 0x10, 0x50,
- 0x06, 0x42, 0x40, 0x44, 0x79, 0x06, 0x06, 0x0C,
- 0x08, 0x08, 0x07, 0x36, 0x4C, 0xE5, 0x42, 0x55,
- 0x03, 0x0F, 0x12, 0x06, 0x07, 0x3C, 0x4B, 0x3D,
- 0x01, 0xF8, 0x08, 0x0E, 0x0A, 0x69, 0xAC, 0x0C,
- 0x0A, 0x27, 0xBB, 0x36, 0x76, 0xC0, 0x04, 0x08,
- 0x08, 0xED, 0xEE, 0x68, 0x5F, 0xB2, 0x3B, 0x52,
- 0xAC, 0x4F, 0x6F, 0x2D, 0x16, 0x08, 0x59, 0x04,
- 0x13, 0x0E, 0x14, 0x17, 0x16, 0x2E, 0x08, 0x0D,
- 0x11, 0x14, 0x0D, 0x06, 0x04, 0x08, 0x25, 0x8E,
- 0x0E, 0x14, 0x25, 0x9B, 0x1C, 0x16, 0x78, 0x06,
- 0x04, 0x03, 0x79, 0x8C, 0x0B, 0xC8, 0x48
-};
-
-unsigned char linux_logo[] __initdata = {
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x21, 0x21, 0x22, 0x23, 0x24, 0x24,
- 0x25, 0x24, 0x24, 0x25, 0x25, 0x25, 0x25, 0x25,
- 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x23, 0x23,
- 0x23, 0x22, 0x22, 0x22, 0x22, 0x21, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x26, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x26, 0x28,
- 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
- 0x29, 0x28, 0x28, 0x28, 0x2A, 0x2A, 0x2B, 0x2B,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x2B, 0x2B, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x29, 0x29,
- 0x29, 0x29, 0x29, 0x2C, 0x29, 0x29, 0x29, 0x28,
- 0x28, 0x2A, 0x2B, 0x2B, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x2B, 0x2B, 0x2A, 0x2A,
- 0x2A, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x2D, 0x2E, 0x2F, 0x27,
- 0x27, 0x26, 0x2B, 0x2A, 0x2A, 0x2A, 0x2A, 0x28,
- 0x28, 0x29, 0x29, 0x29, 0x29, 0x2C, 0x2C, 0x29,
- 0x29, 0x29, 0x28, 0x28, 0x2A, 0x2B, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x2B, 0x2B, 0x2B, 0x2A, 0x2A, 0x2A,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x2F, 0x30, 0x31, 0x32,
- 0x27, 0x27, 0x22, 0x22, 0x22, 0x22, 0x21, 0x20,
- 0x20, 0x20, 0x2B, 0x2A, 0x28, 0x29, 0x29, 0x29,
- 0x2C, 0x2C, 0x2C, 0x29, 0x29, 0x28, 0x2A, 0x2B,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x2B, 0x2B, 0x2A, 0x2A, 0x2A, 0x2A, 0x2B,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x32, 0x33, 0x34, 0x35,
- 0x36, 0x27, 0x27, 0x33, 0x25, 0x25, 0x24, 0x24,
- 0x24, 0x24, 0x23, 0x21, 0x20, 0x20, 0x2B, 0x2A,
- 0x28, 0x29, 0x29, 0x37, 0x2C, 0x2C, 0x29, 0x28,
- 0x2A, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2B, 0x2B,
- 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2A, 0x2B, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x2F, 0x32, 0x36, 0x27,
- 0x27, 0x27, 0x27, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x25, 0x25, 0x24, 0x23, 0x21,
- 0x20, 0x2B, 0x2A, 0x29, 0x29, 0x2C, 0x2C, 0x2C,
- 0x29, 0x28, 0x2A, 0x2B, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2B, 0x2B,
- 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x20, 0x21, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x38, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x23, 0x23, 0x24, 0x24,
- 0x25, 0x25, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25,
- 0x24, 0x22, 0x20, 0x20, 0x2A, 0x28, 0x29, 0x2C,
- 0x2C, 0x2C, 0x29, 0x28, 0x2A, 0x2B, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x2B, 0x2B, 0x2B, 0x2B,
- 0x2B, 0x2B, 0x2B, 0x20, 0x21, 0x22, 0x23, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x2A, 0x2A, 0x2B, 0x2B,
- 0x20, 0x21, 0x22, 0x24, 0x20, 0x39, 0x39, 0x39,
- 0x39, 0x39, 0x3A, 0x3B, 0x22, 0x20, 0x2A, 0x28,
- 0x29, 0x2C, 0x2C, 0x2C, 0x29, 0x28, 0x2B, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B,
- 0x2B, 0x20, 0x21, 0x22, 0x22, 0x23, 0x24, 0x27,
- 0x27, 0x27, 0x3C, 0x36, 0x3C, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x3D, 0x3E, 0x32, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x3D, 0x39, 0x3F, 0x3F,
- 0x39, 0x2C, 0x20, 0x20, 0x39, 0x39, 0x39, 0x39,
- 0x39, 0x39, 0x39, 0x40, 0x40, 0x41, 0x22, 0x20,
- 0x2A, 0x28, 0x2C, 0x2C, 0x2C, 0x29, 0x29, 0x2A,
- 0x2B, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x2B, 0x2B, 0x2B, 0x2B, 0x20, 0x20,
- 0x21, 0x22, 0x22, 0x22, 0x23, 0x23, 0x22, 0x27,
- 0x27, 0x3C, 0x3C, 0x3D, 0x42, 0x3C, 0x27, 0x27,
- 0x3C, 0x27, 0x3C, 0x43, 0x44, 0x36, 0x42, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x3D, 0x28, 0x29, 0x2C,
- 0x2C, 0x45, 0x20, 0x39, 0x39, 0x39, 0x39, 0x39,
- 0x39, 0x46, 0x40, 0x47, 0x40, 0x47, 0x3A, 0x40,
- 0x22, 0x20, 0x2A, 0x29, 0x2C, 0x2C, 0x2C, 0x29,
- 0x28, 0x2B, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x2B, 0x2B, 0x2B, 0x2B, 0x20, 0x20, 0x22,
- 0x22, 0x22, 0x23, 0x22, 0x22, 0x21, 0x20, 0x27,
- 0x27, 0x44, 0x28, 0x24, 0x27, 0x2F, 0x3C, 0x27,
- 0x27, 0x38, 0x24, 0x2C, 0x2C, 0x48, 0x49, 0x36,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x28, 0x29, 0x29,
- 0x4A, 0x20, 0x3A, 0x40, 0x47, 0x40, 0x47, 0x40,
- 0x40, 0x47, 0x40, 0x40, 0x39, 0x39, 0x39, 0x4A,
- 0x25, 0x24, 0x22, 0x2B, 0x28, 0x29, 0x2C, 0x2C,
- 0x29, 0x28, 0x2A, 0x2B, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x2B, 0x2B, 0x20, 0x20, 0x20, 0x21, 0x22, 0x22,
- 0x22, 0x22, 0x22, 0x21, 0x20, 0x2B, 0x2A, 0x27,
- 0x3D, 0x4B, 0x48, 0x4C, 0x2B, 0x3C, 0x27, 0x3C,
- 0x3C, 0x23, 0x4D, 0x4E, 0x4F, 0x50, 0x33, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x39, 0x3F, 0x39,
- 0x51, 0x20, 0x39, 0x39, 0x47, 0x40, 0x4D, 0x4D,
- 0x40, 0x52, 0x4D, 0x40, 0x47, 0x40, 0x39, 0x39,
- 0x53, 0x54, 0x25, 0x24, 0x20, 0x2A, 0x29, 0x2C,
- 0x2C, 0x2C, 0x29, 0x2A, 0x2B, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x22, 0x22,
- 0x22, 0x21, 0x20, 0x2B, 0x28, 0x2A, 0x20, 0x27,
- 0x36, 0x4F, 0x55, 0x48, 0x56, 0x3D, 0x3C, 0x3C,
- 0x32, 0x57, 0x56, 0x58, 0x49, 0x56, 0x56, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x22, 0x20, 0x20,
- 0x41, 0x39, 0x39, 0x3A, 0x59, 0x5A, 0x59, 0x5B,
- 0x5C, 0x3A, 0x4D, 0x5D, 0x57, 0x39, 0x39, 0x4A,
- 0x5E, 0x33, 0x54, 0x33, 0x24, 0x22, 0x2B, 0x28,
- 0x2C, 0x2C, 0x2C, 0x29, 0x28, 0x2B, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x21, 0x21, 0x21, 0x22, 0x22, 0x21,
- 0x20, 0x2B, 0x2A, 0x2A, 0x20, 0x22, 0x22, 0x27,
- 0x5F, 0x2D, 0x3C, 0x60, 0x56, 0x54, 0x61, 0x49,
- 0x35, 0x56, 0x34, 0x27, 0x62, 0x27, 0x56, 0x39,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x30, 0x63, 0x54,
- 0x40, 0x64, 0x65, 0x66, 0x67, 0x67, 0x68, 0x5F,
- 0x2E, 0x69, 0x6A, 0x67, 0x5F, 0x3A, 0x39, 0x2C,
- 0x53, 0x23, 0x25, 0x54, 0x33, 0x25, 0x23, 0x20,
- 0x2A, 0x29, 0x2C, 0x2C, 0x29, 0x28, 0x2B, 0x20,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20,
- 0x2B, 0x2A, 0x20, 0x22, 0x22, 0x21, 0x2B, 0x27,
- 0x62, 0x36, 0x27, 0x33, 0x6B, 0x54, 0x3D, 0x3C,
- 0x49, 0x57, 0x27, 0x27, 0x27, 0x27, 0x56, 0x57,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x6C, 0x31, 0x6D,
- 0x64, 0x51, 0x6E, 0x2E, 0x2E, 0x6F, 0x5A, 0x70,
- 0x70, 0x71, 0x72, 0x67, 0x67, 0x69, 0x73, 0x46,
- 0x4A, 0x2A, 0x21, 0x25, 0x33, 0x54, 0x33, 0x24,
- 0x20, 0x2A, 0x29, 0x2C, 0x2C, 0x29, 0x28, 0x2B,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x21, 0x21, 0x21, 0x21, 0x20, 0x20, 0x2B,
- 0x2B, 0x22, 0x22, 0x22, 0x2B, 0x28, 0x2A, 0x27,
- 0x27, 0x39, 0x3C, 0x3D, 0x45, 0x74, 0x75, 0x76,
- 0x76, 0x45, 0x27, 0x27, 0x27, 0x27, 0x56, 0x77,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x78, 0x78, 0x5E,
- 0x79, 0x7A, 0x7B, 0x6E, 0x5A, 0x5A, 0x70, 0x7C,
- 0x70, 0x5B, 0x7D, 0x5A, 0x66, 0x7E, 0x7F, 0x79,
- 0x48, 0x6B, 0x2C, 0x20, 0x24, 0x33, 0x54, 0x33,
- 0x24, 0x21, 0x2A, 0x29, 0x2C, 0x2C, 0x29, 0x28,
- 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x21, 0x21, 0x21, 0x20, 0x20, 0x2B, 0x2B, 0x21,
- 0x22, 0x22, 0x20, 0x28, 0x2B, 0x20, 0x22, 0x27,
- 0x27, 0x80, 0x27, 0x81, 0x82, 0x83, 0x84, 0x85,
- 0x74, 0x85, 0x84, 0x27, 0x3C, 0x4F, 0x4F, 0x66,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x22, 0x23, 0x5E,
- 0x64, 0x86, 0x79, 0x73, 0x87, 0x88, 0x7C, 0x5A,
- 0x5A, 0x71, 0x7D, 0x71, 0x89, 0x79, 0x8A, 0x8A,
- 0x51, 0x8B, 0x48, 0x39, 0x2A, 0x22, 0x33, 0x54,
- 0x33, 0x25, 0x22, 0x2B, 0x29, 0x2C, 0x2C, 0x29,
- 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x21, 0x21, 0x20, 0x20, 0x2B, 0x2B, 0x22, 0x23,
- 0x21, 0x2A, 0x2A, 0x20, 0x21, 0x23, 0x25, 0x27,
- 0x27, 0x55, 0x8C, 0x8D, 0x8E, 0x83, 0x8F, 0x90,
- 0x91, 0x92, 0x92, 0x85, 0x85, 0x93, 0x51, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x2A, 0x29, 0x51,
- 0x79, 0x79, 0x94, 0x89, 0x89, 0x89, 0x5A, 0x95,
- 0x64, 0x88, 0x96, 0x97, 0x7A, 0x73, 0x98, 0x98,
- 0x99, 0x50, 0x50, 0x48, 0x6B, 0x28, 0x21, 0x25,
- 0x54, 0x54, 0x25, 0x22, 0x2B, 0x29, 0x2C, 0x29,
- 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x2B, 0x20, 0x22, 0x22, 0x20,
- 0x2B, 0x2B, 0x20, 0x22, 0x24, 0x25, 0x33, 0x27,
- 0x27, 0x9A, 0x9B, 0x9C, 0x9D, 0x83, 0x9E, 0x85,
- 0x9F, 0x92, 0x85, 0x85, 0x85, 0x85, 0x92, 0xA0,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0xA1, 0x47, 0xA2,
- 0xA2, 0x94, 0xA3, 0x94, 0x95, 0x95, 0x73, 0x73,
- 0x95, 0x87, 0xA4, 0x5B, 0x97, 0x7B, 0x88, 0x98,
- 0xA2, 0x50, 0x48, 0x48, 0x48, 0x8B, 0x29, 0x20,
- 0x25, 0x54, 0x54, 0x25, 0x22, 0x2B, 0x29, 0x29,
- 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x21, 0x22, 0x22, 0x2B, 0x2B,
- 0x20, 0x21, 0x23, 0x24, 0x25, 0x25, 0x33, 0x27,
- 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0x8F, 0x90, 0x90,
- 0x9F, 0x90, 0x85, 0x90, 0x85, 0x74, 0xAA, 0x81,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0xAB, 0x40, 0xAC,
- 0x79, 0xA3, 0x89, 0xAD, 0x95, 0x6F, 0xAE, 0xAE,
- 0xAE, 0x5B, 0x59, 0x88, 0x7B, 0x89, 0x79, 0xAF,
- 0xA2, 0x6B, 0x48, 0x48, 0x48, 0x48, 0x50, 0x2C,
- 0x20, 0x24, 0x33, 0x54, 0x25, 0x22, 0x2A, 0x2A,
- 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x21, 0x23, 0x22, 0x2B, 0x20, 0x20,
- 0x22, 0x23, 0x24, 0x25, 0x24, 0x24, 0x22, 0x27,
- 0xB0, 0x8C, 0xAA, 0xB1, 0xB2, 0x84, 0x85, 0x9F,
- 0x85, 0x85, 0x85, 0xB3, 0xB4, 0xAA, 0xAA, 0xA0,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x2A, 0xB5,
- 0xA3, 0xA3, 0xAC, 0x5D, 0xB6, 0xAE, 0xB7, 0x69,
- 0x73, 0x5B, 0x88, 0x89, 0x95, 0x73, 0x99, 0x99,
- 0x59, 0x2A, 0x39, 0x48, 0x48, 0x50, 0x48, 0x50,
- 0x2C, 0x20, 0x24, 0x33, 0x54, 0x25, 0x21, 0x20,
- 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x21, 0x23, 0x21, 0x2B, 0x20, 0x20, 0x22,
- 0x22, 0x24, 0x24, 0x23, 0x22, 0x20, 0x2A, 0x27,
- 0x27, 0xB0, 0x8C, 0xA9, 0xB2, 0x9E, 0x91, 0x85,
- 0x85, 0x93, 0xB8, 0x75, 0xAA, 0xA7, 0x8C, 0x27,
- 0x27, 0x27, 0x33, 0x3C, 0x27, 0x27, 0x2C, 0x7B,
- 0x55, 0x79, 0xA3, 0x5D, 0xB9, 0x43, 0x7F, 0x7E,
- 0x5F, 0x5A, 0x5A, 0x95, 0x64, 0x73, 0x58, 0x64,
- 0x5C, 0x25, 0x2B, 0x3F, 0x48, 0x48, 0x8B, 0x48,
- 0x48, 0x2C, 0x20, 0x25, 0x54, 0x33, 0x24, 0x22,
- 0x2B, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x21, 0x23, 0x21, 0x20, 0x20, 0x20, 0x21, 0x22,
- 0x24, 0x23, 0x22, 0x21, 0x2B, 0x20, 0x54, 0x27,
- 0x27, 0x8B, 0x81, 0xA5, 0x93, 0x93, 0x74, 0xA5,
- 0xBA, 0x75, 0xBB, 0xBC, 0xB4, 0x6D, 0x50, 0x6B,
- 0x27, 0x27, 0x30, 0x33, 0x49, 0x27, 0x27, 0x5E,
- 0x6F, 0x73, 0x94, 0xBD, 0x4E, 0x5D, 0x7F, 0x7F,
- 0xB7, 0x68, 0x73, 0x6E, 0xB7, 0x7F, 0x95, 0x97,
- 0x47, 0x63, 0x25, 0x20, 0x3F, 0x48, 0x8B, 0x8B,
- 0x48, 0x48, 0x2C, 0x20, 0x25, 0x54, 0x33, 0x25,
- 0x2B, 0x2B, 0x2B, 0x20, 0x20, 0x20, 0x21, 0x21,
- 0x23, 0x21, 0x20, 0x20, 0x20, 0x20, 0x24, 0x24,
- 0x22, 0x21, 0x20, 0x2A, 0x33, 0x30, 0x30, 0x27,
- 0x27, 0x50, 0xBE, 0xBF, 0x9A, 0xB3, 0x9B, 0xBB,
- 0xBB, 0xC0, 0x8C, 0xC1, 0x8B, 0xC2, 0x47, 0x8B,
- 0x27, 0x27, 0x38, 0x63, 0x63, 0x27, 0x27, 0xC3,
- 0xB5, 0x95, 0x72, 0x95, 0x6F, 0x69, 0x7E, 0x66,
- 0x7E, 0x7F, 0x6E, 0x7E, 0x95, 0x95, 0x73, 0x70,
- 0x30, 0x30, 0x30, 0x33, 0x20, 0x3F, 0x48, 0x8B,
- 0x6B, 0x48, 0x50, 0x29, 0x21, 0x33, 0x54, 0x33,
- 0x2A, 0x2B, 0x2B, 0x20, 0x20, 0x21, 0x21, 0x23,
- 0x21, 0x20, 0x20, 0x20, 0x20, 0x24, 0x24, 0x22,
- 0x20, 0x2B, 0x21, 0xC4, 0x30, 0x60, 0x30, 0x27,
- 0x27, 0xC5, 0x8B, 0x39, 0xC6, 0xC7, 0xA6, 0xA6,
- 0xC8, 0x9A, 0x3B, 0x39, 0x50, 0x56, 0x56, 0x4F,
- 0x33, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x48,
- 0x59, 0x94, 0x73, 0xAE, 0xB7, 0xB7, 0x7E, 0x7E,
- 0x7E, 0x7E, 0x7E, 0x5A, 0x70, 0x7C, 0x71, 0xC3,
- 0x63, 0x30, 0x60, 0x78, 0x54, 0x20, 0x6B, 0x48,
- 0x6B, 0x6B, 0x50, 0x50, 0x29, 0x22, 0x33, 0x33,
- 0x2A, 0x2B, 0x20, 0x20, 0x21, 0x22, 0x22, 0x22,
- 0x21, 0x20, 0x20, 0x20, 0x24, 0x24, 0x20, 0x20,
- 0x2B, 0x24, 0x30, 0x60, 0x60, 0x30, 0xAB, 0x27,
- 0x27, 0x40, 0x4C, 0x50, 0x39, 0x87, 0xC3, 0x53,
- 0x37, 0x48, 0x37, 0x48, 0xC9, 0x56, 0xB9, 0x56,
- 0xCA, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x3C,
- 0x51, 0x5A, 0x6E, 0xB7, 0xB7, 0x7E, 0x7E, 0x7E,
- 0x7E, 0x7E, 0x7F, 0xB7, 0x5A, 0x7C, 0x5B, 0x37,
- 0x23, 0x63, 0x31, 0x6C, 0xCB, 0x63, 0x20, 0x6B,
- 0x50, 0x3F, 0x39, 0x50, 0x8B, 0x28, 0x24, 0x24,
- 0x2B, 0x2B, 0x20, 0x21, 0x22, 0x22, 0x22, 0x21,
- 0x20, 0x20, 0x20, 0x23, 0x23, 0x20, 0x20, 0x2B,
- 0x33, 0x78, 0xCB, 0x60, 0x30, 0x22, 0x3D, 0x27,
- 0x2F, 0x56, 0x4E, 0x8B, 0x6B, 0x39, 0x48, 0x8B,
- 0x6B, 0x8B, 0x80, 0xC9, 0xB9, 0xB9, 0x56, 0xB9,
- 0x56, 0x34, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x48, 0xB5, 0xB7, 0xB7, 0x7E, 0x7E, 0x2E, 0x7E,
- 0x7E, 0x7E, 0x7F, 0x7C, 0x65, 0x71, 0x3A, 0x48,
- 0x2C, 0x24, 0x30, 0x6C, 0x34, 0x6C, 0xC4, 0x20,
- 0x8B, 0x50, 0x39, 0x39, 0x48, 0x6B, 0x2B, 0x22,
- 0x2B, 0x20, 0x21, 0x22, 0x23, 0x23, 0x22, 0x21,
- 0x20, 0x2B, 0x23, 0x22, 0x20, 0x2B, 0x2B, 0x54,
- 0x60, 0x31, 0xCB, 0x54, 0x20, 0x3D, 0x36, 0x27,
- 0x4E, 0xB9, 0x56, 0x56, 0x8B, 0x6B, 0x50, 0x6B,
- 0x40, 0x56, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9,
- 0x56, 0x56, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x7B, 0x6E, 0xB7, 0xB7, 0xB7, 0x7E, 0x7F,
- 0xB7, 0xB7, 0x7F, 0x7E, 0x6F, 0x5B, 0x29, 0x2C,
- 0x48, 0x39, 0x24, 0x60, 0x58, 0xAF, 0xCC, 0x63,
- 0x20, 0x8B, 0x8B, 0x39, 0x39, 0x48, 0x3F, 0x28,
- 0x20, 0x20, 0x22, 0x23, 0x23, 0x23, 0x22, 0x20,
- 0x2B, 0x22, 0x22, 0x2B, 0x2B, 0x20, 0x54, 0xCB,
- 0x31, 0xCB, 0x25, 0x20, 0x27, 0x27, 0x27, 0x48,
- 0xB9, 0x56, 0xB9, 0x56, 0x4F, 0x48, 0x47, 0x57,
- 0x56, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56,
- 0xB9, 0x56, 0x62, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x48, 0x6F, 0x69, 0xB7, 0xB7, 0xB7, 0x7F,
- 0xB7, 0xB7, 0xB7, 0x73, 0x59, 0x50, 0x29, 0x2B,
- 0x28, 0x8B, 0x39, 0x25, 0x31, 0x55, 0xB6, 0x34,
- 0x63, 0x2B, 0x48, 0x6B, 0x2C, 0x39, 0x47, 0x6B,
- 0x22, 0x22, 0x23, 0x24, 0x23, 0x22, 0x20, 0x2B,
- 0x20, 0x22, 0x2A, 0x2B, 0x20, 0x33, 0xCB, 0x31,
- 0x78, 0x24, 0x21, 0xCD, 0x27, 0x27, 0x27, 0x56,
- 0x56, 0xB9, 0x56, 0xB9, 0x56, 0x56, 0x56, 0xB9,
- 0x56, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56,
- 0xB9, 0x56, 0xC9, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x41, 0x64, 0xB7, 0xB7, 0xB7, 0x7F,
- 0x68, 0xB7, 0xAE, 0xA3, 0x23, 0x39, 0x8B, 0x2A,
- 0x20, 0x20, 0x39, 0x6B, 0x25, 0xCC, 0x43, 0x43,
- 0x34, 0x63, 0x2A, 0x48, 0x3F, 0x39, 0x6B, 0x6B,
- 0x24, 0x23, 0x24, 0x24, 0x23, 0x21, 0x2B, 0x2B,
- 0x22, 0x2B, 0x2B, 0x20, 0x24, 0x78, 0x31, 0x30,
- 0x23, 0x21, 0x21, 0x27, 0x27, 0x27, 0x80, 0x56,
- 0x56, 0xB9, 0x56, 0xB9, 0x56, 0xB9, 0x56, 0xB9,
- 0x56, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9,
- 0x56, 0xB9, 0x56, 0x3C, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0xCE, 0x8A, 0xAE, 0x6F, 0xB7,
- 0x6F, 0x89, 0x71, 0x78, 0x63, 0x23, 0x39, 0x6B,
- 0x2B, 0x20, 0x20, 0x2C, 0x6B, 0x25, 0x34, 0x42,
- 0x42, 0x34, 0x54, 0x29, 0x48, 0x3F, 0x39, 0x3F,
- 0x25, 0x24, 0x25, 0x24, 0x22, 0x20, 0x2A, 0x21,
- 0x2B, 0x2A, 0x20, 0x22, 0x30, 0x60, 0x30, 0x22,
- 0x21, 0x22, 0x27, 0x27, 0x27, 0x2D, 0x4C, 0x56,
- 0x56, 0xB9, 0xB9, 0x56, 0xB9, 0xB9, 0x56, 0x56,
- 0xB9, 0xB9, 0xB9, 0x56, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0x56, 0x2E, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x40, 0x97, 0x95, 0x5A, 0x71,
- 0x7C, 0xCE, 0x40, 0x60, 0x31, 0x30, 0x23, 0x3F,
- 0x3F, 0x20, 0x20, 0x20, 0x29, 0x8B, 0x33, 0x58,
- 0x66, 0x43, 0xCC, 0x25, 0x39, 0x50, 0x6B, 0x2C,
- 0x33, 0x25, 0x25, 0x23, 0x20, 0x2A, 0x2B, 0x20,
- 0x2A, 0x2B, 0x22, 0x54, 0x30, 0x30, 0x24, 0x22,
- 0x21, 0x27, 0x27, 0x27, 0x27, 0xAF, 0x29, 0x4E,
- 0x4F, 0xB9, 0x56, 0xB9, 0x4D, 0x4D, 0x77, 0xC9,
- 0xB9, 0xB9, 0xB9, 0x56, 0xC9, 0x4D, 0x4D, 0x80,
- 0x4C, 0x40, 0xC9, 0x4D, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0xCF, 0x97, 0x97, 0xCE,
- 0x86, 0xD0, 0x54, 0x6C, 0x58, 0x34, 0x60, 0x23,
- 0x6B, 0x39, 0x20, 0x20, 0x20, 0x28, 0x6B, 0x54,
- 0xD1, 0x66, 0xB6, 0x60, 0x22, 0x6B, 0x8B, 0x2C,
- 0x54, 0x33, 0x24, 0x22, 0x2B, 0x28, 0x20, 0x28,
- 0x2B, 0x20, 0x25, 0xC4, 0x30, 0x25, 0x22, 0x21,
- 0x26, 0x27, 0x27, 0x27, 0x27, 0x20, 0x4B, 0x52,
- 0x80, 0x4F, 0xB9, 0x56, 0xB9, 0x80, 0x56, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0x4D, 0x80, 0x50, 0x48,
- 0x50, 0x50, 0x50, 0x56, 0x3D, 0x27, 0x36, 0x27,
- 0x27, 0x27, 0x27, 0x3C, 0x46, 0xC3, 0x86, 0x86,
- 0xD0, 0x39, 0x24, 0x6C, 0xD1, 0x43, 0x43, 0x6C,
- 0x24, 0x6B, 0x2C, 0x20, 0x20, 0x20, 0x29, 0x39,
- 0x63, 0xD1, 0x42, 0x55, 0xC4, 0x2B, 0x8B, 0x39,
- 0x54, 0x25, 0x24, 0x20, 0x2A, 0x2A, 0x28, 0x28,
- 0x20, 0x22, 0x54, 0x63, 0x25, 0x24, 0x22, 0x22,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x28, 0x77, 0x56,
- 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0xC9, 0x56, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x4F,
- 0x77, 0x47, 0x8B, 0x40, 0x56, 0x27, 0x27, 0x49,
- 0x2D, 0x27, 0x27, 0x27, 0x39, 0x40, 0x39, 0x39,
- 0x28, 0x3F, 0x39, 0x33, 0x58, 0x66, 0x35, 0x2E,
- 0x58, 0x24, 0x8B, 0x29, 0x20, 0x20, 0x20, 0x39,
- 0x29, 0x30, 0x55, 0xB6, 0xCC, 0x25, 0x29, 0x39,
- 0x54, 0x25, 0x22, 0x2B, 0x29, 0x2A, 0x29, 0x2B,
- 0x22, 0x24, 0x54, 0x33, 0x25, 0x22, 0x2B, 0x54,
- 0x27, 0x27, 0x62, 0x27, 0x30, 0x80, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0x56, 0x4D, 0x8B, 0x77, 0x36, 0x27, 0x27,
- 0x3C, 0x2F, 0x27, 0x27, 0x39, 0x39, 0x39, 0x47,
- 0x20, 0x2B, 0x2C, 0x39, 0x33, 0xB6, 0x35, 0x35,
- 0x35, 0xAF, 0x24, 0x48, 0x2A, 0x20, 0x20, 0x20,
- 0x8B, 0x2B, 0x78, 0xAF, 0x58, 0x30, 0x21, 0x28,
- 0x33, 0x25, 0x21, 0x28, 0x29, 0x29, 0x28, 0x20,
- 0x24, 0x33, 0x54, 0x33, 0x23, 0x20, 0x24, 0xD2,
- 0x27, 0x49, 0x27, 0x27, 0x56, 0xB9, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0x56, 0xC9, 0x50, 0x56, 0x27, 0x27,
- 0x3D, 0x38, 0x3D, 0x27, 0x27, 0x47, 0x39, 0x39,
- 0x28, 0x20, 0x20, 0x2A, 0x39, 0x54, 0x43, 0x35,
- 0x35, 0x35, 0xAF, 0x23, 0x48, 0x2B, 0x20, 0x20,
- 0x2B, 0x48, 0x22, 0x60, 0x34, 0xCB, 0x25, 0x21,
- 0x33, 0x24, 0x2B, 0x29, 0x29, 0x29, 0x2B, 0x22,
- 0x25, 0x54, 0x54, 0x25, 0x22, 0x2B, 0x33, 0x27,
- 0x27, 0x32, 0x27, 0x30, 0x56, 0xB9, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0x56, 0x56, 0xC9, 0x4C, 0x36, 0x3C,
- 0x62, 0x2F, 0x2E, 0x27, 0x27, 0x54, 0x47, 0x47,
- 0x8B, 0x2B, 0x20, 0x20, 0x20, 0x3F, 0x54, 0x2E,
- 0x35, 0x35, 0x35, 0x34, 0x21, 0x8B, 0x2A, 0x20,
- 0x20, 0x2C, 0x6B, 0x25, 0x60, 0x60, 0x54, 0x23,
- 0x25, 0x22, 0x2A, 0x2C, 0x29, 0x28, 0x20, 0x24,
- 0x54, 0x63, 0x54, 0x24, 0x2B, 0x22, 0x24, 0x27,
- 0x36, 0x27, 0x27, 0x56, 0x56, 0xB9, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0x56, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56, 0x4C, 0x36,
- 0x66, 0xD3, 0x27, 0x2F, 0x27, 0x54, 0x54, 0x27,
- 0x26, 0x6B, 0x20, 0x20, 0x20, 0x20, 0x6B, 0x63,
- 0x35, 0x35, 0x35, 0x62, 0xCB, 0x2A, 0x3F, 0x28,
- 0x2B, 0x2A, 0x50, 0x29, 0x33, 0x30, 0x54, 0x25,
- 0x24, 0x20, 0x29, 0x2C, 0x2C, 0x2A, 0x21, 0x33,
- 0xC4, 0xC4, 0x33, 0x21, 0x29, 0x22, 0x27, 0x27,
- 0x99, 0x27, 0x31, 0xB9, 0xB9, 0xB9, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0x56, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56, 0x56, 0x3D,
- 0x3D, 0x3C, 0x3C, 0x55, 0x54, 0x54, 0x54, 0x20,
- 0x27, 0x2C, 0x39, 0x20, 0x20, 0x20, 0x20, 0x48,
- 0x30, 0x62, 0x35, 0x35, 0x42, 0x54, 0x39, 0x39,
- 0x2C, 0x28, 0x3F, 0x8B, 0x20, 0x33, 0x54, 0x24,
- 0x22, 0x2B, 0x2C, 0x2C, 0x2C, 0x2B, 0x24, 0x54,
- 0x30, 0xC4, 0x25, 0x2B, 0x28, 0x2B, 0x27, 0x3D,
- 0x27, 0x27, 0x56, 0xB9, 0xB9, 0xB9, 0xB9, 0x56,
- 0xB9, 0xB9, 0x56, 0x56, 0x4F, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0x56, 0x56, 0x27,
- 0x20, 0x20, 0x20, 0x54, 0x54, 0x54, 0x54, 0x20,
- 0x20, 0x2D, 0x2D, 0x29, 0x20, 0x20, 0x20, 0x20,
- 0x48, 0x60, 0x66, 0x35, 0x62, 0x34, 0x22, 0x2C,
- 0x2C, 0x3F, 0x6B, 0x48, 0x2C, 0x22, 0x23, 0x23,
- 0x20, 0x2A, 0x2C, 0x29, 0x29, 0x20, 0x25, 0xC4,
- 0x30, 0x54, 0x22, 0x29, 0x28, 0xD2, 0x27, 0x35,
- 0x27, 0x49, 0x56, 0xB9, 0xB9, 0xB9, 0xB9, 0x56,
- 0xB9, 0xB9, 0x56, 0x4F, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0x56, 0x56, 0x56, 0x40, 0x20,
- 0x20, 0x54, 0x54, 0x54, 0x20, 0x20, 0x20, 0x20,
- 0x2D, 0x2D, 0x2D, 0x49, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x6B, 0x6C, 0x42, 0x2E, 0xB6, 0x54, 0x28,
- 0x29, 0x2C, 0x6B, 0x48, 0x3F, 0x2A, 0x20, 0x22,
- 0x2B, 0x28, 0x2C, 0x28, 0x29, 0x20, 0x33, 0x30,
- 0x30, 0x54, 0x20, 0x2C, 0x29, 0x27, 0x27, 0x3D,
- 0x27, 0x40, 0x56, 0xB9, 0x56, 0x56, 0xB9, 0x56,
- 0xB9, 0x56, 0x56, 0x4D, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0x56, 0x56, 0x63, 0x56, 0x54, 0x54,
- 0x54, 0x54, 0x20, 0xD3, 0x45, 0x51, 0x51, 0x49,
- 0x7C, 0x2D, 0x2D, 0x49, 0x49, 0x20, 0x20, 0x20,
- 0x20, 0x2A, 0x2A, 0xCC, 0xB6, 0x8A, 0x60, 0x22,
- 0x28, 0x29, 0x3F, 0x6B, 0x39, 0x29, 0x2B, 0x20,
- 0x28, 0x2C, 0x28, 0x2A, 0x2A, 0x24, 0xC4, 0x30,
- 0xC4, 0x33, 0x2B, 0x39, 0xCD, 0x27, 0x3C, 0x27,
- 0x27, 0x56, 0xB9, 0x56, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0x56, 0x56, 0x4D, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0x56, 0x63, 0x63, 0x49, 0x2D, 0x20,
- 0x20, 0x2D, 0xD3, 0x49, 0x66, 0x2D, 0x49, 0x49,
- 0x49, 0x49, 0x49, 0x49, 0x49, 0x8B, 0x2B, 0x20,
- 0x20, 0x20, 0x39, 0x23, 0x6C, 0xAF, 0xCB, 0x23,
- 0x28, 0x28, 0x29, 0x2A, 0x2A, 0x2A, 0x2A, 0x20,
- 0x29, 0x39, 0x2B, 0x2B, 0x2B, 0x25, 0x78, 0xC4,
- 0x63, 0x23, 0x29, 0x39, 0x27, 0x27, 0x3D, 0x27,
- 0x27, 0x56, 0xB9, 0x56, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0x56, 0x56, 0x80, 0x4F, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0xB9, 0x2D, 0x49, 0x2D, 0x49,
- 0x49, 0x2D, 0x49, 0x2D, 0x49, 0x2D, 0x2D, 0x2D,
- 0x49, 0x49, 0x35, 0x49, 0x2D, 0x2D, 0x39, 0x28,
- 0x20, 0x20, 0x2A, 0x28, 0x33, 0x60, 0xC4, 0x22,
- 0x2C, 0x2A, 0x2A, 0x22, 0x23, 0x22, 0x20, 0x21,
- 0x2C, 0x29, 0x20, 0x2B, 0x2B, 0x54, 0x30, 0xC4,
- 0x63, 0x22, 0x2C, 0x27, 0x27, 0x27, 0x3D, 0x27,
- 0x27, 0x56, 0x56, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0x56, 0x56, 0x80, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0xB9, 0x2D, 0x49, 0x2D, 0x49,
- 0x61, 0x49, 0x2D, 0x49, 0x49, 0x2D, 0x2D, 0x49,
- 0x49, 0x49, 0x2F, 0x49, 0x2D, 0x78, 0x29, 0x28,
- 0x2C, 0x2A, 0x2B, 0x39, 0x2B, 0x25, 0x33, 0x20,
- 0x2C, 0x20, 0x2A, 0x24, 0x54, 0x54, 0x23, 0x23,
- 0x2C, 0x2A, 0x22, 0x2B, 0x20, 0x63, 0x30, 0x63,
- 0xC4, 0x21, 0x39, 0x27, 0x27, 0x27, 0x35, 0x36,
- 0x27, 0x56, 0x56, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0x56, 0x80, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0x56, 0x2D, 0x49, 0x49, 0x49,
- 0x49, 0x27, 0x27, 0x2D, 0x38, 0x27, 0x36, 0x36,
- 0x49, 0x27, 0x49, 0x2D, 0x2D, 0x44, 0x24, 0x2B,
- 0x20, 0x2C, 0x3F, 0x6B, 0x2A, 0x20, 0x21, 0x28,
- 0x2C, 0x20, 0x2B, 0x24, 0x30, 0xCB, 0x63, 0x54,
- 0x28, 0x20, 0x24, 0x2B, 0x23, 0x78, 0xC4, 0x63,
- 0x63, 0x2B, 0x3F, 0x27, 0x27, 0x27, 0x38, 0x33,
- 0x3D, 0xB9, 0x56, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0x56, 0x80, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0x56, 0x63, 0x49, 0x49, 0x49,
- 0x49, 0x49, 0x3D, 0x3D, 0x27, 0x27, 0x27, 0x2D,
- 0x49, 0x49, 0x49, 0x2D, 0x62, 0x5F, 0xC4, 0x20,
- 0x22, 0x2A, 0x6B, 0x8B, 0x2C, 0x2B, 0x2A, 0x3F,
- 0x3F, 0x2A, 0x21, 0x21, 0xCB, 0x58, 0x6C, 0x60,
- 0x20, 0x23, 0x24, 0x2A, 0x25, 0x78, 0x63, 0x63,
- 0x54, 0x2A, 0x28, 0x27, 0x27, 0x27, 0x27, 0x62,
- 0x3C, 0xB9, 0x56, 0x56, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0x56, 0x56, 0x80, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0x49, 0x2D, 0x2D,
- 0x2D, 0x3D, 0x2F, 0x3C, 0x2D, 0x3C, 0x27, 0x38,
- 0x2D, 0x49, 0x2D, 0x2D, 0xD1, 0x43, 0x30, 0x20,
- 0x24, 0x21, 0x21, 0x21, 0x2B, 0x2A, 0x29, 0x8B,
- 0x6B, 0x29, 0x2B, 0x2A, 0x30, 0x55, 0x55, 0x34,
- 0x22, 0x23, 0x24, 0x29, 0x54, 0x30, 0x63, 0x63,
- 0x25, 0x29, 0x22, 0x3C, 0xA5, 0xD4, 0xD5, 0x27,
- 0x31, 0x56, 0x56, 0x56, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0x56, 0x56, 0x80, 0xB9, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0x56, 0x2D, 0x2E,
- 0x3E, 0x27, 0x27, 0x27, 0x27, 0x27, 0x36, 0x44,
- 0x3C, 0x27, 0x2D, 0xC4, 0x78, 0xCC, 0x54, 0x2B,
- 0x25, 0x24, 0x63, 0x60, 0x63, 0x24, 0x2A, 0x6B,
- 0x3F, 0x39, 0x28, 0x21, 0x33, 0xB6, 0x44, 0x58,
- 0x22, 0x23, 0x24, 0x2A, 0x30, 0x30, 0x63, 0x63,
- 0x24, 0x39, 0x22, 0xBB, 0x9C, 0xB2, 0x9D, 0xA8,
- 0x27, 0x8B, 0x56, 0x56, 0xB9, 0x56, 0xB9, 0xB9,
- 0x56, 0xB9, 0x56, 0x80, 0xB9, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0x56, 0x56, 0xD6, 0xD6, 0xD7,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x32,
- 0x3D, 0x27, 0x39, 0x33, 0xC4, 0xC4, 0x22, 0x28,
- 0x25, 0x54, 0x30, 0xD1, 0xD1, 0x60, 0x23, 0x6B,
- 0x3F, 0x39, 0x2C, 0x2B, 0x20, 0x58, 0x8A, 0x58,
- 0x22, 0x23, 0x23, 0x2B, 0x78, 0x30, 0xC4, 0xC4,
- 0x23, 0x29, 0xBB, 0xBB, 0xD8, 0xB2, 0x9D, 0xA9,
- 0xA9, 0x3C, 0x60, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9,
- 0x56, 0xB9, 0x56, 0x80, 0xB9, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0xB9, 0x56, 0xD9, 0x85, 0x85, 0x85,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x2D,
- 0xA0, 0x83, 0x2C, 0x21, 0x30, 0x33, 0x29, 0x29,
- 0x21, 0x33, 0x54, 0x42, 0x66, 0x55, 0xC4, 0x29,
- 0x8B, 0x2C, 0x39, 0x28, 0x29, 0x31, 0x44, 0x58,
- 0x23, 0x23, 0x21, 0x20, 0x30, 0xC4, 0xC4, 0x30,
- 0x21, 0x20, 0xBB, 0xBC, 0xDA, 0xDB, 0xDC, 0xB2,
- 0x83, 0xB4, 0x3C, 0x2F, 0xB9, 0x56, 0x56, 0xB9,
- 0x56, 0xB9, 0x56, 0x80, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0x56, 0x56, 0x56, 0xA7, 0xD4, 0x85, 0x82,
- 0x3C, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x61,
- 0x9E, 0x90, 0xDD, 0x21, 0x33, 0x25, 0x2C, 0x39,
- 0x2A, 0x24, 0x24, 0x42, 0x62, 0x43, 0x34, 0x22,
- 0x50, 0x39, 0x2C, 0x2C, 0x2A, 0x54, 0xD1, 0x58,
- 0x22, 0x22, 0x2B, 0x22, 0x30, 0xC4, 0x30, 0x60,
- 0x20, 0xDE, 0xBB, 0xD9, 0x84, 0x84, 0xDF, 0xA9,
- 0xDB, 0xDB, 0x61, 0x27, 0x38, 0x4D, 0x56, 0x56,
- 0x56, 0xB9, 0x56, 0xB9, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0x56, 0x56, 0x56, 0x8D, 0xD9, 0xD5, 0xA6,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0xBB,
- 0x85, 0xDB, 0xDD, 0x21, 0x22, 0x22, 0x3F, 0x39,
- 0x2C, 0x2B, 0x25, 0x34, 0x62, 0x66, 0xD1, 0xC4,
- 0x6B, 0x39, 0x2C, 0x39, 0x29, 0x21, 0x58, 0xCC,
- 0x22, 0x21, 0x29, 0x23, 0x30, 0x30, 0x30, 0x5E,
- 0x82, 0xBB, 0xE0, 0xB1, 0xE1, 0x9C, 0xD4, 0xDC,
- 0x9D, 0xA9, 0xE2, 0x27, 0x27, 0x27, 0x4D, 0x56,
- 0x56, 0xB9, 0x56, 0xB9, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0x56, 0x4C, 0x48, 0xA8, 0xA8, 0xE3, 0x8C,
- 0xC6, 0x3C, 0x27, 0x27, 0x27, 0xE4, 0xA6, 0xE5,
- 0x83, 0xA9, 0xE6, 0xAF, 0x54, 0x2B, 0x8B, 0x39,
- 0x39, 0x29, 0x20, 0x54, 0x42, 0x42, 0xB6, 0xCC,
- 0x2A, 0x29, 0x39, 0x39, 0x2C, 0x2C, 0xCC, 0xCC,
- 0x22, 0x20, 0x39, 0xE7, 0xC0, 0xD9, 0xA7, 0xBC,
- 0x8D, 0xAA, 0x9C, 0xE8, 0x9C, 0x9D, 0xD4, 0xD4,
- 0xD8, 0xA9, 0x84, 0xC7, 0x27, 0x27, 0x27, 0x2A,
- 0x56, 0x56, 0x56, 0xB9, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0x56, 0x56, 0x48, 0x50, 0xAA, 0xE3, 0xE3, 0xC0,
- 0xA6, 0x9A, 0xBA, 0xC8, 0x9A, 0xDE, 0x9B, 0xD5,
- 0xE8, 0xD8, 0xD5, 0x2E, 0x58, 0x33, 0x6B, 0x39,
- 0x2C, 0x39, 0x29, 0x28, 0xD1, 0x43, 0xB6, 0xAF,
- 0x23, 0x28, 0x2C, 0x39, 0x39, 0x8B, 0x30, 0x31,
- 0x21, 0x20, 0x3F, 0xBB, 0xDF, 0xDF, 0xD5, 0xA8,
- 0xD5, 0x9C, 0x8E, 0xB2, 0x9D, 0xE9, 0xD4, 0xD8,
- 0x90, 0xB2, 0xA9, 0x8F, 0x27, 0x27, 0x27, 0x27,
- 0x2F, 0x56, 0x56, 0xB9, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0x56, 0xB9, 0x48, 0x48, 0x75, 0xE3, 0xAA, 0xAA,
- 0xC0, 0xB4, 0xB4, 0xB4, 0x75, 0x9B, 0xD9, 0x83,
- 0x9D, 0x90, 0xDF, 0xDD, 0x8A, 0x31, 0x4B, 0x2C,
- 0x2C, 0x29, 0x2C, 0x3F, 0x6C, 0x55, 0xD1, 0x55,
- 0x54, 0x29, 0x28, 0x39, 0x39, 0x6B, 0x24, 0x60,
- 0x20, 0x2B, 0x3F, 0xA7, 0xB1, 0x9D, 0xA9, 0x8E,
- 0xE5, 0xE5, 0xDF, 0xE0, 0xA9, 0x9D, 0xDF, 0xDF,
- 0xEA, 0x9D, 0xB2, 0x84, 0xAA, 0x27, 0x27, 0x27,
- 0x27, 0x35, 0x56, 0x56, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0xB9, 0x48, 0x48, 0xA6, 0x9B, 0xE3, 0xAA,
- 0xAA, 0x9B, 0x9B, 0x9B, 0xAA, 0xE3, 0xD5, 0xD4,
- 0x9D, 0xA9, 0xA9, 0x9D, 0xEB, 0xAF, 0x23, 0x28,
- 0x2C, 0x29, 0x28, 0x39, 0x54, 0xCC, 0xAF, 0x55,
- 0x30, 0x29, 0x2B, 0x2C, 0x39, 0x39, 0x2B, 0xC4,
- 0x2B, 0x29, 0x39, 0xA7, 0x8E, 0x9D, 0x83, 0xE5,
- 0xB1, 0xDB, 0xDC, 0xE0, 0xDC, 0x84, 0xE9, 0x84,
- 0x83, 0xD4, 0xEC, 0x83, 0x8F, 0xE4, 0x27, 0x27,
- 0x27, 0x27, 0x56, 0x56, 0x56, 0x56, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0xB9, 0x56, 0x40, 0x50, 0x9A, 0x75, 0xE3, 0xE3,
- 0xE3, 0xD9, 0x8D, 0xAA, 0xD9, 0xA8, 0xB2, 0xDC,
- 0xB2, 0x8D, 0x84, 0xEA, 0xB1, 0xEB, 0x54, 0x29,
- 0x28, 0x2C, 0x2A, 0x28, 0x2B, 0x78, 0xCC, 0x58,
- 0xCB, 0x20, 0x20, 0x29, 0x39, 0x39, 0x2C, 0x25,
- 0x29, 0x2C, 0x39, 0xBB, 0xD9, 0xD9, 0x9D, 0x9D,
- 0xB2, 0xB1, 0xD4, 0xDB, 0xB1, 0x9D, 0xD4, 0xEA,
- 0xB1, 0x8D, 0xD8, 0x8E, 0x8F, 0xAA, 0x27, 0x27,
- 0x27, 0x3D, 0x56, 0xB9, 0x56, 0xB9, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0x56,
- 0x56, 0x56, 0x47, 0xE4, 0xA6, 0x75, 0xAA, 0xA8,
- 0x9C, 0x9C, 0xE1, 0x9C, 0x9C, 0x8E, 0xD8, 0x9D,
- 0xA9, 0xDB, 0xA9, 0xDC, 0xD8, 0xDA, 0xD4, 0x2B,
- 0x20, 0x2C, 0x28, 0x2A, 0x28, 0x63, 0x31, 0x58,
- 0xCB, 0x24, 0x20, 0x2B, 0x2C, 0x39, 0x6B, 0x21,
- 0x39, 0x6B, 0x2C, 0xC0, 0xE0, 0xB1, 0xB2, 0x9D,
- 0x8E, 0xD8, 0xE0, 0xD9, 0x84, 0xDB, 0xD8, 0xB1,
- 0x8E, 0xB2, 0xE2, 0x9C, 0x83, 0x9E, 0xBC, 0x3D,
- 0xD3, 0x56, 0x56, 0xB9, 0x56, 0xB9, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0xB9, 0xB9,
- 0x56, 0x4F, 0x27, 0x61, 0xA6, 0x9B, 0xE3, 0xA9,
- 0xE9, 0xD4, 0xDA, 0xDB, 0x8E, 0xE1, 0xE9, 0x8E,
- 0xD4, 0xA8, 0xE0, 0x84, 0xE8, 0xB1, 0xDC, 0x9D,
- 0x20, 0x29, 0x29, 0x2B, 0x2C, 0x54, 0x78, 0xCC,
- 0x78, 0x33, 0x2A, 0x20, 0x29, 0x39, 0x50, 0x2A,
- 0x6B, 0x8B, 0x39, 0xC0, 0x8D, 0xB1, 0xE9, 0xA9,
- 0xB2, 0xDC, 0x8E, 0xDC, 0xE1, 0xDA, 0xA9, 0x8E,
- 0xEA, 0xE2, 0x83, 0xE8, 0x8E, 0x83, 0xE2, 0xED,
- 0xB9, 0xB9, 0x56, 0xB9, 0x56, 0xB9, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0x56, 0x56, 0xB9,
- 0xC9, 0x27, 0x27, 0xE4, 0xA6, 0x9B, 0xD5, 0xA8,
- 0xD4, 0xB2, 0xD8, 0xDA, 0xD9, 0xE8, 0xE9, 0xE8,
- 0xD8, 0xB1, 0xDA, 0xB2, 0xE9, 0x8E, 0xEC, 0xDA,
- 0x22, 0x20, 0x39, 0x2B, 0x39, 0x24, 0xC4, 0x30,
- 0x30, 0x54, 0x22, 0x29, 0x29, 0x39, 0x48, 0x2C,
- 0x39, 0x6B, 0x39, 0xC0, 0x8D, 0xB1, 0xE9, 0xB2,
- 0xB2, 0x8E, 0xA9, 0xD8, 0xDA, 0xB1, 0xA9, 0xDA,
- 0x9C, 0xDC, 0x8E, 0xD4, 0xE8, 0xE8, 0x8F, 0x9B,
- 0x4F, 0xB9, 0x56, 0xB9, 0x56, 0xB9, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0x56, 0x56, 0x4F, 0x6B,
- 0x27, 0x27, 0x27, 0xD7, 0xDE, 0xAA, 0xE3, 0xA8,
- 0xB2, 0xD5, 0xE5, 0x90, 0xE2, 0xA9, 0xE9, 0xB2,
- 0xDA, 0xB2, 0xE1, 0xB2, 0xE9, 0x8E, 0xDA, 0xDF,
- 0x78, 0x2A, 0x2C, 0x2A, 0x6B, 0x28, 0x23, 0x54,
- 0x63, 0xC4, 0x33, 0x28, 0x2C, 0x39, 0x47, 0x39,
- 0x28, 0x2C, 0x29, 0xBB, 0x8D, 0x83, 0xE9, 0xD4,
- 0xB2, 0xE9, 0xE9, 0xE8, 0xD4, 0xD8, 0xD4, 0xA9,
- 0xDA, 0xB2, 0xE9, 0xA8, 0xB2, 0xA8, 0xD5, 0xAA,
- 0xC6, 0x56, 0x56, 0x56, 0x56, 0x56, 0xB9, 0x56,
- 0x56, 0x56, 0x56, 0x56, 0x56, 0xC9, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0xB8, 0xB4, 0x9B, 0xE3, 0x8E,
- 0x9D, 0x8E, 0xB2, 0xE8, 0xE8, 0x8E, 0xB2, 0xDA,
- 0xB2, 0x8E, 0xEC, 0xB2, 0x8E, 0xB2, 0xBB, 0x58,
- 0xAF, 0x33, 0x50, 0x39, 0x6B, 0x39, 0x29, 0x20,
- 0x33, 0x30, 0x78, 0x23, 0x6B, 0x6B, 0x48, 0x6B,
- 0x2B, 0x2A, 0x29, 0xBB, 0xE5, 0x9C, 0xB1, 0xB2,
- 0xE5, 0x84, 0x8E, 0x9C, 0x84, 0xB2, 0xB2, 0x9D,
- 0x84, 0xDF, 0xA9, 0x84, 0x8E, 0xA8, 0xE3, 0x9B,
- 0xA6, 0xD7, 0x80, 0x4F, 0x56, 0x56, 0x56, 0x4F,
- 0x4F, 0x4F, 0x4F, 0x2A, 0x2D, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0xB8, 0xB4, 0xAA, 0xD5, 0xA9,
- 0x9D, 0xB2, 0x90, 0xEA, 0xE9, 0xE2, 0xE1, 0x8E,
- 0xB2, 0x9D, 0x8E, 0xB1, 0xA7, 0xEE, 0x63, 0xD1,
- 0x2E, 0xCC, 0x28, 0x48, 0x8B, 0x47, 0x6B, 0x28,
- 0x23, 0x78, 0x6C, 0x54, 0x29, 0x50, 0x50, 0x6B,
- 0x23, 0x20, 0xBB, 0xBC, 0xBB, 0x8D, 0xE3, 0xDF,
- 0x9C, 0xA9, 0x8D, 0xA8, 0xD9, 0x90, 0x9D, 0xA9,
- 0xDC, 0xA9, 0x83, 0xB2, 0xA9, 0xD4, 0xE3, 0x9B,
- 0x8C, 0xEF, 0x27, 0x27, 0x27, 0x3C, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0xF0, 0xB4, 0x9B, 0xE3, 0x84,
- 0x9D, 0x84, 0x90, 0xB1, 0xA9, 0x9C, 0xD9, 0xB1,
- 0xB2, 0xEA, 0xBB, 0x51, 0x24, 0x30, 0x30, 0x42,
- 0x66, 0x58, 0x24, 0x48, 0x50, 0x3F, 0x20, 0x25,
- 0x22, 0x60, 0x34, 0x30, 0x20, 0x8B, 0x8B, 0x39,
- 0x54, 0x24, 0x2B, 0xC0, 0xC0, 0xC0, 0xBB, 0x9B,
- 0xBC, 0xAA, 0xAA, 0xE3, 0xE3, 0x9C, 0xB2, 0xD4,
- 0x83, 0xD8, 0xE8, 0x83, 0x84, 0xE8, 0xE5, 0x75,
- 0x9A, 0xF0, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0xF0, 0xB4, 0x9B, 0xE3, 0xA8,
- 0xA9, 0xD8, 0x8E, 0xEA, 0xA8, 0x9C, 0xD9, 0xE0,
- 0xC0, 0x5E, 0x2C, 0x20, 0x54, 0x60, 0x30, 0x66,
- 0xB6, 0xCC, 0x63, 0x3F, 0x8B, 0x28, 0x22, 0x33,
- 0x23, 0x31, 0xAF, 0x31, 0x22, 0x6B, 0x6B, 0x29,
- 0x30, 0x54, 0x22, 0x89, 0xBA, 0xED, 0xA6, 0x8C,
- 0xB4, 0xC0, 0xB4, 0x75, 0x75, 0x9B, 0x9B, 0xE5,
- 0xA9, 0xD5, 0x8E, 0x8E, 0x9C, 0xE3, 0x75, 0x8C,
- 0xC8, 0xF1, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0xF1, 0x9A, 0xB4, 0x9B, 0xE3,
- 0xE3, 0xA8, 0xE3, 0xE5, 0xAA, 0xBC, 0xC0, 0x9A,
- 0x26, 0x29, 0x20, 0x24, 0x63, 0x60, 0x54, 0x43,
- 0x34, 0xCB, 0x30, 0x39, 0x2C, 0x20, 0x24, 0x54,
- 0x22, 0x34, 0x34, 0x31, 0x24, 0x3F, 0x2C, 0x2B,
- 0x31, 0x30, 0x25, 0x2A, 0x6B, 0x29, 0x20, 0xF2,
- 0xBA, 0xBF, 0xC8, 0x9A, 0xA6, 0xA6, 0x8C, 0xB4,
- 0x9B, 0xAA, 0xAA, 0xAA, 0x9B, 0x75, 0xDE, 0xBF,
- 0x81, 0xEF, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
- 0x27, 0x27, 0x27, 0xEF, 0xBA, 0x9A, 0xB4, 0x75,
- 0x9B, 0x9B, 0x9B, 0xC0, 0xB4, 0x9A, 0xA5, 0xC4,
- 0x30, 0x28, 0x22, 0x33, 0x30, 0x30, 0x23, 0x34,
- 0x31, 0x30, 0xC4, 0x2C, 0x2B, 0x22, 0x33, 0x63,
- 0x21, 0x58, 0x6C, 0x60, 0x25, 0x39, 0x28, 0x2B,
- 0xCC, 0x6C, 0x63, 0x20, 0x6B, 0x28, 0x2B, 0x20,
- 0x63, 0x43, 0xF3, 0xEF, 0xF0, 0x81, 0xBA, 0xF4,
- 0xF4, 0xA6, 0xDE, 0x8C, 0xA6, 0x9A, 0xBA, 0x81,
- 0xB0, 0xE4, 0xA1, 0x20, 0x20, 0x23, 0x31, 0xC4,
- 0x30, 0x24, 0x33, 0x31, 0x31, 0x60, 0x43, 0x35,
- 0x35, 0x55, 0x6C, 0xEF, 0x81, 0xC8, 0x9A, 0xA6,
- 0xB4, 0xB4, 0x8C, 0xA6, 0xBA, 0x68, 0x30, 0x30,
- 0x30, 0x2B, 0x25, 0x54, 0xC4, 0x54, 0x24, 0x78,
- 0x63, 0x63, 0x30, 0x29, 0x21, 0x24, 0x54, 0x63,
- 0x23, 0x34, 0xCB, 0x30, 0x25, 0x39, 0x20, 0x20,
- 0x58, 0x34, 0x60, 0x23, 0x6B, 0x29, 0x28, 0x20,
- 0x22, 0xB6, 0x42, 0xB6, 0x58, 0x54, 0xF5, 0xD7,
- 0xA5, 0xBA, 0xBA, 0xBA, 0xBA, 0x81, 0xA5, 0xF1,
- 0xE4, 0x2A, 0x39, 0x20, 0x20, 0x20, 0x31, 0x60,
- 0x54, 0x28, 0x2B, 0x22, 0x33, 0x30, 0x43, 0x35,
- 0x66, 0xD1, 0x34, 0xE4, 0xEF, 0x81, 0xC8, 0x9A,
- 0x9A, 0xC8, 0xC8, 0x81, 0xF6, 0x31, 0x63, 0x31,
- 0x78, 0x2B, 0x54, 0x63, 0x54, 0x24, 0x23, 0x54,
- 0x63, 0x54, 0x63, 0x2C, 0x23, 0x33, 0x63, 0x54,
- 0x25, 0x31, 0x78, 0x30, 0x25, 0x3F, 0x20, 0x20,
- 0xAF, 0x58, 0xCC, 0x33, 0x39, 0x29, 0x29, 0x2A,
- 0x29, 0x58, 0x43, 0x42, 0xD1, 0xCB, 0x2C, 0x2C,
- 0x37, 0xCD, 0xEF, 0xB0, 0xF0, 0xB0, 0xEF, 0xE4,
- 0x63, 0x20, 0x20, 0x2C, 0x2C, 0x21, 0xCB, 0x78,
- 0x54, 0x39, 0x39, 0x28, 0x2B, 0x28, 0x2B, 0xCB,
- 0x55, 0xB6, 0xD1, 0x28, 0xE4, 0xD7, 0xB8, 0xF0,
- 0xA5, 0xB0, 0xEF, 0x26, 0x23, 0x54, 0x31, 0x58,
- 0xCB, 0x20, 0x63, 0x63, 0x25, 0x2B, 0x54, 0x78,
- 0x30, 0x63, 0x54, 0x28, 0x33, 0x63, 0x63, 0x33,
- 0x54, 0x78, 0xC4, 0x30, 0x24, 0x2C, 0x22, 0x22,
- 0x55, 0x55, 0x34, 0x30, 0x28, 0x2C, 0x29, 0x29,
- 0x28, 0x30, 0xB6, 0x42, 0x43, 0x55, 0x22, 0x29,
- 0x2C, 0x2B, 0x2B, 0x3F, 0xE4, 0xE4, 0x43, 0x66,
- 0x30, 0x23, 0x24, 0x2A, 0x28, 0x2B, 0x54, 0x63,
- 0x33, 0x39, 0x28, 0x20, 0x20, 0x20, 0x2B, 0x31,
- 0x30, 0xD1, 0x43, 0x30, 0x39, 0x28, 0xE4, 0xE4,
- 0xD7, 0xF5, 0x2B, 0x6B, 0x20, 0x30, 0x34, 0xD1,
- 0x60, 0x23, 0x63, 0x54, 0x22, 0x47, 0x60, 0xCB,
- 0xC4, 0xC4, 0x25, 0x22, 0x54, 0xC4, 0x63, 0x23,
- 0xC4, 0xC4, 0x63, 0xC4, 0x23, 0x2A, 0x24, 0x22,
- 0x55, 0x55, 0xAF, 0x6C, 0x22, 0x39, 0x2C, 0x39,
- 0x28, 0x23, 0xD1, 0x43, 0x42, 0x8A, 0x63, 0x39,
- 0x39, 0x2A, 0x20, 0x6B, 0x33, 0xCC, 0xD1, 0xB6,
- 0x30, 0x24, 0x54, 0x63, 0x31, 0xCC, 0xCC, 0xCB,
- 0xC4, 0x2A, 0x39, 0x20, 0x20, 0x20, 0x39, 0x30,
- 0x30, 0x6C, 0x43, 0x43, 0x6C, 0x63, 0x25, 0x24,
- 0x63, 0x63, 0x63, 0x25, 0x63, 0xCC, 0xD1, 0x34,
- 0x63, 0x25, 0x54, 0x25, 0x2A, 0x28, 0x31, 0xCB,
- 0x63, 0x78, 0x24, 0x33, 0xC4, 0xC4, 0x33, 0x2C,
- 0xC4, 0x54, 0x54, 0x30, 0x21, 0x22, 0x25, 0x23,
- 0x55, 0x55, 0xD1, 0x58, 0x33, 0x6B, 0x2C, 0x39,
- 0x39, 0x39, 0x34, 0x43, 0x42, 0x43, 0xCC, 0x2B,
- 0x28, 0x29, 0x20, 0x28, 0x21, 0x30, 0xCC, 0xAF,
- 0x54, 0x23, 0xC4, 0x54, 0x58, 0x2E, 0x35, 0x42,
- 0x55, 0x54, 0x8B, 0x2A, 0x20, 0x20, 0x28, 0x22,
- 0x78, 0x30, 0xD1, 0x43, 0x44, 0x6C, 0xC4, 0xC4,
- 0x60, 0x31, 0x31, 0x63, 0x6C, 0xAF, 0xCC, 0xCB,
- 0x24, 0x25, 0x33, 0x23, 0x2C, 0x24, 0x31, 0x30,
- 0x63, 0xC4, 0x21, 0x54, 0x30, 0x63, 0x24, 0x2A,
- 0x54, 0x63, 0x54, 0xC4, 0x2B, 0x24, 0x33, 0x24,
- 0x34, 0x55, 0xD1, 0x55, 0x30, 0x28, 0x29, 0x39,
- 0x39, 0x8B, 0x63, 0x55, 0x42, 0x66, 0xB6, 0x25,
- 0x29, 0x29, 0x29, 0x28, 0x2A, 0x54, 0x78, 0x6C,
- 0x23, 0x20, 0x25, 0x30, 0xCB, 0x62, 0x35, 0x35,
- 0x35, 0x44, 0x24, 0x6B, 0x29, 0x20, 0x2A, 0x39,
- 0x28, 0x63, 0x34, 0xB6, 0x34, 0xCB, 0x63, 0x30,
- 0x31, 0x31, 0x30, 0x30, 0xCC, 0x60, 0x63, 0xC4,
- 0x20, 0x33, 0x25, 0x20, 0x48, 0x33, 0x30, 0x54,
- 0x78, 0x54, 0x2B, 0x63, 0x30, 0x63, 0x23, 0x22,
- 0x63, 0x63, 0x63, 0x33, 0x28, 0x25, 0x54, 0x24,
- 0x78, 0xAF, 0xD1, 0xD1, 0xCC, 0x22, 0x39, 0x39,
- 0x2C, 0x3F, 0x2B, 0x34, 0xB6, 0x43, 0x43, 0xC4,
- 0x2B, 0x28, 0x39, 0x50, 0x2C, 0x24, 0x63, 0x78,
- 0x21, 0x2C, 0x2A, 0x23, 0x54, 0xD1, 0x35, 0x35,
- 0x35, 0x35, 0x55, 0x22, 0x39, 0x2C, 0x2C, 0x2C,
- 0x20, 0x30, 0xCC, 0x6C, 0xCB, 0x30, 0x54, 0x30,
- 0x78, 0x63, 0x78, 0x30, 0x54, 0x78, 0x30, 0x23,
- 0x2B, 0x33, 0x24, 0x28, 0x39, 0x24, 0x54, 0x30,
- 0x78, 0x33, 0x25, 0xC4, 0xC4, 0x33, 0x39, 0x25,
- 0xC4, 0x63, 0xC4, 0x24, 0x20, 0x54, 0x54, 0x25,
- 0x63, 0xCC, 0xD1, 0xB6, 0x55, 0x54, 0x39, 0x29,
- 0x39, 0x2C, 0x6B, 0x30, 0xAF, 0xB6, 0xB6, 0x60,
- 0x22, 0x2A, 0x2C, 0x39, 0x2C, 0x21, 0x54, 0x63,
- 0x21, 0x50, 0x2C, 0x2C, 0x2B, 0x25, 0x62, 0x35,
- 0x35, 0x35, 0x35, 0xCC, 0x2B, 0x29, 0x2B, 0x20,
- 0x23, 0x25, 0xC4, 0x30, 0xC4, 0x63, 0x63, 0x63,
- 0x63, 0x33, 0x24, 0x31, 0x31, 0x31, 0x54, 0x28,
- 0x24, 0x25, 0x22, 0x6B, 0x28, 0x24, 0xC4, 0x78,
- 0x30, 0x24, 0x63, 0xC4, 0x54, 0x23, 0x29, 0x63,
- 0xC4, 0x54, 0xC4, 0x21, 0x24, 0x54, 0x54, 0x25,
- 0x30, 0xCB, 0xD1, 0xB6, 0x55, 0x63, 0x28, 0x29,
- 0x39, 0x39, 0x48, 0x33, 0x58, 0x44, 0xB6, 0x60,
- 0x24, 0x20, 0x2B, 0x28, 0x2A, 0x22, 0x54, 0x63,
- 0x21, 0x48, 0x2A, 0x2B, 0x39, 0x21, 0xB6, 0x35,
- 0x35, 0x35, 0x35, 0x42, 0x23, 0x29, 0x2A, 0x2B,
- 0x23, 0x25, 0x54, 0x54, 0x54, 0x63, 0x63, 0x30,
- 0x25, 0x2B, 0x31, 0x31, 0x31, 0x31, 0x21, 0x2C,
- 0x33, 0x25, 0x21, 0x39, 0x20, 0x25, 0x30, 0x78,
- 0xC4, 0x23, 0xC4, 0x30, 0x54, 0x20, 0x28, 0x63,
- 0x63, 0x63, 0x63, 0x20, 0x25, 0x54, 0x54, 0x20,
-};
-
-unsigned char linux_logo_bw[] __initdata = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x3F,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F,
- 0xFE, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFE, 0x3F, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xC7, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xC3,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF,
- 0xFB, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFD, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF1,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF,
- 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xF9, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xF9, 0xCF, 0xC3, 0xF8, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x87, 0x81, 0xF9,
- 0xF8, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xA7,
- 0x99, 0xF9, 0xC2, 0x40, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xF9, 0xF3, 0xBC, 0xF9, 0x90, 0x00, 0x1F, 0xFF,
- 0xFF, 0xFF, 0xF9, 0xE3, 0xBC, 0xF9, 0xA0, 0x00,
- 0x8F, 0xFF, 0xFF, 0xFF, 0xF9, 0xB0, 0x3C, 0xF9,
- 0x83, 0xE0, 0x2F, 0xFF, 0xFF, 0xFF, 0xF9, 0xB0,
- 0x19, 0xF0, 0x1F, 0xFE, 0x0F, 0xFF, 0xFF, 0xFF,
- 0xF9, 0xC0, 0x03, 0xF0, 0x3F, 0xF7, 0x8F, 0xFF,
- 0xFF, 0xFF, 0xF9, 0x80, 0x01, 0xF8, 0x7F, 0xF7,
- 0xC7, 0xFF, 0xFF, 0xFF, 0xF9, 0x80, 0x01, 0xF8,
- 0x6F, 0xF7, 0xE7, 0xFF, 0xFF, 0xFF, 0xF9, 0x80,
- 0x01, 0xF8, 0x7F, 0xF7, 0xE7, 0xFF, 0xFF, 0xFF,
- 0xF9, 0xC0, 0x21, 0xD8, 0x7F, 0xE7, 0xEF, 0xFF,
- 0xFF, 0xFF, 0xF9, 0xB1, 0x80, 0xEC, 0x7B, 0xFF,
- 0xEF, 0xFF, 0xFF, 0xFF, 0xF1, 0x90, 0x00, 0xE4,
- 0x7B, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xF1, 0x8C,
- 0xC0, 0x7C, 0x79, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF,
- 0xE3, 0x80, 0x00, 0x7C, 0x7C, 0xFF, 0xCF, 0xFF,
- 0xFF, 0xFF, 0xE3, 0x80, 0x00, 0x7F, 0x77, 0xFF,
- 0xDF, 0xFF, 0xFF, 0xFF, 0x87, 0x00, 0x00, 0x3F,
- 0x3F, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0x0E, 0x00,
- 0x00, 0x3F, 0xBF, 0xFF, 0x9F, 0xFF, 0xFF, 0xFF,
- 0x1E, 0x00, 0x00, 0x1F, 0x9F, 0xFF, 0x3F, 0xFF,
- 0xFF, 0xFE, 0x1C, 0x00, 0x00, 0x1F, 0x9F, 0xFF,
- 0x7F, 0xFF, 0xFF, 0xFE, 0x3C, 0x00, 0x00, 0x1F,
- 0x8F, 0xFE, 0x7F, 0xFF, 0xFF, 0xFC, 0x7C, 0x00,
- 0x00, 0x0F, 0xC7, 0xFC, 0xFF, 0xFF, 0xFF, 0xFC,
- 0xF8, 0x00, 0x00, 0x0F, 0xF7, 0xF9, 0xFF, 0xFF,
- 0xFF, 0xFC, 0xF8, 0x00, 0x00, 0x07, 0xFB, 0xF3,
- 0xFF, 0xFF, 0xFF, 0xF8, 0xF8, 0x00, 0x00, 0x07,
- 0xFD, 0xE7, 0xFF, 0xFF, 0xFF, 0xF9, 0xF0, 0x00,
- 0x00, 0x03, 0xFE, 0x8F, 0xFF, 0xFF, 0xFF, 0xF1,
- 0xF0, 0x00, 0x00, 0x03, 0xFE, 0x1F, 0xFF, 0xFF,
- 0xFF, 0xF1, 0xE0, 0x00, 0x00, 0x00, 0xFF, 0xBF,
- 0xFF, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x00, 0x00,
- 0xFE, 0xBF, 0xFF, 0xFF, 0xFF, 0xE3, 0xC0, 0x00,
- 0x00, 0x00, 0xFE, 0x3F, 0xFF, 0xFF, 0xFF, 0xC7,
- 0xC0, 0x00, 0x00, 0x01, 0xFE, 0xBF, 0xFF, 0xFF,
- 0xFF, 0xC7, 0x80, 0x00, 0x00, 0x01, 0xFE, 0x9F,
- 0xFF, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x00, 0x01,
- 0xFE, 0x07, 0xFF, 0xFF, 0xFF, 0x8F, 0x80, 0x00,
- 0x00, 0x01, 0xFE, 0x87, 0xFF, 0xFF, 0xFF, 0x9F,
- 0x80, 0x00, 0x00, 0x01, 0xFD, 0x33, 0xFF, 0xFF,
- 0xFF, 0x9F, 0x80, 0x00, 0x00, 0x01, 0x80, 0xF3,
- 0xFF, 0xFF, 0xFF, 0x9E, 0x80, 0x00, 0x00, 0x03,
- 0x8B, 0xF9, 0xFF, 0xFF, 0xFF, 0x9F, 0x80, 0x00,
- 0x00, 0x02, 0x27, 0xF8, 0xFF, 0xFF, 0xFF, 0x99,
- 0x80, 0x00, 0x00, 0x00, 0x07, 0xF8, 0xFF, 0xFF,
- 0xFF, 0x00, 0x80, 0x00, 0x00, 0x01, 0x8F, 0xF8,
- 0xFF, 0xFF, 0xFE, 0x20, 0x60, 0x00, 0x00, 0x00,
- 0xE3, 0xF8, 0xFF, 0xFF, 0xF8, 0x00, 0x30, 0x00,
- 0x00, 0x00, 0xF8, 0x78, 0xFF, 0xFF, 0xC0, 0x40,
- 0x38, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x7F, 0xFF,
- 0x81, 0x00, 0x1C, 0x00, 0x00, 0x00, 0xFC, 0x20,
- 0x7F, 0xFF, 0x90, 0x00, 0x1E, 0x00, 0x00, 0x00,
- 0x78, 0x10, 0xFF, 0xFF, 0x80, 0x00, 0x0F, 0x80,
- 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0x00,
- 0x07, 0xC0, 0x00, 0x00, 0x00, 0x08, 0xFF, 0xFF,
- 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x04,
- 0x7F, 0xFF, 0x80, 0x00, 0x03, 0xC0, 0x00, 0x10,
- 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x01, 0x80,
- 0x00, 0x30, 0x00, 0x00, 0x0F, 0xFF, 0x80, 0x00,
- 0x00, 0x00, 0x00, 0x70, 0x00, 0x01, 0x4F, 0xFF,
- 0x80, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00,
- 0x0F, 0xFF, 0xC0, 0x00, 0x00, 0x80, 0x03, 0xF0,
- 0x00, 0x00, 0x8F, 0xFF, 0x80, 0x00, 0x00, 0x40,
- 0x0F, 0xF0, 0x00, 0x04, 0x1F, 0xFF, 0x80, 0x00,
- 0x00, 0x7F, 0xFF, 0xF0, 0x00, 0x10, 0x1F, 0xFF,
- 0xC0, 0x00, 0x00, 0x7F, 0xFF, 0xF0, 0x00, 0x40,
- 0xFF, 0xFF, 0x98, 0x00, 0x00, 0xFF, 0xFF, 0xF0,
- 0x00, 0x83, 0xFF, 0xFF, 0x81, 0xE0, 0x01, 0xFF,
- 0xFF, 0xF8, 0x02, 0x07, 0xFF, 0xFF, 0x80, 0x3F,
- 0x07, 0xE0, 0x00, 0x1C, 0x0C, 0x1F, 0xFF, 0xFF,
- 0xF8, 0x03, 0xFF, 0x80, 0x00, 0x1F, 0x78, 0x1F,
- 0xFF, 0xFF, 0xFF, 0x80, 0x7F, 0x00, 0x07, 0x0F,
- 0xF0, 0x7F, 0xFF, 0xFF, 0xFF, 0xFE, 0x0C, 0x07,
- 0xFF, 0x83, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0x00, 0x1F, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x07, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-};
-
-/* Painted by Johnny Stenback <jst@uwasa.fi> */
-
-unsigned char *linux_serial_image __initdata = "\n"
-" .u$e.\n"
-" .$$$$$:S\n"
-" $\"*$/\"*$$\n"
-" $.`$ . ^F\n"
-" 4k+#+T.$F\n"
-" 4P+++\"$\"$\n"
-" :R\"+ t$$B\n"
-" ___# $$$\n"
-" | | R$$k\n"
-" dd. | Linux $!$\n"
-" ddd | Sparc $9$F\n"
-" '!!!!!$ !!#!`\n"
-" !!!!!* .!!!!!`\n"
-"'!!!!!!!W..e$$!!!!!!` %s\n"
-" \"~^^~ ^~~^\n"
-"\n";
diff --git a/include/asm-sparc64/mmu_context.h b/include/asm-sparc64/mmu_context.h
index 76aacba13..0e8168bb5 100644
--- a/include/asm-sparc64/mmu_context.h
+++ b/include/asm-sparc64/mmu_context.h
@@ -1,4 +1,4 @@
-/* $Id: mmu_context.h,v 1.7 1997/04/04 00:50:23 davem Exp $ */
+/* $Id: mmu_context.h,v 1.8 1997/05/18 20:44:23 davem Exp $ */
#ifndef __SPARC64_MMU_CONTEXT_H
#define __SPARC64_MMU_CONTEXT_H
@@ -63,11 +63,21 @@ extern __inline__ void get_mmu_context(struct task_struct *tsk)
!(tsk->tss.flags & SPARC_FLAG_KTHREAD) &&
!(tsk->flags & PF_EXITING)) {
unsigned long ctx = tlb_context_cache;
+ register unsigned long paddr asm("o5");
flushw_user();
if((mm->context ^ ctx) & CTX_VERSION_MASK)
get_new_mmu_context(mm, ctx);
spitfire_set_secondary_context(mm->context);
+ paddr = __pa(mm->pgd);
+ __asm__ __volatile__("
+ rdpr %%pstate, %%o4
+ wrpr %%o4, %1, %%pstate
+ mov %0, %%g7
+ wrpr %%o4, 0x0, %%pstate
+ " : /* no outputs */
+ : "r" (paddr), "i" (PSTATE_MG|PSTATE_IE)
+ : "o4");
}
}
diff --git a/include/asm-sparc64/pgtable.h b/include/asm-sparc64/pgtable.h
index 600ac1632..ca35d567f 100644
--- a/include/asm-sparc64/pgtable.h
+++ b/include/asm-sparc64/pgtable.h
@@ -1,7 +1,7 @@
-/* $Id: pgtable.h,v 1.28 1997/04/14 17:05:19 jj Exp $
+/* $Id: pgtable.h,v 1.31 1997/05/18 21:11:42 davem Exp $
* pgtable.h: SpitFire page table operations.
*
- * Copyright 1996 David S. Miller (davem@caip.rutgers.edu)
+ * Copyright 1996,1997 David S. Miller (davem@caip.rutgers.edu)
*/
#ifndef _SPARC64_PGTABLE_H
@@ -204,13 +204,8 @@ extern __inline__ void flush_cache_all(void)
unsigned long addr;
flushw_all();
- for(addr = 0; addr < (PAGE_SIZE << 1); addr += 32) {
+ for(addr = 0; addr < (PAGE_SIZE << 1); addr += 32)
spitfire_put_icache_tag(addr, 0x0UL);
- membar("#Sync");
- }
-
- /* Kill the pipeline. */
- flushi(PAGE_OFFSET);
}
extern __inline__ void flush_cache_mm(struct mm_struct *mm)
@@ -219,13 +214,8 @@ extern __inline__ void flush_cache_mm(struct mm_struct *mm)
unsigned long addr;
flushw_user();
- for(addr = 0; addr < (PAGE_SIZE << 1); addr += 32) {
+ for(addr = 0; addr < (PAGE_SIZE << 1); addr += 32)
spitfire_put_icache_tag(addr, 0x0UL);
- membar("#Sync");
- }
-
- /* Kill the pipeline. */
- flushi(PAGE_OFFSET);
}
}
@@ -236,13 +226,8 @@ extern __inline__ void flush_cache_range(struct mm_struct *mm, unsigned long sta
unsigned long addr;
flushw_user();
- for(addr = 0; addr < (PAGE_SIZE << 1); addr += 32) {
+ for(addr = 0; addr < (PAGE_SIZE << 1); addr += 32)
spitfire_put_icache_tag(addr, 0x0UL);
- membar("#Sync");
- }
-
- /* Kill the pipeline. */
- flushi(PAGE_OFFSET);
}
}
@@ -254,13 +239,8 @@ extern __inline__ void flush_cache_page(struct vm_area_struct *vma, unsigned lon
unsigned long addr;
flushw_user();
- for(addr = 0; addr < (PAGE_SIZE << 1); addr += 32) {
+ for(addr = 0; addr < (PAGE_SIZE << 1); addr += 32)
spitfire_put_icache_tag(addr, 0x0UL);
- membar("#Sync");
- }
-
- /* Kill the pipeline. */
- flushi(PAGE_OFFSET);
}
}
@@ -290,15 +270,28 @@ extern __inline__ void flush_tlb_all(void)
extern __inline__ void flush_tlb_mm(struct mm_struct *mm)
{
if(mm->context != NO_CONTEXT) {
- unsigned long orig_ctx = spitfire_get_secondary_context();
- unsigned long flags;
-
- save_and_cli(flags);
- spitfire_set_secondary_context(mm->context);
- spitfire_flush_dtlb_secondary_context();
- spitfire_flush_itlb_secondary_context();
- spitfire_set_secondary_context(orig_ctx);
- restore_flags(flags);
+ __asm__ __volatile__("
+ /* flush_tlb_mm() */
+ rdpr %%pil, %%g1
+ mov %1, %%g7
+ wrpr %%g0, 15, %%pil
+ ldxa [%%g7] %2, %%g2
+ cmp %%g2, %0
+ be,pt %%icc, 1f
+ mov 0x50, %%g3
+ stxa %0, [%%g7] %2
+1:
+ stxa %%g0, [%%g3] %3
+ stxa %%g0, [%%g3] %4
+ bne,a,pn %%icc, 1f
+ stxa %%g2, [%%g7] %2
+1:
+ flush %%g4
+ wrpr %%g1, 0x0, %%pil
+" : /* no outputs */
+ : "r" (mm->context), "i" (SECONDARY_CONTEXT), "i" (ASI_DMMU),
+ "i" (ASI_DMMU_DEMAP), "i" (ASI_IMMU_DEMAP)
+ : "g1", "g2", "g3", "g7", "cc");
}
}
@@ -307,17 +300,21 @@ extern __inline__ void flush_tlb_range(struct mm_struct *mm, unsigned long start
{
if(mm->context != NO_CONTEXT) {
unsigned long old_ctx = spitfire_get_secondary_context();
+ unsigned long new_ctx = mm->context;
unsigned long flags;
start &= PAGE_MASK;
save_and_cli(flags);
- spitfire_set_secondary_context(mm->context);
+ if(new_ctx != old_ctx)
+ spitfire_set_secondary_context(mm->context);
while(start < end) {
spitfire_flush_dtlb_secondary_page(start);
spitfire_flush_itlb_secondary_page(start);
start += PAGE_SIZE;
}
- spitfire_set_secondary_context(old_ctx);
+ if(new_ctx != old_ctx)
+ spitfire_set_secondary_context(old_ctx);
+ __asm__ __volatile__("flush %g4");
restore_flags(flags);
}
}
@@ -327,17 +324,31 @@ extern __inline__ void flush_tlb_page(struct vm_area_struct *vma, unsigned long
struct mm_struct *mm = vma->vm_mm;
if(mm->context != NO_CONTEXT) {
- unsigned long old_ctx = spitfire_get_secondary_context();
- unsigned long flags;
-
- page &= PAGE_MASK;
- save_and_cli(flags);
- spitfire_set_secondary_context(mm->context);
- if(vma->vm_flags & VM_EXEC)
- spitfire_flush_itlb_secondary_page(page);
- spitfire_flush_dtlb_secondary_page(page);
- spitfire_set_secondary_context(old_ctx);
- restore_flags(flags);
+ __asm__ __volatile__("
+ /* flush_tlb_page() */
+ rdpr %%pil, %%g1
+ mov %1, %%g7
+ wrpr %%g0, 15, %%pil
+ ldxa [%%g7] %2, %%g2
+ cmp %%g2, %0
+ be,pt %%icc, 1f
+ or %5, 0x10, %5
+ stxa %0, [%%g7] %2
+1:
+ stxa %%g0, [%5] %3
+ brnz,a %6, 1f
+ stxa %%g0, [%5] %4
+1:
+ bne,a,pn %%icc, 1f
+ stxa %%g2, [%%g7] %2
+1:
+ flush %%g4
+ wrpr %%g1, 0x0, %%pil
+" : /* no outputs */
+ : "r" (mm->context), "i" (SECONDARY_CONTEXT), "i" (ASI_DMMU),
+ "i" (ASI_DMMU_DEMAP), "i" (ASI_IMMU_DEMAP), "r" (page & PAGE_MASK),
+ "r" (vma->vm_flags & VM_EXEC)
+ : "g1", "g2", "g3", "g7", "cc");
}
}
@@ -649,7 +660,7 @@ extern inline void update_mmu_cache(struct vm_area_struct * vma,
start += PAGE_SIZE;
}
}
- } while((vmaring = vmaring->vm_next_share) != inode->i_mmap);
+ } while((vmaring = vmaring->vm_next_share) != NULL);
if(alias_found && (pte_val(pte) & _PAGE_CV)) {
pgdp = pgd_offset(vma->vm_mm, address);
diff --git a/include/asm-sparc64/processor.h b/include/asm-sparc64/processor.h
index 25c907ddb..8b2380a2e 100644
--- a/include/asm-sparc64/processor.h
+++ b/include/asm-sparc64/processor.h
@@ -1,4 +1,4 @@
-/* $Id: processor.h,v 1.21 1997/04/14 17:05:18 jj Exp $
+/* $Id: processor.h,v 1.26 1997/05/17 05:59:10 davem Exp $
* include/asm-sparc64/processor.h
*
* Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
@@ -71,7 +71,7 @@ struct thread_struct {
#define SPARC_FLAG_32BIT 0x8 /* task is older 32-bit binary */
#define INIT_MMAP { &init_mm, 0xfffff80000000000, 0xfffff80001000000, \
- PAGE_SHARED , VM_READ | VM_WRITE | VM_EXEC }
+ PAGE_SHARED , VM_READ | VM_WRITE | VM_EXEC, NULL, &init_mm.mmap }
#define INIT_TSS { \
/* FPU regs */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -115,6 +115,7 @@ do { \
regs->tpc = ((pc & (~3)) - 4); \
regs->tnpc = regs->tpc + 4; \
regs->y = 0; \
+ current->tss.flags &= ~SPARC_FLAG_32BIT; \
__asm__ __volatile__( \
"stx %%g0, [%0 + %2 + 0x00]\n\t" \
"stx %%g0, [%0 + %2 + 0x08]\n\t" \
@@ -132,7 +133,7 @@ do { \
"stx %%g0, [%0 + %2 + 0x68]\n\t" \
"stx %1, [%0 + %2 + 0x70]\n\t" \
"stx %%g0, [%0 + %2 + 0x78]\n\t" \
- "wrpr %%g0, 1, %%wstate\n\t" \
+ "wrpr %%g0, (1 << 3), %%wstate\n\t" \
: \
: "r" (regs), "r" (sp - REGWIN_SZ), \
"i" ((const unsigned long)(&((struct pt_regs *)0)->u_regs[0]))); \
@@ -168,7 +169,7 @@ do { \
"stx %%g0, [%0 + %2 + 0x68]\n\t" \
"stx %1, [%0 + %2 + 0x70]\n\t" \
"stx %%g0, [%0 + %2 + 0x78]\n\t" \
- "wrpr %%g0, 2, %%wstate\n\t" \
+ "wrpr %%g0, (2 << 3), %%wstate\n\t" \
: \
: "r" (regs), "r" (sp - REGWIN32_SZ), \
"i" ((const unsigned long)(&((struct pt_regs *)0)->u_regs[0])), \
@@ -179,16 +180,13 @@ do { \
#define release_thread(tsk) do { } while(0)
#ifdef __KERNEL__
-/* Allocation and freeing of basic task resources. */
+/* Allocation and freeing of task_struct and kernel stack. */
+#define alloc_task_struct() ((struct task_struct *)__get_free_pages(GFP_KERNEL, 1, 0))
+#define free_task_struct(tsk) free_pages((unsigned long)(tsk),1)
+
+#define init_task (init_task_union.task)
+#define init_stack (init_task_union.stack)
-/* XXX FIXME For task_struct must use SLAB or something other than
- * XXX kmalloc() as FPU registers in TSS require that entire structure
- * XXX be 64-byte aligned as well.
- */
-#define alloc_kernel_stack(tsk) __get_free_page(GFP_KERNEL)
-#define free_kernel_stack(stack) free_page(stack)
-#define alloc_task_struct() kmalloc(sizeof(struct task_struct), GFP_KERNEL)
-#define free_task_struct(tsk) kfree(tsk)
#endif /* __KERNEL__ */
#endif /* !(__ASSEMBLY__) */
diff --git a/include/asm-sparc64/spitfire.h b/include/asm-sparc64/spitfire.h
index 10918dc82..76232c227 100644
--- a/include/asm-sparc64/spitfire.h
+++ b/include/asm-sparc64/spitfire.h
@@ -1,4 +1,4 @@
-/* $Id: spitfire.h,v 1.7 1997/04/04 00:50:29 davem Exp $
+/* $Id: spitfire.h,v 1.8 1997/05/18 04:16:56 davem Exp $
* spitfire.h: SpitFire/BlackBird/Cheetah inline MMU operations.
*
* Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
@@ -209,28 +209,28 @@ extern __inline__ void spitfire_flush_dtlb_secondary_context(void)
{
__asm__ __volatile__("stxa %%g0, [%0] %1"
: /* No outputs */
- : "r" (0x41), "i" (ASI_DMMU_DEMAP));
+ : "r" (0x50), "i" (ASI_DMMU_DEMAP));
}
extern __inline__ void spitfire_flush_itlb_secondary_context(void)
{
__asm__ __volatile__("stxa %%g0, [%0] %1"
: /* No outputs */
- : "r" (0x41), "i" (ASI_IMMU_DEMAP));
+ : "r" (0x50), "i" (ASI_IMMU_DEMAP));
}
extern __inline__ void spitfire_flush_dtlb_nucleus_context(void)
{
__asm__ __volatile__("stxa %%g0, [%0] %1"
: /* No outputs */
- : "r" (0x42), "i" (ASI_DMMU_DEMAP));
+ : "r" (0x60), "i" (ASI_DMMU_DEMAP));
}
extern __inline__ void spitfire_flush_itlb_nucleus_context(void)
{
__asm__ __volatile__("stxa %%g0, [%0] %1"
: /* No outputs */
- : "r" (0x42), "i" (ASI_IMMU_DEMAP));
+ : "r" (0x60), "i" (ASI_IMMU_DEMAP));
}
/* Page level flushes. */
diff --git a/include/asm-sparc64/string.h b/include/asm-sparc64/string.h
index 1470bcfef..b420d80bb 100644
--- a/include/asm-sparc64/string.h
+++ b/include/asm-sparc64/string.h
@@ -1,4 +1,4 @@
-/* $Id: string.h,v 1.4 1997/04/01 09:34:41 davem Exp $
+/* $Id: string.h,v 1.5 1997/05/18 04:16:57 davem Exp $
* string.h: External definitions for optimized assembly string
* routines for the Linux Kernel.
*
@@ -41,14 +41,18 @@ extern inline void *__constant_memcpy(void *to, const void *from, __kernel_size_
if(n <= 32) {
__builtin_memcpy(to, from, n);
} else {
+#if 0
switch(n) {
case 8192:
__copy_1page(to, from);
break;
default:
+#endif
__memcpy(to, from, n);
+#if 0
break;
}
+#endif
}
}
return to;
@@ -74,9 +78,11 @@ extern inline void *__constant_c_and_count_memset(void *s, char c, __kernel_size
extern __kernel_size_t __bzero(void *, __kernel_size_t);
if(!c) {
+#if 0
if(count == 8192)
bzero_1page(s);
else
+#endif
__bzero(s, count);
} else {
__memset(s, c, count);
diff --git a/include/asm-sparc64/system.h b/include/asm-sparc64/system.h
index 8bc44e1c8..786cfd2af 100644
--- a/include/asm-sparc64/system.h
+++ b/include/asm-sparc64/system.h
@@ -1,4 +1,4 @@
-/* $Id: system.h,v 1.15 1997/04/10 23:32:49 davem Exp $ */
+/* $Id: system.h,v 1.19 1997/05/18 22:52:32 davem Exp $ */
#ifndef __SPARC64_SYSTEM_H
#define __SPARC64_SYSTEM_H
@@ -89,18 +89,24 @@ extern unsigned long empty_zero_page;
#ifndef __ASSEMBLY__
+extern void synchronize_user_stack(void);
+
extern __inline__ void flushw_user(void)
{
__asm__ __volatile__("
rdpr %%otherwin, %%g1
+ brz,pt %%g1, 2f
+ clr %%g2
1:
- rdpr %%otherwin, %%g2
- brnz,pn %%g2, 1b
- save %%sp, %0, %%sp
+ save %%sp, %0, %%sp
+ rdpr %%otherwin, %%g1
+ brnz,pt %%g1, 1b
+ add %%g2, 1, %%g2
1:
- subcc %%g1, 1, %%g1
- bne,pn %%xcc, 1b
+ subcc %%g2, 1, %%g2
+ bne,pt %%xcc, 1b
restore %%g0, %%g0, %%g0
+2:
" : : "i" (-REGWIN_SZ)
: "g1", "g2", "cc");
}
@@ -122,9 +128,9 @@ extern __inline__ void flushw_user(void)
/* See what happens when you design the chip correctly?
* NOTE NOTE NOTE this is extremely non-trivial what I
- * am doing here. GCC needs only two registers to stuff
- * things into ('next' and &current_set[cpu]) So I "claim"
- * that I do not clobber them, when in fact I do. Please,
+ * am doing here. GCC needs only one register to stuff
+ * things into ('next' in particular) So I "claim" that
+ * I do not clobber it, when in fact I do. Please,
* when modifying this code inspect output of sched.s very
* carefully to make sure things still work. -DaveM
*/
@@ -141,14 +147,12 @@ do { \
"stx %%o6, [%%g6 + %3]\n\t" \
"rdpr %%wstate, %%o5\n\t" \
"stx %%o7, [%%g6 + %4]\n\t" \
- "mov %6, %%o4\n\t" \
"stx %%o5, [%%g6 + %2]\n\t" \
- "st %%o4, [%%g6 + %7]\n\t" \
"rdpr %%cwp, %%o5\n\t" \
- "stx %%o5, [%%g6 + %8]\n\t" \
- "mov %1, %%g6\n\t" \
- "stx %%g6, [%0]\n\t" \
- "ldx [%%g6 + %8], %%g1\n\t" \
+ "stx %%o5, [%%g6 + %5]\n\t" \
+ "mov %0, %%g6\n\t" \
+ "wr %0, 0x0, %%pic\n\t" \
+ "ldx [%%g6 + %5], %%g1\n\t" \
"wrpr %%g1, %%cwp\n\t" \
"ldx [%%g6 + %2], %%o5\n\t" \
"ldx [%%g6 + %3], %%o6\n\t" \
@@ -158,15 +162,13 @@ do { \
"jmpl %%o7 + 0x8, %%g0\n\t" \
" ldx [%%sp + 2047 + 0x78], %%i7\n\t" \
: /* No outputs */ \
- : "r" (&(current_set[smp_processor_id()])), "r" (next), \
+ : "r" (next), "r" (task_pc), \
"i" ((const unsigned long)(&((struct task_struct *)0)->tss.wstate)), \
"i" ((const unsigned long)(&((struct task_struct *)0)->tss.ksp)), \
"i" ((const unsigned long)(&((struct task_struct *)0)->tss.kpc)), \
- "r" (task_pc), "i" (255), \
- "i" ((const unsigned long)(&((struct task_struct *)0)->processor)), \
"i" ((const unsigned long)(&((struct task_struct *)0)->tss.cwp)) \
: "cc", "g1", "g2", "g3", "g5", "g7", \
- "l2", "l3", "l4", "l5", "l6", "l7", \
+ "l1", "l2", "l3", "l4", "l5", "l6", "l7", \
"i0", "i1", "i2", "i3", "i4", "i5", \
"o0", "o1", "o2", "o3", "o4", "o5"); \
switch_continue: } while(0)
diff --git a/include/asm-sparc64/termbits.h b/include/asm-sparc64/termbits.h
index fae8ac1cc..01e8364c6 100644
--- a/include/asm-sparc64/termbits.h
+++ b/include/asm-sparc64/termbits.h
@@ -148,7 +148,13 @@ struct termios {
#define HUPCL 0x00000400
#define CLOCAL 0x00000800
#define CBAUDEX 0x00001000
+/* We'll never see these speeds with the Zilogs, but for completeness... */
#define B57600 0x00001001
+#define B115200 0x00001002
+#define B230400 0x00001003
+#define B460800 0x00001004
+/* This is what we can do with the Zilogs. */
+#define B76800 0x00001005
#define CIBAUD 0x100f0000 /* input baud rate (not used) */
#define CMSPAR 0x40000000 /* mark or space (stick) parity */
#define CRTSCTS 0x80000000 /* flow control */