亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? asixwin.h.bak

?? c程序源碼鏈接過程方面的代碼
?? BAK
?? 第 1 頁 / 共 2 頁
字號:
/*************************************************************************
*
* Copyright  2000 National ASIC Center, All right Reserved
*
* FILE NAME:			asixwin.h
* PROGRAMMER:			Lingming
* Date of Creation:		2000/11/30
* 
* DESCRIPTION: 			The essential declarations for ASIX Windows system
*						including MACRO define, global var declaration and
*						public functions prototypes.
*
* NOTE:			 		The application C file MUST include this file if 
*						this application will use ASIX Windows GUI API 
*
* FUNCTIONS LIST:
* fun1(arg1,arg2)		description of func1
* fun2(arg1,arg2,arg3)	description of func2
*
* GLOBAL VARS LIST:
* 
* WindowClass[]			the window class description const table,which
* 						defines the obj's relevent functions pointer
* 
* CurWindow				the pointer that point to the active window
* 
* TaskDescription[]		the table descripts the application relevent
*						information such as app name, stack size ,etc
*						it is also a const table which means the infor
*						in this table will not be changed during running  
* 
* CurTask				the pointer that point to current task 
* 
* TaskHead				the head pointer of the task list
*
**************************************************************************
* MODIFICATION HISTORY
*
* 2000/11/30	by Lingming		Creation of this file
* 2001/11/07	by Lingming 	porting to EPSON C33209 MCU with the soft
*								platform ROS33													
* 2001/11/27	by Lingming		#define WST_DESTROYED		0x00000000L		
*								#define WST_NORMAL			0xFACE0000L								
*								For wnd id validation checking. If the id
*								is ok, it must has WST_NORMAL token, if it
*								is deleted, then a WST_DESTROYED filled in 			
* 2001/11/28	by Lingming		add focus related message
*								Support Color theme	
* 2002/3/12  	by Xuanhui&Zhuli    modify definition of ASIX_COLOR_THEME							
*************************************************************************/


#ifndef _ASIXWIN_H
#define _ASIXWIN_H



#include "cbtype.h"

// longn_qi 2001/11/27 added
//#include <sys\cdevice.h>		// in this header define phyiscal screen size
								// and pixel size.
//#include <sys\key.h>
/* some system depended const */


/*#define CHINESE_CHAR_HEIGHT	16
#define CHINESE_CHAR_WIDTH		16
#define ENGLISH_CHAR_WIDTH		8
#define ENGLISH_CHAR_HEIGHT		16*/

//#include <sys\sysdebug.h>

// longn_qi 2001/11/27 revised
#define ASIX_PLCD_W				LCD_WIDTH//phisical LCD width
#define ASIX_PLCD_H				LCD_HEIGHT//phisical LCD height

#define ASIX_STACK_ALARM		400 //if stack mem is lower than this, kill the task

/*
#ifndef	ASIX_ON_PPSM
#define ASIX_ON_PPSM			//ASIX is building on PPSM
#endif
*/
	
#define ASIX_DEBUG				//Now we are in debugging
//#define ASIX_WITH_UART		//ASIX win will handle the UART
//#define ASIX_DYNAMIC			//supports dynamic load


/*-----------------------------*/


#ifdef 	ASIX_ON_PPSM

#include <ppsm.h>					//PPSM's defines
#include <errors.h>					//PPSM's error defines
#include <proto.h>					//PPSM's function prototype

#else

/* This ppsm.h is the conterpart of Motorola's ppsm.h, we use this 
 * file to covert the ROS33 system layer to a PPSM-like interface
 * so that the porting of ASIX Window will be easer.
 */
//#include <ppsm.h>					//include ppsm simulation layer
 

#endif	//#ifdef 	ASIX_ON_PPSM


extern char ASIXVersion[];

/* we set the font size as var now , so that we can 
 * update the font size at run time
 * By Lingming 2001/5/08 */
//extern BYTE 	CHINESE_CHAR_HEIGHT;	
//extern BYTE		CHINESE_CHAR_WIDTH;
//extern BYTE		ENGLISH_CHAR_WIDTH;
//extern BYTE		ENGLISH_CHAR_HEIGHT;

