(2021)最高法知行终824号上诉人(一审原告、无效宣告请求人):某电脑贸易(上海)有限公司。住所地:中华人民共和国(上海)自由贸易试验区。法定代表人:彼某,该公司董事长。委托诉讼代理人:董远溪,上海市方达(北京)律师事务所律师。委托诉讼代理人:朱晓鹏,上海市方达(北京)律师事务所律师。被上诉人(一审被告):中华人民共和国国家知识产权局。住所地:中华人民共和国北京市海淀区蓟门桥西土城路6号。法定代表人:申长雨,该局局长。委托诉讼代理人:李卉,该局审查员。委托诉讼代理人:朱明雅,该局审查员。一审第三人(专利权人):某股份有限公司。住所地:美利坚合众国加利福尼亚州圣地亚哥市。代表人:罗某,该公司高级总监、法律顾问。委托诉讼代理人:胡琪,北京市柳沈律师事务所律师。委托诉讼代理人:于小宁,北京市柳沈律师事务所律师。上诉人某电脑贸易(上海)有限公司(以下简称某电脑上海公司)与被上诉人中华人民共和国国家知识产权局(以下简称国家知识产权局)及一审第三人某股份有限公司(以下简称某公司)发明专利权无效行政纠纷一案,涉及专利权人为某公司、名称为“链接到无线装置上的应用程序的设备及方法”的发明专利(以下简称本专利)。针对某电脑上海公司就本专利提出的无效宣告请求,原国家知识产权局专利复审委员会(以下简称专利复审委员会)作出第37065号无效宣告请求审查决定(以下简称被诉决定),在某公司于2018年5月25日提交的权利要求1-25的基础上维持本专利权有效;某电脑上海公司不服,向中华人民共和国北京知识产权法院(以下简称一审法院)提起诉讼,请求撤销被诉决定。一审法院于2021年3月29日作出(2018)京73行初12422号行政判决,判决驳回某电脑上海公司的诉讼请求;某电脑上海公司不服,向本院提起上诉。本院于2021年8月23日立案后,依法组成合议庭,并于2023年4月6日询问当事人,上诉人某电脑上海公司的委托诉讼代理人董远溪、朱晓鹏,被上诉人国家知识产权局的委托诉讼代理人李卉、朱明雅,一审第三人某公司的委托诉讼代理人胡琪、于小宁到庭参加询问。本案现已审理终结。
本案基本事实如下:本专利系名称为“链接到无线装置上的应用程序的设备及方法”的发明专利,专利权人为某公司,专利号为200780042026.0,专利申请日为2007年11月19日,优先权日为2006年11月22日、2007年11月18日,授权公告日为2014年9月3日。作为本案审查基础的权利要求共包括25项,其中权利要求1为:“1.一种链接到无线装置上的应用程序的方法,其包括:基于在无线装置上执行第一客户端应用程序而在所述无线装置的用户接口上产生第一输出,其中所述第一输出包括具有包括跟随有命令数据的应用方案识别符的预定语法的应用程序专用的通用资源识别符,其中所述应用方案识别符指示目标客户端应用程序,且其中所述命令数据表示由所述目标客户端应用程序执行的至少一个命令;接收选择所述应用程序专用的通用资源识别符的输入;确定选定的应用程序专用的通用资源识别符的所述应用方案识别符是否指示在所述无线装置中注册的客户端应用程序;及如果所述确定指示所述选定的应用程序专用的通用资源识别符的所述应用方案识别符指示在所述无线装置中注册的客户端应用程序且如果所述命令数据是有效的,则根据所述命令数据基于执行经识别的客户端应用程序而在所述用户接口上产生第二输出,其中所述第二输出是对应于所述经识别的客户端应用程序中的基于所述命令数据可修改的预定动态点的动态输出。”2018年2月26日,某电脑上海公司请求专利复审委员会宣告本专利权利要求全部无效。主要理由包括:本专利的权利要求1-25保护范围不清楚,不符合2002年修订的《中华人民共和国专利法实施细则》(以下简称专利法实施细则)第二十条第一款的规定;权利要求1-25得不到说明书支持,不符合2000年修正的《中华人民共和国专利法》(以下简称专利法)第二十六条第四款的规定;权利要求1-6、14-18不具备新颖性,不符合专利法第二十二条第二款的规定;权利要求1-25不具备创造性,不符合专利法第二十二条第三款的规定。某电脑上海公司提交了如下证据:对比文件1:公开号为US20030233451A1、公开日为2003年12月18日的美国专利申请公布文件及其中文译文。对比文件1公开了一种对基于电视的娱乐系统中的资源进行引用的系统和方法,并具体公开了以下内容:所述源内容包含对资源的若干嵌入式引用,所述资源例如是由所述机顶盒在本地部署的资源和/或由所述网络服务器远程部署的资源。所述机顶盒利用映射表来确定所述嵌入式引用的语法中的语法抽象的实际值,以访问和/或启动至少一个在本地或远程部署的资源。例如,TSURLll6可以被客户端装置114操控的应用(例如,EPG、VOD、网络浏览器、MPEG等)利用来调谐到以下资源的任何组合:特定广播网络110(有线电视、地面、卫星)上的特定传输流;传输流上的服务(例如,MPEG服务);服务内的基本流;传输流上的轮播(带内或带外);轮播上的对象或文件;当前传输流或任何其它传输流上的应用。考虑在客户端装置114处执行的EPG应用显示EPG数据,所述EPG数据嵌入了引用TV节目的TSURL116。在用户选择了对应于嵌入的TSURL的EPG数据的图形或文本方面之后,客户端装置调谐到由TSURL识别的资源,所述资源在此实例中是TV节目。在另一实例中,考虑从客户端装置到web服务器102的点对点连接正在向被客户端装置操控的网络浏览器应用提供超文本标记语言(HTML)内容。指示EPG数据的TSURLll6和对应的EPG应用嵌入所述HTML内容中。在选择了嵌入的TSURL(例如,编程或用户选择对应于TSURL的HTML数据的图形或文本方面)之后,客户端装置112将启动所引用的EPG应用并且调谐到由TSURL识别的EPG数据资源,所述EPG数据资源在此实例中经由广播网络进行传送,而不是经由点对点连接进行传送。内容作者将一个或多个“传输流(TS)通用资源定位符(URL)”116嵌入到程序数据内容[例如,应用和/或其它ITV数据内容,例如,EPG、VOD、v0M、网页(HTML)、MPEG和/或其它数据]中。在框404处,内容提供者经由网络104将具有嵌入的TSURL的程序数据传送到头端分发服务106。TSURL语法规则/成分定义如下:application_reference—应用的全局唯一识别符的编码文本串。在MHP和OCAP中,应用名称由构成应用的application_identifier的数值org_id和app_id产生。在ATSC-DASE中,应用全局唯一识别符已经处于字符串格式,因此与此方法很好地配合。cmd_line—经编码文本串,其将含有传递到应用的命令行参数。TSURLll6语法可以引用传输流内的基本流上的图3的应用信息表(AIT)304(图1的映射表132的一部分)。AIT列出由对应的传输描述符322指示的网络上的当前传输流或另一传输流上的应用(例如,应用320,被客户端装置114操控的应用等)的集合。基本流一次仅携载一个AIT。然而,AIT由子表构成,每个应用类型有一个子表。被TSURL116语法引用服务绑定的应用具有以下格式:ts://<textual_service_identifier>:<application_reference>,其被解析为[frequency_number,program_number,指向具有在那个服务上携载的图3的AIT304中的匹配的org_id和app-id的应用的指针。在与[frequency_number,program_number]相关联的服务上携载的AIT将列出由application_identifier[or_id.appjd]识别的应用。映射表132将应用/节目映射到它们的在OOB中携载的相应资源/元数据(每个应用于包括应用识别符的organization_id和application_id相关联)根据在通信的映射表中提供的信息来解析所调取的TSURL语法的语义。在框412处,响应于客户端装置处的TSURL的调取(例如,通过用户选择对应于嵌入内容中的TSURL的图形、文本或硬件),根据在通信的映射表中提供的信息来解析所调取的TSURL语法的语义。TSURL116还允许将参数传递到在也以UTF-8编码的TSURL116的<cmd_line>成分中引用的应用(绑定或未绑定)。cmd_line中的参数是区分大小写的。当在应用的命令中通过空格将指定参数彼此分离时指定退出机制。所使用的退出机制是“%HH”。因此,形式为“-z-f-q”的应用的命令行被写作“-z%20-f%-q)”。对比文件2:专利号为US7092703B1、授权公告日为2006年8月15日的美国专利文件及其中文译文。对比文件2公开了一种用于访问移动设备上的通用消息处理程序的方法和系统,并具体公开了以下内容:一种用于应用程序管理系统的方法,所述应用程序管理系统用于允许在移动信息设备上执行的JavaMIDlet访问通用消息处理程序,所述方法包括:应用程序管理系统用于允许在移动信息设备上执行的JavaMIDlet访问通用消息处理程序,从所述消息处理程序接收指示所述JavaMIDlet的URI,所述通用消息处理程序位于所述移动信息设备上,当消息传递客户端接收WAP服务指示或服务载入消息时,消息可包括URI字段,通用消息处理程序300经由数据流302接收推送消息。消息可包括URI字段,完整的URI方案将由JAM58经由Muglet.getURI()面向对象方法被传递到Muglet。例如URI字符串:
”将从Muglet通过“com.sprintpcs.apps”启动日历MIDlet,其中日期被设置为2001年10月3日,JAM58基于注册表来确定适当的Muglet,WAP服务指示推送消息在推送启动由AP服务载入推送消息指定的应用程序之前需要来自移动信息设备的用户的批准。当MIDlet通过setExitURL()对象方法调用另一个MIDlet或另一个应用程序时,对象方法appendReferringURL()设置被传递到JAM58并且附加到识别MIDlet的URL的字符串。对象方法setExitURL()设置被传递到JAM58并且根据URL方案和互联网媒体类型处理的规则被调用的URL。如图17中所描绘,通用消息处理程序300经由数据流302接收推送消息。推送消息可以是任何类型的推送消息,诸如WAP推送消息。推送消息可包括URL、MIME媒体类型或用于指定移动信息设备上待启动的应用程序的其他识别符。一旦通用消息处理程序300接收到推送消息,通用消息处理程序300就处理推送消息以便启动移动信息设备上的应用程序。然而,WAP服务指示推送消息在推动启动由WAP服务载入推送消息指定的应用程序之前需要来自移动信息设备的用户的批准。因此,如果通用消息处理程序300接收到WAP服务指示推送消息,那么通用消息处理程序300可以首先请求来自移动信息设备的用户的批准。如图17中所示,通用消息处理程序300可以经由弹出消息304或某种其他指示来请求来自移动信息设备的用户的批准。一旦应用程序管理系统150从通用消息处理程序300接收到推送消息,应用程序管理系统150然后就可以确定被注册以处理推送消息的应用程序。例如,如果推送消息指定与即时消息传递相关联的URI方案,那么应用程序管理系统150可以确定移动信息设备上的哪个应用程序被注册用于即时消息传递。如果所述应用程序还没在移动信息设备上执行,那么应用程序管理系统150然后可以启动所述应用程序。如图17中所描绘,推送消息与即时消息传递应用程序相关联,因此响应于接收到推送消息,应用程序管理系统150启动即时消息传递MIDlet306。JAM58还支持通过处理具有(“ams”)的方案和为目标内容的内容ID的方案特定部分的URL字符串来“启动”所存储的非java内容的能力。例如,浏览器页面中的URL字符串<ahref=“ams:sprintpcs.com.example_content”>将导致ams:URI传递到AMS,从而将针对具有与“示例_内容”相关联的内容ID的所存储的内容启动适当的处理程序。在应用程序服务器和web服务器中也产生动态内容,所述动态内容主要是基于从数据库提取的信息并且能够动态地修改[例如,使用XML、Java小应用程序、Java小服务程序、EnterprisejavaBeans(“EJB”)、MIDlet或其他服务器端技术]。2018年8月20日,专利复审委员会作出被诉决定认为:本专利权利要求1-25保护范围清楚,符合专利法实施细则第二十条第一款的规定;权利要求1-25得到说明书的支持,符合专利法第二十六条第四款的规定;权利要求1-6、14-18具备新颖性,符合专利法第二十二条第二款的规定;权利要求1-25具备创造性,符合专利法第二十二条第三款的规定。专利复审委员会据此决定:在某公司于2018年5月25日提交的权利要求1-25的基础上维持本专利权有效。某电脑上海公司不服,于2018年12月5日向一审法院提起诉讼,请求撤销被诉决定。事实和理由为:(一)被诉决定错误地认定本专利权利要求1-25具备新颖性。1.被诉决定错误地认定权利要求1-25相对于对比文件1具备新颖性。(1)对比文件1“命令行(cmd_line)”公开了本专利权利要求1的“命令数据”。首先,被诉决定判断权利要求1的新颖性时,对于技术特征“命令数据”的解释,引入了从属权利要求8的附加技术特征,属于适用法律错误。其次,即使如被诉决定把从属权利要求8的附加特征加入独立权利要求1中,对比文件1的“命令行(cmd_line)”也公开了技术特征“命令数据”。(2)对比文件1公开了权利要求1的特征1-5。首先,被诉决定错误地认为,预定动态点基于执行命令方式(即本专利的“命令”)可修改。实际上,根据本专利说明书和权利要求的记载,预定动态点基于命令数据可修改。其次,对比文件1公开了根据命令行界定应用程序的预定点,以及该预定点基于所述命令行可修改,即公开了权利要求1的特征1-5。因此,权利要求1相对于对比文件1不具备新颖性。2.被诉决定错误地认定权利要求1-25相对于对比文件2具备新颖性。(1)对比文件2公开了权利要求1的特征“命令数据”。首先,被诉决定在评述权利要求1的新颖性时,使用从属权利要求8所限定的内容解释权利要求1的特征“命令数据”,属于适用法律错误。其次,即使如被诉决定所认为的“命令数据”需同时包括参数数据和所需执行命令方式本身,对比文件2公开的命令行也包括上述内容。(2)对比文件2公开了权利要求1的特征1-5。首先,与对比文件1的评价类似,被诉决定错误地认为,预定动态点基于执行命令方式(即本专利的“命令”)可修改。实际上,根据本专利说明书和权利要求的记载,预定动态点基于命令数据可修改。其次,对比文件2公开了根据URI字符串的方案特定部分和查询成分界定应用程序的预定点,以及该预定点基于所述URI字符串的方案特定部分和查询成分可修改,即公开了权利要求1的特征1-5。因此,权利要求1相对于对比文件2不具备新颖性。(二)被诉决定错误地认定本专利权利要求1-25具备创造性。即使对比文件1、2与权利要求1存在文字差别,基于某电脑上海公司在无效宣告请求书中陈述的理由,权利要求1也不具备创造性。同理,权利要求14也不具备创造性。国家知识产权局一审辩称:被诉决定主要证据确凿,适用法律、法规正确,审查程序合法,请求驳回某电脑上海公司的诉讼请求。某公司一审述称:被诉决定主要证据确凿,适用法律、法规正确,审查程序合法,请求驳回某电脑上海公司的诉讼请求。一审法院经审理认定了上述事实。一审法院认为:(一)关于本专利权利要求1-25是否符合专利法第二十二条第二款的规定1.权利要求1相对于对比文件1是否具备新颖性(1)关于对比文件1公开的“命令行(cmd_line)”的认定首先,关于“命令数据”是否必须同时包含命令和属性。第一,本专利已经记载了命令数据包括命令和属性。说明书第[0044]段记载:“此后是命令数据34,所述命令数据包含通过预定定界符68[例如逗号(,)]而与一个或一个以上属性值对66分离的一个或一个以上命令64。”说明书第[0043]段记载:“命令数据34包含一个或一个以上命令、或者与每一命令相关联的一个或一个以上属性、或者与每一属性相关联的一个或一个以上值中的至少一者或任何组合。”其表示需要有表示命令和属性的参数来组成命令数据,但是在说明书其他部分也表明了命令、属性是可以缺省的,即通常需要由能表达出命令和属性的两部分组成。第二,权利要求1中虽然没有明确限定“命令数据包含命令和属性”,但是权利要求1中限定了“基于命令数据可修改的预定动态点”,其表示这个“点”是可修改的,虽然没有公开“基于命令本身”,但是其已经构成了与对比文件1的不同。其次,关于对比文件1是否公开了命令数据包括命令和属性。第一,cmd_line的定义在对比文件1中非常明确:系经编码文本串,其含有传递到应用的命令行参数。命令行参数相当于属性。而其中“TSURL116允许将参数传递到在TSURL的
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *