22FL ...[ 22^= ...[ NEW VERSION 853 CONTAINS MAJOR ALTERATIONS TO: 23DW ...[1. DISPENSE WITH BIT-MAPPING METHOD BY RELYING ON DESCENDING 23YG ...[ GENERATION ORDER OF DIRECTORY 24D6 ...[2. DEAL WITH THE 'BEING APPENDED' CASE WITHOUT ERASING WHOLE MULTIFILE 24XQ ...[3. TRUNCATE AT LOWEST MISSING GENERATION IN EVENT OF ELEMENTS BEING ON 25CB ...[ UNAVAILABLE RESIDENCES 25X2 ...[ 26BL ... SEG BMSTREAM,83,FILE,BMAP 26W= ...[ 27*W ... SEGENTRY K1BMSTREAM,MAPELEMENT 27TG ... SEGENTRY K2BMSTREAM,NOMULTRES 28*6 ... SEGENTRY K3BMSTREAM,MULTCHECK 28SQ ... SEGENTRY K4BMSTREAM,MDFERASE 29#B ...[ 29S2 ...[ THIS SEGMENT IS ENTERED FROM BACKMAP TO ENSURE THE CONSISTENCY 2=?L ...[ OF MULTIFILES. 2=R= ...[ WHEN ENTERED AT K1 & K2 FROM BMAPONE IT RECORDS INFORMATION ABOUT THE 2?=W ...[ ELEMENTS OF EACH MULTIFILE IN THE DIRECTORY IN 6-WORD ENTRIES IN A 2?QG ...[ FILE/FSMB BLOCK DEFINED BELOW. WHEN THE MDF IS FOUND THE CONSISTENCY 2#=6 ...[ OF THE COLLECTED INFORMATION & THE DETAILS GIVEN IN THE MDF DIRECTORY 2#PQ ...[ ENTRY IS CHECKED. IF NO FURTHER ACTION IS NECESSARY THE FSMB ENTRY 2*9B ...[ IS OBLITERATED. 2*P2 ...[ WHEN BMAPONE REACHES THE END OF THE DIRECTORY IT ENTERS K3BMSTREAM 2B8L ...[ TO MAKE A SECOND TIDY-UP PASS OF THE DIRECTORY IF THE FSMB CONTAINS 2BN= ...[ LEGIBLE ENTRIES. 2C7W ...[ IT IS ENTERED AT K4 FROM BMAPTWO IF THE MULTIFILE IS BEING ERASED, TO 2CMG ...[ UPDATE THE MDF'S DIRECTORY ENTRY IN THE EVENT OF ERASURE OF UNFROZEN 2D76 ...[ TEMPORARY ELEMENTS BY BMAPTWO. 2DLQ ...[ IT DEPENDS ON THE FACT THAT ELEMENTS OF A MULTIFILE ARE FOUND IN O 2F6B ...[ ORDER OF DECREASING GENERATION NUMBER AND COPES WITH MULTIFILES WITH 2FL2 ...[ THE SAME LOCAL NAME BUT DIFFERENT LANGUAGES. 2G5L ...[ 2GK= ...[ BECAUSE OF THE PLACE OF ENTRY FROM BMAPONE, ANY UNCLEAN 2H4W ...[ ELEMENTS MAY HAVE EITHER BNBMUWB OR BNUWB SET. 2HJG ...[ 2J46 ...[ N.B. X1->FSMB ENTRY; X3->NAME RECORD 2JHQ ...[ 2K3B ...[ FSMB FORMAT 2KH2 ...[ 2L2L ...#DEF SENTDEPTH=A1 [FILESTORE LEVEL @ WHICH APPLICABLE 2LG= ...[ WORD,FIELD & BIT IDENTIFIERS IN FSMB ENTRIES 2L^W ...#DEF SENTLEN=6 [LENGTH OF FSMB ENTRY 2MFG ...#DEF SLOC=A1+1 [POSITION OF 1ST WORD OF LOCAL NAME 2M^6 ...#DEF SLANG=A1+4 [ LANGUAGE CODE 2NDQ ...#DEF STREND=A1+5 [ ESTREND COPY ETC. 2NYB ... FIELDDEF PHIRST,9,STREND,8 [ FIRST GEN FOUND(=HIGHEST) 2PD2 ... BITDEFS STREND,13,UNCLELEMENT,MAKETEMP 2PXL ... FIELDDEF TOPGEN,9,STREND,23 [ NHGN FROM ESTREND 2QC= ...#DEF SGAP=A1+6 [ GAP DETAILS 2QWW ... FIELDDEF PREGAPGEN,9,SGAP,8 [ GAP BEYOND HERE 2RBG ... FIELDDEF NEXTGEN,9,SGAP,23 [ MOST RECENT GEN FOUND -1 2RW6 ...[ 2S*Q ...[ FIELD & BIT IDENTIFIERS IN ESTREND (MDF DIRECTORY ENTRY) 2STB ... BITDEFS ESTRENDN,0,MULTUNCLEAN [USEROPEN UNCLEAN WRITING BIT 2T*2 ... FIELDDEF OHGN,8,ESTRENDN,8 [OLD HIGHEST GEN 2TSL ... BITDEFS ESTRENDN,14,MULTERASE [MULTIFILE BEING ERASED 2W#= ... FIELDDEF NHGN,9,ESTRENDN,23 [NEW HIGHEST GEN 2WRW ...[ 2X?G ...#DEF MAXGEN=128 [MAXIMUM GENERATION OF ELEMENT 2XR6 ...[ 2Y=Q ...#DEF TRACE=K6BMSTREAM 2YQB ...[ 2^=2 ...[ 2^PL ...SENT [SUBROUTINE TO LOCATE ENTRY IN FSMB 329= ...[ LINK X7; EXPECTS X3->NAME RECORD; DESTROYS X0,X1,X4,X5 32NW ...[ EXIT+0:NO FSMB: EXIT+1:NO ENTRY: EXIT+2:X1->ENTRY: 338G ... 33N6 ... HUNTW 1,FILE,FSMB 347Q ... BNG 1 (7) [EXIT IF NOT FOUND 34MB ... LDX 0 SENTDEPTH(1) 3572 ... BXU 0 AMAPDEPTH(2),(7) [EXIT IF WRONG LEVEL 35LL ... ADN 7 1 [INCREMENT LINK 366= ... LDX 4 ALOGLEN(1) 36KW ... SBN 4 1 375G ...SENTLOOP 37K6 ... BZE 4 (7) [EXIT+1 IF ENTRY NOT FOUND 384Q ... TESTNAMX 3,ELOC1N(3),SLOC(1),SENTDIFF,5 38JB ... LDX 0 ELANN(3) 3942 ... BXE 0 SLANG(1),SENTFOUND [J IF MATCHING ENTRY FOUND 39HL ...SENTDIFF 3=3= ... ADN 1 SENTLEN [INCREMENT POINTER 3=GW ... SBN 4 SENTLEN [DECREMENT COUNT 3?2G ... BRN SENTLOOP 3?G6 ...SENTFOUND 3?^Q ... EXIT 7 1 [EXIT+2: X1->ENTRY 3#FB ...[ 3#^2 ...[ 3*DL ...STEPREWRITE [SUBROUTINE TO ENSURE CLEANLY ALTERED BLOCK REWRITTEN 3*Y= ...[ LINK X7; EXPECTS X3->NAME RECORD; DESTROYS X0; RESETS X2=FX2 3BCW ... 3BXG ... STEPREWRITE 3CC6 ... EXIT 7 0 3CWQ ...[ 3DBB ...[ 3DW2 ...[ 3F*L ...[ 3FT= ...MAPELEMENT [NORMAL ENTRY FROM BMAPONE IF BNMDF OR BNMULT IS SET 3G#W ...[ 3GSG ... STEPAGAIN [RECOVER X3->NAME RECORD 3H#6 ...[ 3HRQ ...[ CHECK THAT GENERATION NUMBER SENSIBLE 3J?B ...[ 3JR2 ... LDX 7 EGENN(3) 3K=L ... SBN 7 MAXGEN+1 [0ELEMENT,I.E. NOT=1 3Q6W ... JBS WRONGBITS,3,BNMULT [J IF ILLEGAL GEN FOR ELEMENT 3QLG ... BRN OKGEN 3R66 ...NOTGEN1 3RKQ ... JBS WRONGBITS,3,BNMDF [J IF ILLEGAL GEN FOR MDF 3S5B ...[ 3SK2 ...OKGEN 3T4L ...[ 3TJ= ...[ RECORD DETAILS IN FSMB ENTRY 3W3W ...[ 3WHG ... TRACEIF TRACE,199,299,EGENN(3),MULT GEN 3X36 ... CALL 7 SENT [LOCATE FSMB ENTRY 3XGQ ... BRN SETUPFSMB [NO FSMB: J TO SET UP FSMB & ENTRY 3Y2B ... BRN SETUPENTRY [NO ENTRY: J TO SET UP ENTRY 3YG2 ...UPDATENTRY [X1->ENTRY 3Y^L ... LF 1,NEXTGEN,7 [X7=EXPECTED GEN 3^F= ... BXE 7 EGENN(3),XPECTED [J IF EXPECTED GEN FOUND 3^YW ... LDX 7 EGENN(3) [OTHERWISE MAKE A RECORD 42DG ... STF 1,PREGAPGEN,7 [ OF THE GAP 42Y6 ... LDX 7 EGENN(3) 43CQ ...XPECTED 43XB ... SBN 7 1 [SET NEXT EXPECTED GEN 44C2 ... STF 1,NEXTGEN,7 44WL ... JBCC NOTTEMP,3,BNTEMP [J IF NOT TEMP ELSE 45B= ... CALL 7 STEPREWRITE [ CLEAR TEMP BIT (PREVIOUS BACKMAP) 45TW ...NOTTEMP 46*G ... JBS MDF,3,BNMDF [J IF MDF 46T6 ... JMBAC UP,3,BNBMUWB,BNUWB [J TO EXIT IF NOT UNCLEAN ELEMENT 47#Q ... BS 1,UNCLELEMENT [REMEMBER UNCLEAN ELEMENT 47SB ... UP [ & EXIT 48#2 ...[ 48RL ...[ 49?= ...MDF 49QW ...[ 4==G ...[ AT THIS STAGE WE KNOW THE HIGHEST GENERATION OF THE MULTIFILE 4=Q6 ...[ (PHIRST), THE LOWEST MISSING GENERATION (PREGAPGEN+1) IF ANY, & IF ANY 4?9Q ...[ ELEMENTS (SHOULD BE THHE HIGHEST) WERE OPEN FOR WRITING. WE NOW 4?PB ...[ ATTEMPT TO RECONCILE THESE FACTS WITH THE EXPECTED STATE DESCRIBED BY 4#92 ...[ ESTREND. (THE ESTREND UNCLEAN BIT SHOULD NEVER BE SET & IS IGNORED) 4#NL ...[ 4*8= ... TRACEIF TRACE,99,299,ESTRENDN(3),ESTREND [MULTIFILE ESTREND 4*MW ... TRACEIF TRACE,199,299,STREND(1),STREND 4B7G ... TRACEIF TRACE,199,299,SGAP(1),SGAP 4BM6 ... JBCC NOESTRUWB,3,MULTUNCLEAN 4C6Q ... CALL 7 STEPREWRITE [CLEAR USEROPEN UNCLEAN BIT IF SET 4CLB ...NOESTRUWB 4D62 ... LF 3,NHGN,6 [X6=NHGN 4DKL ... LF 3,OHGN,7 [X7=OHGN 4F5= ... BXE 6 7,SAMEGENS [J IF NHGN=OHGN (SHOULD ALWAYS BE) 4FJW ... STF 3,OHGN,6 [SET OHGN=NHGN 4G4G ... CALL 7 STEPREWRITE 4GJ6 ...SAMEGENS 4H3Q ... STF 1,TOPGEN,6 [REMEMBER NHGN 4HHB ...[ 4J32 ...[ TREAT MULTIFILE AS UNCLEAN IF MDF OR ANY ELEMENT IS UNCLEAN 4JGL ...[ 4K2= ... JMBS UNCLEAN,3,BNBMUWB,BNUWB [J IF MDF UNCLEAN 4KFW ... JBC MDFCLEAN,1,UNCLELEMENT 4K^G ... BS 3,BNBMUWB [MAKE MDF UNCLEAN AS WELL 4LF6 ... CALL 7 STEPREWRITE 4LYQ ...[ 4MDB ...UNCLEAN 4MY2 ...[ 4NCL ...[ UNCLEAN PATH. IGNORE ALL ERASE BITS - EVEN IN THE APPEND CASE (HENCE 4NX= ...[ AS(APPE)/LF/ER/EN/BREAK RETAINS ALL ORIGINAL ELEMENTS UP TO LOWEST A 4PBW ...[ ALREADY LISTED & ERASED - A DEBATABLE MERIT). 4PWG ...[ 4QB6 ... JBCC NOTERASED,3,MULTERASE 4QTQ ... CALL 7 STEPREWRITE 4R*B ...NOTERASED 4RT2 ... LF 1,TOPGEN,0 [X0=NHGN 4S#L ... SBN 0 1 4SS= ... BZE 0 NOTAPPEND [J IF = 1, I.E. NOT APPEND CASE 4T?W ...[ 4TRG ...[ APPEND CASE.(THERE IS NO OVERWRITE CASE AS USEROPEN ERASES ALL BUT 4W?6 ...[ MDF ANYWAY.) THE OBJECT IS TO DISCARD APPENDED ELEMENTS ONLY. 4WQQ ...[ 4X=B ... MBC 3,BNBMUWB,BNUWB [MAKE MDF CLEAN - TO ENABLE REVERSION 4XQ2 ... BS 3,BNREVERT [ TO PRE-APPEND STATE 4Y9L ... CALL 7 STEPREWRITE 4YP= ...[ 4^8W ...NOTAPPEND [NOW CLEAN UP 4^NG ...[ 5286 ...[ UNCLEAN & CLEAN(NOT ERASING) CASES. 52MQ ...[ IF THERE ARE GAPS IN THE MULTIFILE IT IS TRUNCATED BEFORE THE GAP 537B ...[ (POSSIBLY LEAVING EXCESS ELEMENTS). 53M2 ...[ IF THERE ARE EXCESS ELEMENTS (FOR ANY REASON), THE FSMB ENTRY IS 546L ...[ LEFT INTACT & RE-ENTRY AT K3 CAUSES THE EXCESS ELEMENTS TO BE MARKED 54L= ...[ "TO BE ERASED" (THUS PREVENTING REFREEZING BY BMOUTPUT ETC.) AND 555W ...[ "TEMPORARY" (THUS CAUSING ERASURE BY BMAPTWO AS THEY ARE NOT FROZEN). 55KG ...[ 5656 ... LF 1,PREGAPGEN,6 [X6=GEN BEFORE GAP 56JQ ... BZE 6 NOGAPS [J IF NO GAPS AT ALL 574B ... LF 1,TOPGEN,7 [X7=NHGN 57J2 ... BXGE 6 7,NOGAPS [J IF GAPS ONLY IN EXCESS ELEMENTS 583L ... TRACEIF TRACE,99,299,6,TRUNCATE [NEW HIGHEST MULTIFILE GEN 58H= ... STF 1,TOPGEN,6 [TRUNCATE MULTIFILE @ LOWEST GAP 592W ... STF 3,OHGN,6 59GG ... STF 3,NHGN,6 5=26 ... CALL 7 STEPREWRITE 5=FQ ...NOGAPS 5=^B ... LF 1,PHIRST,6 [X6=HIGHEST GEN FOUND 5?F2 ... LF 1,TOPGEN,7 [HIGHEST GEN ALLOWED 5?YL ... SBX 7 6 5#D= ... BNG 7 XCESS [J IF EXCESS ELEMENTS FOUND 5#XW ... STOZ SLOC(1) [OBLITERATE ENTRY - NO FURTHER ACTION 5*CG ...UP UP 5*X6 ...[ 5BBQ ...XCESS 5BWB ... TRACEIF TRACE,99,299,7,EXCESS [HIGHEST EXCESS MULTIFILE GEN FOUND 5CB2 ... UP 5CTL ...[ 5D*= ...[ 5DSW ...MDFCLEAN 5F#G ... JBC NOTAPPEND,3,MULTERASE [J UNLESS BEING ERASED 5FS6 ...[ 5G?Q ...[ GAPS ARE LEGITIMATE IN THIS CASE (I.E. BEING ERASED). 5GRB ...[ THE FSMB ENTRY IS RETAINED THUS CAUSING RE-ENTRY AT K3 TO MARK ALL 5H?2 ...[ NON-EXCESS ELEMENTS AS "TEMPORARY" (BECAUSE MAKETEMP IS SET) WHICH 5HQL ...[ ALLOWS REFREEZING. BMAPTWO WILL DELETE UNFROZEN ELEMENTS & MARK FROZEN 5J== ...[ ELEMENTS "TO BE ERASED". EXCESS ELEMENTS WILL BE DELETED BY BMAPTWO AS 5JPW ...[ IN THE NON-ERASING CASE. 5K9G ...[ 5KP6 ... BS 1,MAKETEMP [K3 ENTRY WILL MARK ALL ELEMENTS TEMP 5L8Q ... BS 3,BNERASE [ENSURE MDF IS ERASED 5LNB ... CALL 7 STEPREWRITE 5M82 ... UP [EXIT LEAVING ENTRY IN FSMB 5MML ...[ 5N7= ...[ 5NLW ...SETUPFSMB 5P6G ... SETNCORE SENTLEN+1,3,FILE,FSMB [NEW FSMB WITH ROOM FOR ONE ENTRY 5PL6 ... LDX 0 AMAPDEPTH(2) 5Q5Q ... STO 0 SENTDEPTH(3) 5QKB ... BRN SETENTRY 5R52 ...[ 5RJL ...SETUPENTRY 5S4= ... MHUNTW 3,FILE,FSMB 5SHW ... LDX 4 ALOGLEN(3) [MAKE ROOM FOR NEW ENTRY 5T3G ... ADN 4 SENTLEN 5TH6 ... ALTLEN 3,4 5W2Q ...SETENTRY 5WGB ... STEPAGAIN [RECOVER X3->NAME RECORD AFTER COOR 5X22 ... MHUNTW 1,FILE,FSMB 5XFL ... ADX 1 ALOGLEN(1) 5X^= ... SBN 1 SENTLEN+1 5YDW ... TRACEIF K6BMSTREAM,99,299,EGENN(3),NEW MULT 5YYG ... LDN 4 ELOC1N(3) 5^D6 ... LDN 5 SLOC(1) 5^XQ ... MOVE 4 3 [LOCAL NAME 62CB ... LDX 0 ELANN(3) 62X2 ... STO 0 SLANG(1) [& LANGUAGE IN ENTRY 63BL ... LDX 7 EGENN(3) 63W= ... STOZ SGAP(1) 64*W ... STOZ STREND(1) 64TG ... STF 1,NEXTGEN,7 [EXPECTED GEN = THIS ONE 65*6 ... STF 1,PHIRST,7 [FIRST ELEMENT FOUND IS HIGHEST GEN 65SQ ... BRN UPDATENTRY 66#B ...[ 66S2 ...[ 67?L ...[ 67R= ...NOMULTRES [ENTRY FROM BMAPONE IF ELEMENT ON LOST RESIDENCE 68=W ...[ AND MARKED "TO BE DUMPED" (I.E. NO DUMPED COPY EXISTS) 68QG ...[ THE OBJECT IS TO FORGET ABOUT THE ELEMENT THUS CREATING A GAP. 69=6 ...[ 69PQ ... STEPAGAIN 6=9B ... TRACEIF K6BMSTREAM,99,299,EGENN(3),MULTLOST [UNAVAILABLE MULT GEN 6=P2 ... CALL 7 SENT [RELOCATE ENTRY 6?8L ... BRN (GEOERR) 6?N= ... BRN (GEOERR) 6#7W ... LF 1,PHIRST,0 6#MG ... BXU 0 EGENN(3),NOTFIRST [J UNLESS THIS IS ONLY ELEMENT SO FAR 6*76 ... MHUNTW 3,FILE,FSMB 6*LQ ... LDX 7 ALOGLEN(3) 6B6B ... SBN 7 SENTLEN 6BL2 ... ALTLEN 3,7 [DELETE ENTRY 6C5L ... UP 6CK= ...[ 6D4W ...NOTFIRST 6DJG ... LF 1,NEXTGEN,7 6F46 ... ADN 7 1 [RESET EXPECTED GEN TO IGNORE THIS 6FHQ ... STF 1,NEXTGEN,7 6G3B ... UP 6GH2 ...[ 6H2L ...[ 6HG= ...[ 6H^W ...MULTCHECK [ENTRY FROM BMAPONE @ END OF DIRECTORY WITH MULTIFILES 6JFG ...[ 6J^6 ... NGN 6 SENTLEN-1 [ALLOW FOR SENTDEPTH WORD 6KDQ ... MHUNTW 1,FILE,FSMB 6KYB ...SMBLOOP 6LD2 ... ADN 6 SENTLEN 6LXL ... BXE 6 ALOGLEN(1),SCRAPFSMB[J IF ONLY DELETED ENTRIES 6MC= ... SMO 6 6MWW ... LDX 0 SLOC-1(1) [LOOK AT NEXT ENTRY 6NBG ... BZE 0 SMBLOOP [J TO IGNORE IF OBLITERATED 6NW6 ...[ 6P*Q ...[ VALID ENTRY FOUND: READ THROUGH DIRECTORY 6PTB ...[ 6Q*2 ... FASTREWI 1 6QSL ...NEXTNAME 6R#= ... STEP 6RRW ... BZE 3 XFLISTADD [J IF END OF FILE 6S?G ... LDX 0 EDESCRIBE(3) 6SR6 ... BNZ 0 NEXTNAME [J UNLESS NAME REC 6T=Q ... JBC NEXTNAME,3,BNMULT 6TQB ... CALL 7 SENT 6W=2 ... BRN (GEOERR) 6WPL ... BRN NEXTNAME 6X9= ... LF 1,TOPGEN,0 6XNW ... BXGE 0 EGENN(3),TEMP [J UNLESS XS COMP 6Y8G ... MBS 3,BNTEMP,BNERASE [PREVENT FREEZING & ENSURE 6YN6 ... CALL 7 STEPREWRITE [ DELETION IN BMAPTWO IF EXCESS 6^7Q ... BRN NEXTNAME [ ELEMENT 6^MB ...[ 7272 ...TEMP 72LL ... JBC NEXTNAME,1,MAKETEMP 736= ... BS 3,BNTEMP 73KW ... CALL 7 STEPREWRITE 745G ... BRN NEXTNAME 74K6 ...[ 754Q ...SCRAPFSMB 75JB ... FREECORE 1 7642 ... UP 76HL ...[ 773= ...XFLISTADD 77GW ... MFREEW FILE,FSMB 782G ... UPPLUS 1 [FLISTADD REQUIRED 78G6 ...[ 78^Q ...[ 79FB ...MDFERASE [ENTRY FROM BMAPTWO TO SEE IF MDF 79^2 ...[ CAN BE ERASED 7=DL ... QKTABSET FILERING(2),5,6 [REMEMBER POSITION IN DIR 7=Y= ... STEPAGAIN [RECOVER X3->NAME RECORD OF MDF 7?CW ... MHUNTW 1,FILE,FLOCNB [SET UP FLOCNB FOR GETDIR 7?XG ... LDX 0 ELANN(3) 7#C6 ... STO 0 A1+5(1) [LANGUAGE 7#WQ ... STOZ A1+4(1) [ANY GEN 7*BB ... LDN 0 ELOC1N(3) [LOCAL NAME & REEL 7*W2 ... ADN 1 A1 7B*L ... MOVE 0 4 7BT= ... GETDIR 6 7C#W ... MFREEW FILE,ENT [FROM GETDIR 7CSG ... QKTABULA FILERING(2),5,6 7D#6 ... STEPAGAIN [REPOSITION ON MDF NAME RECORD 7DRQ ... MHUNTW 1,FILE,FLOCNB 7F?B ... LDX 0 A1+4(1) 7FR2 ... SBN 0 1 7G=L ... BNZ 0 NOTONE [J IF ELEMENT EXISTS 7GQ= ... BS 3,BNTEMP [MARK MDF TO ENSURE 7H9W ... CALL 7 STEPREWRITE [ DELETION IN BMAPTWO 7HPG ... UP 7J96 ...[ 7JNQ ...NOTONE 7K8B ... LF 3,NHGN,0 [X0=NHGN 7KN2 ... BXE 0 A1+4(1),UP [J TO EXIT UNLESS ESTREND 7L7L ... LDX 7 A1+4(1) [HIGHEST NEEDS RESET 7LM= ... STF 3,OHGN,7 [ REMAINING 7M6W ... STF 3,NHGN,7 [ GENERATION 7MLG ... BS 3,MULTERASE 7N66 ... CALL 7 STEPREWRITE 7NKQ ... UP 7P5B ...[ 7PK2 ...#END ^^^^ ...377674560009