#define ASIX_LCD_W		( GetLogicalX(GetGC()) )	//logical LCD width
#define ASIX_LCD_H		( GetLogicalY(GetGC()) )	//logical LCD height



#ifdef ASIX_DYNAMIC

/* ASIX Win Use this space to store the standard C ,PPSM and ASIX functions'
 * pointer, the dynamic code use this pointer to call these functions, this 
 * is because the dynamic code is not linked with these libers.
 */  
extern char *DynamicFunctionPtr;
/* the function ptr array size, should be same as specified in SPC file */
#define DYNAMIC_FUNCPTR_SIZE	0xb00

/* the dynamic code should be linked at the start address that specified
 * at "dynamic" region in the file asixwin.spc
 * the ram address from 0x2000 - 0xc000 is reserved for dynamic loading
 * this ram space is controled by ASIX Win rather than PPSM
 */ 
extern char	*DynamicCode;

/* The code size defined here should be same as the SPC file specified*/
#define DYNAMIC_CODE_SIZE	0xa000

#define DYNAMIC_RAM_BASE	0x0

#endif




/***********************************************************************/

#ifdef 	ASIX_ON_PPSM

/*  MS Windows type define*/
/* 	In C33 Version we define this in wintype.h */
/*
typedef unsigned char		BYTE;
typedef unsigned short		WORD;
typedef unsigned int		DWORD;	//this maybe different from PC
									//because the cc68000 compiler 
									//assume int as 32 bits

typedef unsigned int        UINT;
typedef int					LONG;


#define LOBYTE(w)           ((BYTE)(w))
#define HIBYTE(w)           ((BYTE)((WORD)(w) >> 8))

#define LOWORD(l)           ((WORD)(l))
#define HIWORD(l)           ((WORD)((DWORD)(l) >> 16))

#define MAKELONG(low, high) ((LONG)(((WORD)(low)) | (((DWORD)((WORD)(high))) << 16)))

#ifndef max
#define max(a,b)            (((a) > (b)) ? (a) : (b))
#endif

#ifndef min
#define min(a,b)            (((a) < (b)) ? (a) : (b))
#endif
*/
/* Types use for passing & returning polymorphic values */
/*
typedef WORD WPARAM;
typedef LONG LPARAM;
typedef LONG LRESULT;

#define MAKELPARAM(low, high)   ((LPARAM)MAKELONG(low, high))
#define MAKELRESULT(low, high)  ((LRESULT)MAKELONG(low, high))
*/
#endif 

/* error define*/
#ifdef ASIX_ON_PPSM
#define ASIX_OK			PPSM_OK
#define ASIX_ERROR		PPSM_ERROR
#define ASIX_NO_MEM		PPSM_ERR_NO_MEMORY  
#else
#define ASIX_OK			0x0000
#define ASIX_ERROR		0x0001
#define ASIX_NO_MEM		0x4001
#endif //#ifdef ASIX_ON_PPSM

#define ASIX_NO_MSG		0x5001

/* The window class id define*/
/* Except for WNDCLASS_WIN ,all of other instant of the classes must be
 * one of windows child
 */ 
#define WNDCLASS_WIN		0x00		//normal window
#define WNDCLASS_BUTTON		0x01
#define WNDCLASS_SELECT		0x02
#define WNDCLASS_SELECTCARD	0x03
#define WNDCLASS_MENU		0x04
#define WNDCLASS_LIST		0x05
//#define WNDCLASS_COMBO	0x6
#define WNDCLASS_KEYBD		0x06
#define WNDCLASS_PROCESS	0x07		//process bar
#define WNDCLASS_SCROLL		0x08
#define WNDCLASS_KEYBAR		0x09
#define WNDCLASS_EDITOR		0x0a		//line editor ( single/multi line )
//#define WNDCLASS_MUTIEDIT	0x0b		//muti_line editor
#define WNDCLASS_READER		0x0b
#define WNDCLASS_STATIC		0x0c		//static win such as icon, group frame etc.
#define WNDCLASS_TSKBAR		0x0d		//static win such as icon, group frame etc.
#define WNDCLASS_TEST		0x0e
#define WNDCLASS_MAX		0x0f

	
/* Window Styles */
/* Basic window types */
#define WS_OVERLAPPED       0x00000000L
#define WS_POPUP            0x80000000L
#define WS_CHILD            0x40000000L

