diff options
author | H. Nikolaus Schaller <hns@goldelico.com> | 2012-03-26 20:55:28 +0200 |
---|---|---|
committer | H. Nikolaus Schaller <hns@goldelico.com> | 2012-03-26 20:55:28 +0200 |
commit | 92988a21ad4c4c9504295ccb580c9f806134471b (patch) | |
tree | 5effc9f14170112450de05c67dafbe8d5034d595 /board/dave | |
parent | ca2b506783b676c95762c54ea24dcfdaae1947c9 (diff) | |
download | bootable_bootloader_goldelico_gta04-92988a21ad4c4c9504295ccb580c9f806134471b.zip bootable_bootloader_goldelico_gta04-92988a21ad4c4c9504295ccb580c9f806134471b.tar.gz bootable_bootloader_goldelico_gta04-92988a21ad4c4c9504295ccb580c9f806134471b.tar.bz2 |
added boot script files to repository
Diffstat (limited to 'board/dave')
-rw-r--r-- | board/dave/B2/B2.c | 139 | ||||
-rw-r--r-- | board/dave/B2/Makefile | 55 | ||||
-rw-r--r-- | board/dave/B2/config.mk | 30 | ||||
-rw-r--r-- | board/dave/B2/flash.c | 76 | ||||
-rw-r--r-- | board/dave/B2/lowlevel_init.S | 167 | ||||
-rw-r--r-- | board/dave/PPChameleonEVB/Makefile | 50 | ||||
-rw-r--r-- | board/dave/PPChameleonEVB/PPChameleonEVB.c | 247 | ||||
-rw-r--r-- | board/dave/PPChameleonEVB/flash.c | 114 | ||||
-rw-r--r-- | board/dave/PPChameleonEVB/fpgadata.c | 1139 | ||||
-rw-r--r-- | board/dave/PPChameleonEVB/nand.c | 115 | ||||
-rw-r--r-- | board/dave/PPChameleonEVB/u-boot.lds | 128 | ||||
-rw-r--r-- | board/dave/common/flash.c | 707 | ||||
-rw-r--r-- | board/dave/common/fpga.c | 256 | ||||
-rw-r--r-- | board/dave/common/pci.c | 202 |
14 files changed, 0 insertions, 3425 deletions
diff --git a/board/dave/B2/B2.c b/board/dave/B2/B2.c deleted file mode 100644 index 096ebbd..0000000 --- a/board/dave/B2/B2.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * (C) Copyright 2004 - * DAVE Srl - * http://www.dave-tech.it - * http://www.wawnet.biz - * mailto:info@wawnet.biz - * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#include <common.h> -#include <netdev.h> -#include <asm/hardware.h> - -DECLARE_GLOBAL_DATA_PTR; - -/* - * Miscelaneous platform dependent initialization - */ - -int board_init (void) -{ - u32 temp; - - /* Configuration Port Control Register*/ - /* Port A */ - PCONA = 0x3ff; - - /* Port B */ - PCONB = 0xff; - PDATB = 0xFFFF; - - /* Port C */ - /* - PCONC = 0xff55ff15; - PDATC = 0x0; - PUPC = 0xffff; - */ - - /* Port D */ - /* - PCOND = 0xaaaa; - PUPD = 0xff; - */ - - /* Port E */ - PCONE = 0x0001aaa9; - PDATE = 0x0; - PUPE = 0xff; - - /* Port F */ - PCONF = 0x124955; - PDATF = 0xff; /* B2-eth_reset tied high level */ - /* - PUPF = 0x1e3; - */ - - /* Port G */ - PUPG = 0x1; - PCONG = 0x3; /*PG0= EINT0= ETH_INT prepared for linux kernel*/ - - INTMSK = 0x03fffeff; - INTCON = 0x05; - - /* - Configure chip ethernet interrupt as High level - Port G EINT 0-7 EINT0 -> CHIP ETHERNET - */ - temp = EXTINT; - temp &= ~0x7; - temp |= 0x1; /*LEVEL_HIGH*/ - EXTINT = temp; - - /* - Reset SMSC LAN91C96 chip - */ - temp= PCONF; - temp |= 0x00000040; - PCONF = temp; - - /* Reset high */ - temp = PDATF; - temp |= (1 << 3); - PDATF = temp; - - /* Short delay */ - for (temp=0;temp<10;temp++) - { - /* NOP */ - } - - /* Reset low */ - temp = PDATF; - temp &= ~(1 << 3); - PDATF = temp; - - /* arch number MACH_TYPE_MBA44B0 */ - gd->bd->bi_arch_number = MACH_TYPE_S3C44B0; - - /* location of boot parameters */ - gd->bd->bi_boot_params = 0x0c000100; - - return 0; -} - -int dram_init (void) -{ - gd->bd->bi_dram[0].start = PHYS_SDRAM_1; - gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; - - return (0); -} - -#ifdef CONFIG_CMD_NET -int board_eth_init(bd_t *bis) -{ - int rc = 0; -#ifdef CONFIG_LAN91C96 - rc = lan91c96_initialize(0, CONFIG_LAN91C96_BASE); -#endif - return rc; -} -#endif diff --git a/board/dave/B2/Makefile b/board/dave/B2/Makefile deleted file mode 100644 index b981579..0000000 --- a/board/dave/B2/Makefile +++ /dev/null @@ -1,55 +0,0 @@ -# -# (C) Copyright 2006 -# Wolfgang Denk, DENX Software Engineering, wd@denx.de. -# -# (C) Copyright 2002 -# Sysgo Real-Time Solutions, GmbH <www.elinos.com> -# Marius Groeger <mgroeger@sysgo.de> -# -# See file CREDITS for list of people who contributed to this -# project. -# -# 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. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, -# MA 02111-1307 USA -# - -include $(TOPDIR)/config.mk - -LIB = $(obj)lib$(BOARD).o - -COBJS := B2.o flash.o -SOBJS := lowlevel_init.o - -SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) -OBJS := $(addprefix $(obj),$(COBJS)) -SOBJS := $(addprefix $(obj),$(SOBJS)) - -$(LIB): $(obj).depend $(OBJS) $(SOBJS) - $(call cmd_link_o_target, $(OBJS) $(SOBJS)) - -clean: - rm -f $(SOBJS) $(OBJS) - -distclean: clean - rm -f $(LIB) core *.bak $(obj).depend - -######################################################################### - -# defines $(obj).depend target -include $(SRCTREE)/rules.mk - -sinclude $(obj).depend - -######################################################################### diff --git a/board/dave/B2/config.mk b/board/dave/B2/config.mk deleted file mode 100644 index f7b686a..0000000 --- a/board/dave/B2/config.mk +++ /dev/null @@ -1,30 +0,0 @@ -# -# (C) Copyright 2000 -# Sysgo Real-Time Solutions, GmbH <www.elinos.com> -# Marius Groeger <mgroeger@sysgo.de> -# -# (C) Copyright 2000-2004 -# Wolfgang Denk, DENX Software Engineering, wd@denx.de. -# -# See file CREDITS for list of people who contributed to this -# project. -# -# 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. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, -# MA 02111-1307 USA -# - -CONFIG_SYS_TEXT_BASE = 0x0C100000 - -PLATFORM_CPPFLAGS += -Uarm diff --git a/board/dave/B2/flash.c b/board/dave/B2/flash.c deleted file mode 100644 index bb892e6..0000000 --- a/board/dave/B2/flash.c +++ /dev/null @@ -1,76 +0,0 @@ -/* - * (C) Copyright 2001 - * Stefan Roese, esd gmbh germany, stefan.roese@esd-electronics.com - * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#include <common.h> -#include <asm/hardware.h> - -/* - * include common flash code (for esd boards) - */ -#include "../common/flash.c" - -/*----------------------------------------------------------------------- - * Functions - */ -static ulong flash_get_size (vu_long * addr, flash_info_t * info); -static void flash_get_offsets (ulong base, flash_info_t * info); - -/*----------------------------------------------------------------------- - */ - -unsigned long flash_init (void) -{ -#ifdef __DEBUG_START_FROM_SRAM__ - return CONFIG_SYS_DUMMY_FLASH_SIZE; -#else - unsigned long size_b0; - int i; - - /* Init: no FLASHes known */ - for (i=0; i<CONFIG_SYS_MAX_FLASH_BANKS; ++i) { - flash_info[i].flash_id = FLASH_UNKNOWN; - } - - /* Static FLASH Bank configuration here - FIXME XXX */ - - size_b0 = flash_get_size((vu_long *)CONFIG_SYS_FLASH_BASE, &flash_info[0]); - - if (flash_info[0].flash_id == FLASH_UNKNOWN) { - printf ("## Unknown FLASH on Bank 0 - Size = 0x%08lx = %ld MB\n", - size_b0, size_b0<<20); - } - - /* Setup offsets */ - flash_get_offsets (0, &flash_info[0]); - - /* Monitor protection ON by default */ - (void)flash_protect(FLAG_PROTECT_SET, - -CONFIG_SYS_MONITOR_LEN, - 0xffffffff, - &flash_info[0]); - - flash_info[0].size = size_b0; - - return (size_b0); -#endif -} diff --git a/board/dave/B2/lowlevel_init.S b/board/dave/B2/lowlevel_init.S deleted file mode 100644 index 2f3a364..0000000 --- a/board/dave/B2/lowlevel_init.S +++ /dev/null @@ -1,167 +0,0 @@ -/* - * (C) Copyright 2004 - * DAVE Srl - * - * http://www.dave-tech.it - * http://www.wawnet.biz - * mailto:info@wawnet.biz - * - * memsetup-sa1110.S (blob): memory setup for various SA1110 architectures - * Modified By MATTO - * - * Copyright (C) 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -/* - * Documentation: - * Intel Corporation, "Intel StrongARM SA-1110 Microprocessor - * Advanced Developer's manual, December 1999 - * - * Intel has a very hard to find SDRAM configurator on their web site: - * http://appzone.intel.com/hcd/sa1110/memory/index.asp - * - * NOTE: This code assumes that an SA1110 CPU *always* uses SDRAM. This - * appears to be true, but it might be possible that somebody designs a - * board with mixed EDODRAM/SDRAM memory (which is a bad idea). -- Erik - * - * 04-10-2001: SELETZ - * - separated memory config for multiple platform support - * - perform SA1110 Hardware Reset Procedure - * - */ - -.equ B0_Tacs, 0x0 /* 0clk */ -.equ B0_Tcos, 0x0 /* 0clk */ -.equ B0_Tacc, 0x4 /* 6clk */ -.equ B0_Tcoh, 0x0 /* 0clk */ -.equ B0_Tah, 0x0 /* 0clk */ -.equ B0_Tacp, 0x0 /* 0clk */ -.equ B0_PMC, 0x0 /* normal(1data) */ -/* Bank 1 parameter */ -.equ B1_Tacs, 0x3 /* 4clk */ -.equ B1_Tcos, 0x3 /* 4clk */ -.equ B1_Tacc, 0x7 /* 14clkv */ -.equ B1_Tcoh, 0x3 /* 4clk */ -.equ B1_Tah, 0x3 /* 4clk */ -.equ B1_Tacp, 0x3 /* 6clk */ -.equ B1_PMC, 0x0 /* normal(1data) */ - -/* Bank 2 parameter - LAN91C96 */ -.equ B2_Tacs, 0x3 /* 4clk */ -.equ B2_Tcos, 0x3 /* 4clk */ -.equ B2_Tacc, 0x7 /* 14clk */ -.equ B2_Tcoh, 0x3 /* 4clk */ -.equ B2_Tah, 0x3 /* 4clk */ -.equ B2_Tacp, 0x3 /* 6clk */ -.equ B2_PMC, 0x0 /* normal(1data) */ - -/* Bank 3 parameter */ -.equ B3_Tacs, 0x3 /* 4clk */ -.equ B3_Tcos, 0x3 /* 4clk */ -.equ B3_Tacc, 0x7 /* 14clk */ -.equ B3_Tcoh, 0x3 /* 4clk */ -.equ B3_Tah, 0x3 /* 4clk */ -.equ B3_Tacp, 0x3 /* 6clk */ -.equ B3_PMC, 0x0 /* normal(1data) */ - -/* Bank 4 parameter */ -.equ B4_Tacs, 0x3 /* 4clk */ -.equ B4_Tcos, 0x3 /* 4clk */ -.equ B4_Tacc, 0x7 /* 14clk */ -.equ B4_Tcoh, 0x3 /* 4clk */ -.equ B4_Tah, 0x3 /* 4clk */ -.equ B4_Tacp, 0x3 /* 6clk */ -.equ B4_PMC, 0x0 /* normal(1data) */ - -/* Bank 5 parameter */ -.equ B5_Tacs, 0x3 /* 4clk */ -.equ B5_Tcos, 0x3 /* 4clk */ -.equ B5_Tacc, 0x7 /* 14clk */ -.equ B5_Tcoh, 0x3 /* 4clk */ -.equ B5_Tah, 0x3 /* 4clk */ -.equ B5_Tacp, 0x3 /* 6clk */ -.equ B5_PMC, 0x0 /* normal(1data) */ - -/* Bank 6(if SROM) parameter */ -.equ B6_Tacs, 0x3 /* 4clk */ -.equ B6_Tcos, 0x3 /* 4clk */ -.equ B6_Tacc, 0x7 /* 14clk */ -.equ B6_Tcoh, 0x3 /* 4clk */ -.equ B6_Tah, 0x3 /* 4clk */ -.equ B6_Tacp, 0x3 /* 6clk */ -.equ B6_PMC, 0x0 /* normal(1data) */ - -/* Bank 7(if SROM) parameter */ -.equ B7_Tacs, 0x3 /* 4clk */ -.equ B7_Tcos, 0x3 /* 4clk */ -.equ B7_Tacc, 0x7 /* 14clk */ -.equ B7_Tcoh, 0x3 /* 4clk */ -.equ B7_Tah, 0x3 /* 4clk */ -.equ B7_Tacp, 0x3 /* 6clk */ -.equ B7_PMC, 0x0 /* normal(1data) */ - -/* Bank 6 parameter */ -.equ B6_MT, 0x3 /* SDRAM */ -.equ B6_Trcd, 0x0 /* 2clk */ -.equ B6_SCAN, 0x0 /* 10bit */ - -.equ B7_MT, 0x3 /* SDRAM */ -.equ B7_Trcd, 0x0 /* 2clk */ -.equ B7_SCAN, 0x0 /* 10bit */ - - -/* REFRESH parameter */ -.equ REFEN, 0x1 /* Refresh enable */ -.equ TREFMD, 0x0 /* CBR(CAS before RAS)/Auto refresh */ -.equ Trp, 0x0 /* 2clk */ -.equ Trc, 0x3 /* 0x1=5clk 0x3=11clk*/ -.equ Tchr, 0x0 /* 0x2=3clk 0x0=0clks */ -.equ REFCNT, 879 - -MEMORY_CONFIG: - .long 0x12111900 /* Bank0 = OM[1:0] , Bank1-7 16bit, Bank2=Nowait,UB/LB*/ - .word ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC)) /*GCS0*/ - .word ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC)) /*GCS1*/ - .word ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC)) /*GCS2*/ - .word ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC)) /*GCS3*/ - .word ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC)) /*GCS4*/ - .word ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC)) /*GCS5*/ - .word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN)) /*GCS6*/ - .word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN)) /*GCS7*/ - .word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT) /*REFRESH RFEN=1, TREFMD=0, trp=3clk, trc=5clk, tchr=3clk,count=1019*/ - .word 0x17 /*SCLK power down mode, BANKSIZE 16M/16M*/ - .word 0x20 /*MRSR6 CL=2clk*/ - .word 0x20 /*MRSR7*/ - - -.globl lowlevel_init -lowlevel_init: - - /* - the next instruction fail due memory relocation... - we'll find the right MEMORY_CONFIG address with the next 3 lines... - */ - /*ldr r0, =MEMORY_CONFIG*/ - mov r0, pc - ldr r1, =(0x38+4) - sub r0, r0, r1 - - ldmia r0, {r1-r13} - ldr r0, =0x01c80000 - stmia r0, {r1-r13} - mov pc, lr diff --git a/board/dave/PPChameleonEVB/Makefile b/board/dave/PPChameleonEVB/Makefile deleted file mode 100644 index 5028510..0000000 --- a/board/dave/PPChameleonEVB/Makefile +++ /dev/null @@ -1,50 +0,0 @@ -# -# (C) Copyright 2000-2006 -# Wolfgang Denk, DENX Software Engineering, wd@denx.de. -# -# See file CREDITS for list of people who contributed to this -# project. -# -# 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. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, -# MA 02111-1307 USA -# - -include $(TOPDIR)/config.mk - -LIB = $(obj)lib$(BOARD).o - -COBJS = $(BOARD).o flash.o nand.o - -SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) -OBJS := $(addprefix $(obj),$(COBJS)) -SOBJS := $(addprefix $(obj),$(SOBJS)) - -$(LIB): $(OBJS) $(SOBJS) - $(call cmd_link_o_target, $^) - -clean: - rm -f $(SOBJS) $(OBJS) - -distclean: clean - rm -f $(LIB) core *.bak $(obj).depend - -######################################################################### - -# defines $(obj).depend target -include $(SRCTREE)/rules.mk - -sinclude $(obj).depend - -######################################################################### diff --git a/board/dave/PPChameleonEVB/PPChameleonEVB.c b/board/dave/PPChameleonEVB/PPChameleonEVB.c deleted file mode 100644 index 8e26996..0000000 --- a/board/dave/PPChameleonEVB/PPChameleonEVB.c +++ /dev/null @@ -1,247 +0,0 @@ -/* - * (C) Copyright 2003 - * DAVE Srl - * http://www.dave-tech.it - * http://www.wawnet.biz - * mailto:info@wawnet.biz - * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#include <common.h> -#include <asm/processor.h> -#include <command.h> -#include <malloc.h> - -DECLARE_GLOBAL_DATA_PTR; - -/* ------------------------------------------------------------------------- */ - -int board_early_init_f (void) -{ - out32(GPIO0_OR, CONFIG_SYS_NAND0_CE); /* set initial outputs */ - out32(GPIO0_OR, CONFIG_SYS_NAND1_CE); /* set initial outputs */ - - /* - * IRQ 0-15 405GP internally generated; active high; level sensitive - * IRQ 16 405GP internally generated; active low; level sensitive - * IRQ 17-24 RESERVED - * IRQ 25 (EXT IRQ 0) - * IRQ 26 (EXT IRQ 1) - * IRQ 27 (EXT IRQ 2) - * IRQ 28 (EXT IRQ 3) - * IRQ 29 (EXT IRQ 4) - * IRQ 30 (EXT IRQ 5) - * IRQ 31 (EXT IRQ 6) - */ - mtdcr(UIC0SR, 0xFFFFFFFF); /* clear all ints */ - mtdcr(UIC0ER, 0x00000000); /* disable all ints */ - mtdcr(UIC0CR, 0x00000000); /* set all to be non-critical*/ - mtdcr(UIC0PR, 0xFFFFFF80); /* set int polarities */ - mtdcr(UIC0TR, 0x10000000); /* set int trigger levels */ - mtdcr(UIC0VCR, 0x00000001); /* set vect base=0,INT0 highest priority*/ - mtdcr(UIC0SR, 0xFFFFFFFF); /* clear all ints */ - - /* - * EBC Configuration Register: set ready timeout to 512 ebc-clks -> ca. 15 us - */ -#if 1 /* test-only */ - mtebc (EBC0_CFG, 0xa8400000); /* ebc always driven */ -#else - mtebc (EBC0_CFG, 0x28400000); /* ebc in high-z */ -#endif - return 0; -} - -/* ------------------------------------------------------------------------- */ - -int misc_init_f (void) -{ - return 0; /* dummy implementation */ -} - -extern flash_info_t flash_info[]; /* info for FLASH chips */ - -int misc_init_r (void) -{ - /* adjust flash start and size as well as the offset */ - gd->bd->bi_flashstart = 0 - flash_info[0].size; - gd->bd->bi_flashoffset= flash_info[0].size - CONFIG_SYS_MONITOR_LEN; -#if 0 - volatile unsigned short *fpga_mode = - (unsigned short *)((ulong)CONFIG_SYS_FPGA_BASE_ADDR + CONFIG_SYS_FPGA_CTRL); - volatile unsigned char *duart0_mcr = - (unsigned char *)((ulong)DUART0_BA + 4); - volatile unsigned char *duart1_mcr = - (unsigned char *)((ulong)DUART1_BA + 4); - - bd_t *bd = gd->bd; - char * tmp; /* Temporary char pointer */ - unsigned char *dst; - ulong len = sizeof(fpgadata); - int status; - int index; - int i; - unsigned long CPC0_CR0Reg; - - dst = malloc(CONFIG_SYS_FPGA_MAX_SIZE); - if (gunzip (dst, CONFIG_SYS_FPGA_MAX_SIZE, (uchar *)fpgadata, &len) != 0) { - printf ("GUNZIP ERROR - must RESET board to recover\n"); - do_reset (NULL, 0, 0, NULL); - } - - status = fpga_boot(dst, len); - if (status != 0) { - printf("\nFPGA: Booting failed "); - switch (status) { - case ERROR_FPGA_PRG_INIT_LOW: - printf("(Timeout: INIT not low after asserting PROGRAM*)\n "); - break; - case ERROR_FPGA_PRG_INIT_HIGH: - printf("(Timeout: INIT not high after deasserting PROGRAM*)\n "); - break; - case ERROR_FPGA_PRG_DONE: - printf("(Timeout: DONE not high after programming FPGA)\n "); - break; - } - - /* display infos on fpgaimage */ - index = 15; - for (i=0; i<4; i++) { - len = dst[index]; - printf("FPGA: %s\n", &(dst[index+1])); - index += len+3; - } - putc ('\n'); - /* delayed reboot */ - for (i=20; i>0; i--) { - printf("Rebooting in %2d seconds \r",i); - for (index=0;index<1000;index++) - udelay(1000); - } - putc ('\n'); - do_reset(NULL, 0, 0, NULL); - } - - puts("FPGA: "); - - /* display infos on fpgaimage */ - index = 15; - for (i=0; i<4; i++) { - len = dst[index]; - printf("%s ", &(dst[index+1])); - index += len+3; - } - putc ('\n'); - - free(dst); - - /* - * Reset FPGA via FPGA_DATA pin - */ - SET_FPGA(FPGA_PRG | FPGA_CLK); - udelay(1000); /* wait 1ms */ - SET_FPGA(FPGA_PRG | FPGA_CLK | FPGA_DATA); - udelay(1000); /* wait 1ms */ -#endif - -#if 0 - /* - * Enable power on PS/2 interface - */ - *fpga_mode |= CONFIG_SYS_FPGA_CTRL_PS2_RESET; - - /* - * Enable interrupts in exar duart mcr[3] - */ - *duart0_mcr = 0x08; - *duart1_mcr = 0x08; -#endif - return (0); -} - -/* - * Check Board Identity: - */ - -int checkboard (void) -{ - char str[64]; - int i = getenv_f("serial#", str, sizeof(str)); - - puts ("Board: "); - - if (i == -1) { - puts ("### No HW ID - assuming PPChameleonEVB"); - } else { - puts(str); - } - - putc ('\n'); - - return 0; -} - -/* ------------------------------------------------------------------------- */ - -int testdram (void) -{ - /* TODO: XXX XXX XXX */ - printf ("test: 16 MB - ok\n"); - - return (0); -} - -/* ------------------------------------------------------------------------- */ - -#ifdef CONFIG_CFB_CONSOLE -# ifdef CONFIG_CONSOLE_EXTRA_INFO -# include <video_fb.h> -extern GraphicDevice smi; - -void video_get_info_str (int line_number, char *info) -{ - uint pvr = get_pvr (); - - /* init video info strings for graphic console */ - switch (line_number) { - case 1: - switch (pvr) { - case PVR_405EP_RB: - sprintf (info, " AMCC PowerPC 405EP Rev. B"); - break; - default: - sprintf (info, " AMCC PowerPC 405EP Rev. <unknown>"); - break; - } - return; - case 2: - sprintf (info, " DAVE Srl PPChameleonEVB - www.dave-tech.it"); - return; - case 3: - sprintf (info, " %s", smi.modeIdent); - return; - } - - /* no more info lines */ - *info = 0; - return; -} -# endif /* CONFIG_CONSOLE_EXTRA_INFO */ -#endif /* CONFIG_CFB_CONSOLE */ diff --git a/board/dave/PPChameleonEVB/flash.c b/board/dave/PPChameleonEVB/flash.c deleted file mode 100644 index 2e1a9ab..0000000 --- a/board/dave/PPChameleonEVB/flash.c +++ /dev/null @@ -1,114 +0,0 @@ -/* - * (C) Copyright 2001 - * Stefan Roese, esd gmbh germany, stefan.roese@esd-electronics.com - * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#include <common.h> -#include <asm/ppc4xx.h> -#include <asm/processor.h> - -/* - * include common flash code (for esd boards) - */ -#include "../common/flash.c" - -/*----------------------------------------------------------------------- - * Functions - */ -static ulong flash_get_size (vu_long * addr, flash_info_t * info); -static void flash_get_offsets (ulong base, flash_info_t * info); - -/*----------------------------------------------------------------------- - */ - -unsigned long flash_init (void) -{ -#ifdef __DEBUG_START_FROM_SRAM__ - return CONFIG_SYS_DUMMY_FLASH_SIZE; -#else - unsigned long size; - int i; - uint pbcr; - unsigned long base; - int size_val = 0; - - debug("[%s, %d] Entering ...\n", __FUNCTION__, __LINE__); - debug("[%s, %d] flash_info = 0x%08X ...\n", __FUNCTION__, __LINE__, flash_info); - - /* Init: no FLASHes known */ - for (i=0; i<CONFIG_SYS_MAX_FLASH_BANKS; ++i) { - flash_info[i].flash_id = FLASH_UNKNOWN; - } - - /* Static FLASH Bank configuration here - FIXME XXX */ - - debug("[%s, %d] Calling flash_get_size ...\n", __FUNCTION__, __LINE__); - size = flash_get_size((vu_long *)FLASH_BASE0_PRELIM, &flash_info[0]); - - if (flash_info[0].flash_id == FLASH_UNKNOWN) { - printf ("## Unknown FLASH on Bank 0 - Size = 0x%08lx = %ld MB\n", - size, size<<20); - } - - debug("[%s, %d] Test point ...\n", __FUNCTION__, __LINE__); - - /* Setup offsets */ - flash_get_offsets (-size, &flash_info[0]); - debug("[%s, %d] Test point ...\n", __FUNCTION__, __LINE__); - - /* Re-do sizing to get full correct info */ - mtdcr(EBC0_CFGADDR, PB0CR); - pbcr = mfdcr(EBC0_CFGDATA); - mtdcr(EBC0_CFGADDR, PB0CR); - base = -size; - switch (size) { - case 1 << 20: - size_val = 0; - break; - case 2 << 20: - size_val = 1; - break; - case 4 << 20: - size_val = 2; - break; - case 8 << 20: - size_val = 3; - break; - case 16 << 20: - size_val = 4; - break; - } - pbcr = (pbcr & 0x0001ffff) | base | (size_val << 17); - mtdcr(EBC0_CFGDATA, pbcr); - debug("[%s, %d] Test point ...\n", __FUNCTION__, __LINE__); - - /* Monitor protection ON by default */ - (void)flash_protect(FLAG_PROTECT_SET, - -CONFIG_SYS_MONITOR_LEN, - 0xffffffff, - &flash_info[0]); - - debug("[%s, %d] Test point ...\n", __FUNCTION__, __LINE__); - flash_info[0].size = size; - - return (size); -#endif -} diff --git a/board/dave/PPChameleonEVB/fpgadata.c b/board/dave/PPChameleonEVB/fpgadata.c deleted file mode 100644 index f5e30dd..0000000 --- a/board/dave/PPChameleonEVB/fpgadata.c +++ /dev/null @@ -1,1139 +0,0 @@ - 0x1f,0x8b,0x08,0x08,0x80,0xb0,0xc0,0x3e,0x00,0x03,0x61,0x73,0x68,0x34,0x30,0x35, - 0x5f,0x31,0x5f,0x30,0x30,0x2e,0x62,0x69,0x74,0x00,0x94,0x9b,0x7f,0x70,0x14,0x65, - 0x9a,0xc7,0x9f,0xe9,0xee,0x24,0x9d,0x99,0x4e,0xa6,0x0d,0x84,0x42,0xe5,0x47,0xe7, - 0xc7,0xba,0xa3,0x37,0x0c,0x63,0x82,0x9a,0x05,0x32,0x69,0x03,0x7f,0xe4,0x84,0x2d, - 0xd9,0xbd,0xba,0xaa,0xdb,0x5a,0x6b,0x1d,0x5d,0xbc,0xe2,0xb6,0xd0,0xca,0xea,0x55, - 0x1d,0x67,0x6d,0xdd,0xbd,0x24,0x39,0x08,0x07,0x2b,0x01,0xb9,0x23,0xee,0x51,0x5c, - 0xf3,0x63,0xcb,0xa8,0xa9,0xad,0x11,0x76,0x0d,0x0a,0xa5,0x4d,0x2e,0x8b,0x21,0x44, - 0xc8,0xb1,0xd6,0x6e,0x44,0x97,0x1d,0x34,0xab,0x23,0x72,0x18,0xd1,0x92,0x44,0x20, - 0xb9,0xf7,0xed,0xee,0xf7,0xed,0x9f,0x33,0xc9,0x8e,0x7f,0xf8,0xe4,0x9d,0xd7,0xf6, - 0x7d,0x9e,0x79,0xfb,0x79,0x3e,0xfd,0x7d,0xde,0x86,0xd2,0xe8,0xb8,0xf9,0x0f,0x40, - 0xe8,0x31,0x90,0x1f,0x7b,0x66,0xc3,0xb2,0xe4,0x7d,0x8f,0xde,0xfb,0x68,0x32,0x99, - 0x78,0xea,0xc7,0xeb,0xe1,0x71,0x88,0xd4,0x3d,0x73,0x5f,0xf2,0x89,0x7f,0xfc,0xe9, - 0xbd,0xcb,0x96,0xc1,0x8f,0xf1,0x5f,0xc9,0x64,0xfd,0xd2,0xe4,0x7d,0x4b,0xef,0xad, - 0x87,0xf5,0x50,0x7a,0x6f,0x72,0xf9,0xb2,0x65,0xcb,0x97,0x35,0xc0,0x13,0x10,0xaa, - 0x3f,0x3c,0x8d,0x3f,0x2f,0xbf,0xf0,0xb7,0x7f,0x9f,0x04,0x14,0x02,0x80,0x92,0x64, - 0x28,0x4d,0xfe,0x1d,0x49,0x86,0x94,0x10,0xa0,0xa6,0x25,0x49,0xd0,0xc9,0xdf,0x60, - 0x7d,0x5f,0x9a,0x04,0xc5,0xf9,0x77,0x28,0x09,0x2a,0xac,0x03,0x75,0x07,0x54,0x24, - 0x61,0xe6,0x8f,0x2a,0x20,0x6a,0xfe,0x85,0xf3,0xa7,0x87,0x50,0xde,0x59,0xf6,0xa7, - 0xe9,0x9a,0x46,0x4d,0x6e,0x16,0xd7,0x0f,0xa9,0xc0,0xae,0x7f,0x61,0x56,0xd7,0xff, - 0x9a,0x5e,0xff,0x2f,0x9d,0x0f,0x15,0xb3,0x98,0x0e,0x20,0xb0,0xf5,0x58,0xf3,0x11, - 0xc4,0x20,0x0c,0x1c,0x02,0x0d,0x14,0x6c,0x78,0xaf,0x3f,0x40,0xad,0x93,0x45,0x53, - 0x70,0x03,0x35,0x65,0xa3,0xa3,0xfc,0x3c,0x38,0x87,0x9a,0x40,0x9a,0xe0,0x53,0x30, - 0x4d,0x46,0x8e,0xf1,0x57,0x4d,0x63,0x82,0x1f,0x87,0x56,0x6b,0x7e,0xff,0xfc,0x5f, - 0xc1,0x71,0x94,0xc8,0x46,0xba,0x9a,0x13,0xdc,0x76,0x94,0x80,0xb2,0x4c,0x38,0x61, - 0x8e,0x1c,0xe3,0xae,0x52,0x23,0x2b,0xd0,0x28,0x0e,0x0a,0x3b,0xe0,0x28,0xc4,0xf5, - 0x88,0x1c,0xae,0x85,0x76,0x88,0x83,0x98,0xe4,0x24,0x73,0x24,0xc9,0x0d,0x53,0xa3, - 0x1f,0x2f,0xd2,0xfc,0xe8,0xd0,0x0b,0xc7,0x21,0xa1,0x47,0xba,0xfb,0x13,0xb0,0x1d, - 0x12,0x70,0x7b,0x92,0x8b,0x9b,0x23,0x19,0xee,0x0a,0x35,0xc6,0x05,0xba,0x9e,0xef, - 0x55,0x5e,0x81,0x1b,0x90,0xd2,0xa3,0xfb,0xf8,0xa5,0xca,0x19,0x58,0x19,0x93,0x32, - 0x35,0x71,0x73,0x24,0xc3,0x5f,0xa1,0xc6,0xc8,0x6a,0x3a,0x5f,0x0b,0x9d,0x80,0x69, - 0x68,0xd2,0xa3,0x23,0xfc,0x4d,0x62,0x24,0xa3,0xe3,0xa6,0xa1,0x3b,0x8d,0x1c,0xa4, - 0xe9,0x7a,0xe4,0x5e,0x7a,0xfd,0x8d,0xf0,0x19,0xa4,0xa0,0xdc,0x71,0x59,0x66,0x8c, - 0x0b,0x74,0xfd,0xa3,0x45,0x71,0xd9,0x5c,0xff,0x3d,0x12,0xbc,0x8f,0xd7,0xdf,0xf9, - 0x1b,0x7b,0xd9,0xcc,0xb8,0x86,0x77,0xbf,0x75,0x7d,0x61,0xad,0x19,0x04,0xc4,0x7d, - 0xb7,0xe3,0x10,0x17,0xd7,0xee,0x74,0x84,0x85,0x19,0x13,0xf8,0x5e,0x31,0x3f,0xe3, - 0xf0,0x23,0xe8,0x43,0x4b,0xb2,0x91,0x1f,0x84,0x53,0xf2,0x5e,0xb4,0xf4,0xc3,0xd2, - 0x4d,0xdc,0x45,0x73,0x04,0x1b,0xc8,0x32,0x46,0xd9,0xf5,0x5b,0xc4,0xb5,0xf0,0x25, - 0x5a,0xa9,0x47,0x77,0xf1,0x6b,0x95,0x8f,0x60,0x25,0x8a,0x26,0xf9,0x61,0xf8,0x12, - 0xf0,0x48,0x03,0x7f,0x16,0x61,0x23,0x8b,0x47,0xce,0x73,0x74,0x3f,0xa8,0x0b,0x7b, - 0xcd,0x20,0x7c,0x61,0x44,0xa3,0x51,0x2f,0x67,0x61,0xf9,0x82,0xbf,0xa2,0x5a,0xf1, - 0x19,0x29,0xa6,0xf1,0x11,0x8b,0x7a,0xa5,0x1b,0x02,0x0e,0x02,0x8a,0xc4,0xe1,0x0c, - 0x8e,0x8f,0xe4,0x89,0xcf,0xca,0x2c,0x1e,0x19,0x62,0xbf,0xef,0xe0,0xed,0xfb,0xa0, - 0x0f,0x96,0xe8,0x91,0x75,0xdc,0x02,0xd8,0x8a,0x0d,0xb1,0x95,0xfb,0xc0,0x1c,0xa1, - 0x06,0x1e,0xb9,0xc6,0xe2,0xa9,0xc0,0x7e,0xa1,0x0f,0x3d,0x99,0x8d,0xfc,0x1d,0xb7, - 0xbc,0x7a,0x2b,0x8a,0x6b,0x2e,0x7f,0x0d,0x43,0xdc,0xc4,0xe9,0xec,0xfa,0x1b,0xe8, - 0x7e,0xcb,0xe0,0x6d,0xd6,0x0e,0x92,0x7e,0xb7,0x2f,0x9e,0x78,0x07,0x9e,0x67,0xd7, - 0xcf,0x56,0xe6,0xe0,0x1b,0x48,0xa1,0x68,0x96,0x5f,0x21,0x0c,0x71,0x4d,0x07,0xcb, - 0x34,0xde,0x1a,0x31,0x0c,0x21,0x85,0xff,0x9f,0xfc,0x84,0x40,0xfd,0x6d,0x09,0x69, - 0xa1,0x09,0xec,0x66,0x14,0xf1,0x97,0x14,0x6c,0xc8,0xe5,0x88,0xcf,0x82,0x35,0xc2, - 0x8c,0xf3,0x40,0xf7,0xbf,0x28,0x1f,0x86,0x49,0x48,0xa9,0xd1,0x2e,0xfe,0x09,0x38, - 0x0d,0x2b,0x55,0xa9,0x8b,0xaf,0xa5,0x23,0x63,0xd4,0xe8,0x67,0xf7,0x0b,0x12,0xd6, - 0xc3,0xeb,0x90,0x50,0x23,0xbb,0xda,0x8a,0xdb,0x4a,0x21,0xb1,0x21,0xb6,0x8f,0xab, - 0x35,0x47,0xba,0xb8,0x31,0x6a,0x64,0x41,0xb6,0xe6,0x37,0x14,0xb1,0x6f,0xd7,0xc3, - 0x36,0x48,0xb4,0x88,0xf3,0x9c,0xf3,0x6f,0x37,0x8d,0x53,0x6c,0x3f,0xc4,0xe6,0x0a, - 0xf0,0x2a,0xc4,0xd5,0x88,0xcc,0x09,0xe2,0x66,0x88,0x3f,0x34,0x1f,0x1b,0x74,0x64, - 0x80,0x1a,0xfd,0x21,0xba,0x1f,0x36,0x95,0xa5,0xa9,0x53,0x69,0x18,0x84,0x94,0x28, - 0xa1,0x88,0xe2,0xf3,0xf7,0x22,0x4f,0xf7,0x67,0x77,0xa5,0xe9,0xd4,0xc3,0x4f,0xb7, - 0x7f,0x80,0x8d,0xa6,0x87,0xa2,0xbb,0xdb,0xc7,0x7c,0xfe,0x7e,0x5c,0x4c,0xef,0xc7, - 0xf9,0x45,0xd6,0xe0,0x3a,0x7e,0x0f,0x8e,0x4f,0x53,0x4b,0xf9,0x3a,0xde,0x35,0xbf, - 0x89,0x18,0xa7,0x58,0xfe,0x69,0x98,0x9f,0x85,0x63,0xf8,0xb6,0x8a,0xb4,0xb5,0x29, - 0x30,0x2a,0x24,0xe6,0x85,0xdb,0x38,0x6b,0x04,0xd9,0xc6,0x59,0x16,0xcf,0x16,0xe8, - 0x30,0x9d,0xda,0x1d,0xee,0x80,0xcd,0x5c,0x62,0x30,0x2c,0xb7,0x61,0x37,0x05,0xe2, - 0x66,0x05,0xf3,0xf7,0x7c,0x88,0x5e,0xbf,0x5b,0x38,0x6c,0x46,0x6f,0x37,0x0e,0xe3, - 0x0b,0xd8,0x08,0x3b,0xc2,0xce,0x8c,0x8f,0xd9,0x7e,0xd0,0x0c,0x7f,0x13,0x6a,0x74, - 0x01,0xdf,0x81,0xd7,0x9f,0x4a,0x97,0x77,0xf1,0x7e,0x7f,0x73,0x2c,0x5f,0x0d,0x86, - 0xac,0xfd,0xd0,0xcd,0x8f,0x55,0x63,0x63,0xc3,0xd2,0xa0,0xf9,0xdf,0xb0,0xfc,0x23, - 0xca,0x1a,0x09,0x3b,0x44,0xb7,0xf0,0x9a,0x38,0x28,0x18,0xd1,0xd6,0x7c,0xf1,0x1f, - 0x62,0xfb,0x39,0x56,0x14,0x83,0x37,0x20,0x81,0x22,0x63,0xdc,0xeb,0xf0,0x32,0x2c, - 0xe9,0xe2,0x3f,0xe4,0x62,0x22,0x19,0xd9,0xae,0x71,0x39,0xf3,0x2b,0x8d,0x1b,0xb2, - 0xf7,0x83,0xb0,0x56,0xa8,0x11,0xf0,0xdd,0x51,0xcb,0x89,0xd0,0x2e,0xc4,0xcf,0xe3, - 0xdb,0x64,0x87,0xeb,0x7e,0x39,0x89,0x8d,0x21,0xb6,0xdf,0x90,0xfc,0x88,0x79,0xb7, - 0x66,0xe7,0x65,0x62,0x2f,0xc2,0x12,0x15,0xdf,0x86,0x0b,0xd8,0xfd,0x2b,0x3f,0xc0, - 0x19,0x46,0x8e,0xcd,0xef,0xec,0xfc,0x11,0x7c,0x82,0x1a,0xb3,0xd1,0x0d,0xdf,0xae, - 0x80,0xb7,0xdb,0x1a,0xb5,0xe8,0x06,0x7e,0x3f,0x5c,0x47,0x0b,0xb3,0xd1,0x4d,0xfc, - 0x45,0xf8,0xa7,0x8e,0x46,0x62,0x5c,0xae,0xa6,0xf3,0xc5,0x4a,0x9c,0x6f,0x43,0x38, - 0x7b,0x68,0xd8,0xbb,0x1b,0xf0,0x2f,0x10,0xfd,0xb5,0x37,0xdf,0x2e,0xce,0xf0,0xfd, - 0x6d,0x34,0x3e,0x20,0xbc,0xa9,0x4e,0xa3,0xd4,0x58,0x34,0x17,0x99,0x07,0x67,0x3a, - 0x9a,0xc6,0xe2,0x37,0xad,0xfa,0xb5,0x73,0x82,0x9f,0x82,0xe9,0xb6,0xa6,0x4b,0xb8, - 0x7e,0xe9,0x1a,0x8d,0xff,0xcb,0xf3,0xf7,0xc1,0x75,0x58,0x92,0x8b,0xa4,0x39,0xb9, - 0x65,0x6b,0xe6,0xdb,0xab,0xc5,0x71,0x7b,0xfd,0x17,0xd5,0xbe,0x8a,0x38,0x31,0x2e, - 0xb3,0xdf,0x17,0x60,0x5f,0x08,0x7f,0x3b,0x78,0x67,0x2b,0xd7,0x4a,0xf2,0xd5,0x40, - 0x77,0xda,0xe1,0xaf,0x68,0x19,0x76,0xfe,0x51,0x84,0x1d,0xa5,0x35,0x46,0xf4,0xda, - 0x1e,0x44,0x3c,0xd4,0x7e,0x3f,0x46,0x12,0xd1,0xd1,0xd0,0x46,0x23,0x9e,0x45,0x56, - 0x60,0x07,0xd9,0xfe,0xec,0xa9,0x24,0x45,0x01,0x7b,0x27,0xf2,0x0f,0x92,0xfc,0x99, - 0x5e,0x90,0xf9,0x2b,0x7f,0xfd,0xb2,0xd7,0x83,0x42,0xbd,0x82,0x31,0x78,0x60,0xce, - 0x21,0x6c,0x2c,0x4a,0x47,0x83,0xea,0x51,0x96,0xdd,0x2f,0x55,0xb2,0x55,0xef,0xb2, - 0x7c,0x12,0xce,0xe1,0x7c,0x2e,0x65,0xf9,0x95,0xac,0xde,0x85,0x2c,0x43,0x5f,0x4d, - 0xd7,0x7f,0x40,0xd8,0x68,0x16,0x29,0x8d,0xab,0x41,0xaf,0x40,0xe2,0xf1,0x58,0x26, - 0xec,0xaf,0xbf,0xd9,0x07,0xd9,0x7e,0x28,0x8a,0xc3,0x2b,0x64,0xb0,0x93,0xab,0x26, - 0xf5,0x3a,0x1b,0xeb,0x36,0xea,0xf5,0x3d,0xee,0xf9,0x6c,0xbf,0x89,0x73,0x25,0x78, - 0x5e,0x8e,0x0f,0x46,0xb4,0x62,0x80,0x43,0x62,0x5c,0x15,0x65,0x9b,0x07,0xde,0xd1, - 0x28,0x0f,0xb0,0xfc,0x03,0x65,0x1b,0x43,0xb8,0xec,0x0e,0x62,0xa7,0x14,0x38,0xa3, - 0xa4,0xc8,0xfa,0x49,0x7c,0x96,0xeb,0xe7,0x7e,0xc3,0xff,0x1f,0xc2,0xa1,0x7b,0x17, - 0x7f,0xa5,0xb3,0xfc,0x73,0xb0,0xf2,0xa6,0x3c,0xad,0x34,0x0d,0x44,0x5a,0x31,0xb4, - 0x4c,0x93,0xec,0xc1,0xea,0xd7,0x35,0x1c,0x1f,0x5a,0xdf,0x59,0xfe,0xd1,0xcb,0x18, - 0xe4,0x5c,0x80,0x3f,0x75,0x19,0x06,0xde,0x36,0x28,0x75,0xe9,0x39,0xcb,0x70,0xf3, - 0x0f,0x02,0x06,0x39,0x39,0x91,0xf8,0xeb,0xc4,0x9e,0x00,0xfe,0x11,0x8b,0x58,0xf5, - 0xc9,0xc1,0xf3,0x8a,0xbb,0xac,0xb3,0xfb,0xab,0x9f,0xe5,0x1f,0xfd,0xb6,0x5e,0x1a, - 0xb4,0xcb,0x24,0x9e,0xae,0x30,0x3a,0xf8,0x87,0xed,0xcf,0xb9,0xbd,0xf4,0x47,0x1f, - 0xc2,0xbc,0xe1,0xd8,0x06,0x4e,0x50,0xd1,0x59,0x7e,0xb8,0x04,0x27,0x68,0x10,0x26, - 0xb8,0x69,0x58,0xaa,0x07,0xf2,0xcf,0x84,0x4a,0xe7,0x33,0xfe,0xc9,0xe0,0x6a,0xf8, - 0xbe,0x67,0x9b,0x05,0xf0,0xcf,0xa0,0xc0,0x76,0x4b,0x4e,0x7c,0xdf,0xbf,0x7e,0xce, - 0xe2,0x1f,0xfa,0xf9,0xb0,0x68,0x2d,0x8d,0x86,0x0e,0xcf,0x43,0x40,0x7c,0xdc,0xfc, - 0xf3,0x58,0x68,0x11,0xad,0xfe,0xdf,0xc0,0x5e,0xc3,0x28,0x36,0x30,0x20,0x17,0x71, - 0x80,0x81,0x83,0x7f,0xa0,0x1c,0xbe,0xcc,0x18,0x90,0x73,0x12,0x7e,0x47,0x40,0xc8, - 0xe2,0x9f,0x1c,0x35,0x3c,0xfc,0x53,0x69,0xc7,0x07,0xa6,0x65,0x16,0x96,0xd4,0x00, - 0x21,0x22,0xcc,0x3f,0x29,0x02,0x42,0x36,0xff,0xf4,0x54,0x9e,0xc5,0xb7,0xad,0x01, - 0x39,0xd9,0xfc,0xf1,0xb9,0x6c,0xe7,0xff,0xdb,0xf6,0xc1,0xdb,0x26,0xe4,0x8c,0x1a, - 0xfc,0x13,0xf1,0xf1,0x4f,0x84,0xf0,0x0f,0xbd,0xbe,0x0e,0xfb,0x61,0xab,0x09,0x39, - 0xd7,0x2c,0x7f,0xbd,0xfc,0x83,0x8d,0x71,0x96,0x7f,0x5a,0x30,0x4f,0xb6,0x9b,0x90, - 0x33,0x8c,0xb6,0xdb,0x61,0x94,0x5c,0xf1,0xb4,0xf9,0x24,0x57,0xd4,0x53,0x31,0x04, - 0x06,0xe4,0xbc,0x07,0x17,0x38,0x8a,0x3d,0xe0,0x36,0xec,0x7a,0xd4,0xa2,0x66,0x21, - 0xe7,0xa9,0x3e,0xd4,0x28,0x09,0xe2,0x1f,0x30,0x8b,0x5a,0x84,0x54,0xb7,0xd3,0x70, - 0xbf,0xb3,0xcc,0xd5,0x5b,0xa8,0xd0,0x35,0xa7,0x1f,0x7c,0xfc,0x43,0xaa,0xed,0x4b, - 0x50,0xed,0x2c,0xbb,0x15,0x36,0xff,0xc8,0x34,0xff,0xcc,0x9f,0x6b,0xd3,0x0e,0xb7, - 0x0d,0xee,0x72,0x95,0x69,0x66,0x9c,0x12,0xe8,0xef,0x2b,0x0a,0x8c,0x76,0xc6,0x60, - 0x33,0xfe,0xbd,0x9d,0xd8,0x63,0xf3,0x0f,0xdb,0x9f,0xc7,0x44,0xca,0x3f,0xf5,0x59, - 0x5c,0x88,0xef,0x77,0x3b,0x2e,0x5a,0xc6,0x59,0x8e,0xae,0xa7,0xbb,0x8c,0xf1,0xde, - 0xbb,0xda,0x64,0xcc,0x5d,0xd6,0x03,0xf8,0xa7,0xbb,0xe8,0x2b,0x0a,0x39,0x7f,0xe6, - 0x4e,0xc3,0x11,0xf7,0x7c,0x71,0x92,0x4b,0x79,0xf8,0x07,0x1c,0xb4,0xd3,0x09,0x07, - 0x61,0x0d,0x2a,0xc8,0x3f,0x62,0xe5,0x80,0xf0,0x2a,0x47,0xfd,0x8d,0x29,0x5e,0x7f, - 0x43,0x16,0xef,0x31,0x1e,0xab,0x3c,0xcc,0xa2,0xa7,0x6c,0x73,0xc6,0xbf,0xd4,0x15, - 0x4f,0xba,0x1f,0x0e,0x56,0x92,0x41,0xb2,0xc8,0x92,0xdf,0xc2,0x49,0xa8,0x0b,0xf6, - 0x37,0xd7,0x41,0xaf,0xdf,0x03,0x34,0x3e,0x35,0xfe,0x69,0xcc,0xb8,0x8c,0xe8,0xfd, - 0x1b,0x93,0x4d,0xda,0x91,0x30,0x6f,0xc3,0x44,0x28,0x05,0x3b,0x83,0x78,0x7b,0xa8, - 0x83,0xee,0x7f,0x45,0x30,0xf9,0x27,0x46,0x68,0xe7,0x4d,0x93,0x76,0x30,0xf6,0x70, - 0xa6,0x31,0xdf,0xe2,0x9f,0x41,0x9b,0x7f,0xac,0xfc,0x23,0x06,0xa5,0x1d,0x66,0x0c, - 0xb1,0xfc,0x53,0x15,0x32,0xaa,0x7f,0x56,0x6c,0xad,0xc0,0x77,0x6b,0x32,0xcf,0xfd, - 0x3b,0xa8,0xb2,0xeb,0xc3,0x22,0x4c,0x3b,0x8d,0x59,0x89,0xd0,0xce,0x75,0xad,0xd1, - 0xc4,0x1e,0x32,0xe2,0x34,0x86,0x58,0xfe,0x31,0xf8,0x87,0x3c,0x9d,0xe1,0xec,0xa1, - 0x98,0xd9,0x23,0xe4,0xcf,0x27,0xfd,0x2c,0xff,0xa8,0x95,0x53,0xaa,0x55,0xbf,0xa6, - 0xd2,0xe7,0xd0,0x0a,0x5a,0xbf,0xf0,0xc8,0xeb,0xf8,0xf9,0xfd,0x86,0xf9,0xd5,0x08, - 0xdb,0x3f,0x3d,0x38,0xff,0x18,0x4e,0xb5,0x72,0x37,0xe1,0x77,0x98,0x67,0xec,0x65, - 0xb3,0x7c,0xe2,0xe4,0x9f,0x17,0x60,0x1f,0x85,0x9c,0x0f,0x42,0xee,0x7c,0xf5,0xb4, - 0xc1,0x3f,0x4f,0x9e,0xc4,0x23,0x59,0x96,0x7f,0xd2,0x02,0x0b,0xda,0x39,0x35,0x6f, - 0x3e,0x1f,0x65,0xfb,0xb3,0xa1,0xa8,0x57,0xb4,0x9c,0xba,0xa5,0x9e,0x83,0x67,0x83, - 0xf3,0xe7,0x90,0x60,0xd7,0x5f,0x3a,0xb8,0xca,0x8f,0x85,0x0e,0xfe,0xa1,0xeb,0xd9, - 0x0c,0x8e,0xea,0xf6,0x27,0x77,0x99,0xab,0x71,0xf0,0x0f,0x5d,0xcf,0x49,0xca,0x3f, - 0x99,0xea,0x2b,0x26,0xd8,0x04,0xd6,0x5f,0x9b,0x7f,0x2a,0xe9,0x7c,0x8c,0xcd,0x79, - 0xeb,0xb5,0x83,0x7f,0x84,0x32,0x38,0x2a,0x5b,0xd1,0x38,0x84,0x0d,0xfa,0xbc,0x3f, - 0x82,0x89,0x71,0x58,0x39,0xaa,0xc4,0x47,0xd7,0x38,0xf9,0x47,0x2f,0x7d,0x92,0xc4, - 0x67,0x00,0x3b,0x75,0xc2,0x55,0x5f,0x46,0x0c,0x03,0xf3,0xcf,0x05,0x17,0xff,0x68, - 0x0b,0xb1,0x77,0x4a,0xd3,0xa0,0xe9,0xa6,0xd2,0xe4,0xad,0xef,0x6a,0xca,0xc3,0x3f, - 0x45,0x53,0x94,0x7f,0xbe,0x16,0xc7,0xd1,0x7d,0x9a,0x34,0x42,0xf5,0x1f,0x22,0x04, - 0x9d,0xf3,0xea,0x3f,0xba,0x6c,0x41,0x4e,0x92,0xfb,0x18,0x3a,0x95,0x7b,0x50,0x67, - 0xb6,0x22,0x4e,0xb1,0xe7,0x57,0xb0,0xdd,0xa7,0xff,0xd8,0xfc,0x33,0x86,0x93,0xe9, - 0x5d,0xa8,0x34,0x79,0x87,0xe4,0x7c,0x42,0xf7,0xea,0x3f,0x95,0x8c,0x7f,0x3e,0x81, - 0x4e,0x54,0xad,0x95,0xf6,0xd8,0xfc,0xd9,0x4b,0x23,0x6c,0xeb,0x3f,0x3a,0xd5,0x7f, - 0x32,0x7f,0x73,0x0e,0xc6,0xf5,0xfb,0xb3,0x65,0xdd,0xed,0x8c,0x9f,0x0d,0x45,0x22, - 0x8f,0xfe,0x33,0xde,0x7c,0x13,0x6f,0x8d,0x26,0x3d,0xe1,0x8c,0x0f,0x97,0x5f,0xff, - 0xc9,0xe0,0xc7,0xf6,0x41,0x75,0xb9,0x26,0xa5,0x22,0x7e,0x3e,0x77,0xf0,0x4f,0xc8, - 0x5c,0x6d,0xf9,0x09,0xfc,0xfc,0xd8,0xa9,0x28,0x7b,0x36,0x1c,0xb3,0xf5,0xab,0x61, - 0xbf,0xfe,0x93,0xa5,0xfc,0xf3,0x00,0x7e,0x0c,0x47,0x10,0x43,0xe2,0x32,0x8e,0x29, - 0x18,0x01,0xfc,0x93,0xc5,0xfc,0xf3,0x00,0xbe,0x49,0xc3,0x9b,0x9e,0x7e,0x40,0xed, - 0x38,0x50,0x73,0xb8,0x65,0x82,0xdb,0x6f,0xdc,0xb6,0x7c,0x20,0xff,0x3c,0x24,0x4a, - 0xa6,0xda,0x93,0xe4,0x05,0xd0,0xb5,0x06,0x41,0xaa,0xe3,0x77,0xd0,0x91,0xb3,0xd4, - 0x70,0xf0,0x4f,0xd9,0x09,0xec,0x94,0x11,0x84,0x77,0xe1,0xa6,0xdc,0x24,0x44,0x5b, - 0xf9,0x9f,0x99,0xb2,0x4f,0xc6,0x0e,0x94,0xcd,0x3f,0x2f,0x17,0x59,0x41,0x38,0x16, - 0x11,0xa0,0x1a,0x8e,0xe8,0xf1,0xd7,0x22,0x09,0x1a,0xf6,0xb3,0xd4,0x70,0xe8,0x3f, - 0xbb,0x8c,0xe7,0x29,0x92,0x46,0xe6,0xc2,0xef,0xa1,0x46,0x17,0xc7,0xdb,0x56,0xc2, - 0x1f,0x68,0x62,0xd9,0x4a,0xf9,0x87,0xce,0x47,0xb0,0x9f,0x3a,0xf5,0x7d,0x65,0xef, - 0xb6,0xaa,0x2a,0x0c,0x42,0x8b,0x0c,0x22,0x32,0xf2,0x95,0x65,0xd8,0xcf,0x5f,0x2d, - 0x73,0x69,0xd0,0x9a,0x57,0xc3,0xee,0x74,0x35,0x32,0xf4,0x46,0x96,0x88,0xac,0xfd, - 0xe6,0xd4,0x7f,0x7a,0x28,0xe4,0xfc,0x40,0xf8,0x7d,0x73,0xfd,0x9e,0x05,0x63,0x7c, - 0x0c,0x86,0x2c,0xfe,0xe1,0x2c,0xc3,0xa1,0xff,0x80,0x55,0x74,0x3a,0xf8,0x03,0x44, - 0xff,0x81,0x47,0x3b,0xda,0x0b,0xeb,0x3f,0x63,0xf0,0x29,0xad,0x6e,0x9f,0xd6,0xd4, - 0xb5,0x0e,0xef,0x5a,0x5e,0x2b,0xce,0x42,0xff,0xd9,0xd3,0x36,0x26,0x6c,0x53,0xaa, - 0x5b,0x36,0xec,0x8b,0xac,0x2f,0xa0,0xff,0xcc,0xa7,0xfa,0x4f,0x77,0xf1,0x98,0xf8, - 0x0a,0xae,0xd7,0x2d,0x72,0xf3,0x61,0x3f,0xff,0x38,0xf2,0x0f,0xe5,0x9f,0xe6,0xe1, - 0xd0,0x36,0x50,0x54,0xb1,0xae,0x6d,0x00,0x76,0xe5,0xd5,0x7f,0x1a,0xca,0xd2,0x98, - 0xf7,0x12,0x10,0x05,0x9e,0x80,0x5f,0x1d,0x48,0x6d,0x35,0x7e,0xfd,0xc1,0xd6,0x7f, - 0x46,0x17,0x5a,0x4e,0xed,0x6e,0xff,0x0a,0x6e,0xc5,0xde,0x7a,0x28,0x7a,0xbe,0x7d, - 0xbd,0x36,0x0b,0xfd,0x67,0x17,0xde,0x6f,0xef,0x40,0xbd,0x2e,0x9d,0x6f,0x67,0xfa, - 0xd8,0x57,0xd4,0xb0,0xf9,0x67,0x93,0x6c,0x41,0x0e,0xe0,0xb2,0x8e,0xef,0x2f,0xf1, - 0x9e,0x2d,0x61,0x05,0x15,0xe0,0x9f,0x22,0xcb,0xa9,0x0a,0xc2,0x3f,0xa2,0xd6,0x2c, - 0xca,0x6d,0x82,0xe2,0xe5,0x3d,0x5b,0xff,0x99,0x7f,0xdb,0x61,0x07,0x4f,0xaa,0xca, - 0xea,0xb0,0xdc,0xec,0xd7,0xdf,0xbc,0xfa,0x8f,0xb5,0xc8,0xd3,0xea,0x91,0xa7,0x03, - 0xf5,0x3d,0x5b,0xff,0xc9,0x51,0xfd,0x27,0xc3,0x8f,0xa1,0x49,0x31,0xd5,0x1c,0xfd, - 0x45,0x41,0xfd,0x87,0xf2,0x0f,0x0e,0xb2,0x82,0xf3,0x4f,0x4a,0x8e,0x13,0x63,0x16, - 0xfa,0xcf,0x2f,0x9b,0xbf,0x03,0x53,0xb0,0x74,0x77,0x4f,0x36,0x1c,0xa3,0xb2,0x4f, - 0x90,0xfe,0x43,0xf3,0x4f,0x03,0x17,0x49,0x6f,0x23,0x20,0xd4,0x10,0xa0,0xcf,0xdb, - 0xfa,0x8f,0x66,0xf0,0xcf,0x93,0x7a,0x64,0x23,0xb7,0x12,0xfa,0xc4,0x25,0x80,0xf3, - 0xd5,0x02,0xdd,0xcb,0x3f,0xb6,0xfe,0xd3,0x23,0x9a,0xfc,0x13,0xfd,0x87,0xc8,0x1d, - 0xf0,0x5b,0xd4,0x78,0x69,0xed,0x86,0x55,0x8b,0x74,0x2f,0xff,0x38,0xf4,0x9f,0x85, - 0x56,0xbe,0x3d,0x18,0xca,0x09,0x37,0x30,0xef,0x2d,0xc5,0x69,0x16,0xe5,0xe7,0x1f, - 0xf8,0xb7,0x29,0xf8,0x57,0x52,0xa4,0x72,0xf8,0xa6,0x7b,0xa7,0xab,0xfe,0x70,0x74, - 0xb2,0x86,0x95,0x2d,0x86,0x46,0xb6,0xfe,0x43,0xf8,0xa7,0x4f,0xc3,0x8b,0x4c,0x57, - 0x8c,0x70,0x3b,0xa1,0x4a,0x5a,0xf3,0x25,0xb7,0x80,0xe6,0x9f,0xb3,0xa8,0x0f,0xbe, - 0x63,0xe8,0x3f,0x2c,0xfe,0x00,0x78,0xbe,0x82,0xbf,0x55,0xb9,0xff,0x85,0x2d,0xa1, - 0xaa,0x93,0x3f,0x54,0xdb,0x1e,0xf1,0x3d,0xb8,0x39,0xf4,0x1f,0x9a,0x7f,0x80,0xd3, - 0xe5,0x36,0x55,0x51,0x7e,0xb8,0x92,0x5b,0xeb,0x7c,0xb0,0x8d,0x79,0xf5,0x1f,0xcb, - 0x5f,0x8d,0xd7,0xb9,0xc1,0x75,0x75,0xe9,0x48,0x27,0xff,0x33,0x23,0x6d,0x2e,0xce, - 0xcc,0x09,0x78,0x7e,0xc4,0xfc,0x63,0xf2,0x92,0x8e,0x79,0xf8,0x1b,0x35,0x25,0x44, - 0xb9,0x39,0xbd,0xbe,0x7a,0x94,0x65,0xeb,0x0f,0xc9,0x56,0xd2,0xce,0xcd,0x19,0x87, - 0x0f,0x60,0x85,0x2e,0xe9,0x0e,0xfd,0x07,0xa6,0x05,0x8f,0xfe,0x83,0x28,0xff,0x74, - 0x54,0x7c,0x04,0xe7,0x1f,0xac,0x56,0xd6,0xfe,0xbc,0x39,0x40,0xff,0x51,0x19,0xff, - 0x90,0x7a,0x47,0x1e,0xea,0x7f,0x59,0xfc,0xa1,0xd2,0x2d,0xc6,0x3a,0xc4,0x0e,0xab, - 0xde,0x85,0xf3,0xf0,0x0f,0xde,0x5d,0xca,0x46,0x23,0x3e,0xf0,0x0b,0x55,0x81,0x6d, - 0x60,0xe6,0x67,0x22,0x83,0x0c,0xa7,0x8f,0xc2,0x46,0x9f,0xfe,0x03,0xc7,0x63,0xa4, - 0xbf,0xc0,0x67,0x85,0x0b,0xea,0x72,0x7d,0x01,0xe2,0x17,0x30,0x7f,0xe9,0xc6,0xd0, - 0x4b,0x9c,0xfc,0x43,0xea,0xd7,0xc3,0x3a,0x86,0x96,0x29,0x68,0x82,0x72,0xdd,0x2e, - 0x5b,0x57,0x90,0x5f,0xff,0xb1,0xf9,0x67,0xaa,0x85,0x18,0xe5,0x13,0xfc,0x4d,0x64, - 0xc9,0x3e,0xec,0x2b,0x87,0xfe,0x23,0x7f,0x4c,0x69,0xe7,0x0a,0x3a,0x8e,0xee,0x22, - 0xc6,0xf4,0xec,0xf4,0x9f,0x61,0x44,0x8c,0x30,0x36,0x54,0x5f,0xff,0xcb,0xd6,0x7f, - 0xf0,0xf3,0x97,0x23,0xda,0x77,0xcd,0xa4,0xff,0xa8,0x95,0x57,0x55,0xd7,0xaf,0x1f, - 0xd8,0x9f,0x1a,0x61,0xfb,0x27,0x1b,0x7a,0xcd,0xa7,0xf6,0x04,0xe8,0x3f,0x41,0xfc, - 0xe3,0xbf,0x6c,0x10,0xff,0xe0,0x7a,0xe4,0x5d,0xed,0xcd,0x02,0xfd,0xaf,0x6c,0xd1, - 0xea,0xfc,0x8f,0x5d,0x01,0xfc,0x93,0x0e,0xcd,0xf3,0xa9,0x1f,0x7e,0xc3,0xd9,0xff, - 0x12,0x28,0xe4,0x0c,0xbb,0x8c,0x6c,0x34,0x59,0x33,0x1c,0xc0,0x3f,0x0b,0x7f,0x4d, - 0xd4,0x1e,0xbd,0x04,0xd3,0x8e,0x6a,0x81,0xd0,0x4d,0xd5,0x21,0x04,0x79,0xf8,0xa7, - 0x07,0xd7,0x2f,0x6f,0x34,0xa6,0xf4,0x33,0x5e,0xfd,0x87,0xed,0x9f,0xc1,0xdb,0xf6, - 0xf8,0x9e,0x16,0x87,0x15,0x6f,0x3e,0x71,0xea,0x3f,0xff,0x19,0xe0,0xe6,0x56,0xcf, - 0x88,0x43,0xff,0x99,0x3b,0x10,0x10,0xc6,0x76,0xcf,0xc8,0x79,0xb6,0x3f,0x73,0x36, - 0xff,0xd8,0xb2,0x0f,0xc5,0x1e,0x5b,0xff,0xf1,0xf3,0x4f,0xd0,0x63,0x78,0x1e,0xfe, - 0xb1,0xd5,0x0c,0xcb,0x10,0x26,0x43,0x33,0xf2,0x4f,0x90,0x8c,0x53,0x88,0x7f,0x0a, - 0xce,0x0f,0xe2,0x1f,0x87,0x0c,0xa2,0xe5,0xef,0x7f,0x35,0xd8,0xfd,0x2f,0xdb,0x4d, - 0xe4,0x1d,0x39,0x6b,0xf7,0xbf,0xca,0x28,0xb4,0xcc,0x19,0xd3,0xde,0xcb,0xa7,0x6f, - 0x04,0xf0,0x4f,0x17,0xff,0x67,0xc3,0xd8,0x19,0x34,0xff,0x14,0xbb,0x7f,0x1b,0x64, - 0x06,0x39,0xba,0x85,0x3d,0xcd,0x97,0xd4,0x59,0xf0,0x4f,0x90,0xcc,0xe5,0xf0,0x37, - 0x48,0xff,0x29,0x14,0x4f,0xba,0x1f,0xb4,0xca,0xf5,0xf9,0x65,0x1c,0xd3,0x58,0x8c, - 0xf9,0xc7,0xd6,0x1f,0x42,0x87,0x67,0x9a,0x4f,0xf4,0x9f,0x20,0xfe,0xc9,0x9a,0x8d, - 0x30,0x62,0x8c,0x7a,0xf9,0x87,0xed,0x7f,0xc6,0x3f,0x84,0x76,0xfe,0x1d,0x1b,0x51, - 0x6a,0xcc,0xc0,0x3f,0xc9,0x62,0xc7,0x6d,0xe2,0x15,0x2e,0x86,0x04,0x56,0x5f,0x42, - 0x76,0xb7,0x08,0x59,0xb7,0xed,0x59,0x1f,0x0f,0xe4,0xd8,0xf5,0x09,0xff,0xf4,0x59, - 0xb4,0xa3,0xbc,0x4d,0xb1,0xe7,0x0f,0x5e,0xfe,0xb1,0xf5,0x9f,0x85,0x76,0xbe,0xed, - 0x37,0xf3,0xb9,0x57,0xe8,0x70,0xf3,0x8f,0x59,0xbf,0xc6,0x8c,0x6a,0x75,0xae,0xcd, - 0x90,0x7d,0x58,0xd9,0xba,0xca,0xf8,0xc7,0xa5,0xff,0xf4,0x91,0xfe,0x17,0xd1,0x7f, - 0xb6,0x12,0x10,0x7a,0xd6,0x5e,0xf6,0x45,0x6a,0xb8,0xfa,0x5f,0x76,0xbe,0xda,0xaa, - 0x98,0xb2,0x0f,0x1b,0x41,0xf9,0xf9,0x27,0x28,0xed,0x30,0x23,0x80,0x7f,0x70,0xbe, - 0xe5,0xbc,0x69,0x33,0xa8,0xff,0x05,0x57,0xac,0x7a,0xb7,0x8a,0x14,0xfa,0x44,0xc0, - 0xfc,0x9d,0x84,0x7f,0xe8,0xf5,0x09,0xff,0x9c,0x33,0x92,0xf6,0x1c,0xbb,0xcc,0xc9, - 0xc4,0x58,0x8c,0x0d,0xd1,0xa7,0xff,0x6c,0x16,0xd6,0xba,0x65,0x9f,0x35,0x81,0x7a, - 0x8e,0xcd,0x3f,0x45,0x71,0x26,0xfb,0x08,0xde,0x69,0xd4,0x68,0x76,0xf2,0x4f,0x1c, - 0x0e,0x59,0xd1,0x10,0x8e,0x8a,0x76,0x58,0x06,0x18,0x21,0xac,0xf1,0xf2,0x0f,0x0e, - 0xcb,0x69,0xe3,0xe9,0xdb,0x70,0xf3,0x88,0xa5,0xff,0x44,0xb0,0xbf,0x1a,0xe5,0x1f, - 0x9e,0x4e,0x37,0xf4,0x1f,0xa2,0x17,0x91,0x6a,0x75,0x23,0x44,0x8e,0x6d,0xd4,0x50, - 0xc7,0xed,0x08,0xe4,0x4a,0x02,0xf8,0xe7,0x26,0xd9,0x8d,0x8a,0xe4,0x68,0x7b,0x05, - 0xf5,0xbf,0x64,0x06,0x39,0x53,0xc4,0x50,0x62,0x81,0xfd,0x2f,0x08,0xe2,0x1f,0x62, - 0x00,0x7e,0xbe,0xf0,0xef,0x07,0x27,0xff,0xb8,0x69,0x53,0x15,0x8f,0xcd,0xb6,0xff, - 0x65,0x9c,0x36,0xf1,0x9d,0x3f,0xc9,0xdf,0xff,0x32,0xa2,0x51,0x31,0xfb,0xfe,0xd7, - 0x15,0x74,0x06,0xd5,0xc1,0xda,0x37,0x0a,0xeb,0x3f,0xac,0xff,0x55,0x3d,0xa5,0x6c, - 0x87,0xea,0xe6,0xb2,0x13,0x01,0xe7,0x97,0xec,0xfe,0x57,0xd6,0xee,0x7f,0x9d,0x83, - 0x76,0x01,0x32,0xf8,0x79,0xca,0xff,0xfc,0xe5,0xe4,0x9f,0x45,0x0e,0x0c,0x18,0xa8, - 0x39,0x5c,0x4a,0xf4,0x10,0x1f,0xff,0x08,0x74,0xbf,0xb5,0x88,0xf8,0x6a,0xb4,0xed, - 0xf5,0x3f,0x4a,0xd7,0xe6,0x1d,0xd5,0xbc,0x44,0x8f,0xfd,0xd8,0xfd,0xaf,0x62,0xba, - 0x1e,0x75,0xa1,0x15,0x9f,0x0c,0xff,0x47,0x62,0x9c,0x8c,0xa6,0x03,0xe2,0x33,0xc2, - 0xe2,0xdf,0x53,0x74,0x05,0x3e,0x42,0x75,0x64,0xfe,0x55,0x79,0x0d,0xac,0x44,0xd2, - 0x31,0xa3,0x3f,0x6b,0x74,0xc4,0xd8,0xf9,0x1f,0x27,0xff,0x90,0xfc,0x59,0x45,0x92, - 0xc6,0x1f,0xbb,0xf1,0x63,0x17,0x2a,0x6b,0xb5,0xfa,0xe9,0xec,0x20,0x90,0xe8,0xed, - 0x7f,0xf5,0xa1,0x2a,0xe2,0xd4,0x59,0x78,0x11,0x2d,0x4d,0x8a,0x39,0xcb,0x5f,0xd1, - 0x71,0xfe,0x67,0xdc,0xa3,0xff,0x28,0x38,0x68,0xd5,0xc4,0xd8,0x78,0xf2,0x6e,0x08, - 0x4b,0x6e,0x85,0x5f,0x74,0xf3,0x0f,0x81,0x9c,0x23,0xb8,0x4c,0x94,0xe4,0xe0,0x32, - 0x34,0x6a,0x52,0x96,0x8f,0x19,0xd8,0x13,0xa7,0xfc,0x13,0x77,0xf3,0x8f,0xa3,0x1e, - 0x75,0xab,0x29,0x58,0xdc,0x31,0x6b,0xfe,0x81,0xc9,0x8a,0x94,0x2a,0x75,0xcf,0x19, - 0x93,0x67,0xa1,0xff,0x18,0xd5,0x56,0xc5,0xfb,0xff,0x85,0xfe,0x82,0xfc,0x23,0xd4, - 0xc2,0x4b,0xb4,0x5f,0x43,0xbe,0x15,0x83,0xeb,0x35,0xfd,0x88,0x60,0xf3,0x8f,0x56, - 0x2f,0x24,0x1e,0x8b,0x15,0xee,0x7f,0x35,0x88,0x69,0xd6,0xef,0x43,0x66,0x23,0x66, - 0x95,0xdf,0x5f,0x47,0xff,0x6b,0xa1,0xab,0x9a,0x37,0x91,0x83,0x3d,0x33,0xf1,0xcf, - 0x2d,0x4b,0xed,0x41,0xb7,0xf0,0x7c,0xa9,0xd5,0xd0,0x4f,0x9a,0xf2,0x9d,0xff,0xb1, - 0xf9,0xe7,0x92,0x61,0x7c,0x57,0xab,0x50,0x0a,0xf5,0xbf,0x2c,0xfe,0xd9,0x8e,0xbd, - 0x5b,0xfd,0x2a,0x24,0xd2,0xa2,0xdc,0x1c,0x74,0xde,0x29,0x1f,0xff,0xb4,0x94,0x76, - 0x05,0x9c,0xbf,0xb2,0xfb,0x5f,0xda,0x5c,0x0f,0xcf,0xc4,0x77,0x45,0x0a,0xe9,0x3f, - 0x76,0xff,0x8b,0x7c,0x2b,0xe6,0xed,0x7f,0xd1,0xeb,0xfb,0xf8,0x47,0xda,0x12,0xa4, - 0xff,0xd8,0xfd,0xaf,0x0e,0xcc,0x3f,0x21,0x02,0x39,0x15,0x37,0x76,0x3f,0x27,0x2e, - 0x41,0x3d,0x1b,0xda,0x7a,0x18,0x11,0xc9,0x79,0xfb,0x5f,0xa4,0xff,0x8e,0xda,0x70, - 0x34,0x44,0x25,0x48,0xff,0x51,0x3c,0xfd,0x2f,0x93,0x16,0xb6,0xc0,0x92,0x36,0x71, - 0x9c,0xdb,0x57,0xa8,0xff,0x45,0xf5,0x9f,0x4d,0x7c,0x3f,0xbc,0x4d,0xea,0xcb,0x26, - 0x7e,0x51,0xa1,0xfe,0x97,0xcd,0x3f,0x39,0x92,0x3d,0xd0,0xc3,0x41,0xf9,0xdc,0xd1, - 0xff,0x2a,0xba,0xda,0x72,0x1d,0xd5,0x93,0x22,0xf5,0x06,0x5c,0xc4,0x86,0xf4,0xcf, - 0x76,0xff,0x82,0xd4,0xaf,0x15,0xde,0xfe,0xd7,0x7e,0x5c,0x64,0x0f,0x90,0x45,0x8e, - 0x76,0xec,0x44,0x77,0x6f,0x11,0x9f,0xa9,0x58,0xe0,0x5b,0xbf,0x93,0x37,0x88,0x77, - 0xdf,0x32,0xe6,0x4b,0x27,0xa0,0xaa,0xab,0xb4,0xb5,0xda,0x35,0xff,0x6e,0xdd,0xdd, - 0xff,0x32,0xf2,0x4f,0xad,0x01,0x39,0x70,0x00,0x62,0x9b,0x4b,0x83,0xf4,0x34,0xbb, - 0xff,0x15,0x33,0xfa,0x17,0xaf,0x61,0xa7,0x4a,0x7a,0x8a,0xbe,0x80,0x24,0x2a,0x33, - 0xf3,0x27,0xf3,0x77,0xb9,0xd9,0xff,0xb2,0xd7,0xd3,0x4b,0x07,0x3f,0x85,0xff,0xe2, - 0x52,0x5d,0xe5,0xff,0x11,0x78,0xfe,0xc7,0xc9,0x3f,0xec,0xa1,0xfe,0xd6,0xe1,0x7a, - 0x24,0x8d,0xbb,0xf4,0x9f,0x7c,0xfd,0xaf,0xd2,0x0c,0xf7,0x19,0x1c,0x4f,0x57,0x1f, - 0x09,0x2f,0x0f,0x3a,0x7f,0xeb,0xe2,0x1f,0x6b,0xb0,0x27,0xfd,0x86,0x50,0xad,0x89, - 0xc7,0x02,0xe6,0x7b,0xf4,0x1f,0x1c,0x84,0xd2,0x64,0xf3,0x20,0x1c,0x55,0x0e,0x6e, - 0x7e,0xd6,0x3a,0x0f,0x3c,0x60,0xc6,0x87,0xf7,0x9e,0xff,0x91,0xe2,0xe8,0xc6,0x3a, - 0x6b,0x3f,0x4c,0x40,0x1d,0x92,0x32,0x56,0x7c,0x22,0x8e,0x46,0x98,0x93,0x7f,0x6e, - 0x19,0x4e,0x95,0x8d,0xf3,0xa3,0x30,0xa9,0x36,0x22,0xea,0xe6,0x20,0x35,0x86,0x02, - 0xf8,0x27,0x65,0x62,0xb3,0xd9,0x2d,0x5d,0xe3,0xda,0x3f,0xf5,0xfe,0xfe,0xd7,0x0a, - 0x02,0x39,0x47,0x2c,0xda,0x91,0x8e,0x71,0xae,0xf3,0xcf,0xd5,0xbe,0xfe,0x97,0x70, - 0x34,0x14,0xd7,0xb7,0x3b,0x7e,0x7d,0xd7,0x7e,0x50,0xf2,0xf6,0xbf,0xcc,0xe8,0x89, - 0x19,0x77,0x3c,0xab,0xf3,0xf5,0xbf,0xec,0x5f,0xdf,0xb5,0x7f,0xea,0xf2,0xf5,0xbf, - 0xf2,0xe8,0x3f,0x6f,0xe5,0xed,0x7f,0xcd,0x4a,0xff,0x19,0x2d,0xf2,0xfc,0xfa,0x7c, - 0xd2,0xc9,0x6f,0x47,0xbd,0xfa,0x4f,0xce,0xce,0x3f,0xb3,0xd2,0x7f,0xc6,0x43,0x8b, - 0xcc,0x43,0xce,0xcf,0x92,0xea,0xaf,0x99,0xd8,0x23,0xe4,0xd7,0x7f,0xfe,0x5a,0x2c, - 0x27,0x90,0x33,0x16,0x5d,0x4e,0x68,0x47,0x33,0x8e,0x3d,0x0f,0xfb,0x14,0x21,0xa7, - 0xfe,0x63,0xf4,0xbf,0x06,0x02,0xe2,0x63,0xfa,0xeb,0xd3,0x7f,0xf0,0xa0,0xc9,0x3f, - 0x56,0x34,0x1a,0x78,0x3f,0x1f,0xba,0xfa,0x5f,0xf0,0x16,0xdc,0xe7,0xca,0x36,0xfe, - 0xfc,0xe3,0xea,0x7f,0xc9,0x6f,0x99,0xfc,0xc3,0xbc,0xf3,0xf3,0x9e,0xb7,0xff,0x55, - 0xeb,0xea,0x1e,0xfa,0xf3,0x8f,0xb7,0xff,0x55,0xe7,0x54,0x7b,0x22,0x31,0x9f,0x22, - 0x14,0xd0,0xff,0xb2,0xab,0xcf,0x9c,0xac,0x30,0x2b,0xfe,0xf1,0x97,0xc5,0xc2,0xfc, - 0x53,0x40,0xd8,0xf1,0xe8,0x3f,0xa1,0x84,0xba,0xa6,0xe0,0xfc,0x20,0xfd,0x27,0x1c, - 0x20,0x04,0x15,0xd4,0x7f,0xfc,0x65,0x37,0xa8,0xff,0x55,0xc6,0xfa,0x5f,0x05,0xf4, - 0x0d,0x37,0xff,0x7c,0xea,0xfa,0x76,0x84,0x77,0xf0,0xa1,0x85,0x46,0xa7,0x38,0x67, - 0xff,0x2b,0x67,0x9e,0x7f,0xf6,0x1f,0xfb,0xb1,0xf9,0x07,0x9c,0xfc,0x73,0xc0,0xec, - 0x7f,0x51,0xef,0x2a,0x06,0xe4,0x02,0xfd,0x2f,0xcc,0x3f,0x2f,0xc1,0x53,0x33,0xe8, - 0x3f,0xee,0xfe,0x17,0x5e,0xff,0x83,0x85,0xf5,0x9c,0x80,0xfe,0x97,0x43,0x1d,0x9a, - 0xa9,0xff,0x95,0xef,0xbc,0x59,0xbe,0xfe,0xd7,0x4f,0x0c,0xc8,0x01,0xaa,0xf6,0x30, - 0xc3,0xa9,0xff,0xb0,0xeb,0xb3,0xfc,0x23,0x14,0xc8,0x3f,0xde,0xfe,0x17,0xbe,0x49, - 0x7f,0x5a,0xec,0x3f,0xf6,0x13,0xd4,0xff,0xea,0xf4,0xd0,0xce,0x7f,0x07,0x9d,0xff, - 0xb9,0xac,0xb0,0xfe,0xd7,0xed,0xbd,0xe4,0x35,0x13,0x3d,0x10,0x7b,0x4c,0xa3,0x24, - 0x53,0xd3,0xcf,0xe2,0xcf,0x59,0xcf,0xef,0x8b,0x27,0xf9,0x29,0xf5,0x2d,0xfb,0xfc, - 0xaa,0xd5,0xff,0xba,0x8e,0x8e,0x8c,0x95,0xbb,0xf5,0x9f,0x1d,0x45,0x9f,0xe0,0x45, - 0x6e,0x67,0xab,0x4d,0x52,0xe3,0x59,0xb8,0xb8,0xb9,0x4f,0xab,0x22,0xd2,0xd0,0xe5, - 0x0e,0x7a,0x7d,0x40,0xfb,0xe0,0x45,0xcb,0x3b,0x89,0xb9,0xb9,0x17,0xa8,0x10,0xa4, - 0x54,0x0d,0x86,0xbd,0xfa,0xcf,0xa1,0x42,0xf9,0x5c,0x31,0xf5,0x1f,0x16,0x9f,0x4a, - 0xd3,0x5f,0xd2,0x9d,0x31,0xbc,0x33,0x1c,0xb7,0x0f,0xba,0x84,0x8e,0x90,0x8e,0x86, - 0xab,0xff,0x65,0xce,0x2f,0x58,0x8f,0xdc,0xfd,0xaf,0xcf,0xf3,0xd4,0x3b,0xee,0x84, - 0xcd,0x3f,0x74,0xfd,0xac,0xff,0x15,0x24,0xfb,0xe4,0xd1,0x7f,0xcc,0xc1,0x62,0xf2, - 0x6d,0xf1,0xcc,0xe7,0x7f,0x24,0xeb,0xb4,0x0f,0xd1,0x7f,0xbc,0xf1,0x91,0xb1,0xd1, - 0x7f,0xa7,0x57,0xff,0xb1,0xfd,0x95,0xb1,0xc1,0xce,0xc3,0x1f,0x99,0xd3,0x9b,0xbc, - 0x61,0x1e,0x8d,0x76,0x9d,0xff,0x51,0x4c,0xa7,0xda,0xad,0xf3,0x3f,0xd7,0xda,0x2d, - 0x7f,0x5f,0x25,0xff,0xa1,0x1a,0xd0,0xff,0xfa,0xdc,0xda,0x2d,0xf2,0x34,0x79,0xff, - 0x6b,0xd4,0xde,0x3f,0x6f,0x06,0xf5,0xbf,0xae,0xc2,0x67,0x36,0xed,0x2c,0xcd,0xb6, - 0x74,0xcf,0xf6,0xfc,0xb3,0x61,0x28,0xf3,0xe5,0x19,0xf4,0x1f,0x37,0xff,0x20,0xb1, - 0x7b,0x86,0xfe,0x97,0xfb,0xd7,0xaf,0x8d,0xed,0x69,0x67,0x23,0x0c,0x5d,0x9c,0xfd, - 0xaf,0x13,0xce,0xfd,0xd0,0x08,0xf4,0x45,0xb0,0x59,0xf4,0xbf,0xd2,0x37,0xe0,0x7e, - 0xb1,0xcc,0xf7,0x3e,0x82,0xa7,0xff,0x45,0xf7,0x03,0x18,0xb4,0x06,0xe2,0xee,0x82, - 0xef,0x7f,0x39,0xf4,0x9f,0xb3,0x98,0x87,0x6b,0x47,0x44,0x80,0xc2,0xfd,0xaf,0x45, - 0xe6,0x69,0x67,0x83,0x7f,0x90,0x92,0x15,0xd7,0xce,0xd0,0xff,0x92,0xcc,0xd3,0xce, - 0x98,0x7f,0xd0,0x97,0x68,0x99,0x2e,0xc1,0x8c,0xfc,0x83,0x83,0x30,0xb0,0x93,0xbc, - 0xff,0x75,0x5d,0x4e,0x8d,0x3c,0x65,0xf6,0x4f,0x53,0x79,0xfb,0x5f,0x34,0x08,0x25, - 0x1b,0x0d,0x1a,0x97,0xba,0x9c,0xf1,0x79,0xdf,0xdf,0xff,0xa2,0x4f,0x8b,0x46,0xfe, - 0x8c,0xeb,0x9d,0xeb,0x66,0x3c,0xff,0x6c,0x3a,0x55,0x61,0xbc,0xf8,0xf6,0x61,0xcc, - 0xd5,0x08,0xdb,0xeb,0xef,0x7f,0xf9,0xdf,0xf6,0xf2,0xc7,0xd3,0xdb,0xff,0x22,0x6d, - 0x82,0x55,0x2d,0xf2,0x37,0xd0,0x88,0xa4,0xc7,0x9d,0xe7,0x9f,0x2f,0xe4,0xef,0x7f, - 0x61,0xa3,0x41,0x4d,0xc9,0x0f,0x77,0xce,0x56,0xff,0xf9,0xb8,0xf3,0x34,0xa4,0x9a, - 0xc5,0x00,0x10,0xe2,0xfc,0xfc,0xb3,0xbd,0x8b,0xfb,0x44,0xdc,0x96,0x36,0xf4,0x1c, - 0x7f,0x47,0x26,0x4f,0xff,0x6b,0x1b,0x24,0x9a,0xc3,0x81,0x7a,0x45,0x70,0xff,0x6b, - 0x33,0x24,0x1e,0x0a,0xcb,0x5c,0xc7,0xac,0xf8,0x67,0x55,0x4e,0x26,0xef,0x7f,0x3d, - 0xa7,0x05,0x80,0x90,0xa3,0xff,0xc5,0xf4,0x9f,0x39,0x63,0xc5,0x93,0x78,0xb7,0x2c, - 0x19,0x99,0x65,0xff,0x8b,0xfb,0x0a,0xd3,0x4e,0xbd,0x5a,0x36,0x12,0x00,0x8a,0x36, - 0xff,0x38,0xf4,0x1f,0x62,0xdc,0x13,0x0a,0x23,0x3e,0x3d,0x03,0xff,0x58,0x4e,0xad, - 0x0e,0xbd,0xca,0xa5,0xd7,0x95,0x9a,0xef,0xbb,0xd5,0x1a,0x20,0x24,0x90,0xaf,0xd6, - 0xc8,0x15,0x41,0xfa,0x4f,0x31,0x89,0xde,0x4f,0xc8,0x8b,0x60,0xfe,0x8e,0xe4,0x29, - 0x17,0xff,0x98,0xe7,0x9f,0xf9,0xf5,0x0b,0x26,0xa1,0xee,0x7b,0x65,0x72,0xc1,0xf3, - 0x3f,0xbe,0xfe,0x97,0xe3,0x7d,0xb1,0x92,0x3c,0xfd,0x2f,0xab,0xdb,0xa5,0xc1,0x84, - 0x72,0x3f,0x79,0xdf,0x70,0x56,0xe7,0x7f,0x34,0x6e,0xb2,0xe3,0x35,0xa8,0xea,0x12, - 0x2f,0x71,0xa6,0xfe,0xb3,0x06,0xf3,0x8f,0x60,0x7e,0x55,0x11,0xd4,0xff,0xe2,0xda, - 0xd1,0x11,0xbd,0x76,0x6f,0x38,0x48,0x7f,0xb6,0xcf,0x3f,0x3b,0xfa,0x5f,0x23,0xd0, - 0x27,0x7e,0xeb,0xe4,0x1d,0xd9,0x36,0x9f,0xfe,0x03,0xee,0xfe,0x97,0x05,0x39,0xbb, - 0xe1,0x6b,0xb4,0x4c,0x2b,0x0f,0xd2,0x7f,0x2e,0xd3,0xed,0xc6,0xf4,0x9f,0x12,0x5c, - 0xc4,0xe5,0x6b,0xb0,0x7c,0xf3,0xcf,0x93,0x41,0xfa,0x8f,0xad,0xff,0x93,0xf7,0x97, - 0xbb,0x8c,0x63,0x1b,0x53,0xd0,0x81,0x56,0xd4,0x2e,0x7c,0xcf,0xd0,0x7f,0xac,0x83, - 0xd0,0x9f,0x9b,0xad,0x31,0x4f,0xff,0x0b,0x19,0x4e,0x8d,0x70,0x48,0xa9,0x92,0xa4, - 0x67,0xf8,0x47,0x9c,0xeb,0x6f,0xcc,0xfa,0xfb,0x5f,0xca,0x12,0x3d,0x4c,0xfc,0xed, - 0x08,0xc5,0x20,0x36,0x62,0x3c,0xaf,0xdd,0xcd,0xfc,0x1d,0xcc,0xd7,0xff,0xd2,0x45, - 0x04,0x8a,0x22,0xde,0xcb,0xf9,0x9f,0x70,0xdd,0xfd,0xaf,0xe3,0xe6,0xb1,0x8d,0x2c, - 0x4e,0x76,0x0d,0xf3,0xa4,0xff,0x67,0xef,0xfa,0x63,0xab,0xb8,0xb2,0xf3,0x7d,0xf3, - 0xc6,0x30,0xb6,0x9f,0xed,0xb1,0x81,0x96,0x2c,0x04,0x06,0x03,0x5b,0x97,0xba,0xe0, - 0xc5,0x88,0xb0,0x0e,0x31,0x83,0x49,0x54,0x16,0xa2,0x80,0x36,0x6d,0xb5,0x2b,0x45, - 0x91,0x45,0xa8,0x8a,0x54,0xb6,0x62,0x7f,0xfc,0xe1,0x25,0xab,0xcd,0x80,0xc9,0xc6, - 0x59,0xd3,0xae,0x93,0xcd,0x6a,0x89,0xb2,0xbb,0x7d,0x04,0x54,0x50,0x97,0x56,0x40, - 0xd2,0x2c,0x34,0x28,0x79,0x10,0x4b,0x71,0x12,0x27,0x58,0xd9,0x54,0x9b,0x1f,0x94, - 0x7d,0xd1,0xd2,0xc4,0x0d,0x0e,0x71,0x48,0x94,0x3a,0xc1,0xe0,0xce,0x9d,0xb9,0x3f, - 0xe7,0x9e,0x7b,0x67,0x1c,0x36,0x9b,0x48,0x8d,0xff,0x3a,0x7a,0x1e,0x9e,0xe6,0x1e, - 0xc6,0xf7,0x7e,0xf3,0x9d,0xef,0x7c,0x67,0x05,0xe9,0x6f,0x8a,0xd6,0x7b,0x1e,0xa8, - 0x7f,0xd1,0x24,0xbc,0x8e,0xc6,0x56,0xb7,0xa3,0xda,0xc4,0x79,0xd4,0xa6,0xe5,0x7f, - 0x2e,0xa2,0x71,0x74,0x3d,0xaa,0x19,0xcf,0x7f,0xcf,0xc0,0xff,0xec,0xe0,0xf8,0x27, - 0xfc,0x6b,0x0a,0x96,0x7b,0x35,0x27,0x76,0x1a,0xf5,0x3f,0xfc,0x7d,0xbf,0x5c,0x3c, - 0x56,0x5a,0xd4,0x52,0x79,0xd8,0x52,0x11,0x94,0xca,0xff,0x54,0x2f,0x9b,0x52,0x42, - 0x87,0xdd,0x05,0xe8,0x2b,0xf1,0xfb,0x29,0x96,0xfd,0xc4,0x07,0xdf,0x40,0x52,0xff, - 0x53,0xff,0xb8,0x43,0x40,0xdd,0x98,0xdf,0x86,0x7e,0x7e,0x38,0xbf,0x55,0xad,0xef, - 0x70,0xfc,0x73,0x4d,0xb4,0xa8,0x53,0x75,0x17,0xf3,0x43,0x68,0xdc,0x5b,0x85,0xea, - 0xb6,0xc9,0xe7,0x7b,0xfb,0x10,0xac,0xff,0xf9,0x50,0x84,0xcd,0x11,0x22,0x3a,0xc6, - 0x18,0x21,0xa8,0xfe,0x75,0x98,0xa3,0x9d,0x91,0xa0,0x37,0x1d,0xff,0x2c,0x6d,0x18, - 0xcc,0xb1,0xc7,0x80,0x20,0xe4,0xdd,0xe9,0xf8,0x27,0x7e,0x91,0x4f,0x0a,0xcb,0x25, - 0xfc,0x93,0x53,0x61,0xf0,0x79,0x23,0xfe,0xb9,0x7a,0xfd,0x4f,0xb2,0xd1,0x49,0xc6, - 0x3f,0x97,0x14,0xd8,0x9c,0xbc,0x7f,0x10,0xff,0x08,0xc7,0x74,0xb2,0xfe,0x0e,0xd7, - 0xbf,0x5c,0x1a,0x38,0xf7,0x24,0x18,0x21,0x05,0xff,0x48,0x68,0x67,0x04,0xfd,0x1a, - 0x97,0xbd,0x18,0x23,0x24,0xe1,0x9f,0xf0,0xfd,0xeb,0x1d,0xd2,0x1d,0x40,0x69,0x1f, - 0xd2,0xf6,0x85,0xdf,0x50,0x26,0xdc,0xa8,0xb4,0x0a,0xe0,0x9f,0x63,0xd5,0x58,0x08, - 0x17,0x65,0xe3,0x02,0x7a,0x0e,0xcd,0x91,0xf2,0x03,0xe1,0x1f,0x91,0xf6,0x31,0xe9, - 0x7f,0x98,0xfe,0x79,0x8e,0x9d,0x49,0xff,0x03,0xd1,0x3e,0x99,0xf4,0x3f,0x02,0xed, - 0x33,0x29,0xfd,0xcf,0xb4,0xf2,0x94,0xac,0xf5,0xaf,0x49,0xf1,0x3f,0x7f,0x38,0xfd, - 0x4f,0x16,0xfc,0x83,0xe6,0xb3,0xd5,0x95,0xd0,0x98,0x95,0x8a,0x7f,0x38,0xff,0xd3, - 0x7a,0xae,0x48,0xda,0xb8,0xc2,0x4f,0xf2,0x3a,0xfc,0xf3,0x00,0xa3,0x7d,0xa6,0x9d, - 0xf3,0x15,0xfc,0x03,0xd5,0xbf,0x4c,0xfc,0x0f,0x58,0xff,0xa2,0xc2,0xef,0xfe,0xe0, - 0xaa,0xf5,0x3f,0x90,0xfe,0xd9,0xc0,0xe7,0x28,0xf8,0x87,0xf3,0x45,0xff,0x94,0xae, - 0xff,0x99,0x2c,0xff,0x13,0xd7,0xbf,0x2c,0x95,0xf6,0xd1,0xe8,0x7f,0x8c,0x7c,0x85, - 0x0e,0xff,0x88,0x32,0x18,0x5f,0xe5,0x7f,0xe8,0xf7,0x63,0xfc,0x13,0xf5,0xbf,0x6f, - 0xef,0xe6,0xb4,0x4f,0x51,0xc1,0x3f,0xa0,0xfe,0xc7,0xd6,0xf2,0x1b,0xb2,0xfe,0x07, - 0xe3,0x9f,0xba,0xe3,0xdd,0x21,0xec,0xe9,0x4b,0x1c,0x64,0x08,0xd6,0xff,0x60,0xd9, - 0xcf,0x47,0x74,0xff,0xe9,0xb2,0xe2,0x17,0x31,0xb8,0xfe,0xc5,0xf4,0x3f,0xdf,0xb2, - 0x88,0xf0,0xfb,0x5b,0xc0,0xfb,0x1a,0x88,0x7f,0x54,0x18,0x09,0xe2,0x1f,0xc2,0x96, - 0x8f,0xfe,0x1d,0xa3,0xcd,0x89,0xd0,0x45,0x10,0x3e,0x01,0xf8,0x67,0x14,0x48,0x8b, - 0xa1,0xfe,0xb5,0x41,0x7f,0xde,0xd5,0x24,0xf0,0x8f,0xf3,0xf1,0xf8,0x1f,0xe3,0xf5, - 0x2a,0xfe,0x69,0xd9,0x39,0x68,0xb7,0x46,0xc0,0x40,0xca,0x8f,0x9b,0xac,0x7f,0xd5, - 0x84,0x68,0xc7,0x13,0xd7,0x7b,0xb4,0x3b,0xca,0xcf,0x4b,0x8c,0x08,0xaa,0x51,0xfa, - 0xbf,0x24,0xb5,0x2a,0x16,0x4a,0xc5,0xfd,0xef,0x94,0x11,0x02,0xf0,0xcf,0xb3,0x35, - 0x63,0xf9,0x76,0xcc,0xff,0x74,0x4a,0xfc,0x21,0xcc,0xff,0x3c,0x1e,0x2c,0x19,0x75, - 0x48,0xd9,0xab,0x33,0x53,0xff,0xfb,0x62,0x54,0x49,0x9e,0x87,0xd5,0xe0,0xf3,0x90, - 0xc0,0x3f,0xb9,0xc5,0x1d,0x3d,0xb8,0xdb,0x2b,0xcc,0xde,0x8d,0x4a,0x3e,0x4f,0x42, - 0xfc,0xcf,0x4b,0x35,0xa4,0xec,0xd5,0x39,0x15,0x7a,0x1e,0x14,0xfc,0x53,0xae,0x1b, - 0xad,0x8e,0x60,0x70,0x27,0xf8,0x60,0x28,0xf8,0xc7,0xbd,0x99,0x7c,0xdb,0x4d,0xa9, - 0xfa,0x67,0xfc,0x3c,0x34,0x77,0x38,0x2d,0x28,0xea,0x76,0xff,0x0e,0xf8,0x3c,0x28, - 0xf8,0xa7,0xb3,0x89,0x64,0x63,0x63,0xaa,0xfe,0x19,0xe3,0x9f,0xe6,0x2d,0x54,0xfd, - 0xb2,0x85,0xc2,0x00,0x5d,0xff,0x7b,0x8c,0x7f,0x4e,0x16,0x08,0xfe,0xd9,0xa2,0xf4, - 0xbf,0x27,0xf9,0x9f,0xc8,0xff,0x67,0x98,0x66,0xe3,0x46,0x1a,0xe0,0xfe,0xf7,0x11, - 0x2d,0xff,0xb3,0x96,0xca,0xae,0x7c,0x9c,0x16,0xe7,0x4e,0x83,0xfe,0x39,0xda,0x4f, - 0x3a,0x54,0xdb,0x1f,0x13,0xfe,0x69,0x8e,0xd4,0x3e,0xb9,0x70,0x75,0x9d,0x69,0xfd, - 0xef,0x78,0xff,0xb1,0x38,0xed,0xe3,0x83,0xf9,0x4c,0xe2,0x9f,0x55,0x4c,0xed,0xb3, - 0x13,0xee,0x7f,0xd7,0xe2,0x1f,0x97,0x1d,0x43,0x73,0x0d,0xf8,0x67,0xe5,0xe6,0xc2, - 0x24,0xf1,0x0f,0x95,0xf1,0x7c,0x35,0x23,0xfe,0x71,0xe2,0x7e,0xf9,0xac,0xf8,0x67, - 0x1d,0x28,0xfb,0xd1,0xe3,0x1f,0xa7,0x10,0xe4,0xf5,0x8d,0xff,0x0a,0xfe,0x91,0xd5, - 0x3b,0xe7,0x92,0xc2,0xe6,0x35,0x49,0xfc,0xb3,0x6a,0x4b,0x21,0xa6,0x7d,0x6e,0xf0, - 0xa1,0x44,0xdd,0x21,0xe1,0x1f,0x27,0x04,0x39,0x7d,0x4e,0x60,0x79,0x38,0x40,0x4e, - 0x26,0xfc,0xb3,0xd1,0x21,0x36,0x47,0xab,0x2b,0x53,0xf5,0xcf,0x39,0x2c,0xfb,0x71, - 0x28,0x8d,0x56,0x99,0x09,0xff,0x6c,0x6c,0x8e,0x68,0xbd,0xdc,0xca,0xce,0x3f,0xcf, - 0x84,0x7f,0xc2,0x0f,0xab,0xa3,0xdf,0xae,0x9d,0x93,0x05,0xff,0xac,0xc4,0x6d,0x5f, - 0x65,0xda,0x08,0x9f,0x8a,0x7f,0x30,0x6d,0xee,0x45,0x68,0x67,0xc9,0x03,0xeb,0x32, - 0xe1,0x9f,0x32,0xfd,0x7b,0xd9,0x05,0xf2,0xa5,0x0a,0xfe,0x19,0xa2,0x7f,0xbf,0xa8, - 0x0a,0xae,0x7f,0xd1,0xef,0x8f,0xf1,0xcf,0xca,0xce,0x66,0x8a,0x76,0x0a,0x60,0xfd, - 0x4b,0x83,0x7f,0x72,0xe1,0xea,0x40,0xfc,0x63,0xd1,0xfc,0x10,0xfd,0x73,0xb9,0x40, - 0xde,0xd6,0x3d,0xf0,0xfc,0x52,0xf4,0xcf,0xa5,0xa6,0x3b,0xf1,0xdd,0x06,0xcd,0x0e, - 0x59,0x48,0x73,0xac,0xe8,0xd6,0xe1,0x1f,0x9f,0x5c,0xb6,0x44,0x5e,0x2f,0xac,0x7f, - 0x6e,0xc5,0xcf,0x1b,0xd3,0xbb,0xa6,0xe1,0x1f,0xbc,0xde,0x95,0xfd,0x54,0x2d,0xe9, - 0x81,0xfd,0x3b,0x12,0xfe,0x71,0xc4,0xdf,0xda,0x99,0xf0,0x4f,0xbb,0x5f,0x20,0xdb, - 0x38,0x2a,0x40,0xe7,0x9d,0xca,0xff,0x34,0x11,0x3d,0x73,0x63,0x55,0xa2,0x11,0xa9, - 0x0d,0xc0,0x3f,0xb9,0xc5,0xa5,0xb5,0xe4,0x74,0xf3,0x9c,0x6c,0xf8,0xc7,0x69,0x69, - 0x88,0xb2,0xe1,0x56,0xc5,0xb2,0x1f,0xac,0x98,0x6a,0x60,0xfd,0x71,0x09,0xfc,0x83, - 0xef,0x3f,0x5a,0xdd,0xbc,0x76,0x77,0x36,0xfe,0x5a,0x22,0xfb,0x11,0xf4,0xcf,0x12, - 0xfe,0xc1,0xdb,0x4e,0xe4,0x5f,0xe7,0xdf,0x80,0x44,0xd9,0x0f,0x3e,0xbf,0xae,0x4f, - 0xe0,0x9f,0x19,0xcc,0xff,0x87,0x1b,0x29,0xb8,0xa4,0x11,0x0c,0xc4,0x3f,0x7f,0x4f, - 0x41,0xce,0xa0,0x45,0x68,0x9f,0x91,0xac,0xf5,0xaf,0x7d,0xf1,0xea,0x06,0x89,0x02, - 0x0a,0xc4,0x3f,0x15,0x87,0xf4,0xb4,0x09,0xc4,0xff,0x54,0xe8,0x60,0xb0,0xf8,0x20, - 0x19,0xf9,0x9f,0x35,0x46,0xfc,0x83,0x0e,0x71,0x7e,0x29,0x49,0xfb,0xe0,0x60,0xb9, - 0xae,0xfe,0x45,0xee,0xbf,0x36,0x05,0xff,0xcc,0x60,0xfc,0xcf,0x08,0xe8,0xff,0xb3, - 0x40,0xc1,0x3f,0x01,0x3d,0xfd,0x0b,0x98,0x06,0xa9,0x4a,0xeb,0xff,0xaa,0xa5,0xfa, - 0xe7,0x17,0xd0,0xad,0xe8,0x7b,0x4a,0x23,0xd8,0x32,0xb0,0xfe,0x55,0x8a,0xdb,0xbe, - 0x72,0x77,0x31,0xda,0x50,0x0a,0x64,0xfc,0xf3,0x1e,0xd5,0xff,0x40,0xf9,0x01,0xf1, - 0xcf,0x3c,0x10,0xf6,0x34,0x68,0xf1,0xcf,0x42,0xb6,0xba,0xd7,0xd9,0x32,0x2b,0x0d, - 0xfc,0x4f,0x94,0xb4,0x41,0x87,0x25,0x36,0x0d,0xff,0x3c,0x26,0x55,0xbb,0xd2,0xf1, - 0x4f,0xdb,0xc7,0xea,0xff,0x22,0x42,0x17,0x0b,0x1b,0x01,0xb1,0xf3,0xae,0xd6,0xc0, - 0xff,0xbc,0xc2,0x8d,0x80,0xb4,0xf8,0x27,0x17,0x1e,0xd3,0x56,0xf4,0x61,0x3f,0xae, - 0x7f,0xb1,0x42,0x58,0x18,0x74,0x40,0xf8,0x27,0xd2,0x3f,0x6f,0xf5,0x67,0xe1,0xd3, - 0x9f,0xb5,0xbd,0xef,0xd5,0xe3,0x9f,0x82,0xd0,0xff,0xc5,0xf0,0x0f,0x16,0xe2,0x4e, - 0x4d,0xa9,0x7f,0xe5,0xcf,0x15,0x95,0xc0,0xa8,0x7f,0xfe,0x6f,0x3d,0x3e,0x84,0xf9, - 0x9f,0x60,0x85,0x9e,0xff,0x61,0x7a,0x12,0xa8,0xff,0x0b,0xe8,0x77,0x33,0xf0,0x3f, - 0x8d,0x26,0xff,0x1f,0x85,0xff,0x49,0xd1,0xff,0x5c,0x55,0xff,0x57,0x56,0xfe,0x27, - 0x02,0x39,0x9b,0x32,0xf3,0x3f,0xe9,0xfa,0x43,0xb0,0xfe,0xa5,0xc2,0x00,0x0d,0xfe, - 0xd1,0xd2,0x3e,0x10,0xfe,0xa9,0xa1,0xf8,0x67,0xcd,0xdb,0x7d,0x34,0xf0,0x53,0xfb, - 0xbf,0xa2,0x63,0xcb,0x23,0xc1,0x44,0x0a,0xfe,0x79,0x84,0xb4,0x9d,0x46,0x77,0x5b, - 0x0b,0xe1,0x37,0x4d,0xff,0x97,0x36,0x80,0xfb,0xbf,0x22,0x7d,0x4b,0x15,0x4f,0x63, - 0x47,0x4a,0xff,0x57,0x6c,0x84,0xc8,0xf9,0x9f,0xbf,0x30,0xf1,0x3f,0x94,0x1d,0x02, - 0xf1,0x12,0x58,0xff,0x1a,0x27,0xa7,0xff,0x34,0xda,0x11,0x96,0x52,0xff,0x8a,0x8d, - 0x19,0xa3,0x20,0x69,0x04,0xa4,0xf2,0x3f,0xb3,0x84,0xfe,0x2f,0xb5,0x5e,0x23,0xe1, - 0x1f,0x9f,0x90,0x3c,0xcf,0x8b,0xc0,0x40,0x56,0x08,0x4b,0xf8,0xc7,0x25,0x8b,0xba, - 0x4c,0xab,0x7b,0xe3,0x28,0xd9,0x28,0x27,0xe0,0x9f,0xaf,0x48,0xb6,0x3f,0xd7,0x97, - 0x36,0x40,0xe7,0x3b,0x50,0xff,0xc2,0xf8,0xf9,0xb7,0x89,0xc7,0x46,0xcb,0xff,0x48, - 0x68,0x67,0x93,0xf8,0xc9,0xce,0x04,0xfe,0x69,0xaa,0x30,0xfc,0x59,0xf1,0xf5,0xea, - 0xf5,0xcf,0x1a,0xfc,0x43,0xef,0x07,0xd9,0x69,0xfa,0xe4,0x93,0x38,0x3f,0xdc,0xdf, - 0xd2,0xe5,0xe7,0xbb,0xa7,0xad,0x7f,0x0d,0x83,0xfd,0x5f,0x14,0xed,0x18,0xf9,0x1f, - 0xee,0x7f,0x78,0xc1,0x23,0x81,0x5a,0x0f,0xe5,0xfd,0x5f,0x25,0xc6,0x07,0x8a,0xcf, - 0x83,0x81,0xff,0x41,0xaa,0xfa,0xf7,0x76,0x19,0x18,0xc0,0xf5,0xaf,0x15,0xf9,0x41, - 0xe7,0xbd,0xdc,0xb2,0x93,0x62,0xdb,0x3b,0xc4,0xff,0xcc,0x8e,0xf3,0x33,0x37,0xc2, - 0x3f,0x98,0xf6,0x39,0x4c,0x69,0x1f,0xd0,0xff,0xc7,0x91,0xf1,0x67,0x9b,0x98,0x96, - 0xf9,0x80,0xfe,0x79,0x38,0x07,0xec,0x27,0xb6,0x5e,0xff,0x8c,0x78,0xfd,0xcb,0xd0, - 0xef,0x2f,0xea,0x9f,0xf9,0x7e,0x1e,0xd5,0x5b,0x99,0x9f,0x76,0xa5,0x84,0x7f,0xd8, - 0xfd,0xd8,0x58,0x1d,0xc1,0xd0,0xce,0x76,0x18,0xff,0x7c,0xc8,0xf1,0x0f,0x3b,0x8f, - 0xfe,0x04,0x9f,0x3e,0xdf,0x97,0xcf,0x23,0x1b,0xc0,0x3f,0xf4,0xbc,0x9b,0x86,0xf1, - 0x8c,0x46,0x28,0xfb,0x14,0xc7,0x3f,0x88,0xd6,0xb3,0xf2,0x86,0x42,0x8c,0xdc,0xff, - 0xc5,0xfc,0xfa,0x0c,0xf5,0x2f,0xba,0x5e,0xa1,0xfe,0xa5,0xca,0x7e,0xa0,0xfe,0xaf, - 0x6b,0xc4,0xfe,0x77,0x4b,0x73,0xfe,0x9e,0x65,0xfd,0x5f,0xc7,0x6a,0xb2,0xe0,0x81, - 0x37,0xb8,0x9e,0x07,0xf3,0x3f,0x76,0x94,0x9f,0xf7,0x13,0x97,0x0d,0x31,0xff,0x1f, - 0x81,0xff,0x99,0x69,0xac,0x7f,0xb9,0x7a,0xff,0x67,0xba,0xba,0x59,0xd0,0x7a,0x05, - 0xfd,0xf3,0x74,0x96,0xf6,0x91,0x4c,0xfa,0x67,0xdb,0xbc,0xde,0x1c,0xf6,0xb7,0x9c, - 0x2f,0xe8,0x9f,0xdd,0xfd,0x0e,0x65,0xc3,0x3c,0xed,0x3f,0x04,0xfd,0x7f,0x32,0xe1, - 0x1f,0x64,0x33,0xfd,0xcf,0x58,0x40,0x6d,0x0f,0xf1,0x27,0x3b,0x44,0xfc,0x33,0xe0, - 0xd1,0xfd,0xc1,0xb9,0x9b,0xfd,0xbd,0x9c,0x34,0xe1,0x1f,0xfa,0x33,0xaf,0x5e,0xd4, - 0xff,0x68,0xf0,0x40,0xc7,0x00,0xfd,0x7a,0xdc,0xff,0xe5,0x12,0x90,0xf3,0xa2,0x02, - 0x7b,0x78,0xff,0x57,0x23,0xbd,0xde,0xe1,0x78,0xa0,0xac,0xdf,0xd8,0x4f,0xfd,0x80, - 0xe6,0xa7,0xd3,0x66,0x22,0xd5,0xb3,0x91,0xed,0xcf,0x3d,0xa4,0x6d,0xf9,0x5c,0xdd, - 0x77,0xf3,0x73,0xa8,0x11,0xd0,0x50,0xc0,0xf0,0x0f,0xfa,0x19,0xad,0xd6,0x0d,0xf9, - 0xbf,0x11,0x6e,0x1b,0x2b,0x2a,0x67,0x5b,0x51,0x21,0xfe,0x9b,0x82,0xfe,0x39,0xe0, - 0xf8,0x47,0xf5,0x6b,0x9d,0x4d,0x3f,0xe1,0xfd,0x5f,0xfe,0x74,0x26,0xea,0x50,0xfd, - 0x6c,0x99,0xdf,0x9d,0xd0,0xff,0x55,0x21,0xac,0xb7,0x57,0x5e,0x66,0x75,0x33,0xed, - 0x88,0xe7,0xff,0xbf,0x45,0x77,0x24,0x43,0x7e,0xf8,0xfd,0x08,0xf8,0xe7,0x3d,0xad, - 0x10,0x5a,0x38,0x1f,0xb9,0xff,0xa1,0xf5,0x94,0x81,0x7f,0x60,0xff,0xbf,0x01,0x3f, - 0xef,0xca,0xa2,0x10,0x5a,0x8b,0x7f,0x50,0x81,0xe7,0x47,0x94,0x25,0x0c,0x88,0x85, - 0x30,0x01,0xff,0xcc,0x24,0x6a,0x9f,0x7f,0x4f,0xac,0xf7,0x59,0x0d,0xfe,0xa9,0x61, - 0x8b,0x1a,0x4d,0x2c,0xf3,0x08,0x8c,0x7f,0xce,0x5a,0xe4,0x21,0x19,0xc7,0x6a,0xb1, - 0x52,0xcd,0x18,0xc6,0x4b,0xc1,0xaa,0xd7,0x35,0xfc,0xcf,0xcc,0x0b,0xd4,0xe4,0xf0, - 0x4c,0xe9,0x97,0xbb,0x96,0x8c,0x56,0x1f,0xeb,0x98,0xf0,0xcd,0xfc,0x0f,0x5d,0xa6, - 0xb7,0x8f,0x08,0xbf,0x85,0xbf,0x2f,0x3b,0x89,0x7f,0x2a,0x0e,0xf1,0xb4,0xeb,0xfd, - 0x27,0x39,0xfe,0x99,0xb1,0xd5,0x61,0x68,0xf0,0x7c,0x5c,0x0d,0xc4,0x69,0x99,0x23, - 0x01,0x63,0xfe,0xff,0x2b,0xf4,0x7f,0x9d,0x89,0xfc,0x30,0x7b,0xa3,0xfc,0x58,0x26, - 0xfc,0xc3,0xf4,0xe7,0xaf,0x91,0x36,0x28,0x3b,0x9a,0xf8,0xa0,0xa9,0x7f,0x15,0x82, - 0x5e,0x6a,0xfb,0xd3,0x6b,0x2f,0x09,0x83,0x06,0xee,0xff,0x33,0x1d,0xc0,0x3f,0x98, - 0x7f,0x8e,0xf9,0x8a,0x2c,0xfe,0xcf,0x9d,0xee,0xed,0x8a,0xfb,0x9f,0x80,0x07,0xae, - 0x53,0xf5,0x3f,0x37,0xa3,0xdf,0x05,0xcb,0x62,0xb4,0x73,0xab,0x2b,0xc0,0x9e,0xa9, - 0x2d,0xf3,0x5f,0x88,0x47,0x63,0x24,0xfd,0x9f,0x71,0xf6,0x28,0x3e,0x4c,0x36,0x82, - 0x59,0x49,0xfc,0x13,0xbb,0xb3,0x96,0x6b,0x48,0xfe,0x07,0xc3,0xb4,0x5f,0x09,0xce, - 0x47,0x2f,0x26,0xf3,0x19,0x23,0x94,0x9c,0x7f,0xb1,0xa4,0xe4,0x6c,0xb3,0xc6,0x8b, - 0xf7,0xd8,0xcd,0xa7,0xc2,0xe0,0x79,0x5f,0xd5,0xff,0xd0,0xeb,0xbd,0x08,0xff,0x2c, - 0x89,0xd8,0x9e,0xe0,0x00,0xe1,0xbb,0xa2,0x80,0xf1,0x3f,0xeb,0xe5,0xf9,0x17,0x02, - 0xda,0xa1,0x46,0xd0,0x80,0xfe,0x87,0x5e,0x3f,0x4c,0xe6,0x5f,0x44,0x63,0x2f,0xde, - 0x0a,0x83,0x5a,0x29,0x78,0x55,0xe9,0xff,0xca,0xed,0x8d,0xe6,0x5f,0xd4,0x46,0x32, - 0x98,0x24,0xfe,0x31,0xce,0xbf,0xc0,0xf8,0x67,0xe5,0x6a,0xa1,0xbe,0x63,0xe1,0x60, - 0x4e,0x18,0xe4,0x44,0xfe,0xe7,0x6f,0x11,0x9e,0xa7,0xb0,0x9e,0xd2,0x38,0x35,0xd2, - 0xf9,0xfb,0xe5,0x24,0xfe,0x59,0x51,0xb1,0xd0,0x67,0xbf,0x7d,0x50,0xe9,0x7f,0x7f, - 0x30,0x97,0xe8,0x7f,0x6f,0x72,0x6d,0xc6,0xf6,0x14,0xef,0x43,0xcd,0xeb,0x2a,0x21, - 0x3e,0xe4,0x29,0x76,0xfd,0xb1,0x02,0x56,0x17,0xe3,0x45,0xcd,0x2f,0x07,0x2f,0x93, - 0x42,0x18,0xf7,0xff,0xe9,0x4a,0xe2,0x9f,0x3d,0x02,0x1f,0x52,0xfc,0x1f,0xd9,0xef, - 0xfa,0x56,0xf6,0xab,0x37,0x25,0xff,0xe7,0x57,0xe8,0xf5,0xcf,0x27,0x1b,0xc1,0x68, - 0x20,0xf8,0xff,0xcc,0xc4,0xb6,0xcf,0x6d,0xb9,0xc8,0xff,0xe7,0x20,0x5a,0xec,0x62, - 0xd8,0xe3,0x2b,0xf8,0x67,0x8a,0x88,0x7f,0x28,0xcd,0x55,0xdc,0x81,0x9a,0x6f,0xac, - 0x76,0x1b,0xf1,0x32,0x9b,0x74,0xf8,0xc7,0xde,0x1f,0xa6,0x7d,0x51,0x4c,0xfb,0x68, - 0xeb,0x89,0x6f,0x70,0xff,0x9f,0xbf,0xea,0x27,0xf7,0x3f,0xed,0x9c,0xfd,0x0c,0xb7, - 0x75,0x6a,0x93,0xf1,0x8f,0xc7,0xf8,0xcf,0x88,0xff,0x89,0x7e,0xbb,0x99,0xe8,0x85, - 0x72,0x9b,0x93,0xf8,0x67,0x1a,0xe7,0x1b,0x1d,0xb7,0xd8,0x49,0x69,0x37,0x6b,0x20, - 0x0b,0xff,0xd3,0xe6,0xb0,0x6e,0x77,0x6c,0xfb,0xb3,0x1e,0xe2,0x7f,0xc4,0xfe,0xf7, - 0x0d,0x44,0xff,0x13,0x1e,0x5b,0xdd,0x31,0x5f,0xa1,0x32,0x42,0x1c,0xff,0x04,0x0c, - 0xff,0x4c,0x39,0xa3,0xfc,0xd9,0x02,0xf8,0xa7,0xc7,0xb9,0x3f,0xd6,0xff,0x84,0x68, - 0xc7,0x7f,0x7a,0xc7,0x0d,0xe5,0x0d,0x5d,0x6b,0xcc,0xf8,0xa7,0x18,0xee,0x96,0xb1, - 0x7a,0x70,0xf7,0xf5,0x48,0xd3,0x08,0x76,0x6a,0x0a,0x5d,0xaf,0x6f,0x1f,0x45,0xa7, - 0xfb,0x62,0xff,0x1f,0xff,0xe9,0xbe,0xd6,0xf8,0x45,0x3e,0xc2,0x3f,0x5d,0x91,0x10, - 0x3a,0x0a,0x5c,0x96,0xff,0x83,0x33,0xfb,0xd0,0xaf,0x8b,0x91,0xff,0x0f,0xf6,0x2f, - 0x9a,0x57,0xaa,0xfe,0x2e,0xc5,0x3f,0xdb,0x22,0x85,0x46,0x18,0x7c,0xb3,0x63,0x91, - 0xc0,0xff,0xf4,0xc5,0xb6,0x3f,0x98,0x2f,0xba,0x47,0x90,0x3d,0x4b,0x0a,0x46,0x4f, - 0xf0,0x7f,0x0e,0x44,0xb7,0xd5,0x26,0x31,0x8d,0x1d,0xec,0xe8,0x9f,0x29,0xf4,0xbf, - 0xf7,0xa0,0xe7,0x72,0x91,0x69,0xcf,0xf8,0x94,0xe7,0xd0,0x47,0xa2,0x8d,0x33,0x56, - 0x54,0xc6,0x41,0x95,0xd0,0x0f,0x1b,0xc3,0x00,0x92,0x96,0xbf,0x4e,0xc3,0x3f,0x45, - 0xf7,0xa2,0xe2,0x7e,0x73,0x26,0xe2,0x7f,0x6a,0x40,0xfc,0xb3,0xd7,0xde,0xe4,0xab, - 0xc7,0x6e,0xf2,0x13,0x01,0xff,0xdc,0xe4,0x79,0xea,0xf5,0x06,0xfe,0x67,0x3a,0x42, - 0xfb,0xd6,0x36,0x9f,0x8a,0xf0,0x00,0x15,0x06,0xe3,0x27,0x70,0x20,0x4e,0x94,0x9f, - 0xc0,0x3f,0x41,0xb8,0xff,0x9c,0xef,0x8c,0x9a,0xbc,0xc6,0x83,0x58,0xff,0x13,0x2e, - 0x33,0x3c,0xf1,0x4f,0x85,0x27,0xce,0xdb,0x6b,0x2f,0xf9,0x49,0xfc,0x53,0xd1,0xc7, - 0xf5,0x51,0xbf,0xb5,0x56,0x9d,0x24,0x83,0x9c,0xe2,0xf3,0x2b,0xc0,0xa3,0x31,0x24, - 0xfc,0x83,0x50,0xf8,0x1e,0xb8,0x37,0xdc,0x0e,0xa2,0x3e,0x10,0x5d,0x80,0xc4,0x1f, - 0x1b,0x85,0x77,0xe7,0x87,0x3b,0xb0,0x21,0x10,0x7f,0x76,0xa1,0x79,0xc8,0xf1,0xc3, - 0x1d,0xd2,0x10,0x5c,0xcd,0xf7,0x07,0xe1,0x7f,0xb6,0x83,0x2c,0x63,0x20,0xfc,0x98, - 0x2f,0x8c,0x83,0xab,0xf9,0xfe,0xc9,0xfe,0x7c,0xc6,0xf2,0xef,0xe2,0x59,0x7e,0x83, - 0xe8,0xdb,0x68,0x76,0xc9,0x10,0xd8,0x1f,0xfb,0xfb,0x3f,0xe1,0xfc,0xdb,0x6e,0x90, - 0x21,0xe7,0x39,0x81,0x5f,0x9a,0xdc,0xcf,0xca,0x95,0x59,0xae,0xaa,0xab,0xfb,0x98, - 0x5f,0xff,0x07,0xf8,0x59,0x35,0x31,0x31,0x51,0x4a,0x09,0xfe,0x3f,0x5f,0xff,0x19, - 0xfb,0x7b,0xfc,0x7c,0x3f,0xfc,0x7c,0x3f,0xbc,0x8a,0xfc,0x7f,0xbe,0x1f,0xa6,0xfd, - 0x7c,0xd6,0xf6,0x9f,0xcf,0xd6,0xf5,0xa2,0x3f,0x36,0x7e,0x9b,0x50,0x02,0x6d,0x7d, - 0xb0,0x91,0x06,0x0d,0x46,0x7d,0x38,0xda,0x5d,0xaf,0xa3,0x9d,0x3b,0xc0,0xfa,0xa0, - 0xa1,0x2c,0x08,0xf0,0x63,0x39,0xa1,0x7e,0x17,0x15,0x52,0xab,0xa1,0xf7,0x05,0x01, - 0xff,0x27,0xfc,0x21,0x95,0x60,0xae,0xb6,0x3e,0xc8,0x02,0xb5,0x3f,0x11,0xaa,0x0f, - 0xe6,0x13,0x65,0xc1,0x5e,0x9d,0x3f,0x64,0x8e,0xb1,0xc7,0x59,0xea,0x83,0xb4,0x3f, - 0x6e,0xcc,0x22,0x83,0x62,0xb7,0xf3,0xb1,0xb0,0xa6,0xfa,0xe0,0xe1,0x78,0x2c,0x08, - 0x6e,0x8b,0xbb,0x25,0xf6,0x87,0x5c,0x01,0xd6,0x07,0x05,0x7d,0x14,0x8a,0xdc,0x90, - 0x04,0x59,0x38,0x50,0x1f,0x6c,0xb2,0x0f,0xa1,0xd7,0xe0,0xb2,0xa9,0x60,0x94,0x24, - 0xf0,0x63,0xae,0x5e,0x6f,0xe0,0xce,0x36,0xd5,0x07,0xbf,0xa8,0xca,0xa2,0x58,0xa9, - 0x54,0xac,0x0f,0xee,0xd6,0xa7,0xb1,0xa0,0xf2,0x63,0xd8,0x1f,0xe9,0x55,0xb4,0x1c, - 0x2c,0x0b,0x72,0xa3,0x24,0xad,0x3f,0x52,0x06,0x7e,0x4c,0xa8,0xfe,0x7c,0x9d,0xd3, - 0x20,0x8b,0x53,0xfb,0xe3,0x90,0x3a,0x16,0x4d,0xe0,0xc7,0xe8,0xf5,0x42,0x7d,0x70, - 0x73,0xc4,0x8f,0xc9,0x7c,0xce,0x83,0x8a,0x3f,0x64,0xa6,0xfe,0x38,0xce,0x8f,0x75, - 0x55,0x0a,0xf5,0x41,0x6a,0xcb,0xec,0xe8,0xeb,0x83,0x09,0x7f,0x48,0x1a,0x54,0xc8, - 0x9f,0xbc,0x99,0xd0,0x87,0x83,0x65,0x32,0xc1,0x58,0xc0,0xd8,0x1f,0xd7,0xa8,0x04, - 0x62,0x7d,0xb0,0x62,0x97,0x58,0x0f,0x6d,0x02,0xd6,0x5b,0x25,0xcd,0x87,0x9d,0x6e, - 0x28,0xcb,0x02,0xf5,0xc1,0x87,0x45,0x7d,0xd4,0x71,0x46,0x8b,0x25,0xf5,0x51,0x0b, - 0x58,0x7d,0x10,0xd4,0x47,0x1d,0x4f,0x04,0x52,0x7d,0x30,0xe2,0x63,0xe7,0x64,0xac, - 0x0f,0x7a,0x15,0x89,0x69,0x20,0x75,0x29,0xfc,0x18,0x9e,0xa7,0x6c,0x6d,0x4d,0xd1, - 0x6f,0x08,0xf5,0x41,0x24,0xe9,0xa3,0xbe,0x91,0x5a,0x1f,0xec,0x89,0xfd,0xb1,0x6b, - 0xa3,0x69,0xb0,0x19,0xea,0x83,0xb3,0x13,0x7a,0x0f,0x50,0xff,0x23,0xf0,0x63,0x15, - 0x4c,0xdf,0xfb,0x7d,0x3c,0x0d,0x56,0x3a,0xb6,0xd8,0xaf,0x86,0x18,0x3f,0xf6,0x2f, - 0xf5,0xbf,0xe8,0x21,0x77,0x7b,0x1b,0xfa,0x69,0x31,0xf2,0x47,0x7a,0x21,0x20,0x46, - 0x49,0x67,0xef,0x8e,0xad,0x9f,0x3a,0x24,0x7f,0xc8,0x1d,0x7c,0x75,0x1e,0xd3,0x83, - 0x2d,0x94,0x84,0x61,0x49,0x7f,0xc8,0x34,0x3d,0x8c,0x50,0x1f,0x9c,0x7e,0x88,0xca, - 0xa2,0xc2,0xd5,0x45,0x65,0x17,0x32,0x16,0xe4,0x47,0xc2,0x7a,0x9f,0x15,0xf8,0x31, - 0xe1,0x18,0xd2,0xea,0x51,0xc5,0xfa,0xa0,0xf1,0xbc,0x7b,0x52,0xad,0x0f,0x36,0xeb, - 0xc7,0x52,0x40,0xfc,0x98,0xa8,0x07,0x96,0x82,0xe7,0xf0,0x84,0x35,0x50,0x1f,0xfe, - 0x63,0x5a,0x0f,0x7a,0xc4,0x61,0x63,0x41,0xc2,0xb4,0x2c,0x23,0xfe,0xd8,0x49,0x7d, - 0x54,0xc0,0x57,0x57,0x6c,0xff,0x4f,0xdc,0x16,0x17,0x7e,0x32,0x67,0x88,0x04,0x8a, - 0x3e,0xfc,0x72,0xfd,0x93,0xe8,0x8f,0xd9,0xf9,0x35,0x5c,0x77,0xb1,0x3b,0x1a,0x0b, - 0xf2,0x6c,0xdd,0xc5,0x58,0xf1,0x92,0xa8,0x0f,0xde,0x2d,0x3e,0x2d,0xde,0xaa,0x73, - 0xb5,0x66,0x7d,0x54,0xc9,0x11,0xd0,0xce,0x93,0x43,0xcd,0x25,0x07,0xea,0x8f,0x1b, - 0x65,0xfb,0xf3,0x00,0xda,0x6d,0xe3,0x7e,0x25,0xf6,0xbf,0x5f,0xa5,0x04,0xe1,0xaf, - 0x2e,0x72,0x7d,0xb8,0x2d,0xe9,0xa3,0x9a,0x4b,0xa0,0xde,0x9e,0xeb,0xc3,0xeb,0x93, - 0xfa,0x70,0xf0,0xef,0xe5,0x1c,0xc3,0x4b,0xc5,0x7a,0xf1,0x79,0xc8,0xe9,0xf4,0x51, - 0x6c,0xff,0x19,0x72,0x0f,0xf1,0x7e,0x84,0x77,0xc4,0xef,0xaf,0x85,0xf1,0xcf,0x4d, - 0xc2,0xf3,0xf0,0x64,0xe4,0x6f,0xd9,0xc1,0xef,0xdf,0x25,0xc1,0x07,0xec,0x79,0x10, - 0xf4,0x51,0x6a,0x5a,0x00,0xfc,0x33,0xea,0x72,0x7d,0x78,0x14,0x38,0xdb,0xa7,0xa8, - 0x7a,0xa1,0x71,0x8e,0x7f,0x66,0xd6,0xa2,0xf7,0xdc,0x95,0xa5,0xd3,0x2d,0xd3,0x5e, - 0x70,0x7e,0x17,0xa2,0x9d,0xda,0x36,0x6e,0x8b,0xfd,0x42,0xf8,0x6e,0x87,0xf1,0xcf, - 0x1d,0x2f,0xb2,0xc7,0xcd,0x9f,0x7e,0x02,0x5d,0x62,0xfd,0x95,0x0e,0x4f,0x4b,0x7f, - 0xdc,0xa1,0xa9,0xd4,0x07,0x05,0x7f,0x72,0xc0,0xa8,0x81,0x14,0x52,0x05,0x7d,0xb8, - 0x23,0xe2,0x1f,0xdd,0x7c,0xc9,0x8b,0x0b,0xe8,0xf7,0x7b,0x92,0x3e,0xea,0x07,0x90, - 0x3e,0x6a,0x7d,0x57,0x43,0x99,0xe1,0xd5,0x2d,0x76,0x8c,0x7f,0xf2,0xc6,0xfd,0x87, - 0xeb,0xc3,0xcb,0xd3,0xb1,0x3e,0x7c,0x0e,0x2c,0x8b,0x02,0xfd,0x21,0x05,0xbd,0xca, - 0x68,0x16,0x7d,0xf8,0x7e,0xa2,0xff,0x89,0xce,0x3b,0xcd,0xfc,0x50,0x11,0xff,0x2c, - 0x70,0x85,0xd3,0xb6,0x11,0x3e,0x7f,0x85,0xfa,0xe0,0x4d,0x0b,0xec,0xf4,0xeb,0xb9, - 0x3e,0xbc,0x69,0xba,0x88,0x7f,0x9a,0x8a,0x1a,0x7d,0x14,0xdb,0x7f,0xba,0xae,0xed, - 0x74,0xe9,0x7c,0x58,0x7b,0xcc,0x5b,0x0a,0xcf,0x27,0xbd,0xc0,0xf6,0x9f,0x63,0x33, - 0xf8,0x18,0x14,0x5c,0x38,0x5b,0x47,0x96,0xb9,0x3c,0x56,0x88,0x91,0x5f,0x7d,0xc0, - 0xf6,0x9f,0x15,0x04,0xff,0xd4,0xe0,0x7a,0xd9,0x2b,0x68,0xe9,0xc6,0x5a,0x50,0x4f, - 0xc5,0xf5,0x51,0x4e,0x31,0xf6,0x87,0x8c,0xf1,0x4f,0x23,0x72,0x82,0x06,0x05,0x11, - 0x35,0x9c,0xe5,0xf8,0xc7,0x16,0xf5,0x51,0xbe,0xe7,0xff,0x50,0x5a,0xef,0x7d,0xc9, - 0xfa,0xe0,0x1e,0x7b,0xbf,0x50,0x16,0xcc,0x3d,0xac,0xf1,0x1b,0x17,0xf4,0x51,0xfb, - 0x39,0x7a,0xf9,0x30,0xd7,0xe0,0xff,0x02,0xb8,0xff,0x1c,0x9f,0x0f,0x3b,0x20,0xd6, - 0x8b,0xdf,0xb5,0x71,0xf5,0x50,0xbd,0x7e,0xcd,0x47,0xcc,0x1f,0xdb,0x49,0xfa,0x03, - 0xa4,0xcc,0x87,0x75,0xb8,0x3e,0x8a,0xb9,0x61,0x53,0xd8,0xd3,0x08,0xe0,0x1f,0xc7, - 0x96,0xaa,0x81,0x8b,0x75,0xf8,0x87,0xfe,0xff,0x22,0x57,0xf8,0x6b,0xbd,0x4e,0x9a, - 0xaf,0x2a,0xea,0xc3,0x99,0x3f,0xb6,0xb3,0xe7,0x76,0x09,0xed,0xbc,0x55,0x47,0xeb, - 0x83,0x53,0xa5,0xf9,0x68,0xf4,0xeb,0x05,0x7d,0x94,0xa1,0xff,0x5d,0xd0,0x47,0xed, - 0x7a,0x62,0x23,0xc7,0x3f,0x61,0x50,0xe0,0xc7,0xd6,0xb4,0x2b,0x0e,0x3d,0xbf,0xb8, - 0x3e,0xca,0xd9,0x8d,0x37,0x0d,0x7a,0xb7,0x4b,0x4a,0x55,0x5f,0xe2,0xfd,0x71,0x83, - 0xb1,0x50,0x53,0xd4,0x47,0x21,0xf4,0x33,0xfb,0x3a,0x71,0x75,0x60,0x63,0x6f,0x3f, - 0xd7,0x47,0xd9,0xe2,0xfb,0x97,0xad,0xd1,0x87,0x8b,0xfa,0xa8,0x70,0x51,0x71,0x7d, - 0x70,0xc4,0x7e,0x3c,0xdc,0x5d,0xc1,0xf9,0x0e,0xaf,0xf2,0xe7,0xad,0x5e,0xc9,0xcf, - 0xb4,0x11,0x57,0x39,0xef,0xd8,0xfe,0x33,0xcf,0x3d,0xe1,0xb0,0xd3,0x0d,0xeb,0xa3, - 0xaa,0xa1,0xf3,0x6e,0x94,0xdd,0xcf,0xde,0x4c,0xfe,0x90,0xe7,0xd8,0xfe,0x13,0x54, - 0x28,0xd7,0x63,0x7d,0x54,0x4e,0x5b,0x1f,0x74,0x0b,0xbe,0x38,0x16,0xa4,0x14,0x0d, - 0xa6,0x21,0xf3,0xbb,0x99,0x42,0x58,0xc0,0x3f,0x7b,0x88,0x3f,0xc0,0xe1,0xfc,0xdb, - 0xf1,0xfb,0xf8,0x91,0x58,0xff,0xd3,0x4f,0x3e,0x89,0xf1,0x1e,0xc7,0x3f,0x33,0x70, - 0x19,0x31,0x5e,0x5d,0x31,0xb6,0x05,0xc8,0xcb,0xfe,0xd8,0x49,0x7d,0x14,0x01,0xc9, - 0x2f,0xcb,0xb6,0xea,0x5a,0xfc,0xb3,0x87,0x80,0x9c,0xfb,0xad,0x7f,0x53,0x60,0x0f, - 0xc0,0xff,0x84,0xf8,0x27,0x5e,0x54,0x71,0xa7,0x81,0xdf,0xe0,0xfc,0x4f,0xd9,0x3e, - 0x14,0x83,0x84,0xa2,0x65,0x10,0x8a,0x73,0xfe,0x67,0xf5,0x0c,0xa2,0x56,0x7a,0x00, - 0xb0,0x65,0xe6,0xfd,0x71,0xaa,0x3f,0xf6,0x8b,0x39,0x83,0x3f,0x12,0xc7,0x3f,0xfd, - 0x94,0xff,0x79,0xb4,0xda,0xf0,0x87,0x09,0xf8,0x63,0xb7,0x00,0xb6,0x5a,0x40,0x7f, - 0x5c,0x89,0xed,0x3f,0x55,0x99,0xf8,0x9f,0x51,0xf7,0x76,0x85,0xfd,0x30,0xf7,0xc7, - 0xdd,0x12,0x93,0x3c,0x27,0xf8,0x58,0x58,0xa3,0x3e,0x7c,0xc6,0x09,0xff,0x49,0x2e, - 0x8b,0x12,0xfb,0x35,0x34,0xfc,0x0f,0x71,0xa3,0xea,0x33,0xe5,0x5f,0xe0,0x7f,0x66, - 0x12,0xfc,0xb3,0x11,0xb0,0xc5,0xd6,0xe8,0xc3,0x0f,0x04,0x5c,0x06,0x9f,0xa6,0x0f, - 0xa7,0xfa,0xa8,0xea,0x13,0x3f,0x34,0x34,0xfe,0x88,0xfc,0x4f,0xac,0x86,0xaa,0x7b, - 0x2b,0xbf,0x85,0x0b,0xc5,0x71,0x30,0x17,0xd6,0x87,0xe7,0x8a,0x94,0xf6,0x31,0x08, - 0x77,0x25,0xfc,0xe3,0xe2,0xb6,0xb8,0x0d,0xf7,0xe5,0x17,0x24,0x8c,0xa0,0x35,0xfa, - 0x70,0xc2,0xff,0xec,0xc9,0x67,0xf2,0xc7,0x5e,0x51,0x21,0xf0,0x3f,0x19,0xfc,0x91, - 0x38,0xfe,0x99,0x92,0xc9,0x1f,0xbb,0xab,0x86,0xcc,0x07,0x41,0xd5,0x9c,0x08,0xaa, - 0xd4,0xfb,0x63,0x33,0x7d,0xd4,0x8b,0xdd,0x26,0x7d,0xb8,0xca,0xff,0x40,0xb6,0x90, - 0x10,0xff,0x33,0x93,0x80,0x9c,0x2a,0x4b,0x1d,0x0b,0x02,0xf1,0x3f,0x68,0x17,0xd1, - 0x83,0xdd,0x6f,0x3b,0xda,0xf5,0xca,0xf8,0x27,0x4a,0x5a,0xbd,0xc9,0x6f,0x5c,0xf2, - 0xc7,0x8e,0x6d,0x9d,0xee,0x07,0xc6,0x82,0x00,0xfd,0x71,0x58,0x1f,0x75,0x5c,0x77, - 0x19,0xa0,0x0f,0x77,0xa8,0x3e,0x7c,0x57,0xde,0x23,0x42,0xb5,0x8c,0xfd,0x71,0x56, - 0x1c,0xf4,0xa6,0xf4,0xc7,0x71,0xfc,0x63,0xd8,0x7f,0xb8,0x3f,0x76,0xe0,0xde,0x96, - 0xe1,0xef,0x97,0xfb,0x63,0xf7,0xf4,0xdc,0x9e,0x8b,0x40,0xce,0xd7,0xab,0x55,0x5b, - 0x48,0x68,0x3e,0x2c,0xc5,0x3f,0x8f,0x19,0xf1,0x0f,0xef,0x8f,0xe3,0xfa,0xf0,0xf6, - 0xb8,0xbf,0x29,0xd6,0x47,0xad,0x3a,0x47,0x83,0xb2,0x3c,0x1f,0x96,0xee,0x3f,0x2e, - 0xbd,0xff,0x3b,0xe3,0xdb,0x2e,0xd3,0xa0,0x24,0xf7,0xc7,0x05,0xe4,0xfa,0xaf,0x55, - 0xc9,0xeb,0x1d,0xd0,0xf4,0xc7,0x71,0xfc,0x23,0xe4,0xb3,0x35,0x91,0x4f,0xb1,0x3f, - 0x8e,0x2d,0x8a,0xef,0x9f,0x05,0xce,0x08,0xa1,0x68,0x02,0x9a,0xe0,0x8f,0x9d,0x23, - 0xf9,0xe9,0x4b,0xa6,0xe5,0xb4,0xc4,0xff,0xd0,0xfb,0x67,0xf8,0x67,0x08,0x18,0x0b, - 0x02,0xea,0xa3,0x08,0x9e,0x69,0x61,0x63,0xd9,0x1b,0xd5,0xf3,0x0b,0xf4,0x47,0x32, - 0x9c,0x77,0xa2,0x3e,0x8a,0xa4,0xe5,0x01,0x9a,0x9f,0xa5,0xb1,0x2d,0xb6,0x4e,0x1f, - 0xfe,0x0f,0x5b,0xfd,0x68,0x51,0x7f,0x49,0xf3,0x73,0x8c,0xbc,0x68,0x8b,0x46,0x40, - 0x25,0x11,0xff,0xf4,0xc9,0xab,0x7b,0x3f,0x4f,0x26,0xa6,0xbd,0x0b,0xe3,0x1f,0x15, - 0xed,0x08,0x41,0xec,0x0f,0x79,0x87,0xae,0x3f,0xae,0x29,0x15,0xff,0x88,0xfe,0x00, - 0xd3,0xc9,0xf4,0x5b,0xfa,0x49,0x43,0xb4,0xf0,0x78,0xbd,0xec,0x7e,0xea,0xf5,0xb0, - 0xa7,0x01,0xe0,0x7f,0x10,0x30,0x1f,0x04,0xa8,0x7f,0x65,0xf0,0x87,0x9c,0x6b,0xf2, - 0x47,0x2a,0x11,0xfd,0xf9,0x52,0xf9,0xfb,0xdd,0x3b,0x55,0x7d,0xb8,0xf0,0x18,0x9c, - 0x8f,0xa7,0x99,0xa4,0xfb,0x23,0x91,0xb4,0xec,0x8b,0xdd,0xe3,0x59,0xc6,0x76,0xab, - 0xf8,0x47,0x9a,0x8f,0x76,0x40,0x68,0x9c,0xe7,0xc1,0x2c,0x09,0xff,0xac,0x2d,0x38, - 0x0c,0xed,0x9c,0x47,0x2d,0x49,0xfc,0x73,0x18,0xf6,0x47,0xa2,0x69,0x79,0xbc,0x44, - 0xda,0xe2,0x88,0xe2,0x4e,0xf5,0x07,0x98,0x71,0x41,0x1c,0x6b,0xb8,0xbc,0xb4,0x41, - 0x68,0x8b,0x83,0xfc,0x01,0xae,0x39,0xc1,0xdb,0x4c,0x7e,0xaa,0x31,0x0a,0x90,0xfc, - 0x01,0x9e,0x10,0x65,0xf0,0xd0,0x7a,0xb1,0x3f,0x00,0xe3,0x7f,0xd6,0xda,0x82,0x1a, - 0xfc,0xa1,0x44,0x3e,0x35,0xfe,0x00,0x82,0x1b,0x24,0x5c,0x08,0xfb,0x3d,0xcd,0x87, - 0x25,0x34,0x48,0x0a,0xff,0x23,0xc1,0x18,0x81,0xcf,0xe9,0xcd,0xe2,0x0f,0xf9,0x45, - 0xe9,0x98,0x8e,0x8f,0xf2,0x59,0x06,0x7f,0x48,0x2f,0x0d,0xff,0x48,0xf3,0x61,0x47, - 0xd1,0x72,0x71,0x99,0x6b,0x00,0xfe,0x27,0xae,0x7f,0xd1,0xea,0x5e,0x93,0x4c,0x6b, - 0x98,0xf0,0x8f,0x09,0x0f,0xdc,0xf1,0x86,0xa6,0xfe,0xe5,0x01,0xf8,0x27,0x67,0x98, - 0x0f,0xeb,0x24,0xf0,0x8f,0x7d,0xf5,0xfe,0x90,0xc9,0xf9,0x68,0x3f,0x92,0xea,0x59, - 0x44,0xef,0xcd,0xf9,0x1f,0x79,0x3e,0x9a,0xd6,0x1f,0x00,0x9e,0x8f,0x96,0xc5,0x1f, - 0xc0,0x6e,0xd2,0xda,0x02,0x40,0xfc,0xcf,0x64,0xfd,0x01,0x3c,0xc8,0x1f,0x40,0xe9, - 0x6f,0xe5,0xfc,0x8f,0x30,0x1f,0x2d,0x44,0x3b,0x43,0xe9,0xfe,0x00,0xd7,0x1e,0x12, - 0xd8,0x8c,0xce,0x54,0xfc,0xe3,0x57,0x30,0xb5,0x06,0x9e,0x06,0xdb,0x9a,0xf6,0xfe, - 0x4e,0xfc,0x91,0xca,0xc4,0x0d,0x29,0xdc,0x7f,0xb6,0x73,0x5b,0x92,0xc8,0x1f,0xa9, - 0x0c,0xf9,0x03,0x9c,0x24,0xab,0x9b,0xa7,0xce,0x87,0x3d,0x29,0xf1,0x3f,0x72,0xfd, - 0xcb,0xd6,0xec,0x3f,0xe2,0x7c,0x34,0xe1,0x7c,0x99,0x40,0x47,0xe1,0xf5,0x9e,0x85, - 0xfc,0xb1,0x0d,0xc1,0xeb,0x3a,0x7f,0x00,0x4d,0xc0,0xf9,0x1f,0xc9,0x1f,0xe0,0x7c, - 0x06,0x7f,0xc8,0x9c,0x70,0xbd,0xb6,0x9f,0x4b,0xe9,0x8f,0x1b,0x20,0xe7,0x1d,0xc6, - 0x3f,0x3b,0xc5,0xfc,0xf8,0x49,0xfc,0xe3,0x44,0x6a,0x13,0xac,0x0f,0x1f,0x09,0xde, - 0xa4,0xfa,0x70,0xba,0xde,0xdd,0x97,0x56,0x47,0xbf,0x2a,0x27,0xfd,0x91,0xb0,0x09, - 0xf6,0xe5,0xb8,0x1f,0x50,0x68,0xeb,0x7e,0x1b,0x91,0xd1,0xb1,0x06,0xfc,0x53,0x33, - 0x96,0x9b,0xa4,0x3f,0xc0,0xa4,0xe6,0x83,0x68,0xf8,0x1f,0x93,0x3f,0xf6,0x26,0x1c, - 0xd4,0x4a,0x83,0x7a,0x27,0x8f,0x7f,0xe8,0xf3,0xc9,0xf1,0xcf,0x34,0xc3,0xf3,0x00, - 0xcc,0x87,0x3d,0xa2,0x7e,0x2d,0x3f,0xe8,0x35,0xf8,0xc7,0xc0,0xff,0xd0,0x1f,0xd8, - 0x1f,0x3b,0x83,0xfe,0xc7,0xd8,0x2f,0x2f,0xe9,0x7f,0x6c,0x99,0xed,0xb9,0x1e,0x07, - 0x81,0x96,0xff,0xb9,0x56,0x87,0x0f,0x61,0xfe,0xe7,0xa0,0xd6,0x9f,0x4a,0x83,0x7f, - 0xb8,0x3f,0x76,0x26,0x7f,0xc8,0x93,0x99,0xfc,0x01,0x24,0x7f,0x24,0x75,0xec,0x8e, - 0x09,0xff,0xfc,0xe4,0x20,0x47,0x3b,0x98,0xf6,0xa9,0xfe,0x44,0xf1,0x8f,0x26,0xf8, - 0xe4,0xfd,0xb1,0xe9,0x4f,0x46,0x7f,0x6c,0x76,0xfd,0x31,0x11,0xff,0x68,0x03,0xed, - 0x7c,0xd8,0x38,0x70,0x92,0x9f,0x70,0xfc,0xb3,0x87,0xf1,0x3f,0x20,0x7f,0xf2,0x8c, - 0x41,0xff,0x13,0xf3,0x3f,0x75,0x22,0xfe,0xb1,0x7a,0x0c,0xf3,0x41,0xa0,0x85,0xef, - 0x30,0xe0,0x9f,0x38,0xb1,0x55,0x52,0x3e,0xef,0x4d,0xe2,0x9f,0x87,0xeb,0xd9,0xdd, - 0xc6,0xf7,0x5f,0x2d,0xdc,0x7f,0x3f,0xbd,0xff,0x49,0xfb,0x23,0x31,0xfc,0xb3,0x88, - 0xe3,0x1f,0xc3,0x7c,0x3a,0x61,0x3e,0x2c,0xe5,0x7f,0xbc,0x88,0xcf,0x94,0x0b,0x61, - 0x63,0x06,0xfc,0xe3,0x02,0xfc,0xcf,0x00,0xc3,0x3f,0x6c,0x3e,0x2c,0xf3,0x47,0xda, - 0x68,0xb1,0xb1,0x1a,0x2c,0x78,0x99,0x06,0x03,0x37,0xd2,0xef,0x67,0xfe,0x48,0x5f, - 0x63,0x63,0x41,0xa6,0x31,0xd8,0xf3,0x2a,0xd3,0xff,0xb0,0xf9,0xd4,0xcc,0x1f,0xd2, - 0x05,0xb6,0x91,0x61,0x86,0x7f,0xf8,0xfb,0x11,0x3d,0xbf,0xd8,0x58,0xab,0xe3,0xfc, - 0xd8,0xfa,0x88,0xe9,0x7f,0x14,0x7f,0xc8,0xf0,0xfe,0xc9,0x6e,0xb3,0x22,0x0c,0x1e, - 0x49,0xdc,0x3f,0xe0,0x8f,0xc4,0xae,0x17,0xf0,0x0f,0xbb,0x9e,0xeb,0x6d,0xa8,0x3f, - 0x52,0xde,0x25,0x69,0x5c,0x13,0x0f,0xaa,0x96,0xf3,0xc9,0xf1,0xcf,0x16,0x8a,0x7f, - 0x28,0x9f,0xf3,0x34,0xb4,0xde,0x67,0xb3,0xe1,0x1f,0x76,0x3d,0xd7,0x07,0x96,0x28, - 0xfe,0x19,0x82,0x8e,0x39,0x83,0x3f,0x12,0x34,0x96,0x7d,0x98,0xeb,0x7f,0x14,0xfe, - 0x07,0x1a,0x83,0x35,0x0c,0xe0,0x9f,0xa4,0xde,0x03,0x1b,0x65,0x2b,0xf9,0x11,0xfa, - 0xe3,0x6a,0xb6,0x26,0xf8,0xae,0x47,0x70,0xb0,0x51,0x5e,0xaf,0xe2,0x0f,0x29,0x2c, - 0xf3,0x22,0xb0,0x5e,0x8e,0x7f,0x4e,0x55,0x5c,0xb1,0x27,0x76,0x24,0x68,0x9f,0x8d, - 0x0c,0xff,0xbc,0x13,0x57,0x54,0x85,0xfa,0xd7,0x4c,0x15,0xed,0x0c,0x06,0xf1,0xc4, - 0x90,0x9d,0x23,0x91,0x75,0x40,0xd5,0x31,0x6b,0x54,0xad,0x7f,0xa9,0xc7,0xd0,0x52, - 0x6b,0xb0,0xb8,0x2f,0xcc,0x4f,0xa5,0x41,0xff,0x43,0x82,0x87,0xc2,0x20,0xc4,0x3f, - 0xb1,0xf1,0x54,0x95,0x88,0x7f,0x56,0x9b,0xf1,0x0f,0x2e,0xcd,0x14,0x0e,0xe7,0xdf, - 0xe7,0xfa,0x1f,0x95,0xff,0x81,0xfc,0xa3,0x14,0xfe,0xa7,0x46,0xfa,0xda,0xd7,0x48, - 0xe1,0x95,0x52,0x1f,0xdf,0x61,0xf8,0xa7,0x14,0x3d,0x0f,0xb5,0xba,0x7e,0xc9,0xde, - 0x24,0xff,0x33,0x60,0x43,0xf8,0x47,0xe8,0x30,0x8d,0x2a,0xf2,0x5d,0x50,0xfd,0x4b, - 0x80,0x01,0x49,0xc7,0x00,0x41,0xff,0xe3,0xdc,0xac,0xa0,0x9d,0x41,0x3c,0x1f,0xa4, - 0x14,0x0d,0x0a,0x79,0x2a,0x0e,0xbe,0x2a,0xf9,0x03,0x18,0xf1,0x4f,0xcc,0xff,0xfc, - 0x33,0xcd,0x0f,0xd6,0xff,0xbc,0x17,0xc8,0xb4,0xd8,0x85,0xb8,0x22,0x86,0x27,0x86, - 0xbc,0xa6,0xe0,0x1f,0x57,0xf5,0x87,0x1c,0x8f,0x19,0xa1,0x51,0xce,0xa8,0x27,0xf5, - 0x3f,0xf3,0x12,0xeb,0x3d,0x40,0x2b,0x80,0x64,0x3e,0x1a,0xdf,0x7f,0xb6,0x60,0xfd, - 0xb3,0x95,0x7c,0xed,0xea,0x4e,0x30,0xd2,0x82,0xfe,0xa7,0x1e,0x83,0x9c,0xa3,0x09, - 0xda,0xe7,0x2d,0x3a,0x31,0x04,0xf0,0x07,0xc8,0xf2,0x3e,0xae,0xf1,0x07,0x48,0x04, - 0x16,0x0b,0x54,0xfc,0x53,0x6b,0xc2,0x33,0x8d,0x60,0xfd,0x2b,0xd3,0x7c,0x10,0x5a, - 0xff,0xaa,0x32,0xe3,0x1f,0xa9,0xfe,0x95,0x01,0xff,0x28,0xf5,0x2f,0x49,0xc6,0x73, - 0x38,0xae,0x10,0x75,0x33,0xa3,0xc8,0x0f,0x24,0xfe,0xe7,0x72,0x22,0x3f,0x9b,0x37, - 0x46,0x1d,0xf7,0x0f,0xe4,0x59,0xea,0xc4,0xfa,0x57,0x51,0x2d,0x7b,0x05,0x11,0xec, - 0xd9,0x69,0x79,0x45,0xf2,0x89,0x4e,0xff,0x43,0x06,0xa5,0x05,0x44,0xf6,0xb3,0x8b, - 0x0e,0x0a,0xb9,0x5f,0xa9,0x7f,0xe5,0x55,0xd8,0xe3,0x12,0x44,0x94,0xef,0xeb,0x30, - 0xfb,0x43,0x6e,0xa6,0x8e,0x07,0xec,0xfe,0x0f,0x4a,0xf5,0xaf,0x74,0xfc,0x03,0xd4, - 0xbf,0x12,0x69,0x6f,0x93,0x14,0xe9,0x62,0xfd,0xeb,0x60,0x92,0xf6,0x89,0xe6,0xc3, - 0xb6,0xc5,0x9f,0x60,0xc7,0x80,0x3a,0x4d,0xfd,0x6b,0x30,0x9a,0x4e,0xbe,0x1e,0x1b, - 0xfb,0x3f,0x42,0x1b,0xdb,0x7f,0x9c,0xe4,0x7f,0x58,0xfd,0x6b,0x9b,0x4c,0x83,0xe0, - 0xc6,0xf9,0x29,0xb8,0xe3,0x3e,0xe1,0x0f,0xd9,0xd3,0x43,0xf5,0x3f,0x16,0xa7,0x7d, - 0xfc,0x5f,0x05,0x5f,0x2e,0xd7,0x6d,0xcf,0x5f,0xf1,0x7e,0x13,0x5c,0xab,0xe8,0x7f, - 0xea,0x93,0xdb,0x38,0xf1,0x87,0x7c,0x34,0x3f,0x52,0xc2,0xc1,0x2d,0x52,0xfd,0x6b, - 0xd7,0x13,0xae,0x5a,0xb6,0x88,0xe6,0x5b,0x8d,0x77,0x5f,0x41,0xa7,0x77,0x44,0xa3, - 0x63,0x05,0x7f,0xc8,0x99,0xcc,0x1f,0x52,0xb0,0xa5,0x65,0x8c,0xf4,0x3d,0xd9,0xfc, - 0x21,0x0f,0x24,0xae,0x2f,0x79,0x34,0xff,0x9e,0x0d,0x9d,0x77,0xdd,0x72,0xd0,0x28, - 0xd7,0xbf,0x1e,0x4f,0xac,0x77,0x9c,0x4e,0x8c,0x65,0x46,0x88,0x82,0x1e,0x3b,0x77, - 0x08,0xdd,0x09,0x9f,0x77,0xa3,0xf9,0x11,0x4b,0xc1,0x3f,0xf3,0x0c,0xfa,0xe7,0x79, - 0x80,0x3f,0xa4,0x59,0xff,0x93,0x63,0x78,0x06,0xa8,0x7f,0x41,0xef,0xfb,0xbf,0x04, - 0xeb,0x5f,0x2e,0xfc,0x5a,0xba,0x09,0xaa,0x7f,0x61,0xfc,0xe3,0xcb,0xeb,0x3d,0x43, - 0xd7,0x7b,0x06,0x9d,0xcf,0xc5,0xfe,0x87,0x6c,0xff,0xd9,0x3b,0x23,0x95,0xef,0x3a, - 0x9d,0xa9,0xfe,0xe5,0xd5,0xae,0xcd,0x7f,0x80,0x4e,0xa3,0xd6,0x4c,0xfc,0x0f,0x5a, - 0x5c,0x76,0xfa,0x76,0xe2,0x8d,0xa2,0xb1,0xa4,0xf2,0x3f,0xb9,0x58,0xe6,0x2d,0x09, - 0xed,0x50,0x95,0x17,0xa6,0xa5,0x1b,0x1d,0x4c,0xe5,0x7f,0x48,0xe0,0x84,0x69,0xb4, - 0xee,0x45,0x8b,0x64,0xfe,0xc7,0x07,0x9e,0x9f,0x28,0xc0,0x0e,0x36,0x83,0xe8,0x39, - 0xef,0x0b,0xf8,0x93,0x4c,0xf3,0xd1,0x42,0x84,0xec,0x5d,0x2e,0x5e,0xa7,0xab,0x7f, - 0x4d,0x95,0xbe,0x7f,0x29,0xaa,0x7b,0x38,0x3c,0x1f,0x2f,0xb9,0x4b,0x15,0xfe,0x07, - 0x9c,0x2f,0xb3,0x0c,0x07,0x7f,0x8a,0x8e,0x0f,0x2d,0x87,0xea,0x5f,0xea,0xf3,0xe0, - 0xa1,0x6a,0xdb,0xaa,0x40,0xff,0xe1,0x37,0x65,0xe3,0x7f,0x16,0xbe,0x5e,0xfd,0x72, - 0xd5,0x1f,0xa1,0xc7,0x00,0xfe,0x87,0xc0,0x1e,0x6b,0x90,0x07,0x97,0x50,0x4b,0xae, - 0xce,0xcb,0xa3,0xdc,0x25,0xb4,0x22,0x9d,0xff,0x61,0xfd,0x5f,0x17,0xd1,0x84,0x7b, - 0x9d,0x66,0x3e,0x9a,0xd0,0x1f,0x87,0x3f,0x59,0x89,0xf3,0xdf,0x8c,0x47,0xcf,0x97, - 0x0b,0x2b,0xaa,0x17,0x65,0xe0,0x7f,0x1c,0xac,0x28,0x38,0x8a,0xf6,0x61,0x85,0xe1, - 0x52,0x68,0x3e,0x9a,0xb4,0xde,0x25,0x5e,0xd5,0xb0,0xf5,0x05,0x0f,0x57,0xc4,0x9c, - 0x2e,0xab,0x25,0xe1,0x8f,0x2d,0xe5,0x33,0x1a,0x3b,0xb8,0x15,0x3b,0xd2,0x57,0x21, - 0x6c,0x9d,0xed,0xb4,0x58,0x0d,0xd0,0x7c,0xb4,0x04,0xed,0x53,0xeb,0x85,0xff,0xbf, - 0x57,0xd0,0x72,0x3c,0x3a,0xa4,0x0d,0xe6,0x7f,0xba,0xe4,0x83,0xa9,0x7a,0x14,0x8d, - 0xfa,0x6d,0x99,0xf8,0x1f,0x3f,0x52,0xfc,0x2e,0x40,0x1f,0xee,0x6d,0xcc,0xc4,0xff, - 0x04,0xcd,0x7e,0x3c,0xb1,0xa2,0xb3,0x31,0x1b,0xff,0xb3,0xc8,0xaf,0x1c,0xb2,0x96, - 0x55,0x44,0x13,0x4e,0xe1,0xfa,0x57,0x87,0x54,0x06,0x5a,0xe2,0x3b,0x43,0xd6,0x74, - 0x74,0xa4,0x69,0x8b,0xa1,0xfe,0x25,0x9d,0xbf,0x35,0x41,0xbe,0xc5,0x1e,0xf3,0xda, - 0xf4,0xfe,0xd8,0x42,0x80,0x0b,0x61,0x0d,0xbd,0x23,0xc5,0x89,0xa6,0xc7,0xd6,0xa5, - 0xd5,0xbf,0xa6,0x2e,0x88,0x11,0xd1,0x4b,0xf9,0x97,0xfc,0xcb,0xa8,0xf5,0x46,0xec, - 0x8f,0xa4,0x9b,0x0f,0x8b,0x83,0x7c,0x67,0x5c,0x08,0xdb,0x89,0x3f,0x71,0x1a,0xb5, - 0xfc,0x0f,0x09,0xfa,0x70,0x23,0x98,0xd3,0xec,0xf7,0x36,0x58,0xfd,0xc1,0x11,0xd7, - 0x4b,0xaf,0x7f,0x6d,0x16,0x11,0x51,0x63,0xaa,0x3f,0xb6,0xc5,0x10,0x0e,0x76,0xfc, - 0x3e,0x9a,0x99,0xff,0x79,0x10,0x07,0x4e,0x7b,0x47,0x5d,0x8a,0x3f,0xb6,0x55,0x8e, - 0x15,0xe9,0x3d,0x79,0x0f,0x95,0x36,0x2e,0x45,0xcd,0x1a,0xfd,0x0f,0xc5,0x3f,0x53, - 0x48,0x30,0x6c,0xb5,0xa1,0x7f,0x0c,0x7e,0x55,0x74,0xca,0x46,0x7f,0xec,0xc3,0x0d, - 0x83,0x05,0x1c,0xcc,0xfa,0x92,0x55,0xeb,0x77,0x97,0xbc,0x6d,0x95,0x9e,0xec,0x8f, - 0xed,0x68,0x68,0xdb,0xb1,0xaa,0x36,0xf4,0x13,0xb4,0x70,0x53,0x65,0xa7,0xc6,0x1f, - 0x5b,0x01,0x42,0xd8,0xbf,0xb1,0xb5,0xb3,0x66,0x0b,0x30,0x1f,0x16,0x38,0xdf,0x5b, - 0xf2,0xc3,0x16,0x56,0xd0,0xd5,0x16,0x13,0xf3,0x61,0x27,0x82,0xb9,0xd2,0xf9,0x15, - 0x0b,0xa1,0xeb,0x86,0xf3,0xed,0x21,0xfe,0x69,0x2d,0x17,0x86,0xf3,0x48,0xe5,0x7f, - 0xd4,0xfb,0x1f,0xb5,0x56,0xf8,0x77,0xa3,0x3f,0x2b,0x39,0x9d,0xd6,0x22,0x09,0xff, - 0x1c,0x80,0xaf,0xef,0xb4,0x6e,0x43,0xd8,0x61,0x29,0xbc,0x1e,0x81,0xfe,0xd8,0x34, - 0xc0,0x78,0xb2,0x79,0x2c,0x0c,0xd6,0xa1,0x1d,0x41,0x53,0xc9,0xf1,0x2c,0x47,0xf2, - 0xc7,0x96,0xe6,0xdd,0x57,0x93,0xf9,0x17,0xe5,0x10,0xff,0xff,0xcd,0xce,0x81,0x9e, - 0x46,0xbc,0xff,0x2c,0x4a,0xe7,0x7f,0xfa,0x31,0xde,0x0e,0xde,0xf5,0xdb,0xfb,0xe6, - 0x16,0xf3,0x5a,0x7f,0x6c,0x12,0xfc,0x17,0x16,0x42,0x0f,0x75,0x2f,0x0b,0xf1,0xd5, - 0xb7,0x0f,0x16,0xca,0xf3,0xb5,0xfe,0xd8,0x24,0xb8,0x17,0x07,0x7d,0xd6,0xc2,0xe0, - 0xde,0xf2,0xf2,0x3e,0xa7,0x98,0x3a,0x1f,0xed,0x21,0x6f,0x71,0x69,0x56,0x93,0x55, - 0x08,0x7a,0x77,0xec,0x1f,0xc2,0xd7,0x9b,0xf8,0x1f,0x6b,0x84,0xbf,0x9f,0xee,0x08, - 0xf7,0xe7,0x26,0x4f,0x9d,0x0f,0x22,0xae,0x37,0xbc,0xfe,0x15,0x1c,0x14,0xf3,0xd8, - 0x3f,0xf3,0xb1,0x52,0xa1,0x68,0xe4,0x7f,0x46,0xa7,0x8e,0x87,0xfb,0xc9,0xaa,0xd2, - 0x54,0xfc,0xc9,0x65,0x74,0x57,0xa9,0xae,0xd3,0x5c,0xff,0x9a,0xac,0x3f,0xf6,0xe4, - 0xea,0x5f,0xa2,0x4d,0xf1,0x6e,0xfa,0x7e,0x91,0x45,0xff,0x33,0x8b,0x37,0x52,0x21, - 0x65,0x3e,0x1a,0xcf,0x8f,0x40,0xd4,0xac,0xe1,0xfa,0xe7,0xdf,0xcf,0x7c,0xd8,0xa4, - 0x2d,0x79,0x5a,0xfd,0xeb,0xb5,0x74,0xfd,0xb3,0x84,0x7f,0x92,0x36,0x86,0xda,0xfa, - 0xd7,0x37,0x30,0x0c,0xb8,0x42,0xd9,0x8f,0x94,0xfa,0x17,0x1f,0x0b,0xfb,0x54,0x06, - 0xfd,0xf3,0xb5,0xd8,0x1f,0x52,0x86,0x3d,0x9f,0x66,0xfd,0x4b,0x87,0x7f,0x0c,0xf5, - 0xaf,0x0c,0xf5,0x44,0x70,0x3e,0xac,0xa1,0xff,0xeb,0xb3,0x50,0xff,0x5a,0xff,0xe9, - 0xce,0x87,0x05,0x96,0x39,0x3f,0x65,0x3e,0xc8,0xa4,0xf4,0xcf,0xf8,0xb7,0x49,0x22, - 0x28,0x5b,0xff,0xbb,0x1a,0x20,0x59,0xff,0x43,0xfd,0x21,0xdd,0xfb,0xc4,0x65,0x56, - 0x4a,0xeb,0x9d,0x94,0xfe,0x27,0xc1,0xff,0xbc,0x22,0xf4,0xbb,0xc1,0xf7,0xff,0x69, - 0xcc,0x07,0xc9,0x3e,0x1f,0x76,0x32,0xfa,0x1f,0x70,0x3e,0x08,0xa0,0x7f,0xa6,0xdf, - 0xaf,0xe0,0x9f,0xa9,0x4a,0xa0,0x9d,0x8f,0x96,0x0c,0xe2,0xc6,0xf0,0x93,0x75,0xca, - 0x7c,0x90,0xbe,0xf8,0xb4,0xf2,0xff,0x37,0xd2,0xff,0xcc,0x27,0xfe,0x90,0x63,0x77, - 0xe0,0x89,0x57,0xed,0xea,0x7c,0x10,0xd2,0xff,0x45,0xf4,0x3f,0xdb,0xa8,0xfe,0x99, - 0x04,0xc3,0x2a,0xff,0xe3,0xb1,0xd5,0xf1,0xeb,0x23,0xfd,0xb3,0x43,0x02,0x78,0x3e, - 0x08,0x7e,0x8d,0x85,0xf3,0x99,0x9c,0x0f,0xb2,0x98,0x2e,0x53,0xa3,0xff,0x81,0xe6, - 0x83,0x98,0xf6,0xdb,0x34,0xfc,0x43,0x82,0x13,0x2a,0xff,0x03,0xe3,0x9f,0x38,0x20, - 0xe7,0x6f,0x5e,0x3b,0x1f,0x36,0x8b,0xfe,0x07,0xe3,0x1f,0x2f,0xce,0x46,0x20,0xf4, - 0x7f,0xf1,0xfc,0x3c,0xf3,0x10,0x30,0x1f,0x8d,0x57,0x73,0xe8,0x32,0x07,0xe8,0x1b, - 0xf7,0x80,0x52,0xff,0xba,0xe4,0xde,0x45,0xd5,0x3e,0x7c,0xbd,0x43,0x62,0x23,0xb3, - 0x99,0xff,0x19,0x0f,0x26,0x16,0xb4,0x0e,0x14,0xba,0xf2,0xed,0xe1,0x1b,0x52,0x2b, - 0xfe,0x86,0x16,0x5e,0xff,0x02,0xf0,0xcf,0x3b,0xe8,0x78,0x5f,0xe3,0x36,0x3c,0x31, - 0xd6,0xe9,0x0d,0x1e,0x7e,0xb4,0xfa,0x5f,0x2d,0x8f,0xd7,0xbf,0x00,0xfd,0x4f,0xbf, - 0x1f,0x3e,0x18,0x78,0x10,0x61,0x33,0xea,0x0d,0x9f,0x90,0xf5,0x2d,0x96,0x65,0x9a, - 0x0f,0x12,0xa5,0xbd,0x11,0x85,0xdf,0x1f,0x5e,0xbf,0xab,0xb1,0x54,0x7d,0xa4,0xa3, - 0x85,0xed,0x27,0xff,0xd7,0xde,0xd5,0x07,0xd7,0x55,0x5c,0xf7,0xb3,0xf7,0xed,0x95, - 0xaf,0xa4,0x27,0xeb,0x3e,0xe9,0x3d,0xfb,0xc1,0x18,0xb8,0x92,0x0d,0x68,0x88,0x21, - 0x4f,0xc2,0x80,0x83,0x29,0xba,0x7a,0xfa,0xb0,0xfc,0x01,0x7e,0xd8,0xb2,0x51,0xa9, - 0xa6,0x73,0xcd,0xb8,0x0c,0x9d,0x71,0x33,0xb6,0x3b,0x0d,0x74,0x9a,0xc2,0x7d,0x92, - 0x30,0x9a,0x40,0xca,0xab,0xe3,0x0e,0x62,0x86,0x19,0x5e,0x52,0x4f,0xca,0x4c,0x68, - 0x47,0x40,0x08,0xce,0x40,0xe2,0x27,0x23,0x1b,0x07,0x13,0xaa,0x52,0x27,0xf1,0x50, - 0x0f,0xb6,0x3b,0x2e,0xe3,0xb4,0x06,0x9c,0xc1,0x09,0x76,0xc0,0xb8,0x67,0x77,0xef, - 0xc7,0xde,0xf7,0x25,0x19,0x02,0xed,0x24,0xf7,0xfc,0xe3,0xdf,0xec,0x5b,0x5d,0xef, - 0xdd,0xbb,0x7b,0xf6,0xb7,0x67,0xf7,0x9c,0x53,0xc2,0x7f,0x38,0xf8,0x00,0x52,0x85, - 0xc5,0xec,0x46,0xfd,0x2b,0x76,0x87,0xb9,0x66,0x77,0xbd,0x5e,0xea,0xff,0x15,0x18, - 0x0f,0xe7,0x61,0x0f,0x03,0x9f,0xd8,0x17,0xd8,0x7a,0xd7,0x56,0xe6,0xfc,0xcb,0x35, - 0xfb,0x30,0x70,0x82,0x5b,0xe4,0xa2,0xe2,0xc6,0x7e,0x87,0xb9,0xf8,0xd9,0xfa,0x54, - 0xa5,0xfb,0x3f,0xee,0xfd,0x67,0xe4,0xc3,0x1a,0xe3,0xb7,0x2f,0xa9,0xad,0x47,0xf0, - 0x45,0x3a,0x2a,0xd9,0x7f,0x9c,0xf9,0xf2,0x1c,0xf0,0xc0,0xce,0x94,0x97,0x20,0x48, - 0x79,0xfa,0xe7,0x98,0x6c,0xff,0xd9,0xe3,0x1e,0x0c,0x7d,0xdf,0x5e,0x6c,0x69,0x5f, - 0x57,0x2e,0x67,0x25,0x79,0x6d,0xb3,0x92,0x2c,0xc7,0x7f,0xb8,0xd9,0x87,0x81,0x29, - 0x56,0x62,0x47,0x53,0x11,0xfc,0xc9,0x4c,0x15,0x10,0x5c,0x5a,0xc9,0xfe,0xb3,0xc7, - 0xeb,0x28,0xf8,0xf2,0x34,0x8b,0x9f,0xa0,0xef,0x99,0x81,0xff,0x3c,0xb6,0x3b,0xf2, - 0x2f,0xf0,0x1a,0x76,0x54,0x54,0xe8,0xab,0x0e,0xb3,0x71,0x3c,0x52,0xe7,0xfb,0x7f, - 0x95,0xf0,0x1f,0x76,0xec,0x35,0xca,0xb6,0x51,0x8e,0x86,0xb1,0xeb,0x4d,0xe5,0x66, - 0x29,0xde,0x45,0x31,0xff,0x39,0xab,0x6c,0x87,0x11,0xdb,0xe0,0x19,0x63,0xd9,0xfb, - 0x5a,0xf5,0x49,0x69,0xff,0x85,0xfc,0x47,0x2f,0x1e,0x6f,0x51,0x65,0x04,0xf2,0x53, - 0x6d,0x29,0xe5,0x0d,0x78,0x3e,0x63,0x1c,0xab,0x4f,0xd6,0x35,0x49,0xf1,0xb1,0x4b, - 0xf9,0xcf,0xd3,0xf0,0x06,0xb4,0x4f,0xe0,0xb6,0xe2,0xb7,0xf0,0x89,0xfd,0x7c,0xbe, - 0xf1,0xbf,0x23,0x4b,0x67,0xe6,0x3f,0x1a,0x03,0xe6,0x59,0xf8,0x31,0x9d,0x05,0xff, - 0xf9,0x15,0x1b,0x36,0x08,0xe8,0x4f,0xb4,0x94,0x19,0x9d,0x89,0xff,0xfc,0x17,0xfc, - 0x30,0xdd,0x9a,0xd1,0x72,0xfc,0xbe,0xca,0x77,0xcc,0xb6,0x9d,0x33,0xf1,0x1f,0xe3, - 0x25,0xad,0x35,0xbd,0x72,0x9c,0x1f,0xdc,0xb4,0x9a,0x5a,0x6e,0x78,0x06,0xfe,0xb3, - 0xeb,0xd9,0x36,0x63,0x65,0x9d,0x8e,0xf5,0xb3,0x00,0x2b,0xb5,0xa6,0xe1,0x19,0xf8, - 0x8f,0x7d,0xd6,0xe8,0xd0,0xe6,0xb2,0x92,0x03,0xd0,0xa1,0xad,0x1e,0x96,0xfd,0xbf, - 0xca,0xf0,0x9f,0x33,0x6c,0x7e,0x99,0x0d,0xd3,0xcd,0x67,0x94,0x5f,0xb3,0xd4,0x8d, - 0xd3,0x33,0xdd,0x7f,0x36,0xce,0xb5,0x75,0xb0,0x8c,0x90,0xbc,0xa3,0x56,0x46,0x77, - 0x8c,0x54,0xe5,0x3f,0xf8,0x45,0x76,0x9b,0xad,0x6e,0xa2,0xd8,0x6b,0x74,0x6d,0x2a, - 0x10,0xff,0xa7,0x84,0xdd,0xa5,0xa7,0xe0,0x05,0xbb,0x25,0xa3,0x65,0x9a,0x0e,0xc1, - 0x1e,0xf8,0xb6,0xa5,0x0d,0xca,0xf1,0xb1,0x03,0xfc,0x47,0x11,0xf1,0x97,0xcc,0x1f, - 0xd1,0x85,0x66,0xdb,0x9b,0xca,0x19,0xfb,0x47,0xc6,0x97,0x98,0xa1,0xec,0x9d,0xaa, - 0xe7,0x5f,0xef,0xc0,0xb9,0xc2,0x73,0xe9,0x28,0x03,0xbf,0xd2,0x3a,0x32,0x8b,0x77, - 0x4a,0xfc,0xa7,0x5c,0xfc,0x1f,0xac,0x6f,0xdc,0xc2,0x1c,0xe1,0xdf,0x29,0x3d,0xff, - 0x2a,0xe1,0x3f,0x73,0xdc,0xc0,0x0b,0xc2,0x11,0xde,0x4c,0xc1,0x9a,0x82,0x14,0x3f, - 0xb9,0x84,0xff,0xc8,0xfe,0x5f,0xbf,0x44,0xd0,0xca,0x40,0xdd,0x4c,0xfc,0x47,0x44, - 0x2c,0xf9,0xa9,0xcd,0xf4,0xcf,0x2a,0x03,0xeb,0xbb,0xe3,0xad,0x84,0xff,0x3c,0xc2, - 0xc0,0x0b,0xc2,0x1e,0x72,0x84,0xf5,0x27,0xd4,0xdf,0xab,0xb4,0x79,0xf5,0xcb,0xd8, - 0x7f,0x22,0x6f,0xc1,0x6f,0xec,0x3f,0xca,0x37,0x0e,0xf2,0x92,0x76,0x16,0x88,0xec, - 0x1a,0xdf,0xff,0xab,0x0c,0xff,0x39,0xc9,0x5e,0xdc,0x8e,0xd8,0xac,0x84,0x62,0x57, - 0x54,0xca,0x8f,0xe6,0x80,0x6e,0x76,0xfe,0x75,0xfd,0x71,0x2c,0xb9,0x14,0xf6,0x31, - 0x46,0x74,0x32,0x52,0xb0,0x03,0xfc,0xa7,0x84,0xb6,0x3d,0xc4,0x88,0x8d,0x85,0x6a, - 0x13,0x01,0x20,0x08,0xf8,0xbf,0x97,0xd4,0x3f,0x0c,0xdf,0x61,0x6a,0x6a,0x5a,0x19, - 0x34,0xf8,0x1f,0xde,0x5f,0x99,0xff,0xf0,0x40,0x1c,0x27,0xc1,0xb6,0x21,0x5f,0xaf, - 0x31,0xfb,0xcf,0x31,0x43,0xaf,0x5f,0x52,0x3e,0x3f,0x9a,0x7c,0x7f,0x20,0x8f,0x6a, - 0x73,0xf7,0xc8,0x3d,0xf0,0xda,0x81,0x8e,0x63,0xf8,0xe9,0x25,0xff,0xaf,0x32,0xfc, - 0xe7,0x3d,0x1c,0x36,0x2f,0xf7,0x34,0xe6,0x57,0xed,0x42,0x0d,0x76,0x8b,0x71,0x05, - 0x48,0xfe,0x5f,0xc8,0x7f,0x92,0xa5,0xb7,0x3b,0xde,0x86,0x4e,0x35,0x3a,0xdd,0x7a, - 0x06,0x15,0xdd,0xf5,0x7b,0xa3,0xff,0x36,0x02,0x9e,0xff,0x97,0x5d,0x86,0xff,0x9c, - 0x04,0x76,0xbe,0x8c,0xf3,0x6b,0x0a,0x86,0xd9,0x42,0x9c,0x53,0x8c,0x99,0xec,0x3f, - 0x2c,0x50,0xff,0x84,0xf2,0x9f,0x74,0x0c,0x57,0x40,0x96,0xca,0x79,0x06,0xfb,0x0f, - 0xbb,0x86,0xd7,0x66,0x60,0x37,0x8e,0xd9,0x79,0x68,0x83,0x3a,0xa5,0x9a,0xfd,0x47, - 0xa4,0x2d,0x80,0xd5,0xb9,0xc8,0x31,0x7a,0x80,0x2d,0x34,0xb9,0x08,0x54,0xb3,0xff, - 0x44,0xce,0xc2,0xc7,0xa4,0x13,0xd6,0x98,0x91,0xd3,0xf0,0x31,0xed,0x84,0xc7,0xa6, - 0x67,0xef,0xff,0xf5,0xaf,0x17,0x69,0xff,0xf9,0xde,0x45,0xdd,0x7f,0xf6,0x0c,0x5f, - 0x55,0xce,0xbf,0x6a,0xcb,0x9d,0x27,0xce,0xfa,0xfe,0x33,0x0b,0xbd,0xbe,0x66,0xa2, - 0x7b,0x36,0xfe,0x5f,0x0e,0xf8,0x72,0x15,0xfb,0x4f,0x45,0x50,0x64,0xff,0xa1,0x33, - 0xdf,0x7f,0x76,0xc7,0x43,0xd5,0xfb,0xcf,0xa7,0x3e,0xcd,0xfd,0xe7,0x93,0x95,0xec, - 0x3f,0xa5,0x66,0x1f,0x0e,0x0e,0x54,0x38,0xff,0x2a,0x8a,0x0f,0x30,0xf5,0xd4,0x69, - 0xfe,0xbe,0xff,0x3f,0xed,0x3f,0xbe,0xff,0xd7,0x17,0x68,0xff,0xa1,0x9f,0xb7,0xfd, - 0xe7,0x2b,0x17,0x7d,0xff,0xf9,0x1a,0x0e,0xc8,0xe7,0x66,0xff,0xa9,0x90,0x18,0xb7, - 0xd8,0xff,0xeb,0x22,0xec,0x3f,0xb3,0xca,0xaf,0x5a,0xc9,0xff,0x6b,0x66,0xff,0xf7, - 0xb2,0xf9,0x61,0x83,0xe0,0x91,0x80,0xfd,0x47,0x2d,0x63,0xff,0x29,0xed,0xcf,0x40, - 0xfc,0x9f,0x32,0xcd,0x26,0xc1,0x44,0x78,0x92,0xfd,0x67,0x76,0xfe,0x5f,0x3e,0xff, - 0x81,0x8b,0xb4,0xff,0x54,0xf1,0xff,0x2a,0x1b,0xff,0x30,0x51,0x45,0xff,0xf8,0xf6, - 0x1f,0xef,0xfe,0x73,0x59,0xff,0xaf,0x2a,0xf1,0x7f,0xda,0xca,0xf0,0x1f,0x19,0xf0, - 0x8c,0x21,0xcd,0xb3,0xb3,0xff,0x2c,0x2c,0xe7,0xff,0x95,0xa8,0xba,0x7e,0x39,0xf6, - 0x1f,0xc9,0xff,0xeb,0x12,0x49,0xff,0x7c,0xe8,0x37,0x7b,0x31,0xb7,0x08,0x31,0x50, - 0xc6,0xfe,0x53,0xf5,0x7d,0x99,0xfd,0xc7,0xcf,0x3f,0x68,0xd1,0x6a,0xfa,0xc7,0x75, - 0xcd,0xa8,0xe0,0xff,0x55,0x16,0x4c,0x3e,0x26,0xc7,0xff,0x91,0xf9,0x0f,0x09,0x1c, - 0x9c,0x3d,0x25,0xfd,0xe1,0x89,0xf2,0xf6,0x9f,0xf7,0x45,0x76,0xf8,0x59,0xfb,0x7f, - 0x7d,0x54,0x1a,0xd8,0xa7,0xaa,0xff,0x57,0x00,0xd4,0x4d,0xf0,0x08,0x36,0x5f,0x2d, - 0xe7,0xff,0xb5,0xb9,0xe2,0x78,0x23,0x9b,0xdf,0xaa,0x4f,0xb5,0x96,0xf8,0x7f,0xb9, - 0xf6,0x9f,0x9b,0xa5,0xf3,0x3e,0x04,0x06,0x82,0xc3,0xe5,0xfc,0xbf,0xf8,0xdb,0xd1, - 0x40,0x3e,0xb8,0x35,0xd2,0x89,0x86,0xc4,0x7f,0xbe,0x29,0x46,0x4b,0xd9,0xb0,0x87, - 0xc8,0x7f,0x0a,0x45,0xf7,0x7f,0x0a,0x10,0xa4,0x3d,0xc7,0x05,0xd8,0x2e,0x2e,0x42, - 0xeb,0x8f,0x40,0x6b,0x90,0xff,0x9c,0x64,0xf1,0x0f,0x69,0xa5,0xf5,0x3d,0x3f,0x62, - 0x18,0xc2,0xbe,0xea,0x8e,0x1f,0x37,0xfe,0x8f,0x14,0x2d,0xb9,0x49,0x32,0x04,0x8d, - 0x10,0x66,0x51,0x49,0x9f,0xf5,0xf4,0x89,0x4a,0xc5,0xf8,0x99,0x5b,0x6e,0x9a,0xbc, - 0x01,0x07,0x29,0xb7,0xd8,0x94,0x8f,0xff,0x6c,0x14,0x0f,0x83,0x4f,0xd2,0x6e,0xff, - 0xf8,0xfe,0x5f,0x5e,0xbc,0xcd,0x66,0x7f,0xe0,0xe9,0x5e,0xa2,0xd8,0x83,0xd0,0x31, - 0x89,0xfc,0x4a,0x8a,0xff,0x13,0xf7,0xf8,0xf0,0xbb,0x65,0x0c,0x41,0xd8,0x3f,0x93, - 0x41,0xff,0xaf,0x32,0x7c,0xf8,0x75,0x70,0x33,0xbc,0x93,0x11,0xe1,0x41,0x29,0xc5, - 0xff,0x91,0xf2,0xc3,0x1a,0x5e,0xfc,0x67,0xc7,0x10,0xf4,0x0b,0xed,0xe1,0x42,0x4b, - 0xf0,0xfc,0xeb,0x5e,0xe0,0xfc,0x67,0xca,0xa7,0x3d,0x37,0x63,0xb7,0x7c,0x04,0x4e, - 0xc6,0xb4,0x83,0x34,0x55,0x74,0xfe,0x15,0xaf,0x36,0x1f,0xcd,0x8f,0x74,0x71,0x9e, - 0xe8,0xc7,0x3f,0x8c,0x56,0xa9,0xff,0x1e,0x1c,0x1c,0xe6,0xfd,0xef,0xc7,0x77,0x3a, - 0x50,0xac,0x4f,0x56,0x6d,0xf1,0xfd,0x4f,0x0f,0xf1,0xf3,0xf4,0x0a,0xf1,0x9f,0xcb, - 0xf2,0x9f,0x87,0xc5,0x8b,0x4b,0xf1,0x9f,0x83,0xf7,0x0f,0x8b,0xe3,0xb9,0x8d,0x08, - 0x0b,0x9b,0xcf,0x7f,0x0a,0xea,0xd3,0x7a,0x65,0xfe,0x83,0x03,0xf3,0xb9,0x2a,0xf1, - 0x0f,0x4b,0x80,0x56,0xca,0x7f,0xfc,0xf5,0xee,0x1d,0x9b,0x81,0x86,0x19,0xf8,0x4f, - 0x7c,0x91,0xeb,0xed,0xfe,0x0e,0x07,0x22,0xfe,0x1e,0x15,0x86,0x20,0xbb,0x6a,0x7e, - 0x58,0x0e,0x6a,0xa5,0xfa,0xf8,0x84,0xe1,0x62,0xff,0x2f,0x08,0xf0,0x1f,0x7c,0xbe, - 0xb8,0xff,0xb3,0xd9,0x29,0xc9,0x16,0xf9,0x7f,0x0d,0x82,0xcb,0x7f,0x9a,0xc5,0x6b, - 0x36,0x48,0xef,0x5b,0xd0,0x4e,0x97,0xc4,0x7f,0xae,0xc6,0x67,0xce,0xec,0x72,0x3c, - 0xe2,0xcb,0xda,0x7f,0x44,0x36,0xd8,0x35,0xfe,0xb5,0xf0,0xc8,0xaf,0xe1,0xa7,0xc5, - 0xe7,0x5f,0xd5,0xf3,0xc3,0x6a,0x63,0xc5,0xfc,0xe7,0x5e,0x28,0xba,0xff,0xfc,0x27, - 0x7a,0x93,0xec,0xff,0xd5,0x56,0x14,0xff,0x67,0x77,0xf9,0xfc,0xb0,0xa2,0x3f,0x4f, - 0x8c,0x09,0xff,0xaf,0xb4,0x14,0xff,0xb9,0x3c,0xff,0xf1,0xfc,0xd7,0x04,0x11,0x92, - 0xe2,0x1f,0xc2,0x2e,0xea,0x57,0x53,0x8a,0x68,0x9e,0xe2,0xda,0x7f,0xfc,0xf8,0x87, - 0xd2,0x78,0x33,0x9c,0xc4,0x7c,0xd2,0xc0,0x3b,0x50,0xec,0xff,0x25,0xe5,0x87,0xfd, - 0xc8,0xf6,0x69,0x0f,0xbd,0x4e,0xf8,0x7f,0xfd,0x5d,0x31,0xff,0x91,0xf6,0xe3,0x05, - 0x0e,0xe4,0xf8,0xab,0xa7,0x94,0x11,0xa1,0xba,0x0f,0x7a,0xe3,0x81,0xf8,0x41,0xda, - 0xa7,0x75,0x31,0x7f,0x95,0x23,0xfa,0x8b,0xe4,0x2f,0x84,0x61,0x64,0xbb,0xe3,0xff, - 0xe5,0x3e,0x1e,0xb4,0x31,0x8f,0xff,0x88,0xfc,0xb0,0x73,0x25,0xfe,0xf3,0x1b,0x78, - 0x55,0x80,0x83,0xde,0xfd,0xe7,0x36,0x5f,0xff,0xc8,0xf9,0x40,0x15,0x67,0x59,0x77, - 0xf9,0xcf,0x76,0xf7,0x7d,0xcd,0x47,0x7f,0xdc,0xef,0xac,0x56,0x6f,0xc1,0xfb,0xa3, - 0x08,0xce,0xb1,0x40,0xbe,0x3b,0x44,0xc6,0x34,0xb8,0x30,0xca,0x7f,0x0a,0xe4,0x87, - 0xf5,0xb4,0x8d,0xc8,0xef,0x76,0x33,0x8b,0xff,0x9c,0x17,0x86,0x1d,0xeb,0x07,0xce, - 0xfd,0x67,0xcf,0xfe,0x93,0x87,0x27,0x75,0xf7,0x7d,0xbd,0x8b,0x40,0xa6,0xe3,0xf6, - 0x7e,0xa8,0xd4,0xff,0x4b,0x8a,0x7f,0x38,0xc5,0x77,0xf7,0x07,0x27,0x7c,0x45,0x34, - 0xc5,0x23,0xfa,0x06,0xf8,0x8f,0xa6,0x3e,0x43,0xbd,0xf7,0xfd,0x5e,0xa9,0x61,0x87, - 0x3e,0x50,0x68,0x0c,0xc4,0x7f,0x26,0x5e,0x3c,0xde,0xe3,0x3e,0x11,0x72,0x0d,0x23, - 0xf1,0xb3,0xee,0xa3,0xdc,0xfa,0xc4,0x5f,0xef,0x4e,0xf3,0xb4,0x68,0x8d,0xa7,0x95, - 0xaf,0x53,0x56,0x12,0x3d,0x1d,0xb9,0x80,0x0b,0xfd,0xf5,0x85,0x40,0xfc,0x9f,0xc9, - 0xb8,0xe7,0xbf,0x33,0xe9,0xde,0xdf,0x10,0x2b,0x5a,0x03,0xae,0x5f,0xda,0x4b,0xb9, - 0x56,0xe1,0xff,0xe5,0x7e,0x2f,0x1b,0x16,0xc3,0x32,0x85,0xb3,0x9d,0x93,0xc1,0xb4, - 0x68,0x3c,0x70,0xf1,0x0f,0xc5,0xc2,0x17,0xe0,0x3f,0x9a,0xc3,0x7f,0x9c,0xfc,0xb0, - 0x3f,0x50,0xbe,0x39,0xfa,0xbc,0xc1,0xdd,0xa0,0x0e,0x68,0x13,0x90,0x2f,0xac,0x4a, - 0x35,0x49,0xfc,0x07,0x36,0xfb,0xe3,0x81,0xe7,0xcf,0x7d,0x39,0xf2,0x3e,0x7c,0xf4, - 0xf4,0xad,0x4e,0xa0,0x48,0x45,0xac,0xef,0x1e,0xff,0xc9,0xfa,0xf7,0x9f,0x4f,0x13, - 0x0e,0x5e,0x8e,0x3c,0xe8,0x84,0xed,0x65,0x1e,0xdf,0xb4,0x4c,0xfc,0x9f,0xa3,0xf6, - 0x4d,0xdc,0x6c,0x18,0xbc,0x48,0x1f,0x3d,0x1b,0x79,0x8f,0x1e,0x1c,0x2e,0xf2,0xff, - 0x92,0xed,0x3f,0xfa,0x32,0x04,0x11,0x97,0x08,0xd5,0xb9,0xf6,0x9f,0x80,0xff,0x97, - 0x63,0xff,0x29,0xbd,0xff,0xcc,0x8e,0x75,0x4e,0x71,0xff,0xa6,0x64,0xc0,0xff,0xcb, - 0xb1,0xff,0x44,0x26,0xf4,0x53,0xb0,0x4c,0xf6,0xff,0xfa,0x86,0x6b,0xff,0xa9,0x9b, - 0x48,0x4b,0xf6,0x9f,0xf8,0x33,0xf1,0xff,0x20,0x37,0x4e,0x36,0x4e,0x90,0x53,0xf0, - 0x37,0xe2,0x36,0xb8,0x18,0x3f,0xec,0xfc,0x45,0x3f,0xc8,0x01,0x6e,0xd5,0xdd,0xe7, - 0x1f,0xb7,0x5f,0x86,0xa3,0xb0,0x06,0x3b,0x61,0xe1,0xc7,0xb4,0xa2,0x23,0x58,0xf9, - 0xf3,0x2f,0x37,0x30,0xc5,0x62,0x8f,0x11,0xb9,0x25,0xc5,0xf9,0x2f,0xbe,0xca,0x0e, - 0x49,0x5d,0xda,0x16,0x48,0x84,0xc1,0x03,0x63,0x82,0x1f,0xff,0xd9,0xe7,0x3f,0x69, - 0xff,0xbc,0xc6,0x9d,0x2f,0xa7,0x5c,0x50,0x64,0xff,0x19,0x65,0xab,0x7f,0xda,0x3b, - 0x0f,0x92,0x3d,0xc2,0xf2,0xd7,0x8a,0xab,0x41,0xee,0xf3,0x85,0xfd,0x67,0x71,0xa1, - 0xb1,0xdd,0xe5,0x3f,0x13,0x11,0xc1,0x88,0xae,0x60,0xf1,0x9f,0x3f,0xc8,0xf3,0x40, - 0xd0,0xb2,0xfd,0xe7,0x16,0xb9,0x37,0xae,0x28,0x34,0xca,0xf1,0x7f,0xcc,0x0b,0xfa, - 0xad,0xe5,0xed,0x3f,0xb8,0x49,0x29,0x4a,0x9b,0x2b,0x25,0x3a,0x0c,0xda,0x7f,0x74, - 0xcf,0x6c,0x5e,0x7e,0x63,0xb5,0x4a,0xf6,0xff,0xaa,0x66,0xff,0x49,0x7b,0x25,0xc7, - 0x66,0xb2,0xff,0x90,0xcf,0x64,0xff,0xe9,0xae,0x98,0xff,0xa2,0x42,0x3e,0x88,0xd9, - 0xda,0x7f,0xe2,0xe7,0xc8,0xc5,0xf9,0xbf,0x97,0xe4,0x87,0x2d,0xe1,0x3f,0x81,0xf5, - 0xba,0x8c,0xfd,0x07,0x66,0xb2,0xff,0x74,0x05,0xec,0x3f,0xbb,0xb5,0xd9,0xf8,0x7f, - 0x5d,0xac,0xfd,0xc7,0xf7,0xff,0x1a,0x9f,0x4d,0xfc,0x9f,0x8b,0xb6,0xff,0xbc,0x3d, - 0x4b,0xfb,0xcf,0x82,0x67,0xc9,0x62,0xf3,0xa0,0xde,0x5a,0xe9,0xfc,0xab,0x02,0xa8, - 0x91,0xfc,0xdf,0x8b,0xe3,0xff,0xcc,0x74,0xff,0x67,0x56,0xf6,0x9f,0x2a,0xe7,0x5f, - 0x25,0x80,0x3c,0x16,0xc8,0x7f,0xf1,0xf9,0xc4,0xff,0xf1,0xec,0x3f,0x2d,0xcc,0xfe, - 0x43,0x2f,0xca,0xfe,0x53,0xfb,0xe1,0x43,0x33,0xda,0x7f,0x7c,0xff,0xaf,0xcb,0x9e, - 0x51,0x2b,0xef,0xbf,0x74,0x71,0xff,0xa7,0x3b,0x60,0xff,0x31,0x8f,0xe6,0x3a,0x8f, - 0x3b,0xf1,0x7f,0x4a,0xec,0x3f,0x06,0x27,0x42,0x45,0xf6,0x1f,0xdd,0x8f,0xf6,0xe3, - 0x35,0xfb,0xe4,0x2a,0x6e,0x11,0xd2,0x17,0x1f,0x0b,0xd8,0x7f,0xc6,0xe1,0x49,0xf2, - 0xa2,0x52,0xc1,0xec,0x73,0x84,0x3d,0x8a,0x81,0x29,0xcf,0xff,0xcb,0xa2,0xaf,0xab, - 0xc5,0xda,0xe6,0x75,0x4f,0xc3,0xc7,0x9d,0x9f,0x7c,0xfe,0xb3,0x34,0xf1,0x8c,0x97, - 0xc6,0x42,0x2f,0x56,0x9b,0xa7,0x54,0x87,0xf8,0x95,0x8f,0xff,0x43,0x8a,0x17,0x26, - 0xef,0x86,0x8c,0x1f,0xff,0x27,0xeb,0xd9,0x7f,0xaa,0xc5,0xfb,0xf5,0xd7,0xeb,0xc9, - 0xd1,0xcd,0x7a,0x79,0x7b,0x8e,0xb7,0xa2,0x3d,0x12,0xf4,0xff,0xda,0xac,0x8b,0x43, - 0x99,0xb5,0x22,0xbb,0x41,0x1d,0xaf,0xa6,0xcc,0x10,0xff,0x07,0x3b,0xe1,0x1e,0x2f, - 0xdb,0x05,0xf6,0x4f,0xcd,0xe6,0x03,0xee,0xc1,0xeb,0xde,0x80,0xff,0x97,0xad,0x6d, - 0xa6,0xff,0x23,0x3a,0xc1,0xcb,0x76,0xe1,0xdd,0xff,0x79,0x97,0x5d,0x44,0x39,0x8c, - 0xe3,0xa1,0xc8,0xfe,0x23,0x48,0x8e,0x97,0xed,0xe2,0x63,0x37,0xec,0xcf,0xc7,0xf9, - 0x0b,0x6d,0xb7,0xbe,0x16,0xe0,0x3f,0x15,0xf2,0xf1,0xe5,0x5f,0xff,0x5d,0xe7,0xe3, - 0x6b,0xd5,0xc1,0xcd,0x8e,0xa7,0x8d,0x2a,0x2d,0x30,0x86,0x25,0x1e,0xf8,0x4c,0xcf, - 0x0f,0xf3,0x21,0x7e,0x9e,0xf9,0x10,0xcd,0xa2,0x12,0xa8,0x94,0x0f,0x71,0x41,0xa1, - 0xf4,0xb1,0x0f,0xa7,0x10,0xfc,0x65,0xf9,0x7c,0x88,0x7a,0x99,0x8e,0xa4,0x0c,0x98, - 0xe5,0xfb,0x5f,0x2f,0xd3,0xed,0xa3,0x0c,0x98,0xe5,0xf3,0x21,0x46,0x0b,0x95,0xfb, - 0x3c,0xcc,0x87,0x58,0x1d,0xfc,0x21,0xd7,0xff,0x02,0xe7,0x23,0xd7,0x7e,0x4c,0x1f, - 0x3a,0x1a,0x52,0x0b,0xf3,0xc3,0xca,0xfd,0xff,0x70,0xea,0xf3,0xed,0x7f,0x7b,0xd6, - 0xfa,0x90,0x29,0x3d,0xfe,0xb4,0x30,0x3f,0x6c,0x91,0x84,0xfa,0xf0,0xf7,0xbc,0xfe, - 0xbe,0xae,0xc8,0x16,0xf3,0x88,0x7e,0x13,0xa8,0x59,0x01,0xe2,0xea,0xbe,0xc8,0x56, - 0x73,0x48,0xbf,0x2f,0xde,0xf0,0x2a,0x03,0x99,0xf9,0xf4,0xb2,0x42,0xbb,0x57,0xbf, - 0xb7,0x47,0xdd,0x4a,0x86,0xcc,0x3b,0x75,0x70,0x81,0x3a,0xc5,0x41,0xb7,0x9e,0x98, - 0x22,0xa2,0x24,0x51,0x88,0xb9,0x7c,0x15,0x6c,0x85,0x18,0x76,0xbf,0xd1,0xa4,0xd1, - 0x61,0x01,0x92,0x74,0x3b,0x69,0x41,0x30,0xdf,0x29,0xb1,0xf0,0x27,0xdb,0xf0,0x9e, - 0x6f,0x03,0xb1,0x60,0x10,0xe6,0xc1,0x4e,0x5b,0x00,0x4d,0x45,0x40,0x06,0x95,0x79, - 0x49,0x75,0x94,0x6c,0x24,0x83,0xb0,0x01,0x12,0x52,0xfd,0x7d,0x83,0x57,0xde,0x48, - 0x6e,0xb3,0xd7,0x75,0xd1,0x31,0x75,0x1b,0x19,0xb2,0xef,0x34,0x12,0x07,0x38,0x98, - 0x8f,0x80,0x20,0xc8,0x63,0x49,0xa1,0xdd,0x6b,0xcf,0xbe,0x2e,0xd3,0xd0,0x35,0xaa, - 0x10,0xfc,0x9f,0x2c,0x48,0x9a,0x35,0x40,0x86,0xc1,0xb2,0x93,0xd0,0x07,0xc4,0xa6, - 0x06,0x02,0x2c,0xb1,0xfd,0xf7,0xdd,0xd7,0x4f,0xef,0x26,0x49,0xbb,0xcf,0x80,0x31, - 0xda,0x4a,0x34,0x3b,0x6d,0xe8,0x63,0xd4,0x10,0xc0,0xa6,0x16,0xd1,0x80,0x01,0xa9, - 0xfe,0x2a,0x75,0x6d,0x76,0x20,0xbf,0xbe,0x8d,0xce,0x55,0xd3,0xd9,0xcc,0xe9,0x81, - 0xb6,0x44,0x9d,0xda,0x35,0x9a,0xc9,0x23,0xa8,0x51,0xcd,0xd1,0x8c,0x11,0xbf,0x45, - 0x05,0xbf,0x3d,0xf6,0x02,0x32,0x07,0xd6,0x17,0x12,0x19,0x7a,0x39,0xb9,0x13,0x41, - 0x6c,0x8b,0x3a,0x44,0xd6,0xc1,0x40,0x21,0x91,0x52,0xff,0x94,0x44,0x18,0x58,0x4a, - 0x3d,0xf3,0x0f,0xd6,0x67,0x1a,0xa0,0x09,0xa8,0xad,0x53,0xa6,0xf9,0x4c,0x02,0x31, - 0x80,0x6e,0x1b,0xb5,0x97,0x4e,0x28,0xaa,0x86,0xa4,0x4d,0x75,0xe8,0x92,0xfa,0xc7, - 0x52,0x34,0x60,0x1d,0x9d,0xcc,0x33,0x00,0x2d,0xa8,0x43,0x38,0x30,0x6c,0xcd,0xa8, - 0x71,0x40,0x97,0xd4,0x3f,0x19,0x75,0x11,0xf9,0x63,0xd8,0x60,0xc6,0x73,0x64,0x13, - 0x07,0x89,0x9c,0x6a,0xc1,0x61,0xd6,0xed,0x39,0xd5,0x20,0x87,0xe1,0x6b,0xd8,0xff, - 0xd2,0xfb,0x9a,0x11,0xf6,0x99,0x6e,0xc4,0x16,0x45,0x58,0xb5,0xaf,0xc1,0x6d,0x76, - 0xe4,0x6e,0x2c,0xb9,0x89,0x1d,0x25,0x21,0xb0,0xe7,0x21,0x90,0xc6,0x4f,0x9a,0xa6, - 0xec,0xa8,0xd1,0xad,0x69,0xc3,0x34,0x95,0x65,0x40,0xdf,0xcb,0x41,0x1f,0x02,0x70, - 0x4a,0xa4,0xef,0x85,0x92,0xc2,0x3d,0x55,0x84,0x8d,0x0c,0x07,0x14,0x38,0x50,0xd8, - 0x61,0x8b,0x5b,0x22,0xf5,0x8f,0x42,0x52,0xf6,0x6a,0xa3,0x99,0x8d,0x2e,0x06,0xd6, - 0x69,0x74,0x2f,0x49,0x4d,0xf2,0x92,0x83,0x0c,0xa4,0xb0,0x44,0xaa,0xbf,0x2f,0xad, - 0x5a,0xd9,0x41,0x63,0x03,0xd0,0x61,0x01,0xb4,0x04,0x82,0x49,0x0e,0x46,0x08,0x4c, - 0x0e,0xa6,0x10,0xd8,0x52,0xff,0xa4,0x79,0xcf,0xf1,0x2e,0x04,0x17,0x18,0xf8,0x46, - 0x0c,0x50,0x06,0x22,0x1a,0xc8,0xef,0xbb,0x96,0x5a,0xd9,0xa4,0xd1,0xd7,0x0f,0x3b, - 0x10,0x5c,0x82,0xaf,0x19,0x1b,0xa6,0x9b,0xd8,0xfb,0xf6,0xc7,0x76,0x50,0x83,0xbd, - 0x6f,0x7f,0xcc,0x8e,0x49,0xdf,0x4b,0x1d,0x24,0x1b,0x60,0x3d,0x8e,0x45,0x0e,0x12, - 0x76,0x02,0x4b,0x68,0x1f,0x96,0x20,0xd0,0x70,0x98,0xc6,0xec,0x84,0x29,0x8d,0x9f, - 0x1a,0xb2,0xd5,0x1e,0xb0,0x12,0xe3,0xb4,0x86,0x74,0xd9,0x19,0x2b,0x9e,0x54,0x4b, - 0x01,0x18,0xde,0x92,0x54,0x68,0xc2,0x4d,0xb3,0x66,0x00,0xb6,0x07,0xa7,0x40,0x97, - 0x98,0x0b,0xd4,0xc6,0x49,0xd1,0x4f,0x9b,0xb0,0x84,0x03,0xef,0x78,0x01,0xdb,0xd3, - 0xa7,0xc4,0xb2,0xa3,0x56,0x4b,0x32,0xd9,0x17,0xb9,0xc3,0x3e,0x64,0xdd,0x90,0x6c, - 0x60,0x60,0x8a,0x83,0x39,0x4e,0x89,0xd4,0x9e,0xa9,0x3e,0xb2,0x35,0x3b,0x64,0xdd, - 0xa9,0x5f,0xb6,0x5f,0xe5,0x20,0x99,0x60,0xe0,0xb0,0xe9,0x80,0x23,0xd6,0x7d,0xc9, - 0x84,0xac,0x4f,0xb0,0xbe,0x3d,0x64,0xdd,0x94,0x6c,0xd8,0x1f,0xd9,0x6a,0x1f,0x71, - 0x40,0x56,0x94,0x34,0xb3,0x9f,0xe6,0x27,0x1b,0x0a,0x31,0xa9,0x3e,0xe5,0x8f,0x1d, - 0x84,0xfd,0x09,0x06,0xe6,0xb3,0xc7,0xde,0xf1,0x50,0x94,0xff,0x47,0xd0,0x92,0x8d, - 0x5a,0xcb,0x93,0xeb,0x25,0xfd,0x03,0x6c,0x3c,0xf4,0xb7,0x34,0x69,0xea,0xb0,0xac, - 0x88,0x86,0x7c,0x80,0x03,0xc3,0x96,0x46,0x1b,0xeb,0xb4,0x41,0x6b,0x5e,0x32,0xbe, - 0x9d,0x6c,0xe4,0x40,0x95,0x40,0x4b,0x76,0xd0,0xda,0x90,0x54,0xa5,0xfa,0xbd,0x66, - 0x22,0x45,0x56,0xc3,0x3a,0x1c,0xff,0xea,0x16,0x32,0x04,0xcb,0x21,0x51,0xe0,0xe0, - 0x4e,0x04,0x24,0xe5,0x00,0xbf,0x3d,0xbd,0x38,0x7e,0xf2,0x5a,0x9b,0x52,0x07,0x5c, - 0xed,0xe0,0x14,0x24,0x3e,0x60,0xfa,0x87,0x01,0x69,0x3c,0xf4,0xae,0xa4,0xd6,0xb7, - 0x71,0xfc,0xd4,0xb1,0xd1,0x85,0x1f,0x2e,0xad,0xe9,0x12,0xb0,0x04,0x90,0xeb,0x77, - 0x5d,0x99,0xe9,0x1a,0x68,0x5a,0x8f,0xec,0x53,0x35,0xb3,0x19,0x63,0x40,0x8b,0x31, - 0x70,0x07,0x82,0x44,0x24,0x91,0xb1,0x51,0xff,0x68,0x09,0x90,0xfa,0xa7,0x8e,0x64, - 0x0e,0x0c,0xa4,0x12,0x1a,0x8d,0x90,0x4c,0x61,0xc0,0x48,0x44,0xd5,0x6e,0x06,0x52, - 0x08,0xd2,0x02,0x68,0xaa,0x29,0xf5,0x0f,0x98,0x66,0x4c,0xa7,0x94,0xe0,0x0e,0x2f, - 0x0d,0xa8,0x02,0x0d,0xa6,0x02,0x29,0x07,0x00,0x77,0x83,0x03,0xfc,0xf6,0xa4,0x15, - 0xc5,0xb6,0xf3,0x46,0xbf,0xad,0x28,0x60,0x33,0xed,0xa5,0x31,0x90,0x6d,0x33,0x10, - 0x00,0x2b,0x41,0x20,0xb5,0xa7,0xd7,0x9c,0x63,0x31,0x25,0x1f,0xc1,0xfe,0xb4,0x1c, - 0x6d,0x8f,0xe0,0x30,0x65,0xa0,0xc1,0x72,0xf4,0x8f,0x34,0x5f,0xcc,0xf9,0x4c,0xed, - 0xcc,0x8b,0x3c,0x6a,0x47,0x18,0xb8,0x91,0xa9,0x1d,0x8b,0x0e,0x51,0x06,0xe6,0x18, - 0x30,0x04,0xf3,0x11,0x48,0x0d,0x22,0x34,0x45,0x98,0xd2,0xb0,0x6d,0x0e,0xba,0x41, - 0x2f,0x20,0x48,0x2a,0x0c,0x28,0x06,0x61,0x0b,0x81,0x5e,0x90,0xc7,0x83,0x50,0x32, - 0x26,0x92,0xbb,0x76,0x88,0x9a,0x91,0x41,0x38,0x04,0x4b,0xa0,0x96,0x95,0x1c,0x32, - 0x17,0x21,0x50,0x4c,0x90,0xeb,0xab,0x6a,0xbb,0xb9,0x3a,0xd3,0x9c,0xdb,0x39,0x42, - 0x10,0x98,0xcd,0x71,0xfa,0x2a,0x69,0xef,0xba,0x3d,0x83,0x60,0x3f,0x69,0xe9,0x5a, - 0x9d,0x59,0xa7,0x53,0xb9,0xfe,0x42,0xf5,0xde,0xc9,0xbb,0x52,0x1b,0xc6,0xe8,0x3f, - 0xaa,0x7f,0x3e,0x79,0xd7,0x96,0x0d,0x4f,0x26,0xfe,0x89,0x95,0x18,0x1b,0x1e,0x15, - 0x20,0x85,0x40,0x6e,0x3f,0xe5,0x49,0x01,0xf1,0x3f,0x15,0x5b,0x69,0x04,0x39,0x58, - 0x24,0xda,0x23,0x00,0xff,0x49,0x92,0x1e,0x2b,0x96,0xa4,0x7d,0x04,0xd7,0x2f,0xb1, - 0x90,0xc5,0x10,0xc4,0x92,0xa3,0xdd,0x2d,0x31,0xbb,0x87,0x81,0x3e,0x04,0x72,0xfd, - 0x8d,0x99,0xd8,0x00,0x5d,0x8f,0x8b,0x89,0x8a,0xa0,0x67,0x3d,0x49,0x98,0xbd,0x19, - 0x18,0xa0,0x77,0x40,0xc2,0xec,0xca,0xe8,0x03,0xd1,0x04,0x96,0x48,0xd5,0xb5,0x16, - 0x45,0x33,0x87,0x75,0x63,0x54,0x6b,0x49,0x6b,0x99,0xe1,0xb8,0xa1,0x6a,0xc4,0x05, - 0x1b,0xd7,0xb6,0x71,0x20,0x3f,0xbe,0x0e,0x14,0x1b,0xf2,0x99,0x36,0x1c,0x78,0x8a, - 0x6d,0xe6,0xf5,0x36,0x8a,0x60,0x4c,0x00,0x70,0x4a,0xe4,0xfa,0x51,0xa5,0x19,0x46, - 0x0b,0x7f,0x96,0x4a,0xae,0x8e,0xac,0x83,0x43,0x85,0xf6,0x54,0x83,0x00,0x37,0x20, - 0xa8,0x69,0x16,0x40,0x6e,0x4f,0xad,0xba,0xad,0x6b,0x28,0xe7,0xd2,0x80,0xb1,0x79, - 0x02,0x1c,0xe1,0xc4,0xa0,0x97,0x81,0xfb,0x8c,0x7f,0x90,0xfb,0xbf,0x7e,0x65,0xfa, - 0xe7,0xb9,0x17,0x76,0x5d,0x5b,0xcb,0xc1,0xf7,0x77,0x5d,0xbb,0xa2,0x7e,0xed,0xca, - 0xe9,0x1d,0x2f,0x2c,0xfa,0xe7,0xda,0xfa,0xf4,0xca,0x43,0x1c,0xc8,0xed,0x59,0xf6, - 0xe0,0xed,0x17,0xfe,0x7d,0xcf,0x99,0x77,0xcf,0x71,0xf0,0xe2,0x99,0xf7,0xcf,0x2d, - 0xfb,0x64,0xcd,0xd1,0x6f,0x5d,0x38,0x71,0xfe,0xdc,0xb2,0x07,0xd6,0x5c,0xe0,0x00, - 0x3e,0x83,0xdc,0xfa,0x44,0xed,0x55,0xe9,0x15,0xb9,0x1d,0x9b,0x3a,0xcf,0x35,0x7e, - 0xb7,0xfb,0x42,0xee,0xb7,0x7f,0x7b,0xeb,0x53,0x2b,0x1e,0x7c,0x73,0x45,0xee,0xf1, - 0xf3,0x9d,0x17,0x56,0x5c,0xfd,0xe6,0x8a,0x33,0x8f,0x9f,0x97,0xeb,0x77,0x3e,0x70, - 0xfb,0xd1,0x6f,0xbd,0x78,0xe2,0xdd,0x73,0x9d,0x4e,0x33,0xce,0x77,0xf2,0x86,0x9d, - 0x78,0x1f,0xeb,0xdf,0x7e,0x94,0xb5,0x30,0x50,0x7f,0xe1,0xe5,0xfd,0x47,0x77,0xdc, - 0x74,0xe2,0xd1,0x8d,0xcb,0xd8,0x1f,0x3e,0x8b,0x7f,0x88,0xe0,0xed,0xe6,0x17,0x47, - 0xdf,0x3d,0xb7,0x30,0xc9,0xc1,0xa9,0xbf,0x0e,0x34,0xa8,0x75,0x8b,0xf9,0xa4,0x7e, - 0xb5,0x9e,0x2d,0x28,0x08,0xe0,0x6a,0x5a,0x3b,0x09,0x5b,0xb1,0x64,0x4e,0xbc,0x76, - 0x9f,0x82,0x20,0x73,0x35,0x25,0x72,0x7f,0x52,0x97,0x1f,0x8e,0x5e,0xe9,0xb0,0x41, - 0xe4,0x87,0x30,0x64,0xce,0xe7,0xc0,0xe1,0x87,0x52,0xfd,0x62,0x7e,0xe8,0x01,0x5c, - 0x91,0x19,0x51,0xe4,0xfc,0x30,0xd0,0x20,0xa4,0x6d,0x50,0x13,0xcb,0xd9,0x02,0x30, - 0xda,0xb6,0x91,0x01,0x8d,0x6c,0x47,0x46,0xc4,0x4a,0x02,0xe3,0x59,0xeb,0xd9,0x46, - 0xa2,0xc3,0xdd,0x0d,0xf6,0x58,0x4f,0x07,0x59,0x30,0xba,0xdc,0x88,0x1d,0xa0,0xdb, - 0xc8,0x02,0x1b,0xc1,0xeb,0x74,0x5b,0x96,0x83,0x42,0xf0,0xf9,0x0e,0x3f,0xb4,0x0c, - 0x48,0xea,0xec,0xf9,0xde,0x7f,0xc4,0x80,0xc1,0x81,0x2f,0x51,0xa4,0x85,0x38,0xad, - 0x32,0x7c,0x7e,0x21,0x2d,0xb4,0xf4,0x1c,0xbd,0x6a,0x12,0xc1,0x16,0x7d,0x9c,0x5e, - 0x45,0x6a,0xed,0xb4,0x19,0xd8,0xa3,0x7d,0x89,0xae,0xcc,0xce,0xcb,0xf7,0x8e,0xc1, - 0x75,0xf4,0xae,0x6c,0xd3,0x44,0xcf,0xd3,0xb1,0x56,0x58,0x95,0x6d,0xca,0x23,0xb8, - 0x0e,0x7f,0x42,0x30,0x2e,0xe9,0x4f,0xad,0xd0,0x08,0xcd,0x10,0x2f,0xa8,0x39,0x98, - 0x8b,0x4a,0x2b,0x8e,0xdc,0x87,0xaf,0x36,0x58,0xb2,0xd4,0x07,0xa6,0xff,0x07,0xb8, - 0x55,0xd5,0x71,0xb5,0xa7,0x5b,0x74,0x36,0x8b,0x70,0xd9,0x37,0x51,0xa5,0xf5,0xb2, - 0xdd,0x6d,0x86,0xc4,0xf5,0x1e,0x64,0x8b,0x74,0x0b,0xf1,0xcc,0xe7,0xf8,0x7c,0xd3, - 0xb1,0xbc,0x25,0xf9,0x06,0x53,0x17,0x76,0x3a,0xb6,0x25,0x35,0xc7,0xf4,0x56,0xaa, - 0x65,0x15,0x56,0x22,0xd7,0x47,0xd2,0xcb,0x95,0x24,0x53,0xf4,0x49,0x48,0x63,0x6f, - 0xd7,0xb0,0x92,0x7b,0x10,0xec,0x12,0x3f,0x5d,0x62,0x7b,0xf5,0x75,0x62,0x2a,0x16, - 0x8c,0xc3,0x55,0x06,0xea,0x2c,0x0e,0xa0,0x76,0x0c,0x36,0x31,0xc0,0xae,0x32,0xb1, - 0x9c,0xf6,0x57,0x19,0xb8,0x02,0xba,0x62,0x32,0x7e,0xc8,0x49,0x91,0x2e,0xf3,0xc3, - 0x31,0x06,0x72,0x7b,0x97,0x88,0x92,0x9c,0xbf,0x9e,0xb2,0x37,0x2f,0xe1,0x87,0x66, - 0x11,0x30,0x0b,0x9e,0x7d,0xde,0xc4,0xb7,0x4c,0x71,0x92,0xa6,0x0f,0x3b,0x00,0x5e, - 0xa1,0x0e,0xd8,0x2b,0x4a,0xa2,0x92,0xfe,0x37,0x7b,0x4d,0xc1,0xdf,0xd8,0xd1,0x25, - 0x02,0x40,0xfe,0x36,0xc2,0x7a,0xc0,0x60,0x44,0x4c,0xfc,0x44,0x91,0xbf,0x79,0xed, - 0x21,0x12,0x3f,0xf4,0x40,0xaa,0xa8,0xc4,0x7f,0x7e,0x86,0xa4,0xc5,0x43,0x18,0x7b, - 0x14,0x20,0xc6,0x5e,0xdc,0x01,0xa2,0xa4,0xa8,0x3d,0xf8,0x21,0xf1,0x8b,0x02,0x38, - 0x20,0x86,0xdb,0x00,0x07,0xb8,0x3f,0xa5,0xbd,0xf6,0xf4,0xe3,0xb8,0xed,0xb2,0xe3, - 0x96,0xca,0x06,0xf0,0x56,0x5b,0xb7,0x68,0x92,0xb0,0x92,0x20,0xf0,0x87,0x4f,0x3f, - 0xb0,0x91,0xef,0xf1,0x5b,0x6f,0xaf,0x14,0x04,0x20,0xb5,0x67,0x03,0xb2,0x41,0xe4, - 0x87,0x83,0xda,0x06,0x25,0x66,0xff,0xcc,0xe5,0x87,0x03,0x2e,0x10,0xfc,0xd0,0x5f, - 0xdf,0x09,0xe3,0x6f,0x0b,0xac,0xe5,0x7a,0x6c,0xbf,0x00,0xc9,0xd8,0xfe,0x9a,0xbf, - 0x22,0x08,0x32,0xb1,0x43,0x74,0x2b,0x59,0x60,0x2e,0x1f,0xbc,0x44,0x7a,0x5f,0xd2, - 0x87,0xb4,0xf0,0x49,0xeb,0xea,0x24,0xd9,0xaf,0x08,0x50,0xbb,0x1f,0x5c,0xe0,0x94, - 0x48,0xfa,0x27,0xd3,0xdb,0xa7,0xb6,0x73,0xda,0x09,0x12,0xff,0xbc,0xc1,0x66,0x8c, - 0x31,0xf1,0xf3,0x84,0xa0,0x8e,0xfa,0x5e,0x69,0xfc,0x34,0x11,0x8b,0x69,0x1b,0xc6, - 0x87,0x0d,0x7b,0x85,0xd0,0x3f,0x9b,0x78,0x89,0xab,0x88,0xfa,0xd5,0x82,0xd7,0x43, - 0x26,0x0e,0xe0,0x8d,0x76,0xd2,0xaa,0x19,0xd7,0xbf,0x8b,0xe0,0x52,0xab,0x26,0x49, - 0xb6,0xab,0xbc,0x04,0x81,0xf8,0x29,0x29,0xeb,0x9f,0x5e,0x8b,0xde,0xdf,0x32,0x17, - 0x77,0x68,0x90,0x1f,0x5d,0x4a,0x2e,0x47,0x10,0x3b,0xb6,0xe8,0x7e,0x04,0xcb,0x11, - 0x50,0x07,0x48,0xe3,0x99,0xac,0x45,0x36,0x88,0xfd,0x8f,0xed,0xc1,0xd1,0x72,0x09, - 0x7e,0x08,0x9c,0x1d,0x9b,0x18,0x2d,0xec,0x27,0x3b,0x04,0x51,0xec,0x97,0xf4,0x0f, - 0x8e,0x37,0x64,0x83,0x7c,0xfc,0x7c,0x83,0xb1,0xc1,0x7c,0x5f,0x80,0x1f,0x3a,0x40, - 0xaa,0x8f,0xf3,0xcb,0xec,0x8a,0xeb,0xbd,0x38,0x5d,0x68,0x26,0xab,0x1b,0xbd,0x1a, - 0x72,0x29,0x13,0x41,0x0f,0x02,0x2a,0x00,0x01,0xa9,0x7f,0x70,0xbe,0x14,0xe2,0x1d, - 0xb8,0xf3,0xa8,0xc3,0x09,0x15,0x9f,0x20,0x51,0xd2,0x0d,0x99,0x42,0x3c,0xa5,0x22, - 0x30,0x1c,0x60,0xfa,0xcf,0x47,0x65,0xa1,0xeb,0x9c,0x1f,0xda,0x66,0x2b,0xaa,0x1d, - 0x82,0xfc,0xd0,0x74,0x89,0xa2,0x0b,0xe4,0xf1,0x93,0x6e,0x6d,0x62,0xfc,0x50,0x1b, - 0x57,0x5a,0x91,0x93,0x75,0xb4,0x70,0x7e,0x38,0x06,0x86,0x51,0x37,0x86,0x25,0x79, - 0xc6,0x0f,0xc7,0xa4,0xf6,0x10,0x57,0xff,0x24,0x85,0xfe,0xe9,0x73,0xf5,0x0f,0x03, - 0x8b,0x70,0x9c,0x2b,0x4c,0xff,0x48,0xfd,0x63,0x72,0x25,0x53,0x63,0x8e,0xe5,0x50, - 0x7b,0x3f,0x21,0xd4,0xce,0x16,0x6d,0x9c,0xa0,0x22,0xca,0x39,0x1a,0xa9,0x4b,0x9e, - 0x5f,0x16,0x7e,0x26,0x54,0xb5,0xd8,0x26,0x1b,0x81,0x86,0x5b,0xeb,0x63,0x70,0xaf, - 0x86,0x5f,0x70,0x38,0x77,0x6c,0xd1,0xd2,0xda,0xb9,0x0a,0x7e,0x41,0x7f,0xbe,0x67, - 0x80,0xc0,0x57,0xac,0xb9,0x5b,0x22,0x2c,0x8c,0x54,0xca,0x8c,0xea,0x11,0x0a,0xaf, - 0x22,0x31,0xe3,0x60,0x9f,0x21,0x4a,0x6c,0xa9,0x3d,0xc8,0xdf,0x96,0x98,0x0d,0x99, - 0x48,0x26,0xb7,0x13,0xda,0xcd,0x06,0x33,0x32,0x00,0x3f,0xa3,0xed,0xfd,0xd1,0x4c, - 0x24,0x0e,0xbf,0xc0,0x12,0x06,0xf4,0xbd,0x52,0x7b,0xba,0x29,0xee,0x46,0x53,0x7d, - 0x49,0x40,0xb5,0x33,0x99,0x4c,0xf5,0x45,0x63,0x7f,0xef,0x82,0xc7,0x5d,0x20,0xeb, - 0x1f,0x13,0xf9,0x61,0xb2,0xe0,0x1e,0x9e,0x54,0xb2,0x23,0xfa,0xfd,0xd3,0x8f,0xfc, - 0x50,0x43,0x7e,0x68,0xdb,0x9b,0xee,0x66,0x44,0xd1,0x88,0x8d,0x53,0x87,0x16,0x7a, - 0x40,0x1e,0x3f,0x66,0xaf,0x1a,0x4b,0xd4,0xf4,0x22,0x5d,0xee,0xc9,0xc4,0xe2,0xb4, - 0x97,0xc4,0x4c,0x13,0xd5,0x0e,0x15,0xfa,0x87,0x95,0x00,0x31,0xa5,0xf1,0xa3,0x31, - 0x96,0xea,0x6a,0x3e,0x7d,0x58,0xc5,0x61,0x60,0xe0,0x30,0x18,0x16,0x1b,0x07,0x3e, - 0x1e,0xb2,0x20,0x09,0xa3,0x85,0x90,0x37,0x83,0xfc,0x90,0x83,0x1e,0xaf,0x44,0x1e, - 0x3f,0xb7,0x2d,0x5c,0x67,0x8e,0x4e,0x6f,0x5c,0x32,0x7e,0x5b,0xcd,0x3a,0xf3,0xd0, - 0xb4,0xb1,0xa4,0xe1,0x36,0xb2,0xce,0x1c,0x98,0xbe,0x01,0x41,0x84,0x95,0x20,0x90, - 0xda,0x43,0xfa,0xe9,0xb6,0xae,0x05,0x39,0x5c,0xf4,0x7f,0xf2,0xb0,0x43,0x03,0x3c, - 0x3e,0xc0,0x01,0x2c,0x37,0x24,0xfd,0x83,0xeb,0xb5,0xcf,0x0f,0x57,0xca,0xfc,0x70, - 0x57,0x05,0x7e,0xd8,0xe9,0xf3,0xc3,0x35,0x32,0x3f,0x3c,0xf3,0x3b,0xe2,0x87,0x57, - 0x32,0x5a,0xf8,0xcb,0xdc,0x85,0xf3,0x9d,0xe7,0x38,0x51,0x44,0x7e,0xf8,0x44,0x6d, - 0x90,0x1f,0x9e,0x90,0xeb,0xf3,0xff,0xfd,0xc3,0x13,0x58,0xff,0x13,0x4e,0x14,0x91, - 0x1f,0x3e,0x50,0xc4,0x0f,0x03,0xed,0x59,0xe6,0xf2,0xc3,0x85,0x97,0xdf,0x7e,0x74, - 0x47,0x3b,0x23,0x96,0xf7,0x17,0xd5,0x3f,0xfe,0xe9,0x5b,0x9f,0x02,0x83,0xe0,0xfc, - 0xc6,0x7f,0xbb,0xa3,0x9f,0xfe,0x29,0xa1,0x84,0x12,0x4a,0x28,0xa1,0x84,0x12,0x4a, - 0x28,0xa1,0x84,0x12,0xca,0xef,0xbb,0xf0,0xbd,0x03,0x0d,0xf7,0x0e,0xa1,0x84,0x12, - 0x4a,0x28,0xa1,0x84,0x12,0x4a,0x28,0xa1,0x84,0x12,0x4a,0x75,0xe1,0x7b,0x87,0x9a, - 0x70,0xef,0x10,0x4a,0x28,0xa1,0x84,0x12,0x4a,0x28,0xa1,0x84,0x12,0x4a,0x28,0xa1, - 0x54,0x17,0xbe,0x77,0xd0,0xf8,0xde,0xe1,0xff,0xba,0x29,0xa1,0x84,0x12,0x4a,0x28, - 0xa1,0x84,0x12,0x4a,0x28,0xa1,0x84,0x12,0xca,0x17,0x28,0x29,0x16,0x72,0x19,0x5e, - 0xf9,0x20,0x05,0x36,0xf3,0x62,0x8a,0xa4,0xc0,0xbc,0xe8,0xf3,0x04,0xe7,0x6f,0xd5, - 0x14,0xe4,0x89,0xff,0xcc,0xe3,0x77,0x15,0xd7,0xfb,0x5f,0x2b,0x92,0xad,0x46,0xf1, - 0x33,0x01,0x00, diff --git a/board/dave/PPChameleonEVB/nand.c b/board/dave/PPChameleonEVB/nand.c deleted file mode 100644 index 14b61a4..0000000 --- a/board/dave/PPChameleonEVB/nand.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - * (C) Copyright 2006 DENX Software Engineering - * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#include <common.h> -#include <asm/io.h> - -#if defined(CONFIG_CMD_NAND) - -#include <nand.h> - -/* - * hardware specific access to control-lines - * function borrowed from Linux 2.6 (drivers/mtd/nand/ppchameleonevb.c) - */ -static void ppchameleonevb_hwcontrol(struct mtd_info *mtd, int cmd, unsigned int ctrl) -{ - struct nand_chip *this = mtd->priv; - ulong base = (ulong) this->IO_ADDR_W; - - if (ctrl & NAND_CTRL_CHANGE) { - if ( ctrl & NAND_CLE ) - MACRO_NAND_CTL_SETCLE((unsigned long)base); - else - MACRO_NAND_CTL_CLRCLE((unsigned long)base); - if ( ctrl & NAND_ALE ) - MACRO_NAND_CTL_CLRCLE((unsigned long)base); - else - MACRO_NAND_CTL_CLRALE((unsigned long)base); - if ( ctrl & NAND_NCE ) - MACRO_NAND_ENABLE_CE((unsigned long)base); - else - MACRO_NAND_DISABLE_CE((unsigned long)base); - } - - if (cmd != NAND_CMD_NONE) - writeb(cmd, this->IO_ADDR_W); -} - - -/* - * read device ready pin - * function +/- borrowed from Linux 2.6 (drivers/mtd/nand/ppchameleonevb.c) - */ -static int ppchameleonevb_device_ready(struct mtd_info *mtdinfo) -{ - struct nand_chip *this = mtdinfo->priv; - ulong rb_gpio_pin; - - /* use the base addr to find out which chip are we dealing with */ - switch((ulong) this->IO_ADDR_W) { - case CONFIG_SYS_NAND0_BASE: - rb_gpio_pin = CONFIG_SYS_NAND0_RDY; - break; - case CONFIG_SYS_NAND1_BASE: - rb_gpio_pin = CONFIG_SYS_NAND1_RDY; - break; - default: /* this should never happen */ - return 0; - break; - } - - if (in32(GPIO0_IR) & rb_gpio_pin) - return 1; - return 0; -} - - -/* - * Board-specific NAND initialization. The following members of the - * argument are board-specific (per include/linux/mtd/nand.h): - * - IO_ADDR_R?: address to read the 8 I/O lines of the flash device - * - IO_ADDR_W?: address to write the 8 I/O lines of the flash device - * - cmd_ctrl: hardwarespecific function for accesing control-lines - * - dev_ready: hardwarespecific function for accesing device ready/busy line - * - enable_hwecc?: function to enable (reset) hardware ecc generator. Must - * only be provided if a hardware ECC is available - * - ecc.mode: mode of ecc, see defines - * - chip_delay: chip dependent delay for transfering data from array to - * read regs (tR) - * - options: various chip options. They can partly be set to inform - * nand_scan about special functionality. See the defines for further - * explanation - * Members with a "?" were not set in the merged testing-NAND branch, - * so they are not set here either. - */ -int board_nand_init(struct nand_chip *nand) -{ - - nand->cmd_ctrl = ppchameleonevb_hwcontrol; - nand->dev_ready = ppchameleonevb_device_ready; - nand->ecc.mode = NAND_ECC_SOFT; - nand->chip_delay = NAND_BIG_DELAY_US; - nand->options = NAND_SAMSUNG_LP_OPTIONS; - return 0; -} -#endif diff --git a/board/dave/PPChameleonEVB/u-boot.lds b/board/dave/PPChameleonEVB/u-boot.lds deleted file mode 100644 index 17f5919..0000000 --- a/board/dave/PPChameleonEVB/u-boot.lds +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright 2007-2009 Freescale Semiconductor, Inc. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#include "config.h" /* CONFIG_BOARDDIR */ - -#ifndef RESET_VECTOR_ADDRESS -#define RESET_VECTOR_ADDRESS 0xfffffffc -#endif - -OUTPUT_ARCH(powerpc) - -PHDRS -{ - text PT_LOAD; - bss PT_LOAD; -} - -SECTIONS -{ - /* Read-only sections, merged into text segment: */ - . = + SIZEOF_HEADERS; - .text : - { - *(.text*) - } :text - _etext = .; - PROVIDE (etext = .); - .rodata : - { - *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) - } :text - - /* Read-write section, merged into data segment: */ - . = (. + 0x00FF) & 0xFFFFFF00; - _erotext = .; - PROVIDE (erotext = .); - .reloc : - { - KEEP(*(.got)) - _GOT2_TABLE_ = .; - KEEP(*(.got2)) - _FIXUP_TABLE_ = .; - KEEP(*(.fixup)) - } - __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2; - __fixup_entries = (. - _FIXUP_TABLE_) >> 2; - - .data : - { - *(.data*) - *(.sdata*) - } - _edata = .; - PROVIDE (edata = .); - - . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; - - . = .; - __start___ex_table = .; - __ex_table : { *(__ex_table) } - __stop___ex_table = .; - - . = ALIGN(256); - __init_begin = .; - .text.init : { *(.text.init) } - .data.init : { *(.data.init) } - . = ALIGN(256); - __init_end = .; - - ppcenv_assert = ASSERT(. < 0xFFFF8000, ".bss section too big, overlaps .ppcenv section. Please update your confguration: CONFIG_SYS_MONITOR_BASE, CONFIG_SYS_MONITOR_LEN and CONFIG_SYS_TEXT_BASE may need to be modified."); - . = 0xFFFF8000; - .ppcenv : - { - common/env_embedded.o(.ppcenv); - } - - .resetvec RESET_VECTOR_ADDRESS : - { - KEEP(*(.resetvec)) - } :text = 0xffff - - . = RESET_VECTOR_ADDRESS + 0x4; - - /* - * Make sure that the bss segment isn't linked at 0x0, otherwise its - * address won't be updated during relocation fixups. Note that - * this is a temporary fix. Code to dynamically the fixup the bss - * location will be added in the future. When the bss relocation - * fixup code is present this workaround should be removed. - */ -#if (RESET_VECTOR_ADDRESS == 0xfffffffc) - . |= 0x10; -#endif - - __bss_start = .; - .bss (NOLOAD) : - { - *(.bss*) - *(.sbss*) - *(COMMON) - } :bss - - . = ALIGN(4); - _end = . ; - PROVIDE (end = .); -} diff --git a/board/dave/common/flash.c b/board/dave/common/flash.c deleted file mode 100644 index 29caf47..0000000 --- a/board/dave/common/flash.c +++ /dev/null @@ -1,707 +0,0 @@ -/* - * (C) Copyright 2001 - * Stefan Roese, esd gmbh germany, stefan.roese@esd-electronics.com - * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#include <common.h> -#include <asm/processor.h> - -flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS]; /* info for FLASH chips */ - -/*----------------------------------------------------------------------- - * Functions - */ -static int write_word (flash_info_t *info, ulong dest, ulong data); - -/*----------------------------------------------------------------------- - */ -static void flash_get_offsets (ulong base, flash_info_t *info) -{ - int i; - short n; - - /* set up sector start address table */ - if (((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) || - ((info->flash_id & FLASH_TYPEMASK) == FLASH_AM640U)) { - for (i = 0; i < info->sector_count; i++) - info->start[i] = base + (i * 0x00010000); - } else if (((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL322B) || - ((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL323B) || - ((info->flash_id & FLASH_TYPEMASK) == FLASH_AM320B) || - ((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL324B)) { - /* set sector offsets for bottom boot block type */ - for (i=0; i<8; ++i) { /* 8 x 8k boot sectors */ - info->start[i] = base; - base += 8 << 10; - } - while (i < info->sector_count) { /* 64k regular sectors */ - info->start[i] = base; - base += 64 << 10; - ++i; - } - } else if (((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL322T) || - ((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL323T) || - ((info->flash_id & FLASH_TYPEMASK) == FLASH_AM320T) || - ((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL324T)) { - /* set sector offsets for top boot block type */ - base += info->size; - i = info->sector_count; - for (n=0; n<8; ++n) { /* 8 x 8k boot sectors */ - base -= 8 << 10; - --i; - info->start[i] = base; - } - while (i > 0) { /* 64k regular sectors */ - base -= 64 << 10; - --i; - info->start[i] = base; - } - } else { - if (info->flash_id & FLASH_BTYPE) { - /* set sector offsets for bottom boot block type */ - info->start[0] = base + 0x00000000; - info->start[1] = base + 0x00004000; - info->start[2] = base + 0x00006000; - info->start[3] = base + 0x00008000; - for (i = 4; i < info->sector_count; i++) { - info->start[i] = base + (i * 0x00010000) - 0x00030000; - } - } else { - /* set sector offsets for top boot block type */ - i = info->sector_count - 1; - info->start[i--] = base + info->size - 0x00004000; - info->start[i--] = base + info->size - 0x00006000; - info->start[i--] = base + info->size - 0x00008000; - for (; i >= 0; i--) { - info->start[i] = base + i * 0x00010000; - } - } - } -} - -/*----------------------------------------------------------------------- - */ -void flash_print_info (flash_info_t *info) -{ - int i; - int k; - int size; - int erased; - volatile unsigned long *flash; - - if (info->flash_id == FLASH_UNKNOWN) { - printf ("missing or unknown FLASH type\n"); - return; - } - - switch (info->flash_id & FLASH_VENDMASK) { - case FLASH_MAN_AMD: printf ("AMD "); break; - case FLASH_MAN_FUJ: printf ("FUJITSU "); break; - case FLASH_MAN_SST: printf ("SST "); break; - case FLASH_MAN_STM: printf ("ST "); break; - default: printf ("Unknown Vendor "); break; - } - - switch (info->flash_id & FLASH_TYPEMASK) { - case FLASH_AM400B: printf ("AM29LV400B (4 Mbit, bottom boot sect)\n"); - break; - case FLASH_AM400T: printf ("AM29LV400T (4 Mbit, top boot sector)\n"); - break; - case FLASH_AM800B: printf ("AM29LV800B (8 Mbit, bottom boot sect)\n"); - break; - case FLASH_AM800T: printf ("AM29LV800T (8 Mbit, top boot sector)\n"); - break; - case FLASH_AM160B: printf ("AM29LV160B (16 Mbit, bottom boot sect)\n"); - break; - case FLASH_AM160T: printf ("AM29LV160T (16 Mbit, top boot sector)\n"); - break; - case FLASH_AM320T: printf ("AM29LV320T (32 M, top sector)\n"); - break; - case FLASH_AM320B: printf ("AM29LV320B (32 M, bottom sector)\n"); - break; - case FLASH_AMDL322T: printf ("AM29DL322T (32 M, top sector)\n"); - break; - case FLASH_AMDL322B: printf ("AM29DL322B (32 M, bottom sector)\n"); - break; - case FLASH_AMDL323T: printf ("AM29DL323T (32 M, top sector)\n"); - break; - case FLASH_AMDL323B: printf ("AM29DL323B (32 M, bottom sector)\n"); - break; - case FLASH_AM640U: printf ("AM29LV640D (64 M, uniform sector)\n"); - break; - case FLASH_SST800A: printf ("SST39LF/VF800 (8 Mbit, uniform sector size)\n"); - break; - case FLASH_SST160A: printf ("SST39LF/VF160 (16 Mbit, uniform sector size)\n"); - break; - case FLASH_STMW320DT: printf ("M29W320DT (32 M, top sector)\n"); - break; - default: printf ("Unknown Chip Type\n"); - break; - } - - printf (" Size: %ld MB in %d Sectors\n", - info->size >> 20, info->sector_count); - - printf (" Sector Start Addresses:"); - for (i=0; i<info->sector_count; ++i) { -#ifdef CONFIG_SYS_FLASH_EMPTY_INFO - /* - * Check if whole sector is erased - */ - if (i != (info->sector_count-1)) - size = info->start[i+1] - info->start[i]; - else - size = info->start[0] + info->size - info->start[i]; - erased = 1; - flash = (volatile unsigned long *)info->start[i]; - size = size >> 2; /* divide by 4 for longword access */ - for (k=0; k<size; k++) - { - if (*flash++ != 0xffffffff) - { - erased = 0; - break; - } - } - - if ((i % 5) == 0) - printf ("\n "); - /* print empty and read-only info */ - printf (" %08lX%s%s", - info->start[i], - erased ? " E" : " ", - info->protect[i] ? "RO " : " "); -#else - if ((i % 5) == 0) - printf ("\n "); - printf (" %08lX%s", - info->start[i], - info->protect[i] ? " (RO)" : " "); -#endif - - } - printf ("\n"); - return; -} - -/*----------------------------------------------------------------------- - */ - - -/*----------------------------------------------------------------------- - */ - -/* - * The following code cannot be run from FLASH! - */ -static ulong flash_get_size (vu_long *addr, flash_info_t *info) -{ - short i; - short n; - CONFIG_SYS_FLASH_WORD_SIZE value; - ulong base = (ulong)addr; - volatile CONFIG_SYS_FLASH_WORD_SIZE *addr2 = (CONFIG_SYS_FLASH_WORD_SIZE *)addr; - - debug("[%s, %d] Entering ...\n", __FUNCTION__, __LINE__); - - /* Write auto select command: read Manufacturer ID */ - addr2[CONFIG_SYS_FLASH_ADDR0] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00AA00AA; - addr2[CONFIG_SYS_FLASH_ADDR1] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00550055; - addr2[CONFIG_SYS_FLASH_ADDR0] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00900090; - - value = addr2[CONFIG_SYS_FLASH_READ0]; - - switch (value) { - case (CONFIG_SYS_FLASH_WORD_SIZE)AMD_MANUFACT: - info->flash_id = FLASH_MAN_AMD; - break; - case (CONFIG_SYS_FLASH_WORD_SIZE)FUJ_MANUFACT: - info->flash_id = FLASH_MAN_FUJ; - break; - case (CONFIG_SYS_FLASH_WORD_SIZE)SST_MANUFACT: - info->flash_id = FLASH_MAN_SST; - break; - case (CONFIG_SYS_FLASH_WORD_SIZE)STM_MANUFACT: - info->flash_id = FLASH_MAN_STM; - break; - default: - info->flash_id = FLASH_UNKNOWN; - info->sector_count = 0; - info->size = 0; - return (0); /* no or unknown flash */ - } - - value = addr2[CONFIG_SYS_FLASH_READ1]; /* device ID */ - - switch (value) { - case (CONFIG_SYS_FLASH_WORD_SIZE)AMD_ID_LV400T: - info->flash_id += FLASH_AM400T; - info->sector_count = 11; - info->size = 0x00080000; - break; /* => 0.5 MB */ - - case (CONFIG_SYS_FLASH_WORD_SIZE)AMD_ID_LV400B: - info->flash_id += FLASH_AM400B; - info->sector_count = 11; - info->size = 0x00080000; - break; /* => 0.5 MB */ - - case (CONFIG_SYS_FLASH_WORD_SIZE)AMD_ID_LV800T: - info->flash_id += FLASH_AM800T; - info->sector_count = 19; - info->size = 0x00100000; - break; /* => 1 MB */ - - case (CONFIG_SYS_FLASH_WORD_SIZE)AMD_ID_LV800B: - info->flash_id += FLASH_AM800B; - info->sector_count = 19; - info->size = 0x00100000; - break; /* => 1 MB */ - - case (CONFIG_SYS_FLASH_WORD_SIZE)AMD_ID_LV160T: - info->flash_id += FLASH_AM160T; - info->sector_count = 35; - info->size = 0x00200000; - break; /* => 2 MB */ - - case (CONFIG_SYS_FLASH_WORD_SIZE)AMD_ID_LV160B: - info->flash_id += FLASH_AM160B; - info->sector_count = 35; - info->size = 0x00200000; - break; /* => 2 MB */ - - case (CONFIG_SYS_FLASH_WORD_SIZE)STM_ID_29W320DT: - info->flash_id += FLASH_STMW320DT; - info->sector_count = 67; - info->size = 0x00400000; break; /* => 4 MB */ - - case (CONFIG_SYS_FLASH_WORD_SIZE)AMD_ID_LV320T: - info->flash_id += FLASH_AM320T; - info->sector_count = 71; - info->size = 0x00400000; break; /* => 4 MB */ - - case (CONFIG_SYS_FLASH_WORD_SIZE)AMD_ID_LV320B: - info->flash_id += FLASH_AM320B; - info->sector_count = 71; - info->size = 0x00400000; break; /* => 4 MB */ - - case (CONFIG_SYS_FLASH_WORD_SIZE)AMD_ID_DL322T: - info->flash_id += FLASH_AMDL322T; - info->sector_count = 71; - info->size = 0x00400000; break; /* => 4 MB */ - - case (CONFIG_SYS_FLASH_WORD_SIZE)AMD_ID_DL322B: - info->flash_id += FLASH_AMDL322B; - info->sector_count = 71; - info->size = 0x00400000; break; /* => 4 MB */ - - case (CONFIG_SYS_FLASH_WORD_SIZE)AMD_ID_DL323T: - info->flash_id += FLASH_AMDL323T; - info->sector_count = 71; - info->size = 0x00400000; break; /* => 4 MB */ - - case (CONFIG_SYS_FLASH_WORD_SIZE)AMD_ID_DL323B: - info->flash_id += FLASH_AMDL323B; - info->sector_count = 71; - info->size = 0x00400000; break; /* => 4 MB */ - - case (CONFIG_SYS_FLASH_WORD_SIZE)AMD_ID_LV640U: - info->flash_id += FLASH_AM640U; - info->sector_count = 128; - info->size = 0x00800000; break; /* => 8 MB */ - - case (CONFIG_SYS_FLASH_WORD_SIZE)SST_ID_xF800A: - info->flash_id += FLASH_SST800A; - info->sector_count = 16; - info->size = 0x00100000; - break; /* => 1 MB */ - - case (CONFIG_SYS_FLASH_WORD_SIZE)SST_ID_xF160A: - info->flash_id += FLASH_SST160A; - info->sector_count = 32; - info->size = 0x00200000; - break; /* => 2 MB */ - - default: - info->flash_id = FLASH_UNKNOWN; - return (0); /* => no or unknown flash */ - - } - - /* set up sector start address table */ - if (((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) || - ((info->flash_id & FLASH_TYPEMASK) == FLASH_AM640U)) { - for (i = 0; i < info->sector_count; i++) - info->start[i] = base + (i * 0x00010000); - } else if (((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL322B) || - ((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL323B) || - ((info->flash_id & FLASH_TYPEMASK) == FLASH_AM320B) || - ((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL324B)) { - /* set sector offsets for bottom boot block type */ - for (i=0; i<8; ++i) { /* 8 x 8k boot sectors */ - info->start[i] = base; - base += 8 << 10; - } - while (i < info->sector_count) { /* 64k regular sectors */ - info->start[i] = base; - base += 64 << 10; - ++i; - } - } else if (((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL322T) || - ((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL323T) || - ((info->flash_id & FLASH_TYPEMASK) == FLASH_AM320T) || - ((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL324T)) { - /* set sector offsets for top boot block type */ - base += info->size; - i = info->sector_count; - for (n=0; n<8; ++n) { /* 8 x 8k boot sectors */ - base -= 8 << 10; - --i; - info->start[i] = base; - } - while (i > 0) { /* 64k regular sectors */ - base -= 64 << 10; - --i; - info->start[i] = base; - } - } else if ((info->flash_id & FLASH_TYPEMASK) == FLASH_STMW320DT) { - /* set sector offsets for top boot block type */ - base += info->size; - i = info->sector_count; - /* 1 x 16k boot sector */ - base -= 16 << 10; - --i; - info->start[i] = base; - /* 2 x 8k boot sectors */ - for (n=0; n<2; ++n) { - base -= 8 << 10; - --i; - info->start[i] = base; - } - /* 1 x 32k boot sector */ - base -= 32 << 10; - --i; - info->start[i] = base; - - while (i > 0) { /* 64k regular sectors */ - base -= 64 << 10; - --i; - info->start[i] = base; - } - } else { - if (info->flash_id & FLASH_BTYPE) { - /* set sector offsets for bottom boot block type */ - info->start[0] = base + 0x00000000; - info->start[1] = base + 0x00004000; - info->start[2] = base + 0x00006000; - info->start[3] = base + 0x00008000; - for (i = 4; i < info->sector_count; i++) { - info->start[i] = base + (i * 0x00010000) - 0x00030000; - } - } else { - /* set sector offsets for top boot block type */ - i = info->sector_count - 1; - info->start[i--] = base + info->size - 0x00004000; - info->start[i--] = base + info->size - 0x00006000; - info->start[i--] = base + info->size - 0x00008000; - for (; i >= 0; i--) { - info->start[i] = base + i * 0x00010000; - } - } - } - - /* check for protected sectors */ - for (i = 0; i < info->sector_count; i++) { - /* read sector protection at sector address, (A7 .. A0) = 0x02 */ - /* D0 = 1 if protected */ - addr2 = (volatile CONFIG_SYS_FLASH_WORD_SIZE *)(info->start[i]); - if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) - info->protect[i] = 0; - else - info->protect[i] = addr2[CONFIG_SYS_FLASH_READ2] & 1; - } - - /* - * Prevent writes to uninitialized FLASH. - */ - if (info->flash_id != FLASH_UNKNOWN) { - addr2 = (CONFIG_SYS_FLASH_WORD_SIZE *)info->start[0]; - *addr2 = (CONFIG_SYS_FLASH_WORD_SIZE)0x00F000F0; /* reset bank */ - } - - return (info->size); -} - - -/*----------------------------------------------------------------------- - */ - -int flash_erase (flash_info_t *info, int s_first, int s_last) -{ - volatile CONFIG_SYS_FLASH_WORD_SIZE *addr = (CONFIG_SYS_FLASH_WORD_SIZE *)(info->start[0]); - volatile CONFIG_SYS_FLASH_WORD_SIZE *addr2; - int flag, prot, sect, l_sect; - ulong start, now, last; - int i; - - if ((s_first < 0) || (s_first > s_last)) { - if (info->flash_id == FLASH_UNKNOWN) { - printf ("- missing\n"); - } else { - printf ("- no sectors to erase\n"); - } - return 1; - } - - if (info->flash_id == FLASH_UNKNOWN) { - printf ("Can't erase unknown flash type - aborted\n"); - return 1; - } - - prot = 0; - for (sect=s_first; sect<=s_last; ++sect) { - if (info->protect[sect]) { - prot++; - } - } - - if (prot) { - printf ("- Warning: %d protected sectors will not be erased!\n", - prot); - } else { - printf ("\n"); - } - - l_sect = -1; - - /* Disable interrupts which might cause a timeout here */ - flag = disable_interrupts(); - - /* Start erase on unprotected sectors */ - for (sect = s_first; sect<=s_last; sect++) { - if (info->protect[sect] == 0) { /* not protected */ - addr2 = (CONFIG_SYS_FLASH_WORD_SIZE *)(info->start[sect]); - if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) { - addr[CONFIG_SYS_FLASH_ADDR0] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00AA00AA; - addr[CONFIG_SYS_FLASH_ADDR1] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00550055; - addr[CONFIG_SYS_FLASH_ADDR0] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080; - addr[CONFIG_SYS_FLASH_ADDR0] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00AA00AA; - addr[CONFIG_SYS_FLASH_ADDR1] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00550055; - addr2[0] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00500050; /* block erase */ - for (i=0; i<50; i++) - udelay(1000); /* wait 1 ms */ - } else { - if (sect == s_first) { - addr[CONFIG_SYS_FLASH_ADDR0] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00AA00AA; - addr[CONFIG_SYS_FLASH_ADDR1] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00550055; - addr[CONFIG_SYS_FLASH_ADDR0] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080; - addr[CONFIG_SYS_FLASH_ADDR0] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00AA00AA; - addr[CONFIG_SYS_FLASH_ADDR1] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00550055; - } - addr2[0] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00300030; /* sector erase */ - } - l_sect = sect; - } - } - - /* re-enable interrupts if necessary */ - if (flag) - enable_interrupts(); - - /* wait at least 80us - let's wait 1 ms */ - udelay (1000); - - /* - * We wait for the last triggered sector - */ - if (l_sect < 0) - goto DONE; - - start = get_timer (0); - last = start; - addr = (CONFIG_SYS_FLASH_WORD_SIZE *)(info->start[l_sect]); - while ((addr[0] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) != (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) { - if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) { - printf ("Timeout\n"); - return 1; - } - /* show that we're waiting */ - if ((now - last) > 1000) { /* every second */ - putc ('.'); - last = now; - } - } - -DONE: - /* reset to read mode */ - addr = (CONFIG_SYS_FLASH_WORD_SIZE *)info->start[0]; - addr[0] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00F000F0; /* reset bank */ - - printf (" done\n"); - return 0; -} - -/*----------------------------------------------------------------------- - * Copy memory to flash, returns: - * 0 - OK - * 1 - write timeout - * 2 - Flash not erased - */ - -int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt) -{ - ulong cp, wp, data; - int i, l, rc; - - wp = (addr & ~3); /* get lower word aligned address */ - - /* - * handle unaligned start bytes - */ - if ((l = addr - wp) != 0) { - data = 0; - for (i=0, cp=wp; i<l; ++i, ++cp) { -#ifdef CONFIG_B2 - data = data | ((*(uchar *)cp)<<(8*i)); -#else - data = (data << 8) | (*(uchar *)cp); -#endif - } - for (; i<4 && cnt>0; ++i) { -#ifdef CONFIG_B2 - data = data | ((*src++)<<(8*i)); -#else - data = (data << 8) | *src++; -#endif - --cnt; - ++cp; - } - for (; cnt==0 && i<4; ++i, ++cp) { -#ifdef CONFIG_B2 - data = data | ((*(uchar *)cp)<<(8*i)); -#else - data = (data << 8) | (*(uchar *)cp); -#endif - } - - if ((rc = write_word(info, wp, data)) != 0) { - return (rc); - } - wp += 4; - } - - /* - * handle word aligned part - */ - while (cnt >= 4) { - data = 0; -#ifdef CONFIG_B2 - data = (*(ulong*)src); - src += 4; -#else - for (i=0; i<4; ++i) { - data = (data << 8) | *src++; - } -#endif - if ((rc = write_word(info, wp, data)) != 0) { - return (rc); - } - wp += 4; - cnt -= 4; - } - - if (cnt == 0) { - return (0); - } - - /* - * handle unaligned tail bytes - */ - data = 0; - for (i=0, cp=wp; i<4 && cnt>0; ++i, ++cp) { -#ifdef CONFIG_B2 - data = data | ((*src++)<<(8*i)); -#else - data = (data << 8) | *src++; -#endif - --cnt; - } - for (; i<4; ++i, ++cp) { -#ifdef CONFIG_B2 - data = data | ((*(uchar *)cp)<<(8*i)); -#else - data = (data << 8) | (*(uchar *)cp); -#endif - } - - return (write_word(info, wp, data)); -} - -/*----------------------------------------------------------------------- - * Write a word to Flash, returns: - * 0 - OK - * 1 - write timeout - * 2 - Flash not erased - */ -static int write_word (flash_info_t *info, ulong dest, ulong data) -{ - ulong *data_ptr = &data; - volatile CONFIG_SYS_FLASH_WORD_SIZE *addr2 = (CONFIG_SYS_FLASH_WORD_SIZE *)(info->start[0]); - volatile CONFIG_SYS_FLASH_WORD_SIZE *dest2 = (CONFIG_SYS_FLASH_WORD_SIZE *)dest; - volatile CONFIG_SYS_FLASH_WORD_SIZE *data2 = (CONFIG_SYS_FLASH_WORD_SIZE *)data_ptr; - ulong start; - int flag; - int i; - - /* Check if Flash is (sufficiently) erased */ - if ((*((volatile ulong *)dest) & data) != data) { - return (2); - } - /* Disable interrupts which might cause a timeout here */ - flag = disable_interrupts(); - - for (i=0; i<4/sizeof(CONFIG_SYS_FLASH_WORD_SIZE); i++) - { - addr2[CONFIG_SYS_FLASH_ADDR0] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00AA00AA; - addr2[CONFIG_SYS_FLASH_ADDR1] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00550055; - addr2[CONFIG_SYS_FLASH_ADDR0] = (CONFIG_SYS_FLASH_WORD_SIZE)0x00A000A0; - - dest2[i] = data2[i]; - - /* re-enable interrupts if necessary */ - if (flag) - enable_interrupts(); - - /* data polling for D7 */ - start = get_timer (0); - while ((dest2[i] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) != - (data2[i] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080)) { - if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) { - return (1); - } - } - } - - return (0); -} - -/*----------------------------------------------------------------------- - */ diff --git a/board/dave/common/fpga.c b/board/dave/common/fpga.c deleted file mode 100644 index 30bc196..0000000 --- a/board/dave/common/fpga.c +++ /dev/null @@ -1,256 +0,0 @@ -/* - * (C) Copyright 2001-2003 - * Matthias Fuchs, esd gmbh germany, matthias.fuchs@esd-electronics.com - * Stefan Roese, esd gmbh germany, stefan.roese@esd-electronics.com - * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#include <common.h> -#include <asm/processor.h> -#include <command.h> - -/* ------------------------------------------------------------------------- */ - -#ifdef FPGA_DEBUG -#define DBG(x...) printf(x) -#else -#define DBG(x...) -#endif /* DEBUG */ - -#define MAX_ONES 226 - -#ifdef CONFIG_SYS_FPGA_PRG -# define FPGA_PRG CONFIG_SYS_FPGA_PRG /* FPGA program pin (ppc output)*/ -# define FPGA_CLK CONFIG_SYS_FPGA_CLK /* FPGA clk pin (ppc output) */ -# define FPGA_DATA CONFIG_SYS_FPGA_DATA /* FPGA data pin (ppc output) */ -# define FPGA_DONE CONFIG_SYS_FPGA_DONE /* FPGA done pin (ppc input) */ -# define FPGA_INIT CONFIG_SYS_FPGA_INIT /* FPGA init pin (ppc input) */ -#else -# define FPGA_PRG 0x04000000 /* FPGA program pin (ppc output) */ -# define FPGA_CLK 0x02000000 /* FPGA clk pin (ppc output) */ -# define FPGA_DATA 0x01000000 /* FPGA data pin (ppc output) */ -# define FPGA_DONE 0x00800000 /* FPGA done pin (ppc input) */ -# define FPGA_INIT 0x00400000 /* FPGA init pin (ppc input) */ -#endif - -#define ERROR_FPGA_PRG_INIT_LOW -1 /* Timeout after PRG* asserted */ -#define ERROR_FPGA_PRG_INIT_HIGH -2 /* Timeout after PRG* deasserted */ -#define ERROR_FPGA_PRG_DONE -3 /* Timeout after programming */ - -#define SET_FPGA(data) out32(GPIO0_OR, data) - -#define FPGA_WRITE_1 { \ - SET_FPGA(FPGA_PRG | FPGA_DATA); /* set clock to 0 */ \ - SET_FPGA(FPGA_PRG | FPGA_DATA); /* set data to 1 */ \ - SET_FPGA(FPGA_PRG | FPGA_CLK | FPGA_DATA); /* set clock to 1 */ \ - SET_FPGA(FPGA_PRG | FPGA_CLK | FPGA_DATA);} /* set data to 1 */ - -#define FPGA_WRITE_0 { \ - SET_FPGA(FPGA_PRG | FPGA_DATA); /* set clock to 0 */ \ - SET_FPGA(FPGA_PRG); /* set data to 0 */ \ - SET_FPGA(FPGA_PRG | FPGA_CLK); /* set clock to 1 */ \ - SET_FPGA(FPGA_PRG | FPGA_CLK | FPGA_DATA);} /* set data to 1 */ - -#if 0 -static int fpga_boot (unsigned char *fpgadata, int size) -{ - int i, index, len; - int count; - -#ifdef CONFIG_SYS_FPGA_SPARTAN2 - int j; -#else - unsigned char b; - int bit; -#endif - - /* display infos on fpgaimage */ - index = 15; - for (i = 0; i < 4; i++) { - len = fpgadata[index]; - DBG ("FPGA: %s\n", &(fpgadata[index + 1])); - index += len + 3; - } - -#ifdef CONFIG_SYS_FPGA_SPARTAN2 - /* search for preamble 0xFFFFFFFF */ - while (1) { - if ((fpgadata[index] == 0xff) && (fpgadata[index + 1] == 0xff) - && (fpgadata[index + 2] == 0xff) - && (fpgadata[index + 3] == 0xff)) - break; /* preamble found */ - else - index++; - } -#else - /* search for preamble 0xFF2X */ - for (index = 0; index < size - 1; index++) { - if ((fpgadata[index] == 0xff) - && ((fpgadata[index + 1] & 0xf0) == 0x30)) - break; - } - index += 2; -#endif - - DBG ("FPGA: configdata starts at position 0x%x\n", index); - DBG ("FPGA: length of fpga-data %d\n", size - index); - - /* - * Setup port pins for fpga programming - */ - out32 (GPIO0_ODR, 0x00000000); /* no open drain pins */ - out32 (GPIO0_TCR, in32 (GPIO0_TCR) | FPGA_PRG | FPGA_CLK | FPGA_DATA); /* setup for output */ - out32 (GPIO0_OR, in32 (GPIO0_OR) | FPGA_PRG | FPGA_CLK | FPGA_DATA); /* set pins to high */ - - DBG ("%s, ", - ((in32 (GPIO0_IR) & FPGA_DONE) == 0) ? "NOT DONE" : "DONE"); - DBG ("%s\n", - ((in32 (GPIO0_IR) & FPGA_INIT) == 0) ? "NOT INIT" : "INIT"); - - /* - * Init fpga by asserting and deasserting PROGRAM* - */ - SET_FPGA (FPGA_CLK | FPGA_DATA); - - /* Wait for FPGA init line low */ - count = 0; - while (in32 (GPIO0_IR) & FPGA_INIT) { - udelay (1000); /* wait 1ms */ - /* Check for timeout - 100us max, so use 3ms */ - if (count++ > 3) { - DBG ("FPGA: Booting failed!\n"); - return ERROR_FPGA_PRG_INIT_LOW; - } - } - - DBG ("%s, ", - ((in32 (GPIO0_IR) & FPGA_DONE) == 0) ? "NOT DONE" : "DONE"); - DBG ("%s\n", - ((in32 (GPIO0_IR) & FPGA_INIT) == 0) ? "NOT INIT" : "INIT"); - - /* deassert PROGRAM* */ - SET_FPGA (FPGA_PRG | FPGA_CLK | FPGA_DATA); - - /* Wait for FPGA end of init period . */ - count = 0; - while (!(in32 (GPIO0_IR) & FPGA_INIT)) { - udelay (1000); /* wait 1ms */ - /* Check for timeout */ - if (count++ > 3) { - DBG ("FPGA: Booting failed!\n"); - return ERROR_FPGA_PRG_INIT_HIGH; - } - } - - DBG ("%s, ", - ((in32 (GPIO0_IR) & FPGA_DONE) == 0) ? "NOT DONE" : "DONE"); - DBG ("%s\n", - ((in32 (GPIO0_IR) & FPGA_INIT) == 0) ? "NOT INIT" : "INIT"); - - DBG ("write configuration data into fpga\n"); - /* write configuration-data into fpga... */ - -#ifdef CONFIG_SYS_FPGA_SPARTAN2 - /* - * Load uncompressed image into fpga - */ - for (i = index; i < size; i++) { - for (j = 0; j < 8; j++) { - if ((fpgadata[i] & 0x80) == 0x80) { - FPGA_WRITE_1; - } else { - FPGA_WRITE_0; - } - fpgadata[i] <<= 1; - } - } -#else /* ! CONFIG_SYS_FPGA_SPARTAN2 */ - /* send 0xff 0x20 */ - FPGA_WRITE_1; - FPGA_WRITE_1; - FPGA_WRITE_1; - FPGA_WRITE_1; - FPGA_WRITE_1; - FPGA_WRITE_1; - FPGA_WRITE_1; - FPGA_WRITE_1; - FPGA_WRITE_0; - FPGA_WRITE_0; - FPGA_WRITE_1; - FPGA_WRITE_0; - FPGA_WRITE_0; - FPGA_WRITE_0; - FPGA_WRITE_0; - FPGA_WRITE_0; - - /* - ** Bit_DeCompression - ** Code 1 .. maxOnes : n '1's followed by '0' - ** maxOnes + 1 .. maxOnes + 1 : n - 1 '1's no '0' - ** maxOnes + 2 .. 254 : n - (maxOnes + 2) '0's followed by '1' - ** 255 : '1' - */ - - for (i = index; i < size; i++) { - b = fpgadata[i]; - if ((b >= 1) && (b <= MAX_ONES)) { - for (bit = 0; bit < b; bit++) { - FPGA_WRITE_1; - } - FPGA_WRITE_0; - } else if (b == (MAX_ONES + 1)) { - for (bit = 1; bit < b; bit++) { - FPGA_WRITE_1; - } - } else if ((b >= (MAX_ONES + 2)) && (b <= 254)) { - for (bit = 0; bit < (b - (MAX_ONES + 2)); bit++) { - FPGA_WRITE_0; - } - FPGA_WRITE_1; - } else if (b == 255) { - FPGA_WRITE_1; - } - } -#endif /* CONFIG_SYS_FPGA_SPARTAN2 */ - - DBG ("%s, ", - ((in32 (GPIO0_IR) & FPGA_DONE) == 0) ? "NOT DONE" : "DONE"); - DBG ("%s\n", - ((in32 (GPIO0_IR) & FPGA_INIT) == 0) ? "NOT INIT" : "INIT"); - - /* - * Check if fpga's DONE signal - correctly booted ? - */ - - /* Wait for FPGA end of programming period . */ - count = 0; - while (!(in32 (GPIO0_IR) & FPGA_DONE)) { - udelay (1000); /* wait 1ms */ - /* Check for timeout */ - if (count++ > 3) { - DBG ("FPGA: Booting failed!\n"); - return ERROR_FPGA_PRG_DONE; - } - } - - DBG ("FPGA: Booting successful!\n"); - return 0; -} -#endif /* 0 */ diff --git a/board/dave/common/pci.c b/board/dave/common/pci.c deleted file mode 100644 index 3036799..0000000 --- a/board/dave/common/pci.c +++ /dev/null @@ -1,202 +0,0 @@ -/* - * (C) Copyright 2001 - * Stefan Roese, esd gmbh germany, stefan.roese@esd-electronics.com - * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#include <common.h> -#include <asm/ppc4xx.h> -#include <asm/processor.h> -#include <pci.h> - - -u_long pci9054_iobase; - - -#define PCI_PRIMARY_CAR (0x500000dc) /* PCI config address reg */ -#define PCI_PRIMARY_CDR (0x80000000) /* PCI config data reg */ - - -/*-----------------------------------------------------------------------------+ -| Subroutine: pci9054_read_config_dword -| Description: Read a PCI configuration register -| Inputs: -| hose PCI Controller -| dev PCI Bus+Device+Function number -| offset Configuration register number -| value Address of the configuration register value -| Return value: -| 0 Successful -+-----------------------------------------------------------------------------*/ -int pci9054_read_config_dword(struct pci_controller *hose, - pci_dev_t dev, int offset, u32* value) -{ - unsigned long conAdrVal; - unsigned long val; - - /* generate coded value for CON_ADR register */ - conAdrVal = dev | (offset & 0xfc) | 0x80000000; - - /* Load the CON_ADR (CAR) value first, then read from CON_DATA (CDR) */ - *(unsigned long *)PCI_PRIMARY_CAR = conAdrVal; - - /* Note: *pResult comes back as -1 if machine check happened */ - val = in32r(PCI_PRIMARY_CDR); - - *value = (unsigned long) val; - - out32r(PCI_PRIMARY_CAR, 0); - - if ((*(unsigned long *)0x50000304) & 0x60000000) - { - /* clear pci master/target abort bits */ - *(unsigned long *)0x50000304 = *(unsigned long *)0x50000304; - } - - return 0; -} - -/*-----------------------------------------------------------------------------+ -| Subroutine: pci9054_write_config_dword -| Description: Write a PCI configuration register. -| Inputs: -| hose PCI Controller -| dev PCI Bus+Device+Function number -| offset Configuration register number -| Value Configuration register value -| Return value: -| 0 Successful -| Updated for pass2 errata #6. Need to disable interrupts and clear the -| PCICFGADR reg after writing the PCICFGDATA reg. -+-----------------------------------------------------------------------------*/ -int pci9054_write_config_dword(struct pci_controller *hose, - pci_dev_t dev, int offset, u32 value) -{ - unsigned long conAdrVal; - - conAdrVal = dev | (offset & 0xfc) | 0x80000000; - - *(unsigned long *)PCI_PRIMARY_CAR = conAdrVal; - - out32r(PCI_PRIMARY_CDR, value); - - out32r(PCI_PRIMARY_CAR, 0); - - /* clear pci master/target abort bits */ - *(unsigned long *)0x50000304 = *(unsigned long *)0x50000304; - - return (0); -} - -/*----------------------------------------------------------------------- - */ - -#ifdef CONFIG_DASA_SIM -static void pci_dasa_sim_config_pci9054(struct pci_controller *hose, pci_dev_t dev, - struct pci_config_table *_) -{ - unsigned int iobase; - unsigned short status = 0; - unsigned char timer; - - /* - * Configure PLX PCI9054 - */ - pci_read_config_word(CONFIG_SYS_PCI9054_DEV_FN, PCI_COMMAND, &status); - status |= PCI_COMMAND_MASTER | PCI_COMMAND_IO | PCI_COMMAND_MEMORY; - pci_write_config_word(CONFIG_SYS_PCI9054_DEV_FN, PCI_COMMAND, status); - - /* Check the latency timer for values >= 0x60. - */ - pci_read_config_byte(CONFIG_SYS_PCI9054_DEV_FN, PCI_LATENCY_TIMER, &timer); - if (timer < 0x60) - { - pci_write_config_byte(CONFIG_SYS_PCI9054_DEV_FN, PCI_LATENCY_TIMER, 0x60); - } - - /* Set I/O base register. - */ - pci_write_config_dword(CONFIG_SYS_PCI9054_DEV_FN, PCI_BASE_ADDRESS_0, CONFIG_SYS_PCI9054_IOBASE); - pci_read_config_dword(CONFIG_SYS_PCI9054_DEV_FN, PCI_BASE_ADDRESS_0, &iobase); - - pci9054_iobase = pci_mem_to_phys(CONFIG_SYS_PCI9054_DEV_FN, iobase & PCI_BASE_ADDRESS_MEM_MASK); - - if (pci9054_iobase == 0xffffffff) - { - printf("Error: Can not set I/O base register.\n"); - return; - } -} -#endif - -static struct pci_config_table pci9054_config_table[] = { -#ifndef CONFIG_PCI_PNP - { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, - PCI_BUS(CONFIG_SYS_ETH_DEV_FN), PCI_DEV(CONFIG_SYS_ETH_DEV_FN), PCI_FUNC(CONFIG_SYS_ETH_DEV_FN), - pci_cfgfunc_config_device, { CONFIG_SYS_ETH_IOBASE, - CONFIG_SYS_ETH_IOBASE, - PCI_COMMAND_IO | PCI_COMMAND_MASTER }}, -#ifdef CONFIG_DASA_SIM - { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, - PCI_BUS(CONFIG_SYS_PCI9054_DEV_FN), PCI_DEV(CONFIG_SYS_PCI9054_DEV_FN), PCI_FUNC(CONFIG_SYS_PCI9054_DEV_FN), - pci_dasa_sim_config_pci9054 }, -#endif -#endif - { } -}; - -static struct pci_controller pci9054_hose = { - config_table: pci9054_config_table, -}; - -void pci_init(void) -{ - struct pci_controller *hose = &pci9054_hose; - - /* - * Register the hose - */ - hose->first_busno = 0; - hose->last_busno = 0xff; - - /* System memory space */ - pci_set_region(hose->regions + 0, - 0x00000000, 0x00000000, 0x01000000, - PCI_REGION_MEM | PCI_REGION_SYS_MEMORY); - - /* PCI Memory space */ - pci_set_region(hose->regions + 1, - 0x00000000, 0xc0000000, 0x10000000, - PCI_REGION_MEM); - - pci_set_ops(hose, - pci_hose_read_config_byte_via_dword, - pci_hose_read_config_word_via_dword, - pci9054_read_config_dword, - pci_hose_write_config_byte_via_dword, - pci_hose_write_config_word_via_dword, - pci9054_write_config_dword); - - hose->region_count = 2; - - pci_register_hose(hose); - - hose->last_busno = pci_hose_scan(hose); -} |