eSIM RSP 测试用例对比站

人工切片(-man) ↔ Cas 盲生成(-cas)· 真机真卡执行证据对照

源码对照:4.2.16.2.1

ES10b 从通知列表移除通知 / TC_eUICC_ES10b.RemoveNotificationFromList

左侧为人工切片入口(-man,来自 原料/切片 的最小可执行脚本),右侧为 Cas 盲生成入口(-cas,仅依据规范生成)。文件按原始编码(多为 GBK)解码为 UTF-8 显示,行号自 1 起;字节级原文与 sha256 见两侧脚本包。完整 unified diff 见本页底部折叠区,以及 报告原文 §4。
-man 入口
Import/TestCase_SGP_23.js
670 行 / 38917 字符 / gb18030
-cas 入口
TC_eUICC_ES10b_RemoveNotificationFromList/Import/TC_eUICC_ES10b_RemoveNotificationFromList.js
1246 行 / 109224 字符 / gb18030
默认折行显示长行;取消勾选可横向滚动查看原始行宽
-man 人工切片Import/TestCase_SGP_23.js670 行 / 38917 字符 / gb18030入口函数 @L3
1// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10b_RemoveNotificationFromList_01_Nominal_Install_Notification + TC_eUICC_ES10b_RemoveNotificationFromList_02_Nominal_Enable_Notification + TC_eUICC_ES10b_RemoveNotificationFromList_03_Nominal_Disable_Notification + TC_eUICC_ES10b_RemoveNotificationFromList_04_Nominal_Delete_Notification + TC_eUICC_ES10b_RemoveNotificationFromList_05_Nominal_Two_Install_PIR_Notifications_with_different_Notification_Addresses + TC_eUICC_ES10b_RemoveNotificationFromList_06_Nominal_Install_PIR_and_Enable_Notifications + TC_eUICC_ES10b_RemoveNotificationFromList_07_Nominal_Disable_and_Delete_Notifications + TC_eUICC_ES10b_RemoveNotificationFromList_08_Nominal_Install_OtherSignedNotification_and_Enable_Notifications + TC_eUICC_ES10b_RemoveNotificationFromList_09_Nominal_Enable_and_Install_PIR_notifications + TC_eUICC_ES10b_RemoveNotificationFromList_10_Nominal_Removing_Sequence_Numbers_that_are_not_present + Install_PROFILE_OPERATIONAL1_Do_not_remove_both_the_notifications (extracted verbatim)
2
3function TC_eUICC_ES10b_RemoveNotificationFromList_01_Nominal_Install_Notification()
4{
5	Remove_All_the_Notification();
6	Install_PROFILE_OPERATIONAL1_Do_not_remove_both_the_notifications();
7	
8	tracenamestr = "01 Nominal: 删除安装通知";
9	curDis.TraceStart(sno++,tracenamestr);
10	
11	curLogicChannel = 1;
12	
13	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
14	TS_SELECT("Select ISD",ISD_R_AID,"9000");
15		
16	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行RetrieveNotificationsList;");
17	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
18	
19	Profile_load_procedure.ES10b_ListNotification("04F0");
20	
21	try
22	{		
23		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
24		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
25		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
26	
27		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
28		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
29		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
30	}catch(e){
31		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
32	}
33	
34	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
35	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
36	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
37	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
38	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
39	
40	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
41	Profile_load_procedure.ES10b_ListNotification("04F0");
42	
43	try
44	{		
45		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
46		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
47		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
48	}catch(e){
49		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
50	}
51	
52	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
53	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
54	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
55	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
56	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
57	
58	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
59	Profile_load_procedure.ES10b_ListNotification("04F0");
60	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
61		
62	Delete_PROFILE_OPERATIONAL1_Remove_the_Notification();
63	RecoverCard();
64}
65
66function TC_eUICC_ES10b_RemoveNotificationFromList_02_Nominal_Enable_Notification()
67{
68	Remove_All_the_Notification();
69	Install_PROFILE_OPERATIONAL1_Remove_both_the_Notifications();
70	Enable_PROFILE_OPERATIONAL1_Do_not_remove_the_Notification();
71	
72	tracenamestr = "02 Nominal: 删除激活profile通知";
73	curDis.TraceStart(sno++,tracenamestr);
74	
75	curLogicChannel = 1;
76	
77	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
78	TS_SELECT("Select ISD",ISD_R_AID,"9000");
79		
80	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行RetrieveNotificationsList;");
81	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
82	
83	Profile_load_procedure.ES10b_ListNotification("04F0");
84	
85	try
86	{		
87		curStrHandle.CheckData("0640",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
88		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
89		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
90	}catch(e){
91		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
92	}
93		
94	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
95	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
96	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
97	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
98	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
99	
100	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
101	Profile_load_procedure.ES10b_ListNotification("04F0");
102	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
103	
104	Disable_PROFILE_OPERATIONAL1_Remove_the_Notification();	
105	Delete_PROFILE_OPERATIONAL1_Remove_the_Notification();
106	
107	RecoverCard();
108}
109
110function TC_eUICC_ES10b_RemoveNotificationFromList_03_Nominal_Disable_Notification()
111{
112	Remove_All_the_Notification();
113	Install_PROFILE_OPERATIONAL1_Remove_both_the_Notifications();
114	Enable_PROFILE_OPERATIONAL1_Remove_the_Notification();
115	Disable_PROFILE_OPERATIONAL1_Do_not_Remove_the_Notification();
116	
117	tracenamestr = "03 Nominal: 删除去激活profile通知";
118	curDis.TraceStart(sno++,tracenamestr);
119	
120	curLogicChannel = 1;
121	
122	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
123	TS_SELECT("Select ISD",ISD_R_AID,"9000");
124		
125	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行RetrieveNotificationsList;");
126	curDis.OutlengStr(PROFILE_OPERATIONAL1_DATA,"PROFILE_OPERATIONAL1_DATA");	
127	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
128	
129	Profile_load_procedure.ES10b_ListNotification("04F0");
130	
131	try
132	{		
133		curStrHandle.CheckData("0520",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
134		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
135		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
136	}catch(e){
137		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
138	}
139		
140	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
141	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
142	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
143	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
144	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
145	
146	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
147	Profile_load_procedure.ES10b_ListNotification("04F0");
148	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
149	
150	Delete_PROFILE_OPERATIONAL1_Remove_the_Notification();
151  RecoverCard();
152}
153
154function TC_eUICC_ES10b_RemoveNotificationFromList_04_Nominal_Delete_Notification()
155{
156	Remove_All_the_Notification();
157	Install_PROFILE_OPERATIONAL1_Remove_both_the_Notifications();
158	Enable_PROFILE_OPERATIONAL1_Remove_the_Notification();
159	Disable_PROFILE_OPERATIONAL1_Remove_the_Notification();
160	Delete_PROFILE_OPERATIONAL1_Do_not_remove_the_Notification();
161	
162	tracenamestr = "04 Nominal: 删除删除profile通知";
163	curDis.TraceStart(sno++,tracenamestr);
164	
165	curLogicChannel = 1;
166	
167	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
168	TS_SELECT("Select ISD",ISD_R_AID,"9000");
169		
170	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行RetrieveNotificationsList;");
171	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
172	
173	Profile_load_procedure.ES10b_ListNotification("04F0");
174	
175	try
176	{		
177		curStrHandle.CheckData("0410",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
178		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
179		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
180	}catch(e){
181		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
182	}
183		
184	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
185	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
186	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
187	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
188	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
189	
190	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
191	Profile_load_procedure.ES10b_ListNotification("04F0");
192	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
193  RecoverCard();
194}
195
196function TC_eUICC_ES10b_RemoveNotificationFromList_05_Nominal_Two_Install_PIR_Notifications_with_different_Notification_Addresses()
197{
198	if(!Card_Have_ECC_Cert)
199		return;
200	
201	//测试入口条件
202	if(!check_Applicability_of_tests_RSP_SGP23_test("C025"))
203		return;
204	
205	Remove_All_the_Notification();
206	Install_PROFILE_OPERATIONAL1_with_METADATA_OP_PROF1_NO_INSTALL_Do_not_remove_the_Notification();
207	Install_PROFILE_OPERATIONAL2_with_METADATA_OP_PROF2_NO_INSTALL_Do_not_remove_the_Notification();
208	
209	tracenamestr = "05 Nominal: 删除两个具有不同通知地址的安装通知(PIR)";
210	curDis.TraceStart(sno++,tracenamestr);
211	
212	curLogicChannel = 1;
213	
214	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
215	TS_SELECT("Select ISD",ISD_R_AID,"9000");
216		
217	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
218	curDis.OutlengStr(PROFILE_OPERATIONAL1_DATA,"PROFILE_OPERATIONAL1_DATA");	
219	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
220	
221	Profile_load_procedure.ES10b_ListNotification("04F0");
222	
223	try
224	{		
225		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
226		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
227		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
228	
229		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].profileManagementOperation,"profileManagementOperation");
230		curStrHandle.CheckData(TEST_DP_ADDRESS2,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].notificationAddress,"notificationAddress");
231		curStrHandle.CheckData(ICCID_OP_PROF2, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].iccid, "ICCID");
232	}catch(e){
233		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
234	}
235	
236	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
237	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
238	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
239	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
240	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
241	
242	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
243	Profile_load_procedure.ES10b_ListNotification("04F0");
244	
245	try
246	{		
247		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
248		curStrHandle.CheckData(TEST_DP_ADDRESS2,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
249		curStrHandle.CheckData(ICCID_OP_PROF2, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
250	}catch(e){
251		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
252	}
253	
254	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
255	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
256	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
257	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
258	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
259	
260	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
261	Profile_load_procedure.ES10b_ListNotification("04F0");
262	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
263		
264	
265	Delete_PROFILE_OPERATIONAL1_Remove_the_Notification();
266	Delete_PROFILE_OPERATIONAL2_Remove_the_Notification();
267  RecoverCard();
268}
269
270function TC_eUICC_ES10b_RemoveNotificationFromList_06_Nominal_Install_PIR_and_Enable_Notifications()
271{
272	Remove_All_the_Notification();
273	Install_PROFILE_OPERATIONAL1_with_METADATA_OP_PROF1_NO_INSTALL_Do_not_remove_the_Notification();
274	Enable_PROFILE_OPERATIONAL1_Do_not_remove_the_Notification();
275	
276	tracenamestr = "06 Nominal: 删除安装(PIR)和激活profile通知";
277	curDis.TraceStart(sno++,tracenamestr);
278	
279	curLogicChannel = 1;
280	
281	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
282	TS_SELECT("Select ISD",ISD_R_AID,"9000");
283		
284	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
285	curDis.OutlengStr(PROFILE_OPERATIONAL1_DATA,"PROFILE_OPERATIONAL1_DATA");	
286	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
287	
288	Profile_load_procedure.ES10b_ListNotification("04F0");
289	
290	try
291	{		
292		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
293		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
294		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
295	
296		curStrHandle.CheckData("0640",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].profileManagementOperation,"profileManagementOperation");
297		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].notificationAddress,"notificationAddress");
298		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].iccid, "ICCID");
299	}catch(e){
300		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
301	}
302	
303	
304	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
305	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
306	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
307	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
308	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
309	
310	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
311	Profile_load_procedure.ES10b_ListNotification("04F0");
312	
313	try
314	{		
315		curStrHandle.CheckData("0640",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
316		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
317		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
318	}catch(e){
319		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
320	}
321	
322	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
323	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
324	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
325	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
326	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
327	
328	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
329	Profile_load_procedure.ES10b_ListNotification("04F0");
330	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
331		
332	
333	Disable_PROFILE_OPERATIONAL1_Remove_the_Notification();
334	Delete_PROFILE_OPERATIONAL1_Remove_the_Notification();
335	
336  RecoverCard();
337	
338}
339
340function TC_eUICC_ES10b_RemoveNotificationFromList_07_Nominal_Disable_and_Delete_Notifications()
341{
342	Remove_All_the_Notification();
343	Install_PROFILE_OPERATIONAL1_Remove_both_the_Notifications();
344	Enable_PROFILE_OPERATIONAL1_Remove_the_Notification();
345	Disable_PROFILE_OPERATIONAL1_Do_not_Remove_the_Notification();
346	Delete_PROFILE_OPERATIONAL1_Do_not_remove_the_Notification();
347	
348	tracenamestr = "07 Nominal: 删除去激活和删除profile通知";
349	curDis.TraceStart(sno++,tracenamestr);
350	
351	curLogicChannel = 1;
352	
353	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
354	TS_SELECT("Select ISD",ISD_R_AID,"9000");
355		
356	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
357	curDis.OutlengStr(PROFILE_OPERATIONAL1_DATA,"PROFILE_OPERATIONAL1_DATA");	
358	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
359	
360	Profile_load_procedure.ES10b_ListNotification("04F0");
361	
362	try
363	{		
364		curStrHandle.CheckData("0520",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
365		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
366		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
367	
368		curStrHandle.CheckData("0410",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].profileManagementOperation,"profileManagementOperation");
369		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].notificationAddress,"notificationAddress");
370		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].iccid, "ICCID");
371	}catch(e){
372		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
373	}
374	
375	
376	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
377	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
378	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
379	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
380	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
381	
382	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
383	Profile_load_procedure.ES10b_ListNotification("04F0");
384	
385	try
386	{		
387		curStrHandle.CheckData("0410",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
388		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
389		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
390	}catch(e){
391		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
392	}
393	
394	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
395	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
396	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
397	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
398	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
399	
400	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
401	Profile_load_procedure.ES10b_ListNotification("04F0");
402	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
403		
404  RecoverCard();
405}
406
407function TC_eUICC_ES10b_RemoveNotificationFromList_08_Nominal_Install_OtherSignedNotification_and_Enable_Notifications()
408{
409	Remove_All_the_Notification();
410	Install_PROFILE_OPERATIONAL1_Remove_the_PIR_notification_but_do_not_remove_the_OtherSignedNotification();
411	Enable_PROFILE_OPERATIONAL1_Do_not_remove_the_Notification();
412	
413	tracenamestr = "08 Nominal: 删除安装(OtherSignedNotification)和激活profile通知";
414	curDis.TraceStart(sno++,tracenamestr);
415	
416	curLogicChannel = 1;
417	
418	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
419	TS_SELECT("Select ISD",ISD_R_AID,"9000");
420		
421	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
422	curDis.OutlengStr(PROFILE_OPERATIONAL1_DATA,"PROFILE_OPERATIONAL1_DATA");	
423	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
424	
425	Profile_load_procedure.ES10b_ListNotification("04F0");
426	Update_Max_seqNumber_Of_Notification(Profile_load_procedure.listNotificationResponse)
427	
428	try
429	{		
430		var seqNumber = parseInt(Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber,16);
431		if(Max_seqNumber_Of_Notification ==	seqNumber)
432		{
433			curStrHandle.CheckData(Max_seqNumber_Of_Notification,parseInt(Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber,16),"seqNumber");			
434			curStrHandle.CheckData("0640",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
435			curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
436			curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
437		
438			curStrHandle.CheckData(Max_seqNumber_Of_Notification-1,parseInt(Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].seqNumber,16),"seqNumber");						
439			curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].profileManagementOperation,"profileManagementOperation");
440			curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].notificationAddress,"notificationAddress");
441			curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].iccid, "ICCID");
442		}
443		else
444		{
445			curStrHandle.CheckData(Max_seqNumber_Of_Notification-1,parseInt(Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber,16),"seqNumber");						
446			curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
447			curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
448			curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
449		
450			curStrHandle.CheckData(Max_seqNumber_Of_Notification,parseInt(Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].seqNumber,16),"seqNumber");			
451			curStrHandle.CheckData("0640",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].profileManagementOperation,"profileManagementOperation");
452			curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].notificationAddress,"notificationAddress");
453			curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].iccid, "ICCID");			
454		}	
455	}catch(e){
456		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
457	}
458	
459	
460	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
461	var parameter = EnCodeInteger_Ber(Max_seqNumber_Of_Notification-1);
462	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
463	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
464	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
465	
466	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
467	Profile_load_procedure.ES10b_ListNotification("04F0");
468	
469	try
470	{		
471		curStrHandle.CheckData("0640",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
472		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
473		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
474	}catch(e){
475		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
476	}
477	
478	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
479	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
480	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
481	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
482	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
483	
484	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
485	Profile_load_procedure.ES10b_ListNotification("04F0");
486	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
487		
488	Disable_PROFILE_OPERATIONAL1_Do_not_Remove_the_Notification();
489	Delete_PROFILE_OPERATIONAL1_Do_not_remove_the_Notification();
490	RecoverCard();
491}
492
493function TC_eUICC_ES10b_RemoveNotificationFromList_09_Nominal_Enable_and_Install_PIR_notifications()
494{
495	if(!Card_Have_ECC_Cert)
496		return;
497	
498	Remove_All_the_Notification();
499	Install_PROFILE_OPERATIONAL1_Remove_both_the_Notifications();
500	Enable_PROFILE_OPERATIONAL1_Do_not_remove_the_Notification();
501	Install_PROFILE_OPERATIONAL2_with_METADATA_OP_PROF2_NO_INSTALL_Do_not_remove_the_Notification();
502	
503	
504	tracenamestr = "09 Nominal: 删除激活profile和安装(PIR)通知";
505	curDis.TraceStart(sno++,tracenamestr);
506	
507	curLogicChannel = 1;
508	
509	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
510	TS_SELECT("Select ISD",ISD_R_AID,"9000");
511		
512	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
513	curDis.OutlengStr(PROFILE_OPERATIONAL1_DATA,"PROFILE_OPERATIONAL1_DATA");	
514	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
515	
516	Profile_load_procedure.ES10b_ListNotification("04F0");
517	
518	try
519	{		
520		curStrHandle.CheckData("0640",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
521		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
522		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
523	
524		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].profileManagementOperation,"profileManagementOperation");
525		curStrHandle.CheckData(TEST_DP_ADDRESS2,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].notificationAddress,"notificationAddress");
526		curStrHandle.CheckData(ICCID_OP_PROF2, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].iccid, "ICCID");
527	}catch(e){
528		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
529	}
530	
531	
532	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
533	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
534	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
535	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
536	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
537	
538	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
539	Profile_load_procedure.ES10b_ListNotification("04F0");
540	
541	try
542	{		
543		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
544		curStrHandle.CheckData(TEST_DP_ADDRESS2,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
545		curStrHandle.CheckData(ICCID_OP_PROF2, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
546	}catch(e){
547		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
548	}
549	
550	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
551	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
552	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
553	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
554	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
555	
556	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
557	Profile_load_procedure.ES10b_ListNotification("04F0");
558	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
559		
560	Disable_PROFILE_OPERATIONAL1_Do_not_Remove_the_Notification();
561	Delete_PROFILE_OPERATIONAL1_Do_not_remove_the_Notification();
562	Delete_PROFILE_OPERATIONAL2_Remove_the_Notification();
563	RecoverCard();
564}
565
566function TC_eUICC_ES10b_RemoveNotificationFromList_10_Nominal_Removing_Sequence_Numbers_that_are_not_present ()
567{
568	Remove_All_the_Notification();
569	Install_PROFILE_OPERATIONAL1_with_METADATA_OP_PROF1_NO_INSTALL_Do_not_remove_the_Notification();
570	
571	tracenamestr = "10 Nominal: 删除通知,指定的序列号不存在";
572	curDis.TraceStart(sno++,tracenamestr);
573	
574	curLogicChannel = 1;
575	
576	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
577	TS_SELECT("Select ISD",ISD_R_AID,"9000");
578		
579	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
580	curDis.OutlengStr(PROFILE_OPERATIONAL1_DATA,"PROFILE_OPERATIONAL1_DATA");	
581	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
582	
583	Profile_load_procedure.ES10b_ListNotification("04F0");
584	
585	try
586	{		
587		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
588		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
589		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
590	}catch(e){
591		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
592	}
593	
594	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
595	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
596	parameter = EnCodeInteger_Ber(parseInt(parameter,16)+1);
597	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
598	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
599	curStrHandle.CheckData("01", deleteNotificationStatus, "deleteNotificationStatus");
600	
601	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
602	Profile_load_procedure.ES10b_ListNotification("04F0");
603	
604	try
605	{		
606		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
607		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
608		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
609	}catch(e){
610		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
611	}
612	
613	
614	Delete_PROFILE_OPERATIONAL1_Remove_the_Notification();
615	RecoverCard();
616}
617
618function Install_PROFILE_OPERATIONAL1_Do_not_remove_both_the_notifications()
619{
620	Remove_All_the_Notification();
621	
622	curLogicChannel = 0;
623	
624	tracenamestr = "Install PROFILE_OPERATIONAL1. Do not remove both the notifications.";
625	curDis.TraceStart(sno++,tracenamestr);
626		
627	curDis.TestStepStart("eUICC卡片初始化;");
628	Ini_powerOn_eUICC_LPAe_not_activate();
629	
630	curDis.TestStepStart("读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
631	TS_MANAGE_CHANNEL_OPEN();
632	
633	curLogicChannel = 1;
634	
635	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
636	TS_SELECT("Select ISD",ISD_R_AID,"9000");
637	
638	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
639	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
640	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
641	Profile_load_procedure.ES10b_GetEUICCInfo1();
642
643	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
644	Profile_load_procedure.ES10b_GetEUICCChallenge();
645	
646	
647	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
648	Profile_load_procedure.serverAddress = TEST_DP_ADDRESS1;
649	Profile_load_procedure.ES10b_AuthenticateServer();
650	
651	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
652	Profile_load_procedure.ES10b_PrepareDownload();
653	
654	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
655	Profile_load_procedure.ES10b_GetEID();
656	
657	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行BoundProfilePackage;");
658	Profile_load_procedure.serviceProviderName = SP_NAME1;
659	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
660	Profile_load_procedure.iconType = "01";
661	Profile_load_procedure.icon = ICON_OP_PROF1;
662	Profile_load_procedure.notificationConfigurationInfo = new SequenceOfElement("30");
663	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0] = new NotificationConfigurationInformation();
664	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].profileManagementOperation = "04F0";
665	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].notificationAddress = TEST_DP_ADDRESS1;
666	Profile_load_procedure.mccMnc = MCC_MNC1;
667	
668	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
669}
670
-cas 盲生成TC_eUICC_ES10b_RemoveNotificationFromList/Import/TC_eUICC_ES10b_RemoveNotificationFromList.js1246 行 / 109224 字符 / gb18030入口函数 @L60
1// Author: 卡思Cas智能体
2// Date: 20261004-141736
3// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES10b.RemoveNotificationFromList,Test Sequence #01-#10 Nominal (all 10 sequences),适用性 M。
4// Test points: ICH-SEQ01-IC1-K1-C1 ATR_present;ICH-SEQ01-IC1-K2-C2 FCP_Template
5//   ICH-SEQ01-IC1-K2-C4 SW;ICH-SEQ01-IC1-K3-C4 SW;ICH-SEQ01-IC1-K4-C4 final SW
6//   ICH-SEQ01-IC2-K1-C4 SW;ICH-SEQ01-IC2-K1-C3 CHANNEL_NUMBER extracted;ICH-SEQ01-IC2-K2-C4 SW
7//   S1-C1 SW;S1-C2 响应结构匹配 #R_LIST_NOTIF_IN1_IN1_PIR:ListNotificationResponse no branch/count
8//   S2-C1 SW;S2-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S3-C1 SW
9//   S3-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR:ListNotificationResponse notifi branch/count;S4-C1 SW
10//   S4-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S5-C1 SW
11//   S5-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S6-C1 SW
12//   S6-C2 响应结构匹配 #R_LIST_NOTIF_EN1:ListNotificationResponse notificati branch/count;S7-C1 SW
13//   S7-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S8-C1 SW
14//   S8-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S9-C1 SW
15//   S9-C2 响应结构匹配 #R_LIST_NOTIF_DI1:ListNotificationResponse notificati branch/count;S10-C1 SW
16//   S10-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S11-C1 SW
17//   S11-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S12-C1 SW
18//   S12-C2 响应结构匹配 #R_LIST_NOTIF_DE1:ListNotificationResponse notificati branch/count;S13-C1 SW
19//   S13-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S14-C1 SW
20//   S14-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S15-C1 SW
21//   S15-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR_IN2_PIR:ListNotificationRespons branch/count;S16-C1 SW
22//   S16-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S17-C1 SW
23//   S17-C2 响应结构匹配 #R_LIST_NOTIF_IN2_PIR:ListNotificationResponse notifi branch/count;S18-C1 SW
24//   S18-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S19-C1 SW
25//   S19-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S20-C1 SW
26//   S20-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR_EN1:ListNotificationResponse no branch/count;S21-C1 SW
27//   S21-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S22-C1 SW
28//   S22-C2 响应结构匹配 #R_LIST_NOTIF_EN1:ListNotificationResponse notificati branch/count;S23-C1 SW
29//   S23-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S24-C1 SW
30//   S24-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S25-C1 SW
31//   S25-C2 响应结构匹配 #R_LIST_NOTIF_DI1_DE1:ListNotificationResponse notifi branch/count;S26-C1 SW
32//   S26-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S27-C1 SW
33//   S27-C2 响应结构匹配 #R_LIST_NOTIF_DE1:ListNotificationResponse notificati branch/count;S28-C1 SW
34//   S28-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S29-C1 SW
35//   S29-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S30-C1 SW
36//   S30-C2 响应结构匹配 #R_LIST_NOTIF_IN1_EN1:ListNotificationResponse notifi branch/count;S31-C1 SW
37//   S31-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S32-C1 SW
38//   S32-C2 响应结构匹配 #R_LIST_NOTIF_EN1:ListNotificationResponse notificati branch/count;S33-C1 SW
39//   S33-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S34-C1 SW
40//   S34-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S35-C1 SW
41//   S35-C2 响应结构匹配 #R_LIST_NOTIF_EN1_IN2_PIR:ListNotificationResponse no branch/count;S36-C1 SW
42//   S36-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S37-C1 SW
43//   S37-C2 响应结构匹配 #R_LIST_NOTIF_EN1:ListNotificationResponse notificati branch/count;S38-C1 SW
44//   S38-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S39-C1 SW
45//   S39-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S40-C1 SW
46//   S40-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR:ListNotificationResponse notifi branch/count;S41-C1 SW
47//   S41-C2 响应结构匹配 #R_REMOVE_NOTIF_NOTHING_TO_DELETE deleteNotificationStatus;S42-C1 SW
48//   S42-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR:ListNotificationResponse notifi branch/count;S43-C1 SW
49//   S43-C2 响应结构匹配 #R_REMOVE_NOTIF_NOTHING_TO_DELETE deleteNotificationStatus;S44-C1 SW
50//   S44-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR:ListNotificationResponse notifi branch/count;S45-C1 SW
51//   S45-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S46-C1 SW
52//   S46-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S47-C1 SW
53//   S47-C2 响应结构匹配 #R_REMOVE_NOTIF_NOTHING_TO_DELETE deleteNotificationStatus;S48-C1 SW
54//   S48-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S49-C1 SW
55//   S49-C2 响应结构匹配 #R_REMOVE_NOTIF_NOTHING_TO_DELETE deleteNotificationStatus;S50-C1 SW
56//   S50-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count
57// 本函数由 CaseIR 4.2.16.2.1 编译生成(fullwave-blindgen-live-70-W1-laneA2,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
58// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
59// 适用性 M:编译期门,运行时由 harness 环境前置承担。
60function TC_eUICC_ES10b_RemoveNotificationFromList_01_10_Nominal_all_10_sequences() {
61    var bind = curBind;
62    var profileAidSession = BindEs10xProcProfileDynamic.beginSession(bind, "TC_eUICC_ES10b_RemoveNotificationFromList_01_10_Nominal_all_10_sequences");
63
64    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
65    var s51 = bind.resetAndAtr();
66    bind.checkData("ICH-SEQ01-IC1-K1-C1 ATR_present", "1", s51.atr_hex !== "" ? "1" : "0");
67
68    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
69    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
70    var s52 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
71    bind.checkData("ICH-SEQ01-IC1-K2-C2 FCP_Template", "1", s52.resp.length > 0 ? "1" : "0");
72    bind.checkData("ICH-SEQ01-IC1-K2-C4 SW", "9000", s52.sw);
73
74    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
75    var s53 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
76    bind.checkData("ICH-SEQ01-IC1-K3-C4 SW", "9000", s53.sw);
77
78    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
79    var steady54 = bind.runToSteadyState(function () {
80        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
81    });
82    bind.checkData("ICH-SEQ01-IC1-K4-C4 final SW", "9000", steady54.final.sw);
83
84    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
85    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
86    var s55 = bind.manageChannelOpen("9000");
87    bind.checkData("ICH-SEQ01-IC2-K1-C4 SW", "9000", s55.sw);
88    bind.checkData("ICH-SEQ01-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s55.chan !== null ? "1" : "0");
89
90    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
91    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
92    var s56 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
93    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
94    bind.checkData("ICH-SEQ01-IC2-K2-C4 SW", "9000", s56.sw);
95
96    // 步骤 1:SEQ01-IC4] MTD_STORE_DATA(tc_step)
97    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
98    var sdCla1 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
99    var s1 = bind.sendApdu(sdCla1, "E2", "91", "00", "BF2804810204F0", "00", "9000");
100    bind.checkData("S1-C1 SW", "9000", s1.sw);
101    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
102    var lw1T = BindEs10xSingleRequest.parseBerTlv(s1.resp);
103    var lw1Ok0 = lw1T.length === 1 && lw1T[0].tag === "BF28";
104    var lw1_br = lw1Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw1T[0].value) : [];
105    var lw1_brtag = lw1_br.length === 1 ? lw1_br[0].tag : "";
106    var lw1_els = lw1_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw1_br[0].value) : [];
107    bind.checkData("S1-C2 响应结构匹配 #R_LIST_NOTIF_IN1_IN1_PIR:ListNotificationResponse no branch/count", "1", (lw1_brtag === "A0" && lw1_els.length === 2) ? "1" : "0");
108
109    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1 ← 步 1 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
110    var nd2_NOTIF_SEQ_NO_IN1 = {ok: false, seq: ""};
111    var nd2_NOTIF_SEQ_NO_IN1T = BindEs10xSingleRequest.parseBerTlv(s1.resp);
112    if (nd2_NOTIF_SEQ_NO_IN1T.length === 1 && nd2_NOTIF_SEQ_NO_IN1T[0].tag === "BF28") {
113        var nd2_NOTIF_SEQ_NO_IN1X1 = BindEs10xSingleRequest.parseBerTlv(nd2_NOTIF_SEQ_NO_IN1T[0].value);
114        if (nd2_NOTIF_SEQ_NO_IN1X1.length === 1 && nd2_NOTIF_SEQ_NO_IN1X1[0].tag === "A0") {
115            var nd2_NOTIF_SEQ_NO_IN1X2 = BindEs10xSingleRequest.parseBerTlv(nd2_NOTIF_SEQ_NO_IN1X1[0].value);
116            var nd2_NOTIF_SEQ_NO_IN1XHIT = 0;
117            for (var nd2_NOTIF_SEQ_NO_IN1XI = 0; nd2_NOTIF_SEQ_NO_IN1XI < nd2_NOTIF_SEQ_NO_IN1X2.length; nd2_NOTIF_SEQ_NO_IN1XI++) {
118                if (nd2_NOTIF_SEQ_NO_IN1X2[nd2_NOTIF_SEQ_NO_IN1XI].tag !== "BF2F") { continue; }
119                var nd2_NOTIF_SEQ_NO_IN1XM = BindEs10xSingleRequest.parseBerTlv(nd2_NOTIF_SEQ_NO_IN1X2[nd2_NOTIF_SEQ_NO_IN1XI].value);
120                for (var nd2_NOTIF_SEQ_NO_IN1XJ = 0; nd2_NOTIF_SEQ_NO_IN1XJ < nd2_NOTIF_SEQ_NO_IN1XM.length; nd2_NOTIF_SEQ_NO_IN1XJ++) {
121                    if (nd2_NOTIF_SEQ_NO_IN1XM[nd2_NOTIF_SEQ_NO_IN1XJ].tag === "81" && nd2_NOTIF_SEQ_NO_IN1XM[nd2_NOTIF_SEQ_NO_IN1XJ].value === "80") {
122                        nd2_NOTIF_SEQ_NO_IN1XHIT += 1;
123                        if (nd2_NOTIF_SEQ_NO_IN1XHIT === 1) {
124                            for (var nd2_NOTIF_SEQ_NO_IN1XK = 0; nd2_NOTIF_SEQ_NO_IN1XK < nd2_NOTIF_SEQ_NO_IN1XM.length; nd2_NOTIF_SEQ_NO_IN1XK++) {
125                                if (nd2_NOTIF_SEQ_NO_IN1XM[nd2_NOTIF_SEQ_NO_IN1XK].tag === "80") { nd2_NOTIF_SEQ_NO_IN1.seq = nd2_NOTIF_SEQ_NO_IN1XM[nd2_NOTIF_SEQ_NO_IN1XK].value; nd2_NOTIF_SEQ_NO_IN1.ok = true; }
126                            }
127                        }
128                    }
129                }
130            }
131        }
132    }
133    var nd2_NOTIF_SEQ_NO_IN1Req = nd2_NOTIF_SEQ_NO_IN1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd2_NOTIF_SEQ_NO_IN1.seq)) : "";
134    // 步骤 2:SEQ01-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
135    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
136    var sdCla2 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
137    // runtime-bound payload: NOTIF_SEQ_NO_IN1 stays in execution domain
138    var s2 = bind.sendApdu(sdCla2, "E2", "91", "00", nd2_NOTIF_SEQ_NO_IN1Req, "00", "9000");
139    bind.checkData("S2-C1 SW", "9000", s2.sw);
140    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1", s2.cmd, profileAidSession);
141    var ns2W = BindEs10xSingleRequest.parseBerTlv(s2.resp);
142    var ns2Ok0 = ns2W.length === 1 && ns2W[0].tag === "BF30";
143    var ns2In = ns2Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns2W[0].value) : [];
144    var ns2Code = (ns2In.length === 1 && ns2In[0].tag === "80") ? ns2In[0].value : "absent";
145    bind.checkData("S2-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns2Code);
146
147    // 步骤 3:SEQ01-2] MTD_STORE_DATA(tc_step)
148    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
149    var sdCla3 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
150    var s3 = bind.sendApdu(sdCla3, "E2", "91", "00", "BF2804810204F0", "00", "9000");
151    bind.checkData("S3-C1 SW", "9000", s3.sw);
152    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
153    var lw3T = BindEs10xSingleRequest.parseBerTlv(s3.resp);
154    var lw3Ok0 = lw3T.length === 1 && lw3T[0].tag === "BF28";
155    var lw3_br = lw3Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw3T[0].value) : [];
156    var lw3_brtag = lw3_br.length === 1 ? lw3_br[0].tag : "";
157    var lw3_els = lw3_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw3_br[0].value) : [];
158    bind.checkData("S3-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR:ListNotificationResponse notifi branch/count", "1", (lw3_brtag === "A0" && lw3_els.length === 1) ? "1" : "0");
159
160    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1_PIR ← 步 1 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
161    var nd4_NOTIF_SEQ_NO_IN1_PIR = {ok: false, seq: ""};
162    var nd4_NOTIF_SEQ_NO_IN1_PIRT = BindEs10xSingleRequest.parseBerTlv(s1.resp);
163    if (nd4_NOTIF_SEQ_NO_IN1_PIRT.length === 1 && nd4_NOTIF_SEQ_NO_IN1_PIRT[0].tag === "BF28") {
164        var nd4_NOTIF_SEQ_NO_IN1_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd4_NOTIF_SEQ_NO_IN1_PIRT[0].value);
165        if (nd4_NOTIF_SEQ_NO_IN1_PIRX1.length === 1 && nd4_NOTIF_SEQ_NO_IN1_PIRX1[0].tag === "A0") {
166            var nd4_NOTIF_SEQ_NO_IN1_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd4_NOTIF_SEQ_NO_IN1_PIRX1[0].value);
167            var nd4_NOTIF_SEQ_NO_IN1_PIRXHIT = 0;
168            for (var nd4_NOTIF_SEQ_NO_IN1_PIRXI = 0; nd4_NOTIF_SEQ_NO_IN1_PIRXI < nd4_NOTIF_SEQ_NO_IN1_PIRX2.length; nd4_NOTIF_SEQ_NO_IN1_PIRXI++) {
169                if (nd4_NOTIF_SEQ_NO_IN1_PIRX2[nd4_NOTIF_SEQ_NO_IN1_PIRXI].tag !== "BF2F") { continue; }
170                var nd4_NOTIF_SEQ_NO_IN1_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd4_NOTIF_SEQ_NO_IN1_PIRX2[nd4_NOTIF_SEQ_NO_IN1_PIRXI].value);
171                for (var nd4_NOTIF_SEQ_NO_IN1_PIRXJ = 0; nd4_NOTIF_SEQ_NO_IN1_PIRXJ < nd4_NOTIF_SEQ_NO_IN1_PIRXM.length; nd4_NOTIF_SEQ_NO_IN1_PIRXJ++) {
172                    if (nd4_NOTIF_SEQ_NO_IN1_PIRXM[nd4_NOTIF_SEQ_NO_IN1_PIRXJ].tag === "81" && nd4_NOTIF_SEQ_NO_IN1_PIRXM[nd4_NOTIF_SEQ_NO_IN1_PIRXJ].value === "80") {
173                        nd4_NOTIF_SEQ_NO_IN1_PIRXHIT += 1;
174                        if (nd4_NOTIF_SEQ_NO_IN1_PIRXHIT === 2) {
175                            for (var nd4_NOTIF_SEQ_NO_IN1_PIRXK = 0; nd4_NOTIF_SEQ_NO_IN1_PIRXK < nd4_NOTIF_SEQ_NO_IN1_PIRXM.length; nd4_NOTIF_SEQ_NO_IN1_PIRXK++) {
176                                if (nd4_NOTIF_SEQ_NO_IN1_PIRXM[nd4_NOTIF_SEQ_NO_IN1_PIRXK].tag === "80") { nd4_NOTIF_SEQ_NO_IN1_PIR.seq = nd4_NOTIF_SEQ_NO_IN1_PIRXM[nd4_NOTIF_SEQ_NO_IN1_PIRXK].value; nd4_NOTIF_SEQ_NO_IN1_PIR.ok = true; }
177                            }
178                        }
179                    }
180                }
181            }
182        }
183    }
184    var nd4_NOTIF_SEQ_NO_IN1_PIRReq = nd4_NOTIF_SEQ_NO_IN1_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd4_NOTIF_SEQ_NO_IN1_PIR.seq)) : "";
185    // 步骤 4:SEQ01-3] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079, RQ31_182)
186    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
187    var sdCla4 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
188    // runtime-bound payload: NOTIF_SEQ_NO_IN1_PIR stays in execution domain
189    var s4 = bind.sendApdu(sdCla4, "E2", "91", "00", nd4_NOTIF_SEQ_NO_IN1_PIRReq, "00", "9000");
190    bind.checkData("S4-C1 SW", "9000", s4.sw);
191    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1_PIR", s4.cmd, profileAidSession);
192    var ns4W = BindEs10xSingleRequest.parseBerTlv(s4.resp);
193    var ns4Ok0 = ns4W.length === 1 && ns4W[0].tag === "BF30";
194    var ns4In = ns4Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns4W[0].value) : [];
195    var ns4Code = (ns4In.length === 1 && ns4In[0].tag === "80") ? ns4In[0].value : "absent";
196    bind.checkData("S4-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns4Code);
197
198    // 步骤 5:SEQ01-4] MTD_STORE_DATA(tc_step;REQ: RQ25_020, RQ31_182)
199    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
200    var sdCla5 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
201    var s5 = bind.sendApdu(sdCla5, "E2", "91", "00", "BF2804810204F0", "00", "9000");
202    bind.checkData("S5-C1 SW", "9000", s5.sw);
203    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
204    var lw5T = BindEs10xSingleRequest.parseBerTlv(s5.resp);
205    var lw5Ok0 = lw5T.length === 1 && lw5T[0].tag === "BF28";
206    var lw5_br = lw5Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw5T[0].value) : [];
207    var lw5_brtag = lw5_br.length === 1 ? lw5_br[0].tag : "";
208    var lw5_els = lw5_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw5_br[0].value) : [];
209    bind.checkData("S5-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw5_brtag === "A0" && lw5_els.length === 0) ? "1" : "0");
210
211    // 步骤 6:SEQ02-IC5] MTD_STORE_DATA(tc_step)
212    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
213    var sdCla6 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
214    var s6 = bind.sendApdu(sdCla6, "E2", "91", "00", "BF2804810204F0", "00", "9000");
215    bind.checkData("S6-C1 SW", "9000", s6.sw);
216    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
217    var lw6T = BindEs10xSingleRequest.parseBerTlv(s6.resp);
218    var lw6Ok0 = lw6T.length === 1 && lw6T[0].tag === "BF28";
219    var lw6_br = lw6Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw6T[0].value) : [];
220    var lw6_brtag = lw6_br.length === 1 ? lw6_br[0].tag : "";
221    var lw6_els = lw6_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw6_br[0].value) : [];
222    bind.checkData("S6-C2 响应结构匹配 #R_LIST_NOTIF_EN1:ListNotificationResponse notificati branch/count", "1", (lw6_brtag === "A0" && lw6_els.length === 1) ? "1" : "0");
223
224    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_EN1 ← 步 6 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=40 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
225    var nd7_NOTIF_SEQ_NO_EN1 = {ok: false, seq: ""};
226    var nd7_NOTIF_SEQ_NO_EN1T = BindEs10xSingleRequest.parseBerTlv(s6.resp);
227    if (nd7_NOTIF_SEQ_NO_EN1T.length === 1 && nd7_NOTIF_SEQ_NO_EN1T[0].tag === "BF28") {
228        var nd7_NOTIF_SEQ_NO_EN1X1 = BindEs10xSingleRequest.parseBerTlv(nd7_NOTIF_SEQ_NO_EN1T[0].value);
229        if (nd7_NOTIF_SEQ_NO_EN1X1.length === 1 && nd7_NOTIF_SEQ_NO_EN1X1[0].tag === "A0") {
230            var nd7_NOTIF_SEQ_NO_EN1X2 = BindEs10xSingleRequest.parseBerTlv(nd7_NOTIF_SEQ_NO_EN1X1[0].value);
231            var nd7_NOTIF_SEQ_NO_EN1XHIT = 0;
232            for (var nd7_NOTIF_SEQ_NO_EN1XI = 0; nd7_NOTIF_SEQ_NO_EN1XI < nd7_NOTIF_SEQ_NO_EN1X2.length; nd7_NOTIF_SEQ_NO_EN1XI++) {
233                if (nd7_NOTIF_SEQ_NO_EN1X2[nd7_NOTIF_SEQ_NO_EN1XI].tag !== "BF2F") { continue; }
234                var nd7_NOTIF_SEQ_NO_EN1XM = BindEs10xSingleRequest.parseBerTlv(nd7_NOTIF_SEQ_NO_EN1X2[nd7_NOTIF_SEQ_NO_EN1XI].value);
235                for (var nd7_NOTIF_SEQ_NO_EN1XJ = 0; nd7_NOTIF_SEQ_NO_EN1XJ < nd7_NOTIF_SEQ_NO_EN1XM.length; nd7_NOTIF_SEQ_NO_EN1XJ++) {
236                    if (nd7_NOTIF_SEQ_NO_EN1XM[nd7_NOTIF_SEQ_NO_EN1XJ].tag === "81" && nd7_NOTIF_SEQ_NO_EN1XM[nd7_NOTIF_SEQ_NO_EN1XJ].value === "40") {
237                        nd7_NOTIF_SEQ_NO_EN1XHIT += 1;
238                        if (nd7_NOTIF_SEQ_NO_EN1XHIT === 1) {
239                            for (var nd7_NOTIF_SEQ_NO_EN1XK = 0; nd7_NOTIF_SEQ_NO_EN1XK < nd7_NOTIF_SEQ_NO_EN1XM.length; nd7_NOTIF_SEQ_NO_EN1XK++) {
240                                if (nd7_NOTIF_SEQ_NO_EN1XM[nd7_NOTIF_SEQ_NO_EN1XK].tag === "80") { nd7_NOTIF_SEQ_NO_EN1.seq = nd7_NOTIF_SEQ_NO_EN1XM[nd7_NOTIF_SEQ_NO_EN1XK].value; nd7_NOTIF_SEQ_NO_EN1.ok = true; }
241                            }
242                        }
243                    }
244                }
245            }
246        }
247    }
248    var nd7_NOTIF_SEQ_NO_EN1Req = nd7_NOTIF_SEQ_NO_EN1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd7_NOTIF_SEQ_NO_EN1.seq)) : "";
249    // 步骤 7:SEQ02-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
250    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
251    var sdCla7 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
252    // runtime-bound payload: NOTIF_SEQ_NO_EN1 stays in execution domain
253    var s7 = bind.sendApdu(sdCla7, "E2", "91", "00", nd7_NOTIF_SEQ_NO_EN1Req, "00", "9000");
254    bind.checkData("S7-C1 SW", "9000", s7.sw);
255    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_EN1", s7.cmd, profileAidSession);
256    var ns7W = BindEs10xSingleRequest.parseBerTlv(s7.resp);
257    var ns7Ok0 = ns7W.length === 1 && ns7W[0].tag === "BF30";
258    var ns7In = ns7Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns7W[0].value) : [];
259    var ns7Code = (ns7In.length === 1 && ns7In[0].tag === "80") ? ns7In[0].value : "absent";
260    bind.checkData("S7-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns7Code);
261
262    // 步骤 8:SEQ02-2] MTD_STORE_DATA(tc_step)
263    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
264    var sdCla8 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
265    var s8 = bind.sendApdu(sdCla8, "E2", "91", "00", "BF2804810204F0", "00", "9000");
266    bind.checkData("S8-C1 SW", "9000", s8.sw);
267    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
268    var lw8T = BindEs10xSingleRequest.parseBerTlv(s8.resp);
269    var lw8Ok0 = lw8T.length === 1 && lw8T[0].tag === "BF28";
270    var lw8_br = lw8Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw8T[0].value) : [];
271    var lw8_brtag = lw8_br.length === 1 ? lw8_br[0].tag : "";
272    var lw8_els = lw8_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw8_br[0].value) : [];
273    bind.checkData("S8-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw8_brtag === "A0" && lw8_els.length === 0) ? "1" : "0");
274
275    // 步骤 9:SEQ03-IC6] MTD_STORE_DATA(tc_step)
276    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
277    var sdCla9 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
278    var s9 = bind.sendApdu(sdCla9, "E2", "91", "00", "BF2804810204F0", "00", "9000");
279    bind.checkData("S9-C1 SW", "9000", s9.sw);
280    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
281    var lw9T = BindEs10xSingleRequest.parseBerTlv(s9.resp);
282    var lw9Ok0 = lw9T.length === 1 && lw9T[0].tag === "BF28";
283    var lw9_br = lw9Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw9T[0].value) : [];
284    var lw9_brtag = lw9_br.length === 1 ? lw9_br[0].tag : "";
285    var lw9_els = lw9_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw9_br[0].value) : [];
286    bind.checkData("S9-C2 响应结构匹配 #R_LIST_NOTIF_DI1:ListNotificationResponse notificati branch/count", "1", (lw9_brtag === "A0" && lw9_els.length === 1) ? "1" : "0");
287
288    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_DI1 ← 步 9 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=20 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
289    var nd10_NOTIF_SEQ_NO_DI1 = {ok: false, seq: ""};
290    var nd10_NOTIF_SEQ_NO_DI1T = BindEs10xSingleRequest.parseBerTlv(s9.resp);
291    if (nd10_NOTIF_SEQ_NO_DI1T.length === 1 && nd10_NOTIF_SEQ_NO_DI1T[0].tag === "BF28") {
292        var nd10_NOTIF_SEQ_NO_DI1X1 = BindEs10xSingleRequest.parseBerTlv(nd10_NOTIF_SEQ_NO_DI1T[0].value);
293        if (nd10_NOTIF_SEQ_NO_DI1X1.length === 1 && nd10_NOTIF_SEQ_NO_DI1X1[0].tag === "A0") {
294            var nd10_NOTIF_SEQ_NO_DI1X2 = BindEs10xSingleRequest.parseBerTlv(nd10_NOTIF_SEQ_NO_DI1X1[0].value);
295            var nd10_NOTIF_SEQ_NO_DI1XHIT = 0;
296            for (var nd10_NOTIF_SEQ_NO_DI1XI = 0; nd10_NOTIF_SEQ_NO_DI1XI < nd10_NOTIF_SEQ_NO_DI1X2.length; nd10_NOTIF_SEQ_NO_DI1XI++) {
297                if (nd10_NOTIF_SEQ_NO_DI1X2[nd10_NOTIF_SEQ_NO_DI1XI].tag !== "BF2F") { continue; }
298                var nd10_NOTIF_SEQ_NO_DI1XM = BindEs10xSingleRequest.parseBerTlv(nd10_NOTIF_SEQ_NO_DI1X2[nd10_NOTIF_SEQ_NO_DI1XI].value);
299                for (var nd10_NOTIF_SEQ_NO_DI1XJ = 0; nd10_NOTIF_SEQ_NO_DI1XJ < nd10_NOTIF_SEQ_NO_DI1XM.length; nd10_NOTIF_SEQ_NO_DI1XJ++) {
300                    if (nd10_NOTIF_SEQ_NO_DI1XM[nd10_NOTIF_SEQ_NO_DI1XJ].tag === "81" && nd10_NOTIF_SEQ_NO_DI1XM[nd10_NOTIF_SEQ_NO_DI1XJ].value === "20") {
301                        nd10_NOTIF_SEQ_NO_DI1XHIT += 1;
302                        if (nd10_NOTIF_SEQ_NO_DI1XHIT === 1) {
303                            for (var nd10_NOTIF_SEQ_NO_DI1XK = 0; nd10_NOTIF_SEQ_NO_DI1XK < nd10_NOTIF_SEQ_NO_DI1XM.length; nd10_NOTIF_SEQ_NO_DI1XK++) {
304                                if (nd10_NOTIF_SEQ_NO_DI1XM[nd10_NOTIF_SEQ_NO_DI1XK].tag === "80") { nd10_NOTIF_SEQ_NO_DI1.seq = nd10_NOTIF_SEQ_NO_DI1XM[nd10_NOTIF_SEQ_NO_DI1XK].value; nd10_NOTIF_SEQ_NO_DI1.ok = true; }
305                            }
306                        }
307                    }
308                }
309            }
310        }
311    }
312    var nd10_NOTIF_SEQ_NO_DI1Req = nd10_NOTIF_SEQ_NO_DI1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd10_NOTIF_SEQ_NO_DI1.seq)) : "";
313    // 步骤 10:SEQ03-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
314    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
315    var sdCla10 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
316    // runtime-bound payload: NOTIF_SEQ_NO_DI1 stays in execution domain
317    var s10 = bind.sendApdu(sdCla10, "E2", "91", "00", nd10_NOTIF_SEQ_NO_DI1Req, "00", "9000");
318    bind.checkData("S10-C1 SW", "9000", s10.sw);
319    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_DI1", s10.cmd, profileAidSession);
320    var ns10W = BindEs10xSingleRequest.parseBerTlv(s10.resp);
321    var ns10Ok0 = ns10W.length === 1 && ns10W[0].tag === "BF30";
322    var ns10In = ns10Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns10W[0].value) : [];
323    var ns10Code = (ns10In.length === 1 && ns10In[0].tag === "80") ? ns10In[0].value : "absent";
324    bind.checkData("S10-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns10Code);
325
326    // 步骤 11:SEQ03-2] MTD_STORE_DATA(tc_step)
327    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
328    var sdCla11 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
329    var s11 = bind.sendApdu(sdCla11, "E2", "91", "00", "BF2804810204F0", "00", "9000");
330    bind.checkData("S11-C1 SW", "9000", s11.sw);
331    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
332    var lw11T = BindEs10xSingleRequest.parseBerTlv(s11.resp);
333    var lw11Ok0 = lw11T.length === 1 && lw11T[0].tag === "BF28";
334    var lw11_br = lw11Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw11T[0].value) : [];
335    var lw11_brtag = lw11_br.length === 1 ? lw11_br[0].tag : "";
336    var lw11_els = lw11_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw11_br[0].value) : [];
337    bind.checkData("S11-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw11_brtag === "A0" && lw11_els.length === 0) ? "1" : "0");
338
339    // 步骤 12:SEQ04-IC7] MTD_STORE_DATA(tc_step)
340    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
341    var sdCla12 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
342    var s12 = bind.sendApdu(sdCla12, "E2", "91", "00", "BF2804810204F0", "00", "9000");
343    bind.checkData("S12-C1 SW", "9000", s12.sw);
344    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
345    var lw12T = BindEs10xSingleRequest.parseBerTlv(s12.resp);
346    var lw12Ok0 = lw12T.length === 1 && lw12T[0].tag === "BF28";
347    var lw12_br = lw12Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw12T[0].value) : [];
348    var lw12_brtag = lw12_br.length === 1 ? lw12_br[0].tag : "";
349    var lw12_els = lw12_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw12_br[0].value) : [];
350    bind.checkData("S12-C2 响应结构匹配 #R_LIST_NOTIF_DE1:ListNotificationResponse notificati branch/count", "1", (lw12_brtag === "A0" && lw12_els.length === 1) ? "1" : "0");
351
352    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_DE1 ← 步 12 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=10 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
353    var nd13_NOTIF_SEQ_NO_DE1 = {ok: false, seq: ""};
354    var nd13_NOTIF_SEQ_NO_DE1T = BindEs10xSingleRequest.parseBerTlv(s12.resp);
355    if (nd13_NOTIF_SEQ_NO_DE1T.length === 1 && nd13_NOTIF_SEQ_NO_DE1T[0].tag === "BF28") {
356        var nd13_NOTIF_SEQ_NO_DE1X1 = BindEs10xSingleRequest.parseBerTlv(nd13_NOTIF_SEQ_NO_DE1T[0].value);
357        if (nd13_NOTIF_SEQ_NO_DE1X1.length === 1 && nd13_NOTIF_SEQ_NO_DE1X1[0].tag === "A0") {
358            var nd13_NOTIF_SEQ_NO_DE1X2 = BindEs10xSingleRequest.parseBerTlv(nd13_NOTIF_SEQ_NO_DE1X1[0].value);
359            var nd13_NOTIF_SEQ_NO_DE1XHIT = 0;
360            for (var nd13_NOTIF_SEQ_NO_DE1XI = 0; nd13_NOTIF_SEQ_NO_DE1XI < nd13_NOTIF_SEQ_NO_DE1X2.length; nd13_NOTIF_SEQ_NO_DE1XI++) {
361                if (nd13_NOTIF_SEQ_NO_DE1X2[nd13_NOTIF_SEQ_NO_DE1XI].tag !== "BF2F") { continue; }
362                var nd13_NOTIF_SEQ_NO_DE1XM = BindEs10xSingleRequest.parseBerTlv(nd13_NOTIF_SEQ_NO_DE1X2[nd13_NOTIF_SEQ_NO_DE1XI].value);
363                for (var nd13_NOTIF_SEQ_NO_DE1XJ = 0; nd13_NOTIF_SEQ_NO_DE1XJ < nd13_NOTIF_SEQ_NO_DE1XM.length; nd13_NOTIF_SEQ_NO_DE1XJ++) {
364                    if (nd13_NOTIF_SEQ_NO_DE1XM[nd13_NOTIF_SEQ_NO_DE1XJ].tag === "81" && nd13_NOTIF_SEQ_NO_DE1XM[nd13_NOTIF_SEQ_NO_DE1XJ].value === "10") {
365                        nd13_NOTIF_SEQ_NO_DE1XHIT += 1;
366                        if (nd13_NOTIF_SEQ_NO_DE1XHIT === 1) {
367                            for (var nd13_NOTIF_SEQ_NO_DE1XK = 0; nd13_NOTIF_SEQ_NO_DE1XK < nd13_NOTIF_SEQ_NO_DE1XM.length; nd13_NOTIF_SEQ_NO_DE1XK++) {
368                                if (nd13_NOTIF_SEQ_NO_DE1XM[nd13_NOTIF_SEQ_NO_DE1XK].tag === "80") { nd13_NOTIF_SEQ_NO_DE1.seq = nd13_NOTIF_SEQ_NO_DE1XM[nd13_NOTIF_SEQ_NO_DE1XK].value; nd13_NOTIF_SEQ_NO_DE1.ok = true; }
369                            }
370                        }
371                    }
372                }
373            }
374        }
375    }
376    var nd13_NOTIF_SEQ_NO_DE1Req = nd13_NOTIF_SEQ_NO_DE1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd13_NOTIF_SEQ_NO_DE1.seq)) : "";
377    // 步骤 13:SEQ04-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
378    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
379    var sdCla13 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
380    // runtime-bound payload: NOTIF_SEQ_NO_DE1 stays in execution domain
381    var s13 = bind.sendApdu(sdCla13, "E2", "91", "00", nd13_NOTIF_SEQ_NO_DE1Req, "00", "9000");
382    bind.checkData("S13-C1 SW", "9000", s13.sw);
383    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_DE1", s13.cmd, profileAidSession);
384    var ns13W = BindEs10xSingleRequest.parseBerTlv(s13.resp);
385    var ns13Ok0 = ns13W.length === 1 && ns13W[0].tag === "BF30";
386    var ns13In = ns13Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns13W[0].value) : [];
387    var ns13Code = (ns13In.length === 1 && ns13In[0].tag === "80") ? ns13In[0].value : "absent";
388    bind.checkData("S13-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns13Code);
389
390    // 步骤 14:SEQ04-2] MTD_STORE_DATA(tc_step)
391    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
392    var sdCla14 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
393    var s14 = bind.sendApdu(sdCla14, "E2", "91", "00", "BF2804810204F0", "00", "9000");
394    bind.checkData("S14-C1 SW", "9000", s14.sw);
395    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
396    var lw14T = BindEs10xSingleRequest.parseBerTlv(s14.resp);
397    var lw14Ok0 = lw14T.length === 1 && lw14T[0].tag === "BF28";
398    var lw14_br = lw14Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw14T[0].value) : [];
399    var lw14_brtag = lw14_br.length === 1 ? lw14_br[0].tag : "";
400    var lw14_els = lw14_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw14_br[0].value) : [];
401    bind.checkData("S14-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw14_brtag === "A0" && lw14_els.length === 0) ? "1" : "0");
402
403    // 步骤 15:SEQ05-IC5] MTD_STORE_DATA(tc_step)
404    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
405    var sdCla15 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
406    var s15 = bind.sendApdu(sdCla15, "E2", "91", "00", "BF2804810204F0", "00", "9000");
407    bind.checkData("S15-C1 SW", "9000", s15.sw);
408    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
409    var lw15T = BindEs10xSingleRequest.parseBerTlv(s15.resp);
410    var lw15Ok0 = lw15T.length === 1 && lw15T[0].tag === "BF28";
411    var lw15_br = lw15Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw15T[0].value) : [];
412    var lw15_brtag = lw15_br.length === 1 ? lw15_br[0].tag : "";
413    var lw15_els = lw15_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw15_br[0].value) : [];
414    bind.checkData("S15-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR_IN2_PIR:ListNotificationRespons branch/count", "1", (lw15_brtag === "A0" && lw15_els.length === 2) ? "1" : "0");
415
416    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1_PIR ← 步 15 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
417    var nd16_NOTIF_SEQ_NO_IN1_PIR = {ok: false, seq: ""};
418    var nd16_NOTIF_SEQ_NO_IN1_PIRT = BindEs10xSingleRequest.parseBerTlv(s15.resp);
419    if (nd16_NOTIF_SEQ_NO_IN1_PIRT.length === 1 && nd16_NOTIF_SEQ_NO_IN1_PIRT[0].tag === "BF28") {
420        var nd16_NOTIF_SEQ_NO_IN1_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd16_NOTIF_SEQ_NO_IN1_PIRT[0].value);
421        if (nd16_NOTIF_SEQ_NO_IN1_PIRX1.length === 1 && nd16_NOTIF_SEQ_NO_IN1_PIRX1[0].tag === "A0") {
422            var nd16_NOTIF_SEQ_NO_IN1_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd16_NOTIF_SEQ_NO_IN1_PIRX1[0].value);
423            var nd16_NOTIF_SEQ_NO_IN1_PIRXHIT = 0;
424            for (var nd16_NOTIF_SEQ_NO_IN1_PIRXI = 0; nd16_NOTIF_SEQ_NO_IN1_PIRXI < nd16_NOTIF_SEQ_NO_IN1_PIRX2.length; nd16_NOTIF_SEQ_NO_IN1_PIRXI++) {
425                if (nd16_NOTIF_SEQ_NO_IN1_PIRX2[nd16_NOTIF_SEQ_NO_IN1_PIRXI].tag !== "BF2F") { continue; }
426                var nd16_NOTIF_SEQ_NO_IN1_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd16_NOTIF_SEQ_NO_IN1_PIRX2[nd16_NOTIF_SEQ_NO_IN1_PIRXI].value);
427                for (var nd16_NOTIF_SEQ_NO_IN1_PIRXJ = 0; nd16_NOTIF_SEQ_NO_IN1_PIRXJ < nd16_NOTIF_SEQ_NO_IN1_PIRXM.length; nd16_NOTIF_SEQ_NO_IN1_PIRXJ++) {
428                    if (nd16_NOTIF_SEQ_NO_IN1_PIRXM[nd16_NOTIF_SEQ_NO_IN1_PIRXJ].tag === "81" && nd16_NOTIF_SEQ_NO_IN1_PIRXM[nd16_NOTIF_SEQ_NO_IN1_PIRXJ].value === "80") {
429                        nd16_NOTIF_SEQ_NO_IN1_PIRXHIT += 1;
430                        if (nd16_NOTIF_SEQ_NO_IN1_PIRXHIT === 2) {
431                            for (var nd16_NOTIF_SEQ_NO_IN1_PIRXK = 0; nd16_NOTIF_SEQ_NO_IN1_PIRXK < nd16_NOTIF_SEQ_NO_IN1_PIRXM.length; nd16_NOTIF_SEQ_NO_IN1_PIRXK++) {
432                                if (nd16_NOTIF_SEQ_NO_IN1_PIRXM[nd16_NOTIF_SEQ_NO_IN1_PIRXK].tag === "80") { nd16_NOTIF_SEQ_NO_IN1_PIR.seq = nd16_NOTIF_SEQ_NO_IN1_PIRXM[nd16_NOTIF_SEQ_NO_IN1_PIRXK].value; nd16_NOTIF_SEQ_NO_IN1_PIR.ok = true; }
433                            }
434                        }
435                    }
436                }
437            }
438        }
439    }
440    var nd16_NOTIF_SEQ_NO_IN1_PIRReq = nd16_NOTIF_SEQ_NO_IN1_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd16_NOTIF_SEQ_NO_IN1_PIR.seq)) : "";
441    // 步骤 16:SEQ05-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079, RQ31_182)
442    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
443    var sdCla16 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
444    // runtime-bound payload: NOTIF_SEQ_NO_IN1_PIR stays in execution domain
445    var s16 = bind.sendApdu(sdCla16, "E2", "91", "00", nd16_NOTIF_SEQ_NO_IN1_PIRReq, "00", "9000");
446    bind.checkData("S16-C1 SW", "9000", s16.sw);
447    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1_PIR", s16.cmd, profileAidSession);
448    var ns16W = BindEs10xSingleRequest.parseBerTlv(s16.resp);
449    var ns16Ok0 = ns16W.length === 1 && ns16W[0].tag === "BF30";
450    var ns16In = ns16Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns16W[0].value) : [];
451    var ns16Code = (ns16In.length === 1 && ns16In[0].tag === "80") ? ns16In[0].value : "absent";
452    bind.checkData("S16-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns16Code);
453
454    // 步骤 17:SEQ05-2] MTD_STORE_DATA(tc_step;REQ: RQ25_020, RQ31_182)
455    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
456    var sdCla17 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
457    var s17 = bind.sendApdu(sdCla17, "E2", "91", "00", "BF2804810204F0", "00", "9000");
458    bind.checkData("S17-C1 SW", "9000", s17.sw);
459    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
460    var lw17T = BindEs10xSingleRequest.parseBerTlv(s17.resp);
461    var lw17Ok0 = lw17T.length === 1 && lw17T[0].tag === "BF28";
462    var lw17_br = lw17Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw17T[0].value) : [];
463    var lw17_brtag = lw17_br.length === 1 ? lw17_br[0].tag : "";
464    var lw17_els = lw17_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw17_br[0].value) : [];
465    bind.checkData("S17-C2 响应结构匹配 #R_LIST_NOTIF_IN2_PIR:ListNotificationResponse notifi branch/count", "1", (lw17_brtag === "A0" && lw17_els.length === 1) ? "1" : "0");
466
467    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN2_PIR ← 步 15 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
468    var nd18_NOTIF_SEQ_NO_IN2_PIR = {ok: false, seq: ""};
469    var nd18_NOTIF_SEQ_NO_IN2_PIRT = BindEs10xSingleRequest.parseBerTlv(s15.resp);
470    if (nd18_NOTIF_SEQ_NO_IN2_PIRT.length === 1 && nd18_NOTIF_SEQ_NO_IN2_PIRT[0].tag === "BF28") {
471        var nd18_NOTIF_SEQ_NO_IN2_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd18_NOTIF_SEQ_NO_IN2_PIRT[0].value);
472        if (nd18_NOTIF_SEQ_NO_IN2_PIRX1.length === 1 && nd18_NOTIF_SEQ_NO_IN2_PIRX1[0].tag === "A0") {
473            var nd18_NOTIF_SEQ_NO_IN2_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd18_NOTIF_SEQ_NO_IN2_PIRX1[0].value);
474            var nd18_NOTIF_SEQ_NO_IN2_PIRXHIT = 0;
475            for (var nd18_NOTIF_SEQ_NO_IN2_PIRXI = 0; nd18_NOTIF_SEQ_NO_IN2_PIRXI < nd18_NOTIF_SEQ_NO_IN2_PIRX2.length; nd18_NOTIF_SEQ_NO_IN2_PIRXI++) {
476                if (nd18_NOTIF_SEQ_NO_IN2_PIRX2[nd18_NOTIF_SEQ_NO_IN2_PIRXI].tag !== "BF2F") { continue; }
477                var nd18_NOTIF_SEQ_NO_IN2_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd18_NOTIF_SEQ_NO_IN2_PIRX2[nd18_NOTIF_SEQ_NO_IN2_PIRXI].value);
478                for (var nd18_NOTIF_SEQ_NO_IN2_PIRXJ = 0; nd18_NOTIF_SEQ_NO_IN2_PIRXJ < nd18_NOTIF_SEQ_NO_IN2_PIRXM.length; nd18_NOTIF_SEQ_NO_IN2_PIRXJ++) {
479                    if (nd18_NOTIF_SEQ_NO_IN2_PIRXM[nd18_NOTIF_SEQ_NO_IN2_PIRXJ].tag === "81" && nd18_NOTIF_SEQ_NO_IN2_PIRXM[nd18_NOTIF_SEQ_NO_IN2_PIRXJ].value === "80") {
480                        nd18_NOTIF_SEQ_NO_IN2_PIRXHIT += 1;
481                        if (nd18_NOTIF_SEQ_NO_IN2_PIRXHIT === 2) {
482                            for (var nd18_NOTIF_SEQ_NO_IN2_PIRXK = 0; nd18_NOTIF_SEQ_NO_IN2_PIRXK < nd18_NOTIF_SEQ_NO_IN2_PIRXM.length; nd18_NOTIF_SEQ_NO_IN2_PIRXK++) {
483                                if (nd18_NOTIF_SEQ_NO_IN2_PIRXM[nd18_NOTIF_SEQ_NO_IN2_PIRXK].tag === "80") { nd18_NOTIF_SEQ_NO_IN2_PIR.seq = nd18_NOTIF_SEQ_NO_IN2_PIRXM[nd18_NOTIF_SEQ_NO_IN2_PIRXK].value; nd18_NOTIF_SEQ_NO_IN2_PIR.ok = true; }
484                            }
485                        }
486                    }
487                }
488            }
489        }
490    }
491    var nd18_NOTIF_SEQ_NO_IN2_PIRReq = nd18_NOTIF_SEQ_NO_IN2_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd18_NOTIF_SEQ_NO_IN2_PIR.seq)) : "";
492    // 步骤 18:SEQ05-3] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079, RQ31_182)
493    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
494    var sdCla18 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
495    // runtime-bound payload: NOTIF_SEQ_NO_IN2_PIR stays in execution domain
496    var s18 = bind.sendApdu(sdCla18, "E2", "91", "00", nd18_NOTIF_SEQ_NO_IN2_PIRReq, "00", "9000");
497    bind.checkData("S18-C1 SW", "9000", s18.sw);
498    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN2_PIR", s18.cmd, profileAidSession);
499    var ns18W = BindEs10xSingleRequest.parseBerTlv(s18.resp);
500    var ns18Ok0 = ns18W.length === 1 && ns18W[0].tag === "BF30";
501    var ns18In = ns18Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns18W[0].value) : [];
502    var ns18Code = (ns18In.length === 1 && ns18In[0].tag === "80") ? ns18In[0].value : "absent";
503    bind.checkData("S18-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns18Code);
504
505    // 步骤 19:SEQ05-4] MTD_STORE_DATA(tc_step;REQ: RQ25_020, RQ31_182)
506    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
507    var sdCla19 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
508    var s19 = bind.sendApdu(sdCla19, "E2", "91", "00", "BF2804810204F0", "00", "9000");
509    bind.checkData("S19-C1 SW", "9000", s19.sw);
510    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
511    var lw19T = BindEs10xSingleRequest.parseBerTlv(s19.resp);
512    var lw19Ok0 = lw19T.length === 1 && lw19T[0].tag === "BF28";
513    var lw19_br = lw19Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw19T[0].value) : [];
514    var lw19_brtag = lw19_br.length === 1 ? lw19_br[0].tag : "";
515    var lw19_els = lw19_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw19_br[0].value) : [];
516    bind.checkData("S19-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw19_brtag === "A0" && lw19_els.length === 0) ? "1" : "0");
517
518    // 步骤 20:SEQ06-IC5] MTD_STORE_DATA(tc_step)
519    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
520    var sdCla20 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
521    var s20 = bind.sendApdu(sdCla20, "E2", "91", "00", "BF2804810204F0", "00", "9000");
522    bind.checkData("S20-C1 SW", "9000", s20.sw);
523    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
524    var lw20T = BindEs10xSingleRequest.parseBerTlv(s20.resp);
525    var lw20Ok0 = lw20T.length === 1 && lw20T[0].tag === "BF28";
526    var lw20_br = lw20Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw20T[0].value) : [];
527    var lw20_brtag = lw20_br.length === 1 ? lw20_br[0].tag : "";
528    var lw20_els = lw20_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw20_br[0].value) : [];
529    bind.checkData("S20-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR_EN1:ListNotificationResponse no branch/count", "1", (lw20_brtag === "A0" && lw20_els.length === 2) ? "1" : "0");
530
531    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1_PIR ← 步 20 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
532    var nd21_NOTIF_SEQ_NO_IN1_PIR = {ok: false, seq: ""};
533    var nd21_NOTIF_SEQ_NO_IN1_PIRT = BindEs10xSingleRequest.parseBerTlv(s20.resp);
534    if (nd21_NOTIF_SEQ_NO_IN1_PIRT.length === 1 && nd21_NOTIF_SEQ_NO_IN1_PIRT[0].tag === "BF28") {
535        var nd21_NOTIF_SEQ_NO_IN1_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd21_NOTIF_SEQ_NO_IN1_PIRT[0].value);
536        if (nd21_NOTIF_SEQ_NO_IN1_PIRX1.length === 1 && nd21_NOTIF_SEQ_NO_IN1_PIRX1[0].tag === "A0") {
537            var nd21_NOTIF_SEQ_NO_IN1_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd21_NOTIF_SEQ_NO_IN1_PIRX1[0].value);
538            var nd21_NOTIF_SEQ_NO_IN1_PIRXHIT = 0;
539            for (var nd21_NOTIF_SEQ_NO_IN1_PIRXI = 0; nd21_NOTIF_SEQ_NO_IN1_PIRXI < nd21_NOTIF_SEQ_NO_IN1_PIRX2.length; nd21_NOTIF_SEQ_NO_IN1_PIRXI++) {
540                if (nd21_NOTIF_SEQ_NO_IN1_PIRX2[nd21_NOTIF_SEQ_NO_IN1_PIRXI].tag !== "BF2F") { continue; }
541                var nd21_NOTIF_SEQ_NO_IN1_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd21_NOTIF_SEQ_NO_IN1_PIRX2[nd21_NOTIF_SEQ_NO_IN1_PIRXI].value);
542                for (var nd21_NOTIF_SEQ_NO_IN1_PIRXJ = 0; nd21_NOTIF_SEQ_NO_IN1_PIRXJ < nd21_NOTIF_SEQ_NO_IN1_PIRXM.length; nd21_NOTIF_SEQ_NO_IN1_PIRXJ++) {
543                    if (nd21_NOTIF_SEQ_NO_IN1_PIRXM[nd21_NOTIF_SEQ_NO_IN1_PIRXJ].tag === "81" && nd21_NOTIF_SEQ_NO_IN1_PIRXM[nd21_NOTIF_SEQ_NO_IN1_PIRXJ].value === "80") {
544                        nd21_NOTIF_SEQ_NO_IN1_PIRXHIT += 1;
545                        if (nd21_NOTIF_SEQ_NO_IN1_PIRXHIT === 2) {
546                            for (var nd21_NOTIF_SEQ_NO_IN1_PIRXK = 0; nd21_NOTIF_SEQ_NO_IN1_PIRXK < nd21_NOTIF_SEQ_NO_IN1_PIRXM.length; nd21_NOTIF_SEQ_NO_IN1_PIRXK++) {
547                                if (nd21_NOTIF_SEQ_NO_IN1_PIRXM[nd21_NOTIF_SEQ_NO_IN1_PIRXK].tag === "80") { nd21_NOTIF_SEQ_NO_IN1_PIR.seq = nd21_NOTIF_SEQ_NO_IN1_PIRXM[nd21_NOTIF_SEQ_NO_IN1_PIRXK].value; nd21_NOTIF_SEQ_NO_IN1_PIR.ok = true; }
548                            }
549                        }
550                    }
551                }
552            }
553        }
554    }
555    var nd21_NOTIF_SEQ_NO_IN1_PIRReq = nd21_NOTIF_SEQ_NO_IN1_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd21_NOTIF_SEQ_NO_IN1_PIR.seq)) : "";
556    // 步骤 21:SEQ06-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079, RQ31_182)
557    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
558    var sdCla21 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
559    // runtime-bound payload: NOTIF_SEQ_NO_IN1_PIR stays in execution domain
560    var s21 = bind.sendApdu(sdCla21, "E2", "91", "00", nd21_NOTIF_SEQ_NO_IN1_PIRReq, "00", "9000");
561    bind.checkData("S21-C1 SW", "9000", s21.sw);
562    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1_PIR", s21.cmd, profileAidSession);
563    var ns21W = BindEs10xSingleRequest.parseBerTlv(s21.resp);
564    var ns21Ok0 = ns21W.length === 1 && ns21W[0].tag === "BF30";
565    var ns21In = ns21Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns21W[0].value) : [];
566    var ns21Code = (ns21In.length === 1 && ns21In[0].tag === "80") ? ns21In[0].value : "absent";
567    bind.checkData("S21-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns21Code);
568
569    // 步骤 22:SEQ06-2] MTD_STORE_DATA(tc_step;REQ: RQ25_020, RQ31_182)
570    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
571    var sdCla22 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
572    var s22 = bind.sendApdu(sdCla22, "E2", "91", "00", "BF2804810204F0", "00", "9000");
573    bind.checkData("S22-C1 SW", "9000", s22.sw);
574    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
575    var lw22T = BindEs10xSingleRequest.parseBerTlv(s22.resp);
576    var lw22Ok0 = lw22T.length === 1 && lw22T[0].tag === "BF28";
577    var lw22_br = lw22Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw22T[0].value) : [];
578    var lw22_brtag = lw22_br.length === 1 ? lw22_br[0].tag : "";
579    var lw22_els = lw22_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw22_br[0].value) : [];
580    bind.checkData("S22-C2 响应结构匹配 #R_LIST_NOTIF_EN1:ListNotificationResponse notificati branch/count", "1", (lw22_brtag === "A0" && lw22_els.length === 1) ? "1" : "0");
581
582    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_EN1 ← 步 20 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=40 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
583    var nd23_NOTIF_SEQ_NO_EN1 = {ok: false, seq: ""};
584    var nd23_NOTIF_SEQ_NO_EN1T = BindEs10xSingleRequest.parseBerTlv(s20.resp);
585    if (nd23_NOTIF_SEQ_NO_EN1T.length === 1 && nd23_NOTIF_SEQ_NO_EN1T[0].tag === "BF28") {
586        var nd23_NOTIF_SEQ_NO_EN1X1 = BindEs10xSingleRequest.parseBerTlv(nd23_NOTIF_SEQ_NO_EN1T[0].value);
587        if (nd23_NOTIF_SEQ_NO_EN1X1.length === 1 && nd23_NOTIF_SEQ_NO_EN1X1[0].tag === "A0") {
588            var nd23_NOTIF_SEQ_NO_EN1X2 = BindEs10xSingleRequest.parseBerTlv(nd23_NOTIF_SEQ_NO_EN1X1[0].value);
589            var nd23_NOTIF_SEQ_NO_EN1XHIT = 0;
590            for (var nd23_NOTIF_SEQ_NO_EN1XI = 0; nd23_NOTIF_SEQ_NO_EN1XI < nd23_NOTIF_SEQ_NO_EN1X2.length; nd23_NOTIF_SEQ_NO_EN1XI++) {
591                if (nd23_NOTIF_SEQ_NO_EN1X2[nd23_NOTIF_SEQ_NO_EN1XI].tag !== "BF2F") { continue; }
592                var nd23_NOTIF_SEQ_NO_EN1XM = BindEs10xSingleRequest.parseBerTlv(nd23_NOTIF_SEQ_NO_EN1X2[nd23_NOTIF_SEQ_NO_EN1XI].value);
593                for (var nd23_NOTIF_SEQ_NO_EN1XJ = 0; nd23_NOTIF_SEQ_NO_EN1XJ < nd23_NOTIF_SEQ_NO_EN1XM.length; nd23_NOTIF_SEQ_NO_EN1XJ++) {
594                    if (nd23_NOTIF_SEQ_NO_EN1XM[nd23_NOTIF_SEQ_NO_EN1XJ].tag === "81" && nd23_NOTIF_SEQ_NO_EN1XM[nd23_NOTIF_SEQ_NO_EN1XJ].value === "40") {
595                        nd23_NOTIF_SEQ_NO_EN1XHIT += 1;
596                        if (nd23_NOTIF_SEQ_NO_EN1XHIT === 1) {
597                            for (var nd23_NOTIF_SEQ_NO_EN1XK = 0; nd23_NOTIF_SEQ_NO_EN1XK < nd23_NOTIF_SEQ_NO_EN1XM.length; nd23_NOTIF_SEQ_NO_EN1XK++) {
598                                if (nd23_NOTIF_SEQ_NO_EN1XM[nd23_NOTIF_SEQ_NO_EN1XK].tag === "80") { nd23_NOTIF_SEQ_NO_EN1.seq = nd23_NOTIF_SEQ_NO_EN1XM[nd23_NOTIF_SEQ_NO_EN1XK].value; nd23_NOTIF_SEQ_NO_EN1.ok = true; }
599                            }
600                        }
601                    }
602                }
603            }
604        }
605    }
606    var nd23_NOTIF_SEQ_NO_EN1Req = nd23_NOTIF_SEQ_NO_EN1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd23_NOTIF_SEQ_NO_EN1.seq)) : "";
607    // 步骤 23:SEQ06-3] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
608    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
609    var sdCla23 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
610    // runtime-bound payload: NOTIF_SEQ_NO_EN1 stays in execution domain
611    var s23 = bind.sendApdu(sdCla23, "E2", "91", "00", nd23_NOTIF_SEQ_NO_EN1Req, "00", "9000");
612    bind.checkData("S23-C1 SW", "9000", s23.sw);
613    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_EN1", s23.cmd, profileAidSession);
614    var ns23W = BindEs10xSingleRequest.parseBerTlv(s23.resp);
615    var ns23Ok0 = ns23W.length === 1 && ns23W[0].tag === "BF30";
616    var ns23In = ns23Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns23W[0].value) : [];
617    var ns23Code = (ns23In.length === 1 && ns23In[0].tag === "80") ? ns23In[0].value : "absent";
618    bind.checkData("S23-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns23Code);
619
620    // 步骤 24:SEQ06-4] MTD_STORE_DATA(tc_step)
621    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
622    var sdCla24 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
623    var s24 = bind.sendApdu(sdCla24, "E2", "91", "00", "BF2804810204F0", "00", "9000");
624    bind.checkData("S24-C1 SW", "9000", s24.sw);
625    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
626    var lw24T = BindEs10xSingleRequest.parseBerTlv(s24.resp);
627    var lw24Ok0 = lw24T.length === 1 && lw24T[0].tag === "BF28";
628    var lw24_br = lw24Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw24T[0].value) : [];
629    var lw24_brtag = lw24_br.length === 1 ? lw24_br[0].tag : "";
630    var lw24_els = lw24_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw24_br[0].value) : [];
631    bind.checkData("S24-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw24_brtag === "A0" && lw24_els.length === 0) ? "1" : "0");
632
633    // 步骤 25:SEQ07-IC7] MTD_STORE_DATA(tc_step)
634    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
635    var sdCla25 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
636    var s25 = bind.sendApdu(sdCla25, "E2", "91", "00", "BF2804810204F0", "00", "9000");
637    bind.checkData("S25-C1 SW", "9000", s25.sw);
638    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
639    var lw25T = BindEs10xSingleRequest.parseBerTlv(s25.resp);
640    var lw25Ok0 = lw25T.length === 1 && lw25T[0].tag === "BF28";
641    var lw25_br = lw25Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw25T[0].value) : [];
642    var lw25_brtag = lw25_br.length === 1 ? lw25_br[0].tag : "";
643    var lw25_els = lw25_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw25_br[0].value) : [];
644    bind.checkData("S25-C2 响应结构匹配 #R_LIST_NOTIF_DI1_DE1:ListNotificationResponse notifi branch/count", "1", (lw25_brtag === "A0" && lw25_els.length === 2) ? "1" : "0");
645
646    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_DI1 ← 步 25 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=20 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
647    var nd26_NOTIF_SEQ_NO_DI1 = {ok: false, seq: ""};
648    var nd26_NOTIF_SEQ_NO_DI1T = BindEs10xSingleRequest.parseBerTlv(s25.resp);
649    if (nd26_NOTIF_SEQ_NO_DI1T.length === 1 && nd26_NOTIF_SEQ_NO_DI1T[0].tag === "BF28") {
650        var nd26_NOTIF_SEQ_NO_DI1X1 = BindEs10xSingleRequest.parseBerTlv(nd26_NOTIF_SEQ_NO_DI1T[0].value);
651        if (nd26_NOTIF_SEQ_NO_DI1X1.length === 1 && nd26_NOTIF_SEQ_NO_DI1X1[0].tag === "A0") {
652            var nd26_NOTIF_SEQ_NO_DI1X2 = BindEs10xSingleRequest.parseBerTlv(nd26_NOTIF_SEQ_NO_DI1X1[0].value);
653            var nd26_NOTIF_SEQ_NO_DI1XHIT = 0;
654            for (var nd26_NOTIF_SEQ_NO_DI1XI = 0; nd26_NOTIF_SEQ_NO_DI1XI < nd26_NOTIF_SEQ_NO_DI1X2.length; nd26_NOTIF_SEQ_NO_DI1XI++) {
655                if (nd26_NOTIF_SEQ_NO_DI1X2[nd26_NOTIF_SEQ_NO_DI1XI].tag !== "BF2F") { continue; }
656                var nd26_NOTIF_SEQ_NO_DI1XM = BindEs10xSingleRequest.parseBerTlv(nd26_NOTIF_SEQ_NO_DI1X2[nd26_NOTIF_SEQ_NO_DI1XI].value);
657                for (var nd26_NOTIF_SEQ_NO_DI1XJ = 0; nd26_NOTIF_SEQ_NO_DI1XJ < nd26_NOTIF_SEQ_NO_DI1XM.length; nd26_NOTIF_SEQ_NO_DI1XJ++) {
658                    if (nd26_NOTIF_SEQ_NO_DI1XM[nd26_NOTIF_SEQ_NO_DI1XJ].tag === "81" && nd26_NOTIF_SEQ_NO_DI1XM[nd26_NOTIF_SEQ_NO_DI1XJ].value === "20") {
659                        nd26_NOTIF_SEQ_NO_DI1XHIT += 1;
660                        if (nd26_NOTIF_SEQ_NO_DI1XHIT === 1) {
661                            for (var nd26_NOTIF_SEQ_NO_DI1XK = 0; nd26_NOTIF_SEQ_NO_DI1XK < nd26_NOTIF_SEQ_NO_DI1XM.length; nd26_NOTIF_SEQ_NO_DI1XK++) {
662                                if (nd26_NOTIF_SEQ_NO_DI1XM[nd26_NOTIF_SEQ_NO_DI1XK].tag === "80") { nd26_NOTIF_SEQ_NO_DI1.seq = nd26_NOTIF_SEQ_NO_DI1XM[nd26_NOTIF_SEQ_NO_DI1XK].value; nd26_NOTIF_SEQ_NO_DI1.ok = true; }
663                            }
664                        }
665                    }
666                }
667            }
668        }
669    }
670    var nd26_NOTIF_SEQ_NO_DI1Req = nd26_NOTIF_SEQ_NO_DI1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd26_NOTIF_SEQ_NO_DI1.seq)) : "";
671    // 步骤 26:SEQ07-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
672    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
673    var sdCla26 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
674    // runtime-bound payload: NOTIF_SEQ_NO_DI1 stays in execution domain
675    var s26 = bind.sendApdu(sdCla26, "E2", "91", "00", nd26_NOTIF_SEQ_NO_DI1Req, "00", "9000");
676    bind.checkData("S26-C1 SW", "9000", s26.sw);
677    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_DI1", s26.cmd, profileAidSession);
678    var ns26W = BindEs10xSingleRequest.parseBerTlv(s26.resp);
679    var ns26Ok0 = ns26W.length === 1 && ns26W[0].tag === "BF30";
680    var ns26In = ns26Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns26W[0].value) : [];
681    var ns26Code = (ns26In.length === 1 && ns26In[0].tag === "80") ? ns26In[0].value : "absent";
682    bind.checkData("S26-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns26Code);
683
684    // 步骤 27:SEQ07-2] MTD_STORE_DATA(tc_step)
685    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
686    var sdCla27 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
687    var s27 = bind.sendApdu(sdCla27, "E2", "91", "00", "BF2804810204F0", "00", "9000");
688    bind.checkData("S27-C1 SW", "9000", s27.sw);
689    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
690    var lw27T = BindEs10xSingleRequest.parseBerTlv(s27.resp);
691    var lw27Ok0 = lw27T.length === 1 && lw27T[0].tag === "BF28";
692    var lw27_br = lw27Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw27T[0].value) : [];
693    var lw27_brtag = lw27_br.length === 1 ? lw27_br[0].tag : "";
694    var lw27_els = lw27_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw27_br[0].value) : [];
695    bind.checkData("S27-C2 响应结构匹配 #R_LIST_NOTIF_DE1:ListNotificationResponse notificati branch/count", "1", (lw27_brtag === "A0" && lw27_els.length === 1) ? "1" : "0");
696
697    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_DE1 ← 步 25 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=10 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
698    var nd28_NOTIF_SEQ_NO_DE1 = {ok: false, seq: ""};
699    var nd28_NOTIF_SEQ_NO_DE1T = BindEs10xSingleRequest.parseBerTlv(s25.resp);
700    if (nd28_NOTIF_SEQ_NO_DE1T.length === 1 && nd28_NOTIF_SEQ_NO_DE1T[0].tag === "BF28") {
701        var nd28_NOTIF_SEQ_NO_DE1X1 = BindEs10xSingleRequest.parseBerTlv(nd28_NOTIF_SEQ_NO_DE1T[0].value);
702        if (nd28_NOTIF_SEQ_NO_DE1X1.length === 1 && nd28_NOTIF_SEQ_NO_DE1X1[0].tag === "A0") {
703            var nd28_NOTIF_SEQ_NO_DE1X2 = BindEs10xSingleRequest.parseBerTlv(nd28_NOTIF_SEQ_NO_DE1X1[0].value);
704            var nd28_NOTIF_SEQ_NO_DE1XHIT = 0;
705            for (var nd28_NOTIF_SEQ_NO_DE1XI = 0; nd28_NOTIF_SEQ_NO_DE1XI < nd28_NOTIF_SEQ_NO_DE1X2.length; nd28_NOTIF_SEQ_NO_DE1XI++) {
706                if (nd28_NOTIF_SEQ_NO_DE1X2[nd28_NOTIF_SEQ_NO_DE1XI].tag !== "BF2F") { continue; }
707                var nd28_NOTIF_SEQ_NO_DE1XM = BindEs10xSingleRequest.parseBerTlv(nd28_NOTIF_SEQ_NO_DE1X2[nd28_NOTIF_SEQ_NO_DE1XI].value);
708                for (var nd28_NOTIF_SEQ_NO_DE1XJ = 0; nd28_NOTIF_SEQ_NO_DE1XJ < nd28_NOTIF_SEQ_NO_DE1XM.length; nd28_NOTIF_SEQ_NO_DE1XJ++) {
709                    if (nd28_NOTIF_SEQ_NO_DE1XM[nd28_NOTIF_SEQ_NO_DE1XJ].tag === "81" && nd28_NOTIF_SEQ_NO_DE1XM[nd28_NOTIF_SEQ_NO_DE1XJ].value === "10") {
710                        nd28_NOTIF_SEQ_NO_DE1XHIT += 1;
711                        if (nd28_NOTIF_SEQ_NO_DE1XHIT === 1) {
712                            for (var nd28_NOTIF_SEQ_NO_DE1XK = 0; nd28_NOTIF_SEQ_NO_DE1XK < nd28_NOTIF_SEQ_NO_DE1XM.length; nd28_NOTIF_SEQ_NO_DE1XK++) {
713                                if (nd28_NOTIF_SEQ_NO_DE1XM[nd28_NOTIF_SEQ_NO_DE1XK].tag === "80") { nd28_NOTIF_SEQ_NO_DE1.seq = nd28_NOTIF_SEQ_NO_DE1XM[nd28_NOTIF_SEQ_NO_DE1XK].value; nd28_NOTIF_SEQ_NO_DE1.ok = true; }
714                            }
715                        }
716                    }
717                }
718            }
719        }
720    }
721    var nd28_NOTIF_SEQ_NO_DE1Req = nd28_NOTIF_SEQ_NO_DE1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd28_NOTIF_SEQ_NO_DE1.seq)) : "";
722    // 步骤 28:SEQ07-3] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
723    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
724    var sdCla28 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
725    // runtime-bound payload: NOTIF_SEQ_NO_DE1 stays in execution domain
726    var s28 = bind.sendApdu(sdCla28, "E2", "91", "00", nd28_NOTIF_SEQ_NO_DE1Req, "00", "9000");
727    bind.checkData("S28-C1 SW", "9000", s28.sw);
728    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_DE1", s28.cmd, profileAidSession);
729    var ns28W = BindEs10xSingleRequest.parseBerTlv(s28.resp);
730    var ns28Ok0 = ns28W.length === 1 && ns28W[0].tag === "BF30";
731    var ns28In = ns28Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns28W[0].value) : [];
732    var ns28Code = (ns28In.length === 1 && ns28In[0].tag === "80") ? ns28In[0].value : "absent";
733    bind.checkData("S28-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns28Code);
734
735    // 步骤 29:SEQ07-4] MTD_STORE_DATA(tc_step)
736    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
737    var sdCla29 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
738    var s29 = bind.sendApdu(sdCla29, "E2", "91", "00", "BF2804810204F0", "00", "9000");
739    bind.checkData("S29-C1 SW", "9000", s29.sw);
740    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
741    var lw29T = BindEs10xSingleRequest.parseBerTlv(s29.resp);
742    var lw29Ok0 = lw29T.length === 1 && lw29T[0].tag === "BF28";
743    var lw29_br = lw29Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw29T[0].value) : [];
744    var lw29_brtag = lw29_br.length === 1 ? lw29_br[0].tag : "";
745    var lw29_els = lw29_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw29_br[0].value) : [];
746    bind.checkData("S29-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw29_brtag === "A0" && lw29_els.length === 0) ? "1" : "0");
747
748    // 步骤 30:SEQ08-IC5] MTD_STORE_DATA(tc_step)
749    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
750    var sdCla30 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
751    var s30 = bind.sendApdu(sdCla30, "E2", "91", "00", "BF2804810204F0", "00", "9000");
752    bind.checkData("S30-C1 SW", "9000", s30.sw);
753    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
754    var lw30T = BindEs10xSingleRequest.parseBerTlv(s30.resp);
755    var lw30Ok0 = lw30T.length === 1 && lw30T[0].tag === "BF28";
756    var lw30_br = lw30Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw30T[0].value) : [];
757    var lw30_brtag = lw30_br.length === 1 ? lw30_br[0].tag : "";
758    var lw30_els = lw30_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw30_br[0].value) : [];
759    bind.checkData("S30-C2 响应结构匹配 #R_LIST_NOTIF_IN1_EN1:ListNotificationResponse notifi branch/count", "1", (lw30_brtag === "A0" && lw30_els.length === 2) ? "1" : "0");
760
761    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1 ← 步 30 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
762    var nd31_NOTIF_SEQ_NO_IN1 = {ok: false, seq: ""};
763    var nd31_NOTIF_SEQ_NO_IN1T = BindEs10xSingleRequest.parseBerTlv(s30.resp);
764    if (nd31_NOTIF_SEQ_NO_IN1T.length === 1 && nd31_NOTIF_SEQ_NO_IN1T[0].tag === "BF28") {
765        var nd31_NOTIF_SEQ_NO_IN1X1 = BindEs10xSingleRequest.parseBerTlv(nd31_NOTIF_SEQ_NO_IN1T[0].value);
766        if (nd31_NOTIF_SEQ_NO_IN1X1.length === 1 && nd31_NOTIF_SEQ_NO_IN1X1[0].tag === "A0") {
767            var nd31_NOTIF_SEQ_NO_IN1X2 = BindEs10xSingleRequest.parseBerTlv(nd31_NOTIF_SEQ_NO_IN1X1[0].value);
768            var nd31_NOTIF_SEQ_NO_IN1XHIT = 0;
769            for (var nd31_NOTIF_SEQ_NO_IN1XI = 0; nd31_NOTIF_SEQ_NO_IN1XI < nd31_NOTIF_SEQ_NO_IN1X2.length; nd31_NOTIF_SEQ_NO_IN1XI++) {
770                if (nd31_NOTIF_SEQ_NO_IN1X2[nd31_NOTIF_SEQ_NO_IN1XI].tag !== "BF2F") { continue; }
771                var nd31_NOTIF_SEQ_NO_IN1XM = BindEs10xSingleRequest.parseBerTlv(nd31_NOTIF_SEQ_NO_IN1X2[nd31_NOTIF_SEQ_NO_IN1XI].value);
772                for (var nd31_NOTIF_SEQ_NO_IN1XJ = 0; nd31_NOTIF_SEQ_NO_IN1XJ < nd31_NOTIF_SEQ_NO_IN1XM.length; nd31_NOTIF_SEQ_NO_IN1XJ++) {
773                    if (nd31_NOTIF_SEQ_NO_IN1XM[nd31_NOTIF_SEQ_NO_IN1XJ].tag === "81" && nd31_NOTIF_SEQ_NO_IN1XM[nd31_NOTIF_SEQ_NO_IN1XJ].value === "80") {
774                        nd31_NOTIF_SEQ_NO_IN1XHIT += 1;
775                        if (nd31_NOTIF_SEQ_NO_IN1XHIT === 1) {
776                            for (var nd31_NOTIF_SEQ_NO_IN1XK = 0; nd31_NOTIF_SEQ_NO_IN1XK < nd31_NOTIF_SEQ_NO_IN1XM.length; nd31_NOTIF_SEQ_NO_IN1XK++) {
777                                if (nd31_NOTIF_SEQ_NO_IN1XM[nd31_NOTIF_SEQ_NO_IN1XK].tag === "80") { nd31_NOTIF_SEQ_NO_IN1.seq = nd31_NOTIF_SEQ_NO_IN1XM[nd31_NOTIF_SEQ_NO_IN1XK].value; nd31_NOTIF_SEQ_NO_IN1.ok = true; }
778                            }
779                        }
780                    }
781                }
782            }
783        }
784    }
785    var nd31_NOTIF_SEQ_NO_IN1Req = nd31_NOTIF_SEQ_NO_IN1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd31_NOTIF_SEQ_NO_IN1.seq)) : "";
786    // 步骤 31:SEQ08-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
787    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
788    var sdCla31 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
789    // runtime-bound payload: NOTIF_SEQ_NO_IN1 stays in execution domain
790    var s31 = bind.sendApdu(sdCla31, "E2", "91", "00", nd31_NOTIF_SEQ_NO_IN1Req, "00", "9000");
791    bind.checkData("S31-C1 SW", "9000", s31.sw);
792    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1", s31.cmd, profileAidSession);
793    var ns31W = BindEs10xSingleRequest.parseBerTlv(s31.resp);
794    var ns31Ok0 = ns31W.length === 1 && ns31W[0].tag === "BF30";
795    var ns31In = ns31Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns31W[0].value) : [];
796    var ns31Code = (ns31In.length === 1 && ns31In[0].tag === "80") ? ns31In[0].value : "absent";
797    bind.checkData("S31-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns31Code);
798
799    // 步骤 32:SEQ08-2] MTD_STORE_DATA(tc_step)
800    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
801    var sdCla32 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
802    var s32 = bind.sendApdu(sdCla32, "E2", "91", "00", "BF2804810204F0", "00", "9000");
803    bind.checkData("S32-C1 SW", "9000", s32.sw);
804    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
805    var lw32T = BindEs10xSingleRequest.parseBerTlv(s32.resp);
806    var lw32Ok0 = lw32T.length === 1 && lw32T[0].tag === "BF28";
807    var lw32_br = lw32Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw32T[0].value) : [];
808    var lw32_brtag = lw32_br.length === 1 ? lw32_br[0].tag : "";
809    var lw32_els = lw32_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw32_br[0].value) : [];
810    bind.checkData("S32-C2 响应结构匹配 #R_LIST_NOTIF_EN1:ListNotificationResponse notificati branch/count", "1", (lw32_brtag === "A0" && lw32_els.length === 1) ? "1" : "0");
811
812    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_EN1 ← 步 30 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=40 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
813    var nd33_NOTIF_SEQ_NO_EN1 = {ok: false, seq: ""};
814    var nd33_NOTIF_SEQ_NO_EN1T = BindEs10xSingleRequest.parseBerTlv(s30.resp);
815    if (nd33_NOTIF_SEQ_NO_EN1T.length === 1 && nd33_NOTIF_SEQ_NO_EN1T[0].tag === "BF28") {
816        var nd33_NOTIF_SEQ_NO_EN1X1 = BindEs10xSingleRequest.parseBerTlv(nd33_NOTIF_SEQ_NO_EN1T[0].value);
817        if (nd33_NOTIF_SEQ_NO_EN1X1.length === 1 && nd33_NOTIF_SEQ_NO_EN1X1[0].tag === "A0") {
818            var nd33_NOTIF_SEQ_NO_EN1X2 = BindEs10xSingleRequest.parseBerTlv(nd33_NOTIF_SEQ_NO_EN1X1[0].value);
819            var nd33_NOTIF_SEQ_NO_EN1XHIT = 0;
820            for (var nd33_NOTIF_SEQ_NO_EN1XI = 0; nd33_NOTIF_SEQ_NO_EN1XI < nd33_NOTIF_SEQ_NO_EN1X2.length; nd33_NOTIF_SEQ_NO_EN1XI++) {
821                if (nd33_NOTIF_SEQ_NO_EN1X2[nd33_NOTIF_SEQ_NO_EN1XI].tag !== "BF2F") { continue; }
822                var nd33_NOTIF_SEQ_NO_EN1XM = BindEs10xSingleRequest.parseBerTlv(nd33_NOTIF_SEQ_NO_EN1X2[nd33_NOTIF_SEQ_NO_EN1XI].value);
823                for (var nd33_NOTIF_SEQ_NO_EN1XJ = 0; nd33_NOTIF_SEQ_NO_EN1XJ < nd33_NOTIF_SEQ_NO_EN1XM.length; nd33_NOTIF_SEQ_NO_EN1XJ++) {
824                    if (nd33_NOTIF_SEQ_NO_EN1XM[nd33_NOTIF_SEQ_NO_EN1XJ].tag === "81" && nd33_NOTIF_SEQ_NO_EN1XM[nd33_NOTIF_SEQ_NO_EN1XJ].value === "40") {
825                        nd33_NOTIF_SEQ_NO_EN1XHIT += 1;
826                        if (nd33_NOTIF_SEQ_NO_EN1XHIT === 1) {
827                            for (var nd33_NOTIF_SEQ_NO_EN1XK = 0; nd33_NOTIF_SEQ_NO_EN1XK < nd33_NOTIF_SEQ_NO_EN1XM.length; nd33_NOTIF_SEQ_NO_EN1XK++) {
828                                if (nd33_NOTIF_SEQ_NO_EN1XM[nd33_NOTIF_SEQ_NO_EN1XK].tag === "80") { nd33_NOTIF_SEQ_NO_EN1.seq = nd33_NOTIF_SEQ_NO_EN1XM[nd33_NOTIF_SEQ_NO_EN1XK].value; nd33_NOTIF_SEQ_NO_EN1.ok = true; }
829                            }
830                        }
831                    }
832                }
833            }
834        }
835    }
836    var nd33_NOTIF_SEQ_NO_EN1Req = nd33_NOTIF_SEQ_NO_EN1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd33_NOTIF_SEQ_NO_EN1.seq)) : "";
837    // 步骤 33:SEQ08-3] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
838    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
839    var sdCla33 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
840    // runtime-bound payload: NOTIF_SEQ_NO_EN1 stays in execution domain
841    var s33 = bind.sendApdu(sdCla33, "E2", "91", "00", nd33_NOTIF_SEQ_NO_EN1Req, "00", "9000");
842    bind.checkData("S33-C1 SW", "9000", s33.sw);
843    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_EN1", s33.cmd, profileAidSession);
844    var ns33W = BindEs10xSingleRequest.parseBerTlv(s33.resp);
845    var ns33Ok0 = ns33W.length === 1 && ns33W[0].tag === "BF30";
846    var ns33In = ns33Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns33W[0].value) : [];
847    var ns33Code = (ns33In.length === 1 && ns33In[0].tag === "80") ? ns33In[0].value : "absent";
848    bind.checkData("S33-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns33Code);
849
850    // 步骤 34:SEQ08-4] MTD_STORE_DATA(tc_step)
851    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
852    var sdCla34 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
853    var s34 = bind.sendApdu(sdCla34, "E2", "91", "00", "BF2804810204F0", "00", "9000");
854    bind.checkData("S34-C1 SW", "9000", s34.sw);
855    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
856    var lw34T = BindEs10xSingleRequest.parseBerTlv(s34.resp);
857    var lw34Ok0 = lw34T.length === 1 && lw34T[0].tag === "BF28";
858    var lw34_br = lw34Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw34T[0].value) : [];
859    var lw34_brtag = lw34_br.length === 1 ? lw34_br[0].tag : "";
860    var lw34_els = lw34_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw34_br[0].value) : [];
861    bind.checkData("S34-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw34_brtag === "A0" && lw34_els.length === 0) ? "1" : "0");
862
863    // 步骤 35:SEQ09-IC6] MTD_STORE_DATA(tc_step)
864    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
865    var sdCla35 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
866    var s35 = bind.sendApdu(sdCla35, "E2", "91", "00", "BF2804810204F0", "00", "9000");
867    bind.checkData("S35-C1 SW", "9000", s35.sw);
868    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
869    var lw35T = BindEs10xSingleRequest.parseBerTlv(s35.resp);
870    var lw35Ok0 = lw35T.length === 1 && lw35T[0].tag === "BF28";
871    var lw35_br = lw35Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw35T[0].value) : [];
872    var lw35_brtag = lw35_br.length === 1 ? lw35_br[0].tag : "";
873    var lw35_els = lw35_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw35_br[0].value) : [];
874    bind.checkData("S35-C2 响应结构匹配 #R_LIST_NOTIF_EN1_IN2_PIR:ListNotificationResponse no branch/count", "1", (lw35_brtag === "A0" && lw35_els.length === 2) ? "1" : "0");
875
876    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN2_PIR ← 步 35 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
877    var nd36_NOTIF_SEQ_NO_IN2_PIR = {ok: false, seq: ""};
878    var nd36_NOTIF_SEQ_NO_IN2_PIRT = BindEs10xSingleRequest.parseBerTlv(s35.resp);
879    if (nd36_NOTIF_SEQ_NO_IN2_PIRT.length === 1 && nd36_NOTIF_SEQ_NO_IN2_PIRT[0].tag === "BF28") {
880        var nd36_NOTIF_SEQ_NO_IN2_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd36_NOTIF_SEQ_NO_IN2_PIRT[0].value);
881        if (nd36_NOTIF_SEQ_NO_IN2_PIRX1.length === 1 && nd36_NOTIF_SEQ_NO_IN2_PIRX1[0].tag === "A0") {
882            var nd36_NOTIF_SEQ_NO_IN2_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd36_NOTIF_SEQ_NO_IN2_PIRX1[0].value);
883            var nd36_NOTIF_SEQ_NO_IN2_PIRXHIT = 0;
884            for (var nd36_NOTIF_SEQ_NO_IN2_PIRXI = 0; nd36_NOTIF_SEQ_NO_IN2_PIRXI < nd36_NOTIF_SEQ_NO_IN2_PIRX2.length; nd36_NOTIF_SEQ_NO_IN2_PIRXI++) {
885                if (nd36_NOTIF_SEQ_NO_IN2_PIRX2[nd36_NOTIF_SEQ_NO_IN2_PIRXI].tag !== "BF2F") { continue; }
886                var nd36_NOTIF_SEQ_NO_IN2_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd36_NOTIF_SEQ_NO_IN2_PIRX2[nd36_NOTIF_SEQ_NO_IN2_PIRXI].value);
887                for (var nd36_NOTIF_SEQ_NO_IN2_PIRXJ = 0; nd36_NOTIF_SEQ_NO_IN2_PIRXJ < nd36_NOTIF_SEQ_NO_IN2_PIRXM.length; nd36_NOTIF_SEQ_NO_IN2_PIRXJ++) {
888                    if (nd36_NOTIF_SEQ_NO_IN2_PIRXM[nd36_NOTIF_SEQ_NO_IN2_PIRXJ].tag === "81" && nd36_NOTIF_SEQ_NO_IN2_PIRXM[nd36_NOTIF_SEQ_NO_IN2_PIRXJ].value === "80") {
889                        nd36_NOTIF_SEQ_NO_IN2_PIRXHIT += 1;
890                        if (nd36_NOTIF_SEQ_NO_IN2_PIRXHIT === 2) {
891                            for (var nd36_NOTIF_SEQ_NO_IN2_PIRXK = 0; nd36_NOTIF_SEQ_NO_IN2_PIRXK < nd36_NOTIF_SEQ_NO_IN2_PIRXM.length; nd36_NOTIF_SEQ_NO_IN2_PIRXK++) {
892                                if (nd36_NOTIF_SEQ_NO_IN2_PIRXM[nd36_NOTIF_SEQ_NO_IN2_PIRXK].tag === "80") { nd36_NOTIF_SEQ_NO_IN2_PIR.seq = nd36_NOTIF_SEQ_NO_IN2_PIRXM[nd36_NOTIF_SEQ_NO_IN2_PIRXK].value; nd36_NOTIF_SEQ_NO_IN2_PIR.ok = true; }
893                            }
894                        }
895                    }
896                }
897            }
898        }
899    }
900    var nd36_NOTIF_SEQ_NO_IN2_PIRReq = nd36_NOTIF_SEQ_NO_IN2_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd36_NOTIF_SEQ_NO_IN2_PIR.seq)) : "";
901    // 步骤 36:SEQ09-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079, RQ31_182)
902    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
903    var sdCla36 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
904    // runtime-bound payload: NOTIF_SEQ_NO_IN2_PIR stays in execution domain
905    var s36 = bind.sendApdu(sdCla36, "E2", "91", "00", nd36_NOTIF_SEQ_NO_IN2_PIRReq, "00", "9000");
906    bind.checkData("S36-C1 SW", "9000", s36.sw);
907    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN2_PIR", s36.cmd, profileAidSession);
908    var ns36W = BindEs10xSingleRequest.parseBerTlv(s36.resp);
909    var ns36Ok0 = ns36W.length === 1 && ns36W[0].tag === "BF30";
910    var ns36In = ns36Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns36W[0].value) : [];
911    var ns36Code = (ns36In.length === 1 && ns36In[0].tag === "80") ? ns36In[0].value : "absent";
912    bind.checkData("S36-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns36Code);
913
914    // 步骤 37:SEQ09-2] MTD_STORE_DATA(tc_step;REQ: RQ25_020, RQ31_182)
915    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
916    var sdCla37 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
917    var s37 = bind.sendApdu(sdCla37, "E2", "91", "00", "BF2804810204F0", "00", "9000");
918    bind.checkData("S37-C1 SW", "9000", s37.sw);
919    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
920    var lw37T = BindEs10xSingleRequest.parseBerTlv(s37.resp);
921    var lw37Ok0 = lw37T.length === 1 && lw37T[0].tag === "BF28";
922    var lw37_br = lw37Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw37T[0].value) : [];
923    var lw37_brtag = lw37_br.length === 1 ? lw37_br[0].tag : "";
924    var lw37_els = lw37_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw37_br[0].value) : [];
925    bind.checkData("S37-C2 响应结构匹配 #R_LIST_NOTIF_EN1:ListNotificationResponse notificati branch/count", "1", (lw37_brtag === "A0" && lw37_els.length === 1) ? "1" : "0");
926
927    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_EN1 ← 步 35 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=40 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
928    var nd38_NOTIF_SEQ_NO_EN1 = {ok: false, seq: ""};
929    var nd38_NOTIF_SEQ_NO_EN1T = BindEs10xSingleRequest.parseBerTlv(s35.resp);
930    if (nd38_NOTIF_SEQ_NO_EN1T.length === 1 && nd38_NOTIF_SEQ_NO_EN1T[0].tag === "BF28") {
931        var nd38_NOTIF_SEQ_NO_EN1X1 = BindEs10xSingleRequest.parseBerTlv(nd38_NOTIF_SEQ_NO_EN1T[0].value);
932        if (nd38_NOTIF_SEQ_NO_EN1X1.length === 1 && nd38_NOTIF_SEQ_NO_EN1X1[0].tag === "A0") {
933            var nd38_NOTIF_SEQ_NO_EN1X2 = BindEs10xSingleRequest.parseBerTlv(nd38_NOTIF_SEQ_NO_EN1X1[0].value);
934            var nd38_NOTIF_SEQ_NO_EN1XHIT = 0;
935            for (var nd38_NOTIF_SEQ_NO_EN1XI = 0; nd38_NOTIF_SEQ_NO_EN1XI < nd38_NOTIF_SEQ_NO_EN1X2.length; nd38_NOTIF_SEQ_NO_EN1XI++) {
936                if (nd38_NOTIF_SEQ_NO_EN1X2[nd38_NOTIF_SEQ_NO_EN1XI].tag !== "BF2F") { continue; }
937                var nd38_NOTIF_SEQ_NO_EN1XM = BindEs10xSingleRequest.parseBerTlv(nd38_NOTIF_SEQ_NO_EN1X2[nd38_NOTIF_SEQ_NO_EN1XI].value);
938                for (var nd38_NOTIF_SEQ_NO_EN1XJ = 0; nd38_NOTIF_SEQ_NO_EN1XJ < nd38_NOTIF_SEQ_NO_EN1XM.length; nd38_NOTIF_SEQ_NO_EN1XJ++) {
939                    if (nd38_NOTIF_SEQ_NO_EN1XM[nd38_NOTIF_SEQ_NO_EN1XJ].tag === "81" && nd38_NOTIF_SEQ_NO_EN1XM[nd38_NOTIF_SEQ_NO_EN1XJ].value === "40") {
940                        nd38_NOTIF_SEQ_NO_EN1XHIT += 1;
941                        if (nd38_NOTIF_SEQ_NO_EN1XHIT === 1) {
942                            for (var nd38_NOTIF_SEQ_NO_EN1XK = 0; nd38_NOTIF_SEQ_NO_EN1XK < nd38_NOTIF_SEQ_NO_EN1XM.length; nd38_NOTIF_SEQ_NO_EN1XK++) {
943                                if (nd38_NOTIF_SEQ_NO_EN1XM[nd38_NOTIF_SEQ_NO_EN1XK].tag === "80") { nd38_NOTIF_SEQ_NO_EN1.seq = nd38_NOTIF_SEQ_NO_EN1XM[nd38_NOTIF_SEQ_NO_EN1XK].value; nd38_NOTIF_SEQ_NO_EN1.ok = true; }
944                            }
945                        }
946                    }
947                }
948            }
949        }
950    }
951    var nd38_NOTIF_SEQ_NO_EN1Req = nd38_NOTIF_SEQ_NO_EN1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd38_NOTIF_SEQ_NO_EN1.seq)) : "";
952    // 步骤 38:SEQ09-3] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
953    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
954    var sdCla38 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
955    // runtime-bound payload: NOTIF_SEQ_NO_EN1 stays in execution domain
956    var s38 = bind.sendApdu(sdCla38, "E2", "91", "00", nd38_NOTIF_SEQ_NO_EN1Req, "00", "9000");
957    bind.checkData("S38-C1 SW", "9000", s38.sw);
958    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_EN1", s38.cmd, profileAidSession);
959    var ns38W = BindEs10xSingleRequest.parseBerTlv(s38.resp);
960    var ns38Ok0 = ns38W.length === 1 && ns38W[0].tag === "BF30";
961    var ns38In = ns38Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns38W[0].value) : [];
962    var ns38Code = (ns38In.length === 1 && ns38In[0].tag === "80") ? ns38In[0].value : "absent";
963    bind.checkData("S38-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns38Code);
964
965    // 步骤 39:SEQ09-4] MTD_STORE_DATA(tc_step)
966    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
967    var sdCla39 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
968    var s39 = bind.sendApdu(sdCla39, "E2", "91", "00", "BF2804810204F0", "00", "9000");
969    bind.checkData("S39-C1 SW", "9000", s39.sw);
970    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
971    var lw39T = BindEs10xSingleRequest.parseBerTlv(s39.resp);
972    var lw39Ok0 = lw39T.length === 1 && lw39T[0].tag === "BF28";
973    var lw39_br = lw39Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw39T[0].value) : [];
974    var lw39_brtag = lw39_br.length === 1 ? lw39_br[0].tag : "";
975    var lw39_els = lw39_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw39_br[0].value) : [];
976    bind.checkData("S39-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw39_brtag === "A0" && lw39_els.length === 0) ? "1" : "0");
977
978    // 步骤 40:SEQ10-IC4] MTD_STORE_DATA(tc_step)
979    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
980    var sdCla40 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
981    var s40 = bind.sendApdu(sdCla40, "E2", "91", "00", "BF2804810204F0", "00", "9000");
982    bind.checkData("S40-C1 SW", "9000", s40.sw);
983    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
984    var lw40T = BindEs10xSingleRequest.parseBerTlv(s40.resp);
985    var lw40Ok0 = lw40T.length === 1 && lw40T[0].tag === "BF28";
986    var lw40_br = lw40Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw40T[0].value) : [];
987    var lw40_brtag = lw40_br.length === 1 ? lw40_br[0].tag : "";
988    var lw40_els = lw40_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw40_br[0].value) : [];
989    bind.checkData("S40-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR:ListNotificationResponse notifi branch/count", "1", (lw40_brtag === "A0" && lw40_els.length === 1) ? "1" : "0");
990
991    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1_PIR ← 步 40 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
992    var nd41_NOTIF_SEQ_NO_IN1_PIR = {ok: false, seq: ""};
993    var nd41_NOTIF_SEQ_NO_IN1_PIRT = BindEs10xSingleRequest.parseBerTlv(s40.resp);
994    if (nd41_NOTIF_SEQ_NO_IN1_PIRT.length === 1 && nd41_NOTIF_SEQ_NO_IN1_PIRT[0].tag === "BF28") {
995        var nd41_NOTIF_SEQ_NO_IN1_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd41_NOTIF_SEQ_NO_IN1_PIRT[0].value);
996        if (nd41_NOTIF_SEQ_NO_IN1_PIRX1.length === 1 && nd41_NOTIF_SEQ_NO_IN1_PIRX1[0].tag === "A0") {
997            var nd41_NOTIF_SEQ_NO_IN1_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd41_NOTIF_SEQ_NO_IN1_PIRX1[0].value);
998            var nd41_NOTIF_SEQ_NO_IN1_PIRXHIT = 0;
999            for (var nd41_NOTIF_SEQ_NO_IN1_PIRXI = 0; nd41_NOTIF_SEQ_NO_IN1_PIRXI < nd41_NOTIF_SEQ_NO_IN1_PIRX2.length; nd41_NOTIF_SEQ_NO_IN1_PIRXI++) {
1000                if (nd41_NOTIF_SEQ_NO_IN1_PIRX2[nd41_NOTIF_SEQ_NO_IN1_PIRXI].tag !== "BF2F") { continue; }
1001                var nd41_NOTIF_SEQ_NO_IN1_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd41_NOTIF_SEQ_NO_IN1_PIRX2[nd41_NOTIF_SEQ_NO_IN1_PIRXI].value);
1002                for (var nd41_NOTIF_SEQ_NO_IN1_PIRXJ = 0; nd41_NOTIF_SEQ_NO_IN1_PIRXJ < nd41_NOTIF_SEQ_NO_IN1_PIRXM.length; nd41_NOTIF_SEQ_NO_IN1_PIRXJ++) {
1003                    if (nd41_NOTIF_SEQ_NO_IN1_PIRXM[nd41_NOTIF_SEQ_NO_IN1_PIRXJ].tag === "81" && nd41_NOTIF_SEQ_NO_IN1_PIRXM[nd41_NOTIF_SEQ_NO_IN1_PIRXJ].value === "80") {
1004                        nd41_NOTIF_SEQ_NO_IN1_PIRXHIT += 1;
1005                        if (nd41_NOTIF_SEQ_NO_IN1_PIRXHIT === 2) {
1006                            for (var nd41_NOTIF_SEQ_NO_IN1_PIRXK = 0; nd41_NOTIF_SEQ_NO_IN1_PIRXK < nd41_NOTIF_SEQ_NO_IN1_PIRXM.length; nd41_NOTIF_SEQ_NO_IN1_PIRXK++) {
1007                                if (nd41_NOTIF_SEQ_NO_IN1_PIRXM[nd41_NOTIF_SEQ_NO_IN1_PIRXK].tag === "80") { nd41_NOTIF_SEQ_NO_IN1_PIR.seq = nd41_NOTIF_SEQ_NO_IN1_PIRXM[nd41_NOTIF_SEQ_NO_IN1_PIRXK].value; nd41_NOTIF_SEQ_NO_IN1_PIR.ok = true; }
1008                            }
1009                        }
1010                    }
1011                }
1012            }
1013        }
1014    }
1015    var nd41_NOTIF_SEQ_NO_IN1_PIRReq = nd41_NOTIF_SEQ_NO_IN1_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd41_NOTIF_SEQ_NO_IN1_PIR.seq)) : "";
1016    // 步骤 41:SEQ10-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
1017    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
1018    var sdCla41 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
1019    // runtime-bound payload: NOTIF_SEQ_NO_IN1_PIR stays in execution domain
1020    var s41 = bind.sendApdu(sdCla41, "E2", "91", "00", nd41_NOTIF_SEQ_NO_IN1_PIRReq, "00", "9000");
1021    bind.checkData("S41-C1 SW", "9000", s41.sw);
1022    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1_PIR", s41.cmd, profileAidSession);
1023    var ns41W = BindEs10xSingleRequest.parseBerTlv(s41.resp);
1024    var ns41Ok0 = ns41W.length === 1 && ns41W[0].tag === "BF30";
1025    var ns41In = ns41Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns41W[0].value) : [];
1026    var ns41Code = (ns41In.length === 1 && ns41In[0].tag === "80") ? ns41In[0].value : "absent";
1027    bind.checkData("S41-C2 响应结构匹配 #R_REMOVE_NOTIF_NOTHING_TO_DELETE deleteNotificationStatus", "01", ns41Code);
1028
1029    // 步骤 42:SEQ10-2] MTD_STORE_DATA(tc_step)
1030    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
1031    var sdCla42 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
1032    var s42 = bind.sendApdu(sdCla42, "E2", "91", "00", "BF2804810204F0", "00", "9000");
1033    bind.checkData("S42-C1 SW", "9000", s42.sw);
1034    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
1035    var lw42T = BindEs10xSingleRequest.parseBerTlv(s42.resp);
1036    var lw42Ok0 = lw42T.length === 1 && lw42T[0].tag === "BF28";
1037    var lw42_br = lw42Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw42T[0].value) : [];
1038    var lw42_brtag = lw42_br.length === 1 ? lw42_br[0].tag : "";
1039    var lw42_els = lw42_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw42_br[0].value) : [];
1040    bind.checkData("S42-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR:ListNotificationResponse notifi branch/count", "1", (lw42_brtag === "A0" && lw42_els.length === 1) ? "1" : "0");
1041
1042    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1_PIR ← 步 40 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
1043    var nd43_NOTIF_SEQ_NO_IN1_PIR = {ok: false, seq: ""};
1044    var nd43_NOTIF_SEQ_NO_IN1_PIRT = BindEs10xSingleRequest.parseBerTlv(s40.resp);
1045    if (nd43_NOTIF_SEQ_NO_IN1_PIRT.length === 1 && nd43_NOTIF_SEQ_NO_IN1_PIRT[0].tag === "BF28") {
1046        var nd43_NOTIF_SEQ_NO_IN1_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd43_NOTIF_SEQ_NO_IN1_PIRT[0].value);
1047        if (nd43_NOTIF_SEQ_NO_IN1_PIRX1.length === 1 && nd43_NOTIF_SEQ_NO_IN1_PIRX1[0].tag === "A0") {
1048            var nd43_NOTIF_SEQ_NO_IN1_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd43_NOTIF_SEQ_NO_IN1_PIRX1[0].value);
1049            var nd43_NOTIF_SEQ_NO_IN1_PIRXHIT = 0;
1050            for (var nd43_NOTIF_SEQ_NO_IN1_PIRXI = 0; nd43_NOTIF_SEQ_NO_IN1_PIRXI < nd43_NOTIF_SEQ_NO_IN1_PIRX2.length; nd43_NOTIF_SEQ_NO_IN1_PIRXI++) {
1051                if (nd43_NOTIF_SEQ_NO_IN1_PIRX2[nd43_NOTIF_SEQ_NO_IN1_PIRXI].tag !== "BF2F") { continue; }
1052                var nd43_NOTIF_SEQ_NO_IN1_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd43_NOTIF_SEQ_NO_IN1_PIRX2[nd43_NOTIF_SEQ_NO_IN1_PIRXI].value);
1053                for (var nd43_NOTIF_SEQ_NO_IN1_PIRXJ = 0; nd43_NOTIF_SEQ_NO_IN1_PIRXJ < nd43_NOTIF_SEQ_NO_IN1_PIRXM.length; nd43_NOTIF_SEQ_NO_IN1_PIRXJ++) {
1054                    if (nd43_NOTIF_SEQ_NO_IN1_PIRXM[nd43_NOTIF_SEQ_NO_IN1_PIRXJ].tag === "81" && nd43_NOTIF_SEQ_NO_IN1_PIRXM[nd43_NOTIF_SEQ_NO_IN1_PIRXJ].value === "80") {
1055                        nd43_NOTIF_SEQ_NO_IN1_PIRXHIT += 1;
1056                        if (nd43_NOTIF_SEQ_NO_IN1_PIRXHIT === 2) {
1057                            for (var nd43_NOTIF_SEQ_NO_IN1_PIRXK = 0; nd43_NOTIF_SEQ_NO_IN1_PIRXK < nd43_NOTIF_SEQ_NO_IN1_PIRXM.length; nd43_NOTIF_SEQ_NO_IN1_PIRXK++) {
1058                                if (nd43_NOTIF_SEQ_NO_IN1_PIRXM[nd43_NOTIF_SEQ_NO_IN1_PIRXK].tag === "80") { nd43_NOTIF_SEQ_NO_IN1_PIR.seq = nd43_NOTIF_SEQ_NO_IN1_PIRXM[nd43_NOTIF_SEQ_NO_IN1_PIRXK].value; nd43_NOTIF_SEQ_NO_IN1_PIR.ok = true; }
1059                            }
1060                        }
1061                    }
1062                }
1063            }
1064        }
1065    }
1066    var nd43_NOTIF_SEQ_NO_IN1_PIRReq = nd43_NOTIF_SEQ_NO_IN1_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd43_NOTIF_SEQ_NO_IN1_PIR.seq)) : "";
1067    // 步骤 43:SEQ10-3] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
1068    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
1069    var sdCla43 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
1070    // runtime-bound payload: NOTIF_SEQ_NO_IN1_PIR stays in execution domain
1071    var s43 = bind.sendApdu(sdCla43, "E2", "91", "00", nd43_NOTIF_SEQ_NO_IN1_PIRReq, "00", "9000");
1072    bind.checkData("S43-C1 SW", "9000", s43.sw);
1073    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1_PIR", s43.cmd, profileAidSession);
1074    var ns43W = BindEs10xSingleRequest.parseBerTlv(s43.resp);
1075    var ns43Ok0 = ns43W.length === 1 && ns43W[0].tag === "BF30";
1076    var ns43In = ns43Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns43W[0].value) : [];
1077    var ns43Code = (ns43In.length === 1 && ns43In[0].tag === "80") ? ns43In[0].value : "absent";
1078    bind.checkData("S43-C2 响应结构匹配 #R_REMOVE_NOTIF_NOTHING_TO_DELETE deleteNotificationStatus", "01", ns43Code);
1079
1080    // 步骤 44:SEQ10-4] MTD_STORE_DATA(tc_step)
1081    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
1082    var sdCla44 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
1083    var s44 = bind.sendApdu(sdCla44, "E2", "91", "00", "BF2804810204F0", "00", "9000");
1084    bind.checkData("S44-C1 SW", "9000", s44.sw);
1085    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
1086    var lw44T = BindEs10xSingleRequest.parseBerTlv(s44.resp);
1087    var lw44Ok0 = lw44T.length === 1 && lw44T[0].tag === "BF28";
1088    var lw44_br = lw44Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw44T[0].value) : [];
1089    var lw44_brtag = lw44_br.length === 1 ? lw44_br[0].tag : "";
1090    var lw44_els = lw44_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw44_br[0].value) : [];
1091    bind.checkData("S44-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR:ListNotificationResponse notifi branch/count", "1", (lw44_brtag === "A0" && lw44_els.length === 1) ? "1" : "0");
1092
1093    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1_PIR ← 步 40 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
1094    var nd45_NOTIF_SEQ_NO_IN1_PIR = {ok: false, seq: ""};
1095    var nd45_NOTIF_SEQ_NO_IN1_PIRT = BindEs10xSingleRequest.parseBerTlv(s40.resp);
1096    if (nd45_NOTIF_SEQ_NO_IN1_PIRT.length === 1 && nd45_NOTIF_SEQ_NO_IN1_PIRT[0].tag === "BF28") {
1097        var nd45_NOTIF_SEQ_NO_IN1_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd45_NOTIF_SEQ_NO_IN1_PIRT[0].value);
1098        if (nd45_NOTIF_SEQ_NO_IN1_PIRX1.length === 1 && nd45_NOTIF_SEQ_NO_IN1_PIRX1[0].tag === "A0") {
1099            var nd45_NOTIF_SEQ_NO_IN1_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd45_NOTIF_SEQ_NO_IN1_PIRX1[0].value);
1100            var nd45_NOTIF_SEQ_NO_IN1_PIRXHIT = 0;
1101            for (var nd45_NOTIF_SEQ_NO_IN1_PIRXI = 0; nd45_NOTIF_SEQ_NO_IN1_PIRXI < nd45_NOTIF_SEQ_NO_IN1_PIRX2.length; nd45_NOTIF_SEQ_NO_IN1_PIRXI++) {
1102                if (nd45_NOTIF_SEQ_NO_IN1_PIRX2[nd45_NOTIF_SEQ_NO_IN1_PIRXI].tag !== "BF2F") { continue; }
1103                var nd45_NOTIF_SEQ_NO_IN1_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd45_NOTIF_SEQ_NO_IN1_PIRX2[nd45_NOTIF_SEQ_NO_IN1_PIRXI].value);
1104                for (var nd45_NOTIF_SEQ_NO_IN1_PIRXJ = 0; nd45_NOTIF_SEQ_NO_IN1_PIRXJ < nd45_NOTIF_SEQ_NO_IN1_PIRXM.length; nd45_NOTIF_SEQ_NO_IN1_PIRXJ++) {
1105                    if (nd45_NOTIF_SEQ_NO_IN1_PIRXM[nd45_NOTIF_SEQ_NO_IN1_PIRXJ].tag === "81" && nd45_NOTIF_SEQ_NO_IN1_PIRXM[nd45_NOTIF_SEQ_NO_IN1_PIRXJ].value === "80") {
1106                        nd45_NOTIF_SEQ_NO_IN1_PIRXHIT += 1;
1107                        if (nd45_NOTIF_SEQ_NO_IN1_PIRXHIT === 2) {
1108                            for (var nd45_NOTIF_SEQ_NO_IN1_PIRXK = 0; nd45_NOTIF_SEQ_NO_IN1_PIRXK < nd45_NOTIF_SEQ_NO_IN1_PIRXM.length; nd45_NOTIF_SEQ_NO_IN1_PIRXK++) {
1109                                if (nd45_NOTIF_SEQ_NO_IN1_PIRXM[nd45_NOTIF_SEQ_NO_IN1_PIRXK].tag === "80") { nd45_NOTIF_SEQ_NO_IN1_PIR.seq = nd45_NOTIF_SEQ_NO_IN1_PIRXM[nd45_NOTIF_SEQ_NO_IN1_PIRXK].value; nd45_NOTIF_SEQ_NO_IN1_PIR.ok = true; }
1110                            }
1111                        }
1112                    }
1113                }
1114            }
1115        }
1116    }
1117    var nd45_NOTIF_SEQ_NO_IN1_PIRReq = nd45_NOTIF_SEQ_NO_IN1_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd45_NOTIF_SEQ_NO_IN1_PIR.seq)) : "";
1118    // 步骤 45:SEQ10-5] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
1119    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
1120    var sdCla45 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
1121    // runtime-bound payload: NOTIF_SEQ_NO_IN1_PIR stays in execution domain
1122    var s45 = bind.sendApdu(sdCla45, "E2", "91", "00", nd45_NOTIF_SEQ_NO_IN1_PIRReq, "00", "9000");
1123    bind.checkData("S45-C1 SW", "9000", s45.sw);
1124    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1_PIR", s45.cmd, profileAidSession);
1125    var ns45W = BindEs10xSingleRequest.parseBerTlv(s45.resp);
1126    var ns45Ok0 = ns45W.length === 1 && ns45W[0].tag === "BF30";
1127    var ns45In = ns45Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns45W[0].value) : [];
1128    var ns45Code = (ns45In.length === 1 && ns45In[0].tag === "80") ? ns45In[0].value : "absent";
1129    bind.checkData("S45-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns45Code);
1130
1131    // 步骤 46:SEQ10-6] MTD_STORE_DATA(tc_step)
1132    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
1133    var sdCla46 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
1134    var s46 = bind.sendApdu(sdCla46, "E2", "91", "00", "BF2804810204F0", "00", "9000");
1135    bind.checkData("S46-C1 SW", "9000", s46.sw);
1136    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
1137    var lw46T = BindEs10xSingleRequest.parseBerTlv(s46.resp);
1138    var lw46Ok0 = lw46T.length === 1 && lw46T[0].tag === "BF28";
1139    var lw46_br = lw46Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw46T[0].value) : [];
1140    var lw46_brtag = lw46_br.length === 1 ? lw46_br[0].tag : "";
1141    var lw46_els = lw46_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw46_br[0].value) : [];
1142    bind.checkData("S46-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw46_brtag === "A0" && lw46_els.length === 0) ? "1" : "0");
1143
1144    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1_PIR ← 步 40 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
1145    var nd47_NOTIF_SEQ_NO_IN1_PIR = {ok: false, seq: ""};
1146    var nd47_NOTIF_SEQ_NO_IN1_PIRT = BindEs10xSingleRequest.parseBerTlv(s40.resp);
1147    if (nd47_NOTIF_SEQ_NO_IN1_PIRT.length === 1 && nd47_NOTIF_SEQ_NO_IN1_PIRT[0].tag === "BF28") {
1148        var nd47_NOTIF_SEQ_NO_IN1_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd47_NOTIF_SEQ_NO_IN1_PIRT[0].value);
1149        if (nd47_NOTIF_SEQ_NO_IN1_PIRX1.length === 1 && nd47_NOTIF_SEQ_NO_IN1_PIRX1[0].tag === "A0") {
1150            var nd47_NOTIF_SEQ_NO_IN1_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd47_NOTIF_SEQ_NO_IN1_PIRX1[0].value);
1151            var nd47_NOTIF_SEQ_NO_IN1_PIRXHIT = 0;
1152            for (var nd47_NOTIF_SEQ_NO_IN1_PIRXI = 0; nd47_NOTIF_SEQ_NO_IN1_PIRXI < nd47_NOTIF_SEQ_NO_IN1_PIRX2.length; nd47_NOTIF_SEQ_NO_IN1_PIRXI++) {
1153                if (nd47_NOTIF_SEQ_NO_IN1_PIRX2[nd47_NOTIF_SEQ_NO_IN1_PIRXI].tag !== "BF2F") { continue; }
1154                var nd47_NOTIF_SEQ_NO_IN1_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd47_NOTIF_SEQ_NO_IN1_PIRX2[nd47_NOTIF_SEQ_NO_IN1_PIRXI].value);
1155                for (var nd47_NOTIF_SEQ_NO_IN1_PIRXJ = 0; nd47_NOTIF_SEQ_NO_IN1_PIRXJ < nd47_NOTIF_SEQ_NO_IN1_PIRXM.length; nd47_NOTIF_SEQ_NO_IN1_PIRXJ++) {
1156                    if (nd47_NOTIF_SEQ_NO_IN1_PIRXM[nd47_NOTIF_SEQ_NO_IN1_PIRXJ].tag === "81" && nd47_NOTIF_SEQ_NO_IN1_PIRXM[nd47_NOTIF_SEQ_NO_IN1_PIRXJ].value === "80") {
1157                        nd47_NOTIF_SEQ_NO_IN1_PIRXHIT += 1;
1158                        if (nd47_NOTIF_SEQ_NO_IN1_PIRXHIT === 2) {
1159                            for (var nd47_NOTIF_SEQ_NO_IN1_PIRXK = 0; nd47_NOTIF_SEQ_NO_IN1_PIRXK < nd47_NOTIF_SEQ_NO_IN1_PIRXM.length; nd47_NOTIF_SEQ_NO_IN1_PIRXK++) {
1160                                if (nd47_NOTIF_SEQ_NO_IN1_PIRXM[nd47_NOTIF_SEQ_NO_IN1_PIRXK].tag === "80") { nd47_NOTIF_SEQ_NO_IN1_PIR.seq = nd47_NOTIF_SEQ_NO_IN1_PIRXM[nd47_NOTIF_SEQ_NO_IN1_PIRXK].value; nd47_NOTIF_SEQ_NO_IN1_PIR.ok = true; }
1161                            }
1162                        }
1163                    }
1164                }
1165            }
1166        }
1167    }
1168    var nd47_NOTIF_SEQ_NO_IN1_PIRReq = nd47_NOTIF_SEQ_NO_IN1_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd47_NOTIF_SEQ_NO_IN1_PIR.seq)) : "";
1169    // 步骤 47:SEQ10-7] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
1170    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
1171    var sdCla47 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
1172    // runtime-bound payload: NOTIF_SEQ_NO_IN1_PIR stays in execution domain
1173    var s47 = bind.sendApdu(sdCla47, "E2", "91", "00", nd47_NOTIF_SEQ_NO_IN1_PIRReq, "00", "9000");
1174    bind.checkData("S47-C1 SW", "9000", s47.sw);
1175    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1_PIR", s47.cmd, profileAidSession);
1176    var ns47W = BindEs10xSingleRequest.parseBerTlv(s47.resp);
1177    var ns47Ok0 = ns47W.length === 1 && ns47W[0].tag === "BF30";
1178    var ns47In = ns47Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns47W[0].value) : [];
1179    var ns47Code = (ns47In.length === 1 && ns47In[0].tag === "80") ? ns47In[0].value : "absent";
1180    bind.checkData("S47-C2 响应结构匹配 #R_REMOVE_NOTIF_NOTHING_TO_DELETE deleteNotificationStatus", "01", ns47Code);
1181
1182    // 步骤 48:SEQ10-8] MTD_STORE_DATA(tc_step)
1183    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
1184    var sdCla48 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
1185    var s48 = bind.sendApdu(sdCla48, "E2", "91", "00", "BF2804810204F0", "00", "9000");
1186    bind.checkData("S48-C1 SW", "9000", s48.sw);
1187    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
1188    var lw48T = BindEs10xSingleRequest.parseBerTlv(s48.resp);
1189    var lw48Ok0 = lw48T.length === 1 && lw48T[0].tag === "BF28";
1190    var lw48_br = lw48Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw48T[0].value) : [];
1191    var lw48_brtag = lw48_br.length === 1 ? lw48_br[0].tag : "";
1192    var lw48_els = lw48_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw48_br[0].value) : [];
1193    bind.checkData("S48-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw48_brtag === "A0" && lw48_els.length === 0) ? "1" : "0");
1194
1195    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1_PIR ← 步 40 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
1196    var nd49_NOTIF_SEQ_NO_IN1_PIR = {ok: false, seq: ""};
1197    var nd49_NOTIF_SEQ_NO_IN1_PIRT = BindEs10xSingleRequest.parseBerTlv(s40.resp);
1198    if (nd49_NOTIF_SEQ_NO_IN1_PIRT.length === 1 && nd49_NOTIF_SEQ_NO_IN1_PIRT[0].tag === "BF28") {
1199        var nd49_NOTIF_SEQ_NO_IN1_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd49_NOTIF_SEQ_NO_IN1_PIRT[0].value);
1200        if (nd49_NOTIF_SEQ_NO_IN1_PIRX1.length === 1 && nd49_NOTIF_SEQ_NO_IN1_PIRX1[0].tag === "A0") {
1201            var nd49_NOTIF_SEQ_NO_IN1_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd49_NOTIF_SEQ_NO_IN1_PIRX1[0].value);
1202            var nd49_NOTIF_SEQ_NO_IN1_PIRXHIT = 0;
1203            for (var nd49_NOTIF_SEQ_NO_IN1_PIRXI = 0; nd49_NOTIF_SEQ_NO_IN1_PIRXI < nd49_NOTIF_SEQ_NO_IN1_PIRX2.length; nd49_NOTIF_SEQ_NO_IN1_PIRXI++) {
1204                if (nd49_NOTIF_SEQ_NO_IN1_PIRX2[nd49_NOTIF_SEQ_NO_IN1_PIRXI].tag !== "BF2F") { continue; }
1205                var nd49_NOTIF_SEQ_NO_IN1_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd49_NOTIF_SEQ_NO_IN1_PIRX2[nd49_NOTIF_SEQ_NO_IN1_PIRXI].value);
1206                for (var nd49_NOTIF_SEQ_NO_IN1_PIRXJ = 0; nd49_NOTIF_SEQ_NO_IN1_PIRXJ < nd49_NOTIF_SEQ_NO_IN1_PIRXM.length; nd49_NOTIF_SEQ_NO_IN1_PIRXJ++) {
1207                    if (nd49_NOTIF_SEQ_NO_IN1_PIRXM[nd49_NOTIF_SEQ_NO_IN1_PIRXJ].tag === "81" && nd49_NOTIF_SEQ_NO_IN1_PIRXM[nd49_NOTIF_SEQ_NO_IN1_PIRXJ].value === "80") {
1208                        nd49_NOTIF_SEQ_NO_IN1_PIRXHIT += 1;
1209                        if (nd49_NOTIF_SEQ_NO_IN1_PIRXHIT === 2) {
1210                            for (var nd49_NOTIF_SEQ_NO_IN1_PIRXK = 0; nd49_NOTIF_SEQ_NO_IN1_PIRXK < nd49_NOTIF_SEQ_NO_IN1_PIRXM.length; nd49_NOTIF_SEQ_NO_IN1_PIRXK++) {
1211                                if (nd49_NOTIF_SEQ_NO_IN1_PIRXM[nd49_NOTIF_SEQ_NO_IN1_PIRXK].tag === "80") { nd49_NOTIF_SEQ_NO_IN1_PIR.seq = nd49_NOTIF_SEQ_NO_IN1_PIRXM[nd49_NOTIF_SEQ_NO_IN1_PIRXK].value; nd49_NOTIF_SEQ_NO_IN1_PIR.ok = true; }
1212                            }
1213                        }
1214                    }
1215                }
1216            }
1217        }
1218    }
1219    var nd49_NOTIF_SEQ_NO_IN1_PIRReq = nd49_NOTIF_SEQ_NO_IN1_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd49_NOTIF_SEQ_NO_IN1_PIR.seq)) : "";
1220    // 步骤 49:SEQ10-9] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
1221    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
1222    var sdCla49 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
1223    // runtime-bound payload: NOTIF_SEQ_NO_IN1_PIR stays in execution domain
1224    var s49 = bind.sendApdu(sdCla49, "E2", "91", "00", nd49_NOTIF_SEQ_NO_IN1_PIRReq, "00", "9000");
1225    bind.checkData("S49-C1 SW", "9000", s49.sw);
1226    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1_PIR", s49.cmd, profileAidSession);
1227    var ns49W = BindEs10xSingleRequest.parseBerTlv(s49.resp);
1228    var ns49Ok0 = ns49W.length === 1 && ns49W[0].tag === "BF30";
1229    var ns49In = ns49Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns49W[0].value) : [];
1230    var ns49Code = (ns49In.length === 1 && ns49In[0].tag === "80") ? ns49In[0].value : "absent";
1231    bind.checkData("S49-C2 响应结构匹配 #R_REMOVE_NOTIF_NOTHING_TO_DELETE deleteNotificationStatus", "01", ns49Code);
1232
1233    // 步骤 50:SEQ10-10] MTD_STORE_DATA(tc_step)
1234    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
1235    var sdCla50 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
1236    var s50 = bind.sendApdu(sdCla50, "E2", "91", "00", "BF2804810204F0", "00", "9000");
1237    bind.checkData("S50-C1 SW", "9000", s50.sw);
1238    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
1239    var lw50T = BindEs10xSingleRequest.parseBerTlv(s50.resp);
1240    var lw50Ok0 = lw50T.length === 1 && lw50T[0].tag === "BF28";
1241    var lw50_br = lw50Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw50T[0].value) : [];
1242    var lw50_brtag = lw50_br.length === 1 ? lw50_br[0].tag : "";
1243    var lw50_els = lw50_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw50_br[0].value) : [];
1244    bind.checkData("S50-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw50_brtag === "A0" && lw50_els.length === 0) ? "1" : "0");
1245}
1246