/* Clipping styles */
#define WS_CLIPSIBLINGS     0x04000000L		/*reserved*/
#define WS_CLIPCHILDREN     0x02000000L		/*reserved*/

/* Generic window states */
#define WS_VISIBLE          0x10000000L		
#define WS_DISABLED         0x08000000L		

/* Main window states */
#define WS_MINIMIZE         0x20000000L		/*reserved*/
#define WS_MAXIMIZE         0x01000000L		/*reserved*/

/* Main window styles */
#define WS_CAPTION          0x00C00000L     /* WS_BORDER | WS_DLGFRAME  */
#define WS_BORDER           0x00800000L
#define WS_DLGFRAME         0x00400000L
#define WS_VSCROLL          0x00200000L		/* not use */
#define WS_HSCROLL          0x00100000L		/* not use */
#define WS_SYSMENU          0x00080000L		//use to task swapping and other
											//system menu item 	
#define WS_THICKFRAME       0x00040000L
#define WS_MINIMIZEBOX      0x00020000L
#define WS_MAXIMIZEBOX      0x00010000L

/* we donot use minimize and maxmize, while we use 
 * user menu box and close box
 */
#define WS_USERBOX			WS_MAXIMIZEBOX
#define WS_CLOSEBOX			WS_MINIMIZEBOX

/* Control window styles */
#define WS_SAVESCREEN       0x04000000L		/* Note: the same as WS_CLIPSIBLINGS*/	
#define WS_TABSTOP          0x00010000L		/*reserved*/

/* Common Window Styles */
#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_CLOSEBOX)
#define WS_POPUPWINDOW      (WS_POPUP | WS_CAPTION | WS_CLOSEBOX)
#define WS_CHILDWINDOW      (WS_CHILD)


/*Keyboard Style*/

#define KBS_HANDWRITE		0x00000100L
#define KBS_SYMBOL			0x00000200L
#define KBS_NUMBER			0x00000400L
#define KBS_PINGYING		0x00000800L
#define KBS_UPCASE			0x00001000L
#define KBS_LOWCASE			0x00002000L
#define KBS_DIALPAD			0x00004000L
#define KBS_INK				0x00008000L

/*button Style*/
//#define BS_ENABLE           0x00008000L
#define BS_BOARD       		0x00000001L
#define BS_SHADOW      		0x00000002L
#define BS_LEFT       		0x00000004L           
#define BS_UNDERLINE        0x00000008L
#define BS_INVERT       	0x00000010L
#define BS_PEN_UP_CMD		0x00000020L
#define BS_PEN_DOWN_CMD		0x00000040L
#define BS_PEN_DOWN_ACTIVE	0x00000080L
#define BS_PEN_UP_ACTIVE	0x00000100L
#define	BS_MULTILINE		0x00000200L
#define BS_PEN_DRAG_CMD		0x00000400L
#define BS_TRANSPARENT		0x00000800L
#define BS_FLAT				0x00001000L

//#define BS_REGULAR			(BS_BOARD | BS_SHADOW | BS_PEN_UP_CMD | BS_PEN_DOWN_ACTIVE | BS_PEN_UP_ACTIVE )
#define BS_REGULAR			(BS_SHADOW | BS_PEN_UP_CMD | BS_PEN_DOWN_ACTIVE | BS_PEN_UP_ACTIVE )
//#define BS_TOOLBAR			(BS_BOARD | BS_PEN_UP_CMD | BS_PEN_DOWN_ACTIVE | BS_PEN_UP_ACTIVE )
#define BS_TOOLBAR			(BS_SHADOW | BS_PEN_UP_CMD | BS_PEN_DOWN_ACTIVE )
#define BS_HYPETEXT			(BS_UNDERLINE | BS_LEFT | BS_PEN_DOWN_CMD | BS_PEN_DOWN_ACTIVE | BS_PEN_UP_ACTIVE )
#define BS_ICON				(BS_PEN_UP_CMD | BS_PEN_DOWN_ACTIVE | BS_PEN_UP_ACTIVE )
#define BS_SHELL			(BS_PEN_UP_CMD | BS_PEN_DRAG_CMD | BS_PEN_DOWN_CMD)
#define BS_BOARD_REGULAR	(BS_BOARD | BS_SHADOW | BS_PEN_UP_CMD | BS_PEN_DOWN_ACTIVE | BS_PEN_UP_ACTIVE )

