aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2009-04-30 11:36:52 -0400
committerSteve French <sfrench@us.ibm.com>2009-04-30 11:36:52 -0400
commit912bc6ae3de99c7bada4577d4341ace4ee59b5be (patch)
tree28fd1a4bb9e4b05aa833285b46df169f12c0e24d /drivers
parentd37dc42ab6f040b8f0f2962ab219c5b2accf748d (diff)
parent091438dd5668396328a3419abcbc6591159eb8d1 (diff)
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'drivers')
-rw-r--r--drivers/Makefile4
-rw-r--r--drivers/acpi/acpica/hwsleep.c43
-rw-r--r--drivers/acpi/acpica/hwvalid.c86
-rw-r--r--drivers/acpi/acpica/rscreate.c27
-rw-r--r--drivers/acpi/button.c140
-rw-r--r--drivers/acpi/ec.c1
-rw-r--r--drivers/acpi/osl.c4
-rw-r--r--drivers/acpi/processor_idle.c28
-rw-r--r--drivers/acpi/sleep.c27
-rw-r--r--drivers/acpi/system.c11
-rw-r--r--drivers/acpi/thermal.c2
-rw-r--r--drivers/acpi/video.c54
-rw-r--r--drivers/base/dd.c1
-rw-r--r--drivers/block/hd.c17
-rw-r--r--drivers/block/mg_disk.c19
-rw-r--r--drivers/block/umem.c1
-rw-r--r--drivers/char/hpet.c2
-rw-r--r--drivers/char/hw_random/virtio-rng.c4
-rw-r--r--drivers/char/ipmi/ipmi_msghandler.c211
-rw-r--r--drivers/char/ipmi/ipmi_si_intf.c150
-rw-r--r--drivers/clocksource/acpi_pm.c12
-rw-r--r--drivers/clocksource/cyclone.c2
-rw-r--r--drivers/clocksource/scx200_hrt.c2
-rw-r--r--drivers/clocksource/tcb_clksrc.c2
-rw-r--r--drivers/edac/mpc85xx_edac.c2
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c8
-rw-r--r--drivers/gpu/drm/i915/i915_drv.c2
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h8
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c4
-rw-r--r--drivers/gpu/drm/i915/i915_gem_tiling.c1
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c2
-rw-r--r--drivers/gpu/drm/i915/i915_opregion.c15
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h1
-rw-r--r--drivers/gpu/drm/i915/intel_display.c9
-rw-r--r--drivers/ide/ide-cd.c2
-rw-r--r--drivers/ide/ide-gd.c17
-rw-r--r--drivers/ide/palm_bk3710.c93
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_cm.c8
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_qp.c1
-rw-r--r--drivers/infiniband/hw/mthca/mthca_cmd.c16
-rw-r--r--drivers/infiniband/hw/nes/nes.h4
-rw-r--r--drivers/infiniband/hw/nes/nes_cm.c84
-rw-r--r--drivers/infiniband/hw/nes/nes_cm.h1
-rw-r--r--drivers/infiniband/hw/nes/nes_hw.c30
-rw-r--r--drivers/infiniband/hw/nes/nes_verbs.c67
-rw-r--r--drivers/infiniband/hw/nes/nes_verbs.h1
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_ib.c6
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_main.c5
-rw-r--r--drivers/input/mouse/maplemouse.c43
-rw-r--r--drivers/input/serio/hp_sdc.c24
-rw-r--r--drivers/isdn/capi/kcapi.c171
-rw-r--r--drivers/macintosh/Kconfig2
-rw-r--r--drivers/macintosh/mediabay.c3
-rw-r--r--drivers/media/radio/radio-si470x.c2
-rw-r--r--drivers/media/video/au0828/au0828-core.c6
-rw-r--r--drivers/media/video/cx18/cx18-audio.c2
-rw-r--r--drivers/media/video/cx18/cx18-i2c.c16
-rw-r--r--drivers/media/video/cx231xx/Kconfig44
-rw-r--r--drivers/media/video/cx23885/cx23885-cards.c4
-rw-r--r--drivers/media/video/cx23885/cx23885-dvb.c1
-rw-r--r--drivers/media/video/mx3_camera.c4
-rw-r--r--drivers/media/video/pwc/pwc-ctrl.c238
-rw-r--r--drivers/media/video/s2255drv.c2
-rw-r--r--drivers/media/video/saa5246a.c3
-rw-r--r--drivers/media/video/saa5249.c4
-rw-r--r--drivers/message/fusion/mptbase.c2
-rw-r--r--drivers/misc/sgi-gru/grufile.c2
-rw-r--r--drivers/misc/sgi-xp/xp_main.c12
-rw-r--r--drivers/mtd/nand/cafe_nand.c2
-rw-r--r--drivers/net/8139too.c10
-rw-r--r--drivers/net/Kconfig4
-rw-r--r--drivers/net/cxgb3/cxgb3_main.c44
-rw-r--r--drivers/net/cxgb3/t3_hw.c11
-rw-r--r--drivers/net/e100.c30
-rw-r--r--drivers/net/e1000/e1000_main.c6
-rw-r--r--drivers/net/e1000e/netdev.c8
-rw-r--r--drivers/net/forcedeth.c31
-rw-r--r--drivers/net/ixgbe/ixgbe_common.c51
-rw-r--r--drivers/net/ixgbe/ixgbe_dcb_82599.c28
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c64
-rw-r--r--drivers/net/macb.c28
-rw-r--r--drivers/net/macvlan.c9
-rw-r--r--drivers/net/mlx4/en_main.c5
-rw-r--r--drivers/net/mlx4/en_netdev.c23
-rw-r--r--drivers/net/mlx4/en_port.c45
-rw-r--r--drivers/net/mlx4/en_resources.c6
-rw-r--r--drivers/net/mlx4/en_rx.c16
-rw-r--r--drivers/net/mlx4/en_tx.c1
-rw-r--r--drivers/net/mlx4/main.c2
-rw-r--r--drivers/net/mlx4/mlx4_en.h1
-rw-r--r--drivers/net/pcmcia/pcnet_cs.c2
-rw-r--r--drivers/net/ps3_gelic_wireless.c3
-rw-r--r--drivers/net/tg3.c26
-rw-r--r--drivers/net/tun.c47
-rw-r--r--drivers/net/ucc_geth.c3
-rw-r--r--drivers/net/usb/pegasus.c1
-rw-r--r--drivers/net/veth.c41
-rw-r--r--drivers/net/wireless/airo.c2
-rw-r--r--drivers/net/wireless/ar9170/hw.h8
-rw-r--r--drivers/net/wireless/ar9170/usb.c114
-rw-r--r--drivers/net/wireless/at76c50x-usb.c2
-rw-r--r--drivers/net/wireless/ath9k/recv.c4
-rw-r--r--drivers/net/wireless/atmel.c1
-rw-r--r--drivers/net/wireless/b43/dma.c50
-rw-r--r--drivers/net/wireless/b43/main.c5
-rw-r--r--drivers/net/wireless/b43/phy_common.c16
-rw-r--r--drivers/net/wireless/b43/phy_common.h4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.h1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c11
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-csr.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-tx.c99
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c152
-rw-r--r--drivers/net/wireless/libertas/rx.c2
-rw-r--r--drivers/net/wireless/mwl8k.c7
-rw-r--r--drivers/net/wireless/orinoco/hw.c8
-rw-r--r--drivers/net/wireless/p54/p54.h12
-rw-r--r--drivers/net/wireless/p54/p54common.c2
-rw-r--r--drivers/net/wireless/p54/p54spi.c25
-rw-r--r--drivers/net/wireless/p54/p54usb.c1
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00dev.c4
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00pci.c18
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00usb.c18
-rw-r--r--drivers/net/wireless/rt2x00/rt73usb.c2
-rw-r--r--drivers/pci/access.c4
-rw-r--r--drivers/pci/htirq.c1
-rw-r--r--drivers/pci/pci-sysfs.c12
-rw-r--r--drivers/pci/pci.c70
-rw-r--r--drivers/pci/probe.c6
-rw-r--r--drivers/pci/quirks.c1
-rw-r--r--drivers/pci/setup-bus.c6
-rw-r--r--drivers/pci/slot.c4
-rw-r--r--drivers/pcmcia/pxa2xx_sharpsl.c3
-rw-r--r--drivers/platform/x86/sony-laptop.c27
-rw-r--r--drivers/platform/x86/thinkpad_acpi.c81
-rw-r--r--drivers/regulator/bq24022.c3
-rw-r--r--drivers/regulator/core.c19
-rw-r--r--drivers/regulator/virtual.c8
-rw-r--r--drivers/rtc/Kconfig2
-rw-r--r--drivers/rtc/rtc-cmos.c20
-rw-r--r--drivers/rtc/rtc-sh.c67
-rw-r--r--drivers/s390/char/tape.h2
-rw-r--r--drivers/s390/char/tape_34xx.c8
-rw-r--r--drivers/s390/char/tape_3590.c8
-rw-r--r--drivers/s390/char/tape_core.c5
-rw-r--r--drivers/scsi/a4000t.c2
-rw-r--r--drivers/scsi/scsi_scan.c2
-rw-r--r--drivers/scsi/scsi_wait_scan.c11
-rw-r--r--drivers/serial/8250_pci.c2
-rw-r--r--drivers/serial/bfin_5xx.c6
-rw-r--r--drivers/spi/pxa2xx_spi.c13
-rw-r--r--drivers/staging/go7007/go7007-driver.c11
-rw-r--r--drivers/staging/go7007/go7007-i2c.c83
-rw-r--r--drivers/staging/go7007/go7007-priv.h1
-rw-r--r--drivers/staging/go7007/go7007-usb.c14
-rw-r--r--drivers/staging/go7007/s2250-board.c71
-rw-r--r--drivers/staging/go7007/wis-i2c.h9
-rw-r--r--drivers/staging/go7007/wis-ov7640.c56
-rw-r--r--drivers/staging/go7007/wis-saa7113.c60
-rw-r--r--drivers/staging/go7007/wis-saa7115.c60
-rw-r--r--drivers/staging/go7007/wis-sony-tuner.c60
-rw-r--r--drivers/staging/go7007/wis-tw2804.c57
-rw-r--r--drivers/staging/go7007/wis-tw9903.c60
-rw-r--r--drivers/staging/go7007/wis-uda1342.c52
-rw-r--r--drivers/usb/class/cdc-wdm.c27
-rw-r--r--drivers/usb/core/buffer.c2
-rw-r--r--drivers/usb/gadget/ci13xxx_udc.c5
-rw-r--r--drivers/usb/gadget/file_storage.c20
-rw-r--r--drivers/usb/gadget/omap_udc.c3
-rw-r--r--drivers/usb/host/ehci-sched.c2
-rw-r--r--drivers/usb/musb/musb_core.c2
-rw-r--r--drivers/usb/musb/omap2430.c1
-rw-r--r--drivers/usb/musb/tusb6010.c1
-rw-r--r--drivers/usb/musb/tusb6010.h1
-rw-r--r--drivers/usb/otg/otg.c3
-rw-r--r--drivers/usb/serial/cyberjack.c7
-rw-r--r--drivers/usb/serial/cypress_m8.c4
-rw-r--r--drivers/usb/serial/empeg.c6
-rw-r--r--drivers/usb/serial/garmin_gps.c8
-rw-r--r--drivers/usb/serial/generic.c6
-rw-r--r--drivers/usb/serial/io_edgeport.c8
-rw-r--r--drivers/usb/serial/io_ti.c8
-rw-r--r--drivers/usb/serial/ipaq.c6
-rw-r--r--drivers/usb/serial/ipw.c3
-rw-r--r--drivers/usb/serial/iuu_phoenix.c1
-rw-r--r--drivers/usb/serial/kobil_sct.c6
-rw-r--r--drivers/usb/serial/mos7720.c7
-rw-r--r--drivers/usb/serial/mos7840.c43
-rw-r--r--drivers/usb/serial/opticon.c8
-rw-r--r--drivers/usb/serial/option.c3
-rw-r--r--drivers/usb/serial/sierra.c24
-rw-r--r--drivers/usb/serial/ti_usb_3410_5052.c14
-rw-r--r--drivers/usb/serial/usb-serial.c104
-rw-r--r--drivers/usb/serial/visor.c8
-rw-r--r--drivers/usb/storage/unusual_devs.h6
-rw-r--r--drivers/video/asiliantfb.c1
-rw-r--r--drivers/video/logo/logo_linux_clut224.ppm4428
-rw-r--r--drivers/video/logo/logo_linux_vga16.ppm4339
-rw-r--r--drivers/video/pxafb.c16
-rw-r--r--drivers/watchdog/orion5x_wdt.c1
201 files changed, 5653 insertions, 7412 deletions
diff --git a/drivers/Makefile b/drivers/Makefile
index 2618a6169a13..1266ead6ace0 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -36,7 +36,7 @@ obj-$(CONFIG_FB_INTEL) += video/intelfb/
36 36
37obj-y += serial/ 37obj-y += serial/
38obj-$(CONFIG_PARPORT) += parport/ 38obj-$(CONFIG_PARPORT) += parport/
39obj-y += base/ block/ misc/ mfd/ media/ 39obj-y += base/ block/ misc/ mfd/
40obj-$(CONFIG_NUBUS) += nubus/ 40obj-$(CONFIG_NUBUS) += nubus/
41obj-y += macintosh/ 41obj-y += macintosh/
42obj-$(CONFIG_IDE) += ide/ 42obj-$(CONFIG_IDE) += ide/
@@ -71,7 +71,7 @@ obj-$(CONFIG_GAMEPORT) += input/gameport/
71obj-$(CONFIG_INPUT) += input/ 71obj-$(CONFIG_INPUT) += input/
72obj-$(CONFIG_I2O) += message/ 72obj-$(CONFIG_I2O) += message/
73obj-$(CONFIG_RTC_LIB) += rtc/ 73obj-$(CONFIG_RTC_LIB) += rtc/
74obj-y += i2c/ 74obj-y += i2c/ media/
75obj-$(CONFIG_W1) += w1/ 75obj-$(CONFIG_W1) += w1/
76obj-$(CONFIG_POWER_SUPPLY) += power/ 76obj-$(CONFIG_POWER_SUPPLY) += power/
77obj-$(CONFIG_HWMON) += hwmon/ 77obj-$(CONFIG_HWMON) += hwmon/
diff --git a/drivers/acpi/acpica/hwsleep.c b/drivers/acpi/acpica/hwsleep.c
index baa5fc05e124..db307a356f08 100644
--- a/drivers/acpi/acpica/hwsleep.c
+++ b/drivers/acpi/acpica/hwsleep.c
@@ -211,6 +211,12 @@ acpi_status acpi_enter_sleep_state_prep(u8 sleep_state)
211 211
212ACPI_EXPORT_SYMBOL(acpi_enter_sleep_state_prep) 212ACPI_EXPORT_SYMBOL(acpi_enter_sleep_state_prep)
213 213
214static unsigned int gts, bfs;
215module_param(gts, uint, 0644);
216module_param(bfs, uint, 0644);
217MODULE_PARM_DESC(gts, "Enable evaluation of _GTS on suspend.");
218MODULE_PARM_DESC(bfs, "Enable evaluation of _BFS on resume".);
219
214/******************************************************************************* 220/*******************************************************************************
215 * 221 *
216 * FUNCTION: acpi_enter_sleep_state 222 * FUNCTION: acpi_enter_sleep_state
@@ -278,16 +284,18 @@ acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state)
278 return_ACPI_STATUS(status); 284 return_ACPI_STATUS(status);
279 } 285 }
280 286
281 /* Execute the _GTS method */ 287 if (gts) {
288 /* Execute the _GTS method */
282 289
283 arg_list.count = 1; 290 arg_list.count = 1;
284 arg_list.pointer = &arg; 291 arg_list.pointer = &arg;
285 arg.type = ACPI_TYPE_INTEGER; 292 arg.type = ACPI_TYPE_INTEGER;
286 arg.integer.value = sleep_state; 293 arg.integer.value = sleep_state;
287 294
288 status = acpi_evaluate_object(NULL, METHOD_NAME__GTS, &arg_list, NULL); 295 status = acpi_evaluate_object(NULL, METHOD_NAME__GTS, &arg_list, NULL);
289 if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) { 296 if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
290 return_ACPI_STATUS(status); 297 return_ACPI_STATUS(status);
298 }
291 } 299 }
292 300
293 /* Get current value of PM1A control */ 301 /* Get current value of PM1A control */
@@ -513,18 +521,19 @@ acpi_status acpi_leave_sleep_state_prep(u8 sleep_state)
513 } 521 }
514 } 522 }
515 523
516 /* Execute the _BFS method */ 524 if (bfs) {
525 /* Execute the _BFS method */
517 526
518 arg_list.count = 1; 527 arg_list.count = 1;
519 arg_list.pointer = &arg; 528 arg_list.pointer = &arg;
520 arg.type = ACPI_TYPE_INTEGER; 529 arg.type = ACPI_TYPE_INTEGER;
521 arg.integer.value = sleep_state; 530 arg.integer.value = sleep_state;
522 531
523 status = acpi_evaluate_object(NULL, METHOD_NAME__BFS, &arg_list, NULL); 532 status = acpi_evaluate_object(NULL, METHOD_NAME__BFS, &arg_list, NULL);
524 if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) { 533 if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
525 ACPI_EXCEPTION((AE_INFO, status, "During Method _BFS")); 534 ACPI_EXCEPTION((AE_INFO, status, "During Method _BFS"));
535 }
526 } 536 }
527
528 return_ACPI_STATUS(status); 537 return_ACPI_STATUS(status);
529} 538}
530 539
diff --git a/drivers/acpi/acpica/hwvalid.c b/drivers/acpi/acpica/hwvalid.c
index 7737afb157c3..ec33f270c5b7 100644
--- a/drivers/acpi/acpica/hwvalid.c
+++ b/drivers/acpi/acpica/hwvalid.c
@@ -90,6 +90,7 @@ static const struct acpi_port_info acpi_protected_ports[] = {
90 {"PIT2", 0x0048, 0x004B, ACPI_OSI_WIN_XP}, 90 {"PIT2", 0x0048, 0x004B, ACPI_OSI_WIN_XP},
91 {"RTC", 0x0070, 0x0071, ACPI_OSI_WIN_XP}, 91 {"RTC", 0x0070, 0x0071, ACPI_OSI_WIN_XP},
92 {"CMOS", 0x0074, 0x0076, ACPI_OSI_WIN_XP}, 92 {"CMOS", 0x0074, 0x0076, ACPI_OSI_WIN_XP},
93 {"DMA1", 0x0081, 0x0083, ACPI_OSI_WIN_XP},
93 {"DMA1L", 0x0087, 0x0087, ACPI_OSI_WIN_XP}, 94 {"DMA1L", 0x0087, 0x0087, ACPI_OSI_WIN_XP},
94 {"DMA2", 0x0089, 0x008B, ACPI_OSI_WIN_XP}, 95 {"DMA2", 0x0089, 0x008B, ACPI_OSI_WIN_XP},
95 {"DMA2L", 0x008F, 0x008F, ACPI_OSI_WIN_XP}, 96 {"DMA2L", 0x008F, 0x008F, ACPI_OSI_WIN_XP},
@@ -151,7 +152,7 @@ acpi_hw_validate_io_request(acpi_io_address address, u32 bit_width)
151 ACPI_ERROR((AE_INFO, 152 ACPI_ERROR((AE_INFO,
152 "Illegal I/O port address/length above 64K: 0x%p/%X", 153 "Illegal I/O port address/length above 64K: 0x%p/%X",
153 ACPI_CAST_PTR(void, address), byte_width)); 154 ACPI_CAST_PTR(void, address), byte_width));
154 return_ACPI_STATUS(AE_AML_ILLEGAL_ADDRESS); 155 return_ACPI_STATUS(AE_LIMIT);
155 } 156 }
156 157
157 /* Exit if requested address is not within the protected port table */ 158 /* Exit if requested address is not within the protected port table */
@@ -178,11 +179,12 @@ acpi_hw_validate_io_request(acpi_io_address address, u32 bit_width)
178 /* Port illegality may depend on the _OSI calls made by the BIOS */ 179 /* Port illegality may depend on the _OSI calls made by the BIOS */
179 180
180 if (acpi_gbl_osi_data >= port_info->osi_dependency) { 181 if (acpi_gbl_osi_data >= port_info->osi_dependency) {
181 ACPI_ERROR((AE_INFO, 182 ACPI_DEBUG_PRINT((ACPI_DB_IO,
182 "Denied AML access to port 0x%p/%X (%s 0x%.4X-0x%.4X)", 183 "Denied AML access to port 0x%p/%X (%s 0x%.4X-0x%.4X)",
183 ACPI_CAST_PTR(void, address), 184 ACPI_CAST_PTR(void, address),
184 byte_width, port_info->name, 185 byte_width, port_info->name,
185 port_info->start, port_info->end)); 186 port_info->start,
187 port_info->end));
186 188
187 return_ACPI_STATUS(AE_AML_ILLEGAL_ADDRESS); 189 return_ACPI_STATUS(AE_AML_ILLEGAL_ADDRESS);
188 } 190 }
@@ -206,7 +208,7 @@ acpi_hw_validate_io_request(acpi_io_address address, u32 bit_width)
206 * Value Where value is placed 208 * Value Where value is placed
207 * Width Number of bits 209 * Width Number of bits
208 * 210 *
209 * RETURN: Value read from port 211 * RETURN: Status and value read from port
210 * 212 *
211 * DESCRIPTION: Read data from an I/O port or register. This is a front-end 213 * DESCRIPTION: Read data from an I/O port or register. This is a front-end
212 * to acpi_os_read_port that performs validation on both the port 214 * to acpi_os_read_port that performs validation on both the port
@@ -217,14 +219,43 @@ acpi_hw_validate_io_request(acpi_io_address address, u32 bit_width)
217acpi_status acpi_hw_read_port(acpi_io_address address, u32 *value, u32 width) 219acpi_status acpi_hw_read_port(acpi_io_address address, u32 *value, u32 width)
218{ 220{
219 acpi_status status; 221 acpi_status status;
222 u32 one_byte;
223 u32 i;
224
225 /* Validate the entire request and perform the I/O */
220 226
221 status = acpi_hw_validate_io_request(address, width); 227 status = acpi_hw_validate_io_request(address, width);
222 if (ACPI_FAILURE(status)) { 228 if (ACPI_SUCCESS(status)) {
229 status = acpi_os_read_port(address, value, width);
223 return status; 230 return status;
224 } 231 }
225 232
226 status = acpi_os_read_port(address, value, width); 233 if (status != AE_AML_ILLEGAL_ADDRESS) {
227 return status; 234 return status;
235 }
236
237 /*
238 * There has been a protection violation within the request. Fall
239 * back to byte granularity port I/O and ignore the failing bytes.
240 * This provides Windows compatibility.
241 */
242 for (i = 0, *value = 0; i < width; i += 8) {
243
244 /* Validate and read one byte */
245
246 if (acpi_hw_validate_io_request(address, 8) == AE_OK) {
247 status = acpi_os_read_port(address, &one_byte, 8);
248 if (ACPI_FAILURE(status)) {
249 return status;
250 }
251
252 *value |= (one_byte << i);
253 }
254
255 address++;
256 }
257
258 return AE_OK;
228} 259}
229 260
230/****************************************************************************** 261/******************************************************************************
@@ -235,7 +266,7 @@ acpi_status acpi_hw_read_port(acpi_io_address address, u32 *value, u32 width)
235 * Value Value to write 266 * Value Value to write
236 * Width Number of bits 267 * Width Number of bits
237 * 268 *
238 * RETURN: None 269 * RETURN: Status
239 * 270 *
240 * DESCRIPTION: Write data to an I/O port or register. This is a front-end 271 * DESCRIPTION: Write data to an I/O port or register. This is a front-end
241 * to acpi_os_write_port that performs validation on both the port 272 * to acpi_os_write_port that performs validation on both the port
@@ -246,12 +277,39 @@ acpi_status acpi_hw_read_port(acpi_io_address address, u32 *value, u32 width)
246acpi_status acpi_hw_write_port(acpi_io_address address, u32 value, u32 width) 277acpi_status acpi_hw_write_port(acpi_io_address address, u32 value, u32 width)
247{ 278{
248 acpi_status status; 279 acpi_status status;
280 u32 i;
281
282 /* Validate the entire request and perform the I/O */
249 283
250 status = acpi_hw_validate_io_request(address, width); 284 status = acpi_hw_validate_io_request(address, width);
251 if (ACPI_FAILURE(status)) { 285 if (ACPI_SUCCESS(status)) {
286 status = acpi_os_write_port(address, value, width);
252 return status; 287 return status;
253 } 288 }
254 289
255 status = acpi_os_write_port(address, value, width); 290 if (status != AE_AML_ILLEGAL_ADDRESS) {
256 return status; 291 return status;
292 }
293
294 /*
295 * There has been a protection violation within the request. Fall
296 * back to byte granularity port I/O and ignore the failing bytes.
297 * This provides Windows compatibility.
298 */
299 for (i = 0; i < width; i += 8) {
300
301 /* Validate and write one byte */
302
303 if (acpi_hw_validate_io_request(address, 8) == AE_OK) {
304 status =
305 acpi_os_write_port(address, (value >> i) & 0xFF, 8);
306 if (ACPI_FAILURE(status)) {
307 return status;
308 }
309 }
310
311 address++;
312 }
313
314 return AE_OK;
257} 315}
diff --git a/drivers/acpi/acpica/rscreate.c b/drivers/acpi/acpica/rscreate.c
index 663f692fffcf..a3c23d686d5f 100644
--- a/drivers/acpi/acpica/rscreate.c
+++ b/drivers/acpi/acpica/rscreate.c
@@ -191,8 +191,6 @@ acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object,
191 user_prt = ACPI_CAST_PTR(struct acpi_pci_routing_table, buffer); 191 user_prt = ACPI_CAST_PTR(struct acpi_pci_routing_table, buffer);
192 192
193 for (index = 0; index < number_of_elements; index++) { 193 for (index = 0; index < number_of_elements; index++) {
194 int source_name_index = 2;
195 int source_index_index = 3;
196 194
197 /* 195 /*
198 * Point user_prt past this current structure 196 * Point user_prt past this current structure
@@ -261,27 +259,6 @@ acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object,
261 return_ACPI_STATUS(AE_BAD_DATA); 259 return_ACPI_STATUS(AE_BAD_DATA);
262 } 260 }
263 261
264 /*
265 * If BIOS erroneously reversed the _PRT source_name and source_index,
266 * then reverse them back.
267 */
268 if ((sub_object_list[3])->common.type !=
269 ACPI_TYPE_INTEGER) {
270 if (acpi_gbl_enable_interpreter_slack) {
271 source_name_index = 3;
272 source_index_index = 2;
273 printk(KERN_WARNING
274 "ACPI: Handling Garbled _PRT entry\n");
275 } else {
276 ACPI_ERROR((AE_INFO,
277 "(PRT[%X].source_index) Need Integer, found %s",
278 index,
279 acpi_ut_get_object_type_name
280 (sub_object_list[3])));
281 return_ACPI_STATUS(AE_BAD_DATA);
282 }
283 }
284
285 user_prt->pin = (u32) obj_desc->integer.value; 262 user_prt->pin = (u32) obj_desc->integer.value;
286 263
287 /* 264 /*
@@ -304,7 +281,7 @@ acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object,
304 * 3) Third subobject: Dereference the PRT.source_name 281 * 3) Third subobject: Dereference the PRT.source_name
305 * The name may be unresolved (slack mode), so allow a null object 282 * The name may be unresolved (slack mode), so allow a null object
306 */ 283 */
307 obj_desc = sub_object_list[source_name_index]; 284 obj_desc = sub_object_list[2];
308 if (obj_desc) { 285 if (obj_desc) {
309 switch (obj_desc->common.type) { 286 switch (obj_desc->common.type) {
310 case ACPI_TYPE_LOCAL_REFERENCE: 287 case ACPI_TYPE_LOCAL_REFERENCE:
@@ -378,7 +355,7 @@ acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object,
378 355
379 /* 4) Fourth subobject: Dereference the PRT.source_index */ 356 /* 4) Fourth subobject: Dereference the PRT.source_index */
380 357
381 obj_desc = sub_object_list[source_index_index]; 358 obj_desc = sub_object_list[3];
382 if (obj_desc->common.type != ACPI_TYPE_INTEGER) { 359 if (obj_desc->common.type != ACPI_TYPE_INTEGER) {
383 ACPI_ERROR((AE_INFO, 360 ACPI_ERROR((AE_INFO,
384 "(PRT[%X].SourceIndex) Need Integer, found %s", 361 "(PRT[%X].SourceIndex) Need Integer, found %s",
diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
index d73c94b8441d..9195deba9d94 100644
--- a/drivers/acpi/button.c
+++ b/drivers/acpi/button.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * acpi_button.c - ACPI Button Driver ($Revision: 30 $) 2 * button.c - ACPI Button Driver
3 * 3 *
4 * Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com> 4 * Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
5 * Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com> 5 * Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
@@ -41,17 +41,13 @@
41 41
42#define ACPI_BUTTON_SUBCLASS_POWER "power" 42#define ACPI_BUTTON_SUBCLASS_POWER "power"
43#define ACPI_BUTTON_HID_POWER "PNP0C0C" 43#define ACPI_BUTTON_HID_POWER "PNP0C0C"
44#define ACPI_BUTTON_DEVICE_NAME_POWER "Power Button (CM)" 44#define ACPI_BUTTON_DEVICE_NAME_POWER "Power Button"
45#define ACPI_BUTTON_DEVICE_NAME_POWERF "Power Button (FF)"
46#define ACPI_BUTTON_TYPE_POWER 0x01 45#define ACPI_BUTTON_TYPE_POWER 0x01
47#define ACPI_BUTTON_TYPE_POWERF 0x02
48 46
49#define ACPI_BUTTON_SUBCLASS_SLEEP "sleep" 47#define ACPI_BUTTON_SUBCLASS_SLEEP "sleep"
50#define ACPI_BUTTON_HID_SLEEP "PNP0C0E" 48#define ACPI_BUTTON_HID_SLEEP "PNP0C0E"
51#define ACPI_BUTTON_DEVICE_NAME_SLEEP "Sleep Button (CM)" 49#define ACPI_BUTTON_DEVICE_NAME_SLEEP "Sleep Button"
52#define ACPI_BUTTON_DEVICE_NAME_SLEEPF "Sleep Button (FF)"
53#define ACPI_BUTTON_TYPE_SLEEP 0x03 50#define ACPI_BUTTON_TYPE_SLEEP 0x03
54#define ACPI_BUTTON_TYPE_SLEEPF 0x04
55 51
56#define ACPI_BUTTON_SUBCLASS_LID "lid" 52#define ACPI_BUTTON_SUBCLASS_LID "lid"
57#define ACPI_BUTTON_HID_LID "PNP0C0D" 53#define ACPI_BUTTON_HID_LID "PNP0C0D"
@@ -95,7 +91,6 @@ static struct acpi_driver acpi_button_driver = {
95}; 91};
96 92
97struct acpi_button { 93struct acpi_button {
98 struct acpi_device *device; /* Fixed button kludge */
99 unsigned int type; 94 unsigned int type;
100 struct input_dev *input; 95 struct input_dev *input;
101 char phys[32]; /* for input device */ 96 char phys[32]; /* for input device */
@@ -126,14 +121,10 @@ static struct proc_dir_entry *acpi_button_dir;
126 121
127static int acpi_button_info_seq_show(struct seq_file *seq, void *offset) 122static int acpi_button_info_seq_show(struct seq_file *seq, void *offset)
128{ 123{
129 struct acpi_button *button = seq->private; 124 struct acpi_device *device = seq->private;
130
131 if (!button || !button->device)
132 return 0;
133 125
134 seq_printf(seq, "type: %s\n", 126 seq_printf(seq, "type: %s\n",
135 acpi_device_name(button->device)); 127 acpi_device_name(device));
136
137 return 0; 128 return 0;
138} 129}
139 130
@@ -144,14 +135,11 @@ static int acpi_button_info_open_fs(struct inode *inode, struct file *file)
144 135
145static int acpi_button_state_seq_show(struct seq_file *seq, void *offset) 136static int acpi_button_state_seq_show(struct seq_file *seq, void *offset)
146{ 137{
147 struct acpi_button *button = seq->private; 138 struct acpi_device *device = seq->private;
148 acpi_status status; 139 acpi_status status;
149 unsigned long long state; 140 unsigned long long state;
150 141
151 if (!button || !button->device) 142 status = acpi_evaluate_integer(device->handle, "_LID", NULL, &state);
152 return 0;
153
154 status = acpi_evaluate_integer(button->device->handle, "_LID", NULL, &state);
155 seq_printf(seq, "state: %s\n", 143 seq_printf(seq, "state: %s\n",
156 ACPI_FAILURE(status) ? "unsupported" : 144 ACPI_FAILURE(status) ? "unsupported" :
157 (state ? "open" : "closed")); 145 (state ? "open" : "closed"));
@@ -169,24 +157,17 @@ static struct proc_dir_entry *acpi_lid_dir;
169 157
170static int acpi_button_add_fs(struct acpi_device *device) 158static int acpi_button_add_fs(struct acpi_device *device)
171{ 159{
160 struct acpi_button *button = acpi_driver_data(device);
172 struct proc_dir_entry *entry = NULL; 161 struct proc_dir_entry *entry = NULL;
173 struct acpi_button *button;
174
175 if (!device || !acpi_driver_data(device))
176 return -EINVAL;
177
178 button = acpi_driver_data(device);
179 162
180 switch (button->type) { 163 switch (button->type) {
181 case ACPI_BUTTON_TYPE_POWER: 164 case ACPI_BUTTON_TYPE_POWER:
182 case ACPI_BUTTON_TYPE_POWERF:
183 if (!acpi_power_dir) 165 if (!acpi_power_dir)
184 acpi_power_dir = proc_mkdir(ACPI_BUTTON_SUBCLASS_POWER, 166 acpi_power_dir = proc_mkdir(ACPI_BUTTON_SUBCLASS_POWER,
185 acpi_button_dir); 167 acpi_button_dir);
186 entry = acpi_power_dir; 168 entry = acpi_power_dir;
187 break; 169 break;
188 case ACPI_BUTTON_TYPE_SLEEP: 170 case ACPI_BUTTON_TYPE_SLEEP:
189 case ACPI_BUTTON_TYPE_SLEEPF:
190 if (!acpi_sleep_dir) 171 if (!acpi_sleep_dir)
191 acpi_sleep_dir = proc_mkdir(ACPI_BUTTON_SUBCLASS_SLEEP, 172 acpi_sleep_dir = proc_mkdir(ACPI_BUTTON_SUBCLASS_SLEEP,
192 acpi_button_dir); 173 acpi_button_dir);
@@ -210,8 +191,7 @@ static int acpi_button_add_fs(struct acpi_device *device)
210 /* 'info' [R] */ 191 /* 'info' [R] */
211 entry = proc_create_data(ACPI_BUTTON_FILE_INFO, 192 entry = proc_create_data(ACPI_BUTTON_FILE_INFO,
212 S_IRUGO, acpi_device_dir(device), 193 S_IRUGO, acpi_device_dir(device),
213 &acpi_button_info_fops, 194 &acpi_button_info_fops, device);
214 acpi_driver_data(device));
215 if (!entry) 195 if (!entry)
216 return -ENODEV; 196 return -ENODEV;
217 197
@@ -219,8 +199,7 @@ static int acpi_button_add_fs(struct acpi_device *device)
219 if (button->type == ACPI_BUTTON_TYPE_LID) { 199 if (button->type == ACPI_BUTTON_TYPE_LID) {
220 entry = proc_create_data(ACPI_BUTTON_FILE_STATE, 200 entry = proc_create_data(ACPI_BUTTON_FILE_STATE,
221 S_IRUGO, acpi_device_dir(device), 201 S_IRUGO, acpi_device_dir(device),
222 &acpi_button_state_fops, 202 &acpi_button_state_fops, device);
223 acpi_driver_data(device));
224 if (!entry) 203 if (!entry)
225 return -ENODEV; 204 return -ENODEV;
226 } 205 }
@@ -250,15 +229,16 @@ static int acpi_button_remove_fs(struct acpi_device *device)
250/* -------------------------------------------------------------------------- 229/* --------------------------------------------------------------------------
251 Driver Interface 230 Driver Interface
252 -------------------------------------------------------------------------- */ 231 -------------------------------------------------------------------------- */
253static int acpi_lid_send_state(struct acpi_button *button) 232static int acpi_lid_send_state(struct acpi_device *device)
254{ 233{
234 struct acpi_button *button = acpi_driver_data(device);
255 unsigned long long state; 235 unsigned long long state;
256 acpi_status status; 236 acpi_status status;
257 237
258 status = acpi_evaluate_integer(button->device->handle, "_LID", NULL, 238 status = acpi_evaluate_integer(device->handle, "_LID", NULL, &state);
259 &state);
260 if (ACPI_FAILURE(status)) 239 if (ACPI_FAILURE(status))
261 return -ENODEV; 240 return -ENODEV;
241
262 /* input layer checks if event is redundant */ 242 /* input layer checks if event is redundant */
263 input_report_switch(button->input, SW_LID, !state); 243 input_report_switch(button->input, SW_LID, !state);
264 input_sync(button->input); 244 input_sync(button->input);
@@ -270,9 +250,6 @@ static void acpi_button_notify(struct acpi_device *device, u32 event)
270 struct acpi_button *button = acpi_driver_data(device); 250 struct acpi_button *button = acpi_driver_data(device);
271 struct input_dev *input; 251 struct input_dev *input;
272 252
273 if (!button || !button->device)
274 return;
275
276 switch (event) { 253 switch (event) {
277 case ACPI_FIXED_HARDWARE_EVENT: 254 case ACPI_FIXED_HARDWARE_EVENT:
278 event = ACPI_BUTTON_NOTIFY_STATUS; 255 event = ACPI_BUTTON_NOTIFY_STATUS;
@@ -280,7 +257,7 @@ static void acpi_button_notify(struct acpi_device *device, u32 event)
280 case ACPI_BUTTON_NOTIFY_STATUS: 257 case ACPI_BUTTON_NOTIFY_STATUS:
281 input = button->input; 258 input = button->input;
282 if (button->type == ACPI_BUTTON_TYPE_LID) { 259 if (button->type == ACPI_BUTTON_TYPE_LID) {
283 acpi_lid_send_state(button); 260 acpi_lid_send_state(device);
284 } else { 261 } else {
285 int keycode = test_bit(KEY_SLEEP, input->keybit) ? 262 int keycode = test_bit(KEY_SLEEP, input->keybit) ?
286 KEY_SLEEP : KEY_POWER; 263 KEY_SLEEP : KEY_POWER;
@@ -291,43 +268,35 @@ static void acpi_button_notify(struct acpi_device *device, u32 event)
291 input_sync(input); 268 input_sync(input);
292 } 269 }
293 270
294 acpi_bus_generate_proc_event(button->device, event, 271 acpi_bus_generate_proc_event(device, event, ++button->pushed);
295 ++button->pushed);
296 break; 272 break;
297 default: 273 default:
298 ACPI_DEBUG_PRINT((ACPI_DB_INFO, 274 ACPI_DEBUG_PRINT((ACPI_DB_INFO,
299 "Unsupported event [0x%x]\n", event)); 275 "Unsupported event [0x%x]\n", event));
300 break; 276 break;
301 } 277 }
302
303 return;
304} 278}
305 279
306static int acpi_button_resume(struct acpi_device *device) 280static int acpi_button_resume(struct acpi_device *device)
307{ 281{
308 struct acpi_button *button; 282 struct acpi_button *button = acpi_driver_data(device);
309 if (!device) 283
310 return -EINVAL; 284 if (button->type == ACPI_BUTTON_TYPE_LID)
311 button = acpi_driver_data(device); 285 return acpi_lid_send_state(device);
312 if (button && button->type == ACPI_BUTTON_TYPE_LID)
313 return acpi_lid_send_state(button);
314 return 0; 286 return 0;
315} 287}
316 288
317static int acpi_button_add(struct acpi_device *device) 289static int acpi_button_add(struct acpi_device *device)
318{ 290{
319 int error;
320 struct acpi_button *button; 291 struct acpi_button *button;
321 struct input_dev *input; 292 struct input_dev *input;
322 293 char *hid, *name, *class;
323 if (!device) 294 int error;
324 return -EINVAL;
325 295
326 button = kzalloc(sizeof(struct acpi_button), GFP_KERNEL); 296 button = kzalloc(sizeof(struct acpi_button), GFP_KERNEL);
327 if (!button) 297 if (!button)
328 return -ENOMEM; 298 return -ENOMEM;
329 299
330 button->device = device;
331 device->driver_data = button; 300 device->driver_data = button;
332 301
333 button->input = input = input_allocate_device(); 302 button->input = input = input_allocate_device();
@@ -336,40 +305,29 @@ static int acpi_button_add(struct acpi_device *device)
336 goto err_free_button; 305 goto err_free_button;
337 } 306 }
338 307
339 /* 308 hid = acpi_device_hid(device);
340 * Determine the button type (via hid), as fixed-feature buttons 309 name = acpi_device_name(device);
341 * need to be handled a bit differently than generic-space. 310 class = acpi_device_class(device);
342 */ 311
343 if (!strcmp(acpi_device_hid(device), ACPI_BUTTON_HID_POWER)) { 312 if (!strcmp(hid, ACPI_BUTTON_HID_POWER) ||
313 !strcmp(hid, ACPI_BUTTON_HID_POWERF)) {
344 button->type = ACPI_BUTTON_TYPE_POWER; 314 button->type = ACPI_BUTTON_TYPE_POWER;
345 strcpy(acpi_device_name(device), ACPI_BUTTON_DEVICE_NAME_POWER); 315 strcpy(name, ACPI_BUTTON_DEVICE_NAME_POWER);
346 sprintf(acpi_device_class(device), "%s/%s", 316 sprintf(class, "%s/%s",
347 ACPI_BUTTON_CLASS, ACPI_BUTTON_SUBCLASS_POWER);
348 } else if (!strcmp(acpi_device_hid(device), ACPI_BUTTON_HID_POWERF)) {
349 button->type = ACPI_BUTTON_TYPE_POWERF;
350 strcpy(acpi_device_name(device),
351 ACPI_BUTTON_DEVICE_NAME_POWERF);
352 sprintf(acpi_device_class(device), "%s/%s",
353 ACPI_BUTTON_CLASS, ACPI_BUTTON_SUBCLASS_POWER); 317 ACPI_BUTTON_CLASS, ACPI_BUTTON_SUBCLASS_POWER);
354 } else if (!strcmp(acpi_device_hid(device), ACPI_BUTTON_HID_SLEEP)) { 318 } else if (!strcmp(hid, ACPI_BUTTON_HID_SLEEP) ||
319 !strcmp(hid, ACPI_BUTTON_HID_SLEEPF)) {
355 button->type = ACPI_BUTTON_TYPE_SLEEP; 320 button->type = ACPI_BUTTON_TYPE_SLEEP;
356 strcpy(acpi_device_name(device), ACPI_BUTTON_DEVICE_NAME_SLEEP); 321 strcpy(name, ACPI_BUTTON_DEVICE_NAME_SLEEP);
357 sprintf(acpi_device_class(device), "%s/%s", 322 sprintf(class, "%s/%s",
358 ACPI_BUTTON_CLASS, ACPI_BUTTON_SUBCLASS_SLEEP);
359 } else if (!strcmp(acpi_device_hid(device), ACPI_BUTTON_HID_SLEEPF)) {
360 button->type = ACPI_BUTTON_TYPE_SLEEPF;
361 strcpy(acpi_device_name(device),
362 ACPI_BUTTON_DEVICE_NAME_SLEEPF);
363 sprintf(acpi_device_class(device), "%s/%s",
364 ACPI_BUTTON_CLASS, ACPI_BUTTON_SUBCLASS_SLEEP); 323 ACPI_BUTTON_CLASS, ACPI_BUTTON_SUBCLASS_SLEEP);
365 } else if (!strcmp(acpi_device_hid(device), ACPI_BUTTON_HID_LID)) { 324 } else if (!strcmp(hid, ACPI_BUTTON_HID_LID)) {
366 button->type = ACPI_BUTTON_TYPE_LID; 325 button->type = ACPI_BUTTON_TYPE_LID;
367 strcpy(acpi_device_name(device), ACPI_BUTTON_DEVICE_NAME_LID); 326 strcpy(name, ACPI_BUTTON_DEVICE_NAME_LID);
368 sprintf(acpi_device_class(device), "%s/%s", 327 sprintf(class, "%s/%s",
369 ACPI_BUTTON_CLASS, ACPI_BUTTON_SUBCLASS_LID); 328 ACPI_BUTTON_CLASS, ACPI_BUTTON_SUBCLASS_LID);
370 } else { 329 } else {
371 printk(KERN_ERR PREFIX "Unsupported hid [%s]\n", 330 printk(KERN_ERR PREFIX "Unsupported hid [%s]\n", hid);
372 acpi_device_hid(device));
373 error = -ENODEV; 331 error = -ENODEV;
374 goto err_free_input; 332 goto err_free_input;
375 } 333 }
@@ -378,10 +336,9 @@ static int acpi_button_add(struct acpi_device *device)
378 if (error) 336 if (error)
379 goto err_free_input; 337 goto err_free_input;
380 338
381 snprintf(button->phys, sizeof(button->phys), 339 snprintf(button->phys, sizeof(button->phys), "%s/button/input0", hid);
382 "%s/button/input0", acpi_device_hid(device));
383 340
384 input->name = acpi_device_name(device); 341 input->name = name;
385 input->phys = button->phys; 342 input->phys = button->phys;
386 input->id.bustype = BUS_HOST; 343 input->id.bustype = BUS_HOST;
387 input->id.product = button->type; 344 input->id.product = button->type;
@@ -389,13 +346,11 @@ static int acpi_button_add(struct acpi_device *device)
389 346
390 switch (button->type) { 347 switch (button->type) {
391 case ACPI_BUTTON_TYPE_POWER: 348 case ACPI_BUTTON_TYPE_POWER:
392 case ACPI_BUTTON_TYPE_POWERF:
393 input->evbit[0] = BIT_MASK(EV_KEY); 349 input->evbit[0] = BIT_MASK(EV_KEY);
394 set_bit(KEY_POWER, input->keybit); 350 set_bit(KEY_POWER, input->keybit);
395 break; 351 break;
396 352
397 case ACPI_BUTTON_TYPE_SLEEP: 353 case ACPI_BUTTON_TYPE_SLEEP:
398 case ACPI_BUTTON_TYPE_SLEEPF:
399 input->evbit[0] = BIT_MASK(EV_KEY); 354 input->evbit[0] = BIT_MASK(EV_KEY);
400 set_bit(KEY_SLEEP, input->keybit); 355 set_bit(KEY_SLEEP, input->keybit);
401 break; 356 break;
@@ -410,7 +365,7 @@ static int acpi_button_add(struct acpi_device *device)
410 if (error) 365 if (error)
411 goto err_remove_fs; 366 goto err_remove_fs;
412 if (button->type == ACPI_BUTTON_TYPE_LID) 367 if (button->type == ACPI_BUTTON_TYPE_LID)
413 acpi_lid_send_state(button); 368 acpi_lid_send_state(device);
414 369
415 if (device->wakeup.flags.valid) { 370 if (device->wakeup.flags.valid) {
416 /* Button's GPE is run-wake GPE */ 371 /* Button's GPE is run-wake GPE */
@@ -422,9 +377,7 @@ static int acpi_button_add(struct acpi_device *device)
422 device->wakeup.state.enabled = 1; 377 device->wakeup.state.enabled = 1;
423 } 378 }
424 379
425 printk(KERN_INFO PREFIX "%s [%s]\n", 380 printk(KERN_INFO PREFIX "%s [%s]\n", name, acpi_device_bid(device));
426 acpi_device_name(device), acpi_device_bid(device));
427
428 return 0; 381 return 0;
429 382
430 err_remove_fs: 383 err_remove_fs:
@@ -438,17 +391,11 @@ static int acpi_button_add(struct acpi_device *device)
438 391
439static int acpi_button_remove(struct acpi_device *device, int type) 392static int acpi_button_remove(struct acpi_device *device, int type)
440{ 393{
441 struct acpi_button *button; 394 struct acpi_button *button = acpi_driver_data(device);
442
443 if (!device || !acpi_driver_data(device))
444 return -EINVAL;
445
446 button = acpi_driver_data(device);
447 395
448 acpi_button_remove_fs(device); 396 acpi_button_remove_fs(device);
449 input_unregister_device(button->input); 397 input_unregister_device(button->input);
450 kfree(button); 398 kfree(button);
451
452 return 0; 399 return 0;
453} 400}
454 401
@@ -459,6 +406,7 @@ static int __init acpi_button_init(void)
459 acpi_button_dir = proc_mkdir(ACPI_BUTTON_CLASS, acpi_root_dir); 406 acpi_button_dir = proc_mkdir(ACPI_BUTTON_CLASS, acpi_root_dir);
460 if (!acpi_button_dir) 407 if (!acpi_button_dir)
461 return -ENODEV; 408 return -ENODEV;
409
462 result = acpi_bus_register_driver(&acpi_button_driver); 410 result = acpi_bus_register_driver(&acpi_button_driver);
463 if (result < 0) { 411 if (result < 0) {
464 remove_proc_entry(ACPI_BUTTON_CLASS, acpi_root_dir); 412 remove_proc_entry(ACPI_BUTTON_CLASS, acpi_root_dir);
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index 04e90443eff7..391f331674c7 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -1065,6 +1065,7 @@ static int acpi_ec_resume(struct acpi_device *device)
1065 struct acpi_ec *ec = acpi_driver_data(device); 1065 struct acpi_ec *ec = acpi_driver_data(device);
1066 /* Enable use of GPE back */ 1066 /* Enable use of GPE back */
1067 clear_bit(EC_FLAGS_NO_GPE, &ec->flags); 1067 clear_bit(EC_FLAGS_NO_GPE, &ec->flags);
1068 set_bit(EC_FLAGS_GPE_MODE, &ec->flags);
1068 acpi_enable_gpe(NULL, ec->gpe); 1069 acpi_enable_gpe(NULL, ec->gpe);
1069 return 0; 1070 return 0;
1070} 1071}
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index d59f08ecaf16..d916bea729f1 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -353,8 +353,10 @@ static irqreturn_t acpi_irq(int irq, void *dev_id)
353 if (handled) { 353 if (handled) {
354 acpi_irq_handled++; 354 acpi_irq_handled++;
355 return IRQ_HANDLED; 355 return IRQ_HANDLED;
356 } else 356 } else {
357 acpi_irq_not_handled++;
357 return IRQ_NONE; 358 return IRQ_NONE;
359 }
358} 360}
359 361
360acpi_status 362acpi_status
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index 6fe121434ffb..f7ca8c55956b 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -581,6 +581,11 @@ static int acpi_processor_power_verify(struct acpi_processor *pr)
581 for (i = 1; i < ACPI_PROCESSOR_MAX_POWER; i++) { 581 for (i = 1; i < ACPI_PROCESSOR_MAX_POWER; i++) {
582 struct acpi_processor_cx *cx = &pr->power.states[i]; 582 struct acpi_processor_cx *cx = &pr->power.states[i];
583 583
584#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
585 /* TSC could halt in idle, so notify users */
586 if (tsc_halts_in_c(cx->type))
587 mark_tsc_unstable("TSC halts in idle");;
588#endif
584 switch (cx->type) { 589 switch (cx->type) {
585 case ACPI_STATE_C1: 590 case ACPI_STATE_C1:
586 cx->valid = 1; 591 cx->valid = 1;
@@ -657,11 +662,9 @@ static int acpi_processor_power_seq_show(struct seq_file *seq, void *offset)
657 662
658 seq_printf(seq, "active state: C%zd\n" 663 seq_printf(seq, "active state: C%zd\n"
659 "max_cstate: C%d\n" 664 "max_cstate: C%d\n"
660 "bus master activity: %08x\n"
661 "maximum allowed latency: %d usec\n", 665 "maximum allowed latency: %d usec\n",
662 pr->power.state ? pr->power.state - pr->power.states : 0, 666 pr->power.state ? pr->power.state - pr->power.states : 0,
663 max_cstate, (unsigned)pr->power.bm_activity, 667 max_cstate, pm_qos_requirement(PM_QOS_CPU_DMA_LATENCY));
664 pm_qos_requirement(PM_QOS_CPU_DMA_LATENCY));
665 668
666 seq_puts(seq, "states:\n"); 669 seq_puts(seq, "states:\n");
667 670
@@ -871,11 +874,6 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev,
871 kt2 = ktime_get_real(); 874 kt2 = ktime_get_real();
872 idle_time = ktime_to_us(ktime_sub(kt2, kt1)); 875 idle_time = ktime_to_us(ktime_sub(kt2, kt1));
873 876
874#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
875 /* TSC could halt in idle, so notify users */
876 if (tsc_halts_in_c(cx->type))
877 mark_tsc_unstable("TSC halts in idle");;
878#endif
879 sleep_ticks = us_to_pm_timer_ticks(idle_time); 877 sleep_ticks = us_to_pm_timer_ticks(idle_time);
880 878
881 /* Tell the scheduler how much we idled: */ 879 /* Tell the scheduler how much we idled: */
@@ -955,6 +953,7 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
955 */ 953 */
956 acpi_state_timer_broadcast(pr, cx, 1); 954 acpi_state_timer_broadcast(pr, cx, 1);
957 955
956 kt1 = ktime_get_real();
958 /* 957 /*
959 * disable bus master 958 * disable bus master
960 * bm_check implies we need ARB_DIS 959 * bm_check implies we need ARB_DIS
@@ -976,10 +975,7 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
976 ACPI_FLUSH_CPU_CACHE(); 975 ACPI_FLUSH_CPU_CACHE();
977 } 976 }
978 977
979 kt1 = ktime_get_real();
980 acpi_idle_do_entry(cx); 978 acpi_idle_do_entry(cx);
981 kt2 = ktime_get_real();
982 idle_time = ktime_to_us(ktime_sub(kt2, kt1));
983 979
984 /* Re-enable bus master arbitration */ 980 /* Re-enable bus master arbitration */
985 if (pr->flags.bm_check && pr->flags.bm_control) { 981 if (pr->flags.bm_check && pr->flags.bm_control) {
@@ -988,12 +984,9 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
988 c3_cpu_count--; 984 c3_cpu_count--;
989 spin_unlock(&c3_lock); 985 spin_unlock(&c3_lock);
990 } 986 }
987 kt2 = ktime_get_real();
988 idle_time = ktime_to_us(ktime_sub(kt2, kt1));
991 989
992#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
993 /* TSC could halt in idle, so notify users */
994 if (tsc_halts_in_c(ACPI_STATE_C3))
995 mark_tsc_unstable("TSC halts in idle");
996#endif
997 sleep_ticks = us_to_pm_timer_ticks(idle_time); 990 sleep_ticks = us_to_pm_timer_ticks(idle_time);
998 /* Tell the scheduler how much we idled: */ 991 /* Tell the scheduler how much we idled: */
999 sched_clock_idle_wakeup_event(sleep_ticks*PM_TIMER_TICK_NS); 992 sched_clock_idle_wakeup_event(sleep_ticks*PM_TIMER_TICK_NS);
@@ -1037,6 +1030,9 @@ static int acpi_processor_setup_cpuidle(struct acpi_processor *pr)
1037 dev->states[i].desc[0] = '\0'; 1030 dev->states[i].desc[0] = '\0';
1038 } 1031 }
1039 1032
1033 if (max_cstate == 0)
1034 max_cstate = 1;
1035
1040 for (i = 1; i < ACPI_PROCESSOR_MAX_POWER && i <= max_cstate; i++) { 1036 for (i = 1; i < ACPI_PROCESSOR_MAX_POWER && i <= max_cstate; i++) {
1041 cx = &pr->power.states[i]; 1037 cx = &pr->power.states[i];
1042 state = &dev->states[count]; 1038 state = &dev->states[count];
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index d060e6fd7fd5..01574a066534 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -713,6 +713,32 @@ static void acpi_power_off(void)
713 acpi_enter_sleep_state(ACPI_STATE_S5); 713 acpi_enter_sleep_state(ACPI_STATE_S5);
714} 714}
715 715
716/*
717 * ACPI 2.0 created the optional _GTS and _BFS,
718 * but industry adoption has been neither rapid nor broad.
719 *
720 * Linux gets into trouble when it executes poorly validated
721 * paths through the BIOS, so disable _GTS and _BFS by default,
722 * but do speak up and offer the option to enable them.
723 */
724void __init acpi_gts_bfs_check(void)
725{
726 acpi_handle dummy;
727
728 if (ACPI_SUCCESS(acpi_get_handle(ACPI_ROOT_OBJECT, METHOD_NAME__GTS, &dummy)))
729 {
730 printk(KERN_NOTICE PREFIX "BIOS offers _GTS\n");
731 printk(KERN_NOTICE PREFIX "If \"acpi.gts=1\" improves suspend, "
732 "please notify linux-acpi@vger.kernel.org\n");
733 }
734 if (ACPI_SUCCESS(acpi_get_handle(ACPI_ROOT_OBJECT, METHOD_NAME__BFS, &dummy)))
735 {
736 printk(KERN_NOTICE PREFIX "BIOS offers _BFS\n");
737 printk(KERN_NOTICE PREFIX "If \"acpi.bfs=1\" improves resume, "
738 "please notify linux-acpi@vger.kernel.org\n");
739 }
740}
741
716int __init acpi_sleep_init(void) 742int __init acpi_sleep_init(void)
717{ 743{
718 acpi_status status; 744 acpi_status status;
@@ -771,5 +797,6 @@ int __init acpi_sleep_init(void)
771 * object can also be evaluated when the system enters S5. 797 * object can also be evaluated when the system enters S5.
772 */ 798 */
773 register_reboot_notifier(&tts_notifier); 799 register_reboot_notifier(&tts_notifier);
800 acpi_gts_bfs_check();
774 return 0; 801 return 0;
775} 802}
diff --git a/drivers/acpi/system.c b/drivers/acpi/system.c
index da51f05ef8d8..0944daec064f 100644
--- a/drivers/acpi/system.c
+++ b/drivers/acpi/system.c
@@ -38,6 +38,7 @@ ACPI_MODULE_NAME("system");
38#define ACPI_SYSTEM_DEVICE_NAME "System" 38#define ACPI_SYSTEM_DEVICE_NAME "System"
39 39
40u32 acpi_irq_handled; 40u32 acpi_irq_handled;
41u32 acpi_irq_not_handled;
41 42
42/* 43/*
43 * Make ACPICA version work as module param 44 * Make ACPICA version work as module param
@@ -214,8 +215,9 @@ err:
214 215
215#define COUNT_GPE 0 216#define COUNT_GPE 0
216#define COUNT_SCI 1 /* acpi_irq_handled */ 217#define COUNT_SCI 1 /* acpi_irq_handled */
217#define COUNT_ERROR 2 /* other */ 218#define COUNT_SCI_NOT 2 /* acpi_irq_not_handled */
218#define NUM_COUNTERS_EXTRA 3 219#define COUNT_ERROR 3 /* other */
220#define NUM_COUNTERS_EXTRA 4
219 221
220struct event_counter { 222struct event_counter {
221 u32 count; 223 u32 count;
@@ -317,6 +319,8 @@ static ssize_t counter_show(struct kobject *kobj,
317 319
318 all_counters[num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_SCI].count = 320 all_counters[num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_SCI].count =
319 acpi_irq_handled; 321 acpi_irq_handled;
322 all_counters[num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_SCI_NOT].count =
323 acpi_irq_not_handled;
320 all_counters[num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_GPE].count = 324 all_counters[num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_GPE].count =
321 acpi_gpe_count; 325 acpi_gpe_count;
322 326
@@ -363,6 +367,7 @@ static ssize_t counter_set(struct kobject *kobj,
363 all_counters[i].count = 0; 367 all_counters[i].count = 0;
364 acpi_gpe_count = 0; 368 acpi_gpe_count = 0;
365 acpi_irq_handled = 0; 369 acpi_irq_handled = 0;
370 acpi_irq_not_handled = 0;
366 goto end; 371 goto end;
367 } 372 }
368 373
@@ -456,6 +461,8 @@ void acpi_irq_stats_init(void)
456 sprintf(buffer, "gpe_all"); 461 sprintf(buffer, "gpe_all");
457 else if (i == num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_SCI) 462 else if (i == num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_SCI)
458 sprintf(buffer, "sci"); 463 sprintf(buffer, "sci");
464 else if (i == num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_SCI_NOT)
465 sprintf(buffer, "sci_not");
459 else if (i == num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_ERROR) 466 else if (i == num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_ERROR)
460 sprintf(buffer, "error"); 467 sprintf(buffer, "error");
461 else 468 else
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
index 9cd15e8c8932..564ea1424288 100644
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -909,7 +909,7 @@ static int acpi_thermal_register_thermal_zone(struct acpi_thermal *tz)
909 thermal_zone_device_register("acpitz", trips, tz, 909 thermal_zone_device_register("acpitz", trips, tz,
910 &acpi_thermal_zone_ops, 910 &acpi_thermal_zone_ops,
911 0, 0, 0, 911 0, 0, 0,
912 tz->polling_frequency); 912 tz->polling_frequency*100);
913 if (IS_ERR(tz->thermal_zone)) 913 if (IS_ERR(tz->thermal_zone))
914 return -ENODEV; 914 return -ENODEV;
915 915
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index cd4fb7543a90..d7ff61c0d571 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -770,10 +770,12 @@ acpi_video_init_brightness(struct acpi_video_device *device)
770 * In this case, the first two elements in _BCL packages 770 * In this case, the first two elements in _BCL packages
771 * are also supported brightness levels that OS should take care of. 771 * are also supported brightness levels that OS should take care of.
772 */ 772 */
773 for (i = 2; i < count; i++) 773 for (i = 2; i < count; i++) {
774 if (br->levels[i] == br->levels[0] || 774 if (br->levels[i] == br->levels[0])
775 br->levels[i] == br->levels[1])
776 level_ac_battery++; 775 level_ac_battery++;
776 if (br->levels[i] == br->levels[1])
777 level_ac_battery++;
778 }
777 779
778 if (level_ac_battery < 2) { 780 if (level_ac_battery < 2) {
779 level_ac_battery = 2 - level_ac_battery; 781 level_ac_battery = 2 - level_ac_battery;
@@ -807,12 +809,19 @@ acpi_video_init_brightness(struct acpi_video_device *device)
807 br->flags._BCM_use_index = br->flags._BCL_use_index; 809 br->flags._BCM_use_index = br->flags._BCL_use_index;
808 810
809 /* _BQC uses INDEX while _BCL uses VALUE in some laptops */ 811 /* _BQC uses INDEX while _BCL uses VALUE in some laptops */
810 br->curr = max_level; 812 br->curr = level_old = max_level;
813
814 if (!device->cap._BQC)
815 goto set_level;
816
811 result = acpi_video_device_lcd_get_level_current(device, &level_old); 817 result = acpi_video_device_lcd_get_level_current(device, &level_old);
812 if (result) 818 if (result)
813 goto out_free_levels; 819 goto out_free_levels;
814 820
815 result = acpi_video_device_lcd_set_level(device, br->curr); 821 /*
822 * Set the level to maximum and check if _BQC uses indexed value
823 */
824 result = acpi_video_device_lcd_set_level(device, max_level);
816 if (result) 825 if (result)
817 goto out_free_levels; 826 goto out_free_levels;
818 827
@@ -820,25 +829,19 @@ acpi_video_init_brightness(struct acpi_video_device *device)
820 if (result) 829 if (result)
821 goto out_free_levels; 830 goto out_free_levels;
822 831
823 if ((level != level_old) && !br->flags._BCM_use_index) { 832 br->flags._BQC_use_index = (level == max_level ? 0 : 1);
824 /* Note: 833
825 * This piece of code does not work correctly if the current 834 if (!br->flags._BQC_use_index)
826 * brightness levels is 0. 835 goto set_level;
827 * But I guess boxes that boot with such a dark screen are rare 836
828 * and no more code is needed to cover this specifial case. 837 if (br->flags._BCL_reversed)
829 */ 838 level_old = (br->count - 1) - level_old;
830 839 level_old = br->levels[level_old];
831 if (level_ac_battery != 2) { 840
832 /* 841set_level:
833 * For now, we don't support the _BCL like this: 842 result = acpi_video_device_lcd_set_level(device, level_old);
834 * 16, 15, 0, 1, 2, 3, ..., 14, 15, 16 843 if (result)
835 * because we may mess up the index returned by _BQC. 844 goto out_free_levels;
836 * Plus: we have not got a box like this.
837 */
838 ACPI_ERROR((AE_INFO, "_BCL not supported\n"));
839 }
840 br->flags._BQC_use_index = 1;
841 }
842 845
843 ACPI_DEBUG_PRINT((ACPI_DB_INFO, 846 ACPI_DEBUG_PRINT((ACPI_DB_INFO,
844 "found %d brightness levels\n", count - 2)); 847 "found %d brightness levels\n", count - 2));
@@ -2293,7 +2296,7 @@ static int __init acpi_video_init(void)
2293 return acpi_video_register(); 2296 return acpi_video_register();
2294} 2297}
2295 2298
2296static void __exit acpi_video_exit(void) 2299void __exit acpi_video_exit(void)
2297{ 2300{
2298 2301
2299 acpi_bus_unregister_driver(&acpi_video_bus); 2302 acpi_bus_unregister_driver(&acpi_video_bus);
@@ -2302,6 +2305,7 @@ static void __exit acpi_video_exit(void)
2302 2305
2303 return; 2306 return;
2304} 2307}
2308EXPORT_SYMBOL(acpi_video_exit);
2305 2309
2306module_init(acpi_video_init); 2310module_init(acpi_video_init);
2307module_exit(acpi_video_exit); 2311module_exit(acpi_video_exit);
diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index f17c3266a0e0..742cbe6b042b 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -179,6 +179,7 @@ void wait_for_device_probe(void)
179 wait_event(probe_waitqueue, atomic_read(&probe_count) == 0); 179 wait_event(probe_waitqueue, atomic_read(&probe_count) == 0);
180 async_synchronize_full(); 180 async_synchronize_full();
181} 181}
182EXPORT_SYMBOL_GPL(wait_for_device_probe);
182 183
183/** 184/**
184 * driver_probe_device - attempt to bind device & driver together 185 * driver_probe_device - attempt to bind device & driver together
diff --git a/drivers/block/hd.c b/drivers/block/hd.c
index 3c11f062a18c..baaa9e486e50 100644
--- a/drivers/block/hd.c
+++ b/drivers/block/hd.c
@@ -509,7 +509,6 @@ ok_to_write:
509 if (i > 0) { 509 if (i > 0) {
510 SET_HANDLER(&write_intr); 510 SET_HANDLER(&write_intr);
511 outsw(HD_DATA, req->buffer, 256); 511 outsw(HD_DATA, req->buffer, 256);
512 local_irq_enable();
513 } else { 512 } else {
514#if (HD_DELAY > 0) 513#if (HD_DELAY > 0)
515 last_req = read_timer(); 514 last_req = read_timer();
@@ -541,8 +540,7 @@ static void hd_times_out(unsigned long dummy)
541 if (!CURRENT) 540 if (!CURRENT)
542 return; 541 return;
543 542
544 disable_irq(HD_IRQ); 543 spin_lock_irq(hd_queue->queue_lock);
545 local_irq_enable();
546 reset = 1; 544 reset = 1;
547 name = CURRENT->rq_disk->disk_name; 545 name = CURRENT->rq_disk->disk_name;
548 printk("%s: timeout\n", name); 546 printk("%s: timeout\n", name);
@@ -552,9 +550,8 @@ static void hd_times_out(unsigned long dummy)
552#endif 550#endif
553 end_request(CURRENT, 0); 551 end_request(CURRENT, 0);
554 } 552 }
555 local_irq_disable();
556 hd_request(); 553 hd_request();
557 enable_irq(HD_IRQ); 554 spin_unlock_irq(hd_queue->queue_lock);
558} 555}
559 556
560static int do_special_op(struct hd_i_struct *disk, struct request *req) 557static int do_special_op(struct hd_i_struct *disk, struct request *req)
@@ -592,7 +589,6 @@ static void hd_request(void)
592 return; 589 return;
593repeat: 590repeat:
594 del_timer(&device_timer); 591 del_timer(&device_timer);
595 local_irq_enable();
596 592
597 req = CURRENT; 593 req = CURRENT;
598 if (!req) { 594 if (!req) {
@@ -601,7 +597,6 @@ repeat:
601 } 597 }
602 598
603 if (reset) { 599 if (reset) {
604 local_irq_disable();
605 reset_hd(); 600 reset_hd();
606 return; 601 return;
607 } 602 }
@@ -660,9 +655,7 @@ repeat:
660 655
661static void do_hd_request(struct request_queue *q) 656static void do_hd_request(struct request_queue *q)
662{ 657{
663 disable_irq(HD_IRQ);
664 hd_request(); 658 hd_request();
665 enable_irq(HD_IRQ);
666} 659}
667 660
668static int hd_getgeo(struct block_device *bdev, struct hd_geometry *geo) 661static int hd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
@@ -684,12 +677,16 @@ static irqreturn_t hd_interrupt(int irq, void *dev_id)
684{ 677{
685 void (*handler)(void) = do_hd; 678 void (*handler)(void) = do_hd;
686 679
680 spin_lock(hd_queue->queue_lock);
681
687 do_hd = NULL; 682 do_hd = NULL;
688 del_timer(&device_timer); 683 del_timer(&device_timer);
689 if (!handler) 684 if (!handler)
690 handler = unexpected_hd_interrupt; 685 handler = unexpected_hd_interrupt;
691 handler(); 686 handler();
692 local_irq_enable(); 687
688 spin_unlock(hd_queue->queue_lock);
689
693 return IRQ_HANDLED; 690 return IRQ_HANDLED;
694} 691}
695 692
diff --git a/drivers/block/mg_disk.c b/drivers/block/mg_disk.c
index fb39d9aa3cdc..f3898353d0a8 100644
--- a/drivers/block/mg_disk.c
+++ b/drivers/block/mg_disk.c
@@ -79,7 +79,7 @@ static void mg_dump_status(const char *msg, unsigned int stat,
79 if (host->breq) { 79 if (host->breq) {
80 req = elv_next_request(host->breq); 80 req = elv_next_request(host->breq);
81 if (req) 81 if (req)
82 printk(", sector=%ld", req->sector); 82 printk(", sector=%u", (u32)req->sector);
83 } 83 }
84 84
85 } 85 }
@@ -160,11 +160,16 @@ static irqreturn_t mg_irq(int irq, void *dev_id)
160 struct mg_host *host = dev_id; 160 struct mg_host *host = dev_id;
161 void (*handler)(struct mg_host *) = host->mg_do_intr; 161 void (*handler)(struct mg_host *) = host->mg_do_intr;
162 162
163 host->mg_do_intr = 0; 163 spin_lock(&host->lock);
164
165 host->mg_do_intr = NULL;
164 del_timer(&host->timer); 166 del_timer(&host->timer);
165 if (!handler) 167 if (!handler)
166 handler = mg_unexpected_intr; 168 handler = mg_unexpected_intr;
167 handler(host); 169 handler(host);
170
171 spin_unlock(&host->lock);
172
168 return IRQ_HANDLED; 173 return IRQ_HANDLED;
169} 174}
170 175
@@ -319,7 +324,7 @@ static void mg_read(struct request *req)
319 324
320 remains = req->nr_sectors; 325 remains = req->nr_sectors;
321 326
322 if (mg_out(host, req->sector, req->nr_sectors, MG_CMD_RD, 0) != 327 if (mg_out(host, req->sector, req->nr_sectors, MG_CMD_RD, NULL) !=
323 MG_ERR_NONE) 328 MG_ERR_NONE)
324 mg_bad_rw_intr(host); 329 mg_bad_rw_intr(host);
325 330
@@ -363,7 +368,7 @@ static void mg_write(struct request *req)
363 368
364 remains = req->nr_sectors; 369 remains = req->nr_sectors;
365 370
366 if (mg_out(host, req->sector, req->nr_sectors, MG_CMD_WR, 0) != 371 if (mg_out(host, req->sector, req->nr_sectors, MG_CMD_WR, NULL) !=
367 MG_ERR_NONE) { 372 MG_ERR_NONE) {
368 mg_bad_rw_intr(host); 373 mg_bad_rw_intr(host);
369 return; 374 return;
@@ -521,9 +526,11 @@ void mg_times_out(unsigned long data)
521 char *name; 526 char *name;
522 struct request *req; 527 struct request *req;
523 528
529 spin_lock_irq(&host->lock);
530
524 req = elv_next_request(host->breq); 531 req = elv_next_request(host->breq);
525 if (!req) 532 if (!req)
526 return; 533 goto out_unlock;
527 534
528 host->mg_do_intr = NULL; 535 host->mg_do_intr = NULL;
529 536
@@ -534,6 +541,8 @@ void mg_times_out(unsigned long data)
534 mg_bad_rw_intr(host); 541 mg_bad_rw_intr(host);
535 542
536 mg_request(host->breq); 543 mg_request(host->breq);
544out_unlock:
545 spin_unlock_irq(&host->lock);
537} 546}
538 547
539static void mg_request_poll(struct request_queue *q) 548static void mg_request_poll(struct request_queue *q)
diff --git a/drivers/block/umem.c b/drivers/block/umem.c
index 9744d59a69f2..858c34dd032d 100644
--- a/drivers/block/umem.c
+++ b/drivers/block/umem.c
@@ -906,6 +906,7 @@ static int __devinit mm_pci_probe(struct pci_dev *dev,
906 goto failed_alloc; 906 goto failed_alloc;
907 907
908 blk_queue_make_request(card->queue, mm_make_request); 908 blk_queue_make_request(card->queue, mm_make_request);
909 card->queue->queue_lock = &card->lock;
909 card->queue->queuedata = card; 910 card->queue->queuedata = card;
910 card->queue->unplug_fn = mm_unplug_device; 911 card->queue->unplug_fn = mm_unplug_device;
911 912
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
index 50dfa3bc71ce..340ba4f9dc54 100644
--- a/drivers/char/hpet.c
+++ b/drivers/char/hpet.c
@@ -72,7 +72,7 @@ static u32 hpet_nhpet, hpet_max_freq = HPET_USER_FREQ;
72#ifdef CONFIG_IA64 72#ifdef CONFIG_IA64
73static void __iomem *hpet_mctr; 73static void __iomem *hpet_mctr;
74 74
75static cycle_t read_hpet(void) 75static cycle_t read_hpet(struct clocksource *cs)
76{ 76{
77 return (cycle_t)read_counter((void __iomem *)hpet_mctr); 77 return (cycle_t)read_counter((void __iomem *)hpet_mctr);
78} 78}
diff --git a/drivers/char/hw_random/virtio-rng.c b/drivers/char/hw_random/virtio-rng.c
index d0e563e4fc39..86e83f883139 100644
--- a/drivers/char/hw_random/virtio-rng.c
+++ b/drivers/char/hw_random/virtio-rng.c
@@ -37,9 +37,9 @@ static void random_recv_done(struct virtqueue *vq)
37{ 37{
38 int len; 38 int len;
39 39
40 /* We never get spurious callbacks. */ 40 /* We can get spurious callbacks, e.g. shared IRQs + virtio_pci. */
41 if (!vq->vq_ops->get_buf(vq, &len)) 41 if (!vq->vq_ops->get_buf(vq, &len))
42 BUG(); 42 return;
43 43
44 data_left = len / sizeof(random_data[0]); 44 data_left = len / sizeof(random_data[0]);
45 complete(&have_data); 45 complete(&have_data);
diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
index e93fc8d22fb2..aa83a0865ec1 100644
--- a/drivers/char/ipmi/ipmi_msghandler.c
+++ b/drivers/char/ipmi/ipmi_msghandler.c
@@ -285,6 +285,11 @@ enum ipmi_stat_indexes {
285 /* Events that were received with the proper format. */ 285 /* Events that were received with the proper format. */
286 IPMI_STAT_events, 286 IPMI_STAT_events,
287 287
288 /* Retransmissions on IPMB that failed. */
289 IPMI_STAT_dropped_rexmit_ipmb_commands,
290
291 /* Retransmissions on LAN that failed. */
292 IPMI_STAT_dropped_rexmit_lan_commands,
288 293
289 /* This *must* remain last, add new values above this. */ 294 /* This *must* remain last, add new values above this. */
290 IPMI_NUM_STATS 295 IPMI_NUM_STATS
@@ -445,6 +450,20 @@ static DEFINE_MUTEX(smi_watchers_mutex);
445#define ipmi_get_stat(intf, stat) \ 450#define ipmi_get_stat(intf, stat) \
446 ((unsigned int) atomic_read(&(intf)->stats[IPMI_STAT_ ## stat])) 451 ((unsigned int) atomic_read(&(intf)->stats[IPMI_STAT_ ## stat]))
447 452
453static int is_lan_addr(struct ipmi_addr *addr)
454{
455 return addr->addr_type == IPMI_LAN_ADDR_TYPE;
456}
457
458static int is_ipmb_addr(struct ipmi_addr *addr)
459{
460 return addr->addr_type == IPMI_IPMB_ADDR_TYPE;
461}
462
463static int is_ipmb_bcast_addr(struct ipmi_addr *addr)
464{
465 return addr->addr_type == IPMI_IPMB_BROADCAST_ADDR_TYPE;
466}
448 467
449static void free_recv_msg_list(struct list_head *q) 468static void free_recv_msg_list(struct list_head *q)
450{ 469{
@@ -601,8 +620,7 @@ ipmi_addr_equal(struct ipmi_addr *addr1, struct ipmi_addr *addr2)
601 return (smi_addr1->lun == smi_addr2->lun); 620 return (smi_addr1->lun == smi_addr2->lun);
602 } 621 }
603 622
604 if ((addr1->addr_type == IPMI_IPMB_ADDR_TYPE) 623 if (is_ipmb_addr(addr1) || is_ipmb_bcast_addr(addr1)) {
605 || (addr1->addr_type == IPMI_IPMB_BROADCAST_ADDR_TYPE)) {
606 struct ipmi_ipmb_addr *ipmb_addr1 624 struct ipmi_ipmb_addr *ipmb_addr1
607 = (struct ipmi_ipmb_addr *) addr1; 625 = (struct ipmi_ipmb_addr *) addr1;
608 struct ipmi_ipmb_addr *ipmb_addr2 626 struct ipmi_ipmb_addr *ipmb_addr2
@@ -612,7 +630,7 @@ ipmi_addr_equal(struct ipmi_addr *addr1, struct ipmi_addr *addr2)
612 && (ipmb_addr1->lun == ipmb_addr2->lun)); 630 && (ipmb_addr1->lun == ipmb_addr2->lun));
613 } 631 }
614 632
615 if (addr1->addr_type == IPMI_LAN_ADDR_TYPE) { 633 if (is_lan_addr(addr1)) {
616 struct ipmi_lan_addr *lan_addr1 634 struct ipmi_lan_addr *lan_addr1
617 = (struct ipmi_lan_addr *) addr1; 635 = (struct ipmi_lan_addr *) addr1;
618 struct ipmi_lan_addr *lan_addr2 636 struct ipmi_lan_addr *lan_addr2
@@ -644,14 +662,13 @@ int ipmi_validate_addr(struct ipmi_addr *addr, int len)
644 || (addr->channel < 0)) 662 || (addr->channel < 0))
645 return -EINVAL; 663 return -EINVAL;
646 664
647 if ((addr->addr_type == IPMI_IPMB_ADDR_TYPE) 665 if (is_ipmb_addr(addr) || is_ipmb_bcast_addr(addr)) {
648 || (addr->addr_type == IPMI_IPMB_BROADCAST_ADDR_TYPE)) {
649 if (len < sizeof(struct ipmi_ipmb_addr)) 666 if (len < sizeof(struct ipmi_ipmb_addr))
650 return -EINVAL; 667 return -EINVAL;
651 return 0; 668 return 0;
652 } 669 }
653 670
654 if (addr->addr_type == IPMI_LAN_ADDR_TYPE) { 671 if (is_lan_addr(addr)) {
655 if (len < sizeof(struct ipmi_lan_addr)) 672 if (len < sizeof(struct ipmi_lan_addr))
656 return -EINVAL; 673 return -EINVAL;
657 return 0; 674 return 0;
@@ -1503,8 +1520,7 @@ static int i_ipmi_request(ipmi_user_t user,
1503 memcpy(&(smi_msg->data[2]), msg->data, msg->data_len); 1520 memcpy(&(smi_msg->data[2]), msg->data, msg->data_len);
1504 smi_msg->data_size = msg->data_len + 2; 1521 smi_msg->data_size = msg->data_len + 2;
1505 ipmi_inc_stat(intf, sent_local_commands); 1522 ipmi_inc_stat(intf, sent_local_commands);
1506 } else if ((addr->addr_type == IPMI_IPMB_ADDR_TYPE) 1523 } else if (is_ipmb_addr(addr) || is_ipmb_bcast_addr(addr)) {
1507 || (addr->addr_type == IPMI_IPMB_BROADCAST_ADDR_TYPE)) {
1508 struct ipmi_ipmb_addr *ipmb_addr; 1524 struct ipmi_ipmb_addr *ipmb_addr;
1509 unsigned char ipmb_seq; 1525 unsigned char ipmb_seq;
1510 long seqid; 1526 long seqid;
@@ -1583,8 +1599,6 @@ static int i_ipmi_request(ipmi_user_t user,
1583 1599
1584 spin_lock_irqsave(&(intf->seq_lock), flags); 1600 spin_lock_irqsave(&(intf->seq_lock), flags);
1585 1601
1586 ipmi_inc_stat(intf, sent_ipmb_commands);
1587
1588 /* 1602 /*
1589 * Create a sequence number with a 1 second 1603 * Create a sequence number with a 1 second
1590 * timeout and 4 retries. 1604 * timeout and 4 retries.
@@ -1606,6 +1620,8 @@ static int i_ipmi_request(ipmi_user_t user,
1606 goto out_err; 1620 goto out_err;
1607 } 1621 }
1608 1622
1623 ipmi_inc_stat(intf, sent_ipmb_commands);
1624
1609 /* 1625 /*
1610 * Store the sequence number in the message, 1626 * Store the sequence number in the message,
1611 * so that when the send message response 1627 * so that when the send message response
@@ -1635,7 +1651,7 @@ static int i_ipmi_request(ipmi_user_t user,
1635 */ 1651 */
1636 spin_unlock_irqrestore(&(intf->seq_lock), flags); 1652 spin_unlock_irqrestore(&(intf->seq_lock), flags);
1637 } 1653 }
1638 } else if (addr->addr_type == IPMI_LAN_ADDR_TYPE) { 1654 } else if (is_lan_addr(addr)) {
1639 struct ipmi_lan_addr *lan_addr; 1655 struct ipmi_lan_addr *lan_addr;
1640 unsigned char ipmb_seq; 1656 unsigned char ipmb_seq;
1641 long seqid; 1657 long seqid;
@@ -1696,8 +1712,6 @@ static int i_ipmi_request(ipmi_user_t user,
1696 1712
1697 spin_lock_irqsave(&(intf->seq_lock), flags); 1713 spin_lock_irqsave(&(intf->seq_lock), flags);
1698 1714
1699 ipmi_inc_stat(intf, sent_lan_commands);
1700
1701 /* 1715 /*
1702 * Create a sequence number with a 1 second 1716 * Create a sequence number with a 1 second
1703 * timeout and 4 retries. 1717 * timeout and 4 retries.
@@ -1719,6 +1733,8 @@ static int i_ipmi_request(ipmi_user_t user,
1719 goto out_err; 1733 goto out_err;
1720 } 1734 }
1721 1735
1736 ipmi_inc_stat(intf, sent_lan_commands);
1737
1722 /* 1738 /*
1723 * Store the sequence number in the message, 1739 * Store the sequence number in the message,
1724 * so that when the send message response 1740 * so that when the send message response
@@ -1937,6 +1953,10 @@ static int stat_file_read_proc(char *page, char **start, off_t off,
1937 ipmi_get_stat(intf, invalid_events)); 1953 ipmi_get_stat(intf, invalid_events));
1938 out += sprintf(out, "events: %u\n", 1954 out += sprintf(out, "events: %u\n",
1939 ipmi_get_stat(intf, events)); 1955 ipmi_get_stat(intf, events));
1956 out += sprintf(out, "failed rexmit LAN msgs: %u\n",
1957 ipmi_get_stat(intf, dropped_rexmit_lan_commands));
1958 out += sprintf(out, "failed rexmit IPMB msgs: %u\n",
1959 ipmi_get_stat(intf, dropped_rexmit_ipmb_commands));
1940 1960
1941 return (out - ((char *) page)); 1961 return (out - ((char *) page));
1942} 1962}
@@ -3264,6 +3284,114 @@ static int handle_lan_get_msg_cmd(ipmi_smi_t intf,
3264 return rv; 3284 return rv;
3265} 3285}
3266 3286
3287/*
3288 * This routine will handle "Get Message" command responses with
3289 * channels that use an OEM Medium. The message format belongs to
3290 * the OEM. See IPMI 2.0 specification, Chapter 6 and
3291 * Chapter 22, sections 22.6 and 22.24 for more details.
3292 */
3293static int handle_oem_get_msg_cmd(ipmi_smi_t intf,
3294 struct ipmi_smi_msg *msg)
3295{
3296 struct cmd_rcvr *rcvr;
3297 int rv = 0;
3298 unsigned char netfn;
3299 unsigned char cmd;
3300 unsigned char chan;
3301 ipmi_user_t user = NULL;
3302 struct ipmi_system_interface_addr *smi_addr;
3303 struct ipmi_recv_msg *recv_msg;
3304
3305 /*
3306 * We expect the OEM SW to perform error checking
3307 * so we just do some basic sanity checks
3308 */
3309 if (msg->rsp_size < 4) {
3310 /* Message not big enough, just ignore it. */
3311 ipmi_inc_stat(intf, invalid_commands);
3312 return 0;
3313 }
3314
3315 if (msg->rsp[2] != 0) {
3316 /* An error getting the response, just ignore it. */
3317 return 0;
3318 }
3319
3320 /*
3321 * This is an OEM Message so the OEM needs to know how
3322 * handle the message. We do no interpretation.
3323 */
3324 netfn = msg->rsp[0] >> 2;
3325 cmd = msg->rsp[1];
3326 chan = msg->rsp[3] & 0xf;
3327
3328 rcu_read_lock();
3329 rcvr = find_cmd_rcvr(intf, netfn, cmd, chan);
3330 if (rcvr) {
3331 user = rcvr->user;
3332 kref_get(&user->refcount);
3333 } else
3334 user = NULL;
3335 rcu_read_unlock();
3336
3337 if (user == NULL) {
3338 /* We didn't find a user, just give up. */
3339 ipmi_inc_stat(intf, unhandled_commands);
3340
3341 /*
3342 * Don't do anything with these messages, just allow
3343 * them to be freed.
3344 */
3345
3346 rv = 0;
3347 } else {
3348 /* Deliver the message to the user. */
3349 ipmi_inc_stat(intf, handled_commands);
3350
3351 recv_msg = ipmi_alloc_recv_msg();
3352 if (!recv_msg) {
3353 /*
3354 * We couldn't allocate memory for the
3355 * message, so requeue it for handling
3356 * later.
3357 */
3358 rv = 1;
3359 kref_put(&user->refcount, free_user);
3360 } else {
3361 /*
3362 * OEM Messages are expected to be delivered via
3363 * the system interface to SMS software. We might
3364 * need to visit this again depending on OEM
3365 * requirements
3366 */
3367 smi_addr = ((struct ipmi_system_interface_addr *)
3368 &(recv_msg->addr));
3369 smi_addr->addr_type = IPMI_SYSTEM_INTERFACE_ADDR_TYPE;
3370 smi_addr->channel = IPMI_BMC_CHANNEL;
3371 smi_addr->lun = msg->rsp[0] & 3;
3372
3373 recv_msg->user = user;
3374 recv_msg->user_msg_data = NULL;
3375 recv_msg->recv_type = IPMI_OEM_RECV_TYPE;
3376 recv_msg->msg.netfn = msg->rsp[0] >> 2;
3377 recv_msg->msg.cmd = msg->rsp[1];
3378 recv_msg->msg.data = recv_msg->msg_data;
3379
3380 /*
3381 * The message starts at byte 4 which follows the
3382 * the Channel Byte in the "GET MESSAGE" command
3383 */
3384 recv_msg->msg.data_len = msg->rsp_size - 4;
3385 memcpy(recv_msg->msg_data,
3386 &(msg->rsp[4]),
3387 msg->rsp_size - 4);
3388 deliver_response(recv_msg);
3389 }
3390 }
3391
3392 return rv;
3393}
3394
3267static void copy_event_into_recv_msg(struct ipmi_recv_msg *recv_msg, 3395static void copy_event_into_recv_msg(struct ipmi_recv_msg *recv_msg,
3268 struct ipmi_smi_msg *msg) 3396 struct ipmi_smi_msg *msg)
3269{ 3397{
@@ -3519,6 +3647,17 @@ static int handle_new_recv_msg(ipmi_smi_t intf,
3519 goto out; 3647 goto out;
3520 } 3648 }
3521 3649
3650 /*
3651 ** We need to make sure the channels have been initialized.
3652 ** The channel_handler routine will set the "curr_channel"
3653 ** equal to or greater than IPMI_MAX_CHANNELS when all the
3654 ** channels for this interface have been initialized.
3655 */
3656 if (intf->curr_channel < IPMI_MAX_CHANNELS) {
3657 requeue = 1; /* Just put the message back for now */
3658 goto out;
3659 }
3660
3522 switch (intf->channels[chan].medium) { 3661 switch (intf->channels[chan].medium) {
3523 case IPMI_CHANNEL_MEDIUM_IPMB: 3662 case IPMI_CHANNEL_MEDIUM_IPMB:
3524 if (msg->rsp[4] & 0x04) { 3663 if (msg->rsp[4] & 0x04) {
@@ -3554,11 +3693,20 @@ static int handle_new_recv_msg(ipmi_smi_t intf,
3554 break; 3693 break;
3555 3694
3556 default: 3695 default:
3557 /* 3696 /* Check for OEM Channels. Clients had better
3558 * We don't handle the channel type, so just 3697 register for these commands. */
3559 * free the message. 3698 if ((intf->channels[chan].medium
3560 */ 3699 >= IPMI_CHANNEL_MEDIUM_OEM_MIN)
3561 requeue = 0; 3700 && (intf->channels[chan].medium
3701 <= IPMI_CHANNEL_MEDIUM_OEM_MAX)) {
3702 requeue = handle_oem_get_msg_cmd(intf, msg);
3703 } else {
3704 /*
3705 * We don't handle the channel type, so just
3706 * free the message.
3707 */
3708 requeue = 0;
3709 }
3562 } 3710 }
3563 3711
3564 } else if ((msg->rsp[0] == ((IPMI_NETFN_APP_REQUEST|1) << 2)) 3712 } else if ((msg->rsp[0] == ((IPMI_NETFN_APP_REQUEST|1) << 2))
@@ -3730,7 +3878,7 @@ static void check_msg_timeout(ipmi_smi_t intf, struct seq_table *ent,
3730 list_add_tail(&msg->link, timeouts); 3878 list_add_tail(&msg->link, timeouts);
3731 if (ent->broadcast) 3879 if (ent->broadcast)
3732 ipmi_inc_stat(intf, timed_out_ipmb_broadcasts); 3880 ipmi_inc_stat(intf, timed_out_ipmb_broadcasts);
3733 else if (ent->recv_msg->addr.addr_type == IPMI_LAN_ADDR_TYPE) 3881 else if (is_lan_addr(&ent->recv_msg->addr))
3734 ipmi_inc_stat(intf, timed_out_lan_commands); 3882 ipmi_inc_stat(intf, timed_out_lan_commands);
3735 else 3883 else
3736 ipmi_inc_stat(intf, timed_out_ipmb_commands); 3884 ipmi_inc_stat(intf, timed_out_ipmb_commands);
@@ -3744,15 +3892,17 @@ static void check_msg_timeout(ipmi_smi_t intf, struct seq_table *ent,
3744 */ 3892 */
3745 ent->timeout = MAX_MSG_TIMEOUT; 3893 ent->timeout = MAX_MSG_TIMEOUT;
3746 ent->retries_left--; 3894 ent->retries_left--;
3747 if (ent->recv_msg->addr.addr_type == IPMI_LAN_ADDR_TYPE)
3748 ipmi_inc_stat(intf, retransmitted_lan_commands);
3749 else
3750 ipmi_inc_stat(intf, retransmitted_ipmb_commands);
3751
3752 smi_msg = smi_from_recv_msg(intf, ent->recv_msg, slot, 3895 smi_msg = smi_from_recv_msg(intf, ent->recv_msg, slot,
3753 ent->seqid); 3896 ent->seqid);
3754 if (!smi_msg) 3897 if (!smi_msg) {
3898 if (is_lan_addr(&ent->recv_msg->addr))
3899 ipmi_inc_stat(intf,
3900 dropped_rexmit_lan_commands);
3901 else
3902 ipmi_inc_stat(intf,
3903 dropped_rexmit_ipmb_commands);
3755 return; 3904 return;
3905 }
3756 3906
3757 spin_unlock_irqrestore(&intf->seq_lock, *flags); 3907 spin_unlock_irqrestore(&intf->seq_lock, *flags);
3758 3908
@@ -3764,10 +3914,17 @@ static void check_msg_timeout(ipmi_smi_t intf, struct seq_table *ent,
3764 * resent. 3914 * resent.
3765 */ 3915 */
3766 handlers = intf->handlers; 3916 handlers = intf->handlers;
3767 if (handlers) 3917 if (handlers) {
3918 if (is_lan_addr(&ent->recv_msg->addr))
3919 ipmi_inc_stat(intf,
3920 retransmitted_lan_commands);
3921 else
3922 ipmi_inc_stat(intf,
3923 retransmitted_ipmb_commands);
3924
3768 intf->handlers->sender(intf->send_info, 3925 intf->handlers->sender(intf->send_info,
3769 smi_msg, 0); 3926 smi_msg, 0);
3770 else 3927 } else
3771 ipmi_free_smi_msg(smi_msg); 3928 ipmi_free_smi_msg(smi_msg);
3772 3929
3773 spin_lock_irqsave(&intf->seq_lock, *flags); 3930 spin_lock_irqsave(&intf->seq_lock, *flags);
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index e58ea4cd55ce..259644646b82 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -82,12 +82,6 @@
82#define SI_SHORT_TIMEOUT_USEC 250 /* .25ms when the SM request a 82#define SI_SHORT_TIMEOUT_USEC 250 /* .25ms when the SM request a
83 short timeout */ 83 short timeout */
84 84
85/* Bit for BMC global enables. */
86#define IPMI_BMC_RCV_MSG_INTR 0x01
87#define IPMI_BMC_EVT_MSG_INTR 0x02
88#define IPMI_BMC_EVT_MSG_BUFF 0x04
89#define IPMI_BMC_SYS_LOG 0x08
90
91enum si_intf_state { 85enum si_intf_state {
92 SI_NORMAL, 86 SI_NORMAL,
93 SI_GETTING_FLAGS, 87 SI_GETTING_FLAGS,
@@ -220,6 +214,9 @@ struct smi_info {
220 OEM2_DATA_AVAIL) 214 OEM2_DATA_AVAIL)
221 unsigned char msg_flags; 215 unsigned char msg_flags;
222 216
217 /* Does the BMC have an event buffer? */
218 char has_event_buffer;
219
223 /* 220 /*
224 * If set to true, this will request events the next time the 221 * If set to true, this will request events the next time the
225 * state machine is idle. 222 * state machine is idle.
@@ -968,7 +965,8 @@ static void request_events(void *send_info)
968{ 965{
969 struct smi_info *smi_info = send_info; 966 struct smi_info *smi_info = send_info;
970 967
971 if (atomic_read(&smi_info->stop_operation)) 968 if (atomic_read(&smi_info->stop_operation) ||
969 !smi_info->has_event_buffer)
972 return; 970 return;
973 971
974 atomic_set(&smi_info->req_events, 1); 972 atomic_set(&smi_info->req_events, 1);
@@ -2407,26 +2405,9 @@ static struct of_platform_driver ipmi_of_platform_driver = {
2407}; 2405};
2408#endif /* CONFIG_PPC_OF */ 2406#endif /* CONFIG_PPC_OF */
2409 2407
2410 2408static int wait_for_msg_done(struct smi_info *smi_info)
2411static int try_get_dev_id(struct smi_info *smi_info)
2412{ 2409{
2413 unsigned char msg[2];
2414 unsigned char *resp;
2415 unsigned long resp_len;
2416 enum si_sm_result smi_result; 2410 enum si_sm_result smi_result;
2417 int rv = 0;
2418
2419 resp = kmalloc(IPMI_MAX_MSG_LENGTH, GFP_KERNEL);
2420 if (!resp)
2421 return -ENOMEM;
2422
2423 /*
2424 * Do a Get Device ID command, since it comes back with some
2425 * useful info.
2426 */
2427 msg[0] = IPMI_NETFN_APP_REQUEST << 2;
2428 msg[1] = IPMI_GET_DEVICE_ID_CMD;
2429 smi_info->handlers->start_transaction(smi_info->si_sm, msg, 2);
2430 2411
2431 smi_result = smi_info->handlers->event(smi_info->si_sm, 0); 2412 smi_result = smi_info->handlers->event(smi_info->si_sm, 0);
2432 for (;;) { 2413 for (;;) {
@@ -2441,16 +2422,39 @@ static int try_get_dev_id(struct smi_info *smi_info)
2441 } else 2422 } else
2442 break; 2423 break;
2443 } 2424 }
2444 if (smi_result == SI_SM_HOSED) { 2425 if (smi_result == SI_SM_HOSED)
2445 /* 2426 /*
2446 * We couldn't get the state machine to run, so whatever's at 2427 * We couldn't get the state machine to run, so whatever's at
2447 * the port is probably not an IPMI SMI interface. 2428 * the port is probably not an IPMI SMI interface.
2448 */ 2429 */
2449 rv = -ENODEV; 2430 return -ENODEV;
2431
2432 return 0;
2433}
2434
2435static int try_get_dev_id(struct smi_info *smi_info)
2436{
2437 unsigned char msg[2];
2438 unsigned char *resp;
2439 unsigned long resp_len;
2440 int rv = 0;
2441
2442 resp = kmalloc(IPMI_MAX_MSG_LENGTH, GFP_KERNEL);
2443 if (!resp)
2444 return -ENOMEM;
2445
2446 /*
2447 * Do a Get Device ID command, since it comes back with some
2448 * useful info.
2449 */
2450 msg[0] = IPMI_NETFN_APP_REQUEST << 2;
2451 msg[1] = IPMI_GET_DEVICE_ID_CMD;
2452 smi_info->handlers->start_transaction(smi_info->si_sm, msg, 2);
2453
2454 rv = wait_for_msg_done(smi_info);
2455 if (rv)
2450 goto out; 2456 goto out;
2451 }
2452 2457
2453 /* Otherwise, we got some data. */
2454 resp_len = smi_info->handlers->get_result(smi_info->si_sm, 2458 resp_len = smi_info->handlers->get_result(smi_info->si_sm,
2455 resp, IPMI_MAX_MSG_LENGTH); 2459 resp, IPMI_MAX_MSG_LENGTH);
2456 2460
@@ -2462,6 +2466,88 @@ static int try_get_dev_id(struct smi_info *smi_info)
2462 return rv; 2466 return rv;
2463} 2467}
2464 2468
2469static int try_enable_event_buffer(struct smi_info *smi_info)
2470{
2471 unsigned char msg[3];
2472 unsigned char *resp;
2473 unsigned long resp_len;
2474 int rv = 0;
2475
2476 resp = kmalloc(IPMI_MAX_MSG_LENGTH, GFP_KERNEL);
2477 if (!resp)
2478 return -ENOMEM;
2479
2480 msg[0] = IPMI_NETFN_APP_REQUEST << 2;
2481 msg[1] = IPMI_GET_BMC_GLOBAL_ENABLES_CMD;
2482 smi_info->handlers->start_transaction(smi_info->si_sm, msg, 2);
2483
2484 rv = wait_for_msg_done(smi_info);
2485 if (rv) {
2486 printk(KERN_WARNING
2487 "ipmi_si: Error getting response from get global,"
2488 " enables command, the event buffer is not"
2489 " enabled.\n");
2490 goto out;
2491 }
2492
2493 resp_len = smi_info->handlers->get_result(smi_info->si_sm,
2494 resp, IPMI_MAX_MSG_LENGTH);
2495
2496 if (resp_len < 4 ||
2497 resp[0] != (IPMI_NETFN_APP_REQUEST | 1) << 2 ||
2498 resp[1] != IPMI_GET_BMC_GLOBAL_ENABLES_CMD ||
2499 resp[2] != 0) {
2500 printk(KERN_WARNING
2501 "ipmi_si: Invalid return from get global"
2502 " enables command, cannot enable the event"
2503 " buffer.\n");
2504 rv = -EINVAL;
2505 goto out;
2506 }
2507
2508 if (resp[3] & IPMI_BMC_EVT_MSG_BUFF)
2509 /* buffer is already enabled, nothing to do. */
2510 goto out;
2511
2512 msg[0] = IPMI_NETFN_APP_REQUEST << 2;
2513 msg[1] = IPMI_SET_BMC_GLOBAL_ENABLES_CMD;
2514 msg[2] = resp[3] | IPMI_BMC_EVT_MSG_BUFF;
2515 smi_info->handlers->start_transaction(smi_info->si_sm, msg, 3);
2516
2517 rv = wait_for_msg_done(smi_info);
2518 if (rv) {
2519 printk(KERN_WARNING
2520 "ipmi_si: Error getting response from set global,"
2521 " enables command, the event buffer is not"
2522 " enabled.\n");
2523 goto out;
2524 }
2525
2526 resp_len = smi_info->handlers->get_result(smi_info->si_sm,
2527 resp, IPMI_MAX_MSG_LENGTH);
2528
2529 if (resp_len < 3 ||
2530 resp[0] != (IPMI_NETFN_APP_REQUEST | 1) << 2 ||
2531 resp[1] != IPMI_SET_BMC_GLOBAL_ENABLES_CMD) {
2532 printk(KERN_WARNING
2533 "ipmi_si: Invalid return from get global,"
2534 "enables command, not enable the event"
2535 " buffer.\n");
2536 rv = -EINVAL;
2537 goto out;
2538 }
2539
2540 if (resp[2] != 0)
2541 /*
2542 * An error when setting the event buffer bit means
2543 * that the event buffer is not supported.
2544 */
2545 rv = -ENOENT;
2546 out:
2547 kfree(resp);
2548 return rv;
2549}
2550
2465static int type_file_read_proc(char *page, char **start, off_t off, 2551static int type_file_read_proc(char *page, char **start, off_t off,
2466 int count, int *eof, void *data) 2552 int count, int *eof, void *data)
2467{ 2553{
@@ -2847,6 +2933,10 @@ static int try_smi_init(struct smi_info *new_smi)
2847 new_smi->intf_num = smi_num; 2933 new_smi->intf_num = smi_num;
2848 smi_num++; 2934 smi_num++;
2849 2935
2936 rv = try_enable_event_buffer(new_smi);
2937 if (rv == 0)
2938 new_smi->has_event_buffer = 1;
2939
2850 /* 2940 /*
2851 * Start clearing the flags before we enable interrupts or the 2941 * Start clearing the flags before we enable interrupts or the
2852 * timer to avoid racing with the timer. 2942 * timer to avoid racing with the timer.
@@ -2863,7 +2953,7 @@ static int try_smi_init(struct smi_info *new_smi)
2863 */ 2953 */
2864 new_smi->pdev = platform_device_alloc("ipmi_si", 2954 new_smi->pdev = platform_device_alloc("ipmi_si",
2865 new_smi->intf_num); 2955 new_smi->intf_num);
2866 if (rv) { 2956 if (!new_smi->pdev) {
2867 printk(KERN_ERR 2957 printk(KERN_ERR
2868 "ipmi_si_intf:" 2958 "ipmi_si_intf:"
2869 " Unable to allocate platform device\n"); 2959 " Unable to allocate platform device\n");
diff --git a/drivers/clocksource/acpi_pm.c b/drivers/clocksource/acpi_pm.c
index ee19b6e8fcb4..40bd8c61c7d7 100644
--- a/drivers/clocksource/acpi_pm.c
+++ b/drivers/clocksource/acpi_pm.c
@@ -57,7 +57,7 @@ u32 acpi_pm_read_verified(void)
57 return v2; 57 return v2;
58} 58}
59 59
60static cycle_t acpi_pm_read(void) 60static cycle_t acpi_pm_read(struct clocksource *cs)
61{ 61{
62 return (cycle_t)read_pmtmr(); 62 return (cycle_t)read_pmtmr();
63} 63}
@@ -83,7 +83,7 @@ static int __init acpi_pm_good_setup(char *__str)
83} 83}
84__setup("acpi_pm_good", acpi_pm_good_setup); 84__setup("acpi_pm_good", acpi_pm_good_setup);
85 85
86static cycle_t acpi_pm_read_slow(void) 86static cycle_t acpi_pm_read_slow(struct clocksource *cs)
87{ 87{
88 return (cycle_t)acpi_pm_read_verified(); 88 return (cycle_t)acpi_pm_read_verified();
89} 89}
@@ -156,9 +156,9 @@ static int verify_pmtmr_rate(void)
156 unsigned long count, delta; 156 unsigned long count, delta;
157 157
158 mach_prepare_counter(); 158 mach_prepare_counter();
159 value1 = clocksource_acpi_pm.read(); 159 value1 = clocksource_acpi_pm.read(&clocksource_acpi_pm);
160 mach_countup(&count); 160 mach_countup(&count);
161 value2 = clocksource_acpi_pm.read(); 161 value2 = clocksource_acpi_pm.read(&clocksource_acpi_pm);
162 delta = (value2 - value1) & ACPI_PM_MASK; 162 delta = (value2 - value1) & ACPI_PM_MASK;
163 163
164 /* Check that the PMTMR delta is within 5% of what we expect */ 164 /* Check that the PMTMR delta is within 5% of what we expect */
@@ -195,9 +195,9 @@ static int __init init_acpi_pm_clocksource(void)
195 /* "verify" this timing source: */ 195 /* "verify" this timing source: */
196 for (j = 0; j < ACPI_PM_MONOTONICITY_CHECKS; j++) { 196 for (j = 0; j < ACPI_PM_MONOTONICITY_CHECKS; j++) {
197 udelay(100 * j); 197 udelay(100 * j);
198 value1 = clocksource_acpi_pm.read(); 198 value1 = clocksource_acpi_pm.read(&clocksource_acpi_pm);
199 for (i = 0; i < ACPI_PM_READ_CHECKS; i++) { 199 for (i = 0; i < ACPI_PM_READ_CHECKS; i++) {
200 value2 = clocksource_acpi_pm.read(); 200 value2 = clocksource_acpi_pm.read(&clocksource_acpi_pm);
201 if (value2 == value1) 201 if (value2 == value1)
202 continue; 202 continue;
203 if (value2 > value1) 203 if (value2 > value1)
diff --git a/drivers/clocksource/cyclone.c b/drivers/clocksource/cyclone.c
index 8615059a8729..64e528e8bfa6 100644
--- a/drivers/clocksource/cyclone.c
+++ b/drivers/clocksource/cyclone.c
@@ -19,7 +19,7 @@
19int use_cyclone = 0; 19int use_cyclone = 0;
20static void __iomem *cyclone_ptr; 20static void __iomem *cyclone_ptr;
21 21
22static cycle_t read_cyclone(void) 22static cycle_t read_cyclone(struct clocksource *cs)
23{ 23{
24 return (cycle_t)readl(cyclone_ptr); 24 return (cycle_t)readl(cyclone_ptr);
25} 25}
diff --git a/drivers/clocksource/scx200_hrt.c b/drivers/clocksource/scx200_hrt.c
index b92da677aa5d..27f4d9637b62 100644
--- a/drivers/clocksource/scx200_hrt.c
+++ b/drivers/clocksource/scx200_hrt.c
@@ -43,7 +43,7 @@ MODULE_PARM_DESC(ppm, "+-adjust to actual XO freq (ppm)");
43/* The base timer frequency, * 27 if selected */ 43/* The base timer frequency, * 27 if selected */
44#define HRT_FREQ 1000000 44#define HRT_FREQ 1000000
45 45
46static cycle_t read_hrt(void) 46static cycle_t read_hrt(struct clocksource *cs)
47{ 47{
48 /* Read the timer value */ 48 /* Read the timer value */
49 return (cycle_t) inl(scx200_cb_base + SCx200_TIMER_OFFSET); 49 return (cycle_t) inl(scx200_cb_base + SCx200_TIMER_OFFSET);
diff --git a/drivers/clocksource/tcb_clksrc.c b/drivers/clocksource/tcb_clksrc.c
index 254f1064d973..01b886e68822 100644
--- a/drivers/clocksource/tcb_clksrc.c
+++ b/drivers/clocksource/tcb_clksrc.c
@@ -39,7 +39,7 @@
39 39
40static void __iomem *tcaddr; 40static void __iomem *tcaddr;
41 41
42static cycle_t tc_get_cycles(void) 42static cycle_t tc_get_cycles(struct clocksource *cs)
43{ 43{
44 unsigned long flags; 44 unsigned long flags;
45 u32 lower, upper; 45 u32 lower, upper;
diff --git a/drivers/edac/mpc85xx_edac.c b/drivers/edac/mpc85xx_edac.c
index 4637a4a757df..7c8c2d72916f 100644
--- a/drivers/edac/mpc85xx_edac.c
+++ b/drivers/edac/mpc85xx_edac.c
@@ -674,7 +674,7 @@ static void mpc85xx_mc_check(struct mem_ctl_info *mci)
674 int row_index; 674 int row_index;
675 675
676 err_detect = in_be32(pdata->mc_vbase + MPC85XX_MC_ERR_DETECT); 676 err_detect = in_be32(pdata->mc_vbase + MPC85XX_MC_ERR_DETECT);
677 if (err_detect) 677 if (!err_detect)
678 return; 678 return;
679 679
680 mpc85xx_mc_printk(mci, KERN_ERR, "Err Detect Register: %#8.8x\n", 680 mpc85xx_mc_printk(mci, KERN_ERR, "Err Detect Register: %#8.8x\n",
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index a000cf028826..051134c56aef 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -713,18 +713,18 @@ static int i915_cmdbuffer(struct drm_device *dev, void *data,
713 mutex_unlock(&dev->struct_mutex); 713 mutex_unlock(&dev->struct_mutex);
714 if (ret) { 714 if (ret) {
715 DRM_ERROR("i915_dispatch_cmdbuffer failed\n"); 715 DRM_ERROR("i915_dispatch_cmdbuffer failed\n");
716 goto fail_batch_free; 716 goto fail_clip_free;
717 } 717 }
718 718
719 if (sarea_priv) 719 if (sarea_priv)
720 sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv); 720 sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv);
721 721
722fail_batch_free:
723 drm_free(batch_data, cmdbuf->sz, DRM_MEM_DRIVER);
724fail_clip_free: 722fail_clip_free:
725 drm_free(cliprects, 723 drm_free(cliprects,
726 cmdbuf->num_cliprects * sizeof(struct drm_clip_rect), 724 cmdbuf->num_cliprects * sizeof(struct drm_clip_rect),
727 DRM_MEM_DRIVER); 725 DRM_MEM_DRIVER);
726fail_batch_free:
727 drm_free(batch_data, cmdbuf->sz, DRM_MEM_DRIVER);
728 728
729 return ret; 729 return ret;
730} 730}
@@ -1232,7 +1232,7 @@ int i915_driver_unload(struct drm_device *dev)
1232 if (dev_priv->regs != NULL) 1232 if (dev_priv->regs != NULL)
1233 iounmap(dev_priv->regs); 1233 iounmap(dev_priv->regs);
1234 1234
1235 intel_opregion_free(dev); 1235 intel_opregion_free(dev, 0);
1236 1236
1237 if (drm_core_check_feature(dev, DRIVER_MODESET)) { 1237 if (drm_core_check_feature(dev, DRIVER_MODESET)) {
1238 intel_modeset_cleanup(dev); 1238 intel_modeset_cleanup(dev);
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 6503e2210f65..98560e1e899a 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -77,7 +77,7 @@ static int i915_suspend(struct drm_device *dev, pm_message_t state)
77 drm_irq_uninstall(dev); 77 drm_irq_uninstall(dev);
78 } 78 }
79 79
80 intel_opregion_free(dev); 80 intel_opregion_free(dev, 1);
81 81
82 if (state.event == PM_EVENT_SUSPEND) { 82 if (state.event == PM_EVENT_SUSPEND) {
83 /* Shut down the device */ 83 /* Shut down the device */
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 473a8f7fbdb5..25065923b8a8 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -674,12 +674,12 @@ extern int i915_restore_state(struct drm_device *dev);
674#ifdef CONFIG_ACPI 674#ifdef CONFIG_ACPI
675/* i915_opregion.c */ 675/* i915_opregion.c */
676extern int intel_opregion_init(struct drm_device *dev, int resume); 676extern int intel_opregion_init(struct drm_device *dev, int resume);
677extern void intel_opregion_free(struct drm_device *dev); 677extern void intel_opregion_free(struct drm_device *dev, int suspend);
678extern void opregion_asle_intr(struct drm_device *dev); 678extern void opregion_asle_intr(struct drm_device *dev);
679extern void opregion_enable_asle(struct drm_device *dev); 679extern void opregion_enable_asle(struct drm_device *dev);
680#else 680#else
681static inline int intel_opregion_init(struct drm_device *dev, int resume) { return 0; } 681static inline int intel_opregion_init(struct drm_device *dev, int resume) { return 0; }
682static inline void intel_opregion_free(struct drm_device *dev) { return; } 682static inline void intel_opregion_free(struct drm_device *dev, int suspend) { return; }
683static inline void opregion_asle_intr(struct drm_device *dev) { return; } 683static inline void opregion_asle_intr(struct drm_device *dev) { return; }
684static inline void opregion_enable_asle(struct drm_device *dev) { return; } 684static inline void opregion_enable_asle(struct drm_device *dev) { return; }
685#endif 685#endif
@@ -787,7 +787,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
787 (dev)->pci_device == 0x2A42 || \ 787 (dev)->pci_device == 0x2A42 || \
788 (dev)->pci_device == 0x2E02 || \ 788 (dev)->pci_device == 0x2E02 || \
789 (dev)->pci_device == 0x2E12 || \ 789 (dev)->pci_device == 0x2E12 || \
790 (dev)->pci_device == 0x2E22) 790 (dev)->pci_device == 0x2E22 || \
791 (dev)->pci_device == 0x2E32)
791 792
792#define IS_I965GM(dev) ((dev)->pci_device == 0x2A02) 793#define IS_I965GM(dev) ((dev)->pci_device == 0x2A02)
793 794
@@ -796,6 +797,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
796#define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \ 797#define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \
797 (dev)->pci_device == 0x2E12 || \ 798 (dev)->pci_device == 0x2E12 || \
798 (dev)->pci_device == 0x2E22 || \ 799 (dev)->pci_device == 0x2E22 || \
800 (dev)->pci_device == 0x2E32 || \
799 IS_GM45(dev)) 801 IS_GM45(dev))
800 802
801#define IS_IGDG(dev) ((dev)->pci_device == 0xa001) 803#define IS_IGDG(dev) ((dev)->pci_device == 0xa001)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 4642115902d6..ee896d91c5bc 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -4087,8 +4087,10 @@ i915_gem_entervt_ioctl(struct drm_device *dev, void *data,
4087 dev_priv->mm.suspended = 0; 4087 dev_priv->mm.suspended = 0;
4088 4088
4089 ret = i915_gem_init_ringbuffer(dev); 4089 ret = i915_gem_init_ringbuffer(dev);
4090 if (ret != 0) 4090 if (ret != 0) {
4091 mutex_unlock(&dev->struct_mutex);
4091 return ret; 4092 return ret;
4093 }
4092 4094
4093 spin_lock(&dev_priv->mm.active_list_lock); 4095 spin_lock(&dev_priv->mm.active_list_lock);
4094 BUG_ON(!list_empty(&dev_priv->mm.active_list)); 4096 BUG_ON(!list_empty(&dev_priv->mm.active_list));
diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c
index f27e523c764f..52a059354e83 100644
--- a/drivers/gpu/drm/i915/i915_gem_tiling.c
+++ b/drivers/gpu/drm/i915/i915_gem_tiling.c
@@ -283,7 +283,6 @@ i915_gem_set_tiling(struct drm_device *dev, void *data,
283 mutex_lock(&dev->struct_mutex); 283 mutex_lock(&dev->struct_mutex);
284 284
285 if (args->tiling_mode == I915_TILING_NONE) { 285 if (args->tiling_mode == I915_TILING_NONE) {
286 obj_priv->tiling_mode = I915_TILING_NONE;
287 args->swizzle_mode = I915_BIT_6_SWIZZLE_NONE; 286 args->swizzle_mode = I915_BIT_6_SWIZZLE_NONE;
288 } else { 287 } else {
289 if (args->tiling_mode == I915_TILING_X) 288 if (args->tiling_mode == I915_TILING_X)
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index ee7ce7b78cf7..98bb4c878c4e 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -406,7 +406,7 @@ int i915_irq_emit(struct drm_device *dev, void *data,
406 drm_i915_irq_emit_t *emit = data; 406 drm_i915_irq_emit_t *emit = data;
407 int result; 407 int result;
408 408
409 if (!dev_priv) { 409 if (!dev_priv || !dev_priv->ring.virtual_start) {
410 DRM_ERROR("called with no initialization\n"); 410 DRM_ERROR("called with no initialization\n");
411 return -EINVAL; 411 return -EINVAL;
412 } 412 }
diff --git a/drivers/gpu/drm/i915/i915_opregion.c b/drivers/gpu/drm/i915/i915_opregion.c
index 69427722d20e..dc425e74a268 100644
--- a/drivers/gpu/drm/i915/i915_opregion.c
+++ b/drivers/gpu/drm/i915/i915_opregion.c
@@ -370,11 +370,8 @@ int intel_opregion_init(struct drm_device *dev, int resume)
370 if (mboxes & MBOX_ACPI) { 370 if (mboxes & MBOX_ACPI) {
371 DRM_DEBUG("Public ACPI methods supported\n"); 371 DRM_DEBUG("Public ACPI methods supported\n");
372 opregion->acpi = base + OPREGION_ACPI_OFFSET; 372 opregion->acpi = base + OPREGION_ACPI_OFFSET;
373 if (drm_core_check_feature(dev, DRIVER_MODESET)) { 373 if (drm_core_check_feature(dev, DRIVER_MODESET))
374 intel_didl_outputs(dev); 374 intel_didl_outputs(dev);
375 if (!resume)
376 acpi_video_register();
377 }
378 } else { 375 } else {
379 DRM_DEBUG("Public ACPI methods not supported\n"); 376 DRM_DEBUG("Public ACPI methods not supported\n");
380 err = -ENOTSUPP; 377 err = -ENOTSUPP;
@@ -389,8 +386,13 @@ int intel_opregion_init(struct drm_device *dev, int resume)
389 if (mboxes & MBOX_ASLE) { 386 if (mboxes & MBOX_ASLE) {
390 DRM_DEBUG("ASLE supported\n"); 387 DRM_DEBUG("ASLE supported\n");
391 opregion->asle = base + OPREGION_ASLE_OFFSET; 388 opregion->asle = base + OPREGION_ASLE_OFFSET;
389 opregion_enable_asle(dev);
392 } 390 }
393 391
392 if (!resume)
393 acpi_video_register();
394
395
394 /* Notify BIOS we are ready to handle ACPI video ext notifs. 396 /* Notify BIOS we are ready to handle ACPI video ext notifs.
395 * Right now, all the events are handled by the ACPI video module. 397 * Right now, all the events are handled by the ACPI video module.
396 * We don't actually need to do anything with them. */ 398 * We don't actually need to do anything with them. */
@@ -408,7 +410,7 @@ err_out:
408 return err; 410 return err;
409} 411}
410 412
411void intel_opregion_free(struct drm_device *dev) 413void intel_opregion_free(struct drm_device *dev, int suspend)
412{ 414{
413 struct drm_i915_private *dev_priv = dev->dev_private; 415 struct drm_i915_private *dev_priv = dev->dev_private;
414 struct intel_opregion *opregion = &dev_priv->opregion; 416 struct intel_opregion *opregion = &dev_priv->opregion;
@@ -416,6 +418,9 @@ void intel_opregion_free(struct drm_device *dev)
416 if (!opregion->enabled) 418 if (!opregion->enabled)
417 return; 419 return;
418 420
421 if (!suspend)
422 acpi_video_exit();
423
419 opregion->acpi->drdy = 0; 424 opregion->acpi->drdy = 0;
420 425
421 system_opregion = NULL; 426 system_opregion = NULL;
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index e805b590ae71..521194732266 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -1446,6 +1446,7 @@
1446#define DISPPLANE_NO_LINE_DOUBLE 0 1446#define DISPPLANE_NO_LINE_DOUBLE 0
1447#define DISPPLANE_STEREO_POLARITY_FIRST 0 1447#define DISPPLANE_STEREO_POLARITY_FIRST 0
1448#define DISPPLANE_STEREO_POLARITY_SECOND (1<<18) 1448#define DISPPLANE_STEREO_POLARITY_SECOND (1<<18)
1449#define DISPPLANE_TILED (1<<10)
1449#define DSPAADDR 0x70184 1450#define DSPAADDR 0x70184
1450#define DSPASTRIDE 0x70188 1451#define DSPASTRIDE 0x70188
1451#define DSPAPOS 0x7018C /* reserved */ 1452#define DSPAPOS 0x7018C /* reserved */
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index c2c8e95ff14d..bdcda36953b0 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -657,6 +657,7 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
657 int dspbase = (pipe == 0 ? DSPAADDR : DSPBADDR); 657 int dspbase = (pipe == 0 ? DSPAADDR : DSPBADDR);
658 int dspsurf = (pipe == 0 ? DSPASURF : DSPBSURF); 658 int dspsurf = (pipe == 0 ? DSPASURF : DSPBSURF);
659 int dspstride = (pipe == 0) ? DSPASTRIDE : DSPBSTRIDE; 659 int dspstride = (pipe == 0) ? DSPASTRIDE : DSPBSTRIDE;
660 int dsptileoff = (pipe == 0 ? DSPATILEOFF : DSPBTILEOFF);
660 int dspcntr_reg = (pipe == 0) ? DSPACNTR : DSPBCNTR; 661 int dspcntr_reg = (pipe == 0) ? DSPACNTR : DSPBCNTR;
661 u32 dspcntr, alignment; 662 u32 dspcntr, alignment;
662 int ret; 663 int ret;
@@ -733,6 +734,13 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
733 mutex_unlock(&dev->struct_mutex); 734 mutex_unlock(&dev->struct_mutex);
734 return -EINVAL; 735 return -EINVAL;
735 } 736 }
737 if (IS_I965G(dev)) {
738 if (obj_priv->tiling_mode != I915_TILING_NONE)
739 dspcntr |= DISPPLANE_TILED;
740 else
741 dspcntr &= ~DISPPLANE_TILED;
742 }
743
736 I915_WRITE(dspcntr_reg, dspcntr); 744 I915_WRITE(dspcntr_reg, dspcntr);
737 745
738 Start = obj_priv->gtt_offset; 746 Start = obj_priv->gtt_offset;
@@ -745,6 +753,7 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
745 I915_READ(dspbase); 753 I915_READ(dspbase);
746 I915_WRITE(dspsurf, Start); 754 I915_WRITE(dspsurf, Start);
747 I915_READ(dspsurf); 755 I915_READ(dspsurf);
756 I915_WRITE(dsptileoff, (y << 16) | x);
748 } else { 757 } else {
749 I915_WRITE(dspbase, Start + Offset); 758 I915_WRITE(dspbase, Start + Offset);
750 I915_READ(dspbase); 759 I915_READ(dspbase);
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index 3aec19d1fdfc..3d4e09969763 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -609,7 +609,7 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive)
609 struct request *rq = hwif->rq; 609 struct request *rq = hwif->rq;
610 ide_expiry_t *expiry = NULL; 610 ide_expiry_t *expiry = NULL;
611 int dma_error = 0, dma, thislen, uptodate = 0; 611 int dma_error = 0, dma, thislen, uptodate = 0;
612 int write = (rq_data_dir(rq) == WRITE) ? 1 : 0, rc, nsectors; 612 int write = (rq_data_dir(rq) == WRITE) ? 1 : 0, rc = 0, nsectors;
613 int sense = blk_sense_request(rq); 613 int sense = blk_sense_request(rq);
614 unsigned int timeout; 614 unsigned int timeout;
615 u16 len; 615 u16 len;
diff --git a/drivers/ide/ide-gd.c b/drivers/ide/ide-gd.c
index 1aebdf1a4f58..4b6b71e2cdf5 100644
--- a/drivers/ide/ide-gd.c
+++ b/drivers/ide/ide-gd.c
@@ -7,6 +7,7 @@
7#include <linux/mutex.h> 7#include <linux/mutex.h>
8#include <linux/ide.h> 8#include <linux/ide.h>
9#include <linux/hdreg.h> 9#include <linux/hdreg.h>
10#include <linux/dmi.h>
10 11
11#if !defined(CONFIG_DEBUG_BLOCK_EXT_DEVT) 12#if !defined(CONFIG_DEBUG_BLOCK_EXT_DEVT)
12#define IDE_DISK_MINORS (1 << PARTN_BITS) 13#define IDE_DISK_MINORS (1 << PARTN_BITS)
@@ -99,6 +100,19 @@ static void ide_gd_resume(ide_drive_t *drive)
99 (void)drive->disk_ops->get_capacity(drive); 100 (void)drive->disk_ops->get_capacity(drive);
100} 101}
101 102
103static const struct dmi_system_id ide_coldreboot_table[] = {
104 {
105 /* Acer TravelMate 66x cuts power during reboot */
106 .ident = "Acer TravelMate 660",
107 .matches = {
108 DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
109 DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 660"),
110 },
111 },
112
113 { } /* terminate list */
114};
115
102static void ide_gd_shutdown(ide_drive_t *drive) 116static void ide_gd_shutdown(ide_drive_t *drive)
103{ 117{
104#ifdef CONFIG_ALPHA 118#ifdef CONFIG_ALPHA
@@ -115,7 +129,8 @@ static void ide_gd_shutdown(ide_drive_t *drive)
115 the disk to expire its write cache. */ 129 the disk to expire its write cache. */
116 if (system_state != SYSTEM_POWER_OFF) { 130 if (system_state != SYSTEM_POWER_OFF) {
117#else 131#else
118 if (system_state == SYSTEM_RESTART) { 132 if (system_state == SYSTEM_RESTART &&
133 !dmi_check_system(ide_coldreboot_table)) {
119#endif 134#endif
120 drive->disk_ops->flush(drive); 135 drive->disk_ops->flush(drive);
121 return; 136 return;
diff --git a/drivers/ide/palm_bk3710.c b/drivers/ide/palm_bk3710.c
index c7acca0b8733..09d813d313f4 100644
--- a/drivers/ide/palm_bk3710.c
+++ b/drivers/ide/palm_bk3710.c
@@ -39,27 +39,12 @@
39/* Primary Control Offset */ 39/* Primary Control Offset */
40#define IDE_PALM_ATA_PRI_CTL_OFFSET 0x3F6 40#define IDE_PALM_ATA_PRI_CTL_OFFSET 0x3F6
41 41
42/*
43 * PalmChip 3710 IDE Controller UDMA timing structure Definition
44 */
45struct palm_bk3710_udmatiming {
46 unsigned int rptime; /* Ready to pause time */
47 unsigned int cycletime; /* Cycle Time */
48};
49
50#define BK3710_BMICP 0x00 42#define BK3710_BMICP 0x00
51#define BK3710_BMISP 0x02 43#define BK3710_BMISP 0x02
52#define BK3710_BMIDTP 0x04 44#define BK3710_BMIDTP 0x04
53#define BK3710_BMICS 0x08
54#define BK3710_BMISS 0x0A
55#define BK3710_BMIDTS 0x0C
56#define BK3710_IDETIMP 0x40 45#define BK3710_IDETIMP 0x40
57#define BK3710_IDETIMS 0x42
58#define BK3710_SIDETIM 0x44
59#define BK3710_SLEWCTL 0x45
60#define BK3710_IDESTATUS 0x47 46#define BK3710_IDESTATUS 0x47
61#define BK3710_UDMACTL 0x48 47#define BK3710_UDMACTL 0x48
62#define BK3710_UDMATIM 0x4A
63#define BK3710_MISCCTL 0x50 48#define BK3710_MISCCTL 0x50
64#define BK3710_REGSTB 0x54 49#define BK3710_REGSTB 0x54
65#define BK3710_REGRCVR 0x58 50#define BK3710_REGRCVR 0x58
@@ -71,17 +56,22 @@ struct palm_bk3710_udmatiming {
71#define BK3710_UDMATRP 0x70 56#define BK3710_UDMATRP 0x70
72#define BK3710_UDMAENV 0x74 57#define BK3710_UDMAENV 0x74
73#define BK3710_IORDYTMP 0x78 58#define BK3710_IORDYTMP 0x78
74#define BK3710_IORDYTMS 0x7C
75 59
76static unsigned ideclk_period; /* in nanoseconds */ 60static unsigned ideclk_period; /* in nanoseconds */
77 61
62struct palm_bk3710_udmatiming {
63 unsigned int rptime; /* tRP -- Ready to pause time (nsec) */
64 unsigned int cycletime; /* tCYCTYP2/2 -- avg Cycle Time (nsec) */
65 /* tENV is always a minimum of 20 nsec */
66};
67
78static const struct palm_bk3710_udmatiming palm_bk3710_udmatimings[6] = { 68static const struct palm_bk3710_udmatiming palm_bk3710_udmatimings[6] = {
79 {160, 240}, /* UDMA Mode 0 */ 69 { 160, 240 / 2 }, /* UDMA Mode 0 */
80 {125, 160}, /* UDMA Mode 1 */ 70 { 125, 160 / 2 }, /* UDMA Mode 1 */
81 {100, 120}, /* UDMA Mode 2 */ 71 { 100, 120 / 2 }, /* UDMA Mode 2 */
82 {100, 90}, /* UDMA Mode 3 */ 72 { 100, 90 / 2 }, /* UDMA Mode 3 */
83 {100, 60}, /* UDMA Mode 4 */ 73 { 100, 60 / 2 }, /* UDMA Mode 4 */
84 {85, 40}, /* UDMA Mode 5 */ 74 { 85, 40 / 2 }, /* UDMA Mode 5 */
85}; 75};
86 76
87static void palm_bk3710_setudmamode(void __iomem *base, unsigned int dev, 77static void palm_bk3710_setudmamode(void __iomem *base, unsigned int dev,
@@ -98,11 +88,6 @@ static void palm_bk3710_setudmamode(void __iomem *base, unsigned int dev,
98 trp = DIV_ROUND_UP(palm_bk3710_udmatimings[mode].rptime, 88 trp = DIV_ROUND_UP(palm_bk3710_udmatimings[mode].rptime,
99 ideclk_period) - 1; 89 ideclk_period) - 1;
100 90
101 /* udmatim Register */
102 val16 = readw(base + BK3710_UDMATIM) & (dev ? 0xFF0F : 0xFFF0);
103 val16 |= (mode << (dev ? 4 : 0));
104 writew(val16, base + BK3710_UDMATIM);
105
106 /* udmastb Ultra DMA Access Strobe Width */ 91 /* udmastb Ultra DMA Access Strobe Width */
107 val32 = readl(base + BK3710_UDMASTB) & (0xFF << (dev ? 0 : 8)); 92 val32 = readl(base + BK3710_UDMASTB) & (0xFF << (dev ? 0 : 8));
108 val32 |= (t0 << (dev ? 8 : 0)); 93 val32 |= (t0 << (dev ? 8 : 0));
@@ -163,10 +148,11 @@ static void palm_bk3710_setpiomode(void __iomem *base, ide_drive_t *mate,
163 u32 val32; 148 u32 val32;
164 struct ide_timing *t; 149 struct ide_timing *t;
165 150
151 t = ide_timing_find_mode(XFER_PIO_0 + mode);
152
166 /* PIO Data Setup */ 153 /* PIO Data Setup */
167 t0 = DIV_ROUND_UP(cycletime, ideclk_period); 154 t0 = DIV_ROUND_UP(cycletime, ideclk_period);
168 t2 = DIV_ROUND_UP(ide_timing_find_mode(XFER_PIO_0 + mode)->active, 155 t2 = DIV_ROUND_UP(t->active, ideclk_period);
169 ideclk_period);
170 156
171 t2i = t0 - t2 - 1; 157 t2i = t0 - t2 - 1;
172 t2 -= 1; 158 t2 -= 1;
@@ -187,7 +173,6 @@ static void palm_bk3710_setpiomode(void __iomem *base, ide_drive_t *mate,
187 } 173 }
188 174
189 /* TASKFILE Setup */ 175 /* TASKFILE Setup */
190 t = ide_timing_find_mode(XFER_PIO_0 + mode);
191 t0 = DIV_ROUND_UP(t->cyc8b, ideclk_period); 176 t0 = DIV_ROUND_UP(t->cyc8b, ideclk_period);
192 t2 = DIV_ROUND_UP(t->act8b, ideclk_period); 177 t2 = DIV_ROUND_UP(t->act8b, ideclk_period);
193 178
@@ -236,42 +221,23 @@ static void palm_bk3710_set_pio_mode(ide_drive_t *drive, u8 pio)
236static void __devinit palm_bk3710_chipinit(void __iomem *base) 221static void __devinit palm_bk3710_chipinit(void __iomem *base)
237{ 222{
238 /* 223 /*
239 * enable the reset_en of ATA controller so that when ata signals 224 * REVISIT: the ATA reset signal needs to be managed through a
240 * are brought out, by writing into device config. at that 225 * GPIO, which means it should come from platform_data. Until
241 * time por_n signal should not be 'Z' and have a stable value. 226 * we get and use such information, we have to trust that things
227 * have been reset before we get here.
242 */ 228 */
243 writel(0x0300, base + BK3710_MISCCTL);
244
245 /* wait for some time and deassert the reset of ATA Device. */
246 mdelay(100);
247
248 /* Deassert the Reset */
249 writel(0x0200, base + BK3710_MISCCTL);
250 229
251 /* 230 /*
252 * Program the IDETIMP Register Value based on the following assumptions 231 * Program the IDETIMP Register Value based on the following assumptions
253 * 232 *
254 * (ATA_IDETIMP_IDEEN , ENABLE ) | 233 * (ATA_IDETIMP_IDEEN , ENABLE ) |
255 * (ATA_IDETIMP_SLVTIMEN , DISABLE) |
256 * (ATA_IDETIMP_RDYSMPL , 70NS) |
257 * (ATA_IDETIMP_RDYRCVRY , 50NS) |
258 * (ATA_IDETIMP_DMAFTIM1 , PIOCOMP) |
259 * (ATA_IDETIMP_PREPOST1 , DISABLE) | 234 * (ATA_IDETIMP_PREPOST1 , DISABLE) |
260 * (ATA_IDETIMP_RDYSEN1 , DISABLE) |
261 * (ATA_IDETIMP_PIOFTIM1 , DISABLE) |
262 * (ATA_IDETIMP_DMAFTIM0 , PIOCOMP) |
263 * (ATA_IDETIMP_PREPOST0 , DISABLE) | 235 * (ATA_IDETIMP_PREPOST0 , DISABLE) |
264 * (ATA_IDETIMP_RDYSEN0 , DISABLE) | 236 *
265 * (ATA_IDETIMP_PIOFTIM0 , DISABLE) 237 * DM6446 silicon rev 2.1 and earlier have no observed net benefit
266 */ 238 * from enabling prefetch/postwrite.
267 writew(0xB388, base + BK3710_IDETIMP);
268
269 /*
270 * Configure SIDETIM Register
271 * (ATA_SIDETIM_RDYSMPS1 ,120NS ) |
272 * (ATA_SIDETIM_RDYRCYS1 ,120NS )
273 */ 239 */
274 writeb(0, base + BK3710_SIDETIM); 240 writew(BIT(15), base + BK3710_IDETIMP);
275 241
276 /* 242 /*
277 * UDMACTL Ultra-ATA DMA Control 243 * UDMACTL Ultra-ATA DMA Control
@@ -283,11 +249,11 @@ static void __devinit palm_bk3710_chipinit(void __iomem *base)
283 249
284 /* 250 /*
285 * MISCCTL Miscellaneous Conrol Register 251 * MISCCTL Miscellaneous Conrol Register
286 * (ATA_MISCCTL_RSTMODEP , 1) | 252 * (ATA_MISCCTL_HWNHLD1P , 1 cycle)
287 * (ATA_MISCCTL_RESETP , 0) | 253 * (ATA_MISCCTL_HWNHLD0P , 1 cycle)
288 * (ATA_MISCCTL_TIMORIDE , 1) 254 * (ATA_MISCCTL_TIMORIDE , 1)
289 */ 255 */
290 writel(0x201, base + BK3710_MISCCTL); 256 writel(0x001, base + BK3710_MISCCTL);
291 257
292 /* 258 /*
293 * IORDYTMP IORDY Timer for Primary Register 259 * IORDYTMP IORDY Timer for Primary Register
@@ -357,10 +323,9 @@ static int __init palm_bk3710_probe(struct platform_device *pdev)
357 323
358 clk_enable(clk); 324 clk_enable(clk);
359 rate = clk_get_rate(clk); 325 rate = clk_get_rate(clk);
360 ideclk_period = 1000000000UL / rate;
361 326
362 /* Register the IDE interface with Linux ATA Interface */ 327 /* NOTE: round *down* to meet minimum timings; we count in clocks */
363 memset(&hw, 0, sizeof(hw)); 328 ideclk_period = 1000000000UL / rate;
364 329
365 mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); 330 mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
366 if (mem == NULL) { 331 if (mem == NULL) {
@@ -390,6 +355,7 @@ static int __init palm_bk3710_probe(struct platform_device *pdev)
390 /* Configure the Palm Chip controller */ 355 /* Configure the Palm Chip controller */
391 palm_bk3710_chipinit(base); 356 palm_bk3710_chipinit(base);
392 357
358 memset(&hw, 0, sizeof(hw));
393 for (i = 0; i < IDE_NR_PORTS - 2; i++) 359 for (i = 0; i < IDE_NR_PORTS - 2; i++)
394 hw.io_ports_array[i] = (unsigned long) 360 hw.io_ports_array[i] = (unsigned long)
395 (base + IDE_PALM_ATA_PRI_REG_OFFSET + i); 361 (base + IDE_PALM_ATA_PRI_REG_OFFSET + i);
@@ -402,6 +368,7 @@ static int __init palm_bk3710_probe(struct platform_device *pdev)
402 palm_bk3710_port_info.udma_mask = rate < 100000000 ? ATA_UDMA4 : 368 palm_bk3710_port_info.udma_mask = rate < 100000000 ? ATA_UDMA4 :
403 ATA_UDMA5; 369 ATA_UDMA5;
404 370
371 /* Register the IDE interface with Linux */
405 rc = ide_host_add(&palm_bk3710_port_info, hws, NULL); 372 rc = ide_host_add(&palm_bk3710_port_info, hws, NULL);
406 if (rc) 373 if (rc)
407 goto out; 374 goto out;
diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c b/drivers/infiniband/hw/cxgb3/iwch_cm.c
index fef3f1ae7225..52d7bb0c2a12 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_cm.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c
@@ -1830,6 +1830,10 @@ int iwch_accept_cr(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
1830 ep->com.rpl_err = 0; 1830 ep->com.rpl_err = 0;
1831 ep->ird = conn_param->ird; 1831 ep->ird = conn_param->ird;
1832 ep->ord = conn_param->ord; 1832 ep->ord = conn_param->ord;
1833
1834 if (peer2peer && ep->ird == 0)
1835 ep->ird = 1;
1836
1833 PDBG("%s %d ird %d ord %d\n", __func__, __LINE__, ep->ird, ep->ord); 1837 PDBG("%s %d ird %d ord %d\n", __func__, __LINE__, ep->ird, ep->ord);
1834 1838
1835 get_ep(&ep->com); 1839 get_ep(&ep->com);
@@ -1915,6 +1919,10 @@ int iwch_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
1915 conn_param->private_data, ep->plen); 1919 conn_param->private_data, ep->plen);
1916 ep->ird = conn_param->ird; 1920 ep->ird = conn_param->ird;
1917 ep->ord = conn_param->ord; 1921 ep->ord = conn_param->ord;
1922
1923 if (peer2peer && ep->ord == 0)
1924 ep->ord = 1;
1925
1918 ep->com.tdev = h->rdev.t3cdev_p; 1926 ep->com.tdev = h->rdev.t3cdev_p;
1919 1927
1920 cm_id->add_ref(cm_id); 1928 cm_id->add_ref(cm_id);
diff --git a/drivers/infiniband/hw/cxgb3/iwch_qp.c b/drivers/infiniband/hw/cxgb3/iwch_qp.c
index 2f546a625330..27bbdc8e773a 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_qp.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_qp.c
@@ -1069,7 +1069,6 @@ int iwch_modify_qp(struct iwch_dev *rhp, struct iwch_qp *qhp,
1069 goto out; 1069 goto out;
1070 } 1070 }
1071 qhp->attr.state = IWCH_QP_STATE_IDLE; 1071 qhp->attr.state = IWCH_QP_STATE_IDLE;
1072 memset(&qhp->attr, 0, sizeof(qhp->attr));
1073 break; 1072 break;
1074 case IWCH_QP_STATE_TERMINATE: 1073 case IWCH_QP_STATE_TERMINATE:
1075 if (!internal) { 1074 if (!internal) {
diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c
index c33e1c53c799..6d55f9d748f6 100644
--- a/drivers/infiniband/hw/mthca/mthca_cmd.c
+++ b/drivers/infiniband/hw/mthca/mthca_cmd.c
@@ -157,13 +157,15 @@ enum {
157enum { 157enum {
158 CMD_TIME_CLASS_A = (HZ + 999) / 1000 + 1, 158 CMD_TIME_CLASS_A = (HZ + 999) / 1000 + 1,
159 CMD_TIME_CLASS_B = (HZ + 99) / 100 + 1, 159 CMD_TIME_CLASS_B = (HZ + 99) / 100 + 1,
160 CMD_TIME_CLASS_C = (HZ + 9) / 10 + 1 160 CMD_TIME_CLASS_C = (HZ + 9) / 10 + 1,
161 CMD_TIME_CLASS_D = 60 * HZ
161}; 162};
162#else 163#else
163enum { 164enum {
164 CMD_TIME_CLASS_A = 60 * HZ, 165 CMD_TIME_CLASS_A = 60 * HZ,
165 CMD_TIME_CLASS_B = 60 * HZ, 166 CMD_TIME_CLASS_B = 60 * HZ,
166 CMD_TIME_CLASS_C = 60 * HZ 167 CMD_TIME_CLASS_C = 60 * HZ,
168 CMD_TIME_CLASS_D = 60 * HZ
167}; 169};
168#endif 170#endif
169 171
@@ -598,7 +600,7 @@ int mthca_SYS_EN(struct mthca_dev *dev, u8 *status)
598 u64 out; 600 u64 out;
599 int ret; 601 int ret;
600 602
601 ret = mthca_cmd_imm(dev, 0, &out, 0, 0, CMD_SYS_EN, HZ, status); 603 ret = mthca_cmd_imm(dev, 0, &out, 0, 0, CMD_SYS_EN, CMD_TIME_CLASS_D, status);
602 604
603 if (*status == MTHCA_CMD_STAT_DDR_MEM_ERR) 605 if (*status == MTHCA_CMD_STAT_DDR_MEM_ERR)
604 mthca_warn(dev, "SYS_EN DDR error: syn=%x, sock=%d, " 606 mthca_warn(dev, "SYS_EN DDR error: syn=%x, sock=%d, "
@@ -611,7 +613,7 @@ int mthca_SYS_EN(struct mthca_dev *dev, u8 *status)
611 613
612int mthca_SYS_DIS(struct mthca_dev *dev, u8 *status) 614int mthca_SYS_DIS(struct mthca_dev *dev, u8 *status)
613{ 615{
614 return mthca_cmd(dev, 0, 0, 0, CMD_SYS_DIS, HZ, status); 616 return mthca_cmd(dev, 0, 0, 0, CMD_SYS_DIS, CMD_TIME_CLASS_C, status);
615} 617}
616 618
617static int mthca_map_cmd(struct mthca_dev *dev, u16 op, struct mthca_icm *icm, 619static int mthca_map_cmd(struct mthca_dev *dev, u16 op, struct mthca_icm *icm,
@@ -1390,7 +1392,7 @@ int mthca_INIT_HCA(struct mthca_dev *dev,
1390 MTHCA_PUT(inbox, param->uarc_base, INIT_HCA_UAR_CTX_BASE_OFFSET); 1392 MTHCA_PUT(inbox, param->uarc_base, INIT_HCA_UAR_CTX_BASE_OFFSET);
1391 } 1393 }
1392 1394
1393 err = mthca_cmd(dev, mailbox->dma, 0, 0, CMD_INIT_HCA, HZ, status); 1395 err = mthca_cmd(dev, mailbox->dma, 0, 0, CMD_INIT_HCA, CMD_TIME_CLASS_D, status);
1394 1396
1395 mthca_free_mailbox(dev, mailbox); 1397 mthca_free_mailbox(dev, mailbox);
1396 return err; 1398 return err;
@@ -1450,12 +1452,12 @@ int mthca_INIT_IB(struct mthca_dev *dev,
1450 1452
1451int mthca_CLOSE_IB(struct mthca_dev *dev, int port, u8 *status) 1453int mthca_CLOSE_IB(struct mthca_dev *dev, int port, u8 *status)
1452{ 1454{
1453 return mthca_cmd(dev, 0, port, 0, CMD_CLOSE_IB, HZ, status); 1455 return mthca_cmd(dev, 0, port, 0, CMD_CLOSE_IB, CMD_TIME_CLASS_A, status);
1454} 1456}
1455 1457
1456int mthca_CLOSE_HCA(struct mthca_dev *dev, int panic, u8 *status) 1458int mthca_CLOSE_HCA(struct mthca_dev *dev, int panic, u8 *status)
1457{ 1459{
1458 return mthca_cmd(dev, 0, 0, panic, CMD_CLOSE_HCA, HZ, status); 1460 return mthca_cmd(dev, 0, 0, panic, CMD_CLOSE_HCA, CMD_TIME_CLASS_C, status);
1459} 1461}
1460 1462
1461int mthca_SET_IB(struct mthca_dev *dev, struct mthca_set_ib_param *param, 1463int mthca_SET_IB(struct mthca_dev *dev, struct mthca_set_ib_param *param,
diff --git a/drivers/infiniband/hw/nes/nes.h b/drivers/infiniband/hw/nes/nes.h
index 17621de54a9f..bf1720f7f35f 100644
--- a/drivers/infiniband/hw/nes/nes.h
+++ b/drivers/infiniband/hw/nes/nes.h
@@ -56,10 +56,8 @@
56 56
57#define QUEUE_DISCONNECTS 57#define QUEUE_DISCONNECTS
58 58
59#define DRV_BUILD "1"
60
61#define DRV_NAME "iw_nes" 59#define DRV_NAME "iw_nes"
62#define DRV_VERSION "1.0 KO Build " DRV_BUILD 60#define DRV_VERSION "1.5.0.0"
63#define PFX DRV_NAME ": " 61#define PFX DRV_NAME ": "
64 62
65/* 63/*
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
index dbd9a75474e3..11c7d6642014 100644
--- a/drivers/infiniband/hw/nes/nes_cm.c
+++ b/drivers/infiniband/hw/nes/nes_cm.c
@@ -56,6 +56,7 @@
56#include <net/neighbour.h> 56#include <net/neighbour.h>
57#include <net/route.h> 57#include <net/route.h>
58#include <net/ip_fib.h> 58#include <net/ip_fib.h>
59#include <net/tcp.h>
59 60
60#include "nes.h" 61#include "nes.h"
61 62
@@ -540,6 +541,7 @@ static void nes_cm_timer_tick(unsigned long pass)
540 struct list_head *list_node; 541 struct list_head *list_node;
541 struct nes_cm_core *cm_core = g_cm_core; 542 struct nes_cm_core *cm_core = g_cm_core;
542 u32 settimer = 0; 543 u32 settimer = 0;
544 unsigned long timetosend;
543 int ret = NETDEV_TX_OK; 545 int ret = NETDEV_TX_OK;
544 546
545 struct list_head timer_list; 547 struct list_head timer_list;
@@ -644,8 +646,11 @@ static void nes_cm_timer_tick(unsigned long pass)
644 send_entry->retrycount); 646 send_entry->retrycount);
645 if (send_entry->send_retrans) { 647 if (send_entry->send_retrans) {
646 send_entry->retranscount--; 648 send_entry->retranscount--;
649 timetosend = (NES_RETRY_TIMEOUT <<
650 (NES_DEFAULT_RETRANS - send_entry->retranscount));
651
647 send_entry->timetosend = jiffies + 652 send_entry->timetosend = jiffies +
648 NES_RETRY_TIMEOUT; 653 min(timetosend, NES_MAX_TIMEOUT);
649 if (nexttimeout > send_entry->timetosend || 654 if (nexttimeout > send_entry->timetosend ||
650 !settimer) { 655 !settimer) {
651 nexttimeout = send_entry->timetosend; 656 nexttimeout = send_entry->timetosend;
@@ -854,7 +859,6 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core,
854{ 859{
855 unsigned long flags; 860 unsigned long flags;
856 struct nes_cm_listener *listen_node; 861 struct nes_cm_listener *listen_node;
857 __be32 tmp_addr = cpu_to_be32(dst_addr);
858 862
859 /* walk list and find cm_node associated with this session ID */ 863 /* walk list and find cm_node associated with this session ID */
860 spin_lock_irqsave(&cm_core->listen_list_lock, flags); 864 spin_lock_irqsave(&cm_core->listen_list_lock, flags);
@@ -871,9 +875,6 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core,
871 } 875 }
872 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags); 876 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags);
873 877
874 nes_debug(NES_DBG_CM, "Unable to find listener for %pI4:%x\n",
875 &tmp_addr, dst_port);
876
877 /* no listener */ 878 /* no listener */
878 return NULL; 879 return NULL;
879} 880}
@@ -1325,18 +1326,20 @@ static void handle_fin_pkt(struct nes_cm_node *cm_node)
1325 nes_debug(NES_DBG_CM, "Received FIN, cm_node = %p, state = %u. " 1326 nes_debug(NES_DBG_CM, "Received FIN, cm_node = %p, state = %u. "
1326 "refcnt=%d\n", cm_node, cm_node->state, 1327 "refcnt=%d\n", cm_node, cm_node->state,
1327 atomic_read(&cm_node->ref_count)); 1328 atomic_read(&cm_node->ref_count));
1328 cm_node->tcp_cntxt.rcv_nxt++;
1329 cleanup_retrans_entry(cm_node);
1330 switch (cm_node->state) { 1329 switch (cm_node->state) {
1331 case NES_CM_STATE_SYN_RCVD: 1330 case NES_CM_STATE_SYN_RCVD:
1332 case NES_CM_STATE_SYN_SENT: 1331 case NES_CM_STATE_SYN_SENT:
1333 case NES_CM_STATE_ESTABLISHED: 1332 case NES_CM_STATE_ESTABLISHED:
1334 case NES_CM_STATE_MPAREQ_SENT: 1333 case NES_CM_STATE_MPAREQ_SENT:
1335 case NES_CM_STATE_MPAREJ_RCVD: 1334 case NES_CM_STATE_MPAREJ_RCVD:
1335 cm_node->tcp_cntxt.rcv_nxt++;
1336 cleanup_retrans_entry(cm_node);
1336 cm_node->state = NES_CM_STATE_LAST_ACK; 1337 cm_node->state = NES_CM_STATE_LAST_ACK;
1337 send_fin(cm_node, NULL); 1338 send_fin(cm_node, NULL);
1338 break; 1339 break;
1339 case NES_CM_STATE_FIN_WAIT1: 1340 case NES_CM_STATE_FIN_WAIT1:
1341 cm_node->tcp_cntxt.rcv_nxt++;
1342 cleanup_retrans_entry(cm_node);
1340 cm_node->state = NES_CM_STATE_CLOSING; 1343 cm_node->state = NES_CM_STATE_CLOSING;
1341 send_ack(cm_node, NULL); 1344 send_ack(cm_node, NULL);
1342 /* Wait for ACK as this is simultanous close.. 1345 /* Wait for ACK as this is simultanous close..
@@ -1344,11 +1347,15 @@ static void handle_fin_pkt(struct nes_cm_node *cm_node)
1344 * Just rm the node.. Done.. */ 1347 * Just rm the node.. Done.. */
1345 break; 1348 break;
1346 case NES_CM_STATE_FIN_WAIT2: 1349 case NES_CM_STATE_FIN_WAIT2:
1350 cm_node->tcp_cntxt.rcv_nxt++;
1351 cleanup_retrans_entry(cm_node);
1347 cm_node->state = NES_CM_STATE_TIME_WAIT; 1352 cm_node->state = NES_CM_STATE_TIME_WAIT;
1348 send_ack(cm_node, NULL); 1353 send_ack(cm_node, NULL);
1349 schedule_nes_timer(cm_node, NULL, NES_TIMER_TYPE_CLOSE, 1, 0); 1354 schedule_nes_timer(cm_node, NULL, NES_TIMER_TYPE_CLOSE, 1, 0);
1350 break; 1355 break;
1351 case NES_CM_STATE_TIME_WAIT: 1356 case NES_CM_STATE_TIME_WAIT:
1357 cm_node->tcp_cntxt.rcv_nxt++;
1358 cleanup_retrans_entry(cm_node);
1352 cm_node->state = NES_CM_STATE_CLOSED; 1359 cm_node->state = NES_CM_STATE_CLOSED;
1353 rem_ref_cm_node(cm_node->cm_core, cm_node); 1360 rem_ref_cm_node(cm_node->cm_core, cm_node);
1354 break; 1361 break;
@@ -1384,7 +1391,6 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
1384 passive_state = atomic_add_return(1, &cm_node->passive_state); 1391 passive_state = atomic_add_return(1, &cm_node->passive_state);
1385 if (passive_state == NES_SEND_RESET_EVENT) 1392 if (passive_state == NES_SEND_RESET_EVENT)
1386 create_event(cm_node, NES_CM_EVENT_RESET); 1393 create_event(cm_node, NES_CM_EVENT_RESET);
1387 cleanup_retrans_entry(cm_node);
1388 cm_node->state = NES_CM_STATE_CLOSED; 1394 cm_node->state = NES_CM_STATE_CLOSED;
1389 dev_kfree_skb_any(skb); 1395 dev_kfree_skb_any(skb);
1390 break; 1396 break;
@@ -1398,17 +1404,16 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
1398 active_open_err(cm_node, skb, reset); 1404 active_open_err(cm_node, skb, reset);
1399 break; 1405 break;
1400 case NES_CM_STATE_CLOSED: 1406 case NES_CM_STATE_CLOSED:
1401 cleanup_retrans_entry(cm_node);
1402 drop_packet(skb); 1407 drop_packet(skb);
1403 break; 1408 break;
1409 case NES_CM_STATE_LAST_ACK:
1410 cm_node->cm_id->rem_ref(cm_node->cm_id);
1404 case NES_CM_STATE_TIME_WAIT: 1411 case NES_CM_STATE_TIME_WAIT:
1405 cleanup_retrans_entry(cm_node);
1406 cm_node->state = NES_CM_STATE_CLOSED; 1412 cm_node->state = NES_CM_STATE_CLOSED;
1407 rem_ref_cm_node(cm_node->cm_core, cm_node); 1413 rem_ref_cm_node(cm_node->cm_core, cm_node);
1408 drop_packet(skb); 1414 drop_packet(skb);
1409 break; 1415 break;
1410 case NES_CM_STATE_FIN_WAIT1: 1416 case NES_CM_STATE_FIN_WAIT1:
1411 cleanup_retrans_entry(cm_node);
1412 nes_debug(NES_DBG_CM, "Bad state %s[%u]\n", __func__, __LINE__); 1417 nes_debug(NES_DBG_CM, "Bad state %s[%u]\n", __func__, __LINE__);
1413 default: 1418 default:
1414 drop_packet(skb); 1419 drop_packet(skb);
@@ -1455,6 +1460,7 @@ static void handle_rcv_mpa(struct nes_cm_node *cm_node, struct sk_buff *skb)
1455 NES_PASSIVE_STATE_INDICATED); 1460 NES_PASSIVE_STATE_INDICATED);
1456 break; 1461 break;
1457 case NES_CM_STATE_MPAREQ_SENT: 1462 case NES_CM_STATE_MPAREQ_SENT:
1463 cleanup_retrans_entry(cm_node);
1458 if (res_type == NES_MPA_REQUEST_REJECT) { 1464 if (res_type == NES_MPA_REQUEST_REJECT) {
1459 type = NES_CM_EVENT_MPA_REJECT; 1465 type = NES_CM_EVENT_MPA_REJECT;
1460 cm_node->state = NES_CM_STATE_MPAREJ_RCVD; 1466 cm_node->state = NES_CM_STATE_MPAREJ_RCVD;
@@ -1518,7 +1524,7 @@ static int check_seq(struct nes_cm_node *cm_node, struct tcphdr *tcph,
1518 rcv_wnd = cm_node->tcp_cntxt.rcv_wnd; 1524 rcv_wnd = cm_node->tcp_cntxt.rcv_wnd;
1519 if (ack_seq != loc_seq_num) 1525 if (ack_seq != loc_seq_num)
1520 err = 1; 1526 err = 1;
1521 else if ((seq + rcv_wnd) < rcv_nxt) 1527 else if (!between(seq, rcv_nxt, (rcv_nxt+rcv_wnd)))
1522 err = 1; 1528 err = 1;
1523 if (err) { 1529 if (err) {
1524 nes_debug(NES_DBG_CM, "%s[%u] create abort for cm_node=%p " 1530 nes_debug(NES_DBG_CM, "%s[%u] create abort for cm_node=%p "
@@ -1652,49 +1658,39 @@ static void handle_synack_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
1652 } 1658 }
1653} 1659}
1654 1660
1655static void handle_ack_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb, 1661static int handle_ack_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
1656 struct tcphdr *tcph) 1662 struct tcphdr *tcph)
1657{ 1663{
1658 int datasize = 0; 1664 int datasize = 0;
1659 u32 inc_sequence; 1665 u32 inc_sequence;
1660 u32 rem_seq_ack; 1666 u32 rem_seq_ack;
1661 u32 rem_seq; 1667 u32 rem_seq;
1662 int ret; 1668 int ret = 0;
1663 int optionsize; 1669 int optionsize;
1664 optionsize = (tcph->doff << 2) - sizeof(struct tcphdr); 1670 optionsize = (tcph->doff << 2) - sizeof(struct tcphdr);
1665 1671
1666 if (check_seq(cm_node, tcph, skb)) 1672 if (check_seq(cm_node, tcph, skb))
1667 return; 1673 return -EINVAL;
1668 1674
1669 skb_pull(skb, tcph->doff << 2); 1675 skb_pull(skb, tcph->doff << 2);
1670 inc_sequence = ntohl(tcph->seq); 1676 inc_sequence = ntohl(tcph->seq);
1671 rem_seq = ntohl(tcph->seq); 1677 rem_seq = ntohl(tcph->seq);
1672 rem_seq_ack = ntohl(tcph->ack_seq); 1678 rem_seq_ack = ntohl(tcph->ack_seq);
1673 datasize = skb->len; 1679 datasize = skb->len;
1674 cleanup_retrans_entry(cm_node);
1675 switch (cm_node->state) { 1680 switch (cm_node->state) {
1676 case NES_CM_STATE_SYN_RCVD: 1681 case NES_CM_STATE_SYN_RCVD:
1677 /* Passive OPEN */ 1682 /* Passive OPEN */
1683 cleanup_retrans_entry(cm_node);
1678 ret = handle_tcp_options(cm_node, tcph, skb, optionsize, 1); 1684 ret = handle_tcp_options(cm_node, tcph, skb, optionsize, 1);
1679 if (ret) 1685 if (ret)
1680 break; 1686 break;
1681 cm_node->tcp_cntxt.rem_ack_num = ntohl(tcph->ack_seq); 1687 cm_node->tcp_cntxt.rem_ack_num = ntohl(tcph->ack_seq);
1682 if (cm_node->tcp_cntxt.rem_ack_num !=
1683 cm_node->tcp_cntxt.loc_seq_num) {
1684 nes_debug(NES_DBG_CM, "rem_ack_num != loc_seq_num\n");
1685 cleanup_retrans_entry(cm_node);
1686 send_reset(cm_node, skb);
1687 return;
1688 }
1689 cm_node->state = NES_CM_STATE_ESTABLISHED; 1688 cm_node->state = NES_CM_STATE_ESTABLISHED;
1690 cleanup_retrans_entry(cm_node);
1691 if (datasize) { 1689 if (datasize) {
1692 cm_node->tcp_cntxt.rcv_nxt = inc_sequence + datasize; 1690 cm_node->tcp_cntxt.rcv_nxt = inc_sequence + datasize;
1693 handle_rcv_mpa(cm_node, skb); 1691 handle_rcv_mpa(cm_node, skb);
1694 } else { /* rcvd ACK only */ 1692 } else /* rcvd ACK only */
1695 dev_kfree_skb_any(skb); 1693 dev_kfree_skb_any(skb);
1696 cleanup_retrans_entry(cm_node);
1697 }
1698 break; 1694 break;
1699 case NES_CM_STATE_ESTABLISHED: 1695 case NES_CM_STATE_ESTABLISHED:
1700 /* Passive OPEN */ 1696 /* Passive OPEN */
@@ -1706,15 +1702,12 @@ static void handle_ack_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
1706 drop_packet(skb); 1702 drop_packet(skb);
1707 break; 1703 break;
1708 case NES_CM_STATE_MPAREQ_SENT: 1704 case NES_CM_STATE_MPAREQ_SENT:
1709 cleanup_retrans_entry(cm_node);
1710 cm_node->tcp_cntxt.rem_ack_num = ntohl(tcph->ack_seq); 1705 cm_node->tcp_cntxt.rem_ack_num = ntohl(tcph->ack_seq);
1711 if (datasize) { 1706 if (datasize) {
1712 cm_node->tcp_cntxt.rcv_nxt = inc_sequence + datasize; 1707 cm_node->tcp_cntxt.rcv_nxt = inc_sequence + datasize;
1713 handle_rcv_mpa(cm_node, skb); 1708 handle_rcv_mpa(cm_node, skb);
1714 } else { /* Could be just an ack pkt.. */ 1709 } else /* Could be just an ack pkt.. */
1715 cleanup_retrans_entry(cm_node);
1716 dev_kfree_skb_any(skb); 1710 dev_kfree_skb_any(skb);
1717 }
1718 break; 1711 break;
1719 case NES_CM_STATE_LISTENING: 1712 case NES_CM_STATE_LISTENING:
1720 case NES_CM_STATE_CLOSED: 1713 case NES_CM_STATE_CLOSED:
@@ -1722,11 +1715,10 @@ static void handle_ack_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
1722 send_reset(cm_node, skb); 1715 send_reset(cm_node, skb);
1723 break; 1716 break;
1724 case NES_CM_STATE_LAST_ACK: 1717 case NES_CM_STATE_LAST_ACK:
1718 case NES_CM_STATE_CLOSING:
1725 cleanup_retrans_entry(cm_node); 1719 cleanup_retrans_entry(cm_node);
1726 cm_node->state = NES_CM_STATE_CLOSED; 1720 cm_node->state = NES_CM_STATE_CLOSED;
1727 cm_node->cm_id->rem_ref(cm_node->cm_id); 1721 cm_node->cm_id->rem_ref(cm_node->cm_id);
1728 case NES_CM_STATE_CLOSING:
1729 cleanup_retrans_entry(cm_node);
1730 rem_ref_cm_node(cm_node->cm_core, cm_node); 1722 rem_ref_cm_node(cm_node->cm_core, cm_node);
1731 drop_packet(skb); 1723 drop_packet(skb);
1732 break; 1724 break;
@@ -1741,9 +1733,11 @@ static void handle_ack_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
1741 case NES_CM_STATE_MPAREQ_RCVD: 1733 case NES_CM_STATE_MPAREQ_RCVD:
1742 case NES_CM_STATE_UNKNOWN: 1734 case NES_CM_STATE_UNKNOWN:
1743 default: 1735 default:
1736 cleanup_retrans_entry(cm_node);
1744 drop_packet(skb); 1737 drop_packet(skb);
1745 break; 1738 break;
1746 } 1739 }
1740 return ret;
1747} 1741}
1748 1742
1749 1743
@@ -1849,6 +1843,7 @@ static void process_packet(struct nes_cm_node *cm_node, struct sk_buff *skb,
1849 enum nes_tcpip_pkt_type pkt_type = NES_PKT_TYPE_UNKNOWN; 1843 enum nes_tcpip_pkt_type pkt_type = NES_PKT_TYPE_UNKNOWN;
1850 struct tcphdr *tcph = tcp_hdr(skb); 1844 struct tcphdr *tcph = tcp_hdr(skb);
1851 u32 fin_set = 0; 1845 u32 fin_set = 0;
1846 int ret = 0;
1852 skb_pull(skb, ip_hdr(skb)->ihl << 2); 1847 skb_pull(skb, ip_hdr(skb)->ihl << 2);
1853 1848
1854 nes_debug(NES_DBG_CM, "process_packet: cm_node=%p state =%d syn=%d " 1849 nes_debug(NES_DBG_CM, "process_packet: cm_node=%p state =%d syn=%d "
@@ -1874,17 +1869,17 @@ static void process_packet(struct nes_cm_node *cm_node, struct sk_buff *skb,
1874 handle_synack_pkt(cm_node, skb, tcph); 1869 handle_synack_pkt(cm_node, skb, tcph);
1875 break; 1870 break;
1876 case NES_PKT_TYPE_ACK: 1871 case NES_PKT_TYPE_ACK:
1877 handle_ack_pkt(cm_node, skb, tcph); 1872 ret = handle_ack_pkt(cm_node, skb, tcph);
1878 if (fin_set) 1873 if (fin_set && !ret)
1879 handle_fin_pkt(cm_node); 1874 handle_fin_pkt(cm_node);
1880 break; 1875 break;
1881 case NES_PKT_TYPE_RST: 1876 case NES_PKT_TYPE_RST:
1882 handle_rst_pkt(cm_node, skb, tcph); 1877 handle_rst_pkt(cm_node, skb, tcph);
1883 break; 1878 break;
1884 default: 1879 default:
1885 drop_packet(skb); 1880 if ((fin_set) && (!check_seq(cm_node, tcph, skb)))
1886 if (fin_set)
1887 handle_fin_pkt(cm_node); 1881 handle_fin_pkt(cm_node);
1882 drop_packet(skb);
1888 break; 1883 break;
1889 } 1884 }
1890} 1885}
@@ -2710,7 +2705,6 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
2710 /* associate the node with the QP */ 2705 /* associate the node with the QP */
2711 nesqp->cm_node = (void *)cm_node; 2706 nesqp->cm_node = (void *)cm_node;
2712 cm_node->nesqp = nesqp; 2707 cm_node->nesqp = nesqp;
2713 nes_add_ref(&nesqp->ibqp);
2714 2708
2715 nes_debug(NES_DBG_CM, "QP%u, cm_node=%p, jiffies = %lu listener = %p\n", 2709 nes_debug(NES_DBG_CM, "QP%u, cm_node=%p, jiffies = %lu listener = %p\n",
2716 nesqp->hwqp.qp_id, cm_node, jiffies, cm_node->listener); 2710 nesqp->hwqp.qp_id, cm_node, jiffies, cm_node->listener);
@@ -2763,6 +2757,9 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
2763 nes_debug(NES_DBG_CM, "Unable to register memory region" 2757 nes_debug(NES_DBG_CM, "Unable to register memory region"
2764 "for lSMM for cm_node = %p \n", 2758 "for lSMM for cm_node = %p \n",
2765 cm_node); 2759 cm_node);
2760 pci_free_consistent(nesdev->pcidev,
2761 nesqp->private_data_len+sizeof(struct ietf_mpa_frame),
2762 nesqp->ietf_frame, nesqp->ietf_frame_pbase);
2766 return -ENOMEM; 2763 return -ENOMEM;
2767 } 2764 }
2768 2765
@@ -2879,6 +2876,7 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
2879 2876
2880 /* notify OF layer that accept event was successful */ 2877 /* notify OF layer that accept event was successful */
2881 cm_id->add_ref(cm_id); 2878 cm_id->add_ref(cm_id);
2879 nes_add_ref(&nesqp->ibqp);
2882 2880
2883 cm_event.event = IW_CM_EVENT_ESTABLISHED; 2881 cm_event.event = IW_CM_EVENT_ESTABLISHED;
2884 cm_event.status = IW_CM_EVENT_STATUS_ACCEPTED; 2882 cm_event.status = IW_CM_EVENT_STATUS_ACCEPTED;
@@ -2959,6 +2957,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
2959 struct nes_device *nesdev; 2957 struct nes_device *nesdev;
2960 struct nes_cm_node *cm_node; 2958 struct nes_cm_node *cm_node;
2961 struct nes_cm_info cm_info; 2959 struct nes_cm_info cm_info;
2960 int apbvt_set = 0;
2962 2961
2963 ibqp = nes_get_qp(cm_id->device, conn_param->qpn); 2962 ibqp = nes_get_qp(cm_id->device, conn_param->qpn);
2964 if (!ibqp) 2963 if (!ibqp)
@@ -2996,9 +2995,11 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
2996 conn_param->private_data_len); 2995 conn_param->private_data_len);
2997 2996
2998 if (cm_id->local_addr.sin_addr.s_addr != 2997 if (cm_id->local_addr.sin_addr.s_addr !=
2999 cm_id->remote_addr.sin_addr.s_addr) 2998 cm_id->remote_addr.sin_addr.s_addr) {
3000 nes_manage_apbvt(nesvnic, ntohs(cm_id->local_addr.sin_port), 2999 nes_manage_apbvt(nesvnic, ntohs(cm_id->local_addr.sin_port),
3001 PCI_FUNC(nesdev->pcidev->devfn), NES_MANAGE_APBVT_ADD); 3000 PCI_FUNC(nesdev->pcidev->devfn), NES_MANAGE_APBVT_ADD);
3001 apbvt_set = 1;
3002 }
3002 3003
3003 /* set up the connection params for the node */ 3004 /* set up the connection params for the node */
3004 cm_info.loc_addr = htonl(cm_id->local_addr.sin_addr.s_addr); 3005 cm_info.loc_addr = htonl(cm_id->local_addr.sin_addr.s_addr);
@@ -3015,8 +3016,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
3015 conn_param->private_data_len, (void *)conn_param->private_data, 3016 conn_param->private_data_len, (void *)conn_param->private_data,
3016 &cm_info); 3017 &cm_info);
3017 if (!cm_node) { 3018 if (!cm_node) {
3018 if (cm_id->local_addr.sin_addr.s_addr != 3019 if (apbvt_set)
3019 cm_id->remote_addr.sin_addr.s_addr)
3020 nes_manage_apbvt(nesvnic, ntohs(cm_id->local_addr.sin_port), 3020 nes_manage_apbvt(nesvnic, ntohs(cm_id->local_addr.sin_port),
3021 PCI_FUNC(nesdev->pcidev->devfn), 3021 PCI_FUNC(nesdev->pcidev->devfn),
3022 NES_MANAGE_APBVT_DEL); 3022 NES_MANAGE_APBVT_DEL);
@@ -3025,7 +3025,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
3025 return -ENOMEM; 3025 return -ENOMEM;
3026 } 3026 }
3027 3027
3028 cm_node->apbvt_set = 1; 3028 cm_node->apbvt_set = apbvt_set;
3029 nesqp->cm_node = cm_node; 3029 nesqp->cm_node = cm_node;
3030 cm_node->nesqp = nesqp; 3030 cm_node->nesqp = nesqp;
3031 nes_add_ref(&nesqp->ibqp); 3031 nes_add_ref(&nesqp->ibqp);
diff --git a/drivers/infiniband/hw/nes/nes_cm.h b/drivers/infiniband/hw/nes/nes_cm.h
index 80bba1892571..8b7e7c0e496e 100644
--- a/drivers/infiniband/hw/nes/nes_cm.h
+++ b/drivers/infiniband/hw/nes/nes_cm.h
@@ -149,6 +149,7 @@ struct nes_timer_entry {
149#endif 149#endif
150#define NES_SHORT_TIME (10) 150#define NES_SHORT_TIME (10)
151#define NES_LONG_TIME (2000*HZ/1000) 151#define NES_LONG_TIME (2000*HZ/1000)
152#define NES_MAX_TIMEOUT ((unsigned long) (12*HZ))
152 153
153#define NES_CM_HASHTABLE_SIZE 1024 154#define NES_CM_HASHTABLE_SIZE 1024
154#define NES_CM_TCP_TIMER_INTERVAL 3000 155#define NES_CM_TCP_TIMER_INTERVAL 3000
diff --git a/drivers/infiniband/hw/nes/nes_hw.c b/drivers/infiniband/hw/nes/nes_hw.c
index d6fc9ae44062..b832a7b814a2 100644
--- a/drivers/infiniband/hw/nes/nes_hw.c
+++ b/drivers/infiniband/hw/nes/nes_hw.c
@@ -550,11 +550,8 @@ struct nes_adapter *nes_init_adapter(struct nes_device *nesdev, u8 hw_rev) {
550 msleep(1); 550 msleep(1);
551 } 551 }
552 if (int_cnt > 1) { 552 if (int_cnt > 1) {
553 u32 sds;
554 spin_lock_irqsave(&nesadapter->phy_lock, flags); 553 spin_lock_irqsave(&nesadapter->phy_lock, flags);
555 sds = nes_read_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1); 554 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1, 0x0000F0C8);
556 sds |= 0x00000040;
557 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1, sds);
558 mh_detected++; 555 mh_detected++;
559 reset_value = nes_read32(nesdev->regs+NES_SOFTWARE_RESET); 556 reset_value = nes_read32(nesdev->regs+NES_SOFTWARE_RESET);
560 reset_value |= 0x0000003d; 557 reset_value |= 0x0000003d;
@@ -579,7 +576,7 @@ struct nes_adapter *nes_init_adapter(struct nes_device *nesdev, u8 hw_rev) {
579 if (++ext_cnt > int_cnt) { 576 if (++ext_cnt > int_cnt) {
580 spin_lock_irqsave(&nesadapter->phy_lock, flags); 577 spin_lock_irqsave(&nesadapter->phy_lock, flags);
581 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1, 578 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1,
582 0x0000F0C8); 579 0x0000F088);
583 mh_detected++; 580 mh_detected++;
584 reset_value = nes_read32(nesdev->regs+NES_SOFTWARE_RESET); 581 reset_value = nes_read32(nesdev->regs+NES_SOFTWARE_RESET);
585 reset_value |= 0x0000003d; 582 reset_value |= 0x0000003d;
@@ -764,6 +761,9 @@ static int nes_init_serdes(struct nes_device *nesdev, u8 hw_rev, u8 port_count,
764 return 0; 761 return 0;
765 762
766 /* init serdes 1 */ 763 /* init serdes 1 */
764 if (!(OneG_Mode && (nesadapter->phy_type[1] != NES_PHY_TYPE_PUMA_1G)))
765 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_CDR_CONTROL1, 0x000000FF);
766
767 switch (nesadapter->phy_type[1]) { 767 switch (nesadapter->phy_type[1]) {
768 case NES_PHY_TYPE_ARGUS: 768 case NES_PHY_TYPE_ARGUS:
769 case NES_PHY_TYPE_SFP_D: 769 case NES_PHY_TYPE_SFP_D:
@@ -771,21 +771,20 @@ static int nes_init_serdes(struct nes_device *nesdev, u8 hw_rev, u8 port_count,
771 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_TX_EMP1, 0x00000000); 771 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_TX_EMP1, 0x00000000);
772 break; 772 break;
773 case NES_PHY_TYPE_CX4: 773 case NES_PHY_TYPE_CX4:
774 sds = nes_read_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1);
775 sds &= 0xFFFFFFBF;
776 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1, sds);
777 if (wide_ppm_offset) 774 if (wide_ppm_offset)
778 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_CDR_CONTROL1, 0x000FFFAA); 775 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_CDR_CONTROL1, 0x000FFFAA);
779 else
780 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_CDR_CONTROL1, 0x000000FF);
781 break; 776 break;
782 case NES_PHY_TYPE_PUMA_1G: 777 case NES_PHY_TYPE_PUMA_1G:
783 sds = nes_read_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1); 778 sds = nes_read_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1);
784 sds |= 0x000000100; 779 sds |= 0x000000100;
785 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1, sds); 780 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1, sds);
786 } 781 }
787 if (!OneG_Mode) 782 if (!OneG_Mode) {
788 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_TX_HIGHZ_LANE_MODE1, 0x11110000); 783 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_TX_HIGHZ_LANE_MODE1, 0x11110000);
784 sds = nes_read_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1);
785 sds &= 0xFFFFFFBF;
786 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1, sds);
787 }
789 } else { 788 } else {
790 /* init serdes 0 */ 789 /* init serdes 0 */
791 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL0, 0x00000008); 790 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL0, 0x00000008);
@@ -913,6 +912,12 @@ static void nes_init_csr_ne020(struct nes_device *nesdev, u8 hw_rev, u8 port_cou
913 u32temp &= 0x7fffffff; 912 u32temp &= 0x7fffffff;
914 u32temp |= 0x7fff0010; 913 u32temp |= 0x7fff0010;
915 nes_write_indexed(nesdev, 0x000021f8, u32temp); 914 nes_write_indexed(nesdev, 0x000021f8, u32temp);
915 if (port_count > 1) {
916 u32temp = nes_read_indexed(nesdev, 0x000023f8);
917 u32temp &= 0x7fffffff;
918 u32temp |= 0x7fff0010;
919 nes_write_indexed(nesdev, 0x000023f8, u32temp);
920 }
916 } 921 }
917} 922}
918 923
@@ -1366,13 +1371,14 @@ int nes_init_phy(struct nes_device *nesdev)
1366 if (phy_type == NES_PHY_TYPE_ARGUS) { 1371 if (phy_type == NES_PHY_TYPE_ARGUS) {
1367 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc302, 0x000C); 1372 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc302, 0x000C);
1368 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc319, 0x0008); 1373 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc319, 0x0008);
1374 nes_write_10G_phy_reg(nesdev, phy_index, 0x3, 0x0027, 0x0001);
1369 } else { 1375 } else {
1370 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc302, 0x0004); 1376 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc302, 0x0004);
1371 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc319, 0x0038); 1377 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc319, 0x0038);
1378 nes_write_10G_phy_reg(nesdev, phy_index, 0x3, 0x0027, 0x0013);
1372 } 1379 }
1373 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc31a, 0x0098); 1380 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc31a, 0x0098);
1374 nes_write_10G_phy_reg(nesdev, phy_index, 0x3, 0x0026, 0x0E00); 1381 nes_write_10G_phy_reg(nesdev, phy_index, 0x3, 0x0026, 0x0E00);
1375 nes_write_10G_phy_reg(nesdev, phy_index, 0x3, 0x0027, 0x0001);
1376 1382
1377 /* setup LEDs */ 1383 /* setup LEDs */
1378 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xd006, 0x0007); 1384 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xd006, 0x0007);
diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
index 7e5b5ba13a74..64d5cfd8f380 100644
--- a/drivers/infiniband/hw/nes/nes_verbs.c
+++ b/drivers/infiniband/hw/nes/nes_verbs.c
@@ -1627,6 +1627,7 @@ static struct ib_cq *nes_create_cq(struct ib_device *ibdev, int entries,
1627 nescq->hw_cq.cq_number = nes_ucontext->mcrqf & 0xffff; 1627 nescq->hw_cq.cq_number = nes_ucontext->mcrqf & 0xffff;
1628 else 1628 else
1629 nescq->hw_cq.cq_number = nesvnic->mcrq_qp_id + nes_ucontext->mcrqf-1; 1629 nescq->hw_cq.cq_number = nesvnic->mcrq_qp_id + nes_ucontext->mcrqf-1;
1630 nescq->mcrqf = nes_ucontext->mcrqf;
1630 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num); 1631 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num);
1631 } 1632 }
1632 nes_debug(NES_DBG_CQ, "CQ Virtual Address = %08lX, size = %u.\n", 1633 nes_debug(NES_DBG_CQ, "CQ Virtual Address = %08lX, size = %u.\n",
@@ -1682,6 +1683,12 @@ static struct ib_cq *nes_create_cq(struct ib_device *ibdev, int entries,
1682 if (!context) 1683 if (!context)
1683 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem, 1684 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem,
1684 nescq->hw_cq.cq_pbase); 1685 nescq->hw_cq.cq_pbase);
1686 else {
1687 pci_free_consistent(nesdev->pcidev, nespbl->pbl_size,
1688 nespbl->pbl_vbase, nespbl->pbl_pbase);
1689 kfree(nespbl);
1690 }
1691
1685 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num); 1692 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num);
1686 kfree(nescq); 1693 kfree(nescq);
1687 return ERR_PTR(-ENOMEM); 1694 return ERR_PTR(-ENOMEM);
@@ -1705,6 +1712,11 @@ static struct ib_cq *nes_create_cq(struct ib_device *ibdev, int entries,
1705 if (!context) 1712 if (!context)
1706 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem, 1713 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem,
1707 nescq->hw_cq.cq_pbase); 1714 nescq->hw_cq.cq_pbase);
1715 else {
1716 pci_free_consistent(nesdev->pcidev, nespbl->pbl_size,
1717 nespbl->pbl_vbase, nespbl->pbl_pbase);
1718 kfree(nespbl);
1719 }
1708 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num); 1720 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num);
1709 kfree(nescq); 1721 kfree(nescq);
1710 return ERR_PTR(-ENOMEM); 1722 return ERR_PTR(-ENOMEM);
@@ -1722,6 +1734,11 @@ static struct ib_cq *nes_create_cq(struct ib_device *ibdev, int entries,
1722 if (!context) 1734 if (!context)
1723 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem, 1735 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem,
1724 nescq->hw_cq.cq_pbase); 1736 nescq->hw_cq.cq_pbase);
1737 else {
1738 pci_free_consistent(nesdev->pcidev, nespbl->pbl_size,
1739 nespbl->pbl_vbase, nespbl->pbl_pbase);
1740 kfree(nespbl);
1741 }
1725 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num); 1742 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num);
1726 kfree(nescq); 1743 kfree(nescq);
1727 return ERR_PTR(-ENOMEM); 1744 return ERR_PTR(-ENOMEM);
@@ -1774,6 +1791,11 @@ static struct ib_cq *nes_create_cq(struct ib_device *ibdev, int entries,
1774 if (!context) 1791 if (!context)
1775 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem, 1792 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem,
1776 nescq->hw_cq.cq_pbase); 1793 nescq->hw_cq.cq_pbase);
1794 else {
1795 pci_free_consistent(nesdev->pcidev, nespbl->pbl_size,
1796 nespbl->pbl_vbase, nespbl->pbl_pbase);
1797 kfree(nespbl);
1798 }
1777 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num); 1799 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num);
1778 kfree(nescq); 1800 kfree(nescq);
1779 return ERR_PTR(-EIO); 1801 return ERR_PTR(-EIO);
@@ -1855,7 +1877,9 @@ static int nes_destroy_cq(struct ib_cq *ib_cq)
1855 set_wqe_32bit_value(cqp_wqe->wqe_words, NES_CQP_WQE_OPCODE_IDX, opcode); 1877 set_wqe_32bit_value(cqp_wqe->wqe_words, NES_CQP_WQE_OPCODE_IDX, opcode);
1856 set_wqe_32bit_value(cqp_wqe->wqe_words, NES_CQP_WQE_ID_IDX, 1878 set_wqe_32bit_value(cqp_wqe->wqe_words, NES_CQP_WQE_ID_IDX,
1857 (nescq->hw_cq.cq_number | ((u32)PCI_FUNC(nesdev->pcidev->devfn) << 16))); 1879 (nescq->hw_cq.cq_number | ((u32)PCI_FUNC(nesdev->pcidev->devfn) << 16)));
1858 nes_free_resource(nesadapter, nesadapter->allocated_cqs, nescq->hw_cq.cq_number); 1880 if (!nescq->mcrqf)
1881 nes_free_resource(nesadapter, nesadapter->allocated_cqs, nescq->hw_cq.cq_number);
1882
1859 atomic_set(&cqp_request->refcount, 2); 1883 atomic_set(&cqp_request->refcount, 2);
1860 nes_post_cqp_request(nesdev, cqp_request); 1884 nes_post_cqp_request(nesdev, cqp_request);
1861 1885
@@ -1895,8 +1919,7 @@ static int nes_destroy_cq(struct ib_cq *ib_cq)
1895static u32 root_256(struct nes_device *nesdev, 1919static u32 root_256(struct nes_device *nesdev,
1896 struct nes_root_vpbl *root_vpbl, 1920 struct nes_root_vpbl *root_vpbl,
1897 struct nes_root_vpbl *new_root, 1921 struct nes_root_vpbl *new_root,
1898 u16 pbl_count_4k, 1922 u16 pbl_count_4k)
1899 u16 pbl_count_256)
1900{ 1923{
1901 u64 leaf_pbl; 1924 u64 leaf_pbl;
1902 int i, j, k; 1925 int i, j, k;
@@ -1952,7 +1975,7 @@ static int nes_reg_mr(struct nes_device *nesdev, struct nes_pd *nespd,
1952 int ret; 1975 int ret;
1953 struct nes_adapter *nesadapter = nesdev->nesadapter; 1976 struct nes_adapter *nesadapter = nesdev->nesadapter;
1954 uint pg_cnt = 0; 1977 uint pg_cnt = 0;
1955 u16 pbl_count_256; 1978 u16 pbl_count_256 = 0;
1956 u16 pbl_count = 0; 1979 u16 pbl_count = 0;
1957 u8 use_256_pbls = 0; 1980 u8 use_256_pbls = 0;
1958 u8 use_4k_pbls = 0; 1981 u8 use_4k_pbls = 0;
@@ -2012,7 +2035,7 @@ static int nes_reg_mr(struct nes_device *nesdev, struct nes_pd *nespd,
2012 } 2035 }
2013 2036
2014 if (use_256_pbls && use_two_level) { 2037 if (use_256_pbls && use_two_level) {
2015 if (root_256(nesdev, root_vpbl, &new_root, pbl_count_4k, pbl_count_256) == 1) { 2038 if (root_256(nesdev, root_vpbl, &new_root, pbl_count_4k) == 1) {
2016 if (new_root.pbl_pbase != 0) 2039 if (new_root.pbl_pbase != 0)
2017 root_vpbl = &new_root; 2040 root_vpbl = &new_root;
2018 } else { 2041 } else {
@@ -2122,6 +2145,7 @@ static struct ib_mr *nes_reg_phys_mr(struct ib_pd *ib_pd,
2122 struct nes_root_vpbl root_vpbl; 2145 struct nes_root_vpbl root_vpbl;
2123 u32 stag; 2146 u32 stag;
2124 u32 i; 2147 u32 i;
2148 unsigned long mask;
2125 u32 stag_index = 0; 2149 u32 stag_index = 0;
2126 u32 next_stag_index = 0; 2150 u32 next_stag_index = 0;
2127 u32 driver_key = 0; 2151 u32 driver_key = 0;
@@ -2150,6 +2174,9 @@ static struct ib_mr *nes_reg_phys_mr(struct ib_pd *ib_pd,
2150 return ERR_PTR(-E2BIG); 2174 return ERR_PTR(-E2BIG);
2151 } 2175 }
2152 2176
2177 if ((buffer_list[0].addr ^ *iova_start) & ~PAGE_MASK)
2178 return ERR_PTR(-EINVAL);
2179
2153 err = nes_alloc_resource(nesadapter, nesadapter->allocated_mrs, nesadapter->max_mr, 2180 err = nes_alloc_resource(nesadapter, nesadapter->allocated_mrs, nesadapter->max_mr,
2154 &stag_index, &next_stag_index); 2181 &stag_index, &next_stag_index);
2155 if (err) { 2182 if (err) {
@@ -2215,19 +2242,16 @@ static struct ib_mr *nes_reg_phys_mr(struct ib_pd *ib_pd,
2215 root_pbl_index++; 2242 root_pbl_index++;
2216 cur_pbl_index = 0; 2243 cur_pbl_index = 0;
2217 } 2244 }
2218 if (buffer_list[i].addr & ~PAGE_MASK) {
2219 /* TODO: Unwind allocated buffers */
2220 nes_free_resource(nesadapter, nesadapter->allocated_mrs, stag_index);
2221 nes_debug(NES_DBG_MR, "Unaligned Memory Buffer: 0x%x\n",
2222 (unsigned int) buffer_list[i].addr);
2223 ibmr = ERR_PTR(-EINVAL);
2224 kfree(nesmr);
2225 goto reg_phys_err;
2226 }
2227 2245
2228 if (!buffer_list[i].size) { 2246 mask = !buffer_list[i].size;
2247 if (i != 0)
2248 mask |= buffer_list[i].addr;
2249 if (i != num_phys_buf - 1)
2250 mask |= buffer_list[i].addr + buffer_list[i].size;
2251
2252 if (mask & ~PAGE_MASK) {
2229 nes_free_resource(nesadapter, nesadapter->allocated_mrs, stag_index); 2253 nes_free_resource(nesadapter, nesadapter->allocated_mrs, stag_index);
2230 nes_debug(NES_DBG_MR, "Invalid Buffer Size\n"); 2254 nes_debug(NES_DBG_MR, "Invalid buffer addr or size\n");
2231 ibmr = ERR_PTR(-EINVAL); 2255 ibmr = ERR_PTR(-EINVAL);
2232 kfree(nesmr); 2256 kfree(nesmr);
2233 goto reg_phys_err; 2257 goto reg_phys_err;
@@ -2238,7 +2262,7 @@ static struct ib_mr *nes_reg_phys_mr(struct ib_pd *ib_pd,
2238 if ((buffer_list[i-1].addr+PAGE_SIZE) != buffer_list[i].addr) 2262 if ((buffer_list[i-1].addr+PAGE_SIZE) != buffer_list[i].addr)
2239 single_page = 0; 2263 single_page = 0;
2240 } 2264 }
2241 vpbl.pbl_vbase[cur_pbl_index].pa_low = cpu_to_le32((u32)buffer_list[i].addr); 2265 vpbl.pbl_vbase[cur_pbl_index].pa_low = cpu_to_le32((u32)buffer_list[i].addr & PAGE_MASK);
2242 vpbl.pbl_vbase[cur_pbl_index++].pa_high = 2266 vpbl.pbl_vbase[cur_pbl_index++].pa_high =
2243 cpu_to_le32((u32)((((u64)buffer_list[i].addr) >> 32))); 2267 cpu_to_le32((u32)((((u64)buffer_list[i].addr) >> 32)));
2244 } 2268 }
@@ -2251,8 +2275,6 @@ static struct ib_mr *nes_reg_phys_mr(struct ib_pd *ib_pd,
2251 " length = 0x%016lX, index = 0x%08X\n", 2275 " length = 0x%016lX, index = 0x%08X\n",
2252 stag, (unsigned long)*iova_start, (unsigned long)region_length, stag_index); 2276 stag, (unsigned long)*iova_start, (unsigned long)region_length, stag_index);
2253 2277
2254 region_length -= (*iova_start)&PAGE_MASK;
2255
2256 /* Make the leaf PBL the root if only one PBL */ 2278 /* Make the leaf PBL the root if only one PBL */
2257 if (root_pbl_index == 1) { 2279 if (root_pbl_index == 1) {
2258 root_vpbl.pbl_pbase = vpbl.pbl_pbase; 2280 root_vpbl.pbl_pbase = vpbl.pbl_pbase;
@@ -2786,10 +2808,9 @@ static ssize_t show_fw_ver(struct device *dev, struct device_attribute *attr,
2786 struct nes_vnic *nesvnic = nesibdev->nesvnic; 2808 struct nes_vnic *nesvnic = nesibdev->nesvnic;
2787 2809
2788 nes_debug(NES_DBG_INIT, "\n"); 2810 nes_debug(NES_DBG_INIT, "\n");
2789 return sprintf(buf, "%x.%x.%x\n", 2811 return sprintf(buf, "%u.%u\n",
2790 (int)(nesvnic->nesdev->nesadapter->fw_ver >> 32), 2812 (nesvnic->nesdev->nesadapter->firmware_version >> 16),
2791 (int)(nesvnic->nesdev->nesadapter->fw_ver >> 16) & 0xffff, 2813 (nesvnic->nesdev->nesadapter->firmware_version & 0x000000ff));
2792 (int)(nesvnic->nesdev->nesadapter->fw_ver & 0xffff));
2793} 2814}
2794 2815
2795 2816
diff --git a/drivers/infiniband/hw/nes/nes_verbs.h b/drivers/infiniband/hw/nes/nes_verbs.h
index 5e48f67fbe8d..41c07f29f7c9 100644
--- a/drivers/infiniband/hw/nes/nes_verbs.h
+++ b/drivers/infiniband/hw/nes/nes_verbs.h
@@ -112,6 +112,7 @@ struct nes_cq {
112 spinlock_t lock; 112 spinlock_t lock;
113 u8 virtual_cq; 113 u8 virtual_cq;
114 u8 pad[3]; 114 u8 pad[3];
115 u32 mcrqf;
115}; 116};
116 117
117struct nes_wq { 118struct nes_wq {
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
index da6082739839..e7e5adf84e84 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
@@ -685,7 +685,8 @@ int ipoib_ib_dev_open(struct net_device *dev)
685 queue_delayed_work(ipoib_workqueue, &priv->ah_reap_task, 685 queue_delayed_work(ipoib_workqueue, &priv->ah_reap_task,
686 round_jiffies_relative(HZ)); 686 round_jiffies_relative(HZ));
687 687
688 set_bit(IPOIB_FLAG_INITIALIZED, &priv->flags); 688 if (!test_and_set_bit(IPOIB_FLAG_INITIALIZED, &priv->flags))
689 napi_enable(&priv->napi);
689 690
690 return 0; 691 return 0;
691} 692}
@@ -804,7 +805,8 @@ int ipoib_ib_dev_stop(struct net_device *dev, int flush)
804 struct ipoib_tx_buf *tx_req; 805 struct ipoib_tx_buf *tx_req;
805 int i; 806 int i;
806 807
807 clear_bit(IPOIB_FLAG_INITIALIZED, &priv->flags); 808 if (test_and_clear_bit(IPOIB_FLAG_INITIALIZED, &priv->flags))
809 napi_disable(&priv->napi);
808 810
809 ipoib_cm_dev_stop(dev); 811 ipoib_cm_dev_stop(dev);
810 812
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index 421a6640c9bd..ab2c192c76bc 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -106,8 +106,7 @@ int ipoib_open(struct net_device *dev)
106 106
107 ipoib_dbg(priv, "bringing up interface\n"); 107 ipoib_dbg(priv, "bringing up interface\n");
108 108
109 if (!test_and_set_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags)) 109 set_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags);
110 napi_enable(&priv->napi);
111 110
112 if (ipoib_pkey_dev_delay_open(dev)) 111 if (ipoib_pkey_dev_delay_open(dev))
113 return 0; 112 return 0;
@@ -143,7 +142,6 @@ err_stop:
143 ipoib_ib_dev_stop(dev, 1); 142 ipoib_ib_dev_stop(dev, 1);
144 143
145err_disable: 144err_disable:
146 napi_disable(&priv->napi);
147 clear_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags); 145 clear_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags);
148 146
149 return -EINVAL; 147 return -EINVAL;
@@ -156,7 +154,6 @@ static int ipoib_stop(struct net_device *dev)
156 ipoib_dbg(priv, "stopping interface\n"); 154 ipoib_dbg(priv, "stopping interface\n");
157 155
158 clear_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags); 156 clear_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags);
159 napi_disable(&priv->napi);
160 157
161 netif_stop_queue(dev); 158 netif_stop_queue(dev);
162 159
diff --git a/drivers/input/mouse/maplemouse.c b/drivers/input/mouse/maplemouse.c
index d196abfb68bc..5f278176eb9b 100644
--- a/drivers/input/mouse/maplemouse.c
+++ b/drivers/input/mouse/maplemouse.c
@@ -2,8 +2,8 @@
2 * SEGA Dreamcast mouse driver 2 * SEGA Dreamcast mouse driver
3 * Based on drivers/usb/usbmouse.c 3 * Based on drivers/usb/usbmouse.c
4 * 4 *
5 * Copyright Yaegashi Takeshi, 2001 5 * Copyright (c) Yaegashi Takeshi, 2001
6 * Adrian McMenamin, 2008 6 * Copyright (c) Adrian McMenamin, 2008 - 2009
7 */ 7 */
8 8
9#include <linux/kernel.h> 9#include <linux/kernel.h>
@@ -29,7 +29,7 @@ static void dc_mouse_callback(struct mapleq *mq)
29 struct maple_device *mapledev = mq->dev; 29 struct maple_device *mapledev = mq->dev;
30 struct dc_mouse *mse = maple_get_drvdata(mapledev); 30 struct dc_mouse *mse = maple_get_drvdata(mapledev);
31 struct input_dev *dev = mse->dev; 31 struct input_dev *dev = mse->dev;
32 unsigned char *res = mq->recvbuf; 32 unsigned char *res = mq->recvbuf->buf;
33 33
34 buttons = ~res[8]; 34 buttons = ~res[8];
35 relx = *(unsigned short *)(res + 12) - 512; 35 relx = *(unsigned short *)(res + 12) - 512;
@@ -47,7 +47,7 @@ static void dc_mouse_callback(struct mapleq *mq)
47 47
48static int dc_mouse_open(struct input_dev *dev) 48static int dc_mouse_open(struct input_dev *dev)
49{ 49{
50 struct dc_mouse *mse = dev->dev.platform_data; 50 struct dc_mouse *mse = maple_get_drvdata(to_maple_dev(&dev->dev));
51 51
52 maple_getcond_callback(mse->mdev, dc_mouse_callback, HZ/50, 52 maple_getcond_callback(mse->mdev, dc_mouse_callback, HZ/50,
53 MAPLE_FUNC_MOUSE); 53 MAPLE_FUNC_MOUSE);
@@ -57,29 +57,33 @@ static int dc_mouse_open(struct input_dev *dev)
57 57
58static void dc_mouse_close(struct input_dev *dev) 58static void dc_mouse_close(struct input_dev *dev)
59{ 59{
60 struct dc_mouse *mse = dev->dev.platform_data; 60 struct dc_mouse *mse = maple_get_drvdata(to_maple_dev(&dev->dev));
61 61
62 maple_getcond_callback(mse->mdev, dc_mouse_callback, 0, 62 maple_getcond_callback(mse->mdev, dc_mouse_callback, 0,
63 MAPLE_FUNC_MOUSE); 63 MAPLE_FUNC_MOUSE);
64} 64}
65 65
66 66/* allow the mouse to be used */
67static int __devinit probe_maple_mouse(struct device *dev) 67static int __devinit probe_maple_mouse(struct device *dev)
68{ 68{
69 struct maple_device *mdev = to_maple_dev(dev); 69 struct maple_device *mdev = to_maple_dev(dev);
70 struct maple_driver *mdrv = to_maple_driver(dev->driver); 70 struct maple_driver *mdrv = to_maple_driver(dev->driver);
71 int error;
71 struct input_dev *input_dev; 72 struct input_dev *input_dev;
72 struct dc_mouse *mse; 73 struct dc_mouse *mse;
73 int error;
74 74
75 mse = kzalloc(sizeof(struct dc_mouse), GFP_KERNEL); 75 mse = kzalloc(sizeof(struct dc_mouse), GFP_KERNEL);
76 input_dev = input_allocate_device(); 76 if (!mse) {
77
78 if (!mse || !input_dev) {
79 error = -ENOMEM; 77 error = -ENOMEM;
80 goto fail; 78 goto fail;
81 } 79 }
82 80
81 input_dev = input_allocate_device();
82 if (!input_dev) {
83 error = -ENOMEM;
84 goto fail_nomem;
85 }
86
83 mse->dev = input_dev; 87 mse->dev = input_dev;
84 mse->mdev = mdev; 88 mse->mdev = mdev;
85 89
@@ -89,25 +93,24 @@ static int __devinit probe_maple_mouse(struct device *dev)
89 BIT_MASK(BTN_RIGHT) | BIT_MASK(BTN_MIDDLE); 93 BIT_MASK(BTN_RIGHT) | BIT_MASK(BTN_MIDDLE);
90 input_dev->relbit[0] = BIT_MASK(REL_X) | BIT_MASK(REL_Y) | 94 input_dev->relbit[0] = BIT_MASK(REL_X) | BIT_MASK(REL_Y) |
91 BIT_MASK(REL_WHEEL); 95 BIT_MASK(REL_WHEEL);
92 input_dev->name = mdev->product_name;
93 input_dev->id.bustype = BUS_HOST;
94 input_dev->open = dc_mouse_open; 96 input_dev->open = dc_mouse_open;
95 input_dev->close = dc_mouse_close; 97 input_dev->close = dc_mouse_close;
98 input_dev->name = mdev->product_name;
99 input_dev->id.bustype = BUS_HOST;
100 error = input_register_device(input_dev);
101 if (error)
102 goto fail_register;
96 103
97 mdev->driver = mdrv; 104 mdev->driver = mdrv;
98 maple_set_drvdata(mdev, mse); 105 maple_set_drvdata(mdev, mse);
99 106
100 error = input_register_device(input_dev); 107 return error;
101 if (error)
102 goto fail;
103
104 return 0;
105 108
106fail: 109fail_register:
107 input_free_device(input_dev); 110 input_free_device(input_dev);
108 maple_set_drvdata(mdev, NULL); 111fail_nomem:
109 kfree(mse); 112 kfree(mse);
110 mdev->driver = NULL; 113fail:
111 return error; 114 return error;
112} 115}
113 116
diff --git a/drivers/input/serio/hp_sdc.c b/drivers/input/serio/hp_sdc.c
index bfe49243f38b..1c9410d1822c 100644
--- a/drivers/input/serio/hp_sdc.c
+++ b/drivers/input/serio/hp_sdc.c
@@ -819,6 +819,7 @@ static const struct parisc_device_id hp_sdc_tbl[] = {
819MODULE_DEVICE_TABLE(parisc, hp_sdc_tbl); 819MODULE_DEVICE_TABLE(parisc, hp_sdc_tbl);
820 820
821static int __init hp_sdc_init_hppa(struct parisc_device *d); 821static int __init hp_sdc_init_hppa(struct parisc_device *d);
822static struct delayed_work moduleloader_work;
822 823
823static struct parisc_driver hp_sdc_driver = { 824static struct parisc_driver hp_sdc_driver = {
824 .name = "hp_sdc", 825 .name = "hp_sdc",
@@ -930,8 +931,15 @@ static int __init hp_sdc_init(void)
930 931
931#if defined(__hppa__) 932#if defined(__hppa__)
932 933
934static void request_module_delayed(struct work_struct *work)
935{
936 request_module("hp_sdc_mlc");
937}
938
933static int __init hp_sdc_init_hppa(struct parisc_device *d) 939static int __init hp_sdc_init_hppa(struct parisc_device *d)
934{ 940{
941 int ret;
942
935 if (!d) 943 if (!d)
936 return 1; 944 return 1;
937 if (hp_sdc.dev != NULL) 945 if (hp_sdc.dev != NULL)
@@ -944,13 +952,26 @@ static int __init hp_sdc_init_hppa(struct parisc_device *d)
944 hp_sdc.data_io = d->hpa.start + 0x800; 952 hp_sdc.data_io = d->hpa.start + 0x800;
945 hp_sdc.status_io = d->hpa.start + 0x801; 953 hp_sdc.status_io = d->hpa.start + 0x801;
946 954
947 return hp_sdc_init(); 955 INIT_DELAYED_WORK(&moduleloader_work, request_module_delayed);
956
957 ret = hp_sdc_init();
958 /* after sucessfull initialization give SDC some time to settle
959 * and then load the hp_sdc_mlc upper layer driver */
960 if (!ret)
961 schedule_delayed_work(&moduleloader_work,
962 msecs_to_jiffies(2000));
963
964 return ret;
948} 965}
949 966
950#endif /* __hppa__ */ 967#endif /* __hppa__ */
951 968
952static void hp_sdc_exit(void) 969static void hp_sdc_exit(void)
953{ 970{
971 /* do nothing if we don't have a SDC */
972 if (!hp_sdc.dev)
973 return;
974
954 write_lock_irq(&hp_sdc.lock); 975 write_lock_irq(&hp_sdc.lock);
955 976
956 /* Turn off all maskable "sub-function" irq's. */ 977 /* Turn off all maskable "sub-function" irq's. */
@@ -969,6 +990,7 @@ static void hp_sdc_exit(void)
969 tasklet_kill(&hp_sdc.task); 990 tasklet_kill(&hp_sdc.task);
970 991
971#if defined(__hppa__) 992#if defined(__hppa__)
993 cancel_delayed_work_sync(&moduleloader_work);
972 if (unregister_parisc_driver(&hp_sdc_driver)) 994 if (unregister_parisc_driver(&hp_sdc_driver))
973 printk(KERN_WARNING PREFIX "Error unregistering HP SDC"); 995 printk(KERN_WARNING PREFIX "Error unregistering HP SDC");
974#endif 996#endif
diff --git a/drivers/isdn/capi/kcapi.c b/drivers/isdn/capi/kcapi.c
index 5360c4fd4739..f33170368cd1 100644
--- a/drivers/isdn/capi/kcapi.c
+++ b/drivers/isdn/capi/kcapi.c
@@ -270,6 +270,15 @@ static void recv_handler(struct work_struct *work)
270 mutex_unlock(&ap->recv_mtx); 270 mutex_unlock(&ap->recv_mtx);
271} 271}
272 272
273/**
274 * capi_ctr_handle_message() - handle incoming CAPI message
275 * @card: controller descriptor structure.
276 * @appl: application ID.
277 * @skb: message.
278 *
279 * Called by hardware driver to pass a CAPI message to the application.
280 */
281
273void capi_ctr_handle_message(struct capi_ctr * card, u16 appl, struct sk_buff *skb) 282void capi_ctr_handle_message(struct capi_ctr * card, u16 appl, struct sk_buff *skb)
274{ 283{
275 struct capi20_appl *ap; 284 struct capi20_appl *ap;
@@ -348,6 +357,13 @@ error:
348 357
349EXPORT_SYMBOL(capi_ctr_handle_message); 358EXPORT_SYMBOL(capi_ctr_handle_message);
350 359
360/**
361 * capi_ctr_ready() - signal CAPI controller ready
362 * @card: controller descriptor structure.
363 *
364 * Called by hardware driver to signal that the controller is up and running.
365 */
366
351void capi_ctr_ready(struct capi_ctr * card) 367void capi_ctr_ready(struct capi_ctr * card)
352{ 368{
353 card->cardstate = CARD_RUNNING; 369 card->cardstate = CARD_RUNNING;
@@ -360,6 +376,14 @@ void capi_ctr_ready(struct capi_ctr * card)
360 376
361EXPORT_SYMBOL(capi_ctr_ready); 377EXPORT_SYMBOL(capi_ctr_ready);
362 378
379/**
380 * capi_ctr_reseted() - signal CAPI controller reset
381 * @card: controller descriptor structure.
382 *
383 * Called by hardware driver to signal that the controller is down and
384 * unavailable for use.
385 */
386
363void capi_ctr_reseted(struct capi_ctr * card) 387void capi_ctr_reseted(struct capi_ctr * card)
364{ 388{
365 u16 appl; 389 u16 appl;
@@ -391,6 +415,13 @@ void capi_ctr_reseted(struct capi_ctr * card)
391 415
392EXPORT_SYMBOL(capi_ctr_reseted); 416EXPORT_SYMBOL(capi_ctr_reseted);
393 417
418/**
419 * capi_ctr_suspend_output() - suspend controller
420 * @card: controller descriptor structure.
421 *
422 * Called by hardware driver to stop data flow.
423 */
424
394void capi_ctr_suspend_output(struct capi_ctr *card) 425void capi_ctr_suspend_output(struct capi_ctr *card)
395{ 426{
396 if (!card->blocked) { 427 if (!card->blocked) {
@@ -401,6 +432,13 @@ void capi_ctr_suspend_output(struct capi_ctr *card)
401 432
402EXPORT_SYMBOL(capi_ctr_suspend_output); 433EXPORT_SYMBOL(capi_ctr_suspend_output);
403 434
435/**
436 * capi_ctr_resume_output() - resume controller
437 * @card: controller descriptor structure.
438 *
439 * Called by hardware driver to resume data flow.
440 */
441
404void capi_ctr_resume_output(struct capi_ctr *card) 442void capi_ctr_resume_output(struct capi_ctr *card)
405{ 443{
406 if (card->blocked) { 444 if (card->blocked) {
@@ -413,6 +451,14 @@ EXPORT_SYMBOL(capi_ctr_resume_output);
413 451
414/* ------------------------------------------------------------- */ 452/* ------------------------------------------------------------- */
415 453
454/**
455 * attach_capi_ctr() - register CAPI controller
456 * @card: controller descriptor structure.
457 *
458 * Called by hardware driver to register a controller with the CAPI subsystem.
459 * Return value: 0 on success, error code < 0 on error
460 */
461
416int 462int
417attach_capi_ctr(struct capi_ctr *card) 463attach_capi_ctr(struct capi_ctr *card)
418{ 464{
@@ -459,6 +505,15 @@ attach_capi_ctr(struct capi_ctr *card)
459 505
460EXPORT_SYMBOL(attach_capi_ctr); 506EXPORT_SYMBOL(attach_capi_ctr);
461 507
508/**
509 * detach_capi_ctr() - unregister CAPI controller
510 * @card: controller descriptor structure.
511 *
512 * Called by hardware driver to remove the registration of a controller
513 * with the CAPI subsystem.
514 * Return value: 0 on success, error code < 0 on error
515 */
516
462int detach_capi_ctr(struct capi_ctr *card) 517int detach_capi_ctr(struct capi_ctr *card)
463{ 518{
464 if (card->cardstate != CARD_DETECTED) 519 if (card->cardstate != CARD_DETECTED)
@@ -479,6 +534,13 @@ int detach_capi_ctr(struct capi_ctr *card)
479 534
480EXPORT_SYMBOL(detach_capi_ctr); 535EXPORT_SYMBOL(detach_capi_ctr);
481 536
537/**
538 * register_capi_driver() - register CAPI driver
539 * @driver: driver descriptor structure.
540 *
541 * Called by hardware driver to register itself with the CAPI subsystem.
542 */
543
482void register_capi_driver(struct capi_driver *driver) 544void register_capi_driver(struct capi_driver *driver)
483{ 545{
484 unsigned long flags; 546 unsigned long flags;
@@ -490,6 +552,13 @@ void register_capi_driver(struct capi_driver *driver)
490 552
491EXPORT_SYMBOL(register_capi_driver); 553EXPORT_SYMBOL(register_capi_driver);
492 554
555/**
556 * unregister_capi_driver() - unregister CAPI driver
557 * @driver: driver descriptor structure.
558 *
559 * Called by hardware driver to unregister itself from the CAPI subsystem.
560 */
561
493void unregister_capi_driver(struct capi_driver *driver) 562void unregister_capi_driver(struct capi_driver *driver)
494{ 563{
495 unsigned long flags; 564 unsigned long flags;
@@ -505,6 +574,13 @@ EXPORT_SYMBOL(unregister_capi_driver);
505/* -------- CAPI2.0 Interface ---------------------------------- */ 574/* -------- CAPI2.0 Interface ---------------------------------- */
506/* ------------------------------------------------------------- */ 575/* ------------------------------------------------------------- */
507 576
577/**
578 * capi20_isinstalled() - CAPI 2.0 operation CAPI_INSTALLED
579 *
580 * Return value: CAPI result code (CAPI_NOERROR if at least one ISDN controller
581 * is ready for use, CAPI_REGNOTINSTALLED otherwise)
582 */
583
508u16 capi20_isinstalled(void) 584u16 capi20_isinstalled(void)
509{ 585{
510 int i; 586 int i;
@@ -517,6 +593,18 @@ u16 capi20_isinstalled(void)
517 593
518EXPORT_SYMBOL(capi20_isinstalled); 594EXPORT_SYMBOL(capi20_isinstalled);
519 595
596/**
597 * capi20_register() - CAPI 2.0 operation CAPI_REGISTER
598 * @ap: CAPI application descriptor structure.
599 *
600 * Register an application's presence with CAPI.
601 * A unique application ID is assigned and stored in @ap->applid.
602 * After this function returns successfully, the message receive
603 * callback function @ap->recv_message() may be called at any time
604 * until capi20_release() has been called for the same @ap.
605 * Return value: CAPI result code
606 */
607
520u16 capi20_register(struct capi20_appl *ap) 608u16 capi20_register(struct capi20_appl *ap)
521{ 609{
522 int i; 610 int i;
@@ -571,6 +659,16 @@ u16 capi20_register(struct capi20_appl *ap)
571 659
572EXPORT_SYMBOL(capi20_register); 660EXPORT_SYMBOL(capi20_register);
573 661
662/**
663 * capi20_release() - CAPI 2.0 operation CAPI_RELEASE
664 * @ap: CAPI application descriptor structure.
665 *
666 * Terminate an application's registration with CAPI.
667 * After this function returns successfully, the message receive
668 * callback function @ap->recv_message() will no longer be called.
669 * Return value: CAPI result code
670 */
671
574u16 capi20_release(struct capi20_appl *ap) 672u16 capi20_release(struct capi20_appl *ap)
575{ 673{
576 int i; 674 int i;
@@ -603,6 +701,15 @@ u16 capi20_release(struct capi20_appl *ap)
603 701
604EXPORT_SYMBOL(capi20_release); 702EXPORT_SYMBOL(capi20_release);
605 703
704/**
705 * capi20_put_message() - CAPI 2.0 operation CAPI_PUT_MESSAGE
706 * @ap: CAPI application descriptor structure.
707 * @skb: CAPI message.
708 *
709 * Transfer a single message to CAPI.
710 * Return value: CAPI result code
711 */
712
606u16 capi20_put_message(struct capi20_appl *ap, struct sk_buff *skb) 713u16 capi20_put_message(struct capi20_appl *ap, struct sk_buff *skb)
607{ 714{
608 struct capi_ctr *card; 715 struct capi_ctr *card;
@@ -668,6 +775,16 @@ u16 capi20_put_message(struct capi20_appl *ap, struct sk_buff *skb)
668 775
669EXPORT_SYMBOL(capi20_put_message); 776EXPORT_SYMBOL(capi20_put_message);
670 777
778/**
779 * capi20_get_manufacturer() - CAPI 2.0 operation CAPI_GET_MANUFACTURER
780 * @contr: controller number.
781 * @buf: result buffer (64 bytes).
782 *
783 * Retrieve information about the manufacturer of the specified ISDN controller
784 * or (for @contr == 0) the driver itself.
785 * Return value: CAPI result code
786 */
787
671u16 capi20_get_manufacturer(u32 contr, u8 *buf) 788u16 capi20_get_manufacturer(u32 contr, u8 *buf)
672{ 789{
673 struct capi_ctr *card; 790 struct capi_ctr *card;
@@ -685,6 +802,16 @@ u16 capi20_get_manufacturer(u32 contr, u8 *buf)
685 802
686EXPORT_SYMBOL(capi20_get_manufacturer); 803EXPORT_SYMBOL(capi20_get_manufacturer);
687 804
805/**
806 * capi20_get_version() - CAPI 2.0 operation CAPI_GET_VERSION
807 * @contr: controller number.
808 * @verp: result structure.
809 *
810 * Retrieve version information for the specified ISDN controller
811 * or (for @contr == 0) the driver itself.
812 * Return value: CAPI result code
813 */
814
688u16 capi20_get_version(u32 contr, struct capi_version *verp) 815u16 capi20_get_version(u32 contr, struct capi_version *verp)
689{ 816{
690 struct capi_ctr *card; 817 struct capi_ctr *card;
@@ -703,6 +830,16 @@ u16 capi20_get_version(u32 contr, struct capi_version *verp)
703 830
704EXPORT_SYMBOL(capi20_get_version); 831EXPORT_SYMBOL(capi20_get_version);
705 832
833/**
834 * capi20_get_serial() - CAPI 2.0 operation CAPI_GET_SERIAL_NUMBER
835 * @contr: controller number.
836 * @serial: result buffer (8 bytes).
837 *
838 * Retrieve the serial number of the specified ISDN controller
839 * or (for @contr == 0) the driver itself.
840 * Return value: CAPI result code
841 */
842
706u16 capi20_get_serial(u32 contr, u8 *serial) 843u16 capi20_get_serial(u32 contr, u8 *serial)
707{ 844{
708 struct capi_ctr *card; 845 struct capi_ctr *card;
@@ -721,6 +858,16 @@ u16 capi20_get_serial(u32 contr, u8 *serial)
721 858
722EXPORT_SYMBOL(capi20_get_serial); 859EXPORT_SYMBOL(capi20_get_serial);
723 860
861/**
862 * capi20_get_profile() - CAPI 2.0 operation CAPI_GET_PROFILE
863 * @contr: controller number.
864 * @profp: result structure.
865 *
866 * Retrieve capability information for the specified ISDN controller
867 * or (for @contr == 0) the number of installed controllers.
868 * Return value: CAPI result code
869 */
870
724u16 capi20_get_profile(u32 contr, struct capi_profile *profp) 871u16 capi20_get_profile(u32 contr, struct capi_profile *profp)
725{ 872{
726 struct capi_ctr *card; 873 struct capi_ctr *card;
@@ -903,6 +1050,15 @@ static int old_capi_manufacturer(unsigned int cmd, void __user *data)
903} 1050}
904#endif 1051#endif
905 1052
1053/**
1054 * capi20_manufacturer() - CAPI 2.0 operation CAPI_MANUFACTURER
1055 * @cmd: command.
1056 * @data: parameter.
1057 *
1058 * Perform manufacturer specific command.
1059 * Return value: CAPI result code
1060 */
1061
906int capi20_manufacturer(unsigned int cmd, void __user *data) 1062int capi20_manufacturer(unsigned int cmd, void __user *data)
907{ 1063{
908 struct capi_ctr *card; 1064 struct capi_ctr *card;
@@ -981,6 +1137,21 @@ int capi20_manufacturer(unsigned int cmd, void __user *data)
981EXPORT_SYMBOL(capi20_manufacturer); 1137EXPORT_SYMBOL(capi20_manufacturer);
982 1138
983/* temporary hack */ 1139/* temporary hack */
1140
1141/**
1142 * capi20_set_callback() - set CAPI application notification callback function
1143 * @ap: CAPI application descriptor structure.
1144 * @callback: callback function (NULL to remove).
1145 *
1146 * If not NULL, the callback function will be called to notify the
1147 * application of the addition or removal of a controller.
1148 * The first argument (cmd) will tell whether the controller was added
1149 * (KCI_CONTRUP) or removed (KCI_CONTRDOWN).
1150 * The second argument (contr) will be the controller number.
1151 * For cmd==KCI_CONTRUP the third argument (data) will be a pointer to the
1152 * new controller's capability profile structure.
1153 */
1154
984void capi20_set_callback(struct capi20_appl *ap, 1155void capi20_set_callback(struct capi20_appl *ap,
985 void (*callback) (unsigned int cmd, __u32 contr, void *data)) 1156 void (*callback) (unsigned int cmd, __u32 contr, void *data))
986{ 1157{
diff --git a/drivers/macintosh/Kconfig b/drivers/macintosh/Kconfig
index 173cf55c64d0..3d906833948d 100644
--- a/drivers/macintosh/Kconfig
+++ b/drivers/macintosh/Kconfig
@@ -123,7 +123,7 @@ config PMAC_APM_EMU
123 123
124config PMAC_MEDIABAY 124config PMAC_MEDIABAY
125 bool "Support PowerBook hotswap media bay" 125 bool "Support PowerBook hotswap media bay"
126 depends on PPC_PMAC && PPC32 126 depends on PPC_PMAC && PPC32 && BLOCK
127 help 127 help
128 This option adds support for older PowerBook's hotswap media bay 128 This option adds support for older PowerBook's hotswap media bay
129 that can contains batteries, floppy drives, or IDE devices. PCI 129 that can contains batteries, floppy drives, or IDE devices. PCI
diff --git a/drivers/macintosh/mediabay.c b/drivers/macintosh/mediabay.c
index d7e46d345d9e..029ad8ce8a7e 100644
--- a/drivers/macintosh/mediabay.c
+++ b/drivers/macintosh/mediabay.c
@@ -18,7 +18,6 @@
18#include <linux/timer.h> 18#include <linux/timer.h>
19#include <linux/stddef.h> 19#include <linux/stddef.h>
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/ide.h>
22#include <linux/kthread.h> 21#include <linux/kthread.h>
23#include <linux/mutex.h> 22#include <linux/mutex.h>
24#include <asm/prom.h> 23#include <asm/prom.h>
@@ -447,6 +446,7 @@ int check_media_bay_by_base(unsigned long base, int what)
447 446
448 return -ENODEV; 447 return -ENODEV;
449} 448}
449EXPORT_SYMBOL_GPL(check_media_bay_by_base);
450 450
451int media_bay_set_ide_infos(struct device_node* which_bay, unsigned long base, 451int media_bay_set_ide_infos(struct device_node* which_bay, unsigned long base,
452 int irq, ide_hwif_t *hwif) 452 int irq, ide_hwif_t *hwif)
@@ -486,6 +486,7 @@ int media_bay_set_ide_infos(struct device_node* which_bay, unsigned long base,
486 486
487 return -ENODEV; 487 return -ENODEV;
488} 488}
489EXPORT_SYMBOL_GPL(media_bay_set_ide_infos);
489#endif /* CONFIG_BLK_DEV_IDE_PMAC */ 490#endif /* CONFIG_BLK_DEV_IDE_PMAC */
490 491
491static void media_bay_step(int i) 492static void media_bay_step(int i)
diff --git a/drivers/media/radio/radio-si470x.c b/drivers/media/radio/radio-si470x.c
index 92c297796a9f..bd945d04dc90 100644
--- a/drivers/media/radio/radio-si470x.c
+++ b/drivers/media/radio/radio-si470x.c
@@ -1200,7 +1200,7 @@ static int si470x_fops_release(struct file *file)
1200 video_unregister_device(radio->videodev); 1200 video_unregister_device(radio->videodev);
1201 kfree(radio->buffer); 1201 kfree(radio->buffer);
1202 kfree(radio); 1202 kfree(radio);
1203 goto unlock; 1203 goto done;
1204 } 1204 }
1205 1205
1206 /* stop rds reception */ 1206 /* stop rds reception */
diff --git a/drivers/media/video/au0828/au0828-core.c b/drivers/media/video/au0828/au0828-core.c
index 4cee0b92eeee..a1e4c0d769a6 100644
--- a/drivers/media/video/au0828/au0828-core.c
+++ b/drivers/media/video/au0828/au0828-core.c
@@ -192,8 +192,6 @@ static int au0828_usb_probe(struct usb_interface *interface,
192 dev->usbdev = usbdev; 192 dev->usbdev = usbdev;
193 dev->boardnr = id->driver_info; 193 dev->boardnr = id->driver_info;
194 194
195 usb_set_intfdata(interface, dev);
196
197 /* Create the v4l2_device */ 195 /* Create the v4l2_device */
198 retval = v4l2_device_register(&interface->dev, &dev->v4l2_dev); 196 retval = v4l2_device_register(&interface->dev, &dev->v4l2_dev);
199 if (retval) { 197 if (retval) {
@@ -222,6 +220,10 @@ static int au0828_usb_probe(struct usb_interface *interface,
222 /* Digital TV */ 220 /* Digital TV */
223 au0828_dvb_register(dev); 221 au0828_dvb_register(dev);
224 222
223 /* Store the pointer to the au0828_dev so it can be accessed in
224 au0828_usb_disconnect */
225 usb_set_intfdata(interface, dev);
226
225 printk(KERN_INFO "Registered device AU0828 [%s]\n", 227 printk(KERN_INFO "Registered device AU0828 [%s]\n",
226 dev->board.name == NULL ? "Unset" : dev->board.name); 228 dev->board.name == NULL ? "Unset" : dev->board.name);
227 229
diff --git a/drivers/media/video/cx18/cx18-audio.c b/drivers/media/video/cx18/cx18-audio.c
index 1519e91c677a..7a8ad5963de8 100644
--- a/drivers/media/video/cx18/cx18-audio.c
+++ b/drivers/media/video/cx18/cx18-audio.c
@@ -44,7 +44,7 @@ int cx18_audio_set_io(struct cx18 *cx)
44 44
45 /* handle muxer chips */ 45 /* handle muxer chips */
46 v4l2_subdev_call(cx->sd_extmux, audio, s_routing, 46 v4l2_subdev_call(cx->sd_extmux, audio, s_routing,
47 in->audio_input, 0, 0); 47 (u32) in->muxer_input, 0, 0);
48 48
49 err = cx18_call_hw_err(cx, cx->card->hw_audio_ctrl, 49 err = cx18_call_hw_err(cx, cx->card->hw_audio_ctrl,
50 audio, s_routing, in->audio_input, 0, 0); 50 audio, s_routing, in->audio_input, 0, 0);
diff --git a/drivers/media/video/cx18/cx18-i2c.c b/drivers/media/video/cx18/cx18-i2c.c
index b9b7064a2be8..8591e4fc359f 100644
--- a/drivers/media/video/cx18/cx18-i2c.c
+++ b/drivers/media/video/cx18/cx18-i2c.c
@@ -211,7 +211,7 @@ static struct i2c_algo_bit_data cx18_i2c_algo_template = {
211/* init + register i2c algo-bit adapter */ 211/* init + register i2c algo-bit adapter */
212int init_cx18_i2c(struct cx18 *cx) 212int init_cx18_i2c(struct cx18 *cx)
213{ 213{
214 int i; 214 int i, err;
215 CX18_DEBUG_I2C("i2c init\n"); 215 CX18_DEBUG_I2C("i2c init\n");
216 216
217 for (i = 0; i < 2; i++) { 217 for (i = 0; i < 2; i++) {
@@ -268,8 +268,18 @@ int init_cx18_i2c(struct cx18 *cx)
268 cx18_call_hw(cx, CX18_HW_GPIO_RESET_CTRL, 268 cx18_call_hw(cx, CX18_HW_GPIO_RESET_CTRL,
269 core, reset, (u32) CX18_GPIO_RESET_I2C); 269 core, reset, (u32) CX18_GPIO_RESET_I2C);
270 270
271 return i2c_bit_add_bus(&cx->i2c_adap[0]) || 271 err = i2c_bit_add_bus(&cx->i2c_adap[0]);
272 i2c_bit_add_bus(&cx->i2c_adap[1]); 272 if (err)
273 goto err;
274 err = i2c_bit_add_bus(&cx->i2c_adap[1]);
275 if (err)
276 goto err_del_bus_0;
277 return 0;
278
279 err_del_bus_0:
280 i2c_del_adapter(&cx->i2c_adap[0]);
281 err:
282 return err;
273} 283}
274 284
275void exit_cx18_i2c(struct cx18 *cx) 285void exit_cx18_i2c(struct cx18 *cx)
diff --git a/drivers/media/video/cx231xx/Kconfig b/drivers/media/video/cx231xx/Kconfig
index 91156546a07a..477d4ab5e9ac 100644
--- a/drivers/media/video/cx231xx/Kconfig
+++ b/drivers/media/video/cx231xx/Kconfig
@@ -1,12 +1,11 @@
1config VIDEO_CX231XX 1config VIDEO_CX231XX
2 tristate "Conexant cx231xx USB video capture support" 2 tristate "Conexant cx231xx USB video capture support"
3 depends on VIDEO_DEV && I2C && INPUT 3 depends on VIDEO_DEV && I2C && INPUT
4 select VIDEO_TUNER 4 select VIDEO_TUNER
5 select VIDEO_TVEEPROM 5 select VIDEO_TVEEPROM
6 select VIDEO_IR 6 select VIDEO_IR
7 select VIDEOBUF_VMALLOC 7 select VIDEOBUF_VMALLOC
8 select VIDEO_CX25840 8 select VIDEO_CX25840
9 select VIDEO_CX231XX_ALSA
10 9
11 ---help--- 10 ---help---
12 This is a video4linux driver for Conexant 231xx USB based TV cards. 11 This is a video4linux driver for Conexant 231xx USB based TV cards.
@@ -15,21 +14,22 @@ config VIDEO_CX231XX
15 module will be called cx231xx 14 module will be called cx231xx
16 15
17config VIDEO_CX231XX_ALSA 16config VIDEO_CX231XX_ALSA
18 tristate "Conexant Cx231xx ALSA audio module" 17 tristate "Conexant Cx231xx ALSA audio module"
19 depends on VIDEO_CX231XX && SND 18 depends on VIDEO_CX231XX && SND
20 select SND_PCM 19 select SND_PCM
21 20
22 ---help--- 21 ---help---
23 This is an ALSA driver for Cx231xx USB based TV cards. 22 This is an ALSA driver for Cx231xx USB based TV cards.
24 23
25 To compile this driver as a module, choose M here: the 24 To compile this driver as a module, choose M here: the
26 module will be called cx231xx-alsa 25 module will be called cx231xx-alsa
27 26
28config VIDEO_CX231XX_DVB 27config VIDEO_CX231XX_DVB
29 tristate "DVB/ATSC Support for Cx231xx based TV cards" 28 tristate "DVB/ATSC Support for Cx231xx based TV cards"
30 depends on VIDEO_CX231XX && DVB_CORE 29 depends on VIDEO_CX231XX && DVB_CORE
31 select VIDEOBUF_DVB 30 select VIDEOBUF_DVB
32 select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMISE 31 select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMISE
33 ---help--- 32
34 This adds support for DVB cards based on the 33 ---help---
35 Conexant cx231xx chips. 34 This adds support for DVB cards based on the
35 Conexant cx231xx chips.
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c
index a3c0565be1a9..6d6293f7d428 100644
--- a/drivers/media/video/cx23885/cx23885-cards.c
+++ b/drivers/media/video/cx23885/cx23885-cards.c
@@ -441,9 +441,9 @@ int cx23885_tuner_callback(void *priv, int component, int command, int arg)
441 case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP: 441 case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP:
442 /* Two identical tuners on two different i2c buses, 442 /* Two identical tuners on two different i2c buses,
443 * we need to reset the correct gpio. */ 443 * we need to reset the correct gpio. */
444 if (port->nr == 0) 444 if (port->nr == 1)
445 bitmask = 0x01; 445 bitmask = 0x01;
446 else if (port->nr == 1) 446 else if (port->nr == 2)
447 bitmask = 0x04; 447 bitmask = 0x04;
448 break; 448 break;
449 } 449 }
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c
index f48454ab3900..0c49a98213c4 100644
--- a/drivers/media/video/cx23885/cx23885-dvb.c
+++ b/drivers/media/video/cx23885/cx23885-dvb.c
@@ -314,6 +314,7 @@ static struct zl10353_config dvico_fusionhdtv_xc3028 = {
314 .demod_address = 0x0f, 314 .demod_address = 0x0f,
315 .if2 = 45600, 315 .if2 = 45600,
316 .no_tuner = 1, 316 .no_tuner = 1,
317 .disable_i2c_gate_ctrl = 1,
317}; 318};
318 319
319static struct stv0900_config netup_stv0900_config = { 320static struct stv0900_config netup_stv0900_config = {
diff --git a/drivers/media/video/mx3_camera.c b/drivers/media/video/mx3_camera.c
index c462b811e994..2d0781118eb0 100644
--- a/drivers/media/video/mx3_camera.c
+++ b/drivers/media/video/mx3_camera.c
@@ -1063,10 +1063,6 @@ static struct soc_camera_host_ops mx3_soc_camera_host_ops = {
1063 .owner = THIS_MODULE, 1063 .owner = THIS_MODULE,
1064 .add = mx3_camera_add_device, 1064 .add = mx3_camera_add_device,
1065 .remove = mx3_camera_remove_device, 1065 .remove = mx3_camera_remove_device,
1066#ifdef CONFIG_PM
1067 .suspend = mx3_camera_suspend,
1068 .resume = mx3_camera_resume,
1069#endif
1070 .set_crop = mx3_camera_set_crop, 1066 .set_crop = mx3_camera_set_crop,
1071 .set_fmt = mx3_camera_set_fmt, 1067 .set_fmt = mx3_camera_set_fmt,
1072 .try_fmt = mx3_camera_try_fmt, 1068 .try_fmt = mx3_camera_try_fmt,
diff --git a/drivers/media/video/pwc/pwc-ctrl.c b/drivers/media/video/pwc/pwc-ctrl.c
index f9fbe02e0f69..50b415e07eda 100644
--- a/drivers/media/video/pwc/pwc-ctrl.c
+++ b/drivers/media/video/pwc/pwc-ctrl.c
@@ -159,35 +159,67 @@ static void pwc_set_image_buffer_size(struct pwc_device *pdev);
159 159
160/****************************************************************************/ 160/****************************************************************************/
161 161
162static int _send_control_msg(struct pwc_device *pdev,
163 u8 request, u16 value, int index, void *buf, int buflen, int timeout)
164{
165 int rc;
166 void *kbuf = NULL;
167
168 if (buflen) {
169 kbuf = kmalloc(buflen, GFP_KERNEL); /* not allowed on stack */
170 if (kbuf == NULL)
171 return -ENOMEM;
172 memcpy(kbuf, buf, buflen);
173 }
162 174
163#define SendControlMsg(request, value, buflen) \ 175 rc = usb_control_msg(pdev->udev, usb_sndctrlpipe(pdev->udev, 0),
164 usb_control_msg(pdev->udev, usb_sndctrlpipe(pdev->udev, 0), \ 176 request,
165 request, \ 177 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
166 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, \ 178 value,
167 value, \ 179 index,
168 pdev->vcinterface, \ 180 kbuf, buflen, timeout);
169 &buf, buflen, 500)
170 181
171#define RecvControlMsg(request, value, buflen) \ 182 kfree(kbuf);
172 usb_control_msg(pdev->udev, usb_rcvctrlpipe(pdev->udev, 0), \ 183 return rc;
173 request, \ 184}
174 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, \
175 value, \
176 pdev->vcinterface, \
177 &buf, buflen, 500)
178 185
186static int recv_control_msg(struct pwc_device *pdev,
187 u8 request, u16 value, void *buf, int buflen)
188{
189 int rc;
190 void *kbuf = kmalloc(buflen, GFP_KERNEL); /* not allowed on stack */
191
192 if (kbuf == NULL)
193 return -ENOMEM;
194
195 rc = usb_control_msg(pdev->udev, usb_rcvctrlpipe(pdev->udev, 0),
196 request,
197 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
198 value,
199 pdev->vcinterface,
200 kbuf, buflen, 500);
201 memcpy(buf, kbuf, buflen);
202 kfree(kbuf);
203 return rc;
204}
179 205
180static int send_video_command(struct usb_device *udev, int index, void *buf, int buflen) 206static inline int send_video_command(struct pwc_device *pdev,
207 int index, void *buf, int buflen)
181{ 208{
182 return usb_control_msg(udev, 209 return _send_control_msg(pdev,
183 usb_sndctrlpipe(udev, 0),
184 SET_EP_STREAM_CTL, 210 SET_EP_STREAM_CTL,
185 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
186 VIDEO_OUTPUT_CONTROL_FORMATTER, 211 VIDEO_OUTPUT_CONTROL_FORMATTER,
187 index, 212 index,
188 buf, buflen, 1000); 213 buf, buflen, 1000);
189} 214}
190 215
216static inline int send_control_msg(struct pwc_device *pdev,
217 u8 request, u16 value, void *buf, int buflen)
218{
219 return _send_control_msg(pdev,
220 request, value, pdev->vcinterface, buf, buflen, 500);
221}
222
191 223
192 224
193static int set_video_mode_Nala(struct pwc_device *pdev, int size, int frames) 225static int set_video_mode_Nala(struct pwc_device *pdev, int size, int frames)
@@ -224,7 +256,7 @@ static int set_video_mode_Nala(struct pwc_device *pdev, int size, int frames)
224 return -EINVAL; 256 return -EINVAL;
225 257
226 memcpy(buf, pEntry->mode, 3); 258 memcpy(buf, pEntry->mode, 3);
227 ret = send_video_command(pdev->udev, pdev->vendpoint, buf, 3); 259 ret = send_video_command(pdev, pdev->vendpoint, buf, 3);
228 if (ret < 0) { 260 if (ret < 0) {
229 PWC_DEBUG_MODULE("Failed to send video command... %d\n", ret); 261 PWC_DEBUG_MODULE("Failed to send video command... %d\n", ret);
230 return ret; 262 return ret;
@@ -285,7 +317,7 @@ static int set_video_mode_Timon(struct pwc_device *pdev, int size, int frames, i
285 memcpy(buf, pChoose->mode, 13); 317 memcpy(buf, pChoose->mode, 13);
286 if (snapshot) 318 if (snapshot)
287 buf[0] |= 0x80; 319 buf[0] |= 0x80;
288 ret = send_video_command(pdev->udev, pdev->vendpoint, buf, 13); 320 ret = send_video_command(pdev, pdev->vendpoint, buf, 13);
289 if (ret < 0) 321 if (ret < 0)
290 return ret; 322 return ret;
291 323
@@ -358,7 +390,7 @@ static int set_video_mode_Kiara(struct pwc_device *pdev, int size, int frames, i
358 buf[0] |= 0x80; 390 buf[0] |= 0x80;
359 391
360 /* Firmware bug: video endpoint is 5, but commands are sent to endpoint 4 */ 392 /* Firmware bug: video endpoint is 5, but commands are sent to endpoint 4 */
361 ret = send_video_command(pdev->udev, 4 /* pdev->vendpoint */, buf, 12); 393 ret = send_video_command(pdev, 4 /* pdev->vendpoint */, buf, 12);
362 if (ret < 0) 394 if (ret < 0)
363 return ret; 395 return ret;
364 396
@@ -530,7 +562,8 @@ int pwc_get_brightness(struct pwc_device *pdev)
530 char buf; 562 char buf;
531 int ret; 563 int ret;
532 564
533 ret = RecvControlMsg(GET_LUM_CTL, BRIGHTNESS_FORMATTER, 1); 565 ret = recv_control_msg(pdev,
566 GET_LUM_CTL, BRIGHTNESS_FORMATTER, &buf, sizeof(buf));
534 if (ret < 0) 567 if (ret < 0)
535 return ret; 568 return ret;
536 return buf; 569 return buf;
@@ -545,7 +578,8 @@ int pwc_set_brightness(struct pwc_device *pdev, int value)
545 if (value > 0xffff) 578 if (value > 0xffff)
546 value = 0xffff; 579 value = 0xffff;
547 buf = (value >> 9) & 0x7f; 580 buf = (value >> 9) & 0x7f;
548 return SendControlMsg(SET_LUM_CTL, BRIGHTNESS_FORMATTER, 1); 581 return send_control_msg(pdev,
582 SET_LUM_CTL, BRIGHTNESS_FORMATTER, &buf, sizeof(buf));
549} 583}
550 584
551/* CONTRAST */ 585/* CONTRAST */
@@ -555,7 +589,8 @@ int pwc_get_contrast(struct pwc_device *pdev)
555 char buf; 589 char buf;
556 int ret; 590 int ret;
557 591
558 ret = RecvControlMsg(GET_LUM_CTL, CONTRAST_FORMATTER, 1); 592 ret = recv_control_msg(pdev,
593 GET_LUM_CTL, CONTRAST_FORMATTER, &buf, sizeof(buf));
559 if (ret < 0) 594 if (ret < 0)
560 return ret; 595 return ret;
561 return buf; 596 return buf;
@@ -570,7 +605,8 @@ int pwc_set_contrast(struct pwc_device *pdev, int value)
570 if (value > 0xffff) 605 if (value > 0xffff)
571 value = 0xffff; 606 value = 0xffff;
572 buf = (value >> 10) & 0x3f; 607 buf = (value >> 10) & 0x3f;
573 return SendControlMsg(SET_LUM_CTL, CONTRAST_FORMATTER, 1); 608 return send_control_msg(pdev,
609 SET_LUM_CTL, CONTRAST_FORMATTER, &buf, sizeof(buf));
574} 610}
575 611
576/* GAMMA */ 612/* GAMMA */
@@ -580,7 +616,8 @@ int pwc_get_gamma(struct pwc_device *pdev)
580 char buf; 616 char buf;
581 int ret; 617 int ret;
582 618
583 ret = RecvControlMsg(GET_LUM_CTL, GAMMA_FORMATTER, 1); 619 ret = recv_control_msg(pdev,
620 GET_LUM_CTL, GAMMA_FORMATTER, &buf, sizeof(buf));
584 if (ret < 0) 621 if (ret < 0)
585 return ret; 622 return ret;
586 return buf; 623 return buf;
@@ -595,7 +632,8 @@ int pwc_set_gamma(struct pwc_device *pdev, int value)
595 if (value > 0xffff) 632 if (value > 0xffff)
596 value = 0xffff; 633 value = 0xffff;
597 buf = (value >> 11) & 0x1f; 634 buf = (value >> 11) & 0x1f;
598 return SendControlMsg(SET_LUM_CTL, GAMMA_FORMATTER, 1); 635 return send_control_msg(pdev,
636 SET_LUM_CTL, GAMMA_FORMATTER, &buf, sizeof(buf));
599} 637}
600 638
601 639
@@ -613,7 +651,8 @@ int pwc_get_saturation(struct pwc_device *pdev, int *value)
613 saturation_register = SATURATION_MODE_FORMATTER2; 651 saturation_register = SATURATION_MODE_FORMATTER2;
614 else 652 else
615 saturation_register = SATURATION_MODE_FORMATTER1; 653 saturation_register = SATURATION_MODE_FORMATTER1;
616 ret = RecvControlMsg(GET_CHROM_CTL, saturation_register, 1); 654 ret = recv_control_msg(pdev,
655 GET_CHROM_CTL, saturation_register, &buf, sizeof(buf));
617 if (ret < 0) 656 if (ret < 0)
618 return ret; 657 return ret;
619 *value = (signed)buf; 658 *value = (signed)buf;
@@ -636,7 +675,8 @@ int pwc_set_saturation(struct pwc_device *pdev, int value)
636 saturation_register = SATURATION_MODE_FORMATTER2; 675 saturation_register = SATURATION_MODE_FORMATTER2;
637 else 676 else
638 saturation_register = SATURATION_MODE_FORMATTER1; 677 saturation_register = SATURATION_MODE_FORMATTER1;
639 return SendControlMsg(SET_CHROM_CTL, saturation_register, 1); 678 return send_control_msg(pdev,
679 SET_CHROM_CTL, saturation_register, &buf, sizeof(buf));
640} 680}
641 681
642/* AGC */ 682/* AGC */
@@ -651,7 +691,8 @@ int pwc_set_agc(struct pwc_device *pdev, int mode, int value)
651 else 691 else
652 buf = 0xff; /* fixed */ 692 buf = 0xff; /* fixed */
653 693
654 ret = SendControlMsg(SET_LUM_CTL, AGC_MODE_FORMATTER, 1); 694 ret = send_control_msg(pdev,
695 SET_LUM_CTL, AGC_MODE_FORMATTER, &buf, sizeof(buf));
655 696
656 if (!mode && ret >= 0) { 697 if (!mode && ret >= 0) {
657 if (value < 0) 698 if (value < 0)
@@ -659,7 +700,8 @@ int pwc_set_agc(struct pwc_device *pdev, int mode, int value)
659 if (value > 0xffff) 700 if (value > 0xffff)
660 value = 0xffff; 701 value = 0xffff;
661 buf = (value >> 10) & 0x3F; 702 buf = (value >> 10) & 0x3F;
662 ret = SendControlMsg(SET_LUM_CTL, PRESET_AGC_FORMATTER, 1); 703 ret = send_control_msg(pdev,
704 SET_LUM_CTL, PRESET_AGC_FORMATTER, &buf, sizeof(buf));
663 } 705 }
664 if (ret < 0) 706 if (ret < 0)
665 return ret; 707 return ret;
@@ -671,12 +713,14 @@ int pwc_get_agc(struct pwc_device *pdev, int *value)
671 unsigned char buf; 713 unsigned char buf;
672 int ret; 714 int ret;
673 715
674 ret = RecvControlMsg(GET_LUM_CTL, AGC_MODE_FORMATTER, 1); 716 ret = recv_control_msg(pdev,
717 GET_LUM_CTL, AGC_MODE_FORMATTER, &buf, sizeof(buf));
675 if (ret < 0) 718 if (ret < 0)
676 return ret; 719 return ret;
677 720
678 if (buf != 0) { /* fixed */ 721 if (buf != 0) { /* fixed */
679 ret = RecvControlMsg(GET_LUM_CTL, PRESET_AGC_FORMATTER, 1); 722 ret = recv_control_msg(pdev,
723 GET_LUM_CTL, PRESET_AGC_FORMATTER, &buf, sizeof(buf));
680 if (ret < 0) 724 if (ret < 0)
681 return ret; 725 return ret;
682 if (buf > 0x3F) 726 if (buf > 0x3F)
@@ -684,7 +728,8 @@ int pwc_get_agc(struct pwc_device *pdev, int *value)
684 *value = (buf << 10); 728 *value = (buf << 10);
685 } 729 }
686 else { /* auto */ 730 else { /* auto */
687 ret = RecvControlMsg(GET_STATUS_CTL, READ_AGC_FORMATTER, 1); 731 ret = recv_control_msg(pdev,
732 GET_STATUS_CTL, READ_AGC_FORMATTER, &buf, sizeof(buf));
688 if (ret < 0) 733 if (ret < 0)
689 return ret; 734 return ret;
690 /* Gah... this value ranges from 0x00 ... 0x9F */ 735 /* Gah... this value ranges from 0x00 ... 0x9F */
@@ -707,7 +752,8 @@ int pwc_set_shutter_speed(struct pwc_device *pdev, int mode, int value)
707 else 752 else
708 buf[0] = 0xff; /* fixed */ 753 buf[0] = 0xff; /* fixed */
709 754
710 ret = SendControlMsg(SET_LUM_CTL, SHUTTER_MODE_FORMATTER, 1); 755 ret = send_control_msg(pdev,
756 SET_LUM_CTL, SHUTTER_MODE_FORMATTER, &buf, sizeof(buf));
711 757
712 if (!mode && ret >= 0) { 758 if (!mode && ret >= 0) {
713 if (value < 0) 759 if (value < 0)
@@ -726,7 +772,9 @@ int pwc_set_shutter_speed(struct pwc_device *pdev, int mode, int value)
726 buf[0] = value >> 8; 772 buf[0] = value >> 8;
727 } 773 }
728 774
729 ret = SendControlMsg(SET_LUM_CTL, PRESET_SHUTTER_FORMATTER, 2); 775 ret = send_control_msg(pdev,
776 SET_LUM_CTL, PRESET_SHUTTER_FORMATTER,
777 &buf, sizeof(buf));
730 } 778 }
731 return ret; 779 return ret;
732} 780}
@@ -737,7 +785,8 @@ int pwc_get_shutter_speed(struct pwc_device *pdev, int *value)
737 unsigned char buf[2]; 785 unsigned char buf[2];
738 int ret; 786 int ret;
739 787
740 ret = RecvControlMsg(GET_STATUS_CTL, READ_SHUTTER_FORMATTER, 2); 788 ret = recv_control_msg(pdev,
789 GET_STATUS_CTL, READ_SHUTTER_FORMATTER, &buf, sizeof(buf));
741 if (ret < 0) 790 if (ret < 0)
742 return ret; 791 return ret;
743 *value = buf[0] + (buf[1] << 8); 792 *value = buf[0] + (buf[1] << 8);
@@ -764,7 +813,9 @@ int pwc_camera_power(struct pwc_device *pdev, int power)
764 buf = 0x00; /* active */ 813 buf = 0x00; /* active */
765 else 814 else
766 buf = 0xFF; /* power save */ 815 buf = 0xFF; /* power save */
767 return SendControlMsg(SET_STATUS_CTL, SET_POWER_SAVE_MODE_FORMATTER, 1); 816 return send_control_msg(pdev,
817 SET_STATUS_CTL, SET_POWER_SAVE_MODE_FORMATTER,
818 &buf, sizeof(buf));
768} 819}
769 820
770 821
@@ -773,20 +824,20 @@ int pwc_camera_power(struct pwc_device *pdev, int power)
773 824
774int pwc_restore_user(struct pwc_device *pdev) 825int pwc_restore_user(struct pwc_device *pdev)
775{ 826{
776 char buf; /* dummy */ 827 return send_control_msg(pdev,
777 return SendControlMsg(SET_STATUS_CTL, RESTORE_USER_DEFAULTS_FORMATTER, 0); 828 SET_STATUS_CTL, RESTORE_USER_DEFAULTS_FORMATTER, NULL, 0);
778} 829}
779 830
780int pwc_save_user(struct pwc_device *pdev) 831int pwc_save_user(struct pwc_device *pdev)
781{ 832{
782 char buf; /* dummy */ 833 return send_control_msg(pdev,
783 return SendControlMsg(SET_STATUS_CTL, SAVE_USER_DEFAULTS_FORMATTER, 0); 834 SET_STATUS_CTL, SAVE_USER_DEFAULTS_FORMATTER, NULL, 0);
784} 835}
785 836
786int pwc_restore_factory(struct pwc_device *pdev) 837int pwc_restore_factory(struct pwc_device *pdev)
787{ 838{
788 char buf; /* dummy */ 839 return send_control_msg(pdev,
789 return SendControlMsg(SET_STATUS_CTL, RESTORE_FACTORY_DEFAULTS_FORMATTER, 0); 840 SET_STATUS_CTL, RESTORE_FACTORY_DEFAULTS_FORMATTER, NULL, 0);
790} 841}
791 842
792 /* ************************************************* */ 843 /* ************************************************* */
@@ -814,7 +865,8 @@ int pwc_set_awb(struct pwc_device *pdev, int mode)
814 865
815 buf = mode & 0x07; /* just the lowest three bits */ 866 buf = mode & 0x07; /* just the lowest three bits */
816 867
817 ret = SendControlMsg(SET_CHROM_CTL, WB_MODE_FORMATTER, 1); 868 ret = send_control_msg(pdev,
869 SET_CHROM_CTL, WB_MODE_FORMATTER, &buf, sizeof(buf));
818 870
819 if (ret < 0) 871 if (ret < 0)
820 return ret; 872 return ret;
@@ -826,7 +878,8 @@ int pwc_get_awb(struct pwc_device *pdev)
826 unsigned char buf; 878 unsigned char buf;
827 int ret; 879 int ret;
828 880
829 ret = RecvControlMsg(GET_CHROM_CTL, WB_MODE_FORMATTER, 1); 881 ret = recv_control_msg(pdev,
882 GET_CHROM_CTL, WB_MODE_FORMATTER, &buf, sizeof(buf));
830 883
831 if (ret < 0) 884 if (ret < 0)
832 return ret; 885 return ret;
@@ -843,7 +896,9 @@ int pwc_set_red_gain(struct pwc_device *pdev, int value)
843 value = 0xffff; 896 value = 0xffff;
844 /* only the msb is considered */ 897 /* only the msb is considered */
845 buf = value >> 8; 898 buf = value >> 8;
846 return SendControlMsg(SET_CHROM_CTL, PRESET_MANUAL_RED_GAIN_FORMATTER, 1); 899 return send_control_msg(pdev,
900 SET_CHROM_CTL, PRESET_MANUAL_RED_GAIN_FORMATTER,
901 &buf, sizeof(buf));
847} 902}
848 903
849int pwc_get_red_gain(struct pwc_device *pdev, int *value) 904int pwc_get_red_gain(struct pwc_device *pdev, int *value)
@@ -851,7 +906,9 @@ int pwc_get_red_gain(struct pwc_device *pdev, int *value)
851 unsigned char buf; 906 unsigned char buf;
852 int ret; 907 int ret;
853 908
854 ret = RecvControlMsg(GET_CHROM_CTL, PRESET_MANUAL_RED_GAIN_FORMATTER, 1); 909 ret = recv_control_msg(pdev,
910 GET_CHROM_CTL, PRESET_MANUAL_RED_GAIN_FORMATTER,
911 &buf, sizeof(buf));
855 if (ret < 0) 912 if (ret < 0)
856 return ret; 913 return ret;
857 *value = buf << 8; 914 *value = buf << 8;
@@ -869,7 +926,9 @@ int pwc_set_blue_gain(struct pwc_device *pdev, int value)
869 value = 0xffff; 926 value = 0xffff;
870 /* only the msb is considered */ 927 /* only the msb is considered */
871 buf = value >> 8; 928 buf = value >> 8;
872 return SendControlMsg(SET_CHROM_CTL, PRESET_MANUAL_BLUE_GAIN_FORMATTER, 1); 929 return send_control_msg(pdev,
930 SET_CHROM_CTL, PRESET_MANUAL_BLUE_GAIN_FORMATTER,
931 &buf, sizeof(buf));
873} 932}
874 933
875int pwc_get_blue_gain(struct pwc_device *pdev, int *value) 934int pwc_get_blue_gain(struct pwc_device *pdev, int *value)
@@ -877,7 +936,9 @@ int pwc_get_blue_gain(struct pwc_device *pdev, int *value)
877 unsigned char buf; 936 unsigned char buf;
878 int ret; 937 int ret;
879 938
880 ret = RecvControlMsg(GET_CHROM_CTL, PRESET_MANUAL_BLUE_GAIN_FORMATTER, 1); 939 ret = recv_control_msg(pdev,
940 GET_CHROM_CTL, PRESET_MANUAL_BLUE_GAIN_FORMATTER,
941 &buf, sizeof(buf));
881 if (ret < 0) 942 if (ret < 0)
882 return ret; 943 return ret;
883 *value = buf << 8; 944 *value = buf << 8;
@@ -894,7 +955,8 @@ static int pwc_read_red_gain(struct pwc_device *pdev, int *value)
894 unsigned char buf; 955 unsigned char buf;
895 int ret; 956 int ret;
896 957
897 ret = RecvControlMsg(GET_STATUS_CTL, READ_RED_GAIN_FORMATTER, 1); 958 ret = recv_control_msg(pdev,
959 GET_STATUS_CTL, READ_RED_GAIN_FORMATTER, &buf, sizeof(buf));
898 if (ret < 0) 960 if (ret < 0)
899 return ret; 961 return ret;
900 *value = buf << 8; 962 *value = buf << 8;
@@ -906,7 +968,8 @@ static int pwc_read_blue_gain(struct pwc_device *pdev, int *value)
906 unsigned char buf; 968 unsigned char buf;
907 int ret; 969 int ret;
908 970
909 ret = RecvControlMsg(GET_STATUS_CTL, READ_BLUE_GAIN_FORMATTER, 1); 971 ret = recv_control_msg(pdev,
972 GET_STATUS_CTL, READ_BLUE_GAIN_FORMATTER, &buf, sizeof(buf));
910 if (ret < 0) 973 if (ret < 0)
911 return ret; 974 return ret;
912 *value = buf << 8; 975 *value = buf << 8;
@@ -920,7 +983,8 @@ static int pwc_set_wb_speed(struct pwc_device *pdev, int speed)
920 983
921 /* useful range is 0x01..0x20 */ 984 /* useful range is 0x01..0x20 */
922 buf = speed / 0x7f0; 985 buf = speed / 0x7f0;
923 return SendControlMsg(SET_CHROM_CTL, AWB_CONTROL_SPEED_FORMATTER, 1); 986 return send_control_msg(pdev,
987 SET_CHROM_CTL, AWB_CONTROL_SPEED_FORMATTER, &buf, sizeof(buf));
924} 988}
925 989
926static int pwc_get_wb_speed(struct pwc_device *pdev, int *value) 990static int pwc_get_wb_speed(struct pwc_device *pdev, int *value)
@@ -928,7 +992,8 @@ static int pwc_get_wb_speed(struct pwc_device *pdev, int *value)
928 unsigned char buf; 992 unsigned char buf;
929 int ret; 993 int ret;
930 994
931 ret = RecvControlMsg(GET_CHROM_CTL, AWB_CONTROL_SPEED_FORMATTER, 1); 995 ret = recv_control_msg(pdev,
996 GET_CHROM_CTL, AWB_CONTROL_SPEED_FORMATTER, &buf, sizeof(buf));
932 if (ret < 0) 997 if (ret < 0)
933 return ret; 998 return ret;
934 *value = buf * 0x7f0; 999 *value = buf * 0x7f0;
@@ -942,7 +1007,8 @@ static int pwc_set_wb_delay(struct pwc_device *pdev, int delay)
942 1007
943 /* useful range is 0x01..0x3F */ 1008 /* useful range is 0x01..0x3F */
944 buf = (delay >> 10); 1009 buf = (delay >> 10);
945 return SendControlMsg(SET_CHROM_CTL, AWB_CONTROL_DELAY_FORMATTER, 1); 1010 return send_control_msg(pdev,
1011 SET_CHROM_CTL, AWB_CONTROL_DELAY_FORMATTER, &buf, sizeof(buf));
946} 1012}
947 1013
948static int pwc_get_wb_delay(struct pwc_device *pdev, int *value) 1014static int pwc_get_wb_delay(struct pwc_device *pdev, int *value)
@@ -950,7 +1016,8 @@ static int pwc_get_wb_delay(struct pwc_device *pdev, int *value)
950 unsigned char buf; 1016 unsigned char buf;
951 int ret; 1017 int ret;
952 1018
953 ret = RecvControlMsg(GET_CHROM_CTL, AWB_CONTROL_DELAY_FORMATTER, 1); 1019 ret = recv_control_msg(pdev,
1020 GET_CHROM_CTL, AWB_CONTROL_DELAY_FORMATTER, &buf, sizeof(buf));
954 if (ret < 0) 1021 if (ret < 0)
955 return ret; 1022 return ret;
956 *value = buf << 10; 1023 *value = buf << 10;
@@ -978,7 +1045,8 @@ int pwc_set_leds(struct pwc_device *pdev, int on_value, int off_value)
978 buf[0] = on_value; 1045 buf[0] = on_value;
979 buf[1] = off_value; 1046 buf[1] = off_value;
980 1047
981 return SendControlMsg(SET_STATUS_CTL, LED_FORMATTER, 2); 1048 return send_control_msg(pdev,
1049 SET_STATUS_CTL, LED_FORMATTER, &buf, sizeof(buf));
982} 1050}
983 1051
984static int pwc_get_leds(struct pwc_device *pdev, int *on_value, int *off_value) 1052static int pwc_get_leds(struct pwc_device *pdev, int *on_value, int *off_value)
@@ -992,7 +1060,8 @@ static int pwc_get_leds(struct pwc_device *pdev, int *on_value, int *off_value)
992 return 0; 1060 return 0;
993 } 1061 }
994 1062
995 ret = RecvControlMsg(GET_STATUS_CTL, LED_FORMATTER, 2); 1063 ret = recv_control_msg(pdev,
1064 GET_STATUS_CTL, LED_FORMATTER, &buf, sizeof(buf));
996 if (ret < 0) 1065 if (ret < 0)
997 return ret; 1066 return ret;
998 *on_value = buf[0] * 100; 1067 *on_value = buf[0] * 100;
@@ -1009,7 +1078,8 @@ int pwc_set_contour(struct pwc_device *pdev, int contour)
1009 buf = 0xff; /* auto contour on */ 1078 buf = 0xff; /* auto contour on */
1010 else 1079 else
1011 buf = 0x0; /* auto contour off */ 1080 buf = 0x0; /* auto contour off */
1012 ret = SendControlMsg(SET_LUM_CTL, AUTO_CONTOUR_FORMATTER, 1); 1081 ret = send_control_msg(pdev,
1082 SET_LUM_CTL, AUTO_CONTOUR_FORMATTER, &buf, sizeof(buf));
1013 if (ret < 0) 1083 if (ret < 0)
1014 return ret; 1084 return ret;
1015 1085
@@ -1019,7 +1089,8 @@ int pwc_set_contour(struct pwc_device *pdev, int contour)
1019 contour = 0xffff; 1089 contour = 0xffff;
1020 1090
1021 buf = (contour >> 10); /* contour preset is [0..3f] */ 1091 buf = (contour >> 10); /* contour preset is [0..3f] */
1022 ret = SendControlMsg(SET_LUM_CTL, PRESET_CONTOUR_FORMATTER, 1); 1092 ret = send_control_msg(pdev,
1093 SET_LUM_CTL, PRESET_CONTOUR_FORMATTER, &buf, sizeof(buf));
1023 if (ret < 0) 1094 if (ret < 0)
1024 return ret; 1095 return ret;
1025 return 0; 1096 return 0;
@@ -1030,13 +1101,16 @@ int pwc_get_contour(struct pwc_device *pdev, int *contour)
1030 unsigned char buf; 1101 unsigned char buf;
1031 int ret; 1102 int ret;
1032 1103
1033 ret = RecvControlMsg(GET_LUM_CTL, AUTO_CONTOUR_FORMATTER, 1); 1104 ret = recv_control_msg(pdev,
1105 GET_LUM_CTL, AUTO_CONTOUR_FORMATTER, &buf, sizeof(buf));
1034 if (ret < 0) 1106 if (ret < 0)
1035 return ret; 1107 return ret;
1036 1108
1037 if (buf == 0) { 1109 if (buf == 0) {
1038 /* auto mode off, query current preset value */ 1110 /* auto mode off, query current preset value */
1039 ret = RecvControlMsg(GET_LUM_CTL, PRESET_CONTOUR_FORMATTER, 1); 1111 ret = recv_control_msg(pdev,
1112 GET_LUM_CTL, PRESET_CONTOUR_FORMATTER,
1113 &buf, sizeof(buf));
1040 if (ret < 0) 1114 if (ret < 0)
1041 return ret; 1115 return ret;
1042 *contour = buf << 10; 1116 *contour = buf << 10;
@@ -1055,7 +1129,9 @@ int pwc_set_backlight(struct pwc_device *pdev, int backlight)
1055 buf = 0xff; 1129 buf = 0xff;
1056 else 1130 else
1057 buf = 0x0; 1131 buf = 0x0;
1058 return SendControlMsg(SET_LUM_CTL, BACK_LIGHT_COMPENSATION_FORMATTER, 1); 1132 return send_control_msg(pdev,
1133 SET_LUM_CTL, BACK_LIGHT_COMPENSATION_FORMATTER,
1134 &buf, sizeof(buf));
1059} 1135}
1060 1136
1061int pwc_get_backlight(struct pwc_device *pdev, int *backlight) 1137int pwc_get_backlight(struct pwc_device *pdev, int *backlight)
@@ -1063,7 +1139,9 @@ int pwc_get_backlight(struct pwc_device *pdev, int *backlight)
1063 int ret; 1139 int ret;
1064 unsigned char buf; 1140 unsigned char buf;
1065 1141
1066 ret = RecvControlMsg(GET_LUM_CTL, BACK_LIGHT_COMPENSATION_FORMATTER, 1); 1142 ret = recv_control_msg(pdev,
1143 GET_LUM_CTL, BACK_LIGHT_COMPENSATION_FORMATTER,
1144 &buf, sizeof(buf));
1067 if (ret < 0) 1145 if (ret < 0)
1068 return ret; 1146 return ret;
1069 *backlight = !!buf; 1147 *backlight = !!buf;
@@ -1078,7 +1156,8 @@ int pwc_set_colour_mode(struct pwc_device *pdev, int colour)
1078 buf = 0xff; 1156 buf = 0xff;
1079 else 1157 else
1080 buf = 0x0; 1158 buf = 0x0;
1081 return SendControlMsg(SET_CHROM_CTL, COLOUR_MODE_FORMATTER, 1); 1159 return send_control_msg(pdev,
1160 SET_CHROM_CTL, COLOUR_MODE_FORMATTER, &buf, sizeof(buf));
1082} 1161}
1083 1162
1084int pwc_get_colour_mode(struct pwc_device *pdev, int *colour) 1163int pwc_get_colour_mode(struct pwc_device *pdev, int *colour)
@@ -1086,7 +1165,8 @@ int pwc_get_colour_mode(struct pwc_device *pdev, int *colour)
1086 int ret; 1165 int ret;
1087 unsigned char buf; 1166 unsigned char buf;
1088 1167
1089 ret = RecvControlMsg(GET_CHROM_CTL, COLOUR_MODE_FORMATTER, 1); 1168 ret = recv_control_msg(pdev,
1169 GET_CHROM_CTL, COLOUR_MODE_FORMATTER, &buf, sizeof(buf));
1090 if (ret < 0) 1170 if (ret < 0)
1091 return ret; 1171 return ret;
1092 *colour = !!buf; 1172 *colour = !!buf;
@@ -1102,7 +1182,8 @@ int pwc_set_flicker(struct pwc_device *pdev, int flicker)
1102 buf = 0xff; 1182 buf = 0xff;
1103 else 1183 else
1104 buf = 0x0; 1184 buf = 0x0;
1105 return SendControlMsg(SET_LUM_CTL, FLICKERLESS_MODE_FORMATTER, 1); 1185 return send_control_msg(pdev,
1186 SET_LUM_CTL, FLICKERLESS_MODE_FORMATTER, &buf, sizeof(buf));
1106} 1187}
1107 1188
1108int pwc_get_flicker(struct pwc_device *pdev, int *flicker) 1189int pwc_get_flicker(struct pwc_device *pdev, int *flicker)
@@ -1110,7 +1191,8 @@ int pwc_get_flicker(struct pwc_device *pdev, int *flicker)
1110 int ret; 1191 int ret;
1111 unsigned char buf; 1192 unsigned char buf;
1112 1193
1113 ret = RecvControlMsg(GET_LUM_CTL, FLICKERLESS_MODE_FORMATTER, 1); 1194 ret = recv_control_msg(pdev,
1195 GET_LUM_CTL, FLICKERLESS_MODE_FORMATTER, &buf, sizeof(buf));
1114 if (ret < 0) 1196 if (ret < 0)
1115 return ret; 1197 return ret;
1116 *flicker = !!buf; 1198 *flicker = !!buf;
@@ -1126,7 +1208,9 @@ int pwc_set_dynamic_noise(struct pwc_device *pdev, int noise)
1126 if (noise > 3) 1208 if (noise > 3)
1127 noise = 3; 1209 noise = 3;
1128 buf = noise; 1210 buf = noise;
1129 return SendControlMsg(SET_LUM_CTL, DYNAMIC_NOISE_CONTROL_FORMATTER, 1); 1211 return send_control_msg(pdev,
1212 SET_LUM_CTL, DYNAMIC_NOISE_CONTROL_FORMATTER,
1213 &buf, sizeof(buf));
1130} 1214}
1131 1215
1132int pwc_get_dynamic_noise(struct pwc_device *pdev, int *noise) 1216int pwc_get_dynamic_noise(struct pwc_device *pdev, int *noise)
@@ -1134,7 +1218,9 @@ int pwc_get_dynamic_noise(struct pwc_device *pdev, int *noise)
1134 int ret; 1218 int ret;
1135 unsigned char buf; 1219 unsigned char buf;
1136 1220
1137 ret = RecvControlMsg(GET_LUM_CTL, DYNAMIC_NOISE_CONTROL_FORMATTER, 1); 1221 ret = recv_control_msg(pdev,
1222 GET_LUM_CTL, DYNAMIC_NOISE_CONTROL_FORMATTER,
1223 &buf, sizeof(buf));
1138 if (ret < 0) 1224 if (ret < 0)
1139 return ret; 1225 return ret;
1140 *noise = buf; 1226 *noise = buf;
@@ -1146,7 +1232,8 @@ static int _pwc_mpt_reset(struct pwc_device *pdev, int flags)
1146 unsigned char buf; 1232 unsigned char buf;
1147 1233
1148 buf = flags & 0x03; // only lower two bits are currently used 1234 buf = flags & 0x03; // only lower two bits are currently used
1149 return SendControlMsg(SET_MPT_CTL, PT_RESET_CONTROL_FORMATTER, 1); 1235 return send_control_msg(pdev,
1236 SET_MPT_CTL, PT_RESET_CONTROL_FORMATTER, &buf, sizeof(buf));
1150} 1237}
1151 1238
1152int pwc_mpt_reset(struct pwc_device *pdev, int flags) 1239int pwc_mpt_reset(struct pwc_device *pdev, int flags)
@@ -1175,7 +1262,8 @@ static int _pwc_mpt_set_angle(struct pwc_device *pdev, int pan, int tilt)
1175 buf[1] = (pan >> 8) & 0xFF; 1262 buf[1] = (pan >> 8) & 0xFF;
1176 buf[2] = tilt & 0xFF; 1263 buf[2] = tilt & 0xFF;
1177 buf[3] = (tilt >> 8) & 0xFF; 1264 buf[3] = (tilt >> 8) & 0xFF;
1178 return SendControlMsg(SET_MPT_CTL, PT_RELATIVE_CONTROL_FORMATTER, 4); 1265 return send_control_msg(pdev,
1266 SET_MPT_CTL, PT_RELATIVE_CONTROL_FORMATTER, &buf, sizeof(buf));
1179} 1267}
1180 1268
1181int pwc_mpt_set_angle(struct pwc_device *pdev, int pan, int tilt) 1269int pwc_mpt_set_angle(struct pwc_device *pdev, int pan, int tilt)
@@ -1211,7 +1299,8 @@ static int pwc_mpt_get_status(struct pwc_device *pdev, struct pwc_mpt_status *st
1211 int ret; 1299 int ret;
1212 unsigned char buf[5]; 1300 unsigned char buf[5];
1213 1301
1214 ret = RecvControlMsg(GET_MPT_CTL, PT_STATUS_FORMATTER, 5); 1302 ret = recv_control_msg(pdev,
1303 GET_MPT_CTL, PT_STATUS_FORMATTER, &buf, sizeof(buf));
1215 if (ret < 0) 1304 if (ret < 0)
1216 return ret; 1305 return ret;
1217 status->status = buf[0] & 0x7; // 3 bits are used for reporting 1306 status->status = buf[0] & 0x7; // 3 bits are used for reporting
@@ -1233,7 +1322,8 @@ int pwc_get_cmos_sensor(struct pwc_device *pdev, int *sensor)
1233 else 1322 else
1234 request = SENSOR_TYPE_FORMATTER2; 1323 request = SENSOR_TYPE_FORMATTER2;
1235 1324
1236 ret = RecvControlMsg(GET_STATUS_CTL, request, 1); 1325 ret = recv_control_msg(pdev,
1326 GET_STATUS_CTL, request, &buf, sizeof(buf));
1237 if (ret < 0) 1327 if (ret < 0)
1238 return ret; 1328 return ret;
1239 if (pdev->type < 675) 1329 if (pdev->type < 675)
diff --git a/drivers/media/video/s2255drv.c b/drivers/media/video/s2255drv.c
index 5202cadb2aae..30f4698be90a 100644
--- a/drivers/media/video/s2255drv.c
+++ b/drivers/media/video/s2255drv.c
@@ -1237,6 +1237,7 @@ static int s2255_set_mode(struct s2255_dev *dev, unsigned long chn,
1237 buffer[1] = (u32) chn_rev; 1237 buffer[1] = (u32) chn_rev;
1238 buffer[2] = CMD_SET_MODE; 1238 buffer[2] = CMD_SET_MODE;
1239 memcpy(&buffer[3], &dev->mode[chn], sizeof(struct s2255_mode)); 1239 memcpy(&buffer[3], &dev->mode[chn], sizeof(struct s2255_mode));
1240 dev->setmode_ready[chn] = 0;
1240 res = s2255_write_config(dev->udev, (unsigned char *)buffer, 512); 1241 res = s2255_write_config(dev->udev, (unsigned char *)buffer, 512);
1241 if (debug) 1242 if (debug)
1242 dump_verify_mode(dev, mode); 1243 dump_verify_mode(dev, mode);
@@ -1245,7 +1246,6 @@ static int s2255_set_mode(struct s2255_dev *dev, unsigned long chn,
1245 1246
1246 /* wait at least 3 frames before continuing */ 1247 /* wait at least 3 frames before continuing */
1247 if (mode->restart) { 1248 if (mode->restart) {
1248 dev->setmode_ready[chn] = 0;
1249 wait_event_timeout(dev->wait_setmode[chn], 1249 wait_event_timeout(dev->wait_setmode[chn],
1250 (dev->setmode_ready[chn] != 0), 1250 (dev->setmode_ready[chn] != 0),
1251 msecs_to_jiffies(S2255_SETMODE_TIMEOUT)); 1251 msecs_to_jiffies(S2255_SETMODE_TIMEOUT));
diff --git a/drivers/media/video/saa5246a.c b/drivers/media/video/saa5246a.c
index da47b2f05288..155804b061e9 100644
--- a/drivers/media/video/saa5246a.c
+++ b/drivers/media/video/saa5246a.c
@@ -1092,9 +1092,8 @@ static int saa5246a_probe(struct i2c_client *client,
1092 /* Register it */ 1092 /* Register it */
1093 err = video_register_device(t->vdev, VFL_TYPE_VTX, -1); 1093 err = video_register_device(t->vdev, VFL_TYPE_VTX, -1);
1094 if (err < 0) { 1094 if (err < 0) {
1095 kfree(t);
1096 video_device_release(t->vdev); 1095 video_device_release(t->vdev);
1097 t->vdev = NULL; 1096 kfree(t);
1098 return err; 1097 return err;
1099 } 1098 }
1100 return 0; 1099 return 0;
diff --git a/drivers/media/video/saa5249.c b/drivers/media/video/saa5249.c
index 48b27fe48087..271d6e931b75 100644
--- a/drivers/media/video/saa5249.c
+++ b/drivers/media/video/saa5249.c
@@ -598,6 +598,7 @@ static int saa5249_probe(struct i2c_client *client,
598 /* Now create a video4linux device */ 598 /* Now create a video4linux device */
599 t->vdev = video_device_alloc(); 599 t->vdev = video_device_alloc();
600 if (t->vdev == NULL) { 600 if (t->vdev == NULL) {
601 kfree(t);
601 kfree(client); 602 kfree(client);
602 return -ENOMEM; 603 return -ENOMEM;
603 } 604 }
@@ -617,9 +618,8 @@ static int saa5249_probe(struct i2c_client *client,
617 /* Register it */ 618 /* Register it */
618 err = video_register_device(t->vdev, VFL_TYPE_VTX, -1); 619 err = video_register_device(t->vdev, VFL_TYPE_VTX, -1);
619 if (err < 0) { 620 if (err < 0) {
620 kfree(t);
621 video_device_release(t->vdev); 621 video_device_release(t->vdev);
622 t->vdev = NULL; 622 kfree(t);
623 return err; 623 return err;
624 } 624 }
625 return 0; 625 return 0;
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index d0d126c69354..5d496a99e034 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -5934,7 +5934,7 @@ mpt_config(MPT_ADAPTER *ioc, CONFIGPARMS *pCfg)
5934 5934
5935 /* Initalize the timer 5935 /* Initalize the timer
5936 */ 5936 */
5937 init_timer(&pCfg->timer); 5937 init_timer_on_stack(&pCfg->timer);
5938 pCfg->timer.data = (unsigned long) ioc; 5938 pCfg->timer.data = (unsigned long) ioc;
5939 pCfg->timer.function = mpt_timer_expired; 5939 pCfg->timer.function = mpt_timer_expired;
5940 pCfg->wait_done = 0; 5940 pCfg->wait_done = 0;
diff --git a/drivers/misc/sgi-gru/grufile.c b/drivers/misc/sgi-gru/grufile.c
index 3e6e42d2f01b..bbefe77c67a9 100644
--- a/drivers/misc/sgi-gru/grufile.c
+++ b/drivers/misc/sgi-gru/grufile.c
@@ -375,7 +375,7 @@ static int __init gru_init(void)
375 void *gru_start_vaddr; 375 void *gru_start_vaddr;
376 376
377 if (!is_uv_system()) 377 if (!is_uv_system())
378 return -ENODEV; 378 return 0;
379 379
380#if defined CONFIG_IA64 380#if defined CONFIG_IA64
381 gru_start_paddr = 0xd000000000UL; /* ZZZZZZZZZZZZZZZZZZZ fixme */ 381 gru_start_paddr = 0xd000000000UL; /* ZZZZZZZZZZZZZZZZZZZ fixme */
diff --git a/drivers/misc/sgi-xp/xp_main.c b/drivers/misc/sgi-xp/xp_main.c
index 16f8dcab2da4..7896849b16dc 100644
--- a/drivers/misc/sgi-xp/xp_main.c
+++ b/drivers/misc/sgi-xp/xp_main.c
@@ -248,19 +248,19 @@ xp_init(void)
248 enum xp_retval ret; 248 enum xp_retval ret;
249 int ch_number; 249 int ch_number;
250 250
251 /* initialize the connection registration mutex */
252 for (ch_number = 0; ch_number < XPC_MAX_NCHANNELS; ch_number++)
253 mutex_init(&xpc_registrations[ch_number].mutex);
254
251 if (is_shub()) 255 if (is_shub())
252 ret = xp_init_sn2(); 256 ret = xp_init_sn2();
253 else if (is_uv()) 257 else if (is_uv())
254 ret = xp_init_uv(); 258 ret = xp_init_uv();
255 else 259 else
256 ret = xpUnsupported; 260 ret = 0;
257 261
258 if (ret != xpSuccess) 262 if (ret != xpSuccess)
259 return -ENODEV; 263 return ret;
260
261 /* initialize the connection registration mutex */
262 for (ch_number = 0; ch_number < XPC_MAX_NCHANNELS; ch_number++)
263 mutex_init(&xpc_registrations[ch_number].mutex);
264 264
265 return 0; 265 return 0;
266} 266}
diff --git a/drivers/mtd/nand/cafe_nand.c b/drivers/mtd/nand/cafe_nand.c
index 7c5b257ce8e4..29acd06b1c39 100644
--- a/drivers/mtd/nand/cafe_nand.c
+++ b/drivers/mtd/nand/cafe_nand.c
@@ -332,7 +332,7 @@ static void cafe_select_chip(struct mtd_info *mtd, int chipnr)
332 cafe->ctl1 &= ~CTRL1_CHIPSELECT; 332 cafe->ctl1 &= ~CTRL1_CHIPSELECT;
333} 333}
334 334
335static int cafe_nand_interrupt(int irq, void *id) 335static irqreturn_t cafe_nand_interrupt(int irq, void *id)
336{ 336{
337 struct mtd_info *mtd = id; 337 struct mtd_info *mtd = id;
338 struct cafe_priv *cafe = mtd->priv; 338 struct cafe_priv *cafe = mtd->priv;
diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c
index 29df398b7727..1fc45431a620 100644
--- a/drivers/net/8139too.c
+++ b/drivers/net/8139too.c
@@ -1383,6 +1383,11 @@ static void rtl8139_hw_start (struct net_device *dev)
1383 RTL_W32_F (MAC0 + 0, le32_to_cpu (*(__le32 *) (dev->dev_addr + 0))); 1383 RTL_W32_F (MAC0 + 0, le32_to_cpu (*(__le32 *) (dev->dev_addr + 0)));
1384 RTL_W32_F (MAC0 + 4, le16_to_cpu (*(__le16 *) (dev->dev_addr + 4))); 1384 RTL_W32_F (MAC0 + 4, le16_to_cpu (*(__le16 *) (dev->dev_addr + 4)));
1385 1385
1386 tp->cur_rx = 0;
1387
1388 /* init Rx ring buffer DMA address */
1389 RTL_W32_F (RxBuf, tp->rx_ring_dma);
1390
1386 /* Must enable Tx/Rx before setting transfer thresholds! */ 1391 /* Must enable Tx/Rx before setting transfer thresholds! */
1387 RTL_W8 (ChipCmd, CmdRxEnb | CmdTxEnb); 1392 RTL_W8 (ChipCmd, CmdRxEnb | CmdTxEnb);
1388 1393
@@ -1390,8 +1395,6 @@ static void rtl8139_hw_start (struct net_device *dev)
1390 RTL_W32 (RxConfig, tp->rx_config); 1395 RTL_W32 (RxConfig, tp->rx_config);
1391 RTL_W32 (TxConfig, rtl8139_tx_config); 1396 RTL_W32 (TxConfig, rtl8139_tx_config);
1392 1397
1393 tp->cur_rx = 0;
1394
1395 rtl_check_media (dev, 1); 1398 rtl_check_media (dev, 1);
1396 1399
1397 if (tp->chipset >= CH_8139B) { 1400 if (tp->chipset >= CH_8139B) {
@@ -1406,9 +1409,6 @@ static void rtl8139_hw_start (struct net_device *dev)
1406 /* Lock Config[01234] and BMCR register writes */ 1409 /* Lock Config[01234] and BMCR register writes */
1407 RTL_W8 (Cfg9346, Cfg9346_Lock); 1410 RTL_W8 (Cfg9346, Cfg9346_Lock);
1408 1411
1409 /* init Rx ring buffer DMA address */
1410 RTL_W32_F (RxBuf, tp->rx_ring_dma);
1411
1412 /* init Tx buffer DMA addresses */ 1412 /* init Tx buffer DMA addresses */
1413 for (i = 0; i < NUM_TX_DESC; i++) 1413 for (i = 0; i < NUM_TX_DESC; i++)
1414 RTL_W32_F (TxAddr0 + (i * 4), tp->tx_bufs_dma + (tp->tx_buf[i] - tp->tx_bufs)); 1414 RTL_W32_F (TxAddr0 + (i * 4), tp->tx_bufs_dma + (tp->tx_buf[i] - tp->tx_bufs));
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 9e921544ba20..214a92d1ef75 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -28,9 +28,9 @@ if NETDEVICES
28 28
29config COMPAT_NET_DEV_OPS 29config COMPAT_NET_DEV_OPS
30 default y 30 default y
31 bool "Enable older network device API compatiablity" 31 bool "Enable older network device API compatibility"
32 ---help--- 32 ---help---
33 This option enables kernel compatiability with older network devices 33 This option enables kernel compatibility with older network devices
34 that do not use net_device_ops interface. 34 that do not use net_device_ops interface.
35 35
36 If unsure, say Y. 36 If unsure, say Y.
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
index ab0e5febef83..7ea48414c6cb 100644
--- a/drivers/net/cxgb3/cxgb3_main.c
+++ b/drivers/net/cxgb3/cxgb3_main.c
@@ -1117,8 +1117,8 @@ static void cxgb_down(struct adapter *adapter)
1117 spin_unlock_irq(&adapter->work_lock); 1117 spin_unlock_irq(&adapter->work_lock);
1118 1118
1119 free_irq_resources(adapter); 1119 free_irq_resources(adapter);
1120 flush_workqueue(cxgb3_wq); /* wait for external IRQ handler */
1121 quiesce_rx(adapter); 1120 quiesce_rx(adapter);
1121 flush_workqueue(cxgb3_wq); /* wait for external IRQ handler */
1122} 1122}
1123 1123
1124static void schedule_chk_task(struct adapter *adap) 1124static void schedule_chk_task(struct adapter *adap)
@@ -1187,6 +1187,9 @@ static int offload_close(struct t3cdev *tdev)
1187 1187
1188 sysfs_remove_group(&tdev->lldev->dev.kobj, &offload_attr_group); 1188 sysfs_remove_group(&tdev->lldev->dev.kobj, &offload_attr_group);
1189 1189
1190 /* Flush work scheduled while releasing TIDs */
1191 flush_scheduled_work();
1192
1190 tdev->lldev = NULL; 1193 tdev->lldev = NULL;
1191 cxgb3_set_dummy_ops(tdev); 1194 cxgb3_set_dummy_ops(tdev);
1192 t3_tp_set_offload_mode(adapter, 0); 1195 t3_tp_set_offload_mode(adapter, 0);
@@ -1232,6 +1235,10 @@ static int cxgb_close(struct net_device *dev)
1232 struct port_info *pi = netdev_priv(dev); 1235 struct port_info *pi = netdev_priv(dev);
1233 struct adapter *adapter = pi->adapter; 1236 struct adapter *adapter = pi->adapter;
1234 1237
1238
1239 if (!adapter->open_device_map)
1240 return 0;
1241
1235 /* Stop link fault interrupts */ 1242 /* Stop link fault interrupts */
1236 t3_xgm_intr_disable(adapter, pi->port_id); 1243 t3_xgm_intr_disable(adapter, pi->port_id);
1237 t3_read_reg(adapter, A_XGM_INT_STATUS + pi->mac.offset); 1244 t3_read_reg(adapter, A_XGM_INT_STATUS + pi->mac.offset);
@@ -1247,8 +1254,7 @@ static int cxgb_close(struct net_device *dev)
1247 spin_unlock_irq(&adapter->work_lock); 1254 spin_unlock_irq(&adapter->work_lock);
1248 1255
1249 if (!(adapter->open_device_map & PORT_MASK)) 1256 if (!(adapter->open_device_map & PORT_MASK))
1250 cancel_rearming_delayed_workqueue(cxgb3_wq, 1257 cancel_delayed_work_sync(&adapter->adap_check_task);
1251 &adapter->adap_check_task);
1252 1258
1253 if (!adapter->open_device_map) 1259 if (!adapter->open_device_map)
1254 cxgb_down(adapter); 1260 cxgb_down(adapter);
@@ -2493,6 +2499,7 @@ static void check_link_status(struct adapter *adapter)
2493 2499
2494 spin_lock_irq(&adapter->work_lock); 2500 spin_lock_irq(&adapter->work_lock);
2495 if (p->link_fault) { 2501 if (p->link_fault) {
2502 t3_link_fault(adapter, i);
2496 spin_unlock_irq(&adapter->work_lock); 2503 spin_unlock_irq(&adapter->work_lock);
2497 continue; 2504 continue;
2498 } 2505 }
@@ -2554,9 +2561,7 @@ static void t3_adap_check_task(struct work_struct *work)
2554 2561
2555 adapter->check_task_cnt++; 2562 adapter->check_task_cnt++;
2556 2563
2557 /* Check link status for PHYs without interrupts */ 2564 check_link_status(adapter);
2558 if (p->linkpoll_period)
2559 check_link_status(adapter);
2560 2565
2561 /* Accumulate MAC stats if needed */ 2566 /* Accumulate MAC stats if needed */
2562 if (!p->linkpoll_period || 2567 if (!p->linkpoll_period ||
@@ -2680,21 +2685,6 @@ void t3_os_ext_intr_handler(struct adapter *adapter)
2680 spin_unlock(&adapter->work_lock); 2685 spin_unlock(&adapter->work_lock);
2681} 2686}
2682 2687
2683static void link_fault_task(struct work_struct *work)
2684{
2685 struct adapter *adapter = container_of(work, struct adapter,
2686 link_fault_handler_task);
2687 int i;
2688
2689 for_each_port(adapter, i) {
2690 struct net_device *netdev = adapter->port[i];
2691 struct port_info *pi = netdev_priv(netdev);
2692
2693 if (pi->link_fault)
2694 t3_link_fault(adapter, i);
2695 }
2696}
2697
2698void t3_os_link_fault_handler(struct adapter *adapter, int port_id) 2688void t3_os_link_fault_handler(struct adapter *adapter, int port_id)
2699{ 2689{
2700 struct net_device *netdev = adapter->port[port_id]; 2690 struct net_device *netdev = adapter->port[port_id];
@@ -2702,7 +2692,6 @@ void t3_os_link_fault_handler(struct adapter *adapter, int port_id)
2702 2692
2703 spin_lock(&adapter->work_lock); 2693 spin_lock(&adapter->work_lock);
2704 pi->link_fault = 1; 2694 pi->link_fault = 1;
2705 queue_work(cxgb3_wq, &adapter->link_fault_handler_task);
2706 spin_unlock(&adapter->work_lock); 2695 spin_unlock(&adapter->work_lock);
2707} 2696}
2708 2697
@@ -2838,6 +2827,9 @@ static pci_ers_result_t t3_io_error_detected(struct pci_dev *pdev,
2838 struct adapter *adapter = pci_get_drvdata(pdev); 2827 struct adapter *adapter = pci_get_drvdata(pdev);
2839 int ret; 2828 int ret;
2840 2829
2830 if (state == pci_channel_io_perm_failure)
2831 return PCI_ERS_RESULT_DISCONNECT;
2832
2841 ret = t3_adapter_error(adapter, 0); 2833 ret = t3_adapter_error(adapter, 0);
2842 2834
2843 /* Request a slot reset. */ 2835 /* Request a slot reset. */
@@ -2932,8 +2924,13 @@ static int __devinit cxgb_enable_msix(struct adapter *adap)
2932 while ((err = pci_enable_msix(adap->pdev, entries, vectors)) > 0) 2924 while ((err = pci_enable_msix(adap->pdev, entries, vectors)) > 0)
2933 vectors = err; 2925 vectors = err;
2934 2926
2935 if (!err && vectors < (adap->params.nports + 1)) 2927 if (err < 0)
2928 pci_disable_msix(adap->pdev);
2929
2930 if (!err && vectors < (adap->params.nports + 1)) {
2931 pci_disable_msix(adap->pdev);
2936 err = -1; 2932 err = -1;
2933 }
2937 2934
2938 if (!err) { 2935 if (!err) {
2939 for (i = 0; i < vectors; ++i) 2936 for (i = 0; i < vectors; ++i)
@@ -3082,7 +3079,6 @@ static int __devinit init_one(struct pci_dev *pdev,
3082 3079
3083 INIT_LIST_HEAD(&adapter->adapter_list); 3080 INIT_LIST_HEAD(&adapter->adapter_list);
3084 INIT_WORK(&adapter->ext_intr_handler_task, ext_intr_task); 3081 INIT_WORK(&adapter->ext_intr_handler_task, ext_intr_task);
3085 INIT_WORK(&adapter->link_fault_handler_task, link_fault_task);
3086 INIT_WORK(&adapter->fatal_error_handler_task, fatal_error_task); 3082 INIT_WORK(&adapter->fatal_error_handler_task, fatal_error_task);
3087 INIT_DELAYED_WORK(&adapter->adap_check_task, t3_adap_check_task); 3083 INIT_DELAYED_WORK(&adapter->adap_check_task, t3_adap_check_task);
3088 3084
diff --git a/drivers/net/cxgb3/t3_hw.c b/drivers/net/cxgb3/t3_hw.c
index 31ed31a3428b..e1bd690ff831 100644
--- a/drivers/net/cxgb3/t3_hw.c
+++ b/drivers/net/cxgb3/t3_hw.c
@@ -1202,7 +1202,6 @@ void t3_link_changed(struct adapter *adapter, int port_id)
1202 struct cphy *phy = &pi->phy; 1202 struct cphy *phy = &pi->phy;
1203 struct cmac *mac = &pi->mac; 1203 struct cmac *mac = &pi->mac;
1204 struct link_config *lc = &pi->link_config; 1204 struct link_config *lc = &pi->link_config;
1205 int force_link_down = 0;
1206 1205
1207 phy->ops->get_link_status(phy, &link_ok, &speed, &duplex, &fc); 1206 phy->ops->get_link_status(phy, &link_ok, &speed, &duplex, &fc);
1208 1207
@@ -1218,14 +1217,9 @@ void t3_link_changed(struct adapter *adapter, int port_id)
1218 status = t3_read_reg(adapter, A_XGM_INT_STATUS + mac->offset); 1217 status = t3_read_reg(adapter, A_XGM_INT_STATUS + mac->offset);
1219 if (status & F_LINKFAULTCHANGE) { 1218 if (status & F_LINKFAULTCHANGE) {
1220 mac->stats.link_faults++; 1219 mac->stats.link_faults++;
1221 force_link_down = 1; 1220 pi->link_fault = 1;
1222 } 1221 }
1223 t3_open_rx_traffic(mac, rx_cfg, rx_hash_high, rx_hash_low); 1222 t3_open_rx_traffic(mac, rx_cfg, rx_hash_high, rx_hash_low);
1224
1225 if (force_link_down) {
1226 t3_os_link_fault_handler(adapter, port_id);
1227 return;
1228 }
1229 } 1223 }
1230 1224
1231 if (lc->requested_fc & PAUSE_AUTONEG) 1225 if (lc->requested_fc & PAUSE_AUTONEG)
@@ -1292,9 +1286,6 @@ void t3_link_fault(struct adapter *adapter, int port_id)
1292 /* Account link faults only when the phy reports a link up */ 1286 /* Account link faults only when the phy reports a link up */
1293 if (link_ok) 1287 if (link_ok)
1294 mac->stats.link_faults++; 1288 mac->stats.link_faults++;
1295
1296 msleep(1000);
1297 t3_os_link_fault_handler(adapter, port_id);
1298 } else { 1289 } else {
1299 if (link_ok) 1290 if (link_ok)
1300 t3_write_reg(adapter, A_XGM_XAUI_ACT_CTRL + mac->offset, 1291 t3_write_reg(adapter, A_XGM_XAUI_ACT_CTRL + mac->offset,
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index 5c0b457c7868..0f9ee1348552 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -2728,7 +2728,7 @@ static void __devexit e100_remove(struct pci_dev *pdev)
2728#define E100_82552_SMARTSPEED 0x14 /* SmartSpeed Ctrl register */ 2728#define E100_82552_SMARTSPEED 0x14 /* SmartSpeed Ctrl register */
2729#define E100_82552_REV_ANEG 0x0200 /* Reverse auto-negotiation */ 2729#define E100_82552_REV_ANEG 0x0200 /* Reverse auto-negotiation */
2730#define E100_82552_ANEG_NOW 0x0400 /* Auto-negotiate now */ 2730#define E100_82552_ANEG_NOW 0x0400 /* Auto-negotiate now */
2731static int e100_suspend(struct pci_dev *pdev, pm_message_t state) 2731static void __e100_shutdown(struct pci_dev *pdev, bool *enable_wake)
2732{ 2732{
2733 struct net_device *netdev = pci_get_drvdata(pdev); 2733 struct net_device *netdev = pci_get_drvdata(pdev);
2734 struct nic *nic = netdev_priv(netdev); 2734 struct nic *nic = netdev_priv(netdev);
@@ -2749,19 +2749,32 @@ static int e100_suspend(struct pci_dev *pdev, pm_message_t state)
2749 E100_82552_SMARTSPEED, smartspeed | 2749 E100_82552_SMARTSPEED, smartspeed |
2750 E100_82552_REV_ANEG | E100_82552_ANEG_NOW); 2750 E100_82552_REV_ANEG | E100_82552_ANEG_NOW);
2751 } 2751 }
2752 if (pci_enable_wake(pdev, PCI_D3cold, true)) 2752 *enable_wake = true;
2753 pci_enable_wake(pdev, PCI_D3hot, true);
2754 } else { 2753 } else {
2755 pci_enable_wake(pdev, PCI_D3hot, false); 2754 *enable_wake = false;
2756 } 2755 }
2757 2756
2758 pci_disable_device(pdev); 2757 pci_disable_device(pdev);
2759 pci_set_power_state(pdev, PCI_D3hot); 2758}
2760 2759
2761 return 0; 2760static int __e100_power_off(struct pci_dev *pdev, bool wake)
2761{
2762 if (wake) {
2763 return pci_prepare_to_sleep(pdev);
2764 } else {
2765 pci_wake_from_d3(pdev, false);
2766 return pci_set_power_state(pdev, PCI_D3hot);
2767 }
2762} 2768}
2763 2769
2764#ifdef CONFIG_PM 2770#ifdef CONFIG_PM
2771static int e100_suspend(struct pci_dev *pdev, pm_message_t state)
2772{
2773 bool wake;
2774 __e100_shutdown(pdev, &wake);
2775 return __e100_power_off(pdev, wake);
2776}
2777
2765static int e100_resume(struct pci_dev *pdev) 2778static int e100_resume(struct pci_dev *pdev)
2766{ 2779{
2767 struct net_device *netdev = pci_get_drvdata(pdev); 2780 struct net_device *netdev = pci_get_drvdata(pdev);
@@ -2792,7 +2805,10 @@ static int e100_resume(struct pci_dev *pdev)
2792 2805
2793static void e100_shutdown(struct pci_dev *pdev) 2806static void e100_shutdown(struct pci_dev *pdev)
2794{ 2807{
2795 e100_suspend(pdev, PMSG_SUSPEND); 2808 bool wake;
2809 __e100_shutdown(pdev, &wake);
2810 if (system_state == SYSTEM_POWER_OFF)
2811 __e100_power_off(pdev, wake);
2796} 2812}
2797 2813
2798/* ------------------ PCI Error Recovery infrastructure -------------- */ 2814/* ------------------ PCI Error Recovery infrastructure -------------- */
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index ef12931d302a..6a46ceed9436 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -3834,7 +3834,6 @@ static bool e1000_clean_tx_irq(struct e1000_adapter *adapter,
3834 struct e1000_buffer *buffer_info; 3834 struct e1000_buffer *buffer_info;
3835 unsigned int i, eop; 3835 unsigned int i, eop;
3836 unsigned int count = 0; 3836 unsigned int count = 0;
3837 bool cleaned = false;
3838 unsigned int total_tx_bytes=0, total_tx_packets=0; 3837 unsigned int total_tx_bytes=0, total_tx_packets=0;
3839 3838
3840 i = tx_ring->next_to_clean; 3839 i = tx_ring->next_to_clean;
@@ -3843,7 +3842,8 @@ static bool e1000_clean_tx_irq(struct e1000_adapter *adapter,
3843 3842
3844 while ((eop_desc->upper.data & cpu_to_le32(E1000_TXD_STAT_DD)) && 3843 while ((eop_desc->upper.data & cpu_to_le32(E1000_TXD_STAT_DD)) &&
3845 (count < tx_ring->count)) { 3844 (count < tx_ring->count)) {
3846 for (cleaned = false; !cleaned; count++) { 3845 bool cleaned = false;
3846 for ( ; !cleaned; count++) {
3847 tx_desc = E1000_TX_DESC(*tx_ring, i); 3847 tx_desc = E1000_TX_DESC(*tx_ring, i);
3848 buffer_info = &tx_ring->buffer_info[i]; 3848 buffer_info = &tx_ring->buffer_info[i];
3849 cleaned = (i == eop); 3849 cleaned = (i == eop);
@@ -3871,7 +3871,7 @@ static bool e1000_clean_tx_irq(struct e1000_adapter *adapter,
3871 tx_ring->next_to_clean = i; 3871 tx_ring->next_to_clean = i;
3872 3872
3873#define TX_WAKE_THRESHOLD 32 3873#define TX_WAKE_THRESHOLD 32
3874 if (unlikely(cleaned && netif_carrier_ok(netdev) && 3874 if (unlikely(count && netif_carrier_ok(netdev) &&
3875 E1000_DESC_UNUSED(tx_ring) >= TX_WAKE_THRESHOLD)) { 3875 E1000_DESC_UNUSED(tx_ring) >= TX_WAKE_THRESHOLD)) {
3876 /* Make sure that anybody stopping the queue after this 3876 /* Make sure that anybody stopping the queue after this
3877 * sees the new next_to_clean. 3877 * sees the new next_to_clean.
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index 1693ed116b16..ca82f19a7ed1 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -621,7 +621,6 @@ static bool e1000_clean_tx_irq(struct e1000_adapter *adapter)
621 struct e1000_buffer *buffer_info; 621 struct e1000_buffer *buffer_info;
622 unsigned int i, eop; 622 unsigned int i, eop;
623 unsigned int count = 0; 623 unsigned int count = 0;
624 bool cleaned = false;
625 unsigned int total_tx_bytes = 0, total_tx_packets = 0; 624 unsigned int total_tx_bytes = 0, total_tx_packets = 0;
626 625
627 i = tx_ring->next_to_clean; 626 i = tx_ring->next_to_clean;
@@ -630,7 +629,8 @@ static bool e1000_clean_tx_irq(struct e1000_adapter *adapter)
630 629
631 while ((eop_desc->upper.data & cpu_to_le32(E1000_TXD_STAT_DD)) && 630 while ((eop_desc->upper.data & cpu_to_le32(E1000_TXD_STAT_DD)) &&
632 (count < tx_ring->count)) { 631 (count < tx_ring->count)) {
633 for (cleaned = 0; !cleaned; count++) { 632 bool cleaned = false;
633 for (; !cleaned; count++) {
634 tx_desc = E1000_TX_DESC(*tx_ring, i); 634 tx_desc = E1000_TX_DESC(*tx_ring, i);
635 buffer_info = &tx_ring->buffer_info[i]; 635 buffer_info = &tx_ring->buffer_info[i];
636 cleaned = (i == eop); 636 cleaned = (i == eop);
@@ -661,8 +661,8 @@ static bool e1000_clean_tx_irq(struct e1000_adapter *adapter)
661 tx_ring->next_to_clean = i; 661 tx_ring->next_to_clean = i;
662 662
663#define TX_WAKE_THRESHOLD 32 663#define TX_WAKE_THRESHOLD 32
664 if (cleaned && netif_carrier_ok(netdev) && 664 if (count && netif_carrier_ok(netdev) &&
665 e1000_desc_unused(tx_ring) >= TX_WAKE_THRESHOLD) { 665 e1000_desc_unused(tx_ring) >= TX_WAKE_THRESHOLD) {
666 /* Make sure that anybody stopping the queue after this 666 /* Make sure that anybody stopping the queue after this
667 * sees the new next_to_clean. 667 * sees the new next_to_clean.
668 */ 668 */
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 11d5db16ed9c..f9a846b1b92f 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -1880,6 +1880,7 @@ static void nv_init_tx(struct net_device *dev)
1880 np->tx_pkts_in_progress = 0; 1880 np->tx_pkts_in_progress = 0;
1881 np->tx_change_owner = NULL; 1881 np->tx_change_owner = NULL;
1882 np->tx_end_flip = NULL; 1882 np->tx_end_flip = NULL;
1883 np->tx_stop = 0;
1883 1884
1884 for (i = 0; i < np->tx_ring_size; i++) { 1885 for (i = 0; i < np->tx_ring_size; i++) {
1885 if (!nv_optimized(np)) { 1886 if (!nv_optimized(np)) {
@@ -2530,6 +2531,8 @@ static void nv_tx_timeout(struct net_device *dev)
2530 struct fe_priv *np = netdev_priv(dev); 2531 struct fe_priv *np = netdev_priv(dev);
2531 u8 __iomem *base = get_hwbase(dev); 2532 u8 __iomem *base = get_hwbase(dev);
2532 u32 status; 2533 u32 status;
2534 union ring_type put_tx;
2535 int saved_tx_limit;
2533 2536
2534 if (np->msi_flags & NV_MSI_X_ENABLED) 2537 if (np->msi_flags & NV_MSI_X_ENABLED)
2535 status = readl(base + NvRegMSIXIrqStatus) & NVREG_IRQSTAT_MASK; 2538 status = readl(base + NvRegMSIXIrqStatus) & NVREG_IRQSTAT_MASK;
@@ -2589,24 +2592,32 @@ static void nv_tx_timeout(struct net_device *dev)
2589 /* 1) stop tx engine */ 2592 /* 1) stop tx engine */
2590 nv_stop_tx(dev); 2593 nv_stop_tx(dev);
2591 2594
2592 /* 2) check that the packets were not sent already: */ 2595 /* 2) complete any outstanding tx and do not give HW any limited tx pkts */
2596 saved_tx_limit = np->tx_limit;
2597 np->tx_limit = 0; /* prevent giving HW any limited pkts */
2598 np->tx_stop = 0; /* prevent waking tx queue */
2593 if (!nv_optimized(np)) 2599 if (!nv_optimized(np))
2594 nv_tx_done(dev, np->tx_ring_size); 2600 nv_tx_done(dev, np->tx_ring_size);
2595 else 2601 else
2596 nv_tx_done_optimized(dev, np->tx_ring_size); 2602 nv_tx_done_optimized(dev, np->tx_ring_size);
2597 2603
2598 /* 3) if there are dead entries: clear everything */ 2604 /* save current HW postion */
2599 if (np->get_tx_ctx != np->put_tx_ctx) { 2605 if (np->tx_change_owner)
2600 printk(KERN_DEBUG "%s: tx_timeout: dead entries!\n", dev->name); 2606 put_tx.ex = np->tx_change_owner->first_tx_desc;
2601 nv_drain_tx(dev); 2607 else
2602 nv_init_tx(dev); 2608 put_tx = np->put_tx;
2603 setup_hw_rings(dev, NV_SETUP_TX_RING);
2604 }
2605 2609
2606 netif_wake_queue(dev); 2610 /* 3) clear all tx state */
2611 nv_drain_tx(dev);
2612 nv_init_tx(dev);
2613
2614 /* 4) restore state to current HW position */
2615 np->get_tx = np->put_tx = put_tx;
2616 np->tx_limit = saved_tx_limit;
2607 2617
2608 /* 4) restart tx engine */ 2618 /* 5) restart tx engine */
2609 nv_start_tx(dev); 2619 nv_start_tx(dev);
2620 netif_wake_queue(dev);
2610 spin_unlock_irq(&np->lock); 2621 spin_unlock_irq(&np->lock);
2611} 2622}
2612 2623
diff --git a/drivers/net/ixgbe/ixgbe_common.c b/drivers/net/ixgbe/ixgbe_common.c
index 5567519676d5..186a65069b33 100644
--- a/drivers/net/ixgbe/ixgbe_common.c
+++ b/drivers/net/ixgbe/ixgbe_common.c
@@ -50,7 +50,6 @@ static u16 ixgbe_calc_eeprom_checksum(struct ixgbe_hw *hw);
50static void ixgbe_enable_rar(struct ixgbe_hw *hw, u32 index); 50static void ixgbe_enable_rar(struct ixgbe_hw *hw, u32 index);
51static void ixgbe_disable_rar(struct ixgbe_hw *hw, u32 index); 51static void ixgbe_disable_rar(struct ixgbe_hw *hw, u32 index);
52static s32 ixgbe_mta_vector(struct ixgbe_hw *hw, u8 *mc_addr); 52static s32 ixgbe_mta_vector(struct ixgbe_hw *hw, u8 *mc_addr);
53static void ixgbe_add_mc_addr(struct ixgbe_hw *hw, u8 *mc_addr);
54static void ixgbe_add_uc_addr(struct ixgbe_hw *hw, u8 *addr, u32 vmdq); 53static void ixgbe_add_uc_addr(struct ixgbe_hw *hw, u8 *addr, u32 vmdq);
55 54
56/** 55/**
@@ -1377,8 +1376,7 @@ s32 ixgbe_update_uc_addr_list_generic(struct ixgbe_hw *hw, u8 *addr_list,
1377 * Clear accounting of old secondary address list, 1376 * Clear accounting of old secondary address list,
1378 * don't count RAR[0] 1377 * don't count RAR[0]
1379 */ 1378 */
1380 uc_addr_in_use = hw->addr_ctrl.rar_used_count - 1379 uc_addr_in_use = hw->addr_ctrl.rar_used_count - 1;
1381 hw->addr_ctrl.mc_addr_in_rar_count - 1;
1382 hw->addr_ctrl.rar_used_count -= uc_addr_in_use; 1380 hw->addr_ctrl.rar_used_count -= uc_addr_in_use;
1383 hw->addr_ctrl.overflow_promisc = 0; 1381 hw->addr_ctrl.overflow_promisc = 0;
1384 1382
@@ -1493,40 +1491,6 @@ static void ixgbe_set_mta(struct ixgbe_hw *hw, u8 *mc_addr)
1493} 1491}
1494 1492
1495/** 1493/**
1496 * ixgbe_add_mc_addr - Adds a multicast address.
1497 * @hw: pointer to hardware structure
1498 * @mc_addr: new multicast address
1499 *
1500 * Adds it to unused receive address register or to the multicast table.
1501 **/
1502static void ixgbe_add_mc_addr(struct ixgbe_hw *hw, u8 *mc_addr)
1503{
1504 u32 rar_entries = hw->mac.num_rar_entries;
1505 u32 rar;
1506
1507 hw_dbg(hw, " MC Addr =%.2X %.2X %.2X %.2X %.2X %.2X\n",
1508 mc_addr[0], mc_addr[1], mc_addr[2],
1509 mc_addr[3], mc_addr[4], mc_addr[5]);
1510
1511 /*
1512 * Place this multicast address in the RAR if there is room,
1513 * else put it in the MTA
1514 */
1515 if (hw->addr_ctrl.rar_used_count < rar_entries) {
1516 /* use RAR from the end up for multicast */
1517 rar = rar_entries - hw->addr_ctrl.mc_addr_in_rar_count - 1;
1518 hw->mac.ops.set_rar(hw, rar, mc_addr, 0, IXGBE_RAH_AV);
1519 hw_dbg(hw, "Added a multicast address to RAR[%d]\n", rar);
1520 hw->addr_ctrl.rar_used_count++;
1521 hw->addr_ctrl.mc_addr_in_rar_count++;
1522 } else {
1523 ixgbe_set_mta(hw, mc_addr);
1524 }
1525
1526 hw_dbg(hw, "ixgbe_add_mc_addr Complete\n");
1527}
1528
1529/**
1530 * ixgbe_update_mc_addr_list_generic - Updates MAC list of multicast addresses 1494 * ixgbe_update_mc_addr_list_generic - Updates MAC list of multicast addresses
1531 * @hw: pointer to hardware structure 1495 * @hw: pointer to hardware structure
1532 * @mc_addr_list: the list of new multicast addresses 1496 * @mc_addr_list: the list of new multicast addresses
@@ -1542,7 +1506,6 @@ s32 ixgbe_update_mc_addr_list_generic(struct ixgbe_hw *hw, u8 *mc_addr_list,
1542 u32 mc_addr_count, ixgbe_mc_addr_itr next) 1506 u32 mc_addr_count, ixgbe_mc_addr_itr next)
1543{ 1507{
1544 u32 i; 1508 u32 i;
1545 u32 rar_entries = hw->mac.num_rar_entries;
1546 u32 vmdq; 1509 u32 vmdq;
1547 1510
1548 /* 1511 /*
@@ -1550,18 +1513,8 @@ s32 ixgbe_update_mc_addr_list_generic(struct ixgbe_hw *hw, u8 *mc_addr_list,
1550 * use. 1513 * use.
1551 */ 1514 */
1552 hw->addr_ctrl.num_mc_addrs = mc_addr_count; 1515 hw->addr_ctrl.num_mc_addrs = mc_addr_count;
1553 hw->addr_ctrl.rar_used_count -= hw->addr_ctrl.mc_addr_in_rar_count;
1554 hw->addr_ctrl.mc_addr_in_rar_count = 0;
1555 hw->addr_ctrl.mta_in_use = 0; 1516 hw->addr_ctrl.mta_in_use = 0;
1556 1517
1557 /* Zero out the other receive addresses. */
1558 hw_dbg(hw, "Clearing RAR[%d-%d]\n", hw->addr_ctrl.rar_used_count,
1559 rar_entries - 1);
1560 for (i = hw->addr_ctrl.rar_used_count; i < rar_entries; i++) {
1561 IXGBE_WRITE_REG(hw, IXGBE_RAL(i), 0);
1562 IXGBE_WRITE_REG(hw, IXGBE_RAH(i), 0);
1563 }
1564
1565 /* Clear the MTA */ 1518 /* Clear the MTA */
1566 hw_dbg(hw, " Clearing MTA\n"); 1519 hw_dbg(hw, " Clearing MTA\n");
1567 for (i = 0; i < hw->mac.mcft_size; i++) 1520 for (i = 0; i < hw->mac.mcft_size; i++)
@@ -1570,7 +1523,7 @@ s32 ixgbe_update_mc_addr_list_generic(struct ixgbe_hw *hw, u8 *mc_addr_list,
1570 /* Add the new addresses */ 1523 /* Add the new addresses */
1571 for (i = 0; i < mc_addr_count; i++) { 1524 for (i = 0; i < mc_addr_count; i++) {
1572 hw_dbg(hw, " Adding the multicast addresses:\n"); 1525 hw_dbg(hw, " Adding the multicast addresses:\n");
1573 ixgbe_add_mc_addr(hw, next(hw, &mc_addr_list, &vmdq)); 1526 ixgbe_set_mta(hw, next(hw, &mc_addr_list, &vmdq));
1574 } 1527 }
1575 1528
1576 /* Enable mta */ 1529 /* Enable mta */
diff --git a/drivers/net/ixgbe/ixgbe_dcb_82599.c b/drivers/net/ixgbe/ixgbe_dcb_82599.c
index 470b676c1dae..f4417fc3b0fd 100644
--- a/drivers/net/ixgbe/ixgbe_dcb_82599.c
+++ b/drivers/net/ixgbe/ixgbe_dcb_82599.c
@@ -290,7 +290,7 @@ s32 ixgbe_dcb_config_tx_data_arbiter_82599(struct ixgbe_hw *hw,
290s32 ixgbe_dcb_config_pfc_82599(struct ixgbe_hw *hw, 290s32 ixgbe_dcb_config_pfc_82599(struct ixgbe_hw *hw,
291 struct ixgbe_dcb_config *dcb_config) 291 struct ixgbe_dcb_config *dcb_config)
292{ 292{
293 u32 i, reg; 293 u32 i, reg, rx_pba_size;
294 294
295 /* If PFC is disabled globally then fall back to LFC. */ 295 /* If PFC is disabled globally then fall back to LFC. */
296 if (!dcb_config->pfc_mode_enable) { 296 if (!dcb_config->pfc_mode_enable) {
@@ -301,17 +301,23 @@ s32 ixgbe_dcb_config_pfc_82599(struct ixgbe_hw *hw,
301 301
302 /* Configure PFC Tx thresholds per TC */ 302 /* Configure PFC Tx thresholds per TC */
303 for (i = 0; i < MAX_TRAFFIC_CLASS; i++) { 303 for (i = 0; i < MAX_TRAFFIC_CLASS; i++) {
304 /* Config and remember Tx */ 304 if (dcb_config->rx_pba_cfg == pba_equal)
305 rx_pba_size = IXGBE_RXPBSIZE_64KB;
306 else
307 rx_pba_size = (i < 4) ? IXGBE_RXPBSIZE_80KB
308 : IXGBE_RXPBSIZE_48KB;
309
310 reg = ((rx_pba_size >> 5) & 0xFFE0);
305 if (dcb_config->tc_config[i].dcb_pfc == pfc_enabled_full || 311 if (dcb_config->tc_config[i].dcb_pfc == pfc_enabled_full ||
306 dcb_config->tc_config[i].dcb_pfc == pfc_enabled_tx) { 312 dcb_config->tc_config[i].dcb_pfc == pfc_enabled_tx)
307 reg = hw->fc.high_water | IXGBE_FCRTH_FCEN; 313 reg |= IXGBE_FCRTL_XONE;
308 IXGBE_WRITE_REG(hw, IXGBE_FCRTH_82599(i), reg); 314 IXGBE_WRITE_REG(hw, IXGBE_FCRTL_82599(i), reg);
309 reg = hw->fc.low_water | IXGBE_FCRTL_XONE; 315
310 IXGBE_WRITE_REG(hw, IXGBE_FCRTL_82599(i), reg); 316 reg = ((rx_pba_size >> 2) & 0xFFE0);
311 } else { 317 if (dcb_config->tc_config[i].dcb_pfc == pfc_enabled_full ||
312 IXGBE_WRITE_REG(hw, IXGBE_FCRTH_82599(i), 0); 318 dcb_config->tc_config[i].dcb_pfc == pfc_enabled_tx)
313 IXGBE_WRITE_REG(hw, IXGBE_FCRTL_82599(i), 0); 319 reg |= IXGBE_FCRTH_FCEN;
314 } 320 IXGBE_WRITE_REG(hw, IXGBE_FCRTH_82599(i), reg);
315 } 321 }
316 322
317 /* Configure pause time (2 TCs per register) */ 323 /* Configure pause time (2 TCs per register) */
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index febde45cf9fa..07e778d3e5d2 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -2841,11 +2841,55 @@ static inline bool ixgbe_cache_ring_dcb(struct ixgbe_adapter *adapter)
2841 } 2841 }
2842 ret = true; 2842 ret = true;
2843 } else if (adapter->hw.mac.type == ixgbe_mac_82599EB) { 2843 } else if (adapter->hw.mac.type == ixgbe_mac_82599EB) {
2844 for (i = 0; i < dcb_i; i++) { 2844 if (dcb_i == 8) {
2845 adapter->rx_ring[i].reg_idx = i << 4; 2845 /*
2846 adapter->tx_ring[i].reg_idx = i << 4; 2846 * Tx TC0 starts at: descriptor queue 0
2847 * Tx TC1 starts at: descriptor queue 32
2848 * Tx TC2 starts at: descriptor queue 64
2849 * Tx TC3 starts at: descriptor queue 80
2850 * Tx TC4 starts at: descriptor queue 96
2851 * Tx TC5 starts at: descriptor queue 104
2852 * Tx TC6 starts at: descriptor queue 112
2853 * Tx TC7 starts at: descriptor queue 120
2854 *
2855 * Rx TC0-TC7 are offset by 16 queues each
2856 */
2857 for (i = 0; i < 3; i++) {
2858 adapter->tx_ring[i].reg_idx = i << 5;
2859 adapter->rx_ring[i].reg_idx = i << 4;
2860 }
2861 for ( ; i < 5; i++) {
2862 adapter->tx_ring[i].reg_idx =
2863 ((i + 2) << 4);
2864 adapter->rx_ring[i].reg_idx = i << 4;
2865 }
2866 for ( ; i < dcb_i; i++) {
2867 adapter->tx_ring[i].reg_idx =
2868 ((i + 8) << 3);
2869 adapter->rx_ring[i].reg_idx = i << 4;
2870 }
2871
2872 ret = true;
2873 } else if (dcb_i == 4) {
2874 /*
2875 * Tx TC0 starts at: descriptor queue 0
2876 * Tx TC1 starts at: descriptor queue 64
2877 * Tx TC2 starts at: descriptor queue 96
2878 * Tx TC3 starts at: descriptor queue 112
2879 *
2880 * Rx TC0-TC3 are offset by 32 queues each
2881 */
2882 adapter->tx_ring[0].reg_idx = 0;
2883 adapter->tx_ring[1].reg_idx = 64;
2884 adapter->tx_ring[2].reg_idx = 96;
2885 adapter->tx_ring[3].reg_idx = 112;
2886 for (i = 0 ; i < dcb_i; i++)
2887 adapter->rx_ring[i].reg_idx = i << 5;
2888
2889 ret = true;
2890 } else {
2891 ret = false;
2847 } 2892 }
2848 ret = true;
2849 } else { 2893 } else {
2850 ret = false; 2894 ret = false;
2851 } 2895 }
@@ -3602,6 +3646,8 @@ static int ixgbe_resume(struct pci_dev *pdev)
3602 3646
3603 ixgbe_reset(adapter); 3647 ixgbe_reset(adapter);
3604 3648
3649 IXGBE_WRITE_REG(&adapter->hw, IXGBE_WUS, ~0);
3650
3605 if (netif_running(netdev)) { 3651 if (netif_running(netdev)) {
3606 err = ixgbe_open(adapter->netdev); 3652 err = ixgbe_open(adapter->netdev);
3607 if (err) 3653 if (err)
@@ -3946,7 +3992,7 @@ static void ixgbe_sfp_config_module_task(struct work_struct *work)
3946 } 3992 }
3947 hw->mac.ops.setup_sfp(hw); 3993 hw->mac.ops.setup_sfp(hw);
3948 3994
3949 if (!adapter->flags & IXGBE_FLAG_IN_SFP_LINK_TASK) 3995 if (!(adapter->flags & IXGBE_FLAG_IN_SFP_LINK_TASK))
3950 /* This will also work for DA Twinax connections */ 3996 /* This will also work for DA Twinax connections */
3951 schedule_work(&adapter->multispeed_fiber_task); 3997 schedule_work(&adapter->multispeed_fiber_task);
3952 adapter->flags &= ~IXGBE_FLAG_IN_SFP_MOD_TASK; 3998 adapter->flags &= ~IXGBE_FLAG_IN_SFP_MOD_TASK;
@@ -4531,7 +4577,6 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
4531 const struct ixgbe_info *ii = ixgbe_info_tbl[ent->driver_data]; 4577 const struct ixgbe_info *ii = ixgbe_info_tbl[ent->driver_data];
4532 static int cards_found; 4578 static int cards_found;
4533 int i, err, pci_using_dac; 4579 int i, err, pci_using_dac;
4534 u16 pm_value = 0;
4535 u32 part_num, eec; 4580 u32 part_num, eec;
4536 4581
4537 err = pci_enable_device(pdev); 4582 err = pci_enable_device(pdev);
@@ -4719,11 +4764,8 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
4719 4764
4720 switch (pdev->device) { 4765 switch (pdev->device) {
4721 case IXGBE_DEV_ID_82599_KX4: 4766 case IXGBE_DEV_ID_82599_KX4:
4722#define IXGBE_PCIE_PMCSR 0x44 4767 adapter->wol = (IXGBE_WUFC_MAG | IXGBE_WUFC_EX |
4723 adapter->wol = IXGBE_WUFC_MAG; 4768 IXGBE_WUFC_MC | IXGBE_WUFC_BC);
4724 pci_read_config_word(pdev, IXGBE_PCIE_PMCSR, &pm_value);
4725 pci_write_config_word(pdev, IXGBE_PCIE_PMCSR,
4726 (pm_value | (1 << 8)));
4727 break; 4769 break;
4728 default: 4770 default:
4729 adapter->wol = 0; 4771 adapter->wol = 0;
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index 46073de290cf..e82aee41d77e 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -316,10 +316,11 @@ static void macb_tx(struct macb *bp)
316 dev_dbg(&bp->pdev->dev, "macb_tx status = %02lx\n", 316 dev_dbg(&bp->pdev->dev, "macb_tx status = %02lx\n",
317 (unsigned long)status); 317 (unsigned long)status);
318 318
319 if (status & MACB_BIT(UND)) { 319 if (status & (MACB_BIT(UND) | MACB_BIT(TSR_RLE))) {
320 int i; 320 int i;
321 printk(KERN_ERR "%s: TX underrun, resetting buffers\n", 321 printk(KERN_ERR "%s: TX %s, resetting buffers\n",
322 bp->dev->name); 322 bp->dev->name, status & MACB_BIT(UND) ?
323 "underrun" : "retry limit exceeded");
323 324
324 /* Transfer ongoing, disable transmitter, to avoid confusion */ 325 /* Transfer ongoing, disable transmitter, to avoid confusion */
325 if (status & MACB_BIT(TGO)) 326 if (status & MACB_BIT(TGO))
@@ -520,27 +521,10 @@ static int macb_poll(struct napi_struct *napi, int budget)
520 macb_writel(bp, RSR, status); 521 macb_writel(bp, RSR, status);
521 522
522 work_done = 0; 523 work_done = 0;
523 if (!status) {
524 /*
525 * This may happen if an interrupt was pending before
526 * this function was called last time, and no packets
527 * have been received since.
528 */
529 napi_complete(napi);
530 goto out;
531 }
532 524
533 dev_dbg(&bp->pdev->dev, "poll: status = %08lx, budget = %d\n", 525 dev_dbg(&bp->pdev->dev, "poll: status = %08lx, budget = %d\n",
534 (unsigned long)status, budget); 526 (unsigned long)status, budget);
535 527
536 if (!(status & MACB_BIT(REC))) {
537 dev_warn(&bp->pdev->dev,
538 "No RX buffers complete, status = %02lx\n",
539 (unsigned long)status);
540 napi_complete(napi);
541 goto out;
542 }
543
544 work_done = macb_rx(bp, budget); 528 work_done = macb_rx(bp, budget);
545 if (work_done < budget) 529 if (work_done < budget)
546 napi_complete(napi); 530 napi_complete(napi);
@@ -549,7 +533,6 @@ static int macb_poll(struct napi_struct *napi, int budget)
549 * We've done what we can to clean the buffers. Make sure we 533 * We've done what we can to clean the buffers. Make sure we
550 * get notified when new packets arrive. 534 * get notified when new packets arrive.
551 */ 535 */
552out:
553 macb_writel(bp, IER, MACB_RX_INT_FLAGS); 536 macb_writel(bp, IER, MACB_RX_INT_FLAGS);
554 537
555 /* TODO: Handle errors */ 538 /* TODO: Handle errors */
@@ -590,7 +573,8 @@ static irqreturn_t macb_interrupt(int irq, void *dev_id)
590 } 573 }
591 } 574 }
592 575
593 if (status & (MACB_BIT(TCOMP) | MACB_BIT(ISR_TUND))) 576 if (status & (MACB_BIT(TCOMP) | MACB_BIT(ISR_TUND) |
577 MACB_BIT(ISR_RLE)))
594 macb_tx(bp); 578 macb_tx(bp);
595 579
596 /* 580 /*
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index 70d3ef4a2c5f..214a8cf2b708 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -376,7 +376,8 @@ static u32 macvlan_ethtool_get_rx_csum(struct net_device *dev)
376 const struct macvlan_dev *vlan = netdev_priv(dev); 376 const struct macvlan_dev *vlan = netdev_priv(dev);
377 struct net_device *lowerdev = vlan->lowerdev; 377 struct net_device *lowerdev = vlan->lowerdev;
378 378
379 if (lowerdev->ethtool_ops->get_rx_csum == NULL) 379 if (lowerdev->ethtool_ops == NULL ||
380 lowerdev->ethtool_ops->get_rx_csum == NULL)
380 return 0; 381 return 0;
381 return lowerdev->ethtool_ops->get_rx_csum(lowerdev); 382 return lowerdev->ethtool_ops->get_rx_csum(lowerdev);
382} 383}
@@ -387,7 +388,8 @@ static int macvlan_ethtool_get_settings(struct net_device *dev,
387 const struct macvlan_dev *vlan = netdev_priv(dev); 388 const struct macvlan_dev *vlan = netdev_priv(dev);
388 struct net_device *lowerdev = vlan->lowerdev; 389 struct net_device *lowerdev = vlan->lowerdev;
389 390
390 if (!lowerdev->ethtool_ops->get_settings) 391 if (!lowerdev->ethtool_ops ||
392 !lowerdev->ethtool_ops->get_settings)
391 return -EOPNOTSUPP; 393 return -EOPNOTSUPP;
392 394
393 return lowerdev->ethtool_ops->get_settings(lowerdev, cmd); 395 return lowerdev->ethtool_ops->get_settings(lowerdev, cmd);
@@ -398,7 +400,8 @@ static u32 macvlan_ethtool_get_flags(struct net_device *dev)
398 const struct macvlan_dev *vlan = netdev_priv(dev); 400 const struct macvlan_dev *vlan = netdev_priv(dev);
399 struct net_device *lowerdev = vlan->lowerdev; 401 struct net_device *lowerdev = vlan->lowerdev;
400 402
401 if (!lowerdev->ethtool_ops->get_flags) 403 if (!lowerdev->ethtool_ops ||
404 !lowerdev->ethtool_ops->get_flags)
402 return 0; 405 return 0;
403 return lowerdev->ethtool_ops->get_flags(lowerdev); 406 return lowerdev->ethtool_ops->get_flags(lowerdev);
404} 407}
diff --git a/drivers/net/mlx4/en_main.c b/drivers/net/mlx4/en_main.c
index eda72dd2120f..510633fd57f6 100644
--- a/drivers/net/mlx4/en_main.c
+++ b/drivers/net/mlx4/en_main.c
@@ -181,7 +181,7 @@ static void *mlx4_en_add(struct mlx4_dev *dev)
181 mdev->workqueue = create_singlethread_workqueue("mlx4_en"); 181 mdev->workqueue = create_singlethread_workqueue("mlx4_en");
182 if (!mdev->workqueue) { 182 if (!mdev->workqueue) {
183 err = -ENOMEM; 183 err = -ENOMEM;
184 goto err_close_nic; 184 goto err_mr;
185 } 185 }
186 186
187 /* At this stage all non-port specific tasks are complete: 187 /* At this stage all non-port specific tasks are complete:
@@ -214,9 +214,8 @@ err_free_netdev:
214 flush_workqueue(mdev->workqueue); 214 flush_workqueue(mdev->workqueue);
215 215
216 /* Stop event queue before we drop down to release shared SW state */ 216 /* Stop event queue before we drop down to release shared SW state */
217
218err_close_nic:
219 destroy_workqueue(mdev->workqueue); 217 destroy_workqueue(mdev->workqueue);
218
220err_mr: 219err_mr:
221 mlx4_mr_free(dev, &mdev->mr); 220 mlx4_mr_free(dev, &mdev->mr);
222err_uar: 221err_uar:
diff --git a/drivers/net/mlx4/en_netdev.c b/drivers/net/mlx4/en_netdev.c
index 303c23de6cac..7bcc49de1637 100644
--- a/drivers/net/mlx4/en_netdev.c
+++ b/drivers/net/mlx4/en_netdev.c
@@ -348,11 +348,9 @@ static void mlx4_en_tx_timeout(struct net_device *dev)
348 if (netif_msg_timer(priv)) 348 if (netif_msg_timer(priv))
349 mlx4_warn(mdev, "Tx timeout called on port:%d\n", priv->port); 349 mlx4_warn(mdev, "Tx timeout called on port:%d\n", priv->port);
350 350
351 if (netif_carrier_ok(dev)) { 351 priv->port_stats.tx_timeout++;
352 priv->port_stats.tx_timeout++; 352 mlx4_dbg(DRV, priv, "Scheduling watchdog\n");
353 mlx4_dbg(DRV, priv, "Scheduling watchdog\n"); 353 queue_work(mdev->workqueue, &priv->watchdog_task);
354 queue_work(mdev->workqueue, &priv->watchdog_task);
355 }
356} 354}
357 355
358 356
@@ -585,7 +583,7 @@ int mlx4_en_start_port(struct net_device *dev)
585 err = mlx4_en_activate_cq(priv, cq); 583 err = mlx4_en_activate_cq(priv, cq);
586 if (err) { 584 if (err) {
587 mlx4_err(mdev, "Failed activating Rx CQ\n"); 585 mlx4_err(mdev, "Failed activating Rx CQ\n");
588 goto rx_err; 586 goto cq_err;
589 } 587 }
590 for (j = 0; j < cq->size; j++) 588 for (j = 0; j < cq->size; j++)
591 cq->buf[j].owner_sr_opcode = MLX4_CQE_OWNER_MASK; 589 cq->buf[j].owner_sr_opcode = MLX4_CQE_OWNER_MASK;
@@ -761,9 +759,14 @@ static void mlx4_en_restart(struct work_struct *work)
761 struct net_device *dev = priv->dev; 759 struct net_device *dev = priv->dev;
762 760
763 mlx4_dbg(DRV, priv, "Watchdog task called for port %d\n", priv->port); 761 mlx4_dbg(DRV, priv, "Watchdog task called for port %d\n", priv->port);
764 mlx4_en_stop_port(dev); 762
765 if (mlx4_en_start_port(dev)) 763 mutex_lock(&mdev->state_lock);
766 mlx4_err(mdev, "Failed restarting port %d\n", priv->port); 764 if (priv->port_up) {
765 mlx4_en_stop_port(dev);
766 if (mlx4_en_start_port(dev))
767 mlx4_err(mdev, "Failed restarting port %d\n", priv->port);
768 }
769 mutex_unlock(&mdev->state_lock);
767} 770}
768 771
769 772
@@ -1054,7 +1057,7 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port,
1054 * Set driver features 1057 * Set driver features
1055 */ 1058 */
1056 dev->features |= NETIF_F_SG; 1059 dev->features |= NETIF_F_SG;
1057 dev->features |= NETIF_F_HW_CSUM; 1060 dev->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
1058 dev->features |= NETIF_F_HIGHDMA; 1061 dev->features |= NETIF_F_HIGHDMA;
1059 dev->features |= NETIF_F_HW_VLAN_TX | 1062 dev->features |= NETIF_F_HW_VLAN_TX |
1060 NETIF_F_HW_VLAN_RX | 1063 NETIF_F_HW_VLAN_RX |
diff --git a/drivers/net/mlx4/en_port.c b/drivers/net/mlx4/en_port.c
index c5a4c0389752..a29abe845d2e 100644
--- a/drivers/net/mlx4/en_port.c
+++ b/drivers/net/mlx4/en_port.c
@@ -151,6 +151,7 @@ int mlx4_en_DUMP_ETH_STATS(struct mlx4_en_dev *mdev, u8 port, u8 reset)
151 struct mlx4_cmd_mailbox *mailbox; 151 struct mlx4_cmd_mailbox *mailbox;
152 u64 in_mod = reset << 8 | port; 152 u64 in_mod = reset << 8 | port;
153 int err; 153 int err;
154 int i;
154 155
155 mailbox = mlx4_alloc_cmd_mailbox(mdev->dev); 156 mailbox = mlx4_alloc_cmd_mailbox(mdev->dev);
156 if (IS_ERR(mailbox)) 157 if (IS_ERR(mailbox))
@@ -165,38 +166,18 @@ int mlx4_en_DUMP_ETH_STATS(struct mlx4_en_dev *mdev, u8 port, u8 reset)
165 166
166 spin_lock_bh(&priv->stats_lock); 167 spin_lock_bh(&priv->stats_lock);
167 168
168 stats->rx_packets = be32_to_cpu(mlx4_en_stats->RTOTFRMS) - 169 stats->rx_packets = 0;
169 be32_to_cpu(mlx4_en_stats->RDROP); 170 stats->rx_bytes = 0;
170 stats->tx_packets = be64_to_cpu(mlx4_en_stats->TTOT_prio_0) + 171 for (i = 0; i < priv->rx_ring_num; i++) {
171 be64_to_cpu(mlx4_en_stats->TTOT_prio_1) + 172 stats->rx_packets += priv->rx_ring[i].packets;
172 be64_to_cpu(mlx4_en_stats->TTOT_prio_2) + 173 stats->rx_bytes += priv->rx_ring[i].bytes;
173 be64_to_cpu(mlx4_en_stats->TTOT_prio_3) + 174 }
174 be64_to_cpu(mlx4_en_stats->TTOT_prio_4) + 175 stats->tx_packets = 0;
175 be64_to_cpu(mlx4_en_stats->TTOT_prio_5) + 176 stats->tx_bytes = 0;
176 be64_to_cpu(mlx4_en_stats->TTOT_prio_6) + 177 for (i = 0; i <= priv->tx_ring_num; i++) {
177 be64_to_cpu(mlx4_en_stats->TTOT_prio_7) + 178 stats->tx_packets += priv->tx_ring[i].packets;
178 be64_to_cpu(mlx4_en_stats->TTOT_novlan) + 179 stats->tx_bytes += priv->tx_ring[i].bytes;
179 be64_to_cpu(mlx4_en_stats->TTOT_loopbk); 180 }
180 stats->rx_bytes = be64_to_cpu(mlx4_en_stats->ROCT_prio_0) +
181 be64_to_cpu(mlx4_en_stats->ROCT_prio_1) +
182 be64_to_cpu(mlx4_en_stats->ROCT_prio_2) +
183 be64_to_cpu(mlx4_en_stats->ROCT_prio_3) +
184 be64_to_cpu(mlx4_en_stats->ROCT_prio_4) +
185 be64_to_cpu(mlx4_en_stats->ROCT_prio_5) +
186 be64_to_cpu(mlx4_en_stats->ROCT_prio_6) +
187 be64_to_cpu(mlx4_en_stats->ROCT_prio_7) +
188 be64_to_cpu(mlx4_en_stats->ROCT_novlan);
189
190 stats->tx_bytes = be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_0) +
191 be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_1) +
192 be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_2) +
193 be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_3) +
194 be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_4) +
195 be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_5) +
196 be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_6) +
197 be64_to_cpu(mlx4_en_stats->TTTLOCT_prio_7) +
198 be64_to_cpu(mlx4_en_stats->TTTLOCT_novlan) +
199 be64_to_cpu(mlx4_en_stats->TTTLOCT_loopbk);
200 181
201 stats->rx_errors = be64_to_cpu(mlx4_en_stats->PCS) + 182 stats->rx_errors = be64_to_cpu(mlx4_en_stats->PCS) +
202 be32_to_cpu(mlx4_en_stats->RdropLength) + 183 be32_to_cpu(mlx4_en_stats->RdropLength) +
diff --git a/drivers/net/mlx4/en_resources.c b/drivers/net/mlx4/en_resources.c
index a0545209e507..65ca706c04bb 100644
--- a/drivers/net/mlx4/en_resources.c
+++ b/drivers/net/mlx4/en_resources.c
@@ -94,3 +94,9 @@ void mlx4_en_unmap_buffer(struct mlx4_buf *buf)
94 94
95 vunmap(buf->direct.buf); 95 vunmap(buf->direct.buf);
96} 96}
97
98void mlx4_en_sqp_event(struct mlx4_qp *qp, enum mlx4_event event)
99{
100 return;
101}
102
diff --git a/drivers/net/mlx4/en_rx.c b/drivers/net/mlx4/en_rx.c
index 7e40741fb7d8..7942c4d3cd88 100644
--- a/drivers/net/mlx4/en_rx.c
+++ b/drivers/net/mlx4/en_rx.c
@@ -436,8 +436,9 @@ int mlx4_en_activate_rx_rings(struct mlx4_en_priv *priv)
436 /* Initialize page allocators */ 436 /* Initialize page allocators */
437 err = mlx4_en_init_allocator(priv, ring); 437 err = mlx4_en_init_allocator(priv, ring);
438 if (err) { 438 if (err) {
439 mlx4_err(mdev, "Failed initializing ring allocator\n"); 439 mlx4_err(mdev, "Failed initializing ring allocator\n");
440 goto err_allocator; 440 ring_ind--;
441 goto err_allocator;
441 } 442 }
442 443
443 /* Fill Rx buffers */ 444 /* Fill Rx buffers */
@@ -467,6 +468,7 @@ int mlx4_en_activate_rx_rings(struct mlx4_en_priv *priv)
467 ring->wqres.db.dma, &ring->srq); 468 ring->wqres.db.dma, &ring->srq);
468 if (err){ 469 if (err){
469 mlx4_err(mdev, "Failed to allocate srq\n"); 470 mlx4_err(mdev, "Failed to allocate srq\n");
471 ring_ind--;
470 goto err_srq; 472 goto err_srq;
471 } 473 }
472 ring->srq.event = mlx4_en_srq_event; 474 ring->srq.event = mlx4_en_srq_event;
@@ -608,6 +610,10 @@ static struct sk_buff *mlx4_en_rx_skb(struct mlx4_en_priv *priv,
608 used_frags = mlx4_en_complete_rx_desc(priv, rx_desc, skb_frags, 610 used_frags = mlx4_en_complete_rx_desc(priv, rx_desc, skb_frags,
609 skb_shinfo(skb)->frags, 611 skb_shinfo(skb)->frags,
610 page_alloc, length); 612 page_alloc, length);
613 if (unlikely(!used_frags)) {
614 kfree_skb(skb);
615 return NULL;
616 }
611 skb_shinfo(skb)->nr_frags = used_frags; 617 skb_shinfo(skb)->nr_frags = used_frags;
612 618
613 /* Copy headers into the skb linear buffer */ 619 /* Copy headers into the skb linear buffer */
@@ -926,12 +932,6 @@ void mlx4_en_set_default_rss_map(struct mlx4_en_priv *priv,
926 } 932 }
927} 933}
928 934
929static void mlx4_en_sqp_event(struct mlx4_qp *qp, enum mlx4_event event)
930{
931 return;
932}
933
934
935static int mlx4_en_config_rss_qp(struct mlx4_en_priv *priv, 935static int mlx4_en_config_rss_qp(struct mlx4_en_priv *priv,
936 int qpn, int srqn, int cqn, 936 int qpn, int srqn, int cqn,
937 enum mlx4_qp_state *state, 937 enum mlx4_qp_state *state,
diff --git a/drivers/net/mlx4/en_tx.c b/drivers/net/mlx4/en_tx.c
index 4afd5993e31c..ac6fc499b280 100644
--- a/drivers/net/mlx4/en_tx.c
+++ b/drivers/net/mlx4/en_tx.c
@@ -112,6 +112,7 @@ int mlx4_en_create_tx_ring(struct mlx4_en_priv *priv,
112 mlx4_err(mdev, "Failed allocating qp %d\n", ring->qpn); 112 mlx4_err(mdev, "Failed allocating qp %d\n", ring->qpn);
113 goto err_reserve; 113 goto err_reserve;
114 } 114 }
115 ring->qp.event = mlx4_en_sqp_event;
115 116
116 return 0; 117 return 0;
117 118
diff --git a/drivers/net/mlx4/main.c b/drivers/net/mlx4/main.c
index 102bac90a302..30bea9689694 100644
--- a/drivers/net/mlx4/main.c
+++ b/drivers/net/mlx4/main.c
@@ -976,7 +976,7 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev)
976 nreq = err; 976 nreq = err;
977 goto retry; 977 goto retry;
978 } 978 }
979 979 kfree(entries);
980 goto no_msi; 980 goto no_msi;
981 } 981 }
982 982
diff --git a/drivers/net/mlx4/mlx4_en.h b/drivers/net/mlx4/mlx4_en.h
index e9af32d41ca4..ef840abbcd39 100644
--- a/drivers/net/mlx4/mlx4_en.h
+++ b/drivers/net/mlx4/mlx4_en.h
@@ -538,6 +538,7 @@ int mlx4_en_poll_rx_cq(struct napi_struct *napi, int budget);
538void mlx4_en_fill_qp_context(struct mlx4_en_priv *priv, int size, int stride, 538void mlx4_en_fill_qp_context(struct mlx4_en_priv *priv, int size, int stride,
539 int is_tx, int rss, int qpn, int cqn, int srqn, 539 int is_tx, int rss, int qpn, int cqn, int srqn,
540 struct mlx4_qp_context *context); 540 struct mlx4_qp_context *context);
541void mlx4_en_sqp_event(struct mlx4_qp *qp, enum mlx4_event event);
541int mlx4_en_map_buffer(struct mlx4_buf *buf); 542int mlx4_en_map_buffer(struct mlx4_buf *buf);
542void mlx4_en_unmap_buffer(struct mlx4_buf *buf); 543void mlx4_en_unmap_buffer(struct mlx4_buf *buf);
543 544
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c
index 2fbf9f9ddd37..652a36888361 100644
--- a/drivers/net/pcmcia/pcnet_cs.c
+++ b/drivers/net/pcmcia/pcnet_cs.c
@@ -1758,7 +1758,7 @@ static struct pcmcia_device_id pcnet_ids[] = {
1758 PCMCIA_MFC_DEVICE_CIS_PROD_ID12(0, "DAYNA COMMUNICATIONS", "LAN AND MODEM MULTIFUNCTION", 0x8fdf8f89, 0xdd5ed9e8, "DP83903.cis"), 1758 PCMCIA_MFC_DEVICE_CIS_PROD_ID12(0, "DAYNA COMMUNICATIONS", "LAN AND MODEM MULTIFUNCTION", 0x8fdf8f89, 0xdd5ed9e8, "DP83903.cis"),
1759 PCMCIA_MFC_DEVICE_CIS_PROD_ID4(0, "NSC MF LAN/Modem", 0x58fc6056, "DP83903.cis"), 1759 PCMCIA_MFC_DEVICE_CIS_PROD_ID4(0, "NSC MF LAN/Modem", 0x58fc6056, "DP83903.cis"),
1760 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(0, 0x0175, 0x0000, "DP83903.cis"), 1760 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(0, 0x0175, 0x0000, "DP83903.cis"),
1761 PCMCIA_DEVICE_CIS_MANF_CARD(0xc00f, 0x0002, "LA-PCM.cis"), 1761 PCMCIA_DEVICE_CIS_MANF_CARD(0xc00f, 0x0002, "cis/LA-PCM.cis"),
1762 PCMCIA_DEVICE_CIS_PROD_ID12("KTI", "PE520 PLUS", 0xad180345, 0x9d58d392, "PE520.cis"), 1762 PCMCIA_DEVICE_CIS_PROD_ID12("KTI", "PE520 PLUS", 0xad180345, 0x9d58d392, "PE520.cis"),
1763 PCMCIA_DEVICE_CIS_PROD_ID12("NDC", "Ethernet", 0x01c43ae1, 0x00b2e941, "NE2K.cis"), 1763 PCMCIA_DEVICE_CIS_PROD_ID12("NDC", "Ethernet", 0x01c43ae1, 0x00b2e941, "NE2K.cis"),
1764 PCMCIA_DEVICE_CIS_PROD_ID12("PMX ", "PE-200", 0x34f3f1c8, 0x10b59f8c, "PE-200.cis"), 1764 PCMCIA_DEVICE_CIS_PROD_ID12("PMX ", "PE-200", 0x34f3f1c8, 0x10b59f8c, "PE-200.cis"),
diff --git a/drivers/net/ps3_gelic_wireless.c b/drivers/net/ps3_gelic_wireless.c
index a5ac2bd58b5b..4f3ada622f9b 100644
--- a/drivers/net/ps3_gelic_wireless.c
+++ b/drivers/net/ps3_gelic_wireless.c
@@ -2101,6 +2101,9 @@ static int gelic_wl_associate_bss(struct gelic_wl_info *wl,
2101 if (ret) { 2101 if (ret) {
2102 pr_debug("%s: WEP/WPA setup failed %d\n", __func__, 2102 pr_debug("%s: WEP/WPA setup failed %d\n", __func__,
2103 ret); 2103 ret);
2104 ret = -EPERM;
2105 gelic_wl_send_iwap_event(wl, NULL);
2106 goto out;
2104 } 2107 }
2105 2108
2106 /* start association */ 2109 /* start association */
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 7a837c465960..201be425643a 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -2190,7 +2190,14 @@ static int tg3_nvram_read_using_eeprom(struct tg3 *tp,
2190 if (!(tmp & EEPROM_ADDR_COMPLETE)) 2190 if (!(tmp & EEPROM_ADDR_COMPLETE))
2191 return -EBUSY; 2191 return -EBUSY;
2192 2192
2193 *val = tr32(GRC_EEPROM_DATA); 2193 tmp = tr32(GRC_EEPROM_DATA);
2194
2195 /*
2196 * The data will always be opposite the native endian
2197 * format. Perform a blind byteswap to compensate.
2198 */
2199 *val = swab32(tmp);
2200
2194 return 0; 2201 return 0;
2195} 2202}
2196 2203
@@ -10663,7 +10670,13 @@ static int tg3_nvram_write_block_using_eeprom(struct tg3 *tp,
10663 10670
10664 memcpy(&data, buf + i, 4); 10671 memcpy(&data, buf + i, 4);
10665 10672
10666 tw32(GRC_EEPROM_DATA, be32_to_cpu(data)); 10673 /*
10674 * The SEEPROM interface expects the data to always be opposite
10675 * the native endian format. We accomplish this by reversing
10676 * all the operations that would have been performed on the
10677 * data from a call to tg3_nvram_read_be32().
10678 */
10679 tw32(GRC_EEPROM_DATA, swab32(be32_to_cpu(data)));
10667 10680
10668 val = tr32(GRC_EEPROM_ADDR); 10681 val = tr32(GRC_EEPROM_ADDR);
10669 tw32(GRC_EEPROM_ADDR, val | EEPROM_ADDR_COMPLETE); 10682 tw32(GRC_EEPROM_ADDR, val | EEPROM_ADDR_COMPLETE);
@@ -12443,13 +12456,8 @@ static int __devinit tg3_get_device_address(struct tg3 *tp)
12443 /* Next, try NVRAM. */ 12456 /* Next, try NVRAM. */
12444 if (!tg3_nvram_read_be32(tp, mac_offset + 0, &hi) && 12457 if (!tg3_nvram_read_be32(tp, mac_offset + 0, &hi) &&
12445 !tg3_nvram_read_be32(tp, mac_offset + 4, &lo)) { 12458 !tg3_nvram_read_be32(tp, mac_offset + 4, &lo)) {
12446 dev->dev_addr[0] = ((hi >> 16) & 0xff); 12459 memcpy(&dev->dev_addr[0], ((char *)&hi) + 2, 2);
12447 dev->dev_addr[1] = ((hi >> 24) & 0xff); 12460 memcpy(&dev->dev_addr[2], (char *)&lo, sizeof(lo));
12448 dev->dev_addr[2] = ((lo >> 0) & 0xff);
12449 dev->dev_addr[3] = ((lo >> 8) & 0xff);
12450 dev->dev_addr[4] = ((lo >> 16) & 0xff);
12451 dev->dev_addr[5] = ((lo >> 24) & 0xff);
12452
12453 } 12461 }
12454 /* Finally just fetch it out of the MAC control regs. */ 12462 /* Finally just fetch it out of the MAC control regs. */
12455 else { 12463 else {
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 16716aef184c..735bf41c654a 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -93,7 +93,6 @@ struct tun_file {
93 atomic_t count; 93 atomic_t count;
94 struct tun_struct *tun; 94 struct tun_struct *tun;
95 struct net *net; 95 struct net *net;
96 wait_queue_head_t read_wait;
97}; 96};
98 97
99struct tun_sock; 98struct tun_sock;
@@ -156,6 +155,7 @@ static int tun_attach(struct tun_struct *tun, struct file *file)
156 tfile->tun = tun; 155 tfile->tun = tun;
157 tun->tfile = tfile; 156 tun->tfile = tfile;
158 dev_hold(tun->dev); 157 dev_hold(tun->dev);
158 sock_hold(tun->sk);
159 atomic_inc(&tfile->count); 159 atomic_inc(&tfile->count);
160 160
161out: 161out:
@@ -165,11 +165,8 @@ out:
165 165
166static void __tun_detach(struct tun_struct *tun) 166static void __tun_detach(struct tun_struct *tun)
167{ 167{
168 struct tun_file *tfile = tun->tfile;
169
170 /* Detach from net device */ 168 /* Detach from net device */
171 netif_tx_lock_bh(tun->dev); 169 netif_tx_lock_bh(tun->dev);
172 tfile->tun = NULL;
173 tun->tfile = NULL; 170 tun->tfile = NULL;
174 netif_tx_unlock_bh(tun->dev); 171 netif_tx_unlock_bh(tun->dev);
175 172
@@ -333,12 +330,19 @@ static void tun_net_uninit(struct net_device *dev)
333 /* Inform the methods they need to stop using the dev. 330 /* Inform the methods they need to stop using the dev.
334 */ 331 */
335 if (tfile) { 332 if (tfile) {
336 wake_up_all(&tfile->read_wait); 333 wake_up_all(&tun->socket.wait);
337 if (atomic_dec_and_test(&tfile->count)) 334 if (atomic_dec_and_test(&tfile->count))
338 __tun_detach(tun); 335 __tun_detach(tun);
339 } 336 }
340} 337}
341 338
339static void tun_free_netdev(struct net_device *dev)
340{
341 struct tun_struct *tun = netdev_priv(dev);
342
343 sock_put(tun->sk);
344}
345
342/* Net device open. */ 346/* Net device open. */
343static int tun_net_open(struct net_device *dev) 347static int tun_net_open(struct net_device *dev)
344{ 348{
@@ -393,7 +397,7 @@ static int tun_net_xmit(struct sk_buff *skb, struct net_device *dev)
393 /* Notify and wake up reader process */ 397 /* Notify and wake up reader process */
394 if (tun->flags & TUN_FASYNC) 398 if (tun->flags & TUN_FASYNC)
395 kill_fasync(&tun->fasync, SIGIO, POLL_IN); 399 kill_fasync(&tun->fasync, SIGIO, POLL_IN);
396 wake_up_interruptible(&tun->tfile->read_wait); 400 wake_up_interruptible(&tun->socket.wait);
397 return 0; 401 return 0;
398 402
399drop: 403drop:
@@ -490,7 +494,7 @@ static unsigned int tun_chr_poll(struct file *file, poll_table * wait)
490 494
491 DBG(KERN_INFO "%s: tun_chr_poll\n", tun->dev->name); 495 DBG(KERN_INFO "%s: tun_chr_poll\n", tun->dev->name);
492 496
493 poll_wait(file, &tfile->read_wait, wait); 497 poll_wait(file, &tun->socket.wait, wait);
494 498
495 if (!skb_queue_empty(&tun->readq)) 499 if (!skb_queue_empty(&tun->readq))
496 mask |= POLLIN | POLLRDNORM; 500 mask |= POLLIN | POLLRDNORM;
@@ -763,7 +767,7 @@ static ssize_t tun_chr_aio_read(struct kiocb *iocb, const struct iovec *iv,
763 goto out; 767 goto out;
764 } 768 }
765 769
766 add_wait_queue(&tfile->read_wait, &wait); 770 add_wait_queue(&tun->socket.wait, &wait);
767 while (len) { 771 while (len) {
768 current->state = TASK_INTERRUPTIBLE; 772 current->state = TASK_INTERRUPTIBLE;
769 773
@@ -794,7 +798,7 @@ static ssize_t tun_chr_aio_read(struct kiocb *iocb, const struct iovec *iv,
794 } 798 }
795 799
796 current->state = TASK_RUNNING; 800 current->state = TASK_RUNNING;
797 remove_wait_queue(&tfile->read_wait, &wait); 801 remove_wait_queue(&tun->socket.wait, &wait);
798 802
799out: 803out:
800 tun_put(tun); 804 tun_put(tun);
@@ -811,7 +815,7 @@ static void tun_setup(struct net_device *dev)
811 tun->group = -1; 815 tun->group = -1;
812 816
813 dev->ethtool_ops = &tun_ethtool_ops; 817 dev->ethtool_ops = &tun_ethtool_ops;
814 dev->destructor = free_netdev; 818 dev->destructor = tun_free_netdev;
815} 819}
816 820
817/* Trivial set of netlink ops to allow deleting tun or tap 821/* Trivial set of netlink ops to allow deleting tun or tap
@@ -848,7 +852,7 @@ static void tun_sock_write_space(struct sock *sk)
848 852
849static void tun_sock_destruct(struct sock *sk) 853static void tun_sock_destruct(struct sock *sk)
850{ 854{
851 dev_put(container_of(sk, struct tun_sock, sk)->tun->dev); 855 free_netdev(container_of(sk, struct tun_sock, sk)->tun->dev);
852} 856}
853 857
854static struct proto tun_proto = { 858static struct proto tun_proto = {
@@ -862,7 +866,6 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
862 struct sock *sk; 866 struct sock *sk;
863 struct tun_struct *tun; 867 struct tun_struct *tun;
864 struct net_device *dev; 868 struct net_device *dev;
865 struct tun_file *tfile = file->private_data;
866 int err; 869 int err;
867 870
868 dev = __dev_get_by_name(net, ifr->ifr_name); 871 dev = __dev_get_by_name(net, ifr->ifr_name);
@@ -920,13 +923,10 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
920 if (!sk) 923 if (!sk)
921 goto err_free_dev; 924 goto err_free_dev;
922 925
923 /* This ref count is for tun->sk. */ 926 init_waitqueue_head(&tun->socket.wait);
924 dev_hold(dev);
925 sock_init_data(&tun->socket, sk); 927 sock_init_data(&tun->socket, sk);
926 sk->sk_write_space = tun_sock_write_space; 928 sk->sk_write_space = tun_sock_write_space;
927 sk->sk_destruct = tun_sock_destruct;
928 sk->sk_sndbuf = INT_MAX; 929 sk->sk_sndbuf = INT_MAX;
929 sk->sk_sleep = &tfile->read_wait;
930 930
931 tun->sk = sk; 931 tun->sk = sk;
932 container_of(sk, struct tun_sock, sk)->tun = tun; 932 container_of(sk, struct tun_sock, sk)->tun = tun;
@@ -942,11 +942,13 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
942 err = -EINVAL; 942 err = -EINVAL;
943 err = register_netdevice(tun->dev); 943 err = register_netdevice(tun->dev);
944 if (err < 0) 944 if (err < 0)
945 goto err_free_dev; 945 goto err_free_sk;
946
947 sk->sk_destruct = tun_sock_destruct;
946 948
947 err = tun_attach(tun, file); 949 err = tun_attach(tun, file);
948 if (err < 0) 950 if (err < 0)
949 goto err_free_dev; 951 goto failed;
950 } 952 }
951 953
952 DBG(KERN_INFO "%s: tun_set_iff\n", tun->dev->name); 954 DBG(KERN_INFO "%s: tun_set_iff\n", tun->dev->name);
@@ -1266,7 +1268,6 @@ static int tun_chr_open(struct inode *inode, struct file * file)
1266 atomic_set(&tfile->count, 0); 1268 atomic_set(&tfile->count, 0);
1267 tfile->tun = NULL; 1269 tfile->tun = NULL;
1268 tfile->net = get_net(current->nsproxy->net_ns); 1270 tfile->net = get_net(current->nsproxy->net_ns);
1269 init_waitqueue_head(&tfile->read_wait);
1270 file->private_data = tfile; 1271 file->private_data = tfile;
1271 return 0; 1272 return 0;
1272} 1273}
@@ -1284,14 +1285,16 @@ static int tun_chr_close(struct inode *inode, struct file *file)
1284 __tun_detach(tun); 1285 __tun_detach(tun);
1285 1286
1286 /* If desireable, unregister the netdevice. */ 1287 /* If desireable, unregister the netdevice. */
1287 if (!(tun->flags & TUN_PERSIST)) { 1288 if (!(tun->flags & TUN_PERSIST))
1288 sock_put(tun->sk);
1289 unregister_netdevice(tun->dev); 1289 unregister_netdevice(tun->dev);
1290 }
1291 1290
1292 rtnl_unlock(); 1291 rtnl_unlock();
1293 } 1292 }
1294 1293
1294 tun = tfile->tun;
1295 if (tun)
1296 sock_put(tun->sk);
1297
1295 put_net(tfile->net); 1298 put_net(tfile->net);
1296 kfree(tfile); 1299 kfree(tfile);
1297 1300
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index d3f39e86eb95..44f8392da117 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -1394,7 +1394,8 @@ static int adjust_enet_interface(struct ucc_geth_private *ugeth)
1394 (ugeth->phy_interface == PHY_INTERFACE_MODE_RGMII_RXID) || 1394 (ugeth->phy_interface == PHY_INTERFACE_MODE_RGMII_RXID) ||
1395 (ugeth->phy_interface == PHY_INTERFACE_MODE_RGMII_TXID) || 1395 (ugeth->phy_interface == PHY_INTERFACE_MODE_RGMII_TXID) ||
1396 (ugeth->phy_interface == PHY_INTERFACE_MODE_RTBI)) { 1396 (ugeth->phy_interface == PHY_INTERFACE_MODE_RTBI)) {
1397 upsmr |= UCC_GETH_UPSMR_RPM; 1397 if (ugeth->phy_interface != PHY_INTERFACE_MODE_RMII)
1398 upsmr |= UCC_GETH_UPSMR_RPM;
1398 switch (ugeth->max_speed) { 1399 switch (ugeth->max_speed) {
1399 case SPEED_10: 1400 case SPEED_10:
1400 upsmr |= UCC_GETH_UPSMR_R10M; 1401 upsmr |= UCC_GETH_UPSMR_R10M;
diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c
index a8228d87c8cf..2138535f2339 100644
--- a/drivers/net/usb/pegasus.c
+++ b/drivers/net/usb/pegasus.c
@@ -899,6 +899,7 @@ static int pegasus_start_xmit(struct sk_buff *skb, struct net_device *net)
899 /* cleanup should already have been scheduled */ 899 /* cleanup should already have been scheduled */
900 break; 900 break;
901 case -ENODEV: /* disconnect() upcoming */ 901 case -ENODEV: /* disconnect() upcoming */
902 case -EPERM:
902 netif_device_detach(pegasus->net); 903 netif_device_detach(pegasus->net);
903 break; 904 break;
904 default: 905 default:
diff --git a/drivers/net/veth.c b/drivers/net/veth.c
index 015db1cece72..8e56fcf0a0e3 100644
--- a/drivers/net/veth.c
+++ b/drivers/net/veth.c
@@ -210,14 +210,11 @@ rx_drop:
210 210
211static struct net_device_stats *veth_get_stats(struct net_device *dev) 211static struct net_device_stats *veth_get_stats(struct net_device *dev)
212{ 212{
213 struct veth_priv *priv; 213 struct veth_priv *priv = netdev_priv(dev);
214 struct net_device_stats *dev_stats; 214 struct net_device_stats *dev_stats = &dev->stats;
215 int cpu; 215 unsigned int cpu;
216 struct veth_net_stats *stats; 216 struct veth_net_stats *stats;
217 217
218 priv = netdev_priv(dev);
219 dev_stats = &dev->stats;
220
221 dev_stats->rx_packets = 0; 218 dev_stats->rx_packets = 0;
222 dev_stats->tx_packets = 0; 219 dev_stats->tx_packets = 0;
223 dev_stats->rx_bytes = 0; 220 dev_stats->rx_bytes = 0;
@@ -225,16 +222,17 @@ static struct net_device_stats *veth_get_stats(struct net_device *dev)
225 dev_stats->tx_dropped = 0; 222 dev_stats->tx_dropped = 0;
226 dev_stats->rx_dropped = 0; 223 dev_stats->rx_dropped = 0;
227 224
228 for_each_online_cpu(cpu) { 225 if (priv->stats)
229 stats = per_cpu_ptr(priv->stats, cpu); 226 for_each_online_cpu(cpu) {
227 stats = per_cpu_ptr(priv->stats, cpu);
230 228
231 dev_stats->rx_packets += stats->rx_packets; 229 dev_stats->rx_packets += stats->rx_packets;
232 dev_stats->tx_packets += stats->tx_packets; 230 dev_stats->tx_packets += stats->tx_packets;
233 dev_stats->rx_bytes += stats->rx_bytes; 231 dev_stats->rx_bytes += stats->rx_bytes;
234 dev_stats->tx_bytes += stats->tx_bytes; 232 dev_stats->tx_bytes += stats->tx_bytes;
235 dev_stats->tx_dropped += stats->tx_dropped; 233 dev_stats->tx_dropped += stats->tx_dropped;
236 dev_stats->rx_dropped += stats->rx_dropped; 234 dev_stats->rx_dropped += stats->rx_dropped;
237 } 235 }
238 236
239 return dev_stats; 237 return dev_stats;
240} 238}
@@ -261,6 +259,8 @@ static int veth_close(struct net_device *dev)
261 netif_carrier_off(dev); 259 netif_carrier_off(dev);
262 netif_carrier_off(priv->peer); 260 netif_carrier_off(priv->peer);
263 261
262 free_percpu(priv->stats);
263 priv->stats = NULL;
264 return 0; 264 return 0;
265} 265}
266 266
@@ -291,15 +291,6 @@ static int veth_dev_init(struct net_device *dev)
291 return 0; 291 return 0;
292} 292}
293 293
294static void veth_dev_free(struct net_device *dev)
295{
296 struct veth_priv *priv;
297
298 priv = netdev_priv(dev);
299 free_percpu(priv->stats);
300 free_netdev(dev);
301}
302
303static const struct net_device_ops veth_netdev_ops = { 294static const struct net_device_ops veth_netdev_ops = {
304 .ndo_init = veth_dev_init, 295 .ndo_init = veth_dev_init,
305 .ndo_open = veth_open, 296 .ndo_open = veth_open,
@@ -317,7 +308,7 @@ static void veth_setup(struct net_device *dev)
317 dev->netdev_ops = &veth_netdev_ops; 308 dev->netdev_ops = &veth_netdev_ops;
318 dev->ethtool_ops = &veth_ethtool_ops; 309 dev->ethtool_ops = &veth_ethtool_ops;
319 dev->features |= NETIF_F_LLTX; 310 dev->features |= NETIF_F_LLTX;
320 dev->destructor = veth_dev_free; 311 dev->destructor = free_netdev;
321} 312}
322 313
323/* 314/*
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
index f21a6171c691..c36d3a3d655f 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -6713,11 +6713,11 @@ static int airo_set_auth(struct net_device *dev,
6713 local->config.authType = AUTH_ENCRYPT; 6713 local->config.authType = AUTH_ENCRYPT;
6714 } else 6714 } else
6715 return -EINVAL; 6715 return -EINVAL;
6716 break;
6717 6716
6718 /* Commit the changes to flags if needed */ 6717 /* Commit the changes to flags if needed */
6719 if (local->config.authType != currentAuthType) 6718 if (local->config.authType != currentAuthType)
6720 set_bit (FLAG_COMMIT, &local->flags); 6719 set_bit (FLAG_COMMIT, &local->flags);
6720 break;
6721 } 6721 }
6722 6722
6723 case IW_AUTH_WPA_ENABLED: 6723 case IW_AUTH_WPA_ENABLED:
diff --git a/drivers/net/wireless/ar9170/hw.h b/drivers/net/wireless/ar9170/hw.h
index 13091bd9d815..53e250a4278f 100644
--- a/drivers/net/wireless/ar9170/hw.h
+++ b/drivers/net/wireless/ar9170/hw.h
@@ -310,7 +310,7 @@ struct ar9170_tx_control {
310 310
311struct ar9170_rx_head { 311struct ar9170_rx_head {
312 u8 plcp[12]; 312 u8 plcp[12];
313}; 313} __packed;
314 314
315struct ar9170_rx_tail { 315struct ar9170_rx_tail {
316 union { 316 union {
@@ -318,16 +318,16 @@ struct ar9170_rx_tail {
318 u8 rssi_ant0, rssi_ant1, rssi_ant2, 318 u8 rssi_ant0, rssi_ant1, rssi_ant2,
319 rssi_ant0x, rssi_ant1x, rssi_ant2x, 319 rssi_ant0x, rssi_ant1x, rssi_ant2x,
320 rssi_combined; 320 rssi_combined;
321 }; 321 } __packed;
322 u8 rssi[7]; 322 u8 rssi[7];
323 }; 323 } __packed;
324 324
325 u8 evm_stream0[6], evm_stream1[6]; 325 u8 evm_stream0[6], evm_stream1[6];
326 u8 phy_err; 326 u8 phy_err;
327 u8 SAidx, DAidx; 327 u8 SAidx, DAidx;
328 u8 error; 328 u8 error;
329 u8 status; 329 u8 status;
330}; 330} __packed;
331 331
332#define AR9170_ENC_ALG_NONE 0x0 332#define AR9170_ENC_ALG_NONE 0x0
333#define AR9170_ENC_ALG_WEP64 0x1 333#define AR9170_ENC_ALG_WEP64 0x1
diff --git a/drivers/net/wireless/ar9170/usb.c b/drivers/net/wireless/ar9170/usb.c
index ad296840893e..fddda477095c 100644
--- a/drivers/net/wireless/ar9170/usb.c
+++ b/drivers/net/wireless/ar9170/usb.c
@@ -59,6 +59,8 @@ static struct usb_device_id ar9170_usb_ids[] = {
59 { USB_DEVICE(0x0cf3, 0x9170) }, 59 { USB_DEVICE(0x0cf3, 0x9170) },
60 /* Atheros TG121N */ 60 /* Atheros TG121N */
61 { USB_DEVICE(0x0cf3, 0x1001) }, 61 { USB_DEVICE(0x0cf3, 0x1001) },
62 /* Cace Airpcap NX */
63 { USB_DEVICE(0xcace, 0x0300) },
62 /* D-Link DWA 160A */ 64 /* D-Link DWA 160A */
63 { USB_DEVICE(0x07d1, 0x3c10) }, 65 { USB_DEVICE(0x07d1, 0x3c10) },
64 /* Netgear WNDA3100 */ 66 /* Netgear WNDA3100 */
@@ -67,6 +69,8 @@ static struct usb_device_id ar9170_usb_ids[] = {
67 { USB_DEVICE(0x0846, 0x9001) }, 69 { USB_DEVICE(0x0846, 0x9001) },
68 /* Zydas ZD1221 */ 70 /* Zydas ZD1221 */
69 { USB_DEVICE(0x0ace, 0x1221) }, 71 { USB_DEVICE(0x0ace, 0x1221) },
72 /* ZyXEL NWD271N */
73 { USB_DEVICE(0x0586, 0x3417) },
70 /* Z-Com UB81 BG */ 74 /* Z-Com UB81 BG */
71 { USB_DEVICE(0x0cde, 0x0023) }, 75 { USB_DEVICE(0x0cde, 0x0023) },
72 /* Z-Com UB82 ABG */ 76 /* Z-Com UB82 ABG */
@@ -619,6 +623,39 @@ static int ar9170_usb_open(struct ar9170 *ar)
619 return 0; 623 return 0;
620} 624}
621 625
626static int ar9170_usb_init_device(struct ar9170_usb *aru)
627{
628 int err;
629
630 err = ar9170_usb_alloc_rx_irq_urb(aru);
631 if (err)
632 goto err_out;
633
634 err = ar9170_usb_alloc_rx_bulk_urbs(aru);
635 if (err)
636 goto err_unrx;
637
638 err = ar9170_usb_upload_firmware(aru);
639 if (err) {
640 err = ar9170_echo_test(&aru->common, 0x60d43110);
641 if (err) {
642 /* force user invention, by disabling the device */
643 err = usb_driver_set_configuration(aru->udev, -1);
644 dev_err(&aru->udev->dev, "device is in a bad state. "
645 "please reconnect it!\n");
646 goto err_unrx;
647 }
648 }
649
650 return 0;
651
652err_unrx:
653 ar9170_usb_cancel_urbs(aru);
654
655err_out:
656 return err;
657}
658
622static int ar9170_usb_probe(struct usb_interface *intf, 659static int ar9170_usb_probe(struct usb_interface *intf,
623 const struct usb_device_id *id) 660 const struct usb_device_id *id)
624{ 661{
@@ -654,32 +691,16 @@ static int ar9170_usb_probe(struct usb_interface *intf,
654 691
655 err = ar9170_usb_reset(aru); 692 err = ar9170_usb_reset(aru);
656 if (err) 693 if (err)
657 goto err_unlock; 694 goto err_freehw;
658 695
659 err = ar9170_usb_request_firmware(aru); 696 err = ar9170_usb_request_firmware(aru);
660 if (err) 697 if (err)
661 goto err_unlock; 698 goto err_freehw;
662 699
663 err = ar9170_usb_alloc_rx_irq_urb(aru); 700 err = ar9170_usb_init_device(aru);
664 if (err) 701 if (err)
665 goto err_freefw; 702 goto err_freefw;
666 703
667 err = ar9170_usb_alloc_rx_bulk_urbs(aru);
668 if (err)
669 goto err_unrx;
670
671 err = ar9170_usb_upload_firmware(aru);
672 if (err) {
673 err = ar9170_echo_test(&aru->common, 0x60d43110);
674 if (err) {
675 /* force user invention, by disabling the device */
676 err = usb_driver_set_configuration(aru->udev, -1);
677 dev_err(&aru->udev->dev, "device is in a bad state. "
678 "please reconnect it!\n");
679 goto err_unrx;
680 }
681 }
682
683 err = ar9170_usb_open(ar); 704 err = ar9170_usb_open(ar);
684 if (err) 705 if (err)
685 goto err_unrx; 706 goto err_unrx;
@@ -699,7 +720,7 @@ err_freefw:
699 release_firmware(aru->init_values); 720 release_firmware(aru->init_values);
700 release_firmware(aru->firmware); 721 release_firmware(aru->firmware);
701 722
702err_unlock: 723err_freehw:
703 usb_set_intfdata(intf, NULL); 724 usb_set_intfdata(intf, NULL);
704 usb_put_dev(udev); 725 usb_put_dev(udev);
705 ieee80211_free_hw(ar->hw); 726 ieee80211_free_hw(ar->hw);
@@ -726,12 +747,65 @@ static void ar9170_usb_disconnect(struct usb_interface *intf)
726 ieee80211_free_hw(aru->common.hw); 747 ieee80211_free_hw(aru->common.hw);
727} 748}
728 749
750#ifdef CONFIG_PM
751static int ar9170_suspend(struct usb_interface *intf,
752 pm_message_t message)
753{
754 struct ar9170_usb *aru = usb_get_intfdata(intf);
755
756 if (!aru)
757 return -ENODEV;
758
759 aru->common.state = AR9170_IDLE;
760 ar9170_usb_cancel_urbs(aru);
761
762 return 0;
763}
764
765static int ar9170_resume(struct usb_interface *intf)
766{
767 struct ar9170_usb *aru = usb_get_intfdata(intf);
768 int err;
769
770 if (!aru)
771 return -ENODEV;
772
773 usb_unpoison_anchored_urbs(&aru->rx_submitted);
774 usb_unpoison_anchored_urbs(&aru->tx_submitted);
775
776 /*
777 * FIXME: firmware upload will fail on resume.
778 * but this is better than a hang!
779 */
780
781 err = ar9170_usb_init_device(aru);
782 if (err)
783 goto err_unrx;
784
785 err = ar9170_usb_open(&aru->common);
786 if (err)
787 goto err_unrx;
788
789 return 0;
790
791err_unrx:
792 aru->common.state = AR9170_IDLE;
793 ar9170_usb_cancel_urbs(aru);
794
795 return err;
796}
797#endif /* CONFIG_PM */
798
729static struct usb_driver ar9170_driver = { 799static struct usb_driver ar9170_driver = {
730 .name = "ar9170usb", 800 .name = "ar9170usb",
731 .probe = ar9170_usb_probe, 801 .probe = ar9170_usb_probe,
732 .disconnect = ar9170_usb_disconnect, 802 .disconnect = ar9170_usb_disconnect,
733 .id_table = ar9170_usb_ids, 803 .id_table = ar9170_usb_ids,
734 .soft_unbind = 1, 804 .soft_unbind = 1,
805#ifdef CONFIG_PM
806 .suspend = ar9170_suspend,
807 .resume = ar9170_resume,
808#endif /* CONFIG_PM */
735}; 809};
736 810
737static int __init ar9170_init(void) 811static int __init ar9170_init(void)
diff --git a/drivers/net/wireless/at76c50x-usb.c b/drivers/net/wireless/at76c50x-usb.c
index 0c02f1c2bd94..744f4f4dd3d1 100644
--- a/drivers/net/wireless/at76c50x-usb.c
+++ b/drivers/net/wireless/at76c50x-usb.c
@@ -250,6 +250,8 @@ static struct usb_device_id dev_table[] = {
250 { USB_DEVICE(0x03eb, 0x7617), USB_DEVICE_DATA(BOARD_505A) }, 250 { USB_DEVICE(0x03eb, 0x7617), USB_DEVICE_DATA(BOARD_505A) },
251 /* Siemens Gigaset USB WLAN Adapter 11 */ 251 /* Siemens Gigaset USB WLAN Adapter 11 */
252 { USB_DEVICE(0x1690, 0x0701), USB_DEVICE_DATA(BOARD_505A) }, 252 { USB_DEVICE(0x1690, 0x0701), USB_DEVICE_DATA(BOARD_505A) },
253 /* OQO Model 01+ Internal Wi-Fi */
254 { USB_DEVICE(0x1557, 0x0002), USB_DEVICE_DATA(BOARD_505A) },
253 /* 255 /*
254 * at76c505amx-rfmd 256 * at76c505amx-rfmd
255 */ 257 */
diff --git a/drivers/net/wireless/ath9k/recv.c b/drivers/net/wireless/ath9k/recv.c
index 71cb18d6757d..dd1f30156740 100644
--- a/drivers/net/wireless/ath9k/recv.c
+++ b/drivers/net/wireless/ath9k/recv.c
@@ -493,6 +493,7 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush)
493 int hdrlen, padsize, retval; 493 int hdrlen, padsize, retval;
494 bool decrypt_error = false; 494 bool decrypt_error = false;
495 u8 keyix; 495 u8 keyix;
496 __le16 fc;
496 497
497 spin_lock_bh(&sc->rx.rxbuflock); 498 spin_lock_bh(&sc->rx.rxbuflock);
498 499
@@ -606,6 +607,7 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush)
606 /* see if any padding is done by the hw and remove it */ 607 /* see if any padding is done by the hw and remove it */
607 hdr = (struct ieee80211_hdr *)skb->data; 608 hdr = (struct ieee80211_hdr *)skb->data;
608 hdrlen = ieee80211_get_hdrlen_from_skb(skb); 609 hdrlen = ieee80211_get_hdrlen_from_skb(skb);
610 fc = hdr->frame_control;
609 611
610 /* The MAC header is padded to have 32-bit boundary if the 612 /* The MAC header is padded to have 32-bit boundary if the
611 * packet payload is non-zero. The general calculation for 613 * packet payload is non-zero. The general calculation for
@@ -690,7 +692,7 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush)
690 sc->rx.rxotherant = 0; 692 sc->rx.rxotherant = 0;
691 } 693 }
692 694
693 if (ieee80211_is_beacon(hdr->frame_control) && 695 if (ieee80211_is_beacon(fc) &&
694 (sc->sc_flags & SC_OP_WAIT_FOR_BEACON)) { 696 (sc->sc_flags & SC_OP_WAIT_FOR_BEACON)) {
695 sc->sc_flags &= ~SC_OP_WAIT_FOR_BEACON; 697 sc->sc_flags &= ~SC_OP_WAIT_FOR_BEACON;
696 ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_NETWORK_SLEEP); 698 ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_NETWORK_SLEEP);
diff --git a/drivers/net/wireless/atmel.c b/drivers/net/wireless/atmel.c
index 857d84148b1d..27eef8fb7107 100644
--- a/drivers/net/wireless/atmel.c
+++ b/drivers/net/wireless/atmel.c
@@ -1502,7 +1502,6 @@ static const struct net_device_ops atmel_netdev_ops = {
1502 .ndo_set_mac_address = atmel_set_mac_address, 1502 .ndo_set_mac_address = atmel_set_mac_address,
1503 .ndo_start_xmit = start_tx, 1503 .ndo_start_xmit = start_tx,
1504 .ndo_do_ioctl = atmel_ioctl, 1504 .ndo_do_ioctl = atmel_ioctl,
1505 .ndo_change_mtu = eth_change_mtu,
1506 .ndo_validate_addr = eth_validate_addr, 1505 .ndo_validate_addr = eth_validate_addr,
1507}; 1506};
1508 1507
diff --git a/drivers/net/wireless/b43/dma.c b/drivers/net/wireless/b43/dma.c
index e228c1de6e11..eae680b53052 100644
--- a/drivers/net/wireless/b43/dma.c
+++ b/drivers/net/wireless/b43/dma.c
@@ -555,11 +555,32 @@ address_error:
555 return 1; 555 return 1;
556} 556}
557 557
558static bool b43_rx_buffer_is_poisoned(struct b43_dmaring *ring, struct sk_buff *skb)
559{
560 unsigned char *f = skb->data + ring->frameoffset;
561
562 return ((f[0] & f[1] & f[2] & f[3] & f[4] & f[5] & f[6] & f[7]) == 0xFF);
563}
564
565static void b43_poison_rx_buffer(struct b43_dmaring *ring, struct sk_buff *skb)
566{
567 struct b43_rxhdr_fw4 *rxhdr;
568 unsigned char *frame;
569
570 /* This poisons the RX buffer to detect DMA failures. */
571
572 rxhdr = (struct b43_rxhdr_fw4 *)(skb->data);
573 rxhdr->frame_len = 0;
574
575 B43_WARN_ON(ring->rx_buffersize < ring->frameoffset + sizeof(struct b43_plcp_hdr6) + 2);
576 frame = skb->data + ring->frameoffset;
577 memset(frame, 0xFF, sizeof(struct b43_plcp_hdr6) + 2 /* padding */);
578}
579
558static int setup_rx_descbuffer(struct b43_dmaring *ring, 580static int setup_rx_descbuffer(struct b43_dmaring *ring,
559 struct b43_dmadesc_generic *desc, 581 struct b43_dmadesc_generic *desc,
560 struct b43_dmadesc_meta *meta, gfp_t gfp_flags) 582 struct b43_dmadesc_meta *meta, gfp_t gfp_flags)
561{ 583{
562 struct b43_rxhdr_fw4 *rxhdr;
563 dma_addr_t dmaaddr; 584 dma_addr_t dmaaddr;
564 struct sk_buff *skb; 585 struct sk_buff *skb;
565 586
@@ -568,6 +589,7 @@ static int setup_rx_descbuffer(struct b43_dmaring *ring,
568 skb = __dev_alloc_skb(ring->rx_buffersize, gfp_flags); 589 skb = __dev_alloc_skb(ring->rx_buffersize, gfp_flags);
569 if (unlikely(!skb)) 590 if (unlikely(!skb))
570 return -ENOMEM; 591 return -ENOMEM;
592 b43_poison_rx_buffer(ring, skb);
571 dmaaddr = map_descbuffer(ring, skb->data, ring->rx_buffersize, 0); 593 dmaaddr = map_descbuffer(ring, skb->data, ring->rx_buffersize, 0);
572 if (b43_dma_mapping_error(ring, dmaaddr, ring->rx_buffersize, 0)) { 594 if (b43_dma_mapping_error(ring, dmaaddr, ring->rx_buffersize, 0)) {
573 /* ugh. try to realloc in zone_dma */ 595 /* ugh. try to realloc in zone_dma */
@@ -578,6 +600,7 @@ static int setup_rx_descbuffer(struct b43_dmaring *ring,
578 skb = __dev_alloc_skb(ring->rx_buffersize, gfp_flags); 600 skb = __dev_alloc_skb(ring->rx_buffersize, gfp_flags);
579 if (unlikely(!skb)) 601 if (unlikely(!skb))
580 return -ENOMEM; 602 return -ENOMEM;
603 b43_poison_rx_buffer(ring, skb);
581 dmaaddr = map_descbuffer(ring, skb->data, 604 dmaaddr = map_descbuffer(ring, skb->data,
582 ring->rx_buffersize, 0); 605 ring->rx_buffersize, 0);
583 if (b43_dma_mapping_error(ring, dmaaddr, ring->rx_buffersize, 0)) { 606 if (b43_dma_mapping_error(ring, dmaaddr, ring->rx_buffersize, 0)) {
@@ -592,9 +615,6 @@ static int setup_rx_descbuffer(struct b43_dmaring *ring,
592 ring->ops->fill_descriptor(ring, desc, dmaaddr, 615 ring->ops->fill_descriptor(ring, desc, dmaaddr,
593 ring->rx_buffersize, 0, 0, 0); 616 ring->rx_buffersize, 0, 0, 0);
594 617
595 rxhdr = (struct b43_rxhdr_fw4 *)(skb->data);
596 rxhdr->frame_len = 0;
597
598 return 0; 618 return 0;
599} 619}
600 620
@@ -1483,12 +1503,17 @@ static void dma_rx(struct b43_dmaring *ring, int *slot)
1483 len = le16_to_cpu(rxhdr->frame_len); 1503 len = le16_to_cpu(rxhdr->frame_len);
1484 } while (len == 0 && i++ < 5); 1504 } while (len == 0 && i++ < 5);
1485 if (unlikely(len == 0)) { 1505 if (unlikely(len == 0)) {
1486 /* recycle the descriptor buffer. */ 1506 dmaaddr = meta->dmaaddr;
1487 sync_descbuffer_for_device(ring, meta->dmaaddr, 1507 goto drop_recycle_buffer;
1488 ring->rx_buffersize);
1489 goto drop;
1490 } 1508 }
1491 } 1509 }
1510 if (unlikely(b43_rx_buffer_is_poisoned(ring, skb))) {
1511 /* Something went wrong with the DMA.
1512 * The device did not touch the buffer and did not overwrite the poison. */
1513 b43dbg(ring->dev->wl, "DMA RX: Dropping poisoned buffer.\n");
1514 dmaaddr = meta->dmaaddr;
1515 goto drop_recycle_buffer;
1516 }
1492 if (unlikely(len > ring->rx_buffersize)) { 1517 if (unlikely(len > ring->rx_buffersize)) {
1493 /* The data did not fit into one descriptor buffer 1518 /* The data did not fit into one descriptor buffer
1494 * and is split over multiple buffers. 1519 * and is split over multiple buffers.
@@ -1501,6 +1526,7 @@ static void dma_rx(struct b43_dmaring *ring, int *slot)
1501 while (1) { 1526 while (1) {
1502 desc = ops->idx2desc(ring, *slot, &meta); 1527 desc = ops->idx2desc(ring, *slot, &meta);
1503 /* recycle the descriptor buffer. */ 1528 /* recycle the descriptor buffer. */
1529 b43_poison_rx_buffer(ring, meta->skb);
1504 sync_descbuffer_for_device(ring, meta->dmaaddr, 1530 sync_descbuffer_for_device(ring, meta->dmaaddr,
1505 ring->rx_buffersize); 1531 ring->rx_buffersize);
1506 *slot = next_slot(ring, *slot); 1532 *slot = next_slot(ring, *slot);
@@ -1519,8 +1545,7 @@ static void dma_rx(struct b43_dmaring *ring, int *slot)
1519 err = setup_rx_descbuffer(ring, desc, meta, GFP_ATOMIC); 1545 err = setup_rx_descbuffer(ring, desc, meta, GFP_ATOMIC);
1520 if (unlikely(err)) { 1546 if (unlikely(err)) {
1521 b43dbg(ring->dev->wl, "DMA RX: setup_rx_descbuffer() failed\n"); 1547 b43dbg(ring->dev->wl, "DMA RX: setup_rx_descbuffer() failed\n");
1522 sync_descbuffer_for_device(ring, dmaaddr, ring->rx_buffersize); 1548 goto drop_recycle_buffer;
1523 goto drop;
1524 } 1549 }
1525 1550
1526 unmap_descbuffer(ring, dmaaddr, ring->rx_buffersize, 0); 1551 unmap_descbuffer(ring, dmaaddr, ring->rx_buffersize, 0);
@@ -1530,6 +1555,11 @@ static void dma_rx(struct b43_dmaring *ring, int *slot)
1530 b43_rx(ring->dev, skb, rxhdr); 1555 b43_rx(ring->dev, skb, rxhdr);
1531drop: 1556drop:
1532 return; 1557 return;
1558
1559drop_recycle_buffer:
1560 /* Poison and recycle the RX buffer. */
1561 b43_poison_rx_buffer(ring, skb);
1562 sync_descbuffer_for_device(ring, dmaaddr, ring->rx_buffersize);
1533} 1563}
1534 1564
1535void b43_dma_rx(struct b43_dmaring *ring) 1565void b43_dma_rx(struct b43_dmaring *ring)
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index 4896e0831114..79b685e300c7 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -3974,6 +3974,11 @@ static void setup_struct_phy_for_init(struct b43_wldev *dev,
3974 phy->next_txpwr_check_time = jiffies; 3974 phy->next_txpwr_check_time = jiffies;
3975 /* PHY TX errors counter. */ 3975 /* PHY TX errors counter. */
3976 atomic_set(&phy->txerr_cnt, B43_PHY_TX_BADNESS_LIMIT); 3976 atomic_set(&phy->txerr_cnt, B43_PHY_TX_BADNESS_LIMIT);
3977
3978#if B43_DEBUG
3979 phy->phy_locked = 0;
3980 phy->radio_locked = 0;
3981#endif
3977} 3982}
3978 3983
3979static void setup_struct_wldev_for_init(struct b43_wldev *dev) 3984static void setup_struct_wldev_for_init(struct b43_wldev *dev)
diff --git a/drivers/net/wireless/b43/phy_common.c b/drivers/net/wireless/b43/phy_common.c
index 026b61c03fb9..e176b6e0d9cf 100644
--- a/drivers/net/wireless/b43/phy_common.c
+++ b/drivers/net/wireless/b43/phy_common.c
@@ -131,12 +131,16 @@ void b43_radio_lock(struct b43_wldev *dev)
131{ 131{
132 u32 macctl; 132 u32 macctl;
133 133
134#if B43_DEBUG
135 B43_WARN_ON(dev->phy.radio_locked);
136 dev->phy.radio_locked = 1;
137#endif
138
134 macctl = b43_read32(dev, B43_MMIO_MACCTL); 139 macctl = b43_read32(dev, B43_MMIO_MACCTL);
135 B43_WARN_ON(macctl & B43_MACCTL_RADIOLOCK);
136 macctl |= B43_MACCTL_RADIOLOCK; 140 macctl |= B43_MACCTL_RADIOLOCK;
137 b43_write32(dev, B43_MMIO_MACCTL, macctl); 141 b43_write32(dev, B43_MMIO_MACCTL, macctl);
138 /* Commit the write and wait for the device 142 /* Commit the write and wait for the firmware
139 * to exit any radio register access. */ 143 * to finish any radio register access. */
140 b43_read32(dev, B43_MMIO_MACCTL); 144 b43_read32(dev, B43_MMIO_MACCTL);
141 udelay(10); 145 udelay(10);
142} 146}
@@ -145,11 +149,15 @@ void b43_radio_unlock(struct b43_wldev *dev)
145{ 149{
146 u32 macctl; 150 u32 macctl;
147 151
152#if B43_DEBUG
153 B43_WARN_ON(!dev->phy.radio_locked);
154 dev->phy.radio_locked = 0;
155#endif
156
148 /* Commit any write */ 157 /* Commit any write */
149 b43_read16(dev, B43_MMIO_PHY_VER); 158 b43_read16(dev, B43_MMIO_PHY_VER);
150 /* unlock */ 159 /* unlock */
151 macctl = b43_read32(dev, B43_MMIO_MACCTL); 160 macctl = b43_read32(dev, B43_MMIO_MACCTL);
152 B43_WARN_ON(!(macctl & B43_MACCTL_RADIOLOCK));
153 macctl &= ~B43_MACCTL_RADIOLOCK; 161 macctl &= ~B43_MACCTL_RADIOLOCK;
154 b43_write32(dev, B43_MMIO_MACCTL, macctl); 162 b43_write32(dev, B43_MMIO_MACCTL, macctl);
155} 163}
diff --git a/drivers/net/wireless/b43/phy_common.h b/drivers/net/wireless/b43/phy_common.h
index c9f5430d1d7d..b2d99101947b 100644
--- a/drivers/net/wireless/b43/phy_common.h
+++ b/drivers/net/wireless/b43/phy_common.h
@@ -245,8 +245,10 @@ struct b43_phy {
245 atomic_t txerr_cnt; 245 atomic_t txerr_cnt;
246 246
247#ifdef CONFIG_B43_DEBUG 247#ifdef CONFIG_B43_DEBUG
248 /* PHY registers locked by b43_phy_lock()? */ 248 /* PHY registers locked (w.r.t. firmware) */
249 bool phy_locked; 249 bool phy_locked;
250 /* Radio registers locked (w.r.t. firmware) */
251 bool radio_locked;
250#endif /* B43_DEBUG */ 252#endif /* B43_DEBUG */
251}; 253};
252 254
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c
index 2399328e8de7..527525cc0919 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.c
@@ -1192,7 +1192,7 @@ int iwl3945_hw_nic_init(struct iwl_priv *priv)
1192 return -ENOMEM; 1192 return -ENOMEM;
1193 } 1193 }
1194 } else 1194 } else
1195 iwl_rx_queue_reset(priv, rxq); 1195 iwl3945_rx_queue_reset(priv, rxq);
1196 1196
1197 iwl3945_rx_replenish(priv); 1197 iwl3945_rx_replenish(priv);
1198 1198
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.h b/drivers/net/wireless/iwlwifi/iwl-3945.h
index ab7aaf6872c7..55188844657b 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.h
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.h
@@ -215,6 +215,7 @@ extern int iwl3945_calc_sig_qual(int rssi_dbm, int noise_dbm);
215extern int iwl3945_tx_queue_init(struct iwl_priv *priv, 215extern int iwl3945_tx_queue_init(struct iwl_priv *priv,
216 struct iwl_tx_queue *txq, int count, u32 id); 216 struct iwl_tx_queue *txq, int count, u32 id);
217extern void iwl3945_rx_replenish(void *data); 217extern void iwl3945_rx_replenish(void *data);
218extern void iwl3945_rx_queue_reset(struct iwl_priv *priv, struct iwl_rx_queue *rxq);
218extern void iwl3945_tx_queue_free(struct iwl_priv *priv, struct iwl_tx_queue *txq); 219extern void iwl3945_tx_queue_free(struct iwl_priv *priv, struct iwl_tx_queue *txq);
219extern int iwl3945_send_cmd_pdu(struct iwl_priv *priv, u8 id, u16 len, 220extern int iwl3945_send_cmd_pdu(struct iwl_priv *priv, u8 id, u16 len,
220 const void *data); 221 const void *data);
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 3889158b359c..1ef4192207a5 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -976,11 +976,9 @@ void iwl_rx_handle(struct iwl_priv *priv)
976 976
977 rxq->queue[i] = NULL; 977 rxq->queue[i] = NULL;
978 978
979 dma_sync_single_range_for_cpu( 979 pci_unmap_single(priv->pci_dev, rxb->real_dma_addr,
980 &priv->pci_dev->dev, rxb->real_dma_addr, 980 priv->hw_params.rx_buf_size + 256,
981 rxb->aligned_dma_addr - rxb->real_dma_addr, 981 PCI_DMA_FROMDEVICE);
982 priv->hw_params.rx_buf_size,
983 PCI_DMA_FROMDEVICE);
984 pkt = (struct iwl_rx_packet *)rxb->skb->data; 982 pkt = (struct iwl_rx_packet *)rxb->skb->data;
985 983
986 /* Reclaim a command buffer only if this packet is a response 984 /* Reclaim a command buffer only if this packet is a response
@@ -1031,9 +1029,6 @@ void iwl_rx_handle(struct iwl_priv *priv)
1031 rxb->skb = NULL; 1029 rxb->skb = NULL;
1032 } 1030 }
1033 1031
1034 pci_unmap_single(priv->pci_dev, rxb->real_dma_addr,
1035 priv->hw_params.rx_buf_size + 256,
1036 PCI_DMA_FROMDEVICE);
1037 spin_lock_irqsave(&rxq->lock, flags); 1032 spin_lock_irqsave(&rxq->lock, flags);
1038 list_add_tail(&rxb->list, &priv->rxq.rx_used); 1033 list_add_tail(&rxb->list, &priv->rxq.rx_used);
1039 spin_unlock_irqrestore(&rxq->lock, flags); 1034 spin_unlock_irqrestore(&rxq->lock, flags);
diff --git a/drivers/net/wireless/iwlwifi/iwl-csr.h b/drivers/net/wireless/iwlwifi/iwl-csr.h
index 2f1242447b3b..6e983149b83b 100644
--- a/drivers/net/wireless/iwlwifi/iwl-csr.h
+++ b/drivers/net/wireless/iwlwifi/iwl-csr.h
@@ -223,7 +223,7 @@
223#define CSR_EEPROM_REG_MSK_DATA (0xFFFF0000) 223#define CSR_EEPROM_REG_MSK_DATA (0xFFFF0000)
224 224
225/* EEPROM GP */ 225/* EEPROM GP */
226#define CSR_EEPROM_GP_VALID_MSK (0x00000006) 226#define CSR_EEPROM_GP_VALID_MSK (0x00000007)
227#define CSR_EEPROM_GP_BAD_SIGNATURE (0x00000000) 227#define CSR_EEPROM_GP_BAD_SIGNATURE (0x00000000)
228#define CSR_EEPROM_GP_IF_OWNER_MSK (0x00000180) 228#define CSR_EEPROM_GP_IF_OWNER_MSK (0x00000180)
229 229
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index ec9a13846edd..cf7f0db58fcf 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -360,12 +360,16 @@ struct iwl_host_cmd {
360 360
361/** 361/**
362 * struct iwl_rx_queue - Rx queue 362 * struct iwl_rx_queue - Rx queue
363 * @bd: driver's pointer to buffer of receive buffer descriptors (rbd)
364 * @dma_addr: bus address of buffer of receive buffer descriptors (rbd)
363 * @read: Shared index to newest available Rx buffer 365 * @read: Shared index to newest available Rx buffer
364 * @write: Shared index to oldest written Rx packet 366 * @write: Shared index to oldest written Rx packet
365 * @free_count: Number of pre-allocated buffers in rx_free 367 * @free_count: Number of pre-allocated buffers in rx_free
366 * @rx_free: list of free SKBs for use 368 * @rx_free: list of free SKBs for use
367 * @rx_used: List of Rx buffers with no SKB 369 * @rx_used: List of Rx buffers with no SKB
368 * @need_update: flag to indicate we need to update read/write index 370 * @need_update: flag to indicate we need to update read/write index
371 * @rb_stts: driver's pointer to receive buffer status
372 * @rb_stts_dma: bus address of receive buffer status
369 * 373 *
370 * NOTE: rx_free and rx_used are used as a FIFO for iwl_rx_mem_buffers 374 * NOTE: rx_free and rx_used are used as a FIFO for iwl_rx_mem_buffers
371 */ 375 */
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c
index 1f117a49c569..71d5b8a1a73e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
@@ -799,6 +799,22 @@ int iwl_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
799 /* Copy MAC header from skb into command buffer */ 799 /* Copy MAC header from skb into command buffer */
800 memcpy(tx_cmd->hdr, hdr, hdr_len); 800 memcpy(tx_cmd->hdr, hdr, hdr_len);
801 801
802
803 /* Total # bytes to be transmitted */
804 len = (u16)skb->len;
805 tx_cmd->len = cpu_to_le16(len);
806
807 if (info->control.hw_key)
808 iwl_tx_cmd_build_hwcrypto(priv, info, tx_cmd, skb, sta_id);
809
810 /* TODO need this for burst mode later on */
811 iwl_tx_cmd_build_basic(priv, tx_cmd, info, hdr, sta_id);
812
813 /* set is_hcca to 0; it probably will never be implemented */
814 iwl_tx_cmd_build_rate(priv, tx_cmd, info, fc, sta_id, 0);
815
816 iwl_update_tx_stats(priv, le16_to_cpu(fc), len);
817
802 /* 818 /*
803 * Use the first empty entry in this queue's command buffer array 819 * Use the first empty entry in this queue's command buffer array
804 * to contain the Tx command and MAC header concatenated together 820 * to contain the Tx command and MAC header concatenated together
@@ -819,21 +835,30 @@ int iwl_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
819 else 835 else
820 len_org = 0; 836 len_org = 0;
821 837
838 /* Tell NIC about any 2-byte padding after MAC header */
839 if (len_org)
840 tx_cmd->tx_flags |= TX_CMD_FLG_MH_PAD_MSK;
841
822 /* Physical address of this Tx command's header (not MAC header!), 842 /* Physical address of this Tx command's header (not MAC header!),
823 * within command buffer array. */ 843 * within command buffer array. */
824 txcmd_phys = pci_map_single(priv->pci_dev, 844 txcmd_phys = pci_map_single(priv->pci_dev,
825 out_cmd, sizeof(struct iwl_cmd), 845 &out_cmd->hdr, len,
826 PCI_DMA_BIDIRECTIONAL); 846 PCI_DMA_BIDIRECTIONAL);
827 pci_unmap_addr_set(&out_cmd->meta, mapping, txcmd_phys); 847 pci_unmap_addr_set(&out_cmd->meta, mapping, txcmd_phys);
828 pci_unmap_len_set(&out_cmd->meta, len, sizeof(struct iwl_cmd)); 848 pci_unmap_len_set(&out_cmd->meta, len, len);
829 /* Add buffer containing Tx command and MAC(!) header to TFD's 849 /* Add buffer containing Tx command and MAC(!) header to TFD's
830 * first entry */ 850 * first entry */
831 txcmd_phys += offsetof(struct iwl_cmd, hdr);
832 priv->cfg->ops->lib->txq_attach_buf_to_tfd(priv, txq, 851 priv->cfg->ops->lib->txq_attach_buf_to_tfd(priv, txq,
833 txcmd_phys, len, 1, 0); 852 txcmd_phys, len, 1, 0);
834 853
835 if (info->control.hw_key) 854 if (!ieee80211_has_morefrags(hdr->frame_control)) {
836 iwl_tx_cmd_build_hwcrypto(priv, info, tx_cmd, skb, sta_id); 855 txq->need_update = 1;
856 if (qc)
857 priv->stations[sta_id].tid[tid].seq_number = seq_number;
858 } else {
859 wait_write_ptr = 1;
860 txq->need_update = 0;
861 }
837 862
838 /* Set up TFD's 2nd entry to point directly to remainder of skb, 863 /* Set up TFD's 2nd entry to point directly to remainder of skb,
839 * if any (802.11 null frames have no payload). */ 864 * if any (802.11 null frames have no payload). */
@@ -846,41 +871,29 @@ int iwl_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
846 0, 0); 871 0, 0);
847 } 872 }
848 873
849 /* Tell NIC about any 2-byte padding after MAC header */
850 if (len_org)
851 tx_cmd->tx_flags |= TX_CMD_FLG_MH_PAD_MSK;
852
853 /* Total # bytes to be transmitted */
854 len = (u16)skb->len;
855 tx_cmd->len = cpu_to_le16(len);
856 /* TODO need this for burst mode later on */
857 iwl_tx_cmd_build_basic(priv, tx_cmd, info, hdr, sta_id);
858
859 /* set is_hcca to 0; it probably will never be implemented */
860 iwl_tx_cmd_build_rate(priv, tx_cmd, info, fc, sta_id, 0);
861
862 iwl_update_tx_stats(priv, le16_to_cpu(fc), len);
863
864 scratch_phys = txcmd_phys + sizeof(struct iwl_cmd_header) + 874 scratch_phys = txcmd_phys + sizeof(struct iwl_cmd_header) +
865 offsetof(struct iwl_tx_cmd, scratch); 875 offsetof(struct iwl_tx_cmd, scratch);
876
877 len = sizeof(struct iwl_tx_cmd) +
878 sizeof(struct iwl_cmd_header) + hdr_len;
879 /* take back ownership of DMA buffer to enable update */
880 pci_dma_sync_single_for_cpu(priv->pci_dev, txcmd_phys,
881 len, PCI_DMA_BIDIRECTIONAL);
866 tx_cmd->dram_lsb_ptr = cpu_to_le32(scratch_phys); 882 tx_cmd->dram_lsb_ptr = cpu_to_le32(scratch_phys);
867 tx_cmd->dram_msb_ptr = iwl_get_dma_hi_addr(scratch_phys); 883 tx_cmd->dram_msb_ptr = iwl_get_dma_hi_addr(scratch_phys);
868 884
869 if (!ieee80211_has_morefrags(hdr->frame_control)) { 885 IWL_DEBUG_TX(priv, "sequence nr = 0X%x \n",
870 txq->need_update = 1; 886 le16_to_cpu(out_cmd->hdr.sequence));
871 if (qc) 887 IWL_DEBUG_TX(priv, "tx_flags = 0X%x \n", le32_to_cpu(tx_cmd->tx_flags));
872 priv->stations[sta_id].tid[tid].seq_number = seq_number;
873 } else {
874 wait_write_ptr = 1;
875 txq->need_update = 0;
876 }
877
878 iwl_print_hex_dump(priv, IWL_DL_TX, (u8 *)tx_cmd, sizeof(*tx_cmd)); 888 iwl_print_hex_dump(priv, IWL_DL_TX, (u8 *)tx_cmd, sizeof(*tx_cmd));
879
880 iwl_print_hex_dump(priv, IWL_DL_TX, (u8 *)tx_cmd->hdr, hdr_len); 889 iwl_print_hex_dump(priv, IWL_DL_TX, (u8 *)tx_cmd->hdr, hdr_len);
881 890
882 /* Set up entry for this TFD in Tx byte-count array */ 891 /* Set up entry for this TFD in Tx byte-count array */
883 priv->cfg->ops->lib->txq_update_byte_cnt_tbl(priv, txq, len); 892 priv->cfg->ops->lib->txq_update_byte_cnt_tbl(priv, txq,
893 le16_to_cpu(tx_cmd->len));
894
895 pci_dma_sync_single_for_device(priv->pci_dev, txcmd_phys,
896 len, PCI_DMA_BIDIRECTIONAL);
884 897
885 /* Tell device the write index *just past* this latest filled TFD */ 898 /* Tell device the write index *just past* this latest filled TFD */
886 q->write_ptr = iwl_queue_inc_wrap(q->write_ptr, q->n_bd); 899 q->write_ptr = iwl_queue_inc_wrap(q->write_ptr, q->n_bd);
@@ -968,18 +981,9 @@ int iwl_enqueue_hcmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
968 INDEX_TO_SEQ(q->write_ptr)); 981 INDEX_TO_SEQ(q->write_ptr));
969 if (out_cmd->meta.flags & CMD_SIZE_HUGE) 982 if (out_cmd->meta.flags & CMD_SIZE_HUGE)
970 out_cmd->hdr.sequence |= SEQ_HUGE_FRAME; 983 out_cmd->hdr.sequence |= SEQ_HUGE_FRAME;
971 len = (idx == TFD_CMD_SLOTS) ? 984 len = sizeof(struct iwl_cmd) - sizeof(struct iwl_cmd_meta);
972 IWL_MAX_SCAN_SIZE : sizeof(struct iwl_cmd); 985 len += (idx == TFD_CMD_SLOTS) ? IWL_MAX_SCAN_SIZE : 0;
973
974 phys_addr = pci_map_single(priv->pci_dev, out_cmd,
975 len, PCI_DMA_BIDIRECTIONAL);
976 pci_unmap_addr_set(&out_cmd->meta, mapping, phys_addr);
977 pci_unmap_len_set(&out_cmd->meta, len, len);
978 phys_addr += offsetof(struct iwl_cmd, hdr);
979 986
980 priv->cfg->ops->lib->txq_attach_buf_to_tfd(priv, txq,
981 phys_addr, fix_size, 1,
982 U32_PAD(cmd->len));
983 987
984#ifdef CONFIG_IWLWIFI_DEBUG 988#ifdef CONFIG_IWLWIFI_DEBUG
985 switch (out_cmd->hdr.cmd) { 989 switch (out_cmd->hdr.cmd) {
@@ -1007,6 +1011,15 @@ int iwl_enqueue_hcmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
1007 /* Set up entry in queue's byte count circular buffer */ 1011 /* Set up entry in queue's byte count circular buffer */
1008 priv->cfg->ops->lib->txq_update_byte_cnt_tbl(priv, txq, 0); 1012 priv->cfg->ops->lib->txq_update_byte_cnt_tbl(priv, txq, 0);
1009 1013
1014 phys_addr = pci_map_single(priv->pci_dev, &out_cmd->hdr,
1015 fix_size, PCI_DMA_BIDIRECTIONAL);
1016 pci_unmap_addr_set(&out_cmd->meta, mapping, phys_addr);
1017 pci_unmap_len_set(&out_cmd->meta, len, fix_size);
1018
1019 priv->cfg->ops->lib->txq_attach_buf_to_tfd(priv, txq,
1020 phys_addr, fix_size, 1,
1021 U32_PAD(cmd->len));
1022
1010 /* Increment and update queue's write index */ 1023 /* Increment and update queue's write index */
1011 q->write_ptr = iwl_queue_inc_wrap(q->write_ptr, q->n_bd); 1024 q->write_ptr = iwl_queue_inc_wrap(q->write_ptr, q->n_bd);
1012 ret = iwl_txq_update_write_ptr(priv, txq); 1025 ret = iwl_txq_update_write_ptr(priv, txq);
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index ce729281ff62..617c4235d971 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -972,7 +972,7 @@ static int iwl3945_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
972 dma_addr_t phys_addr; 972 dma_addr_t phys_addr;
973 dma_addr_t txcmd_phys; 973 dma_addr_t txcmd_phys;
974 int txq_id = skb_get_queue_mapping(skb); 974 int txq_id = skb_get_queue_mapping(skb);
975 u16 len, idx, len_org, hdr_len; 975 u16 len, idx, len_org, hdr_len; /* TODO: len_org is not used */
976 u8 id; 976 u8 id;
977 u8 unicast; 977 u8 unicast;
978 u8 sta_id; 978 u8 sta_id;
@@ -1074,6 +1074,40 @@ static int iwl3945_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
1074 /* Copy MAC header from skb into command buffer */ 1074 /* Copy MAC header from skb into command buffer */
1075 memcpy(tx->hdr, hdr, hdr_len); 1075 memcpy(tx->hdr, hdr, hdr_len);
1076 1076
1077
1078 if (info->control.hw_key)
1079 iwl3945_build_tx_cmd_hwcrypto(priv, info, out_cmd, skb, sta_id);
1080
1081 /* TODO need this for burst mode later on */
1082 iwl3945_build_tx_cmd_basic(priv, out_cmd, info, hdr, sta_id);
1083
1084 /* set is_hcca to 0; it probably will never be implemented */
1085 iwl3945_hw_build_tx_cmd_rate(priv, out_cmd, info, hdr, sta_id, 0);
1086
1087 /* Total # bytes to be transmitted */
1088 len = (u16)skb->len;
1089 tx->len = cpu_to_le16(len);
1090
1091
1092 tx->tx_flags &= ~TX_CMD_FLG_ANT_A_MSK;
1093 tx->tx_flags &= ~TX_CMD_FLG_ANT_B_MSK;
1094
1095 if (!ieee80211_has_morefrags(hdr->frame_control)) {
1096 txq->need_update = 1;
1097 if (qc)
1098 priv->stations_39[sta_id].tid[tid].seq_number = seq_number;
1099 } else {
1100 wait_write_ptr = 1;
1101 txq->need_update = 0;
1102 }
1103
1104 IWL_DEBUG_TX(priv, "sequence nr = 0X%x \n",
1105 le16_to_cpu(out_cmd->hdr.sequence));
1106 IWL_DEBUG_TX(priv, "tx_flags = 0X%x \n", le32_to_cpu(tx->tx_flags));
1107 iwl_print_hex_dump(priv, IWL_DL_TX, tx, sizeof(*tx));
1108 iwl_print_hex_dump(priv, IWL_DL_TX, (u8 *)tx->hdr,
1109 ieee80211_hdrlen(fc));
1110
1077 /* 1111 /*
1078 * Use the first empty entry in this queue's command buffer array 1112 * Use the first empty entry in this queue's command buffer array
1079 * to contain the Tx command and MAC header concatenated together 1113 * to contain the Tx command and MAC header concatenated together
@@ -1096,22 +1130,18 @@ static int iwl3945_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
1096 1130
1097 /* Physical address of this Tx command's header (not MAC header!), 1131 /* Physical address of this Tx command's header (not MAC header!),
1098 * within command buffer array. */ 1132 * within command buffer array. */
1099 txcmd_phys = pci_map_single(priv->pci_dev, 1133 txcmd_phys = pci_map_single(priv->pci_dev, &out_cmd->hdr,
1100 out_cmd, sizeof(struct iwl_cmd), 1134 len, PCI_DMA_TODEVICE);
1101 PCI_DMA_TODEVICE); 1135 /* we do not map meta data ... so we can safely access address to
1136 * provide to unmap command*/
1102 pci_unmap_addr_set(&out_cmd->meta, mapping, txcmd_phys); 1137 pci_unmap_addr_set(&out_cmd->meta, mapping, txcmd_phys);
1103 pci_unmap_len_set(&out_cmd->meta, len, sizeof(struct iwl_cmd)); 1138 pci_unmap_len_set(&out_cmd->meta, len, len);
1104 /* Add buffer containing Tx command and MAC(!) header to TFD's
1105 * first entry */
1106 txcmd_phys += offsetof(struct iwl_cmd, hdr);
1107 1139
1108 /* Add buffer containing Tx command and MAC(!) header to TFD's 1140 /* Add buffer containing Tx command and MAC(!) header to TFD's
1109 * first entry */ 1141 * first entry */
1110 priv->cfg->ops->lib->txq_attach_buf_to_tfd(priv, txq, 1142 priv->cfg->ops->lib->txq_attach_buf_to_tfd(priv, txq,
1111 txcmd_phys, len, 1, 0); 1143 txcmd_phys, len, 1, 0);
1112 1144
1113 if (info->control.hw_key)
1114 iwl3945_build_tx_cmd_hwcrypto(priv, info, out_cmd, skb, sta_id);
1115 1145
1116 /* Set up TFD's 2nd entry to point directly to remainder of skb, 1146 /* Set up TFD's 2nd entry to point directly to remainder of skb,
1117 * if any (802.11 null frames have no payload). */ 1147 * if any (802.11 null frames have no payload). */
@@ -1124,32 +1154,6 @@ static int iwl3945_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
1124 0, U32_PAD(len)); 1154 0, U32_PAD(len));
1125 } 1155 }
1126 1156
1127 /* Total # bytes to be transmitted */
1128 len = (u16)skb->len;
1129 tx->len = cpu_to_le16(len);
1130
1131 /* TODO need this for burst mode later on */
1132 iwl3945_build_tx_cmd_basic(priv, out_cmd, info, hdr, sta_id);
1133
1134 /* set is_hcca to 0; it probably will never be implemented */
1135 iwl3945_hw_build_tx_cmd_rate(priv, out_cmd, info, hdr, sta_id, 0);
1136
1137 tx->tx_flags &= ~TX_CMD_FLG_ANT_A_MSK;
1138 tx->tx_flags &= ~TX_CMD_FLG_ANT_B_MSK;
1139
1140 if (!ieee80211_has_morefrags(hdr->frame_control)) {
1141 txq->need_update = 1;
1142 if (qc)
1143 priv->stations_39[sta_id].tid[tid].seq_number = seq_number;
1144 } else {
1145 wait_write_ptr = 1;
1146 txq->need_update = 0;
1147 }
1148
1149 iwl_print_hex_dump(priv, IWL_DL_TX, tx, sizeof(*tx));
1150
1151 iwl_print_hex_dump(priv, IWL_DL_TX, (u8 *)tx->hdr,
1152 ieee80211_hdrlen(fc));
1153 1157
1154 /* Tell device the write index *just past* this latest filled TFD */ 1158 /* Tell device the write index *just past* this latest filled TFD */
1155 q->write_ptr = iwl_queue_inc_wrap(q->write_ptr, q->n_bd); 1159 q->write_ptr = iwl_queue_inc_wrap(q->write_ptr, q->n_bd);
@@ -1661,6 +1665,37 @@ static void iwl3945_rx_allocate(struct iwl_priv *priv)
1661 spin_unlock_irqrestore(&rxq->lock, flags); 1665 spin_unlock_irqrestore(&rxq->lock, flags);
1662} 1666}
1663 1667
1668void iwl3945_rx_queue_reset(struct iwl_priv *priv, struct iwl_rx_queue *rxq)
1669{
1670 unsigned long flags;
1671 int i;
1672 spin_lock_irqsave(&rxq->lock, flags);
1673 INIT_LIST_HEAD(&rxq->rx_free);
1674 INIT_LIST_HEAD(&rxq->rx_used);
1675 /* Fill the rx_used queue with _all_ of the Rx buffers */
1676 for (i = 0; i < RX_FREE_BUFFERS + RX_QUEUE_SIZE; i++) {
1677 /* In the reset function, these buffers may have been allocated
1678 * to an SKB, so we need to unmap and free potential storage */
1679 if (rxq->pool[i].skb != NULL) {
1680 pci_unmap_single(priv->pci_dev,
1681 rxq->pool[i].real_dma_addr,
1682 priv->hw_params.rx_buf_size,
1683 PCI_DMA_FROMDEVICE);
1684 priv->alloc_rxb_skb--;
1685 dev_kfree_skb(rxq->pool[i].skb);
1686 rxq->pool[i].skb = NULL;
1687 }
1688 list_add_tail(&rxq->pool[i].list, &rxq->rx_used);
1689 }
1690
1691 /* Set us so that we have processed and used all buffers, but have
1692 * not restocked the Rx queue with fresh buffers */
1693 rxq->read = rxq->write = 0;
1694 rxq->free_count = 0;
1695 spin_unlock_irqrestore(&rxq->lock, flags);
1696}
1697EXPORT_SYMBOL(iwl3945_rx_queue_reset);
1698
1664/* 1699/*
1665 * this should be called while priv->lock is locked 1700 * this should be called while priv->lock is locked
1666 */ 1701 */
@@ -1685,6 +1720,34 @@ void iwl3945_rx_replenish(void *data)
1685 spin_unlock_irqrestore(&priv->lock, flags); 1720 spin_unlock_irqrestore(&priv->lock, flags);
1686} 1721}
1687 1722
1723/* Assumes that the skb field of the buffers in 'pool' is kept accurate.
1724 * If an SKB has been detached, the POOL needs to have its SKB set to NULL
1725 * This free routine walks the list of POOL entries and if SKB is set to
1726 * non NULL it is unmapped and freed
1727 */
1728static void iwl3945_rx_queue_free(struct iwl_priv *priv, struct iwl_rx_queue *rxq)
1729{
1730 int i;
1731 for (i = 0; i < RX_QUEUE_SIZE + RX_FREE_BUFFERS; i++) {
1732 if (rxq->pool[i].skb != NULL) {
1733 pci_unmap_single(priv->pci_dev,
1734 rxq->pool[i].real_dma_addr,
1735 priv->hw_params.rx_buf_size,
1736 PCI_DMA_FROMDEVICE);
1737 dev_kfree_skb(rxq->pool[i].skb);
1738 }
1739 }
1740
1741 pci_free_consistent(priv->pci_dev, 4 * RX_QUEUE_SIZE, rxq->bd,
1742 rxq->dma_addr);
1743 pci_free_consistent(priv->pci_dev, sizeof(struct iwl_rb_status),
1744 rxq->rb_stts, rxq->rb_stts_dma);
1745 rxq->bd = NULL;
1746 rxq->rb_stts = NULL;
1747}
1748EXPORT_SYMBOL(iwl3945_rx_queue_free);
1749
1750
1688/* Convert linear signal-to-noise ratio into dB */ 1751/* Convert linear signal-to-noise ratio into dB */
1689static u8 ratio2dB[100] = { 1752static u8 ratio2dB[100] = {
1690/* 0 1 2 3 4 5 6 7 8 9 */ 1753/* 0 1 2 3 4 5 6 7 8 9 */
@@ -1802,9 +1865,9 @@ static void iwl3945_rx_handle(struct iwl_priv *priv)
1802 1865
1803 rxq->queue[i] = NULL; 1866 rxq->queue[i] = NULL;
1804 1867
1805 pci_dma_sync_single_for_cpu(priv->pci_dev, rxb->real_dma_addr, 1868 pci_unmap_single(priv->pci_dev, rxb->real_dma_addr,
1806 priv->hw_params.rx_buf_size, 1869 priv->hw_params.rx_buf_size,
1807 PCI_DMA_FROMDEVICE); 1870 PCI_DMA_FROMDEVICE);
1808 pkt = (struct iwl_rx_packet *)rxb->skb->data; 1871 pkt = (struct iwl_rx_packet *)rxb->skb->data;
1809 1872
1810 /* Reclaim a command buffer only if this packet is a response 1873 /* Reclaim a command buffer only if this packet is a response
@@ -1852,9 +1915,6 @@ static void iwl3945_rx_handle(struct iwl_priv *priv)
1852 rxb->skb = NULL; 1915 rxb->skb = NULL;
1853 } 1916 }
1854 1917
1855 pci_unmap_single(priv->pci_dev, rxb->real_dma_addr,
1856 priv->hw_params.rx_buf_size,
1857 PCI_DMA_FROMDEVICE);
1858 spin_lock_irqsave(&rxq->lock, flags); 1918 spin_lock_irqsave(&rxq->lock, flags);
1859 list_add_tail(&rxb->list, &priv->rxq.rx_used); 1919 list_add_tail(&rxb->list, &priv->rxq.rx_used);
1860 spin_unlock_irqrestore(&rxq->lock, flags); 1920 spin_unlock_irqrestore(&rxq->lock, flags);
@@ -4075,7 +4135,7 @@ static int iwl3945_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
4075 if (!static_key) { 4135 if (!static_key) {
4076 sta_id = iwl3945_hw_find_station(priv, addr); 4136 sta_id = iwl3945_hw_find_station(priv, addr);
4077 if (sta_id == IWL_INVALID_STATION) { 4137 if (sta_id == IWL_INVALID_STATION) {
4078 IWL_DEBUG_MAC80211(priv, "leave - %pMnot in station map.\n", 4138 IWL_DEBUG_MAC80211(priv, "leave - %pM not in station map.\n",
4079 addr); 4139 addr);
4080 return -EINVAL; 4140 return -EINVAL;
4081 } 4141 }
@@ -4913,6 +4973,8 @@ static int iwl3945_setup_mac(struct iwl_priv *priv)
4913 4973
4914 hw->wiphy->custom_regulatory = true; 4974 hw->wiphy->custom_regulatory = true;
4915 4975
4976 hw->wiphy->max_scan_ssids = 1; /* WILL FIX */
4977
4916 /* Default value; 4 EDCA QOS priorities */ 4978 /* Default value; 4 EDCA QOS priorities */
4917 hw->queues = 4; 4979 hw->queues = 4;
4918 4980
@@ -5194,12 +5256,12 @@ static void __devexit iwl3945_pci_remove(struct pci_dev *pdev)
5194 sysfs_remove_group(&pdev->dev.kobj, &iwl3945_attribute_group); 5256 sysfs_remove_group(&pdev->dev.kobj, &iwl3945_attribute_group);
5195 5257
5196 iwl_rfkill_unregister(priv); 5258 iwl_rfkill_unregister(priv);
5197 cancel_delayed_work(&priv->rfkill_poll); 5259 cancel_delayed_work_sync(&priv->rfkill_poll);
5198 5260
5199 iwl3945_dealloc_ucode_pci(priv); 5261 iwl3945_dealloc_ucode_pci(priv);
5200 5262
5201 if (priv->rxq.bd) 5263 if (priv->rxq.bd)
5202 iwl_rx_queue_free(priv, &priv->rxq); 5264 iwl3945_rx_queue_free(priv, &priv->rxq);
5203 iwl3945_hw_txq_ctx_free(priv); 5265 iwl3945_hw_txq_ctx_free(priv);
5204 5266
5205 iwl3945_unset_hw_params(priv); 5267 iwl3945_unset_hw_params(priv);
diff --git a/drivers/net/wireless/libertas/rx.c b/drivers/net/wireless/libertas/rx.c
index 63d7e19ce9bd..8e669775cb5d 100644
--- a/drivers/net/wireless/libertas/rx.c
+++ b/drivers/net/wireless/libertas/rx.c
@@ -170,6 +170,7 @@ int lbs_process_rxed_packet(struct lbs_private *priv, struct sk_buff *skb)
170 lbs_deb_rx("rx err: frame received with bad length\n"); 170 lbs_deb_rx("rx err: frame received with bad length\n");
171 dev->stats.rx_length_errors++; 171 dev->stats.rx_length_errors++;
172 ret = 0; 172 ret = 0;
173 dev_kfree_skb(skb);
173 goto done; 174 goto done;
174 } 175 }
175 176
@@ -181,6 +182,7 @@ int lbs_process_rxed_packet(struct lbs_private *priv, struct sk_buff *skb)
181 lbs_pr_alert("rxpd not ok\n"); 182 lbs_pr_alert("rxpd not ok\n");
182 dev->stats.rx_errors++; 183 dev->stats.rx_errors++;
183 ret = 0; 184 ret = 0;
185 dev_kfree_skb(skb);
184 goto done; 186 goto done;
185 } 187 }
186 188
diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c
index 57a0268d1bae..a9a970469c2a 100644
--- a/drivers/net/wireless/mwl8k.c
+++ b/drivers/net/wireless/mwl8k.c
@@ -893,8 +893,7 @@ static int mwl8k_rxq_init(struct ieee80211_hw *hw, int index)
893 rx_desc->next_rx_desc_phys_addr = 893 rx_desc->next_rx_desc_phys_addr =
894 cpu_to_le32(rxq->rx_desc_dma 894 cpu_to_le32(rxq->rx_desc_dma
895 + nexti * sizeof(*rx_desc)); 895 + nexti * sizeof(*rx_desc));
896 rx_desc->rx_ctrl = 896 rx_desc->rx_ctrl = MWL8K_RX_CTRL_OWNED_BY_HOST;
897 cpu_to_le32(MWL8K_RX_CTRL_OWNED_BY_HOST);
898 } 897 }
899 898
900 return 0; 899 return 0;
@@ -3720,12 +3719,12 @@ err_free_reg:
3720 return rc; 3719 return rc;
3721} 3720}
3722 3721
3723static void __devexit mwl8k_remove(struct pci_dev *pdev) 3722static void __devexit mwl8k_shutdown(struct pci_dev *pdev)
3724{ 3723{
3725 printk(KERN_ERR "===>%s(%u)\n", __func__, __LINE__); 3724 printk(KERN_ERR "===>%s(%u)\n", __func__, __LINE__);
3726} 3725}
3727 3726
3728static void __devexit mwl8k_shutdown(struct pci_dev *pdev) 3727static void __devexit mwl8k_remove(struct pci_dev *pdev)
3729{ 3728{
3730 struct ieee80211_hw *hw = pci_get_drvdata(pdev); 3729 struct ieee80211_hw *hw = pci_get_drvdata(pdev);
3731 struct mwl8k_priv *priv; 3730 struct mwl8k_priv *priv;
diff --git a/drivers/net/wireless/orinoco/hw.c b/drivers/net/wireless/orinoco/hw.c
index 081428d9409e..632fac86a308 100644
--- a/drivers/net/wireless/orinoco/hw.c
+++ b/drivers/net/wireless/orinoco/hw.c
@@ -372,15 +372,13 @@ int __orinoco_hw_set_tkip_key(hermes_t *hw, int key_idx, int set_tx,
372 } 372 }
373 373
374 /* Wait upto 100ms for tx queue to empty */ 374 /* Wait upto 100ms for tx queue to empty */
375 k = 100; 375 for (k = 100; k > 0; k--) {
376 do {
377 k--;
378 udelay(1000); 376 udelay(1000);
379 ret = hermes_read_wordrec(hw, USER_BAP, HERMES_RID_TXQUEUEEMPTY, 377 ret = hermes_read_wordrec(hw, USER_BAP, HERMES_RID_TXQUEUEEMPTY,
380 &xmitting); 378 &xmitting);
381 if (ret) 379 if (ret || !xmitting)
382 break; 380 break;
383 } while ((k > 0) && xmitting); 381 }
384 382
385 if (k == 0) 383 if (k == 0)
386 ret = -ETIMEDOUT; 384 ret = -ETIMEDOUT;
diff --git a/drivers/net/wireless/p54/p54.h b/drivers/net/wireless/p54/p54.h
index 2dda5fe418b6..ecf8b6ed5a47 100644
--- a/drivers/net/wireless/p54/p54.h
+++ b/drivers/net/wireless/p54/p54.h
@@ -14,9 +14,9 @@
14 * published by the Free Software Foundation. 14 * published by the Free Software Foundation.
15 */ 15 */
16 16
17#ifdef CONFIG_MAC80211_LEDS 17#ifdef CONFIG_P54_LEDS
18#include <linux/leds.h> 18#include <linux/leds.h>
19#endif /* CONFIG_MAC80211_LEDS */ 19#endif /* CONFIG_P54_LEDS */
20 20
21enum p54_control_frame_types { 21enum p54_control_frame_types {
22 P54_CONTROL_TYPE_SETUP = 0, 22 P54_CONTROL_TYPE_SETUP = 0,
@@ -116,7 +116,7 @@ enum fw_state {
116 FW_STATE_RESETTING, 116 FW_STATE_RESETTING,
117}; 117};
118 118
119#ifdef CONFIG_MAC80211_LEDS 119#ifdef CONFIG_P54_LEDS
120 120
121#define P54_LED_MAX_NAME_LEN 31 121#define P54_LED_MAX_NAME_LEN 31
122 122
@@ -129,7 +129,7 @@ struct p54_led_dev {
129 unsigned int registered; 129 unsigned int registered;
130}; 130};
131 131
132#endif /* CONFIG_MAC80211_LEDS */ 132#endif /* CONFIG_P54_LEDS */
133 133
134struct p54_common { 134struct p54_common {
135 struct ieee80211_hw *hw; 135 struct ieee80211_hw *hw;
@@ -177,10 +177,10 @@ struct p54_common {
177 u8 privacy_caps; 177 u8 privacy_caps;
178 u8 rx_keycache_size; 178 u8 rx_keycache_size;
179 /* LED management */ 179 /* LED management */
180 #ifdef CONFIG_MAC80211_LEDS 180#ifdef CONFIG_P54_LEDS
181 struct p54_led_dev assoc_led; 181 struct p54_led_dev assoc_led;
182 struct p54_led_dev tx_led; 182 struct p54_led_dev tx_led;
183 #endif /* CONFIG_MAC80211_LEDS */ 183#endif /* CONFIG_P54_LEDS */
184 u16 softled_state; /* bit field of glowing LEDs */ 184 u16 softled_state; /* bit field of glowing LEDs */
185}; 185};
186 186
diff --git a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c
index 0c1b0577d4ee..c8f0232ee5e0 100644
--- a/drivers/net/wireless/p54/p54common.c
+++ b/drivers/net/wireless/p54/p54common.c
@@ -2543,8 +2543,6 @@ struct ieee80211_hw *p54_init_common(size_t priv_data_len)
2543 priv->basic_rate_mask = 0x15f; 2543 priv->basic_rate_mask = 0x15f;
2544 skb_queue_head_init(&priv->tx_queue); 2544 skb_queue_head_init(&priv->tx_queue);
2545 dev->flags = IEEE80211_HW_RX_INCLUDES_FCS | 2545 dev->flags = IEEE80211_HW_RX_INCLUDES_FCS |
2546 IEEE80211_HW_SUPPORTS_PS |
2547 IEEE80211_HW_PS_NULLFUNC_STACK |
2548 IEEE80211_HW_SIGNAL_DBM | 2546 IEEE80211_HW_SIGNAL_DBM |
2549 IEEE80211_HW_NOISE_DBM; 2547 IEEE80211_HW_NOISE_DBM;
2550 2548
diff --git a/drivers/net/wireless/p54/p54spi.c b/drivers/net/wireless/p54/p54spi.c
index 2b222aaa6f0a..d1fe577de3d4 100644
--- a/drivers/net/wireless/p54/p54spi.c
+++ b/drivers/net/wireless/p54/p54spi.c
@@ -457,9 +457,10 @@ static int p54spi_wq_tx(struct p54s_priv *priv)
457 struct ieee80211_tx_info *info; 457 struct ieee80211_tx_info *info;
458 struct p54_tx_info *minfo; 458 struct p54_tx_info *minfo;
459 struct p54s_tx_info *dinfo; 459 struct p54s_tx_info *dinfo;
460 unsigned long flags;
460 int ret = 0; 461 int ret = 0;
461 462
462 spin_lock_bh(&priv->tx_lock); 463 spin_lock_irqsave(&priv->tx_lock, flags);
463 464
464 while (!list_empty(&priv->tx_pending)) { 465 while (!list_empty(&priv->tx_pending)) {
465 entry = list_entry(priv->tx_pending.next, 466 entry = list_entry(priv->tx_pending.next,
@@ -467,7 +468,7 @@ static int p54spi_wq_tx(struct p54s_priv *priv)
467 468
468 list_del_init(&entry->tx_list); 469 list_del_init(&entry->tx_list);
469 470
470 spin_unlock_bh(&priv->tx_lock); 471 spin_unlock_irqrestore(&priv->tx_lock, flags);
471 472
472 dinfo = container_of((void *) entry, struct p54s_tx_info, 473 dinfo = container_of((void *) entry, struct p54s_tx_info,
473 tx_list); 474 tx_list);
@@ -479,16 +480,14 @@ static int p54spi_wq_tx(struct p54s_priv *priv)
479 480
480 ret = p54spi_tx_frame(priv, skb); 481 ret = p54spi_tx_frame(priv, skb);
481 482
482 spin_lock_bh(&priv->tx_lock);
483
484 if (ret < 0) { 483 if (ret < 0) {
485 p54_free_skb(priv->hw, skb); 484 p54_free_skb(priv->hw, skb);
486 goto out; 485 return ret;
487 } 486 }
488 }
489 487
490out: 488 spin_lock_irqsave(&priv->tx_lock, flags);
491 spin_unlock_bh(&priv->tx_lock); 489 }
490 spin_unlock_irqrestore(&priv->tx_lock, flags);
492 return ret; 491 return ret;
493} 492}
494 493
@@ -498,12 +497,13 @@ static void p54spi_op_tx(struct ieee80211_hw *dev, struct sk_buff *skb)
498 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); 497 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
499 struct p54_tx_info *mi = (struct p54_tx_info *) info->rate_driver_data; 498 struct p54_tx_info *mi = (struct p54_tx_info *) info->rate_driver_data;
500 struct p54s_tx_info *di = (struct p54s_tx_info *) mi->data; 499 struct p54s_tx_info *di = (struct p54s_tx_info *) mi->data;
500 unsigned long flags;
501 501
502 BUILD_BUG_ON(sizeof(*di) > sizeof((mi->data))); 502 BUILD_BUG_ON(sizeof(*di) > sizeof((mi->data)));
503 503
504 spin_lock_bh(&priv->tx_lock); 504 spin_lock_irqsave(&priv->tx_lock, flags);
505 list_add_tail(&di->tx_list, &priv->tx_pending); 505 list_add_tail(&di->tx_list, &priv->tx_pending);
506 spin_unlock_bh(&priv->tx_lock); 506 spin_unlock_irqrestore(&priv->tx_lock, flags);
507 507
508 queue_work(priv->hw->workqueue, &priv->work); 508 queue_work(priv->hw->workqueue, &priv->work);
509} 509}
@@ -604,6 +604,7 @@ out:
604static void p54spi_op_stop(struct ieee80211_hw *dev) 604static void p54spi_op_stop(struct ieee80211_hw *dev)
605{ 605{
606 struct p54s_priv *priv = dev->priv; 606 struct p54s_priv *priv = dev->priv;
607 unsigned long flags;
607 608
608 if (mutex_lock_interruptible(&priv->mutex)) { 609 if (mutex_lock_interruptible(&priv->mutex)) {
609 /* FIXME: how to handle this error? */ 610 /* FIXME: how to handle this error? */
@@ -615,9 +616,9 @@ static void p54spi_op_stop(struct ieee80211_hw *dev)
615 cancel_work_sync(&priv->work); 616 cancel_work_sync(&priv->work);
616 617
617 p54spi_power_off(priv); 618 p54spi_power_off(priv);
618 spin_lock_bh(&priv->tx_lock); 619 spin_lock_irqsave(&priv->tx_lock, flags);
619 INIT_LIST_HEAD(&priv->tx_pending); 620 INIT_LIST_HEAD(&priv->tx_pending);
620 spin_unlock_bh(&priv->tx_lock); 621 spin_unlock_irqrestore(&priv->tx_lock, flags);
621 622
622 priv->fw_state = FW_STATE_OFF; 623 priv->fw_state = FW_STATE_OFF;
623 mutex_unlock(&priv->mutex); 624 mutex_unlock(&priv->mutex);
diff --git a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p54/p54usb.c
index da6640afc835..6cc6cbc9234f 100644
--- a/drivers/net/wireless/p54/p54usb.c
+++ b/drivers/net/wireless/p54/p54usb.c
@@ -71,6 +71,7 @@ static struct usb_device_id p54u_table[] __devinitdata = {
71 {USB_DEVICE(0x1260, 0xee22)}, /* SMC 2862W-G version 2 */ 71 {USB_DEVICE(0x1260, 0xee22)}, /* SMC 2862W-G version 2 */
72 {USB_DEVICE(0x13b1, 0x000a)}, /* Linksys WUSB54G ver 2 */ 72 {USB_DEVICE(0x13b1, 0x000a)}, /* Linksys WUSB54G ver 2 */
73 {USB_DEVICE(0x13B1, 0x000C)}, /* Linksys WUSB54AG */ 73 {USB_DEVICE(0x13B1, 0x000C)}, /* Linksys WUSB54AG */
74 {USB_DEVICE(0x1413, 0x5400)}, /* Telsey 802.11g USB2.0 Adapter */
74 {USB_DEVICE(0x1435, 0x0427)}, /* Inventel UR054G */ 75 {USB_DEVICE(0x1435, 0x0427)}, /* Inventel UR054G */
75 {USB_DEVICE(0x2001, 0x3704)}, /* DLink DWL-G122 rev A2 */ 76 {USB_DEVICE(0x2001, 0x3704)}, /* DLink DWL-G122 rev A2 */
76 {USB_DEVICE(0x413c, 0x8102)}, /* Spinnaker DUT */ 77 {USB_DEVICE(0x413c, 0x8102)}, /* Spinnaker DUT */
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
index 05f94e21b423..5752aaae906b 100644
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
@@ -646,10 +646,8 @@ static int rt2x00lib_probe_hw(struct rt2x00_dev *rt2x00dev)
646 * Register HW. 646 * Register HW.
647 */ 647 */
648 status = ieee80211_register_hw(rt2x00dev->hw); 648 status = ieee80211_register_hw(rt2x00dev->hw);
649 if (status) { 649 if (status)
650 rt2x00lib_remove_hw(rt2x00dev);
651 return status; 650 return status;
652 }
653 651
654 set_bit(DEVICE_STATE_REGISTERED_HW, &rt2x00dev->flags); 652 set_bit(DEVICE_STATE_REGISTERED_HW, &rt2x00dev->flags);
655 653
diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c
index 43fa0f849003..9730b4f8fd26 100644
--- a/drivers/net/wireless/rt2x00/rt2x00pci.c
+++ b/drivers/net/wireless/rt2x00/rt2x00pci.c
@@ -369,8 +369,6 @@ int rt2x00pci_suspend(struct pci_dev *pci_dev, pm_message_t state)
369 if (retval) 369 if (retval)
370 return retval; 370 return retval;
371 371
372 rt2x00pci_free_reg(rt2x00dev);
373
374 pci_save_state(pci_dev); 372 pci_save_state(pci_dev);
375 pci_disable_device(pci_dev); 373 pci_disable_device(pci_dev);
376 return pci_set_power_state(pci_dev, pci_choose_state(pci_dev, state)); 374 return pci_set_power_state(pci_dev, pci_choose_state(pci_dev, state));
@@ -381,7 +379,6 @@ int rt2x00pci_resume(struct pci_dev *pci_dev)
381{ 379{
382 struct ieee80211_hw *hw = pci_get_drvdata(pci_dev); 380 struct ieee80211_hw *hw = pci_get_drvdata(pci_dev);
383 struct rt2x00_dev *rt2x00dev = hw->priv; 381 struct rt2x00_dev *rt2x00dev = hw->priv;
384 int retval;
385 382
386 if (pci_set_power_state(pci_dev, PCI_D0) || 383 if (pci_set_power_state(pci_dev, PCI_D0) ||
387 pci_enable_device(pci_dev) || 384 pci_enable_device(pci_dev) ||
@@ -390,20 +387,7 @@ int rt2x00pci_resume(struct pci_dev *pci_dev)
390 return -EIO; 387 return -EIO;
391 } 388 }
392 389
393 retval = rt2x00pci_alloc_reg(rt2x00dev); 390 return rt2x00lib_resume(rt2x00dev);
394 if (retval)
395 return retval;
396
397 retval = rt2x00lib_resume(rt2x00dev);
398 if (retval)
399 goto exit_free_reg;
400
401 return 0;
402
403exit_free_reg:
404 rt2x00pci_free_reg(rt2x00dev);
405
406 return retval;
407} 391}
408EXPORT_SYMBOL_GPL(rt2x00pci_resume); 392EXPORT_SYMBOL_GPL(rt2x00pci_resume);
409#endif /* CONFIG_PM */ 393#endif /* CONFIG_PM */
diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.c b/drivers/net/wireless/rt2x00/rt2x00usb.c
index 7d50ca82375e..501544882c2c 100644
--- a/drivers/net/wireless/rt2x00/rt2x00usb.c
+++ b/drivers/net/wireless/rt2x00/rt2x00usb.c
@@ -702,8 +702,6 @@ int rt2x00usb_suspend(struct usb_interface *usb_intf, pm_message_t state)
702 if (retval) 702 if (retval)
703 return retval; 703 return retval;
704 704
705 rt2x00usb_free_reg(rt2x00dev);
706
707 /* 705 /*
708 * Decrease usbdev refcount. 706 * Decrease usbdev refcount.
709 */ 707 */
@@ -717,24 +715,10 @@ int rt2x00usb_resume(struct usb_interface *usb_intf)
717{ 715{
718 struct ieee80211_hw *hw = usb_get_intfdata(usb_intf); 716 struct ieee80211_hw *hw = usb_get_intfdata(usb_intf);
719 struct rt2x00_dev *rt2x00dev = hw->priv; 717 struct rt2x00_dev *rt2x00dev = hw->priv;
720 int retval;
721 718
722 usb_get_dev(interface_to_usbdev(usb_intf)); 719 usb_get_dev(interface_to_usbdev(usb_intf));
723 720
724 retval = rt2x00usb_alloc_reg(rt2x00dev); 721 return rt2x00lib_resume(rt2x00dev);
725 if (retval)
726 return retval;
727
728 retval = rt2x00lib_resume(rt2x00dev);
729 if (retval)
730 goto exit_free_reg;
731
732 return 0;
733
734exit_free_reg:
735 rt2x00usb_free_reg(rt2x00dev);
736
737 return retval;
738} 722}
739EXPORT_SYMBOL_GPL(rt2x00usb_resume); 723EXPORT_SYMBOL_GPL(rt2x00usb_resume);
740#endif /* CONFIG_PM */ 724#endif /* CONFIG_PM */
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c
index 420fff42c0dd..853b2b279b64 100644
--- a/drivers/net/wireless/rt2x00/rt73usb.c
+++ b/drivers/net/wireless/rt2x00/rt73usb.c
@@ -2369,6 +2369,8 @@ static struct usb_device_id rt73usb_device_table[] = {
2369 /* Buffalo */ 2369 /* Buffalo */
2370 { USB_DEVICE(0x0411, 0x00d8), USB_DEVICE_DATA(&rt73usb_ops) }, 2370 { USB_DEVICE(0x0411, 0x00d8), USB_DEVICE_DATA(&rt73usb_ops) },
2371 { USB_DEVICE(0x0411, 0x00f4), USB_DEVICE_DATA(&rt73usb_ops) }, 2371 { USB_DEVICE(0x0411, 0x00f4), USB_DEVICE_DATA(&rt73usb_ops) },
2372 { USB_DEVICE(0x0411, 0x0116), USB_DEVICE_DATA(&rt73usb_ops) },
2373 { USB_DEVICE(0x0411, 0x0119), USB_DEVICE_DATA(&rt73usb_ops) },
2372 /* CNet */ 2374 /* CNet */
2373 { USB_DEVICE(0x1371, 0x9022), USB_DEVICE_DATA(&rt73usb_ops) }, 2375 { USB_DEVICE(0x1371, 0x9022), USB_DEVICE_DATA(&rt73usb_ops) },
2374 { USB_DEVICE(0x1371, 0x9032), USB_DEVICE_DATA(&rt73usb_ops) }, 2376 { USB_DEVICE(0x1371, 0x9032), USB_DEVICE_DATA(&rt73usb_ops) },
diff --git a/drivers/pci/access.c b/drivers/pci/access.c
index 64dd7df90e62..0f3706512686 100644
--- a/drivers/pci/access.c
+++ b/drivers/pci/access.c
@@ -87,8 +87,8 @@ EXPORT_SYMBOL(pci_read_vpd);
87 * pci_write_vpd - Write entry to Vital Product Data 87 * pci_write_vpd - Write entry to Vital Product Data
88 * @dev: pci device struct 88 * @dev: pci device struct
89 * @pos: offset in vpd space 89 * @pos: offset in vpd space
90 * @count: number of bytes to read 90 * @count: number of bytes to write
91 * @val: value to write 91 * @buf: buffer containing write data
92 * 92 *
93 */ 93 */
94ssize_t pci_write_vpd(struct pci_dev *dev, loff_t pos, size_t count, const void *buf) 94ssize_t pci_write_vpd(struct pci_dev *dev, loff_t pos, size_t count, const void *buf)
diff --git a/drivers/pci/htirq.c b/drivers/pci/htirq.c
index bf7d6ce9bbb3..6808d8333ecc 100644
--- a/drivers/pci/htirq.c
+++ b/drivers/pci/htirq.c
@@ -158,6 +158,7 @@ int ht_create_irq(struct pci_dev *dev, int idx)
158 158
159/** 159/**
160 * ht_destroy_irq - destroy an irq created with ht_create_irq 160 * ht_destroy_irq - destroy an irq created with ht_create_irq
161 * @irq: irq to be destroyed
161 * 162 *
162 * This reverses ht_create_irq removing the specified irq from 163 * This reverses ht_create_irq removing the specified irq from
163 * existence. The irq should be free before this happens. 164 * existence. The irq should be free before this happens.
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index a7eb1b46a5a8..85ebd02a64a7 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -492,6 +492,7 @@ write_vpd_attr(struct kobject *kobj, struct bin_attribute *bin_attr,
492/** 492/**
493 * pci_read_legacy_io - read byte(s) from legacy I/O port space 493 * pci_read_legacy_io - read byte(s) from legacy I/O port space
494 * @kobj: kobject corresponding to file to read from 494 * @kobj: kobject corresponding to file to read from
495 * @bin_attr: struct bin_attribute for this file
495 * @buf: buffer to store results 496 * @buf: buffer to store results
496 * @off: offset into legacy I/O port space 497 * @off: offset into legacy I/O port space
497 * @count: number of bytes to read 498 * @count: number of bytes to read
@@ -517,6 +518,7 @@ pci_read_legacy_io(struct kobject *kobj, struct bin_attribute *bin_attr,
517/** 518/**
518 * pci_write_legacy_io - write byte(s) to legacy I/O port space 519 * pci_write_legacy_io - write byte(s) to legacy I/O port space
519 * @kobj: kobject corresponding to file to read from 520 * @kobj: kobject corresponding to file to read from
521 * @bin_attr: struct bin_attribute for this file
520 * @buf: buffer containing value to be written 522 * @buf: buffer containing value to be written
521 * @off: offset into legacy I/O port space 523 * @off: offset into legacy I/O port space
522 * @count: number of bytes to write 524 * @count: number of bytes to write
@@ -733,9 +735,9 @@ pci_mmap_resource_wc(struct kobject *kobj, struct bin_attribute *attr,
733 735
734/** 736/**
735 * pci_remove_resource_files - cleanup resource files 737 * pci_remove_resource_files - cleanup resource files
736 * @dev: dev to cleanup 738 * @pdev: dev to cleanup
737 * 739 *
738 * If we created resource files for @dev, remove them from sysfs and 740 * If we created resource files for @pdev, remove them from sysfs and
739 * free their resources. 741 * free their resources.
740 */ 742 */
741static void 743static void
@@ -793,9 +795,9 @@ static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine)
793 795
794/** 796/**
795 * pci_create_resource_files - create resource files in sysfs for @dev 797 * pci_create_resource_files - create resource files in sysfs for @dev
796 * @dev: dev in question 798 * @pdev: dev in question
797 * 799 *
798 * Walk the resources in @dev creating files for each resource available. 800 * Walk the resources in @pdev creating files for each resource available.
799 */ 801 */
800static int pci_create_resource_files(struct pci_dev *pdev) 802static int pci_create_resource_files(struct pci_dev *pdev)
801{ 803{
@@ -829,6 +831,7 @@ void __weak pci_remove_resource_files(struct pci_dev *dev) { return; }
829/** 831/**
830 * pci_write_rom - used to enable access to the PCI ROM display 832 * pci_write_rom - used to enable access to the PCI ROM display
831 * @kobj: kernel object handle 833 * @kobj: kernel object handle
834 * @bin_attr: struct bin_attribute for this file
832 * @buf: user input 835 * @buf: user input
833 * @off: file offset 836 * @off: file offset
834 * @count: number of byte in input 837 * @count: number of byte in input
@@ -852,6 +855,7 @@ pci_write_rom(struct kobject *kobj, struct bin_attribute *bin_attr,
852/** 855/**
853 * pci_read_rom - read a PCI ROM 856 * pci_read_rom - read a PCI ROM
854 * @kobj: kernel object handle 857 * @kobj: kernel object handle
858 * @bin_attr: struct bin_attribute for this file
855 * @buf: where to put the data we read from the ROM 859 * @buf: where to put the data we read from the ROM
856 * @off: file offset 860 * @off: file offset
857 * @count: number of bytes to read 861 * @count: number of bytes to read
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 16fd0d4c3166..34bf0fdf5047 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -681,11 +681,34 @@ EXPORT_SYMBOL(pci_choose_state);
681 681
682#define PCI_EXP_SAVE_REGS 7 682#define PCI_EXP_SAVE_REGS 7
683 683
684#define pcie_cap_has_devctl(type, flags) 1
685#define pcie_cap_has_lnkctl(type, flags) \
686 ((flags & PCI_EXP_FLAGS_VERS) > 1 || \
687 (type == PCI_EXP_TYPE_ROOT_PORT || \
688 type == PCI_EXP_TYPE_ENDPOINT || \
689 type == PCI_EXP_TYPE_LEG_END))
690#define pcie_cap_has_sltctl(type, flags) \
691 ((flags & PCI_EXP_FLAGS_VERS) > 1 || \
692 ((type == PCI_EXP_TYPE_ROOT_PORT) || \
693 (type == PCI_EXP_TYPE_DOWNSTREAM && \
694 (flags & PCI_EXP_FLAGS_SLOT))))
695#define pcie_cap_has_rtctl(type, flags) \
696 ((flags & PCI_EXP_FLAGS_VERS) > 1 || \
697 (type == PCI_EXP_TYPE_ROOT_PORT || \
698 type == PCI_EXP_TYPE_RC_EC))
699#define pcie_cap_has_devctl2(type, flags) \
700 ((flags & PCI_EXP_FLAGS_VERS) > 1)
701#define pcie_cap_has_lnkctl2(type, flags) \
702 ((flags & PCI_EXP_FLAGS_VERS) > 1)
703#define pcie_cap_has_sltctl2(type, flags) \
704 ((flags & PCI_EXP_FLAGS_VERS) > 1)
705
684static int pci_save_pcie_state(struct pci_dev *dev) 706static int pci_save_pcie_state(struct pci_dev *dev)
685{ 707{
686 int pos, i = 0; 708 int pos, i = 0;
687 struct pci_cap_saved_state *save_state; 709 struct pci_cap_saved_state *save_state;
688 u16 *cap; 710 u16 *cap;
711 u16 flags;
689 712
690 pos = pci_find_capability(dev, PCI_CAP_ID_EXP); 713 pos = pci_find_capability(dev, PCI_CAP_ID_EXP);
691 if (pos <= 0) 714 if (pos <= 0)
@@ -698,13 +721,22 @@ static int pci_save_pcie_state(struct pci_dev *dev)
698 } 721 }
699 cap = (u16 *)&save_state->data[0]; 722 cap = (u16 *)&save_state->data[0];
700 723
701 pci_read_config_word(dev, pos + PCI_EXP_DEVCTL, &cap[i++]); 724 pci_read_config_word(dev, pos + PCI_EXP_FLAGS, &flags);
702 pci_read_config_word(dev, pos + PCI_EXP_LNKCTL, &cap[i++]); 725
703 pci_read_config_word(dev, pos + PCI_EXP_SLTCTL, &cap[i++]); 726 if (pcie_cap_has_devctl(dev->pcie_type, flags))
704 pci_read_config_word(dev, pos + PCI_EXP_RTCTL, &cap[i++]); 727 pci_read_config_word(dev, pos + PCI_EXP_DEVCTL, &cap[i++]);
705 pci_read_config_word(dev, pos + PCI_EXP_DEVCTL2, &cap[i++]); 728 if (pcie_cap_has_lnkctl(dev->pcie_type, flags))
706 pci_read_config_word(dev, pos + PCI_EXP_LNKCTL2, &cap[i++]); 729 pci_read_config_word(dev, pos + PCI_EXP_LNKCTL, &cap[i++]);
707 pci_read_config_word(dev, pos + PCI_EXP_SLTCTL2, &cap[i++]); 730 if (pcie_cap_has_sltctl(dev->pcie_type, flags))
731 pci_read_config_word(dev, pos + PCI_EXP_SLTCTL, &cap[i++]);
732 if (pcie_cap_has_rtctl(dev->pcie_type, flags))
733 pci_read_config_word(dev, pos + PCI_EXP_RTCTL, &cap[i++]);
734 if (pcie_cap_has_devctl2(dev->pcie_type, flags))
735 pci_read_config_word(dev, pos + PCI_EXP_DEVCTL2, &cap[i++]);
736 if (pcie_cap_has_lnkctl2(dev->pcie_type, flags))
737 pci_read_config_word(dev, pos + PCI_EXP_LNKCTL2, &cap[i++]);
738 if (pcie_cap_has_sltctl2(dev->pcie_type, flags))
739 pci_read_config_word(dev, pos + PCI_EXP_SLTCTL2, &cap[i++]);
708 740
709 return 0; 741 return 0;
710} 742}
@@ -714,6 +746,7 @@ static void pci_restore_pcie_state(struct pci_dev *dev)
714 int i = 0, pos; 746 int i = 0, pos;
715 struct pci_cap_saved_state *save_state; 747 struct pci_cap_saved_state *save_state;
716 u16 *cap; 748 u16 *cap;
749 u16 flags;
717 750
718 save_state = pci_find_saved_cap(dev, PCI_CAP_ID_EXP); 751 save_state = pci_find_saved_cap(dev, PCI_CAP_ID_EXP);
719 pos = pci_find_capability(dev, PCI_CAP_ID_EXP); 752 pos = pci_find_capability(dev, PCI_CAP_ID_EXP);
@@ -721,13 +754,22 @@ static void pci_restore_pcie_state(struct pci_dev *dev)
721 return; 754 return;
722 cap = (u16 *)&save_state->data[0]; 755 cap = (u16 *)&save_state->data[0];
723 756
724 pci_write_config_word(dev, pos + PCI_EXP_DEVCTL, cap[i++]); 757 pci_read_config_word(dev, pos + PCI_EXP_FLAGS, &flags);
725 pci_write_config_word(dev, pos + PCI_EXP_LNKCTL, cap[i++]); 758
726 pci_write_config_word(dev, pos + PCI_EXP_SLTCTL, cap[i++]); 759 if (pcie_cap_has_devctl(dev->pcie_type, flags))
727 pci_write_config_word(dev, pos + PCI_EXP_RTCTL, cap[i++]); 760 pci_write_config_word(dev, pos + PCI_EXP_DEVCTL, cap[i++]);
728 pci_write_config_word(dev, pos + PCI_EXP_DEVCTL2, cap[i++]); 761 if (pcie_cap_has_lnkctl(dev->pcie_type, flags))
729 pci_write_config_word(dev, pos + PCI_EXP_LNKCTL2, cap[i++]); 762 pci_write_config_word(dev, pos + PCI_EXP_LNKCTL, cap[i++]);
730 pci_write_config_word(dev, pos + PCI_EXP_SLTCTL2, cap[i++]); 763 if (pcie_cap_has_sltctl(dev->pcie_type, flags))
764 pci_write_config_word(dev, pos + PCI_EXP_SLTCTL, cap[i++]);
765 if (pcie_cap_has_rtctl(dev->pcie_type, flags))
766 pci_write_config_word(dev, pos + PCI_EXP_RTCTL, cap[i++]);
767 if (pcie_cap_has_devctl2(dev->pcie_type, flags))
768 pci_write_config_word(dev, pos + PCI_EXP_DEVCTL2, cap[i++]);
769 if (pcie_cap_has_lnkctl2(dev->pcie_type, flags))
770 pci_write_config_word(dev, pos + PCI_EXP_LNKCTL2, cap[i++]);
771 if (pcie_cap_has_sltctl2(dev->pcie_type, flags))
772 pci_write_config_word(dev, pos + PCI_EXP_SLTCTL2, cap[i++]);
731} 773}
732 774
733 775
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 8eb50dffb78a..e3c3e081b834 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1118,10 +1118,6 @@ unsigned int __devinit pci_scan_child_bus(struct pci_bus *bus)
1118 return max; 1118 return max;
1119} 1119}
1120 1120
1121void __attribute__((weak)) set_pci_bus_resources_arch_default(struct pci_bus *b)
1122{
1123}
1124
1125struct pci_bus * pci_create_bus(struct device *parent, 1121struct pci_bus * pci_create_bus(struct device *parent,
1126 int bus, struct pci_ops *ops, void *sysdata) 1122 int bus, struct pci_ops *ops, void *sysdata)
1127{ 1123{
@@ -1180,8 +1176,6 @@ struct pci_bus * pci_create_bus(struct device *parent,
1180 b->resource[0] = &ioport_resource; 1176 b->resource[0] = &ioport_resource;
1181 b->resource[1] = &iomem_resource; 1177 b->resource[1] = &iomem_resource;
1182 1178
1183 set_pci_bus_resources_arch_default(b);
1184
1185 return b; 1179 return b;
1186 1180
1187dev_create_file_err: 1181dev_create_file_err:
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 0254741bece0..3067673d54f6 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2033,6 +2033,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_di
2033DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi); 2033DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi);
2034DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3336, quirk_disable_all_msi); 2034DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3336, quirk_disable_all_msi);
2035DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi); 2035DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi);
2036DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3364, quirk_disable_all_msi);
2036 2037
2037/* Disable MSI on chipsets that are known to not support it */ 2038/* Disable MSI on chipsets that are known to not support it */
2038static void __devinit quirk_disable_msi(struct pci_dev *dev) 2039static void __devinit quirk_disable_msi(struct pci_dev *dev)
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
index 8d9da9d30a61..a00f85471b6e 100644
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -536,11 +536,13 @@ static void pci_bus_dump_res(struct pci_bus *bus)
536 536
537 for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) { 537 for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) {
538 struct resource *res = bus->resource[i]; 538 struct resource *res = bus->resource[i];
539 if (!res) 539 if (!res || !res->end)
540 continue; 540 continue;
541 541
542 dev_printk(KERN_DEBUG, &bus->dev, "resource %d %s %pR\n", i, 542 dev_printk(KERN_DEBUG, &bus->dev, "resource %d %s %pR\n", i,
543 (res->flags & IORESOURCE_IO) ? "io: " : "mem:", res); 543 (res->flags & IORESOURCE_IO) ? "io: " :
544 ((res->flags & IORESOURCE_PREFETCH)? "pref mem":"mem:"),
545 res);
544 } 546 }
545} 547}
546 548
diff --git a/drivers/pci/slot.c b/drivers/pci/slot.c
index 21189447e545..fe95ce20bcbd 100644
--- a/drivers/pci/slot.c
+++ b/drivers/pci/slot.c
@@ -264,8 +264,8 @@ EXPORT_SYMBOL_GPL(pci_create_slot);
264 264
265/** 265/**
266 * pci_renumber_slot - update %struct pci_slot -> number 266 * pci_renumber_slot - update %struct pci_slot -> number
267 * @slot - %struct pci_slot to update 267 * @slot: &struct pci_slot to update
268 * @slot_nr - new number for slot 268 * @slot_nr: new number for slot
269 * 269 *
270 * The primary purpose of this interface is to allow callers who earlier 270 * The primary purpose of this interface is to allow callers who earlier
271 * created a placeholder slot in pci_create_slot() by passing a -1 as 271 * created a placeholder slot in pci_create_slot() by passing a -1 as
diff --git a/drivers/pcmcia/pxa2xx_sharpsl.c b/drivers/pcmcia/pxa2xx_sharpsl.c
index 1cd02f5a23a0..bc43f78f6f0b 100644
--- a/drivers/pcmcia/pxa2xx_sharpsl.c
+++ b/drivers/pcmcia/pxa2xx_sharpsl.c
@@ -255,6 +255,9 @@ static int __init sharpsl_pcmcia_init(void)
255{ 255{
256 int ret; 256 int ret;
257 257
258 if (!platform_scoop_config)
259 return -ENODEV;
260
258 sharpsl_pcmcia_ops.nr = platform_scoop_config->num_devs; 261 sharpsl_pcmcia_ops.nr = platform_scoop_config->num_devs;
259 sharpsl_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1); 262 sharpsl_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1);
260 263
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
index d3c92d777bde..552958545f94 100644
--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
@@ -317,7 +317,8 @@ static void sony_laptop_report_input_event(u8 event)
317 struct input_dev *key_dev = sony_laptop_input.key_dev; 317 struct input_dev *key_dev = sony_laptop_input.key_dev;
318 struct sony_laptop_keypress kp = { NULL }; 318 struct sony_laptop_keypress kp = { NULL };
319 319
320 if (event == SONYPI_EVENT_FNKEY_RELEASED) { 320 if (event == SONYPI_EVENT_FNKEY_RELEASED ||
321 event == SONYPI_EVENT_ANYBUTTON_RELEASED) {
321 /* Nothing, not all VAIOs generate this event */ 322 /* Nothing, not all VAIOs generate this event */
322 return; 323 return;
323 } 324 }
@@ -905,7 +906,6 @@ static struct sony_nc_event sony_127_events[] = {
905 { 0x05, SONYPI_EVENT_ANYBUTTON_RELEASED }, 906 { 0x05, SONYPI_EVENT_ANYBUTTON_RELEASED },
906 { 0x86, SONYPI_EVENT_PKEY_P5 }, 907 { 0x86, SONYPI_EVENT_PKEY_P5 },
907 { 0x06, SONYPI_EVENT_ANYBUTTON_RELEASED }, 908 { 0x06, SONYPI_EVENT_ANYBUTTON_RELEASED },
908 { 0x06, SONYPI_EVENT_ANYBUTTON_RELEASED },
909 { 0x87, SONYPI_EVENT_SETTINGKEY_PRESSED }, 909 { 0x87, SONYPI_EVENT_SETTINGKEY_PRESSED },
910 { 0x07, SONYPI_EVENT_ANYBUTTON_RELEASED }, 910 { 0x07, SONYPI_EVENT_ANYBUTTON_RELEASED },
911 { 0, 0 }, 911 { 0, 0 },
@@ -1004,6 +1004,7 @@ static int sony_nc_function_setup(struct acpi_device *device)
1004 sony_call_snc_handle(0x0100, 0, &result); 1004 sony_call_snc_handle(0x0100, 0, &result);
1005 sony_call_snc_handle(0x0101, 0, &result); 1005 sony_call_snc_handle(0x0101, 0, &result);
1006 sony_call_snc_handle(0x0102, 0x100, &result); 1006 sony_call_snc_handle(0x0102, 0x100, &result);
1007 sony_call_snc_handle(0x0127, 0, &result);
1007 1008
1008 return 0; 1009 return 0;
1009} 1010}
@@ -1040,7 +1041,7 @@ static int sony_nc_resume(struct acpi_device *device)
1040 1041
1041 /* set the last requested brightness level */ 1042 /* set the last requested brightness level */
1042 if (sony_backlight_device && 1043 if (sony_backlight_device &&
1043 !sony_backlight_update_status(sony_backlight_device)) 1044 sony_backlight_update_status(sony_backlight_device) < 0)
1044 printk(KERN_WARNING DRV_PFX "unable to restore brightness level\n"); 1045 printk(KERN_WARNING DRV_PFX "unable to restore brightness level\n");
1045 1046
1046 return 0; 1047 return 0;
@@ -1102,8 +1103,11 @@ static int sony_nc_setup_wifi_rfkill(struct acpi_device *device)
1102 err = rfkill_register(sony_wifi_rfkill); 1103 err = rfkill_register(sony_wifi_rfkill);
1103 if (err) 1104 if (err)
1104 rfkill_free(sony_wifi_rfkill); 1105 rfkill_free(sony_wifi_rfkill);
1105 else 1106 else {
1106 sony_rfkill_devices[SONY_WIFI] = sony_wifi_rfkill; 1107 sony_rfkill_devices[SONY_WIFI] = sony_wifi_rfkill;
1108 sony_nc_rfkill_set(sony_wifi_rfkill->data,
1109 RFKILL_STATE_UNBLOCKED);
1110 }
1107 return err; 1111 return err;
1108} 1112}
1109 1113
@@ -1124,8 +1128,11 @@ static int sony_nc_setup_bluetooth_rfkill(struct acpi_device *device)
1124 err = rfkill_register(sony_bluetooth_rfkill); 1128 err = rfkill_register(sony_bluetooth_rfkill);
1125 if (err) 1129 if (err)
1126 rfkill_free(sony_bluetooth_rfkill); 1130 rfkill_free(sony_bluetooth_rfkill);
1127 else 1131 else {
1128 sony_rfkill_devices[SONY_BLUETOOTH] = sony_bluetooth_rfkill; 1132 sony_rfkill_devices[SONY_BLUETOOTH] = sony_bluetooth_rfkill;
1133 sony_nc_rfkill_set(sony_bluetooth_rfkill->data,
1134 RFKILL_STATE_UNBLOCKED);
1135 }
1129 return err; 1136 return err;
1130} 1137}
1131 1138
@@ -1145,8 +1152,11 @@ static int sony_nc_setup_wwan_rfkill(struct acpi_device *device)
1145 err = rfkill_register(sony_wwan_rfkill); 1152 err = rfkill_register(sony_wwan_rfkill);
1146 if (err) 1153 if (err)
1147 rfkill_free(sony_wwan_rfkill); 1154 rfkill_free(sony_wwan_rfkill);
1148 else 1155 else {
1149 sony_rfkill_devices[SONY_WWAN] = sony_wwan_rfkill; 1156 sony_rfkill_devices[SONY_WWAN] = sony_wwan_rfkill;
1157 sony_nc_rfkill_set(sony_wwan_rfkill->data,
1158 RFKILL_STATE_UNBLOCKED);
1159 }
1150 return err; 1160 return err;
1151} 1161}
1152 1162
@@ -1166,8 +1176,11 @@ static int sony_nc_setup_wimax_rfkill(struct acpi_device *device)
1166 err = rfkill_register(sony_wimax_rfkill); 1176 err = rfkill_register(sony_wimax_rfkill);
1167 if (err) 1177 if (err)
1168 rfkill_free(sony_wimax_rfkill); 1178 rfkill_free(sony_wimax_rfkill);
1169 else 1179 else {
1170 sony_rfkill_devices[SONY_WIMAX] = sony_wimax_rfkill; 1180 sony_rfkill_devices[SONY_WIMAX] = sony_wimax_rfkill;
1181 sony_nc_rfkill_set(sony_wimax_rfkill->data,
1182 RFKILL_STATE_UNBLOCKED);
1183 }
1171 return err; 1184 return err;
1172} 1185}
1173 1186
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index a40b075743d9..912be65b6261 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -21,7 +21,7 @@
21 * 02110-1301, USA. 21 * 02110-1301, USA.
22 */ 22 */
23 23
24#define TPACPI_VERSION "0.22" 24#define TPACPI_VERSION "0.23"
25#define TPACPI_SYSFS_VERSION 0x020300 25#define TPACPI_SYSFS_VERSION 0x020300
26 26
27/* 27/*
@@ -303,11 +303,17 @@ static u32 dbg_level;
303 303
304static struct workqueue_struct *tpacpi_wq; 304static struct workqueue_struct *tpacpi_wq;
305 305
306enum led_status_t {
307 TPACPI_LED_OFF = 0,
308 TPACPI_LED_ON,
309 TPACPI_LED_BLINK,
310};
311
306/* Special LED class that can defer work */ 312/* Special LED class that can defer work */
307struct tpacpi_led_classdev { 313struct tpacpi_led_classdev {
308 struct led_classdev led_classdev; 314 struct led_classdev led_classdev;
309 struct work_struct work; 315 struct work_struct work;
310 enum led_brightness new_brightness; 316 enum led_status_t new_state;
311 unsigned int led; 317 unsigned int led;
312}; 318};
313 319
@@ -2946,12 +2952,18 @@ static int hotkey_read(char *p)
2946 return len; 2952 return len;
2947} 2953}
2948 2954
2949static void hotkey_enabledisable_warn(void) 2955static void hotkey_enabledisable_warn(bool enable)
2950{ 2956{
2951 tpacpi_log_usertask("procfs hotkey enable/disable"); 2957 tpacpi_log_usertask("procfs hotkey enable/disable");
2952 WARN(1, TPACPI_WARN 2958 if (!WARN((tpacpi_lifecycle == TPACPI_LIFE_RUNNING || !enable),
2953 "hotkey enable/disable functionality has been " 2959 TPACPI_WARN
2954 "removed from the driver. Hotkeys are always enabled.\n"); 2960 "hotkey enable/disable functionality has been "
2961 "removed from the driver. Hotkeys are always "
2962 "enabled\n"))
2963 printk(TPACPI_ERR
2964 "Please remove the hotkey=enable module "
2965 "parameter, it is deprecated. Hotkeys are always "
2966 "enabled\n");
2955} 2967}
2956 2968
2957static int hotkey_write(char *buf) 2969static int hotkey_write(char *buf)
@@ -2971,9 +2983,9 @@ static int hotkey_write(char *buf)
2971 res = 0; 2983 res = 0;
2972 while ((cmd = next_cmd(&buf))) { 2984 while ((cmd = next_cmd(&buf))) {
2973 if (strlencmp(cmd, "enable") == 0) { 2985 if (strlencmp(cmd, "enable") == 0) {
2974 hotkey_enabledisable_warn(); 2986 hotkey_enabledisable_warn(1);
2975 } else if (strlencmp(cmd, "disable") == 0) { 2987 } else if (strlencmp(cmd, "disable") == 0) {
2976 hotkey_enabledisable_warn(); 2988 hotkey_enabledisable_warn(0);
2977 res = -EPERM; 2989 res = -EPERM;
2978 } else if (strlencmp(cmd, "reset") == 0) { 2990 } else if (strlencmp(cmd, "reset") == 0) {
2979 mask = hotkey_orig_mask; 2991 mask = hotkey_orig_mask;
@@ -4207,7 +4219,7 @@ static void light_set_status_worker(struct work_struct *work)
4207 container_of(work, struct tpacpi_led_classdev, work); 4219 container_of(work, struct tpacpi_led_classdev, work);
4208 4220
4209 if (likely(tpacpi_lifecycle == TPACPI_LIFE_RUNNING)) 4221 if (likely(tpacpi_lifecycle == TPACPI_LIFE_RUNNING))
4210 light_set_status((data->new_brightness != LED_OFF)); 4222 light_set_status((data->new_state != TPACPI_LED_OFF));
4211} 4223}
4212 4224
4213static void light_sysfs_set(struct led_classdev *led_cdev, 4225static void light_sysfs_set(struct led_classdev *led_cdev,
@@ -4217,7 +4229,8 @@ static void light_sysfs_set(struct led_classdev *led_cdev,
4217 container_of(led_cdev, 4229 container_of(led_cdev,
4218 struct tpacpi_led_classdev, 4230 struct tpacpi_led_classdev,
4219 led_classdev); 4231 led_classdev);
4220 data->new_brightness = brightness; 4232 data->new_state = (brightness != LED_OFF) ?
4233 TPACPI_LED_ON : TPACPI_LED_OFF;
4221 queue_work(tpacpi_wq, &data->work); 4234 queue_work(tpacpi_wq, &data->work);
4222} 4235}
4223 4236
@@ -4724,12 +4737,6 @@ enum { /* For TPACPI_LED_OLD */
4724 TPACPI_LED_EC_HLMS = 0x0e, /* EC reg to select led to command */ 4737 TPACPI_LED_EC_HLMS = 0x0e, /* EC reg to select led to command */
4725}; 4738};
4726 4739
4727enum led_status_t {
4728 TPACPI_LED_OFF = 0,
4729 TPACPI_LED_ON,
4730 TPACPI_LED_BLINK,
4731};
4732
4733static enum led_access_mode led_supported; 4740static enum led_access_mode led_supported;
4734 4741
4735TPACPI_HANDLE(led, ec, "SLED", /* 570 */ 4742TPACPI_HANDLE(led, ec, "SLED", /* 570 */
@@ -4841,23 +4848,13 @@ static int led_set_status(const unsigned int led,
4841 return rc; 4848 return rc;
4842} 4849}
4843 4850
4844static void led_sysfs_set_status(unsigned int led,
4845 enum led_brightness brightness)
4846{
4847 led_set_status(led,
4848 (brightness == LED_OFF) ?
4849 TPACPI_LED_OFF :
4850 (tpacpi_led_state_cache[led] == TPACPI_LED_BLINK) ?
4851 TPACPI_LED_BLINK : TPACPI_LED_ON);
4852}
4853
4854static void led_set_status_worker(struct work_struct *work) 4851static void led_set_status_worker(struct work_struct *work)
4855{ 4852{
4856 struct tpacpi_led_classdev *data = 4853 struct tpacpi_led_classdev *data =
4857 container_of(work, struct tpacpi_led_classdev, work); 4854 container_of(work, struct tpacpi_led_classdev, work);
4858 4855
4859 if (likely(tpacpi_lifecycle == TPACPI_LIFE_RUNNING)) 4856 if (likely(tpacpi_lifecycle == TPACPI_LIFE_RUNNING))
4860 led_sysfs_set_status(data->led, data->new_brightness); 4857 led_set_status(data->led, data->new_state);
4861} 4858}
4862 4859
4863static void led_sysfs_set(struct led_classdev *led_cdev, 4860static void led_sysfs_set(struct led_classdev *led_cdev,
@@ -4866,7 +4863,13 @@ static void led_sysfs_set(struct led_classdev *led_cdev,
4866 struct tpacpi_led_classdev *data = container_of(led_cdev, 4863 struct tpacpi_led_classdev *data = container_of(led_cdev,
4867 struct tpacpi_led_classdev, led_classdev); 4864 struct tpacpi_led_classdev, led_classdev);
4868 4865
4869 data->new_brightness = brightness; 4866 if (brightness == LED_OFF)
4867 data->new_state = TPACPI_LED_OFF;
4868 else if (tpacpi_led_state_cache[data->led] != TPACPI_LED_BLINK)
4869 data->new_state = TPACPI_LED_ON;
4870 else
4871 data->new_state = TPACPI_LED_BLINK;
4872
4870 queue_work(tpacpi_wq, &data->work); 4873 queue_work(tpacpi_wq, &data->work);
4871} 4874}
4872 4875
@@ -4884,7 +4887,7 @@ static int led_sysfs_blink_set(struct led_classdev *led_cdev,
4884 } else if ((*delay_on != 500) || (*delay_off != 500)) 4887 } else if ((*delay_on != 500) || (*delay_off != 500))
4885 return -EINVAL; 4888 return -EINVAL;
4886 4889
4887 data->new_brightness = TPACPI_LED_BLINK; 4890 data->new_state = TPACPI_LED_BLINK;
4888 queue_work(tpacpi_wq, &data->work); 4891 queue_work(tpacpi_wq, &data->work);
4889 4892
4890 return 0; 4893 return 0;
@@ -7858,6 +7861,15 @@ static int __init thinkpad_acpi_module_init(void)
7858MODULE_ALIAS(TPACPI_DRVR_SHORTNAME); 7861MODULE_ALIAS(TPACPI_DRVR_SHORTNAME);
7859 7862
7860/* 7863/*
7864 * This will autoload the driver in almost every ThinkPad
7865 * in widespread use.
7866 *
7867 * Only _VERY_ old models, like the 240, 240x and 570 lack
7868 * the HKEY event interface.
7869 */
7870MODULE_DEVICE_TABLE(acpi, ibm_htk_device_ids);
7871
7872/*
7861 * DMI matching for module autoloading 7873 * DMI matching for module autoloading
7862 * 7874 *
7863 * See http://thinkwiki.org/wiki/List_of_DMI_IDs 7875 * See http://thinkwiki.org/wiki/List_of_DMI_IDs
@@ -7869,18 +7881,13 @@ MODULE_ALIAS(TPACPI_DRVR_SHORTNAME);
7869#define IBM_BIOS_MODULE_ALIAS(__type) \ 7881#define IBM_BIOS_MODULE_ALIAS(__type) \
7870 MODULE_ALIAS("dmi:bvnIBM:bvr" __type "ET??WW*") 7882 MODULE_ALIAS("dmi:bvnIBM:bvr" __type "ET??WW*")
7871 7883
7872/* Non-ancient thinkpads */
7873MODULE_ALIAS("dmi:bvnIBM:*:svnIBM:*:pvrThinkPad*:rvnIBM:*");
7874MODULE_ALIAS("dmi:bvnLENOVO:*:svnLENOVO:*:pvrThinkPad*:rvnLENOVO:*");
7875
7876/* Ancient thinkpad BIOSes have to be identified by 7884/* Ancient thinkpad BIOSes have to be identified by
7877 * BIOS type or model number, and there are far less 7885 * BIOS type or model number, and there are far less
7878 * BIOS types than model numbers... */ 7886 * BIOS types than model numbers... */
7879IBM_BIOS_MODULE_ALIAS("I[BDHIMNOTWVYZ]"); 7887IBM_BIOS_MODULE_ALIAS("I[MU]"); /* 570, 570e */
7880IBM_BIOS_MODULE_ALIAS("1[0368A-GIKM-PST]");
7881IBM_BIOS_MODULE_ALIAS("K[UX-Z]");
7882 7888
7883MODULE_AUTHOR("Borislav Deianov, Henrique de Moraes Holschuh"); 7889MODULE_AUTHOR("Borislav Deianov <borislav@users.sf.net>");
7890MODULE_AUTHOR("Henrique de Moraes Holschuh <hmh@hmh.eng.br>");
7884MODULE_DESCRIPTION(TPACPI_DESC); 7891MODULE_DESCRIPTION(TPACPI_DESC);
7885MODULE_VERSION(TPACPI_VERSION); 7892MODULE_VERSION(TPACPI_VERSION);
7886MODULE_LICENSE("GPL"); 7893MODULE_LICENSE("GPL");
diff --git a/drivers/regulator/bq24022.c b/drivers/regulator/bq24022.c
index 7ecb820ceebc..d08cd9b66c6d 100644
--- a/drivers/regulator/bq24022.c
+++ b/drivers/regulator/bq24022.c
@@ -61,8 +61,7 @@ static int bq24022_disable(struct regulator_dev *rdev)
61 61
62static int bq24022_is_enabled(struct regulator_dev *rdev) 62static int bq24022_is_enabled(struct regulator_dev *rdev)
63{ 63{
64 struct platform_device *pdev = rdev_get_drvdata(rdev); 64 struct bq24022_mach_info *pdata = rdev_get_drvdata(rdev);
65 struct bq24022_mach_info *pdata = pdev->dev.platform_data;
66 65
67 return !gpio_get_value(pdata->gpio_nce); 66 return !gpio_get_value(pdata->gpio_nce);
68} 67}
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 01f7702a805d..98c3a74e9949 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -540,8 +540,8 @@ static void drms_uA_update(struct regulator_dev *rdev)
540 540
541 err = regulator_check_drms(rdev); 541 err = regulator_check_drms(rdev);
542 if (err < 0 || !rdev->desc->ops->get_optimum_mode || 542 if (err < 0 || !rdev->desc->ops->get_optimum_mode ||
543 !rdev->desc->ops->get_voltage || !rdev->desc->ops->set_mode); 543 !rdev->desc->ops->get_voltage || !rdev->desc->ops->set_mode)
544 return; 544 return;
545 545
546 /* get output voltage */ 546 /* get output voltage */
547 output_uV = rdev->desc->ops->get_voltage(rdev); 547 output_uV = rdev->desc->ops->get_voltage(rdev);
@@ -703,10 +703,13 @@ static int set_machine_constraints(struct regulator_dev *rdev,
703 int cmin = constraints->min_uV; 703 int cmin = constraints->min_uV;
704 int cmax = constraints->max_uV; 704 int cmax = constraints->max_uV;
705 705
706 /* it's safe to autoconfigure fixed-voltage supplies */ 706 /* it's safe to autoconfigure fixed-voltage supplies
707 and the constraints are used by list_voltage. */
707 if (count == 1 && !cmin) { 708 if (count == 1 && !cmin) {
708 cmin = INT_MIN; 709 cmin = 1;
709 cmax = INT_MAX; 710 cmax = INT_MAX;
711 constraints->min_uV = cmin;
712 constraints->max_uV = cmax;
710 } 713 }
711 714
712 /* voltage constraints are optional */ 715 /* voltage constraints are optional */
@@ -2001,8 +2004,8 @@ struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
2001 if (regulator_desc->name == NULL || regulator_desc->ops == NULL) 2004 if (regulator_desc->name == NULL || regulator_desc->ops == NULL)
2002 return ERR_PTR(-EINVAL); 2005 return ERR_PTR(-EINVAL);
2003 2006
2004 if (!regulator_desc->type == REGULATOR_VOLTAGE && 2007 if (regulator_desc->type != REGULATOR_VOLTAGE &&
2005 !regulator_desc->type == REGULATOR_CURRENT) 2008 regulator_desc->type != REGULATOR_CURRENT)
2006 return ERR_PTR(-EINVAL); 2009 return ERR_PTR(-EINVAL);
2007 2010
2008 if (!init_data) 2011 if (!init_data)
@@ -2080,6 +2083,10 @@ out:
2080 2083
2081scrub: 2084scrub:
2082 device_unregister(&rdev->dev); 2085 device_unregister(&rdev->dev);
2086 /* device core frees rdev */
2087 rdev = ERR_PTR(ret);
2088 goto out;
2089
2083clean: 2090clean:
2084 kfree(rdev); 2091 kfree(rdev);
2085 rdev = ERR_PTR(ret); 2092 rdev = ERR_PTR(ret);
diff --git a/drivers/regulator/virtual.c b/drivers/regulator/virtual.c
index 3d08348584e1..71403fa3ffa1 100644
--- a/drivers/regulator/virtual.c
+++ b/drivers/regulator/virtual.c
@@ -230,13 +230,13 @@ static ssize_t set_mode(struct device *dev, struct device_attribute *attr,
230 * sysfs_streq() doesn't need the \n's, but we add them so the strings 230 * sysfs_streq() doesn't need the \n's, but we add them so the strings
231 * will be shared with show_mode(), above. 231 * will be shared with show_mode(), above.
232 */ 232 */
233 if (sysfs_streq(buf, "fast\n") == 0) 233 if (sysfs_streq(buf, "fast\n"))
234 mode = REGULATOR_MODE_FAST; 234 mode = REGULATOR_MODE_FAST;
235 else if (sysfs_streq(buf, "normal\n") == 0) 235 else if (sysfs_streq(buf, "normal\n"))
236 mode = REGULATOR_MODE_NORMAL; 236 mode = REGULATOR_MODE_NORMAL;
237 else if (sysfs_streq(buf, "idle\n") == 0) 237 else if (sysfs_streq(buf, "idle\n"))
238 mode = REGULATOR_MODE_IDLE; 238 mode = REGULATOR_MODE_IDLE;
239 else if (sysfs_streq(buf, "standby\n") == 0) 239 else if (sysfs_streq(buf, "standby\n"))
240 mode = REGULATOR_MODE_STANDBY; 240 mode = REGULATOR_MODE_STANDBY;
241 else { 241 else {
242 dev_err(dev, "Configuring invalid mode\n"); 242 dev_err(dev, "Configuring invalid mode\n");
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index ffe34a12f446..4e9851fc1746 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -573,7 +573,7 @@ config RTC_DRV_SA1100
573 573
574config RTC_DRV_SH 574config RTC_DRV_SH
575 tristate "SuperH On-Chip RTC" 575 tristate "SuperH On-Chip RTC"
576 depends on RTC_CLASS && SUPERH 576 depends on RTC_CLASS && SUPERH && HAVE_CLK
577 help 577 help
578 Say Y here to enable support for the on-chip RTC found in 578 Say Y here to enable support for the on-chip RTC found in
579 most SuperH processors. 579 most SuperH processors.
diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index b6d35f50e404..23e10b6263d6 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -797,17 +797,15 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
797 goto cleanup2; 797 goto cleanup2;
798 } 798 }
799 799
800 pr_info("%s: alarms up to one %s%s, %zd bytes nvram%s\n", 800 pr_info("%s: %s%s, %zd bytes nvram%s\n",
801 dev_name(&cmos_rtc.rtc->dev), 801 dev_name(&cmos_rtc.rtc->dev),
802 is_valid_irq(rtc_irq) 802 !is_valid_irq(rtc_irq) ? "no alarms" :
803 ? (cmos_rtc.mon_alrm 803 cmos_rtc.mon_alrm ? "alarms up to one year" :
804 ? "year" 804 cmos_rtc.day_alrm ? "alarms up to one month" :
805 : (cmos_rtc.day_alrm 805 "alarms up to one day",
806 ? "month" : "day")) 806 cmos_rtc.century ? ", y3k" : "",
807 : "no", 807 nvram.size,
808 cmos_rtc.century ? ", y3k" : "", 808 is_hpet_enabled() ? ", hpet irqs" : "");
809 nvram.size,
810 is_hpet_enabled() ? ", hpet irqs" : "");
811 809
812 return 0; 810 return 0;
813 811
diff --git a/drivers/rtc/rtc-sh.c b/drivers/rtc/rtc-sh.c
index 9b1ff12bf947..d7310adb7152 100644
--- a/drivers/rtc/rtc-sh.c
+++ b/drivers/rtc/rtc-sh.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * SuperH On-Chip RTC Support 2 * SuperH On-Chip RTC Support
3 * 3 *
4 * Copyright (C) 2006, 2007, 2008 Paul Mundt 4 * Copyright (C) 2006 - 2009 Paul Mundt
5 * Copyright (C) 2006 Jamie Lenehan 5 * Copyright (C) 2006 Jamie Lenehan
6 * Copyright (C) 2008 Angelo Castello 6 * Copyright (C) 2008 Angelo Castello
7 * 7 *
@@ -25,10 +25,11 @@
25#include <linux/spinlock.h> 25#include <linux/spinlock.h>
26#include <linux/io.h> 26#include <linux/io.h>
27#include <linux/log2.h> 27#include <linux/log2.h>
28#include <linux/clk.h>
28#include <asm/rtc.h> 29#include <asm/rtc.h>
29 30
30#define DRV_NAME "sh-rtc" 31#define DRV_NAME "sh-rtc"
31#define DRV_VERSION "0.2.1" 32#define DRV_VERSION "0.2.2"
32 33
33#define RTC_REG(r) ((r) * rtc_reg_size) 34#define RTC_REG(r) ((r) * rtc_reg_size)
34 35
@@ -87,16 +88,17 @@
87#define RCR2_START 0x01 /* Start bit */ 88#define RCR2_START 0x01 /* Start bit */
88 89
89struct sh_rtc { 90struct sh_rtc {
90 void __iomem *regbase; 91 void __iomem *regbase;
91 unsigned long regsize; 92 unsigned long regsize;
92 struct resource *res; 93 struct resource *res;
93 int alarm_irq; 94 int alarm_irq;
94 int periodic_irq; 95 int periodic_irq;
95 int carry_irq; 96 int carry_irq;
96 struct rtc_device *rtc_dev; 97 struct clk *clk;
97 spinlock_t lock; 98 struct rtc_device *rtc_dev;
98 unsigned long capabilities; /* See asm-sh/rtc.h for cap bits */ 99 spinlock_t lock;
99 unsigned short periodic_freq; 100 unsigned long capabilities; /* See asm/rtc.h for cap bits */
101 unsigned short periodic_freq;
100}; 102};
101 103
102static int __sh_rtc_interrupt(struct sh_rtc *rtc) 104static int __sh_rtc_interrupt(struct sh_rtc *rtc)
@@ -294,10 +296,10 @@ static inline void sh_rtc_setaie(struct device *dev, unsigned int enable)
294 296
295 tmp = readb(rtc->regbase + RCR1); 297 tmp = readb(rtc->regbase + RCR1);
296 298
297 if (!enable) 299 if (enable)
298 tmp &= ~RCR1_AIE;
299 else
300 tmp |= RCR1_AIE; 300 tmp |= RCR1_AIE;
301 else
302 tmp &= ~RCR1_AIE;
301 303
302 writeb(tmp, rtc->regbase + RCR1); 304 writeb(tmp, rtc->regbase + RCR1);
303 305
@@ -618,6 +620,7 @@ static int sh_rtc_irq_set_freq(struct device *dev, int freq)
618{ 620{
619 if (!is_power_of_2(freq)) 621 if (!is_power_of_2(freq))
620 return -EINVAL; 622 return -EINVAL;
623
621 return sh_rtc_ioctl(dev, RTC_IRQP_SET, freq); 624 return sh_rtc_ioctl(dev, RTC_IRQP_SET, freq);
622} 625}
623 626
@@ -637,7 +640,8 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev)
637 struct sh_rtc *rtc; 640 struct sh_rtc *rtc;
638 struct resource *res; 641 struct resource *res;
639 struct rtc_time r; 642 struct rtc_time r;
640 int ret; 643 char clk_name[6];
644 int clk_id, ret;
641 645
642 rtc = kzalloc(sizeof(struct sh_rtc), GFP_KERNEL); 646 rtc = kzalloc(sizeof(struct sh_rtc), GFP_KERNEL);
643 if (unlikely(!rtc)) 647 if (unlikely(!rtc))
@@ -652,6 +656,7 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev)
652 dev_err(&pdev->dev, "No IRQ resource\n"); 656 dev_err(&pdev->dev, "No IRQ resource\n");
653 goto err_badres; 657 goto err_badres;
654 } 658 }
659
655 rtc->periodic_irq = ret; 660 rtc->periodic_irq = ret;
656 rtc->carry_irq = platform_get_irq(pdev, 1); 661 rtc->carry_irq = platform_get_irq(pdev, 1);
657 rtc->alarm_irq = platform_get_irq(pdev, 2); 662 rtc->alarm_irq = platform_get_irq(pdev, 2);
@@ -663,7 +668,7 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev)
663 goto err_badres; 668 goto err_badres;
664 } 669 }
665 670
666 rtc->regsize = res->end - res->start + 1; 671 rtc->regsize = resource_size(res);
667 672
668 rtc->res = request_mem_region(res->start, rtc->regsize, pdev->name); 673 rtc->res = request_mem_region(res->start, rtc->regsize, pdev->name);
669 if (unlikely(!rtc->res)) { 674 if (unlikely(!rtc->res)) {
@@ -677,6 +682,26 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev)
677 goto err_badmap; 682 goto err_badmap;
678 } 683 }
679 684
685 clk_id = pdev->id;
686 /* With a single device, the clock id is still "rtc0" */
687 if (clk_id < 0)
688 clk_id = 0;
689
690 snprintf(clk_name, sizeof(clk_name), "rtc%d", clk_id);
691
692 rtc->clk = clk_get(&pdev->dev, clk_name);
693 if (IS_ERR(rtc->clk)) {
694 /*
695 * No error handling for rtc->clk intentionally, not all
696 * platforms will have a unique clock for the RTC, and
697 * the clk API can handle the struct clk pointer being
698 * NULL.
699 */
700 rtc->clk = NULL;
701 }
702
703 clk_enable(rtc->clk);
704
680 rtc->rtc_dev = rtc_device_register("sh", &pdev->dev, 705 rtc->rtc_dev = rtc_device_register("sh", &pdev->dev,
681 &sh_rtc_ops, THIS_MODULE); 706 &sh_rtc_ops, THIS_MODULE);
682 if (IS_ERR(rtc->rtc_dev)) { 707 if (IS_ERR(rtc->rtc_dev)) {
@@ -759,6 +784,8 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev)
759 return 0; 784 return 0;
760 785
761err_unmap: 786err_unmap:
787 clk_disable(rtc->clk);
788 clk_put(rtc->clk);
762 iounmap(rtc->regbase); 789 iounmap(rtc->regbase);
763err_badmap: 790err_badmap:
764 release_resource(rtc->res); 791 release_resource(rtc->res);
@@ -780,6 +807,7 @@ static int __devexit sh_rtc_remove(struct platform_device *pdev)
780 sh_rtc_setcie(&pdev->dev, 0); 807 sh_rtc_setcie(&pdev->dev, 0);
781 808
782 free_irq(rtc->periodic_irq, rtc); 809 free_irq(rtc->periodic_irq, rtc);
810
783 if (rtc->carry_irq > 0) { 811 if (rtc->carry_irq > 0) {
784 free_irq(rtc->carry_irq, rtc); 812 free_irq(rtc->carry_irq, rtc);
785 free_irq(rtc->alarm_irq, rtc); 813 free_irq(rtc->alarm_irq, rtc);
@@ -789,6 +817,9 @@ static int __devexit sh_rtc_remove(struct platform_device *pdev)
789 817
790 iounmap(rtc->regbase); 818 iounmap(rtc->regbase);
791 819
820 clk_disable(rtc->clk);
821 clk_put(rtc->clk);
822
792 platform_set_drvdata(pdev, NULL); 823 platform_set_drvdata(pdev, NULL);
793 824
794 kfree(rtc); 825 kfree(rtc);
@@ -802,11 +833,11 @@ static void sh_rtc_set_irq_wake(struct device *dev, int enabled)
802 struct sh_rtc *rtc = platform_get_drvdata(pdev); 833 struct sh_rtc *rtc = platform_get_drvdata(pdev);
803 834
804 set_irq_wake(rtc->periodic_irq, enabled); 835 set_irq_wake(rtc->periodic_irq, enabled);
836
805 if (rtc->carry_irq > 0) { 837 if (rtc->carry_irq > 0) {
806 set_irq_wake(rtc->carry_irq, enabled); 838 set_irq_wake(rtc->carry_irq, enabled);
807 set_irq_wake(rtc->alarm_irq, enabled); 839 set_irq_wake(rtc->alarm_irq, enabled);
808 } 840 }
809
810} 841}
811 842
812static int sh_rtc_suspend(struct device *dev) 843static int sh_rtc_suspend(struct device *dev)
diff --git a/drivers/s390/char/tape.h b/drivers/s390/char/tape.h
index c07809c8016a..5469e099597e 100644
--- a/drivers/s390/char/tape.h
+++ b/drivers/s390/char/tape.h
@@ -285,7 +285,7 @@ extern int tape_mtop(struct tape_device *, int, int);
285extern void tape_state_set(struct tape_device *, enum tape_state); 285extern void tape_state_set(struct tape_device *, enum tape_state);
286 286
287extern int tape_generic_online(struct tape_device *, struct tape_discipline *); 287extern int tape_generic_online(struct tape_device *, struct tape_discipline *);
288extern int tape_generic_offline(struct tape_device *device); 288extern int tape_generic_offline(struct ccw_device *);
289 289
290/* Externals from tape_devmap.c */ 290/* Externals from tape_devmap.c */
291extern int tape_generic_probe(struct ccw_device *); 291extern int tape_generic_probe(struct ccw_device *);
diff --git a/drivers/s390/char/tape_34xx.c b/drivers/s390/char/tape_34xx.c
index 807ded5eb049..5f8e8ef43dd3 100644
--- a/drivers/s390/char/tape_34xx.c
+++ b/drivers/s390/char/tape_34xx.c
@@ -1294,12 +1294,6 @@ tape_34xx_online(struct ccw_device *cdev)
1294 ); 1294 );
1295} 1295}
1296 1296
1297static int
1298tape_34xx_offline(struct ccw_device *cdev)
1299{
1300 return tape_generic_offline(cdev->dev.driver_data);
1301}
1302
1303static struct ccw_driver tape_34xx_driver = { 1297static struct ccw_driver tape_34xx_driver = {
1304 .name = "tape_34xx", 1298 .name = "tape_34xx",
1305 .owner = THIS_MODULE, 1299 .owner = THIS_MODULE,
@@ -1307,7 +1301,7 @@ static struct ccw_driver tape_34xx_driver = {
1307 .probe = tape_generic_probe, 1301 .probe = tape_generic_probe,
1308 .remove = tape_generic_remove, 1302 .remove = tape_generic_remove,
1309 .set_online = tape_34xx_online, 1303 .set_online = tape_34xx_online,
1310 .set_offline = tape_34xx_offline, 1304 .set_offline = tape_generic_offline,
1311}; 1305};
1312 1306
1313static int 1307static int
diff --git a/drivers/s390/char/tape_3590.c b/drivers/s390/char/tape_3590.c
index fc1d91294143..823b05bd0dd7 100644
--- a/drivers/s390/char/tape_3590.c
+++ b/drivers/s390/char/tape_3590.c
@@ -1707,19 +1707,13 @@ tape_3590_online(struct ccw_device *cdev)
1707 &tape_discipline_3590); 1707 &tape_discipline_3590);
1708} 1708}
1709 1709
1710static int
1711tape_3590_offline(struct ccw_device *cdev)
1712{
1713 return tape_generic_offline(cdev->dev.driver_data);
1714}
1715
1716static struct ccw_driver tape_3590_driver = { 1710static struct ccw_driver tape_3590_driver = {
1717 .name = "tape_3590", 1711 .name = "tape_3590",
1718 .owner = THIS_MODULE, 1712 .owner = THIS_MODULE,
1719 .ids = tape_3590_ids, 1713 .ids = tape_3590_ids,
1720 .probe = tape_generic_probe, 1714 .probe = tape_generic_probe,
1721 .remove = tape_generic_remove, 1715 .remove = tape_generic_remove,
1722 .set_offline = tape_3590_offline, 1716 .set_offline = tape_generic_offline,
1723 .set_online = tape_3590_online, 1717 .set_online = tape_3590_online,
1724}; 1718};
1725 1719
diff --git a/drivers/s390/char/tape_core.c b/drivers/s390/char/tape_core.c
index 08c09d3503cf..8a109f3b69c6 100644
--- a/drivers/s390/char/tape_core.c
+++ b/drivers/s390/char/tape_core.c
@@ -387,8 +387,11 @@ tape_cleanup_device(struct tape_device *device)
387 * Manual offline is only allowed while the drive is not in use. 387 * Manual offline is only allowed while the drive is not in use.
388 */ 388 */
389int 389int
390tape_generic_offline(struct tape_device *device) 390tape_generic_offline(struct ccw_device *cdev)
391{ 391{
392 struct tape_device *device;
393
394 device = cdev->dev.driver_data;
392 if (!device) { 395 if (!device) {
393 return -ENODEV; 396 return -ENODEV;
394 } 397 }
diff --git a/drivers/scsi/a4000t.c b/drivers/scsi/a4000t.c
index 61af3d91ac8a..e3519fa5a3ba 100644
--- a/drivers/scsi/a4000t.c
+++ b/drivers/scsi/a4000t.c
@@ -129,7 +129,7 @@ static int __init a4000t_scsi_init(void)
129 a4000t_scsi_device = platform_device_register_simple("a4000t-scsi", 129 a4000t_scsi_device = platform_device_register_simple("a4000t-scsi",
130 -1, NULL, 0); 130 -1, NULL, 0);
131 if (IS_ERR(a4000t_scsi_device)) { 131 if (IS_ERR(a4000t_scsi_device)) {
132 platform_driver_register(&a4000t_scsi_driver); 132 platform_driver_unregister(&a4000t_scsi_driver);
133 return PTR_ERR(a4000t_scsi_device); 133 return PTR_ERR(a4000t_scsi_device);
134 } 134 }
135 135
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index a14d245a66b8..6f51ca485f35 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -180,8 +180,6 @@ int scsi_complete_async_scans(void)
180 spin_unlock(&async_scan_lock); 180 spin_unlock(&async_scan_lock);
181 181
182 kfree(data); 182 kfree(data);
183 /* Synchronize async operations globally */
184 async_synchronize_full();
185 return 0; 183 return 0;
186} 184}
187 185
diff --git a/drivers/scsi/scsi_wait_scan.c b/drivers/scsi/scsi_wait_scan.c
index 2f21af21269a..74708fcaf82f 100644
--- a/drivers/scsi/scsi_wait_scan.c
+++ b/drivers/scsi/scsi_wait_scan.c
@@ -11,10 +11,21 @@
11 */ 11 */
12 12
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/device.h>
14#include <scsi/scsi_scan.h> 15#include <scsi/scsi_scan.h>
15 16
16static int __init wait_scan_init(void) 17static int __init wait_scan_init(void)
17{ 18{
19 /*
20 * First we need to wait for device probing to finish;
21 * the drivers we just loaded might just still be probing
22 * and might not yet have reached the scsi async scanning
23 */
24 wait_for_device_probe();
25 /*
26 * and then we wait for the actual asynchronous scsi scan
27 * to finish.
28 */
18 scsi_complete_async_scans(); 29 scsi_complete_async_scans();
19 return 0; 30 return 0;
20} 31}
diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
index 7ddff3f55087..938bc1b6c3fa 100644
--- a/drivers/serial/8250_pci.c
+++ b/drivers/serial/8250_pci.c
@@ -771,8 +771,6 @@ static int pci_netmos_init(struct pci_dev *dev)
771} 771}
772 772
773/* 773/*
774 * ITE support by Niels de Vos <niels.devos@wincor-nixdorf.com>
775 *
776 * These chips are available with optionally one parallel port and up to 774 * These chips are available with optionally one parallel port and up to
777 * two serial ports. Unfortunately they all have the same product id. 775 * two serial ports. Unfortunately they all have the same product id.
778 * 776 *
diff --git a/drivers/serial/bfin_5xx.c b/drivers/serial/bfin_5xx.c
index 18ba812a4f84..d86123e03391 100644
--- a/drivers/serial/bfin_5xx.c
+++ b/drivers/serial/bfin_5xx.c
@@ -166,7 +166,7 @@ static void bfin_serial_start_tx(struct uart_port *port)
166 struct tty_struct *tty = uart->port.info->port.tty; 166 struct tty_struct *tty = uart->port.info->port.tty;
167 167
168#ifdef CONFIG_SERIAL_BFIN_HARD_CTSRTS 168#ifdef CONFIG_SERIAL_BFIN_HARD_CTSRTS
169 if (uart->scts && (!bfin_serial_get_mctrl(&uart->port)&TIOCM_CTS)) { 169 if (uart->scts && !(bfin_serial_get_mctrl(&uart->port) & TIOCM_CTS)) {
170 uart->scts = 0; 170 uart->scts = 0;
171 uart_handle_cts_change(&uart->port, uart->scts); 171 uart_handle_cts_change(&uart->port, uart->scts);
172 } 172 }
@@ -368,7 +368,7 @@ static irqreturn_t bfin_serial_tx_int(int irq, void *dev_id)
368 struct bfin_serial_port *uart = dev_id; 368 struct bfin_serial_port *uart = dev_id;
369 369
370#ifdef CONFIG_SERIAL_BFIN_HARD_CTSRTS 370#ifdef CONFIG_SERIAL_BFIN_HARD_CTSRTS
371 if (uart->scts && (!bfin_serial_get_mctrl(&uart->port)&TIOCM_CTS)) { 371 if (uart->scts && !(bfin_serial_get_mctrl(&uart->port) & TIOCM_CTS)) {
372 uart->scts = 0; 372 uart->scts = 0;
373 uart_handle_cts_change(&uart->port, uart->scts); 373 uart_handle_cts_change(&uart->port, uart->scts);
374 } 374 }
@@ -504,7 +504,7 @@ static irqreturn_t bfin_serial_dma_tx_int(int irq, void *dev_id)
504 struct circ_buf *xmit = &uart->port.info->xmit; 504 struct circ_buf *xmit = &uart->port.info->xmit;
505 505
506#ifdef CONFIG_SERIAL_BFIN_HARD_CTSRTS 506#ifdef CONFIG_SERIAL_BFIN_HARD_CTSRTS
507 if (uart->scts && (!bfin_serial_get_mctrl(&uart->port)&TIOCM_CTS)) { 507 if (uart->scts && !(bfin_serial_get_mctrl(&uart->port)&TIOCM_CTS)) {
508 uart->scts = 0; 508 uart->scts = 0;
509 uart_handle_cts_change(&uart->port, uart->scts); 509 uart_handle_cts_change(&uart->port, uart->scts);
510 } 510 }
diff --git a/drivers/spi/pxa2xx_spi.c b/drivers/spi/pxa2xx_spi.c
index c76feea5fe25..885194a07418 100644
--- a/drivers/spi/pxa2xx_spi.c
+++ b/drivers/spi/pxa2xx_spi.c
@@ -213,7 +213,7 @@ static int flush(struct driver_data *drv_data)
213 while (read_SSSR(reg) & SSSR_RNE) { 213 while (read_SSSR(reg) & SSSR_RNE) {
214 read_SSDR(reg); 214 read_SSDR(reg);
215 } 215 }
216 } while ((read_SSSR(reg) & SSSR_BSY) && limit--); 216 } while ((read_SSSR(reg) & SSSR_BSY) && --limit);
217 write_SSSR(SSSR_ROR, reg); 217 write_SSSR(SSSR_ROR, reg);
218 218
219 return limit; 219 return limit;
@@ -484,7 +484,7 @@ static int wait_ssp_rx_stall(void const __iomem *ioaddr)
484{ 484{
485 unsigned long limit = loops_per_jiffy << 1; 485 unsigned long limit = loops_per_jiffy << 1;
486 486
487 while ((read_SSSR(ioaddr) & SSSR_BSY) && limit--) 487 while ((read_SSSR(ioaddr) & SSSR_BSY) && --limit)
488 cpu_relax(); 488 cpu_relax();
489 489
490 return limit; 490 return limit;
@@ -494,7 +494,7 @@ static int wait_dma_channel_stop(int channel)
494{ 494{
495 unsigned long limit = loops_per_jiffy << 1; 495 unsigned long limit = loops_per_jiffy << 1;
496 496
497 while (!(DCSR(channel) & DCSR_STOPSTATE) && limit--) 497 while (!(DCSR(channel) & DCSR_STOPSTATE) && --limit)
498 cpu_relax(); 498 cpu_relax();
499 499
500 return limit; 500 return limit;
@@ -1700,6 +1700,13 @@ static int pxa2xx_spi_resume(struct platform_device *pdev)
1700 struct ssp_device *ssp = drv_data->ssp; 1700 struct ssp_device *ssp = drv_data->ssp;
1701 int status = 0; 1701 int status = 0;
1702 1702
1703 if (drv_data->rx_channel != -1)
1704 DRCMR(drv_data->ssp->drcmr_rx) =
1705 DRCMR_MAPVLD | drv_data->rx_channel;
1706 if (drv_data->tx_channel != -1)
1707 DRCMR(drv_data->ssp->drcmr_tx) =
1708 DRCMR_MAPVLD | drv_data->tx_channel;
1709
1703 /* Enable the SSP clock */ 1710 /* Enable the SSP clock */
1704 clk_enable(ssp->clk); 1711 clk_enable(ssp->clk);
1705 1712
diff --git a/drivers/staging/go7007/go7007-driver.c b/drivers/staging/go7007/go7007-driver.c
index f47c0ce2849a..77b1e769ac92 100644
--- a/drivers/staging/go7007/go7007-driver.c
+++ b/drivers/staging/go7007/go7007-driver.c
@@ -191,8 +191,10 @@ int go7007_reset_encoder(struct go7007 *go)
191/* 191/*
192 * Attempt to instantiate an I2C client by ID, probably loading a module. 192 * Attempt to instantiate an I2C client by ID, probably loading a module.
193 */ 193 */
194static int init_i2c_module(struct i2c_adapter *adapter, int id, int addr) 194static int init_i2c_module(struct i2c_adapter *adapter, const char *type,
195 int id, int addr)
195{ 196{
197 struct i2c_board_info info;
196 char *modname; 198 char *modname;
197 199
198 switch (id) { 200 switch (id) {
@@ -226,7 +228,11 @@ static int init_i2c_module(struct i2c_adapter *adapter, int id, int addr)
226 } 228 }
227 if (modname != NULL) 229 if (modname != NULL)
228 request_module(modname); 230 request_module(modname);
229 if (wis_i2c_probe_device(adapter, id, addr) == 1) 231
232 memset(&info, 0, sizeof(struct i2c_board_info));
233 info.addr = addr;
234 strlcpy(info.type, type, I2C_NAME_SIZE);
235 if (!i2c_new_device(adapter, &info))
230 return 0; 236 return 0;
231 if (modname != NULL) 237 if (modname != NULL)
232 printk(KERN_INFO 238 printk(KERN_INFO
@@ -266,6 +272,7 @@ int go7007_register_encoder(struct go7007 *go)
266 if (go->i2c_adapter_online) { 272 if (go->i2c_adapter_online) {
267 for (i = 0; i < go->board_info->num_i2c_devs; ++i) 273 for (i = 0; i < go->board_info->num_i2c_devs; ++i)
268 init_i2c_module(&go->i2c_adapter, 274 init_i2c_module(&go->i2c_adapter,
275 go->board_info->i2c_devs[i].type,
269 go->board_info->i2c_devs[i].id, 276 go->board_info->i2c_devs[i].id,
270 go->board_info->i2c_devs[i].addr); 277 go->board_info->i2c_devs[i].addr);
271 if (go->board_id == GO7007_BOARDID_ADLINK_MPG24) 278 if (go->board_id == GO7007_BOARDID_ADLINK_MPG24)
diff --git a/drivers/staging/go7007/go7007-i2c.c b/drivers/staging/go7007/go7007-i2c.c
index cd55b76eabc7..c82867fdd28d 100644
--- a/drivers/staging/go7007/go7007-i2c.c
+++ b/drivers/staging/go7007/go7007-i2c.c
@@ -31,87 +31,6 @@
31#include "go7007-priv.h" 31#include "go7007-priv.h"
32#include "wis-i2c.h" 32#include "wis-i2c.h"
33 33
34/************** Registration interface for I2C client drivers **************/
35
36/* Since there's no way to auto-probe the I2C devices connected to the I2C
37 * bus on the go7007, we have this silly little registration system that
38 * client drivers can use to register their I2C driver ID and their
39 * detect_client function (the one that's normally passed to i2c_probe).
40 *
41 * When a new go7007 device is connected, we can look up in a board info
42 * table by the USB or PCI vendor/product/revision ID to determine
43 * which I2C client module to load. The client driver module will register
44 * itself here, and then we can call the registered detect_client function
45 * to force-load a new client at the address listed in the board info table.
46 *
47 * Really the I2C subsystem should have a way to force-load I2C client
48 * drivers when we have a priori knowledge of what's on the bus, especially
49 * since the existing I2C auto-probe mechanism is so hokey, but we'll use
50 * our own mechanism for the time being. */
51
52struct wis_i2c_client_driver {
53 unsigned int id;
54 found_proc found_proc;
55 struct list_head list;
56};
57
58static LIST_HEAD(i2c_client_drivers);
59static DECLARE_MUTEX(i2c_client_driver_list_lock);
60
61/* Client drivers register here by their I2C driver ID */
62int wis_i2c_add_driver(unsigned int id, found_proc found_proc)
63{
64 struct wis_i2c_client_driver *driver;
65
66 driver = kmalloc(sizeof(struct wis_i2c_client_driver), GFP_KERNEL);
67 if (driver == NULL)
68 return -ENOMEM;
69 driver->id = id;
70 driver->found_proc = found_proc;
71
72 down(&i2c_client_driver_list_lock);
73 list_add_tail(&driver->list, &i2c_client_drivers);
74 up(&i2c_client_driver_list_lock);
75
76 return 0;
77}
78EXPORT_SYMBOL(wis_i2c_add_driver);
79
80void wis_i2c_del_driver(found_proc found_proc)
81{
82 struct wis_i2c_client_driver *driver, *next;
83
84 down(&i2c_client_driver_list_lock);
85 list_for_each_entry_safe(driver, next, &i2c_client_drivers, list)
86 if (driver->found_proc == found_proc) {
87 list_del(&driver->list);
88 kfree(driver);
89 }
90 up(&i2c_client_driver_list_lock);
91}
92EXPORT_SYMBOL(wis_i2c_del_driver);
93
94/* The main go7007 driver calls this to instantiate a client by driver
95 * ID and bus address, which are both stored in the board info table */
96int wis_i2c_probe_device(struct i2c_adapter *adapter,
97 unsigned int id, int addr)
98{
99 struct wis_i2c_client_driver *driver;
100 int found = 0;
101
102 if (addr < 0 || addr > 0x7f)
103 return -1;
104 down(&i2c_client_driver_list_lock);
105 list_for_each_entry(driver, &i2c_client_drivers, list)
106 if (driver->id == id) {
107 if (driver->found_proc(adapter, addr, 0) == 0)
108 found = 1;
109 break;
110 }
111 up(&i2c_client_driver_list_lock);
112 return found;
113}
114
115/********************* Driver for on-board I2C adapter *********************/ 34/********************* Driver for on-board I2C adapter *********************/
116 35
117/* #define GO7007_I2C_DEBUG */ 36/* #define GO7007_I2C_DEBUG */
@@ -287,9 +206,7 @@ static struct i2c_algorithm go7007_algo = {
287 206
288static struct i2c_adapter go7007_adap_templ = { 207static struct i2c_adapter go7007_adap_templ = {
289 .owner = THIS_MODULE, 208 .owner = THIS_MODULE,
290 .class = I2C_CLASS_TV_ANALOG,
291 .name = "WIS GO7007SB", 209 .name = "WIS GO7007SB",
292 .id = I2C_ALGO_GO7007,
293 .algo = &go7007_algo, 210 .algo = &go7007_algo,
294}; 211};
295 212
diff --git a/drivers/staging/go7007/go7007-priv.h b/drivers/staging/go7007/go7007-priv.h
index 372f1f1c09b2..178d18119faa 100644
--- a/drivers/staging/go7007/go7007-priv.h
+++ b/drivers/staging/go7007/go7007-priv.h
@@ -87,6 +87,7 @@ struct go7007_board_info {
87 int audio_main_div; 87 int audio_main_div;
88 int num_i2c_devs; 88 int num_i2c_devs;
89 struct { 89 struct {
90 const char *type;
90 int id; 91 int id;
91 int addr; 92 int addr;
92 } i2c_devs[4]; 93 } i2c_devs[4];
diff --git a/drivers/staging/go7007/go7007-usb.c b/drivers/staging/go7007/go7007-usb.c
index 83eec920c7d3..aa4a9e0b9954 100644
--- a/drivers/staging/go7007/go7007-usb.c
+++ b/drivers/staging/go7007/go7007-usb.c
@@ -91,6 +91,7 @@ static struct go7007_usb_board board_matrix_ii = {
91 .num_i2c_devs = 1, 91 .num_i2c_devs = 1,
92 .i2c_devs = { 92 .i2c_devs = {
93 { 93 {
94 .type = "wis_saa7115",
94 .id = I2C_DRIVERID_WIS_SAA7115, 95 .id = I2C_DRIVERID_WIS_SAA7115,
95 .addr = 0x20, 96 .addr = 0x20,
96 }, 97 },
@@ -127,6 +128,7 @@ static struct go7007_usb_board board_matrix_reload = {
127 .num_i2c_devs = 1, 128 .num_i2c_devs = 1,
128 .i2c_devs = { 129 .i2c_devs = {
129 { 130 {
131 .type = "wis_saa7113",
130 .id = I2C_DRIVERID_WIS_SAA7113, 132 .id = I2C_DRIVERID_WIS_SAA7113,
131 .addr = 0x25, 133 .addr = 0x25,
132 }, 134 },
@@ -164,6 +166,7 @@ static struct go7007_usb_board board_star_trek = {
164 .num_i2c_devs = 1, 166 .num_i2c_devs = 1,
165 .i2c_devs = { 167 .i2c_devs = {
166 { 168 {
169 .type = "wis_saa7115",
167 .id = I2C_DRIVERID_WIS_SAA7115, 170 .id = I2C_DRIVERID_WIS_SAA7115,
168 .addr = 0x20, 171 .addr = 0x20,
169 }, 172 },
@@ -209,14 +212,17 @@ static struct go7007_usb_board board_px_tv402u = {
209 .num_i2c_devs = 3, 212 .num_i2c_devs = 3,
210 .i2c_devs = { 213 .i2c_devs = {
211 { 214 {
215 .type = "wis_saa7115",
212 .id = I2C_DRIVERID_WIS_SAA7115, 216 .id = I2C_DRIVERID_WIS_SAA7115,
213 .addr = 0x20, 217 .addr = 0x20,
214 }, 218 },
215 { 219 {
220 .type = "wis_uda1342",
216 .id = I2C_DRIVERID_WIS_UDA1342, 221 .id = I2C_DRIVERID_WIS_UDA1342,
217 .addr = 0x1a, 222 .addr = 0x1a,
218 }, 223 },
219 { 224 {
225 .type = "wis_sony_tuner",
220 .id = I2C_DRIVERID_WIS_SONY_TUNER, 226 .id = I2C_DRIVERID_WIS_SONY_TUNER,
221 .addr = 0x60, 227 .addr = 0x60,
222 }, 228 },
@@ -264,6 +270,7 @@ static struct go7007_usb_board board_xmen = {
264 .num_i2c_devs = 1, 270 .num_i2c_devs = 1,
265 .i2c_devs = { 271 .i2c_devs = {
266 { 272 {
273 .type = "wis_ov7640",
267 .id = I2C_DRIVERID_WIS_OV7640, 274 .id = I2C_DRIVERID_WIS_OV7640,
268 .addr = 0x21, 275 .addr = 0x21,
269 }, 276 },
@@ -296,6 +303,7 @@ static struct go7007_usb_board board_matrix_revolution = {
296 .num_i2c_devs = 1, 303 .num_i2c_devs = 1,
297 .i2c_devs = { 304 .i2c_devs = {
298 { 305 {
306 .type = "wis_tw9903",
299 .id = I2C_DRIVERID_WIS_TW9903, 307 .id = I2C_DRIVERID_WIS_TW9903,
300 .addr = 0x44, 308 .addr = 0x44,
301 }, 309 },
@@ -385,6 +393,7 @@ static struct go7007_usb_board board_adlink_mpg24 = {
385 .num_i2c_devs = 1, 393 .num_i2c_devs = 1,
386 .i2c_devs = { 394 .i2c_devs = {
387 { 395 {
396 .type = "wis_twTW2804",
388 .id = I2C_DRIVERID_WIS_TW2804, 397 .id = I2C_DRIVERID_WIS_TW2804,
389 .addr = 0x00, /* yes, really */ 398 .addr = 0x00, /* yes, really */
390 }, 399 },
@@ -415,8 +424,9 @@ static struct go7007_usb_board board_sensoray_2250 = {
415 .num_i2c_devs = 1, 424 .num_i2c_devs = 1,
416 .i2c_devs = { 425 .i2c_devs = {
417 { 426 {
427 .type = "s2250_board",
418 .id = I2C_DRIVERID_S2250, 428 .id = I2C_DRIVERID_S2250,
419 .addr = 0x34, 429 .addr = 0x43,
420 }, 430 },
421 }, 431 },
422 .num_inputs = 2, 432 .num_inputs = 2,
@@ -943,9 +953,7 @@ static struct i2c_algorithm go7007_usb_algo = {
943 953
944static struct i2c_adapter go7007_usb_adap_templ = { 954static struct i2c_adapter go7007_usb_adap_templ = {
945 .owner = THIS_MODULE, 955 .owner = THIS_MODULE,
946 .class = I2C_CLASS_TV_ANALOG,
947 .name = "WIS GO7007SB EZ-USB", 956 .name = "WIS GO7007SB EZ-USB",
948 .id = I2C_ALGO_GO7007_USB,
949 .algo = &go7007_usb_algo, 957 .algo = &go7007_usb_algo,
950}; 958};
951 959
diff --git a/drivers/staging/go7007/s2250-board.c b/drivers/staging/go7007/s2250-board.c
index d333ea2cd774..1706fbf06847 100644
--- a/drivers/staging/go7007/s2250-board.c
+++ b/drivers/staging/go7007/s2250-board.c
@@ -28,7 +28,6 @@ extern int s2250loader_init(void);
28extern void s2250loader_cleanup(void); 28extern void s2250loader_cleanup(void);
29 29
30#define TLV320_ADDRESS 0x34 30#define TLV320_ADDRESS 0x34
31#define S2250_VIDDEC 0x86
32#define VPX322_ADDR_ANALOGCONTROL1 0x02 31#define VPX322_ADDR_ANALOGCONTROL1 0x02
33#define VPX322_ADDR_BRIGHTNESS0 0x0127 32#define VPX322_ADDR_BRIGHTNESS0 0x0127
34#define VPX322_ADDR_BRIGHTNESS1 0x0131 33#define VPX322_ADDR_BRIGHTNESS1 0x0131
@@ -123,6 +122,7 @@ struct s2250 {
123 int hue; 122 int hue;
124 int reg12b_val; 123 int reg12b_val;
125 int audio_input; 124 int audio_input;
125 struct i2c_client *audio;
126}; 126};
127 127
128/* from go7007-usb.c which is Copyright (C) 2005-2006 Micronas USA Inc.*/ 128/* from go7007-usb.c which is Copyright (C) 2005-2006 Micronas USA Inc.*/
@@ -452,16 +452,15 @@ static int s2250_command(struct i2c_client *client,
452 { 452 {
453 struct v4l2_audio *audio = arg; 453 struct v4l2_audio *audio = arg;
454 454
455 client->addr = TLV320_ADDRESS;
456 switch (audio->index) { 455 switch (audio->index) {
457 case 0: 456 case 0:
458 write_reg(client, 0x08, 0x02); /* Line In */ 457 write_reg(dec->audio, 0x08, 0x02); /* Line In */
459 break; 458 break;
460 case 1: 459 case 1:
461 write_reg(client, 0x08, 0x04); /* Mic */ 460 write_reg(dec->audio, 0x08, 0x04); /* Mic */
462 break; 461 break;
463 case 2: 462 case 2:
464 write_reg(client, 0x08, 0x05); /* Mic Boost */ 463 write_reg(dec->audio, 0x08, 0x05); /* Mic Boost */
465 break; 464 break;
466 default: 465 default:
467 return -EINVAL; 466 return -EINVAL;
@@ -477,31 +476,23 @@ static int s2250_command(struct i2c_client *client,
477 return 0; 476 return 0;
478} 477}
479 478
480static struct i2c_driver s2250_driver; 479static int s2250_probe(struct i2c_client *client,
481 480 const struct i2c_device_id *id)
482static struct i2c_client s2250_client_templ = {
483 .name = "Sensoray 2250",
484 .driver = &s2250_driver,
485};
486
487static int s2250_detect(struct i2c_adapter *adapter, int addr, int kind)
488{ 481{
489 struct i2c_client *client; 482 struct i2c_client *audio;
483 struct i2c_adapter *adapter = client->adapter;
490 struct s2250 *dec; 484 struct s2250 *dec;
491 u8 *data; 485 u8 *data;
492 struct go7007 *go = i2c_get_adapdata(adapter); 486 struct go7007 *go = i2c_get_adapdata(adapter);
493 struct go7007_usb *usb = go->hpi_context; 487 struct go7007_usb *usb = go->hpi_context;
494 488
495 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL); 489 audio = i2c_new_dummy(adapter, TLV320_ADDRESS >> 1);
496 if (client == NULL) 490 if (audio == NULL)
497 return -ENOMEM; 491 return -ENOMEM;
498 memcpy(client, &s2250_client_templ,
499 sizeof(s2250_client_templ));
500 client->adapter = adapter;
501 492
502 dec = kmalloc(sizeof(struct s2250), GFP_KERNEL); 493 dec = kmalloc(sizeof(struct s2250), GFP_KERNEL);
503 if (dec == NULL) { 494 if (dec == NULL) {
504 kfree(client); 495 i2c_unregister_device(audio);
505 return -ENOMEM; 496 return -ENOMEM;
506 } 497 }
507 498
@@ -510,7 +501,7 @@ static int s2250_detect(struct i2c_adapter *adapter, int addr, int kind)
510 dec->contrast = 50; 501 dec->contrast = 50;
511 dec->saturation = 50; 502 dec->saturation = 50;
512 dec->hue = 0; 503 dec->hue = 0;
513 client->addr = TLV320_ADDRESS; 504 dec->audio = audio;
514 i2c_set_clientdata(client, dec); 505 i2c_set_clientdata(client, dec);
515 506
516 printk(KERN_DEBUG 507 printk(KERN_DEBUG
@@ -518,28 +509,25 @@ static int s2250_detect(struct i2c_adapter *adapter, int addr, int kind)
518 adapter->name); 509 adapter->name);
519 510
520 /* initialize the audio */ 511 /* initialize the audio */
521 client->addr = TLV320_ADDRESS; 512 if (write_regs(audio, aud_regs) < 0) {
522 if (write_regs(client, aud_regs) < 0) {
523 printk(KERN_ERR 513 printk(KERN_ERR
524 "s2250: error initializing audio\n"); 514 "s2250: error initializing audio\n");
525 kfree(client); 515 i2c_unregister_device(audio);
526 kfree(dec); 516 kfree(dec);
527 return 0; 517 return 0;
528 } 518 }
529 client->addr = S2250_VIDDEC;
530 i2c_set_clientdata(client, dec);
531 519
532 if (write_regs(client, vid_regs) < 0) { 520 if (write_regs(client, vid_regs) < 0) {
533 printk(KERN_ERR 521 printk(KERN_ERR
534 "s2250: error initializing decoder\n"); 522 "s2250: error initializing decoder\n");
535 kfree(client); 523 i2c_unregister_device(audio);
536 kfree(dec); 524 kfree(dec);
537 return 0; 525 return 0;
538 } 526 }
539 if (write_regs_fp(client, vid_regs_fp) < 0) { 527 if (write_regs_fp(client, vid_regs_fp) < 0) {
540 printk(KERN_ERR 528 printk(KERN_ERR
541 "s2250: error initializing decoder\n"); 529 "s2250: error initializing decoder\n");
542 kfree(client); 530 i2c_unregister_device(audio);
543 kfree(dec); 531 kfree(dec);
544 return 0; 532 return 0;
545 } 533 }
@@ -575,32 +563,33 @@ static int s2250_detect(struct i2c_adapter *adapter, int addr, int kind)
575 up(&usb->i2c_lock); 563 up(&usb->i2c_lock);
576 } 564 }
577 565
578 i2c_attach_client(client);
579 printk("s2250: initialized successfully\n"); 566 printk("s2250: initialized successfully\n");
580 return 0; 567 return 0;
581} 568}
582 569
583static int s2250_detach(struct i2c_client *client) 570static int s2250_remove(struct i2c_client *client)
584{ 571{
585 struct s2250 *dec = i2c_get_clientdata(client); 572 struct s2250 *dec = i2c_get_clientdata(client);
586 int r;
587
588 r = i2c_detach_client(client);
589 if (r < 0)
590 return r;
591 573
592 kfree(client); 574 i2c_set_clientdata(client, NULL);
575 i2c_unregister_device(dec->audio);
593 kfree(dec); 576 kfree(dec);
594 return 0; 577 return 0;
595} 578}
596 579
580static struct i2c_device_id s2250_id[] = {
581 { "s2250_board", 0 },
582 { }
583};
584
597static struct i2c_driver s2250_driver = { 585static struct i2c_driver s2250_driver = {
598 .driver = { 586 .driver = {
599 .name = "Sensoray 2250 board driver", 587 .name = "Sensoray 2250 board driver",
600 }, 588 },
601 .id = I2C_DRIVERID_S2250, 589 .probe = s2250_probe,
602 .detach_client = s2250_detach, 590 .remove = s2250_remove,
603 .command = s2250_command, 591 .command = s2250_command,
592 .id_table = s2250_id,
604}; 593};
605 594
606static int __init s2250_init(void) 595static int __init s2250_init(void)
@@ -613,13 +602,13 @@ static int __init s2250_init(void)
613 602
614 r = i2c_add_driver(&s2250_driver); 603 r = i2c_add_driver(&s2250_driver);
615 if (r < 0) 604 if (r < 0)
616 return r; 605 s2250loader_cleanup();
617 return wis_i2c_add_driver(s2250_driver.id, s2250_detect); 606
607 return r;
618} 608}
619 609
620static void __exit s2250_cleanup(void) 610static void __exit s2250_cleanup(void)
621{ 611{
622 wis_i2c_del_driver(s2250_detect);
623 i2c_del_driver(&s2250_driver); 612 i2c_del_driver(&s2250_driver);
624 613
625 s2250loader_cleanup(); 614 s2250loader_cleanup();
diff --git a/drivers/staging/go7007/wis-i2c.h b/drivers/staging/go7007/wis-i2c.h
index 431f41dd3966..3c2b9be455df 100644
--- a/drivers/staging/go7007/wis-i2c.h
+++ b/drivers/staging/go7007/wis-i2c.h
@@ -24,21 +24,12 @@
24#define I2C_DRIVERID_WIS_OV7640 0xf0f5 24#define I2C_DRIVERID_WIS_OV7640 0xf0f5
25#define I2C_DRIVERID_WIS_TW2804 0xf0f6 25#define I2C_DRIVERID_WIS_TW2804 0xf0f6
26#define I2C_DRIVERID_S2250 0xf0f7 26#define I2C_DRIVERID_S2250 0xf0f7
27#define I2C_ALGO_GO7007 0xf00000
28#define I2C_ALGO_GO7007_USB 0xf10000
29 27
30/* Flag to indicate that the client needs to be accessed with SCCB semantics */ 28/* Flag to indicate that the client needs to be accessed with SCCB semantics */
31/* We re-use the I2C_M_TEN value so the flag passes through the masks in the 29/* We re-use the I2C_M_TEN value so the flag passes through the masks in the
32 * core I2C code. Major kludge, but the I2C layer ain't exactly flexible. */ 30 * core I2C code. Major kludge, but the I2C layer ain't exactly flexible. */
33#define I2C_CLIENT_SCCB 0x10 31#define I2C_CLIENT_SCCB 0x10
34 32
35typedef int (*found_proc) (struct i2c_adapter *, int, int);
36int wis_i2c_add_driver(unsigned int id, found_proc found_proc);
37void wis_i2c_del_driver(found_proc found_proc);
38
39int wis_i2c_probe_device(struct i2c_adapter *adapter,
40 unsigned int id, int addr);
41
42/* Definitions for new video decoder commands */ 33/* Definitions for new video decoder commands */
43 34
44struct video_decoder_resolution { 35struct video_decoder_resolution {
diff --git a/drivers/staging/go7007/wis-ov7640.c b/drivers/staging/go7007/wis-ov7640.c
index 2f9efca04606..04d6d3a498a3 100644
--- a/drivers/staging/go7007/wis-ov7640.c
+++ b/drivers/staging/go7007/wis-ov7640.c
@@ -50,76 +50,54 @@ static int write_regs(struct i2c_client *client, u8 *regs)
50 return 0; 50 return 0;
51} 51}
52 52
53static struct i2c_driver wis_ov7640_driver; 53static int wis_ov7640_probe(struct i2c_client *client,
54 54 const struct i2c_device_id *id)
55static struct i2c_client wis_ov7640_client_templ = {
56 .name = "OV7640 (WIS)",
57 .driver = &wis_ov7640_driver,
58};
59
60static int wis_ov7640_detect(struct i2c_adapter *adapter, int addr, int kind)
61{ 55{
62 struct i2c_client *client; 56 struct i2c_adapter *adapter = client->adapter;
63 57
64 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) 58 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
65 return 0; 59 return -ENODEV;
66 60
67 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
68 if (client == NULL)
69 return -ENOMEM;
70 memcpy(client, &wis_ov7640_client_templ,
71 sizeof(wis_ov7640_client_templ));
72 client->adapter = adapter;
73 client->addr = addr;
74 client->flags = I2C_CLIENT_SCCB; 61 client->flags = I2C_CLIENT_SCCB;
75 62
76 printk(KERN_DEBUG 63 printk(KERN_DEBUG
77 "wis-ov7640: initializing OV7640 at address %d on %s\n", 64 "wis-ov7640: initializing OV7640 at address %d on %s\n",
78 addr, adapter->name); 65 client->addr, adapter->name);
79 66
80 if (write_regs(client, initial_registers) < 0) { 67 if (write_regs(client, initial_registers) < 0) {
81 printk(KERN_ERR "wis-ov7640: error initializing OV7640\n"); 68 printk(KERN_ERR "wis-ov7640: error initializing OV7640\n");
82 kfree(client); 69 return -ENODEV;
83 return 0;
84 } 70 }
85 71
86 i2c_attach_client(client);
87 return 0; 72 return 0;
88} 73}
89 74
90static int wis_ov7640_detach(struct i2c_client *client) 75static int wis_ov7640_remove(struct i2c_client *client)
91{ 76{
92 int r;
93
94 r = i2c_detach_client(client);
95 if (r < 0)
96 return r;
97
98 kfree(client);
99 return 0; 77 return 0;
100} 78}
101 79
80static struct i2c_device_id wis_ov7640_id[] = {
81 { "wis_ov7640", 0 },
82 { }
83};
84
102static struct i2c_driver wis_ov7640_driver = { 85static struct i2c_driver wis_ov7640_driver = {
103 .driver = { 86 .driver = {
104 .name = "WIS OV7640 I2C driver", 87 .name = "WIS OV7640 I2C driver",
105 }, 88 },
106 .id = I2C_DRIVERID_WIS_OV7640, 89 .probe = wis_ov7640_probe,
107 .detach_client = wis_ov7640_detach, 90 .remove = wis_ov7640_remove,
91 .id_table = wis_ov7640_id,
108}; 92};
109 93
110static int __init wis_ov7640_init(void) 94static int __init wis_ov7640_init(void)
111{ 95{
112 int r; 96 return i2c_add_driver(&wis_ov7640_driver);
113
114 r = i2c_add_driver(&wis_ov7640_driver);
115 if (r < 0)
116 return r;
117 return wis_i2c_add_driver(wis_ov7640_driver.id, wis_ov7640_detect);
118} 97}
119 98
120static void __exit wis_ov7640_cleanup(void) 99static void __exit wis_ov7640_cleanup(void)
121{ 100{
122 wis_i2c_del_driver(wis_ov7640_detect);
123 i2c_del_driver(&wis_ov7640_driver); 101 i2c_del_driver(&wis_ov7640_driver);
124} 102}
125 103
diff --git a/drivers/staging/go7007/wis-saa7113.c b/drivers/staging/go7007/wis-saa7113.c
index 11689723945e..9ab893bd204e 100644
--- a/drivers/staging/go7007/wis-saa7113.c
+++ b/drivers/staging/go7007/wis-saa7113.c
@@ -261,34 +261,19 @@ static int wis_saa7113_command(struct i2c_client *client,
261 return 0; 261 return 0;
262} 262}
263 263
264static struct i2c_driver wis_saa7113_driver; 264static int wis_saa7113_probe(struct i2c_client *client,
265 265 const struct i2c_device_id *id)
266static struct i2c_client wis_saa7113_client_templ = {
267 .name = "SAA7113 (WIS)",
268 .driver = &wis_saa7113_driver,
269};
270
271static int wis_saa7113_detect(struct i2c_adapter *adapter, int addr, int kind)
272{ 266{
273 struct i2c_client *client; 267 struct i2c_adapter *adapter = client->adapter;
274 struct wis_saa7113 *dec; 268 struct wis_saa7113 *dec;
275 269
276 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) 270 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
277 return 0; 271 return -ENODEV;
278
279 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
280 if (client == NULL)
281 return -ENOMEM;
282 memcpy(client, &wis_saa7113_client_templ,
283 sizeof(wis_saa7113_client_templ));
284 client->adapter = adapter;
285 client->addr = addr;
286 272
287 dec = kmalloc(sizeof(struct wis_saa7113), GFP_KERNEL); 273 dec = kmalloc(sizeof(struct wis_saa7113), GFP_KERNEL);
288 if (dec == NULL) { 274 if (dec == NULL)
289 kfree(client);
290 return -ENOMEM; 275 return -ENOMEM;
291 } 276
292 dec->norm = V4L2_STD_NTSC; 277 dec->norm = V4L2_STD_NTSC;
293 dec->brightness = 128; 278 dec->brightness = 128;
294 dec->contrast = 71; 279 dec->contrast = 71;
@@ -298,56 +283,49 @@ static int wis_saa7113_detect(struct i2c_adapter *adapter, int addr, int kind)
298 283
299 printk(KERN_DEBUG 284 printk(KERN_DEBUG
300 "wis-saa7113: initializing SAA7113 at address %d on %s\n", 285 "wis-saa7113: initializing SAA7113 at address %d on %s\n",
301 addr, adapter->name); 286 client->addr, adapter->name);
302 287
303 if (write_regs(client, initial_registers) < 0) { 288 if (write_regs(client, initial_registers) < 0) {
304 printk(KERN_ERR 289 printk(KERN_ERR
305 "wis-saa7113: error initializing SAA7113\n"); 290 "wis-saa7113: error initializing SAA7113\n");
306 kfree(client);
307 kfree(dec); 291 kfree(dec);
308 return 0; 292 return -ENODEV;
309 } 293 }
310 294
311 i2c_attach_client(client);
312 return 0; 295 return 0;
313} 296}
314 297
315static int wis_saa7113_detach(struct i2c_client *client) 298static int wis_saa7113_remove(struct i2c_client *client)
316{ 299{
317 struct wis_saa7113 *dec = i2c_get_clientdata(client); 300 struct wis_saa7113 *dec = i2c_get_clientdata(client);
318 int r;
319
320 r = i2c_detach_client(client);
321 if (r < 0)
322 return r;
323 301
324 kfree(client); 302 i2c_set_clientdata(client, NULL);
325 kfree(dec); 303 kfree(dec);
326 return 0; 304 return 0;
327} 305}
328 306
307static struct i2c_device_id wis_saa7113_id[] = {
308 { "wis_saa7113", 0 },
309 { }
310};
311
329static struct i2c_driver wis_saa7113_driver = { 312static struct i2c_driver wis_saa7113_driver = {
330 .driver = { 313 .driver = {
331 .name = "WIS SAA7113 I2C driver", 314 .name = "WIS SAA7113 I2C driver",
332 }, 315 },
333 .id = I2C_DRIVERID_WIS_SAA7113, 316 .probe = wis_saa7113_probe,
334 .detach_client = wis_saa7113_detach, 317 .remove = wis_saa7113_remove,
335 .command = wis_saa7113_command, 318 .command = wis_saa7113_command,
319 .id_table = wis_saa7113_id,
336}; 320};
337 321
338static int __init wis_saa7113_init(void) 322static int __init wis_saa7113_init(void)
339{ 323{
340 int r; 324 return i2c_add_driver(&wis_saa7113_driver);
341
342 r = i2c_add_driver(&wis_saa7113_driver);
343 if (r < 0)
344 return r;
345 return wis_i2c_add_driver(wis_saa7113_driver.id, wis_saa7113_detect);
346} 325}
347 326
348static void __exit wis_saa7113_cleanup(void) 327static void __exit wis_saa7113_cleanup(void)
349{ 328{
350 wis_i2c_del_driver(wis_saa7113_detect);
351 i2c_del_driver(&wis_saa7113_driver); 329 i2c_del_driver(&wis_saa7113_driver);
352} 330}
353 331
diff --git a/drivers/staging/go7007/wis-saa7115.c b/drivers/staging/go7007/wis-saa7115.c
index 59417a7174d7..8687ad2de761 100644
--- a/drivers/staging/go7007/wis-saa7115.c
+++ b/drivers/staging/go7007/wis-saa7115.c
@@ -394,34 +394,19 @@ static int wis_saa7115_command(struct i2c_client *client,
394 return 0; 394 return 0;
395} 395}
396 396
397static struct i2c_driver wis_saa7115_driver; 397static int wis_saa7115_probe(struct i2c_client *client,
398 398 const struct i2c_device_id *id)
399static struct i2c_client wis_saa7115_client_templ = {
400 .name = "SAA7115 (WIS)",
401 .driver = &wis_saa7115_driver,
402};
403
404static int wis_saa7115_detect(struct i2c_adapter *adapter, int addr, int kind)
405{ 399{
406 struct i2c_client *client; 400 struct i2c_adapter *adapter = client->adapter;
407 struct wis_saa7115 *dec; 401 struct wis_saa7115 *dec;
408 402
409 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) 403 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
410 return 0; 404 return -ENODEV;
411
412 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
413 if (client == NULL)
414 return -ENOMEM;
415 memcpy(client, &wis_saa7115_client_templ,
416 sizeof(wis_saa7115_client_templ));
417 client->adapter = adapter;
418 client->addr = addr;
419 405
420 dec = kmalloc(sizeof(struct wis_saa7115), GFP_KERNEL); 406 dec = kmalloc(sizeof(struct wis_saa7115), GFP_KERNEL);
421 if (dec == NULL) { 407 if (dec == NULL)
422 kfree(client);
423 return -ENOMEM; 408 return -ENOMEM;
424 } 409
425 dec->norm = V4L2_STD_NTSC; 410 dec->norm = V4L2_STD_NTSC;
426 dec->brightness = 128; 411 dec->brightness = 128;
427 dec->contrast = 64; 412 dec->contrast = 64;
@@ -431,56 +416,49 @@ static int wis_saa7115_detect(struct i2c_adapter *adapter, int addr, int kind)
431 416
432 printk(KERN_DEBUG 417 printk(KERN_DEBUG
433 "wis-saa7115: initializing SAA7115 at address %d on %s\n", 418 "wis-saa7115: initializing SAA7115 at address %d on %s\n",
434 addr, adapter->name); 419 client->addr, adapter->name);
435 420
436 if (write_regs(client, initial_registers) < 0) { 421 if (write_regs(client, initial_registers) < 0) {
437 printk(KERN_ERR 422 printk(KERN_ERR
438 "wis-saa7115: error initializing SAA7115\n"); 423 "wis-saa7115: error initializing SAA7115\n");
439 kfree(client);
440 kfree(dec); 424 kfree(dec);
441 return 0; 425 return -ENODEV;
442 } 426 }
443 427
444 i2c_attach_client(client);
445 return 0; 428 return 0;
446} 429}
447 430
448static int wis_saa7115_detach(struct i2c_client *client) 431static int wis_saa7115_remove(struct i2c_client *client)
449{ 432{
450 struct wis_saa7115 *dec = i2c_get_clientdata(client); 433 struct wis_saa7115 *dec = i2c_get_clientdata(client);
451 int r;
452
453 r = i2c_detach_client(client);
454 if (r < 0)
455 return r;
456 434
457 kfree(client); 435 i2c_set_clientdata(client, NULL);
458 kfree(dec); 436 kfree(dec);
459 return 0; 437 return 0;
460} 438}
461 439
440static struct i2c_device_id wis_saa7115_id[] = {
441 { "wis_saa7115", 0 },
442 { }
443};
444
462static struct i2c_driver wis_saa7115_driver = { 445static struct i2c_driver wis_saa7115_driver = {
463 .driver = { 446 .driver = {
464 .name = "WIS SAA7115 I2C driver", 447 .name = "WIS SAA7115 I2C driver",
465 }, 448 },
466 .id = I2C_DRIVERID_WIS_SAA7115, 449 .probe = wis_saa7115_probe,
467 .detach_client = wis_saa7115_detach, 450 .remove = wis_saa7115_remove,
468 .command = wis_saa7115_command, 451 .command = wis_saa7115_command,
452 .id_table = wis_saa7115_id,
469}; 453};
470 454
471static int __init wis_saa7115_init(void) 455static int __init wis_saa7115_init(void)
472{ 456{
473 int r; 457 return i2c_add_driver(&wis_saa7115_driver);
474
475 r = i2c_add_driver(&wis_saa7115_driver);
476 if (r < 0)
477 return r;
478 return wis_i2c_add_driver(wis_saa7115_driver.id, wis_saa7115_detect);
479} 458}
480 459
481static void __exit wis_saa7115_cleanup(void) 460static void __exit wis_saa7115_cleanup(void)
482{ 461{
483 wis_i2c_del_driver(wis_saa7115_detect);
484 i2c_del_driver(&wis_saa7115_driver); 462 i2c_del_driver(&wis_saa7115_driver);
485} 463}
486 464
diff --git a/drivers/staging/go7007/wis-sony-tuner.c b/drivers/staging/go7007/wis-sony-tuner.c
index 0a7eeef7c008..c965c601ac90 100644
--- a/drivers/staging/go7007/wis-sony-tuner.c
+++ b/drivers/staging/go7007/wis-sony-tuner.c
@@ -653,35 +653,19 @@ static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg)
653 return 0; 653 return 0;
654} 654}
655 655
656static struct i2c_driver wis_sony_tuner_driver; 656static int wis_sony_tuner_probe(struct i2c_client *client,
657 657 const struct i2c_device_id *id)
658static struct i2c_client wis_sony_tuner_client_templ = {
659 .name = "Sony TV Tuner (WIS)",
660 .driver = &wis_sony_tuner_driver,
661};
662
663static int wis_sony_tuner_detect(struct i2c_adapter *adapter,
664 int addr, int kind)
665{ 658{
666 struct i2c_client *client; 659 struct i2c_adapter *adapter = client->adapter;
667 struct wis_sony_tuner *t; 660 struct wis_sony_tuner *t;
668 661
669 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_I2C_BLOCK)) 662 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_I2C_BLOCK))
670 return 0; 663 return -ENODEV;
671
672 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
673 if (client == NULL)
674 return -ENOMEM;
675 memcpy(client, &wis_sony_tuner_client_templ,
676 sizeof(wis_sony_tuner_client_templ));
677 client->adapter = adapter;
678 client->addr = addr;
679 664
680 t = kmalloc(sizeof(struct wis_sony_tuner), GFP_KERNEL); 665 t = kmalloc(sizeof(struct wis_sony_tuner), GFP_KERNEL);
681 if (t == NULL) { 666 if (t == NULL)
682 kfree(client);
683 return -ENOMEM; 667 return -ENOMEM;
684 } 668
685 t->type = -1; 669 t->type = -1;
686 t->freq = 0; 670 t->freq = 0;
687 t->mpxmode = 0; 671 t->mpxmode = 0;
@@ -690,50 +674,42 @@ static int wis_sony_tuner_detect(struct i2c_adapter *adapter,
690 674
691 printk(KERN_DEBUG 675 printk(KERN_DEBUG
692 "wis-sony-tuner: initializing tuner at address %d on %s\n", 676 "wis-sony-tuner: initializing tuner at address %d on %s\n",
693 addr, adapter->name); 677 client->addr, adapter->name);
694
695 i2c_attach_client(client);
696 678
697 return 0; 679 return 0;
698} 680}
699 681
700static int wis_sony_tuner_detach(struct i2c_client *client) 682static int wis_sony_tuner_remove(struct i2c_client *client)
701{ 683{
702 struct wis_sony_tuner *t = i2c_get_clientdata(client); 684 struct wis_sony_tuner *t = i2c_get_clientdata(client);
703 int r;
704
705 r = i2c_detach_client(client);
706 if (r < 0)
707 return r;
708 685
686 i2c_set_clientdata(client, NULL);
709 kfree(t); 687 kfree(t);
710 kfree(client);
711 return 0; 688 return 0;
712} 689}
713 690
691static struct i2c_device_id wis_sony_tuner_id[] = {
692 { "wis_sony_tuner", 0 },
693 { }
694};
695
714static struct i2c_driver wis_sony_tuner_driver = { 696static struct i2c_driver wis_sony_tuner_driver = {
715 .driver = { 697 .driver = {
716 .name = "WIS Sony TV Tuner I2C driver", 698 .name = "WIS Sony TV Tuner I2C driver",
717 }, 699 },
718 .id = I2C_DRIVERID_WIS_SONY_TUNER, 700 .probe = wis_sony_tuner_probe,
719 .detach_client = wis_sony_tuner_detach, 701 .remove = wis_sony_tuner_remove,
720 .command = tuner_command, 702 .command = tuner_command,
703 .id_table = wis_sony_tuner_id,
721}; 704};
722 705
723static int __init wis_sony_tuner_init(void) 706static int __init wis_sony_tuner_init(void)
724{ 707{
725 int r; 708 return i2c_add_driver(&wis_sony_tuner_driver);
726
727 r = i2c_add_driver(&wis_sony_tuner_driver);
728 if (r < 0)
729 return r;
730 return wis_i2c_add_driver(wis_sony_tuner_driver.id,
731 wis_sony_tuner_detect);
732} 709}
733 710
734static void __exit wis_sony_tuner_cleanup(void) 711static void __exit wis_sony_tuner_cleanup(void)
735{ 712{
736 wis_i2c_del_driver(wis_sony_tuner_detect);
737 i2c_del_driver(&wis_sony_tuner_driver); 713 i2c_del_driver(&wis_sony_tuner_driver);
738} 714}
739 715
diff --git a/drivers/staging/go7007/wis-tw2804.c b/drivers/staging/go7007/wis-tw2804.c
index 57b8f2b1caa3..e15794a2a0ae 100644
--- a/drivers/staging/go7007/wis-tw2804.c
+++ b/drivers/staging/go7007/wis-tw2804.c
@@ -291,34 +291,19 @@ static int wis_tw2804_command(struct i2c_client *client,
291 return 0; 291 return 0;
292} 292}
293 293
294static struct i2c_driver wis_tw2804_driver; 294static int wis_tw2804_probe(struct i2c_client *client,
295 295 const struct i2c_device_id *id)
296static struct i2c_client wis_tw2804_client_templ = {
297 .name = "TW2804 (WIS)",
298 .driver = &wis_tw2804_driver,
299};
300
301static int wis_tw2804_detect(struct i2c_adapter *adapter, int addr, int kind)
302{ 296{
303 struct i2c_client *client; 297 struct i2c_adapter *adapter = client->adapter;
304 struct wis_tw2804 *dec; 298 struct wis_tw2804 *dec;
305 299
306 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) 300 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
307 return 0; 301 return -ENODEV;
308
309 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
310 if (client == NULL)
311 return -ENOMEM;
312 memcpy(client, &wis_tw2804_client_templ,
313 sizeof(wis_tw2804_client_templ));
314 client->adapter = adapter;
315 client->addr = addr;
316 302
317 dec = kmalloc(sizeof(struct wis_tw2804), GFP_KERNEL); 303 dec = kmalloc(sizeof(struct wis_tw2804), GFP_KERNEL);
318 if (dec == NULL) { 304 if (dec == NULL)
319 kfree(client);
320 return -ENOMEM; 305 return -ENOMEM;
321 } 306
322 dec->channel = -1; 307 dec->channel = -1;
323 dec->norm = V4L2_STD_NTSC; 308 dec->norm = V4L2_STD_NTSC;
324 dec->brightness = 128; 309 dec->brightness = 128;
@@ -328,48 +313,42 @@ static int wis_tw2804_detect(struct i2c_adapter *adapter, int addr, int kind)
328 i2c_set_clientdata(client, dec); 313 i2c_set_clientdata(client, dec);
329 314
330 printk(KERN_DEBUG "wis-tw2804: creating TW2804 at address %d on %s\n", 315 printk(KERN_DEBUG "wis-tw2804: creating TW2804 at address %d on %s\n",
331 addr, adapter->name); 316 client->addr, adapter->name);
332 317
333 i2c_attach_client(client);
334 return 0; 318 return 0;
335} 319}
336 320
337static int wis_tw2804_detach(struct i2c_client *client) 321static int wis_tw2804_remove(struct i2c_client *client)
338{ 322{
339 struct wis_tw2804 *dec = i2c_get_clientdata(client); 323 struct wis_tw2804 *dec = i2c_get_clientdata(client);
340 int r;
341
342 r = i2c_detach_client(client);
343 if (r < 0)
344 return r;
345 324
346 kfree(client); 325 i2c_set_clientdata(client, NULL);
347 kfree(dec); 326 kfree(dec);
348 return 0; 327 return 0;
349} 328}
350 329
330static struct i2c_device_id wis_tw2804_id[] = {
331 { "wis_tw2804", 0 },
332 { }
333};
334
351static struct i2c_driver wis_tw2804_driver = { 335static struct i2c_driver wis_tw2804_driver = {
352 .driver = { 336 .driver = {
353 .name = "WIS TW2804 I2C driver", 337 .name = "WIS TW2804 I2C driver",
354 }, 338 },
355 .id = I2C_DRIVERID_WIS_TW2804, 339 .probe = wis_tw2804_probe,
356 .detach_client = wis_tw2804_detach, 340 .remove = wis_tw2804_remove,
357 .command = wis_tw2804_command, 341 .command = wis_tw2804_command,
342 .id_table = wis_tw2804_id,
358}; 343};
359 344
360static int __init wis_tw2804_init(void) 345static int __init wis_tw2804_init(void)
361{ 346{
362 int r; 347 return i2c_add_driver(&wis_tw2804_driver);
363
364 r = i2c_add_driver(&wis_tw2804_driver);
365 if (r < 0)
366 return r;
367 return wis_i2c_add_driver(wis_tw2804_driver.id, wis_tw2804_detect);
368} 348}
369 349
370static void __exit wis_tw2804_cleanup(void) 350static void __exit wis_tw2804_cleanup(void)
371{ 351{
372 wis_i2c_del_driver(wis_tw2804_detect);
373 i2c_del_driver(&wis_tw2804_driver); 352 i2c_del_driver(&wis_tw2804_driver);
374} 353}
375 354
diff --git a/drivers/staging/go7007/wis-tw9903.c b/drivers/staging/go7007/wis-tw9903.c
index 40627b282cb4..6c3427bb6f4c 100644
--- a/drivers/staging/go7007/wis-tw9903.c
+++ b/drivers/staging/go7007/wis-tw9903.c
@@ -267,34 +267,19 @@ static int wis_tw9903_command(struct i2c_client *client,
267 return 0; 267 return 0;
268} 268}
269 269
270static struct i2c_driver wis_tw9903_driver; 270static int wis_tw9903_probe(struct i2c_client *client,
271 271 const struct i2c_device_id *id)
272static struct i2c_client wis_tw9903_client_templ = {
273 .name = "TW9903 (WIS)",
274 .driver = &wis_tw9903_driver,
275};
276
277static int wis_tw9903_detect(struct i2c_adapter *adapter, int addr, int kind)
278{ 272{
279 struct i2c_client *client; 273 struct i2c_adapter *adapter = client->adapter;
280 struct wis_tw9903 *dec; 274 struct wis_tw9903 *dec;
281 275
282 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) 276 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
283 return 0; 277 return -ENODEV;
284
285 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
286 if (client == NULL)
287 return -ENOMEM;
288 memcpy(client, &wis_tw9903_client_templ,
289 sizeof(wis_tw9903_client_templ));
290 client->adapter = adapter;
291 client->addr = addr;
292 278
293 dec = kmalloc(sizeof(struct wis_tw9903), GFP_KERNEL); 279 dec = kmalloc(sizeof(struct wis_tw9903), GFP_KERNEL);
294 if (dec == NULL) { 280 if (dec == NULL)
295 kfree(client);
296 return -ENOMEM; 281 return -ENOMEM;
297 } 282
298 dec->norm = V4L2_STD_NTSC; 283 dec->norm = V4L2_STD_NTSC;
299 dec->brightness = 0; 284 dec->brightness = 0;
300 dec->contrast = 0x60; 285 dec->contrast = 0x60;
@@ -303,55 +288,48 @@ static int wis_tw9903_detect(struct i2c_adapter *adapter, int addr, int kind)
303 288
304 printk(KERN_DEBUG 289 printk(KERN_DEBUG
305 "wis-tw9903: initializing TW9903 at address %d on %s\n", 290 "wis-tw9903: initializing TW9903 at address %d on %s\n",
306 addr, adapter->name); 291 client->addr, adapter->name);
307 292
308 if (write_regs(client, initial_registers) < 0) { 293 if (write_regs(client, initial_registers) < 0) {
309 printk(KERN_ERR "wis-tw9903: error initializing TW9903\n"); 294 printk(KERN_ERR "wis-tw9903: error initializing TW9903\n");
310 kfree(client);
311 kfree(dec); 295 kfree(dec);
312 return 0; 296 return -ENODEV;
313 } 297 }
314 298
315 i2c_attach_client(client);
316 return 0; 299 return 0;
317} 300}
318 301
319static int wis_tw9903_detach(struct i2c_client *client) 302static int wis_tw9903_remove(struct i2c_client *client)
320{ 303{
321 struct wis_tw9903 *dec = i2c_get_clientdata(client); 304 struct wis_tw9903 *dec = i2c_get_clientdata(client);
322 int r;
323
324 r = i2c_detach_client(client);
325 if (r < 0)
326 return r;
327 305
328 kfree(client); 306 i2c_set_clientdata(client, NULL);
329 kfree(dec); 307 kfree(dec);
330 return 0; 308 return 0;
331} 309}
332 310
311static struct i2c_device_id wis_tw9903_id[] = {
312 { "wis_tw9903", 0 },
313 { }
314};
315
333static struct i2c_driver wis_tw9903_driver = { 316static struct i2c_driver wis_tw9903_driver = {
334 .driver = { 317 .driver = {
335 .name = "WIS TW9903 I2C driver", 318 .name = "WIS TW9903 I2C driver",
336 }, 319 },
337 .id = I2C_DRIVERID_WIS_TW9903, 320 .probe = wis_tw9903_probe,
338 .detach_client = wis_tw9903_detach, 321 .remove = wis_tw9903_remove,
339 .command = wis_tw9903_command, 322 .command = wis_tw9903_command,
323 .id_table = wis_tw9903_id,
340}; 324};
341 325
342static int __init wis_tw9903_init(void) 326static int __init wis_tw9903_init(void)
343{ 327{
344 int r; 328 return i2c_add_driver(&wis_tw9903_driver);
345
346 r = i2c_add_driver(&wis_tw9903_driver);
347 if (r < 0)
348 return r;
349 return wis_i2c_add_driver(wis_tw9903_driver.id, wis_tw9903_detect);
350} 329}
351 330
352static void __exit wis_tw9903_cleanup(void) 331static void __exit wis_tw9903_cleanup(void)
353{ 332{
354 wis_i2c_del_driver(wis_tw9903_detect);
355 i2c_del_driver(&wis_tw9903_driver); 333 i2c_del_driver(&wis_tw9903_driver);
356} 334}
357 335
diff --git a/drivers/staging/go7007/wis-uda1342.c b/drivers/staging/go7007/wis-uda1342.c
index 555645c0cc1a..739c7ae8913f 100644
--- a/drivers/staging/go7007/wis-uda1342.c
+++ b/drivers/staging/go7007/wis-uda1342.c
@@ -59,73 +59,51 @@ static int wis_uda1342_command(struct i2c_client *client,
59 return 0; 59 return 0;
60} 60}
61 61
62static struct i2c_driver wis_uda1342_driver; 62static int wis_uda1342_probe(struct i2c_client *client,
63 63 const struct i2c_device_id *id)
64static struct i2c_client wis_uda1342_client_templ = {
65 .name = "UDA1342 (WIS)",
66 .driver = &wis_uda1342_driver,
67};
68
69static int wis_uda1342_detect(struct i2c_adapter *adapter, int addr, int kind)
70{ 64{
71 struct i2c_client *client; 65 struct i2c_adapter *adapter = client->adapter;
72 66
73 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_WORD_DATA)) 67 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_WORD_DATA))
74 return 0; 68 return -ENODEV;
75
76 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
77 if (client == NULL)
78 return -ENOMEM;
79 memcpy(client, &wis_uda1342_client_templ,
80 sizeof(wis_uda1342_client_templ));
81 client->adapter = adapter;
82 client->addr = addr;
83 69
84 printk(KERN_DEBUG 70 printk(KERN_DEBUG
85 "wis-uda1342: initializing UDA1342 at address %d on %s\n", 71 "wis-uda1342: initializing UDA1342 at address %d on %s\n",
86 addr, adapter->name); 72 client->addr, adapter->name);
87 73
88 write_reg(client, 0x00, 0x8000); /* reset registers */ 74 write_reg(client, 0x00, 0x8000); /* reset registers */
89 write_reg(client, 0x00, 0x1241); /* select input 1 */ 75 write_reg(client, 0x00, 0x1241); /* select input 1 */
90 76
91 i2c_attach_client(client);
92 return 0; 77 return 0;
93} 78}
94 79
95static int wis_uda1342_detach(struct i2c_client *client) 80static int wis_uda1342_remove(struct i2c_client *client)
96{ 81{
97 int r;
98
99 r = i2c_detach_client(client);
100 if (r < 0)
101 return r;
102
103 kfree(client);
104 return 0; 82 return 0;
105} 83}
106 84
85static struct i2c_device_id wis_uda1342_id[] = {
86 { "wis_uda1342", 0 },
87 { }
88};
89
107static struct i2c_driver wis_uda1342_driver = { 90static struct i2c_driver wis_uda1342_driver = {
108 .driver = { 91 .driver = {
109 .name = "WIS UDA1342 I2C driver", 92 .name = "WIS UDA1342 I2C driver",
110 }, 93 },
111 .id = I2C_DRIVERID_WIS_UDA1342, 94 .probe = wis_uda1342_probe,
112 .detach_client = wis_uda1342_detach, 95 .remove = wis_uda1342_remove,
113 .command = wis_uda1342_command, 96 .command = wis_uda1342_command,
97 .id_table = wis_uda1342_id,
114}; 98};
115 99
116static int __init wis_uda1342_init(void) 100static int __init wis_uda1342_init(void)
117{ 101{
118 int r; 102 return i2c_add_driver(&wis_uda1342_driver);
119
120 r = i2c_add_driver(&wis_uda1342_driver);
121 if (r < 0)
122 return r;
123 return wis_i2c_add_driver(wis_uda1342_driver.id, wis_uda1342_detect);
124} 103}
125 104
126static void __exit wis_uda1342_cleanup(void) 105static void __exit wis_uda1342_cleanup(void)
127{ 106{
128 wis_i2c_del_driver(wis_uda1342_detect);
129 i2c_del_driver(&wis_uda1342_driver); 107 i2c_del_driver(&wis_uda1342_driver);
130} 108}
131 109
diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
index 34e6108e1d42..0fe434505ac4 100644
--- a/drivers/usb/class/cdc-wdm.c
+++ b/drivers/usb/class/cdc-wdm.c
@@ -3,7 +3,7 @@
3 * 3 *
4 * This driver supports USB CDC WCM Device Management. 4 * This driver supports USB CDC WCM Device Management.
5 * 5 *
6 * Copyright (c) 2007-2008 Oliver Neukum 6 * Copyright (c) 2007-2009 Oliver Neukum
7 * 7 *
8 * Some code taken from cdc-acm.c 8 * Some code taken from cdc-acm.c
9 * 9 *
@@ -610,7 +610,7 @@ static int wdm_probe(struct usb_interface *intf, const struct usb_device_id *id)
610 if (!buffer) 610 if (!buffer)
611 goto out; 611 goto out;
612 612
613 while (buflen > 0) { 613 while (buflen > 2) {
614 if (buffer [1] != USB_DT_CS_INTERFACE) { 614 if (buffer [1] != USB_DT_CS_INTERFACE) {
615 dev_err(&intf->dev, "skipping garbage\n"); 615 dev_err(&intf->dev, "skipping garbage\n");
616 goto next_desc; 616 goto next_desc;
@@ -646,16 +646,18 @@ next_desc:
646 spin_lock_init(&desc->iuspin); 646 spin_lock_init(&desc->iuspin);
647 init_waitqueue_head(&desc->wait); 647 init_waitqueue_head(&desc->wait);
648 desc->wMaxCommand = maxcom; 648 desc->wMaxCommand = maxcom;
649 /* this will be expanded and needed in hardware endianness */
649 desc->inum = cpu_to_le16((u16)intf->cur_altsetting->desc.bInterfaceNumber); 650 desc->inum = cpu_to_le16((u16)intf->cur_altsetting->desc.bInterfaceNumber);
650 desc->intf = intf; 651 desc->intf = intf;
651 INIT_WORK(&desc->rxwork, wdm_rxwork); 652 INIT_WORK(&desc->rxwork, wdm_rxwork);
652 653
653 iface = &intf->altsetting[0]; 654 rv = -EINVAL;
655 iface = intf->cur_altsetting;
656 if (iface->desc.bNumEndpoints != 1)
657 goto err;
654 ep = &iface->endpoint[0].desc; 658 ep = &iface->endpoint[0].desc;
655 if (!ep || !usb_endpoint_is_int_in(ep)) { 659 if (!ep || !usb_endpoint_is_int_in(ep))
656 rv = -EINVAL;
657 goto err; 660 goto err;
658 }
659 661
660 desc->wMaxPacketSize = le16_to_cpu(ep->wMaxPacketSize); 662 desc->wMaxPacketSize = le16_to_cpu(ep->wMaxPacketSize);
661 desc->bMaxPacketSize0 = udev->descriptor.bMaxPacketSize0; 663 desc->bMaxPacketSize0 = udev->descriptor.bMaxPacketSize0;
@@ -711,12 +713,19 @@ next_desc:
711 713
712 usb_set_intfdata(intf, desc); 714 usb_set_intfdata(intf, desc);
713 rv = usb_register_dev(intf, &wdm_class); 715 rv = usb_register_dev(intf, &wdm_class);
714 dev_info(&intf->dev, "cdc-wdm%d: USB WDM device\n",
715 intf->minor - WDM_MINOR_BASE);
716 if (rv < 0) 716 if (rv < 0)
717 goto err; 717 goto err3;
718 else
719 dev_info(&intf->dev, "cdc-wdm%d: USB WDM device\n",
720 intf->minor - WDM_MINOR_BASE);
718out: 721out:
719 return rv; 722 return rv;
723err3:
724 usb_set_intfdata(intf, NULL);
725 usb_buffer_free(interface_to_usbdev(desc->intf),
726 desc->bMaxPacketSize0,
727 desc->inbuf,
728 desc->response->transfer_dma);
720err2: 729err2:
721 usb_buffer_free(interface_to_usbdev(desc->intf), 730 usb_buffer_free(interface_to_usbdev(desc->intf),
722 desc->wMaxPacketSize, 731 desc->wMaxPacketSize,
diff --git a/drivers/usb/core/buffer.c b/drivers/usb/core/buffer.c
index cadb2dc1d28a..3ba2fff71490 100644
--- a/drivers/usb/core/buffer.c
+++ b/drivers/usb/core/buffer.c
@@ -119,7 +119,7 @@ void *hcd_buffer_alloc(
119 if (size <= pool_max [i]) 119 if (size <= pool_max [i])
120 return dma_pool_alloc(hcd->pool [i], mem_flags, dma); 120 return dma_pool_alloc(hcd->pool [i], mem_flags, dma);
121 } 121 }
122 return dma_alloc_coherent(hcd->self.controller, size, dma, 0); 122 return dma_alloc_coherent(hcd->self.controller, size, dma, mem_flags);
123} 123}
124 124
125void hcd_buffer_free( 125void hcd_buffer_free(
diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c
index 22c65960c429..38e531ecae4d 100644
--- a/drivers/usb/gadget/ci13xxx_udc.c
+++ b/drivers/usb/gadget/ci13xxx_udc.c
@@ -51,6 +51,7 @@
51 * - Gadget API (majority of optional features) 51 * - Gadget API (majority of optional features)
52 * - Suspend & Remote Wakeup 52 * - Suspend & Remote Wakeup
53 */ 53 */
54#include <linux/delay.h>
54#include <linux/device.h> 55#include <linux/device.h>
55#include <linux/dmapool.h> 56#include <linux/dmapool.h>
56#include <linux/dma-mapping.h> 57#include <linux/dma-mapping.h>
@@ -142,7 +143,7 @@ static struct {
142#define CAP_DEVICEADDR (0x014UL) 143#define CAP_DEVICEADDR (0x014UL)
143#define CAP_ENDPTLISTADDR (0x018UL) 144#define CAP_ENDPTLISTADDR (0x018UL)
144#define CAP_PORTSC (0x044UL) 145#define CAP_PORTSC (0x044UL)
145#define CAP_DEVLC (0x0B4UL) 146#define CAP_DEVLC (0x084UL)
146#define CAP_USBMODE (hw_bank.lpm ? 0x0C8UL : 0x068UL) 147#define CAP_USBMODE (hw_bank.lpm ? 0x0C8UL : 0x068UL)
147#define CAP_ENDPTSETUPSTAT (hw_bank.lpm ? 0x0D8UL : 0x06CUL) 148#define CAP_ENDPTSETUPSTAT (hw_bank.lpm ? 0x0D8UL : 0x06CUL)
148#define CAP_ENDPTPRIME (hw_bank.lpm ? 0x0DCUL : 0x070UL) 149#define CAP_ENDPTPRIME (hw_bank.lpm ? 0x0DCUL : 0x070UL)
@@ -1986,6 +1987,8 @@ static int ep_enable(struct usb_ep *ep,
1986 do { 1987 do {
1987 dbg_event(_usb_addr(mEp), "ENABLE", 0); 1988 dbg_event(_usb_addr(mEp), "ENABLE", 0);
1988 1989
1990 mEp->qh[mEp->dir].ptr->cap = 0;
1991
1989 if (mEp->type == USB_ENDPOINT_XFER_CONTROL) 1992 if (mEp->type == USB_ENDPOINT_XFER_CONTROL)
1990 mEp->qh[mEp->dir].ptr->cap |= QH_IOS; 1993 mEp->qh[mEp->dir].ptr->cap |= QH_IOS;
1991 else if (mEp->type == USB_ENDPOINT_XFER_ISOC) 1994 else if (mEp->type == USB_ENDPOINT_XFER_ISOC)
diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c
index 5c030b080d4c..381a53b3e11c 100644
--- a/drivers/usb/gadget/file_storage.c
+++ b/drivers/usb/gadget/file_storage.c
@@ -738,7 +738,6 @@ static struct fsg_dev *the_fsg;
738static struct usb_gadget_driver fsg_driver; 738static struct usb_gadget_driver fsg_driver;
739 739
740static void close_backing_file(struct lun *curlun); 740static void close_backing_file(struct lun *curlun);
741static void close_all_backing_files(struct fsg_dev *fsg);
742 741
743 742
744/*-------------------------------------------------------------------------*/ 743/*-------------------------------------------------------------------------*/
@@ -3593,12 +3592,10 @@ static int fsg_main_thread(void *fsg_)
3593 fsg->thread_task = NULL; 3592 fsg->thread_task = NULL;
3594 spin_unlock_irq(&fsg->lock); 3593 spin_unlock_irq(&fsg->lock);
3595 3594
3596 /* In case we are exiting because of a signal, unregister the 3595 /* If we are exiting because of a signal, unregister the
3597 * gadget driver and close the backing file. */ 3596 * gadget driver. */
3598 if (test_and_clear_bit(REGISTERED, &fsg->atomic_bitflags)) { 3597 if (test_and_clear_bit(REGISTERED, &fsg->atomic_bitflags))
3599 usb_gadget_unregister_driver(&fsg_driver); 3598 usb_gadget_unregister_driver(&fsg_driver);
3600 close_all_backing_files(fsg);
3601 }
3602 3599
3603 /* Let the unbind and cleanup routines know the thread has exited */ 3600 /* Let the unbind and cleanup routines know the thread has exited */
3604 complete_and_exit(&fsg->thread_notifier, 0); 3601 complete_and_exit(&fsg->thread_notifier, 0);
@@ -3703,14 +3700,6 @@ static void close_backing_file(struct lun *curlun)
3703 } 3700 }
3704} 3701}
3705 3702
3706static void close_all_backing_files(struct fsg_dev *fsg)
3707{
3708 int i;
3709
3710 for (i = 0; i < fsg->nluns; ++i)
3711 close_backing_file(&fsg->luns[i]);
3712}
3713
3714 3703
3715static ssize_t show_ro(struct device *dev, struct device_attribute *attr, char *buf) 3704static ssize_t show_ro(struct device *dev, struct device_attribute *attr, char *buf)
3716{ 3705{
@@ -3845,6 +3834,7 @@ static void /* __init_or_exit */ fsg_unbind(struct usb_gadget *gadget)
3845 if (curlun->registered) { 3834 if (curlun->registered) {
3846 device_remove_file(&curlun->dev, &dev_attr_ro); 3835 device_remove_file(&curlun->dev, &dev_attr_ro);
3847 device_remove_file(&curlun->dev, &dev_attr_file); 3836 device_remove_file(&curlun->dev, &dev_attr_file);
3837 close_backing_file(curlun);
3848 device_unregister(&curlun->dev); 3838 device_unregister(&curlun->dev);
3849 curlun->registered = 0; 3839 curlun->registered = 0;
3850 } 3840 }
@@ -4190,7 +4180,6 @@ autoconf_fail:
4190out: 4180out:
4191 fsg->state = FSG_STATE_TERMINATED; // The thread is dead 4181 fsg->state = FSG_STATE_TERMINATED; // The thread is dead
4192 fsg_unbind(gadget); 4182 fsg_unbind(gadget);
4193 close_all_backing_files(fsg);
4194 complete(&fsg->thread_notifier); 4183 complete(&fsg->thread_notifier);
4195 return rc; 4184 return rc;
4196} 4185}
@@ -4284,7 +4273,6 @@ static void __exit fsg_cleanup(void)
4284 /* Wait for the thread to finish up */ 4273 /* Wait for the thread to finish up */
4285 wait_for_completion(&fsg->thread_notifier); 4274 wait_for_completion(&fsg->thread_notifier);
4286 4275
4287 close_all_backing_files(fsg);
4288 kref_put(&fsg->ref, fsg_release); 4276 kref_put(&fsg->ref, fsg_release);
4289} 4277}
4290module_exit(fsg_cleanup); 4278module_exit(fsg_cleanup);
diff --git a/drivers/usb/gadget/omap_udc.c b/drivers/usb/gadget/omap_udc.c
index 57d9641c6bf8..a2db0e174f2c 100644
--- a/drivers/usb/gadget/omap_udc.c
+++ b/drivers/usb/gadget/omap_udc.c
@@ -3104,7 +3104,6 @@ static int omap_udc_resume(struct platform_device *dev)
3104/*-------------------------------------------------------------------------*/ 3104/*-------------------------------------------------------------------------*/
3105 3105
3106static struct platform_driver udc_driver = { 3106static struct platform_driver udc_driver = {
3107 .probe = omap_udc_probe,
3108 .remove = __exit_p(omap_udc_remove), 3107 .remove = __exit_p(omap_udc_remove),
3109 .suspend = omap_udc_suspend, 3108 .suspend = omap_udc_suspend,
3110 .resume = omap_udc_resume, 3109 .resume = omap_udc_resume,
@@ -3122,7 +3121,7 @@ static int __init udc_init(void)
3122#endif 3121#endif
3123 "%s\n", driver_desc, 3122 "%s\n", driver_desc,
3124 use_dma ? " (dma)" : ""); 3123 use_dma ? " (dma)" : "");
3125 return platform_driver_register(&udc_driver); 3124 return platform_driver_probe(&udc_driver, omap_udc_probe);
3126} 3125}
3127module_init(udc_init); 3126module_init(udc_init);
3128 3127
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
index ada5d2ba297b..556d0ec0c1f8 100644
--- a/drivers/usb/host/ehci-sched.c
+++ b/drivers/usb/host/ehci-sched.c
@@ -323,7 +323,7 @@ static int tt_available (
323 * already scheduled transactions 323 * already scheduled transactions
324 */ 324 */
325 if (125 < usecs) { 325 if (125 < usecs) {
326 int ufs = (usecs / 125) - 1; 326 int ufs = (usecs / 125);
327 int i; 327 int i;
328 for (i = uframe; i < (uframe + ufs) && i < 8; i++) 328 for (i = uframe; i < (uframe + ufs) && i < 8; i++)
329 if (0 < tt_usecs[i]) { 329 if (0 < tt_usecs[i]) {
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index 0112353ec97d..4000cf6d1e81 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -2191,7 +2191,7 @@ static int musb_resume_early(struct platform_device *pdev)
2191 2191
2192#else 2192#else
2193#define musb_suspend NULL 2193#define musb_suspend NULL
2194#define musb_resume NULL 2194#define musb_resume_early NULL
2195#endif 2195#endif
2196 2196
2197static struct platform_driver musb_driver = { 2197static struct platform_driver musb_driver = {
diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
index 901dffdf23b1..60924ce08493 100644
--- a/drivers/usb/musb/omap2430.c
+++ b/drivers/usb/musb/omap2430.c
@@ -3,7 +3,6 @@
3 * Some code has been taken from tusb6010.c 3 * Some code has been taken from tusb6010.c
4 * Copyrights for that are attributable to: 4 * Copyrights for that are attributable to:
5 * Copyright (C) 2006 Nokia Corporation 5 * Copyright (C) 2006 Nokia Corporation
6 * Jarkko Nikula <jarkko.nikula@nokia.com>
7 * Tony Lindgren <tony@atomide.com> 6 * Tony Lindgren <tony@atomide.com>
8 * 7 *
9 * This file is part of the Inventra Controller Driver for Linux. 8 * This file is part of the Inventra Controller Driver for Linux.
diff --git a/drivers/usb/musb/tusb6010.c b/drivers/usb/musb/tusb6010.c
index 9e20fd070d71..4ac1477d3569 100644
--- a/drivers/usb/musb/tusb6010.c
+++ b/drivers/usb/musb/tusb6010.c
@@ -2,7 +2,6 @@
2 * TUSB6010 USB 2.0 OTG Dual Role controller 2 * TUSB6010 USB 2.0 OTG Dual Role controller
3 * 3 *
4 * Copyright (C) 2006 Nokia Corporation 4 * Copyright (C) 2006 Nokia Corporation
5 * Jarkko Nikula <jarkko.nikula@nokia.com>
6 * Tony Lindgren <tony@atomide.com> 5 * Tony Lindgren <tony@atomide.com>
7 * 6 *
8 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
diff --git a/drivers/usb/musb/tusb6010.h b/drivers/usb/musb/tusb6010.h
index ab8c96286ce6..35c933a5d991 100644
--- a/drivers/usb/musb/tusb6010.h
+++ b/drivers/usb/musb/tusb6010.h
@@ -2,7 +2,6 @@
2 * Definitions for TUSB6010 USB 2.0 OTG Dual Role controller 2 * Definitions for TUSB6010 USB 2.0 OTG Dual Role controller
3 * 3 *
4 * Copyright (C) 2006 Nokia Corporation 4 * Copyright (C) 2006 Nokia Corporation
5 * Jarkko Nikula <jarkko.nikula@nokia.com>
6 * Tony Lindgren <tony@atomide.com> 5 * Tony Lindgren <tony@atomide.com>
7 * 6 *
8 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
diff --git a/drivers/usb/otg/otg.c b/drivers/usb/otg/otg.c
index ff318fae7d4d..0a43a7db750f 100644
--- a/drivers/usb/otg/otg.c
+++ b/drivers/usb/otg/otg.c
@@ -43,7 +43,8 @@ EXPORT_SYMBOL(otg_get_transceiver);
43 */ 43 */
44void otg_put_transceiver(struct otg_transceiver *x) 44void otg_put_transceiver(struct otg_transceiver *x)
45{ 45{
46 put_device(x->dev); 46 if (x)
47 put_device(x->dev);
47} 48}
48EXPORT_SYMBOL(otg_put_transceiver); 49EXPORT_SYMBOL(otg_put_transceiver);
49 50
diff --git a/drivers/usb/serial/cyberjack.c b/drivers/usb/serial/cyberjack.c
index 858bdd038fbc..dd501bb63ed6 100644
--- a/drivers/usb/serial/cyberjack.c
+++ b/drivers/usb/serial/cyberjack.c
@@ -175,13 +175,6 @@ static int cyberjack_open(struct tty_struct *tty,
175 dbg("%s - usb_clear_halt", __func__); 175 dbg("%s - usb_clear_halt", __func__);
176 usb_clear_halt(port->serial->dev, port->write_urb->pipe); 176 usb_clear_halt(port->serial->dev, port->write_urb->pipe);
177 177
178 /* force low_latency on so that our tty_push actually forces
179 * the data through, otherwise it is scheduled, and with high
180 * data rates (like with OHCI) data can get lost.
181 */
182 if (tty)
183 tty->low_latency = 1;
184
185 priv = usb_get_serial_port_data(port); 178 priv = usb_get_serial_port_data(port);
186 spin_lock_irqsave(&priv->lock, flags); 179 spin_lock_irqsave(&priv->lock, flags);
187 priv->rdtodo = 0; 180 priv->rdtodo = 0;
diff --git a/drivers/usb/serial/cypress_m8.c b/drivers/usb/serial/cypress_m8.c
index eae4740d448c..e568710b263f 100644
--- a/drivers/usb/serial/cypress_m8.c
+++ b/drivers/usb/serial/cypress_m8.c
@@ -656,10 +656,6 @@ static int cypress_open(struct tty_struct *tty,
656 priv->rx_flags = 0; 656 priv->rx_flags = 0;
657 spin_unlock_irqrestore(&priv->lock, flags); 657 spin_unlock_irqrestore(&priv->lock, flags);
658 658
659 /* setting to zero could cause data loss */
660 if (tty)
661 tty->low_latency = 1;
662
663 /* raise both lines and set termios */ 659 /* raise both lines and set termios */
664 spin_lock_irqsave(&priv->lock, flags); 660 spin_lock_irqsave(&priv->lock, flags);
665 priv->line_control = CONTROL_DTR | CONTROL_RTS; 661 priv->line_control = CONTROL_DTR | CONTROL_RTS;
diff --git a/drivers/usb/serial/empeg.c b/drivers/usb/serial/empeg.c
index 8a69cce40b6d..c709ec474a80 100644
--- a/drivers/usb/serial/empeg.c
+++ b/drivers/usb/serial/empeg.c
@@ -478,12 +478,6 @@ static void empeg_set_termios(struct tty_struct *tty,
478 termios->c_cflag 478 termios->c_cflag
479 |= CS8; /* character size 8 bits */ 479 |= CS8; /* character size 8 bits */
480 480
481 /*
482 * Force low_latency on; otherwise the pushes are scheduled;
483 * this is bad as it opens up the possibility of dropping bytes
484 * on the floor. We don't want to drop bytes on the floor. :)
485 */
486 tty->low_latency = 1;
487 tty_encode_baud_rate(tty, 115200, 115200); 481 tty_encode_baud_rate(tty, 115200, 115200);
488} 482}
489 483
diff --git a/drivers/usb/serial/garmin_gps.c b/drivers/usb/serial/garmin_gps.c
index a26a0e2cdb4a..586d30ff450b 100644
--- a/drivers/usb/serial/garmin_gps.c
+++ b/drivers/usb/serial/garmin_gps.c
@@ -973,14 +973,6 @@ static int garmin_open(struct tty_struct *tty,
973 973
974 dbg("%s - port %d", __func__, port->number); 974 dbg("%s - port %d", __func__, port->number);
975 975
976 /*
977 * Force low_latency on so that our tty_push actually forces the data
978 * through, otherwise it is scheduled, and with high data rates (like
979 * with OHCI) data can get lost.
980 */
981 if (tty)
982 tty->low_latency = 1;
983
984 spin_lock_irqsave(&garmin_data_p->lock, flags); 976 spin_lock_irqsave(&garmin_data_p->lock, flags);
985 garmin_data_p->mode = initial_mode; 977 garmin_data_p->mode = initial_mode;
986 garmin_data_p->count = 0; 978 garmin_data_p->count = 0;
diff --git a/drivers/usb/serial/generic.c b/drivers/usb/serial/generic.c
index 9d57cace3731..4cec9906ccf3 100644
--- a/drivers/usb/serial/generic.c
+++ b/drivers/usb/serial/generic.c
@@ -122,12 +122,6 @@ int usb_serial_generic_open(struct tty_struct *tty,
122 122
123 dbg("%s - port %d", __func__, port->number); 123 dbg("%s - port %d", __func__, port->number);
124 124
125 /* force low_latency on so that our tty_push actually forces the data
126 through, otherwise it is scheduled, and with high data rates (like
127 with OHCI) data can get lost. */
128 if (tty)
129 tty->low_latency = 1;
130
131 /* clear the throttle flags */ 125 /* clear the throttle flags */
132 spin_lock_irqsave(&port->lock, flags); 126 spin_lock_irqsave(&port->lock, flags);
133 port->throttled = 0; 127 port->throttled = 0;
diff --git a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c
index e85c8c0d1ad9..fb4a73d090f6 100644
--- a/drivers/usb/serial/io_edgeport.c
+++ b/drivers/usb/serial/io_edgeport.c
@@ -193,8 +193,6 @@ static const struct divisor_table_entry divisor_table[] = {
193/* local variables */ 193/* local variables */
194static int debug; 194static int debug;
195 195
196static int low_latency = 1; /* tty low latency flag, on by default */
197
198static atomic_t CmdUrbs; /* Number of outstanding Command Write Urbs */ 196static atomic_t CmdUrbs; /* Number of outstanding Command Write Urbs */
199 197
200 198
@@ -867,9 +865,6 @@ static int edge_open(struct tty_struct *tty,
867 if (edge_port == NULL) 865 if (edge_port == NULL)
868 return -ENODEV; 866 return -ENODEV;
869 867
870 if (tty)
871 tty->low_latency = low_latency;
872
873 /* see if we've set up our endpoint info yet (can't set it up 868 /* see if we've set up our endpoint info yet (can't set it up
874 in edge_startup as the structures were not set up at that time.) */ 869 in edge_startup as the structures were not set up at that time.) */
875 serial = port->serial; 870 serial = port->serial;
@@ -3299,6 +3294,3 @@ MODULE_FIRMWARE("edgeport/down2.fw");
3299 3294
3300module_param(debug, bool, S_IRUGO | S_IWUSR); 3295module_param(debug, bool, S_IRUGO | S_IWUSR);
3301MODULE_PARM_DESC(debug, "Debug enabled or not"); 3296MODULE_PARM_DESC(debug, "Debug enabled or not");
3302
3303module_param(low_latency, bool, S_IRUGO | S_IWUSR);
3304MODULE_PARM_DESC(low_latency, "Low latency enabled or not");
diff --git a/drivers/usb/serial/io_ti.c b/drivers/usb/serial/io_ti.c
index c3cdd00ddc41..513b25e044c1 100644
--- a/drivers/usb/serial/io_ti.c
+++ b/drivers/usb/serial/io_ti.c
@@ -76,7 +76,6 @@ struct edgeport_uart_buf_desc {
76#define EDGE_READ_URB_STOPPING 1 76#define EDGE_READ_URB_STOPPING 1
77#define EDGE_READ_URB_STOPPED 2 77#define EDGE_READ_URB_STOPPED 2
78 78
79#define EDGE_LOW_LATENCY 1
80#define EDGE_CLOSING_WAIT 4000 /* in .01 sec */ 79#define EDGE_CLOSING_WAIT 4000 /* in .01 sec */
81 80
82#define EDGE_OUT_BUF_SIZE 1024 81#define EDGE_OUT_BUF_SIZE 1024
@@ -232,7 +231,6 @@ static unsigned short OperationalBuildNumber;
232 231
233static int debug; 232static int debug;
234 233
235static int low_latency = EDGE_LOW_LATENCY;
236static int closing_wait = EDGE_CLOSING_WAIT; 234static int closing_wait = EDGE_CLOSING_WAIT;
237static int ignore_cpu_rev; 235static int ignore_cpu_rev;
238static int default_uart_mode; /* RS232 */ 236static int default_uart_mode; /* RS232 */
@@ -1850,9 +1848,6 @@ static int edge_open(struct tty_struct *tty,
1850 if (edge_port == NULL) 1848 if (edge_port == NULL)
1851 return -ENODEV; 1849 return -ENODEV;
1852 1850
1853 if (tty)
1854 tty->low_latency = low_latency;
1855
1856 port_number = port->number - port->serial->minor; 1851 port_number = port->number - port->serial->minor;
1857 switch (port_number) { 1852 switch (port_number) {
1858 case 0: 1853 case 0:
@@ -3008,9 +3003,6 @@ MODULE_FIRMWARE("edgeport/down3.bin");
3008module_param(debug, bool, S_IRUGO | S_IWUSR); 3003module_param(debug, bool, S_IRUGO | S_IWUSR);
3009MODULE_PARM_DESC(debug, "Debug enabled or not"); 3004MODULE_PARM_DESC(debug, "Debug enabled or not");
3010 3005
3011module_param(low_latency, bool, S_IRUGO | S_IWUSR);
3012MODULE_PARM_DESC(low_latency, "Low latency enabled or not");
3013
3014module_param(closing_wait, int, S_IRUGO | S_IWUSR); 3006module_param(closing_wait, int, S_IRUGO | S_IWUSR);
3015MODULE_PARM_DESC(closing_wait, "Maximum wait for data to drain, in .01 secs"); 3007MODULE_PARM_DESC(closing_wait, "Maximum wait for data to drain, in .01 secs");
3016 3008
diff --git a/drivers/usb/serial/ipaq.c b/drivers/usb/serial/ipaq.c
index ef92095b0732..cd62825a9ac3 100644
--- a/drivers/usb/serial/ipaq.c
+++ b/drivers/usb/serial/ipaq.c
@@ -631,13 +631,7 @@ static int ipaq_open(struct tty_struct *tty,
631 priv->free_len += PACKET_SIZE; 631 priv->free_len += PACKET_SIZE;
632 } 632 }
633 633
634 /*
635 * Force low latency on. This will immediately push data to the line
636 * discipline instead of queueing.
637 */
638
639 if (tty) { 634 if (tty) {
640 tty->low_latency = 1;
641 /* FIXME: These two are bogus */ 635 /* FIXME: These two are bogus */
642 tty->raw = 1; 636 tty->raw = 1;
643 tty->real_raw = 1; 637 tty->real_raw = 1;
diff --git a/drivers/usb/serial/ipw.c b/drivers/usb/serial/ipw.c
index f530032ed93d..da2a2b46644a 100644
--- a/drivers/usb/serial/ipw.c
+++ b/drivers/usb/serial/ipw.c
@@ -207,9 +207,6 @@ static int ipw_open(struct tty_struct *tty,
207 if (!buf_flow_init) 207 if (!buf_flow_init)
208 return -ENOMEM; 208 return -ENOMEM;
209 209
210 if (tty)
211 tty->low_latency = 1;
212
213 /* --1: Tell the modem to initialize (we think) From sniffs this is 210 /* --1: Tell the modem to initialize (we think) From sniffs this is
214 * always the first thing that gets sent to the modem during 211 * always the first thing that gets sent to the modem during
215 * opening of the device */ 212 * opening of the device */
diff --git a/drivers/usb/serial/iuu_phoenix.c b/drivers/usb/serial/iuu_phoenix.c
index 2314c6ae4fc2..4473d442b2aa 100644
--- a/drivers/usb/serial/iuu_phoenix.c
+++ b/drivers/usb/serial/iuu_phoenix.c
@@ -1051,7 +1051,6 @@ static int iuu_open(struct tty_struct *tty,
1051 tty->termios->c_oflag = 0; 1051 tty->termios->c_oflag = 0;
1052 tty->termios->c_iflag = 0; 1052 tty->termios->c_iflag = 0;
1053 priv->termios_initialized = 1; 1053 priv->termios_initialized = 1;
1054 tty->low_latency = 1;
1055 priv->poll = 0; 1054 priv->poll = 0;
1056 } 1055 }
1057 spin_unlock_irqrestore(&priv->lock, flags); 1056 spin_unlock_irqrestore(&priv->lock, flags);
diff --git a/drivers/usb/serial/kobil_sct.c b/drivers/usb/serial/kobil_sct.c
index 6286baad9392..c148544953b3 100644
--- a/drivers/usb/serial/kobil_sct.c
+++ b/drivers/usb/serial/kobil_sct.c
@@ -231,13 +231,7 @@ static int kobil_open(struct tty_struct *tty,
231 /* someone sets the dev to 0 if the close method has been called */ 231 /* someone sets the dev to 0 if the close method has been called */
232 port->interrupt_in_urb->dev = port->serial->dev; 232 port->interrupt_in_urb->dev = port->serial->dev;
233 233
234
235 /* force low_latency on so that our tty_push actually forces
236 * the data through, otherwise it is scheduled, and with high
237 * data rates (like with OHCI) data can get lost.
238 */
239 if (tty) { 234 if (tty) {
240 tty->low_latency = 1;
241 235
242 /* Default to echo off and other sane device settings */ 236 /* Default to echo off and other sane device settings */
243 tty->termios->c_lflag = 0; 237 tty->termios->c_lflag = 0;
diff --git a/drivers/usb/serial/mos7720.c b/drivers/usb/serial/mos7720.c
index e772cc0a97fd..24e3b5d4b4d4 100644
--- a/drivers/usb/serial/mos7720.c
+++ b/drivers/usb/serial/mos7720.c
@@ -446,13 +446,6 @@ static int mos7720_open(struct tty_struct *tty,
446 data = 0x0c; 446 data = 0x0c;
447 send_mos_cmd(serial, MOS_WRITE, port_number, 0x01, &data); 447 send_mos_cmd(serial, MOS_WRITE, port_number, 0x01, &data);
448 448
449 /* force low_latency on so that our tty_push actually forces *
450 * the data through,otherwise it is scheduled, and with *
451 * high data rates (like with OHCI) data can get lost. */
452
453 if (tty)
454 tty->low_latency = 1;
455
456 /* see if we've set up our endpoint info yet * 449 /* see if we've set up our endpoint info yet *
457 * (can't set it up in mos7720_startup as the * 450 * (can't set it up in mos7720_startup as the *
458 * structures were not set up at that time.) */ 451 * structures were not set up at that time.) */
diff --git a/drivers/usb/serial/mos7840.c b/drivers/usb/serial/mos7840.c
index 2c20e88a91b3..84fb1dcd30dc 100644
--- a/drivers/usb/serial/mos7840.c
+++ b/drivers/usb/serial/mos7840.c
@@ -38,7 +38,7 @@
38/* 38/*
39 * Version Information 39 * Version Information
40 */ 40 */
41#define DRIVER_VERSION "1.3.1" 41#define DRIVER_VERSION "1.3.2"
42#define DRIVER_DESC "Moschip 7840/7820 USB Serial Driver" 42#define DRIVER_DESC "Moschip 7840/7820 USB Serial Driver"
43 43
44/* 44/*
@@ -123,6 +123,11 @@
123#define BANDB_DEVICE_ID_USOPTL4_4 0xAC44 123#define BANDB_DEVICE_ID_USOPTL4_4 0xAC44
124#define BANDB_DEVICE_ID_USOPTL4_2 0xAC42 124#define BANDB_DEVICE_ID_USOPTL4_2 0xAC42
125 125
126/* This driver also supports the ATEN UC2324 device since it is mos7840 based
127 * - if I knew the device id it would also support the ATEN UC2322 */
128#define USB_VENDOR_ID_ATENINTL 0x0557
129#define ATENINTL_DEVICE_ID_UC2324 0x2011
130
126/* Interrupt Routine Defines */ 131/* Interrupt Routine Defines */
127 132
128#define SERIAL_IIR_RLS 0x06 133#define SERIAL_IIR_RLS 0x06
@@ -170,6 +175,7 @@ static struct usb_device_id moschip_port_id_table[] = {
170 {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7820)}, 175 {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7820)},
171 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)}, 176 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)},
172 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)}, 177 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)},
178 {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2324)},
173 {} /* terminating entry */ 179 {} /* terminating entry */
174}; 180};
175 181
@@ -178,6 +184,7 @@ static __devinitdata struct usb_device_id moschip_id_table_combined[] = {
178 {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7820)}, 184 {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7820)},
179 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)}, 185 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)},
180 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)}, 186 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)},
187 {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2324)},
181 {} /* terminating entry */ 188 {} /* terminating entry */
182}; 189};
183 190
@@ -1000,12 +1007,6 @@ static int mos7840_open(struct tty_struct *tty,
1000 status = mos7840_set_reg_sync(port, mos7840_port->ControlRegOffset, 1007 status = mos7840_set_reg_sync(port, mos7840_port->ControlRegOffset,
1001 Data); 1008 Data);
1002 1009
1003 /* force low_latency on so that our tty_push actually forces *
1004 * the data through,otherwise it is scheduled, and with *
1005 * high data rates (like with OHCI) data can get lost. */
1006 if (tty)
1007 tty->low_latency = 1;
1008
1009 /* Check to see if we've set up our endpoint info yet * 1010 /* Check to see if we've set up our endpoint info yet *
1010 * (can't set it up in mos7840_startup as the structures * 1011 * (can't set it up in mos7840_startup as the structures *
1011 * were not set up at that time.) */ 1012 * were not set up at that time.) */
@@ -2477,9 +2478,14 @@ static int mos7840_startup(struct usb_serial *serial)
2477 mos7840_set_port_private(serial->port[i], mos7840_port); 2478 mos7840_set_port_private(serial->port[i], mos7840_port);
2478 spin_lock_init(&mos7840_port->pool_lock); 2479 spin_lock_init(&mos7840_port->pool_lock);
2479 2480
2480 mos7840_port->port_num = ((serial->port[i]->number - 2481 /* minor is not initialised until later by
2481 (serial->port[i]->serial->minor)) + 2482 * usb-serial.c:get_free_serial() and cannot therefore be used
2482 1); 2483 * to index device instances */
2484 mos7840_port->port_num = i + 1;
2485 dbg ("serial->port[i]->number = %d", serial->port[i]->number);
2486 dbg ("serial->port[i]->serial->minor = %d", serial->port[i]->serial->minor);
2487 dbg ("mos7840_port->port_num = %d", mos7840_port->port_num);
2488 dbg ("serial->minor = %d", serial->minor);
2483 2489
2484 if (mos7840_port->port_num == 1) { 2490 if (mos7840_port->port_num == 1) {
2485 mos7840_port->SpRegOffset = 0x0; 2491 mos7840_port->SpRegOffset = 0x0;
@@ -2690,13 +2696,16 @@ static void mos7840_shutdown(struct usb_serial *serial)
2690 2696
2691 for (i = 0; i < serial->num_ports; ++i) { 2697 for (i = 0; i < serial->num_ports; ++i) {
2692 mos7840_port = mos7840_get_port_private(serial->port[i]); 2698 mos7840_port = mos7840_get_port_private(serial->port[i]);
2693 spin_lock_irqsave(&mos7840_port->pool_lock, flags); 2699 dbg ("mos7840_port %d = %p", i, mos7840_port);
2694 mos7840_port->zombie = 1; 2700 if (mos7840_port) {
2695 spin_unlock_irqrestore(&mos7840_port->pool_lock, flags); 2701 spin_lock_irqsave(&mos7840_port->pool_lock, flags);
2696 usb_kill_urb(mos7840_port->control_urb); 2702 mos7840_port->zombie = 1;
2697 kfree(mos7840_port->ctrl_buf); 2703 spin_unlock_irqrestore(&mos7840_port->pool_lock, flags);
2698 kfree(mos7840_port->dr); 2704 usb_kill_urb(mos7840_port->control_urb);
2699 kfree(mos7840_port); 2705 kfree(mos7840_port->ctrl_buf);
2706 kfree(mos7840_port->dr);
2707 kfree(mos7840_port);
2708 }
2700 mos7840_set_port_private(serial->port[i], NULL); 2709 mos7840_set_port_private(serial->port[i], NULL);
2701 } 2710 }
2702 2711
diff --git a/drivers/usb/serial/opticon.c b/drivers/usb/serial/opticon.c
index 839583dc8b6a..b500ad10b758 100644
--- a/drivers/usb/serial/opticon.c
+++ b/drivers/usb/serial/opticon.c
@@ -159,14 +159,6 @@ static int opticon_open(struct tty_struct *tty, struct usb_serial_port *port,
159 priv->port = port; 159 priv->port = port;
160 spin_unlock_irqrestore(&priv->lock, flags); 160 spin_unlock_irqrestore(&priv->lock, flags);
161 161
162 /*
163 * Force low_latency on so that our tty_push actually forces the data
164 * through, otherwise it is scheduled, and with high data rates (like
165 * with OHCI) data can get lost.
166 */
167 if (tty)
168 tty->low_latency = 1;
169
170 /* Start reading from the device */ 162 /* Start reading from the device */
171 usb_fill_bulk_urb(priv->bulk_read_urb, priv->udev, 163 usb_fill_bulk_urb(priv->bulk_read_urb, priv->udev,
172 usb_rcvbulkpipe(priv->udev, 164 usb_rcvbulkpipe(priv->udev,
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index 47bd070f24b7..7817b82889ca 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -936,9 +936,6 @@ static int option_open(struct tty_struct *tty,
936 usb_pipeout(urb->pipe), 0); */ 936 usb_pipeout(urb->pipe), 0); */
937 } 937 }
938 938
939 if (tty)
940 tty->low_latency = 1;
941
942 option_send_setup(tty, port); 939 option_send_setup(tty, port);
943 940
944 return 0; 941 return 0;
diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
index d9bf9a5c20ec..913225c61610 100644
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
@@ -14,7 +14,7 @@
14 Whom based his on the Keyspan driver by Hugh Blemings <hugh@blemings.org> 14 Whom based his on the Keyspan driver by Hugh Blemings <hugh@blemings.org>
15*/ 15*/
16 16
17#define DRIVER_VERSION "v.1.3.2" 17#define DRIVER_VERSION "v.1.3.3"
18#define DRIVER_AUTHOR "Kevin Lloyd <klloyd@sierrawireless.com>" 18#define DRIVER_AUTHOR "Kevin Lloyd <klloyd@sierrawireless.com>"
19#define DRIVER_DESC "USB Driver for Sierra Wireless USB modems" 19#define DRIVER_DESC "USB Driver for Sierra Wireless USB modems"
20 20
@@ -259,9 +259,21 @@ static int sierra_send_setup(struct tty_struct *tty,
259 val |= 0x02; 259 val |= 0x02;
260 260
261 /* If composite device then properly report interface */ 261 /* If composite device then properly report interface */
262 if (serial->num_ports == 1) 262 if (serial->num_ports == 1) {
263 interface = sierra_calc_interface(serial); 263 interface = sierra_calc_interface(serial);
264 264
265 /* Control message is sent only to interfaces with
266 * interrupt_in endpoints
267 */
268 if (port->interrupt_in_urb) {
269 /* send control message */
270 return usb_control_msg(serial->dev,
271 usb_rcvctrlpipe(serial->dev, 0),
272 0x22, 0x21, val, interface,
273 NULL, 0, USB_CTRL_SET_TIMEOUT);
274 }
275 }
276
265 /* Otherwise the need to do non-composite mapping */ 277 /* Otherwise the need to do non-composite mapping */
266 else { 278 else {
267 if (port->bulk_out_endpointAddress == 2) 279 if (port->bulk_out_endpointAddress == 2)
@@ -270,12 +282,13 @@ static int sierra_send_setup(struct tty_struct *tty,
270 interface = 1; 282 interface = 1;
271 else if (port->bulk_out_endpointAddress == 5) 283 else if (port->bulk_out_endpointAddress == 5)
272 interface = 2; 284 interface = 2;
273 }
274 285
275 return usb_control_msg(serial->dev, 286 return usb_control_msg(serial->dev,
276 usb_rcvctrlpipe(serial->dev, 0), 287 usb_rcvctrlpipe(serial->dev, 0),
277 0x22, 0x21, val, interface, 288 0x22, 0x21, val, interface,
278 NULL, 0, USB_CTRL_SET_TIMEOUT); 289 NULL, 0, USB_CTRL_SET_TIMEOUT);
290
291 }
279 } 292 }
280 293
281 return 0; 294 return 0;
@@ -585,9 +598,6 @@ static int sierra_open(struct tty_struct *tty,
585 } 598 }
586 } 599 }
587 600
588 if (tty)
589 tty->low_latency = 1;
590
591 sierra_send_setup(tty, port); 601 sierra_send_setup(tty, port);
592 602
593 /* start up the interrupt endpoint if we have one */ 603 /* start up the interrupt endpoint if we have one */
diff --git a/drivers/usb/serial/ti_usb_3410_5052.c b/drivers/usb/serial/ti_usb_3410_5052.c
index 9c4c700c7cc6..0a64bac306ee 100644
--- a/drivers/usb/serial/ti_usb_3410_5052.c
+++ b/drivers/usb/serial/ti_usb_3410_5052.c
@@ -50,11 +50,10 @@
50 50
51#define TI_TRANSFER_TIMEOUT 2 51#define TI_TRANSFER_TIMEOUT 2
52 52
53#define TI_DEFAULT_LOW_LATENCY 0
54#define TI_DEFAULT_CLOSING_WAIT 4000 /* in .01 secs */ 53#define TI_DEFAULT_CLOSING_WAIT 4000 /* in .01 secs */
55 54
56/* supported setserial flags */ 55/* supported setserial flags */
57#define TI_SET_SERIAL_FLAGS (ASYNC_LOW_LATENCY) 56#define TI_SET_SERIAL_FLAGS 0
58 57
59/* read urb states */ 58/* read urb states */
60#define TI_READ_URB_RUNNING 0 59#define TI_READ_URB_RUNNING 0
@@ -161,7 +160,6 @@ static int ti_buf_get(struct circ_buf *cb, char *buf, int count);
161 160
162/* module parameters */ 161/* module parameters */
163static int debug; 162static int debug;
164static int low_latency = TI_DEFAULT_LOW_LATENCY;
165static int closing_wait = TI_DEFAULT_CLOSING_WAIT; 163static int closing_wait = TI_DEFAULT_CLOSING_WAIT;
166static ushort vendor_3410[TI_EXTRA_VID_PID_COUNT]; 164static ushort vendor_3410[TI_EXTRA_VID_PID_COUNT];
167static unsigned int vendor_3410_count; 165static unsigned int vendor_3410_count;
@@ -296,10 +294,6 @@ MODULE_FIRMWARE("mts_edge.fw");
296module_param(debug, bool, S_IRUGO | S_IWUSR); 294module_param(debug, bool, S_IRUGO | S_IWUSR);
297MODULE_PARM_DESC(debug, "Enable debugging, 0=no, 1=yes"); 295MODULE_PARM_DESC(debug, "Enable debugging, 0=no, 1=yes");
298 296
299module_param(low_latency, bool, S_IRUGO | S_IWUSR);
300MODULE_PARM_DESC(low_latency,
301 "TTY low_latency flag, 0=off, 1=on, default is off");
302
303module_param(closing_wait, int, S_IRUGO | S_IWUSR); 297module_param(closing_wait, int, S_IRUGO | S_IWUSR);
304MODULE_PARM_DESC(closing_wait, 298MODULE_PARM_DESC(closing_wait,
305 "Maximum wait for data to drain in close, in .01 secs, default is 4000"); 299 "Maximum wait for data to drain in close, in .01 secs, default is 4000");
@@ -448,7 +442,6 @@ static int ti_startup(struct usb_serial *serial)
448 spin_lock_init(&tport->tp_lock); 442 spin_lock_init(&tport->tp_lock);
449 tport->tp_uart_base_addr = (i == 0 ? 443 tport->tp_uart_base_addr = (i == 0 ?
450 TI_UART1_BASE_ADDR : TI_UART2_BASE_ADDR); 444 TI_UART1_BASE_ADDR : TI_UART2_BASE_ADDR);
451 tport->tp_flags = low_latency ? ASYNC_LOW_LATENCY : 0;
452 tport->tp_closing_wait = closing_wait; 445 tport->tp_closing_wait = closing_wait;
453 init_waitqueue_head(&tport->tp_msr_wait); 446 init_waitqueue_head(&tport->tp_msr_wait);
454 init_waitqueue_head(&tport->tp_write_wait); 447 init_waitqueue_head(&tport->tp_write_wait);
@@ -528,10 +521,6 @@ static int ti_open(struct tty_struct *tty,
528 if (mutex_lock_interruptible(&tdev->td_open_close_lock)) 521 if (mutex_lock_interruptible(&tdev->td_open_close_lock))
529 return -ERESTARTSYS; 522 return -ERESTARTSYS;
530 523
531 if (tty)
532 tty->low_latency =
533 (tport->tp_flags & ASYNC_LOW_LATENCY) ? 1 : 0;
534
535 port_number = port->number - port->serial->minor; 524 port_number = port->number - port->serial->minor;
536 525
537 memset(&(tport->tp_icount), 0x00, sizeof(tport->tp_icount)); 526 memset(&(tport->tp_icount), 0x00, sizeof(tport->tp_icount));
@@ -1454,7 +1443,6 @@ static int ti_set_serial_info(struct tty_struct *tty, struct ti_port *tport,
1454 return -EFAULT; 1443 return -EFAULT;
1455 1444
1456 tport->tp_flags = new_serial.flags & TI_SET_SERIAL_FLAGS; 1445 tport->tp_flags = new_serial.flags & TI_SET_SERIAL_FLAGS;
1457 tty->low_latency = (tport->tp_flags & ASYNC_LOW_LATENCY) ? 1 : 0;
1458 tport->tp_closing_wait = new_serial.closing_wait; 1446 tport->tp_closing_wait = new_serial.closing_wait;
1459 1447
1460 return 0; 1448 return 0;
diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
index 2a70563bbee1..0a566eea49c0 100644
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
@@ -137,22 +137,10 @@ static void destroy_serial(struct kref *kref)
137 137
138 dbg("%s - %s", __func__, serial->type->description); 138 dbg("%s - %s", __func__, serial->type->description);
139 139
140 serial->type->shutdown(serial);
141
142 /* return the minor range that this device had */ 140 /* return the minor range that this device had */
143 if (serial->minor != SERIAL_TTY_NO_MINOR) 141 if (serial->minor != SERIAL_TTY_NO_MINOR)
144 return_serial(serial); 142 return_serial(serial);
145 143
146 for (i = 0; i < serial->num_ports; ++i)
147 serial->port[i]->port.count = 0;
148
149 /* the ports are cleaned up and released in port_release() */
150 for (i = 0; i < serial->num_ports; ++i)
151 if (serial->port[i]->dev.parent != NULL) {
152 device_unregister(&serial->port[i]->dev);
153 serial->port[i] = NULL;
154 }
155
156 /* If this is a "fake" port, we have to clean it up here, as it will 144 /* If this is a "fake" port, we have to clean it up here, as it will
157 * not get cleaned up in port_release() as it was never registered with 145 * not get cleaned up in port_release() as it was never registered with
158 * the driver core */ 146 * the driver core */
@@ -187,7 +175,7 @@ static int serial_open (struct tty_struct *tty, struct file *filp)
187 struct usb_serial *serial; 175 struct usb_serial *serial;
188 struct usb_serial_port *port; 176 struct usb_serial_port *port;
189 unsigned int portNumber; 177 unsigned int portNumber;
190 int retval; 178 int retval = 0;
191 179
192 dbg("%s", __func__); 180 dbg("%s", __func__);
193 181
@@ -198,21 +186,24 @@ static int serial_open (struct tty_struct *tty, struct file *filp)
198 return -ENODEV; 186 return -ENODEV;
199 } 187 }
200 188
189 mutex_lock(&serial->disc_mutex);
201 portNumber = tty->index - serial->minor; 190 portNumber = tty->index - serial->minor;
202 port = serial->port[portNumber]; 191 port = serial->port[portNumber];
203 if (!port) { 192 if (!port || serial->disconnected)
204 retval = -ENODEV;
205 goto bailout_kref_put;
206 }
207
208 if (port->serial->disconnected) {
209 retval = -ENODEV; 193 retval = -ENODEV;
210 goto bailout_kref_put; 194 else
211 } 195 get_device(&port->dev);
196 /*
197 * Note: Our locking order requirement does not allow port->mutex
198 * to be acquired while serial->disc_mutex is held.
199 */
200 mutex_unlock(&serial->disc_mutex);
201 if (retval)
202 goto bailout_serial_put;
212 203
213 if (mutex_lock_interruptible(&port->mutex)) { 204 if (mutex_lock_interruptible(&port->mutex)) {
214 retval = -ERESTARTSYS; 205 retval = -ERESTARTSYS;
215 goto bailout_kref_put; 206 goto bailout_port_put;
216 } 207 }
217 208
218 ++port->port.count; 209 ++port->port.count;
@@ -232,14 +223,20 @@ static int serial_open (struct tty_struct *tty, struct file *filp)
232 goto bailout_mutex_unlock; 223 goto bailout_mutex_unlock;
233 } 224 }
234 225
235 retval = usb_autopm_get_interface(serial->interface); 226 mutex_lock(&serial->disc_mutex);
227 if (serial->disconnected)
228 retval = -ENODEV;
229 else
230 retval = usb_autopm_get_interface(serial->interface);
236 if (retval) 231 if (retval)
237 goto bailout_module_put; 232 goto bailout_module_put;
233
238 /* only call the device specific open if this 234 /* only call the device specific open if this
239 * is the first time the port is opened */ 235 * is the first time the port is opened */
240 retval = serial->type->open(tty, port, filp); 236 retval = serial->type->open(tty, port, filp);
241 if (retval) 237 if (retval)
242 goto bailout_interface_put; 238 goto bailout_interface_put;
239 mutex_unlock(&serial->disc_mutex);
243 } 240 }
244 241
245 mutex_unlock(&port->mutex); 242 mutex_unlock(&port->mutex);
@@ -248,13 +245,16 @@ static int serial_open (struct tty_struct *tty, struct file *filp)
248bailout_interface_put: 245bailout_interface_put:
249 usb_autopm_put_interface(serial->interface); 246 usb_autopm_put_interface(serial->interface);
250bailout_module_put: 247bailout_module_put:
248 mutex_unlock(&serial->disc_mutex);
251 module_put(serial->type->driver.owner); 249 module_put(serial->type->driver.owner);
252bailout_mutex_unlock: 250bailout_mutex_unlock:
253 port->port.count = 0; 251 port->port.count = 0;
254 tty->driver_data = NULL; 252 tty->driver_data = NULL;
255 tty_port_tty_set(&port->port, NULL); 253 tty_port_tty_set(&port->port, NULL);
256 mutex_unlock(&port->mutex); 254 mutex_unlock(&port->mutex);
257bailout_kref_put: 255bailout_port_put:
256 put_device(&port->dev);
257bailout_serial_put:
258 usb_serial_put(serial); 258 usb_serial_put(serial);
259 return retval; 259 return retval;
260} 260}
@@ -262,6 +262,9 @@ bailout_kref_put:
262static void serial_close(struct tty_struct *tty, struct file *filp) 262static void serial_close(struct tty_struct *tty, struct file *filp)
263{ 263{
264 struct usb_serial_port *port = tty->driver_data; 264 struct usb_serial_port *port = tty->driver_data;
265 struct usb_serial *serial;
266 struct module *owner;
267 int count;
265 268
266 if (!port) 269 if (!port)
267 return; 270 return;
@@ -269,6 +272,8 @@ static void serial_close(struct tty_struct *tty, struct file *filp)
269 dbg("%s - port %d", __func__, port->number); 272 dbg("%s - port %d", __func__, port->number);
270 273
271 mutex_lock(&port->mutex); 274 mutex_lock(&port->mutex);
275 serial = port->serial;
276 owner = serial->type->driver.owner;
272 277
273 if (port->port.count == 0) { 278 if (port->port.count == 0) {
274 mutex_unlock(&port->mutex); 279 mutex_unlock(&port->mutex);
@@ -281,7 +286,7 @@ static void serial_close(struct tty_struct *tty, struct file *filp)
281 * this before we drop the port count. The call is protected 286 * this before we drop the port count. The call is protected
282 * by the port mutex 287 * by the port mutex
283 */ 288 */
284 port->serial->type->close(tty, port, filp); 289 serial->type->close(tty, port, filp);
285 290
286 if (port->port.count == (port->console ? 2 : 1)) { 291 if (port->port.count == (port->console ? 2 : 1)) {
287 struct tty_struct *tty = tty_port_tty_get(&port->port); 292 struct tty_struct *tty = tty_port_tty_get(&port->port);
@@ -295,17 +300,23 @@ static void serial_close(struct tty_struct *tty, struct file *filp)
295 } 300 }
296 } 301 }
297 302
298 if (port->port.count == 1) {
299 mutex_lock(&port->serial->disc_mutex);
300 if (!port->serial->disconnected)
301 usb_autopm_put_interface(port->serial->interface);
302 mutex_unlock(&port->serial->disc_mutex);
303 module_put(port->serial->type->driver.owner);
304 }
305 --port->port.count; 303 --port->port.count;
306 304 count = port->port.count;
307 mutex_unlock(&port->mutex); 305 mutex_unlock(&port->mutex);
308 usb_serial_put(port->serial); 306 put_device(&port->dev);
307
308 /* Mustn't dereference port any more */
309 if (count == 0) {
310 mutex_lock(&serial->disc_mutex);
311 if (!serial->disconnected)
312 usb_autopm_put_interface(serial->interface);
313 mutex_unlock(&serial->disc_mutex);
314 }
315 usb_serial_put(serial);
316
317 /* Mustn't dereference serial any more */
318 if (count == 0)
319 module_put(owner);
309} 320}
310 321
311static int serial_write(struct tty_struct *tty, const unsigned char *buf, 322static int serial_write(struct tty_struct *tty, const unsigned char *buf,
@@ -549,7 +560,13 @@ static void kill_traffic(struct usb_serial_port *port)
549 560
550static void port_free(struct usb_serial_port *port) 561static void port_free(struct usb_serial_port *port)
551{ 562{
563 /*
564 * Stop all the traffic before cancelling the work, so that
565 * nobody will restart it by calling usb_serial_port_softint.
566 */
552 kill_traffic(port); 567 kill_traffic(port);
568 cancel_work_sync(&port->work);
569
553 usb_free_urb(port->read_urb); 570 usb_free_urb(port->read_urb);
554 usb_free_urb(port->write_urb); 571 usb_free_urb(port->write_urb);
555 usb_free_urb(port->interrupt_in_urb); 572 usb_free_urb(port->interrupt_in_urb);
@@ -558,7 +575,6 @@ static void port_free(struct usb_serial_port *port)
558 kfree(port->bulk_out_buffer); 575 kfree(port->bulk_out_buffer);
559 kfree(port->interrupt_in_buffer); 576 kfree(port->interrupt_in_buffer);
560 kfree(port->interrupt_out_buffer); 577 kfree(port->interrupt_out_buffer);
561 flush_scheduled_work(); /* port->work */
562 kfree(port); 578 kfree(port);
563} 579}
564 580
@@ -1043,6 +1059,12 @@ void usb_serial_disconnect(struct usb_interface *interface)
1043 usb_set_intfdata(interface, NULL); 1059 usb_set_intfdata(interface, NULL);
1044 /* must set a flag, to signal subdrivers */ 1060 /* must set a flag, to signal subdrivers */
1045 serial->disconnected = 1; 1061 serial->disconnected = 1;
1062 mutex_unlock(&serial->disc_mutex);
1063
1064 /* Unfortunately, many of the sub-drivers expect the port structures
1065 * to exist when their shutdown method is called, so we have to go
1066 * through this awkward two-step unregistration procedure.
1067 */
1046 for (i = 0; i < serial->num_ports; ++i) { 1068 for (i = 0; i < serial->num_ports; ++i) {
1047 port = serial->port[i]; 1069 port = serial->port[i];
1048 if (port) { 1070 if (port) {
@@ -1052,11 +1074,21 @@ void usb_serial_disconnect(struct usb_interface *interface)
1052 tty_kref_put(tty); 1074 tty_kref_put(tty);
1053 } 1075 }
1054 kill_traffic(port); 1076 kill_traffic(port);
1077 cancel_work_sync(&port->work);
1078 device_del(&port->dev);
1079 }
1080 }
1081 serial->type->shutdown(serial);
1082 for (i = 0; i < serial->num_ports; ++i) {
1083 port = serial->port[i];
1084 if (port) {
1085 put_device(&port->dev);
1086 serial->port[i] = NULL;
1055 } 1087 }
1056 } 1088 }
1089
1057 /* let the last holder of this object 1090 /* let the last holder of this object
1058 * cause it to be cleaned up */ 1091 * cause it to be cleaned up */
1059 mutex_unlock(&serial->disc_mutex);
1060 usb_serial_put(serial); 1092 usb_serial_put(serial);
1061 dev_info(dev, "device disconnected\n"); 1093 dev_info(dev, "device disconnected\n");
1062} 1094}
diff --git a/drivers/usb/serial/visor.c b/drivers/usb/serial/visor.c
index 4facce3d9364..5ac414bda718 100644
--- a/drivers/usb/serial/visor.c
+++ b/drivers/usb/serial/visor.c
@@ -296,14 +296,6 @@ static int visor_open(struct tty_struct *tty, struct usb_serial_port *port,
296 priv->throttled = 0; 296 priv->throttled = 0;
297 spin_unlock_irqrestore(&priv->lock, flags); 297 spin_unlock_irqrestore(&priv->lock, flags);
298 298
299 /*
300 * Force low_latency on so that our tty_push actually forces the data
301 * through, otherwise it is scheduled, and with high data rates (like
302 * with OHCI) data can get lost.
303 */
304 if (tty)
305 tty->low_latency = 1;
306
307 /* Start reading from the device */ 299 /* Start reading from the device */
308 usb_fill_bulk_urb(port->read_urb, serial->dev, 300 usb_fill_bulk_urb(port->read_urb, serial->dev,
309 usb_rcvbulkpipe(serial->dev, 301 usb_rcvbulkpipe(serial->dev,
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index 96db479d1165..fa65a3b08601 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -1851,6 +1851,12 @@ UNUSUAL_DEV( 0xed06, 0x4500, 0x0001, 0x0001,
1851 US_SC_DEVICE, US_PR_DEVICE, NULL, 1851 US_SC_DEVICE, US_PR_DEVICE, NULL,
1852 US_FL_CAPACITY_HEURISTICS), 1852 US_FL_CAPACITY_HEURISTICS),
1853 1853
1854/* Reported by Alessio Treglia <quadrispro@ubuntu.com> */
1855UNUSUAL_DEV( 0xed10, 0x7636, 0x0001, 0x0001,
1856 "TGE",
1857 "Digital MP3 Audio Player",
1858 US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE ),
1859
1854/* Control/Bulk transport for all SubClass values */ 1860/* Control/Bulk transport for all SubClass values */
1855USUAL_DEV(US_SC_RBC, US_PR_CB, USB_US_TYPE_STOR), 1861USUAL_DEV(US_SC_RBC, US_PR_CB, USB_US_TYPE_STOR),
1856USUAL_DEV(US_SC_8020, US_PR_CB, USB_US_TYPE_STOR), 1862USUAL_DEV(US_SC_8020, US_PR_CB, USB_US_TYPE_STOR),
diff --git a/drivers/video/asiliantfb.c b/drivers/video/asiliantfb.c
index 1a1f946d8fef..9fe90ce928fb 100644
--- a/drivers/video/asiliantfb.c
+++ b/drivers/video/asiliantfb.c
@@ -533,6 +533,7 @@ static int __devinit init_asiliant(struct fb_info *p, unsigned long addr)
533 533
534 writeb(0xff, mmio_base + 0x78c); 534 writeb(0xff, mmio_base + 0x78c);
535 chips_hw_init(p); 535 chips_hw_init(p);
536 return 0;
536} 537}
537 538
538static int __devinit 539static int __devinit
diff --git a/drivers/video/logo/logo_linux_clut224.ppm b/drivers/video/logo/logo_linux_clut224.ppm
index de93ff3fc1ad..3c14e43b82fe 100644
--- a/drivers/video/logo/logo_linux_clut224.ppm
+++ b/drivers/video/logo/logo_linux_clut224.ppm
@@ -1,2828 +1,1604 @@
1P3 1P3
2145 113 2# Standard 224-color Linux logo
380 80
3255 4255
40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0
50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0
60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0 0 0 0
70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0
80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0
90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0
100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0 0 0 0 0 0 0 0 0
110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 0 0 0 0 0 0 0 0 0 0 0 0
120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 0 0 0 0 0
130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 6 6 6 6 6 6 10 10 10 10 10 10
140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 10 10 10 6 6 6 6 6 6 6 6 6
150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0
160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0
170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 0 0 0 0 0 0 0 0 0 0 0 0
180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 0 0 0 0 0 0 0 0 0 0 0 0
190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 0 0 0 0 0 0 0 0 0 0 0 0
200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 0 0 0 0 0 0 0 0 0 0 0 0
210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22 0 0 0 0 0 0 0 0 0 0 0 0
220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 0 0 0 0 0 0 0 0 0 0 0 0
230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 0 0 0 0 0 0 0 0 0 0 0 0
240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 0 0 0 0 0 0 0
250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26 0 0 0 0 0 0 0 0 0 0 0 0
260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 0 0 0 0 0 0 0 0 0 0 0 0
270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 28 0 0 0 0 0 0 0 0 0 0 0 0
280 0 0 29 0 0 0 0 0 0 0 0 0 0 0 0
290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 0 0 0 0 0 0 0 0 0 0 0 0
300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31 0 0 0 0 0 0 0 0 0 0 0 0
310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0
320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 33 0 0 0 6 6 6 10 10 10 14 14 14
330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 34 22 22 22 26 26 26 30 30 30 34 34 34
340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 30 30 30 30 30 30 26 26 26 18 18 18
350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 14 14 14 10 10 10 6 6 6 0 0 0
360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 37 0 0 0 0 0 0 0 0 0 0 0 0
370 0 0 0 0 0 0 0 0 0 0 0 3 4 4 6 7 7 38 0 0 0 0 0 0 0 0 0 0 0 0
388 10 10 8 10 10 6 8 8 6 7 7 3 4 4 2 2 2 39 0 0 0 0 0 0 0 0 0 0 0 0
390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 0 0 0 0 0
400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 0 0 0 0 0 0 0 0 0 0 0 0
410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 42 0 0 0 0 0 0 0 0 0 0 0 0
420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43 0 0 0 0 0 0 0 0 0 0 0 0
430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 0 0 0 0 0 0 0 0 0 0 0 0
440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 0 0 0 0 0 0 0 0 0 0 0 0
450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 46 0 0 0 0 0 1 0 0 1 0 0 0
460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 47 0 0 0 0 0 0 0 0 0 0 0 0
470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 0 0 0 0 0 0 0 0 0 0 0 0
480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 49 0 0 0 0 0 0 0 0 0 0 0 0
490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 0 0 0 0 0 0 0 0 0 0 0 0
500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 51 0 0 0 0 0 0 0 0 0 0 0 0
510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 52 0 0 0 0 0 0 0 0 0 0 0 0
520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 53 6 6 6 14 14 14 26 26 26 42 42 42
530 0 0 54 54 54 54 66 66 66 78 78 78 78 78 78
540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 55 78 78 78 74 74 74 66 66 66 54 54 54
550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 42 42 42 26 26 26 18 18 18 10 10 10
560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 6 6 6 0 0 0 0 0 0 0 0 0
570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 58 0 0 0 0 0 0 0 0 0 0 0 0
580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 0 0 0 0 0 0 0 0 0 0 0 0
590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 0 0 0 0 0 0 0 0 0 0 0 0
600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 61 0 0 0 0 0 0 0 0 0 0 0 0
610 0 0 0 0 0 0 0 0 0 0 0 4 5 5 17 18 17 62 0 0 0 0 0 0 0 0 0 0 0 0
6227 29 28 35 37 36 40 43 41 43 45 43 40 43 41 37 39 37 63 0 0 0 0 0 0 0 0 0 0 0 0
6332 34 33 27 30 29 23 25 24 17 21 21 15 18 18 12 15 15 64 0 0 0 0 0 0 0 0 0 0 0 0
6411 13 13 8 10 10 6 7 7 3 4 4 1 1 1 0 0 0 65 0 0 0 0 0 0 0 0 0 0 0 0
650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 66 0 0 1 0 0 0 0 0 0 0 0 0
660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 0 0 0 0 0 0 0 0 0 0 0 0
670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 68 0 0 0 0 0 0 0 0 0 0 0 0
680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 0 0 0 0 0 0 0 0 0 0 0 0
690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 0 0 0 0 0 0 0 0 0 0 0 0
700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 71 0 0 0 0 0 0 0 0 0 0 0 0
710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 0 0 0 0 0 0 0 0 0 10 10 10
720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 73 22 22 22 42 42 42 66 66 66 86 86 86
730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 66 66 66 38 38 38 38 38 38 22 22 22
740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 26 26 26 34 34 34 54 54 54 66 66 66
750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 76 86 86 86 70 70 70 46 46 46 26 26 26
760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 14 14 14 6 6 6 0 0 0 0 0 0
770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 78 0 0 0 0 0 0 0 0 0 0 0 0
780 0 0 79 0 0 0 0 0 0 0 0 0 0 0 0
790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0
800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81 0 0 0 0 0 0 0 0 0 0 0 0
810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 0 0 0 0 0 0 0 0 0 0 0 0
820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 0 0 0 0 0 0 0 0 0 0 0 0
830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 84 0 0 0 0 0 0 0 0 0 0 0 0
840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 0 0 0 0 0 0 0 0 0 0 0 0
850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 86 0 0 1 0 0 1 0 0 1 0 0 0
860 0 0 13 13 13 32 34 33 49 51 48 60 60 56 58 59 55 87 0 0 0 0 0 0 0 0 0 0 0 0
8755 57 54 55 56 53 49 51 48 43 45 43 39 40 39 33 37 35 88 0 0 0 0 0 0 0 0 0 0 0 0
8828 31 30 23 27 26 20 23 23 17 20 20 14 17 17 13 16 16 89 0 0 0 0 0 0 0 0 0 0 0 0
8911 14 14 10 13 13 10 12 12 9 11 11 8 10 10 6 7 7 90 0 0 0 0 0 0 0 0 0 0 0 0
902 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 0 0 0 0 0 0 0 0 0 0 0 0
910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 92 0 0 0 0 0 0 10 10 10 26 26 26
920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 50 50 50 82 82 82 58 58 58 6 6 6
930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 94 2 2 6 2 2 6 2 2 6 2 2 6
940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 2 2 6 2 2 6 2 2 6 2 2 6
950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 6 6 6 54 54 54 86 86 86 66 66 66
960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 97 38 38 38 18 18 18 6 6 6 0 0 0
970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 0 0 0 0 0 0 0 0 0 0 0 0
980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 0 0 0 0 0 0 0 0 0 0 0 0
990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 0 0 0 0 0 0 0 0 0 0 0
1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 0 0 0 0 0 0 0 0 0 0 0 0
1010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 0 0 0 0 0 0 0 0 0 0 0 0
1020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 103 0 0 0 0 0 0 0 0 0 0 0 0
1030 0 0 104 0 0 0 0 0 0 0 0 0 0 0 0
1040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 105 0 0 0 0 0 0 0 0 0 0 0 0
1050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 0 0 0 0 0 0 0 0 0 0 0 0
1060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 0 0 0 0 0 0 0 0 0 0 0 0
1070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 108 0 0 0 0 0 0 0 0 0 0 0 0
1080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 0 0 0 0 0 0 0 0 0 0 0 0
1090 0 0 0 0 0 0 0 0 0 0 0 6 7 7 12 15 15 110 0 0 0 0 0 0 0 0 0 0 0 0
11012 15 15 8 9 9 2 3 3 0 0 0 1 1 1 25 27 26 111 0 0 0 0 0 0 0 0 0 0 0 0
11155 56 53 68 70 65 65 66 61 65 66 61 63 64 60 63 64 60 112 0 0 0 6 6 6 22 22 22 50 50 50
11258 59 55 51 52 50 47 48 46 41 42 42 35 37 36 30 32 31 113 78 78 78 34 34 34 2 2 6 2 2 6
11326 28 27 20 24 24 18 22 22 16 19 19 14 17 17 13 16 16 114 2 2 6 2 2 6 2 2 6 2 2 6
11412 15 15 11 14 14 10 13 13 10 12 12 9 11 11 8 10 10 115 2 2 6 2 2 6 2 2 6 2 2 6
1158 9 9 6 8 8 3 3 3 0 0 0 0 0 0 0 0 0 116 2 2 6 2 2 6 6 6 6 70 70 70
1160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 78 78 78 46 46 46 22 22 22 6 6 6
1170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 0 0 0 0 0 0 0 0 0 0 0 0
1180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 119 0 0 0 0 0 0 0 0 0 0 0 0
1190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 0 0 0 0 0 0 0 0 0 0 0 0
1200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 121 0 0 0 0 0 0 0 0 0 0 0 0
1210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 0 0 0 0 0 0 0 0 0 0 0 0
1220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 0 0 0 0 0 0 0 0 0 0 0 0
1230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 124 0 0 0 0 0 0 0 0 0 0 0 0
1240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 0 0 0 0 0 0 0 0 0 0 0 0
1250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 0 0 1 0 0 1 0 0 1 0 0 0
1260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0 0 0 0 0 0 0 0 0 0 0 0
1270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 0 0 0 0 0 0 0 0 0 0 0 0
1280 0 0 129 0 0 0 0 0 0 0 0 0 0 0 0
1290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 130 0 0 0 0 0 0 0 0 0 0 0 0
1300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 0 0 0 0 0 0 0 0 0 0 0 0
1310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 132 6 6 6 18 18 18 42 42 42 82 82 82
1320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 26 26 26 2 2 6 2 2 6 2 2 6
1330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 2 2 6 2 2 6 2 2 6 2 2 6
1340 0 0 0 0 0 0 0 0 6 7 7 20 24 24 23 27 26 135 2 2 6 2 2 6 2 2 6 14 14 14
13523 27 26 18 22 22 11 13 13 23 24 24 61 63 57 72 73 67 136 46 46 46 34 34 34 6 6 6 2 2 6
13672 73 67 68 70 65 68 70 65 68 70 65 63 64 60 58 59 55 137 42 42 42 78 78 78 42 42 42 18 18 18
13755 56 53 47 48 46 41 42 42 35 37 36 30 32 31 26 28 27 138 6 6 6 0 0 0 0 0 0 0 0 0
13820 24 24 18 22 22 16 20 20 15 19 19 14 17 17 13 16 16 139 0 0 0 0 0 0 0 0 0 0 0 0
13912 15 15 12 15 15 11 14 14 10 13 13 10 12 12 9 11 11 140 0 0 0 0 0 0 0 0 0 0 0 0
1408 10 10 8 9 9 7 9 9 6 7 7 1 2 2 0 0 0 141 0 0 0 0 0 0 0 0 0 0 0 0
1410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 0 0 0 0 0 0 0 0 0 0 0 0
1420 0 0 0 0 0 1 1 1 4 5 5 5 6 5 4 5 5 143 0 0 0 0 0 0 0 0 0 0 0 0
1430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 0 0 0 0 0 0 0 0 0 0 0 0
1440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 0 0 0 0 0 0 0 0 0 0 0 0
1450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 146 0 0 1 0 0 0 0 0 1 0 0 0
1460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 0 0 0 0 0 0 0 0 0 0 0 0
1470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 148 0 0 0 0 0 0 0 0 0 0 0 0
1480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 0 0 0 0 0 0 0 0 0 0 0 0
1490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 0 0 0 0 0 0 0 0 0 0 0 0
1500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 151 0 0 0 0 0 0 0 0 0 0 0 0
1510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 10 10 10 30 30 30 66 66 66 58 58 58
1520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 2 2 6 2 2 6 2 2 6 2 2 6
1530 0 0 154 2 2 6 2 2 6 2 2 6 2 2 6
1540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 2 2 6 2 2 6 2 2 6 26 26 26
1550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 86 86 86 101 101 101 46 46 46 10 10 10
1560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 2 2 6 58 58 58 70 70 70 34 34 34
1570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 10 10 10 0 0 0 0 0 0 0 0 0
1580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 159 0 0 0 0 0 0 0 0 0 0 0 0
1590 0 0 0 0 0 0 0 0 15 19 19 40 41 39 53 55 47 160 0 0 0 0 0 0 0 0 0 0 0 0
16033 36 34 27 30 29 51 52 50 72 73 67 72 73 67 72 73 67 161 0 0 0 0 0 0 0 0 0 0 0 0
16172 73 67 68 70 65 68 70 65 63 64 60 58 59 55 51 52 50 162 0 0 0 0 0 0 0 0 0 0 0 0
16247 48 46 40 43 41 33 37 35 30 32 31 26 28 27 20 24 24 163 0 0 0 0 0 0 0 0 0 0 0 0
16318 22 22 17 21 21 16 19 19 14 18 18 14 17 17 13 17 17 164 0 0 0 0 0 0 0 0 0 0 0 0
16413 16 16 12 15 15 12 15 15 11 14 14 10 13 13 10 12 12 165 0 0 0 0 0 0 0 0 0 0 0 0
1659 11 11 8 10 10 8 9 9 7 9 9 6 8 8 3 4 4 166 0 0 1 0 0 1 0 0 1 0 0 0
1660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 0 0 0 0 0 0 0 0 0 0 0 0
1672 2 2 6 8 8 10 12 12 10 12 12 10 12 12 10 12 12 168 0 0 0 0 0 0 0 0 0 0 0 0
1686 8 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 0 0 0 0 0 0 0 0 0 0 0 0
1690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 0 0 0 0 0 0 0 0 0 0 0 0
1700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 0 0 0 0 0 0 0 0 0 0 0 0
1710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 14 14 14 42 42 42 86 86 86 10 10 10
1720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 173 2 2 6 2 2 6 2 2 6 2 2 6
1730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 2 2 6 2 2 6 2 2 6 2 2 6
1740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 2 2 6 2 2 6 2 2 6 30 30 30
1750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 176 94 94 94 94 94 94 58 58 58 26 26 26
1760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 2 2 6 6 6 6 78 78 78 54 54 54
1770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 22 22 22 6 6 6 0 0 0 0 0 0
1780 0 0 179 0 0 0 0 0 0 0 0 0 0 0 0
1790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 0 0 0 0 0 0 0 0 0 0 0 0
1800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 0 0 0 0 0 0 0 0 0 0 0 0
1810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 182 0 0 0 0 0 0 0 0 0 0 0 0
1820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 0 0 0 0 0 0 0 0 0 0 0 0
1830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 0 0 0 0 0 0 0 0 0 0 0 0
1840 0 0 0 0 0 0 0 0 20 23 23 71 71 57 131 127 93 185 0 0 0 0 0 0 0 0 0 0 0 0
185115 113 82 63 64 60 72 73 67 72 73 67 72 73 67 72 73 67 186 0 0 0 0 0 0 0 0 0 0 0 0
18668 70 65 65 66 61 61 63 57 55 57 54 49 51 48 43 45 43 187 0 0 0 0 0 0 0 0 0 0 0 0
18739 40 39 33 36 34 28 31 30 23 27 26 20 24 24 20 23 23 188 0 0 0 0 0 0 0 0 0 0 0 0
18817 21 21 16 20 20 15 19 19 15 18 18 14 18 18 14 17 17 189 0 0 0 0 0 0 0 0 0 0 0 0
18913 17 17 13 16 16 12 15 15 12 15 15 11 14 14 10 13 13 190 0 0 0 0 0 0 0 0 0 0 0 0
19010 12 12 9 11 11 8 10 10 7 9 9 7 9 9 6 8 8 191 0 0 0 0 0 0 0 0 0 6 6 6
1914 5 5 0 0 0 0 0 0 0 0 0 1 1 1 6 7 7 192 22 22 22 62 62 62 62 62 62 2 2 6
19210 12 12 10 12 12 10 12 12 10 12 12 10 12 12 10 12 12 193 2 2 6 2 2 6 2 2 6 2 2 6
19310 12 12 3 4 4 0 0 0 0 0 0 0 0 0 0 0 0 194 2 2 6 2 2 6 2 2 6 2 2 6
1940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 195 2 2 6 2 2 6 2 2 6 26 26 26
1950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 54 54 54 38 38 38 18 18 18 10 10 10
1960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 2 2 6 2 2 6 34 34 34 82 82 82
1970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 198 38 38 38 14 14 14 0 0 0 0 0 0
1980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 0 0 0 0 0 0 0 0 0 0 0 0
1990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 0 0 0 0 0 0 0 0 0 0 0 0
2000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 0 0 0 0 0 0 0 0 0 0 0 0
2010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 202 0 0 0 0 0 0 0 0 0 0 0 0
2020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 0 0 0 0 0 0 0 0 0 0 0 0
2030 0 0 204 0 0 0 0 0 0 0 0 0 0 0 0
2040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 0 0 0 0 0 0 0 0 0 0 0 0
2050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 206 0 0 0 0 0 1 0 0 1 0 0 0
2060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 0 0 0 0 0 0 0 0 0 0 0 0
2070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 0 0 0 0 0 0 0 0 0 0 0 0
2080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 0 0 0 0 0 0 0 0 0 0 0 0
2090 0 0 0 0 0 0 0 0 18 22 22 71 71 57 144 139 99 210 0 0 0 0 0 0 0 0 0 0 0 0
21084 83 72 68 70 65 72 73 67 72 73 67 68 70 65 65 66 61 211 0 0 0 0 0 0 0 0 0 6 6 6
21163 64 60 55 57 54 51 52 50 47 48 46 40 43 41 35 37 36 212 30 30 30 78 78 78 30 30 30 2 2 6
21230 32 31 27 29 28 23 27 26 20 24 24 18 22 22 17 21 21 213 2 2 6 2 2 6 2 2 6 2 2 6
21316 20 20 15 19 19 15 19 19 15 19 19 15 18 18 14 18 18 214 2 2 6 2 2 6 2 2 6 2 2 6
21414 17 17 13 17 17 13 16 16 12 15 15 12 15 15 11 14 14 215 2 2 6 2 2 6 2 2 6 10 10 10
21510 13 13 9 12 12 9 11 11 8 10 10 7 9 9 6 8 8 216 10 10 10 2 2 6 2 2 6 2 2 6
2166 8 8 3 4 4 0 0 0 2 2 2 8 10 10 10 12 12 217 2 2 6 2 2 6 2 2 6 78 78 78
21710 12 12 10 12 12 11 13 13 36 38 35 61 61 53 48 49 45 218 50 50 50 18 18 18 6 6 6 0 0 0
21810 12 12 7 9 9 0 0 0 0 0 0 0 0 0 0 0 0 219 0 0 0 0 0 0 0 0 0 0 0 0
2190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 0 0 0 0 0 0 0 0 0 0 0 0
2200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 0 0 0 0 0 0 0 0 0 0 0 0
2210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 0 0 0 0 0 0 0 0 0 0 0 0
2220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 0 0 0 0 0 0 0 0 0 0 0 0
2230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 0 0 0 0 0 0 0 0 0 0 0 0
2240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 225 0 0 0 0 0 0 0 0 0 0 0 0
2250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 0 0 1 0 0 0 0 0 0 0 0 0
2260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 0 0 0 0 0 0 0 0 0 0 0 0
2270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 0 0 0 0 0 0 0 0 0 0 0 0
2280 0 0 229 0 0 0 0 0 0 0 0 0 0 0 0
2290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 0 0 0 0 0 0 0 0 0 0 0 0
2300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 0 0 0 0 0 0 0 0 0 10 10 10
2310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 38 38 38 86 86 86 14 14 14 2 2 6
2320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 2 2 6 2 2 6 2 2 6 2 2 6
2330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 2 2 6 2 2 6 2 2 6 2 2 6
2340 0 0 0 0 0 0 0 0 15 19 19 61 61 53 84 83 72 235 2 2 6 2 2 6 2 2 6 2 2 6
23568 70 65 72 73 67 68 70 65 68 70 65 63 64 60 58 59 55 236 2 2 6 2 2 6 2 2 6 2 2 6
23651 52 50 47 48 46 41 42 42 37 39 37 32 35 33 28 31 30 237 2 2 6 2 2 6 2 2 6 54 54 54
23723 27 26 20 24 24 20 23 23 18 22 22 17 21 21 17 21 21 238 66 66 66 26 26 26 6 6 6 0 0 0
23817 21 21 17 21 21 17 20 20 16 20 20 16 20 20 16 19 19 239 0 0 0 0 0 0 0 0 0 0 0 0
23915 18 18 14 18 18 13 17 17 13 16 16 12 15 15 12 15 15 240 0 0 0 0 0 0 0 0 0 0 0 0
24011 14 14 10 13 13 9 12 12 9 11 11 8 10 10 7 9 9 241 0 0 0 0 0 0 0 0 0 0 0 0
2416 8 8 6 8 8 5 6 5 9 11 11 10 12 12 10 12 12 242 0 0 0 0 0 0 0 0 0 0 0 0
24219 20 18 82 81 62 149 145 103 160 154 106 142 137 94 96 95 69 243 0 0 0 0 0 0 0 0 0 0 0 0
24310 12 12 10 12 12 1 1 1 0 0 0 0 0 0 0 0 0 244 0 0 0 0 0 0 0 0 0 0 0 0
2440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 0 0 0 0 0 0 0 0 0 0 0 0
2450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 0 0 0 0 0 1 0 0 1 0 0 0
2460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 0 0 0 0 0 0 0 0 0 0 0 0
2470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 0 0 0 0 0 0 0 0 0 0 0 0
2480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 0 0 0 0 0 0 0 0 0 0 0 0
2490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 0 0 0 0 0 0 0 0 0 0 0 0
2500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 0 0 0 0 0 0 0 0 0 14 14 14
2510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 42 42 42 82 82 82 2 2 6 2 2 6
2520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 253 2 2 6 6 6 6 10 10 10 2 2 6
2530 0 0 254 2 2 6 2 2 6 2 2 6 2 2 6
2540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 2 2 6 2 2 6 2 2 6 6 6 6
2550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 256 14 14 14 10 10 10 2 2 6 2 2 6
2560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 257 2 2 6 2 2 6 2 2 6 18 18 18
2570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 258 82 82 82 34 34 34 10 10 10 0 0 0
2580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 259 0 0 0 0 0 0 0 0 0 0 0 0
2590 0 0 0 0 0 0 0 0 10 12 12 44 46 43 68 70 65 260 0 0 0 0 0 0 0 0 0 0 0 0
26072 73 67 68 70 65 68 70 65 63 64 60 55 57 54 49 51 48 261 0 0 0 0 0 0 0 0 0 0 0 0
26143 45 43 39 40 39 33 37 35 30 32 31 26 28 27 23 27 26 262 0 0 0 0 0 0 0 0 0 0 0 0
26220 24 24 18 22 22 18 22 22 18 22 22 18 22 22 20 23 23 263 0 0 0 0 0 0 0 0 0 0 0 0
26320 24 24 23 25 24 23 25 24 22 24 23 20 23 23 18 22 22 264 0 0 0 0 0 0 0 0 0 0 0 0
26417 20 20 15 19 19 15 18 18 14 17 17 13 16 16 12 15 15 265 0 0 0 0 0 0 0 0 0 0 0 0
26511 14 14 11 13 13 10 12 12 9 11 11 8 10 10 8 9 9 266 0 0 1 0 0 0 0 0 0 0 0 0
2667 9 9 7 9 9 10 12 12 10 12 12 10 12 12 71 71 57 267 0 0 0 0 0 0 0 0 0 0 0 0
267164 159 111 186 182 128 186 182 128 171 165 117 151 147 98 96 95 69 268 0 0 0 0 0 0 0 0 0 0 0 0
26810 12 12 10 12 12 3 3 3 0 0 0 0 0 0 0 0 0 269 0 0 0 0 0 0 0 0 0 0 0 0
2690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 270 0 0 0 0 0 0 0 0 0 0 0 0
2700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 271 0 0 0 0 0 0 0 0 0 14 14 14
2710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 272 46 46 46 86 86 86 2 2 6 2 2 6
2720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 273 6 6 6 6 6 6 22 22 22 34 34 34
2730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 274 6 6 6 2 2 6 2 2 6 2 2 6
2740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 275 2 2 6 2 2 6 18 18 18 34 34 34
2750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 276 10 10 10 50 50 50 22 22 22 2 2 6
2760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 277 2 2 6 2 2 6 2 2 6 10 10 10
2770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 86 86 86 42 42 42 14 14 14 0 0 0
2780 0 0 279 0 0 0 0 0 0 0 0 0 0 0 0
2790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 280 0 0 0 0 0 0 0 0 0 0 0 0
2800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 281 0 0 0 0 0 0 0 0 0 0 0 0
2810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 282 0 0 0 0 0 0 0 0 0 0 0 0
2820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 283 0 0 0 0 0 0 0 0 0 0 0 0
2830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 284 0 0 0 0 0 0 0 0 0 0 0 0
2840 0 0 0 0 0 0 0 0 8 10 10 63 64 60 68 70 65 285 0 0 0 0 0 0 0 0 0 0 0 0
28572 73 67 68 70 65 63 64 60 55 57 54 47 48 46 40 43 41 286 0 0 1 0 0 1 0 0 1 0 0 0
28633 37 35 30 32 31 27 29 28 23 27 26 20 24 24 20 23 23 287 0 0 0 0 0 0 0 0 0 0 0 0
28718 22 22 18 22 22 20 23 22 21 25 23 23 27 26 27 29 28 288 0 0 0 0 0 0 0 0 0 0 0 0
28828 31 30 31 33 31 31 33 31 31 33 31 28 31 30 26 28 27 289 0 0 0 0 0 0 0 0 0 0 0 0
28923 25 24 20 23 22 16 20 20 15 18 18 14 17 17 13 16 16 290 0 0 0 0 0 0 0 0 0 0 0 0
29012 15 15 11 14 14 10 13 13 10 12 12 9 11 11 8 10 10 291 0 0 0 0 0 0 0 0 0 14 14 14
29110 12 12 10 13 13 10 12 12 12 14 14 96 95 69 165 161 109 292 46 46 46 86 86 86 2 2 6 2 2 6
292186 182 128 192 187 134 192 187 134 176 171 126 160 154 106 103 101 77 293 38 38 38 116 116 116 94 94 94 22 22 22
29310 12 12 10 12 12 5 6 5 0 0 0 0 0 0 0 0 0 294 22 22 22 2 2 6 2 2 6 2 2 6
2940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 295 14 14 14 86 86 86 138 138 138 162 162 162
2950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 296154 154 154 38 38 38 26 26 26 6 6 6
2960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 297 2 2 6 2 2 6 2 2 6 2 2 6
2970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 298 86 86 86 46 46 46 14 14 14 0 0 0
2980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 299 0 0 0 0 0 0 0 0 0 0 0 0
2990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 300 0 0 0 0 0 0 0 0 0 0 0 0
3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 301 0 0 0 0 0 0 0 0 0 0 0 0
3010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 302 0 0 0 0 0 0 0 0 0 0 0 0
3020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 303 0 0 0 0 0 0 0 0 0 0 0 0
3030 0 0 304 0 0 0 0 0 0 0 0 0 0 0 0
3040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 305 0 0 0 0 0 0 0 0 0 0 0 0
3050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 306 0 0 0 0 0 0 0 0 0 0 0 0
3060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 307 0 0 0 0 0 0 0 0 0 0 0 0
3070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 308 0 0 0 0 0 0 0 0 0 0 0 0
3080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 309 0 0 0 0 0 0 0 0 0 0 0 0
3090 0 0 0 0 0 0 0 0 35 37 36 68 70 65 72 73 67 310 0 0 0 0 0 0 0 0 0 0 0 0
31068 70 65 65 66 61 58 59 55 49 51 48 40 43 41 33 37 35 311 0 0 0 0 0 0 0 0 0 14 14 14
31128 31 30 23 27 26 20 24 24 20 23 23 18 22 22 18 22 22 312 46 46 46 86 86 86 2 2 6 14 14 14
31218 22 22 20 23 23 23 27 26 27 30 29 32 35 33 37 39 37 313134 134 134 198 198 198 195 195 195 116 116 116
31340 43 41 44 46 43 46 47 43 44 46 43 40 43 41 36 38 35 314 10 10 10 2 2 6 2 2 6 6 6 6
31431 33 31 27 29 28 22 24 23 17 21 21 15 18 18 14 17 17 315101 98 89 187 187 187 210 210 210 218 218 218
31513 16 16 12 15 15 11 14 14 11 14 14 11 13 13 13 16 16 316214 214 214 134 134 134 14 14 14 6 6 6
31613 16 16 11 14 14 10 12 12 79 78 62 142 137 94 164 159 111 317 2 2 6 2 2 6 2 2 6 2 2 6
317178 174 128 192 187 134 192 187 134 176 171 126 160 154 106 96 95 69 318 86 86 86 50 50 50 18 18 18 6 6 6
31810 12 12 10 12 12 6 7 7 0 0 0 0 0 0 0 0 0 319 0 0 0 0 0 0 0 0 0 0 0 0
3190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 320 0 0 0 0 0 0 0 0 0 0 0 0
3200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 321 0 0 0 0 0 0 0 0 0 0 0 0
3210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 322 0 0 0 0 0 0 0 0 0 0 0 0
3220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 323 0 0 0 0 0 0 0 0 0 0 0 0
3230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 324 0 0 0 0 0 0 0 0 0 0 0 0
3240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 325 0 0 0 0 0 0 0 0 1 0 0 0
3250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 326 0 0 1 0 0 1 0 0 1 0 0 0
3260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 327 0 0 0 0 0 0 0 0 0 0 0 0
3270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 328 0 0 0 0 0 0 0 0 0 0 0 0
3280 0 0 329 0 0 0 0 0 0 0 0 0 0 0 0
3290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 330 0 0 0 0 0 0 0 0 0 0 0 0
3300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 331 0 0 0 0 0 0 0 0 0 14 14 14
3310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 332 46 46 46 86 86 86 2 2 6 54 54 54
3320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333218 218 218 195 195 195 226 226 226 246 246 246
3330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 334 58 58 58 2 2 6 2 2 6 30 30 30
3340 0 0 0 0 0 0 0 0 55 57 54 68 70 65 72 73 67 335210 210 210 253 253 253 174 174 174 123 123 123
33568 70 65 63 64 60 55 56 53 43 45 43 35 37 36 28 31 30 336221 221 221 234 234 234 74 74 74 2 2 6
33623 27 26 20 24 24 18 22 22 17 21 21 17 21 21 17 21 21 337 2 2 6 2 2 6 2 2 6 2 2 6
33720 24 24 25 27 26 31 33 31 38 39 37 46 47 43 53 55 47 338 70 70 70 58 58 58 22 22 22 6 6 6
33861 61 53 66 65 55 66 65 55 66 65 55 61 61 53 53 55 47 339 0 0 0 0 0 0 0 0 0 0 0 0
33946 47 43 37 39 37 30 33 30 24 26 24 17 21 21 15 18 18 340 0 0 0 0 0 0 0 0 0 0 0 0
34013 17 17 12 15 15 12 15 15 13 16 16 14 18 18 14 18 18 341 0 0 0 0 0 0 0 0 0 0 0 0
34114 17 17 12 15 15 30 31 28 118 116 76 134 131 96 160 154 106 342 0 0 0 0 0 0 0 0 0 0 0 0
342174 170 121 178 174 128 178 174 128 171 165 117 151 147 98 96 95 69 343 0 0 0 0 0 0 0 0 0 0 0 0
34310 12 12 10 12 12 6 8 8 0 0 0 0 0 0 0 0 0 344 0 0 0 0 0 0 0 0 0 0 0 0
3440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 345 0 0 0 0 0 0 0 0 0 0 0 0
3450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 346 0 0 0 0 0 0 0 0 0 0 0 0
3460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 347 0 0 0 0 0 0 0 0 0 0 0 0
3470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 348 0 0 0 0 0 0 0 0 0 0 0 0
3480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 349 0 0 0 0 0 0 0 0 0 0 0 0
3490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 350 0 0 0 0 0 0 0 0 0 0 0 0
3500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 351 0 0 0 0 0 0 0 0 0 14 14 14
3510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 352 46 46 46 82 82 82 2 2 6 106 106 106
3520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 353170 170 170 26 26 26 86 86 86 226 226 226
3530 0 0 354123 123 123 10 10 10 14 14 14 46 46 46
3540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 355231 231 231 190 190 190 6 6 6 70 70 70
3550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 356 90 90 90 238 238 238 158 158 158 2 2 6
3560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 357 2 2 6 2 2 6 2 2 6 2 2 6
3570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 358 70 70 70 58 58 58 22 22 22 6 6 6
3580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 359 0 0 0 0 0 0 0 0 0 0 0 0
3590 0 0 0 0 0 0 0 0 63 64 60 68 70 65 68 70 65 360 0 0 0 0 0 0 0 0 0 0 0 0
36065 66 61 58 59 55 49 51 48 39 40 39 30 32 31 23 27 26 361 0 0 0 0 0 0 0 0 0 0 0 0
36120 24 24 18 22 22 17 21 21 16 20 20 17 21 21 20 23 23 362 0 0 0 0 0 0 0 0 0 0 0 0
36225 27 26 32 35 33 43 44 41 53 55 47 66 65 55 75 75 61 363 0 0 0 0 0 0 0 0 0 0 0 0
36382 81 62 84 83 72 87 86 72 87 86 72 82 81 62 75 75 61 364 0 0 0 0 0 0 0 0 0 0 0 0
36466 65 55 53 55 47 40 41 39 31 33 31 23 25 24 17 20 20 365 0 0 0 0 0 0 0 0 1 0 0 0
36514 18 18 13 16 16 12 15 15 12 15 15 13 17 17 14 18 18 366 0 0 1 0 0 1 0 0 1 0 0 0
36614 18 18 13 16 16 46 47 43 96 95 69 125 122 87 142 137 94 367 0 0 0 0 0 0 0 0 0 0 0 0
367160 154 106 165 161 109 164 159 111 155 149 109 142 137 94 75 75 61 368 0 0 0 0 0 0 0 0 0 0 0 0
36810 12 12 10 12 12 6 8 8 0 0 0 0 0 0 0 0 0 369 0 0 0 0 0 0 0 0 0 0 0 0
3690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 370 0 0 0 0 0 0 0 0 0 0 0 0
3700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 371 0 0 0 0 0 0 0 0 0 14 14 14
3710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 372 42 42 42 86 86 86 6 6 6 116 116 116
3720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 373106 106 106 6 6 6 70 70 70 149 149 149
3730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 374128 128 128 18 18 18 38 38 38 54 54 54
3740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 375221 221 221 106 106 106 2 2 6 14 14 14
3750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 376 46 46 46 190 190 190 198 198 198 2 2 6
3760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 377 2 2 6 2 2 6 2 2 6 2 2 6
3770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 378 74 74 74 62 62 62 22 22 22 6 6 6
3780 0 0 379 0 0 0 0 0 0 0 0 0 0 0 0
3790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 380 0 0 0 0 0 0 0 0 0 0 0 0
3800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 381 0 0 0 0 0 0 0 0 0 0 0 0
3810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 382 0 0 0 0 0 0 0 0 0 0 0 0
3820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 383 0 0 0 0 0 0 0 0 0 0 0 0
3830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 384 0 0 0 0 0 0 0 0 0 0 0 0
3840 0 0 0 0 0 0 0 0 60 60 56 68 70 65 68 70 65 385 0 0 0 0 0 0 0 0 1 0 0 0
38563 64 60 55 57 54 46 47 45 35 37 36 27 30 29 23 25 24 386 0 0 1 0 0 0 0 0 1 0 0 0
38618 22 22 17 21 21 16 20 20 17 21 21 18 22 22 23 27 26 387 0 0 0 0 0 0 0 0 0 0 0 0
38731 33 31 43 44 41 55 56 53 71 71 57 84 83 72 92 91 72 388 0 0 0 0 0 0 0 0 0 0 0 0
388103 101 77 92 91 72 82 81 62 82 81 62 87 86 72 92 91 72 389 0 0 0 0 0 0 0 0 0 0 0 0
38984 83 72 71 71 57 55 56 53 43 44 41 30 33 30 22 24 23 390 0 0 0 0 0 0 0 0 0 0 0 0
39016 19 19 14 17 17 12 15 15 12 15 15 13 16 16 14 18 18 391 0 0 0 0 0 0 0 0 0 14 14 14
39114 18 18 14 17 17 43 44 41 82 81 62 118 116 76 125 122 87 392 42 42 42 94 94 94 14 14 14 101 101 101
392142 137 94 144 139 99 144 139 99 134 131 96 118 116 76 53 55 47 393128 128 128 2 2 6 18 18 18 116 116 116
39310 12 12 10 12 12 6 8 8 0 0 0 0 0 0 0 0 0 394118 98 46 121 92 8 121 92 8 98 78 10
3940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 395162 162 162 106 106 106 2 2 6 2 2 6
3950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 396 2 2 6 195 195 195 195 195 195 6 6 6
3960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 397 2 2 6 2 2 6 2 2 6 2 2 6
3970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 398 74 74 74 62 62 62 22 22 22 6 6 6
3980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 399 0 0 0 0 0 0 0 0 0 0 0 0
3990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 400 0 0 0 0 0 0 0 0 0 0 0 0
4000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 401 0 0 0 0 0 0 0 0 0 0 0 0
4010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 402 0 0 0 0 0 0 0 0 0 0 0 0
4020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 403 0 0 0 0 0 0 0 0 0 0 0 0
4030 0 0 404 0 0 0 0 0 0 0 0 0 0 0 0
4040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 405 0 0 0 0 0 0 0 0 1 0 0 1
4050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 406 0 0 1 0 0 0 0 0 1 0 0 0
4060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 407 0 0 0 0 0 0 0 0 0 0 0 0
4070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 408 0 0 0 0 0 0 0 0 0 0 0 0
4080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 409 0 0 0 0 0 0 0 0 0 0 0 0
4090 0 0 0 0 0 0 0 0 47 48 46 63 64 60 63 64 60 410 0 0 0 0 0 0 0 0 0 0 0 0
41055 57 54 49 51 48 40 43 41 32 34 33 26 28 27 20 24 24 411 0 0 0 0 0 0 0 0 0 10 10 10
41118 22 22 16 20 20 16 20 20 17 21 21 20 24 24 28 31 30 412 38 38 38 90 90 90 14 14 14 58 58 58
41240 41 39 53 55 47 75 75 61 90 89 73 87 86 72 48 49 45 413210 210 210 26 26 26 54 38 6 154 114 10
41314 14 13 2 2 2 1 2 2 1 1 1 1 1 1 2 2 2 414226 170 11 236 186 11 225 175 15 184 144 12
41419 20 18 43 44 41 66 65 55 53 55 47 38 39 37 26 28 27 415215 174 15 175 146 61 37 26 9 2 2 6
41518 22 22 14 18 18 13 16 16 12 15 15 12 15 15 13 17 17 416 70 70 70 246 246 246 138 138 138 2 2 6
41614 18 18 14 18 18 30 31 28 66 65 55 96 95 69 103 101 77 417 2 2 6 2 2 6 2 2 6 2 2 6
417118 116 76 118 116 76 118 116 76 118 116 76 103 101 77 36 38 35 418 70 70 70 66 66 66 26 26 26 6 6 6
41810 12 12 10 12 12 6 7 7 0 0 0 0 0 0 0 0 0 419 0 0 0 0 0 0 0 0 0 0 0 0
4190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 420 0 0 0 0 0 0 0 0 0 0 0 0
4200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 421 0 0 0 0 0 0 0 0 0 0 0 0
4210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 422 0 0 0 0 0 0 0 0 0 0 0 0
4220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 423 0 0 0 0 0 0 0 0 0 0 0 0
4230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 424 0 0 0 0 0 0 0 0 0 0 0 0
4240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 425 0 0 0 0 0 0 0 0 0 0 0 0
4250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 426 0 0 0 0 0 0 0 0 0 0 0 0
4260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 427 0 0 0 0 0 0 0 0 0 0 0 0
4270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 428 0 0 0 0 0 0 0 0 0 0 0 0
4280 0 0 429 0 0 0 0 0 0 0 0 0 0 0 0
4290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 430 0 0 0 0 0 0 0 0 0 0 0 0
4300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 431 0 0 0 0 0 0 0 0 0 10 10 10
4310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 432 38 38 38 86 86 86 14 14 14 10 10 10
4320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 433195 195 195 188 164 115 192 133 9 225 175 15
4330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 434239 182 13 234 190 10 232 195 16 232 200 30
4340 0 0 0 0 0 0 0 0 28 31 30 55 57 54 51 52 50 435245 207 45 241 208 19 232 195 16 184 144 12
43549 51 48 41 42 42 35 37 36 28 31 30 23 27 26 20 23 23 436218 194 134 211 206 186 42 42 42 2 2 6
43617 21 21 16 20 20 16 20 20 18 22 22 23 27 26 33 36 34 437 2 2 6 2 2 6 2 2 6 2 2 6
43748 49 45 71 71 57 82 81 62 43 44 41 8 9 9 6 7 7 438 50 50 50 74 74 74 30 30 30 6 6 6
4386 7 7 6 7 7 6 7 7 5 6 5 4 5 5 3 4 4 439 0 0 0 0 0 0 0 0 0 0 0 0
4392 3 3 1 2 2 4 5 4 36 38 35 48 49 45 32 35 33 440 0 0 0 0 0 0 0 0 0 0 0 0
44021 25 23 16 19 19 13 17 17 12 15 15 12 15 15 13 16 16 441 0 0 0 0 0 0 0 0 0 0 0 0
44114 18 18 14 18 18 16 18 16 36 38 35 61 61 53 82 81 62 442 0 0 0 0 0 0 0 0 0 0 0 0
44296 95 69 96 95 69 96 95 69 96 95 69 79 78 62 19 20 18 443 0 0 0 0 0 0 0 0 0 0 0 0
44310 12 12 10 12 12 4 5 5 0 0 0 0 0 0 0 0 0 444 0 0 0 0 0 0 0 0 0 0 0 0
4440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 445 0 0 0 0 0 0 0 0 0 0 0 0
4450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 446 0 0 0 0 0 0 0 0 0 0 0 0
4460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 447 0 0 0 0 0 0 0 0 0 0 0 0
4470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 448 0 0 0 0 0 0 0 0 0 0 0 0
4480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 449 0 0 0 0 0 0 0 0 0 0 0 0
4490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 450 0 0 0 0 0 0 0 0 0 0 0 0
4500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 451 0 0 0 0 0 0 0 0 0 10 10 10
4510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 452 34 34 34 86 86 86 14 14 14 2 2 6
4520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 453121 87 25 192 133 9 219 162 10 239 182 13
4530 0 0 454236 186 11 232 195 16 241 208 19 244 214 54
4540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 455246 218 60 246 218 38 246 215 20 241 208 19
4550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 456241 208 19 226 184 13 121 87 25 2 2 6
4560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 457 2 2 6 2 2 6 2 2 6 2 2 6
4570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 458 50 50 50 82 82 82 34 34 34 10 10 10
4580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 459 0 0 0 0 0 0 0 0 0 0 0 0
4590 0 0 0 0 0 0 0 0 13 13 13 46 47 45 43 45 43 460 0 0 0 0 0 0 0 0 0 0 0 0
46040 43 41 35 37 36 30 32 31 23 27 26 20 24 24 18 22 22 461 0 0 0 0 0 0 0 0 0 0 0 0
46117 21 21 16 20 20 17 21 21 20 23 23 27 30 29 40 41 39 462 0 0 0 0 0 0 0 0 0 0 0 0
46261 61 53 53 55 47 16 17 16 9 11 11 10 12 12 10 12 12 463 0 0 0 0 0 0 0 0 0 0 0 0
46310 12 12 10 12 12 10 12 12 9 11 11 8 10 10 8 9 9 464 0 0 0 0 0 0 0 0 0 0 0 0
4646 8 8 5 6 5 4 5 5 2 3 3 19 20 18 38 39 37 465 0 0 0 0 0 0 0 0 0 0 0 0
46526 28 27 17 21 21 14 17 17 13 16 16 12 15 15 12 15 15 466 0 0 0 0 0 0 0 0 0 0 0 0
46613 17 17 14 18 18 12 15 15 13 12 7 30 31 28 46 47 43 467 0 0 0 0 0 0 0 0 0 0 0 0
46753 55 47 66 65 55 66 65 55 53 55 47 36 38 35 10 12 12 468 0 0 0 0 0 0 0 0 0 0 0 0
46810 12 12 10 12 12 2 3 3 0 0 0 0 0 0 0 0 0 469 0 0 0 0 0 0 0 0 0 0 0 0
4690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 470 0 0 0 0 0 0 0 0 0 0 0 0
4700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 471 0 0 0 0 0 0 0 0 0 10 10 10
4710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 472 34 34 34 82 82 82 30 30 30 61 42 6
4720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 473180 123 7 206 145 10 230 174 11 239 182 13
4730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 474234 190 10 238 202 15 241 208 19 246 218 74
4740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 475246 218 38 246 215 20 246 215 20 246 215 20
4750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 476226 184 13 215 174 15 184 144 12 6 6 6
4760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 477 2 2 6 2 2 6 2 2 6 2 2 6
4770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 478 26 26 26 94 94 94 42 42 42 14 14 14
4780 0 0 479 0 0 0 0 0 0 0 0 0 0 0 0
4790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 480 0 0 0 0 0 0 0 0 0 0 0 0
4800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 481 0 0 0 0 0 0 0 0 0 0 0 0
4810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 482 0 0 0 0 0 0 0 0 0 0 0 0
4820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 483 0 0 0 0 0 0 0 0 0 0 0 0
4830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 484 0 0 0 0 0 0 0 0 0 0 0 0
4840 0 0 0 0 0 0 0 0 1 1 1 33 37 35 35 37 36 485 0 0 0 0 0 0 0 0 0 0 0 0
48532 35 33 28 31 30 23 27 26 20 24 24 18 22 22 17 21 21 486 0 0 0 0 0 0 0 0 0 0 0 0
48616 20 20 16 20 20 17 21 21 21 25 23 31 33 31 44 46 43 487 0 0 0 0 0 0 0 0 0 0 0 0
48731 33 31 11 13 13 12 14 14 12 15 15 13 16 16 14 17 17 488 0 0 0 0 0 0 0 0 0 0 0 0
48814 17 17 14 17 17 14 17 17 13 16 16 12 15 15 12 14 14 489 0 0 0 0 0 0 0 0 0 0 0 0
48911 13 13 9 11 11 8 10 10 6 8 8 4 5 5 17 18 17 490 0 0 0 0 0 0 0 0 0 0 0 0
49030 33 30 20 23 22 15 18 18 13 16 16 12 15 15 12 14 14 491 0 0 0 0 0 0 0 0 0 10 10 10
49113 16 16 14 17 17 14 18 18 11 12 11 7 7 5 16 17 12 492 30 30 30 78 78 78 50 50 50 104 69 6
49221 22 20 30 31 28 25 27 25 21 22 20 14 14 13 10 12 12 493192 133 9 216 158 10 236 178 12 236 186 11
49310 12 12 9 11 11 0 0 0 0 0 0 0 0 0 0 0 0 494232 195 16 241 208 19 244 214 54 245 215 43
4940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 495246 215 20 246 215 20 241 208 19 198 155 10
4950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 496200 144 11 216 158 10 156 118 10 2 2 6
4960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 497 2 2 6 2 2 6 2 2 6 2 2 6
4970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 498 6 6 6 90 90 90 54 54 54 18 18 18
4980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 499 6 6 6 0 0 0 0 0 0 0 0 0
4990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 0 0 0 0 0 0 0 0 0 0 0
5000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 501 0 0 0 0 0 0 0 0 0 0 0 0
5010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 502 0 0 0 0 0 0 0 0 0 0 0 0
5020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 503 0 0 0 0 0 0 0 0 0 0 0 0
5030 0 0 504 0 0 0 0 0 0 0 0 0 0 0 0
5040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 505 0 0 0 0 0 0 0 0 0 0 0 0
5050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 506 0 0 0 0 0 0 0 0 0 0 0 0
5060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 507 0 0 0 0 0 0 0 0 0 0 0 0
5070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 508 0 0 0 0 0 0 0 0 0 0 0 0
5080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 509 0 0 0 0 0 0 0 0 0 0 0 0
5090 0 0 0 0 0 0 0 0 0 0 0 18 22 22 27 30 29 510 0 0 0 0 0 0 0 0 0 0 0 0
51027 29 28 40 41 39 53 55 47 53 55 47 53 55 47 46 47 43 511 0 0 0 0 0 0 0 0 0 10 10 10
51125 27 25 16 20 20 17 21 21 23 25 24 31 33 31 20 20 20 512 30 30 30 78 78 78 46 46 46 22 22 22
51212 15 15 14 17 17 15 19 19 16 20 20 17 21 21 18 22 22 513137 92 6 210 162 10 239 182 13 238 190 10
51318 22 22 18 22 22 18 22 22 17 21 21 17 21 21 16 19 19 514238 202 15 241 208 19 246 215 20 246 215 20
51415 18 18 13 16 16 12 15 15 10 12 12 8 10 10 6 8 8 515241 208 19 203 166 17 185 133 11 210 150 10
51521 22 21 22 24 23 15 19 19 13 17 17 13 16 16 12 15 15 516216 158 10 210 150 10 102 78 10 2 2 6
51612 15 15 13 17 17 14 18 18 14 18 18 13 15 14 10 9 6 517 6 6 6 54 54 54 14 14 14 2 2 6
5177 7 5 7 7 5 7 7 5 9 11 11 10 12 12 10 12 12 518 2 2 6 62 62 62 74 74 74 30 30 30
51810 12 12 6 7 7 0 0 0 0 0 0 0 0 0 0 0 0 519 10 10 10 0 0 0 0 0 0 0 0 0
5190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 520 0 0 0 0 0 0 0 0 0 0 0 0
5200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 521 0 0 0 0 0 0 0 0 0 0 0 0
5210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 522 0 0 0 0 0 0 0 0 0 0 0 0
5220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 523 0 0 0 0 0 0 0 0 0 0 0 0
5230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 524 0 0 0 0 0 0 0 0 0 0 0 0
5240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 0 0 0 0 0 0 0 0 0 0 0 0
5250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 526 0 0 0 0 0 0 0 0 0 0 0 0
5260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 527 0 0 0 0 0 0 0 0 0 0 0 0
5270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 528 0 0 0 0 0 0 0 0 0 0 0 0
5280 0 0 529 0 0 0 0 0 0 0 0 0 0 0 0
5290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 530 0 0 0 0 0 0 0 0 0 0 0 0
5300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 531 0 0 0 0 0 0 0 0 0 10 10 10
5310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 532 34 34 34 78 78 78 50 50 50 6 6 6
5320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 533 94 70 30 139 102 15 190 146 13 226 184 13
5330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 534232 200 30 232 195 16 215 174 15 190 146 13
5340 0 0 0 0 0 0 0 0 0 0 0 16 17 12 82 81 62 535168 122 10 192 133 9 210 150 10 213 154 11
535118 116 76 118 116 76 161 156 96 161 156 96 161 156 96 118 116 76 536202 150 34 182 157 106 101 98 89 2 2 6
536118 116 76 96 95 69 53 55 47 22 24 23 14 17 17 13 16 16 537 2 2 6 78 78 78 116 116 116 58 58 58
53715 19 19 17 21 21 18 22 22 20 24 24 20 24 24 23 27 26 538 2 2 6 22 22 22 90 90 90 46 46 46
53823 27 26 23 27 26 23 27 26 23 27 26 23 27 26 20 24 24 539 18 18 18 6 6 6 0 0 0 0 0 0
53920 23 23 17 21 21 16 19 19 14 17 17 12 15 15 10 12 12 540 0 0 0 0 0 0 0 0 0 0 0 0
5409 11 11 20 23 22 16 19 19 14 17 17 13 16 16 12 15 15 541 0 0 0 0 0 0 0 0 0 0 0 0
54111 14 14 13 16 16 14 17 17 14 18 18 14 17 17 12 15 15 542 0 0 0 0 0 0 0 0 0 0 0 0
54210 12 12 10 12 12 10 12 12 10 12 12 10 12 12 10 12 12 543 0 0 0 0 0 0 0 0 0 0 0 0
5439 11 11 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 544 0 0 0 0 0 0 0 0 0 0 0 0
5440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 545 0 0 0 0 0 0 0 0 0 0 0 0
5450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 546 0 0 0 0 0 0 0 0 0 0 0 0
5460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 547 0 0 0 0 0 0 0 0 0 0 0 0
5470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 548 0 0 0 0 0 0 0 0 0 0 0 0
5480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 549 0 0 0 0 0 0 0 0 0 0 0 0
5490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 550 0 0 0 0 0 0 0 0 0 0 0 0
5500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 551 0 0 0 0 0 0 0 0 0 10 10 10
5510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 552 38 38 38 86 86 86 50 50 50 6 6 6
5520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 553128 128 128 174 154 114 156 107 11 168 122 10
5530 0 0 554198 155 10 184 144 12 197 138 11 200 144 11
5540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 555206 145 10 206 145 10 197 138 11 188 164 115
5550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556195 195 195 198 198 198 174 174 174 14 14 14
5560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 557 2 2 6 22 22 22 116 116 116 116 116 116
5570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 558 22 22 22 2 2 6 74 74 74 70 70 70
5580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 559 30 30 30 10 10 10 0 0 0 0 0 0
5590 0 0 0 0 0 0 0 0 0 0 0 53 55 47 161 156 96 560 0 0 0 0 0 0 0 0 0 0 0 0
560161 156 96 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 561 0 0 0 0 0 0 0 0 0 0 0 0
561230 229 82 161 156 96 118 116 76 96 95 69 21 22 20 16 19 19 562 0 0 0 0 0 0 0 0 0 0 0 0
56218 22 22 20 24 24 23 27 26 23 27 26 26 28 27 27 30 29 563 0 0 0 0 0 0 0 0 0 0 0 0
56327 30 29 18 22 22 12 14 14 8 10 10 9 11 11 17 21 21 564 0 0 0 0 0 0 0 0 0 0 0 0
56423 27 26 23 27 26 20 24 24 18 22 22 16 20 20 14 17 17 565 0 0 0 0 0 0 0 0 0 0 0 0
56512 14 14 14 17 17 16 20 20 14 17 17 13 17 17 13 16 16 566 0 0 0 0 0 0 0 0 0 0 0 0
56612 15 15 12 15 15 13 17 17 14 18 18 14 17 17 13 16 16 567 0 0 0 0 0 0 0 0 0 0 0 0
56711 13 13 10 12 12 10 12 12 10 12 12 10 12 12 10 12 12 568 0 0 0 0 0 0 0 0 0 0 0 0
5684 5 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 569 0 0 0 0 0 0 0 0 0 0 0 0
5690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 570 0 0 0 0 0 0 0 0 0 0 0 0
5700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 571 0 0 0 0 0 0 6 6 6 18 18 18
5710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 572 50 50 50 101 101 101 26 26 26 10 10 10
5720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 573138 138 138 190 190 190 174 154 114 156 107 11
5730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 574197 138 11 200 144 11 197 138 11 192 133 9
5740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 575180 123 7 190 142 34 190 178 144 187 187 187
5750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 576202 202 202 221 221 221 214 214 214 66 66 66
5760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 577 2 2 6 2 2 6 50 50 50 62 62 62
5770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 578 6 6 6 2 2 6 10 10 10 90 90 90
5780 0 0 579 50 50 50 18 18 18 6 6 6 0 0 0
5790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 580 0 0 0 0 0 0 0 0 0 0 0 0
5800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 581 0 0 0 0 0 0 0 0 0 0 0 0
5810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 0 0 0 0 0 0 0 0
5820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 583 0 0 0 0 0 0 0 0 0 0 0 0
5830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 584 0 0 0 0 0 0 0 0 0 0 0 0
5840 0 0 0 0 0 0 0 0 13 12 7 118 116 76 230 229 82 585 0 0 0 0 0 0 0 0 0 0 0 0
585230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 586 0 0 0 0 0 0 0 0 0 0 0 0
586230 229 82 230 229 82 230 229 82 161 156 96 118 116 76 30 31 28 587 0 0 0 0 0 0 0 0 0 0 0 0
58720 24 24 23 27 26 27 30 29 28 31 30 30 32 31 23 27 26 588 0 0 0 0 0 0 0 0 0 0 0 0
58816 19 19 17 21 21 12 15 15 9 11 11 10 12 12 9 11 11 589 0 0 0 0 0 0 0 0 0 0 0 0
58920 24 24 28 31 30 26 28 27 23 27 26 20 24 24 17 21 21 590 0 0 0 0 0 0 0 0 0 0 0 0
59015 19 19 13 16 16 16 19 19 14 18 18 14 17 17 13 16 16 591 0 0 0 0 0 0 10 10 10 34 34 34
59112 15 15 11 14 14 13 16 16 14 17 17 14 18 18 14 17 17 592 74 74 74 74 74 74 2 2 6 6 6 6
59212 15 15 10 12 12 10 12 12 10 12 12 10 12 12 8 9 9 593144 144 144 198 198 198 190 190 190 178 166 146
5930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 594154 121 60 156 107 11 156 107 11 168 124 44
5940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 595174 154 114 187 187 187 190 190 190 210 210 210
5950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 596246 246 246 253 253 253 253 253 253 182 182 182
5960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 597 6 6 6 2 2 6 2 2 6 2 2 6
5970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 598 2 2 6 2 2 6 2 2 6 62 62 62
5980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 599 74 74 74 34 34 34 14 14 14 0 0 0
5990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 0 0 0 0 0 0 0 0 0 0 0 0
6000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 601 0 0 0 0 0 0 0 0 0 0 0 0
6010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 0 0 0 0 0 0
6020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 603 0 0 0 0 0 0 0 0 0 0 0 0
6030 0 0 604 0 0 0 0 0 0 0 0 0 0 0 0
6040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 605 0 0 0 0 0 0 0 0 0 0 0 0
6050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 606 0 0 0 0 0 0 0 0 0 0 0 0
6060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 607 0 0 0 0 0 0 0 0 0 0 0 0
6070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 608 0 0 0 0 0 0 0 0 0 0 0 0
6080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 609 0 0 0 0 0 0 0 0 0 0 0 0
6090 0 0 0 0 0 0 0 0 82 81 62 161 156 96 230 229 82 610 0 0 0 0 0 0 0 0 0 0 0 0
610230 229 82 233 233 100 230 229 82 230 229 82 230 229 82 230 229 82 611 0 0 0 10 10 10 22 22 22 54 54 54
611230 229 82 230 229 82 230 229 82 230 229 82 161 156 96 118 116 76 612 94 94 94 18 18 18 2 2 6 46 46 46
61227 29 28 27 30 29 30 32 31 30 32 31 23 27 26 20 24 24 613234 234 234 221 221 221 190 190 190 190 190 190
61326 28 27 17 21 21 6 7 7 72 73 67 145 141 105 15 15 15 614190 190 190 187 187 187 187 187 187 190 190 190
61414 17 17 33 37 35 30 32 31 28 31 30 26 28 27 23 27 26 615190 190 190 195 195 195 214 214 214 242 242 242
61520 23 23 16 20 20 15 19 19 14 18 18 14 17 17 13 16 16 616253 253 253 253 253 253 253 253 253 253 253 253
61612 15 15 11 14 14 12 15 15 13 17 17 14 18 18 14 17 17 617 82 82 82 2 2 6 2 2 6 2 2 6
61713 16 16 11 13 13 10 12 12 10 12 12 9 11 11 1 1 1 618 2 2 6 2 2 6 2 2 6 14 14 14
6180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 619 86 86 86 54 54 54 22 22 22 6 6 6
6190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 620 0 0 0 0 0 0 0 0 0 0 0 0
6200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 621 0 0 0 0 0 0 0 0 0 0 0 0
6210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 622 0 0 0 0 0 0 0 0 0 0 0 0
6220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 623 0 0 0 0 0 0 0 0 0 0 0 0
6230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 624 0 0 0 0 0 0 0 0 0 0 0 0
6240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 625 0 0 0 0 0 0 0 0 0 0 0 0
6250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 626 0 0 0 0 0 0 0 0 0 0 0 0
6260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 627 0 0 0 0 0 0 0 0 0 0 0 0
6270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 628 0 0 0 0 0 0 0 0 0 0 0 0
6280 0 0 629 0 0 0 0 0 0 0 0 0 0 0 0
6290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 630 0 0 0 0 0 0 0 0 0 0 0 0
6300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 631 6 6 6 18 18 18 46 46 46 90 90 90
6310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 632 46 46 46 18 18 18 6 6 6 182 182 182
6320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 633253 253 253 246 246 246 206 206 206 190 190 190
6330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 634190 190 190 190 190 190 190 190 190 190 190 190
6340 0 0 0 0 0 16 17 12 161 156 96 230 229 82 230 229 82 635206 206 206 231 231 231 250 250 250 253 253 253
635243 242 120 235 234 117 230 229 82 230 229 82 230 229 82 230 229 82 636253 253 253 253 253 253 253 253 253 253 253 253
636230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 161 156 96 637202 202 202 14 14 14 2 2 6 2 2 6
63782 81 62 28 31 30 28 31 30 27 30 29 28 31 30 30 32 31 638 2 2 6 2 2 6 2 2 6 2 2 6
63833 37 35 13 16 16 3 3 3 105 104 92 210 208 158 12 14 14 639 42 42 42 86 86 86 42 42 42 18 18 18
63917 21 21 33 37 35 33 37 35 32 35 33 30 32 31 27 30 29 640 6 6 6 0 0 0 0 0 0 0 0 0
64023 27 26 20 23 23 17 20 20 15 18 18 14 18 18 13 17 17 641 0 0 0 0 0 0 0 0 0 0 0 0
64113 16 16 12 15 15 11 14 14 13 16 16 14 17 17 14 18 18 642 0 0 0 0 0 0 0 0 0 0 0 0
64213 17 17 12 15 15 10 12 12 10 12 12 3 4 4 0 0 0 643 0 0 0 0 0 0 0 0 0 0 0 0
6430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 644 0 0 0 0 0 0 0 0 0 0 0 0
6440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 645 0 0 0 0 0 0 0 0 0 0 0 0
6450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 646 0 0 0 0 0 0 0 0 0 0 0 0
6460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 647 0 0 0 0 0 0 0 0 0 0 0 0
6470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 648 0 0 0 0 0 0 0 0 0 0 0 0
6480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 649 0 0 0 0 0 0 0 0 0 0 0 0
6490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 650 0 0 0 0 0 0 0 0 0 6 6 6
6500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 651 14 14 14 38 38 38 74 74 74 66 66 66
6510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 652 2 2 6 6 6 6 90 90 90 250 250 250
6520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 653253 253 253 253 253 253 238 238 238 198 198 198
6530 0 0 654190 190 190 190 190 190 195 195 195 221 221 221
6540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 655246 246 246 253 253 253 253 253 253 253 253 253
6550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 656253 253 253 253 253 253 253 253 253 253 253 253
6560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 657253 253 253 82 82 82 2 2 6 2 2 6
6570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 658 2 2 6 2 2 6 2 2 6 2 2 6
6580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 659 2 2 6 78 78 78 70 70 70 34 34 34
6590 0 0 0 0 0 96 95 69 230 229 82 230 229 82 244 244 132 660 14 14 14 6 6 6 0 0 0 0 0 0
660241 241 143 243 242 120 230 229 82 230 229 82 230 229 82 230 229 82 661 0 0 0 0 0 0 0 0 0 0 0 0
661230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 662 0 0 0 0 0 0 0 0 0 0 0 0
662161 156 96 46 47 43 32 35 33 33 37 35 33 37 35 33 37 35 663 0 0 0 0 0 0 0 0 0 0 0 0
66340 43 41 23 27 26 1 1 1 2 2 2 24 26 24 14 17 17 664 0 0 0 0 0 0 0 0 0 0 0 0
66423 27 26 33 37 35 33 37 35 33 37 35 33 37 35 30 32 31 665 0 0 0 0 0 0 0 0 0 0 0 0
66527 30 29 23 27 26 20 23 23 15 18 18 14 18 18 14 17 17 666 0 0 0 0 0 0 0 0 0 0 0 0
66613 16 16 12 15 15 11 14 14 12 15 15 13 17 17 14 17 17 667 0 0 0 0 0 0 0 0 0 0 0 0
66714 17 17 13 16 16 11 13 13 6 8 8 0 0 0 0 0 0 668 0 0 0 0 0 0 0 0 0 0 0 0
6680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 669 0 0 0 0 0 0 0 0 0 0 0 0
6690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 670 0 0 0 0 0 0 0 0 0 14 14 14
6700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 671 34 34 34 66 66 66 78 78 78 6 6 6
6710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 672 2 2 6 18 18 18 218 218 218 253 253 253
6720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 673253 253 253 253 253 253 253 253 253 246 246 246
6730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 674226 226 226 231 231 231 246 246 246 253 253 253
6740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 675253 253 253 253 253 253 253 253 253 253 253 253
6750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 676253 253 253 253 253 253 253 253 253 253 253 253
6760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 677253 253 253 178 178 178 2 2 6 2 2 6
6770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 678 2 2 6 2 2 6 2 2 6 2 2 6
6780 0 0 679 2 2 6 18 18 18 90 90 90 62 62 62
6790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 680 30 30 30 10 10 10 0 0 0 0 0 0
6800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 681 0 0 0 0 0 0 0 0 0 0 0 0
6810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 682 0 0 0 0 0 0 0 0 0 0 0 0
6820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 683 0 0 0 0 0 0 0 0 0 0 0 0
6830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 684 0 0 0 0 0 0 0 0 0 0 0 0
6840 0 0 16 17 12 161 156 96 230 229 82 235 234 117 239 239 170 685 0 0 0 0 0 0 0 0 0 0 0 0
685239 239 170 236 236 101 230 229 82 230 229 82 230 229 82 230 229 82 686 0 0 0 0 0 0 0 0 0 0 0 0
686230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 687 0 0 0 0 0 0 0 0 0 0 0 0
687230 229 82 118 116 76 33 37 35 33 37 35 37 39 37 37 39 37 688 0 0 0 0 0 0 0 0 0 0 0 0
68843 45 43 49 51 48 20 24 24 8 10 10 17 20 20 35 37 36 689 0 0 0 0 0 0 0 0 0 0 0 0
68933 37 35 40 43 41 37 39 37 35 37 36 33 37 35 33 37 35 690 0 0 0 0 0 0 10 10 10 26 26 26
69030 32 31 27 30 29 23 27 26 15 19 19 14 18 18 14 17 17 691 58 58 58 90 90 90 18 18 18 2 2 6
69113 17 17 13 16 16 12 15 15 11 14 14 13 16 16 14 17 17 692 2 2 6 110 110 110 253 253 253 253 253 253
69214 17 17 13 17 17 11 14 14 4 5 5 0 0 0 0 0 0 693253 253 253 253 253 253 253 253 253 253 253 253
6930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 694250 250 250 253 253 253 253 253 253 253 253 253
6940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 695253 253 253 253 253 253 253 253 253 253 253 253
6950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 696253 253 253 253 253 253 253 253 253 253 253 253
6960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 697253 253 253 231 231 231 18 18 18 2 2 6
6970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 698 2 2 6 2 2 6 2 2 6 2 2 6
6980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 699 2 2 6 2 2 6 18 18 18 94 94 94
6990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 700 54 54 54 26 26 26 10 10 10 0 0 0
7000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 701 0 0 0 0 0 0 0 0 0 0 0 0
7010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 702 0 0 0 0 0 0 0 0 0 0 0 0
7020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 703 0 0 0 0 0 0 0 0 0 0 0 0
7030 0 0 704 0 0 0 0 0 0 0 0 0 0 0 0
7040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 705 0 0 0 0 0 0 0 0 0 0 0 0
7050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 706 0 0 0 0 0 0 0 0 0 0 0 0
7060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 707 0 0 0 0 0 0 0 0 0 0 0 0
7070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 708 0 0 0 0 0 0 0 0 0 0 0 0
7080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 709 0 0 0 0 0 0 0 0 0 0 0 0
7090 0 0 96 95 69 230 229 82 230 229 82 239 239 170 251 251 187 710 0 0 0 6 6 6 22 22 22 50 50 50
710241 241 143 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 711 90 90 90 26 26 26 2 2 6 2 2 6
711230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 712 14 14 14 195 195 195 250 250 250 253 253 253
712230 229 82 161 156 96 36 38 35 33 37 35 33 37 35 33 37 35 713253 253 253 253 253 253 253 253 253 253 253 253
71337 39 37 47 48 46 55 57 54 55 57 54 49 51 48 43 45 43 714253 253 253 253 253 253 253 253 253 253 253 253
71443 45 43 43 45 43 40 43 41 40 43 41 37 39 37 33 37 35 715253 253 253 253 253 253 253 253 253 253 253 253
71533 37 35 28 31 30 26 28 27 16 20 20 15 18 18 14 18 18 716253 253 253 253 253 253 253 253 253 253 253 253
71614 17 17 13 16 16 12 15 15 11 14 14 12 15 15 13 17 17 717250 250 250 242 242 242 54 54 54 2 2 6
71714 17 17 14 17 17 8 10 10 5 7 7 0 0 0 0 0 0 718 2 2 6 2 2 6 2 2 6 2 2 6
7180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 719 2 2 6 2 2 6 2 2 6 38 38 38
7190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 720 86 86 86 50 50 50 22 22 22 6 6 6
7200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 721 0 0 0 0 0 0 0 0 0 0 0 0
7210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 722 0 0 0 0 0 0 0 0 0 0 0 0
7220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 723 0 0 0 0 0 0 0 0 0 0 0 0
7230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 724 0 0 0 0 0 0 0 0 0 0 0 0
7240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 725 0 0 0 0 0 0 0 0 0 0 0 0
7250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 726 0 0 0 0 0 0 0 0 0 0 0 0
7260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 727 0 0 0 0 0 0 0 0 0 0 0 0
7270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 728 0 0 0 0 0 0 0 0 0 0 0 0
7280 0 0 729 0 0 0 0 0 0 0 0 0 0 0 0
7290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 730 6 6 6 14 14 14 38 38 38 82 82 82
7300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 731 34 34 34 2 2 6 2 2 6 2 2 6
7310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 732 42 42 42 195 195 195 246 246 246 253 253 253
7320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 733253 253 253 253 253 253 253 253 253 250 250 250
7330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 734242 242 242 242 242 242 250 250 250 253 253 253
73416 17 12 230 229 82 230 229 82 243 242 120 251 251 187 251 251 187 735253 253 253 253 253 253 253 253 253 253 253 253
735246 246 123 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 736253 253 253 250 250 250 246 246 246 238 238 238
736230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 737226 226 226 231 231 231 101 101 101 6 6 6
737230 229 82 230 229 82 66 65 55 30 32 31 32 35 33 33 37 35 738 2 2 6 2 2 6 2 2 6 2 2 6
73833 37 35 37 39 37 40 43 41 47 48 46 49 51 48 51 52 50 739 2 2 6 2 2 6 2 2 6 2 2 6
73955 57 54 55 57 54 51 52 50 47 48 46 43 45 43 39 40 39 740 38 38 38 82 82 82 42 42 42 14 14 14
74033 37 35 30 32 31 26 28 27 17 21 21 15 19 19 14 18 18 741 6 6 6 0 0 0 0 0 0 0 0 0
74114 17 17 13 16 16 12 15 15 12 14 14 11 14 14 13 16 16 742 0 0 0 0 0 0 0 0 0 0 0 0
74214 17 17 12 15 15 7 9 9 6 8 8 1 1 1 0 0 0 743 0 0 0 0 0 0 0 0 0 0 0 0
7430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 744 0 0 0 0 0 0 0 0 0 0 0 0
7440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 745 0 0 0 0 0 0 0 0 0 0 0 0
7450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 746 0 0 0 0 0 0 0 0 0 0 0 0
7460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 747 0 0 0 0 0 0 0 0 0 0 0 0
7470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 748 0 0 0 0 0 0 0 0 0 0 0 0
7480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 749 0 0 0 0 0 0 0 0 0 0 0 0
7490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 750 10 10 10 26 26 26 62 62 62 66 66 66
7500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 751 2 2 6 2 2 6 2 2 6 6 6 6
7510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 752 70 70 70 170 170 170 206 206 206 234 234 234
7520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 753246 246 246 250 250 250 250 250 250 238 238 238
7530 0 0 754226 226 226 231 231 231 238 238 238 250 250 250
7540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 755250 250 250 250 250 250 246 246 246 231 231 231
7550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 756214 214 214 206 206 206 202 202 202 202 202 202
7560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 757198 198 198 202 202 202 182 182 182 18 18 18
7570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 758 2 2 6 2 2 6 2 2 6 2 2 6
7580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 759 2 2 6 2 2 6 2 2 6 2 2 6
75996 95 69 230 229 82 230 229 82 239 239 170 251 251 187 239 239 170 760 2 2 6 62 62 62 66 66 66 30 30 30
760230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 761 10 10 10 0 0 0 0 0 0 0 0 0
761230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 762 0 0 0 0 0 0 0 0 0 0 0 0
762230 229 82 230 229 82 96 95 69 27 30 29 28 31 30 30 32 31 763 0 0 0 0 0 0 0 0 0 0 0 0
76333 37 35 40 43 41 46 47 45 55 57 54 63 64 60 72 73 67 764 0 0 0 0 0 0 0 0 0 0 0 0
76472 73 67 72 73 67 72 73 67 65 66 61 55 57 54 47 48 46 765 0 0 0 0 0 0 0 0 0 0 0 0
76539 40 39 32 35 33 27 30 29 17 21 21 15 19 19 15 18 18 766 0 0 0 0 0 0 0 0 0 0 0 0
76614 18 18 13 17 17 13 16 16 12 15 15 11 14 14 12 14 14 767 0 0 0 0 0 0 0 0 0 0 0 0
76713 16 16 9 11 11 7 9 9 9 11 11 66 65 55 115 113 82 768 0 0 0 0 0 0 0 0 0 0 0 0
76821 22 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 769 0 0 0 0 0 0 0 0 0 0 0 0
7690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 770 14 14 14 42 42 42 82 82 82 18 18 18
7700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 771 2 2 6 2 2 6 2 2 6 10 10 10
7710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 772 94 94 94 182 182 182 218 218 218 242 242 242
7720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 773250 250 250 253 253 253 253 253 253 250 250 250
7730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 774234 234 234 253 253 253 253 253 253 253 253 253
7740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 775253 253 253 253 253 253 253 253 253 246 246 246
7750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 776238 238 238 226 226 226 210 210 210 202 202 202
7760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 777195 195 195 195 195 195 210 210 210 158 158 158
7770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 778 6 6 6 14 14 14 50 50 50 14 14 14
7780 0 0 779 2 2 6 2 2 6 2 2 6 2 2 6
7790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 780 2 2 6 6 6 6 86 86 86 46 46 46
7800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 781 18 18 18 6 6 6 0 0 0 0 0 0
7810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 782 0 0 0 0 0 0 0 0 0 0 0 0
7820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 783 0 0 0 0 0 0 0 0 0 0 0 0
7830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 12 7 784 0 0 0 0 0 0 0 0 0 0 0 0
784230 229 82 230 229 82 236 236 101 251 251 187 251 251 187 246 246 123 785 0 0 0 0 0 0 0 0 0 0 0 0
785230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 786 0 0 0 0 0 0 0 0 0 0 0 0
786230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 787 0 0 0 0 0 0 0 0 0 0 0 0
787230 229 82 230 229 82 118 116 76 23 27 26 26 28 27 32 35 33 788 0 0 0 0 0 0 0 0 0 0 0 0
78851 52 50 90 89 73 110 109 94 145 141 105 168 163 120 177 172 135 789 0 0 0 0 0 0 0 0 0 6 6 6
789177 172 135 188 184 146 188 184 146 181 176 137 194 191 148 188 184 146 790 22 22 22 54 54 54 70 70 70 2 2 6
790184 179 149 188 184 146 188 184 146 156 151 111 177 172 135 181 176 137 791 2 2 6 10 10 10 2 2 6 22 22 22
791177 172 135 168 163 120 168 163 120 158 153 112 156 151 111 158 153 112 792166 166 166 231 231 231 250 250 250 253 253 253
792156 151 111 158 153 112 177 172 135 188 184 146 188 184 146 194 189 146 793253 253 253 253 253 253 253 253 253 250 250 250
79336 38 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 794242 242 242 253 253 253 253 253 253 253 253 253
7940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 795253 253 253 253 253 253 253 253 253 253 253 253
7950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 796253 253 253 253 253 253 253 253 253 246 246 246
7960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 797231 231 231 206 206 206 198 198 198 226 226 226
7970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 798 94 94 94 2 2 6 6 6 6 38 38 38
7980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 799 30 30 30 2 2 6 2 2 6 2 2 6
7990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 800 2 2 6 2 2 6 62 62 62 66 66 66
8000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 801 26 26 26 10 10 10 0 0 0 0 0 0
8010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 802 0 0 0 0 0 0 0 0 0 0 0 0
8020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 803 0 0 0 0 0 0 0 0 0 0 0 0
8030 0 0 804 0 0 0 0 0 0 0 0 0 0 0 0
8040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 805 0 0 0 0 0 0 0 0 0 0 0 0
8050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 806 0 0 0 0 0 0 0 0 0 0 0 0
8060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 807 0 0 0 0 0 0 0 0 0 0 0 0
8070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 808 0 0 0 0 0 0 0 0 0 0 0 0
8080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 81 62 809 0 0 0 0 0 0 0 0 0 10 10 10
809230 229 82 230 229 82 244 244 132 251 251 187 244 244 132 230 229 82 810 30 30 30 74 74 74 50 50 50 2 2 6
810230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 811 26 26 26 26 26 26 2 2 6 106 106 106
811230 229 82 230 229 82 230 229 82 230 229 82 161 156 96 82 81 62 812238 238 238 253 253 253 253 253 253 253 253 253
81296 95 69 230 229 82 181 178 103 110 109 94 156 151 111 188 184 146 813253 253 253 253 253 253 253 253 253 253 253 253
813188 184 146 197 193 154 188 184 146 184 181 136 188 184 146 168 163 120 814253 253 253 253 253 253 253 253 253 253 253 253
814168 163 120 178 174 128 156 151 111 158 153 112 174 170 121 156 151 111 815253 253 253 253 253 253 253 253 253 253 253 253
815156 151 111 158 153 112 156 151 111 168 163 120 178 174 128 181 176 137 816253 253 253 253 253 253 253 253 253 253 253 253
816176 171 126 178 174 128 184 181 136 176 171 126 178 174 128 184 181 136 817253 253 253 246 246 246 218 218 218 202 202 202
817176 171 126 178 174 128 184 181 136 164 159 111 155 149 109 96 95 69 818210 210 210 14 14 14 2 2 6 2 2 6
8181 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 819 30 30 30 22 22 22 2 2 6 2 2 6
8190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 820 2 2 6 2 2 6 18 18 18 86 86 86
8200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 821 42 42 42 14 14 14 0 0 0 0 0 0
8210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 822 0 0 0 0 0 0 0 0 0 0 0 0
8220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 823 0 0 0 0 0 0 0 0 0 0 0 0
8230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 824 0 0 0 0 0 0 0 0 0 0 0 0
8240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 825 0 0 0 0 0 0 0 0 0 0 0 0
8250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 826 0 0 0 0 0 0 0 0 0 0 0 0
8260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 827 0 0 0 0 0 0 0 0 0 0 0 0
8270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 828 0 0 0 0 0 0 0 0 0 0 0 0
8280 0 0 829 0 0 0 0 0 0 0 0 0 14 14 14
8290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 830 42 42 42 90 90 90 22 22 22 2 2 6
8300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 831 42 42 42 2 2 6 18 18 18 218 218 218
8310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 832253 253 253 253 253 253 253 253 253 253 253 253
8320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 833253 253 253 253 253 253 253 253 253 253 253 253
8330 0 0 0 0 0 0 0 0 0 0 0 2 2 1 161 156 96 834253 253 253 253 253 253 253 253 253 253 253 253
834230 229 82 230 229 82 244 244 132 244 244 132 236 236 101 230 229 82 835253 253 253 253 253 253 253 253 253 253 253 253
835230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 836253 253 253 253 253 253 253 253 253 253 253 253
836230 229 82 230 229 82 230 229 82 230 229 82 46 47 43 82 81 62 837253 253 253 253 253 253 250 250 250 221 221 221
837158 153 112 197 193 154 194 189 146 184 181 136 188 184 146 168 163 120 838218 218 218 101 101 101 2 2 6 14 14 14
838156 151 111 137 133 100 131 127 93 137 133 100 137 133 100 158 153 112 839 18 18 18 38 38 38 10 10 10 2 2 6
839121 119 87 137 133 100 156 151 111 145 141 105 99 98 80 84 83 72 840 2 2 6 2 2 6 2 2 6 78 78 78
84063 64 60 52 53 49 40 43 41 33 36 34 36 38 35 36 38 35 841 58 58 58 22 22 22 6 6 6 0 0 0
84138 39 37 43 44 41 43 44 41 46 47 43 48 49 45 48 49 45 842 0 0 0 0 0 0 0 0 0 0 0 0
84246 47 43 36 38 35 30 31 28 19 20 18 6 7 7 0 0 0 843 0 0 0 0 0 0 0 0 0 0 0 0
8430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 844 0 0 0 0 0 0 0 0 0 0 0 0
8440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 845 0 0 0 0 0 0 0 0 0 0 0 0
8450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 846 0 0 0 0 0 0 0 0 0 0 0 0
8460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 847 0 0 0 0 0 0 0 0 0 0 0 0
8470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 848 0 0 0 0 0 0 0 0 0 0 0 0
8480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 849 0 0 0 0 0 0 6 6 6 18 18 18
8490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 850 54 54 54 82 82 82 2 2 6 26 26 26
8500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 851 22 22 22 2 2 6 123 123 123 253 253 253
8510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 852253 253 253 253 253 253 253 253 253 253 253 253
8520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 853253 253 253 253 253 253 253 253 253 253 253 253
8530 0 0 854253 253 253 253 253 253 253 253 253 253 253 253
8540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 855253 253 253 253 253 253 253 253 253 253 253 253
8550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 856253 253 253 253 253 253 253 253 253 253 253 253
8560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 857253 253 253 253 253 253 253 253 253 250 250 250
8570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 858238 238 238 198 198 198 6 6 6 38 38 38
8580 0 0 0 0 0 0 0 0 0 0 0 36 38 35 230 229 82 859 58 58 58 26 26 26 38 38 38 2 2 6
859230 229 82 230 229 82 246 246 123 236 236 101 230 229 82 230 229 82 860 2 2 6 2 2 6 2 2 6 46 46 46
860230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 861 78 78 78 30 30 30 10 10 10 0 0 0
861230 229 82 230 229 82 230 229 82 230 229 82 53 55 47 121 119 87 862 0 0 0 0 0 0 0 0 0 0 0 0
862176 171 126 171 165 117 161 156 96 82 81 62 53 55 47 33 37 35 863 0 0 0 0 0 0 0 0 0 0 0 0
86339 40 39 63 64 60 99 98 80 121 119 87 137 133 100 177 172 135 864 0 0 0 0 0 0 0 0 0 0 0 0
864176 171 126 184 181 136 131 127 93 131 127 93 110 109 94 84 83 72 865 0 0 0 0 0 0 0 0 0 0 0 0
86551 52 50 39 40 39 27 29 28 18 22 22 16 19 19 15 19 19 866 0 0 0 0 0 0 0 0 0 0 0 0
86615 19 19 14 18 18 14 17 17 13 16 16 12 15 15 11 14 14 867 0 0 0 0 0 0 0 0 0 0 0 0
86710 13 13 9 12 12 9 11 11 8 9 9 7 9 9 1 1 1 868 0 0 0 0 0 0 0 0 0 0 0 0
8680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 869 0 0 0 0 0 0 10 10 10 30 30 30
8690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 870 74 74 74 58 58 58 2 2 6 42 42 42
8700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 871 2 2 6 22 22 22 231 231 231 253 253 253
8710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 872253 253 253 253 253 253 253 253 253 253 253 253
8720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 873253 253 253 253 253 253 253 253 253 250 250 250
8730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 874253 253 253 253 253 253 253 253 253 253 253 253
8740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 875253 253 253 253 253 253 253 253 253 253 253 253
8750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 876253 253 253 253 253 253 253 253 253 253 253 253
8760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 877253 253 253 253 253 253 253 253 253 253 253 253
8770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 878253 253 253 246 246 246 46 46 46 38 38 38
8780 0 0 879 42 42 42 14 14 14 38 38 38 14 14 14
8790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 880 2 2 6 2 2 6 2 2 6 6 6 6
8800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 881 86 86 86 46 46 46 14 14 14 0 0 0
8810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 882 0 0 0 0 0 0 0 0 0 0 0 0
8820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 883 0 0 0 0 0 0 0 0 0 0 0 0
8830 0 0 0 0 0 0 0 0 0 0 0 118 116 76 230 229 82 884 0 0 0 0 0 0 0 0 0 0 0 0
884230 229 82 230 229 82 236 236 101 230 229 82 230 229 82 230 229 82 885 0 0 0 0 0 0 0 0 0 0 0 0
885230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 886 0 0 0 0 0 0 0 0 0 0 0 0
886230 229 82 230 229 82 230 229 82 230 229 82 96 95 69 71 71 57 887 0 0 0 0 0 0 0 0 0 0 0 0
88736 38 35 118 116 76 118 116 76 12 15 15 15 18 18 20 24 24 888 0 0 0 0 0 0 0 0 0 0 0 0
88833 37 35 55 56 53 84 83 72 110 109 94 145 141 105 110 109 94 889 0 0 0 6 6 6 14 14 14 42 42 42
889168 163 120 121 119 87 156 151 111 131 127 93 87 86 72 61 63 57 890 90 90 90 18 18 18 18 18 18 26 26 26
89047 48 46 28 31 30 18 22 22 15 19 19 15 18 18 15 19 19 891 2 2 6 116 116 116 253 253 253 253 253 253
89115 19 19 14 18 18 14 17 17 13 17 17 13 16 16 12 15 15 892253 253 253 253 253 253 253 253 253 253 253 253
89211 13 13 10 12 12 9 11 11 8 10 10 7 9 9 3 3 3 893253 253 253 253 253 253 250 250 250 238 238 238
8930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 894253 253 253 253 253 253 253 253 253 253 253 253
8940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 895253 253 253 253 253 253 253 253 253 253 253 253
8950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 896253 253 253 253 253 253 253 253 253 253 253 253
8960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 897253 253 253 253 253 253 253 253 253 253 253 253
8970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 898253 253 253 253 253 253 94 94 94 6 6 6
8980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 899 2 2 6 2 2 6 10 10 10 34 34 34
8990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 900 2 2 6 2 2 6 2 2 6 2 2 6
9000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 901 74 74 74 58 58 58 22 22 22 6 6 6
9010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 902 0 0 0 0 0 0 0 0 0 0 0 0
9020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 903 0 0 0 0 0 0 0 0 0 0 0 0
9030 0 0 904 0 0 0 0 0 0 0 0 0 0 0 0
9040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 905 0 0 0 0 0 0 0 0 0 0 0 0
9050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 906 0 0 0 0 0 0 0 0 0 0 0 0
9060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 907 0 0 0 0 0 0 0 0 0 0 0 0
9070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 908 0 0 0 0 0 0 0 0 0 0 0 0
9080 0 0 0 0 0 0 0 0 1 1 0 230 229 82 230 229 82 909 0 0 0 10 10 10 26 26 26 66 66 66
909230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 910 82 82 82 2 2 6 38 38 38 6 6 6
910230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 911 14 14 14 210 210 210 253 253 253 253 253 253
911230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 161 156 96 912253 253 253 253 253 253 253 253 253 253 253 253
912161 156 96 230 229 82 118 116 76 11 14 14 14 17 17 18 22 22 913253 253 253 253 253 253 246 246 246 242 242 242
91327 30 29 40 43 41 60 60 56 84 83 72 105 104 92 110 109 94 914253 253 253 253 253 253 253 253 253 253 253 253
914110 109 94 110 109 94 99 98 80 90 89 73 68 70 65 47 48 46 915253 253 253 253 253 253 253 253 253 253 253 253
91532 34 33 23 25 24 20 23 23 17 21 21 15 19 19 14 17 17 916253 253 253 253 253 253 253 253 253 253 253 253
91615 19 19 15 18 18 14 18 18 13 17 17 13 16 16 12 15 15 917253 253 253 253 253 253 253 253 253 253 253 253
91711 14 14 10 12 12 9 11 11 8 10 10 7 9 9 4 5 5 918253 253 253 253 253 253 144 144 144 2 2 6
9180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 919 2 2 6 2 2 6 2 2 6 46 46 46
9190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 920 2 2 6 2 2 6 2 2 6 2 2 6
9200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 921 42 42 42 74 74 74 30 30 30 10 10 10
9210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 922 0 0 0 0 0 0 0 0 0 0 0 0
9220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 923 0 0 0 0 0 0 0 0 0 0 0 0
9230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 924 0 0 0 0 0 0 0 0 0 0 0 0
9240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 925 0 0 0 0 0 0 0 0 0 0 0 0
9250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 926 0 0 0 0 0 0 0 0 0 0 0 0
9260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 927 0 0 0 0 0 0 0 0 0 0 0 0
9270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 928 0 0 0 0 0 0 0 0 0 0 0 0
9280 0 0 929 6 6 6 14 14 14 42 42 42 90 90 90
9290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 930 26 26 26 6 6 6 42 42 42 2 2 6
9300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 931 74 74 74 250 250 250 253 253 253 253 253 253
9310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 932253 253 253 253 253 253 253 253 253 253 253 253
9320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 933253 253 253 253 253 253 242 242 242 242 242 242
9330 0 0 0 0 0 0 0 0 16 17 12 230 229 82 230 229 82 934253 253 253 253 253 253 253 253 253 253 253 253
934230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 935253 253 253 253 253 253 253 253 253 253 253 253
935230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 936253 253 253 253 253 253 253 253 253 253 253 253
936230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 937253 253 253 253 253 253 253 253 253 253 253 253
937230 229 82 161 156 96 118 116 76 11 13 13 13 16 16 15 19 19 938253 253 253 253 253 253 182 182 182 2 2 6
93820 24 24 30 32 31 40 43 41 51 52 50 63 64 60 72 73 67 939 2 2 6 2 2 6 2 2 6 46 46 46
93965 66 61 65 66 61 65 66 61 55 57 54 46 47 45 33 37 35 940 2 2 6 2 2 6 2 2 6 2 2 6
94027 29 28 20 24 24 17 21 21 16 20 20 16 20 20 15 19 19 941 10 10 10 86 86 86 38 38 38 10 10 10
94115 19 19 15 19 19 14 18 18 14 17 17 13 16 16 12 15 15 942 0 0 0 0 0 0 0 0 0 0 0 0
94211 14 14 10 13 13 9 12 12 8 10 10 7 9 9 6 7 7 943 0 0 0 0 0 0 0 0 0 0 0 0
9430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 944 0 0 0 0 0 0 0 0 0 0 0 0
9440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 945 0 0 0 0 0 0 0 0 0 0 0 0
9450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 946 0 0 0 0 0 0 0 0 0 0 0 0
9460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 947 0 0 0 0 0 0 0 0 0 0 0 0
9470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 948 0 0 0 0 0 0 0 0 0 0 0 0
9480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 949 10 10 10 26 26 26 66 66 66 82 82 82
9490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 950 2 2 6 22 22 22 18 18 18 2 2 6
9500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 951149 149 149 253 253 253 253 253 253 253 253 253
9510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 952253 253 253 253 253 253 253 253 253 253 253 253
9520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 953253 253 253 253 253 253 234 234 234 242 242 242
9530 0 0 954253 253 253 253 253 253 253 253 253 253 253 253
9540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 955253 253 253 253 253 253 253 253 253 253 253 253
9550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 956253 253 253 253 253 253 253 253 253 253 253 253
9560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 957253 253 253 253 253 253 253 253 253 253 253 253
9570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 958253 253 253 253 253 253 206 206 206 2 2 6
9580 0 0 0 0 0 0 0 0 53 55 47 230 229 82 230 229 82 959 2 2 6 2 2 6 2 2 6 38 38 38
959230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 960 2 2 6 2 2 6 2 2 6 2 2 6
960230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 961 6 6 6 86 86 86 46 46 46 14 14 14
961230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 962 0 0 0 0 0 0 0 0 0 0 0 0
962161 156 96 118 116 76 53 55 47 10 13 13 12 15 15 14 17 17 963 0 0 0 0 0 0 0 0 0 0 0 0
96317 20 20 20 24 24 27 29 28 32 34 33 37 39 37 40 43 41 964 0 0 0 0 0 0 0 0 0 0 0 0
96443 45 43 41 42 42 35 37 36 30 32 31 28 31 30 23 27 26 965 0 0 0 0 0 0 0 0 0 0 0 0
96520 23 23 17 21 21 16 20 20 16 20 20 16 20 20 16 19 19 966 0 0 0 0 0 0 0 0 0 0 0 0
96615 19 19 15 19 19 14 18 18 14 17 17 13 16 16 12 15 15 967 0 0 0 0 0 0 0 0 0 0 0 0
96711 14 14 10 13 13 9 12 12 9 11 11 8 10 10 10 12 12 968 0 0 0 0 0 0 0 0 0 6 6 6
9681 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 969 18 18 18 46 46 46 86 86 86 18 18 18
9690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 970 2 2 6 34 34 34 10 10 10 6 6 6
9700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 971210 210 210 253 253 253 253 253 253 253 253 253
9710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 972253 253 253 253 253 253 253 253 253 253 253 253
9720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 973253 253 253 253 253 253 234 234 234 242 242 242
9730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 974253 253 253 253 253 253 253 253 253 253 253 253
9740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 975253 253 253 253 253 253 253 253 253 253 253 253
9750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 976253 253 253 253 253 253 253 253 253 253 253 253
9760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 977253 253 253 253 253 253 253 253 253 253 253 253
9770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 978253 253 253 253 253 253 221 221 221 6 6 6
9780 0 0 979 2 2 6 2 2 6 6 6 6 30 30 30
9790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 980 2 2 6 2 2 6 2 2 6 2 2 6
9800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 981 2 2 6 82 82 82 54 54 54 18 18 18
9810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 982 6 6 6 0 0 0 0 0 0 0 0 0
9820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 983 0 0 0 0 0 0 0 0 0 0 0 0
9830 0 0 0 0 0 0 0 0 82 81 62 230 229 82 230 229 82 984 0 0 0 0 0 0 0 0 0 0 0 0
984230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 985 0 0 0 0 0 0 0 0 0 0 0 0
985230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 986 0 0 0 0 0 0 0 0 0 0 0 0
986230 229 82 230 229 82 230 229 82 230 229 82 161 156 96 161 156 96 987 0 0 0 0 0 0 0 0 0 0 0 0
987118 116 76 82 81 62 13 14 12 10 13 13 12 15 15 13 17 17 988 0 0 0 0 0 0 0 0 0 10 10 10
98815 19 19 16 20 20 20 23 23 20 24 24 23 27 26 26 28 27 989 26 26 26 66 66 66 62 62 62 2 2 6
98926 28 27 26 28 27 23 27 26 18 22 22 20 23 23 17 21 21 990 2 2 6 38 38 38 10 10 10 26 26 26
99017 21 21 16 20 20 16 20 20 16 20 20 16 20 20 16 19 19 991238 238 238 253 253 253 253 253 253 253 253 253
99115 19 19 15 19 19 15 18 18 14 17 17 13 17 17 13 16 16 992253 253 253 253 253 253 253 253 253 253 253 253
99212 15 15 12 14 14 12 14 14 12 14 14 12 14 14 23 24 24 993253 253 253 253 253 253 231 231 231 238 238 238
9936 8 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 994253 253 253 253 253 253 253 253 253 253 253 253
9940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 995253 253 253 253 253 253 253 253 253 253 253 253
9950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 996253 253 253 253 253 253 253 253 253 253 253 253
9960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 997253 253 253 253 253 253 253 253 253 253 253 253
9970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 998253 253 253 253 253 253 231 231 231 6 6 6
9980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 999 2 2 6 2 2 6 10 10 10 30 30 30
9990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 2 2 6 2 2 6 2 2 6 2 2 6
10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1001 2 2 6 66 66 66 58 58 58 22 22 22
10010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1002 6 6 6 0 0 0 0 0 0 0 0 0
10020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1003 0 0 0 0 0 0 0 0 0 0 0 0
10030 0 0 1004 0 0 0 0 0 0 0 0 0 0 0 0
10040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1005 0 0 0 0 0 0 0 0 0 0 0 0
10050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1006 0 0 0 0 0 0 0 0 0 0 0 0
10060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1007 0 0 0 0 0 0 0 0 0 0 0 0
10070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1008 0 0 0 0 0 0 0 0 0 10 10 10
10080 0 0 0 0 0 0 0 0 118 116 76 230 229 82 230 229 82 1009 38 38 38 78 78 78 6 6 6 2 2 6
1009230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 1010 2 2 6 46 46 46 14 14 14 42 42 42
1010230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 1011246 246 246 253 253 253 253 253 253 253 253 253
1011230 229 82 230 229 82 230 229 82 161 156 96 161 156 96 118 116 76 1012253 253 253 253 253 253 253 253 253 253 253 253
101271 71 57 13 14 12 9 12 12 10 13 13 12 15 15 13 17 17 1013253 253 253 253 253 253 231 231 231 242 242 242
101315 18 18 15 19 19 16 20 20 17 21 21 17 21 21 18 22 22 1014253 253 253 253 253 253 253 253 253 253 253 253
101418 22 22 18 22 22 17 21 21 16 19 19 15 18 18 14 18 18 1015253 253 253 253 253 253 253 253 253 253 253 253
101516 19 19 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1016253 253 253 253 253 253 253 253 253 253 253 253
101615 19 19 15 19 19 15 18 18 14 18 18 16 20 20 23 25 24 1017253 253 253 253 253 253 253 253 253 253 253 253
101717 21 21 25 27 26 47 48 46 47 48 46 51 52 50 72 73 67 1018253 253 253 253 253 253 234 234 234 10 10 10
101833 36 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1019 2 2 6 2 2 6 22 22 22 14 14 14
10190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1020 2 2 6 2 2 6 2 2 6 2 2 6
10200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1021 2 2 6 66 66 66 62 62 62 22 22 22
10210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1022 6 6 6 0 0 0 0 0 0 0 0 0
10220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1023 0 0 0 0 0 0 0 0 0 0 0 0
10230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1024 0 0 0 0 0 0 0 0 0 0 0 0
10240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1025 0 0 0 0 0 0 0 0 0 0 0 0
10250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1026 0 0 0 0 0 0 0 0 0 0 0 0
10260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1027 0 0 0 0 0 0 0 0 0 0 0 0
10270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1028 0 0 0 0 0 0 6 6 6 18 18 18
10280 0 0 1029 50 50 50 74 74 74 2 2 6 2 2 6
10290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1030 14 14 14 70 70 70 34 34 34 62 62 62
10300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1031250 250 250 253 253 253 253 253 253 253 253 253
10310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1032253 253 253 253 253 253 253 253 253 253 253 253
10320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1033253 253 253 253 253 253 231 231 231 246 246 246
10330 0 0 0 0 0 0 0 0 118 116 76 230 229 82 230 229 82 1034253 253 253 253 253 253 253 253 253 253 253 253
1034230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 1035253 253 253 253 253 253 253 253 253 253 253 253
1035230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 1036253 253 253 253 253 253 253 253 253 253 253 253
1036230 229 82 230 229 82 161 156 96 118 116 76 118 116 76 46 47 43 1037253 253 253 253 253 253 253 253 253 253 253 253
10379 11 11 9 11 11 10 12 12 11 13 13 12 15 15 14 17 17 1038253 253 253 253 253 253 234 234 234 14 14 14
103815 18 18 15 19 19 16 20 20 16 20 20 16 20 20 16 20 20 1039 2 2 6 2 2 6 30 30 30 2 2 6
103916 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1040 2 2 6 2 2 6 2 2 6 2 2 6
104015 19 19 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1041 2 2 6 66 66 66 62 62 62 22 22 22
104115 19 19 16 20 20 20 24 24 55 56 53 32 34 33 84 83 72 1042 6 6 6 0 0 0 0 0 0 0 0 0
104290 89 73 110 109 94 110 109 94 105 104 92 110 109 94 110 109 94 1043 0 0 0 0 0 0 0 0 0 0 0 0
104372 73 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1044 0 0 0 0 0 0 0 0 0 0 0 0
10440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1045 0 0 0 0 0 0 0 0 0 0 0 0
10450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1046 0 0 0 0 0 0 0 0 0 0 0 0
10460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1047 0 0 0 0 0 0 0 0 0 0 0 0
10470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1048 0 0 0 0 0 0 6 6 6 18 18 18
10480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1049 54 54 54 62 62 62 2 2 6 2 2 6
10490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1050 2 2 6 30 30 30 46 46 46 70 70 70
10500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1051250 250 250 253 253 253 253 253 253 253 253 253
10510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1052253 253 253 253 253 253 253 253 253 253 253 253
10520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1053253 253 253 253 253 253 231 231 231 246 246 246
10530 0 0 1054253 253 253 253 253 253 253 253 253 253 253 253
10540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1055253 253 253 253 253 253 253 253 253 253 253 253
10550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1056253 253 253 253 253 253 253 253 253 253 253 253
10560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1057253 253 253 253 253 253 253 253 253 253 253 253
10570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1058253 253 253 253 253 253 226 226 226 10 10 10
10580 0 0 0 0 0 0 0 0 96 95 69 230 229 82 230 229 82 1059 2 2 6 6 6 6 30 30 30 2 2 6
1059230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 1060 2 2 6 2 2 6 2 2 6 2 2 6
1060230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 1061 2 2 6 66 66 66 58 58 58 22 22 22
1061230 229 82 161 156 96 118 116 76 82 81 62 16 17 12 9 11 11 1062 6 6 6 0 0 0 0 0 0 0 0 0
10629 11 11 9 12 12 10 13 13 12 14 14 13 16 16 14 18 18 1063 0 0 0 0 0 0 0 0 0 0 0 0
106315 19 19 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1064 0 0 0 0 0 0 0 0 0 0 0 0
106416 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1065 0 0 0 0 0 0 0 0 0 0 0 0
106516 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1066 0 0 0 0 0 0 0 0 0 0 0 0
106616 19 19 33 36 34 99 98 80 156 151 111 145 141 105 184 179 149 1067 0 0 0 0 0 0 0 0 0 0 0 0
1067168 163 120 184 179 149 177 172 135 156 151 111 145 141 105 110 109 94 1068 0 0 0 0 0 0 6 6 6 22 22 22
106890 89 73 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 1069 58 58 58 62 62 62 2 2 6 2 2 6
10690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1070 2 2 6 2 2 6 30 30 30 78 78 78
10700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1071250 250 250 253 253 253 253 253 253 253 253 253
10710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1072253 253 253 253 253 253 253 253 253 253 253 253
10720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1073253 253 253 253 253 253 231 231 231 246 246 246
10730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1074253 253 253 253 253 253 253 253 253 253 253 253
10740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1075253 253 253 253 253 253 253 253 253 253 253 253
10750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1076253 253 253 253 253 253 253 253 253 253 253 253
10760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1077253 253 253 253 253 253 253 253 253 253 253 253
10770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1078253 253 253 253 253 253 206 206 206 2 2 6
10780 0 0 1079 22 22 22 34 34 34 18 14 6 22 22 22
10790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1080 26 26 26 18 18 18 6 6 6 2 2 6
10800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1081 2 2 6 82 82 82 54 54 54 18 18 18
10810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1082 6 6 6 0 0 0 0 0 0 0 0 0
10820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1083 0 0 0 0 0 0 0 0 0 0 0 0
10830 0 0 0 0 0 0 0 0 71 71 57 230 229 82 230 229 82 1084 0 0 0 0 0 0 0 0 0 0 0 0
1084230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 1085 0 0 0 0 0 0 0 0 0 0 0 0
1085230 229 82 161 156 96 230 229 82 230 229 82 230 229 82 161 156 96 1086 0 0 0 0 0 0 0 0 0 0 0 0
1086118 116 76 82 81 62 30 31 28 9 11 11 9 11 11 9 11 11 1087 0 0 0 0 0 0 0 0 0 0 0 0
108710 12 12 10 13 13 11 14 14 13 16 16 14 17 17 15 18 18 1088 0 0 0 0 0 0 6 6 6 26 26 26
108815 19 19 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1089 62 62 62 106 106 106 74 54 14 185 133 11
108916 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1090210 162 10 121 92 8 6 6 6 62 62 62
109016 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1091238 238 238 253 253 253 253 253 253 253 253 253
109118 22 22 58 59 55 137 133 100 197 193 154 214 212 158 210 208 158 1092253 253 253 253 253 253 253 253 253 253 253 253
1092197 193 154 184 179 149 184 179 149 137 133 100 110 109 94 99 98 80 1093253 253 253 253 253 253 231 231 231 246 246 246
109384 83 72 10 10 9 0 0 0 0 0 0 0 0 0 0 0 0 1094253 253 253 253 253 253 253 253 253 253 253 253
10940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1095253 253 253 253 253 253 253 253 253 253 253 253
10950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1096253 253 253 253 253 253 253 253 253 253 253 253
10960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1097253 253 253 253 253 253 253 253 253 253 253 253
10970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1098253 253 253 253 253 253 158 158 158 18 18 18
10980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1099 14 14 14 2 2 6 2 2 6 2 2 6
10990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1100 6 6 6 18 18 18 66 66 66 38 38 38
11000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1101 6 6 6 94 94 94 50 50 50 18 18 18
11010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1102 6 6 6 0 0 0 0 0 0 0 0 0
11020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1103 0 0 0 0 0 0 0 0 0 0 0 0
11030 0 0 1104 0 0 0 0 0 0 0 0 0 0 0 0
11040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1105 0 0 0 0 0 0 0 0 0 0 0 0
11050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1106 0 0 0 0 0 0 0 0 0 0 0 0
11060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1107 0 0 0 0 0 0 0 0 0 6 6 6
11070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1108 10 10 10 10 10 10 18 18 18 38 38 38
11080 0 0 0 0 0 0 0 0 16 17 12 230 229 82 230 229 82 1109 78 78 78 142 134 106 216 158 10 242 186 14
1109230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 161 156 96 1110246 190 14 246 190 14 156 118 10 10 10 10
1110161 156 96 161 156 96 161 156 96 161 156 96 118 116 76 71 71 57 1111 90 90 90 238 238 238 253 253 253 253 253 253
111121 22 20 12 14 14 11 13 13 10 12 12 10 12 12 10 13 13 1112253 253 253 253 253 253 253 253 253 253 253 253
111211 13 13 12 15 15 13 16 16 14 17 17 14 18 18 15 19 19 1113253 253 253 253 253 253 231 231 231 250 250 250
111316 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1114253 253 253 253 253 253 253 253 253 253 253 253
111416 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1115253 253 253 253 253 253 253 253 253 253 253 253
111516 20 20 16 20 20 16 20 20 16 20 20 16 20 20 17 21 21 1116253 253 253 253 253 253 253 253 253 253 253 253
111623 27 26 84 83 72 184 179 149 251 251 187 210 208 158 184 179 149 1117253 253 253 253 253 253 253 253 253 246 230 190
1117184 179 149 156 151 111 110 109 94 84 83 72 63 64 60 51 52 50 1118238 204 91 238 204 91 181 142 44 37 26 9
111818 22 22 6 8 8 0 0 0 0 0 0 0 0 0 0 0 0 1119 2 2 6 2 2 6 2 2 6 2 2 6
11190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1120 2 2 6 2 2 6 38 38 38 46 46 46
11200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1121 26 26 26 106 106 106 54 54 54 18 18 18
11210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1122 6 6 6 0 0 0 0 0 0 0 0 0
11220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1123 0 0 0 0 0 0 0 0 0 0 0 0
11230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1124 0 0 0 0 0 0 0 0 0 0 0 0
11240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1125 0 0 0 0 0 0 0 0 0 0 0 0
11250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1126 0 0 0 0 0 0 0 0 0 0 0 0
11260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1127 0 0 0 6 6 6 14 14 14 22 22 22
11270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1128 30 30 30 38 38 38 50 50 50 70 70 70
11280 0 0 1129106 106 106 190 142 34 226 170 11 242 186 14
11290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1130246 190 14 246 190 14 246 190 14 154 114 10
11300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1131 6 6 6 74 74 74 226 226 226 253 253 253
11310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1132253 253 253 253 253 253 253 253 253 253 253 253
11320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1133253 253 253 253 253 253 231 231 231 250 250 250
11330 0 0 0 0 0 0 0 0 0 0 0 118 116 76 230 229 82 1134253 253 253 253 253 253 253 253 253 253 253 253
1134230 229 82 230 229 82 230 229 82 230 229 82 161 156 96 161 156 96 1135253 253 253 253 253 253 253 253 253 253 253 253
1135161 156 96 161 156 96 118 116 76 53 55 47 20 23 22 16 19 19 1136253 253 253 253 253 253 253 253 253 253 253 253
113613 16 16 12 15 15 12 14 14 11 14 14 11 14 14 11 14 14 1137253 253 253 253 253 253 253 253 253 228 184 62
113712 15 15 13 16 16 14 17 17 15 19 19 16 20 20 17 21 21 1138241 196 14 241 208 19 232 195 16 38 30 10
113823 27 26 18 22 22 20 24 24 23 27 26 30 32 31 17 21 21 1139 2 2 6 2 2 6 2 2 6 2 2 6
113916 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1140 2 2 6 6 6 6 30 30 30 26 26 26
114016 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1141203 166 17 154 142 90 66 66 66 26 26 26
114123 27 26 33 37 35 137 133 100 156 151 111 158 153 112 105 104 92 1142 6 6 6 0 0 0 0 0 0 0 0 0
1142105 104 92 68 70 65 39 40 39 18 22 22 12 14 14 12 15 15 1143 0 0 0 0 0 0 0 0 0 0 0 0
11439 11 11 4 5 5 0 0 0 0 0 0 0 0 0 0 0 0 1144 0 0 0 0 0 0 0 0 0 0 0 0
11440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1145 0 0 0 0 0 0 0 0 0 0 0 0
11450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1146 0 0 0 0 0 0 0 0 0 0 0 0
11460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1147 6 6 6 18 18 18 38 38 38 58 58 58
11470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1148 78 78 78 86 86 86 101 101 101 123 123 123
11480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1149175 146 61 210 150 10 234 174 13 246 186 14
11490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1150246 190 14 246 190 14 246 190 14 238 190 10
11500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1151102 78 10 2 2 6 46 46 46 198 198 198
11510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1152253 253 253 253 253 253 253 253 253 253 253 253
11520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1153253 253 253 253 253 253 234 234 234 242 242 242
11530 0 0 1154253 253 253 253 253 253 253 253 253 253 253 253
11540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1155253 253 253 253 253 253 253 253 253 253 253 253
11550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1156253 253 253 253 253 253 253 253 253 253 253 253
11560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1157253 253 253 253 253 253 253 253 253 224 178 62
11570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1158242 186 14 241 196 14 210 166 10 22 18 6
11580 0 0 0 0 0 0 0 0 0 0 0 16 17 12 230 229 82 1159 2 2 6 2 2 6 2 2 6 2 2 6
1159230 229 82 230 229 82 230 229 82 161 156 96 118 116 76 118 116 76 1160 2 2 6 2 2 6 6 6 6 121 92 8
1160118 116 76 66 65 55 43 45 43 32 34 33 25 27 26 20 23 22 1161238 202 15 232 195 16 82 82 82 34 34 34
116117 20 20 15 18 18 14 17 17 15 18 18 13 16 16 14 17 17 1162 10 10 10 0 0 0 0 0 0 0 0 0
116214 18 18 16 20 20 32 34 33 55 57 54 58 59 55 72 73 67 1163 0 0 0 0 0 0 0 0 0 0 0 0
1163105 104 92 55 57 54 65 66 61 63 64 60 40 43 41 33 37 35 1164 0 0 0 0 0 0 0 0 0 0 0 0
116441 42 42 20 24 24 16 20 20 16 20 20 16 20 20 16 20 20 1165 0 0 0 0 0 0 0 0 0 0 0 0
116516 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1166 0 0 0 0 0 0 0 0 0 0 0 0
116617 21 21 26 28 27 30 32 31 35 37 36 68 70 65 39 40 39 1167 14 14 14 38 38 38 70 70 70 154 122 46
116723 27 26 15 18 18 13 16 16 11 14 14 9 12 12 8 10 10 1168190 142 34 200 144 11 197 138 11 197 138 11
11687 9 9 6 7 7 0 0 0 0 0 0 0 0 0 0 0 0 1169213 154 11 226 170 11 242 186 14 246 190 14
11690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1170246 190 14 246 190 14 246 190 14 246 190 14
11700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1171225 175 15 46 32 6 2 2 6 22 22 22
11710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1172158 158 158 250 250 250 253 253 253 253 253 253
11720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1173253 253 253 253 253 253 253 253 253 253 253 253
11730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1174253 253 253 253 253 253 253 253 253 253 253 253
11740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1175253 253 253 253 253 253 253 253 253 253 253 253
11750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1176253 253 253 253 253 253 253 253 253 253 253 253
11760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1177253 253 253 250 250 250 242 242 242 224 178 62
11770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1178239 182 13 236 186 11 213 154 11 46 32 6
11780 0 0 1179 2 2 6 2 2 6 2 2 6 2 2 6
11790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1180 2 2 6 2 2 6 61 42 6 225 175 15
11800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1181238 190 10 236 186 11 112 100 78 42 42 42
11810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1182 14 14 14 0 0 0 0 0 0 0 0 0
11820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1183 0 0 0 0 0 0 0 0 0 0 0 0
11830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 38 35 1184 0 0 0 0 0 0 0 0 0 0 0 0
1184230 229 82 230 229 82 230 229 82 96 95 69 30 31 28 49 51 48 1185 0 0 0 0 0 0 0 0 0 0 0 0
118590 89 73 68 70 65 55 57 54 47 48 46 47 48 46 43 45 43 1186 0 0 0 0 0 0 0 0 0 6 6 6
118632 34 33 43 45 43 43 45 43 23 27 26 25 27 26 40 43 41 1187 22 22 22 54 54 54 154 122 46 213 154 11
118740 43 41 90 89 73 110 109 94 145 141 105 156 151 111 156 151 111 1188226 170 11 230 174 11 226 170 11 226 170 11
1188184 179 149 184 179 149 177 172 135 184 179 149 137 133 100 84 83 72 1189236 178 12 242 186 14 246 190 14 246 190 14
1189105 104 92 63 64 60 49 51 48 47 48 46 28 31 30 18 22 22 1190246 190 14 246 190 14 246 190 14 246 190 14
119016 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1191241 196 14 184 144 12 10 10 10 2 2 6
119116 20 20 15 19 19 15 19 19 15 19 19 18 22 22 15 19 19 1192 6 6 6 116 116 116 242 242 242 253 253 253
119213 16 16 12 15 15 11 14 14 10 13 13 9 12 12 9 11 11 1193253 253 253 253 253 253 253 253 253 253 253 253
11938 10 10 6 8 8 0 0 0 0 0 0 0 0 0 0 0 0 1194253 253 253 253 253 253 253 253 253 253 253 253
11940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1195253 253 253 253 253 253 253 253 253 253 253 253
11950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1196253 253 253 253 253 253 253 253 253 253 253 253
11960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1197253 253 253 231 231 231 198 198 198 214 170 54
11970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1198236 178 12 236 178 12 210 150 10 137 92 6
11980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1199 18 14 6 2 2 6 2 2 6 2 2 6
11990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1200 6 6 6 70 47 6 200 144 11 236 178 12
12000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1201239 182 13 239 182 13 124 112 88 58 58 58
12010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1202 22 22 22 6 6 6 0 0 0 0 0 0
12020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1203 0 0 0 0 0 0 0 0 0 0 0 0
12030 0 0 1204 0 0 0 0 0 0 0 0 0 0 0 0
12040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1205 0 0 0 0 0 0 0 0 0 0 0 0
12050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1206 0 0 0 0 0 0 0 0 0 10 10 10
12060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1207 30 30 30 70 70 70 180 133 36 226 170 11
12070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1208239 182 13 242 186 14 242 186 14 246 186 14
12080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1209246 190 14 246 190 14 246 190 14 246 190 14
120930 31 28 230 229 82 71 71 57 2 2 1 0 0 0 58 59 55 1210246 190 14 246 190 14 246 190 14 246 190 14
1210105 104 92 84 83 72 65 66 61 84 83 72 110 109 94 110 109 94 1211246 190 14 232 195 16 98 70 6 2 2 6
1211145 141 105 105 104 92 110 109 94 110 109 94 84 83 72 110 109 94 1212 2 2 6 2 2 6 66 66 66 221 221 221
1212158 153 112 197 193 154 197 193 154 239 239 170 251 251 187 251 251 187 1213253 253 253 253 253 253 253 253 253 253 253 253
1213251 251 187 251 251 187 251 251 187 251 251 187 210 208 158 197 193 154 1214253 253 253 253 253 253 253 253 253 253 253 253
1214197 193 154 184 179 149 145 141 105 137 133 100 105 104 92 47 48 46 1215253 253 253 253 253 253 253 253 253 253 253 253
121520 23 23 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1216253 253 253 253 253 253 253 253 253 253 253 253
121616 20 20 16 19 19 15 19 19 15 19 19 14 18 18 14 17 17 1217253 253 253 206 206 206 198 198 198 214 166 58
121713 17 17 13 16 16 12 14 14 12 14 14 13 13 13 13 13 13 1218230 174 11 230 174 11 216 158 10 192 133 9
121813 13 13 12 12 12 10 10 9 6 7 7 2 2 2 0 0 0 1219163 110 8 116 81 8 102 78 10 116 81 8
12190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1220167 114 7 197 138 11 226 170 11 239 182 13
12200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1221242 186 14 242 186 14 162 146 94 78 78 78
12210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1222 34 34 34 14 14 14 6 6 6 0 0 0
12220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1223 0 0 0 0 0 0 0 0 0 0 0 0
12230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1224 0 0 0 0 0 0 0 0 0 0 0 0
12240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1225 0 0 0 0 0 0 0 0 0 0 0 0
12250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1226 0 0 0 0 0 0 0 0 0 6 6 6
12260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1227 30 30 30 78 78 78 190 142 34 226 170 11
12270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1228239 182 13 246 190 14 246 190 14 246 190 14
12280 0 0 1229246 190 14 246 190 14 246 190 14 246 190 14
12290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1230246 190 14 246 190 14 246 190 14 246 190 14
12300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1231246 190 14 241 196 14 203 166 17 22 18 6
12310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1232 2 2 6 2 2 6 2 2 6 38 38 38
12320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1233218 218 218 253 253 253 253 253 253 253 253 253
12330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1234253 253 253 253 253 253 253 253 253 253 253 253
12340 0 0 0 0 0 1 1 0 0 0 0 0 0 0 65 66 61 1235253 253 253 253 253 253 253 253 253 253 253 253
1235105 104 92 84 83 72 84 83 72 110 109 94 184 179 149 210 208 158 1236253 253 253 253 253 253 253 253 253 253 253 253
1236210 208 158 210 208 158 214 212 158 197 193 154 214 212 158 210 208 158 1237250 250 250 206 206 206 198 198 198 202 162 69
1237251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 1238226 170 11 236 178 12 224 166 10 210 150 10
1238251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 1239200 144 11 197 138 11 192 133 9 197 138 11
1239251 251 187 251 251 187 239 239 170 251 251 187 184 179 149 84 83 72 1240210 150 10 226 170 11 242 186 14 246 190 14
124026 28 27 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1241246 190 14 246 186 14 225 175 15 124 112 88
124116 20 20 16 20 20 15 19 19 15 19 19 15 18 18 14 18 18 1242 62 62 62 30 30 30 14 14 14 6 6 6
124213 17 17 13 16 16 15 15 15 14 14 13 14 14 13 14 14 13 1243 0 0 0 0 0 0 0 0 0 0 0 0
124313 13 13 13 13 13 12 12 12 12 12 12 12 12 12 3 4 4 1244 0 0 0 0 0 0 0 0 0 0 0 0
12440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1245 0 0 0 0 0 0 0 0 0 0 0 0
12450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1246 0 0 0 0 0 0 0 0 0 10 10 10
12460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1247 30 30 30 78 78 78 174 135 50 224 166 10
12470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1248239 182 13 246 190 14 246 190 14 246 190 14
12480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1249246 190 14 246 190 14 246 190 14 246 190 14
12490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1250246 190 14 246 190 14 246 190 14 246 190 14
12500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1251246 190 14 246 190 14 241 196 14 139 102 15
12510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1252 2 2 6 2 2 6 2 2 6 2 2 6
12520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1253 78 78 78 250 250 250 253 253 253 253 253 253
12530 0 0 1254253 253 253 253 253 253 253 253 253 253 253 253
12540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1255253 253 253 253 253 253 253 253 253 253 253 253
12550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1256253 253 253 253 253 253 253 253 253 253 253 253
12560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1257250 250 250 214 214 214 198 198 198 190 150 46
12570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1258219 162 10 236 178 12 234 174 13 224 166 10
12580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1259216 158 10 213 154 11 213 154 11 216 158 10
12590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 73 67 1260226 170 11 239 182 13 246 190 14 246 190 14
1260105 104 92 99 98 80 84 83 72 99 98 80 177 172 135 197 193 154 1261246 190 14 246 190 14 242 186 14 206 162 42
1261251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 1262101 101 101 58 58 58 30 30 30 14 14 14
1262251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 1263 6 6 6 0 0 0 0 0 0 0 0 0
1263251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 1264 0 0 0 0 0 0 0 0 0 0 0 0
1264251 251 187 251 251 187 251 251 187 214 212 158 197 193 154 99 98 80 1265 0 0 0 0 0 0 0 0 0 0 0 0
126523 27 26 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1266 0 0 0 0 0 0 0 0 0 10 10 10
126616 20 20 16 20 20 15 19 19 15 19 19 15 18 18 14 18 18 1267 30 30 30 74 74 74 174 135 50 216 158 10
126714 17 17 16 16 16 16 16 16 16 16 16 15 15 15 14 14 13 1268236 178 12 246 190 14 246 190 14 246 190 14
126814 14 13 13 13 13 13 13 13 12 12 12 12 12 12 12 12 12 1269246 190 14 246 190 14 246 190 14 246 190 14
12693 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1270246 190 14 246 190 14 246 190 14 246 190 14
12700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1271246 190 14 246 190 14 241 196 14 226 184 13
12710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1272 61 42 6 2 2 6 2 2 6 2 2 6
12720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1273 22 22 22 238 238 238 253 253 253 253 253 253
12730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1274253 253 253 253 253 253 253 253 253 253 253 253
12740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1275253 253 253 253 253 253 253 253 253 253 253 253
12750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1276253 253 253 253 253 253 253 253 253 253 253 253
12760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1277253 253 253 226 226 226 187 187 187 180 133 36
12770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1278216 158 10 236 178 12 239 182 13 236 178 12
12780 0 0 1279230 174 11 226 170 11 226 170 11 230 174 11
12790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1280236 178 12 242 186 14 246 190 14 246 190 14
12800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1281246 190 14 246 190 14 246 186 14 239 182 13
12810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1282206 162 42 106 106 106 66 66 66 34 34 34
12820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1283 14 14 14 6 6 6 0 0 0 0 0 0
12830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1284 0 0 0 0 0 0 0 0 0 0 0 0
12840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 84 83 72 1285 0 0 0 0 0 0 0 0 0 0 0 0
1285110 109 94 99 98 80 72 73 67 63 64 60 99 98 80 177 172 135 1286 0 0 0 0 0 0 0 0 0 6 6 6
1286184 179 149 210 208 158 251 251 187 251 251 187 251 251 187 251 251 187 1287 26 26 26 70 70 70 163 133 67 213 154 11
1287251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 1288236 178 12 246 190 14 246 190 14 246 190 14
1288251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 1289246 190 14 246 190 14 246 190 14 246 190 14
1289251 251 187 210 208 158 184 179 149 177 172 135 110 109 94 33 37 35 1290246 190 14 246 190 14 246 190 14 246 190 14
129017 21 21 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1291246 190 14 246 190 14 246 190 14 241 196 14
129116 20 20 16 20 20 15 19 19 15 19 19 15 19 19 14 18 18 1292190 146 13 18 14 6 2 2 6 2 2 6
129215 18 18 18 19 18 18 19 18 17 17 17 16 16 16 15 15 15 1293 46 46 46 246 246 246 253 253 253 253 253 253
129314 14 13 13 13 13 13 13 13 12 12 12 12 12 12 12 12 12 1294253 253 253 253 253 253 253 253 253 253 253 253
129410 10 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1295253 253 253 253 253 253 253 253 253 253 253 253
12950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1296253 253 253 253 253 253 253 253 253 253 253 253
12960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1297253 253 253 221 221 221 86 86 86 156 107 11
12970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1298216 158 10 236 178 12 242 186 14 246 186 14
12980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1299242 186 14 239 182 13 239 182 13 242 186 14
12990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1300242 186 14 246 186 14 246 190 14 246 190 14
13000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1301246 190 14 246 190 14 246 190 14 246 190 14
13010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1302242 186 14 225 175 15 142 122 72 66 66 66
13020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1303 30 30 30 10 10 10 0 0 0 0 0 0
13030 0 0 1304 0 0 0 0 0 0 0 0 0 0 0 0
13040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1305 0 0 0 0 0 0 0 0 0 0 0 0
13050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1306 0 0 0 0 0 0 0 0 0 6 6 6
13060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1307 26 26 26 70 70 70 163 133 67 210 150 10
13070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1308236 178 12 246 190 14 246 190 14 246 190 14
13080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1309246 190 14 246 190 14 246 190 14 246 190 14
13090 0 0 0 0 0 0 0 0 0 0 0 2 2 2 105 104 92 1310246 190 14 246 190 14 246 190 14 246 190 14
1310108 107 93 99 98 80 72 73 67 63 64 60 51 52 50 87 86 72 1311246 190 14 246 190 14 246 190 14 246 190 14
1311105 104 92 110 109 94 108 107 93 156 151 111 184 179 149 184 179 149 1312232 195 16 121 92 8 34 34 34 106 106 106
1312197 193 154 197 193 154 197 193 154 184 179 149 184 179 149 177 172 135 1313221 221 221 253 253 253 253 253 253 253 253 253
1313197 193 154 156 151 111 177 172 135 184 179 149 168 163 120 137 133 100 1314253 253 253 253 253 253 253 253 253 253 253 253
1314145 141 105 110 109 94 99 98 80 47 48 46 55 57 54 15 19 19 1315253 253 253 253 253 253 253 253 253 253 253 253
131516 19 19 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1316253 253 253 253 253 253 253 253 253 253 253 253
131617 20 20 17 21 21 16 20 20 16 19 19 15 19 19 16 19 19 1317242 242 242 82 82 82 18 14 6 163 110 8
131720 20 20 21 22 21 20 20 20 19 20 19 18 19 18 16 16 16 1318216 158 10 236 178 12 242 186 14 246 190 14
131815 15 15 14 14 13 13 13 13 13 13 13 12 12 12 12 12 12 1319246 190 14 246 190 14 246 190 14 246 190 14
131912 12 12 4 5 5 0 0 0 0 0 0 0 0 0 0 0 0 1320246 190 14 246 190 14 246 190 14 246 190 14
13200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1321246 190 14 246 190 14 246 190 14 246 190 14
13210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1322246 190 14 246 190 14 242 186 14 163 133 67
13220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1323 46 46 46 18 18 18 6 6 6 0 0 0
13230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1324 0 0 0 0 0 0 0 0 0 0 0 0
13240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1325 0 0 0 0 0 0 0 0 0 0 0 0
13250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1326 0 0 0 0 0 0 0 0 0 10 10 10
13260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1327 30 30 30 78 78 78 163 133 67 210 150 10
13270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1328236 178 12 246 186 14 246 190 14 246 190 14
13280 0 0 1329246 190 14 246 190 14 246 190 14 246 190 14
13290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1330246 190 14 246 190 14 246 190 14 246 190 14
13300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1331246 190 14 246 190 14 246 190 14 246 190 14
13310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1332241 196 14 215 174 15 190 178 144 253 253 253
13320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1333253 253 253 253 253 253 253 253 253 253 253 253
13330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1334253 253 253 253 253 253 253 253 253 253 253 253
13340 0 0 0 0 0 0 0 0 0 0 0 58 59 55 110 109 94 1335253 253 253 253 253 253 253 253 253 253 253 253
1335105 104 92 90 89 73 72 73 67 55 57 54 43 45 43 39 40 39 1336253 253 253 253 253 253 253 253 253 218 218 218
133643 45 43 46 47 45 43 45 43 68 70 65 65 66 61 63 64 60 1337 58 58 58 2 2 6 22 18 6 167 114 7
1337108 107 93 72 73 67 105 104 92 90 89 73 72 73 67 40 43 41 1338216 158 10 236 178 12 246 186 14 246 190 14
133872 73 67 68 70 65 68 70 65 58 59 55 63 64 60 49 51 48 1339246 190 14 246 190 14 246 190 14 246 190 14
133943 45 43 33 36 34 27 30 29 20 24 24 16 20 20 15 19 19 1340246 190 14 246 190 14 246 190 14 246 190 14
134015 19 19 15 19 19 15 19 19 16 19 19 16 20 20 16 20 20 1341246 190 14 246 190 14 246 190 14 246 190 14
134117 21 21 20 24 24 20 23 22 17 21 21 17 20 20 20 20 20 1342246 190 14 246 186 14 242 186 14 190 150 46
134221 22 21 21 22 21 21 22 21 21 22 21 20 20 20 18 19 18 1343 54 54 54 22 22 22 6 6 6 0 0 0
134316 16 16 15 15 15 13 13 13 13 13 13 12 12 12 12 12 12 1344 0 0 0 0 0 0 0 0 0 0 0 0
134412 12 12 10 10 9 0 0 0 0 0 0 0 0 0 0 0 0 1345 0 0 0 0 0 0 0 0 0 0 0 0
13450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1346 0 0 0 0 0 0 0 0 0 14 14 14
13460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1347 38 38 38 86 86 86 180 133 36 213 154 11
13470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1348236 178 12 246 186 14 246 190 14 246 190 14
13480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1349246 190 14 246 190 14 246 190 14 246 190 14
13490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1350246 190 14 246 190 14 246 190 14 246 190 14
13500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1351246 190 14 246 190 14 246 190 14 246 190 14
13510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1352246 190 14 232 195 16 190 146 13 214 214 214
13520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1353253 253 253 253 253 253 253 253 253 253 253 253
13530 0 0 1354253 253 253 253 253 253 253 253 253 253 253 253
13540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1355253 253 253 253 253 253 253 253 253 253 253 253
13550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1356253 253 253 250 250 250 170 170 170 26 26 26
13560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1357 2 2 6 2 2 6 37 26 9 163 110 8
13570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1358219 162 10 239 182 13 246 186 14 246 190 14
13580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1359246 190 14 246 190 14 246 190 14 246 190 14
13590 0 0 0 0 0 0 0 0 21 22 21 110 109 94 110 109 94 1360246 190 14 246 190 14 246 190 14 246 190 14
1360105 104 92 84 83 72 68 70 65 51 52 50 41 42 42 33 37 35 1361246 190 14 246 190 14 246 190 14 246 190 14
136128 31 30 23 27 26 20 23 23 18 22 22 17 20 20 25 27 26 1362246 186 14 236 178 12 224 166 10 142 122 72
136226 28 27 27 30 29 25 27 26 20 23 23 23 27 26 30 32 31 1363 46 46 46 18 18 18 6 6 6 0 0 0
136320 24 24 17 21 21 18 22 22 15 19 19 26 28 27 20 23 23 1364 0 0 0 0 0 0 0 0 0 0 0 0
136414 18 18 15 19 19 15 18 18 15 19 19 15 19 19 15 19 19 1365 0 0 0 0 0 0 0 0 0 0 0 0
136515 19 19 15 19 19 15 19 19 15 19 19 15 19 19 16 19 19 1366 0 0 0 0 0 0 6 6 6 18 18 18
136616 20 20 22 24 23 24 26 24 22 24 23 20 23 22 22 24 23 1367 50 50 50 109 106 95 192 133 9 224 166 10
136724 26 24 24 26 24 23 24 24 22 24 23 21 22 21 19 20 19 1368242 186 14 246 190 14 246 190 14 246 190 14
136817 17 17 15 15 15 14 14 13 13 13 13 12 12 12 12 12 12 1369246 190 14 246 190 14 246 190 14 246 190 14
136912 12 12 12 12 12 2 2 2 0 0 0 0 0 0 0 0 0 1370246 190 14 246 190 14 246 190 14 246 190 14
13700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1371246 190 14 246 190 14 246 190 14 246 190 14
13710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1372242 186 14 226 184 13 210 162 10 142 110 46
13720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1373226 226 226 253 253 253 253 253 253 253 253 253
13730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1374253 253 253 253 253 253 253 253 253 253 253 253
13740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1375253 253 253 253 253 253 253 253 253 253 253 253
13750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1376198 198 198 66 66 66 2 2 6 2 2 6
13760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1377 2 2 6 2 2 6 50 34 6 156 107 11
13770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1378219 162 10 239 182 13 246 186 14 246 190 14
13780 0 0 1379246 190 14 246 190 14 246 190 14 246 190 14
13790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1380246 190 14 246 190 14 246 190 14 246 190 14
13800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1381246 190 14 246 190 14 246 190 14 242 186 14
13810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1382234 174 13 213 154 11 154 122 46 66 66 66
13820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1383 30 30 30 10 10 10 0 0 0 0 0 0
13830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1384 0 0 0 0 0 0 0 0 0 0 0 0
13840 0 0 0 0 0 2 2 2 99 98 80 110 109 94 108 107 93 1385 0 0 0 0 0 0 0 0 0 0 0 0
1385105 104 92 84 83 72 63 64 60 49 51 48 39 40 39 32 34 33 1386 0 0 0 0 0 0 6 6 6 22 22 22
138627 30 29 23 25 24 20 23 23 17 20 20 15 19 19 14 18 18 1387 58 58 58 154 121 60 206 145 10 234 174 13
138714 17 17 13 17 17 13 17 17 13 17 17 13 17 17 13 17 17 1388242 186 14 246 186 14 246 190 14 246 190 14
138814 17 17 14 17 17 14 17 17 14 17 17 14 17 17 14 17 17 1389246 190 14 246 190 14 246 190 14 246 190 14
138914 18 18 14 18 18 14 18 18 14 18 18 15 18 18 15 19 19 1390246 190 14 246 190 14 246 190 14 246 190 14
139015 19 19 15 19 19 15 19 19 15 19 19 15 19 19 15 19 19 1391246 190 14 246 190 14 246 190 14 246 190 14
139115 19 19 17 21 21 27 29 28 26 28 27 25 27 26 25 27 26 1392246 186 14 236 178 12 210 162 10 163 110 8
139227 29 28 27 29 28 26 28 27 24 26 24 21 22 21 20 20 20 1393 61 42 6 138 138 138 218 218 218 250 250 250
139318 19 18 16 16 16 14 14 13 13 13 13 12 12 12 12 12 12 1394253 253 253 253 253 253 253 253 253 250 250 250
139412 12 12 12 12 12 4 5 5 0 0 0 0 0 0 0 0 0 1395242 242 242 210 210 210 144 144 144 66 66 66
13950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1396 6 6 6 2 2 6 2 2 6 2 2 6
13960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1397 2 2 6 2 2 6 61 42 6 163 110 8
13970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1398216 158 10 236 178 12 246 190 14 246 190 14
13980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1399246 190 14 246 190 14 246 190 14 246 190 14
13990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1400246 190 14 246 190 14 246 190 14 246 190 14
14000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1401246 190 14 239 182 13 230 174 11 216 158 10
14010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1402190 142 34 124 112 88 70 70 70 38 38 38
14020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1403 18 18 18 6 6 6 0 0 0 0 0 0
14030 0 0 1404 0 0 0 0 0 0 0 0 0 0 0 0
14040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1405 0 0 0 0 0 0 0 0 0 0 0 0
14050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1406 0 0 0 0 0 0 6 6 6 22 22 22
14060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1407 62 62 62 168 124 44 206 145 10 224 166 10
14070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1408236 178 12 239 182 13 242 186 14 242 186 14
14080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1409246 186 14 246 190 14 246 190 14 246 190 14
14090 0 0 0 0 0 51 52 50 110 109 94 110 109 94 105 104 92 1410246 190 14 246 190 14 246 190 14 246 190 14
141090 89 73 72 73 67 55 57 54 43 45 43 35 37 36 30 32 31 1411246 190 14 246 190 14 246 190 14 246 190 14
141126 28 27 20 24 24 17 21 21 16 19 19 15 18 18 14 17 17 1412246 190 14 236 178 12 216 158 10 175 118 6
141213 16 16 13 16 16 13 16 16 13 16 16 13 16 16 13 16 16 1413 80 54 7 2 2 6 6 6 6 30 30 30
141313 16 16 13 16 16 13 16 16 13 17 17 13 17 17 14 17 17 1414 54 54 54 62 62 62 50 50 50 38 38 38
141414 17 17 14 17 17 14 17 17 14 18 18 14 18 18 14 18 18 1415 14 14 14 2 2 6 2 2 6 2 2 6
141515 18 18 15 18 18 15 19 19 15 19 19 15 19 19 15 19 19 1416 2 2 6 2 2 6 2 2 6 2 2 6
141615 19 19 15 19 19 27 29 28 32 34 33 28 31 30 27 29 28 1417 2 2 6 6 6 6 80 54 7 167 114 7
141730 32 31 30 32 31 30 31 28 26 28 27 23 24 24 21 22 21 1418213 154 11 236 178 12 246 190 14 246 190 14
141819 20 19 16 16 16 14 14 13 13 13 13 12 12 12 12 12 12 1419246 190 14 246 190 14 246 190 14 246 190 14
141912 12 12 12 12 12 6 7 7 0 0 0 0 0 0 0 0 0 1420246 190 14 242 186 14 239 182 13 239 182 13
14200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1421230 174 11 210 150 10 174 135 50 124 112 88
14210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1422 82 82 82 54 54 54 34 34 34 18 18 18
14220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1423 6 6 6 0 0 0 0 0 0 0 0 0
14230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1424 0 0 0 0 0 0 0 0 0 0 0 0
14240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1425 0 0 0 0 0 0 0 0 0 0 0 0
14250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1426 0 0 0 0 0 0 6 6 6 18 18 18
14260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1427 50 50 50 158 118 36 192 133 9 200 144 11
14270 0 0 0 0 0 0 0 0 3 3 3 0 0 0 0 0 0 1428216 158 10 219 162 10 224 166 10 226 170 11
14280 0 0 1429230 174 11 236 178 12 239 182 13 239 182 13
14290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1430242 186 14 246 186 14 246 190 14 246 190 14
14300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1431246 190 14 246 190 14 246 190 14 246 190 14
14310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1432246 186 14 230 174 11 210 150 10 163 110 8
14320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1433104 69 6 10 10 10 2 2 6 2 2 6
14330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1434 2 2 6 2 2 6 2 2 6 2 2 6
14340 0 0 10 10 9 108 107 93 110 109 94 108 107 93 99 98 80 1435 2 2 6 2 2 6 2 2 6 2 2 6
143584 83 72 63 64 60 49 51 48 40 43 41 33 36 34 27 30 29 1436 2 2 6 2 2 6 2 2 6 2 2 6
143623 27 26 18 22 22 17 20 20 15 18 18 14 17 17 13 16 16 1437 2 2 6 6 6 6 91 60 6 167 114 7
143713 16 16 13 16 16 12 15 15 12 15 15 12 15 15 12 15 15 1438206 145 10 230 174 11 242 186 14 246 190 14
143813 16 16 13 16 16 13 16 16 13 16 16 13 16 16 13 16 16 1439246 190 14 246 190 14 246 186 14 242 186 14
143913 17 17 13 17 17 14 17 17 14 17 17 14 17 17 14 18 18 1440239 182 13 230 174 11 224 166 10 213 154 11
144014 18 18 14 18 18 15 18 18 15 18 18 15 19 19 15 19 19 1441180 133 36 124 112 88 86 86 86 58 58 58
144115 19 19 15 19 19 17 21 21 33 36 34 32 34 33 31 33 31 1442 38 38 38 22 22 22 10 10 10 6 6 6
144233 36 34 33 36 34 31 33 31 27 29 28 25 27 26 21 22 21 1443 0 0 0 0 0 0 0 0 0 0 0 0
144319 20 19 17 17 17 15 15 15 13 13 13 12 12 12 12 12 12 1444 0 0 0 0 0 0 0 0 0 0 0 0
144412 12 12 12 12 12 8 8 7 0 0 0 0 0 0 0 0 0 1445 0 0 0 0 0 0 0 0 0 0 0 0
14450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1446 0 0 0 0 0 0 0 0 0 14 14 14
14460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1447 34 34 34 70 70 70 138 110 50 158 118 36
14470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1448167 114 7 180 123 7 192 133 9 197 138 11
14480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1449200 144 11 206 145 10 213 154 11 219 162 10
14490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1450224 166 10 230 174 11 239 182 13 242 186 14
14500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1451246 186 14 246 186 14 246 186 14 246 186 14
14510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1452239 182 13 216 158 10 185 133 11 152 99 6
14520 0 0 0 0 0 63 64 60 137 133 100 43 45 43 0 0 0 1453104 69 6 18 14 6 2 2 6 2 2 6
14530 0 0 1454 2 2 6 2 2 6 2 2 6 2 2 6
14540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1455 2 2 6 2 2 6 2 2 6 2 2 6
14550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1456 2 2 6 2 2 6 2 2 6 2 2 6
14560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1457 2 2 6 6 6 6 80 54 7 152 99 6
14570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1458192 133 9 219 162 10 236 178 12 239 182 13
14580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1459246 186 14 242 186 14 239 182 13 236 178 12
14590 0 0 68 70 65 110 109 94 110 109 94 105 104 92 84 83 72 1460224 166 10 206 145 10 192 133 9 154 121 60
146068 70 65 55 57 54 43 45 43 35 37 36 30 32 31 26 28 27 1461 94 94 94 62 62 62 42 42 42 22 22 22
146120 24 24 17 21 21 16 19 19 14 17 17 13 16 16 12 15 15 1462 14 14 14 6 6 6 0 0 0 0 0 0
146212 15 15 12 15 15 12 15 15 12 15 15 12 15 15 12 15 15 1463 0 0 0 0 0 0 0 0 0 0 0 0
146312 15 15 12 15 15 12 15 15 12 15 15 12 15 15 13 16 16 1464 0 0 0 0 0 0 0 0 0 0 0 0
146413 16 16 13 16 16 13 16 16 13 17 17 13 17 17 14 17 17 1465 0 0 0 0 0 0 0 0 0 0 0 0
146514 17 17 14 17 17 14 18 18 14 18 18 14 18 18 15 18 18 1466 0 0 0 0 0 0 0 0 0 6 6 6
146615 19 19 15 19 19 15 19 19 20 24 24 32 34 33 35 37 36 1467 18 18 18 34 34 34 58 58 58 78 78 78
146737 39 37 35 37 36 33 36 34 30 32 31 26 28 27 22 24 23 1468101 98 89 124 112 88 142 110 46 156 107 11
146820 20 20 17 17 17 15 15 15 13 13 13 12 12 12 12 12 12 1469163 110 8 167 114 7 175 118 6 180 123 7
146912 12 12 12 12 12 8 8 7 0 0 0 0 0 0 0 0 0 1470185 133 11 197 138 11 210 150 10 219 162 10
14700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1471226 170 11 236 178 12 236 178 12 234 174 13
14710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1472219 162 10 197 138 11 163 110 8 130 83 6
14720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1473 91 60 6 10 10 10 2 2 6 2 2 6
14730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1474 18 18 18 38 38 38 38 38 38 38 38 38
14740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1475 38 38 38 38 38 38 38 38 38 38 38 38
14750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1476 38 38 38 38 38 38 26 26 26 2 2 6
14760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1477 2 2 6 6 6 6 70 47 6 137 92 6
14771 1 1 99 98 80 184 179 149 184 179 149 68 70 65 0 0 0 1478175 118 6 200 144 11 219 162 10 230 174 11
14780 0 0 1479234 174 13 230 174 11 219 162 10 210 150 10
14790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1480192 133 9 163 110 8 124 112 88 82 82 82
14800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1481 50 50 50 30 30 30 14 14 14 6 6 6
14810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1482 0 0 0 0 0 0 0 0 0 0 0 0
14820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1483 0 0 0 0 0 0 0 0 0 0 0 0
14830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1484 0 0 0 0 0 0 0 0 0 0 0 0
148415 15 15 110 109 94 110 109 94 108 107 93 99 98 80 72 73 67 1485 0 0 0 0 0 0 0 0 0 0 0 0
148561 63 57 49 51 48 39 40 39 33 36 34 27 30 29 23 25 24 1486 0 0 0 0 0 0 0 0 0 0 0 0
148618 22 22 16 19 19 14 17 17 13 16 16 12 15 15 12 15 15 1487 6 6 6 14 14 14 22 22 22 34 34 34
148711 14 14 11 14 14 11 14 14 11 14 14 11 14 14 11 14 14 1488 42 42 42 58 58 58 74 74 74 86 86 86
148811 14 14 11 14 14 12 14 14 12 15 15 12 15 15 12 15 15 1489101 98 89 122 102 70 130 98 46 121 87 25
148912 15 15 13 16 16 13 16 16 13 16 16 13 16 16 13 16 16 1490137 92 6 152 99 6 163 110 8 180 123 7
149013 17 17 14 17 17 14 17 17 14 17 17 14 18 18 14 18 18 1491185 133 11 197 138 11 206 145 10 200 144 11
149114 18 18 15 18 18 15 19 19 15 19 19 30 32 31 38 39 37 1492180 123 7 156 107 11 130 83 6 104 69 6
149239 40 39 39 40 39 35 37 36 31 33 31 27 29 28 22 24 23 1493 50 34 6 54 54 54 110 110 110 101 98 89
149320 20 20 17 17 17 15 15 15 13 13 13 12 12 12 12 12 12 1494 86 86 86 82 82 82 78 78 78 78 78 78
149412 12 12 12 12 12 8 8 7 0 0 0 0 0 0 0 0 0 1495 78 78 78 78 78 78 78 78 78 78 78 78
14950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1496 78 78 78 82 82 82 86 86 86 94 94 94
14960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1497106 106 106 101 101 101 86 66 34 124 80 6
14970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1498156 107 11 180 123 7 192 133 9 200 144 11
14980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1499206 145 10 200 144 11 192 133 9 175 118 6
14990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1500139 102 15 109 106 95 70 70 70 42 42 42
15000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1501 22 22 22 10 10 10 0 0 0 0 0 0
15010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 1502 0 0 0 0 0 0 0 0 0 0 0 0
1502110 109 94 197 193 154 210 208 158 184 179 149 68 70 65 0 0 0 1503 0 0 0 0 0 0 0 0 0 0 0 0
15030 0 0 1504 0 0 0 0 0 0 0 0 0 0 0 0
15040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1505 0 0 0 0 0 0 0 0 0 0 0 0
15050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1506 0 0 0 0 0 0 0 0 0 0 0 0
15060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1507 0 0 0 0 0 0 6 6 6 10 10 10
15070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1508 14 14 14 22 22 22 30 30 30 38 38 38
15080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1509 50 50 50 62 62 62 74 74 74 90 90 90
150968 70 65 110 109 94 110 109 94 105 104 92 84 83 72 65 66 61 1510101 98 89 112 100 78 121 87 25 124 80 6
151051 52 50 43 45 43 35 37 36 30 32 31 25 27 26 20 23 23 1511137 92 6 152 99 6 152 99 6 152 99 6
151117 20 20 15 18 18 13 16 16 12 15 15 12 15 15 11 14 14 1512138 86 6 124 80 6 98 70 6 86 66 30
151211 14 14 11 14 14 11 13 13 11 13 13 11 13 13 11 13 13 1513101 98 89 82 82 82 58 58 58 46 46 46
151311 14 14 11 14 14 11 14 14 11 14 14 11 14 14 11 14 14 1514 38 38 38 34 34 34 34 34 34 34 34 34
151412 15 15 12 15 15 12 15 15 12 15 15 13 16 16 13 16 16 1515 34 34 34 34 34 34 34 34 34 34 34 34
151513 16 16 13 16 16 13 17 17 13 17 17 14 17 17 14 17 17 1516 34 34 34 34 34 34 38 38 38 42 42 42
151614 18 18 14 18 18 14 18 18 16 19 19 37 39 37 41 42 42 1517 54 54 54 82 82 82 94 86 76 91 60 6
151741 42 42 41 42 42 38 39 37 32 34 33 27 29 28 23 24 24 1518134 86 6 156 107 11 167 114 7 175 118 6
151821 22 21 17 17 17 15 15 15 13 13 13 12 12 12 12 12 12 1519175 118 6 167 114 7 152 99 6 121 87 25
151912 12 12 12 12 12 8 8 7 0 0 0 0 0 0 0 0 0 1520101 98 89 62 62 62 34 34 34 18 18 18
15200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1521 6 6 6 0 0 0 0 0 0 0 0 0
15210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1522 0 0 0 0 0 0 0 0 0 0 0 0
15220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1523 0 0 0 0 0 0 0 0 0 0 0 0
15230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1524 0 0 0 0 0 0 0 0 0 0 0 0
15240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1525 0 0 0 0 0 0 0 0 0 0 0 0
15250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1526 0 0 0 0 0 0 0 0 0 0 0 0
15260 0 0 0 0 0 0 0 0 0 0 0 11 11 11 137 133 100 1527 0 0 0 0 0 0 0 0 0 0 0 0
1527197 193 154 251 251 187 239 239 170 184 179 149 31 33 31 0 0 0 1528 0 0 0 6 6 6 6 6 6 10 10 10
15280 0 0 1529 18 18 18 22 22 22 30 30 30 42 42 42
15290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1530 50 50 50 66 66 66 86 86 86 101 98 89
15300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1531106 86 58 98 70 6 104 69 6 104 69 6
15310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1532104 69 6 91 60 6 82 62 34 90 90 90
15320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1533 62 62 62 38 38 38 22 22 22 14 14 14
15330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 12 12 1534 10 10 10 10 10 10 10 10 10 10 10 10
1534110 109 94 110 109 94 105 104 92 90 89 73 72 73 67 58 59 55 1535 10 10 10 10 10 10 6 6 6 10 10 10
153546 47 45 37 39 37 31 33 31 26 28 27 20 24 24 17 21 21 1536 10 10 10 10 10 10 10 10 10 14 14 14
153615 18 18 13 16 16 12 15 15 12 14 14 11 13 13 11 13 13 1537 22 22 22 42 42 42 70 70 70 89 81 66
153710 13 13 10 13 13 10 13 13 10 13 13 10 13 13 10 13 13 1538 80 54 7 104 69 6 124 80 6 137 92 6
153810 13 13 10 13 13 11 13 13 11 13 13 11 14 14 11 14 14 1539134 86 6 116 81 8 100 82 52 86 86 86
153911 14 14 11 14 14 12 14 14 12 15 15 12 15 15 12 15 15 1540 58 58 58 30 30 30 14 14 14 6 6 6
154013 16 16 13 16 16 13 16 16 13 16 16 13 17 17 13 17 17 1541 0 0 0 0 0 0 0 0 0 0 0 0
154114 17 17 14 17 17 14 18 18 23 27 26 41 42 42 41 42 42 1542 0 0 0 0 0 0 0 0 0 0 0 0
154243 45 43 41 42 42 39 40 39 33 36 34 27 29 28 23 24 24 1543 0 0 0 0 0 0 0 0 0 0 0 0
154321 22 21 17 17 17 15 15 15 13 13 13 12 12 12 12 12 12 1544 0 0 0 0 0 0 0 0 0 0 0 0
154412 12 12 12 12 12 6 7 7 0 0 0 0 0 0 0 0 0 1545 0 0 0 0 0 0 0 0 0 0 0 0
15450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1546 0 0 0 0 0 0 0 0 0 0 0 0
15460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1547 0 0 0 0 0 0 0 0 0 0 0 0
15470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1548 0 0 0 0 0 0 0 0 0 0 0 0
15480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1549 0 0 0 6 6 6 10 10 10 14 14 14
15490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1550 18 18 18 26 26 26 38 38 38 54 54 54
15500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1551 70 70 70 86 86 86 94 86 76 89 81 66
15510 0 0 0 0 0 0 0 0 27 29 28 168 163 120 210 208 158 1552 89 81 66 86 86 86 74 74 74 50 50 50
1552251 251 187 251 251 187 210 208 158 137 133 100 1 1 1 0 0 0 1553 30 30 30 14 14 14 6 6 6 0 0 0
15530 0 0 1554 0 0 0 0 0 0 0 0 0 0 0 0
15540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1555 0 0 0 0 0 0 0 0 0 0 0 0
15550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1556 0 0 0 0 0 0 0 0 0 0 0 0
15560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1557 6 6 6 18 18 18 34 34 34 58 58 58
15570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1558 82 82 82 89 81 66 89 81 66 89 81 66
15580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 60 56 1559 94 86 66 94 86 76 74 74 74 50 50 50
1559110 109 94 105 104 92 105 104 92 84 83 72 65 66 61 51 52 50 1560 26 26 26 14 14 14 6 6 6 0 0 0
156040 43 41 33 36 34 27 30 29 23 25 24 18 22 22 16 19 19 1561 0 0 0 0 0 0 0 0 0 0 0 0
156114 17 17 12 15 15 11 14 14 11 14 14 10 13 13 10 13 13 1562 0 0 0 0 0 0 0 0 0 0 0 0
156210 13 13 10 12 12 10 12 12 10 12 12 10 12 12 10 12 12 1563 0 0 0 0 0 0 0 0 0 0 0 0
156310 12 12 10 12 12 10 13 13 10 13 13 10 13 13 11 13 13 1564 0 0 0 0 0 0 0 0 0 0 0 0
156411 13 13 11 14 14 11 14 14 11 14 14 11 14 14 12 15 15 1565 0 0 0 0 0 0 0 0 0 0 0 0
156512 15 15 12 15 15 12 15 15 13 16 16 13 16 16 13 16 16 1566 0 0 0 0 0 0 0 0 0 0 0 0
156613 17 17 13 17 17 14 17 17 32 34 33 43 45 43 43 45 43 1567 0 0 0 0 0 0 0 0 0 0 0 0
156743 45 43 43 45 43 39 40 39 33 36 34 27 29 28 23 24 24 1568 0 0 0 0 0 0 0 0 0 0 0 0
156821 22 21 17 17 17 15 15 15 13 13 13 12 12 12 12 12 12 1569 0 0 0 0 0 0 0 0 0 0 0 0
156912 12 12 12 12 12 6 7 7 0 0 0 0 0 0 0 0 0 1570 6 6 6 6 6 6 14 14 14 18 18 18
15700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1571 30 30 30 38 38 38 46 46 46 54 54 54
15710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1572 50 50 50 42 42 42 30 30 30 18 18 18
15720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1573 10 10 10 0 0 0 0 0 0 0 0 0
15730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1574 0 0 0 0 0 0 0 0 0 0 0 0
15740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1575 0 0 0 0 0 0 0 0 0 0 0 0
15750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1576 0 0 0 0 0 0 0 0 0 0 0 0
15760 0 0 1 1 1 68 70 65 184 179 149 210 208 158 251 251 187 1577 0 0 0 6 6 6 14 14 14 26 26 26
1577251 251 187 214 212 158 184 179 149 37 39 37 0 0 0 0 0 0 1578 38 38 38 50 50 50 58 58 58 58 58 58
15780 0 0 1579 54 54 54 42 42 42 30 30 30 18 18 18
15790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1580 10 10 10 0 0 0 0 0 0 0 0 0
15800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1581 0 0 0 0 0 0 0 0 0 0 0 0
15810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1582 0 0 0 0 0 0 0 0 0 0 0 0
15820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1583 0 0 0 0 0 0 0 0 0 0 0 0
15830 0 0 0 0 0 0 0 0 0 0 0 6 7 7 105 104 92 1584 0 0 0 0 0 0 0 0 0 0 0 0
1584105 104 92 105 104 92 99 98 80 72 73 67 58 59 55 46 47 45 1585 0 0 0 0 0 0 0 0 0 0 0 0
158535 37 36 30 32 31 25 27 26 20 23 23 16 19 19 14 17 17 1586 0 0 0 0 0 0 0 0 0 0 0 0
158612 15 15 12 14 14 11 13 13 10 13 13 10 12 12 10 12 12 1587 0 0 0 0 0 0 0 0 0 0 0 0
158710 12 12 10 12 12 9 12 12 9 12 12 9 12 12 9 12 12 1588 0 0 0 0 0 0 0 0 0 0 0 0
158810 12 12 10 12 12 10 12 12 10 12 12 10 12 12 10 13 13 1589 0 0 0 0 0 0 0 0 0 0 0 0
158910 13 13 10 13 13 11 13 13 11 13 13 11 14 14 11 14 14 1590 0 0 0 0 0 0 0 0 0 6 6 6
159011 14 14 12 15 15 12 15 15 12 15 15 12 15 15 13 16 16 1591 6 6 6 10 10 10 14 14 14 18 18 18
159113 16 16 13 16 16 17 20 20 41 42 42 46 47 45 46 47 45 1592 18 18 18 14 14 14 10 10 10 6 6 6
159246 47 45 43 45 43 40 41 39 33 36 34 27 29 28 23 24 24 1593 0 0 0 0 0 0 0 0 0 0 0 0
159320 20 20 17 17 17 15 15 15 13 13 13 12 12 12 12 12 12 1594 0 0 0 0 0 0 0 0 0 0 0 0
159412 12 12 12 12 12 4 5 5 0 0 0 0 0 0 0 0 0 1595 0 0 0 0 0 0 0 0 0 0 0 0
15950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1596 0 0 0 0 0 0 0 0 0 0 0 0
15960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1597 0 0 0 0 0 0 0 0 0 6 6 6
15970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1598 14 14 14 18 18 18 22 22 22 22 22 22
15980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1599 18 18 18 14 14 14 10 10 10 6 6 6
15990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1600 0 0 0 0 0 0 0 0 0 0 0 0
16000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1601 0 0 0 0 0 0 0 0 0 0 0 0
160115 15 15 110 109 94 197 193 154 214 212 158 251 251 187 251 251 187 1602 0 0 0 0 0 0 0 0 0 0 0 0
1602239 239 170 184 179 149 84 83 72 0 0 0 0 0 0 0 0 0 1603 0 0 0 0 0 0 0 0 0 0 0 0
16030 0 0 1604 0 0 0 0 0 0 0 0 0 0 0 0
16040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16080 0 0 0 0 0 0 0 0 0 0 0 47 48 46 105 104 92
1609105 104 92 99 98 80 84 83 72 68 70 65 51 52 50 40 43 41
161032 34 33 27 29 28 22 24 23 17 21 21 15 18 18 13 16 16
161112 15 15 11 13 13 10 13 13 10 12 12 9 12 12 9 12 12
16129 12 12 9 12 12 9 11 11 9 11 11 9 11 11 9 11 11
16139 12 12 9 12 12 9 12 12 9 12 12 10 12 12 10 12 12
161410 12 12 10 12 12 10 13 13 10 13 13 10 13 13 11 13 13
161511 14 14 11 14 14 11 14 14 12 14 14 12 15 15 12 15 15
161612 15 15 13 16 16 28 31 30 43 45 43 47 48 46 47 48 46
161747 48 46 43 45 43 40 41 39 33 36 34 27 29 28 22 24 23
161820 20 20 17 17 17 15 15 15 13 13 13 12 12 12 12 12 12
161912 12 12 12 12 12 3 4 4 0 0 0 0 0 0 0 0 0
16200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16250 0 0 0 0 0 0 0 0 0 0 0 1 1 1 60 60 56
1626177 172 135 197 193 154 251 251 187 251 251 187 251 251 187 251 251 187
1627184 179 149 110 109 94 3 4 4 0 0 0 0 0 0 0 0 0
16280 0 0
16290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16330 0 0 0 0 0 0 0 0 1 1 1 99 98 80 105 104 92
163499 98 80 87 86 72 84 83 72 63 64 60 46 47 45 35 37 36
163530 32 31 25 27 26 18 22 22 16 19 19 14 17 17 12 15 15
163611 14 14 10 13 13 9 12 12 9 12 12 9 11 11 9 11 11
16379 11 11 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
16389 11 11 9 11 11 9 11 11 9 11 11 9 12 12 9 12 12
16399 12 12 10 12 12 10 12 12 10 12 12 10 13 13 10 13 13
164010 13 13 11 13 13 11 14 14 11 14 14 11 14 14 12 15 15
164112 15 15 14 17 17 41 42 42 47 48 46 49 51 48 51 52 50
164247 48 46 43 45 43 40 41 39 33 36 34 27 29 28 22 24 23
164319 20 19 16 16 16 14 14 13 13 13 13 12 12 12 12 12 12
164412 12 12 12 12 12 2 2 2 0 0 0 0 0 0 0 0 0
16450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16500 0 0 0 0 0 0 0 0 23 24 24 137 133 100 184 179 149
1651210 208 158 251 251 187 251 251 187 251 251 187 251 251 187 184 179 149
1652110 109 94 13 13 13 0 0 0 0 0 0 0 0 0 0 0 0
16530 0 0
16540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16580 0 0 0 0 0 0 0 0 30 32 31 105 104 92 99 98 80
165984 83 72 84 83 72 72 73 67 55 57 54 41 42 42 32 34 33
166027 29 28 20 24 24 17 20 20 14 17 17 13 16 16 12 14 14
166110 13 13 10 12 12 9 11 11 9 11 11 9 11 11 9 11 11
16629 11 11 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
16639 11 11 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
16649 11 11 9 12 12 9 12 12 10 12 12 10 12 12 10 12 12
166510 13 13 10 13 13 10 13 13 11 13 13 11 14 14 11 14 14
166611 14 14 27 29 28 55 56 53 72 73 67 51 52 50 51 52 50
166749 51 48 43 45 43 39 40 39 32 34 33 26 28 27 21 22 21
166819 20 19 16 16 16 18 19 17 13 13 13 12 12 12 12 12 12
166912 12 12 12 12 12 1 1 1 0 0 0 0 0 0 0 0 0
16700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16750 0 0 8 8 7 84 83 72 184 179 149 197 193 154 251 251 187
1676251 251 187 251 251 187 251 251 187 251 251 187 184 179 149 145 141 105
167719 20 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16780 0 0
16790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16820 0 0 14 14 13 0 0 0 0 0 0 0 0 0 0 0 0
16830 0 0 0 0 0 0 0 0 72 73 67 105 104 92 84 83 72
168472 73 67 84 83 72 68 70 65 49 51 48 39 40 39 30 32 31
168525 27 26 18 22 22 15 18 18 13 16 16 12 15 15 11 13 13
168610 12 12 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
16879 11 11 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
16889 11 11 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
16899 11 11 9 11 11 9 11 11 9 12 12 9 12 12 9 12 12
169010 12 12 10 12 12 10 12 12 10 13 13 10 13 13 11 13 13
169113 16 16 41 42 42 99 98 80 158 153 112 65 66 61 51 52 50
169249 51 48 43 45 43 39 40 39 31 33 31 25 27 26 21 22 21
169321 22 21 68 70 65 55 56 53 13 13 13 12 12 12 12 12 12
169412 12 12 11 11 11 0 0 0 0 0 0 0 0 0 0 0 0
16950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3
170063 64 60 158 153 112 184 179 149 210 208 158 251 251 187 251 251 187
1701251 251 187 251 251 187 251 251 187 184 179 149 137 133 100 27 29 28
17020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17030 0 0
17040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
170721 22 21 110 109 94 5 6 5 0 0 0 0 0 0 0 0 0
17080 0 0 0 0 0 13 13 13 105 104 92 90 89 73 72 73 67
170968 70 65 84 83 72 63 64 60 46 47 45 35 37 36 27 29 28
171022 24 23 17 20 20 14 17 17 12 15 15 11 14 14 10 12 12
171110 12 12 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
17129 11 11 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
17138 10 10 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
17149 11 11 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
17159 12 12 9 12 12 10 12 12 10 12 12 10 13 13 10 13 13
171630 32 31 47 48 46 177 172 135 210 208 158 137 133 100 55 56 53
171749 51 48 43 45 43 38 39 37 31 33 31 25 27 26 22 24 23
1718110 109 94 184 179 149 63 64 60 13 13 13 12 12 12 12 12 12
171912 12 12 8 9 9 0 0 0 1 1 1 0 0 0 0 0 0
17200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17240 0 0 0 0 0 0 0 0 0 0 0 21 22 21 105 104 92
1725184 179 149 210 208 158 251 251 187 251 251 187 251 251 187 251 251 187
1726251 251 187 251 251 187 184 179 149 145 141 105 23 24 24 0 0 0
17270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17280 0 0
17290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
173268 70 65 184 179 149 105 104 92 0 0 0 0 0 0 0 0 0
17330 0 0 0 0 0 51 52 50 99 98 80 84 83 72 63 64 60
173468 70 65 72 73 67 55 57 54 41 42 42 32 34 33 25 27 26
173520 23 23 16 19 19 13 16 16 12 14 14 10 13 13 10 12 12
17369 11 11 9 11 11 9 11 11 9 11 11 9 11 11 8 10 10
17378 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
17388 10 10 8 10 10 8 10 10 8 10 10 9 11 11 9 11 11
17399 11 11 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
17409 11 11 9 11 11 9 12 12 9 12 12 10 12 12 17 20 20
174146 47 45 72 73 67 210 208 158 251 251 187 210 208 158 63 64 60
174249 51 48 43 45 43 37 39 37 30 32 31 24 26 24 105 104 92
1743210 208 158 197 193 154 47 48 46 13 13 13 12 12 12 12 12 12
174412 12 12 6 7 7 33 36 34 48 49 45 0 0 0 0 0 0
17450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17490 0 0 0 0 0 8 8 7 23 24 24 55 56 53 110 109 94
1750210 208 158 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187
1751251 251 187 184 179 149 110 109 94 20 20 20 0 0 0 0 0 0
17520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17530 0 0
17540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1757110 109 94 251 251 187 210 208 158 47 48 46 0 0 0 0 0 0
17580 0 0 1 1 1 90 89 73 90 89 73 72 73 67 55 56 53
175972 73 67 68 70 65 51 52 50 37 39 37 28 31 30 23 25 24
176017 21 21 15 18 18 12 15 15 11 14 14 10 13 13 9 12 12
17619 11 11 9 11 11 9 11 11 8 10 10 8 10 10 8 10 10
17628 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
17638 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
17648 10 10 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
17659 11 11 9 11 11 9 11 11 9 12 12 13 16 16 41 42 42
176649 51 48 110 109 94 251 251 187 251 251 187 251 251 187 105 104 92
176749 51 48 43 45 43 35 37 36 30 31 28 47 48 46 197 193 154
1768251 251 187 197 193 154 31 33 31 12 12 12 12 12 12 12 12 12
176912 12 12 51 52 50 184 179 149 72 73 67 0 0 0 0 0 0
17700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2
177411 11 11 21 22 21 30 32 31 40 41 39 60 60 56 145 141 105
1775251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 214 212 158
1776184 179 149 110 109 94 13 13 13 0 0 0 0 0 0 0 0 0
17770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17780 0 0
17790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17800 0 0 0 0 0 4 5 4 61 61 53 48 49 45 3 4 3
17810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1782156 151 111 251 251 187 251 251 187 184 179 149 11 11 11 0 0 0
17830 0 0 26 28 27 99 98 80 84 83 72 60 60 56 43 45 43
178472 73 67 65 66 61 49 51 48 35 37 36 27 29 28 20 24 24
178517 20 20 14 17 17 12 15 15 11 13 13 10 12 12 9 11 11
17869 11 11 9 11 11 8 10 10 8 10 10 8 10 10 8 10 10
17878 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
17888 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
17898 10 10 8 10 10 8 10 10 8 10 10 9 11 11 9 11 11
17909 11 11 9 11 11 9 11 11 11 13 13 37 39 37 47 48 46
179151 52 50 184 179 149 251 251 187 251 251 187 251 251 187 145 141 105
179247 48 46 41 42 42 35 37 36 27 29 28 137 133 100 251 251 187
1793251 251 187 197 193 154 19 20 19 12 12 12 12 12 12 12 12 12
179427 29 28 184 179 149 214 212 158 63 64 60 0 0 0 0 0 0
17950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17980 0 0 0 0 0 1 1 1 6 7 7 16 16 16 24 26 24
179930 32 31 38 39 37 47 48 46 55 57 54 68 70 65 110 109 94
1800197 193 154 251 251 187 251 251 187 251 251 187 210 208 158 184 179 149
1801105 104 92 8 8 7 0 0 0 0 0 0 0 0 0 0 0 0
18020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18030 0 0
18040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18050 0 0 0 0 0 0 0 0 65 66 61 184 179 149 156 151 111
180630 32 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1807168 163 120 251 251 187 251 251 187 251 251 187 110 109 94 0 0 0
18080 0 0 60 60 56 84 83 72 68 70 65 51 52 50 38 39 37
180984 83 72 63 64 60 43 45 43 33 36 34 25 27 26 20 23 22
181015 18 18 13 16 16 12 14 14 10 13 13 9 12 12 9 11 11
18119 11 11 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18128 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18138 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18148 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18159 11 11 9 11 11 10 12 12 33 36 34 46 47 45 51 52 50
181672 73 67 210 208 158 251 251 187 251 251 187 251 251 187 177 172 135
181747 48 46 41 42 42 35 37 36 37 39 37 184 179 149 251 251 187
1818251 251 187 197 193 154 13 13 13 12 12 12 12 12 12 12 12 12
1819110 109 94 251 251 187 251 251 187 37 39 37 0 0 0 0 0 0
18200 0 0 21 22 20 2 2 1 0 0 0 0 0 0 0 0 0
18210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18234 5 5 12 12 12 21 22 21 25 27 26 30 32 31 38 39 37
182446 47 45 55 56 53 60 60 56 65 66 61 68 70 65 105 104 92
1825110 109 94 197 193 154 210 208 158 197 193 154 184 179 149 84 83 72
18262 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18280 0 0
18290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18300 0 0 0 0 0 0 0 0 13 13 13 184 179 149 251 251 187
1831197 193 154 43 44 41 0 0 0 0 0 0 0 0 0 0 0 0
1832145 141 105 251 251 187 251 251 187 251 251 187 214 212 158 43 45 43
18332 2 2 84 83 72 72 73 67 58 59 55 41 42 42 38 39 37
183472 73 67 58 59 55 41 42 42 31 33 31 25 27 26 18 22 22
183514 17 17 12 15 15 12 14 14 10 12 12 9 12 12 9 11 11
18369 11 11 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18378 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18388 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18398 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18408 10 10 9 12 12 31 33 31 43 45 43 49 51 48 55 56 53
1841110 109 94 251 251 187 251 251 187 251 251 187 251 251 187 168 163 120
184247 48 46 41 42 42 33 36 34 63 64 60 197 193 154 251 251 187
1843251 251 187 184 179 149 13 13 13 12 12 12 12 12 12 16 16 16
1844197 193 154 251 251 187 239 239 170 20 20 20 0 0 0 2 2 1
1845108 107 93 110 109 94 0 0 0 0 0 0 0 0 0 0 0 0
18460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18470 0 0 0 0 0 1 1 1 4 5 5 11 11 11 18 19 18
184822 24 23 26 28 27 32 34 33 39 40 39 46 47 45 51 52 50
184955 57 54 60 60 56 63 64 60 63 64 60 63 64 60 58 59 55
185063 64 60 99 98 80 145 141 105 137 133 100 43 45 43 0 0 0
18510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18530 0 0
18540 0 0 0 0 0 0 0 0 3 4 3 0 0 0 0 0 0
18550 0 0 0 0 0 0 0 0 0 0 0 110 109 94 251 251 187
1856251 251 187 184 179 149 25 27 26 0 0 0 0 0 0 0 0 0
185799 98 80 251 251 187 251 251 187 251 251 187 251 251 187 156 151 111
185825 27 26 84 83 72 65 66 61 47 48 46 32 34 33 39 40 39
185972 73 67 55 57 54 40 41 39 30 32 31 23 25 24 18 22 22
186014 17 17 12 15 15 11 13 13 10 12 12 9 11 11 9 11 11
18619 11 11 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18628 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18638 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18648 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18659 11 11 28 31 30 41 42 42 47 48 46 55 56 53 58 59 55
1866137 133 100 251 251 187 251 251 187 251 251 187 210 208 158 137 133 100
186747 48 46 40 41 39 32 34 33 75 75 61 184 179 149 239 239 170
1868251 251 187 177 172 135 13 13 13 12 12 12 12 12 12 43 44 41
1869197 193 154 251 251 187 210 208 158 10 10 9 0 0 0 84 83 72
1870251 251 187 84 83 72 0 0 0 0 0 0 0 0 0 0 0 0
18710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
18726 7 7 11 11 11 17 17 17 20 20 20 23 24 24 27 29 28
187332 34 33 38 39 37 43 45 43 47 48 46 51 52 50 55 56 53
187458 59 55 58 59 55 55 57 54 55 56 53 47 48 46 41 42 42
187535 37 36 31 33 31 47 48 46 14 14 13 0 0 0 0 0 0
18760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18780 0 0
18790 0 0 0 0 0 0 0 0 66 65 55 99 98 80 20 20 20
18800 0 0 0 0 0 0 0 0 0 0 0 43 45 43 214 212 158
1881251 251 187 251 251 187 145 141 105 3 3 3 0 0 0 0 0 0
188248 49 45 184 179 149 239 239 170 251 251 187 239 239 170 177 172 135
188384 83 72 72 73 67 55 56 53 39 40 39 26 28 27 39 40 39
188468 70 65 51 52 50 39 40 39 28 31 30 22 24 23 17 20 20
188514 17 17 12 14 14 10 13 13 9 11 11 9 11 11 9 11 11
18868 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18878 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18888 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18898 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
189027 29 28 40 41 39 46 47 45 51 52 50 55 57 54 63 64 60
1891131 127 93 197 193 154 210 208 158 197 193 154 168 163 120 96 95 69
189247 48 46 40 41 39 32 34 33 71 71 57 145 141 105 184 179 149
1893184 179 149 131 127 93 13 13 13 12 12 12 12 12 12 48 49 45
1894168 163 120 184 179 149 156 151 111 6 7 7 14 14 13 177 172 135
1895239 239 170 40 41 39 0 0 0 0 0 0 0 0 0 0 0 0
18960 0 0 0 0 0 3 3 3 6 7 7 11 11 11 16 16 16
189718 19 18 21 22 21 23 24 24 27 29 28 32 34 33 37 39 37
189841 42 42 43 45 43 47 48 46 51 52 50 51 52 50 51 52 50
189951 52 50 49 51 48 46 47 45 40 41 39 32 34 33 25 27 26
190020 20 20 14 14 13 2 2 2 0 0 0 0 0 0 0 0 0
19010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19030 0 0
19040 0 0 0 0 0 0 0 0 33 36 34 197 193 154 184 179 149
190541 42 42 0 0 0 0 0 0 0 0 0 3 3 3 184 179 149
1906251 251 187 251 251 187 184 179 149 48 49 45 0 0 0 0 0 0
190716 17 12 121 119 87 177 172 135 194 189 146 188 184 146 145 141 105
190882 81 62 63 64 60 46 47 45 31 33 31 21 22 21 35 37 36
190968 70 65 51 52 50 37 39 37 27 30 29 22 24 23 17 20 20
191013 16 16 12 14 14 10 13 13 9 11 11 8 10 10 8 10 10
19118 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19128 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19138 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19148 10 10 8 10 10 8 10 10 8 10 10 8 10 10 25 27 26
191538 39 37 43 45 43 51 52 50 55 56 53 60 60 56 63 64 60
191692 91 72 158 153 112 176 171 126 171 165 117 149 143 98 82 81 62
191744 46 43 38 39 37 30 32 31 71 71 57 131 127 93 160 154 106
1918149 143 98 82 81 62 13 13 13 12 12 12 12 12 12 46 47 43
1919121 119 87 134 131 96 96 95 69 7 7 6 38 39 37 131 127 93
1920145 141 105 12 13 12 0 0 0 1 1 1 3 3 3 6 7 7
192110 10 9 12 12 12 14 14 13 16 16 16 18 19 18 21 22 21
192222 24 23 26 28 27 30 31 28 33 36 34 37 39 37 40 41 39
192341 42 42 43 45 43 46 47 45 46 47 45 46 47 45 43 45 43
192441 42 42 37 39 37 31 33 31 26 28 27 21 22 21 16 16 16
19256 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19280 0 0
19290 0 0 0 0 0 0 0 0 0 0 0 177 172 135 251 251 187
1930197 193 154 27 29 28 0 0 0 0 0 0 0 0 0 110 109 94
1931239 239 170 239 239 170 184 179 149 87 86 72 2 2 1 0 0 0
19321 1 1 82 81 62 142 137 94 165 161 109 165 161 109 131 127 93
193375 75 61 55 56 53 37 39 37 25 27 26 19 20 19 32 34 33
193465 66 61 49 51 48 35 37 36 27 29 28 20 23 23 16 19 19
193513 16 16 13 13 13 10 12 12 9 11 11 8 10 10 8 10 10
19368 9 9 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19378 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19388 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19398 10 10 8 10 10 8 10 10 8 10 10 22 24 23 35 37 36
194041 42 42 47 48 46 55 56 53 58 59 55 63 64 60 65 66 61
194171 71 57 131 127 93 160 154 106 160 154 106 142 137 94 82 81 62
194246 47 43 40 41 39 33 36 34 66 65 55 125 122 87 149 143 98
1943142 137 94 82 81 62 17 17 17 18 19 17 14 14 13 46 47 43
1944118 116 76 125 122 87 96 95 69 16 17 12 71 71 57 103 101 77
194582 81 62 11 11 11 11 11 11 13 13 13 14 14 13 14 14 13
194615 15 15 16 16 16 17 17 17 19 20 19 21 22 21 23 24 24
194726 28 27 27 29 28 31 33 31 33 36 34 35 37 36 38 39 37
194839 40 39 39 40 39 38 39 37 37 39 37 35 37 36 31 33 31
194927 29 28 24 26 24 21 22 21 17 17 17 12 12 12 2 2 2
19500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19530 0 0
19540 0 0 0 0 0 0 0 0 0 0 0 68 70 65 251 251 187
1955251 251 187 156 151 111 2 2 1 0 0 0 0 0 0 43 44 41
1956177 172 135 184 179 149 158 153 112 103 101 77 19 20 18 0 0 0
19570 0 0 46 47 43 131 127 93 160 154 106 160 154 106 131 127 93
195871 71 57 43 45 43 30 32 31 21 22 21 16 16 16 26 28 27
195963 64 60 47 48 46 35 37 36 26 28 27 20 23 23 16 19 19
196013 16 16 13 13 13 10 12 12 9 11 11 8 10 10 8 10 10
19617 9 9 7 9 9 8 9 9 8 10 10 8 10 10 8 10 10
19628 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19638 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19648 10 10 8 10 10 8 10 10 20 20 20 33 36 34 40 41 39
196546 47 45 51 52 50 55 57 54 60 60 56 63 64 60 65 66 61
196666 65 55 118 116 76 151 147 98 165 161 109 151 147 98 121 119 87
196796 95 69 96 95 69 96 95 69 103 101 77 142 137 94 151 147 98
1968142 137 94 103 101 77 82 81 62 82 81 62 82 81 62 96 95 69
1969131 127 93 142 137 94 103 101 77 46 47 43 96 95 69 118 116 76
197071 71 57 14 14 13 14 14 13 15 15 15 15 15 15 16 16 16
197116 16 16 17 17 17 18 19 18 20 20 20 21 22 21 23 24 24
197225 27 26 27 29 28 30 31 28 30 32 31 31 33 31 31 33 31
197331 33 31 31 33 31 30 31 28 27 29 28 25 27 26 22 24 23
197420 20 20 16 16 16 13 13 13 6 7 7 0 0 0 0 0 0
19750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19780 0 0
197958 59 55 68 70 65 8 8 7 0 0 0 10 10 9 210 208 158
1980251 251 187 184 179 149 38 39 37 0 0 0 0 0 0 8 8 7
1981103 101 77 149 143 98 149 143 98 118 116 76 40 41 39 25 27 25
198253 55 47 82 81 62 144 139 99 165 161 109 165 161 109 142 137 94
198371 71 57 35 37 36 24 26 24 18 19 18 15 15 15 22 24 23
198463 64 60 46 47 45 33 36 34 26 28 27 20 23 22 17 18 17
198512 15 15 11 13 13 10 12 12 9 11 11 8 10 10 8 10 10
19867 9 9 7 9 9 7 9 9 7 9 9 8 9 9 8 10 10
19878 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19888 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19898 10 10 8 10 10 16 16 16 30 31 28 35 37 36 41 42 42
199047 48 46 55 56 53 58 59 55 63 64 60 65 66 61 65 66 61
199161 61 53 103 101 77 151 147 98 171 165 117 171 165 117 168 163 120
1992158 153 112 158 153 112 155 149 109 151 147 98 151 147 98 160 154 106
1993151 147 98 149 143 98 142 137 94 149 143 98 149 143 98 149 143 98
1994155 149 109 151 147 98 131 127 93 103 101 77 125 122 87 118 116 76
199571 71 57 16 16 16 16 16 16 16 16 16 17 17 17 17 17 17
199617 17 17 17 17 17 18 19 18 19 20 19 20 20 20 21 22 21
199723 24 24 24 26 24 25 27 26 26 28 27 26 28 27 26 28 27
199825 27 26 24 26 24 22 24 23 21 22 21 19 20 19 16 16 16
199914 14 13 8 8 7 1 1 1 0 0 0 0 0 0 0 0 0
20000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20030 0 0
200420 20 20 184 179 149 168 163 120 21 22 21 0 0 0 105 104 92
2005177 172 135 145 141 105 71 71 57 0 0 0 0 0 0 0 0 0
200666 65 55 131 127 93 151 147 98 142 137 94 118 116 76 121 119 87
2007145 141 105 158 153 112 176 171 126 178 174 128 176 171 126 149 145 103
200896 95 69 31 33 31 21 22 21 16 16 16 14 14 13 18 19 18
200960 60 56 46 47 45 33 36 34 25 27 26 21 22 21 15 18 18
201012 15 15 11 13 13 9 11 11 8 10 10 8 10 10 8 9 9
20117 9 9 7 9 9 7 9 9 7 9 9 7 9 9 8 9 9
20128 9 9 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
20138 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
20148 10 10 10 12 12 26 28 27 31 33 31 38 39 37 43 45 43
201551 52 50 55 56 53 60 60 56 63 64 60 65 66 61 68 70 65
201663 64 60 96 95 69 158 153 112 178 174 128 188 184 146 194 189 146
2017194 189 146 188 184 146 184 181 136 176 171 126 171 165 117 173 167 111
2018173 167 111 165 161 109 171 165 117 174 170 121 176 171 126 178 174 128
2019178 174 128 174 170 121 160 154 106 149 143 98 149 143 98 125 122 87
202071 71 57 16 16 16 16 16 16 17 17 17 17 17 17 17 17 17
202117 17 17 17 17 17 17 17 17 18 19 18 19 20 19 20 20 20
202221 22 21 21 22 21 21 22 21 22 24 23 21 22 21 21 22 21
202321 22 21 19 20 19 18 19 18 16 16 16 14 14 13 11 11 11
20243 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20280 0 0
20290 0 0 105 104 92 197 193 154 110 109 94 9 9 8 36 38 35
2030121 119 87 131 127 93 96 95 69 18 19 17 30 31 28 66 65 55
203196 95 69 142 137 94 160 154 106 160 154 106 160 154 106 168 163 120
2032184 181 136 194 191 148 197 193 154 197 193 154 194 189 146 168 163 120
2033125 122 87 46 47 43 18 19 18 15 15 15 13 13 13 14 14 13
203455 57 54 43 45 43 32 34 33 25 27 26 18 22 22 17 17 17
203512 14 14 10 12 12 9 11 11 8 10 10 8 9 9 7 9 9
20366 8 8 7 9 9 7 9 9 7 9 9 7 9 9 7 9 9
20377 9 9 8 9 9 8 9 9 8 10 10 8 10 10 8 10 10
20388 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
20398 10 10 32 34 33 41 42 42 35 37 36 39 40 39 37 39 37
204035 37 36 55 57 54 60 60 56 63 64 60 65 66 61 65 66 61
204161 63 57 115 113 82 168 163 120 194 191 148 204 201 155 210 208 158
2042210 208 158 210 208 158 197 193 154 194 189 146 186 182 128 176 171 126
2043174 170 121 176 171 126 186 182 128 190 186 136 194 191 148 197 193 154
2044197 193 154 188 184 146 181 176 137 174 170 121 165 161 109 142 137 94
204582 81 62 24 26 24 16 16 16 16 16 16 16 16 16 16 16 16
204617 17 17 17 17 17 17 17 17 17 17 17 18 19 18 19 20 19
204719 20 19 19 20 19 20 20 20 19 20 19 19 20 19 18 19 18
204817 17 17 15 15 15 13 13 13 12 12 12 6 7 7 0 0 0
20490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20530 0 0
20540 0 0 17 18 17 137 133 100 115 113 82 53 55 47 19 20 18
2055103 101 77 144 139 99 137 133 100 115 113 82 137 133 100 156 151 111
2056158 153 112 164 159 111 171 165 117 174 170 121 178 174 128 194 189 146
2057204 201 155 214 212 158 214 212 158 214 212 158 210 208 158 188 184 146
2058158 153 112 87 86 72 17 17 17 13 13 13 13 13 13 15 15 15
205955 56 53 43 45 43 32 34 33 24 26 24 17 20 20 16 16 16
206012 14 14 10 12 12 8 10 10 8 10 10 7 9 9 6 8 8
20616 8 8 6 8 8 6 8 8 7 9 9 7 9 9 7 9 9
20627 9 9 7 9 9 7 9 9 7 9 9 8 9 9 8 10 10
20638 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
20648 10 10 110 109 94 84 83 72 49 51 48 26 28 27 8 10 10
20658 9 9 51 52 50 58 59 55 63 64 60 63 64 60 63 64 60
206666 65 55 134 131 96 181 176 137 210 208 158 214 212 158 239 239 170
2067239 239 170 224 223 159 210 208 158 204 201 155 194 189 146 186 182 128
2068186 182 128 184 181 136 194 189 146 204 201 155 210 208 158 210 208 158
2069210 208 158 210 208 158 197 193 154 190 186 136 176 171 126 155 149 109
2070118 116 76 36 38 35 15 15 15 16 16 16 16 16 16 16 16 16
207116 16 16 16 16 16 16 16 16 16 16 16 16 16 16 17 17 17
207217 17 17 17 17 17 17 17 17 16 16 16 16 16 16 15 15 15
207313 13 13 12 12 12 8 8 7 2 2 2 0 0 0 0 0 0
20740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20780 0 0
20790 0 0 0 0 0 53 55 47 103 101 77 96 95 69 53 55 47
2080103 101 77 158 153 112 177 172 135 184 179 149 188 184 146 197 193 154
2081194 189 146 190 186 136 184 181 136 184 181 136 194 189 146 210 208 158
2082214 212 158 239 239 170 251 251 187 251 251 187 224 223 159 204 201 155
2083177 172 135 121 119 87 30 31 28 13 13 13 12 12 12 39 40 39
208460 60 56 43 45 43 32 34 33 23 25 24 18 19 18 13 16 16
208513 13 13 9 11 11 8 10 10 8 9 9 6 8 8 6 8 8
20866 8 8 6 8 8 6 8 8 6 8 8 6 8 8 7 9 9
20877 9 9 7 9 9 7 9 9 7 9 9 7 9 9 7 9 9
20887 9 9 8 9 9 8 9 9 8 10 10 8 10 10 8 10 10
208914 17 17 197 193 154 158 153 112 55 57 54 7 9 9 7 9 9
20908 10 10 51 52 50 58 59 55 60 60 56 63 64 60 63 64 60
209171 71 57 155 149 109 194 191 148 214 212 158 251 251 187 251 251 187
2092251 251 187 251 251 187 239 239 170 210 208 158 197 193 154 190 186 136
2093190 186 136 194 189 146 204 201 155 210 208 158 224 223 159 239 239 170
2094239 239 170 224 223 159 210 208 158 204 201 155 190 186 136 164 159 111
2095125 122 87 40 41 39 15 15 15 15 15 15 15 15 15 15 15 15
209616 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16
209716 16 16 16 16 16 15 15 15 14 14 13 13 13 13 12 12 12
20988 9 9 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0
20990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21030 0 0
21040 0 0 0 0 0 21 22 20 96 95 69 125 122 87 121 119 87
2105144 139 99 177 172 135 197 193 154 210 208 158 214 212 158 214 212 158
2106210 208 158 204 201 155 194 191 148 194 189 146 204 201 155 214 212 158
2107239 239 170 251 251 187 251 251 187 251 251 187 251 251 187 214 212 158
2108188 184 146 145 141 105 53 55 47 12 12 12 15 15 15 63 64 60
210963 64 60 41 42 42 31 33 31 23 24 24 17 18 17 12 15 15
211011 13 13 9 11 11 8 9 9 7 9 9 6 8 8 6 8 8
21116 7 7 6 7 7 6 8 8 6 8 8 6 8 8 6 8 8
21126 8 8 7 9 9 7 9 9 7 9 9 7 9 9 7 9 9
21137 9 9 7 9 9 7 9 9 7 9 9 7 9 9 8 8 7
211443 45 43 251 251 187 156 151 111 8 10 10 7 9 9 7 9 9
211521 22 21 51 52 50 55 56 53 55 57 54 58 59 55 58 59 55
211675 75 61 158 153 112 197 193 154 224 223 159 251 251 187 251 251 187
2117251 251 187 251 251 187 251 251 187 214 212 158 204 201 155 194 189 146
2118190 186 136 197 193 154 210 208 158 224 223 159 251 251 187 251 251 187
2119251 251 187 251 251 187 239 239 170 210 208 158 197 193 154 176 171 126
2120125 122 87 36 38 35 14 14 13 14 14 13 15 15 15 15 15 15
212115 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15
212215 15 15 14 14 13 13 13 13 12 12 12 10 10 9 3 4 4
21230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21280 0 0
21290 0 0 0 0 0 7 7 5 71 71 57 131 127 93 158 153 112
2130177 172 135 197 193 154 214 212 158 239 239 170 251 251 187 251 251 187
2131238 237 168 210 208 158 204 201 155 197 193 154 204 201 155 214 212 158
2132251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 214 212 158
2133197 193 154 156 151 111 66 65 55 12 12 12 37 39 37 58 59 55
213458 59 55 41 42 42 31 33 31 22 24 23 17 17 17 12 14 14
213510 12 12 8 10 10 6 8 8 6 8 8 6 7 7 6 7 7
21366 7 7 5 7 7 6 7 7 6 7 7 6 8 8 6 8 8
21376 8 8 6 8 8 6 8 8 7 9 9 7 9 9 7 9 9
21387 9 9 6 8 8 6 8 8 6 8 8 6 8 8 6 8 8
213961 63 57 197 193 154 16 19 19 6 8 8 6 8 8 8 9 9
214041 42 42 47 48 46 51 52 50 51 52 50 55 56 53 55 56 53
214171 71 57 158 153 112 197 193 154 224 223 159 251 251 187 251 251 187
2142251 251 187 251 251 187 239 239 170 214 212 158 204 201 155 194 189 146
2143190 186 136 197 193 154 210 208 158 239 239 170 251 251 187 251 251 187
2144251 251 187 251 251 187 251 251 187 224 223 159 204 201 155 177 172 135
2145121 119 87 30 31 28 13 13 13 14 14 13 14 14 13 14 14 13
214614 14 13 14 14 13 15 15 15 15 15 15 14 14 13 13 13 13
214712 12 12 12 12 12 10 10 9 4 5 5 0 0 0 0 0 0
21480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21530 0 0
21540 0 0 0 0 0 0 0 0 48 49 45 131 127 93 174 170 121
2155194 189 146 210 208 158 239 239 170 251 251 187 251 251 187 251 251 187
2156251 251 187 214 212 158 204 201 155 197 193 154 204 201 155 210 208 158
2157239 239 170 251 251 187 251 251 187 251 251 187 239 239 170 214 212 158
2158194 191 148 156 151 111 71 71 57 19 20 19 51 52 50 51 52 50
215951 52 50 41 42 42 30 32 31 21 22 21 17 17 17 13 13 13
21609 11 11 8 9 9 6 8 8 6 7 7 6 7 7 5 7 7
21615 6 5 5 6 5 5 7 7 5 7 7 6 7 7 6 7 7
21626 8 8 6 8 8 6 8 8 6 7 7 6 7 7 6 7 7
21636 7 7 6 8 8 6 8 8 6 8 8 6 8 8 6 8 8
216455 56 53 43 45 43 6 8 8 6 8 8 6 8 8 47 48 46
216560 60 56 47 48 46 46 47 45 47 48 46 38 39 37 10 12 12
216666 65 55 145 141 105 197 193 154 214 212 158 251 251 187 251 251 187
2167251 251 187 251 251 187 224 223 159 210 208 158 194 191 148 184 181 136
2168184 181 136 194 189 146 204 201 155 224 223 159 251 251 187 251 251 187
2169251 251 187 251 251 187 251 251 187 239 239 170 210 208 158 181 176 137
2170115 113 82 21 22 20 13 13 13 13 13 13 13 13 13 13 13 13
217114 14 13 13 13 13 13 13 13 13 13 13 12 12 12 11 11 11
217210 10 9 6 7 7 1 1 1 0 0 0 0 0 0 0 0 0
21730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21780 0 0
21790 0 0 0 0 0 2 2 1 66 65 55 144 139 99 178 174 128
2180204 201 155 214 212 158 251 251 187 251 251 187 251 251 187 251 251 187
2181251 251 187 214 212 158 204 201 155 194 191 148 197 193 154 204 201 155
2182214 212 158 239 239 170 239 239 170 239 239 170 214 212 158 210 208 158
2183184 181 136 149 145 103 66 65 55 41 42 42 47 48 46 46 47 45
218443 45 43 39 40 39 28 31 30 21 22 21 16 16 16 10 12 12
21858 10 10 6 8 8 6 7 7 6 7 7 5 6 5 5 6 5
21865 6 5 5 6 5 5 6 5 5 6 5 5 7 7 5 7 7
21876 7 7 6 7 7 6 7 7 5 7 7 5 7 7 5 7 7
21885 7 7 6 7 7 6 7 7 6 7 7 6 7 7 6 8 8
21896 8 8 6 8 8 6 7 7 6 7 7 46 47 45 156 151 111
2190105 104 92 58 59 55 43 45 43 32 34 33 6 8 8 6 8 8
219149 51 48 125 122 87 181 176 137 204 201 155 214 212 158 239 239 170
2192239 239 170 214 212 158 210 208 158 197 193 154 181 176 137 176 171 126
2193176 171 126 184 181 136 197 193 154 210 208 158 239 239 170 251 251 187
2194251 251 187 251 251 187 251 251 187 251 251 187 210 208 158 177 172 135
219599 98 80 13 13 13 12 12 12 12 12 12 13 13 13 12 12 12
219612 12 12 12 12 12 11 11 11 11 11 11 8 9 9 4 5 5
21971 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22030 0 0
22040 0 0 0 0 0 1 1 0 61 61 53 142 137 94 181 176 137
2205204 201 155 224 223 159 251 251 187 251 251 187 251 251 187 251 251 187
2206251 251 187 214 212 158 197 193 154 190 186 136 184 181 136 188 184 146
2207197 193 154 204 201 155 210 208 158 210 208 158 204 201 155 194 189 146
2208176 171 126 134 131 96 66 65 55 43 45 43 41 42 42 39 40 39
220935 37 36 33 36 34 27 29 28 20 20 20 15 15 15 9 11 11
22108 9 9 6 7 7 5 6 5 5 6 5 4 5 5 4 5 5
22114 5 5 4 5 5 4 5 5 4 5 5 5 6 5 4 5 5
22124 5 5 5 6 5 4 5 5 5 6 5 5 6 5 5 6 5
22135 7 7 5 7 7 5 7 7 5 7 7 5 7 7 5 7 7
22146 7 7 6 7 7 6 7 7 28 31 30 184 179 149 184 179 149
2215145 141 105 84 83 72 27 29 28 5 7 7 5 6 5 16 16 16
221643 44 41 96 95 69 158 153 112 188 184 146 204 201 155 210 208 158
2217204 201 155 197 193 154 184 179 149 177 172 135 168 163 120 164 159 111
2218164 159 111 174 170 121 184 181 136 197 193 154 214 212 158 251 251 187
2219251 251 187 251 251 187 251 251 187 251 251 187 210 208 158 177 172 135
222071 71 57 11 11 11 12 12 12 11 11 11 11 11 11 11 11 11
222110 10 9 10 10 9 8 8 7 3 4 4 0 0 0 0 0 0
22220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22280 0 0
22290 0 0 0 0 0 0 0 0 31 33 31 121 119 87 176 171 126
2230197 193 154 214 212 158 251 251 187 251 251 187 251 251 187 251 251 187
2231239 239 170 210 208 158 194 189 146 178 174 128 174 170 121 176 171 126
2232177 172 135 181 176 137 184 179 149 184 179 149 181 176 137 178 174 128
2233158 153 112 121 119 87 53 55 47 37 39 37 33 36 34 30 32 31
223427 29 28 25 27 26 24 26 24 19 20 19 13 13 13 8 10 10
22356 8 8 6 7 7 5 6 5 4 5 5 4 5 5 4 5 5
22364 5 5 4 5 5 4 5 5 3 4 4 3 4 4 4 5 5
22374 5 5 4 5 5 4 5 5 4 5 5 4 5 5 4 5 5
22385 6 5 5 6 5 5 6 5 5 6 5 5 6 5 5 6 5
22395 6 5 5 6 5 12 14 14 145 141 105 184 179 149 177 172 135
224090 89 73 21 22 21 5 6 5 5 6 5 4 5 5 37 39 37
224138 39 37 61 61 53 134 131 96 168 163 120 184 181 136 188 184 146
2242184 179 149 177 172 135 168 163 120 164 159 111 155 149 109 151 147 98
2243151 147 98 164 159 111 176 171 126 184 179 149 210 208 158 239 239 170
2244251 251 187 251 251 187 251 251 187 239 239 170 210 208 158 158 153 112
224546 47 43 10 10 9 10 10 9 10 10 9 8 9 9 8 9 9
22466 7 7 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0
22470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22530 0 0
22540 0 0 0 0 0 0 0 0 13 12 7 82 81 62 158 153 112
2255188 184 146 210 208 158 239 239 170 251 251 187 251 251 187 251 251 187
2256224 223 159 204 201 155 184 181 136 171 165 117 164 159 111 160 154 106
2257158 153 112 164 159 111 168 163 120 168 163 120 168 163 120 164 159 111
2258142 137 94 96 95 69 43 44 41 27 29 28 26 28 27 23 24 24
225921 22 21 18 19 18 17 17 17 18 19 18 13 13 13 8 8 7
22606 7 7 5 6 5 4 5 5 3 4 4 3 4 4 3 4 4
22613 4 4 3 4 4 3 3 3 3 3 3 3 4 4 3 4 4
22623 4 4 3 4 4 4 5 5 4 5 5 4 5 5 4 5 5
22634 5 5 4 5 5 4 5 5 4 5 5 4 5 5 4 5 5
22644 5 5 4 5 5 4 5 5 4 5 5 4 5 5 4 5 5
22654 5 5 4 5 5 4 5 5 4 5 5 31 33 31 65 66 61
226637 39 37 38 39 37 96 95 69 144 139 99 168 163 120 174 170 121
2267168 163 120 164 159 111 155 149 109 149 145 103 149 143 98 142 137 94
2268149 143 98 151 147 98 164 159 111 177 172 135 197 193 154 210 208 158
2269251 251 187 251 251 187 251 251 187 239 239 170 197 193 154 137 133 100
227024 26 24 8 9 9 8 9 9 8 8 7 6 7 7 2 2 2
22710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22780 0 0
22790 0 0 0 0 0 0 0 0 0 0 0 46 47 43 125 122 87
2280176 171 126 197 193 154 210 208 158 239 239 170 251 251 187 239 239 170
2281214 212 158 197 193 154 181 176 137 164 159 111 151 147 98 149 143 98
2282149 143 98 149 143 98 149 145 103 155 149 109 160 154 106 149 143 98
2283118 116 76 82 81 62 30 31 28 21 22 21 19 20 19 17 17 17
228414 14 13 12 12 12 10 10 9 12 12 12 10 12 12 6 8 8
22854 5 5 3 4 4 3 4 4 3 4 4 3 3 3 3 3 3
22863 3 3 3 3 3 3 3 3 3 3 3 2 3 3 2 3 3
22873 4 4 3 4 4 3 4 4 3 4 4 3 4 4 4 5 5
22884 5 5 3 4 4 3 4 4 3 4 4 3 4 4 3 4 4
22894 5 5 4 5 5 4 5 5 4 5 5 4 5 5 4 5 5
22904 5 5 3 4 4 3 4 4 23 24 24 110 109 94 72 73 67
229139 40 39 22 24 23 46 47 43 103 101 77 142 137 94 155 149 109
2292160 154 106 155 149 109 149 143 98 142 137 94 142 137 94 142 137 94
2293142 137 94 149 143 98 155 149 109 176 171 126 184 179 149 210 208 158
2294239 239 170 251 251 187 251 251 187 214 212 158 184 179 149 105 104 92
229510 10 9 6 7 7 3 4 4 1 1 1 0 0 0 0 0 0
22960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23030 0 0
23040 0 0 0 0 0 0 0 0 0 0 0 12 12 9 82 81 62
2305149 145 103 181 176 137 197 193 154 210 208 158 214 212 158 214 212 158
2306210 208 158 197 193 154 177 172 135 158 153 112 149 143 98 142 137 94
2307142 137 94 142 137 94 149 143 98 151 147 98 151 147 98 131 127 93
2308103 101 77 71 71 57 22 24 23 15 15 15 13 13 13 11 11 11
23098 9 9 6 7 7 6 7 7 4 5 5 8 9 9 6 7 7
23104 5 5 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2
23112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3
23122 3 3 2 3 3 2 3 3 3 4 4 3 4 4 3 4 4
23133 4 4 3 4 4 3 3 3 3 4 4 3 4 4 3 4 4
23143 4 4 3 4 4 3 4 4 3 4 4 3 4 4 3 4 4
23153 4 4 3 4 4 21 22 21 145 141 105 145 141 105 72 73 67
231617 18 17 3 4 4 21 22 20 66 65 55 118 116 76 142 137 94
2317149 143 98 151 147 98 149 143 98 142 137 94 142 137 94 142 137 94
2318142 137 94 149 143 98 155 149 109 168 163 120 184 179 149 210 208 158
2319239 239 170 251 251 187 251 251 187 210 208 158 177 172 135 71 71 57
23203 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23280 0 0
23290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 38 35
2330115 113 82 158 153 112 181 176 137 197 193 154 204 201 155 210 208 158
2331204 201 155 188 184 146 177 172 135 164 159 111 149 145 103 142 137 94
2332142 137 94 142 137 94 149 143 98 151 147 98 149 143 98 125 122 87
233396 95 69 61 61 53 16 17 12 8 9 9 8 8 7 6 7 7
23344 5 5 3 4 4 3 3 3 3 3 3 3 3 3 5 6 5
23353 4 4 2 3 3 2 2 2 2 2 2 2 2 2 2 2 2
23362 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2
23372 2 2 2 2 2 2 3 3 2 3 3 2 3 3 2 3 3
23383 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
23393 3 3 2 3 3 2 3 3 3 4 4 3 4 4 3 4 4
23403 4 4 3 4 4 3 4 4 8 9 9 8 8 7 3 3 3
23413 3 3 3 3 3 9 9 8 36 38 35 82 81 62 118 116 76
2342142 137 94 151 147 98 151 147 98 151 147 98 149 143 98 149 143 98
2343149 143 98 151 147 98 160 154 106 176 171 126 188 184 146 210 208 158
2344239 239 170 251 251 187 239 239 170 210 208 158 156 151 111 31 33 31
23450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23530 0 0
23540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 7 5
235566 65 55 125 122 87 158 153 112 181 176 137 194 189 146 197 193 154
2356197 193 154 184 179 149 177 172 135 168 163 120 156 151 111 151 147 98
2357151 147 98 151 147 98 151 147 98 161 156 96 149 143 98 118 116 76
235882 81 62 53 55 47 12 12 9 4 5 5 3 4 4 3 3 3
23593 3 3 3 3 3 2 2 2 2 2 2 1 1 1 1 2 2
23603 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
23611 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 2 2
23621 2 2 1 2 2 1 2 2 2 2 2 2 2 2 2 3 3
23632 3 3 2 3 3 2 3 3 2 3 3 2 2 2 2 2 2
23642 3 3 2 3 3 2 3 3 2 3 3 2 3 3 2 3 3
23652 3 3 2 3 3 2 3 3 2 3 3 2 3 3 3 3 3
23663 3 3 3 3 3 72 73 67 61 61 53 53 55 47 96 95 69
2367131 127 93 151 147 98 161 156 96 161 156 96 151 147 98 151 147 98
2368161 156 96 160 154 106 164 159 111 177 172 135 197 193 154 210 208 158
2369239 239 170 251 251 187 224 223 159 197 193 154 131 127 93 9 9 8
23700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23780 0 0
23790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
238024 26 24 82 81 62 131 127 93 164 159 111 178 174 128 188 184 146
2381188 184 146 188 184 146 181 176 137 176 171 126 168 163 120 164 159 111
2382160 154 106 160 154 106 160 154 106 160 154 106 151 147 98 125 122 87
238382 81 62 61 61 53 12 12 9 3 3 3 3 3 3 2 2 2
23842 2 2 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
23850 0 0 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1
23861 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
23871 1 1 1 1 1 1 2 2 1 2 2 1 2 2 1 2 2
23881 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
23892 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
23902 3 3 2 3 3 2 3 3 2 3 3 2 3 3 2 3 3
23912 3 3 30 32 31 72 73 67 31 33 31 36 38 35 82 81 62
2392118 116 76 149 143 98 161 156 96 161 156 96 161 156 96 160 154 106
2393165 161 109 165 161 109 176 171 126 188 184 146 204 201 155 214 212 158
2394239 239 170 239 239 170 214 212 158 184 179 149 82 81 62 0 0 0
23950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24030 0 0
24040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24052 2 2 43 44 41 96 95 69 131 127 93 160 154 106 176 171 126
2406184 181 136 184 181 136 184 181 136 181 176 137 178 174 128 174 170 121
2407171 165 117 173 167 111 173 167 111 173 167 111 160 154 106 131 127 93
240896 95 69 66 65 55 16 17 12 2 2 2 1 1 1 1 1 1
24091 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
24100 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
24111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24121 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24131 2 2 1 2 2 1 2 2 1 2 2 1 2 2 2 2 2
24142 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
24152 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
24162 2 2 2 2 2 2 2 2 10 9 6 30 31 28 71 71 57
2417118 116 76 149 143 98 165 161 109 165 161 109 165 161 109 173 167 111
2418173 167 111 176 171 126 184 181 136 197 193 154 210 208 158 224 223 159
2419251 251 187 239 239 170 210 208 158 168 163 120 40 41 39 0 0 0
24200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24280 0 0
24290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24300 0 0 13 12 7 61 61 53 96 95 69 131 127 93 160 154 106
2431176 171 126 184 181 136 184 181 136 188 184 146 184 181 136 184 181 136
2432184 181 136 186 182 128 186 182 128 178 174 128 174 170 121 149 145 103
2433118 116 76 82 81 62 21 22 20 1 1 1 1 1 1 0 0 0
24340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24350 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
24361 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24371 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24381 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2
24391 2 2 1 2 2 1 2 2 1 2 2 1 2 2 2 2 2
24402 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
24412 2 2 2 2 2 2 2 2 3 3 3 30 31 28 66 65 55
2442118 116 76 149 143 98 165 161 109 173 167 111 173 167 111 174 170 121
2443186 182 128 190 186 136 197 193 154 210 208 158 224 223 159 251 251 187
2444251 251 187 239 239 170 197 193 154 137 133 100 12 12 9 0 0 0
24450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24530 0 0
24540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24550 0 0 0 0 0 30 31 28 71 71 57 103 101 77 134 131 96
2456164 159 111 176 171 126 184 181 136 188 184 146 194 189 146 197 193 154
2457197 193 154 197 193 154 194 191 148 194 189 146 190 186 136 176 171 126
2458145 141 105 103 101 77 40 41 39 0 0 0 0 0 0 0 0 0
24590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24611 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24621 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24631 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24641 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 2 2
24651 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
24661 2 2 1 2 2 1 2 2 1 2 2 30 31 28 71 71 57
2467118 116 76 160 154 106 173 167 111 178 174 128 186 182 128 190 186 136
2468194 191 148 204 201 155 210 208 158 224 223 159 251 251 187 251 251 187
2469251 251 187 214 212 158 184 179 149 84 83 72 0 0 0 0 0 0
24700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24780 0 0
24790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24800 0 0 0 0 0 5 5 3 43 44 41 82 81 62 103 101 77
2481142 137 94 165 161 109 178 174 128 190 186 136 197 193 154 204 201 155
2482210 208 158 210 208 158 210 208 158 210 208 158 210 208 158 197 193 154
2483177 172 135 145 141 105 79 78 62 5 4 3 0 0 0 0 0 0
24840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24860 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
24871 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24881 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24891 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24901 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24911 1 1 1 1 1 1 2 2 1 2 2 30 31 28 82 81 62
2492142 137 94 165 161 109 178 174 128 190 186 136 194 191 148 204 201 155
2493210 208 158 214 212 158 239 239 170 251 251 187 251 251 187 251 251 187
2494251 251 187 210 208 158 168 163 120 36 38 35 0 0 0 0 0 0
24950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25030 0 0
25040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25050 0 0 0 0 0 0 0 0 16 17 12 53 55 47 82 81 62
2506118 116 76 151 147 98 171 165 117 184 181 136 194 191 148 210 208 158
2507214 212 158 224 223 159 239 239 170 239 239 170 224 223 159 214 212 158
2508197 193 154 176 171 126 115 113 82 24 26 24 0 0 0 0 0 0
25090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25110 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
25121 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25131 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25141 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25151 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25161 1 1 1 1 1 1 1 1 1 1 1 40 41 39 103 101 77
2517151 147 98 176 171 126 190 186 136 197 193 154 210 208 158 214 212 158
2518239 239 170 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187
2519239 239 170 197 193 154 110 109 94 3 4 3 0 0 0 0 0 0
25200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25280 0 0
25290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25300 0 0 0 0 0 0 0 0 0 0 0 30 31 28 66 65 55
253196 95 69 125 122 87 160 154 106 178 174 128 194 189 146 204 201 155
2532214 212 158 239 239 170 251 251 187 251 251 187 251 251 187 239 239 170
2533210 208 158 188 184 146 149 145 103 61 61 53 0 0 0 0 0 0
25340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25370 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25381 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25391 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25401 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25411 1 1 1 1 1 1 1 1 1 1 1 61 61 53 131 127 93
2542164 159 111 184 181 136 197 193 154 210 208 158 224 223 159 251 251 187
2543251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187
2544210 208 158 168 163 120 43 44 41 0 0 0 0 0 0 0 0 0
25450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25530 0 0
25540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25550 0 0 0 0 0 0 0 0 0 0 0 4 3 2 36 38 35
255671 71 57 96 95 69 142 137 94 165 161 109 184 181 136 197 193 154
2557210 208 158 239 239 170 251 251 187 251 251 187 251 251 187 251 251 187
2558214 212 158 197 193 154 168 163 120 103 101 77 7 7 5 0 0 0
25590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
25631 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25641 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25651 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25661 1 1 0 0 0 0 0 0 0 0 0 82 81 62 142 137 94
2567174 170 121 194 189 146 210 208 158 224 223 159 251 251 187 251 251 187
2568251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 224 223 159
2569184 179 149 99 98 80 3 3 3 0 0 0 0 0 0 0 0 0
25700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25780 0 0
25790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 7 5
258143 44 41 82 81 62 118 116 76 142 137 94 171 165 117 190 186 136
2582204 201 155 224 223 159 251 251 187 251 251 187 251 251 187 251 251 187
2583214 212 158 197 193 154 174 170 121 125 122 87 30 31 28 0 0 0
25840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
25891 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25910 0 0 0 0 0 0 0 0 3 4 3 82 81 62 149 143 98
2592176 171 126 194 191 148 210 208 158 239 239 170 251 251 187 251 251 187
2593251 251 187 251 251 187 251 251 187 251 251 187 239 239 170 204 201 155
2594145 141 105 30 31 28 0 0 0 0 0 0 0 0 0 0 0 0
25950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26030 0 0
26040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
260610 9 6 46 47 43 82 81 62 118 116 76 149 143 98 174 170 121
2607194 189 146 210 208 158 224 223 159 251 251 187 251 251 187 224 223 159
2608210 208 158 194 191 148 174 170 121 134 131 96 53 55 47 0 0 0
26090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26160 0 0 0 0 0 0 0 0 7 7 5 96 95 69 149 143 98
2617176 171 126 194 191 148 210 208 158 239 239 170 251 251 187 251 251 187
2618251 251 187 251 251 187 251 251 187 239 239 170 210 208 158 177 172 135
261975 75 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26280 0 0
26290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26310 0 0 10 9 6 46 47 43 82 81 62 118 116 76 149 143 98
2632176 171 126 194 191 148 210 208 158 214 212 158 214 212 158 210 208 158
2633197 193 154 184 181 136 164 159 111 131 127 93 53 55 47 0 0 0
26340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26410 0 0 0 0 0 0 0 0 7 7 5 96 95 69 149 143 98
2642174 170 121 194 189 146 204 201 155 214 212 158 239 239 170 251 251 187
2643251 251 187 251 251 187 239 239 170 210 208 158 184 179 149 110 109 94
264412 12 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26530 0 0
26540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26560 0 0 0 0 0 10 9 6 43 44 41 82 81 62 115 113 82
2657144 139 99 168 163 120 188 184 146 197 193 154 197 193 154 194 189 146
2658184 181 136 174 170 121 151 147 98 118 116 76 36 38 35 0 0 0
26590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26660 0 0 0 0 0 0 0 0 4 3 2 82 81 62 142 137 94
2667171 165 117 186 182 128 194 191 148 210 208 158 214 212 158 224 223 159
2668239 239 170 224 223 159 210 208 158 184 179 149 137 133 100 36 38 35
26690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26780 0 0
26790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26810 0 0 0 0 0 0 0 0 7 7 5 36 38 35 71 71 57
2682103 101 77 131 127 93 155 149 109 168 163 120 168 163 120 168 163 120
2683164 159 111 149 143 98 125 122 87 82 81 62 13 12 7 0 0 0
26840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26910 0 0 0 0 0 0 0 0 0 0 0 61 61 53 125 122 87
2692160 154 106 174 170 121 184 181 136 194 189 146 204 201 155 210 208 158
2693210 208 158 204 201 155 184 179 149 145 141 105 61 61 53 0 0 0
26940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27030 0 0
27040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27060 0 0 0 0 0 0 0 0 0 0 0 3 3 2 30 31 28
270761 61 53 82 81 62 103 101 77 121 119 87 125 122 87 125 122 87
2708118 116 76 103 101 77 79 78 62 24 26 24 0 0 0 0 0 0
27090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27160 0 0 0 0 0 0 0 0 0 0 0 25 27 25 96 95 69
2717142 137 94 160 154 106 171 165 117 178 174 128 184 181 136 184 181 136
2718181 176 137 177 172 135 145 141 105 75 75 61 5 5 3 0 0 0
27190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27280 0 0
27290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
273216 17 12 40 41 39 61 61 53 71 71 57 71 71 57 71 71 57
273366 65 55 43 44 41 12 12 9 0 0 0 0 0 0 0 0 0
27340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27410 0 0 0 0 0 0 0 0 0 0 0 1 1 1 46 47 43
274296 95 69 125 122 87 142 137 94 149 145 103 155 149 109 155 149 109
2743145 141 105 121 119 87 66 65 55 7 7 5 0 0 0 0 0 0
27440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27530 0 0
27540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27570 0 0 1 1 1 16 17 12 24 26 24 25 27 25 19 20 18
27587 7 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 1
276725 27 25 61 61 53 82 81 62 96 95 69 96 95 69 82 81 62
276861 61 53 25 27 25 2 2 1 0 0 0 0 0 0 0 0 0
27690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27780 0 0
27790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27920 0 0 0 0 0 5 6 5 13 12 7 10 9 6 3 4 3
27930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28030 0 0
28040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28280 0 0
diff --git a/drivers/video/logo/logo_linux_vga16.ppm b/drivers/video/logo/logo_linux_vga16.ppm
index 12ac3a5454c0..1850c15e6feb 100644
--- a/drivers/video/logo/logo_linux_vga16.ppm
+++ b/drivers/video/logo/logo_linux_vga16.ppm
@@ -1,2739 +1,1604 @@
1P3 1P3
2142 114 2# Standard 16-color Linux logo
380 80
3255 4255
40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0
50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0
60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0 0 0 0
70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0
80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0
90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0
100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0 0 0 0 0 0 0 0 0
110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 0 0 0 0 0 0 0 0 0 0 0 0
120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 0 0 0 0 0
130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 0 0 0 0 0 0 0 0 0 0 0 0
140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 0 0 0 0 0 0 0 0 0 0 0 0
150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0
160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0
170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 0 0 0 0 0 0 0 0 0 0 0 0
180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 0 0 0 0 0 0 0 0 0 0 0 0
190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 0 0 0 0 0 0 0 0 0 0 0 0
200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 0 0 0 0 0 0 0 0 0 0 0 0
210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22 0 0 0 0 0 0 0 0 0 0 0 0
220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 0 0 0 0 0 0 0 0 0 0 0 0
230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 0 0 0 0 0 0 0 0 0 0 0 0
240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 0 0 0 0 0 0 0
250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26 0 0 0 0 0 0 0 0 0 0 0 0
260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 0 0 0 0 0 0 0 0 0 0 0 0
270 0 0 0 0 0 0 0 0 0 0 0 28 0 0 0 0 0 0 0 0 0 0 0 0
280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 29 0 0 0 0 0 0 0 0 0 0 0 0
290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 0 0 0 0 0 0 0 0 0 0 0 0
300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31 0 0 0 0 0 0 0 0 0 0 0 0
310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0
320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 33 0 0 0 0 0 0 0 0 0 0 0 0
330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 34 0 0 0 0 0 0 0 0 0 0 0 0
340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 0 0 0 0 0 0 0 0 0 0 0 0
350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 0 0 0 0 0 0 0 0 0 0 0 0
360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 37 0 0 0 0 0 0 0 0 0 0 0 0
370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 38 0 0 0 0 0 0 0 0 0 0 0 0
380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39 0 0 0 0 0 0 0 0 0 0 0 0
390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 0 0 0 0 0
400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 0 0 0 0 0 0 0 0 0 0 0 0
410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 42 0 0 0 0 0 0 0 0 0 0 0 0
420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43 0 0 0 0 0 0 0 0 0 0 0 0
430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 0 0 0 0 0 0 0 0 0 0 0 0
440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 0 0 0 0 0 0 0 0 0 0 0 0
450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 46 0 0 0 0 0 0 0 0 0 0 0 0
460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 47 0 0 0 0 0 0 0 0 0 0 0 0
470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 0 0 0 0 0 0 0 0 0 0 0 0
480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 49 0 0 0 0 0 0 0 0 0 0 0 0
490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 0 0 0 0 0 0 0 0 0 0 0 0
500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 51 0 0 0 0 0 0 0 0 0 0 0 0
510 0 0 0 0 0 0 0 0 0 0 0 52 0 0 0 0 0 0 0 0 0 0 0 0
520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 53 0 0 0 0 0 0 0 0 0 0 0 0
530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 54 85 85 85 85 85 85 85 85 85 85 85 85
540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 55 85 85 85 85 85 85 85 85 85 0 0 0
550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 0 0 0 0 0 0 0 0 0 0 0 0
560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 0 0 0 0 0 0 0 0 0 0 0 0
570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 58 0 0 0 0 0 0 0 0 0 0 0 0
580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 0 0 0 0 0 0 0 0 0 0 0 0
590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 0 0 0 0 0 0 0 0 0 0 0 0
600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 61 0 0 0 0 0 0 0 0 0 0 0 0
610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 0 0 0 0 0 0 0 0 0 0 0 0
620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 63 0 0 0 0 0 0 0 0 0 0 0 0
630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0
640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 0 0 0 0 0 0 0 0 0 0 0 0
650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 66 0 0 0 0 0 0 0 0 0 0 0 0
660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 0 0 0 0 0 0 0 0 0 0 0 0
670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 68 0 0 0 0 0 0 0 0 0 0 0 0
680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 0 0 0 0 0 0 0 0 0 0 0 0
690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 0 0 0 0 0 0 0 0 0 0 0 0
700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 71 0 0 0 0 0 0 0 0 0 0 0 0
710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 0 0 0 0 0 0 0 0 0 0 0 0
720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 73 0 0 0 0 0 0 85 85 85 85 85 85
730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 85 85 85 0 0 0 0 0 0 0 0 0
740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 0 0 0 0 0 0 0 0 0 85 85 85
750 0 0 0 0 0 0 0 0 0 0 0 76 85 85 85 85 85 85 0 0 0 0 0 0
760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 0 0 0 0 0 0 0 0 0 0 0 0
770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 78 0 0 0 0 0 0 0 0 0 0 0 0
780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 0 0 0 0 0 0 0 0 0 0 0 0
790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0
800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81 0 0 0 0 0 0 0 0 0 0 0 0
810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 0 0 0 0 0 0 0 0 0 0 0 0
820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 0 0 0 0 0 0 0 0 0 0 0 0
830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 84 0 0 0 0 0 0 0 0 0 0 0 0
840 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 0 0 0 0 0 0 0 0 0 0 0 0
8585 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 86 0 0 0 0 0 0 0 0 0 0 0 0
860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 0 0 0 0 0 0 0 0 0 0 0 0
870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 0 0 0 0 0 0 0 0 0 0 0 0
880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 89 0 0 0 0 0 0 0 0 0 0 0 0
890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 0 0 0 0 0 0 0 0 0 0 0 0
900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 0 0 0 0 0 0 0 0 0 0 0 0
910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 92 0 0 0 0 0 0 0 0 0 0 0 0
920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 0 0 0 85 85 85 0 0 0 0 0 0
930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 94 0 0 0 0 0 0 0 0 0 0 0 0
940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 0 0 0 0 0 0 0 0 0 0 0 0
950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 0 0 0 0 0 0 85 85 85 85 85 85
960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 97 0 0 0 0 0 0 0 0 0 0 0 0
970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 0 0 0 0 0 0 0 0 0 0 0 0
980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 0 0 0 0 0 0 0 0 0 0 0 0
990 0 0 0 0 0 0 0 0 0 0 0 100 0 0 0 0 0 0 0 0 0 0 0 0
1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 0 0 0 0 0 0 0 0 0 0 0 0
1010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 0 0 0 0 0 0 0 0 0 0 0 0
1020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 103 0 0 0 0 0 0 0 0 0 0 0 0
1030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 0 0 0 0 0 0 0 0 0 0 0 0
1040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 105 0 0 0 0 0 0 0 0 0 0 0 0
1050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 0 0 0 0 0 0 0 0 0 0 0 0
1060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 0 0 0 0 0 0 0 0 0 0 0 0
1070 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 108 0 0 0 0 0 0 0 0 0 0 0 0
10885 85 85 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 109 0 0 0 0 0 0 0 0 0 0 0 0
1090 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 110 0 0 0 0 0 0 0 0 0 0 0 0
1100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 111 0 0 0 0 0 0 0 0 0 0 0 0
1110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 0 0 0 0 0 0 0 0 0 0 0 0
1120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 113 85 85 85 0 0 0 0 0 0 0 0 0
1130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 0 0 0 0 0 0 0 0 0 0 0 0
1140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 0 0 0 0 0 0 0 0 0 0 0 0
1150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 116 0 0 0 0 0 0 0 0 0 85 85 85
1160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 85 85 85 0 0 0 0 0 0 0 0 0
1170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 0 0 0 0 0 0 0 0 0 0 0 0
1180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 119 0 0 0 0 0 0 0 0 0 0 0 0
1190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 0 0 0 0 0 0 0 0 0 0 0 0
1200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 121 0 0 0 0 0 0 0 0 0 0 0 0
1210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 0 0 0 0 0 0 0 0 0 0 0 0
1220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 0 0 0 0 0 0 0 0 0 0 0 0
1230 0 0 0 0 0 0 0 0 0 0 0 124 0 0 0 0 0 0 0 0 0 0 0 0
1240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 0 0 0 0 0 0 0 0 0 0 0 0
1250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 0 0 0 0 0 0 0 0 0 0 0 0
1260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0 0 0 0 0 0 0 0 0 0 0 0
1270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 0 0 0 0 0 0 0 0 0 0 0 0
1280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 0 0 0 0 0 0 0 0 0 0 0 0
1290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 130 0 0 0 0 0 0 0 0 0 0 0 0
1300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 0 0 0 0 0 0 0 0 0 0 0 0
13185 85 85 85 85 85 85 85 85 0 0 0 85 85 85 85 85 85 132 0 0 0 0 0 0 0 0 0 85 85 85
1320 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0
13385 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 134 0 0 0 0 0 0 0 0 0 0 0 0
1340 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 135 0 0 0 0 0 0 0 0 0 0 0 0
1350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 0 0 0 0 0 0 0 0 0 0 0 0
1360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 85 85 85 85 85 85 0 0 0 0 0 0
1370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 138 0 0 0 0 0 0 0 0 0 0 0 0
1380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 0 0 0 0 0 0 0 0 0 0 0 0
1390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 140 0 0 0 0 0 0 0 0 0 0 0 0
1400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 0 0 0 0 0 0 0 0 0 0 0 0
1410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 0 0 0 0 0 0 0 0 0 0 0 0
1420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 143 0 0 0 0 0 0 0 0 0 0 0 0
1430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 0 0 0 0 0 0 0 0 0 0 0 0
1440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 0 0 0 0 0 0 0 0 0 0 0 0
1450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 146 0 0 0 0 0 0 0 0 0 0 0 0
1460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 0 0 0 0 0 0 0 0 0 0 0 0
1470 0 0 0 0 0 0 0 0 0 0 0 148 0 0 0 0 0 0 0 0 0 0 0 0
1480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 0 0 0 0 0 0 0 0 0 0 0 0
1490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 0 0 0 0 0 0 0 0 0 0 0 0
1500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 151 0 0 0 0 0 0 0 0 0 0 0 0
1510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 0 0 0 0 0 0 0 0 0 85 85 85
1520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 0 0 0 0 0 0 0 0 0 0 0 0
1530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 154 0 0 0 0 0 0 0 0 0 0 0 0
1540 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 155 0 0 0 0 0 0 0 0 0 0 0 0
15585 85 85 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 156 85 85 85 170 170 170 0 0 0 0 0 0
15685 85 85 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 157 0 0 0 85 85 85 0 0 0 0 0 0
1570 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 158 0 0 0 0 0 0 0 0 0 0 0 0
1580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 159 0 0 0 0 0 0 0 0 0 0 0 0
1590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 0 0 0 0 0 0 0 0 0 0 0 0
1600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 0 0 0 0 0 0 0 0 0 0 0 0
1610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 162 0 0 0 0 0 0 0 0 0 0 0 0
1620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 0 0 0 0 0 0 0 0 0 0 0 0
1630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 0 0 0 0 0 0 0 0 0 0 0 0
1640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 165 0 0 0 0 0 0 0 0 0 0 0 0
1650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 0 0 0 0 0 0 0 0 0 0 0 0
1660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 0 0 0 0 0 0 0 0 0 0 0 0
1670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 168 0 0 0 0 0 0 0 0 0 0 0 0
1680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 0 0 0 0 0 0 0 0 0 0 0 0
1690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 0 0 0 0 0 0 0 0 0 0 0 0
1700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 0 0 0 0 0 0 0 0 0 0 0 0
1710 0 0 0 0 0 0 0 0 0 0 0 172 0 0 0 0 0 0 85 85 85 0 0 0
1720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 173 0 0 0 0 0 0 0 0 0 0 0 0
1730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 0 0 0 0 0 0 0 0 0 0 0 0
1740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 0 0 0 0 0 0 0 0 0 0 0 0
1750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 176170 170 170 170 170 170 85 85 85 0 0 0
1760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 0 0 0 0 0 0 85 85 85 0 0 0
1770 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 178 0 0 0 0 0 0 0 0 0 0 0 0
17885 85 85 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85 179 0 0 0 0 0 0 0 0 0 0 0 0
1790 0 0 85 85 85 85 85 85 0 0 0 85 85 85 85 85 85 180 0 0 0 0 0 0 0 0 0 0 0 0
1800 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 181 0 0 0 0 0 0 0 0 0 0 0 0
1810 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 182 0 0 0 0 0 0 0 0 0 0 0 0
18285 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 183 0 0 0 0 0 0 0 0 0 0 0 0
1830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 0 0 0 0 0 0 0 0 0 0 0 0
1840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 185 0 0 0 0 0 0 0 0 0 0 0 0
1850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 0 0 0 0 0 0 0 0 0 0 0 0
1860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 0 0 0 0 0 0 0 0 0 0 0 0
1870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 188 0 0 0 0 0 0 0 0 0 0 0 0
1880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 0 0 0 0 0 0 0 0 0 0 0 0
1890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 0 0 0 0 0 0 0 0 0 0 0 0
1900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 0 0 0 0 0 0 0 0 0 0 0 0
1910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 192 0 0 0 0 0 0 85 85 85 0 0 0
1920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 0 0 0 0 0 0 0 0 0 0 0 0
1930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 0 0 0 0 0 0 0 0 0 0 0 0
1940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 195 0 0 0 0 0 0 0 0 0 0 0 0
1950 0 0 0 0 0 0 0 0 0 0 0 196 0 0 0 85 85 85 0 0 0 0 0 0
1960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 0 0 0 0 0 0 0 0 0 85 85 85
1970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 198 0 0 0 0 0 0 0 0 0 0 0 0
1980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 0 0 0 0 0 0 0 0 0 0 0 0
1990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 0 0 0 0 0 0 0 0 0 0 0 0
2000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 0 0 0 0 0 0 0 0 0 0 0 0
2010 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 202 0 0 0 0 0 0 0 0 0 0 0 0
20285 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 203 0 0 0 0 0 0 0 0 0 0 0 0
20385 85 85 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 204 0 0 0 0 0 0 0 0 0 0 0 0
2040 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 205 0 0 0 0 0 0 0 0 0 0 0 0
2050 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 206 0 0 0 0 0 0 0 0 0 0 0 0
2060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 0 0 0 0 0 0 0 0 0 0 0 0
2070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 0 0 0 0 0 0 0 0 0 0 0 0
2080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 0 0 0 0 0 0 0 0 0 0 0 0
2090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 0 0 0 0 0 0 0 0 0 0 0 0
2100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 211 0 0 0 0 0 0 0 0 0 0 0 0
2110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 0 0 0 0 0 0 85 85 85 0 0 0
2120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 0 0 0 0 0 0 0 0 0 0 0 0
2130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 0 0 0 0 0 0 0 0 0 0 0 0
2140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 0 0 0 0 0 0 0 0 0 0 0 0
2150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 216 0 0 0 0 0 0 0 0 0 0 0 0
2160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 0 0 0 0 0 0 0 0 0 85 85 85
2170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 0 0 0 0 0 0 0 0 0 0 0 0
2180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 0 0 0 0 0 0 0 0 0 0 0 0
2190 0 0 0 0 0 0 0 0 0 0 0 220 0 0 0 0 0 0 0 0 0 0 0 0
2200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 0 0 0 0 0 0 0 0 0 0 0 0
2210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 0 0 0 0 0 0 0 0 0 0 0 0
2220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 0 0 0 0 0 0 0 0 0 0 0 0
2230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 0 0 0 0 0 0 0 0 0 0 0 0
2240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 225 0 0 0 0 0 0 0 0 0 0 0 0
2250 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170 226 0 0 0 0 0 0 0 0 0 0 0 0
22685 85 85 85 85 85 85 85 85 85 85 85 0 0 0 85 85 85 227 0 0 0 0 0 0 0 0 0 0 0 0
2270 0 0 85 85 85 85 85 85 0 0 0 85 85 85 0 0 0 228 0 0 0 0 0 0 0 0 0 0 0 0
22885 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 229 0 0 0 0 0 0 0 0 0 0 0 0
2290 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 230 0 0 0 0 0 0 0 0 0 0 0 0
23085 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 231 0 0 0 0 0 0 0 0 0 0 0 0
23185 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 232 0 0 0 85 85 85 0 0 0 0 0 0
2320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 0 0 0 0 0 0 0 0 0 0 0 0
2330 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 234 0 0 0 0 0 0 0 0 0 0 0 0
2340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 0 0 0 0 0 0 0 0 0 0 0 0
2350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 0 0 0 0 0 0 0 0 0 0 0 0
2360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 0 0 0 0 0 0 0 0 0 85 85 85
2370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 0 0 0 0 0 0 0 0 0 0 0 0
2380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 0 0 0 0 0 0 0 0 0 0 0 0
2390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 0 0 0 0 0 0 0 0 0 0 0 0
2400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 0 0 0 0 0 0 0 0 0 0 0 0
2410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 0 0 0 0 0 0 0 0 0 0 0 0
2420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 0 0 0 0 0 0 0 0 0 0 0 0
2430 0 0 0 0 0 0 0 0 0 0 0 244 0 0 0 0 0 0 0 0 0 0 0 0
2440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 0 0 0 0 0 0 0 0 0 0 0 0
2450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 0 0 0 0 0 0 0 0 0 0 0 0
2460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 0 0 0 0 0 0 0 0 0 0 0 0
2470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 0 0 0 0 0 0 0 0 0 0 0 0
2480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 0 0 0 0 0 0 0 0 0 0 0 0
2490 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 250 0 0 0 0 0 0 0 0 0 0 0 0
25085 85 85 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85 251 0 0 0 0 0 0 0 0 0 0 0 0
2510 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 252 0 0 0 85 85 85 0 0 0 0 0 0
2520 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 253 0 0 0 0 0 0 0 0 0 0 0 0
2530 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 254 0 0 0 0 0 0 0 0 0 0 0 0
2540 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0
2550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 256 0 0 0 0 0 0 0 0 0 0 0 0
2560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 257 0 0 0 0 0 0 0 0 0 0 0 0
2570 0 0 85 85 85 170 170 170 170 85 0 170 170 170 85 85 85 258 85 85 85 0 0 0 0 0 0 0 0 0
2580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 259 0 0 0 0 0 0 0 0 0 0 0 0
2590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 260 0 0 0 0 0 0 0 0 0 0 0 0
2600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 261 0 0 0 0 0 0 0 0 0 0 0 0
2610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 262 0 0 0 0 0 0 0 0 0 0 0 0
2620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 263 0 0 0 0 0 0 0 0 0 0 0 0
2630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 264 0 0 0 0 0 0 0 0 0 0 0 0
2640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 265 0 0 0 0 0 0 0 0 0 0 0 0
2650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 266 0 0 0 0 0 0 0 0 0 0 0 0
2660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 267 0 0 0 0 0 0 0 0 0 0 0 0
2670 0 0 0 0 0 0 0 0 0 0 0 268 0 0 0 0 0 0 0 0 0 0 0 0
2680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 269 0 0 0 0 0 0 0 0 0 0 0 0
2690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 270 0 0 0 0 0 0 0 0 0 0 0 0
2700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 271 0 0 0 0 0 0 0 0 0 0 0 0
2710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 272 0 0 0 85 85 85 0 0 0 0 0 0
2720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 273 0 0 0 0 0 0 0 0 0 0 0 0
2730 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 274 0 0 0 0 0 0 0 0 0 0 0 0
27485 85 85 85 85 85 85 85 85 85 85 85 0 0 0 85 85 85 275 0 0 0 0 0 0 0 0 0 0 0 0
2750 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 276 0 0 0 0 0 0 0 0 0 0 0 0
27685 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 277 0 0 0 0 0 0 0 0 0 0 0 0
27785 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 278 85 85 85 0 0 0 0 0 0 0 0 0
27885 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 279 0 0 0 0 0 0 0 0 0 0 0 0
2790 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 280 0 0 0 0 0 0 0 0 0 0 0 0
2800 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 281 0 0 0 0 0 0 0 0 0 0 0 0
281170 170 170 255 255 85 170 170 170 170 170 170 170 170 170 85 85 85 282 0 0 0 0 0 0 0 0 0 0 0 0
2820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 283 0 0 0 0 0 0 0 0 0 0 0 0
2830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 284 0 0 0 0 0 0 0 0 0 0 0 0
2840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 285 0 0 0 0 0 0 0 0 0 0 0 0
2850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 286 0 0 0 0 0 0 0 0 0 0 0 0
2860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 287 0 0 0 0 0 0 0 0 0 0 0 0
2870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 288 0 0 0 0 0 0 0 0 0 0 0 0
2880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 289 0 0 0 0 0 0 0 0 0 0 0 0
2890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 290 0 0 0 0 0 0 0 0 0 0 0 0
2900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 291 0 0 0 0 0 0 0 0 0 0 0 0
2910 0 0 0 0 0 0 0 0 0 0 0 292 0 0 0 85 85 85 0 0 0 0 0 0
2920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 293 0 0 0 85 85 85 170 170 170 0 0 0
2930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 294 0 0 0 0 0 0 0 0 0 0 0 0
2940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 295 0 0 0 0 0 0 170 170 170 170 170 170
2950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 296170 170 170 0 0 0 0 0 0 0 0 0
2960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 297 0 0 0 0 0 0 0 0 0 0 0 0
2970 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 298 85 85 85 0 0 0 0 0 0 0 0 0
29885 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 299 0 0 0 0 0 0 0 0 0 0 0 0
29985 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 300 0 0 0 0 0 0 0 0 0 0 0 0
3000 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 301 0 0 0 0 0 0 0 0 0 0 0 0
3010 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 302 0 0 0 0 0 0 0 0 0 0 0 0
3020 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 303 0 0 0 0 0 0 0 0 0 0 0 0
3030 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 304 0 0 0 0 0 0 0 0 0 0 0 0
3040 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170 305 0 0 0 0 0 0 0 0 0 0 0 0
305255 255 85 170 170 170 170 170 170 170 85 0 85 255 85 170 85 0 306 0 0 0 0 0 0 0 0 0 0 0 0
3060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 307 0 0 0 0 0 0 0 0 0 0 0 0
3070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 308 0 0 0 0 0 0 0 0 0 0 0 0
3080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 309 0 0 0 0 0 0 0 0 0 0 0 0
3090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 310 0 0 0 0 0 0 0 0 0 0 0 0
3100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 311 0 0 0 0 0 0 0 0 0 0 0 0
3110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 312 0 0 0 85 85 85 0 0 0 0 0 0
3120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 313 85 85 85 170 170 170 170 170 170 170 170 170
3130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 314 0 0 0 0 0 0 0 0 0 0 0 0
3140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 315 0 0 0 170 170 170 255 255 255 255 255 255
3150 0 0 0 0 0 0 0 0 0 0 0 316255 255 255 170 170 170 0 0 0 0 0 0
3160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 317 0 0 0 0 0 0 0 0 0 0 0 0
3170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 318 85 85 85 0 0 0 0 0 0 0 0 0
3180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 319 0 0 0 0 0 0 0 0 0 0 0 0
3190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 320 0 0 0 0 0 0 0 0 0 0 0 0
3200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 321 0 0 0 0 0 0 0 0 0 0 0 0
3210 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 322 0 0 0 0 0 0 0 0 0 0 0 0
32285 85 85 85 85 85 85 85 85 85 85 85 0 0 0 85 85 85 323 0 0 0 0 0 0 0 0 0 0 0 0
3230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 324 0 0 0 0 0 0 0 0 0 0 0 0
3240 0 0 85 85 85 0 0 0 0 0 0 85 85 85 85 85 85 325 0 0 0 0 0 0 0 0 0 0 0 0
3250 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 326 0 0 0 0 0 0 0 0 0 0 0 0
3260 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 327 0 0 0 0 0 0 0 0 0 0 0 0
3270 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 328 0 0 0 0 0 0 0 0 0 0 0 0
32885 85 85 0 0 0 0 0 0 85 85 85 170 170 170 170 85 0 329 0 0 0 0 0 0 0 0 0 0 0 0
329170 170 170 170 170 170 255 255 85 170 170 170 170 170 170 85 85 85 330 0 0 0 0 0 0 0 0 0 0 0 0
3300 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 331 0 0 0 0 0 0 0 0 0 0 0 0
3310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 332 0 0 0 85 85 85 0 0 0 85 85 85
3320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333170 170 170 170 170 170 255 255 255 255 255 255
3330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 334 0 0 0 0 0 0 0 0 0 0 0 0
3340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 335170 170 170 255 255 255 170 170 170 170 170 170
3350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 336255 255 255 170 170 170 0 0 0 0 0 0
3360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 337 0 0 0 0 0 0 0 0 0 0 0 0
3370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 338 85 85 85 0 0 0 0 0 0 0 0 0
3380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 339 0 0 0 0 0 0 0 0 0 0 0 0
3390 0 0 0 0 0 0 0 0 0 0 0 340 0 0 0 0 0 0 0 0 0 0 0 0
3400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 341 0 0 0 0 0 0 0 0 0 0 0 0
3410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 342 0 0 0 0 0 0 0 0 0 0 0 0
3420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 343 0 0 0 0 0 0 0 0 0 0 0 0
3430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 344 0 0 0 0 0 0 0 0 0 0 0 0
3440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 345 0 0 0 0 0 0 0 0 0 0 0 0
3450 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 346 0 0 0 0 0 0 0 0 0 0 0 0
3460 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 347 0 0 0 0 0 0 0 0 0 0 0 0
34785 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 348 0 0 0 0 0 0 0 0 0 0 0 0
3480 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 349 0 0 0 0 0 0 0 0 0 0 0 0
34985 85 85 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 350 0 0 0 0 0 0 0 0 0 0 0 0
35085 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 351 0 0 0 0 0 0 0 0 0 0 0 0
3510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 352 0 0 0 85 85 85 0 0 0 85 85 85
3520 0 0 0 0 0 85 85 85 85 85 85 170 85 0 170 170 170 353170 170 170 0 0 0 0 0 0 255 255 255
353170 170 170 170 85 0 170 170 170 170 170 170 170 85 0 85 85 85 354 85 85 85 0 0 0 0 0 0 0 0 0
3540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 355255 255 255 170 170 170 0 0 0 85 85 85
3550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 356170 170 170 255 255 255 170 170 170 0 0 0
3560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 357 0 0 0 0 0 0 0 0 0 0 0 0
3570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 358 85 85 85 0 0 0 0 0 0 0 0 0
3580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 359 0 0 0 0 0 0 0 0 0 0 0 0
3590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 360 0 0 0 0 0 0 0 0 0 0 0 0
3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 361 0 0 0 0 0 0 0 0 0 0 0 0
3610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 362 0 0 0 0 0 0 0 0 0 0 0 0
3620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 363 0 0 0 0 0 0 0 0 0 0 0 0
3630 0 0 0 0 0 0 0 0 0 0 0 364 0 0 0 0 0 0 0 0 0 0 0 0
3640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 365 0 0 0 0 0 0 0 0 0 0 0 0
3650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 366 0 0 0 0 0 0 0 0 0 0 0 0
3660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 367 0 0 0 0 0 0 0 0 0 0 0 0
3670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 368 0 0 0 0 0 0 0 0 0 0 0 0
3680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 369 0 0 0 0 0 0 0 0 0 0 0 0
3690 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 370 0 0 0 0 0 0 0 0 0 0 0 0
37085 85 85 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 371 0 0 0 0 0 0 0 0 0 0 0 0
3710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 372 0 0 0 85 85 85 0 0 0 85 85 85
37285 85 85 0 0 0 85 85 85 0 0 0 85 85 85 85 85 85 373 85 85 85 0 0 0 0 0 0 170 170 170
37385 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 374 85 85 85 0 0 0 0 0 0 0 0 0
37485 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 375255 255 255 85 85 85 0 0 0 0 0 0
37585 85 85 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 376 85 85 85 255 255 255 170 170 170 0 0 0
3760 0 0 0 0 0 85 85 85 85 85 85 85 85 85 85 255 85 377 0 0 0 0 0 0 0 0 0 0 0 0
377255 85 85 85 255 85 170 170 170 170 85 0 170 170 170 85 85 85 378 85 85 85 0 0 0 0 0 0 0 0 0
3780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 379 0 0 0 0 0 0 0 0 0 0 0 0
3790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 380 0 0 0 0 0 0 0 0 0 0 0 0
3800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 381 0 0 0 0 0 0 0 0 0 0 0 0
3810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 382 0 0 0 0 0 0 0 0 0 0 0 0
3820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 383 0 0 0 0 0 0 0 0 0 0 0 0
3830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 384 0 0 0 0 0 0 0 0 0 0 0 0
3840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 385 0 0 0 0 0 0 0 0 0 0 0 0
3850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 386 0 0 0 0 0 0 0 0 0 0 0 0
3860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 387 0 0 0 0 0 0 0 0 0 0 0 0
3870 0 0 0 0 0 0 0 0 0 0 0 388 0 0 0 0 0 0 0 0 0 0 0 0
3880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 389 0 0 0 0 0 0 0 0 0 0 0 0
3890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 390 0 0 0 0 0 0 0 0 0 0 0 0
3900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 391 0 0 0 0 0 0 0 0 0 0 0 0
3910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 392 0 0 0 85 85 85 0 0 0 85 85 85
3920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 393170 170 170 0 0 0 0 0 0 170 170 170
3930 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 394 85 85 85 85 85 85 85 85 85 85 85 85
3940 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 395255 255 255 85 85 85 0 0 0 0 0 0
3950 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 396 85 85 85 255 255 255 170 170 170 0 0 0
3960 0 0 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 397 0 0 0 0 0 0 0 0 0 0 0 0
39785 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 398 85 85 85 0 0 0 0 0 0 0 0 0
39885 85 85 85 85 85 85 85 85 0 0 0 85 85 85 0 0 0 399 0 0 0 0 0 0 0 0 0 0 0 0
3990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 400 0 0 0 0 0 0 0 0 0 0 0 0
4000 0 0 0 0 0 85 85 85 170 85 0 85 85 85 85 85 85 401 0 0 0 0 0 0 0 0 0 0 0 0
401170 170 170 170 85 0 170 170 170 85 85 85 170 85 0 85 85 85 402 0 0 0 0 0 0 0 0 0 0 0 0
4020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 403 0 0 0 0 0 0 0 0 0 0 0 0
4030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 404 0 0 0 0 0 0 0 0 0 0 0 0
4040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 405 0 0 0 0 0 0 0 0 0 0 0 0
4050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 406 0 0 0 0 0 0 0 0 0 0 0 0
4060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 407 0 0 0 0 0 0 0 0 0 0 0 0
4070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 408 0 0 0 0 0 0 0 0 0 0 0 0
4080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 409 0 0 0 0 0 0 0 0 0 0 0 0
4090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 410 0 0 0 0 0 0 0 0 0 0 0 0
4100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 411 0 0 0 0 0 0 0 0 0 0 0 0
4110 0 0 0 0 0 0 0 0 0 0 0 412 0 0 0 85 85 85 0 0 0 0 0 0
4120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 413255 255 255 0 0 0 0 0 0 170 85 0
4130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 414255 255 85 170 85 0 255 255 85 170 85 0
4140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 415255 255 85 170 85 0 0 0 0 0 0 0
4150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 416 85 85 85 255 255 255 0 0 0 0 0 0
4160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 417 0 0 0 0 0 0 0 0 0 0 0 0
4170 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 418 85 85 85 0 0 0 0 0 0 0 0 0
41885 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 419 0 0 0 0 0 0 0 0 0 0 0 0
4190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 420 0 0 0 0 0 0 0 0 0 0 0 0
4200 0 0 85 85 85 0 0 0 85 85 85 85 85 85 0 0 0 421 0 0 0 0 0 0 0 0 0 0 0 0
4210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 422 0 0 0 0 0 0 0 0 0 0 0 0
4220 0 0 0 0 0 85 85 85 85 85 85 0 0 0 85 85 85 423 0 0 0 0 0 0 0 0 0 0 0 0
4230 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 424 0 0 0 0 0 0 0 0 0 0 0 0
42485 85 85 0 0 0 0 0 0 85 85 85 85 85 85 170 85 0 425 0 0 0 0 0 0 0 0 0 0 0 0
42585 85 85 85 85 85 170 85 0 85 255 85 85 85 85 85 85 85 426 0 0 0 0 0 0 0 0 0 0 0 0
4260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 427 0 0 0 0 0 0 0 0 0 0 0 0
4270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 428 0 0 0 0 0 0 0 0 0 0 0 0
4280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 429 0 0 0 0 0 0 0 0 0 0 0 0
4290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 430 0 0 0 0 0 0 0 0 0 0 0 0
4300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 431 0 0 0 0 0 0 0 0 0 0 0 0
4310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 432 0 0 0 85 85 85 0 0 0 0 0 0
4320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 433170 170 170 170 170 170 170 85 0 255 255 85
4330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 434170 85 0 255 255 85 170 85 0 255 255 85
4340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 435170 85 0 255 255 85 170 85 0 255 255 85
4350 0 0 0 0 0 0 0 0 0 0 0 436170 170 170 170 170 170 0 0 0 0 0 0
4360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 437 0 0 0 0 0 0 0 0 0 0 0 0
4370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 438 85 85 85 0 0 0 0 0 0 0 0 0
4380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 439 0 0 0 0 0 0 0 0 0 0 0 0
4390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 440 0 0 0 0 0 0 0 0 0 0 0 0
4400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 441 0 0 0 0 0 0 0 0 0 0 0 0
4410 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 442 0 0 0 0 0 0 0 0 0 0 0 0
44285 85 85 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 443 0 0 0 0 0 0 0 0 0 0 0 0
4430 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 444 0 0 0 0 0 0 0 0 0 0 0 0
4440 0 0 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0 445 0 0 0 0 0 0 0 0 0 0 0 0
4450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 446 0 0 0 0 0 0 0 0 0 0 0 0
4460 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 447 0 0 0 0 0 0 0 0 0 0 0 0
4470 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 448 0 0 0 0 0 0 0 0 0 0 0 0
4480 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 449 0 0 0 0 0 0 0 0 0 0 0 0
44985 85 85 85 85 85 85 85 85 85 85 85 170 85 0 0 0 0 450 0 0 0 0 0 0 0 0 0 0 0 0
4500 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 451 0 0 0 0 0 0 0 0 0 0 0 0
4510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 452 0 0 0 85 85 85 0 0 0 0 0 0
4520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 453 0 0 0 170 85 0 255 255 85 170 85 0
4530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 454255 255 85 170 85 0 255 255 85 170 85 0
4540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 455255 255 85 170 85 0 255 255 85 170 85 0
4550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 456255 255 85 170 85 0 0 0 0 0 0 0
4560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 457 0 0 0 0 0 0 0 0 0 0 0 0
4570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 458 85 85 85 0 0 0 0 0 0 0 0 0
4580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 459 0 0 0 0 0 0 0 0 0 0 0 0
4590 0 0 0 0 0 0 0 0 0 0 0 460 0 0 0 0 0 0 0 0 0 0 0 0
4600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 461 0 0 0 0 0 0 0 0 0 0 0 0
4610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 462 0 0 0 0 0 0 0 0 0 0 0 0
4620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 463 0 0 0 0 0 0 0 0 0 0 0 0
4630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 464 0 0 0 0 0 0 0 0 0 0 0 0
4640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 465 0 0 0 0 0 0 0 0 0 0 0 0
4650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 466 0 0 0 0 0 0 0 0 0 0 0 0
4660 0 0 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 467 0 0 0 0 0 0 0 0 0 0 0 0
4670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 468 0 0 0 0 0 0 0 0 0 0 0 0
46885 85 85 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 469 0 0 0 0 0 0 0 0 0 0 0 0
4690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 470 0 0 0 0 0 0 0 0 0 0 0 0
4700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 471 0 0 0 0 0 0 0 0 0 0 0 0
47185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 472 0 0 0 85 85 85 0 0 0 0 0 0
4720 0 0 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 473170 85 0 255 255 85 170 85 0 255 255 85
47385 85 85 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0 474170 85 0 255 255 85 170 85 0 255 255 85
4740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 475170 85 0 255 255 85 170 85 0 255 255 85
4750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 476170 85 0 255 255 85 170 85 0 0 0 0
4760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 477 0 0 0 0 0 0 0 0 0 0 0 0
4770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 478 0 0 0 85 85 85 0 0 0 0 0 0
4780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 479 0 0 0 0 0 0 0 0 0 0 0 0
4790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 480 0 0 0 0 0 0 0 0 0 0 0 0
4800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 481 0 0 0 0 0 0 0 0 0 0 0 0
4810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 482 0 0 0 0 0 0 0 0 0 0 0 0
4820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 483 0 0 0 0 0 0 0 0 0 0 0 0
4830 0 0 0 0 0 0 0 0 0 0 0 484 0 0 0 0 0 0 0 0 0 0 0 0
4840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 485 0 0 0 0 0 0 0 0 0 0 0 0
4850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 486 0 0 0 0 0 0 0 0 0 0 0 0
4860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 487 0 0 0 0 0 0 0 0 0 0 0 0
4870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 488 0 0 0 0 0 0 0 0 0 0 0 0
4880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 489 0 0 0 0 0 0 0 0 0 0 0 0
4890 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 490 0 0 0 0 0 0 0 0 0 0 0 0
4900 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 491 0 0 0 0 0 0 0 0 0 0 0 0
4910 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 492 0 0 0 85 85 85 85 85 85 0 0 0
4920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 493255 255 85 170 85 0 255 255 85 170 85 0
4930 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 494255 255 85 170 85 0 255 255 85 170 85 0
4940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 495255 255 85 170 85 0 255 255 85 170 85 0
4950 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 496255 255 85 170 85 0 170 85 0 0 0 0
4960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 497 0 0 0 0 0 0 0 0 0 0 0 0
4970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 498 0 0 0 85 85 85 0 0 0 0 0 0
4980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 499 0 0 0 0 0 0 0 0 0 0 0 0
4990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 0 0 0 0 0 0 0 0 0 0 0
5000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 501 0 0 0 0 0 0 0 0 0 0 0 0
5010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 502 0 0 0 0 0 0 0 0 0 0 0 0
5020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 503 0 0 0 0 0 0 0 0 0 0 0 0
5030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 504 0 0 0 0 0 0 0 0 0 0 0 0
5040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 505 0 0 0 0 0 0 0 0 0 0 0 0
5050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 506 0 0 0 0 0 0 0 0 0 0 0 0
5060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 507 0 0 0 0 0 0 0 0 0 0 0 0
5070 0 0 0 0 0 0 0 0 0 0 0 508 0 0 0 0 0 0 0 0 0 0 0 0
5080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 509 0 0 0 0 0 0 0 0 0 0 0 0
5090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 510 0 0 0 0 0 0 0 0 0 0 0 0
5100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 511 0 0 0 0 0 0 0 0 0 0 0 0
5110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 512 0 0 0 85 85 85 85 85 85 0 0 0
5120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 513170 85 0 255 255 85 170 85 0 255 255 85
5130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 514170 85 0 255 255 85 170 85 0 255 255 85
5140 0 0 85 85 85 0 0 0 0 170 0 85 85 85 0 0 0 515170 85 0 255 255 85 170 85 0 170 85 0
51585 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 516170 85 0 170 85 0 85 85 85 0 0 0
5160 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 517 0 0 0 85 85 85 0 0 0 0 0 0
5170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 518 0 0 0 0 0 0 85 85 85 0 0 0
5180 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 519 0 0 0 0 0 0 0 0 0 0 0 0
5190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 520 0 0 0 0 0 0 0 0 0 0 0 0
5200 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 521 0 0 0 0 0 0 0 0 0 0 0 0
5210 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 522 0 0 0 0 0 0 0 0 0 0 0 0
5220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 523 0 0 0 0 0 0 0 0 0 0 0 0
5230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 524 0 0 0 0 0 0 0 0 0 0 0 0
5240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 0 0 0 0 0 0 0 0 0 0 0 0
5250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 526 0 0 0 0 0 0 0 0 0 0 0 0
5260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 527 0 0 0 0 0 0 0 0 0 0 0 0
5270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 528 0 0 0 0 0 0 0 0 0 0 0 0
5280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 529 0 0 0 0 0 0 0 0 0 0 0 0
5290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 530 0 0 0 0 0 0 0 0 0 0 0 0
5300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 531 0 0 0 0 0 0 0 0 0 0 0 0
5310 0 0 0 0 0 0 0 0 0 0 0 532 0 0 0 85 85 85 85 85 85 0 0 0
5320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 533 85 85 85 170 85 0 255 255 85 170 85 0
5330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 534255 255 85 170 85 0 255 255 85 170 85 0
5340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 535170 85 0 170 85 0 170 85 0 170 85 0
5350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 536170 85 0 170 85 0 85 85 85 0 0 0
5360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 537 0 0 0 85 85 85 170 170 170 85 85 85
5370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 538 0 0 0 0 0 0 85 85 85 0 0 0
538170 85 0 85 255 85 170 85 0 170 85 0 170 85 0 85 255 85 539 0 0 0 0 0 0 0 0 0 0 0 0
539170 85 0 170 85 0 0 170 0 0 0 0 0 0 0 0 0 0 540 0 0 0 0 0 0 0 0 0 0 0 0
54085 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 541 0 0 0 0 0 0 0 0 0 0 0 0
5410 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 542 0 0 0 0 0 0 0 0 0 0 0 0
5420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 543 0 0 0 0 0 0 0 0 0 0 0 0
54385 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 544 0 0 0 0 0 0 0 0 0 0 0 0
5440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 545 0 0 0 0 0 0 0 0 0 0 0 0
54585 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 546 0 0 0 0 0 0 0 0 0 0 0 0
5460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 547 0 0 0 0 0 0 0 0 0 0 0 0
5470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 548 0 0 0 0 0 0 0 0 0 0 0 0
5480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 549 0 0 0 0 0 0 0 0 0 0 0 0
5490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 550 0 0 0 0 0 0 0 0 0 0 0 0
5500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 551 0 0 0 0 0 0 0 0 0 0 0 0
5510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 552 0 0 0 85 85 85 85 85 85 0 0 0
5520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 553 85 85 85 170 85 0 170 85 0 170 85 0
5530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 554170 85 0 170 85 0 170 85 0 170 85 0
5540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 555170 85 0 170 85 0 170 85 0 170 85 0
5550 0 0 0 0 0 0 0 0 0 0 0 556170 170 170 170 170 170 170 170 170 0 0 0
5560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 557 0 0 0 0 0 0 170 170 170 170 170 170
5570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 558 0 0 0 0 0 0 0 0 0 85 85 85
5580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 559 0 0 0 0 0 0 0 0 0 0 0 0
5590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 560 0 0 0 0 0 0 0 0 0 0 0 0
5600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 561 0 0 0 0 0 0 0 0 0 0 0 0
5610 0 0 0 0 0 0 0 0 0 0 0 0 170 0 170 85 0 562 0 0 0 0 0 0 0 0 0 0 0 0
562255 255 85 170 85 0 255 255 85 255 255 85 255 255 85 170 85 0 563 0 0 0 0 0 0 0 0 0 0 0 0
563255 255 85 85 255 85 170 85 0 170 85 0 85 85 85 0 0 0 564 0 0 0 0 0 0 0 0 0 0 0 0
5640 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 565 0 0 0 0 0 0 0 0 0 0 0 0
56585 85 85 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 566 0 0 0 0 0 0 0 0 0 0 0 0
5660 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 567 0 0 0 0 0 0 0 0 0 0 0 0
5670 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 568 0 0 0 0 0 0 0 0 0 0 0 0
56885 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 569 0 0 0 0 0 0 0 0 0 0 0 0
5690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 570 0 0 0 0 0 0 0 0 0 0 0 0
5700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 571 0 0 0 0 0 0 0 0 0 0 0 0
5710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 572 0 0 0 85 85 85 0 0 0 0 0 0
5720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 573 85 85 85 170 170 170 170 85 0 170 85 0
5730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 574170 85 0 170 85 0 170 85 0 170 85 0
5740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 575170 85 0 170 85 0 170 170 170 170 170 170
5750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 576170 170 170 170 170 170 170 170 170 85 85 85
5760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 577 0 0 0 0 0 0 85 85 85 85 85 85
5770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 578 0 0 0 0 0 0 0 0 0 85 85 85
5780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 579 0 0 0 0 0 0 0 0 0 0 0 0
5790 0 0 0 0 0 0 0 0 0 0 0 580 0 0 0 0 0 0 0 0 0 0 0 0
5800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 581 0 0 0 0 0 0 0 0 0 0 0 0
5810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 0 0 0 0 0 0 0 0
5820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 583 0 0 0 0 0 0 0 0 0 0 0 0
5830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 584 0 0 0 0 0 0 0 0 0 0 0 0
5840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 585 0 0 0 0 0 0 0 0 0 0 0 0
5850 0 0 0 0 0 0 0 0 0 0 0 170 85 0 255 255 85 586 0 0 0 0 0 0 0 0 0 0 0 0
58685 255 85 255 255 85 255 255 85 170 85 0 255 255 85 255 255 85 587 0 0 0 0 0 0 0 0 0 0 0 0
587255 255 85 170 85 0 255 255 85 85 255 85 170 85 0 0 0 0 588 0 0 0 0 0 0 0 0 0 0 0 0
58885 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 589 0 0 0 0 0 0 0 0 0 0 0 0
5890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 590 0 0 0 0 0 0 0 0 0 0 0 0
5900 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 591 0 0 0 0 0 0 0 0 0 0 0 0
5910 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 592 0 0 0 85 85 85 0 0 0 0 0 0
5920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 593 85 85 85 170 170 170 170 170 170 170 85 0
5930 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 594170 85 0 170 85 0 170 85 0 170 85 0
5940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 595170 170 170 170 170 170 170 170 170 170 170 170
5950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 596255 255 255 255 255 255 255 255 255 170 170 170
5960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 597 0 0 0 0 0 0 0 0 0 0 0 0
5970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 598 0 0 0 0 0 0 0 0 0 85 85 85
5980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 599 0 0 0 0 0 0 0 0 0 0 0 0
5990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 0 0 0 0 0 0 0 0 0 0 0 0
6000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 601 0 0 0 0 0 0 0 0 0 0 0 0
6010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 0 0 0 0 0 0
6020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 603 0 0 0 0 0 0 0 0 0 0 0 0
6030 0 0 0 0 0 0 0 0 0 0 0 604 0 0 0 0 0 0 0 0 0 0 0 0
6040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 605 0 0 0 0 0 0 0 0 0 0 0 0
6050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 606 0 0 0 0 0 0 0 0 0 0 0 0
6060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 607 0 0 0 0 0 0 0 0 0 0 0 0
6070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 608 0 0 0 0 0 0 0 0 0 0 0 0
6080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 609 0 0 0 0 0 0 0 0 0 0 0 0
6090 0 0 0 0 0 0 0 0 85 85 85 255 255 85 170 85 0 610 0 0 0 0 0 0 0 0 0 0 0 0
610255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 611 0 0 0 0 0 0 0 0 0 0 0 0
611255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 85 255 85 612 85 85 85 0 0 0 0 0 0 85 85 85
6120 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 613255 255 255 255 255 255 170 170 170 170 170 170
6130 0 0 85 85 85 0 0 0 85 85 85 170 170 170 0 0 0 614170 170 170 170 170 170 170 170 170 170 170 170
6140 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 615170 170 170 170 170 170 255 255 255 255 255 255
61585 85 85 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 616255 255 255 255 255 255 255 255 255 255 255 255
6160 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 617 85 85 85 0 0 0 0 0 0 0 0 0
6170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 618 0 0 0 0 0 0 0 0 0 0 0 0
6180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 619 85 85 85 0 0 0 0 0 0 0 0 0
6190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 620 0 0 0 0 0 0 0 0 0 0 0 0
6200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 621 0 0 0 0 0 0 0 0 0 0 0 0
6210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 622 0 0 0 0 0 0 0 0 0 0 0 0
6220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 623 0 0 0 0 0 0 0 0 0 0 0 0
6230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 624 0 0 0 0 0 0 0 0 0 0 0 0
6240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 625 0 0 0 0 0 0 0 0 0 0 0 0
6250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 626 0 0 0 0 0 0 0 0 0 0 0 0
6260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 627 0 0 0 0 0 0 0 0 0 0 0 0
6270 0 0 0 0 0 0 0 0 0 0 0 628 0 0 0 0 0 0 0 0 0 0 0 0
6280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 629 0 0 0 0 0 0 0 0 0 0 0 0
6290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 630 0 0 0 0 0 0 0 0 0 0 0 0
6300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 631 0 0 0 0 0 0 0 0 0 0 0 0
6310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 632 85 85 85 0 0 0 0 0 0 170 170 170
6320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 633255 255 255 255 255 255 170 170 170 170 170 170
6330 0 0 0 0 0 0 0 0 170 85 0 255 255 85 255 255 85 634170 170 170 170 170 170 170 170 170 170 170 170
634255 255 85 255 255 85 170 85 0 255 255 85 85 255 85 255 255 85 635170 170 170 255 255 255 255 255 255 255 255 255
635255 255 85 170 85 0 255 255 85 170 85 0 255 255 85 170 85 0 636255 255 255 255 255 255 255 255 255 255 255 255
636170 85 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 637170 170 170 0 0 0 0 0 0 0 0 0
63785 85 85 0 0 0 0 0 0 85 85 85 170 170 170 0 0 0 638 0 0 0 0 0 0 0 0 0 0 0 0
63885 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 639 85 85 85 0 0 0 0 0 0 0 0 0
6390 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 640 0 0 0 0 0 0 0 0 0 0 0 0
6400 0 0 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 641 0 0 0 0 0 0 0 0 0 0 0 0
6410 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 642 0 0 0 0 0 0 0 0 0 0 0 0
6420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 643 0 0 0 0 0 0 0 0 0 0 0 0
6430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 644 0 0 0 0 0 0 0 0 0 0 0 0
6440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 645 0 0 0 0 0 0 0 0 0 0 0 0
6450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 646 0 0 0 0 0 0 0 0 0 0 0 0
6460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 647 0 0 0 0 0 0 0 0 0 0 0 0
6470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 648 0 0 0 0 0 0 0 0 0 0 0 0
6480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 649 0 0 0 0 0 0 0 0 0 0 0 0
6490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 650 0 0 0 0 0 0 0 0 0 0 0 0
6500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 651 0 0 0 0 0 0 0 0 0 85 85 85
6510 0 0 0 0 0 0 0 0 0 0 0 652 0 0 0 0 0 0 85 85 85 255 255 255
6520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 653255 255 255 255 255 255 255 255 255 170 170 170
6530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 654170 170 170 170 170 170 170 170 170 170 170 170
6540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 655255 255 255 255 255 255 255 255 255 255 255 255
6550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 656255 255 255 255 255 255 255 255 255 255 255 255
6560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 657255 255 255 0 0 0 0 0 0 0 0 0
6570 0 0 0 0 0 170 85 0 255 255 85 85 255 85 255 255 85 658 0 0 0 0 0 0 0 0 0 0 0 0
658170 170 170 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 659 0 0 0 85 85 85 0 0 0 0 0 0
659255 255 85 255 255 85 85 255 85 255 255 85 255 255 85 255 255 85 660 0 0 0 0 0 0 0 0 0 0 0 0
66085 255 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 661 0 0 0 0 0 0 0 0 0 0 0 0
66185 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 662 0 0 0 0 0 0 0 0 0 0 0 0
6620 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 663 0 0 0 0 0 0 0 0 0 0 0 0
66385 85 85 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 664 0 0 0 0 0 0 0 0 0 0 0 0
6640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 665 0 0 0 0 0 0 0 0 0 0 0 0
6650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 666 0 0 0 0 0 0 0 0 0 0 0 0
6660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 667 0 0 0 0 0 0 0 0 0 0 0 0
6670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 668 0 0 0 0 0 0 0 0 0 0 0 0
6680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 669 0 0 0 0 0 0 0 0 0 0 0 0
6690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 670 0 0 0 0 0 0 0 0 0 0 0 0
6700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 671 0 0 0 0 0 0 85 85 85 0 0 0
6710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 672 0 0 0 85 85 85 170 170 170 255 255 255
6720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 673255 255 255 255 255 255 255 255 255 255 255 255
6730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 674255 255 255 255 255 255 255 255 255 255 255 255
6740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 675255 255 255 255 255 255 255 255 255 255 255 255
6750 0 0 0 0 0 0 0 0 0 0 0 676255 255 255 255 255 255 255 255 255 255 255 255
6760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 677255 255 255 85 85 85 0 0 0 0 0 0
6770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 678 0 0 0 0 0 0 0 0 0 0 0 0
6780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 679 0 0 0 0 0 0 85 85 85 0 0 0
6790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 680 0 0 0 0 0 0 0 0 0 0 0 0
6800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 681 0 0 0 0 0 0 0 0 0 0 0 0
6810 0 0 0 0 0 170 85 0 255 255 85 255 255 85 255 255 85 682 0 0 0 0 0 0 0 0 0 0 0 0
682255 255 255 255 255 85 255 255 85 170 85 0 255 255 85 170 85 0 683 0 0 0 0 0 0 0 0 0 0 0 0
683255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 255 255 85 684 0 0 0 0 0 0 0 0 0 0 0 0
684170 85 0 170 85 0 0 170 0 0 0 0 85 85 85 0 0 0 685 0 0 0 0 0 0 0 0 0 0 0 0
68585 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 686 0 0 0 0 0 0 0 0 0 0 0 0
6860 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 687 0 0 0 0 0 0 0 0 0 0 0 0
6870 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 688 0 0 0 0 0 0 0 0 0 0 0 0
6880 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 689 0 0 0 0 0 0 0 0 0 0 0 0
6890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 690 0 0 0 0 0 0 0 0 0 0 0 0
6900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 691 0 0 0 85 85 85 0 0 0 0 0 0
6910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 692 0 0 0 85 85 85 255 255 255 255 255 255
6920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 693255 255 255 255 255 255 255 255 255 255 255 255
6930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 694255 255 255 255 255 255 255 255 255 255 255 255
6940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 695255 255 255 255 255 255 255 255 255 255 255 255
6950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 696255 255 255 255 255 255 255 255 255 255 255 255
6960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 697255 255 255 170 170 170 0 0 0 0 0 0
6970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 698 0 0 0 0 0 0 0 0 0 0 0 0
6980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 699 0 0 0 0 0 0 0 0 0 85 85 85
6990 0 0 0 0 0 0 0 0 0 0 0 700 0 0 0 0 0 0 0 0 0 0 0 0
7000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 701 0 0 0 0 0 0 0 0 0 0 0 0
7010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 702 0 0 0 0 0 0 0 0 0 0 0 0
7020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 703 0 0 0 0 0 0 0 0 0 0 0 0
7030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 704 0 0 0 0 0 0 0 0 0 0 0 0
7040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 705 0 0 0 0 0 0 0 0 0 0 0 0
7050 0 0 170 85 0 85 255 85 255 255 85 170 170 170 255 255 255 706 0 0 0 0 0 0 0 0 0 0 0 0
706255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 707 0 0 0 0 0 0 0 0 0 0 0 0
707255 255 85 255 255 85 170 85 0 255 255 85 85 255 85 255 255 85 708 0 0 0 0 0 0 0 0 0 0 0 0
708255 255 85 85 255 85 0 0 0 85 85 85 0 0 0 85 85 85 709 0 0 0 0 0 0 0 0 0 0 0 0
7090 0 0 85 85 85 0 0 0 85 85 85 85 85 85 0 0 0 710 0 0 0 0 0 0 0 0 0 0 0 0
71085 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 711 0 0 0 85 85 85 0 0 0 0 0 0
71185 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 712 0 0 0 85 85 85 255 255 255 255 255 255
71285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 713255 255 255 255 255 255 255 255 255 255 255 255
7130 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 714255 255 255 255 255 255 255 255 255 255 255 255
7140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 715255 255 255 255 255 255 255 255 255 255 255 255
7150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 716255 255 255 255 255 255 255 255 255 255 255 255
7160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 717255 255 255 255 255 255 0 0 0 0 0 0
7170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 718 0 0 0 0 0 0 0 0 0 0 0 0
7180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 719 0 0 0 0 0 0 0 0 0 0 0 0
7190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 720 85 85 85 0 0 0 0 0 0 0 0 0
7200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 721 0 0 0 0 0 0 0 0 0 0 0 0
7210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 722 0 0 0 0 0 0 0 0 0 0 0 0
7220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 723 0 0 0 0 0 0 0 0 0 0 0 0
7230 0 0 0 0 0 0 0 0 0 0 0 724 0 0 0 0 0 0 0 0 0 0 0 0
7240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 725 0 0 0 0 0 0 0 0 0 0 0 0
7250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 726 0 0 0 0 0 0 0 0 0 0 0 0
7260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 727 0 0 0 0 0 0 0 0 0 0 0 0
7270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 728 0 0 0 0 0 0 0 0 0 0 0 0
7280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 729 0 0 0 0 0 0 0 0 0 0 0 0
7290 0 0 255 255 85 255 255 85 255 255 85 255 255 255 255 255 85 730 0 0 0 0 0 0 0 0 0 0 0 0
730255 255 85 255 255 85 85 255 85 255 255 85 255 255 85 85 255 85 731 85 85 85 0 0 0 0 0 0 0 0 0
731255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 732 85 85 85 170 170 170 255 255 255 255 255 255
732255 255 85 170 85 0 85 85 85 0 0 0 0 0 0 85 85 85 733255 255 255 255 255 255 255 255 255 255 255 255
7330 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 734255 255 255 255 255 255 255 255 255 255 255 255
73485 85 85 0 0 0 85 85 85 85 85 85 0 0 0 85 85 85 735255 255 255 255 255 255 255 255 255 255 255 255
7350 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 736255 255 255 255 255 255 255 255 255 255 255 255
7360 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 737255 255 255 255 255 255 85 85 85 0 0 0
73785 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 738 0 0 0 0 0 0 0 0 0 0 0 0
7380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 739 0 0 0 0 0 0 0 0 0 0 0 0
7390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 740 0 0 0 85 85 85 0 0 0 0 0 0
7400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 741 0 0 0 0 0 0 0 0 0 0 0 0
7410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 742 0 0 0 0 0 0 0 0 0 0 0 0
7420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 743 0 0 0 0 0 0 0 0 0 0 0 0
7430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 744 0 0 0 0 0 0 0 0 0 0 0 0
7440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 745 0 0 0 0 0 0 0 0 0 0 0 0
7450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 746 0 0 0 0 0 0 0 0 0 0 0 0
7460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 747 0 0 0 0 0 0 0 0 0 0 0 0
7470 0 0 0 0 0 0 0 0 0 0 0 748 0 0 0 0 0 0 0 0 0 0 0 0
7480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 749 0 0 0 0 0 0 0 0 0 0 0 0
7490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 750 0 0 0 0 0 0 0 0 0 85 85 85
7500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 751 0 0 0 0 0 0 0 0 0 0 0 0
7510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 752 85 85 85 170 170 170 170 170 170 170 170 170
7520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 753255 255 255 255 255 255 255 255 255 170 170 170
753170 85 0 170 85 0 255 255 85 255 255 85 255 255 255 170 170 170 754170 170 170 170 170 170 255 255 255 255 255 255
754255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 755255 255 255 255 255 255 255 255 255 255 255 255
755170 85 0 255 255 85 255 255 85 170 85 0 255 255 85 255 255 85 756170 170 170 170 170 170 170 170 170 170 170 170
756255 255 85 85 255 85 170 85 0 85 85 85 0 0 0 0 0 0 757170 170 170 170 170 170 170 170 170 85 85 85
75785 85 85 0 0 0 85 85 85 0 0 0 85 85 85 85 85 85 758 0 0 0 0 0 0 0 0 0 0 0 0
75885 85 85 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 759 0 0 0 0 0 0 0 0 0 0 0 0
75985 85 85 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 760 0 0 0 85 85 85 0 0 0 0 0 0
7600 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 761 0 0 0 0 0 0 0 0 0 0 0 0
7610 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 762 0 0 0 0 0 0 0 0 0 0 0 0
7620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 763 0 0 0 0 0 0 0 0 0 0 0 0
7630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 764 0 0 0 0 0 0 0 0 0 0 0 0
7640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 765 0 0 0 0 0 0 0 0 0 0 0 0
7650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 766 0 0 0 0 0 0 0 0 0 0 0 0
7660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 767 0 0 0 0 0 0 0 0 0 0 0 0
7670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 768 0 0 0 0 0 0 0 0 0 0 0 0
7680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 769 0 0 0 0 0 0 0 0 0 0 0 0
7690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 770 0 0 0 0 0 0 0 0 0 85 85 85
7700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 771 0 0 0 0 0 0 0 0 0 0 0 0
7710 0 0 0 0 0 0 0 0 0 0 0 772170 170 170 170 170 170 170 170 170 255 255 255
7720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 773255 255 255 255 255 255 255 255 255 255 255 255
7730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 774170 170 170 255 255 255 255 255 255 255 255 255
7740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 775255 255 255 255 255 255 255 255 255 255 255 255
7750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 776255 255 255 255 255 255 170 170 170 170 170 170
7760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 777170 170 170 170 170 170 170 170 170 85 85 85
777255 255 85 85 255 85 255 255 85 170 170 170 255 255 255 255 255 85 778 0 0 0 0 0 0 85 85 85 0 0 0
778255 255 85 255 255 85 170 85 0 255 255 85 255 255 85 255 255 85 779 0 0 0 0 0 0 0 0 0 0 0 0
779255 255 85 255 255 85 255 255 85 255 255 85 85 255 85 170 85 0 780 0 0 0 0 0 0 85 85 85 0 0 0
780255 255 85 170 85 0 170 85 0 0 0 0 85 85 85 0 0 0 781 0 0 0 0 0 0 0 0 0 0 0 0
78185 85 85 85 85 85 85 85 85 170 170 170 170 170 170 170 170 170 782 0 0 0 0 0 0 0 0 0 0 0 0
78285 255 85 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 783 0 0 0 0 0 0 0 0 0 0 0 0
783170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 784 0 0 0 0 0 0 0 0 0 0 0 0
784170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 785 0 0 0 0 0 0 0 0 0 0 0 0
785170 170 170 170 170 170 170 170 170 170 170 170 255 255 85 170 170 170 786 0 0 0 0 0 0 0 0 0 0 0 0
78685 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 787 0 0 0 0 0 0 0 0 0 0 0 0
7870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 788 0 0 0 0 0 0 0 0 0 0 0 0
7880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 789 0 0 0 0 0 0 0 0 0 0 0 0
7890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 790 0 0 0 0 0 0 85 85 85 0 0 0
7900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 791 0 0 0 0 0 0 0 0 0 0 0 0
7910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 792170 170 170 255 255 255 255 255 255 255 255 255
7920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 793255 255 255 255 255 255 255 255 255 255 255 255
7930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 794255 255 255 255 255 255 255 255 255 255 255 255
7940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 795255 255 255 255 255 255 255 255 255 255 255 255
7950 0 0 0 0 0 0 0 0 0 0 0 796255 255 255 255 255 255 255 255 255 255 255 255
7960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 797255 255 255 170 170 170 170 170 170 170 170 170
7970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 798 0 0 0 0 0 0 0 0 0 85 85 85
7980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 799 85 85 85 0 0 0 0 0 0 0 0 0
7990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 800 0 0 0 0 0 0 85 85 85 0 0 0
8000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 0 801 0 0 0 0 0 0 0 0 0 0 0 0
801170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 802 0 0 0 0 0 0 0 0 0 0 0 0
802255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 803 0 0 0 0 0 0 0 0 0 0 0 0
803255 255 85 255 255 85 85 255 85 255 255 85 170 85 0 170 85 0 804 0 0 0 0 0 0 0 0 0 0 0 0
804170 85 0 85 255 85 255 255 85 85 85 85 170 170 170 170 170 170 805 0 0 0 0 0 0 0 0 0 0 0 0
805170 170 170 170 170 170 170 170 170 85 255 85 170 170 170 170 170 170 806 0 0 0 0 0 0 0 0 0 0 0 0
80685 85 85 170 170 170 170 170 170 170 85 0 170 170 170 170 170 170 807 0 0 0 0 0 0 0 0 0 0 0 0
80785 255 85 170 170 170 170 85 0 170 170 170 85 255 85 255 85 85 808 0 0 0 0 0 0 0 0 0 0 0 0
80885 255 85 170 170 170 255 255 85 85 85 85 255 255 85 170 170 170 809 0 0 0 0 0 0 0 0 0 0 0 0
80985 255 85 170 170 170 255 255 85 170 170 170 170 170 170 85 85 85 810 0 0 0 0 0 0 85 85 85 0 0 0
8100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 811 85 85 85 0 0 0 0 0 0 85 85 85
8110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 812255 255 255 255 255 255 255 255 255 255 255 255
8120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 813255 255 255 255 255 255 255 255 255 255 255 255
8130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 814255 255 255 255 255 255 255 255 255 255 255 255
8140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 815255 255 255 255 255 255 255 255 255 255 255 255
8150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 816255 255 255 255 255 255 255 255 255 255 255 255
8160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 817255 255 255 255 255 255 170 170 170 170 170 170
8170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 818 85 85 85 0 0 0 0 0 0 0 0 0
8180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 819 0 0 0 85 85 85 0 0 0 0 0 0
8190 0 0 0 0 0 0 0 0 0 0 0 820 0 0 0 0 0 0 0 0 0 85 85 85
8200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 821 0 0 0 0 0 0 0 0 0 0 0 0
8210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 822 0 0 0 0 0 0 0 0 0 0 0 0
8220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 823 0 0 0 0 0 0 0 0 0 0 0 0
8230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 824 0 0 0 0 0 0 0 0 0 0 0 0
8240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 85 825 0 0 0 0 0 0 0 0 0 0 0 0
825255 255 85 255 255 85 255 255 85 255 255 255 255 255 85 255 255 85 826 0 0 0 0 0 0 0 0 0 0 0 0
826255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 827 0 0 0 0 0 0 0 0 0 0 0 0
827255 255 85 255 255 85 255 255 85 170 85 0 0 170 0 85 85 85 828 0 0 0 0 0 0 0 0 0 0 0 0
828170 170 170 170 170 170 255 255 85 170 170 170 170 170 170 85 255 85 829 0 0 0 0 0 0 0 0 0 0 0 0
829255 85 85 85 255 85 85 85 85 255 85 85 85 85 85 170 170 170 830 0 0 0 85 85 85 0 0 0 0 0 0
830170 85 0 170 170 170 85 85 85 85 255 85 85 85 85 85 85 85 831 85 85 85 0 0 0 0 0 0 170 170 170
83185 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 832255 255 255 255 255 255 255 255 255 255 255 255
8320 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 833255 255 255 255 255 255 255 255 255 255 255 255
833170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 834255 255 255 255 255 255 255 255 255 255 255 255
8340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 835255 255 255 255 255 255 255 255 255 255 255 255
8350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 836255 255 255 255 255 255 255 255 255 255 255 255
8360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 837255 255 255 255 255 255 255 255 255 255 255 255
8370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 838170 170 170 85 85 85 0 0 0 0 0 0
8380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 839 0 0 0 85 85 85 85 85 85 0 0 0
8390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 840 0 0 0 0 0 0 0 0 0 85 85 85
8400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 841 0 0 0 0 0 0 0 0 0 0 0 0
8410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 842 0 0 0 0 0 0 0 0 0 0 0 0
8420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 843 0 0 0 0 0 0 0 0 0 0 0 0
8430 0 0 0 0 0 0 0 0 0 0 0 844 0 0 0 0 0 0 0 0 0 0 0 0
8440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 845 0 0 0 0 0 0 0 0 0 0 0 0
8450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 846 0 0 0 0 0 0 0 0 0 0 0 0
8460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 847 0 0 0 0 0 0 0 0 0 0 0 0
8470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 848 0 0 0 0 0 0 0 0 0 0 0 0
8480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 85 849 0 0 0 0 0 0 0 0 0 0 0 0
849170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 850 0 0 0 85 85 85 0 0 0 85 85 85
850255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 851 0 0 0 0 0 0 85 85 85 255 255 255
851255 255 85 255 255 85 170 85 0 255 255 85 85 85 85 85 85 85 852255 255 255 255 255 255 255 255 255 255 255 255
852255 255 85 170 170 170 85 85 85 85 85 85 0 0 0 85 85 85 853255 255 255 255 255 255 255 255 255 255 255 255
8530 0 0 85 85 85 85 85 85 170 170 170 170 85 0 170 170 170 854255 255 255 255 255 255 255 255 255 255 255 255
854170 170 170 255 255 85 170 170 170 85 85 85 85 85 85 85 85 85 855255 255 255 255 255 255 255 255 255 255 255 255
8550 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 856255 255 255 255 255 255 255 255 255 255 255 255
85685 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 857255 255 255 255 255 255 255 255 255 255 255 255
8570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 858255 255 255 170 170 170 0 0 0 85 85 85
8580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 859 85 85 85 0 0 0 85 85 85 0 0 0
8590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 860 0 0 0 0 0 0 0 0 0 85 85 85
8600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 861 0 0 0 0 0 0 0 0 0 0 0 0
8610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 862 0 0 0 0 0 0 0 0 0 0 0 0
8620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 863 0 0 0 0 0 0 0 0 0 0 0 0
8630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 864 0 0 0 0 0 0 0 0 0 0 0 0
8640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 865 0 0 0 0 0 0 0 0 0 0 0 0
8650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 866 0 0 0 0 0 0 0 0 0 0 0 0
8660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 867 0 0 0 0 0 0 0 0 0 0 0 0
8670 0 0 0 0 0 0 0 0 0 0 0 868 0 0 0 0 0 0 0 0 0 0 0 0
8680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 869 0 0 0 0 0 0 0 0 0 0 0 0
8690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 870 0 0 0 85 85 85 0 0 0 85 85 85
8700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 871 0 0 0 85 85 85 170 170 170 255 255 255
8710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 872255 255 255 255 255 255 255 255 255 255 255 255
8720 0 0 0 0 0 0 0 0 0 0 0 170 85 0 255 255 85 873255 255 255 255 255 255 255 255 255 255 255 255
873255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 874255 255 255 255 255 255 255 255 255 255 255 255
874255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 875255 255 255 255 255 255 255 255 255 255 255 255
875255 255 85 255 255 85 255 255 85 170 85 0 170 85 0 0 170 0 876255 255 255 255 255 255 255 255 255 255 255 255
8760 0 0 170 85 0 170 85 0 0 170 0 0 0 0 0 0 0 877255 255 255 255 255 255 255 255 255 255 255 255
87785 85 85 0 0 0 85 85 85 85 85 85 170 170 170 85 85 85 878255 255 255 170 170 170 0 0 0 85 85 85
878170 170 170 85 85 85 85 85 85 170 170 170 170 85 0 85 85 85 879 85 85 85 0 0 0 85 85 85 0 0 0
87985 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 880 0 0 0 0 0 0 0 0 0 0 0 0
8800 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 881 85 85 85 0 0 0 0 0 0 0 0 0
88185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 882 0 0 0 0 0 0 0 0 0 0 0 0
8820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 883 0 0 0 0 0 0 0 0 0 0 0 0
8830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 884 0 0 0 0 0 0 0 0 0 0 0 0
8840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 885 0 0 0 0 0 0 0 0 0 0 0 0
8850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 886 0 0 0 0 0 0 0 0 0 0 0 0
8860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 887 0 0 0 0 0 0 0 0 0 0 0 0
8870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 888 0 0 0 0 0 0 0 0 0 0 0 0
8880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 889 0 0 0 0 0 0 0 0 0 0 0 0
8890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 890 85 85 85 0 0 0 0 0 0 85 85 85
8900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 891 0 0 0 170 170 170 255 255 255 255 255 255
8910 0 0 0 0 0 0 0 0 0 0 0 892255 255 255 255 255 255 255 255 255 255 255 255
8920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 893255 255 255 255 255 255 255 255 255 255 255 255
8930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 894255 255 255 255 255 255 255 255 255 255 255 255
8940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 895255 255 255 255 255 255 255 255 255 255 255 255
8950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 896255 255 255 255 255 255 255 255 255 255 255 255
8960 0 0 0 0 0 0 0 0 0 0 0 255 255 85 170 85 0 897255 255 255 255 255 255 255 255 255 255 255 255
897255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 898255 255 255 255 255 255 85 85 85 0 0 0
898255 255 85 255 255 85 255 255 85 170 85 0 255 255 85 255 255 85 899 0 0 0 0 0 0 0 0 0 85 85 85
899170 85 0 255 255 85 85 255 85 255 255 85 255 255 85 170 85 0 900 0 0 0 0 0 0 0 0 0 0 0 0
900170 85 0 255 255 85 170 85 0 0 0 0 0 0 0 0 0 0 901 85 85 85 0 0 0 0 0 0 0 0 0
9010 0 0 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85 902 0 0 0 0 0 0 0 0 0 0 0 0
90285 85 85 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 903 0 0 0 0 0 0 0 0 0 0 0 0
9030 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 904 0 0 0 0 0 0 0 0 0 0 0 0
90485 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 905 0 0 0 0 0 0 0 0 0 0 0 0
9050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 906 0 0 0 0 0 0 0 0 0 0 0 0
9060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 907 0 0 0 0 0 0 0 0 0 0 0 0
9070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 908 0 0 0 0 0 0 0 0 0 0 0 0
9080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 909 0 0 0 0 0 0 0 0 0 0 0 0
9090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 910 85 85 85 0 0 0 85 85 85 0 0 0
9100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 911 0 0 0 255 255 255 255 255 255 255 255 255
9110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 912255 255 255 255 255 255 255 255 255 255 255 255
9120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 913255 255 255 255 255 255 255 255 255 255 255 255
9130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 914255 255 255 255 255 255 255 255 255 255 255 255
9140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 915255 255 255 255 255 255 255 255 255 255 255 255
9150 0 0 0 0 0 0 0 0 0 0 0 916255 255 255 255 255 255 255 255 255 255 255 255
9160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 917255 255 255 255 255 255 255 255 255 255 255 255
9170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 918255 255 255 255 255 255 170 170 170 0 0 0
9180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 919 0 0 0 0 0 0 0 0 0 85 85 85
9190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 920 0 0 0 0 0 0 0 0 0 0 0 0
9200 0 0 0 0 0 0 0 0 0 0 0 255 255 85 255 255 85 921 85 85 85 0 0 0 0 0 0 0 0 0
921255 255 85 255 255 85 170 85 0 255 255 85 255 255 85 255 255 85 922 0 0 0 0 0 0 0 0 0 0 0 0
922255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 923 0 0 0 0 0 0 0 0 0 0 0 0
923255 255 85 255 255 85 255 255 85 170 85 0 255 255 85 255 255 85 924 0 0 0 0 0 0 0 0 0 0 0 0
92485 255 85 170 85 0 0 170 0 85 85 85 0 0 0 85 85 85 925 0 0 0 0 0 0 0 0 0 0 0 0
9250 0 0 85 85 85 0 0 0 85 85 85 85 85 85 85 85 85 926 0 0 0 0 0 0 0 0 0 0 0 0
92685 85 85 85 85 85 85 85 85 85 85 85 0 0 0 85 85 85 927 0 0 0 0 0 0 0 0 0 0 0 0
9270 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 928 0 0 0 0 0 0 0 0 0 0 0 0
9280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 929 0 0 0 0 0 0 0 0 0 85 85 85
9290 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 930 0 0 0 0 0 0 85 85 85 0 0 0
9300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 931 85 85 85 255 255 255 255 255 255 255 255 255
9310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 932255 255 255 255 255 255 255 255 255 255 255 255
9320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 933255 255 255 255 255 255 255 255 255 255 255 255
9330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 934255 255 255 255 255 255 255 255 255 255 255 255
9340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 935255 255 255 255 255 255 255 255 255 255 255 255
9350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 936255 255 255 255 255 255 255 255 255 255 255 255
9360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 937255 255 255 255 255 255 255 255 255 255 255 255
9370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 938255 255 255 255 255 255 170 170 170 0 0 0
9380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 939 0 0 0 0 0 0 0 0 0 85 85 85
9390 0 0 0 0 0 0 0 0 0 0 0 940 0 0 0 0 0 0 0 0 0 0 0 0
9400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 941 85 85 85 0 0 0 0 0 0 0 0 0
9410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 942 0 0 0 0 0 0 0 0 0 0 0 0
9420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 943 0 0 0 0 0 0 0 0 0 0 0 0
9430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 944 0 0 0 0 0 0 0 0 0 0 0 0
9440 0 0 0 0 0 0 0 0 0 170 0 170 85 0 255 255 85 945 0 0 0 0 0 0 0 0 0 0 0 0
94585 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 946 0 0 0 0 0 0 0 0 0 0 0 0
946255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 947 0 0 0 0 0 0 0 0 0 0 0 0
947170 85 0 255 255 85 85 255 85 255 255 85 255 255 85 170 85 0 948 0 0 0 0 0 0 0 0 0 0 0 0
94885 255 85 170 85 0 170 85 0 0 0 0 0 0 0 0 0 0 949 0 0 0 0 0 0 0 0 0 85 85 85
9490 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 950 0 0 0 85 85 85 0 0 0 0 0 0
9500 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 951170 170 170 255 255 255 255 255 255 255 255 255
9510 0 0 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 952255 255 255 255 255 255 255 255 255 255 255 255
9520 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 953255 255 255 255 255 255 255 255 255 255 255 255
9530 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 954255 255 255 255 255 255 255 255 255 255 255 255
9540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 955255 255 255 255 255 255 255 255 255 255 255 255
9550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 956255 255 255 255 255 255 255 255 255 255 255 255
9560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 957255 255 255 255 255 255 255 255 255 255 255 255
9570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 958255 255 255 255 255 255 170 170 170 0 0 0
9580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 959 0 0 0 0 0 0 0 0 0 85 85 85
9590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 960 0 0 0 0 0 0 0 0 0 0 0 0
9600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 961 0 0 0 85 85 85 0 0 0 0 0 0
9610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 962 0 0 0 0 0 0 0 0 0 0 0 0
9620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 963 0 0 0 0 0 0 0 0 0 0 0 0
9630 0 0 0 0 0 0 0 0 0 0 0 964 0 0 0 0 0 0 0 0 0 0 0 0
9640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 965 0 0 0 0 0 0 0 0 0 0 0 0
9650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 966 0 0 0 0 0 0 0 0 0 0 0 0
9660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 967 0 0 0 0 0 0 0 0 0 0 0 0
9670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 968 0 0 0 0 0 0 0 0 0 0 0 0
9680 0 0 0 0 0 0 0 0 170 85 0 255 255 85 255 255 85 969 0 0 0 0 0 0 85 85 85 0 0 0
969255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 970 0 0 0 85 85 85 0 0 0 0 0 0
970255 255 85 170 85 0 255 255 85 85 255 85 255 255 85 170 85 0 971255 255 255 255 255 255 255 255 255 255 255 255
971255 255 85 255 255 85 170 85 0 255 255 85 170 85 0 85 255 85 972255 255 255 255 255 255 255 255 255 255 255 255
972170 85 0 170 85 0 0 0 0 0 0 0 0 0 0 85 85 85 973255 255 255 255 255 255 170 170 170 255 255 255
9730 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 974255 255 255 255 255 255 255 255 255 255 255 255
9740 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 975255 255 255 255 255 255 255 255 255 255 255 255
9750 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 976255 255 255 255 255 255 255 255 255 255 255 255
9760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 977255 255 255 255 255 255 255 255 255 255 255 255
97785 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 978255 255 255 255 255 255 255 255 255 0 0 0
9780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 979 0 0 0 0 0 0 0 0 0 85 85 85
9790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 980 0 0 0 0 0 0 0 0 0 0 0 0
9800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 981 0 0 0 85 85 85 0 0 0 0 0 0
9810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 982 0 0 0 0 0 0 0 0 0 0 0 0
9820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 983 0 0 0 0 0 0 0 0 0 0 0 0
9830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 984 0 0 0 0 0 0 0 0 0 0 0 0
9840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 985 0 0 0 0 0 0 0 0 0 0 0 0
9850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 986 0 0 0 0 0 0 0 0 0 0 0 0
9860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 987 0 0 0 0 0 0 0 0 0 0 0 0
9870 0 0 0 0 0 0 0 0 0 0 0 988 0 0 0 0 0 0 0 0 0 0 0 0
9880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 989 0 0 0 85 85 85 0 0 0 0 0 0
9890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 990 0 0 0 85 85 85 0 0 0 0 0 0
9900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 991255 255 255 255 255 255 255 255 255 255 255 255
9910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 992255 255 255 255 255 255 255 255 255 255 255 255
9920 0 0 0 0 0 0 0 0 85 85 85 255 255 85 170 85 0 993255 255 255 255 255 255 170 170 170 255 255 255
993255 255 85 170 85 0 255 255 85 170 85 0 255 255 85 85 255 85 994255 255 255 255 255 255 255 255 255 255 255 255
994255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 995255 255 255 255 255 255 255 255 255 255 255 255
995255 255 85 170 85 0 255 255 85 85 255 85 170 85 0 170 85 0 996255 255 255 255 255 255 255 255 255 255 255 255
9960 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 997255 255 255 255 255 255 255 255 255 255 255 255
9970 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 998255 255 255 255 255 255 255 255 255 0 0 0
9980 0 0 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 999 0 0 0 0 0 0 0 0 0 85 85 85
9990 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1000 0 0 0 0 0 0 0 0 0 0 0 0
10000 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 1001 0 0 0 85 85 85 0 0 0 0 0 0
10010 0 0 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85 1002 0 0 0 0 0 0 0 0 0 0 0 0
100285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1003 0 0 0 0 0 0 0 0 0 0 0 0
10030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1004 0 0 0 0 0 0 0 0 0 0 0 0
10040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1005 0 0 0 0 0 0 0 0 0 0 0 0
10050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1006 0 0 0 0 0 0 0 0 0 0 0 0
10060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1007 0 0 0 0 0 0 0 0 0 0 0 0
10070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1008 0 0 0 0 0 0 0 0 0 0 0 0
10080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1009 0 0 0 85 85 85 0 0 0 0 0 0
10090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1010 0 0 0 85 85 85 0 0 0 85 85 85
10100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1011255 255 255 255 255 255 255 255 255 255 255 255
10110 0 0 0 0 0 0 0 0 0 0 0 1012255 255 255 255 255 255 255 255 255 255 255 255
10120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1013255 255 255 255 255 255 170 170 170 255 255 255
10130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1014255 255 255 255 255 255 255 255 255 255 255 255
10140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1015255 255 255 255 255 255 255 255 255 255 255 255
10150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1016255 255 255 255 255 255 255 255 255 255 255 255
10160 0 0 0 0 0 0 0 0 170 85 0 255 255 85 255 255 85 1017255 255 255 255 255 255 255 255 255 255 255 255
1017255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 1018255 255 255 255 255 255 255 255 255 0 0 0
1018255 255 85 255 255 85 170 85 0 255 255 85 170 85 0 85 255 85 1019 0 0 0 0 0 0 0 0 0 85 85 85
1019255 255 85 85 255 85 170 85 0 170 85 0 85 255 85 170 85 0 1020 0 0 0 0 0 0 0 0 0 0 0 0
10200 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1021 0 0 0 85 85 85 0 0 0 0 0 0
10210 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1022 0 0 0 0 0 0 0 0 0 0 0 0
102285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1023 0 0 0 0 0 0 0 0 0 0 0 0
10230 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 1024 0 0 0 0 0 0 0 0 0 0 0 0
10240 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 1025 0 0 0 0 0 0 0 0 0 0 0 0
102585 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 1026 0 0 0 0 0 0 0 0 0 0 0 0
102685 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1027 0 0 0 0 0 0 0 0 0 0 0 0
10270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1028 0 0 0 0 0 0 0 0 0 0 0 0
10280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1029 0 0 0 85 85 85 0 0 0 0 0 0
10290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1030 0 0 0 85 85 85 0 0 0 85 85 85
10300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1031255 255 255 255 255 255 255 255 255 255 255 255
10310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1032255 255 255 255 255 255 255 255 255 255 255 255
10320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1033255 255 255 255 255 255 170 170 170 255 255 255
10330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1034255 255 255 255 255 255 255 255 255 255 255 255
10340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1035255 255 255 255 255 255 255 255 255 255 255 255
10350 0 0 0 0 0 0 0 0 0 0 0 1036255 255 255 255 255 255 255 255 255 255 255 255
10360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1037255 255 255 255 255 255 255 255 255 255 255 255
10370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1038255 255 255 255 255 255 255 255 255 0 0 0
10380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1039 0 0 0 0 0 0 0 0 0 85 85 85
10390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1040 0 0 0 0 0 0 0 0 0 0 0 0
10400 0 0 0 0 0 0 0 0 85 85 85 255 255 85 85 255 85 1041 0 0 0 85 85 85 0 0 0 0 0 0
1041255 255 85 255 255 85 85 255 85 255 255 85 255 255 85 255 255 85 1042 0 0 0 0 0 0 0 0 0 0 0 0
1042255 255 85 170 85 0 255 255 85 85 255 85 255 255 85 255 255 85 1043 0 0 0 0 0 0 0 0 0 0 0 0
1043170 85 0 170 85 0 85 255 85 170 85 0 0 0 0 0 0 0 1044 0 0 0 0 0 0 0 0 0 0 0 0
10440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1045 0 0 0 0 0 0 0 0 0 0 0 0
10450 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1046 0 0 0 0 0 0 0 0 0 0 0 0
10460 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 1047 0 0 0 0 0 0 0 0 0 0 0 0
10470 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1048 0 0 0 0 0 0 0 0 0 0 0 0
10480 0 0 85 85 85 85 85 85 170 170 170 170 170 170 170 170 170 1049 0 0 0 85 85 85 0 0 0 0 0 0
1049170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 85 85 85 1050 0 0 0 0 0 0 85 85 85 85 85 85
105085 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1051255 255 255 255 255 255 255 255 255 255 255 255
10510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1052255 255 255 255 255 255 255 255 255 255 255 255
10520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1053255 255 255 255 255 255 170 170 170 255 255 255
10530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1054255 255 255 255 255 255 255 255 255 255 255 255
10540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1055255 255 255 255 255 255 255 255 255 255 255 255
10550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1056255 255 255 255 255 255 255 255 255 255 255 255
10560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1057255 255 255 255 255 255 255 255 255 255 255 255
10570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1058255 255 255 255 255 255 255 255 255 0 0 0
10580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1059 0 0 0 0 0 0 0 0 0 85 85 85
10590 0 0 0 0 0 0 0 0 0 0 0 1060 0 0 0 0 0 0 0 0 0 0 0 0
10600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1061 0 0 0 85 85 85 0 0 0 0 0 0
10610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1062 0 0 0 0 0 0 0 0 0 0 0 0
10620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1063 0 0 0 0 0 0 0 0 0 0 0 0
10630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1064 0 0 0 0 0 0 0 0 0 0 0 0
10640 0 0 0 0 0 0 0 0 85 85 85 255 255 85 255 255 85 1065 0 0 0 0 0 0 0 0 0 0 0 0
1065170 85 0 255 255 85 255 255 85 170 85 0 255 255 85 170 85 0 1066 0 0 0 0 0 0 0 0 0 0 0 0
1066255 255 85 85 255 85 170 85 0 255 255 85 170 85 0 85 255 85 1067 0 0 0 0 0 0 0 0 0 0 0 0
1067170 85 0 170 85 0 0 0 0 0 0 0 0 0 0 0 0 0 1068 0 0 0 0 0 0 0 0 0 0 0 0
10680 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 1069 0 0 0 85 85 85 0 0 0 0 0 0
106985 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1070 0 0 0 0 0 0 0 0 0 85 85 85
10700 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1071255 255 255 255 255 255 255 255 255 255 255 255
10710 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1072255 255 255 255 255 255 255 255 255 255 255 255
107285 85 85 0 0 0 170 170 170 170 170 170 170 170 170 170 170 170 1073255 255 255 255 255 255 170 170 170 255 255 255
1073170 170 170 170 170 170 170 170 170 85 85 85 85 85 85 85 85 85 1074255 255 255 255 255 255 255 255 255 255 255 255
107485 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1075255 255 255 255 255 255 255 255 255 255 255 255
10750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1076255 255 255 255 255 255 255 255 255 255 255 255
10760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1077255 255 255 255 255 255 255 255 255 255 255 255
10770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1078255 255 255 255 255 255 255 255 255 0 0 0
10780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1079 85 85 85 85 85 85 85 85 85 85 85 85
10790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1080 85 85 85 0 0 0 0 0 0 0 0 0
10800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1081 0 0 0 85 85 85 0 0 0 0 0 0
10810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1082 0 0 0 0 0 0 0 0 0 0 0 0
10820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1083 0 0 0 0 0 0 0 0 0 0 0 0
10830 0 0 0 0 0 0 0 0 0 0 0 1084 0 0 0 0 0 0 0 0 0 0 0 0
10840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1085 0 0 0 0 0 0 0 0 0 0 0 0
10850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1086 0 0 0 0 0 0 0 0 0 0 0 0
10860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1087 0 0 0 0 0 0 0 0 0 0 0 0
10870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1088 0 0 0 0 0 0 0 0 0 0 0 0
10880 0 0 0 0 0 0 0 0 0 0 0 170 85 0 255 255 85 1089 0 0 0 85 85 85 0 0 0 170 85 0
1089255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 85 255 85 1090255 255 85 170 85 0 0 0 0 0 0 0
1090170 85 0 255 255 85 170 85 0 85 255 85 170 85 0 170 85 0 1091 85 85 85 255 255 255 255 255 255 255 255 255
10910 170 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1092255 255 255 255 255 255 255 255 255 255 255 255
10920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1093255 255 255 255 255 255 170 170 170 255 255 255
10930 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1094255 255 255 255 255 255 255 255 255 255 255 255
10940 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1095255 255 255 255 255 255 255 255 255 255 255 255
10950 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 1096255 255 255 255 255 255 255 255 255 255 255 255
10960 0 0 85 85 85 170 170 170 170 170 170 255 255 255 170 170 170 1097255 255 255 255 255 255 255 255 255 255 255 255
1097170 170 170 170 170 170 85 85 85 85 85 85 85 85 85 85 85 85 1098255 255 255 255 255 255 255 255 255 85 85 85
10980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1099 0 0 0 0 0 0 0 0 0 0 0 0
10990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1100 0 0 0 85 85 85 85 85 85 0 0 0
11000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1101 0 0 0 85 85 85 0 0 0 0 0 0
11010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1102 0 0 0 0 0 0 0 0 0 0 0 0
11020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1103 0 0 0 0 0 0 0 0 0 0 0 0
11030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1104 0 0 0 0 0 0 0 0 0 0 0 0
11040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1105 0 0 0 0 0 0 0 0 0 0 0 0
11050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1106 0 0 0 0 0 0 0 0 0 0 0 0
11060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1107 0 0 0 0 0 0 0 0 0 0 0 0
11070 0 0 0 0 0 0 0 0 0 0 0 1108 0 0 0 0 0 0 0 0 0 0 0 0
11080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1109 0 0 0 0 0 0 170 85 0 255 255 85
11090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1110170 85 0 255 255 85 170 85 0 0 0 0
11100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1111 0 0 0 85 85 85 255 255 255 255 255 255
11110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1112255 255 255 255 255 255 255 255 255 255 255 255
11120 0 0 0 0 0 0 0 0 0 0 0 85 255 85 255 255 85 1113255 255 255 255 255 255 170 170 170 255 255 255
1113170 85 0 255 255 85 255 255 85 170 85 0 85 255 85 170 85 0 1114255 255 255 255 255 255 255 255 255 255 255 255
1114255 255 85 170 85 0 0 170 0 170 85 0 0 0 0 0 0 0 1115255 255 255 255 255 255 255 255 255 255 255 255
11150 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1116255 255 255 255 255 255 255 255 255 255 255 255
11160 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 1117255 255 255 255 255 255 255 255 255 255 255 255
111785 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1118255 255 85 170 85 0 255 255 85 0 0 0
11180 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1119 0 0 0 0 0 0 0 0 0 0 0 0
111985 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1120 0 0 0 0 0 0 85 85 85 85 85 85
112085 85 85 0 0 0 170 170 170 170 170 170 170 170 170 85 85 85 1121 85 85 85 0 0 0 0 0 0 0 0 0
112185 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0 1122 0 0 0 0 0 0 0 0 0 0 0 0
11220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1123 0 0 0 0 0 0 0 0 0 0 0 0
11230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1124 0 0 0 0 0 0 0 0 0 0 0 0
11240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1125 0 0 0 0 0 0 0 0 0 0 0 0
11250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1126 0 0 0 0 0 0 0 0 0 0 0 0
11260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1127 0 0 0 0 0 0 0 0 0 0 0 0
11270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1128 0 0 0 0 0 0 0 0 0 0 0 0
11280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1129 0 0 0 170 85 0 255 255 85 170 85 0
11290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1130255 255 85 170 85 0 255 255 85 170 85 0
11300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1131 0 0 0 0 0 0 85 85 85 255 255 255
11310 0 0 0 0 0 0 0 0 0 0 0 1132255 255 255 255 255 255 255 255 255 255 255 255
11320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1133255 255 255 255 255 255 255 255 255 255 255 255
11330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1134255 255 255 255 255 255 255 255 255 255 255 255
11340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1135255 255 255 255 255 255 255 255 255 255 255 255
11350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1136255 255 255 255 255 255 255 255 255 255 255 255
11360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 85 1137255 255 255 255 255 255 255 255 255 255 255 85
1137255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 170 85 0 1138170 85 0 255 255 85 170 85 0 0 0 0
11380 170 0 85 85 85 85 85 85 0 0 0 0 0 0 85 85 85 1139 0 0 0 0 0 0 0 0 0 0 0 0
11390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1140 0 0 0 0 0 0 0 0 0 0 0 0
11400 0 0 0 0 0 85 85 85 0 0 0 85 85 85 85 85 85 1141170 85 0 0 0 0 0 0 0 0 0 0
114185 85 85 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 1142 0 0 0 0 0 0 0 0 0 0 0 0
114285 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1143 0 0 0 0 0 0 0 0 0 0 0 0
11430 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1144 0 0 0 0 0 0 0 0 0 0 0 0
11440 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1145 0 0 0 0 0 0 0 0 0 0 0 0
114585 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1146 0 0 0 0 0 0 0 0 0 0 0 0
11460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1147 0 0 0 0 0 0 0 0 0 0 0 0
11470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1148 0 0 0 0 0 0 0 0 0 0 0 0
11480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1149170 85 0 255 255 85 170 85 0 255 255 85
11490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1150170 85 0 255 255 85 170 85 0 255 255 85
11500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1151170 85 0 0 0 0 0 0 0 85 85 85
11510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1152255 255 255 255 255 255 255 255 255 255 255 255
11520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1153255 255 255 255 255 255 255 255 255 255 255 255
11530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1154255 255 255 255 255 255 255 255 255 255 255 255
11540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1155255 255 255 255 255 255 255 255 255 255 255 255
11550 0 0 0 0 0 0 0 0 0 0 0 1156255 255 255 255 255 255 255 255 255 255 255 255
11560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1157255 255 255 255 255 255 255 255 255 170 85 0
11570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1158255 255 85 170 85 0 255 255 85 0 0 0
11580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1159 0 0 0 0 0 0 0 0 0 0 0 0
11590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1160 0 0 0 0 0 0 0 0 0 170 85 0
11600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1161255 255 85 170 85 0 0 0 0 0 0 0
1161255 255 85 255 255 85 170 85 0 0 170 0 85 85 85 85 85 85 1162 0 0 0 0 0 0 0 0 0 0 0 0
116285 85 85 85 85 85 0 0 0 85 85 85 85 85 85 0 0 0 1163 0 0 0 0 0 0 0 0 0 0 0 0
116385 85 85 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 1164 0 0 0 0 0 0 0 0 0 0 0 0
116485 85 85 85 85 85 85 85 85 170 170 170 170 170 170 85 85 85 1165 0 0 0 0 0 0 0 0 0 0 0 0
1165170 170 170 170 170 170 170 170 170 170 170 170 85 85 85 85 85 85 1166 0 0 0 0 0 0 0 0 0 0 0 0
116685 85 85 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0 1167 0 0 0 0 0 0 0 0 0 170 85 0
116785 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1168255 255 85 170 85 0 255 255 85 170 85 0
116885 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1169255 255 85 170 85 0 255 255 85 170 85 0
11690 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1170255 255 85 170 85 0 255 255 85 170 85 0
117085 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1171255 255 85 0 0 0 0 0 0 0 0 0
11710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1172 85 85 85 255 255 255 255 255 255 255 255 255
11720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1173255 255 255 255 255 255 255 255 255 255 255 255
11730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1174255 255 255 255 255 255 255 255 255 255 255 255
11740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1175255 255 255 255 255 255 255 255 255 255 255 255
11750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1176255 255 255 255 255 255 255 255 255 255 255 255
11760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1177255 255 255 255 255 255 255 255 255 255 255 85
11770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1178170 85 0 255 255 85 170 85 0 0 0 0
11780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1179 0 0 0 0 0 0 0 0 0 0 0 0
11790 0 0 0 0 0 0 0 0 0 0 0 1180 0 0 0 0 0 0 0 0 0 255 255 85
11800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1181170 85 0 255 255 85 0 0 0 0 0 0
11810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1182 0 0 0 0 0 0 0 0 0 0 0 0
11820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1183 0 0 0 0 0 0 0 0 0 0 0 0
11830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1184 0 0 0 0 0 0 0 0 0 0 0 0
11840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1185 0 0 0 0 0 0 0 0 0 0 0 0
11850 0 0 170 85 0 85 85 85 0 0 0 0 0 0 0 0 0 1186 0 0 0 0 0 0 0 0 0 0 0 0
118685 85 85 85 85 85 85 85 85 85 85 85 170 170 170 85 85 85 1187 0 0 0 0 0 0 170 85 0 255 255 85
118785 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 1188170 85 0 255 255 85 170 85 0 255 255 85
1188170 170 170 170 170 170 170 170 170 170 170 170 255 255 255 255 255 255 1189170 85 0 255 255 85 170 85 0 255 255 85
1189255 255 255 255 255 255 255 255 255 170 170 170 255 255 255 170 170 170 1190170 85 0 255 255 85 170 85 0 255 255 85
1190170 170 170 170 170 170 170 170 170 85 85 85 85 85 85 85 85 85 1191170 85 0 255 255 85 0 0 0 0 0 0
11910 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1192 0 0 0 85 85 85 255 255 255 255 255 255
11920 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1193255 255 255 255 255 255 255 255 255 255 255 255
11930 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1194255 255 255 255 255 255 255 255 255 255 255 255
11940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1195255 255 255 255 255 255 255 255 255 255 255 255
11950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1196255 255 255 255 255 255 255 255 255 255 255 255
11960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1197255 255 255 255 255 255 170 170 170 170 85 0
11970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1198255 255 85 170 85 0 255 255 85 170 85 0
11980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1199 0 0 0 0 0 0 0 0 0 0 0 0
11990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1200 0 0 0 0 0 0 255 255 85 170 85 0
12000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1201255 255 85 170 85 0 0 0 0 0 0 0
12010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1202 0 0 0 0 0 0 0 0 0 0 0 0
12020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1203 0 0 0 0 0 0 0 0 0 0 0 0
12030 0 0 0 0 0 0 0 0 0 0 0 1204 0 0 0 0 0 0 0 0 0 0 0 0
12040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1205 0 0 0 0 0 0 0 0 0 0 0 0
12050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1206 0 0 0 0 0 0 0 0 0 0 0 0
12060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1207 0 0 0 0 0 0 255 255 85 170 85 0
12070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1208255 255 85 170 85 0 255 255 85 170 85 0
12080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1209255 255 85 170 85 0 255 255 85 170 85 0
12090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1210255 255 85 170 85 0 255 255 85 170 85 0
121085 85 85 85 85 85 85 85 85 85 85 85 170 170 170 170 170 170 1211255 255 85 170 85 0 255 255 85 0 0 0
1211255 255 255 255 255 255 255 255 255 170 170 170 255 255 255 170 170 170 1212 0 0 0 0 0 0 85 85 85 255 255 255
1212255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 1213255 255 255 255 255 255 255 255 255 255 255 255
1213255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 1214255 255 255 255 255 255 255 255 255 255 255 255
1214255 255 255 255 255 255 170 170 170 255 255 255 170 170 170 85 85 85 1215255 255 255 255 255 255 255 255 255 255 255 255
12150 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1216255 255 255 255 255 255 255 255 255 255 255 255
121685 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1217255 255 255 170 170 170 170 170 170 255 255 85
121785 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1218170 85 0 255 255 85 170 85 0 255 255 85
12180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1219170 85 0 255 255 85 170 85 0 255 255 85
12190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1220170 85 0 255 255 85 170 85 0 255 255 85
12200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1221170 85 0 255 255 85 0 0 0 0 0 0
12210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1222 0 0 0 0 0 0 0 0 0 0 0 0
12220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1223 0 0 0 0 0 0 0 0 0 0 0 0
12230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1224 0 0 0 0 0 0 0 0 0 0 0 0
12240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1225 0 0 0 0 0 0 0 0 0 0 0 0
12250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1226 0 0 0 0 0 0 0 0 0 0 0 0
12260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1227 0 0 0 0 0 0 170 85 0 255 255 85
12270 0 0 0 0 0 0 0 0 0 0 0 1228170 85 0 255 255 85 170 85 0 255 255 85
12280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1229170 85 0 255 255 85 170 85 0 255 255 85
12290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1230170 85 0 255 255 85 170 85 0 255 255 85
12300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1231170 85 0 255 255 85 170 85 0 0 0 0
12310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1232 0 0 0 0 0 0 0 0 0 85 85 85
12320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1233255 255 255 255 255 255 255 255 255 255 255 255
12330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1234255 255 255 255 255 255 255 255 255 255 255 255
123485 85 85 85 85 85 85 85 85 85 85 85 170 170 170 170 170 170 1235255 255 255 255 255 255 255 255 255 255 255 255
1235255 255 255 170 170 170 255 255 255 255 255 255 255 255 255 255 255 255 1236255 255 255 255 255 255 255 255 255 255 255 255
1236255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 1237255 255 255 170 170 170 170 170 170 170 85 0
1237255 255 255 255 255 255 170 170 170 255 255 255 255 255 255 255 255 255 1238255 255 85 170 85 0 255 255 85 170 85 0
1238255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 85 85 85 1239255 255 85 170 85 0 255 255 85 170 85 0
12390 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1240255 255 85 170 85 0 255 255 85 170 85 0
12400 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1241255 255 85 170 85 0 255 255 85 0 0 0
12410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1242 0 0 0 0 0 0 0 0 0 0 0 0
124285 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1243 0 0 0 0 0 0 0 0 0 0 0 0
12430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1244 0 0 0 0 0 0 0 0 0 0 0 0
12440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1245 0 0 0 0 0 0 0 0 0 0 0 0
12450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1246 0 0 0 0 0 0 0 0 0 0 0 0
12460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1247 0 0 0 0 0 0 255 255 85 170 85 0
12470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1248255 255 85 170 85 0 255 255 85 170 85 0
12480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1249255 255 85 170 85 0 255 255 85 170 85 0
12490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1250255 255 85 170 85 0 255 255 85 170 85 0
12500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1251255 255 85 170 85 0 255 255 85 170 85 0
12510 0 0 0 0 0 0 0 0 0 0 0 1252 0 0 0 0 0 0 0 0 0 0 0 0
12520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1253 0 0 0 255 255 255 255 255 255 255 255 255
12530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1254255 255 255 255 255 255 255 255 255 255 255 255
12540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1255255 255 255 255 255 255 255 255 255 255 255 255
12550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1256255 255 255 255 255 255 255 255 255 255 255 255
12560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1257255 255 255 170 170 170 170 170 170 255 255 85
12570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1258170 85 0 255 255 85 170 85 0 255 255 85
125885 85 85 85 85 85 85 85 85 85 85 85 85 85 85 170 170 170 1259170 85 0 255 255 85 170 85 0 255 255 85
1259170 170 170 170 170 170 255 255 255 170 170 170 255 255 255 170 170 170 1260170 85 0 255 255 85 170 85 0 255 255 85
1260255 255 255 170 170 170 255 255 255 170 170 170 255 255 255 255 255 255 1261170 85 0 255 255 85 170 85 0 255 255 85
1261255 255 255 170 170 170 255 255 255 170 170 170 255 255 255 170 170 170 1262 0 0 0 0 0 0 0 0 0 0 0 0
1262170 170 170 170 170 170 170 170 170 170 170 170 85 85 85 85 85 85 1263 0 0 0 0 0 0 0 0 0 0 0 0
12630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1264 0 0 0 0 0 0 0 0 0 0 0 0
126485 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1265 0 0 0 0 0 0 0 0 0 0 0 0
126585 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1266 0 0 0 0 0 0 0 0 0 0 0 0
12660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1267 0 0 0 0 0 0 170 85 0 255 255 85
12670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1268170 85 0 255 255 85 170 85 0 255 255 85
12680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1269170 85 0 255 255 85 170 85 0 255 255 85
12690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1270170 85 0 255 255 85 170 85 0 255 255 85
12700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1271170 85 0 255 255 85 170 85 0 255 255 85
12710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1272170 85 0 0 0 0 0 0 0 0 0 0
12720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1273 0 0 0 255 255 255 255 255 255 255 255 255
12730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1274255 255 255 255 255 255 255 255 255 255 255 255
12740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1275255 255 255 255 255 255 255 255 255 255 255 255
12750 0 0 0 0 0 0 0 0 0 0 0 1276255 255 255 255 255 255 255 255 255 255 255 255
12760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1277255 255 255 170 170 170 170 170 170 170 85 0
12770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1278255 255 85 170 85 0 255 255 85 170 85 0
12780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1279255 255 85 170 85 0 255 255 85 170 85 0
12790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1280255 255 85 170 85 0 255 255 85 170 85 0
12800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1281255 255 85 170 85 0 255 255 85 170 85 0
12810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1282255 255 85 0 0 0 0 0 0 0 0 0
128285 85 85 85 85 85 85 85 85 0 0 0 85 85 85 85 85 85 1283 0 0 0 0 0 0 0 0 0 0 0 0
128385 85 85 85 85 85 85 85 85 170 170 170 170 170 170 170 170 170 1284 0 0 0 0 0 0 0 0 0 0 0 0
1284170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 1285 0 0 0 0 0 0 0 0 0 0 0 0
1285170 170 170 170 170 170 170 170 170 170 170 170 85 85 85 170 170 170 1286 0 0 0 0 0 0 0 0 0 0 0 0
1286170 170 170 170 170 170 85 85 85 0 0 0 85 85 85 0 0 0 1287 0 0 0 0 0 0 255 255 85 170 85 0
12870 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1288255 255 85 170 85 0 255 255 85 170 85 0
12880 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 1289255 255 85 170 85 0 255 255 85 170 85 0
12890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1290255 255 85 170 85 0 255 255 85 170 85 0
12900 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1291255 255 85 170 85 0 255 255 85 170 85 0
12910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1292255 255 85 0 0 0 0 0 0 0 0 0
12920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1293 85 85 85 255 255 255 255 255 255 255 255 255
12930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1294255 255 255 255 255 255 255 255 255 255 255 255
12940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1295255 255 255 255 255 255 255 255 255 255 255 255
12950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1296255 255 255 255 255 255 255 255 255 255 255 255
12960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1297255 255 255 170 170 170 85 85 85 255 255 85
12970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1298170 85 0 255 255 85 170 85 0 255 255 85
12980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1299170 85 0 255 255 85 170 85 0 255 255 85
12990 0 0 0 0 0 0 0 0 0 0 0 1300170 85 0 255 255 85 170 85 0 255 255 85
13000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1301170 85 0 255 255 85 170 85 0 255 255 85
13010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1302170 85 0 255 255 85 0 0 0 0 0 0
13020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1303 0 0 0 0 0 0 0 0 0 0 0 0
13030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1304 0 0 0 0 0 0 0 0 0 0 0 0
13040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1305 0 0 0 0 0 0 0 0 0 0 0 0
13050 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 1306 0 0 0 0 0 0 0 0 0 0 0 0
1306170 170 170 85 85 85 85 85 85 85 85 85 0 0 0 85 85 85 1307 0 0 0 0 0 0 170 85 0 255 255 85
13070 0 0 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 1308170 85 0 255 255 85 170 85 0 255 255 85
130885 85 85 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 1309170 85 0 255 255 85 170 85 0 255 255 85
130985 85 85 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 1310170 85 0 255 255 85 170 85 0 255 255 85
13100 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1311170 85 0 255 255 85 170 85 0 255 255 85
131185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1312170 85 0 255 255 85 85 85 85 85 85 85
13120 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1313255 255 255 255 255 255 255 255 255 255 255 255
131385 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1314255 255 255 255 255 255 255 255 255 255 255 255
13140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1315255 255 255 255 255 255 255 255 255 255 255 255
13150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1316255 255 255 255 255 255 255 255 255 255 255 255
13160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1317170 170 170 85 85 85 85 85 85 170 85 0
13170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1318255 255 85 170 85 0 255 255 85 170 85 0
13180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1319255 255 85 170 85 0 255 255 85 170 85 0
13190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1320255 255 85 170 85 0 255 255 85 170 85 0
13200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1321255 255 85 170 85 0 255 255 85 170 85 0
13210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1322255 255 85 170 85 0 255 255 85 170 85 0
13220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1323 0 0 0 0 0 0 0 0 0 0 0 0
13230 0 0 0 0 0 0 0 0 0 0 0 1324 0 0 0 0 0 0 0 0 0 0 0 0
13240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1325 0 0 0 0 0 0 0 0 0 0 0 0
13250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1326 0 0 0 0 0 0 0 0 0 0 0 0
13260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1327 0 0 0 0 0 0 255 255 85 170 85 0
13270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1328255 255 85 170 85 0 255 255 85 170 85 0
13280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1329255 255 85 170 85 0 255 255 85 170 85 0
13290 0 0 0 0 0 0 0 0 0 0 0 170 170 170 85 85 85 1330255 255 85 170 85 0 255 255 85 170 85 0
133085 85 85 85 85 85 85 85 85 0 0 0 85 85 85 0 0 0 1331255 255 85 170 85 0 255 255 85 170 85 0
133185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1332255 255 85 170 85 0 255 255 85 255 255 255
133285 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1333255 255 255 255 255 255 255 255 255 255 255 255
13330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1334255 255 255 255 255 255 255 255 255 255 255 255
133485 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1335255 255 255 255 255 255 255 255 255 255 255 255
13350 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1336255 255 255 255 255 255 255 255 255 170 170 170
13360 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 1337 85 85 85 0 0 0 0 0 0 170 85 0
13370 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1338170 85 0 255 255 85 170 85 0 255 255 85
133885 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1339170 85 0 255 255 85 170 85 0 255 255 85
13390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1340170 85 0 255 255 85 170 85 0 255 255 85
13400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1341170 85 0 255 255 85 170 85 0 255 255 85
13410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1342170 85 0 255 255 85 170 85 0 255 255 85
13420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1343 0 0 0 0 0 0 0 0 0 0 0 0
13430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1344 0 0 0 0 0 0 0 0 0 0 0 0
13440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1345 0 0 0 0 0 0 0 0 0 0 0 0
13450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1346 0 0 0 0 0 0 0 0 0 0 0 0
13460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1347 0 0 0 0 0 0 170 85 0 255 255 85
13470 0 0 0 0 0 0 0 0 0 0 0 1348170 85 0 255 255 85 170 85 0 255 255 85
13480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1349170 85 0 255 255 85 170 85 0 255 255 85
13490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1350170 85 0 255 255 85 170 85 0 255 255 85
13500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1351170 85 0 255 255 85 170 85 0 255 255 85
13510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1352170 85 0 255 255 85 170 85 0 255 255 85
13520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1353255 255 255 255 255 255 255 255 255 255 255 255
13530 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 1354255 255 255 255 255 255 255 255 255 255 255 255
135485 85 85 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0 1355255 255 255 255 255 255 255 255 255 255 255 255
13550 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1356255 255 255 255 255 255 170 170 170 85 85 85
13560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1357 0 0 0 0 0 0 0 0 0 170 85 0
13570 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1358255 255 85 170 85 0 255 255 85 170 85 0
13580 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1359255 255 85 170 85 0 255 255 85 170 85 0
135985 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1360255 255 85 170 85 0 255 255 85 170 85 0
13600 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1361255 255 85 170 85 0 255 255 85 170 85 0
136185 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1362255 255 85 170 85 0 255 255 85 0 0 0
13620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1363 0 0 0 0 0 0 0 0 0 0 0 0
13630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1364 0 0 0 0 0 0 0 0 0 0 0 0
13640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1365 0 0 0 0 0 0 0 0 0 0 0 0
13650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1366 0 0 0 0 0 0 0 0 0 0 0 0
13660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1367 0 0 0 0 0 0 255 255 85 170 85 0
13670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1368255 255 85 170 85 0 255 255 85 170 85 0
13680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1369255 255 85 170 85 0 255 255 85 170 85 0
13690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1370255 255 85 170 85 0 255 255 85 170 85 0
13700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1371255 255 85 170 85 0 255 255 85 170 85 0
13710 0 0 0 0 0 0 0 0 0 0 0 1372255 255 85 170 85 0 255 255 85 170 85 0
13720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1373170 170 170 255 255 255 255 255 255 255 255 255
13730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1374255 255 255 255 255 255 255 255 255 255 255 255
13740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1375255 255 255 255 255 255 255 255 255 255 255 255
13750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1376170 170 170 85 85 85 85 85 85 0 0 0
13760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1377 0 0 0 0 0 0 0 0 0 170 85 0
13770 0 0 0 0 0 85 85 85 85 85 85 170 170 170 85 85 85 1378170 85 0 255 255 85 170 85 0 255 255 85
137885 85 85 85 85 85 85 85 85 0 0 0 85 85 85 0 0 0 1379170 85 0 255 255 85 170 85 0 255 255 85
137985 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1380170 85 0 255 255 85 170 85 0 255 255 85
13800 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 1381170 85 0 255 255 85 170 85 0 255 255 85
13810 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1382170 85 0 255 255 85 0 0 0 0 0 0
138285 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1383 0 0 0 0 0 0 0 0 0 0 0 0
13830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1384 0 0 0 0 0 0 0 0 0 0 0 0
138485 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1385 0 0 0 0 0 0 0 0 0 0 0 0
138585 85 85 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 1386 0 0 0 0 0 0 0 0 0 0 0 0
13860 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1387 0 0 0 255 255 85 170 85 0 255 255 85
13870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1388170 85 0 255 255 85 170 85 0 255 255 85
13880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1389170 85 0 255 255 85 170 85 0 255 255 85
13890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1390170 85 0 255 255 85 170 85 0 255 255 85
13900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1391170 85 0 255 255 85 170 85 0 255 255 85
13910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1392170 85 0 255 255 85 170 85 0 170 85 0
13920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1393170 85 0 170 170 170 255 255 255 255 255 255
13930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1394255 255 255 255 255 255 255 255 255 255 255 255
13940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1395255 255 255 255 255 255 170 170 170 85 85 85
13950 0 0 0 0 0 0 0 0 0 0 0 1396 85 85 85 0 0 0 0 0 0 0 0 0
13960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1397 0 0 0 0 0 0 85 85 85 170 85 0
13970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1398255 255 85 170 85 0 255 255 85 170 85 0
13980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1399255 255 85 170 85 0 255 255 85 170 85 0
13990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1400255 255 85 170 85 0 255 255 85 170 85 0
14000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1401255 255 85 170 85 0 255 255 85 170 85 0
14010 0 0 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85 1402255 255 85 0 0 0 0 0 0 0 0 0
140285 85 85 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 1403 0 0 0 0 0 0 0 0 0 0 0 0
14030 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1404 0 0 0 0 0 0 0 0 0 0 0 0
14040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1405 0 0 0 0 0 0 0 0 0 0 0 0
14050 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1406 0 0 0 0 0 0 0 0 0 0 0 0
14060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1407 0 0 0 170 85 0 255 255 85 170 85 0
140785 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1408255 255 85 170 85 0 255 255 85 170 85 0
14080 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1409255 255 85 170 85 0 255 255 85 170 85 0
14090 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1410255 255 85 170 85 0 255 255 85 170 85 0
141085 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1411255 255 85 170 85 0 255 255 85 170 85 0
141185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1412255 255 85 170 85 0 255 255 85 170 85 0
14120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1413170 85 0 0 0 0 0 0 0 0 0 0
14130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1414 0 0 0 0 0 0 0 0 0 0 0 0
14140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1415 0 0 0 0 0 0 0 0 0 0 0 0
14150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1416 0 0 0 0 0 0 0 0 0 0 0 0
14160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1417 0 0 0 0 0 0 85 85 85 170 85 0
14170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1418170 85 0 255 255 85 170 85 0 255 255 85
14180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1419170 85 0 255 255 85 170 85 0 255 255 85
14190 0 0 0 0 0 85 85 85 85 85 85 1420170 85 0 255 255 85 170 85 0 255 255 85
14200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1421170 85 0 170 85 0 170 85 0 0 0 0
14210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1422 0 0 0 0 0 0 0 0 0 0 0 0
14220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1423 0 0 0 0 0 0 0 0 0 0 0 0
14230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1424 0 0 0 0 0 0 0 0 0 0 0 0
14240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1425 0 0 0 0 0 0 0 0 0 0 0 0
14250 0 0 85 85 85 85 85 85 170 170 170 85 85 85 85 85 85 1426 0 0 0 0 0 0 0 0 0 0 0 0
142685 85 85 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 1427 0 0 0 255 255 85 170 85 0 255 255 85
142785 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1428170 85 0 255 255 85 170 85 0 255 255 85
142885 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1429170 85 0 255 255 85 170 85 0 255 255 85
142985 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1430170 85 0 255 255 85 170 85 0 255 255 85
143085 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1431170 85 0 255 255 85 170 85 0 255 255 85
14310 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1432170 85 0 255 255 85 170 85 0 170 85 0
143285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1433170 85 0 0 0 0 0 0 0 0 0 0
143385 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1434 0 0 0 0 0 0 0 0 0 0 0 0
14340 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1435 0 0 0 0 0 0 0 0 0 0 0 0
14350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1436 0 0 0 0 0 0 0 0 0 0 0 0
14360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1437 0 0 0 0 0 0 85 85 85 170 85 0
14370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1438255 255 85 170 85 0 255 255 85 170 85 0
14380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1439255 255 85 170 85 0 255 255 85 170 85 0
14390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1440255 255 85 170 85 0 255 255 85 170 85 0
14400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1441170 85 0 0 0 0 0 0 0 0 0 0
14410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1442 0 0 0 0 0 0 0 0 0 0 0 0
14420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1443 0 0 0 0 0 0 0 0 0 0 0 0
14430 0 0 85 85 85 170 170 170 170 170 170 1444 0 0 0 0 0 0 0 0 0 0 0 0
14440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1445 0 0 0 0 0 0 0 0 0 0 0 0
14450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1446 0 0 0 0 0 0 0 0 0 0 0 0
14460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1447 0 0 0 0 0 0 255 255 85 170 85 0
14470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1448255 255 85 170 85 0 255 255 85 170 85 0
14480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1449255 255 85 170 85 0 255 255 85 170 85 0
14490 0 0 85 85 85 170 170 170 85 85 85 85 85 85 85 85 85 1450255 255 85 170 85 0 255 255 85 170 85 0
145085 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1451255 255 85 170 85 0 255 255 85 170 85 0
14510 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1452255 255 85 170 85 0 255 255 85 170 85 0
14520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1453170 85 0 0 0 0 0 0 0 0 0 0
14530 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1454 0 0 0 0 0 0 0 0 0 0 0 0
14540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1455 0 0 0 0 0 0 0 0 0 0 0 0
14550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1456 0 0 0 0 0 0 0 0 0 0 0 0
14560 0 0 0 0 0 85 85 85 0 0 0 85 85 85 85 85 85 1457 0 0 0 0 0 0 85 85 85 170 85 0
14570 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 1458170 85 0 255 255 85 170 85 0 255 255 85
145885 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1459170 85 0 255 255 85 170 85 0 255 255 85
14590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1460170 85 0 170 85 0 170 85 0 170 85 0
14600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1461 0 0 0 0 0 0 0 0 0 0 0 0
14610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1462 0 0 0 0 0 0 0 0 0 0 0 0
14620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1463 0 0 0 0 0 0 0 0 0 0 0 0
14630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1464 0 0 0 0 0 0 0 0 0 0 0 0
14640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1465 0 0 0 0 0 0 0 0 0 0 0 0
14650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1466 0 0 0 0 0 0 0 0 0 0 0 0
14660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1467 0 0 0 0 0 0 0 0 0 0 0 0
146785 85 85 170 170 170 255 255 255 170 170 170 1468 0 0 0 0 0 0 170 85 0 170 85 0
14680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1469170 85 0 170 85 0 170 85 0 170 85 0
14690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1470170 85 0 255 255 85 170 85 0 255 255 85
14700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1471170 85 0 255 255 85 170 85 0 255 255 85
14710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1472170 85 0 255 255 85 170 85 0 170 85 0
14720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1473170 85 0 0 0 0 0 0 0 0 0 0
147385 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 1474 85 85 85 85 85 85 85 85 85 85 85 85
147485 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1475 85 85 85 85 85 85 85 85 85 85 85 85
14750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1476 85 85 85 85 85 85 85 85 85 0 0 0
14760 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1477 0 0 0 0 0 0 0 0 0 170 85 0
14770 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1478170 85 0 170 85 0 255 255 85 170 85 0
14780 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 1479255 255 85 170 85 0 255 255 85 170 85 0
14790 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 1480170 85 0 170 85 0 0 0 0 0 0 0
148085 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1481 0 0 0 0 0 0 0 0 0 0 0 0
148185 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1482 0 0 0 0 0 0 0 0 0 0 0 0
14820 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1483 0 0 0 0 0 0 0 0 0 0 0 0
14830 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1484 0 0 0 0 0 0 0 0 0 0 0 0
14840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1485 0 0 0 0 0 0 0 0 0 0 0 0
14850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1486 0 0 0 0 0 0 0 0 0 0 0 0
14860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1487 0 0 0 0 0 0 0 0 0 0 0 0
14870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1488 0 0 0 0 0 0 0 0 0 0 0 0
14880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1489 0 0 0 0 0 0 170 85 0 170 85 0
14890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1490170 85 0 170 85 0 170 85 0 170 85 0
14900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170 1491170 85 0 170 85 0 255 255 85 170 85 0
1491170 170 170 255 255 255 170 170 170 170 170 170 1492255 255 85 170 85 0 170 85 0 170 85 0
14920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1493 85 85 85 85 85 85 85 85 85 85 85 85
14930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1494 0 0 0 0 0 0 0 0 0 0 0 0
14940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1495 0 0 0 0 0 0 0 0 0 0 0 0
14950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1496 0 0 0 0 0 0 0 0 0 85 85 85
14960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1497 85 85 85 85 85 85 85 85 85 170 85 0
149785 85 85 170 170 170 85 85 85 85 85 85 85 85 85 0 0 0 1498170 85 0 170 85 0 170 85 0 255 255 85
149885 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1499170 85 0 255 255 85 170 85 0 170 85 0
149985 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1500170 85 0 0 0 0 0 0 0 0 0 0
15000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1501 0 0 0 0 0 0 0 0 0 0 0 0
15010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1502 0 0 0 0 0 0 0 0 0 0 0 0
15020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1503 0 0 0 0 0 0 0 0 0 0 0 0
15030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1504 0 0 0 0 0 0 0 0 0 0 0 0
15040 0 0 0 0 0 85 85 85 0 0 0 85 85 85 85 85 85 1505 0 0 0 0 0 0 0 0 0 0 0 0
15050 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 1506 0 0 0 0 0 0 0 0 0 0 0 0
15060 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1507 0 0 0 0 0 0 0 0 0 0 0 0
15070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1508 0 0 0 0 0 0 0 0 0 0 0 0
15080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1509 0 0 0 0 0 0 0 0 0 0 0 0
15090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1510 0 0 0 0 0 0 0 0 0 170 85 0
15100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1511170 85 0 170 85 0 170 85 0 170 85 0
15110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1512170 85 0 170 85 0 170 85 0 170 85 0
15120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1513 0 0 0 0 0 0 0 0 0 0 0 0
15130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1514 0 0 0 0 0 0 0 0 0 0 0 0
15140 0 0 0 0 0 0 0 0 0 0 0 170 170 170 170 170 170 1515 0 0 0 0 0 0 0 0 0 0 0 0
1515255 255 255 255 255 255 170 170 170 170 170 170 1516 0 0 0 0 0 0 0 0 0 0 0 0
15160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1517 0 0 0 0 0 0 0 0 0 170 85 0
15170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1518170 85 0 170 85 0 170 85 0 170 85 0
15180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1519170 85 0 170 85 0 170 85 0 170 85 0
15190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1520 0 0 0 0 0 0 0 0 0 0 0 0
15200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1521 0 0 0 0 0 0 0 0 0 0 0 0
152185 85 85 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 1522 0 0 0 0 0 0 0 0 0 0 0 0
152285 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1523 0 0 0 0 0 0 0 0 0 0 0 0
15230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1524 0 0 0 0 0 0 0 0 0 0 0 0
152485 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1525 0 0 0 0 0 0 0 0 0 0 0 0
15250 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1526 0 0 0 0 0 0 0 0 0 0 0 0
152685 85 85 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1527 0 0 0 0 0 0 0 0 0 0 0 0
15270 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1528 0 0 0 0 0 0 0 0 0 0 0 0
15280 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1529 0 0 0 0 0 0 0 0 0 0 0 0
152985 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1530 0 0 0 0 0 0 0 0 0 0 0 0
15300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1531 0 0 0 170 85 0 170 85 0 170 85 0
153185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1532170 85 0 170 85 0 170 85 0 0 0 0
15320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1533 0 0 0 0 0 0 0 0 0 0 0 0
15330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1534 0 0 0 0 0 0 0 0 0 0 0 0
15340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1535 0 0 0 0 0 0 0 0 0 0 0 0
15350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1536 0 0 0 0 0 0 0 0 0 0 0 0
15360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1537 0 0 0 0 0 0 0 0 0 0 0 0
15370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1538170 85 0 170 85 0 170 85 0 170 85 0
15380 0 0 0 0 0 85 85 85 170 170 170 170 170 170 255 255 255 1539170 85 0 170 85 0 170 85 0 0 0 0
1539255 255 255 170 170 170 170 170 170 0 0 0 1540 0 0 0 0 0 0 0 0 0 0 0 0
15400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1541 0 0 0 0 0 0 0 0 0 0 0 0
15410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1542 0 0 0 0 0 0 0 0 0 0 0 0
15420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1543 0 0 0 0 0 0 0 0 0 0 0 0
15430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1544 0 0 0 0 0 0 0 0 0 0 0 0
15440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1545 0 0 0 0 0 0 0 0 0 0 0 0
1545170 170 170 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 1546 0 0 0 0 0 0 0 0 0 0 0 0
15460 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1547 0 0 0 0 0 0 0 0 0 0 0 0
154785 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1548 0 0 0 0 0 0 0 0 0 0 0 0
15480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1549 0 0 0 0 0 0 0 0 0 0 0 0
154985 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1550 0 0 0 0 0 0 0 0 0 0 0 0
15500 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1551 0 0 0 0 0 0 0 0 0 0 0 0
15510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1552 0 0 0 0 0 0 0 0 0 0 0 0
15520 0 0 85 85 85 0 0 0 0 0 0 85 85 85 85 85 85 1553 0 0 0 0 0 0 0 0 0 0 0 0
15530 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 1554 0 0 0 0 0 0 0 0 0 0 0 0
155485 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1555 0 0 0 0 0 0 0 0 0 0 0 0
15550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1556 0 0 0 0 0 0 0 0 0 0 0 0
15560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1557 0 0 0 0 0 0 0 0 0 0 0 0
15570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1558 0 0 0 0 0 0 0 0 0 0 0 0
15580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1559 0 0 0 0 0 0 0 0 0 0 0 0
15590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1560 0 0 0 0 0 0 0 0 0 0 0 0
15600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1561 0 0 0 0 0 0 0 0 0 0 0 0
15610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1562 0 0 0 0 0 0 0 0 0 0 0 0
15620 0 0 85 85 85 170 170 170 255 255 255 255 255 255 255 255 255 1563 0 0 0 0 0 0 0 0 0 0 0 0
1563170 170 170 170 170 170 85 85 85 0 0 0 1564 0 0 0 0 0 0 0 0 0 0 0 0
15640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1565 0 0 0 0 0 0 0 0 0 0 0 0
15650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1566 0 0 0 0 0 0 0 0 0 0 0 0
15660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1567 0 0 0 0 0 0 0 0 0 0 0 0
15670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1568 0 0 0 0 0 0 0 0 0 0 0 0
15680 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 1569 0 0 0 0 0 0 0 0 0 0 0 0
156985 85 85 85 85 85 85 85 85 85 85 85 0 0 0 85 85 85 1570 0 0 0 0 0 0 0 0 0 0 0 0
15700 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1571 0 0 0 0 0 0 0 0 0 0 0 0
15710 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1572 0 0 0 0 0 0 0 0 0 0 0 0
15720 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1573 0 0 0 0 0 0 0 0 0 0 0 0
15730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1574 0 0 0 0 0 0 0 0 0 0 0 0
15740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1575 0 0 0 0 0 0 0 0 0 0 0 0
15750 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 1576 0 0 0 0 0 0 0 0 0 0 0 0
15760 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1577 0 0 0 0 0 0 0 0 0 0 0 0
157785 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1578 0 0 0 0 0 0 0 0 0 0 0 0
15780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1579 0 0 0 0 0 0 0 0 0 0 0 0
15790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1580 0 0 0 0 0 0 0 0 0 0 0 0
15800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1581 0 0 0 0 0 0 0 0 0 0 0 0
15810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1582 0 0 0 0 0 0 0 0 0 0 0 0
15820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1583 0 0 0 0 0 0 0 0 0 0 0 0
15830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1584 0 0 0 0 0 0 0 0 0 0 0 0
15840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1585 0 0 0 0 0 0 0 0 0 0 0 0
15850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1586 0 0 0 0 0 0 0 0 0 0 0 0
1586170 170 170 170 170 170 255 255 255 255 255 255 255 255 255 170 170 170 1587 0 0 0 0 0 0 0 0 0 0 0 0
1587170 170 170 170 170 170 0 0 0 0 0 0 1588 0 0 0 0 0 0 0 0 0 0 0 0
15880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1589 0 0 0 0 0 0 0 0 0 0 0 0
15890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1590 0 0 0 0 0 0 0 0 0 0 0 0
15900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1591 0 0 0 0 0 0 0 0 0 0 0 0
15910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1592 0 0 0 0 0 0 0 0 0 0 0 0
15920 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 1593 0 0 0 0 0 0 0 0 0 0 0 0
159385 85 85 85 85 85 85 85 85 85 85 85 0 0 0 85 85 85 1594 0 0 0 0 0 0 0 0 0 0 0 0
15940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1595 0 0 0 0 0 0 0 0 0 0 0 0
15950 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1596 0 0 0 0 0 0 0 0 0 0 0 0
15960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1597 0 0 0 0 0 0 0 0 0 0 0 0
15970 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1598 0 0 0 0 0 0 0 0 0 0 0 0
15980 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1599 0 0 0 0 0 0 0 0 0 0 0 0
15990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1600 0 0 0 0 0 0 0 0 0 0 0 0
16000 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1601 0 0 0 0 0 0 0 0 0 0 0 0
160185 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1602 0 0 0 0 0 0 0 0 0 0 0 0
16020 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 1603 0 0 0 0 0 0 0 0 0 0 0 0
16030 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1604 0 0 0 0 0 0 0 0 0 0 0 0
16040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16090 0 0 0 0 0 0 0 0 0 0 0 170 170 170 170 170 170
1610170 170 170 255 255 255 255 255 255 255 255 255 170 170 170 170 170 170
1611170 170 170 0 0 0 0 0 0 0 0 0
16120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16160 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85
161785 85 85 85 85 85 85 85 85 0 0 0 85 85 85 0 0 0
161885 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85
16190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
162085 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
162185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
162285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
16230 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85
16240 0 0 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85
16250 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
16260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16330 0 0 0 0 0 85 85 85 170 170 170 170 170 170 170 170 170
1634255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 170 170 170
16350 0 0 0 0 0 0 0 0 0 0 0
16360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16400 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85
164185 85 85 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0
16420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16430 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
16440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16480 0 0 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0
164985 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
165085 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0
16510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
165785 85 85 170 170 170 170 170 170 255 255 255 255 255 255 255 255 255
1658255 255 255 255 255 255 170 170 170 170 170 170 85 85 85 0 0 0
16590 0 0 0 0 0 0 0 0 0 0 0
16600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16630 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
16640 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85
166585 85 85 85 85 85 85 85 85 0 0 0 85 85 85 0 0 0
166685 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
16670 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
16680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16690 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
16700 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
167185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
167285 85 85 0 0 0 170 170 170 255 255 255 85 85 85 85 85 85
167385 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
167485 85 85 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0
167585 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
1681170 170 170 170 170 170 255 255 255 170 170 170 255 255 255 255 255 255
1682255 255 255 255 255 255 170 170 170 170 170 170 85 85 85 0 0 0
16830 0 0 0 0 0 0 0 0 0 0 0
16840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
168785 85 85 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0
16880 0 0 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85
168985 85 85 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
16900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16920 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
16930 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
16940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16950 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85
16960 0 0 85 85 85 170 170 170 255 255 255 170 170 170 85 85 85
16970 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85
1698255 255 255 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0
16990 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
17000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17040 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
1705255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
1706170 170 170 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0
17070 0 0 0 0 0 0 0 0 0 0 0
17080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
171185 85 85 255 255 255 170 170 170 85 85 85 0 0 0 0 0 0
17120 0 0 0 0 0 85 85 85 85 85 85 85 85 85 0 0 0
171385 85 85 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85
17140 0 0 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85
17150 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
17160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
171885 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
17190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
172085 85 85 85 85 85 255 255 255 255 255 255 255 255 255 85 85 85
172185 85 85 0 0 0 85 85 85 0 0 0 85 85 85 170 170 170
1722255 255 255 170 170 170 0 0 0 0 0 0 85 85 85 0 0 0
17230 0 0 85 85 85 170 170 170 85 85 85 0 0 0 0 0 0
17240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17280 0 0 0 0 0 85 85 85 0 0 0 85 85 85 170 170 170
1729170 170 170 255 255 255 255 255 255 255 255 255 255 255 255 170 170 170
1730170 170 170 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0
17310 0 0 0 0 0 0 0 0 0 0 0
17320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17330 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
17340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1735170 170 170 255 255 255 255 255 255 170 170 170 0 0 0 0 0 0
17360 0 0 0 0 0 85 85 85 85 85 85 85 85 85 0 0 0
173785 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0
17380 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
17390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
17400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17410 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
17420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17430 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85
174485 85 85 170 170 170 255 255 255 255 255 255 255 255 255 85 85 85
174585 85 85 0 0 0 85 85 85 0 0 0 85 85 85 255 255 255
1746255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0
174785 85 85 170 170 170 170 170 170 85 85 85 0 0 0 0 0 0
17480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
175285 85 85 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85
1753170 170 170 255 255 255 255 255 255 255 255 255 170 170 170 170 170 170
175485 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17550 0 0 0 0 0 0 0 0 0 0 0
17560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17570 0 0 0 0 0 0 0 0 85 85 85 170 170 170 170 170 170
17580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1759170 170 170 255 255 255 255 255 255 255 255 255 85 85 85 0 0 0
17600 0 0 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0
176185 85 85 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85
17620 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
17630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17640 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
176585 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17660 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
17670 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
176885 85 85 170 170 170 255 255 255 255 255 255 255 255 255 170 170 170
17690 0 0 85 85 85 0 0 0 85 85 85 170 170 170 255 255 255
1770255 255 255 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0
177185 85 85 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0
17720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17750 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85
17760 0 0 85 85 85 85 85 85 0 0 0 85 85 85 85 85 85
1777170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 85 85 85
17780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17790 0 0 0 0 0 0 0 0 0 0 0
17800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17810 0 0 0 0 0 0 0 0 0 0 0 170 170 170 255 255 255
1782170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
178385 85 85 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0
17840 0 0 85 85 85 85 85 85 0 0 0 85 85 85 0 0 0
178585 85 85 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
17860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
17870 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
17880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
17910 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85
179285 85 85 255 255 255 255 255 255 255 255 255 170 170 170 170 170 170
179385 85 85 0 0 0 0 0 0 85 85 85 170 170 170 255 255 255
1794255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0
1795170 170 170 255 255 255 170 170 170 0 0 0 0 0 0 0 0 0
179685 85 85 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0
17970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17990 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
180085 85 85 85 85 85 0 0 0 85 85 85 85 85 85 0 0 0
180185 85 85 85 85 85 170 170 170 85 85 85 85 85 85 0 0 0
18020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18030 0 0 0 0 0 0 0 0 0 0 0
18040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18050 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170
1806255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0
180785 85 85 170 170 170 255 255 255 255 255 255 255 255 255 170 170 170
18080 0 0 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0
180985 85 85 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
18100 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
18110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
18120 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
18130 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
181485 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18150 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
1816170 170 170 170 170 170 255 255 255 170 170 170 255 255 255 85 85 85
18170 0 0 85 85 85 0 0 0 85 85 85 170 170 170 255 255 255
1818170 170 170 170 170 170 0 0 0 0 0 0 0 0 0 85 85 85
1819170 170 170 255 255 255 255 255 255 0 0 0 0 0 0 85 85 85
1820255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
18210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18220 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
182385 85 85 0 0 0 85 85 85 0 0 0 85 85 85 85 85 85
182485 85 85 0 0 0 85 85 85 85 85 85 0 0 0 85 85 85
18250 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
18260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18270 0 0 0 0 0 0 0 0 0 0 0
18280 0 0 0 0 0 0 0 0 85 85 85 85 85 85 0 0 0
18290 0 0 0 0 0 0 0 0 0 0 0 85 85 85 255 255 255
1830255 255 255 255 255 255 170 170 170 0 0 0 0 0 0 0 0 0
183185 85 85 170 170 170 255 255 255 170 170 170 170 170 170 170 170 170
183285 85 85 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85
183385 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85
18340 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
18350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
18370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18380 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
183985 85 85 0 0 0 85 85 85 0 0 0 85 85 85 85 85 85
184085 85 85 170 170 170 255 255 255 170 170 170 170 170 170 85 85 85
184185 85 85 0 0 0 85 85 85 85 85 85 85 85 85 170 170 170
1842170 170 170 85 85 85 85 85 85 0 0 0 0 0 0 85 85 85
1843170 170 170 170 170 170 85 85 85 0 0 0 0 0 0 170 170 170
1844170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18460 0 0 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85
18470 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85
18480 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
184985 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18510 0 0 0 0 0 0 0 0 0 0 0
18520 0 0 0 0 0 0 0 0 0 0 0 170 170 170 170 170 170
185385 85 85 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170
1854255 255 255 170 170 170 170 170 170 85 85 85 0 0 0 0 0 0
18550 0 0 85 85 85 170 170 170 170 170 170 255 255 85 85 85 85
185685 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0
185785 85 85 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
18580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18590 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
18600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18610 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
18620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
186385 85 85 0 0 0 85 85 85 85 85 85 0 0 0 85 85 85
186485 85 85 170 170 170 170 170 170 170 170 170 170 85 0 85 85 85
18650 0 0 85 85 85 0 0 0 85 85 85 170 170 170 170 85 0
1866170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
1867170 85 0 170 170 170 85 85 85 0 0 0 85 85 85 85 85 85
1868170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
18700 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
187185 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
187285 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
18730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18750 0 0 0 0 0 0 0 0 0 0 0
18760 0 0 0 0 0 0 0 0 0 0 0 170 170 170 255 255 255
1877170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
1878255 255 255 170 170 170 170 170 170 85 85 85 0 0 0 0 0 0
18790 0 0 85 85 85 170 85 0 170 170 170 170 170 170 85 85 85
188085 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
188185 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85
18820 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
18830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
18840 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
18850 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
18860 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
188785 85 85 0 0 0 85 85 85 0 0 0 85 85 85 85 85 85
188885 85 85 170 85 0 85 255 85 170 85 0 170 170 170 85 85 85
188985 85 85 0 0 0 0 0 0 85 85 85 170 85 0 85 255 85
1890170 85 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85
189185 85 85 85 85 85 170 85 0 0 0 0 85 85 85 85 85 85
189285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18930 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
18940 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85
18950 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85
18960 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
18970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18990 0 0 0 0 0 0 0 0 0 0 0
19000 0 0 0 0 0 0 0 0 0 0 0 85 85 85 255 255 255
1901255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0
1902170 170 170 170 170 170 170 170 170 85 85 85 0 0 0 0 0 0
19030 0 0 0 0 0 170 170 170 170 85 0 170 170 170 170 85 0
190485 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
190585 85 85 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
19060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
190785 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
191085 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
191185 85 85 0 0 0 85 85 85 85 85 85 85 85 85 0 0 0
191285 85 85 85 85 85 255 85 85 170 170 170 85 255 85 170 85 0
191385 85 85 85 85 85 170 85 0 85 85 85 170 170 170 85 85 85
1914170 170 170 170 85 0 85 85 85 85 85 85 85 85 85 85 85 85
1915170 85 0 85 255 85 85 85 85 85 85 85 85 85 85 170 85 0
191685 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85
19170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
191885 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
19190 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
19200 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
19210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19230 0 0 0 0 0 0 0 0 0 0 0
192485 85 85 85 85 85 0 0 0 0 0 0 0 0 0 170 170 170
1925255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0
192685 85 85 170 85 0 170 170 170 170 85 0 85 85 85 0 0 0
192785 85 85 85 85 85 85 255 85 170 170 170 170 170 170 170 85 0
192885 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
192985 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
193085 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19310 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
19320 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
19330 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
19340 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
19350 0 0 85 85 85 85 85 85 0 0 0 85 85 85 85 85 85
193685 85 85 85 85 85 85 255 85 255 85 85 170 170 170 170 170 170
1937170 170 170 85 255 85 170 170 170 170 85 0 170 170 170 170 85 0
1938170 170 170 85 85 85 85 255 85 170 85 0 170 170 170 170 85 0
1939170 170 170 170 170 170 170 85 0 85 85 85 85 85 85 85 255 85
194085 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19410 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
19420 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85
19430 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
19440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19470 0 0 0 0 0 0 0 0 0 0 0
19480 0 0 170 170 170 170 170 170 0 0 0 0 0 0 85 85 85
1949170 170 170 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0
195085 85 85 85 85 85 255 255 85 85 85 85 85 85 85 85 85 85
195185 255 85 255 85 85 170 170 170 170 85 0 170 170 170 85 255 85
195285 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
195385 85 85 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
19540 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
19550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19560 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
19570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19580 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
195985 85 85 0 0 0 85 85 85 85 85 85 85 85 85 0 0 0
196085 85 85 85 85 85 170 85 0 170 170 170 170 170 170 255 255 85
1961170 170 170 255 85 85 170 170 170 170 170 170 255 255 85 170 170 170
196285 255 85 170 170 170 255 85 85 170 170 170 170 170 170 170 170 170
1963170 170 170 170 170 170 170 170 170 170 85 0 170 170 170 170 85 0
196485 85 85 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85
19650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
196685 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
19670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19710 0 0 0 0 0 0 0 0 0 0 0
19720 0 0 85 85 85 170 170 170 85 85 85 0 0 0 85 85 85
197385 85 85 170 85 0 85 85 85 0 0 0 85 85 85 85 85 85
197485 85 85 170 85 0 170 170 170 170 170 170 255 255 85 170 170 170
1975170 170 170 170 170 170 255 255 85 170 170 170 170 170 170 255 85 85
197685 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
197785 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
197885 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19810 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
198285 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
198385 85 85 85 85 85 0 0 0 85 85 85 85 85 85 85 85 85
198485 85 85 85 85 85 170 170 170 255 255 85 170 170 170 170 170 170
1985170 170 170 255 255 85 170 170 170 170 170 170 170 170 170 170 85 0
1986170 170 170 255 255 85 170 170 170 255 255 85 170 170 170 255 255 85
1987170 170 170 255 255 85 170 170 170 170 170 170 85 255 85 170 85 0
198885 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19890 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
19900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
19910 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
19920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19950 0 0 0 0 0 0 0 0 0 0 0
19960 0 0 0 0 0 170 170 170 85 85 85 85 85 85 0 0 0
199785 85 85 85 85 85 170 170 170 85 85 85 170 170 170 170 85 0
1998170 170 170 85 255 85 170 170 170 170 85 0 170 170 170 170 170 170
1999255 255 85 170 170 170 170 170 170 255 255 255 255 255 85 170 170 170
2000255 255 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
200185 85 85 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
20020 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
20030 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
20040 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
200585 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20060 0 0 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0
20070 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
200885 85 85 170 85 0 170 170 170 170 170 170 170 170 170 255 255 255
2009170 170 170 255 255 255 255 255 85 170 170 170 255 255 85 170 170 170
2010255 255 85 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170
2011170 170 170 170 170 170 170 170 170 255 85 85 170 170 170 170 170 170
201285 85 85 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
20130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20140 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
20150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20190 0 0 0 0 0 0 0 0 0 0 0
20200 0 0 0 0 0 85 85 85 85 85 85 170 85 0 85 85 85
202185 85 85 255 255 85 170 170 170 170 170 170 170 170 170 170 170 170
2022255 255 85 170 170 170 170 170 170 255 255 85 170 170 170 170 170 170
2023170 170 170 255 255 255 255 255 255 170 170 170 255 255 255 170 170 170
2024170 170 170 85 85 85 85 85 85 0 0 0 0 0 0 85 85 85
20250 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
20260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
203085 85 85 170 170 170 170 170 170 85 85 85 0 0 0 0 0 0
20310 0 0 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85
203285 85 85 85 255 85 170 170 170 255 255 85 255 255 255 255 255 255
2033255 255 255 170 170 170 255 255 255 170 170 170 170 170 170 170 170 170
2034170 170 170 170 170 170 255 255 85 170 170 170 255 255 85 255 255 255
2035255 255 85 255 255 255 255 255 85 170 170 170 170 170 170 170 85 0
2036170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
203785 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
20380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20430 0 0 0 0 0 0 0 0 0 0 0
20440 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85
204585 85 85 170 170 170 255 255 85 170 170 170 255 255 85 170 170 170
2046170 170 170 255 255 85 170 170 170 170 170 170 170 170 170 255 255 85
2047255 255 255 255 255 255 255 255 85 255 255 255 255 255 255 170 170 170
2048255 255 85 85 85 85 85 85 85 0 0 0 0 0 0 85 85 85
204985 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
20500 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
20510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20520 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
20530 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
205485 85 85 170 170 170 170 170 170 0 0 0 0 0 0 0 0 0
205585 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
205685 85 85 170 170 170 170 170 170 170 170 170 255 255 255 170 170 170
2057255 255 255 255 255 255 255 255 255 170 170 170 170 170 170 255 255 85
2058170 170 170 255 255 85 170 170 170 255 255 255 170 170 170 255 255 255
2059255 255 255 255 255 255 170 170 170 255 255 85 170 170 170 255 255 85
206085 85 85 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
20610 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
20620 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
20630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20670 0 0 0 0 0 0 0 0 0 0 0
20680 0 0 0 0 0 0 0 0 85 85 85 170 85 0 170 170 170
2069255 255 85 170 170 170 170 170 170 255 255 255 255 255 255 255 255 255
2070170 170 170 170 170 170 170 170 170 255 255 85 170 170 170 170 170 170
2071255 255 255 170 170 170 255 255 255 255 255 255 170 170 170 255 255 255
2072170 170 170 170 170 170 85 85 85 0 0 0 85 85 85 0 0 0
207385 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
20740 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
20750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
20770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
207885 85 85 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0
20790 0 0 85 85 85 0 0 0 85 85 85 85 85 85 0 0 0
208085 85 85 170 85 0 255 255 255 170 170 170 255 255 255 255 255 255
2081255 255 85 255 255 255 170 170 170 255 255 85 170 170 170 170 170 170
2082170 170 170 170 170 170 170 170 170 255 255 85 255 255 255 255 255 255
2083170 170 170 255 255 255 255 255 255 170 170 170 170 170 170 170 170 170
208485 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20850 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
20860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20910 0 0 0 0 0 0 0 0 0 0 0
20920 0 0 0 0 0 0 0 0 85 85 85 85 255 85 170 170 170
2093170 170 170 255 255 85 170 170 170 255 255 255 170 170 170 255 255 255
2094255 255 255 255 255 255 255 255 85 170 170 170 170 170 170 255 255 255
2095170 170 170 255 255 255 255 255 255 170 170 170 255 255 255 255 255 85
2096170 170 170 170 85 0 85 85 85 0 0 0 0 0 0 85 85 85
20970 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
20980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20990 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
21000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
210285 85 85 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85
210385 85 85 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
210485 85 85 170 170 170 170 170 170 255 255 85 170 170 170 255 255 255
2105255 255 255 170 170 170 255 255 255 170 170 170 170 170 170 255 255 85
2106170 170 170 255 255 85 170 170 170 255 255 255 170 170 170 255 255 255
2107255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 255 255 85
210885 85 85 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
21090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
21100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21150 0 0 0 0 0 0 0 0 0 0 0
21160 0 0 0 0 0 0 0 0 85 85 85 170 85 0 170 170 170
2117170 170 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
2118170 170 170 170 170 170 170 170 170 170 170 170 255 255 85 170 170 170
2119255 255 85 255 255 255 170 170 170 255 255 255 170 170 170 170 170 170
2120170 170 170 170 170 170 85 85 85 0 0 0 85 85 85 85 85 85
21210 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
21220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
212385 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21260 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
212785 85 85 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
212885 85 85 85 85 85 170 170 170 170 170 170 255 255 255 170 170 170
2129255 255 255 170 170 170 255 255 85 170 170 170 170 170 170 170 170 170
2130255 85 85 170 170 170 170 170 170 170 170 170 255 255 255 255 255 255
2131170 170 170 255 255 255 255 255 255 170 170 170 255 255 255 170 170 170
213285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21330 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
21340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21390 0 0 0 0 0 0 0 0 0 0 0
21400 0 0 0 0 0 0 0 0 85 85 85 85 85 85 170 170 170
2141255 255 85 170 170 170 255 255 255 170 170 170 255 255 255 255 255 255
2142255 255 85 255 255 255 170 170 170 255 255 85 170 170 170 170 170 170
2143170 170 170 170 170 170 255 255 85 170 170 170 170 170 170 255 255 85
2144170 170 170 170 85 0 85 85 85 0 0 0 85 85 85 0 0 0
21450 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
214685 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21480 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
21490 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
21500 0 0 0 0 0 0 0 0 0 0 0 170 170 170 170 170 170
2151170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
21520 0 0 85 85 85 170 170 170 255 255 85 170 170 170 170 170 170
2153255 255 85 170 170 170 170 170 170 170 170 170 170 170 170 255 85 85
215485 255 85 170 170 170 170 170 170 170 170 170 255 255 85 170 170 170
2155255 255 255 255 255 255 255 255 255 255 255 85 170 170 170 170 170 170
215685 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
21570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21630 0 0 0 0 0 0 0 0 0 0 0
21640 0 0 0 0 0 0 0 0 0 0 0 85 85 85 255 255 85
2165170 170 170 170 170 170 255 255 255 255 255 255 255 255 255 170 170 170
2166255 255 255 170 170 170 170 170 170 170 170 170 170 170 170 255 85 85
2167170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170
2168170 170 170 85 85 85 85 85 85 0 0 0 85 85 85 0 0 0
216985 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
21700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
217285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21740 0 0 0 0 0 0 0 0 170 170 170 170 170 170 170 170 170
217585 85 85 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
21760 0 0 85 85 85 170 85 0 170 170 170 170 170 170 170 170 170
2177170 170 170 170 170 170 170 170 170 170 85 0 170 170 170 85 255 85
2178255 85 85 170 170 170 255 255 85 170 170 170 170 170 170 255 255 255
2179255 255 255 170 170 170 255 255 255 255 255 255 170 170 170 170 170 170
21800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21870 0 0 0 0 0 0 0 0 0 0 0
21880 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170
2189170 170 170 255 255 85 170 170 170 255 255 85 255 255 255 255 255 255
2190170 170 170 170 170 170 255 255 85 170 170 170 255 85 85 85 255 85
2191170 170 170 170 85 0 170 170 170 170 170 170 255 255 85 170 170 170
2192170 85 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
21930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21940 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
21950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
22000 0 0 85 85 85 85 85 85 85 85 85 170 170 170 255 255 85
2201170 170 170 170 85 0 170 170 170 170 170 170 170 85 0 85 85 85
2202170 170 170 170 85 0 85 85 85 170 170 170 170 170 170 170 170 170
2203170 170 170 255 255 255 255 255 255 255 255 85 170 170 170 170 170 170
22040 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
22050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22110 0 0 0 0 0 0 0 0 0 0 0
22120 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 85 0
2213170 170 170 170 170 170 255 255 255 170 170 170 255 255 255 170 170 170
2214255 255 255 170 170 170 170 170 170 170 85 0 170 170 170 85 85 85
2215170 170 170 170 170 170 170 85 0 170 170 170 170 85 0 85 85 85
221685 255 85 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85
22170 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
22180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
222185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22230 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85
222485 85 85 0 0 0 85 85 85 170 85 0 85 85 85 170 170 170
2225170 85 0 170 170 170 85 255 85 170 85 0 170 170 170 85 85 85
2226170 85 0 170 170 170 170 170 170 255 255 85 170 170 170 255 255 255
2227255 255 85 255 255 255 170 170 170 170 170 170 170 170 170 170 85 0
22280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22350 0 0 0 0 0 0 0 0 0 0 0
22360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
2237170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 255 255 85
2238170 170 170 255 255 85 170 170 170 170 170 170 85 255 85 170 170 170
2239170 85 0 170 85 0 170 170 170 85 255 85 85 85 85 170 170 170
2240170 85 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
22410 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
22420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22460 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
22470 0 0 0 0 0 0 0 0 85 85 85 170 170 170 85 85 85
22480 0 0 0 0 0 0 0 0 85 85 85 170 85 0 85 85 85
2249170 170 170 170 85 0 170 170 170 85 85 85 170 170 170 170 85 0
2250170 170 170 85 255 85 170 85 0 170 170 170 170 170 170 170 170 170
2251255 255 255 170 170 170 255 255 255 255 255 255 170 170 170 85 85 85
22520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22590 0 0 0 0 0 0 0 0 0 0 0
22600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2261170 85 0 170 170 170 255 255 85 170 170 170 255 255 255 170 170 170
2262170 170 170 170 170 170 170 170 170 170 85 0 170 170 170 170 85 0
2263170 170 170 85 255 85 170 85 0 170 170 170 170 85 0 85 85 85
226485 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
22650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22670 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
22680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22710 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
22720 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85
227385 255 85 170 170 170 170 85 0 170 170 170 170 85 0 85 255 85
2274170 170 170 170 85 0 170 170 170 170 170 170 170 170 170 255 255 85
2275170 170 170 255 255 255 170 170 170 170 170 170 170 170 170 0 0 0
22760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22830 0 0 0 0 0 0 0 0 0 0 0
22840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
228585 85 85 170 85 0 85 85 85 170 170 170 255 255 85 170 170 170
2286170 170 170 255 255 85 170 170 170 170 170 170 170 170 170 170 85 0
2287170 170 170 85 85 85 170 170 170 170 85 0 170 170 170 85 85 85
2288170 85 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
22890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22960 0 0 0 0 0 85 85 85 0 0 0 85 85 85 170 85 0
229785 85 85 255 85 85 85 255 85 170 85 0 170 170 170 170 170 170
2298170 85 0 170 170 170 85 85 85 255 255 85 170 170 170 170 170 170
2299255 255 255 170 170 170 255 255 255 255 255 85 85 85 85 0 0 0
23000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23070 0 0 0 0 0 0 0 0 0 0 0
23080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23090 0 0 85 85 85 170 170 170 170 85 0 170 170 170 170 170 170
2310170 170 170 170 170 170 170 170 170 255 255 85 85 85 85 170 170 170
231185 255 85 255 85 85 170 170 170 85 255 85 255 85 85 85 255 85
231285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23200 0 0 0 0 0 85 85 85 85 85 85 0 0 0 85 85 85
232185 85 85 85 255 85 255 85 85 170 170 170 85 255 85 170 85 0
2322170 170 170 170 170 170 255 255 85 170 170 170 170 170 170 255 255 255
2323170 170 170 255 255 255 170 170 170 170 170 170 85 85 85 0 0 0
23240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23310 0 0 0 0 0 0 0 0 0 0 0
23320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23330 0 0 0 0 0 85 85 85 170 170 170 85 85 85 255 255 85
2334170 170 170 255 255 85 170 170 170 170 170 170 170 170 170 255 255 85
233585 85 85 255 255 85 170 170 170 170 85 0 170 170 170 85 85 85
2336170 85 0 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0
23370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
2345170 170 170 170 85 0 170 170 170 170 85 0 170 170 170 170 170 170
2346170 85 0 170 170 170 170 170 170 170 170 170 255 255 85 170 170 170
2347255 255 85 255 255 255 170 170 170 170 170 170 85 85 85 0 0 0
23480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23550 0 0 0 0 0 0 0 0 0 0 0
23560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23570 0 0 0 0 0 85 85 85 170 85 0 85 85 85 170 170 170
2358170 85 0 170 170 170 170 170 170 255 255 85 170 170 170 170 170 170
2359170 170 170 170 170 170 170 170 170 255 255 85 170 170 170 170 85 0
236085 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
23610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23680 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
2369170 85 0 85 255 85 170 170 170 170 170 170 255 255 85 170 170 170
2370255 255 85 170 170 170 170 170 170 170 170 170 255 255 255 255 255 255
2371255 255 255 170 170 170 255 255 85 85 85 85 0 0 0 0 0 0
23720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23790 0 0 0 0 0 0 0 0 0 0 0
23800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23810 0 0 0 0 0 0 0 0 85 85 85 85 85 85 170 85 0
2382170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 255 255 85
2383170 170 170 255 255 85 170 170 170 170 170 170 170 170 170 170 170 170
2384170 170 170 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0
23850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
239385 85 85 170 85 0 170 170 170 170 85 0 170 170 170 170 170 170
2394170 170 170 255 255 85 170 170 170 255 255 85 170 170 170 255 255 255
2395170 170 170 255 255 255 170 170 170 85 85 85 0 0 0 0 0 0
23960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24030 0 0 0 0 0 0 0 0 0 0 0
24040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24050 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85
2406170 85 0 170 170 170 170 85 0 255 255 85 170 170 170 170 170 170
2407170 170 170 170 170 170 255 255 85 170 170 170 255 255 85 170 170 170
2408255 255 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0
24090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24160 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
241785 85 85 170 170 170 255 255 85 170 170 170 255 255 85 170 170 170
2418170 170 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
2419170 170 170 170 170 170 170 170 170 0 0 0 0 0 0 0 0 0
24200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24270 0 0 0 0 0 0 0 0 0 0 0
24280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24290 0 0 0 0 0 0 0 0 0 0 0 0 170 0 85 85 85
2430170 85 0 85 255 85 170 170 170 170 170 170 170 170 170 255 255 85
2431255 255 255 170 170 170 255 255 255 170 170 170 255 255 255 170 170 170
2432170 170 170 255 255 85 85 85 85 0 0 0 0 0 0 0 0 0
24330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
2441170 85 0 170 170 170 170 170 170 170 170 170 170 170 170 255 255 85
2442170 170 170 255 255 255 170 170 170 255 255 255 170 170 170 255 255 255
2443255 255 255 255 255 85 85 85 85 0 0 0 0 0 0 0 0 0
24440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24510 0 0 0 0 0 0 0 0 0 0 0
24520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
245485 85 85 170 85 0 170 170 170 170 170 170 255 255 85 170 170 170
2455170 170 170 255 255 255 255 255 255 255 255 255 170 170 170 255 255 255
2456170 170 170 170 170 170 170 170 170 85 85 85 0 0 0 0 0 0
24570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24640 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 255 85
2465170 170 170 255 255 85 170 170 170 255 255 85 255 255 255 255 255 255
2466255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 170 170
2467170 170 170 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0
24680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24750 0 0 0 0 0 0 0 0 0 0 0
24760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
247885 85 85 85 85 85 85 85 85 170 85 0 170 170 170 170 170 170
2479255 255 85 170 170 170 255 255 255 255 255 85 255 255 255 255 255 255
2480170 170 170 255 255 85 170 170 170 85 85 85 0 0 0 0 0 0
24810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24880 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 85 0
2489170 170 170 170 170 170 170 170 170 255 255 255 170 170 170 255 255 255
2490170 170 170 255 255 255 170 170 170 255 255 255 255 255 85 255 255 255
2491170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
24920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24990 0 0 0 0 0 0 0 0 0 0 0
25000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
250285 85 85 170 85 0 85 85 85 170 170 170 170 170 170 170 170 170
2503170 170 170 255 255 255 170 170 170 255 255 255 255 255 255 170 170 170
2504255 255 85 170 170 170 170 170 170 170 85 0 85 85 85 0 0 0
25050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25120 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170
2513255 255 85 170 170 170 255 255 85 170 170 170 255 255 255 255 255 255
2514255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 170 170 170
2515170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25230 0 0 0 0 0 0 0 0 0 0 0
25240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25260 0 0 85 85 85 85 85 85 85 85 85 170 85 0 170 170 170
2527255 255 85 170 170 170 255 255 85 255 255 255 170 170 170 255 255 255
2528170 170 170 170 170 170 170 170 170 170 170 170 0 0 0 0 0 0
25290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25360 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170
2537170 85 0 170 170 170 255 255 255 170 170 170 255 255 255 170 170 170
2538255 255 255 255 255 255 170 170 170 255 255 255 255 255 85 170 170 170
253985 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25470 0 0 0 0 0 0 0 0 0 0 0
25480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25500 0 0 0 0 0 85 85 85 170 85 0 85 85 85 170 170 170
2551170 170 170 170 170 170 170 170 170 170 170 170 255 255 85 170 170 170
2552255 255 85 170 170 170 170 85 0 85 255 85 85 85 85 0 0 0
25530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25600 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 85 0
2561170 170 170 170 170 170 255 255 85 170 170 170 255 255 255 255 255 255
2562255 255 85 255 255 255 170 170 170 255 255 255 170 170 170 85 85 85
25630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25710 0 0 0 0 0 0 0 0 0 0 0
25720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25740 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
2575170 85 0 170 170 170 170 170 170 255 255 85 170 170 170 170 170 170
2576170 170 170 170 170 170 170 170 170 170 85 0 0 0 0 0 0 0
25770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25840 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
2585255 255 85 170 170 170 170 170 170 170 170 170 255 255 85 170 170 170
2586255 255 255 170 170 170 255 255 85 170 170 170 85 85 85 85 85 85
25870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25950 0 0 0 0 0 0 0 0 0 0 0
25960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25980 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
259985 85 85 170 85 0 170 170 170 170 170 170 170 170 170 170 170 170
2600170 85 0 170 170 170 170 85 0 85 85 85 0 0 0 0 0 0
26010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26080 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
2609170 170 170 170 170 170 255 255 85 170 170 170 170 170 170 170 170 170
2610170 170 170 255 255 255 170 170 170 170 170 170 85 85 85 0 0 0
26110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26190 0 0 0 0 0 0 0 0 0 0 0
26200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
262385 85 85 85 85 85 85 85 85 170 85 0 85 85 85 170 85 0
262485 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0
26250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 85 0
263385 85 85 170 85 0 170 170 170 170 170 170 170 170 170 255 255 85
2634170 170 170 170 170 170 170 85 0 85 85 85 0 0 0 0 0 0
26350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26430 0 0 0 0 0 0 0 0 0 0 0
26440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26470 0 0 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85
264885 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
26490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
265785 85 85 85 255 85 170 85 0 170 170 170 170 85 0 170 170 170
265885 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0
26590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26670 0 0 0 0 0 0 0 0 0 0 0
26680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26810 0 0 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85
268285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26910 0 0 0 0 0 0 0 0 0 0 0
26920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27150 0 0 0 0 0 0 0 0 0 0 0
27160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27390 0 0 0 0 0 0 0 0 0 0 0
diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c
index 84f63205c46d..0889d50c3288 100644
--- a/drivers/video/pxafb.c
+++ b/drivers/video/pxafb.c
@@ -1439,7 +1439,7 @@ static void pxafb_disable_controller(struct pxafb_info *fbi)
1439static irqreturn_t pxafb_handle_irq(int irq, void *dev_id) 1439static irqreturn_t pxafb_handle_irq(int irq, void *dev_id)
1440{ 1440{
1441 struct pxafb_info *fbi = dev_id; 1441 struct pxafb_info *fbi = dev_id;
1442 unsigned int lccr0, lcsr, lcsr1; 1442 unsigned int lccr0, lcsr;
1443 1443
1444 lcsr = lcd_readl(fbi, LCSR); 1444 lcsr = lcd_readl(fbi, LCSR);
1445 if (lcsr & LCSR_LDD) { 1445 if (lcsr & LCSR_LDD) {
@@ -1455,14 +1455,16 @@ static irqreturn_t pxafb_handle_irq(int irq, void *dev_id)
1455 lcd_writel(fbi, LCSR, lcsr); 1455 lcd_writel(fbi, LCSR, lcsr);
1456 1456
1457#ifdef CONFIG_FB_PXA_OVERLAY 1457#ifdef CONFIG_FB_PXA_OVERLAY
1458 lcsr1 = lcd_readl(fbi, LCSR1); 1458 {
1459 if (lcsr1 & LCSR1_BS(1)) 1459 unsigned int lcsr1 = lcd_readl(fbi, LCSR1);
1460 complete(&fbi->overlay[0].branch_done); 1460 if (lcsr1 & LCSR1_BS(1))
1461 complete(&fbi->overlay[0].branch_done);
1461 1462
1462 if (lcsr1 & LCSR1_BS(2)) 1463 if (lcsr1 & LCSR1_BS(2))
1463 complete(&fbi->overlay[1].branch_done); 1464 complete(&fbi->overlay[1].branch_done);
1464 1465
1465 lcd_writel(fbi, LCSR1, lcsr1); 1466 lcd_writel(fbi, LCSR1, lcsr1);
1467 }
1466#endif 1468#endif
1467 return IRQ_HANDLED; 1469 return IRQ_HANDLED;
1468} 1470}
diff --git a/drivers/watchdog/orion5x_wdt.c b/drivers/watchdog/orion5x_wdt.c
index 7529616739d2..2cde568e4fb0 100644
--- a/drivers/watchdog/orion5x_wdt.c
+++ b/drivers/watchdog/orion5x_wdt.c
@@ -22,6 +22,7 @@
22#include <linux/uaccess.h> 22#include <linux/uaccess.h>
23#include <linux/io.h> 23#include <linux/io.h>
24#include <linux/spinlock.h> 24#include <linux/spinlock.h>
25#include <mach/bridge-regs.h>
25#include <plat/orion5x_wdt.h> 26#include <plat/orion5x_wdt.h>
26 27
27/* 28/*