完整 unified diff

行级差异:新增 1244 行 / 删除 668 行(以 -man 为基准,unified 上下文 3 行)。

展开 diff(1917 行)
--- -man
+++ -cas
@@ -1,670 +1,1246 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10b_RemoveNotificationFromList_01_Nominal_Install_Notification + TC_eUICC_ES10b_RemoveNotificationFromList_02_Nominal_Enable_Notification + TC_eUICC_ES10b_RemoveNotificationFromList_03_Nominal_Disable_Notification + TC_eUICC_ES10b_RemoveNotificationFromList_04_Nominal_Delete_Notification + TC_eUICC_ES10b_RemoveNotificationFromList_05_Nominal_Two_Install_PIR_Notifications_with_different_Notification_Addresses + TC_eUICC_ES10b_RemoveNotificationFromList_06_Nominal_Install_PIR_and_Enable_Notifications + TC_eUICC_ES10b_RemoveNotificationFromList_07_Nominal_Disable_and_Delete_Notifications + TC_eUICC_ES10b_RemoveNotificationFromList_08_Nominal_Install_OtherSignedNotification_and_Enable_Notifications + TC_eUICC_ES10b_RemoveNotificationFromList_09_Nominal_Enable_and_Install_PIR_notifications + TC_eUICC_ES10b_RemoveNotificationFromList_10_Nominal_Removing_Sequence_Numbers_that_are_not_present + Install_PROFILE_OPERATIONAL1_Do_not_remove_both_the_notifications (extracted verbatim)
-
-function TC_eUICC_ES10b_RemoveNotificationFromList_01_Nominal_Install_Notification()
-{
-	Remove_All_the_Notification();
-	Install_PROFILE_OPERATIONAL1_Do_not_remove_both_the_notifications();
-	
-	tracenamestr = "01 Nominal: 删除安装通知";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-		
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行RetrieveNotificationsList;");
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	
-	try
-	{		
-		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	
-		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
-	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
-	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
-	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
-	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	
-	try
-	{		
-		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
-	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
-	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
-	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
-	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
-		
-	Delete_PROFILE_OPERATIONAL1_Remove_the_Notification();
-	RecoverCard();
-}
-
-function TC_eUICC_ES10b_RemoveNotificationFromList_02_Nominal_Enable_Notification()
-{
-	Remove_All_the_Notification();
-	Install_PROFILE_OPERATIONAL1_Remove_both_the_Notifications();
-	Enable_PROFILE_OPERATIONAL1_Do_not_remove_the_Notification();
-	
-	tracenamestr = "02 Nominal: 删除激活profile通知";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-		
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行RetrieveNotificationsList;");
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	
-	try
-	{		
-		curStrHandle.CheckData("0640",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-		
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
-	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
-	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
-	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
-	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
-	
-	Disable_PROFILE_OPERATIONAL1_Remove_the_Notification();	
-	Delete_PROFILE_OPERATIONAL1_Remove_the_Notification();
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10b_RemoveNotificationFromList_03_Nominal_Disable_Notification()
-{
-	Remove_All_the_Notification();
-	Install_PROFILE_OPERATIONAL1_Remove_both_the_Notifications();
-	Enable_PROFILE_OPERATIONAL1_Remove_the_Notification();
-	Disable_PROFILE_OPERATIONAL1_Do_not_Remove_the_Notification();
-	
-	tracenamestr = "03 Nominal: 删除去激活profile通知";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-		
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行RetrieveNotificationsList;");
-	curDis.OutlengStr(PROFILE_OPERATIONAL1_DATA,"PROFILE_OPERATIONAL1_DATA");	
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	
-	try
-	{		
-		curStrHandle.CheckData("0520",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-		
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
-	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
-	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
-	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
-	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
-	
-	Delete_PROFILE_OPERATIONAL1_Remove_the_Notification();
-  RecoverCard();
-}
-
-function TC_eUICC_ES10b_RemoveNotificationFromList_04_Nominal_Delete_Notification()
-{
-	Remove_All_the_Notification();
-	Install_PROFILE_OPERATIONAL1_Remove_both_the_Notifications();
-	Enable_PROFILE_OPERATIONAL1_Remove_the_Notification();
-	Disable_PROFILE_OPERATIONAL1_Remove_the_Notification();
-	Delete_PROFILE_OPERATIONAL1_Do_not_remove_the_Notification();
-	
-	tracenamestr = "04 Nominal: 删除删除profile通知";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-		
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行RetrieveNotificationsList;");
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	
-	try
-	{		
-		curStrHandle.CheckData("0410",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-		
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
-	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
-	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
-	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
-	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
-  RecoverCard();
-}
-
-function TC_eUICC_ES10b_RemoveNotificationFromList_05_Nominal_Two_Install_PIR_Notifications_with_different_Notification_Addresses()
-{
-	if(!Card_Have_ECC_Cert)
-		return;
-	
-	//测试入口条件
-	if(!check_Applicability_of_tests_RSP_SGP23_test("C025"))
-		return;
-	
-	Remove_All_the_Notification();
-	Install_PROFILE_OPERATIONAL1_with_METADATA_OP_PROF1_NO_INSTALL_Do_not_remove_the_Notification();
-	Install_PROFILE_OPERATIONAL2_with_METADATA_OP_PROF2_NO_INSTALL_Do_not_remove_the_Notification();
-	
-	tracenamestr = "05 Nominal: 删除两个具有不同通知地址的安装通知(PIR)";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-		
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	curDis.OutlengStr(PROFILE_OPERATIONAL1_DATA,"PROFILE_OPERATIONAL1_DATA");	
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	
-	try
-	{		
-		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	
-		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS2,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF2, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].iccid, "ICCID");
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
-	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
-	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
-	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
-	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	
-	try
-	{		
-		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS2,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF2, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
-	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
-	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
-	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
-	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
-		
-	
-	Delete_PROFILE_OPERATIONAL1_Remove_the_Notification();
-	Delete_PROFILE_OPERATIONAL2_Remove_the_Notification();
-  RecoverCard();
-}
-
-function TC_eUICC_ES10b_RemoveNotificationFromList_06_Nominal_Install_PIR_and_Enable_Notifications()
-{
-	Remove_All_the_Notification();
-	Install_PROFILE_OPERATIONAL1_with_METADATA_OP_PROF1_NO_INSTALL_Do_not_remove_the_Notification();
-	Enable_PROFILE_OPERATIONAL1_Do_not_remove_the_Notification();
-	
-	tracenamestr = "06 Nominal: 删除安装(PIR)和激活profile通知";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-		
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	curDis.OutlengStr(PROFILE_OPERATIONAL1_DATA,"PROFILE_OPERATIONAL1_DATA");	
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	
-	try
-	{		
-		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	
-		curStrHandle.CheckData("0640",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].iccid, "ICCID");
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
-	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
-	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
-	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
-	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	
-	try
-	{		
-		curStrHandle.CheckData("0640",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
-	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
-	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
-	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
-	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
-		
-	
-	Disable_PROFILE_OPERATIONAL1_Remove_the_Notification();
-	Delete_PROFILE_OPERATIONAL1_Remove_the_Notification();
-	
-  RecoverCard();
-	
-}
-
-function TC_eUICC_ES10b_RemoveNotificationFromList_07_Nominal_Disable_and_Delete_Notifications()
-{
-	Remove_All_the_Notification();
-	Install_PROFILE_OPERATIONAL1_Remove_both_the_Notifications();
-	Enable_PROFILE_OPERATIONAL1_Remove_the_Notification();
-	Disable_PROFILE_OPERATIONAL1_Do_not_Remove_the_Notification();
-	Delete_PROFILE_OPERATIONAL1_Do_not_remove_the_Notification();
-	
-	tracenamestr = "07 Nominal: 删除去激活和删除profile通知";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-		
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	curDis.OutlengStr(PROFILE_OPERATIONAL1_DATA,"PROFILE_OPERATIONAL1_DATA");	
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	
-	try
-	{		
-		curStrHandle.CheckData("0520",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	
-		curStrHandle.CheckData("0410",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].iccid, "ICCID");
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
-	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
-	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
-	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
-	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	
-	try
-	{		
-		curStrHandle.CheckData("0410",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
-	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
-	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
-	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
-	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
-		
-  RecoverCard();
-}
-
-function TC_eUICC_ES10b_RemoveNotificationFromList_08_Nominal_Install_OtherSignedNotification_and_Enable_Notifications()
-{
-	Remove_All_the_Notification();
-	Install_PROFILE_OPERATIONAL1_Remove_the_PIR_notification_but_do_not_remove_the_OtherSignedNotification();
-	Enable_PROFILE_OPERATIONAL1_Do_not_remove_the_Notification();
-	
-	tracenamestr = "08 Nominal: 删除安装(OtherSignedNotification)和激活profile通知";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-		
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	curDis.OutlengStr(PROFILE_OPERATIONAL1_DATA,"PROFILE_OPERATIONAL1_DATA");	
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	Update_Max_seqNumber_Of_Notification(Profile_load_procedure.listNotificationResponse)
-	
-	try
-	{		
-		var seqNumber = parseInt(Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber,16);
-		if(Max_seqNumber_Of_Notification ==	seqNumber)
-		{
-			curStrHandle.CheckData(Max_seqNumber_Of_Notification,parseInt(Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber,16),"seqNumber");			
-			curStrHandle.CheckData("0640",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-			curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-			curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-		
-			curStrHandle.CheckData(Max_seqNumber_Of_Notification-1,parseInt(Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].seqNumber,16),"seqNumber");						
-			curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].profileManagementOperation,"profileManagementOperation");
-			curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].notificationAddress,"notificationAddress");
-			curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].iccid, "ICCID");
-		}
-		else
-		{
-			curStrHandle.CheckData(Max_seqNumber_Of_Notification-1,parseInt(Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber,16),"seqNumber");						
-			curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-			curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-			curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-		
-			curStrHandle.CheckData(Max_seqNumber_Of_Notification,parseInt(Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].seqNumber,16),"seqNumber");			
-			curStrHandle.CheckData("0640",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].profileManagementOperation,"profileManagementOperation");
-			curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].notificationAddress,"notificationAddress");
-			curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].iccid, "ICCID");			
-		}	
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
-	var parameter = EnCodeInteger_Ber(Max_seqNumber_Of_Notification-1);
-	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
-	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
-	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	
-	try
-	{		
-		curStrHandle.CheckData("0640",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
-	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
-	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
-	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
-	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
-		
-	Disable_PROFILE_OPERATIONAL1_Do_not_Remove_the_Notification();
-	Delete_PROFILE_OPERATIONAL1_Do_not_remove_the_Notification();
-	RecoverCard();
-}
-
-function TC_eUICC_ES10b_RemoveNotificationFromList_09_Nominal_Enable_and_Install_PIR_notifications()
-{
-	if(!Card_Have_ECC_Cert)
-		return;
-	
-	Remove_All_the_Notification();
-	Install_PROFILE_OPERATIONAL1_Remove_both_the_Notifications();
-	Enable_PROFILE_OPERATIONAL1_Do_not_remove_the_Notification();
-	Install_PROFILE_OPERATIONAL2_with_METADATA_OP_PROF2_NO_INSTALL_Do_not_remove_the_Notification();
-	
-	
-	tracenamestr = "09 Nominal: 删除激活profile和安装(PIR)通知";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-		
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	curDis.OutlengStr(PROFILE_OPERATIONAL1_DATA,"PROFILE_OPERATIONAL1_DATA");	
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	
-	try
-	{		
-		curStrHandle.CheckData("0640",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	
-		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS2,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF2, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[1].iccid, "ICCID");
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
-	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
-	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
-	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
-	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	
-	try
-	{		
-		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS2,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF2, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
-	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
-	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
-	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
-	curStrHandle.CheckData("00", deleteNotificationStatus, "deleteNotificationStatus");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	curStrHandle.CheckData("BF2802A000", Profile_load_procedure.listNotificationResponse.hexData, "通知检查");
-		
-	Disable_PROFILE_OPERATIONAL1_Do_not_Remove_the_Notification();
-	Delete_PROFILE_OPERATIONAL1_Do_not_remove_the_Notification();
-	Delete_PROFILE_OPERATIONAL2_Remove_the_Notification();
-	RecoverCard();
-}
-
-function TC_eUICC_ES10b_RemoveNotificationFromList_10_Nominal_Removing_Sequence_Numbers_that_are_not_present ()
-{
-	Remove_All_the_Notification();
-	Install_PROFILE_OPERATIONAL1_with_METADATA_OP_PROF1_NO_INSTALL_Do_not_remove_the_Notification();
-	
-	tracenamestr = "10 Nominal: 删除通知,指定的序列号不存在";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-		
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	curDis.OutlengStr(PROFILE_OPERATIONAL1_DATA,"PROFILE_OPERATIONAL1_DATA");	
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	
-	try
-	{		
-		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行NotificationSentRequest;");
-	var parameter = Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].seqNumber;
-	parameter = EnCodeInteger_Ber(parseInt(parameter,16)+1);
-	Profile_load_procedure.ES10b_RemoveNotificationFromList(parameter);
-	var deleteNotificationStatus=Profile_load_procedure.notificationSentResponse.deleteNotificationStatus;
-	curStrHandle.CheckData("01", deleteNotificationStatus, "deleteNotificationStatus");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ListNotificationRequest;");
-	Profile_load_procedure.ES10b_ListNotification("04F0");
-	
-	try
-	{		
-		curStrHandle.CheckData("0780",Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].profileManagementOperation,"profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1,Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].notificationAddress,"notificationAddress");
-		curStrHandle.CheckData(ICCID_OP_PROF1, Profile_load_procedure.listNotificationResponse.notificationMetadataList.arrOfElement[0].iccid, "ICCID");
-	}catch(e){
-		obj.SubLevel(Notification_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	Delete_PROFILE_OPERATIONAL1_Remove_the_Notification();
-	RecoverCard();
-}
-
-function Install_PROFILE_OPERATIONAL1_Do_not_remove_both_the_notifications()
-{
-	Remove_All_the_Notification();
-	
-	curLogicChannel = 0;
-	
-	tracenamestr = "Install PROFILE_OPERATIONAL1. Do not remove both the notifications.";
-	curDis.TraceStart(sno++,tracenamestr);
-		
-	curDis.TestStepStart("eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart("读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart("读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
-	Profile_load_procedure.ES10b_GetEUICCInfo1();
-
-	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
-	Profile_load_procedure.ES10b_GetEUICCChallenge();
-	
-	
-	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
-	Profile_load_procedure.serverAddress = TEST_DP_ADDRESS1;
-	Profile_load_procedure.ES10b_AuthenticateServer();
-	
-	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
-	Profile_load_procedure.ES10b_PrepareDownload();
-	
-	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
-	Profile_load_procedure.ES10b_GetEID();
-	
-	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行BoundProfilePackage;");
-	Profile_load_procedure.serviceProviderName = SP_NAME1;
-	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
-	Profile_load_procedure.iconType = "01";
-	Profile_load_procedure.icon = ICON_OP_PROF1;
-	Profile_load_procedure.notificationConfigurationInfo = new SequenceOfElement("30");
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0] = new NotificationConfigurationInformation();
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].profileManagementOperation = "04F0";
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].notificationAddress = TEST_DP_ADDRESS1;
-	Profile_load_procedure.mccMnc = MCC_MNC1;
-	
-	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
+// Author: 卡思Cas智能体
+// Date: 20261004-141736
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES10b.RemoveNotificationFromList,Test Sequence #01-#10 Nominal (all 10 sequences),适用性 M。
+// Test points: ICH-SEQ01-IC1-K1-C1 ATR_present;ICH-SEQ01-IC1-K2-C2 FCP_Template
+//   ICH-SEQ01-IC1-K2-C4 SW;ICH-SEQ01-IC1-K3-C4 SW;ICH-SEQ01-IC1-K4-C4 final SW
+//   ICH-SEQ01-IC2-K1-C4 SW;ICH-SEQ01-IC2-K1-C3 CHANNEL_NUMBER extracted;ICH-SEQ01-IC2-K2-C4 SW
+//   S1-C1 SW;S1-C2 响应结构匹配 #R_LIST_NOTIF_IN1_IN1_PIR:ListNotificationResponse no branch/count
+//   S2-C1 SW;S2-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S3-C1 SW
+//   S3-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR:ListNotificationResponse notifi branch/count;S4-C1 SW
+//   S4-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S5-C1 SW
+//   S5-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S6-C1 SW
+//   S6-C2 响应结构匹配 #R_LIST_NOTIF_EN1:ListNotificationResponse notificati branch/count;S7-C1 SW
+//   S7-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S8-C1 SW
+//   S8-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S9-C1 SW
+//   S9-C2 响应结构匹配 #R_LIST_NOTIF_DI1:ListNotificationResponse notificati branch/count;S10-C1 SW
+//   S10-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S11-C1 SW
+//   S11-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S12-C1 SW
+//   S12-C2 响应结构匹配 #R_LIST_NOTIF_DE1:ListNotificationResponse notificati branch/count;S13-C1 SW
+//   S13-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S14-C1 SW
+//   S14-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S15-C1 SW
+//   S15-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR_IN2_PIR:ListNotificationRespons branch/count;S16-C1 SW
+//   S16-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S17-C1 SW
+//   S17-C2 响应结构匹配 #R_LIST_NOTIF_IN2_PIR:ListNotificationResponse notifi branch/count;S18-C1 SW
+//   S18-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S19-C1 SW
+//   S19-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S20-C1 SW
+//   S20-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR_EN1:ListNotificationResponse no branch/count;S21-C1 SW
+//   S21-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S22-C1 SW
+//   S22-C2 响应结构匹配 #R_LIST_NOTIF_EN1:ListNotificationResponse notificati branch/count;S23-C1 SW
+//   S23-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S24-C1 SW
+//   S24-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S25-C1 SW
+//   S25-C2 响应结构匹配 #R_LIST_NOTIF_DI1_DE1:ListNotificationResponse notifi branch/count;S26-C1 SW
+//   S26-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S27-C1 SW
+//   S27-C2 响应结构匹配 #R_LIST_NOTIF_DE1:ListNotificationResponse notificati branch/count;S28-C1 SW
+//   S28-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S29-C1 SW
+//   S29-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S30-C1 SW
+//   S30-C2 响应结构匹配 #R_LIST_NOTIF_IN1_EN1:ListNotificationResponse notifi branch/count;S31-C1 SW
+//   S31-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S32-C1 SW
+//   S32-C2 响应结构匹配 #R_LIST_NOTIF_EN1:ListNotificationResponse notificati branch/count;S33-C1 SW
+//   S33-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S34-C1 SW
+//   S34-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S35-C1 SW
+//   S35-C2 响应结构匹配 #R_LIST_NOTIF_EN1_IN2_PIR:ListNotificationResponse no branch/count;S36-C1 SW
+//   S36-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S37-C1 SW
+//   S37-C2 响应结构匹配 #R_LIST_NOTIF_EN1:ListNotificationResponse notificati branch/count;S38-C1 SW
+//   S38-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S39-C1 SW
+//   S39-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S40-C1 SW
+//   S40-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR:ListNotificationResponse notifi branch/count;S41-C1 SW
+//   S41-C2 响应结构匹配 #R_REMOVE_NOTIF_NOTHING_TO_DELETE deleteNotificationStatus;S42-C1 SW
+//   S42-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR:ListNotificationResponse notifi branch/count;S43-C1 SW
+//   S43-C2 响应结构匹配 #R_REMOVE_NOTIF_NOTHING_TO_DELETE deleteNotificationStatus;S44-C1 SW
+//   S44-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR:ListNotificationResponse notifi branch/count;S45-C1 SW
+//   S45-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus;S46-C1 SW
+//   S46-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S47-C1 SW
+//   S47-C2 响应结构匹配 #R_REMOVE_NOTIF_NOTHING_TO_DELETE deleteNotificationStatus;S48-C1 SW
+//   S48-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count;S49-C1 SW
+//   S49-C2 响应结构匹配 #R_REMOVE_NOTIF_NOTHING_TO_DELETE deleteNotificationStatus;S50-C1 SW
+//   S50-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count
+// 本函数由 CaseIR 4.2.16.2.1 编译生成(fullwave-blindgen-live-70-W1-laneA2,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
+// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
+// 适用性 M:编译期门,运行时由 harness 环境前置承担。
+function TC_eUICC_ES10b_RemoveNotificationFromList_01_10_Nominal_all_10_sequences() {
+    var bind = curBind;
+    var profileAidSession = BindEs10xProcProfileDynamic.beginSession(bind, "TC_eUICC_ES10b_RemoveNotificationFromList_01_10_Nominal_all_10_sequences");
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+    var s51 = bind.resetAndAtr();
+    bind.checkData("ICH-SEQ01-IC1-K1-C1 ATR_present", "1", s51.atr_hex !== "" ? "1" : "0");
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s52 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("ICH-SEQ01-IC1-K2-C2 FCP_Template", "1", s52.resp.length > 0 ? "1" : "0");
+    bind.checkData("ICH-SEQ01-IC1-K2-C4 SW", "9000", s52.sw);
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s53 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("ICH-SEQ01-IC1-K3-C4 SW", "9000", s53.sw);
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+    var steady54 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+    });
+    bind.checkData("ICH-SEQ01-IC1-K4-C4 final SW", "9000", steady54.final.sw);
+
+    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s55 = bind.manageChannelOpen("9000");
+    bind.checkData("ICH-SEQ01-IC2-K1-C4 SW", "9000", s55.sw);
+    bind.checkData("ICH-SEQ01-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s55.chan !== null ? "1" : "0");
+
+    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s56 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("ICH-SEQ01-IC2-K2-C4 SW", "9000", s56.sw);
+
+    // 步骤 1:SEQ01-IC4] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla1 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s1 = bind.sendApdu(sdCla1, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S1-C1 SW", "9000", s1.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw1T = BindEs10xSingleRequest.parseBerTlv(s1.resp);
+    var lw1Ok0 = lw1T.length === 1 && lw1T[0].tag === "BF28";
+    var lw1_br = lw1Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw1T[0].value) : [];
+    var lw1_brtag = lw1_br.length === 1 ? lw1_br[0].tag : "";
+    var lw1_els = lw1_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw1_br[0].value) : [];
+    bind.checkData("S1-C2 响应结构匹配 #R_LIST_NOTIF_IN1_IN1_PIR:ListNotificationResponse no branch/count", "1", (lw1_brtag === "A0" && lw1_els.length === 2) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1 ← 步 1 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd2_NOTIF_SEQ_NO_IN1 = {ok: false, seq: ""};
+    var nd2_NOTIF_SEQ_NO_IN1T = BindEs10xSingleRequest.parseBerTlv(s1.resp);
+    if (nd2_NOTIF_SEQ_NO_IN1T.length === 1 && nd2_NOTIF_SEQ_NO_IN1T[0].tag === "BF28") {
+        var nd2_NOTIF_SEQ_NO_IN1X1 = BindEs10xSingleRequest.parseBerTlv(nd2_NOTIF_SEQ_NO_IN1T[0].value);
+        if (nd2_NOTIF_SEQ_NO_IN1X1.length === 1 && nd2_NOTIF_SEQ_NO_IN1X1[0].tag === "A0") {
+            var nd2_NOTIF_SEQ_NO_IN1X2 = BindEs10xSingleRequest.parseBerTlv(nd2_NOTIF_SEQ_NO_IN1X1[0].value);
+            var nd2_NOTIF_SEQ_NO_IN1XHIT = 0;
+            for (var nd2_NOTIF_SEQ_NO_IN1XI = 0; nd2_NOTIF_SEQ_NO_IN1XI < nd2_NOTIF_SEQ_NO_IN1X2.length; nd2_NOTIF_SEQ_NO_IN1XI++) {
+                if (nd2_NOTIF_SEQ_NO_IN1X2[nd2_NOTIF_SEQ_NO_IN1XI].tag !== "BF2F") { continue; }
+                var nd2_NOTIF_SEQ_NO_IN1XM = BindEs10xSingleRequest.parseBerTlv(nd2_NOTIF_SEQ_NO_IN1X2[nd2_NOTIF_SEQ_NO_IN1XI].value);
+                for (var nd2_NOTIF_SEQ_NO_IN1XJ = 0; nd2_NOTIF_SEQ_NO_IN1XJ < nd2_NOTIF_SEQ_NO_IN1XM.length; nd2_NOTIF_SEQ_NO_IN1XJ++) {
+                    if (nd2_NOTIF_SEQ_NO_IN1XM[nd2_NOTIF_SEQ_NO_IN1XJ].tag === "81" && nd2_NOTIF_SEQ_NO_IN1XM[nd2_NOTIF_SEQ_NO_IN1XJ].value === "80") {
+                        nd2_NOTIF_SEQ_NO_IN1XHIT += 1;
+                        if (nd2_NOTIF_SEQ_NO_IN1XHIT === 1) {
+                            for (var nd2_NOTIF_SEQ_NO_IN1XK = 0; nd2_NOTIF_SEQ_NO_IN1XK < nd2_NOTIF_SEQ_NO_IN1XM.length; nd2_NOTIF_SEQ_NO_IN1XK++) {
+                                if (nd2_NOTIF_SEQ_NO_IN1XM[nd2_NOTIF_SEQ_NO_IN1XK].tag === "80") { nd2_NOTIF_SEQ_NO_IN1.seq = nd2_NOTIF_SEQ_NO_IN1XM[nd2_NOTIF_SEQ_NO_IN1XK].value; nd2_NOTIF_SEQ_NO_IN1.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd2_NOTIF_SEQ_NO_IN1Req = nd2_NOTIF_SEQ_NO_IN1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd2_NOTIF_SEQ_NO_IN1.seq)) : "";
+    // 步骤 2:SEQ01-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla2 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_IN1 stays in execution domain
+    var s2 = bind.sendApdu(sdCla2, "E2", "91", "00", nd2_NOTIF_SEQ_NO_IN1Req, "00", "9000");
+    bind.checkData("S2-C1 SW", "9000", s2.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1", s2.cmd, profileAidSession);
+    var ns2W = BindEs10xSingleRequest.parseBerTlv(s2.resp);
+    var ns2Ok0 = ns2W.length === 1 && ns2W[0].tag === "BF30";
+    var ns2In = ns2Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns2W[0].value) : [];
+    var ns2Code = (ns2In.length === 1 && ns2In[0].tag === "80") ? ns2In[0].value : "absent";
+    bind.checkData("S2-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns2Code);
+
+    // 步骤 3:SEQ01-2] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla3 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s3 = bind.sendApdu(sdCla3, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S3-C1 SW", "9000", s3.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw3T = BindEs10xSingleRequest.parseBerTlv(s3.resp);
+    var lw3Ok0 = lw3T.length === 1 && lw3T[0].tag === "BF28";
+    var lw3_br = lw3Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw3T[0].value) : [];
+    var lw3_brtag = lw3_br.length === 1 ? lw3_br[0].tag : "";
+    var lw3_els = lw3_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw3_br[0].value) : [];
+    bind.checkData("S3-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR:ListNotificationResponse notifi branch/count", "1", (lw3_brtag === "A0" && lw3_els.length === 1) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1_PIR ← 步 1 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd4_NOTIF_SEQ_NO_IN1_PIR = {ok: false, seq: ""};
+    var nd4_NOTIF_SEQ_NO_IN1_PIRT = BindEs10xSingleRequest.parseBerTlv(s1.resp);
+    if (nd4_NOTIF_SEQ_NO_IN1_PIRT.length === 1 && nd4_NOTIF_SEQ_NO_IN1_PIRT[0].tag === "BF28") {
+        var nd4_NOTIF_SEQ_NO_IN1_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd4_NOTIF_SEQ_NO_IN1_PIRT[0].value);
+        if (nd4_NOTIF_SEQ_NO_IN1_PIRX1.length === 1 && nd4_NOTIF_SEQ_NO_IN1_PIRX1[0].tag === "A0") {
+            var nd4_NOTIF_SEQ_NO_IN1_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd4_NOTIF_SEQ_NO_IN1_PIRX1[0].value);
+            var nd4_NOTIF_SEQ_NO_IN1_PIRXHIT = 0;
+            for (var nd4_NOTIF_SEQ_NO_IN1_PIRXI = 0; nd4_NOTIF_SEQ_NO_IN1_PIRXI < nd4_NOTIF_SEQ_NO_IN1_PIRX2.length; nd4_NOTIF_SEQ_NO_IN1_PIRXI++) {
+                if (nd4_NOTIF_SEQ_NO_IN1_PIRX2[nd4_NOTIF_SEQ_NO_IN1_PIRXI].tag !== "BF2F") { continue; }
+                var nd4_NOTIF_SEQ_NO_IN1_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd4_NOTIF_SEQ_NO_IN1_PIRX2[nd4_NOTIF_SEQ_NO_IN1_PIRXI].value);
+                for (var nd4_NOTIF_SEQ_NO_IN1_PIRXJ = 0; nd4_NOTIF_SEQ_NO_IN1_PIRXJ < nd4_NOTIF_SEQ_NO_IN1_PIRXM.length; nd4_NOTIF_SEQ_NO_IN1_PIRXJ++) {
+                    if (nd4_NOTIF_SEQ_NO_IN1_PIRXM[nd4_NOTIF_SEQ_NO_IN1_PIRXJ].tag === "81" && nd4_NOTIF_SEQ_NO_IN1_PIRXM[nd4_NOTIF_SEQ_NO_IN1_PIRXJ].value === "80") {
+                        nd4_NOTIF_SEQ_NO_IN1_PIRXHIT += 1;
+                        if (nd4_NOTIF_SEQ_NO_IN1_PIRXHIT === 2) {
+                            for (var nd4_NOTIF_SEQ_NO_IN1_PIRXK = 0; nd4_NOTIF_SEQ_NO_IN1_PIRXK < nd4_NOTIF_SEQ_NO_IN1_PIRXM.length; nd4_NOTIF_SEQ_NO_IN1_PIRXK++) {
+                                if (nd4_NOTIF_SEQ_NO_IN1_PIRXM[nd4_NOTIF_SEQ_NO_IN1_PIRXK].tag === "80") { nd4_NOTIF_SEQ_NO_IN1_PIR.seq = nd4_NOTIF_SEQ_NO_IN1_PIRXM[nd4_NOTIF_SEQ_NO_IN1_PIRXK].value; nd4_NOTIF_SEQ_NO_IN1_PIR.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd4_NOTIF_SEQ_NO_IN1_PIRReq = nd4_NOTIF_SEQ_NO_IN1_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd4_NOTIF_SEQ_NO_IN1_PIR.seq)) : "";
+    // 步骤 4:SEQ01-3] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079, RQ31_182)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla4 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_IN1_PIR stays in execution domain
+    var s4 = bind.sendApdu(sdCla4, "E2", "91", "00", nd4_NOTIF_SEQ_NO_IN1_PIRReq, "00", "9000");
+    bind.checkData("S4-C1 SW", "9000", s4.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1_PIR", s4.cmd, profileAidSession);
+    var ns4W = BindEs10xSingleRequest.parseBerTlv(s4.resp);
+    var ns4Ok0 = ns4W.length === 1 && ns4W[0].tag === "BF30";
+    var ns4In = ns4Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns4W[0].value) : [];
+    var ns4Code = (ns4In.length === 1 && ns4In[0].tag === "80") ? ns4In[0].value : "absent";
+    bind.checkData("S4-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns4Code);
+
+    // 步骤 5:SEQ01-4] MTD_STORE_DATA(tc_step;REQ: RQ25_020, RQ31_182)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla5 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s5 = bind.sendApdu(sdCla5, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S5-C1 SW", "9000", s5.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw5T = BindEs10xSingleRequest.parseBerTlv(s5.resp);
+    var lw5Ok0 = lw5T.length === 1 && lw5T[0].tag === "BF28";
+    var lw5_br = lw5Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw5T[0].value) : [];
+    var lw5_brtag = lw5_br.length === 1 ? lw5_br[0].tag : "";
+    var lw5_els = lw5_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw5_br[0].value) : [];
+    bind.checkData("S5-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw5_brtag === "A0" && lw5_els.length === 0) ? "1" : "0");
+
+    // 步骤 6:SEQ02-IC5] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla6 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s6 = bind.sendApdu(sdCla6, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S6-C1 SW", "9000", s6.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw6T = BindEs10xSingleRequest.parseBerTlv(s6.resp);
+    var lw6Ok0 = lw6T.length === 1 && lw6T[0].tag === "BF28";
+    var lw6_br = lw6Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw6T[0].value) : [];
+    var lw6_brtag = lw6_br.length === 1 ? lw6_br[0].tag : "";
+    var lw6_els = lw6_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw6_br[0].value) : [];
+    bind.checkData("S6-C2 响应结构匹配 #R_LIST_NOTIF_EN1:ListNotificationResponse notificati branch/count", "1", (lw6_brtag === "A0" && lw6_els.length === 1) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_EN1 ← 步 6 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=40 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd7_NOTIF_SEQ_NO_EN1 = {ok: false, seq: ""};
+    var nd7_NOTIF_SEQ_NO_EN1T = BindEs10xSingleRequest.parseBerTlv(s6.resp);
+    if (nd7_NOTIF_SEQ_NO_EN1T.length === 1 && nd7_NOTIF_SEQ_NO_EN1T[0].tag === "BF28") {
+        var nd7_NOTIF_SEQ_NO_EN1X1 = BindEs10xSingleRequest.parseBerTlv(nd7_NOTIF_SEQ_NO_EN1T[0].value);
+        if (nd7_NOTIF_SEQ_NO_EN1X1.length === 1 && nd7_NOTIF_SEQ_NO_EN1X1[0].tag === "A0") {
+            var nd7_NOTIF_SEQ_NO_EN1X2 = BindEs10xSingleRequest.parseBerTlv(nd7_NOTIF_SEQ_NO_EN1X1[0].value);
+            var nd7_NOTIF_SEQ_NO_EN1XHIT = 0;
+            for (var nd7_NOTIF_SEQ_NO_EN1XI = 0; nd7_NOTIF_SEQ_NO_EN1XI < nd7_NOTIF_SEQ_NO_EN1X2.length; nd7_NOTIF_SEQ_NO_EN1XI++) {
+                if (nd7_NOTIF_SEQ_NO_EN1X2[nd7_NOTIF_SEQ_NO_EN1XI].tag !== "BF2F") { continue; }
+                var nd7_NOTIF_SEQ_NO_EN1XM = BindEs10xSingleRequest.parseBerTlv(nd7_NOTIF_SEQ_NO_EN1X2[nd7_NOTIF_SEQ_NO_EN1XI].value);
+                for (var nd7_NOTIF_SEQ_NO_EN1XJ = 0; nd7_NOTIF_SEQ_NO_EN1XJ < nd7_NOTIF_SEQ_NO_EN1XM.length; nd7_NOTIF_SEQ_NO_EN1XJ++) {
+                    if (nd7_NOTIF_SEQ_NO_EN1XM[nd7_NOTIF_SEQ_NO_EN1XJ].tag === "81" && nd7_NOTIF_SEQ_NO_EN1XM[nd7_NOTIF_SEQ_NO_EN1XJ].value === "40") {
+                        nd7_NOTIF_SEQ_NO_EN1XHIT += 1;
+                        if (nd7_NOTIF_SEQ_NO_EN1XHIT === 1) {
+                            for (var nd7_NOTIF_SEQ_NO_EN1XK = 0; nd7_NOTIF_SEQ_NO_EN1XK < nd7_NOTIF_SEQ_NO_EN1XM.length; nd7_NOTIF_SEQ_NO_EN1XK++) {
+                                if (nd7_NOTIF_SEQ_NO_EN1XM[nd7_NOTIF_SEQ_NO_EN1XK].tag === "80") { nd7_NOTIF_SEQ_NO_EN1.seq = nd7_NOTIF_SEQ_NO_EN1XM[nd7_NOTIF_SEQ_NO_EN1XK].value; nd7_NOTIF_SEQ_NO_EN1.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd7_NOTIF_SEQ_NO_EN1Req = nd7_NOTIF_SEQ_NO_EN1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd7_NOTIF_SEQ_NO_EN1.seq)) : "";
+    // 步骤 7:SEQ02-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla7 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_EN1 stays in execution domain
+    var s7 = bind.sendApdu(sdCla7, "E2", "91", "00", nd7_NOTIF_SEQ_NO_EN1Req, "00", "9000");
+    bind.checkData("S7-C1 SW", "9000", s7.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_EN1", s7.cmd, profileAidSession);
+    var ns7W = BindEs10xSingleRequest.parseBerTlv(s7.resp);
+    var ns7Ok0 = ns7W.length === 1 && ns7W[0].tag === "BF30";
+    var ns7In = ns7Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns7W[0].value) : [];
+    var ns7Code = (ns7In.length === 1 && ns7In[0].tag === "80") ? ns7In[0].value : "absent";
+    bind.checkData("S7-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns7Code);
+
+    // 步骤 8:SEQ02-2] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla8 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s8 = bind.sendApdu(sdCla8, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S8-C1 SW", "9000", s8.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw8T = BindEs10xSingleRequest.parseBerTlv(s8.resp);
+    var lw8Ok0 = lw8T.length === 1 && lw8T[0].tag === "BF28";
+    var lw8_br = lw8Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw8T[0].value) : [];
+    var lw8_brtag = lw8_br.length === 1 ? lw8_br[0].tag : "";
+    var lw8_els = lw8_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw8_br[0].value) : [];
+    bind.checkData("S8-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw8_brtag === "A0" && lw8_els.length === 0) ? "1" : "0");
+
+    // 步骤 9:SEQ03-IC6] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla9 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s9 = bind.sendApdu(sdCla9, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S9-C1 SW", "9000", s9.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw9T = BindEs10xSingleRequest.parseBerTlv(s9.resp);
+    var lw9Ok0 = lw9T.length === 1 && lw9T[0].tag === "BF28";
+    var lw9_br = lw9Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw9T[0].value) : [];
+    var lw9_brtag = lw9_br.length === 1 ? lw9_br[0].tag : "";
+    var lw9_els = lw9_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw9_br[0].value) : [];
+    bind.checkData("S9-C2 响应结构匹配 #R_LIST_NOTIF_DI1:ListNotificationResponse notificati branch/count", "1", (lw9_brtag === "A0" && lw9_els.length === 1) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_DI1 ← 步 9 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=20 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd10_NOTIF_SEQ_NO_DI1 = {ok: false, seq: ""};
+    var nd10_NOTIF_SEQ_NO_DI1T = BindEs10xSingleRequest.parseBerTlv(s9.resp);
+    if (nd10_NOTIF_SEQ_NO_DI1T.length === 1 && nd10_NOTIF_SEQ_NO_DI1T[0].tag === "BF28") {
+        var nd10_NOTIF_SEQ_NO_DI1X1 = BindEs10xSingleRequest.parseBerTlv(nd10_NOTIF_SEQ_NO_DI1T[0].value);
+        if (nd10_NOTIF_SEQ_NO_DI1X1.length === 1 && nd10_NOTIF_SEQ_NO_DI1X1[0].tag === "A0") {
+            var nd10_NOTIF_SEQ_NO_DI1X2 = BindEs10xSingleRequest.parseBerTlv(nd10_NOTIF_SEQ_NO_DI1X1[0].value);
+            var nd10_NOTIF_SEQ_NO_DI1XHIT = 0;
+            for (var nd10_NOTIF_SEQ_NO_DI1XI = 0; nd10_NOTIF_SEQ_NO_DI1XI < nd10_NOTIF_SEQ_NO_DI1X2.length; nd10_NOTIF_SEQ_NO_DI1XI++) {
+                if (nd10_NOTIF_SEQ_NO_DI1X2[nd10_NOTIF_SEQ_NO_DI1XI].tag !== "BF2F") { continue; }
+                var nd10_NOTIF_SEQ_NO_DI1XM = BindEs10xSingleRequest.parseBerTlv(nd10_NOTIF_SEQ_NO_DI1X2[nd10_NOTIF_SEQ_NO_DI1XI].value);
+                for (var nd10_NOTIF_SEQ_NO_DI1XJ = 0; nd10_NOTIF_SEQ_NO_DI1XJ < nd10_NOTIF_SEQ_NO_DI1XM.length; nd10_NOTIF_SEQ_NO_DI1XJ++) {
+                    if (nd10_NOTIF_SEQ_NO_DI1XM[nd10_NOTIF_SEQ_NO_DI1XJ].tag === "81" && nd10_NOTIF_SEQ_NO_DI1XM[nd10_NOTIF_SEQ_NO_DI1XJ].value === "20") {
+                        nd10_NOTIF_SEQ_NO_DI1XHIT += 1;
+                        if (nd10_NOTIF_SEQ_NO_DI1XHIT === 1) {
+                            for (var nd10_NOTIF_SEQ_NO_DI1XK = 0; nd10_NOTIF_SEQ_NO_DI1XK < nd10_NOTIF_SEQ_NO_DI1XM.length; nd10_NOTIF_SEQ_NO_DI1XK++) {
+                                if (nd10_NOTIF_SEQ_NO_DI1XM[nd10_NOTIF_SEQ_NO_DI1XK].tag === "80") { nd10_NOTIF_SEQ_NO_DI1.seq = nd10_NOTIF_SEQ_NO_DI1XM[nd10_NOTIF_SEQ_NO_DI1XK].value; nd10_NOTIF_SEQ_NO_DI1.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd10_NOTIF_SEQ_NO_DI1Req = nd10_NOTIF_SEQ_NO_DI1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd10_NOTIF_SEQ_NO_DI1.seq)) : "";
+    // 步骤 10:SEQ03-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla10 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_DI1 stays in execution domain
+    var s10 = bind.sendApdu(sdCla10, "E2", "91", "00", nd10_NOTIF_SEQ_NO_DI1Req, "00", "9000");
+    bind.checkData("S10-C1 SW", "9000", s10.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_DI1", s10.cmd, profileAidSession);
+    var ns10W = BindEs10xSingleRequest.parseBerTlv(s10.resp);
+    var ns10Ok0 = ns10W.length === 1 && ns10W[0].tag === "BF30";
+    var ns10In = ns10Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns10W[0].value) : [];
+    var ns10Code = (ns10In.length === 1 && ns10In[0].tag === "80") ? ns10In[0].value : "absent";
+    bind.checkData("S10-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns10Code);
+
+    // 步骤 11:SEQ03-2] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla11 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s11 = bind.sendApdu(sdCla11, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S11-C1 SW", "9000", s11.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw11T = BindEs10xSingleRequest.parseBerTlv(s11.resp);
+    var lw11Ok0 = lw11T.length === 1 && lw11T[0].tag === "BF28";
+    var lw11_br = lw11Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw11T[0].value) : [];
+    var lw11_brtag = lw11_br.length === 1 ? lw11_br[0].tag : "";
+    var lw11_els = lw11_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw11_br[0].value) : [];
+    bind.checkData("S11-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw11_brtag === "A0" && lw11_els.length === 0) ? "1" : "0");
+
+    // 步骤 12:SEQ04-IC7] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla12 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s12 = bind.sendApdu(sdCla12, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S12-C1 SW", "9000", s12.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw12T = BindEs10xSingleRequest.parseBerTlv(s12.resp);
+    var lw12Ok0 = lw12T.length === 1 && lw12T[0].tag === "BF28";
+    var lw12_br = lw12Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw12T[0].value) : [];
+    var lw12_brtag = lw12_br.length === 1 ? lw12_br[0].tag : "";
+    var lw12_els = lw12_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw12_br[0].value) : [];
+    bind.checkData("S12-C2 响应结构匹配 #R_LIST_NOTIF_DE1:ListNotificationResponse notificati branch/count", "1", (lw12_brtag === "A0" && lw12_els.length === 1) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_DE1 ← 步 12 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=10 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd13_NOTIF_SEQ_NO_DE1 = {ok: false, seq: ""};
+    var nd13_NOTIF_SEQ_NO_DE1T = BindEs10xSingleRequest.parseBerTlv(s12.resp);
+    if (nd13_NOTIF_SEQ_NO_DE1T.length === 1 && nd13_NOTIF_SEQ_NO_DE1T[0].tag === "BF28") {
+        var nd13_NOTIF_SEQ_NO_DE1X1 = BindEs10xSingleRequest.parseBerTlv(nd13_NOTIF_SEQ_NO_DE1T[0].value);
+        if (nd13_NOTIF_SEQ_NO_DE1X1.length === 1 && nd13_NOTIF_SEQ_NO_DE1X1[0].tag === "A0") {
+            var nd13_NOTIF_SEQ_NO_DE1X2 = BindEs10xSingleRequest.parseBerTlv(nd13_NOTIF_SEQ_NO_DE1X1[0].value);
+            var nd13_NOTIF_SEQ_NO_DE1XHIT = 0;
+            for (var nd13_NOTIF_SEQ_NO_DE1XI = 0; nd13_NOTIF_SEQ_NO_DE1XI < nd13_NOTIF_SEQ_NO_DE1X2.length; nd13_NOTIF_SEQ_NO_DE1XI++) {
+                if (nd13_NOTIF_SEQ_NO_DE1X2[nd13_NOTIF_SEQ_NO_DE1XI].tag !== "BF2F") { continue; }
+                var nd13_NOTIF_SEQ_NO_DE1XM = BindEs10xSingleRequest.parseBerTlv(nd13_NOTIF_SEQ_NO_DE1X2[nd13_NOTIF_SEQ_NO_DE1XI].value);
+                for (var nd13_NOTIF_SEQ_NO_DE1XJ = 0; nd13_NOTIF_SEQ_NO_DE1XJ < nd13_NOTIF_SEQ_NO_DE1XM.length; nd13_NOTIF_SEQ_NO_DE1XJ++) {
+                    if (nd13_NOTIF_SEQ_NO_DE1XM[nd13_NOTIF_SEQ_NO_DE1XJ].tag === "81" && nd13_NOTIF_SEQ_NO_DE1XM[nd13_NOTIF_SEQ_NO_DE1XJ].value === "10") {
+                        nd13_NOTIF_SEQ_NO_DE1XHIT += 1;
+                        if (nd13_NOTIF_SEQ_NO_DE1XHIT === 1) {
+                            for (var nd13_NOTIF_SEQ_NO_DE1XK = 0; nd13_NOTIF_SEQ_NO_DE1XK < nd13_NOTIF_SEQ_NO_DE1XM.length; nd13_NOTIF_SEQ_NO_DE1XK++) {
+                                if (nd13_NOTIF_SEQ_NO_DE1XM[nd13_NOTIF_SEQ_NO_DE1XK].tag === "80") { nd13_NOTIF_SEQ_NO_DE1.seq = nd13_NOTIF_SEQ_NO_DE1XM[nd13_NOTIF_SEQ_NO_DE1XK].value; nd13_NOTIF_SEQ_NO_DE1.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd13_NOTIF_SEQ_NO_DE1Req = nd13_NOTIF_SEQ_NO_DE1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd13_NOTIF_SEQ_NO_DE1.seq)) : "";
+    // 步骤 13:SEQ04-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla13 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_DE1 stays in execution domain
+    var s13 = bind.sendApdu(sdCla13, "E2", "91", "00", nd13_NOTIF_SEQ_NO_DE1Req, "00", "9000");
+    bind.checkData("S13-C1 SW", "9000", s13.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_DE1", s13.cmd, profileAidSession);
+    var ns13W = BindEs10xSingleRequest.parseBerTlv(s13.resp);
+    var ns13Ok0 = ns13W.length === 1 && ns13W[0].tag === "BF30";
+    var ns13In = ns13Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns13W[0].value) : [];
+    var ns13Code = (ns13In.length === 1 && ns13In[0].tag === "80") ? ns13In[0].value : "absent";
+    bind.checkData("S13-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns13Code);
+
+    // 步骤 14:SEQ04-2] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla14 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s14 = bind.sendApdu(sdCla14, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S14-C1 SW", "9000", s14.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw14T = BindEs10xSingleRequest.parseBerTlv(s14.resp);
+    var lw14Ok0 = lw14T.length === 1 && lw14T[0].tag === "BF28";
+    var lw14_br = lw14Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw14T[0].value) : [];
+    var lw14_brtag = lw14_br.length === 1 ? lw14_br[0].tag : "";
+    var lw14_els = lw14_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw14_br[0].value) : [];
+    bind.checkData("S14-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw14_brtag === "A0" && lw14_els.length === 0) ? "1" : "0");
+
+    // 步骤 15:SEQ05-IC5] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla15 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s15 = bind.sendApdu(sdCla15, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S15-C1 SW", "9000", s15.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw15T = BindEs10xSingleRequest.parseBerTlv(s15.resp);
+    var lw15Ok0 = lw15T.length === 1 && lw15T[0].tag === "BF28";
+    var lw15_br = lw15Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw15T[0].value) : [];
+    var lw15_brtag = lw15_br.length === 1 ? lw15_br[0].tag : "";
+    var lw15_els = lw15_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw15_br[0].value) : [];
+    bind.checkData("S15-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR_IN2_PIR:ListNotificationRespons branch/count", "1", (lw15_brtag === "A0" && lw15_els.length === 2) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1_PIR ← 步 15 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd16_NOTIF_SEQ_NO_IN1_PIR = {ok: false, seq: ""};
+    var nd16_NOTIF_SEQ_NO_IN1_PIRT = BindEs10xSingleRequest.parseBerTlv(s15.resp);
+    if (nd16_NOTIF_SEQ_NO_IN1_PIRT.length === 1 && nd16_NOTIF_SEQ_NO_IN1_PIRT[0].tag === "BF28") {
+        var nd16_NOTIF_SEQ_NO_IN1_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd16_NOTIF_SEQ_NO_IN1_PIRT[0].value);
+        if (nd16_NOTIF_SEQ_NO_IN1_PIRX1.length === 1 && nd16_NOTIF_SEQ_NO_IN1_PIRX1[0].tag === "A0") {
+            var nd16_NOTIF_SEQ_NO_IN1_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd16_NOTIF_SEQ_NO_IN1_PIRX1[0].value);
+            var nd16_NOTIF_SEQ_NO_IN1_PIRXHIT = 0;
+            for (var nd16_NOTIF_SEQ_NO_IN1_PIRXI = 0; nd16_NOTIF_SEQ_NO_IN1_PIRXI < nd16_NOTIF_SEQ_NO_IN1_PIRX2.length; nd16_NOTIF_SEQ_NO_IN1_PIRXI++) {
+                if (nd16_NOTIF_SEQ_NO_IN1_PIRX2[nd16_NOTIF_SEQ_NO_IN1_PIRXI].tag !== "BF2F") { continue; }
+                var nd16_NOTIF_SEQ_NO_IN1_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd16_NOTIF_SEQ_NO_IN1_PIRX2[nd16_NOTIF_SEQ_NO_IN1_PIRXI].value);
+                for (var nd16_NOTIF_SEQ_NO_IN1_PIRXJ = 0; nd16_NOTIF_SEQ_NO_IN1_PIRXJ < nd16_NOTIF_SEQ_NO_IN1_PIRXM.length; nd16_NOTIF_SEQ_NO_IN1_PIRXJ++) {
+                    if (nd16_NOTIF_SEQ_NO_IN1_PIRXM[nd16_NOTIF_SEQ_NO_IN1_PIRXJ].tag === "81" && nd16_NOTIF_SEQ_NO_IN1_PIRXM[nd16_NOTIF_SEQ_NO_IN1_PIRXJ].value === "80") {
+                        nd16_NOTIF_SEQ_NO_IN1_PIRXHIT += 1;
+                        if (nd16_NOTIF_SEQ_NO_IN1_PIRXHIT === 2) {
+                            for (var nd16_NOTIF_SEQ_NO_IN1_PIRXK = 0; nd16_NOTIF_SEQ_NO_IN1_PIRXK < nd16_NOTIF_SEQ_NO_IN1_PIRXM.length; nd16_NOTIF_SEQ_NO_IN1_PIRXK++) {
+                                if (nd16_NOTIF_SEQ_NO_IN1_PIRXM[nd16_NOTIF_SEQ_NO_IN1_PIRXK].tag === "80") { nd16_NOTIF_SEQ_NO_IN1_PIR.seq = nd16_NOTIF_SEQ_NO_IN1_PIRXM[nd16_NOTIF_SEQ_NO_IN1_PIRXK].value; nd16_NOTIF_SEQ_NO_IN1_PIR.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd16_NOTIF_SEQ_NO_IN1_PIRReq = nd16_NOTIF_SEQ_NO_IN1_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd16_NOTIF_SEQ_NO_IN1_PIR.seq)) : "";
+    // 步骤 16:SEQ05-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079, RQ31_182)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla16 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_IN1_PIR stays in execution domain
+    var s16 = bind.sendApdu(sdCla16, "E2", "91", "00", nd16_NOTIF_SEQ_NO_IN1_PIRReq, "00", "9000");
+    bind.checkData("S16-C1 SW", "9000", s16.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1_PIR", s16.cmd, profileAidSession);
+    var ns16W = BindEs10xSingleRequest.parseBerTlv(s16.resp);
+    var ns16Ok0 = ns16W.length === 1 && ns16W[0].tag === "BF30";
+    var ns16In = ns16Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns16W[0].value) : [];
+    var ns16Code = (ns16In.length === 1 && ns16In[0].tag === "80") ? ns16In[0].value : "absent";
+    bind.checkData("S16-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns16Code);
+
+    // 步骤 17:SEQ05-2] MTD_STORE_DATA(tc_step;REQ: RQ25_020, RQ31_182)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla17 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s17 = bind.sendApdu(sdCla17, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S17-C1 SW", "9000", s17.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw17T = BindEs10xSingleRequest.parseBerTlv(s17.resp);
+    var lw17Ok0 = lw17T.length === 1 && lw17T[0].tag === "BF28";
+    var lw17_br = lw17Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw17T[0].value) : [];
+    var lw17_brtag = lw17_br.length === 1 ? lw17_br[0].tag : "";
+    var lw17_els = lw17_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw17_br[0].value) : [];
+    bind.checkData("S17-C2 响应结构匹配 #R_LIST_NOTIF_IN2_PIR:ListNotificationResponse notifi branch/count", "1", (lw17_brtag === "A0" && lw17_els.length === 1) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN2_PIR ← 步 15 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd18_NOTIF_SEQ_NO_IN2_PIR = {ok: false, seq: ""};
+    var nd18_NOTIF_SEQ_NO_IN2_PIRT = BindEs10xSingleRequest.parseBerTlv(s15.resp);
+    if (nd18_NOTIF_SEQ_NO_IN2_PIRT.length === 1 && nd18_NOTIF_SEQ_NO_IN2_PIRT[0].tag === "BF28") {
+        var nd18_NOTIF_SEQ_NO_IN2_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd18_NOTIF_SEQ_NO_IN2_PIRT[0].value);
+        if (nd18_NOTIF_SEQ_NO_IN2_PIRX1.length === 1 && nd18_NOTIF_SEQ_NO_IN2_PIRX1[0].tag === "A0") {
+            var nd18_NOTIF_SEQ_NO_IN2_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd18_NOTIF_SEQ_NO_IN2_PIRX1[0].value);
+            var nd18_NOTIF_SEQ_NO_IN2_PIRXHIT = 0;
+            for (var nd18_NOTIF_SEQ_NO_IN2_PIRXI = 0; nd18_NOTIF_SEQ_NO_IN2_PIRXI < nd18_NOTIF_SEQ_NO_IN2_PIRX2.length; nd18_NOTIF_SEQ_NO_IN2_PIRXI++) {
+                if (nd18_NOTIF_SEQ_NO_IN2_PIRX2[nd18_NOTIF_SEQ_NO_IN2_PIRXI].tag !== "BF2F") { continue; }
+                var nd18_NOTIF_SEQ_NO_IN2_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd18_NOTIF_SEQ_NO_IN2_PIRX2[nd18_NOTIF_SEQ_NO_IN2_PIRXI].value);
+                for (var nd18_NOTIF_SEQ_NO_IN2_PIRXJ = 0; nd18_NOTIF_SEQ_NO_IN2_PIRXJ < nd18_NOTIF_SEQ_NO_IN2_PIRXM.length; nd18_NOTIF_SEQ_NO_IN2_PIRXJ++) {
+                    if (nd18_NOTIF_SEQ_NO_IN2_PIRXM[nd18_NOTIF_SEQ_NO_IN2_PIRXJ].tag === "81" && nd18_NOTIF_SEQ_NO_IN2_PIRXM[nd18_NOTIF_SEQ_NO_IN2_PIRXJ].value === "80") {
+                        nd18_NOTIF_SEQ_NO_IN2_PIRXHIT += 1;
+                        if (nd18_NOTIF_SEQ_NO_IN2_PIRXHIT === 2) {
+                            for (var nd18_NOTIF_SEQ_NO_IN2_PIRXK = 0; nd18_NOTIF_SEQ_NO_IN2_PIRXK < nd18_NOTIF_SEQ_NO_IN2_PIRXM.length; nd18_NOTIF_SEQ_NO_IN2_PIRXK++) {
+                                if (nd18_NOTIF_SEQ_NO_IN2_PIRXM[nd18_NOTIF_SEQ_NO_IN2_PIRXK].tag === "80") { nd18_NOTIF_SEQ_NO_IN2_PIR.seq = nd18_NOTIF_SEQ_NO_IN2_PIRXM[nd18_NOTIF_SEQ_NO_IN2_PIRXK].value; nd18_NOTIF_SEQ_NO_IN2_PIR.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd18_NOTIF_SEQ_NO_IN2_PIRReq = nd18_NOTIF_SEQ_NO_IN2_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd18_NOTIF_SEQ_NO_IN2_PIR.seq)) : "";
+    // 步骤 18:SEQ05-3] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079, RQ31_182)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla18 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_IN2_PIR stays in execution domain
+    var s18 = bind.sendApdu(sdCla18, "E2", "91", "00", nd18_NOTIF_SEQ_NO_IN2_PIRReq, "00", "9000");
+    bind.checkData("S18-C1 SW", "9000", s18.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN2_PIR", s18.cmd, profileAidSession);
+    var ns18W = BindEs10xSingleRequest.parseBerTlv(s18.resp);
+    var ns18Ok0 = ns18W.length === 1 && ns18W[0].tag === "BF30";
+    var ns18In = ns18Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns18W[0].value) : [];
+    var ns18Code = (ns18In.length === 1 && ns18In[0].tag === "80") ? ns18In[0].value : "absent";
+    bind.checkData("S18-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns18Code);
+
+    // 步骤 19:SEQ05-4] MTD_STORE_DATA(tc_step;REQ: RQ25_020, RQ31_182)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla19 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s19 = bind.sendApdu(sdCla19, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S19-C1 SW", "9000", s19.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw19T = BindEs10xSingleRequest.parseBerTlv(s19.resp);
+    var lw19Ok0 = lw19T.length === 1 && lw19T[0].tag === "BF28";
+    var lw19_br = lw19Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw19T[0].value) : [];
+    var lw19_brtag = lw19_br.length === 1 ? lw19_br[0].tag : "";
+    var lw19_els = lw19_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw19_br[0].value) : [];
+    bind.checkData("S19-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw19_brtag === "A0" && lw19_els.length === 0) ? "1" : "0");
+
+    // 步骤 20:SEQ06-IC5] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla20 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s20 = bind.sendApdu(sdCla20, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S20-C1 SW", "9000", s20.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw20T = BindEs10xSingleRequest.parseBerTlv(s20.resp);
+    var lw20Ok0 = lw20T.length === 1 && lw20T[0].tag === "BF28";
+    var lw20_br = lw20Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw20T[0].value) : [];
+    var lw20_brtag = lw20_br.length === 1 ? lw20_br[0].tag : "";
+    var lw20_els = lw20_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw20_br[0].value) : [];
+    bind.checkData("S20-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR_EN1:ListNotificationResponse no branch/count", "1", (lw20_brtag === "A0" && lw20_els.length === 2) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1_PIR ← 步 20 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd21_NOTIF_SEQ_NO_IN1_PIR = {ok: false, seq: ""};
+    var nd21_NOTIF_SEQ_NO_IN1_PIRT = BindEs10xSingleRequest.parseBerTlv(s20.resp);
+    if (nd21_NOTIF_SEQ_NO_IN1_PIRT.length === 1 && nd21_NOTIF_SEQ_NO_IN1_PIRT[0].tag === "BF28") {
+        var nd21_NOTIF_SEQ_NO_IN1_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd21_NOTIF_SEQ_NO_IN1_PIRT[0].value);
+        if (nd21_NOTIF_SEQ_NO_IN1_PIRX1.length === 1 && nd21_NOTIF_SEQ_NO_IN1_PIRX1[0].tag === "A0") {
+            var nd21_NOTIF_SEQ_NO_IN1_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd21_NOTIF_SEQ_NO_IN1_PIRX1[0].value);
+            var nd21_NOTIF_SEQ_NO_IN1_PIRXHIT = 0;
+            for (var nd21_NOTIF_SEQ_NO_IN1_PIRXI = 0; nd21_NOTIF_SEQ_NO_IN1_PIRXI < nd21_NOTIF_SEQ_NO_IN1_PIRX2.length; nd21_NOTIF_SEQ_NO_IN1_PIRXI++) {
+                if (nd21_NOTIF_SEQ_NO_IN1_PIRX2[nd21_NOTIF_SEQ_NO_IN1_PIRXI].tag !== "BF2F") { continue; }
+                var nd21_NOTIF_SEQ_NO_IN1_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd21_NOTIF_SEQ_NO_IN1_PIRX2[nd21_NOTIF_SEQ_NO_IN1_PIRXI].value);
+                for (var nd21_NOTIF_SEQ_NO_IN1_PIRXJ = 0; nd21_NOTIF_SEQ_NO_IN1_PIRXJ < nd21_NOTIF_SEQ_NO_IN1_PIRXM.length; nd21_NOTIF_SEQ_NO_IN1_PIRXJ++) {
+                    if (nd21_NOTIF_SEQ_NO_IN1_PIRXM[nd21_NOTIF_SEQ_NO_IN1_PIRXJ].tag === "81" && nd21_NOTIF_SEQ_NO_IN1_PIRXM[nd21_NOTIF_SEQ_NO_IN1_PIRXJ].value === "80") {
+                        nd21_NOTIF_SEQ_NO_IN1_PIRXHIT += 1;
+                        if (nd21_NOTIF_SEQ_NO_IN1_PIRXHIT === 2) {
+                            for (var nd21_NOTIF_SEQ_NO_IN1_PIRXK = 0; nd21_NOTIF_SEQ_NO_IN1_PIRXK < nd21_NOTIF_SEQ_NO_IN1_PIRXM.length; nd21_NOTIF_SEQ_NO_IN1_PIRXK++) {
+                                if (nd21_NOTIF_SEQ_NO_IN1_PIRXM[nd21_NOTIF_SEQ_NO_IN1_PIRXK].tag === "80") { nd21_NOTIF_SEQ_NO_IN1_PIR.seq = nd21_NOTIF_SEQ_NO_IN1_PIRXM[nd21_NOTIF_SEQ_NO_IN1_PIRXK].value; nd21_NOTIF_SEQ_NO_IN1_PIR.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd21_NOTIF_SEQ_NO_IN1_PIRReq = nd21_NOTIF_SEQ_NO_IN1_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd21_NOTIF_SEQ_NO_IN1_PIR.seq)) : "";
+    // 步骤 21:SEQ06-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079, RQ31_182)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla21 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_IN1_PIR stays in execution domain
+    var s21 = bind.sendApdu(sdCla21, "E2", "91", "00", nd21_NOTIF_SEQ_NO_IN1_PIRReq, "00", "9000");
+    bind.checkData("S21-C1 SW", "9000", s21.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1_PIR", s21.cmd, profileAidSession);
+    var ns21W = BindEs10xSingleRequest.parseBerTlv(s21.resp);
+    var ns21Ok0 = ns21W.length === 1 && ns21W[0].tag === "BF30";
+    var ns21In = ns21Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns21W[0].value) : [];
+    var ns21Code = (ns21In.length === 1 && ns21In[0].tag === "80") ? ns21In[0].value : "absent";
+    bind.checkData("S21-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns21Code);
+
+    // 步骤 22:SEQ06-2] MTD_STORE_DATA(tc_step;REQ: RQ25_020, RQ31_182)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla22 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s22 = bind.sendApdu(sdCla22, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S22-C1 SW", "9000", s22.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw22T = BindEs10xSingleRequest.parseBerTlv(s22.resp);
+    var lw22Ok0 = lw22T.length === 1 && lw22T[0].tag === "BF28";
+    var lw22_br = lw22Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw22T[0].value) : [];
+    var lw22_brtag = lw22_br.length === 1 ? lw22_br[0].tag : "";
+    var lw22_els = lw22_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw22_br[0].value) : [];
+    bind.checkData("S22-C2 响应结构匹配 #R_LIST_NOTIF_EN1:ListNotificationResponse notificati branch/count", "1", (lw22_brtag === "A0" && lw22_els.length === 1) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_EN1 ← 步 20 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=40 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd23_NOTIF_SEQ_NO_EN1 = {ok: false, seq: ""};
+    var nd23_NOTIF_SEQ_NO_EN1T = BindEs10xSingleRequest.parseBerTlv(s20.resp);
+    if (nd23_NOTIF_SEQ_NO_EN1T.length === 1 && nd23_NOTIF_SEQ_NO_EN1T[0].tag === "BF28") {
+        var nd23_NOTIF_SEQ_NO_EN1X1 = BindEs10xSingleRequest.parseBerTlv(nd23_NOTIF_SEQ_NO_EN1T[0].value);
+        if (nd23_NOTIF_SEQ_NO_EN1X1.length === 1 && nd23_NOTIF_SEQ_NO_EN1X1[0].tag === "A0") {
+            var nd23_NOTIF_SEQ_NO_EN1X2 = BindEs10xSingleRequest.parseBerTlv(nd23_NOTIF_SEQ_NO_EN1X1[0].value);
+            var nd23_NOTIF_SEQ_NO_EN1XHIT = 0;
+            for (var nd23_NOTIF_SEQ_NO_EN1XI = 0; nd23_NOTIF_SEQ_NO_EN1XI < nd23_NOTIF_SEQ_NO_EN1X2.length; nd23_NOTIF_SEQ_NO_EN1XI++) {
+                if (nd23_NOTIF_SEQ_NO_EN1X2[nd23_NOTIF_SEQ_NO_EN1XI].tag !== "BF2F") { continue; }
+                var nd23_NOTIF_SEQ_NO_EN1XM = BindEs10xSingleRequest.parseBerTlv(nd23_NOTIF_SEQ_NO_EN1X2[nd23_NOTIF_SEQ_NO_EN1XI].value);
+                for (var nd23_NOTIF_SEQ_NO_EN1XJ = 0; nd23_NOTIF_SEQ_NO_EN1XJ < nd23_NOTIF_SEQ_NO_EN1XM.length; nd23_NOTIF_SEQ_NO_EN1XJ++) {
+                    if (nd23_NOTIF_SEQ_NO_EN1XM[nd23_NOTIF_SEQ_NO_EN1XJ].tag === "81" && nd23_NOTIF_SEQ_NO_EN1XM[nd23_NOTIF_SEQ_NO_EN1XJ].value === "40") {
+                        nd23_NOTIF_SEQ_NO_EN1XHIT += 1;
+                        if (nd23_NOTIF_SEQ_NO_EN1XHIT === 1) {
+                            for (var nd23_NOTIF_SEQ_NO_EN1XK = 0; nd23_NOTIF_SEQ_NO_EN1XK < nd23_NOTIF_SEQ_NO_EN1XM.length; nd23_NOTIF_SEQ_NO_EN1XK++) {
+                                if (nd23_NOTIF_SEQ_NO_EN1XM[nd23_NOTIF_SEQ_NO_EN1XK].tag === "80") { nd23_NOTIF_SEQ_NO_EN1.seq = nd23_NOTIF_SEQ_NO_EN1XM[nd23_NOTIF_SEQ_NO_EN1XK].value; nd23_NOTIF_SEQ_NO_EN1.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd23_NOTIF_SEQ_NO_EN1Req = nd23_NOTIF_SEQ_NO_EN1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd23_NOTIF_SEQ_NO_EN1.seq)) : "";
+    // 步骤 23:SEQ06-3] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla23 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_EN1 stays in execution domain
+    var s23 = bind.sendApdu(sdCla23, "E2", "91", "00", nd23_NOTIF_SEQ_NO_EN1Req, "00", "9000");
+    bind.checkData("S23-C1 SW", "9000", s23.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_EN1", s23.cmd, profileAidSession);
+    var ns23W = BindEs10xSingleRequest.parseBerTlv(s23.resp);
+    var ns23Ok0 = ns23W.length === 1 && ns23W[0].tag === "BF30";
+    var ns23In = ns23Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns23W[0].value) : [];
+    var ns23Code = (ns23In.length === 1 && ns23In[0].tag === "80") ? ns23In[0].value : "absent";
+    bind.checkData("S23-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns23Code);
+
+    // 步骤 24:SEQ06-4] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla24 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s24 = bind.sendApdu(sdCla24, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S24-C1 SW", "9000", s24.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw24T = BindEs10xSingleRequest.parseBerTlv(s24.resp);
+    var lw24Ok0 = lw24T.length === 1 && lw24T[0].tag === "BF28";
+    var lw24_br = lw24Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw24T[0].value) : [];
+    var lw24_brtag = lw24_br.length === 1 ? lw24_br[0].tag : "";
+    var lw24_els = lw24_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw24_br[0].value) : [];
+    bind.checkData("S24-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw24_brtag === "A0" && lw24_els.length === 0) ? "1" : "0");
+
+    // 步骤 25:SEQ07-IC7] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla25 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s25 = bind.sendApdu(sdCla25, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S25-C1 SW", "9000", s25.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw25T = BindEs10xSingleRequest.parseBerTlv(s25.resp);
+    var lw25Ok0 = lw25T.length === 1 && lw25T[0].tag === "BF28";
+    var lw25_br = lw25Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw25T[0].value) : [];
+    var lw25_brtag = lw25_br.length === 1 ? lw25_br[0].tag : "";
+    var lw25_els = lw25_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw25_br[0].value) : [];
+    bind.checkData("S25-C2 响应结构匹配 #R_LIST_NOTIF_DI1_DE1:ListNotificationResponse notifi branch/count", "1", (lw25_brtag === "A0" && lw25_els.length === 2) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_DI1 ← 步 25 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=20 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd26_NOTIF_SEQ_NO_DI1 = {ok: false, seq: ""};
+    var nd26_NOTIF_SEQ_NO_DI1T = BindEs10xSingleRequest.parseBerTlv(s25.resp);
+    if (nd26_NOTIF_SEQ_NO_DI1T.length === 1 && nd26_NOTIF_SEQ_NO_DI1T[0].tag === "BF28") {
+        var nd26_NOTIF_SEQ_NO_DI1X1 = BindEs10xSingleRequest.parseBerTlv(nd26_NOTIF_SEQ_NO_DI1T[0].value);
+        if (nd26_NOTIF_SEQ_NO_DI1X1.length === 1 && nd26_NOTIF_SEQ_NO_DI1X1[0].tag === "A0") {
+            var nd26_NOTIF_SEQ_NO_DI1X2 = BindEs10xSingleRequest.parseBerTlv(nd26_NOTIF_SEQ_NO_DI1X1[0].value);
+            var nd26_NOTIF_SEQ_NO_DI1XHIT = 0;
+            for (var nd26_NOTIF_SEQ_NO_DI1XI = 0; nd26_NOTIF_SEQ_NO_DI1XI < nd26_NOTIF_SEQ_NO_DI1X2.length; nd26_NOTIF_SEQ_NO_DI1XI++) {
+                if (nd26_NOTIF_SEQ_NO_DI1X2[nd26_NOTIF_SEQ_NO_DI1XI].tag !== "BF2F") { continue; }
+                var nd26_NOTIF_SEQ_NO_DI1XM = BindEs10xSingleRequest.parseBerTlv(nd26_NOTIF_SEQ_NO_DI1X2[nd26_NOTIF_SEQ_NO_DI1XI].value);
+                for (var nd26_NOTIF_SEQ_NO_DI1XJ = 0; nd26_NOTIF_SEQ_NO_DI1XJ < nd26_NOTIF_SEQ_NO_DI1XM.length; nd26_NOTIF_SEQ_NO_DI1XJ++) {
+                    if (nd26_NOTIF_SEQ_NO_DI1XM[nd26_NOTIF_SEQ_NO_DI1XJ].tag === "81" && nd26_NOTIF_SEQ_NO_DI1XM[nd26_NOTIF_SEQ_NO_DI1XJ].value === "20") {
+                        nd26_NOTIF_SEQ_NO_DI1XHIT += 1;
+                        if (nd26_NOTIF_SEQ_NO_DI1XHIT === 1) {
+                            for (var nd26_NOTIF_SEQ_NO_DI1XK = 0; nd26_NOTIF_SEQ_NO_DI1XK < nd26_NOTIF_SEQ_NO_DI1XM.length; nd26_NOTIF_SEQ_NO_DI1XK++) {
+                                if (nd26_NOTIF_SEQ_NO_DI1XM[nd26_NOTIF_SEQ_NO_DI1XK].tag === "80") { nd26_NOTIF_SEQ_NO_DI1.seq = nd26_NOTIF_SEQ_NO_DI1XM[nd26_NOTIF_SEQ_NO_DI1XK].value; nd26_NOTIF_SEQ_NO_DI1.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd26_NOTIF_SEQ_NO_DI1Req = nd26_NOTIF_SEQ_NO_DI1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd26_NOTIF_SEQ_NO_DI1.seq)) : "";
+    // 步骤 26:SEQ07-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla26 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_DI1 stays in execution domain
+    var s26 = bind.sendApdu(sdCla26, "E2", "91", "00", nd26_NOTIF_SEQ_NO_DI1Req, "00", "9000");
+    bind.checkData("S26-C1 SW", "9000", s26.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_DI1", s26.cmd, profileAidSession);
+    var ns26W = BindEs10xSingleRequest.parseBerTlv(s26.resp);
+    var ns26Ok0 = ns26W.length === 1 && ns26W[0].tag === "BF30";
+    var ns26In = ns26Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns26W[0].value) : [];
+    var ns26Code = (ns26In.length === 1 && ns26In[0].tag === "80") ? ns26In[0].value : "absent";
+    bind.checkData("S26-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns26Code);
+
+    // 步骤 27:SEQ07-2] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla27 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s27 = bind.sendApdu(sdCla27, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S27-C1 SW", "9000", s27.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw27T = BindEs10xSingleRequest.parseBerTlv(s27.resp);
+    var lw27Ok0 = lw27T.length === 1 && lw27T[0].tag === "BF28";
+    var lw27_br = lw27Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw27T[0].value) : [];
+    var lw27_brtag = lw27_br.length === 1 ? lw27_br[0].tag : "";
+    var lw27_els = lw27_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw27_br[0].value) : [];
+    bind.checkData("S27-C2 响应结构匹配 #R_LIST_NOTIF_DE1:ListNotificationResponse notificati branch/count", "1", (lw27_brtag === "A0" && lw27_els.length === 1) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_DE1 ← 步 25 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=10 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd28_NOTIF_SEQ_NO_DE1 = {ok: false, seq: ""};
+    var nd28_NOTIF_SEQ_NO_DE1T = BindEs10xSingleRequest.parseBerTlv(s25.resp);
+    if (nd28_NOTIF_SEQ_NO_DE1T.length === 1 && nd28_NOTIF_SEQ_NO_DE1T[0].tag === "BF28") {
+        var nd28_NOTIF_SEQ_NO_DE1X1 = BindEs10xSingleRequest.parseBerTlv(nd28_NOTIF_SEQ_NO_DE1T[0].value);
+        if (nd28_NOTIF_SEQ_NO_DE1X1.length === 1 && nd28_NOTIF_SEQ_NO_DE1X1[0].tag === "A0") {
+            var nd28_NOTIF_SEQ_NO_DE1X2 = BindEs10xSingleRequest.parseBerTlv(nd28_NOTIF_SEQ_NO_DE1X1[0].value);
+            var nd28_NOTIF_SEQ_NO_DE1XHIT = 0;
+            for (var nd28_NOTIF_SEQ_NO_DE1XI = 0; nd28_NOTIF_SEQ_NO_DE1XI < nd28_NOTIF_SEQ_NO_DE1X2.length; nd28_NOTIF_SEQ_NO_DE1XI++) {
+                if (nd28_NOTIF_SEQ_NO_DE1X2[nd28_NOTIF_SEQ_NO_DE1XI].tag !== "BF2F") { continue; }
+                var nd28_NOTIF_SEQ_NO_DE1XM = BindEs10xSingleRequest.parseBerTlv(nd28_NOTIF_SEQ_NO_DE1X2[nd28_NOTIF_SEQ_NO_DE1XI].value);
+                for (var nd28_NOTIF_SEQ_NO_DE1XJ = 0; nd28_NOTIF_SEQ_NO_DE1XJ < nd28_NOTIF_SEQ_NO_DE1XM.length; nd28_NOTIF_SEQ_NO_DE1XJ++) {
+                    if (nd28_NOTIF_SEQ_NO_DE1XM[nd28_NOTIF_SEQ_NO_DE1XJ].tag === "81" && nd28_NOTIF_SEQ_NO_DE1XM[nd28_NOTIF_SEQ_NO_DE1XJ].value === "10") {
+                        nd28_NOTIF_SEQ_NO_DE1XHIT += 1;
+                        if (nd28_NOTIF_SEQ_NO_DE1XHIT === 1) {
+                            for (var nd28_NOTIF_SEQ_NO_DE1XK = 0; nd28_NOTIF_SEQ_NO_DE1XK < nd28_NOTIF_SEQ_NO_DE1XM.length; nd28_NOTIF_SEQ_NO_DE1XK++) {
+                                if (nd28_NOTIF_SEQ_NO_DE1XM[nd28_NOTIF_SEQ_NO_DE1XK].tag === "80") { nd28_NOTIF_SEQ_NO_DE1.seq = nd28_NOTIF_SEQ_NO_DE1XM[nd28_NOTIF_SEQ_NO_DE1XK].value; nd28_NOTIF_SEQ_NO_DE1.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd28_NOTIF_SEQ_NO_DE1Req = nd28_NOTIF_SEQ_NO_DE1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd28_NOTIF_SEQ_NO_DE1.seq)) : "";
+    // 步骤 28:SEQ07-3] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla28 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_DE1 stays in execution domain
+    var s28 = bind.sendApdu(sdCla28, "E2", "91", "00", nd28_NOTIF_SEQ_NO_DE1Req, "00", "9000");
+    bind.checkData("S28-C1 SW", "9000", s28.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_DE1", s28.cmd, profileAidSession);
+    var ns28W = BindEs10xSingleRequest.parseBerTlv(s28.resp);
+    var ns28Ok0 = ns28W.length === 1 && ns28W[0].tag === "BF30";
+    var ns28In = ns28Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns28W[0].value) : [];
+    var ns28Code = (ns28In.length === 1 && ns28In[0].tag === "80") ? ns28In[0].value : "absent";
+    bind.checkData("S28-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns28Code);
+
+    // 步骤 29:SEQ07-4] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla29 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s29 = bind.sendApdu(sdCla29, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S29-C1 SW", "9000", s29.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw29T = BindEs10xSingleRequest.parseBerTlv(s29.resp);
+    var lw29Ok0 = lw29T.length === 1 && lw29T[0].tag === "BF28";
+    var lw29_br = lw29Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw29T[0].value) : [];
+    var lw29_brtag = lw29_br.length === 1 ? lw29_br[0].tag : "";
+    var lw29_els = lw29_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw29_br[0].value) : [];
+    bind.checkData("S29-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw29_brtag === "A0" && lw29_els.length === 0) ? "1" : "0");
+
+    // 步骤 30:SEQ08-IC5] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla30 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s30 = bind.sendApdu(sdCla30, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S30-C1 SW", "9000", s30.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw30T = BindEs10xSingleRequest.parseBerTlv(s30.resp);
+    var lw30Ok0 = lw30T.length === 1 && lw30T[0].tag === "BF28";
+    var lw30_br = lw30Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw30T[0].value) : [];
+    var lw30_brtag = lw30_br.length === 1 ? lw30_br[0].tag : "";
+    var lw30_els = lw30_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw30_br[0].value) : [];
+    bind.checkData("S30-C2 响应结构匹配 #R_LIST_NOTIF_IN1_EN1:ListNotificationResponse notifi branch/count", "1", (lw30_brtag === "A0" && lw30_els.length === 2) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1 ← 步 30 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd31_NOTIF_SEQ_NO_IN1 = {ok: false, seq: ""};
+    var nd31_NOTIF_SEQ_NO_IN1T = BindEs10xSingleRequest.parseBerTlv(s30.resp);
+    if (nd31_NOTIF_SEQ_NO_IN1T.length === 1 && nd31_NOTIF_SEQ_NO_IN1T[0].tag === "BF28") {
+        var nd31_NOTIF_SEQ_NO_IN1X1 = BindEs10xSingleRequest.parseBerTlv(nd31_NOTIF_SEQ_NO_IN1T[0].value);
+        if (nd31_NOTIF_SEQ_NO_IN1X1.length === 1 && nd31_NOTIF_SEQ_NO_IN1X1[0].tag === "A0") {
+            var nd31_NOTIF_SEQ_NO_IN1X2 = BindEs10xSingleRequest.parseBerTlv(nd31_NOTIF_SEQ_NO_IN1X1[0].value);
+            var nd31_NOTIF_SEQ_NO_IN1XHIT = 0;
+            for (var nd31_NOTIF_SEQ_NO_IN1XI = 0; nd31_NOTIF_SEQ_NO_IN1XI < nd31_NOTIF_SEQ_NO_IN1X2.length; nd31_NOTIF_SEQ_NO_IN1XI++) {
+                if (nd31_NOTIF_SEQ_NO_IN1X2[nd31_NOTIF_SEQ_NO_IN1XI].tag !== "BF2F") { continue; }
+                var nd31_NOTIF_SEQ_NO_IN1XM = BindEs10xSingleRequest.parseBerTlv(nd31_NOTIF_SEQ_NO_IN1X2[nd31_NOTIF_SEQ_NO_IN1XI].value);
+                for (var nd31_NOTIF_SEQ_NO_IN1XJ = 0; nd31_NOTIF_SEQ_NO_IN1XJ < nd31_NOTIF_SEQ_NO_IN1XM.length; nd31_NOTIF_SEQ_NO_IN1XJ++) {
+                    if (nd31_NOTIF_SEQ_NO_IN1XM[nd31_NOTIF_SEQ_NO_IN1XJ].tag === "81" && nd31_NOTIF_SEQ_NO_IN1XM[nd31_NOTIF_SEQ_NO_IN1XJ].value === "80") {
+                        nd31_NOTIF_SEQ_NO_IN1XHIT += 1;
+                        if (nd31_NOTIF_SEQ_NO_IN1XHIT === 1) {
+                            for (var nd31_NOTIF_SEQ_NO_IN1XK = 0; nd31_NOTIF_SEQ_NO_IN1XK < nd31_NOTIF_SEQ_NO_IN1XM.length; nd31_NOTIF_SEQ_NO_IN1XK++) {
+                                if (nd31_NOTIF_SEQ_NO_IN1XM[nd31_NOTIF_SEQ_NO_IN1XK].tag === "80") { nd31_NOTIF_SEQ_NO_IN1.seq = nd31_NOTIF_SEQ_NO_IN1XM[nd31_NOTIF_SEQ_NO_IN1XK].value; nd31_NOTIF_SEQ_NO_IN1.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd31_NOTIF_SEQ_NO_IN1Req = nd31_NOTIF_SEQ_NO_IN1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd31_NOTIF_SEQ_NO_IN1.seq)) : "";
+    // 步骤 31:SEQ08-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla31 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_IN1 stays in execution domain
+    var s31 = bind.sendApdu(sdCla31, "E2", "91", "00", nd31_NOTIF_SEQ_NO_IN1Req, "00", "9000");
+    bind.checkData("S31-C1 SW", "9000", s31.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1", s31.cmd, profileAidSession);
+    var ns31W = BindEs10xSingleRequest.parseBerTlv(s31.resp);
+    var ns31Ok0 = ns31W.length === 1 && ns31W[0].tag === "BF30";
+    var ns31In = ns31Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns31W[0].value) : [];
+    var ns31Code = (ns31In.length === 1 && ns31In[0].tag === "80") ? ns31In[0].value : "absent";
+    bind.checkData("S31-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns31Code);
+
+    // 步骤 32:SEQ08-2] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla32 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s32 = bind.sendApdu(sdCla32, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S32-C1 SW", "9000", s32.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw32T = BindEs10xSingleRequest.parseBerTlv(s32.resp);
+    var lw32Ok0 = lw32T.length === 1 && lw32T[0].tag === "BF28";
+    var lw32_br = lw32Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw32T[0].value) : [];
+    var lw32_brtag = lw32_br.length === 1 ? lw32_br[0].tag : "";
+    var lw32_els = lw32_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw32_br[0].value) : [];
+    bind.checkData("S32-C2 响应结构匹配 #R_LIST_NOTIF_EN1:ListNotificationResponse notificati branch/count", "1", (lw32_brtag === "A0" && lw32_els.length === 1) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_EN1 ← 步 30 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=40 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd33_NOTIF_SEQ_NO_EN1 = {ok: false, seq: ""};
+    var nd33_NOTIF_SEQ_NO_EN1T = BindEs10xSingleRequest.parseBerTlv(s30.resp);
+    if (nd33_NOTIF_SEQ_NO_EN1T.length === 1 && nd33_NOTIF_SEQ_NO_EN1T[0].tag === "BF28") {
+        var nd33_NOTIF_SEQ_NO_EN1X1 = BindEs10xSingleRequest.parseBerTlv(nd33_NOTIF_SEQ_NO_EN1T[0].value);
+        if (nd33_NOTIF_SEQ_NO_EN1X1.length === 1 && nd33_NOTIF_SEQ_NO_EN1X1[0].tag === "A0") {
+            var nd33_NOTIF_SEQ_NO_EN1X2 = BindEs10xSingleRequest.parseBerTlv(nd33_NOTIF_SEQ_NO_EN1X1[0].value);
+            var nd33_NOTIF_SEQ_NO_EN1XHIT = 0;
+            for (var nd33_NOTIF_SEQ_NO_EN1XI = 0; nd33_NOTIF_SEQ_NO_EN1XI < nd33_NOTIF_SEQ_NO_EN1X2.length; nd33_NOTIF_SEQ_NO_EN1XI++) {
+                if (nd33_NOTIF_SEQ_NO_EN1X2[nd33_NOTIF_SEQ_NO_EN1XI].tag !== "BF2F") { continue; }
+                var nd33_NOTIF_SEQ_NO_EN1XM = BindEs10xSingleRequest.parseBerTlv(nd33_NOTIF_SEQ_NO_EN1X2[nd33_NOTIF_SEQ_NO_EN1XI].value);
+                for (var nd33_NOTIF_SEQ_NO_EN1XJ = 0; nd33_NOTIF_SEQ_NO_EN1XJ < nd33_NOTIF_SEQ_NO_EN1XM.length; nd33_NOTIF_SEQ_NO_EN1XJ++) {
+                    if (nd33_NOTIF_SEQ_NO_EN1XM[nd33_NOTIF_SEQ_NO_EN1XJ].tag === "81" && nd33_NOTIF_SEQ_NO_EN1XM[nd33_NOTIF_SEQ_NO_EN1XJ].value === "40") {
+                        nd33_NOTIF_SEQ_NO_EN1XHIT += 1;
+                        if (nd33_NOTIF_SEQ_NO_EN1XHIT === 1) {
+                            for (var nd33_NOTIF_SEQ_NO_EN1XK = 0; nd33_NOTIF_SEQ_NO_EN1XK < nd33_NOTIF_SEQ_NO_EN1XM.length; nd33_NOTIF_SEQ_NO_EN1XK++) {
+                                if (nd33_NOTIF_SEQ_NO_EN1XM[nd33_NOTIF_SEQ_NO_EN1XK].tag === "80") { nd33_NOTIF_SEQ_NO_EN1.seq = nd33_NOTIF_SEQ_NO_EN1XM[nd33_NOTIF_SEQ_NO_EN1XK].value; nd33_NOTIF_SEQ_NO_EN1.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd33_NOTIF_SEQ_NO_EN1Req = nd33_NOTIF_SEQ_NO_EN1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd33_NOTIF_SEQ_NO_EN1.seq)) : "";
+    // 步骤 33:SEQ08-3] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla33 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_EN1 stays in execution domain
+    var s33 = bind.sendApdu(sdCla33, "E2", "91", "00", nd33_NOTIF_SEQ_NO_EN1Req, "00", "9000");
+    bind.checkData("S33-C1 SW", "9000", s33.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_EN1", s33.cmd, profileAidSession);
+    var ns33W = BindEs10xSingleRequest.parseBerTlv(s33.resp);
+    var ns33Ok0 = ns33W.length === 1 && ns33W[0].tag === "BF30";
+    var ns33In = ns33Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns33W[0].value) : [];
+    var ns33Code = (ns33In.length === 1 && ns33In[0].tag === "80") ? ns33In[0].value : "absent";
+    bind.checkData("S33-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns33Code);
+
+    // 步骤 34:SEQ08-4] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla34 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s34 = bind.sendApdu(sdCla34, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S34-C1 SW", "9000", s34.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw34T = BindEs10xSingleRequest.parseBerTlv(s34.resp);
+    var lw34Ok0 = lw34T.length === 1 && lw34T[0].tag === "BF28";
+    var lw34_br = lw34Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw34T[0].value) : [];
+    var lw34_brtag = lw34_br.length === 1 ? lw34_br[0].tag : "";
+    var lw34_els = lw34_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw34_br[0].value) : [];
+    bind.checkData("S34-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw34_brtag === "A0" && lw34_els.length === 0) ? "1" : "0");
+
+    // 步骤 35:SEQ09-IC6] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla35 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s35 = bind.sendApdu(sdCla35, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S35-C1 SW", "9000", s35.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw35T = BindEs10xSingleRequest.parseBerTlv(s35.resp);
+    var lw35Ok0 = lw35T.length === 1 && lw35T[0].tag === "BF28";
+    var lw35_br = lw35Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw35T[0].value) : [];
+    var lw35_brtag = lw35_br.length === 1 ? lw35_br[0].tag : "";
+    var lw35_els = lw35_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw35_br[0].value) : [];
+    bind.checkData("S35-C2 响应结构匹配 #R_LIST_NOTIF_EN1_IN2_PIR:ListNotificationResponse no branch/count", "1", (lw35_brtag === "A0" && lw35_els.length === 2) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN2_PIR ← 步 35 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd36_NOTIF_SEQ_NO_IN2_PIR = {ok: false, seq: ""};
+    var nd36_NOTIF_SEQ_NO_IN2_PIRT = BindEs10xSingleRequest.parseBerTlv(s35.resp);
+    if (nd36_NOTIF_SEQ_NO_IN2_PIRT.length === 1 && nd36_NOTIF_SEQ_NO_IN2_PIRT[0].tag === "BF28") {
+        var nd36_NOTIF_SEQ_NO_IN2_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd36_NOTIF_SEQ_NO_IN2_PIRT[0].value);
+        if (nd36_NOTIF_SEQ_NO_IN2_PIRX1.length === 1 && nd36_NOTIF_SEQ_NO_IN2_PIRX1[0].tag === "A0") {
+            var nd36_NOTIF_SEQ_NO_IN2_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd36_NOTIF_SEQ_NO_IN2_PIRX1[0].value);
+            var nd36_NOTIF_SEQ_NO_IN2_PIRXHIT = 0;
+            for (var nd36_NOTIF_SEQ_NO_IN2_PIRXI = 0; nd36_NOTIF_SEQ_NO_IN2_PIRXI < nd36_NOTIF_SEQ_NO_IN2_PIRX2.length; nd36_NOTIF_SEQ_NO_IN2_PIRXI++) {
+                if (nd36_NOTIF_SEQ_NO_IN2_PIRX2[nd36_NOTIF_SEQ_NO_IN2_PIRXI].tag !== "BF2F") { continue; }
+                var nd36_NOTIF_SEQ_NO_IN2_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd36_NOTIF_SEQ_NO_IN2_PIRX2[nd36_NOTIF_SEQ_NO_IN2_PIRXI].value);
+                for (var nd36_NOTIF_SEQ_NO_IN2_PIRXJ = 0; nd36_NOTIF_SEQ_NO_IN2_PIRXJ < nd36_NOTIF_SEQ_NO_IN2_PIRXM.length; nd36_NOTIF_SEQ_NO_IN2_PIRXJ++) {
+                    if (nd36_NOTIF_SEQ_NO_IN2_PIRXM[nd36_NOTIF_SEQ_NO_IN2_PIRXJ].tag === "81" && nd36_NOTIF_SEQ_NO_IN2_PIRXM[nd36_NOTIF_SEQ_NO_IN2_PIRXJ].value === "80") {
+                        nd36_NOTIF_SEQ_NO_IN2_PIRXHIT += 1;
+                        if (nd36_NOTIF_SEQ_NO_IN2_PIRXHIT === 2) {
+                            for (var nd36_NOTIF_SEQ_NO_IN2_PIRXK = 0; nd36_NOTIF_SEQ_NO_IN2_PIRXK < nd36_NOTIF_SEQ_NO_IN2_PIRXM.length; nd36_NOTIF_SEQ_NO_IN2_PIRXK++) {
+                                if (nd36_NOTIF_SEQ_NO_IN2_PIRXM[nd36_NOTIF_SEQ_NO_IN2_PIRXK].tag === "80") { nd36_NOTIF_SEQ_NO_IN2_PIR.seq = nd36_NOTIF_SEQ_NO_IN2_PIRXM[nd36_NOTIF_SEQ_NO_IN2_PIRXK].value; nd36_NOTIF_SEQ_NO_IN2_PIR.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd36_NOTIF_SEQ_NO_IN2_PIRReq = nd36_NOTIF_SEQ_NO_IN2_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd36_NOTIF_SEQ_NO_IN2_PIR.seq)) : "";
+    // 步骤 36:SEQ09-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079, RQ31_182)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla36 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_IN2_PIR stays in execution domain
+    var s36 = bind.sendApdu(sdCla36, "E2", "91", "00", nd36_NOTIF_SEQ_NO_IN2_PIRReq, "00", "9000");
+    bind.checkData("S36-C1 SW", "9000", s36.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN2_PIR", s36.cmd, profileAidSession);
+    var ns36W = BindEs10xSingleRequest.parseBerTlv(s36.resp);
+    var ns36Ok0 = ns36W.length === 1 && ns36W[0].tag === "BF30";
+    var ns36In = ns36Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns36W[0].value) : [];
+    var ns36Code = (ns36In.length === 1 && ns36In[0].tag === "80") ? ns36In[0].value : "absent";
+    bind.checkData("S36-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns36Code);
+
+    // 步骤 37:SEQ09-2] MTD_STORE_DATA(tc_step;REQ: RQ25_020, RQ31_182)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla37 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s37 = bind.sendApdu(sdCla37, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S37-C1 SW", "9000", s37.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw37T = BindEs10xSingleRequest.parseBerTlv(s37.resp);
+    var lw37Ok0 = lw37T.length === 1 && lw37T[0].tag === "BF28";
+    var lw37_br = lw37Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw37T[0].value) : [];
+    var lw37_brtag = lw37_br.length === 1 ? lw37_br[0].tag : "";
+    var lw37_els = lw37_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw37_br[0].value) : [];
+    bind.checkData("S37-C2 响应结构匹配 #R_LIST_NOTIF_EN1:ListNotificationResponse notificati branch/count", "1", (lw37_brtag === "A0" && lw37_els.length === 1) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_EN1 ← 步 35 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=40 第 1 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd38_NOTIF_SEQ_NO_EN1 = {ok: false, seq: ""};
+    var nd38_NOTIF_SEQ_NO_EN1T = BindEs10xSingleRequest.parseBerTlv(s35.resp);
+    if (nd38_NOTIF_SEQ_NO_EN1T.length === 1 && nd38_NOTIF_SEQ_NO_EN1T[0].tag === "BF28") {
+        var nd38_NOTIF_SEQ_NO_EN1X1 = BindEs10xSingleRequest.parseBerTlv(nd38_NOTIF_SEQ_NO_EN1T[0].value);
+        if (nd38_NOTIF_SEQ_NO_EN1X1.length === 1 && nd38_NOTIF_SEQ_NO_EN1X1[0].tag === "A0") {
+            var nd38_NOTIF_SEQ_NO_EN1X2 = BindEs10xSingleRequest.parseBerTlv(nd38_NOTIF_SEQ_NO_EN1X1[0].value);
+            var nd38_NOTIF_SEQ_NO_EN1XHIT = 0;
+            for (var nd38_NOTIF_SEQ_NO_EN1XI = 0; nd38_NOTIF_SEQ_NO_EN1XI < nd38_NOTIF_SEQ_NO_EN1X2.length; nd38_NOTIF_SEQ_NO_EN1XI++) {
+                if (nd38_NOTIF_SEQ_NO_EN1X2[nd38_NOTIF_SEQ_NO_EN1XI].tag !== "BF2F") { continue; }
+                var nd38_NOTIF_SEQ_NO_EN1XM = BindEs10xSingleRequest.parseBerTlv(nd38_NOTIF_SEQ_NO_EN1X2[nd38_NOTIF_SEQ_NO_EN1XI].value);
+                for (var nd38_NOTIF_SEQ_NO_EN1XJ = 0; nd38_NOTIF_SEQ_NO_EN1XJ < nd38_NOTIF_SEQ_NO_EN1XM.length; nd38_NOTIF_SEQ_NO_EN1XJ++) {
+                    if (nd38_NOTIF_SEQ_NO_EN1XM[nd38_NOTIF_SEQ_NO_EN1XJ].tag === "81" && nd38_NOTIF_SEQ_NO_EN1XM[nd38_NOTIF_SEQ_NO_EN1XJ].value === "40") {
+                        nd38_NOTIF_SEQ_NO_EN1XHIT += 1;
+                        if (nd38_NOTIF_SEQ_NO_EN1XHIT === 1) {
+                            for (var nd38_NOTIF_SEQ_NO_EN1XK = 0; nd38_NOTIF_SEQ_NO_EN1XK < nd38_NOTIF_SEQ_NO_EN1XM.length; nd38_NOTIF_SEQ_NO_EN1XK++) {
+                                if (nd38_NOTIF_SEQ_NO_EN1XM[nd38_NOTIF_SEQ_NO_EN1XK].tag === "80") { nd38_NOTIF_SEQ_NO_EN1.seq = nd38_NOTIF_SEQ_NO_EN1XM[nd38_NOTIF_SEQ_NO_EN1XK].value; nd38_NOTIF_SEQ_NO_EN1.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd38_NOTIF_SEQ_NO_EN1Req = nd38_NOTIF_SEQ_NO_EN1.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd38_NOTIF_SEQ_NO_EN1.seq)) : "";
+    // 步骤 38:SEQ09-3] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla38 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_EN1 stays in execution domain
+    var s38 = bind.sendApdu(sdCla38, "E2", "91", "00", nd38_NOTIF_SEQ_NO_EN1Req, "00", "9000");
+    bind.checkData("S38-C1 SW", "9000", s38.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_EN1", s38.cmd, profileAidSession);
+    var ns38W = BindEs10xSingleRequest.parseBerTlv(s38.resp);
+    var ns38Ok0 = ns38W.length === 1 && ns38W[0].tag === "BF30";
+    var ns38In = ns38Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns38W[0].value) : [];
+    var ns38Code = (ns38In.length === 1 && ns38In[0].tag === "80") ? ns38In[0].value : "absent";
+    bind.checkData("S38-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns38Code);
+
+    // 步骤 39:SEQ09-4] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla39 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s39 = bind.sendApdu(sdCla39, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S39-C1 SW", "9000", s39.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw39T = BindEs10xSingleRequest.parseBerTlv(s39.resp);
+    var lw39Ok0 = lw39T.length === 1 && lw39T[0].tag === "BF28";
+    var lw39_br = lw39Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw39T[0].value) : [];
+    var lw39_brtag = lw39_br.length === 1 ? lw39_br[0].tag : "";
+    var lw39_els = lw39_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw39_br[0].value) : [];
+    bind.checkData("S39-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw39_brtag === "A0" && lw39_els.length === 0) ? "1" : "0");
+
+    // 步骤 40:SEQ10-IC4] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla40 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s40 = bind.sendApdu(sdCla40, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S40-C1 SW", "9000", s40.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw40T = BindEs10xSingleRequest.parseBerTlv(s40.resp);
+    var lw40Ok0 = lw40T.length === 1 && lw40T[0].tag === "BF28";
+    var lw40_br = lw40Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw40T[0].value) : [];
+    var lw40_brtag = lw40_br.length === 1 ? lw40_br[0].tag : "";
+    var lw40_els = lw40_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw40_br[0].value) : [];
+    bind.checkData("S40-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR:ListNotificationResponse notifi branch/count", "1", (lw40_brtag === "A0" && lw40_els.length === 1) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1_PIR ← 步 40 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd41_NOTIF_SEQ_NO_IN1_PIR = {ok: false, seq: ""};
+    var nd41_NOTIF_SEQ_NO_IN1_PIRT = BindEs10xSingleRequest.parseBerTlv(s40.resp);
+    if (nd41_NOTIF_SEQ_NO_IN1_PIRT.length === 1 && nd41_NOTIF_SEQ_NO_IN1_PIRT[0].tag === "BF28") {
+        var nd41_NOTIF_SEQ_NO_IN1_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd41_NOTIF_SEQ_NO_IN1_PIRT[0].value);
+        if (nd41_NOTIF_SEQ_NO_IN1_PIRX1.length === 1 && nd41_NOTIF_SEQ_NO_IN1_PIRX1[0].tag === "A0") {
+            var nd41_NOTIF_SEQ_NO_IN1_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd41_NOTIF_SEQ_NO_IN1_PIRX1[0].value);
+            var nd41_NOTIF_SEQ_NO_IN1_PIRXHIT = 0;
+            for (var nd41_NOTIF_SEQ_NO_IN1_PIRXI = 0; nd41_NOTIF_SEQ_NO_IN1_PIRXI < nd41_NOTIF_SEQ_NO_IN1_PIRX2.length; nd41_NOTIF_SEQ_NO_IN1_PIRXI++) {
+                if (nd41_NOTIF_SEQ_NO_IN1_PIRX2[nd41_NOTIF_SEQ_NO_IN1_PIRXI].tag !== "BF2F") { continue; }
+                var nd41_NOTIF_SEQ_NO_IN1_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd41_NOTIF_SEQ_NO_IN1_PIRX2[nd41_NOTIF_SEQ_NO_IN1_PIRXI].value);
+                for (var nd41_NOTIF_SEQ_NO_IN1_PIRXJ = 0; nd41_NOTIF_SEQ_NO_IN1_PIRXJ < nd41_NOTIF_SEQ_NO_IN1_PIRXM.length; nd41_NOTIF_SEQ_NO_IN1_PIRXJ++) {
+                    if (nd41_NOTIF_SEQ_NO_IN1_PIRXM[nd41_NOTIF_SEQ_NO_IN1_PIRXJ].tag === "81" && nd41_NOTIF_SEQ_NO_IN1_PIRXM[nd41_NOTIF_SEQ_NO_IN1_PIRXJ].value === "80") {
+                        nd41_NOTIF_SEQ_NO_IN1_PIRXHIT += 1;
+                        if (nd41_NOTIF_SEQ_NO_IN1_PIRXHIT === 2) {
+                            for (var nd41_NOTIF_SEQ_NO_IN1_PIRXK = 0; nd41_NOTIF_SEQ_NO_IN1_PIRXK < nd41_NOTIF_SEQ_NO_IN1_PIRXM.length; nd41_NOTIF_SEQ_NO_IN1_PIRXK++) {
+                                if (nd41_NOTIF_SEQ_NO_IN1_PIRXM[nd41_NOTIF_SEQ_NO_IN1_PIRXK].tag === "80") { nd41_NOTIF_SEQ_NO_IN1_PIR.seq = nd41_NOTIF_SEQ_NO_IN1_PIRXM[nd41_NOTIF_SEQ_NO_IN1_PIRXK].value; nd41_NOTIF_SEQ_NO_IN1_PIR.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd41_NOTIF_SEQ_NO_IN1_PIRReq = nd41_NOTIF_SEQ_NO_IN1_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd41_NOTIF_SEQ_NO_IN1_PIR.seq)) : "";
+    // 步骤 41:SEQ10-1] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla41 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_IN1_PIR stays in execution domain
+    var s41 = bind.sendApdu(sdCla41, "E2", "91", "00", nd41_NOTIF_SEQ_NO_IN1_PIRReq, "00", "9000");
+    bind.checkData("S41-C1 SW", "9000", s41.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1_PIR", s41.cmd, profileAidSession);
+    var ns41W = BindEs10xSingleRequest.parseBerTlv(s41.resp);
+    var ns41Ok0 = ns41W.length === 1 && ns41W[0].tag === "BF30";
+    var ns41In = ns41Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns41W[0].value) : [];
+    var ns41Code = (ns41In.length === 1 && ns41In[0].tag === "80") ? ns41In[0].value : "absent";
+    bind.checkData("S41-C2 响应结构匹配 #R_REMOVE_NOTIF_NOTHING_TO_DELETE deleteNotificationStatus", "01", ns41Code);
+
+    // 步骤 42:SEQ10-2] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla42 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s42 = bind.sendApdu(sdCla42, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S42-C1 SW", "9000", s42.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw42T = BindEs10xSingleRequest.parseBerTlv(s42.resp);
+    var lw42Ok0 = lw42T.length === 1 && lw42T[0].tag === "BF28";
+    var lw42_br = lw42Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw42T[0].value) : [];
+    var lw42_brtag = lw42_br.length === 1 ? lw42_br[0].tag : "";
+    var lw42_els = lw42_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw42_br[0].value) : [];
+    bind.checkData("S42-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR:ListNotificationResponse notifi branch/count", "1", (lw42_brtag === "A0" && lw42_els.length === 1) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1_PIR ← 步 40 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd43_NOTIF_SEQ_NO_IN1_PIR = {ok: false, seq: ""};
+    var nd43_NOTIF_SEQ_NO_IN1_PIRT = BindEs10xSingleRequest.parseBerTlv(s40.resp);
+    if (nd43_NOTIF_SEQ_NO_IN1_PIRT.length === 1 && nd43_NOTIF_SEQ_NO_IN1_PIRT[0].tag === "BF28") {
+        var nd43_NOTIF_SEQ_NO_IN1_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd43_NOTIF_SEQ_NO_IN1_PIRT[0].value);
+        if (nd43_NOTIF_SEQ_NO_IN1_PIRX1.length === 1 && nd43_NOTIF_SEQ_NO_IN1_PIRX1[0].tag === "A0") {
+            var nd43_NOTIF_SEQ_NO_IN1_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd43_NOTIF_SEQ_NO_IN1_PIRX1[0].value);
+            var nd43_NOTIF_SEQ_NO_IN1_PIRXHIT = 0;
+            for (var nd43_NOTIF_SEQ_NO_IN1_PIRXI = 0; nd43_NOTIF_SEQ_NO_IN1_PIRXI < nd43_NOTIF_SEQ_NO_IN1_PIRX2.length; nd43_NOTIF_SEQ_NO_IN1_PIRXI++) {
+                if (nd43_NOTIF_SEQ_NO_IN1_PIRX2[nd43_NOTIF_SEQ_NO_IN1_PIRXI].tag !== "BF2F") { continue; }
+                var nd43_NOTIF_SEQ_NO_IN1_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd43_NOTIF_SEQ_NO_IN1_PIRX2[nd43_NOTIF_SEQ_NO_IN1_PIRXI].value);
+                for (var nd43_NOTIF_SEQ_NO_IN1_PIRXJ = 0; nd43_NOTIF_SEQ_NO_IN1_PIRXJ < nd43_NOTIF_SEQ_NO_IN1_PIRXM.length; nd43_NOTIF_SEQ_NO_IN1_PIRXJ++) {
+                    if (nd43_NOTIF_SEQ_NO_IN1_PIRXM[nd43_NOTIF_SEQ_NO_IN1_PIRXJ].tag === "81" && nd43_NOTIF_SEQ_NO_IN1_PIRXM[nd43_NOTIF_SEQ_NO_IN1_PIRXJ].value === "80") {
+                        nd43_NOTIF_SEQ_NO_IN1_PIRXHIT += 1;
+                        if (nd43_NOTIF_SEQ_NO_IN1_PIRXHIT === 2) {
+                            for (var nd43_NOTIF_SEQ_NO_IN1_PIRXK = 0; nd43_NOTIF_SEQ_NO_IN1_PIRXK < nd43_NOTIF_SEQ_NO_IN1_PIRXM.length; nd43_NOTIF_SEQ_NO_IN1_PIRXK++) {
+                                if (nd43_NOTIF_SEQ_NO_IN1_PIRXM[nd43_NOTIF_SEQ_NO_IN1_PIRXK].tag === "80") { nd43_NOTIF_SEQ_NO_IN1_PIR.seq = nd43_NOTIF_SEQ_NO_IN1_PIRXM[nd43_NOTIF_SEQ_NO_IN1_PIRXK].value; nd43_NOTIF_SEQ_NO_IN1_PIR.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd43_NOTIF_SEQ_NO_IN1_PIRReq = nd43_NOTIF_SEQ_NO_IN1_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd43_NOTIF_SEQ_NO_IN1_PIR.seq)) : "";
+    // 步骤 43:SEQ10-3] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla43 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_IN1_PIR stays in execution domain
+    var s43 = bind.sendApdu(sdCla43, "E2", "91", "00", nd43_NOTIF_SEQ_NO_IN1_PIRReq, "00", "9000");
+    bind.checkData("S43-C1 SW", "9000", s43.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1_PIR", s43.cmd, profileAidSession);
+    var ns43W = BindEs10xSingleRequest.parseBerTlv(s43.resp);
+    var ns43Ok0 = ns43W.length === 1 && ns43W[0].tag === "BF30";
+    var ns43In = ns43Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns43W[0].value) : [];
+    var ns43Code = (ns43In.length === 1 && ns43In[0].tag === "80") ? ns43In[0].value : "absent";
+    bind.checkData("S43-C2 响应结构匹配 #R_REMOVE_NOTIF_NOTHING_TO_DELETE deleteNotificationStatus", "01", ns43Code);
+
+    // 步骤 44:SEQ10-4] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla44 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s44 = bind.sendApdu(sdCla44, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S44-C1 SW", "9000", s44.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw44T = BindEs10xSingleRequest.parseBerTlv(s44.resp);
+    var lw44Ok0 = lw44T.length === 1 && lw44T[0].tag === "BF28";
+    var lw44_br = lw44Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw44T[0].value) : [];
+    var lw44_brtag = lw44_br.length === 1 ? lw44_br[0].tag : "";
+    var lw44_els = lw44_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw44_br[0].value) : [];
+    bind.checkData("S44-C2 响应结构匹配 #R_LIST_NOTIF_IN1_PIR:ListNotificationResponse notifi branch/count", "1", (lw44_brtag === "A0" && lw44_els.length === 1) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1_PIR ← 步 40 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd45_NOTIF_SEQ_NO_IN1_PIR = {ok: false, seq: ""};
+    var nd45_NOTIF_SEQ_NO_IN1_PIRT = BindEs10xSingleRequest.parseBerTlv(s40.resp);
+    if (nd45_NOTIF_SEQ_NO_IN1_PIRT.length === 1 && nd45_NOTIF_SEQ_NO_IN1_PIRT[0].tag === "BF28") {
+        var nd45_NOTIF_SEQ_NO_IN1_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd45_NOTIF_SEQ_NO_IN1_PIRT[0].value);
+        if (nd45_NOTIF_SEQ_NO_IN1_PIRX1.length === 1 && nd45_NOTIF_SEQ_NO_IN1_PIRX1[0].tag === "A0") {
+            var nd45_NOTIF_SEQ_NO_IN1_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd45_NOTIF_SEQ_NO_IN1_PIRX1[0].value);
+            var nd45_NOTIF_SEQ_NO_IN1_PIRXHIT = 0;
+            for (var nd45_NOTIF_SEQ_NO_IN1_PIRXI = 0; nd45_NOTIF_SEQ_NO_IN1_PIRXI < nd45_NOTIF_SEQ_NO_IN1_PIRX2.length; nd45_NOTIF_SEQ_NO_IN1_PIRXI++) {
+                if (nd45_NOTIF_SEQ_NO_IN1_PIRX2[nd45_NOTIF_SEQ_NO_IN1_PIRXI].tag !== "BF2F") { continue; }
+                var nd45_NOTIF_SEQ_NO_IN1_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd45_NOTIF_SEQ_NO_IN1_PIRX2[nd45_NOTIF_SEQ_NO_IN1_PIRXI].value);
+                for (var nd45_NOTIF_SEQ_NO_IN1_PIRXJ = 0; nd45_NOTIF_SEQ_NO_IN1_PIRXJ < nd45_NOTIF_SEQ_NO_IN1_PIRXM.length; nd45_NOTIF_SEQ_NO_IN1_PIRXJ++) {
+                    if (nd45_NOTIF_SEQ_NO_IN1_PIRXM[nd45_NOTIF_SEQ_NO_IN1_PIRXJ].tag === "81" && nd45_NOTIF_SEQ_NO_IN1_PIRXM[nd45_NOTIF_SEQ_NO_IN1_PIRXJ].value === "80") {
+                        nd45_NOTIF_SEQ_NO_IN1_PIRXHIT += 1;
+                        if (nd45_NOTIF_SEQ_NO_IN1_PIRXHIT === 2) {
+                            for (var nd45_NOTIF_SEQ_NO_IN1_PIRXK = 0; nd45_NOTIF_SEQ_NO_IN1_PIRXK < nd45_NOTIF_SEQ_NO_IN1_PIRXM.length; nd45_NOTIF_SEQ_NO_IN1_PIRXK++) {
+                                if (nd45_NOTIF_SEQ_NO_IN1_PIRXM[nd45_NOTIF_SEQ_NO_IN1_PIRXK].tag === "80") { nd45_NOTIF_SEQ_NO_IN1_PIR.seq = nd45_NOTIF_SEQ_NO_IN1_PIRXM[nd45_NOTIF_SEQ_NO_IN1_PIRXK].value; nd45_NOTIF_SEQ_NO_IN1_PIR.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd45_NOTIF_SEQ_NO_IN1_PIRReq = nd45_NOTIF_SEQ_NO_IN1_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd45_NOTIF_SEQ_NO_IN1_PIR.seq)) : "";
+    // 步骤 45:SEQ10-5] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla45 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_IN1_PIR stays in execution domain
+    var s45 = bind.sendApdu(sdCla45, "E2", "91", "00", nd45_NOTIF_SEQ_NO_IN1_PIRReq, "00", "9000");
+    bind.checkData("S45-C1 SW", "9000", s45.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1_PIR", s45.cmd, profileAidSession);
+    var ns45W = BindEs10xSingleRequest.parseBerTlv(s45.resp);
+    var ns45Ok0 = ns45W.length === 1 && ns45W[0].tag === "BF30";
+    var ns45In = ns45Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns45W[0].value) : [];
+    var ns45Code = (ns45In.length === 1 && ns45In[0].tag === "80") ? ns45In[0].value : "absent";
+    bind.checkData("S45-C2 响应结构匹配 #R_REMOVE_NOTIF_OK deleteNotificationStatus", "01", ns45Code);
+
+    // 步骤 46:SEQ10-6] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla46 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s46 = bind.sendApdu(sdCla46, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S46-C1 SW", "9000", s46.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw46T = BindEs10xSingleRequest.parseBerTlv(s46.resp);
+    var lw46Ok0 = lw46T.length === 1 && lw46T[0].tag === "BF28";
+    var lw46_br = lw46Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw46T[0].value) : [];
+    var lw46_brtag = lw46_br.length === 1 ? lw46_br[0].tag : "";
+    var lw46_els = lw46_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw46_br[0].value) : [];
+    bind.checkData("S46-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw46_brtag === "A0" && lw46_els.length === 0) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1_PIR ← 步 40 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd47_NOTIF_SEQ_NO_IN1_PIR = {ok: false, seq: ""};
+    var nd47_NOTIF_SEQ_NO_IN1_PIRT = BindEs10xSingleRequest.parseBerTlv(s40.resp);
+    if (nd47_NOTIF_SEQ_NO_IN1_PIRT.length === 1 && nd47_NOTIF_SEQ_NO_IN1_PIRT[0].tag === "BF28") {
+        var nd47_NOTIF_SEQ_NO_IN1_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd47_NOTIF_SEQ_NO_IN1_PIRT[0].value);
+        if (nd47_NOTIF_SEQ_NO_IN1_PIRX1.length === 1 && nd47_NOTIF_SEQ_NO_IN1_PIRX1[0].tag === "A0") {
+            var nd47_NOTIF_SEQ_NO_IN1_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd47_NOTIF_SEQ_NO_IN1_PIRX1[0].value);
+            var nd47_NOTIF_SEQ_NO_IN1_PIRXHIT = 0;
+            for (var nd47_NOTIF_SEQ_NO_IN1_PIRXI = 0; nd47_NOTIF_SEQ_NO_IN1_PIRXI < nd47_NOTIF_SEQ_NO_IN1_PIRX2.length; nd47_NOTIF_SEQ_NO_IN1_PIRXI++) {
+                if (nd47_NOTIF_SEQ_NO_IN1_PIRX2[nd47_NOTIF_SEQ_NO_IN1_PIRXI].tag !== "BF2F") { continue; }
+                var nd47_NOTIF_SEQ_NO_IN1_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd47_NOTIF_SEQ_NO_IN1_PIRX2[nd47_NOTIF_SEQ_NO_IN1_PIRXI].value);
+                for (var nd47_NOTIF_SEQ_NO_IN1_PIRXJ = 0; nd47_NOTIF_SEQ_NO_IN1_PIRXJ < nd47_NOTIF_SEQ_NO_IN1_PIRXM.length; nd47_NOTIF_SEQ_NO_IN1_PIRXJ++) {
+                    if (nd47_NOTIF_SEQ_NO_IN1_PIRXM[nd47_NOTIF_SEQ_NO_IN1_PIRXJ].tag === "81" && nd47_NOTIF_SEQ_NO_IN1_PIRXM[nd47_NOTIF_SEQ_NO_IN1_PIRXJ].value === "80") {
+                        nd47_NOTIF_SEQ_NO_IN1_PIRXHIT += 1;
+                        if (nd47_NOTIF_SEQ_NO_IN1_PIRXHIT === 2) {
+                            for (var nd47_NOTIF_SEQ_NO_IN1_PIRXK = 0; nd47_NOTIF_SEQ_NO_IN1_PIRXK < nd47_NOTIF_SEQ_NO_IN1_PIRXM.length; nd47_NOTIF_SEQ_NO_IN1_PIRXK++) {
+                                if (nd47_NOTIF_SEQ_NO_IN1_PIRXM[nd47_NOTIF_SEQ_NO_IN1_PIRXK].tag === "80") { nd47_NOTIF_SEQ_NO_IN1_PIR.seq = nd47_NOTIF_SEQ_NO_IN1_PIRXM[nd47_NOTIF_SEQ_NO_IN1_PIRXK].value; nd47_NOTIF_SEQ_NO_IN1_PIR.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd47_NOTIF_SEQ_NO_IN1_PIRReq = nd47_NOTIF_SEQ_NO_IN1_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd47_NOTIF_SEQ_NO_IN1_PIR.seq)) : "";
+    // 步骤 47:SEQ10-7] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla47 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_IN1_PIR stays in execution domain
+    var s47 = bind.sendApdu(sdCla47, "E2", "91", "00", nd47_NOTIF_SEQ_NO_IN1_PIRReq, "00", "9000");
+    bind.checkData("S47-C1 SW", "9000", s47.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1_PIR", s47.cmd, profileAidSession);
+    var ns47W = BindEs10xSingleRequest.parseBerTlv(s47.resp);
+    var ns47Ok0 = ns47W.length === 1 && ns47W[0].tag === "BF30";
+    var ns47In = ns47Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns47W[0].value) : [];
+    var ns47Code = (ns47In.length === 1 && ns47In[0].tag === "80") ? ns47In[0].value : "absent";
+    bind.checkData("S47-C2 响应结构匹配 #R_REMOVE_NOTIF_NOTHING_TO_DELETE deleteNotificationStatus", "01", ns47Code);
+
+    // 步骤 48:SEQ10-8] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla48 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s48 = bind.sendApdu(sdCla48, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S48-C1 SW", "9000", s48.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw48T = BindEs10xSingleRequest.parseBerTlv(s48.resp);
+    var lw48Ok0 = lw48T.length === 1 && lw48T[0].tag === "BF28";
+    var lw48_br = lw48Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw48T[0].value) : [];
+    var lw48_brtag = lw48_br.length === 1 ? lw48_br[0].tag : "";
+    var lw48_els = lw48_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw48_br[0].value) : [];
+    bind.checkData("S48-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw48_brtag === "A0" && lw48_els.length === 0) ? "1" : "0");
+
+    // notif_seq 运行时绑定(B-6 缺口④):NOTIF_SEQ_NO_IN1_PIR ← 步 40 ListNotification 响应 BF28→A0→BF2F 元素 op[1]=80 第 2 命中的 seqNumber[0](AUTOMATIC TAGS 机械链)
+    var nd49_NOTIF_SEQ_NO_IN1_PIR = {ok: false, seq: ""};
+    var nd49_NOTIF_SEQ_NO_IN1_PIRT = BindEs10xSingleRequest.parseBerTlv(s40.resp);
+    if (nd49_NOTIF_SEQ_NO_IN1_PIRT.length === 1 && nd49_NOTIF_SEQ_NO_IN1_PIRT[0].tag === "BF28") {
+        var nd49_NOTIF_SEQ_NO_IN1_PIRX1 = BindEs10xSingleRequest.parseBerTlv(nd49_NOTIF_SEQ_NO_IN1_PIRT[0].value);
+        if (nd49_NOTIF_SEQ_NO_IN1_PIRX1.length === 1 && nd49_NOTIF_SEQ_NO_IN1_PIRX1[0].tag === "A0") {
+            var nd49_NOTIF_SEQ_NO_IN1_PIRX2 = BindEs10xSingleRequest.parseBerTlv(nd49_NOTIF_SEQ_NO_IN1_PIRX1[0].value);
+            var nd49_NOTIF_SEQ_NO_IN1_PIRXHIT = 0;
+            for (var nd49_NOTIF_SEQ_NO_IN1_PIRXI = 0; nd49_NOTIF_SEQ_NO_IN1_PIRXI < nd49_NOTIF_SEQ_NO_IN1_PIRX2.length; nd49_NOTIF_SEQ_NO_IN1_PIRXI++) {
+                if (nd49_NOTIF_SEQ_NO_IN1_PIRX2[nd49_NOTIF_SEQ_NO_IN1_PIRXI].tag !== "BF2F") { continue; }
+                var nd49_NOTIF_SEQ_NO_IN1_PIRXM = BindEs10xSingleRequest.parseBerTlv(nd49_NOTIF_SEQ_NO_IN1_PIRX2[nd49_NOTIF_SEQ_NO_IN1_PIRXI].value);
+                for (var nd49_NOTIF_SEQ_NO_IN1_PIRXJ = 0; nd49_NOTIF_SEQ_NO_IN1_PIRXJ < nd49_NOTIF_SEQ_NO_IN1_PIRXM.length; nd49_NOTIF_SEQ_NO_IN1_PIRXJ++) {
+                    if (nd49_NOTIF_SEQ_NO_IN1_PIRXM[nd49_NOTIF_SEQ_NO_IN1_PIRXJ].tag === "81" && nd49_NOTIF_SEQ_NO_IN1_PIRXM[nd49_NOTIF_SEQ_NO_IN1_PIRXJ].value === "80") {
+                        nd49_NOTIF_SEQ_NO_IN1_PIRXHIT += 1;
+                        if (nd49_NOTIF_SEQ_NO_IN1_PIRXHIT === 2) {
+                            for (var nd49_NOTIF_SEQ_NO_IN1_PIRXK = 0; nd49_NOTIF_SEQ_NO_IN1_PIRXK < nd49_NOTIF_SEQ_NO_IN1_PIRXM.length; nd49_NOTIF_SEQ_NO_IN1_PIRXK++) {
+                                if (nd49_NOTIF_SEQ_NO_IN1_PIRXM[nd49_NOTIF_SEQ_NO_IN1_PIRXK].tag === "80") { nd49_NOTIF_SEQ_NO_IN1_PIR.seq = nd49_NOTIF_SEQ_NO_IN1_PIRXM[nd49_NOTIF_SEQ_NO_IN1_PIRXK].value; nd49_NOTIF_SEQ_NO_IN1_PIR.ok = true; }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    var nd49_NOTIF_SEQ_NO_IN1_PIRReq = nd49_NOTIF_SEQ_NO_IN1_PIR.ok ? BindEs10xSingleRequest.buildTlv("BF30", BindEs10xSingleRequest.buildTlv("80", nd49_NOTIF_SEQ_NO_IN1_PIR.seq)) : "";
+    // 步骤 49:SEQ10-9] MTD_STORE_DATA(tc_step;REQ: RQ35_021, RQ57_077, RQ57_078, RQ57_079)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla49 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: NOTIF_SEQ_NO_IN1_PIR stays in execution domain
+    var s49 = bind.sendApdu(sdCla49, "E2", "91", "00", nd49_NOTIF_SEQ_NO_IN1_PIRReq, "00", "9000");
+    bind.checkData("S49-C1 SW", "9000", s49.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "NOTIF_SEQ_NO_IN1_PIR", s49.cmd, profileAidSession);
+    var ns49W = BindEs10xSingleRequest.parseBerTlv(s49.resp);
+    var ns49Ok0 = ns49W.length === 1 && ns49W[0].tag === "BF30";
+    var ns49In = ns49Ok0 ? BindEs10xSingleRequest.parseBerTlv(ns49W[0].value) : [];
+    var ns49Code = (ns49In.length === 1 && ns49In[0].tag === "80") ? ns49In[0].value : "absent";
+    bind.checkData("S49-C2 响应结构匹配 #R_REMOVE_NOTIF_NOTHING_TO_DELETE deleteNotificationStatus", "01", ns49Code);
+
+    // 步骤 50:SEQ10-10] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla50 = s55.chan !== null ? (s55.chan <= 3 ? 128 + s55.chan : 188 + s55.chan).toString(16).toUpperCase() : null;
+    var s50 = bind.sendApdu(sdCla50, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S50-C1 SW", "9000", s50.sw);
+    // notification-list 响应面(TC_eUICC_ES10b.RemoveNotificationFromList,SGP.22 §5.7.9 结构 + vendor ABI 分支锚;断言参数经 spec_pattern 子句注入):
+    var lw50T = BindEs10xSingleRequest.parseBerTlv(s50.resp);
+    var lw50Ok0 = lw50T.length === 1 && lw50T[0].tag === "BF28";
+    var lw50_br = lw50Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw50T[0].value) : [];
+    var lw50_brtag = lw50_br.length === 1 ? lw50_br[0].tag : "";
+    var lw50_els = lw50_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw50_br[0].value) : [];
+    bind.checkData("S50-C2 响应结构匹配 #R_LIST_NOTIF_NONE:ListNotificationResponse notificat branch/count", "1", (lw50_brtag === "A0" && lw50_els.length === 0) ? "1" : "0");
 }