/* Scroll Bar Style */
#define SBS_HORZ			0x00000001L
#define SBS_VERT			0x00000002L

/* Menu Style */
#define MNS_TEXT           	0x00000001L
#define MNS_ICON            0x00000002L
#define MNS_TRANSPARENT     0x00000004L
#define MNS_MID		0x00000008L                 //ADD by DSA 2004.07.20

/* list box style */
#define LBS_ROLL			0x00000001L
#define LBS_POPUP			0x00000002L

/* select bar style */
#define SLS_ENABLE			0x00008000L
#define SLS_FRAME			0x00000001L
#define SLS_CHECKBOX		0x00000002L
#define SLS_RADIOBOX		0x00000004L

/* Reader Style */

#define RDS_ONLYREAD		0x00000001L
#define RDS_READ			0x00000002L

/* Static Control Styles */
#define SS_TEXT	           	0x00000001L
#define SS_ICON             0x00000002L
#define SS_BOARD			0x00000004L
#define SS_GROUP	        0x00000008L
#define SS_LEFT				0x00000010L
#define SS_RIGHT			0x00000020L
#define SS_MULTILINE        0x00000040L
#define SS_ALIGN			(SS_LEFT | SS_RIGHT)
/*#define SS_GRAYRECT       0x00000005L
#define SS_WHITERECT        0x00000006L
#define SS_BLACKFRAME       0x00000007L
#define SS_GRAYFRAME        0x00000008L
#define SS_WHITEFRAME       0x00000009L
#define SS_SIMPLE           0x0000000BL
#define SS_LEFTNOWORDWRAP   0x0000000CL
#define SS_NOPREFIX         0x00000080L*/

/* Editor Control Styles */
#define ES_SINGLELINE		0x00000001L
#define ES_MULTILINE		0x00000002L
#define ES_GROUP1			(ES_SINGLELINE | ES_MULTILINE)

#define ES_LEFT				0x00000004L
#define ES_CENTER			0x00000008L
#define ES_RIGHT			0x00000010L
#define ES_GROUP2			(ES_LEFT | ES_CENTER | ES_RIGHT)

#define ES_NOBORDER			0x00001000L
#define ES_NUMBER			0x00002000L
#define	ES_READONLY			0x00004000L

#define ES_SINGLE_REGULAR	( ES_SINGLELINE | ES_LEFT )
#define ES_MULTI_REGULAR	( ES_MULTILINE | ES_LEFT )

/* Task Bar Control Styles */
#define TBS_TASKMENU		0x00000001L
#define TBS_CLOCK			0x00000002L
#define TBS_POWER			0x00000004L
#define TBS_SIGNAL			0x00000008L

#define TBS_TYPICAL			( TBS_TASKMENU | TBS_CLOCK | TBS_POWER | TBS_SIGNAL )
#define TBS_REGULAR			( TBS_TASKMENU | TBS_CLOCK )

/* ASIX Message*/
/* NOTE: All messages below 0x0040 are USED by PPSM */
/* NOTE: All messages below 0x0400 are RESERVED by ASIX Windows */

/*  message structure  */
#ifdef ASIX_ON_PPSM

typedef struct _MSG
{
	U16     messageType;            /*  message type  */
	U16     message;                /*  message  */
	U32     lparam;                 /*  long data (32bit)  */
	P_VOID  data;                   /*  associated data, if any */
	U16     wparam;                 /*  16bit data  */
	U16     reserved;               /*  for future  (broadcast, etc) */
} MSG, *PMSG;


#endif


#ifdef ASIX_ON_PPSM 

