| 1 | IBCEOB ;ALB/TMP - 835 EDI EOB MESSAGE PROCESSING ;20-JAN-99
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**137,135,265,155**;21-MAR-94
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | UPDEOB(IBTDA) ; Update EXPLANATION OF BENEFITS file (#361.1) from return msg
 | 
|---|
| 6 |  ; IBTDA = ien of return message
 | 
|---|
| 7 |  ; Function returns ien of EOB file entry or "" if errors found
 | 
|---|
| 8 |  ;          the data.  Any errors found are
 | 
|---|
| 9 |  ;          stored in array ^TMP("IBCERR-EOB",$J,n) in text format
 | 
|---|
| 10 |  ;          n = seq # and are stored with the EOB in a wp field
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  N IB0,IB100,IBBTCH,IBE,IBMNUM,IBT,DLAYGO,DIC,DD,DO,X,Y,Z,Z0,Z1,IBEOB,IBBAD,IBOK,IB,IBA1,IBIFN,IBFILE
 | 
|---|
| 13 |  K ^TMP($J),^TMP("IBCERR-EOB",$J)
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 |  S (IBBAD,IBEOB)=""
 | 
|---|
| 16 |  S IB0=$G(^IBA(364.2,IBTDA,0))
 | 
|---|
| 17 |  S IBMNUM=+$P(IB0,U)
 | 
|---|
| 18 |  S X=+$G(^IBA(364,+$P(IB0,U,5),0))
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 |  G:$S(IBMNUM=""!(X=""):1,1:$D(^IBM(361.1,"AC",IBMNUM))) UPDQ
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 |  ; Duplicate EOB Check
 | 
|---|
| 23 |  S IBFILE="^IBA(364.2,"_IBTDA_",2)"
 | 
|---|
| 24 |  I $$DUP(IBFILE,X) G UPDQ
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  I '$$LOCK^IBCEM(IBTDA) G UPDQ ;Lock msg file 364.2
 | 
|---|
| 27 |  S IBEOB=+$$ADD3611(IBMNUM,$P(IB0,U,5),$P(IB0,U,4),X,0,IBFILE)
 | 
|---|
| 28 |  L -^IBA(364.2,IBTDA,0)
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 |  I IBEOB<0 S IBEOB="" G UPDQ
 | 
|---|
| 31 |  D UPD3611(IBEOB,IBTDA,0)
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 | UPDQ I IBEOB,$O(^TMP("IBCERR-EOB",$J,0)) D ERRUPD(IBEOB,"IBCERR-EOB")
 | 
|---|
| 34 |  K ^TMP($J),^TMP("IBCERR-EOB",$J)
 | 
|---|
| 35 |  D CLEAN^DILF
 | 
|---|
| 36 |  Q +IBEOB
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 |  ; NOTE: **** For all variables IB0,IBEGBL,IBEOB below:
 | 
|---|
| 40 |  ; IB0 = raw data received for this record type on the 835 flat file
 | 
|---|
| 41 |  ; IBEGBL = subscript to use in error global
 | 
|---|
| 42 |  ; IBEOB = ien in file 361.1 for this EOB
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 | 835(IB0,IBEGBL,IBEOB) ; Store header
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 |  Q $$HDR^IBCEOB1(IB0,IBEGBL,IBEOB)
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 | 5(IB0,IBEGBL,IBEOB) ; Record '05'
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 |  N IBOK,IBBULL,DA,DR,DIE,X,Y
 | 
|---|
| 51 |  K IBZDATA
 | 
|---|
| 52 |  S DR=";",IBOK=1
 | 
|---|
| 53 |  S DIE="^IBM(361.1,",DA=IBEOB
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 |  S IBBULL=""
 | 
|---|
| 56 |  I $$UPDNM^IBCEOB00(IBEOB,IB0,.IBBULL,.DR)!$$UPDID^IBCEOB00(IBEOB,IB0,.IBBULL,.DR) D  ; New insured's name and/or HIC # found
 | 
|---|
| 57 |  . D CHGBULL^IBCEOB3(IBEOB,IBBULL) ;Send a bulletin reporting change
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 |  I $P(IB0,U,9) S DR=DR_"1.1///"_$$DATE^IBCEU($P(IB0,U,9))_";"
 | 
|---|
| 60 |  I $P(IB0,U,10) S DR=DR_"1.11///"_$$DATE^IBCEU($P(IB0,U,10))_";"
 | 
|---|
| 61 |  S DR=$P(DR,";",2,$L(DR,";")-1)
 | 
|---|
| 62 |  I DR'="" D ^DIE S IBOK=$D(Y)=0
 | 
|---|
| 63 |  I 'IBOK S ^TMP(IBEGBL,$J,+$O(^TMP(IBEGBL,$J,""),-1)+1)="Bad record 5 data"
 | 
|---|
| 64 |  Q IBOK
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 | 10(IB0,IBEGBL,IBEOB) ; Record '10'
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 |  N DA,DR,DIE,X,Y,VAL,IBOK
 | 
|---|
| 69 |  S DIE="^IBM(361.1,",DA=IBEOB
 | 
|---|
| 70 |  S DR=".13////"_$S($P(IB0,U,3)="Y":1,$P(IB0,U,4)="Y":2,$P(IB0,U,5)="Y":3,$P(IB0,U,6)="Y":4,1:5)_";.21////"_$P(IB0,U,7)
 | 
|---|
| 71 |  S DR=DR_";2.04////"_$$DOLLAR($P(IB0,U,10))_";1.01////"_$$DOLLAR($P(IB0,U,11))_$S($P(IB0,U,12)'="":";.14///"_$P(IB0,U,12),1:"")
 | 
|---|
| 72 |  S DR=DR_$S($P(IB0,U,13)'="":";.1///"_$P(IB0,U,13),1:"")_";.11///"_($P(IB0,U,14)/10000)_";.12///"_($P(IB0,U,15)/100)
 | 
|---|
| 73 |  I $P(IB0,U,8)'="" S DR=DR_";.08////"_$P(IB0,U,8)_$S($P(IB0,U,9)'="":";.09///"_$P(IB0,U,9),1:"")
 | 
|---|
| 74 |  ;
 | 
|---|
| 75 |  D ^DIE
 | 
|---|
| 76 |  S IBOK=($D(Y)=0)
 | 
|---|
| 77 |  I 'IBOK S ^TMP(IBEGBL,$J,+$O(^TMP(IBEGBL,$J,""),-1)+1)="Bad record 10 data" G Q10
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 |  ; File ICN in Bill
 | 
|---|
| 80 |  D ICN^IBCEOB00(IBEOB,$P(IB0,U,12),$P($G(^IBM(361.1,IBEOB,0)),U,15),.IBOK)
 | 
|---|
| 81 |  ;
 | 
|---|
| 82 | Q10 Q IBOK
 | 
|---|
| 83 |  ;
 | 
|---|
| 84 | 15(IB0,IBEGBL,IBEOB) ; Record '15'
 | 
|---|
| 85 |  ;
 | 
|---|
| 86 |  N A,IBOK
 | 
|---|
| 87 |  ;
 | 
|---|
| 88 |  S A="3;1.03;1;0;0^4;1.04;1;0;0^5;1.05;1;0;0^6;1.07;1;0;0^7;1.08;1;0;0^8;1.09;1;0;0^9;1.02;1;0;0^10;2.05;1;0;0"
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 |  S IBOK=$$STORE^IBCEOB1(A,IB0,IBEOB)
 | 
|---|
| 91 |  I 'IBOK S ^TMP(IBEGBL,$J,+$O(^TMP(IBEGBL,$J,""),-1)+1)="Bad record 15 data" G Q15
 | 
|---|
| 92 |  ;
 | 
|---|
| 93 |  ; For Medicare MRA's only:
 | 
|---|
| 94 |  ; If the Covered Amount is present (15 record, piece 3), then file
 | 
|---|
| 95 |  ; a claim level adjustment with Group code=OA, Reason code=AB3.
 | 
|---|
| 96 |  ;
 | 
|---|
| 97 |  I $P($G(^IBM(361.1,IBEOB,0)),U,4)=1,+$P(IB0,U,3) D
 | 
|---|
| 98 |  . N IB20
 | 
|---|
| 99 |  . S IB20=20_U_$P(IB0,U,2)_U_"OA"_U_"AB3"_U_$P(IB0,U,3)_U_"0000000000"
 | 
|---|
| 100 |  . S IB20=IB20_U_"Covered Amount"
 | 
|---|
| 101 |  . S IBOK=$$20(IB20,IBEGBL,IBEOB)
 | 
|---|
| 102 |  . I 'IBOK S ^TMP(IBEGBL,$J,+$O(^TMP(IBEGBL,$J,""),-1)+1)="Could not file the OA-AB3 claim level adjustment for the Covered Amount"
 | 
|---|
| 103 |  . K ^TMP($J,20)
 | 
|---|
| 104 |  . Q
 | 
|---|
| 105 |  ;
 | 
|---|
| 106 | Q15 Q IBOK
 | 
|---|
| 107 |  ;
 | 
|---|
| 108 | 17(IB0,IBEGBL,IBEOB) ; Record '17'
 | 
|---|
| 109 |  N A,IBOK
 | 
|---|
| 110 |  S A="3;25.01;0;1;0^4;25.02;0;1;0^5;25.03;0;1;0^6;25.04;0;1;0^7;25.05;0;1;0^8;25.06;0;1;0^9;25.07;0;1;0"
 | 
|---|
| 111 |  S IBOK=$$STORE^IBCEOB1(A,IB0,IBEOB)
 | 
|---|
| 112 |  I 'IBOK S ^TMP(IBEGBL,$J,+$O(^TMP(IBEGBL,$J,""),-1)+1)="Bad record 17 data"
 | 
|---|
| 113 | Q17 Q IBOK
 | 
|---|
| 114 |  ;
 | 
|---|
| 115 | 20(IB0,IBEGBL,IBEOB) ; Record '20'
 | 
|---|
| 116 |  ;
 | 
|---|
| 117 |  N A,LEVEL,IBGRP,IBDA,IBOK
 | 
|---|
| 118 |  ;
 | 
|---|
| 119 |  S IBGRP=$P(IB0,U,3)
 | 
|---|
| 120 |  I IBGRP'="" S ^TMP($J,20)=IBGRP
 | 
|---|
| 121 |  I IBGRP="" S IBGRP=$G(^TMP($J,20))
 | 
|---|
| 122 |  I IBGRP="" S ^TMP(IBEGBL,$J,+$O(^TMP(IBEGBL,$J,""),-1)+1)="Missing claim level adjustment group code" G Q20
 | 
|---|
| 123 |  ;
 | 
|---|
| 124 |  S IBDA(1)=$O(^IBM(361.1,IBEOB,10,"B",IBGRP,0))
 | 
|---|
| 125 |  ;
 | 
|---|
| 126 |  I 'IBDA(1) D  ;Needs a new entry at group level
 | 
|---|
| 127 |  . N X,Y,DA,DD,DO,DIC,DLAYGO
 | 
|---|
| 128 |  . S DIC="^IBM(361.1,"_IBEOB_",10,",DIC(0)="L",DLAYGO=361.11,DA(1)=IBEOB
 | 
|---|
| 129 |  . S DIC("P")=$$GETSPEC^IBEFUNC(361.1,10)
 | 
|---|
| 130 |  . S X=IBGRP
 | 
|---|
| 131 |  . D FILE^DICN K DIC,DO,DD,DLAYGO
 | 
|---|
| 132 |  . I Y<0 K IBDA S ^TMP(IBEGBL,$J,+$O(^TMP(IBEGBL,$J,""),-1)+1)="Adjustment group code could not be added" Q
 | 
|---|
| 133 |  . S IBDA(1)=+Y
 | 
|---|
| 134 |  ;
 | 
|---|
| 135 |  I $G(IBDA(1)) D  ;Add a new entry at the reason code level
 | 
|---|
| 136 |  . S DIC="^IBM(361.1,"_IBEOB_",10,"_IBDA(1)_",1,",DIC(0)="L",DLAYGO=361.111,DA(2)=IBEOB,DA(1)=IBDA(1)
 | 
|---|
| 137 |  . S DIC("P")=$$GETSPEC^IBEFUNC(361.11,1)
 | 
|---|
| 138 |  . S X=$P(IB0,U,4)
 | 
|---|
| 139 |  . D FILE^DICN K DIC,DO,DD,DLAYGO
 | 
|---|
| 140 |  . I Y<0 K IBDA S ^TMP(IBEGBL,$J,+$O(^TMP(IBEGBL,$J,""),-1)+1)="Adjustment reason code could not be added" Q
 | 
|---|
| 141 |  . S IBDA=+Y
 | 
|---|
| 142 |  ;
 | 
|---|
| 143 |  I $G(IBDA) D
 | 
|---|
| 144 |  . S LEVEL=10,LEVEL("DIE")="^IBM(361.1,"_IBEOB_",10,"_IBDA(1)_",1,"
 | 
|---|
| 145 |  . S LEVEL(0)=IBDA,LEVEL(1)=IBDA(1),LEVEL(2)=IBEOB
 | 
|---|
| 146 |  . S A="5;.02;1;0;0^6;.03;0;1;1^7;.04;0;1;0"
 | 
|---|
| 147 |  . S IBOK=$$STORE^IBCEOB1(A,IB0,IBEOB,.LEVEL)
 | 
|---|
| 148 |  . I 'IBOK S ^TMP(IBEGBL,$J,+$O(^TMP(IBEGBL,$J,""),-1)+1)="Bad adjustment reason code ("_$P(IB0,U,4)_") data" Q
 | 
|---|
| 149 | Q20 Q $G(IBOK)
 | 
|---|
| 150 |  ;
 | 
|---|
| 151 | 30(IB0,IBEGBL,IBEOB) ; Record '30'
 | 
|---|
| 152 |  ;
 | 
|---|
| 153 |  N IBOK
 | 
|---|
| 154 |  D 30^IBCEOB0(IB0,IBEOB,.IBOK)
 | 
|---|
| 155 | Q30 Q $G(IBOK)
 | 
|---|
| 156 |  ;
 | 
|---|
| 157 | 35(IB0,IBEGBL,IBEOB) ; Record '35'
 | 
|---|
| 158 |  ; Moved due to space constraints
 | 
|---|
| 159 | Q35 Q $$35^IBCEOB00(IB0,IBEGBL,IBEOB)
 | 
|---|
| 160 |  ;
 | 
|---|
| 161 | 37(IB0,IBEGBL,IBEOB) ; Record '37'
 | 
|---|
| 162 |  ; Moved due to space constraints
 | 
|---|
| 163 | Q37 Q $$37^IBCEOB00(IB0,IBEGBL,IBEOB)
 | 
|---|
| 164 |  ;
 | 
|---|
| 165 | 40(IB0,IBEGBL,IBEOB) ; Record '40'
 | 
|---|
| 166 |  ;
 | 
|---|
| 167 |  N IBOK
 | 
|---|
| 168 |  D 40^IBCEOB0(IB0,IBEOB,.IBOK)
 | 
|---|
| 169 | Q40 Q $G(IBOK)
 | 
|---|
| 170 |  ;
 | 
|---|
| 171 | 41(IB0,IBEGBL,IBEOB) ; Record '41'
 | 
|---|
| 172 |  ;
 | 
|---|
| 173 |  N IBOK
 | 
|---|
| 174 |  D 41^IBCEOB0(IB0,IBEOB,.IBOK)
 | 
|---|
| 175 | Q41 Q $G(IBOK)
 | 
|---|
| 176 |  ;
 | 
|---|
| 177 | 42(IB0,IBEGBL,IBEOB) ; Record '42'
 | 
|---|
| 178 |  ;
 | 
|---|
| 179 |  N IBOK
 | 
|---|
| 180 |  D 42^IBCEOB0(IB0,IBEOB,.IBOK)
 | 
|---|
| 181 | Q42 Q $G(IBOK)
 | 
|---|
| 182 |  ;
 | 
|---|
| 183 | 45(IB0,IBEGBL,IBEOB) ; Record '45'
 | 
|---|
| 184 |  ;
 | 
|---|
| 185 |  N IBOK
 | 
|---|
| 186 |  D 45^IBCEOB0(IB0,IBEOB,.IBOK)
 | 
|---|
| 187 |  Q $G(IBOK)
 | 
|---|
| 188 |  ;
 | 
|---|
| 189 | DOLLAR(X) ; Convert value in X to dollar format XXX.XX
 | 
|---|
| 190 |  Q $S(+X:$J(X/100,$L(+X),2),1:0)
 | 
|---|
| 191 |  ;
 | 
|---|
| 192 | ADD3611(IBMNUM,IBTBILL,IBBATCH,X,IBAR,IBFILE) ; Add stub record to file 361.1
 | 
|---|
| 193 |  ; X = the ien of the referenced bill in file 399
 | 
|---|
| 194 |  ; IBTBILL = ien of transmitted bill (optional)
 | 
|---|
| 195 |  ; IBBATCH = ien of batch # the transmitted bill was in (optional)
 | 
|---|
| 196 |  ; IBMNUM = the message # from which this record originally came
 | 
|---|
| 197 |  ; IBAR = 1 only if called from AR
 | 
|---|
| 198 |  ; IBFILE = array reference of raw EOB data
 | 
|---|
| 199 |  ;
 | 
|---|
| 200 |  N DIC,DA,DR,DO,DD,DLAYGO,Y,REVSTAT,BS
 | 
|---|
| 201 |  F  L +^IBM(361.1,0):10 Q:$T
 | 
|---|
| 202 |  ;
 | 
|---|
| 203 |  ; default proper review status
 | 
|---|
| 204 |  S BS=$P($G(^DGCR(399,X,0)),U,13)   ; bill status
 | 
|---|
| 205 |  S REVSTAT=$S(BS=7:9,BS=3:3,BS=4:3,1:0)
 | 
|---|
| 206 |  S DIC(0)="L",DIC="^IBM(361.1,",DLAYGO=361.1
 | 
|---|
| 207 |  S DIC("DR")=".16////"_REVSTAT_";.17////0"_";100.02////"_IBMNUM_$S('$G(IBAR):";.19////"_+IBTBILL_";100.01////"_IBBATCH,1:"")
 | 
|---|
| 208 |  S DIC("DR")=DIC("DR")_";100.05////"_$$CHKSUM^IBCEMU1(IBFILE)
 | 
|---|
| 209 |  D FILE^DICN
 | 
|---|
| 210 |  L -^IBM(361.1,0)
 | 
|---|
| 211 |  Q +Y
 | 
|---|
| 212 |  ;
 | 
|---|
| 213 | UPD3611(IBEOB,IBTDA,IBAR) ; From flat file 835 format, add EOB record
 | 
|---|
| 214 |  ; IBEOB = the ien of the entry in file 361.1 being updated
 | 
|---|
| 215 |  ; IBTDA = the ien in the source file
 | 
|---|
| 216 |  ; IBAR = 1 if being called from AR
 | 
|---|
| 217 |  N IBA1,IBFILE,IBEGBL,Z,IBREC,Q
 | 
|---|
| 218 |  S IBFILE=$S('$G(IBAR):"^IBA(364.2,"_IBTDA_",2)",1:"^TMP("_$J_",""RCDP-EOB"","_IBTDA_")")
 | 
|---|
| 219 |  S IBEGBL=$S('$G(IBAR):"IBCERR-EOB",1:"RCDPERR-EOB")
 | 
|---|
| 220 |  I $G(IBAR),'$$HDR^IBCEOB1($G(^TMP($J,"RCDPEOB","HDR")),IBEGBL,IBEOB) Q
 | 
|---|
| 221 |  S IBA1=0
 | 
|---|
| 222 |  F  S IBA1=$O(@IBFILE@(IBA1)) Q:'IBA1  S IB0=$S('$G(IBAR):$P($G(^(IBA1,0)),"##RAW DATA: ",2),1:$G(@IBFILE@(IBA1,0))) I IB0'="" D
 | 
|---|
| 223 |  . S IBREC=+IB0
 | 
|---|
| 224 |  . I IBREC'=37 K ^TMP($J,37)
 | 
|---|
| 225 |  . I IBREC S IB="S IBOK=$$"_IBREC_"(IB0,IBEGBL,IBEOB)",Q=IBREC_"^IBCEOB" I $T(@Q)'="" X IB S:'IBOK ^TMP(IBEGBL,$J,+$O(^TMP(IBEGBL,$J,""),-1)+1)=$S('$G(IBAR):"  ##RAW DATA: ",1:"")_IB0
 | 
|---|
| 226 |  ;
 | 
|---|
| 227 |  Q
 | 
|---|
| 228 |  ;
 | 
|---|
| 229 | ERRUPD(IBEOB,IBEGBL) ; Update error text in entry, if needed
 | 
|---|
| 230 |  D WP^DIE(361.1,IBEOB_",",20,"","^TMP(IBEGBL,$J)","")
 | 
|---|
| 231 |  Q
 | 
|---|
| 232 |  ;
 | 
|---|
| 233 |  ;
 | 
|---|
| 234 | DUP(IBARRAY,IBIFN) ; Duplicate Check
 | 
|---|
| 235 |  ; This function determines if the EOB data already exists in file
 | 
|---|
| 236 |  ; 361.1 by comparing the checksums of the raw 835 data.
 | 
|---|
| 237 |  ;
 | 
|---|
| 238 |  ; IBARRAY = Literal array reference where the raw 835 data exists.
 | 
|---|
| 239 |  ;           The data exists at @IBARRAY@(n,0), where n is the seq#.
 | 
|---|
| 240 |  ;           For example, IBARRAY = "^IBA(364.2,IBIEN,2)"
 | 
|---|
| 241 |  ;
 | 
|---|
| 242 |  ; IBIFN = the bill # (ptr to 399).  The checksums of the EOB's on 
 | 
|---|
| 243 |  ;         file for this bill will be compared to the checksum of the
 | 
|---|
| 244 |  ;         835 raw data in the IBARRAY reference.
 | 
|---|
| 245 |  ;
 | 
|---|
| 246 |  ; This function returns 0 if the entry is not found (no duplicate),
 | 
|---|
| 247 |  ; Otherwise, the IEN of the entry in file 361.1 is returned if this
 | 
|---|
| 248 |  ; is a duplicate EOB.
 | 
|---|
| 249 |  ;
 | 
|---|
| 250 |  NEW DUP,IBEOB,CHKSUM1,CHKSUM2
 | 
|---|
| 251 |  S DUP=0,IBIFN=+$G(IBIFN)
 | 
|---|
| 252 |  I $G(IBARRAY)=""!'IBIFN G DUPX
 | 
|---|
| 253 |  I '$D(^IBM(361.1,"B",IBIFN)) G DUPX     ; no EOB's on file yet
 | 
|---|
| 254 |  S CHKSUM1=$$CHKSUM^IBCEMU1(IBARRAY)     ; checksum of current EOB
 | 
|---|
| 255 |  I 'CHKSUM1 G DUPX                       ; must be able to be calculated
 | 
|---|
| 256 |  S IBEOB=0
 | 
|---|
| 257 |  F  S IBEOB=$O(^IBM(361.1,"B",IBIFN,IBEOB)) Q:'IBEOB  D  Q:DUP
 | 
|---|
| 258 |  . S CHKSUM2=+$P($G(^IBM(361.1,IBEOB,100)),U,5)   ; checksum of old EOB
 | 
|---|
| 259 |  . I 'CHKSUM2 Q
 | 
|---|
| 260 |  . I CHKSUM1=CHKSUM2 S DUP=IBEOB Q                    ; comparison
 | 
|---|
| 261 |  . Q
 | 
|---|
| 262 | DUPX ;
 | 
|---|
| 263 |  Q DUP
 | 
|---|
| 264 |  ;
 | 
|---|