Global.asax
diff --git a/HJGLPackFile/版本日志/HJGLDB_2024.05.17(邮件).sql b/HJGLPackFile/版本日志/HJGLDB_2024.05.17(邮件).sql
deleted file mode 100644
index 5015273..0000000
--- a/HJGLPackFile/版本日志/HJGLDB_2024.05.17(邮件).sql
+++ /dev/null
@@ -1,193 +0,0 @@
-USE [HJGLDB_ZJBSF]
-GO
-/****** Object: Table [dbo].[Email_Params] Script Date: 2024-5-17 15:35:13 ******/
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[Email_Params](
- [ID] [varchar](50) NOT NULL,
- [MailClassName] [varchar](100) NULL,
- [MailClassID] [varchar](50) NOT NULL,
- [CreateName] [varchar](100) NOT NULL,
- [CreateTime] [datetime] NOT NULL,
- [UpdateName] [nchar](10) NULL,
- [UpdateTime] [datetime] NULL,
- CONSTRAINT [PK_Email_Params] PRIMARY KEY CLUSTERED
-(
- [ID] ASC
-)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
-) ON [PRIMARY]
-GO
-/****** Object: Table [dbo].[Email_Pop] Script Date: 2024-5-17 15:35:13 ******/
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[Email_Pop](
- [EmailID] [varchar](50) NOT NULL,
- [EmailFwq] [varchar](50) NULL,
- [EmailDk] [varchar](50) NULL,
- [EmailYx] [varchar](50) NULL,
- [EmailUsername] [varchar](50) NULL,
- [EmailPass] [varchar](50) NULL,
- [CreateTime] [varchar](50) NULL,
- [CreateName] [varchar](50) NULL,
- [UpdateTime] [varchar](50) NULL,
- [UpdateName] [varchar](50) NULL,
- CONSTRAINT [PK_Email_Pop] PRIMARY KEY CLUSTERED
-(
- [EmailID] ASC
-)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
-) ON [PRIMARY]
-GO
-/****** Object: Table [dbo].[Email_SendLog] Script Date: 2024-5-17 15:35:13 ******/
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[Email_SendLog](
- [EmailId] [varchar](50) NOT NULL,
- [EmailTile] [varchar](255) NULL,
- [EmailContent] [text] NULL,
- [EmailURL] [varchar](50) NULL,
- [EmailName] [varchar](50) NULL,
- [EmailStatus] [varchar](10) NULL,
- [CreateTime] [datetime] NULL,
- [CreateName] [varchar](50) NULL,
- CONSTRAINT [PK_Email_Send] PRIMARY KEY CLUSTERED
-(
- [EmailId] ASC
-)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
-) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
-GO
-/****** Object: Table [dbo].[Email_SendTemplate] Script Date: 2024-5-17 15:35:13 ******/
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[Email_SendTemplate](
- [EmailId] [varchar](50) NOT NULL,
- [EmailParamsID] [varchar](50) NOT NULL,
- [EailTiaoJian] [varchar](500) NULL,
- [EmailUserYN] [int] NULL,
- [EmailTitle] [varchar](500) NULL,
- [EmailContext] [text] NULL,
- [CreateName] [varchar](500) NULL,
- [CreateTime] [datetime] NULL,
- [UpdateName] [varchar](500) NULL,
- [UpdateTime] [datetime] NULL,
- [EmailDesc] [varchar](500) NULL,
- CONSTRAINT [PK_Email_SendTemplate] PRIMARY KEY CLUSTERED
-(
- [EmailId] ASC
-)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
-) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
-GO
-/****** Object: Table [dbo].[Email_ToPeople] Script Date: 2024-5-17 15:35:13 ******/
-SET ANSI_NULLS ON
-GO
-SET QUOTED_IDENTIFIER ON
-GO
-CREATE TABLE [dbo].[Email_ToPeople](
- [EmID] [varchar](50) NOT NULL,
- [EmtempID] [varchar](50) NOT NULL,
- [EmuserID] [varchar](50) NULL,
- [EmuserName] [varchar](50) NULL,
- [EmuaerEmailAddress] [varchar](100) NULL,
- [EMPeopleType] [varchar](5) NULL,
- CONSTRAINT [PK_Email_ToPeople] PRIMARY KEY CLUSTERED
-(
- [EmID] ASC
-)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
-) ON [PRIMARY]
-GO
-INSERT [dbo].[Email_Params] ([ID], [MailClassName], [MailClassID], [CreateName], [CreateTime], [UpdateName], [UpdateTime]) VALUES (N'1a800170-48e2-4b41-a2af-20258aa74907', N'¼àÀíÉóºË', N'¼àÀí', N'¹ÜÀíÔ±', CAST(N'2024-05-16T14:53:01.747' AS DateTime), N'¹ÜÀíÔ± ', CAST(N'2024-05-16T17:05:42.987' AS DateTime))
-GO
-INSERT [dbo].[Email_Params] ([ID], [MailClassName], [MailClassID], [CreateName], [CreateTime], [UpdateName], [UpdateTime]) VALUES (N'859e5eaf-6a9e-46a8-8eb1-f3ba61f3be79', N'¹ÜÀí¹«Ë¾ÉóºË', N'¹ÜÀí¹«Ë¾', N'¹ÜÀíÔ±', CAST(N'2024-05-14T17:39:53.640' AS DateTime), N'¹ÜÀíÔ± ', CAST(N'2024-05-16T17:05:48.370' AS DateTime))
-GO
-INSERT [dbo].[Email_Pop] ([EmailID], [EmailFwq], [EmailDk], [EmailYx], [EmailUsername], [EmailPass], [CreateTime], [CreateName], [UpdateTime], [UpdateName]) VALUES (N'7EC5E991-B7A0-495A-90ED-2BE15370C959', N'smtp.163.com', N'25', N'Scs13965090560@163.com', N'scs', N'CLXGLMKBGQBEXSSW', N'2024-5-16 14:46:25', N'¹ÜÀíÔ±', NULL, NULL)
-GO
-INSERT [dbo].[Email_SendLog] ([EmailId], [EmailTile], [EmailContent], [EmailURL], [EmailName], [EmailStatus], [CreateTime], [CreateName]) VALUES (N'3cfa3bbf-e73a-494b-bb60-f682b52dad84', N'¼àÀí¡ªµã¿ÚδÉóºËµÄº¸¿Ú', N'×𾴵ĸ÷λÁìµ¼,
ÄúÓÐ2105Ìõµã¿Ú¼Ç¼´ýÉóºË£¡
', N'jackchenyang@sina.cn', N'jackchenyang@sina.cn', N'·¢Ëͳɹ¦', CAST(N'2024-05-17T14:32:14.573' AS DateTime), N'sys')
-GO
-INSERT [dbo].[Email_SendLog] ([EmailId], [EmailTile], [EmailContent], [EmailURL], [EmailName], [EmailStatus], [CreateTime], [CreateName]) VALUES (N'3f61427f-2b6f-42cb-8028-27726807f8e8', N'²âÊÔÔÙ·¢ËÍÒ»¸öÓʼþ', N'ÕâÊÇÒ»¸öÓʼþÄÚÈÝ£¬Çë²éÊÕ£¡', N'408299694@qq.com', N'408299694@qq.com', N'·¢Ëͳɹ¦', CAST(N'2024-05-16T14:51:03.117' AS DateTime), N'sys')
-GO
-INSERT [dbo].[Email_SendLog] ([EmailId], [EmailTile], [EmailContent], [EmailURL], [EmailName], [EmailStatus], [CreateTime], [CreateName]) VALUES (N'632f4c12-08c6-4f19-88a1-5ed760486ae0', N'²âÊÔ·¢Óʼþ', N'Õâ¸öÊÇÒ»¸ö²âÊԵķ¢ËÍÓʼþÄÚÈÝ¡£¡£¡£¡£', N'874821510@qq.com', N'874821510@qq.com', N'·¢ËÍʧ°Ü', CAST(N'2024-05-16T14:45:45.350' AS DateTime), N'sys')
-GO
-INSERT [dbo].[Email_SendLog] ([EmailId], [EmailTile], [EmailContent], [EmailURL], [EmailName], [EmailStatus], [CreateTime], [CreateName]) VALUES (N'6488713b-86f4-4dc2-989c-32152fe53727', N'¹ÜÀí¹«Ë¾¡ªµã¿ÚδÉóºËµÄº¸¿Ú', N'×𾴵ĸ÷λÁìµ¼,
ÄúÓÐ2176Ìõµã¿Ú¼Ç¼´ýÉóºË£¡
', N'jackchenyang@sina.cn', N'jackchenyang@sina.cn', N'·¢Ëͳɹ¦', CAST(N'2024-05-17T14:32:16.627' AS DateTime), N'sys')
-GO
-INSERT [dbo].[Email_SendLog] ([EmailId], [EmailTile], [EmailContent], [EmailURL], [EmailName], [EmailStatus], [CreateTime], [CreateName]) VALUES (N'709cb7de-0564-4ab9-84e6-0b0b2f6732d8', N'²âÊÔÔÙ·¢ËÍÒ»¸öÓʼþ', N'ÕâÊÇÒ»¸öÓʼþÄÚÈÝ£¬Çë²éÊÕ£¡', N'874821510@qq.com', N'874821510@qq.com', N'·¢Ëͳɹ¦', CAST(N'2024-05-16T14:51:03.113' AS DateTime), N'sys')
-GO
-INSERT [dbo].[Email_SendLog] ([EmailId], [EmailTile], [EmailContent], [EmailURL], [EmailName], [EmailStatus], [CreateTime], [CreateName]) VALUES (N'9857506c-83a4-4b79-b09a-d6e061376f17', N'µã¿ÚδÉóºËµÄº¸¿Ú', N'×𾴵ĸ÷λÁìµ¼,
ÄúÓÐ2176Ìõµã¿Ú¼Ç¼´ýÉóºË£¡
', N'jackchenyang@sina.cn', N'jackchenyang@sina.cn', N'·¢Ëͳɹ¦', CAST(N'2024-05-17T14:26:32.310' AS DateTime), N'sys')
-GO
-INSERT [dbo].[Email_SendLog] ([EmailId], [EmailTile], [EmailContent], [EmailURL], [EmailName], [EmailStatus], [CreateTime], [CreateName]) VALUES (N'd349818c-9434-4ff9-ab73-c868c81de870', N'µã¿ÚδÉóºËµÄº¸¿Ú', N'×𾴵ĸ÷λÁìµ¼,
ÄúÓÐ2105Ìõµã¿Ú¼Ç¼´ýÉóºË£¡
', N'jackchenyang@sina.cn', N'jackchenyang@sina.cn', N'·¢Ëͳɹ¦', CAST(N'2024-05-17T14:26:10.880' AS DateTime), N'sys')
-GO
-INSERT [dbo].[Email_SendLog] ([EmailId], [EmailTile], [EmailContent], [EmailURL], [EmailName], [EmailStatus], [CreateTime], [CreateName]) VALUES (N'd8740146-2ce5-4582-baa0-45063e967f02', N'²âÊÔ·¢Óʼþ', N'Õâ¸öÊÇÒ»¸ö²âÊԵķ¢ËÍÓʼþÄÚÈÝ¡£¡£¡£¡£', N'874821510@qq.com', N'874821510@qq.com', N'·¢Ëͳɹ¦', CAST(N'2024-05-16T14:46:31.487' AS DateTime), N'sys')
-GO
-INSERT [dbo].[Email_SendTemplate] ([EmailId], [EmailParamsID], [EailTiaoJian], [EmailUserYN], [EmailTitle], [EmailContext], [CreateName], [CreateTime], [UpdateName], [UpdateTime], [EmailDesc]) VALUES (N'1a605eaf-6e0a-49d2-a0db-9e1238b65e8a', N'¼àÀí', N'µã¿ÚδÉóºËµÄº¸¿Ú', 1, N'¼àÀíµã¿ÚÉóºË', N'×𾴵ĸ÷λÁìµ¼,
ÄúÓÐ{{totalCount}}Ìõµã¿Ú¼Ç¼´ýÉóºË£¡
', N'¹ÜÀíÔ±', CAST(N'2024-05-16T17:04:30.020' AS DateTime), N'¹ÜÀíÔ±', CAST(N'2024-05-17T14:16:54.980' AS DateTime), NULL)
-GO
-INSERT [dbo].[Email_SendTemplate] ([EmailId], [EmailParamsID], [EailTiaoJian], [EmailUserYN], [EmailTitle], [EmailContext], [CreateName], [CreateTime], [UpdateName], [UpdateTime], [EmailDesc]) VALUES (N'ad5201c3-0398-4316-a880-0a285e0f06fa', N'¹ÜÀí¹«Ë¾', N'µã¿ÚδÉóºËµÄº¸¿Ú', 1, N'¹ÜÀí¹«Ë¾µã¿ÚÉóºË', N'×𾴵ĸ÷λÁìµ¼,
ÄúÓÐ{{totalCount}}Ìõµã¿Ú¼Ç¼´ýÉóºË£¡
', N'¹ÜÀíÔ±', CAST(N'2024-05-16T14:54:15.743' AS DateTime), N'¹ÜÀíÔ±', CAST(N'2024-05-17T14:16:58.267' AS DateTime), NULL)
-GO
-INSERT [dbo].[Email_ToPeople] ([EmID], [EmtempID], [EmuserID], [EmuserName], [EmuaerEmailAddress], [EMPeopleType]) VALUES (N'33e99721-b831-46f5-83b6-039be6a89050', N'1a605eaf-6e0a-49d2-a0db-9e1238b65e8a', N'29188391-731e-4645-ad09-c99c2a9fc6ce', N'ÀîÇ컪', N'jackchenyang@sina.cn', N'0')
-GO
-INSERT [dbo].[Email_ToPeople] ([EmID], [EmtempID], [EmuserID], [EmuserName], [EmuaerEmailAddress], [EMPeopleType]) VALUES (N'6144c9f6-6e91-4e88-ae3a-fe9f99bc78af', N'ad5201c3-0398-4316-a880-0a285e0f06fa', N'29188391-731e-4645-ad09-c99c2a9fc6ce', N'ÀîÇ컪', N'jackchenyang@sina.cn', N'0')
-GO
-INSERT [dbo].[Email_ToPeople] ([EmID], [EmtempID], [EmuserID], [EmuserName], [EmuaerEmailAddress], [EMPeopleType]) VALUES (N'd78fa8fb-b675-4264-8040-8a0cf3d9649d', N'1a605eaf-6e0a-49d2-a0db-9e1238b65e8a', N'18485804-501b-4123-9e9a-1afb3c53aed0', N'³ÂÑô', N'874821510@qq.com', N'1')
-GO
-INSERT [dbo].[Email_ToPeople] ([EmID], [EmtempID], [EmuserID], [EmuserName], [EmuaerEmailAddress], [EMPeopleType]) VALUES (N'ff5fefa1-2ab8-4643-b3f7-b38fd049597a', N'ad5201c3-0398-4316-a880-0a285e0f06fa', N'18485804-501b-4123-9e9a-1afb3c53aed0', N'³ÂÑô', N'874821510@qq.com', N'1')
-GO
-SET ANSI_PADDING ON
-GO
-/****** Object: Index [IX_Email_Params] Script Date: 2024-5-17 15:35:13 ******/
-ALTER TABLE [dbo].[Email_Params] ADD CONSTRAINT [IX_Email_Params] UNIQUE NONCLUSTERED
-(
- [MailClassID] ASC
-)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
-GO
-SET ANSI_PADDING ON
-GO
-/****** Object: Index [IX_Email_SendTemplate] Script Date: 2024-5-17 15:35:13 ******/
-ALTER TABLE [dbo].[Email_SendTemplate] ADD CONSTRAINT [IX_Email_SendTemplate] UNIQUE NONCLUSTERED
-(
- [EmailParamsID] ASC
-)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
-GO
-ALTER TABLE [dbo].[Email_Params] ADD CONSTRAINT [DF_Email_Params_CreateName] DEFAULT ('sys') FOR [CreateName]
-GO
-ALTER TABLE [dbo].[Email_Params] ADD CONSTRAINT [DF_Email_Params_CreateTime] DEFAULT (getdate()) FOR [CreateTime]
-GO
-ALTER TABLE [dbo].[Email_ToPeople] ADD CONSTRAINT [DF_Email_ToPeople_EMPeopleType] DEFAULT ((0)) FOR [EMPeopleType]
-GO
-EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Óʼþ·ÖÀàÃû³Æ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Email_Params', @level2type=N'COLUMN',@level2name=N'MailClassName'
-GO
-EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Óʼþ·ÖÀàID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Email_Params', @level2type=N'COLUMN',@level2name=N'MailClassID'
-GO
-EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'²ÎÊýMailClassID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Email_SendTemplate', @level2type=N'COLUMN',@level2name=N'EmailParamsID'
-GO
-EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ÄÚÈÝÌõ¼þ˵Ã÷' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Email_SendTemplate', @level2type=N'COLUMN',@level2name=N'EailTiaoJian'
-GO
-EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Óʼþ±êÌâ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Email_SendTemplate', @level2type=N'COLUMN',@level2name=N'EmailTitle'
-GO
-EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Óʼþ¾ßÌåÄÚÈÝ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Email_SendTemplate', @level2type=N'COLUMN',@level2name=N'EmailContext'
-GO
-EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'±¸×¢' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Email_SendTemplate', @level2type=N'COLUMN',@level2name=N'EmailDesc'
-GO
-EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'·¢ËÍÈËÀàÐÍ 0-·¢ËÍÈË 1-³ËÍÈË' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Email_ToPeople', @level2type=N'COLUMN',@level2name=N'EMPeopleType'
-GO
-
---- ²åÈë²Ëµ¥
-INSERT [dbo].[Sys_Menu] ([MenuId], [MenuName], [MenuEnName], [Url], [SortIndex], [SuperMenu], [MenuModule], [IsAudiFlow], [IsUse]) VALUES (N'97143EDB-6A32-4BBA-9F49-E33E87912BC8', N'·¢ËÍÓʼþ', N'Send Email', N'Email_Send/Email_Send_Edit.aspx', 10, N'D05CSEAC-2854-4822-A7E9-24AD3EAF0A6E', N'2 ', NULL, 1)
-GO
-INSERT [dbo].[Sys_Menu] ([MenuId], [MenuName], [MenuEnName], [Url], [SortIndex], [SuperMenu], [MenuModule], [IsAudiFlow], [IsUse]) VALUES (N'9E9DD8E3-D91B-4FD4-B922-2F5CC23D2745', N'ÓʼþÅäÖÃ', N'Send Email Pop', N'Email_Send/Email_Pop_Edit.aspx', 20, N'D05CSEAC-2854-4822-A7E9-24AD3EAF0A6E', N'2 ', NULL, 1)
-GO
-INSERT [dbo].[Sys_Menu] ([MenuId], [MenuName], [MenuEnName], [Url], [SortIndex], [SuperMenu], [MenuModule], [IsAudiFlow], [IsUse]) VALUES (N'D05CSEAC-2854-4822-A7E9-24AD3EAF0A6E', N'·¢ËÍÓʼþ', N'Send Email', N'', 60, N'0', N'2 ', NULL, 1)
-GO
-INSERT [dbo].[Sys_Menu] ([MenuId], [MenuName], [MenuEnName], [Url], [SortIndex], [SuperMenu], [MenuModule], [IsAudiFlow], [IsUse]) VALUES (N'F19A6438-C757-4BC2-ADC2-72AAF02089E5', N'ÓʼþÀàÐÍ', N'Mail Parameters', N'Email_Send/Email_Params_List.aspx', 60, N'D05CSEAC-2854-4822-A7E9-24AD3EAF0A6E', N'2 ', NULL, 1)
-GO
-INSERT [dbo].[Sys_Menu] ([MenuId], [MenuName], [MenuEnName], [Url], [SortIndex], [SuperMenu], [MenuModule], [IsAudiFlow], [IsUse]) VALUES (N'06EB7C08-6F6E-433B-91A7-579BFC435A0C', N'ÓʼþÄ£°åÉèÖÃ', N'Send Email Template', N'Email_Send/Email_SendTemplate_List.aspx', 40, N'D05CSEAC-2854-4822-A7E9-24AD3EAF0A6E', N'2 ', NULL, 1)
-GO
-INSERT [dbo].[Sys_Menu] ([MenuId], [MenuName], [MenuEnName], [Url], [SortIndex], [SuperMenu], [MenuModule], [IsAudiFlow], [IsUse]) VALUES (N'5941BE0C-C262-48C7-899F-F0BE5A779926', N'·¢ËÍÓʼþÈÕÖ¾', N'Send Email Log', N'Email_Send/Email_SendLog_List.aspx', 30, N'D05CSEAC-2854-4822-A7E9-24AD3EAF0A6E', N'2 ', NULL, 1)
-GO
-
-
-SELECT * FROM dbo.Sys_Menu WHERE MenuName LIKE '%Óʼþ%'
\ No newline at end of file