#define ASIX_NONE			IRPT_NONE			/*  no activity */
#define ASIX_PEN			IRPT_PEN			/*  pen message */
#define ASIX_ICON			IRPT_ICON			/*  icon message  */
#define ASIX_KEY			IRPT_KEY			/*  soft keyboard */
#define ASIX_PAGER			IRPT_PAGER			/*  pager message, system doesn't use this, it can be used by users */
#define ASIX_RTC			IRPT_RTC			/*  RTC message */
#define ASIX_TIMER			IRPT_TIMER	        /*  timer message */
#define ASIX_INPUT			IRPT_INPUT          /*  input pad message */
#define ASIX_HWR			IRPT_HWR			/*  hand writing recognition */
#define ASIX_INPUT_STATUS	IRPT_INPUT_STATUS   /*  input status message */
#define ASIX_AUDIO			IRPT_AUDIO          /*  Audio status message */

#define ASIX_SPIM			IRPT_SPIM			/*  SPI master message */
#define ASIX_SPIS			IRPT_SPIS			/*  SPI Slave message */
#define ASIX_IRQ1			IRPT_IRQ1			/*  IRQ1 message  */
#define ASIX_IRQ2			IRPT_IRQ2			/*  IRQ2 message  */
#define ASIX_IRQ3			IRPT_IRQ3			/*  IRQ3 message  */
#define ASIX_IRQ6			IRPT_IRQ6			/*  IRQ6 message  */
#define ASIX_INT			IRPT_INT			/*  INT message */
#define ASIX_WDOG			IRPT_WDOG			/*  WatchDog message */
#define ASIX_PWM			IRPT_PWM			/*  PWM message */
#define ASIX_UART			IRPT_UART			/*  UART data  */

#define ASIX_USER			IRPT_USER

