Home | History | Annotate | Line # | Download | only in isapnp
isapnpdevs.c revision 1.59.10.1
      1  1.59.10.1      yamt /*	$NetBSD: isapnpdevs.c,v 1.59.10.1 2005/03/19 08:34:40 yamt Exp $	*/
      2        1.1  christos 
      3        1.1  christos /*
      4       1.29  christos  * THIS FILE IS AUTOMATICALLY GENERATED.  DO NOT EDIT.
      5        1.1  christos  *
      6        1.1  christos  * generated from:
      7  1.59.10.1      yamt  *	NetBSD: isapnpdevs,v 1.56 2005/02/27 00:27:21 perry Exp
      8        1.1  christos  */
      9        1.1  christos 
     10        1.5  christos /*-
     11       1.42        is  * Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
     12        1.1  christos  * All rights reserved.
     13        1.1  christos  *
     14        1.5  christos  * This code is derived from software contributed to The NetBSD Foundation
     15        1.5  christos  * by Christos Zoulas.
     16        1.5  christos  *
     17        1.1  christos  * Redistribution and use in source and binary forms, with or without
     18        1.1  christos  * modification, are permitted provided that the following conditions
     19        1.1  christos  * are met:
     20        1.1  christos  * 1. Redistributions of source code must retain the above copyright
     21        1.1  christos  *    notice, this list of conditions and the following disclaimer.
     22        1.1  christos  * 2. Redistributions in binary form must reproduce the above copyright
     23        1.1  christos  *    notice, this list of conditions and the following disclaimer in the
     24        1.1  christos  *    documentation and/or other materials provided with the distribution.
     25        1.1  christos  * 3. All advertising materials mentioning features or use of this software
     26        1.1  christos  *    must display the following acknowledgement:
     27        1.5  christos  *        This product includes software developed by the NetBSD
     28        1.5  christos  *        Foundation, Inc. and its contributors.
     29        1.5  christos  * 4. Neither the name of The NetBSD Foundation nor the names of its
     30        1.5  christos  *    contributors may be used to endorse or promote products derived
     31        1.5  christos  *    from this software without specific prior written permission.
     32        1.1  christos  *
     33        1.5  christos  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     34        1.5  christos  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     35        1.5  christos  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     36        1.5  christos  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     37        1.5  christos  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     38        1.5  christos  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     39        1.5  christos  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     40        1.5  christos  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     41        1.5  christos  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     42        1.5  christos  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     43        1.5  christos  * POSSIBILITY OF SUCH DAMAGE.
     44        1.1  christos  */
     45       1.46     lukem 
     46       1.46     lukem #include <sys/cdefs.h>
     47  1.59.10.1      yamt __KERNEL_RCSID(0, "$NetBSD: isapnpdevs.c,v 1.59.10.1 2005/03/19 08:34:40 yamt Exp $");
     48       1.46     lukem 
     49        1.1  christos #include <sys/param.h>
     50        1.1  christos #include <dev/isapnp/isapnpdevs.h>
     51        1.1  christos 
     52       1.10  christos 
     53       1.10  christos /* Adaptec SCSI */
     54       1.25   mycroft static const struct isapnp_matchinfo isapnp_aha_devlogic[] = {
     55       1.25   mycroft 	{"ADP1542", 0},	/* Adaptec AHA-1542CP */
     56       1.25   mycroft };
     57       1.25   mycroft static const struct isapnp_matchinfo isapnp_aha_devcompat[] = {
     58       1.25   mycroft 	{"PNP00A0", 0},	/* Adaptec AHA-1542CP */
     59       1.10  christos };
     60       1.10  christos const struct isapnp_devinfo isapnp_aha_devinfo = {
     61       1.25   mycroft 	isapnp_aha_devlogic, 1,
     62       1.25   mycroft 	isapnp_aha_devcompat, 1,
     63       1.10  christos };
     64        1.1  christos 
     65        1.1  christos /* Adaptec SCSI */
     66       1.25   mycroft static const struct isapnp_matchinfo isapnp_aic_devlogic[] = {
     67       1.25   mycroft 	{"ADP1520", 0},	/* Adaptec AHA-1520B */
     68       1.33       jun 	{"ADP1502", 0},	/* Adaptec AHA-1502P */
     69       1.25   mycroft 	{"ADP1505", 0},	/* Adaptec AVA-1505A */
     70       1.25   mycroft };
     71       1.25   mycroft static const struct isapnp_matchinfo isapnp_aic_devcompat[] = {
     72       1.25   mycroft 	{"ADP1530", 0},	/* (Adaptec AVA-1505A) */
     73        1.1  christos };
     74        1.1  christos const struct isapnp_devinfo isapnp_aic_devinfo = {
     75       1.33       jun 	isapnp_aic_devlogic, 3,
     76       1.25   mycroft 	isapnp_aic_devcompat, 1,
     77       1.39   thorpej };
     78       1.39   thorpej 
     79       1.39   thorpej /* Aironet 802.11 */
     80       1.39   thorpej static const struct isapnp_matchinfo isapnp_an_devlogic[] = {
     81       1.39   thorpej 	{"AOL0001", 0},	/* Aironet 4500/4800 */
     82       1.39   thorpej };
     83       1.39   thorpej const struct isapnp_devinfo isapnp_an_devinfo = {
     84       1.39   thorpej 	isapnp_an_devlogic, 1,
     85       1.39   thorpej 	NULL, 0,
     86        1.1  christos };
     87        1.1  christos 
     88       1.59  jdolecek /* AT Parallel Port */
     89       1.59  jdolecek static const struct isapnp_matchinfo isapnp_atppc_devlogic[] = {
     90       1.59  jdolecek 	{"PNP0400", 0},	/* Generic AT Parallel Port */
     91       1.59  jdolecek 	{"PNP0401", 0},	/* Generic ECP Prallel Port */
     92       1.59  jdolecek };
     93       1.59  jdolecek const struct isapnp_devinfo isapnp_atppc_devinfo = {
     94       1.59  jdolecek 	isapnp_atppc_devlogic, 2,
     95       1.59  jdolecek 	NULL, 0,
     96       1.59  jdolecek };
     97       1.59  jdolecek 
     98        1.1  christos /* National Semiconductor Serial */
     99       1.25   mycroft static const struct isapnp_matchinfo isapnp_com_devlogic[] = {
    100       1.50  christos 	{"AZT4001", 0},	/* Aztech Modem */
    101       1.25   mycroft 	{"BDP3336", 0},	/* Best Data Prods. 336F */
    102       1.25   mycroft 	{"OZO8039", 0},	/* Zoom 56k flex */
    103       1.25   mycroft 	{"BRI1400", 0},	/* Boca 33.6 PnP */
    104       1.25   mycroft 	{"BRIB400", 0},	/* Boca 56k PnP */
    105       1.25   mycroft 	{"ROK0010", 0},	/* Rockwell ? */
    106       1.57  christos 	{"ROK3360", 0},	/* Rockwell 33.6k PnP */
    107       1.25   mycroft 	{"USR0004", 0},	/* USR Sportster 14.4k */
    108       1.25   mycroft 	{"USR0006", 0},	/* USR Sportster 33.6k */
    109       1.51  christos 	{"USR0009", 0},	/* USR Courier V.Everything */
    110       1.25   mycroft 	{"USR2070", 0},	/* USR Sportster 56k */
    111       1.25   mycroft 	{"USR3031", 0},	/* USR 56k Faxmodem */
    112       1.47  christos 	{"USR3090", 0},	/* USR 56K Voice INT */
    113       1.29  christos 	{"USR9190", 0},	/* USR 56k Voice INT */
    114       1.25   mycroft 	{"ZTIF761", 0},	/* Zoom ComStar 33.6 */
    115       1.25   mycroft 	{"CIR3000", 0},	/* Cirrus Logic V43 */
    116       1.25   mycroft 	{"MOT0000", 0},	/* Motorola ModemSurfr */
    117       1.28  augustss 	{"SMM00C1", 0},	/* Leopard 56k PnP */
    118       1.30        ad 	{"SUP1650", 0},	/* Supra 336i Sp Intl */
    119       1.38  jdolecek 	{"SUP2480", 0},	/* SupraExpress 56i Sp V.90 */
    120       1.49  christos 	{"SUP2720", 0},	/* DIAMOND SupraExpress 56I SP V.90 */
    121       1.36  explorer 	{"GVC0505", 0},	/* GVC 56k Faxmodem */
    122       1.55  christos 	{"GVC000F", 0},	/* GVC 33.6k Faxmodem */
    123       1.42        is 	{"IOD0081", 0},	/* I-O DATA IFML-560 */
    124       1.25   mycroft };
    125       1.25   mycroft static const struct isapnp_matchinfo isapnp_com_devcompat[] = {
    126       1.25   mycroft 	{"PNP0500", 0},	/* Generic 8250/16450 */
    127       1.25   mycroft 	{"PNP0501", 0},	/* Generic 16550A */
    128        1.1  christos };
    129        1.1  christos const struct isapnp_devinfo isapnp_com_devinfo = {
    130       1.57  christos 	isapnp_com_devlogic, 24,
    131       1.25   mycroft 	isapnp_com_devcompat, 2,
    132        1.1  christos };
    133        1.1  christos 
    134       1.48      yamt /* Cirrus Logic Crystal CS89x0 Ethernet */
    135       1.48      yamt static const struct isapnp_matchinfo isapnp_cs_devlogic[] = {
    136       1.48      yamt 	{"IBM1010", 0},	/* IBM EtherJet ISA */
    137       1.48      yamt };
    138       1.48      yamt const struct isapnp_devinfo isapnp_cs_devinfo = {
    139       1.48      yamt 	isapnp_cs_devlogic, 1,
    140       1.48      yamt 	NULL, 0,
    141       1.48      yamt };
    142       1.48      yamt 
    143        1.1  christos /* 3Com 3CXXX Ethernet */
    144       1.25   mycroft static const struct isapnp_matchinfo isapnp_ep_devlogic[] = {
    145       1.45   thorpej 	{"TCM5051", 0},	/* 3Com 3c515 */
    146       1.25   mycroft 	{"TCM5090", 0},	/* 3Com 3c509B */
    147       1.25   mycroft 	{"TCM5091", 0},	/* 3Com 3c509B-1 */
    148       1.25   mycroft 	{"TCM5094", 0},	/* 3Com 3c509B-4 */
    149       1.25   mycroft 	{"TCM5095", 0},	/* 3Com 3c509B-5 */
    150       1.25   mycroft 	{"TCM5098", 0},	/* 3Com 3c509B-8 */
    151        1.1  christos };
    152        1.1  christos const struct isapnp_devinfo isapnp_ep_devinfo = {
    153       1.45   thorpej 	isapnp_ep_devlogic, 6,
    154       1.25   mycroft 	NULL, 0,
    155        1.1  christos };
    156        1.1  christos 
    157        1.3      matt /* ESS Audio Drive */
    158       1.27      fvdl static const struct isapnp_matchinfo isapnp_ess_devlogic[] = {
    159       1.27      fvdl 	{"ESS1868", 0},	/* ESS1868 */
    160       1.27      fvdl 	{"ESS1869", 0},	/* ESS1869 */
    161       1.56     itohy 	{"ESS1878", 0},	/* ESS1878 */
    162       1.27      fvdl };
    163        1.3      matt const struct isapnp_devinfo isapnp_ess_devinfo = {
    164       1.56     itohy 	isapnp_ess_devlogic, 3,
    165       1.54   tsutsui 	NULL, 0,
    166       1.54   tsutsui };
    167       1.54   tsutsui 
    168       1.54   tsutsui /* Fujitsu FMV-18x Ethernet */
    169       1.54   tsutsui static const struct isapnp_matchinfo isapnp_fmv_devlogic[] = {
    170       1.54   tsutsui 	{"FUJ01C1", 0},	/* Fujitsu FMV-183 */
    171       1.54   tsutsui 	{"FUJ01D1", 0},	/* Fujitsu FMV-184 */
    172       1.54   tsutsui };
    173       1.54   tsutsui const struct isapnp_devinfo isapnp_fmv_devinfo = {
    174       1.54   tsutsui 	isapnp_fmv_devlogic, 2,
    175       1.25   mycroft 	NULL, 0,
    176        1.3      matt };
    177        1.3      matt 
    178        1.1  christos /* Generic Joystick */
    179       1.25   mycroft static const struct isapnp_matchinfo isapnp_joy_devlogic[] = {
    180       1.25   mycroft 	{"AZT0003", 0},	/* Aztech AZT2320 GAME PORT */
    181       1.44     david 	{"AZT3001", 0},	/* Aztech GAME PORT */
    182       1.25   mycroft 	{"CSC0001", 0},	/* CS4235 */
    183       1.25   mycroft 	{"CSCA801", 0},	/* Terratec EWS64XL */
    184       1.32  christos 	{"CTL7001", 0},	/* Creative Awe64 */
    185       1.25   mycroft 	{"CTL7002", 0},	/* Creative Vibra16CL */
    186       1.25   mycroft 	{"ESS0001", 0},	/* ESS1868 */
    187       1.56     itohy 	{"ESS0005", 0},	/* ESS1878 */
    188       1.25   mycroft 	{"OPT0001", 0},	/* OPTi Audio 16 */
    189       1.25   mycroft 	{"PNPB02F", 0},	/* XXX broken GUS PnP */
    190       1.25   mycroft 	{"ASB16FD", 0},	/* AdLib NSC 16 PNP */
    191       1.25   mycroft };
    192       1.25   mycroft static const struct isapnp_matchinfo isapnp_joy_devcompat[] = {
    193       1.25   mycroft 	{"PNPB02F", 0},	/* generic */
    194        1.1  christos };
    195        1.1  christos const struct isapnp_devinfo isapnp_joy_devinfo = {
    196       1.56     itohy 	isapnp_joy_devlogic, 11,
    197       1.25   mycroft 	isapnp_joy_devcompat, 1,
    198        1.1  christos };
    199        1.1  christos 
    200        1.1  christos /* Gravis Ultrasound */
    201       1.25   mycroft static const struct isapnp_matchinfo isapnp_gus_devlogic[] = {
    202       1.25   mycroft 	{"GRV0000", 0},	/* Gravis Ultrasound */
    203        1.1  christos };
    204        1.1  christos const struct isapnp_devinfo isapnp_gus_devinfo = {
    205       1.25   mycroft 	isapnp_gus_devlogic, 1,
    206       1.25   mycroft 	NULL, 0,
    207        1.1  christos };
    208        1.1  christos 
    209        1.1  christos /* Lance Ethernet */
    210       1.25   mycroft static const struct isapnp_matchinfo isapnp_le_devlogic[] = {
    211       1.25   mycroft 	{"TKN0010", 0},	/* Lance Ethernet on TEKNOR board */
    212       1.37       erh 	{"ATK1500", 0},	/* Lance Ethernet on Allied Telesyn board */
    213       1.52  jdolecek 	{"CSI2203", 0},	/* Cabletron E22xx */
    214       1.53   tsutsui 	{"BUF0001", 0},	/* Melco Inc. LGY-IV */
    215       1.25   mycroft };
    216       1.25   mycroft const struct isapnp_devinfo isapnp_le_devinfo = {
    217       1.53   tsutsui 	isapnp_le_devlogic, 4,
    218       1.25   mycroft 	NULL, 0,
    219        1.1  christos };
    220       1.25   mycroft 
    221       1.25   mycroft /* MPU-401 MIDI UART */
    222       1.25   mycroft static const struct isapnp_matchinfo isapnp_mpu_devlogic[] = {
    223       1.25   mycroft 	{"AZT0002", 0},	/* Aztech AZT2320 MPU401 MIDI */
    224       1.44     david 	{"AZT2001", 0},	/* Aztech MPU401 MIDI */
    225       1.38  jdolecek 	{"CSC0003", 0},	/* CS4235 MPU401 MIDI */
    226        1.1  christos };
    227       1.25   mycroft const struct isapnp_devinfo isapnp_mpu_devinfo = {
    228       1.44     david 	isapnp_mpu_devlogic, 3,
    229       1.25   mycroft 	NULL, 0,
    230        1.1  christos };
    231        1.1  christos 
    232        1.1  christos /* NE2000 Ethernet */
    233       1.25   mycroft static const struct isapnp_matchinfo isapnp_ne_devlogic[] = {
    234       1.25   mycroft 	{"@@@1980", 0},	/* OvisLink LE-8019R */
    235       1.25   mycroft };
    236       1.25   mycroft static const struct isapnp_matchinfo isapnp_ne_devcompat[] = {
    237       1.25   mycroft 	{"PNP80D6", 0},	/* Digital DE305 ISAPnP */
    238        1.1  christos };
    239        1.1  christos const struct isapnp_devinfo isapnp_ne_devinfo = {
    240       1.25   mycroft 	isapnp_ne_devlogic, 1,
    241       1.25   mycroft 	isapnp_ne_devcompat, 1,
    242        1.1  christos };
    243        1.1  christos 
    244        1.1  christos /* PCMCIA bridge */
    245       1.25   mycroft static const struct isapnp_matchinfo isapnp_pcic_devlogic[] = {
    246       1.25   mycroft 	{"SCM0469", 0},	/* SCM SwapBox Plug and Play */
    247       1.25   mycroft 	{"AEI0218", 0},	/* Actiontec PnP PCMCIA Adapter */
    248       1.25   mycroft };
    249       1.25   mycroft static const struct isapnp_matchinfo isapnp_pcic_devcompat[] = {
    250       1.25   mycroft 	{"PNP0E00", 0},	/* PCIC Compatible PCMCIA Bridge */
    251        1.1  christos };
    252        1.1  christos const struct isapnp_devinfo isapnp_pcic_devinfo = {
    253       1.25   mycroft 	isapnp_pcic_devlogic, 2,
    254       1.25   mycroft 	isapnp_pcic_devcompat, 1,
    255        1.1  christos };
    256        1.1  christos 
    257        1.1  christos /* Creative Soundblaster */
    258       1.25   mycroft static const struct isapnp_matchinfo isapnp_sb_devlogic[] = {
    259       1.25   mycroft 	{"ADS7150", 0},	/* AD1815 */
    260       1.25   mycroft 	{"ADS7180", 0},	/* AD1816 */
    261       1.50  christos 	{"AZT1003", 0},	/* Aztech 1003 Audio */
    262       1.44     david 	{"AZT1008", 0},	/* Aztech 1008 */
    263       1.25   mycroft 	{"CTL0001", 0},	/* SB */
    264       1.25   mycroft 	{"CTL0031", 0},	/* SB AWE32 */
    265       1.25   mycroft 	{"CTL0041", 0},	/* SB16 PnP (CT4131) */
    266       1.44     david 	{"CTL0042", 0},	/* SB AWE64 Value */
    267       1.25   mycroft 	{"CTL0043", 0},	/* SB16 PnP (CT4170) */
    268       1.25   mycroft 	{"CTL0044", 0},	/* SB AWE64 Gold */
    269       1.25   mycroft 	{"CTL0045", 0},	/* SB AWE64 Value */
    270       1.25   mycroft 	{"OPT9250", 0},	/* Televideo card, Opti */
    271       1.25   mycroft 	{"@X@0001", 0},	/* CMI8330. Audio Adapter */
    272       1.41       mjl 	{"@@@1001", 0},	/* Avance Logic ALS100+ */
    273       1.44     david 	{"@@@2001", 0},	/* Avance Logic ALS120 */
    274       1.25   mycroft };
    275       1.25   mycroft static const struct isapnp_matchinfo isapnp_sb_devcompat[] = {
    276       1.25   mycroft 	{"PNPB000", 0},	/* Generic SB 1.5 */
    277       1.25   mycroft 	{"PNPB001", 0},	/* Generic SB 2.0 */
    278       1.25   mycroft 	{"PNPB002", 0},	/* Generic SB Pro */
    279       1.25   mycroft 	{"PNPB003", 0},	/* Generic SB 16 */
    280        1.1  christos };
    281        1.1  christos const struct isapnp_devinfo isapnp_sb_devinfo = {
    282       1.50  christos 	isapnp_sb_devlogic, 15,
    283       1.25   mycroft 	isapnp_sb_devcompat, 4,
    284       1.26       bad };
    285       1.26       bad 
    286       1.26       bad /* TROPIC Token-Ring */
    287       1.26       bad static const struct isapnp_matchinfo isapnp_tr_devlogic[] = {
    288       1.26       bad 	{"IBM0000", 0},	/* IBM TROPIC Token-Ring */
    289       1.26       bad 	{"TCM3190", 0},	/* 3Com TokenLink Velocity ISA */
    290       1.26       bad };
    291       1.26       bad const struct isapnp_devinfo isapnp_tr_devinfo = {
    292       1.26       bad 	isapnp_tr_devlogic, 2,
    293       1.26       bad 	NULL, 0,
    294        1.1  christos };
    295        1.1  christos 
    296        1.1  christos /* Western Digital Disk Controller */
    297       1.25   mycroft static const struct isapnp_matchinfo isapnp_wdc_devlogic[] = {
    298       1.25   mycroft 	{"AZT0000", 0},	/* Aztech AZT2320 IDE CDROM */
    299       1.44     david 	{"AZT0500", 0},	/* Aztech IDE CDROM */
    300       1.25   mycroft 	{"OPT0007", 0},	/* OPTi Audio 16 IDE controller */
    301       1.43  christos 	{"ESS0002", 0},	/* ES1868 IDE Controller */
    302       1.25   mycroft };
    303       1.25   mycroft static const struct isapnp_matchinfo isapnp_wdc_devcompat[] = {
    304       1.25   mycroft 	{"PNP0600", 0},	/* Western Digital Compatible Controller */
    305        1.1  christos };
    306        1.1  christos const struct isapnp_devinfo isapnp_wdc_devinfo = {
    307       1.44     david 	isapnp_wdc_devlogic, 4,
    308       1.25   mycroft 	isapnp_wdc_devcompat, 1,
    309        1.1  christos };
    310        1.1  christos 
    311        1.1  christos /* Microsoft Sound System */
    312       1.25   mycroft static const struct isapnp_matchinfo isapnp_wss_devlogic[] = {
    313       1.25   mycroft 	{"AZT0001", 1},	/* Aztech AZT2320 AUDIO */
    314       1.25   mycroft 	{"CSC0000", 0},	/* Windows Sound System */
    315       1.35    castor 	{"CSC0100", 0},	/* CS4235 CODEC */
    316       1.25   mycroft 	{"CSCA800", 0},	/* Terratec EWS64 CoDec */
    317       1.25   mycroft 	{"ASB1611", 0},	/* AdLib NSC 16 PNP */
    318       1.31        rh 	{"ASB1622", 0},	/* AdLib MSC 32 Wave PnP V3SB */
    319       1.58        rh 	{"@@@0001", 0},	/* CMI8330/C3D Audio Adapter */
    320        1.1  christos };
    321        1.1  christos const struct isapnp_devinfo isapnp_wss_devinfo = {
    322       1.58        rh 	isapnp_wss_devlogic, 7,
    323       1.25   mycroft 	NULL, 0,
    324        1.1  christos };
    325        1.1  christos 
    326        1.1  christos /* Yamaha Sound */
    327       1.25   mycroft static const struct isapnp_matchinfo isapnp_ym_devlogic[] = {
    328       1.25   mycroft 	{"YMH0021", 0},	/* OPL3-SA2, OPL3-SA3 */
    329        1.1  christos };
    330        1.1  christos const struct isapnp_devinfo isapnp_ym_devinfo = {
    331       1.25   mycroft 	isapnp_ym_devlogic, 1,
    332       1.25   mycroft 	NULL, 0,
    333        1.1  christos };
    334        1.1  christos 
    335