windows版本的openocd 0.6.0, 支持jlink、openjtag(100ask)等等 调试pandaboard、S3C6410等都可以; 之前我买的openjtag带的openocd是0.4.0的,nand flash支持有些问题,我就自己编译了这个openocd,之后加到openjtag里面了,可以配合openjtag使用;
2025-10-23 22:27:12 5.12MB OpenOCD
1
内容索引:VC/C++源码,数据库应用,餐饮管理,管理系统  这是以前一个餐饮管理系统的功能修改版,加入一些个性功能,特别是ListView控件的使用,鼠标放到任一行的数据上,鼠标会执行点击时的功能。从功能 上说,这款餐饮程序可以实现前台销售、统计报表、基础资料、系统维护等功能,还有超多的自定义快捷键功能,本系统采用VC+Access架构,运行测试前请把Access数据库拷贝至EXE文件的同级目录中,默认登录:Admin 1234,其它口令请打开数据库查看。
2025-10-23 16:38:58 470KB VC/MFC源代码 数据库源代码
1
在网上找一个CHM合并工具,找了很久只在VckBase上找到一个Magic CHM Merge 的公具说是可以合并chm,但是不知道是因为我下载的是绿色版还是其他什么原因,这个工具老是用不起来,要么总是提示我 选择的文件不在一个工程文件夹内,要么就是合并中文CHM时莫名其妙的退出,有时候运气好能合并成功(郁闷了一两天)。 于是没办法自己用vc++写了一个CHM合并工具,它能将已经编译好的CHM合并到一个CHM文件中。和Magic CHM Merge 一样,这种合并其实并不是真正意义上的把多个CHM的内容合并到一个chm中,而只是把多个CHM文件中的主题的链接加入 到一个chm中,这样只要打开编译好的那个CHM帮助文件就能访问所有的内容。就像MSDN一样,用这个程序你也能打造自己的 MSDN。如果要真正的把多个CHM中的内容合并到一个CHM中,则需要先把所有需要合并的chm反编译,然后把反编译得到的文 件一起同一编译成一个CHM,这样太费时间也没必要。
2025-10-22 10:38:44 692KB CHM打包
1
VC实例精通一书的源码。 第2章(\Chapter02) 示例描述:本章介绍常用Win32控件的使用方法。 01_EditDemo 演示静态文本、文本框、按钮控件的使用方法 02_CheckBoxDemo 演示复选框和单选按钮控件的使用方法。 03_ComboBoxDemo 演示组合框和列表框控件的使用方法。 04_ScrollBarDemo 演示滚动条控件的使用方法。 05_SpinDemo 演示数值调节按钮的使用方法。 06_ProgressDemo 演示进度条控件的使用方法。 07_SliderDemo 演示滑块控件的使用方法。 08_HotkeyDemo 演示热键控件的使用方法。 09_ListCtrlDemo 演示列表控件的使用方法。 10_TreeCtrlDemo 演示树形控件的使用方法。 11_RichEditDemo 演示格式文本框的使用方法。 12_TabCtrlDemo 演示属性页的使用方法。 13_AnimateDemo 演示动画控件的使用方法。 14_DateTimeDemo 演示日期时间选择控件的使用方法。 15_CalendarDemo 演示日历控件的使用方法。 16_IPCtrlDemo 演示IP输入框的使用方法。 第3章(\Chapter03) 示例描述:本章介绍高级Win32控件的使用方法。 01_MenuDemo 演示窗体菜单的使用方法。 02_PopMenuDemo 演示弹出式菜单的使用方法。 03_ToolbarDemo 给窗体添加标准工具栏。 04_Toolbar256 使工具栏支持256色位图。 05_StatusBarDemo 在窗体的状态栏区域输出信息。 06_ColorStatusBar 在状态栏添加彩色渐变进度条。 07_ToolTipDemo 使用ToolTip显示即时提示。 第4章(\ Chapter04) 示例描述:本章介绍窗体的使用方法和使用技巧。 01_WindowDemo 演示创建和显示窗体的方法。 02_TopMostWnd 让窗体保持在桌面最顶层。 03_TransparentWindow 创建半透明窗体。 04_EllipticalWindow 创建椭圆窗体。 05_TextPathWnd 创建文字异形窗体。 06_ImagePathWnd 根据图片创建异形窗体。 07_AnimatedWnd 以动画方式显示和隐藏窗体。 08_AutoSize 让窗体上的控件自动适应窗体大小。 09_AutoSizeEx 多个控件改变大小时防止闪烁。 10_LimitSize 限制窗体的最大和最小尺寸。 11_AutoPos 让窗体具有停靠效果。 12_EnumWnd 枚举系统中的窗口。 第5章(\ Chapter05) 示例描述:本章介绍创建对话框以及通用对话框的使用技巧。 01_ModalDlg 显示模式对话框。 02_ModallessDlg 显示非模式对话框。 03_OpenFileDemo 使用打开文件对话框。 04_SaveFileDemo 使用保存文件对话框。 05_FontDlgDemo 使用字体选择对话框。 06_FontDlgDemo_Color 使用字体选择对话框。 07_PreviewFileDlg_Demo 为打开文件对话框增加预览功能。 08_InputDlg_Demo 从内存创建对话框。 第6章(\ Chapter06) 示例描述:本章介绍Windows应用程序消息循环的原理和消息处理技巧。 01_PeekMsgDemo 传递并响应Windows消息。 02_SendMsg 发送Windows消息。 03_MsgInMfc 了解MFC的映射消息机制。 04_UserMsg 使用自定义消息。 05_DoubleEdit_Demo 拦截并处理Win32控件的消息。 第7章(\ Chapter07) 示例描述:本章介绍Windows系统和外壳编程的技巧。 01_TimerDemo 使用计时器。 02_RegDemo 访问系统注册表。 03_SuperPwd 用随机数生成强力密码。 04_ShellOpen 打开一个和程序相关联的文档。 05_ClipboardDemo 访问Windows剪切板。 06_ClipboardMonitor 监视剪切板内容变化。 07_TrayIconDemo 使用系统托盘图标。 第8章(\ Chapter08) 示例描述:本章介绍在应用程序中使用Windows基本设备的方法和技巧。 01_MouseSample 处理鼠标消息。 02_KeyTest 处理键盘消息。 03_MouseMoving 利用客户区鼠标消息拖动无边框窗体。 04_NCMsg 利用非客户区鼠标消息控制无边框窗体。 05_LockMouse 限制鼠标移动区域。 06_MyEvent 模拟键盘鼠标消息。 07_ClipboardHelper 使用系统热键消息使后台程序得到通知。 第9章(\ Chapter09) 示例描述:本章学习Windows进程的创建和管理方法。 01_StartProcess 创建和结束进程。 02_RedirectStdio 用匿名管道获取控制台程序的输出。 03_CatchError 拦截并处理外部进程的错误。 04_SingleInstance 防止应用程序运行多个实例。 05_ProcessMsg 用消息在进程间通讯。 06_MappingFile 用内存映射文件在进程间通讯。 07_ProcessList 枚举并得到系统中所有进程信息。 第10章(\ Chapter10) 示例描述:本章学习Windows线程的创建和管理方法。 01_PrimeNumberFinder 主线程和用户界面。 02_PrimeNumberFinderEx 创建和结束线程。 03_PrimeNumberFinal 用临界区对象同步线程。 04_BigPrimeNumber 用事件对象同步线程。 05_SemaphoreDemo 用信号量对象同步线程。 06_ThreadPriority 调整线程优先级。 第11章(\ Chapter11) 示例描述:本章学习使用VC6进行图形图像开发的技巧。 01_ZoomBitmap 用DC对象缩放位图。 02_DrawLine 用画笔对象画线。 03_BrushDemo 用画刷对象填充区域。 04_RollText 在屏幕上输出文本。 05_PicShow 使用GDI+读取不同格式的图片。 06_PicShowEx 使用GDI+保存不同格式的图片。 07_Snap 制作屏幕截图程序。 08_Watermark 给图片增加版权信息。 第12章(\ Chapter12) 示例描述:本章学习使用VC6进行文件IO开发的技巧。 01_BinaryView 用基本API编写二进制编辑器。 02_MyCompressor 用MFC类编写文件压缩软件。 03_DirMonitor 监控硬盘上文件的变化。 04_HddSpace 获取本机所有磁盘及其空间使用情况。 05_WideText 文本保存及编码方式。 06_XmlReader 读写XML文件。 07_SerialPort 读写串口数据。 第13章(\ Chapter13) 示例描述:本章学习使用VC6进行数据库开发的方法和技巧。 01_ODBC_Source 创建ODBC数据源。 02_ODBC_Demo 通过ODBC访问Access数据库。 03_ADO_Demo 通过ADO访问据库。 04_ExecProc 调用SQL Server的存储过程。 05_TransExec 事务处理SQL Server命令。 06_BinData 存取数据库中的图片。 07_CreateMdb 在程序中动态生成Access数据库。 第14章(\ Chapter14) 示例描述:本章学习使用VC6进行网络开发的方法和技巧。 01_UdpClient 建立UDP连接客户端。 02_UdpServer 建立UDP连接服务器端。 03_TcpClient 建立TCP连接客户端。 04_TcpServer 建立TCP连接服务器端。 05_MfcSock 使用MFC的SOCKET类。 06_MyWebProtocol 注册自己的浏览器地址栏协议。 07_GetHttpStr 抓取网页内容。 08_VisualPing 基于ICMP编写网络速度监控程序。 第15章(\ Chapter15) 示例描述:本章介绍一些Windows高级编程技术。 01_AppSnap 制作鼠标HOOK。 02_PasswordShow 用鼠标HOOK读取密码框中的内容。 03_KeyVoice 制作键盘HOOK。 04_SysKey 用键盘HOOK屏蔽系统按键。 05_DlgSkinDemo 用HOOK技术给对话框换肤。 06_PeExport 分析DLL文件获取其导出函数列表。 第16章(\ Chapter16) 示例描述:本章介绍VC6在多媒体开发方面的应用技术。 01_BgMusic 用基本API播放声音。 02_MP3Player 用MCI播放音频。 03_MyReal 调用RealPlayer播放音频文件。 04_Recorder 制作录音机程序。 05_GifCtrl 在VC中显示动态的GIF动画。 06_FlashWnd 在VC中播放Flash动画。 07_MediaPlayer 在VC中播放视频。 08_CaptureVideo 在VC中实现视频采集及截图功能。 第17章(\ Chapter17) 示例描述:本章介绍VC6在ActiveX方面的应用技术。 01_MyActiveX 创建ActiveX控件。 02_MyActiveX2 为ActiveX控件增加属性和方法。 03_ActiveXInDlg 在应用程序中使用ActiveX控件。 04_ActiveXInWeb 在浏览器中使用ActiveX控件。 05_MyActiveX3 在VC中显示动态的GIF动画。 06_RegOCX 在程序中注册和注销ActiveX控件。 第18章(\ Chapter18) 示例描述:本章介绍如何将应用程序制作成完整的应用软件的技术。 01_MyHelp 制作帮助文件。 02_Setup 制作安装程序。 03_MultiLanguage 让应用程序界面支持多语言。 04_MultiLanguageEx 多语言的字符串常量。 05_SetupEx 制作多语言的安装程序。
2025-10-20 13:55:21 7.34MB 书本源码
1
VC++(Visual C++)是由微软公司开发的一个集成开发环境(IDE),它允许开发者利用C++编写应用程序。在文档“图文手把手教你一步步用VC++6.0编写大智慧365插件”中,作者将指导初学者通过VC++6.0创建一个插件,该插件将用于大智慧365软件,后者是一个股票分析软件。 文档的开始部分提到了创建一个Win32动态链接库(DLL)工程的过程。在这个过程中,我们首先要打开VC++6.0,然后选择新建工程,并在弹出的窗口中选择“Win32Dynamic-LinkLibrary”,输入工程名称,例如“MyDzhDll”。这个步骤是建立一个新的工程的基本过程。 接着,文档建议继续点击“OK”按钮,然后选择创建一个“simple DLL project”。这样,就成功创建了一个基础的程序框架。在创建DLL的过程中,你需要有一个头文件(DzhFunc.h),该文件定义了大智慧软件需要的接口。根据文档提供的代码,这些接口应该符合大智慧扩展函数规范V1.10。 这个规范指出扩展函数适用于大智慧1.10标准版和专业版公式系统,并且扩展函数主要用于实现那些系统函数无法完成的特殊算法。这种扩展函数通过Windows 32位动态链接库实现,而VC++6.0被推荐作为开发环境。 在文档中还提到了如何通过公式编辑器调用这些扩展函数,即将动态库名称和函数名称按“动态库名称@函数名称”的格式书写,然后在相应的参数表中添加。文档强调了创建的动态链接库可以在大智慧软件目录下使用。 在大智慧扩展函数规范V1.10中,定义了一些特定的数据类型和枚举类型,比如分析周期的枚举DATA_TYPE,以及基础数据结构STKDATA和扩展数据结构STKDATAEx。STKDATA结构包含了一系列与股票交易相关的基本数据,比如开盘价、最高价、最低价、收盘价、成交量、成交额等。STKDATAEx联合体则包含了一系列买卖盘的数据。 文档还提到了如何定义财务数据,比如总股本、国家股、发起人法人股、法人股等,以及它们在结构体中的对应项。这些数据为股票分析提供了更深层次的财务视角。 文档最后提到了一个扫描错误的问题,指出文档是通过OCR技术扫描并生成的,因此可能会有字词识别错误,需要读者自行理解并修正。这是在处理文档扫描和OCR转换时常见的问题,它提醒我们在学习和应用这些信息时需要具备一定的判断力和理解能力。 总结起来,这个文档主要讲述了如何利用VC++6.0编写一个特定于大智慧365软件的插件,涉及到了创建Win32动态链接库工程、接口定义、使用规范以及数据结构的应用等多个方面的内容。该插件的设计目的是为了增强大智慧软件在股票交易分析上的功能。
2025-10-20 13:36:01 1.92MB
1
**VC++ MSDN离线帮助文档安装包详解** 在编程领域,Visual C++(简称VC++)是一款由微软公司开发的用于创建Windows应用程序的强大工具。它不仅提供了C++编译器,还包括了丰富的类库,如MFC(Microsoft Foundation Classes)和ATL(Active Template Library),使得开发者能够方便地构建高性能的桌面应用。然而,在开发过程中,遇到问题时能够快速查阅准确的API和类库文档至关重要。这就是MSDN(Microsoft Developer Network)帮助文档的作用所在。 MSDN是一个综合性的开发者资源库,包含了微软所有的开发工具、平台和技术的详细文档。对于VC++开发者来说,MSDN文档是解决问题、学习新功能和了解API用法的宝贵资源。然而,频繁在线查询可能会消耗大量时间,特别是网络环境不佳时。因此,离线版的MSDN帮助文档显得尤为重要。 "VC帮助文档离线安装包"就是为了解决这个问题而提供的解决方案。这个74.87MB的安装包包含了VC++的完整MSDN离线文档,允许用户在没有互联网连接的情况下查阅必要的信息。安装后,用户可以在本地计算机上搜索和浏览关于VC++ Win32类库的各种方法,包括类、函数、结构体、枚举等,极大地提升了开发效率。 离线帮助文档通常以本地数据库的形式存在,通过一个专门的搜索界面或者集成在IDE(集成开发环境)中,开发者可以直接输入关键词查找相关文档,无需等待网页加载。这种离线访问方式对于那些经常需要查阅文档的开发者来说,既快速又便捷。 在安装这个离线文档包时,需要注意以下几点: 1. **兼容性**:确保安装包与你的VC++版本兼容,因为不同版本的VC++可能有不同的API和特性。 2. **安装路径**:选择一个合适的安装位置,最好是在硬盘空间充足且方便访问的地方。 3. **更新**:虽然离线文档避免了网络依赖,但可能会错过一些最新的API或修复。定期检查是否有新的更新版本是很重要的。 压缩包内的文件"aghdfh.EXE"应是这个离线帮助文档的安装程序。运行此文件,按照向导提示进行安装,完成后即可在VC++ IDE内或独立的文档阅读器中使用这些离线帮助。 "VC++ MSDN帮助文档离线安装包"是VC++开发者不可或缺的工具之一,它提供了一种高效、方便的方式来获取和查阅关于Win32类库的各种信息,对于提升开发效率和解决编程难题有着重要作用。在无网或网络不稳定的情况下,离线文档的价值更是不言而喻。
2025-10-17 14:27:57 74.87MB msdn vc++ 离线帮助文档
1
【VC远程控制软件】是一种基于Microsoft Visual C++ 6.0(简称VC6.0)环境,利用MFC(Microsoft Foundation Classes)库开发的远程控制应用程序。MFC是微软提供的一套面向对象的C++类库,它封装了Windows API,使得开发者能够更方便地构建Windows应用程序。 该软件包含两个主要部分:服务端和客户端。服务端通常安装在需要被控制的计算机上,负责接收并执行客户端发送的控制指令。客户端则是在控制端计算机上运行,用于向服务端发送控制请求,实现对远程计算机的桌面操作。 远程控制功能的核心技术包括网络通信、屏幕捕获、输入模拟等。服务端和客户端需要建立安全的网络连接,这通常通过TCP/IP协议来实现。客户端通过连接到服务端的特定端口,建立一个可靠的双向通信通道。接着,客户端会定期请求服务端发送当前桌面的屏幕图像,服务端捕获桌面并编码成适合网络传输的数据格式(如JPEG或PNG),然后发送给客户端。客户端收到后解码并显示在本地屏幕上,实现远程桌面的实时同步。 输入模拟是远程控制的另一个关键环节。当用户在客户端进行键盘或鼠标操作时,这些动作需要被转换为相应的网络消息,并发送给服务端。服务端接收到这些消息后,模拟相同的键盘和鼠标事件,从而在远程计算机上执行相同的操作。 在MFC框架下开发此类应用,开发者需要熟悉Windows消息机制、网络编程以及多线程技术。Windows消息机制处理用户界面的交互,网络编程涉及socket编程,用于处理客户端和服务端的通信,而多线程则用于保证用户界面的响应性和后台网络操作的并发执行。 从压缩包文件名称"zclient"来看,这可能是指客户端的源代码或者可执行文件。在实际开发过程中,通常还会有一个对应的服务端文件,如"zserver"。源代码中可能包含了各种类,如网络通信类、屏幕捕获类、输入模拟类等,每个类都有其特定的功能和职责。 开发远程控制软件需要注意安全性,因为这类程序涉及到对远程系统的完全访问权限。开发者需要采取措施防止未经授权的访问,比如使用加密的通信信道、实施身份验证机制以及限制特定的操作权限。同时,由于VC6.0已是一个较老的开发环境,为了兼容性和安全性,可能需要考虑升级到更新的版本,如Visual Studio 2019,利用更现代的C++标准和安全特性。 【VC远程控制软件】是通过VC6.0和MFC实现的远程桌面控制工具,涉及网络编程、屏幕捕获、输入模拟等多个技术领域,开发者需要具备扎实的Windows编程基础和网络安全意识。对于研究和学习这类软件的开发,不仅可以深入理解MFC框架,也能提升在网络应用开发和系统级交互方面的技能。
2025-10-17 11:40:59 7.3MB 远程控制
1
jqGrid是一款功能强大的jQuery插件,专为展示和操作网格数据而设计。它以其灵活性、易用性和丰富的特性集在Web开发领域广受欢迎。jqGrid 4.6.0是该插件的一个版本,提供了对表格数据的强大支持,包括分页、排序、搜索、编辑和过滤等功能。 我们来详细探讨jqGrid的核心特性: 1. **数据展示**:jqGrid能够处理大量数据,通过网格形式展示,使得数据清晰易读。用户可以自定义列的宽度、标题和样式,以适应不同的需求。 2. **Ajax异步通信**:jqGrid支持通过Ajax方式从服务器获取数据,实现了前后端的数据交互,使用户无需刷新页面即可动态更新数据,提升了用户体验。 3. **分页**:jqGrid内置了分页功能,可以根据设置的每页记录数自动分页,同时提供向前、向后、跳转到指定页等操作。 4. **排序**:用户可以点击列头对数据进行升序或降序排序,jqGrid会自动处理排序逻辑并请求服务器获取排序后的数据。 5. **搜索与过滤**:jqGrid提供了多种搜索和过滤选项,如基本搜索、高级搜索和行内过滤,帮助用户快速定位所需信息。 6. **编辑与添加**:对于需要在线编辑的数据,jqGrid提供了行内编辑、弹出编辑窗口等多种编辑模式。同时,它还支持新增记录,方便数据管理。 7. **工具栏**:jqGrid允许自定义工具栏,可以在上面放置按钮、下拉框等控件,实现更多的功能扩展。 8. **国际化支持**:jqGrid支持多语言,可以轻松切换不同地区的语言设置,满足全球化应用的需求。 9. **响应式设计**:随着移动设备的普及,jqGrid 4.6.0版本也考虑到了响应式布局,确保在不同屏幕尺寸的设备上都能正常显示。 10. **插件和扩展**:除了核心功能,jqGrid还有许多插件,如导出数据为Excel、PDF等格式,以及自定义行为和外观的插件,丰富了其功能。 在提供的文件列表中,我们可以看到以下四个主要部分: - **css**:这个目录包含jqGrid的CSS文件,用于定义网格的样式和布局,包括主题样式和自定义样式。 - **plugins**:这里存放的是jqGrid的各种插件,比如搜索、编辑、分页等,它们扩展了jqGrid的基本功能。 - **js**:JavaScript库,包括jqGrid的核心脚本和其他辅助脚本,用于实现所有的交互逻辑和数据处理。 - **src**:源代码目录,包含了jqGrid的原始JavaScript源码,开发者可以查看和修改源码以满足特定需求或进行二次开发。 jqGrid 4.6.0是一个功能强大且灵活的jQuery插件,适用于各种数据展示和管理场景。通过合理的配置和利用其丰富的特性和插件,开发者可以构建出高效、美观的Web数据界面。
2025-10-15 19:19:53 684KB jqgrid
1
让Excel更简单---SoSo 1、集成了18大常用功能版块,共计1百多个Excel办公工具。 2、源代码全公开,可自由修改。 3、按住Ctrl点击工具,可以查看对应工具的功能和操作方法。 4、自己平时收藏的工具,可以通过私人菜单功能 添加到SoSo中一起使用。 5、支持 03、07、10版 Excel 免费
2025-10-15 09:35:20 27.92MB Excel插件
1
comsol激光熔覆仿真,单道单层 ,多道单层,多道多层,温度场,流场,应力场,表面形貌 含教学视频(单道 单层多道) 版本为5.6 6.0 ,comsol激光熔覆仿真; 单道单层; 多道单层; 多道多层; 温度场; 流场; 应力场; 表面形貌; 版本5.6; 版本6.0 教学视频,COMSOL激光熔覆仿真教学:多层次温度场与流场分析 在现代制造领域中,激光熔覆技术作为一种先进的表面工程技术,已经广泛应用在材料改性、修复、强化等多个方面。仿真技术的引入,使得研究者能够在计算机上对激光熔覆过程进行模拟,从而预测熔覆层的形成、温度分布、流场变化以及应力分布等重要参数,有效指导实际生产过程。 COMSOL Multiphysics软件是一款功能强大的多物理场仿真工具,它能够模拟激光熔覆过程中的热传导、流体流动、结构应力等物理现象。在激光熔覆仿真中,用户可以针对单道单层、多道单层以及多道多层的熔覆工艺进行模拟,分别探究不同工艺参数对熔覆质量的影响。温度场分析对于理解激光熔覆过程中的热输入、熔池形成以及冷却凝固至关重要。流场分析则能够帮助研究熔池内部材料流动的动态过程,这对于防止孔隙、裂纹等缺陷的产生具有重要意义。应力场分析则关注在激光熔覆过程中,由于热膨胀和收缩导致的残余应力,这些应力可能会影响熔覆层与基材的结合强度。表面形貌分析则为评估熔覆层质量提供了直观的图像,帮助判断熔覆效果是否满足设计要求。 本套仿真教程涵盖了从基础的激光熔覆技术介绍到复杂的多层次仿真分析,并且提供了不同版本的COMSOL软件(版本5.6和6.0)的具体操作指导。教程内容不仅包括单道单层的仿真操作,还扩展到了多道单层以及多道多层的复杂仿真案例,确保学习者能够全面掌握激光熔覆仿真的各个环节。 此外,教程还提供了教学视频资源,方便初学者通过视频直观学习仿真软件的操作流程和分析方法。这些视频可能涵盖了模型建立、参数设置、结果分析等关键步骤,使得理论知识与实践操作相结合,有助于学习者更快地掌握COMSOL软件在激光熔覆仿真中的应用。 这套仿真教程为研究人员和工程师提供了一套系统的激光熔覆仿真学习材料,无论是在教学还是在工业应用中,都能够大幅度提升激光熔覆技术的研究效率和产品质量。
2025-10-13 19:46:02 3.2MB paas
1