#define ASIX_MESSAGE		MESSAGE_IRPT

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美国欧美日韩国产在线播放| 欧美久久一区二区| 激情六月婷婷久久| 美女网站在线免费欧美精品| 成人av网在线| 一本久久a久久精品亚洲| 91免费看视频| 欧美日韩国产电影| 精品久久久久一区| 国产网站一区二区三区| 国产精品热久久久久夜色精品三区 | 欧美日韩情趣电影| 欧美一区二区美女| 久久精品人人做人人爽人人| 亚洲成a人片在线不卡一二三区| 日韩av一二三| 丁香激情综合五月| 欧洲一区二区三区免费视频| 日韩视频一区在线观看| 久久久精品国产免大香伊| 亚洲欧美在线另类| 日韩中文字幕麻豆| 风流少妇一区二区| 欧美精选在线播放| 亚洲国产精品久久久久秋霞影院| 日韩成人一区二区| 欧美人狂配大交3d怪物一区| 亚洲视频一二三区| 麻豆成人免费电影| 日韩精品中午字幕| 亚洲男人都懂的| 久久国产精品免费| 欧美在线啊v一区| 亚洲精品欧美专区| 国内成人精品2018免费看| 56国语精品自产拍在线观看| 中文字幕精品三区| 免费人成精品欧美精品| 99精品久久只有精品| 日韩视频一区二区三区在线播放 | 麻豆国产精品一区二区三区| 欧美一区日韩一区| 韩国成人精品a∨在线观看| 精品日产卡一卡二卡麻豆| 青娱乐精品在线视频| 欧美成人福利视频| 国产成人免费在线观看| 6080日韩午夜伦伦午夜伦| 婷婷成人综合网| 在线看不卡av| 亚洲第一激情av| 91精品啪在线观看国产60岁| 美腿丝袜一区二区三区| 国产午夜亚洲精品不卡| 99精品热视频| 亚洲国产欧美另类丝袜| 欧美成va人片在线观看| 成人免费高清视频| 亚洲一区二区三区四区不卡| 99国产精品国产精品久久| 亚洲一区在线电影| 日韩欧美国产三级电影视频| 成人一区二区在线观看| 亚洲第一精品在线| 久久精品夜色噜噜亚洲aⅴ| 91蜜桃传媒精品久久久一区二区| 视频在线观看一区| 欧美高清在线精品一区| 欧美日韩国产一区二区三区地区| 美女一区二区在线观看| 亚洲久草在线视频| xfplay精品久久| 激情av综合网| 一区二区三区日韩精品视频| 99久久婷婷国产综合精品电影| 亚洲在线视频免费观看| 久久无码av三级| 欧美中文字幕一区| 国产成人av电影免费在线观看| 一区二区三区精品视频| 久久久不卡影院| 日韩午夜小视频| 欧美日韩国产三级| 成人久久久精品乱码一区二区三区| 亚洲18色成人| 亚洲欧洲一区二区在线播放| 欧美刺激午夜性久久久久久久| 91美女片黄在线观看| 国产乱子轮精品视频| 日韩欧美中文字幕制服| 一本色道久久综合精品竹菊| 国产精品一二三四区| 免费在线观看日韩欧美| 樱桃视频在线观看一区| 国产精品乱码人人做人人爱 | 亚洲视频资源在线| 久久综合狠狠综合久久激情| 欧美电影在线免费观看| 在线看国产一区二区| 91麻豆国产在线观看| 懂色av中文一区二区三区| 久久99精品国产91久久来源| 中文av一区特黄| 欧美精品一区二区久久婷婷| av在线播放成人| 五月天激情小说综合| 亚洲私人黄色宅男| 国产精品区一区二区三区| 久久久久久久精| 久久色中文字幕| 欧美电影免费观看高清完整版 | 喷水一区二区三区| 亚洲一区二区在线观看视频| 一区二区在线免费| 亚洲乱码国产乱码精品精的特点| 国产午夜亚洲精品理论片色戒| 精品国产乱码久久久久久久| 精品久久久久久久久久久久包黑料| 91精品国产乱码久久蜜臀| 欧美色涩在线第一页| 欧美日韩一区二区欧美激情| 欧美日韩视频专区在线播放| 在线国产电影不卡| 欧美丝袜丝交足nylons图片| 国产成人av电影| 成人av网站在线观看| 色哟哟一区二区在线观看| 91久久一区二区| 不卡的电影网站| 在线亚洲一区二区| 欧美体内she精高潮| 欧美精品 国产精品| 欧美成人综合网站| 国产无遮挡一区二区三区毛片日本| 欧美国产一区在线| 亚洲欧美国产77777| 亚洲国产美国国产综合一区二区 | 亚洲一区二区三区在线| 日本aⅴ免费视频一区二区三区 | 欧美国产精品中文字幕| ...xxx性欧美| 日韩影视精彩在线| 国产一区二区三区四区在线观看 | 亚洲女人小视频在线观看| 亚洲一区二区三区精品在线| 麻豆freexxxx性91精品| 风流少妇一区二区| 欧美三级韩国三级日本一级| 欧美成人女星排行榜| 亚洲色图制服丝袜| 日本v片在线高清不卡在线观看| 国产乱码精品一区二区三| 91精品办公室少妇高潮对白| 日韩女优电影在线观看| 国产精品电影一区二区| 久久久久久**毛片大全| 18欧美乱大交hd1984| 一区二区国产视频| 亚洲成人精品在线观看| 国产精品综合视频| 91欧美一区二区| 欧美一级在线视频| 亚洲区小说区图片区qvod| 日韩av一二三| 成人午夜电影小说| 欧美日韩色综合| 中文字幕视频一区二区三区久| 一二三四区精品视频| 国产在线精品一区二区不卡了| 国产在线精品一区二区| 欧美裸体bbwbbwbbw| 久久你懂得1024| 亚洲国产你懂的| 色婷婷久久综合| www国产亚洲精品久久麻豆| 一区二区三区在线播放| 久久激情综合网| 在线不卡免费av| 国产精品嫩草影院av蜜臀| 青青青爽久久午夜综合久久午夜| 韩国精品久久久| 精品国产a毛片| 一区二区三区在线看| 激情综合五月婷婷| 欧美一级淫片007| 亚洲综合网站在线观看| 懂色av一区二区在线播放| 日韩欧美成人一区| 亚洲电影一级黄| 91在线观看成人| 国产午夜精品久久| 日韩av一区二区三区| 欧美喷潮久久久xxxxx| 亚洲色图在线看| 成人美女视频在线观看18| 国产精品国产精品国产专区不片| 理论电影国产精品| 99久久国产免费看| 久久色在线观看| 精品无人码麻豆乱码1区2区|