/*** STDADDR.SAS ***/
 %MACRO STDADDR (TARADDR);
 IF 0 LT INDEX(&TARADDR,' AND '       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' AND '      )),5 )=' '      ;
 IF 0 LT INDEX(&TARADDR,' THE '       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' THE '      )),5 )=' '      ;
 IF 0 LT INDEX(&TARADDR,' OF '        ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' OF '       )),4 )=' '      ;
 IF 0 LT INDEX(&TARADDR,' STREET'     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' STREET'    )),7 )=' ST'    ;
 IF 0 LT INDEX(&TARADDR,' ALLEY'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' ALLEY'     )),6 )=' ALY'   ;
 IF 0 LT INDEX(&TARADDR,' ANNEX'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' ANNEX'     )),6 )=' ANX'   ;
 IF 0 LT INDEX(&TARADDR,' ARCADE'     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' ARCADE'    )),7 )=' ARC'   ;
 IF 0 LT INDEX(&TARADDR,' BOULEVARD'  ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' BOULEVARD' )),10)=' BLVD'  ;
 IF 0 LT INDEX(&TARADDR,' CAUSEWAY'   ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' CAUSEWAY'  )),9 )=' CSWY'  ;
 IF 0 LT INDEX(&TARADDR,' CIRCLE'     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' CIRCLE'    )),7 )=' CIR'   ;
 IF 0 LT INDEX(&TARADDR,' CORNER'     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' CORNER'    )),7 )=' COR'   ;
 IF 0 LT INDEX(&TARADDR,' CORNERS'    ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' CORNERS'   )),8 )=' COR'   ;
 IF 0 LT INDEX(&TARADDR,' CROSSING'   ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' CROSSING'  )),9 )=' XING'  ;
 IF 0 LT INDEX(&TARADDR,' COUNTY'     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' COUNTY'    )),7 )=' CNTY'  ;
 IF 0 LT INDEX(&TARADDR,'DISTRICTS'   ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'DISTRICTS'  )),9 )='DIST ' ;
 IF 0 LT INDEX(&TARADDR,'DISTRICT'    ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'DISTRICT'   )),8 )='DIST ' ;
 IF 0 LT INDEX(&TARADDR,' EXPRESSWAY' ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' EXPRESSWAY')),11)=' EXPY'  ;
 IF 0 LT INDEX(&TARADDR,' EXPWY'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' EXPWY'     )),6 )=' EXPY'  ;
 IF 0 LT INDEX(&TARADDR,' FIRST'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' FIRST'     )),6 )=' 1ST'   ;
 IF 0 LT INDEX(&TARADDR,' ONE '       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' ONE '      )),5 )=' 1 '    ;
 IF 0 LT INDEX(&TARADDR,' SECOND'     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' SECOND'    )),7 )=' 2ND'   ;
 IF 0 LT INDEX(&TARADDR,' TWO '       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' TWO '      )),5 )=' 2 '    ;
 IF 0 LT INDEX(&TARADDR,' THIRD'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' THIRD'     )),6 )=' 3RD'   ;
 IF 0 LT INDEX(&TARADDR,' THREE '     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' THREE '    )),7 )=' 3 '    ;
 IF 0 LT INDEX(&TARADDR,' FOURTH'     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' FOURTH'    )),7 )=' 4TH'   ;
 IF 0 LT INDEX(&TARADDR,' FOUR '      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' FOUR '     )),6 )=' 4 '    ;
 IF 0 LT INDEX(&TARADDR,' FIFTH'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' FIFTH'     )),6 )=' 5TH'   ;
 IF 0 LT INDEX(&TARADDR,' FIVE '      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' FIVE '     )),6 )=' 5 '    ;
 IF 0 LT INDEX(&TARADDR,' SIXTH'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' SIXTH'     )),6 )=' 6TH'   ;
 IF 0 LT INDEX(&TARADDR,' SIX '       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' SIX '      )),5 )=' 6 '    ;
 IF 0 LT INDEX(&TARADDR,' SEVENTH'    ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' SEVENTH'   )),8 )=' 7TH'   ;
 IF 0 LT INDEX(&TARADDR,' SEVEN '     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' SEVEN '    )),7 )=' 7 '    ;
 IF 0 LT INDEX(&TARADDR,' EIGHTH'     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' EIGHTH'    )),7 )=' 8TH'   ;
 IF 0 LT INDEX(&TARADDR,' EIGHT '     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' EIGHT '    )),7 )=' 8 '    ;
 IF 0 LT INDEX(&TARADDR,' NINTH'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' NINTH'     )),6 )=' 9TH'   ;
 IF 0 LT INDEX(&TARADDR,' NINE '      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' NINE '     )),6 )=' 9 '    ;
 IF 0 LT INDEX(&TARADDR,' FORT'       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' FORT'      )),5 )=' FT'    ;
 IF 0 LT INDEX(&TARADDR,' GROVE'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' GROVE'     )),6 )=' GRVE'  ;
 IF 0 LT INDEX(&TARADDR,' GROVES'     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' GROVES'    )),6 )=' GRVE'  ;
 IF 0 LT INDEX(&TARADDR,' HEIGHTS'    ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' HEIGHTS'   )),8 )=' HTS'   ;
 IF 0 LT INDEX(&TARADDR,' LANE'       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' LANE'      )),5 )=' LN'    ;
 IF 0 LT INDEX(&TARADDR,' MIAN '      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' MIAN '     )),6 )=' MAIN ' ;
 IF 0 LT INDEX(&TARADDR,' PLAINS'     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' PLAINS'    )),7 )=' PLNS'  ;
 IF 0 LT INDEX(&TARADDR,' PLAIN'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' PLAIN'     )),6 )=' PLNS'  ;
 IF 0 LT INDEX(&TARADDR,' ROAD'       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' ROAD'      )),5 )=' RD'    ;
 IF 0 LT INDEX(&TARADDR,' AVENUE'     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' AVENUE'    )),7 )=' AVE'   ;
 IF 0 LT INDEX(&TARADDR,' DRIVE'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' DRIVE'     )),6 )=' DR'    ;
 IF 0 LT INDEX(&TARADDR,' PARKWAY'    ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' PARKWAY'   )),8 )=' PKWY'  ;
 IF 0 LT INDEX(&TARADDR,' PARK'       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' PARK'      )),5 )=' PK'    ;
 IF 0 LT INDEX(&TARADDR,' HIGHWAY'    ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' HIGHWAY'   )),8 )=' HWY'   ;
 IF 0 LT INDEX(&TARADDR,' HGWY'       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' HGWY'      )),5 )=' HWY'   ;
 IF 0 LT INDEX(&TARADDR,' FREEWAY'    ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' FREEWAY'   )),8 )=' FWY'   ;
 IF 0 LT INDEX(&TARADDR,' FRWY'       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' FRWY'      )),5 )=' FWY'   ;
 IF 0 LT INDEX(&TARADDR,'BUILDING'    ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'BUILDING'   )),8 )='BLDG'   ;
 IF 0 LT INDEX(&TARADDR,'NORTH '      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'NORTH '     )),6 )='N'      ;
 IF 0 LT INDEX(&TARADDR,' NO '        ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' NO '       )),4 )='N'      ;
 IF 0 LT INDEX(&TARADDR,'NORTHEAST '  ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'NORTHEAST ' )),10)='NE'     ;
 IF 0 LT INDEX(&TARADDR,'EAST '       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'EAST '      )),5 )='E'      ;
 IF 0 LT INDEX(&TARADDR,'SOUTHEAST '  ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'SOUTHEAST ' )),10)='SE'     ;
 IF 0 LT INDEX(&TARADDR,'SOUTH '      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'SOUTH '     )),6 )='S'      ;
 IF 0 LT INDEX(&TARADDR,' SO '        ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' SO '       )),4 )='S'      ;
 IF 0 LT INDEX(&TARADDR,'SOUTHWEST '  ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'SOUTHWEST ' )),10)='SW'     ;
 IF 0 LT INDEX(&TARADDR,'WEST '       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'WEST '      )),5 )='W'      ;
 IF 0 LT INDEX(&TARADDR,'NORTHWEST '  ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'NORTHWEST ' )),10)='NW'     ;
 IF 0 LT INDEX(&TARADDR,'SUITE'       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'SUITE'      )),5 )='STE'    ;
 IF 0 LT INDEX(&TARADDR,'SQUARE'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'SQUARE'     )),6 )='SQ'     ;
 IF 0 LT INDEX(&TARADDR,'ROOM'        ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'ROOM'       )),4 )='RM'     ;
 IF 0 LT INDEX(&TARADDR,' CENTER'     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' CENTER'    )),7 )=' CTR'   ;
 IF 0 LT INDEX(&TARADDR,' CENTRE'     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' CENTRE'    )),7 )=' CTR'   ;
 IF 0 LT INDEX(&TARADDR,' COURT'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' COURT'     )),6 )=' CT'    ;
 IF 0 LT INDEX(&TARADDR,'P O BOX'     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'P O BOX'    )),7 )='BOX'    ;
 IF 0 LT INDEX(&TARADDR,'P O  BOX'    ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'P O  BOX'   )),8 )='BOX'    ;
 IF 0 LT INDEX(&TARADDR,'P  O  BOX'   ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'P  O  BOX'  )),9 )='BOX'    ;
 IF 0 LT INDEX(&TARADDR,'PO BOX'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'PO BOX'     )),6 )='BOX'    ;
 IF 0 LT INDEX(&TARADDR,'P O DRAWER'  ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'P O DRAWER' )),10)='DRAWER' ;
 IF 0 LT INDEX(&TARADDR,'P O DRAW'    ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'P O DRAW'   )),8 )='DRAW'   ;
 IF 0 LT INDEX(&TARADDR,'DRAWER'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'DRAWER'     )),6 )='DRAW'   ;
 IF 0 LT INDEX(&TARADDR,'MOUNTAIN'    ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'MOUNTAIN'   )),8 )='MT'     ;
 IF 0 LT INDEX(&TARADDR,' PLAZA'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' PLAZA'     )),6 )=' PLZ'   ;
 IF 0 LT INDEX(&TARADDR,' PLACE'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' PLACE'     )),6 )=' PL'    ;
 IF 0 LT INDEX(&TARADDR,' POINT'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' POINT'     )),6 )=' PT'    ;
 IF 0 LT INDEX(&TARADDR,' ROUTE'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' ROUTE'     )),6 )=' RT'    ;
 IF 0 LT INDEX(&TARADDR,' RTE '       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' RTE '      )),5 )=' RT'    ;
 IF 0 LT INDEX(&TARADDR,'SAINT'       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'SAINT'      )),5 )='ST'     ;
 IF 0 LT INDEX(&TARADDR,'SAINTE'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'SAINTE'     )),6 )='ST'     ;
 IF 0 LT INDEX(&TARADDR,'STATION'     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'STATION'    )),7 )='STATN'  ;
 IF 0 LT INDEX(&TARADDR,' TERRACE'    ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' TERRACE'   )),8 )=' TER'   ;
 IF 0 LT INDEX(&TARADDR,' TURNPIKE'   ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' TURNPIKE'  )),9 )=' TPKE'  ;
 IF 0 LT INDEX(&TARADDR,' TPK '       ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' TPK '      )),5 )=' TPKE'  ;
 IF 0 LT INDEX(&TARADDR,' FLOOR'      ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' FLOOR'     )),6 )=' FL'    ;
 IF 0 LT INDEX(&TARADDR,' FLR'        ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' FLR'       )),4 )=' FL'    ;
 IF 0 LT INDEX(&TARADDR,' VALLEY'     ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' VALLEY'    )),7 )=' VLY'   ;
 IF 0 LT INDEX(&TARADDR,' VILLAGE'    ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' VILLAGE'   )),8 )=' VLGE'  ;
 IF 0 LT INDEX(&TARADDR,' #'          ) THEN
      SUBSTR(&TARADDR,(INDEX(&TARADDR,' #'         )),2 )='  '     ;

   &TARADDR = LEFT(&TARADDR);
   &TARADDR = TRANSLATE(&TARADDR,'|',' ');
   DO WHILE ( 0  LT  INDEX(&TARADDR,'||'));
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'||')   )) =
      SUBSTR(&TARADDR,(INDEX(&TARADDR,'||') +1));
   END;
   &TARADDR = TRANSLATE(&TARADDR,' ','|');

 %MEND STDADDR;
/*** end of sas program - STDADDR ***/

/*** STDCITY.sas ***/
 %MACRO STDCITY (TARCITY);
 IF 0 LT INDEX(&TARCITY,' ALASKA'        ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' ALASKA'        )),7 )=' AK' ;
 IF 0 LT INDEX(&TARCITY,' ALABAMA'       ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' ALABAMA'       )),8 )=' AL' ;
 IF 0 LT INDEX(&TARCITY,' ARIZONA'       ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' ARIZONA'       )),8 )=' AZ' ;
 IF 0 LT INDEX(&TARCITY,' ARKANSAS'      ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' ARKANSAS'      )),9 )=' AR' ;
 IF 0 LT INDEX(&TARCITY,' COLORADO'      ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' COLORADO'      )),9 )=' CO' ;
 IF 0 LT INDEX(&TARCITY,' CONNECTICUT'   ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' CONNECTICUT'   )),12)=' CT' ;
 IF 0 LT INDEX(&TARCITY,' CONN'          ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' CONN'          )),5 )=' CT' ;
 IF 0 LT INDEX(&TARCITY,' DELAWARE'      ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' DELAWARE'      )),9 )=' DE' ;
 IF 0 LT INDEX(&TARCITY,' WASHINGTON DC' ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' WASHINGTON DC' )),14)=' DC' ;
 IF 0 LT INDEX(&TARCITY,' WASHINGTON D C') THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' WASHINGTON D C')),15)=' DC' ;
 IF 0 LT INDEX(&TARCITY,' FLORIDA'       ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' FLORIDA'       )),8 )=' FL' ;
 IF 0 LT INDEX(&TARCITY,' GEORGIA'       ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' GEORGIA'       )),8 )=' GA' ;
 IF 0 LT INDEX(&TARCITY,' HAWAII'        ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' HAWAII'        )),7 )=' HI' ;
 IF 0 LT INDEX(&TARCITY,' IDAHO'         ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' IDAHO'         )),6 )=' ID' ;
 IF 0 LT INDEX(&TARCITY,' ILLINOIS'      ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' ILLINOIS'      )),9 )=' IL' ;
 IF 0 LT INDEX(&TARCITY,' ILL'           ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' ILL'           )),4 )=' IL' ;
 IF 0 LT INDEX(&TARCITY,' INDIANA'       ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' INDIANA'       )),8 )=' IN' ;
 IF 0 LT INDEX(&TARCITY,' IND'           ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' IND'           )),4 )=' IN' ;
 IF 0 LT INDEX(&TARCITY,' IOWA'          ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' IOWA'          )),5 )=' IA' ;
 IF 0 LT INDEX(&TARCITY,' KANSAS'        ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' KANSAS'        )),7 )=' KS' ;
 IF 0 LT INDEX(&TARCITY,' KENTUCKY'      ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' KENTUCKY'      )),9 )=' KY' ;
 IF 0 LT INDEX(&TARCITY,' LOUISIANA'     ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' LOUISIANA'     )),10)=' LA' ;
 IF 0 LT INDEX(&TARCITY,' MAINE'         ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' MAINE'         )),6 )=' ME' ;
 IF 0 LT INDEX(&TARCITY,' MARYLAND'      ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' MARYLAND'      )),9 )=' MD' ;
 IF 0 LT INDEX(&TARCITY,' MASSACHUSETTS' ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' MASSACHUSETTS' )),14)=' MA' ;
 IF 0 LT INDEX(&TARCITY,' MASS'          ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' MASS'          )),5 )=' MA' ;
 IF 0 LT INDEX(&TARCITY,' MICHIGAN'      ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' MICHIGAN'      )),9 )=' MI' ;
 IF 0 LT INDEX(&TARCITY,' MICH'          ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' MICH'          )),5 )=' MI' ;
 IF 0 LT INDEX(&TARCITY,' MINNESOTA'     ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' MINNESOTA'     )),10)=' MN' ;
 IF 0 LT INDEX(&TARCITY,' MISSISSIPPI'   ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' MISSISSIPPI'   )),12)=' MS' ;
 IF 0 LT INDEX(&TARCITY,' MISSOURI'      ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' MISSOURI'      )),9 )=' MO' ;
 IF 0 LT INDEX(&TARCITY,' MONTANA'       ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' MONTANA'       )),8 )=' MT' ;
 IF 0 LT INDEX(&TARCITY,' NEBRASKA'      ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' NEBRASKA'      )),9 )=' NE' ;
 IF 0 LT INDEX(&TARCITY,' NEVADA'        ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' NEVADA'        )),7 )=' NV' ;
 IF 0 LT INDEX(&TARCITY,' NEW HAMPSHIRE' ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' NEW HAMPSHIRE' )),14)=' NH' ;
 IF 0 LT INDEX(&TARCITY,' N HAMPSHIRE'   ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' N HAMPSHIRE'   )),12)=' NH' ;
 IF 0 LT INDEX(&TARCITY,' NEW JERSEY'    ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' NEW JERSEY'    )),11)=' NJ' ;
 IF 0 LT INDEX(&TARCITY,' NEW MEXICO'    ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' NEW MEXICO'    )),11)=' NM' ;
 IF 0 LT INDEX(&TARCITY,' NEW YORK'      ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' NEW YORK'      )),9 )=' NY' ;
 IF 0 LT INDEX(&TARCITY,' NORTH CAROLINA') THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' NORTH CAROLINA')),15)=' NC' ;
 IF 0 LT INDEX(&TARCITY,' N CAROLINA'    ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' N CAROLINA'    )),11)=' NC' ;
 IF 0 LT INDEX(&TARCITY,' NORTH DAKOTA'  ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' NORTH DAKOTA'  )),13)=' ND' ;
 IF 0 LT INDEX(&TARCITY,' N DAKOTA'      ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' N DAKOTA'      )),9 )=' ND' ;
 IF 0 LT INDEX(&TARCITY,' OHIO'          ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' OHIO'          )),5 )=' OH' ;
 IF 0 LT INDEX(&TARCITY,' OKLAHOMA'      ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' OKLAHOMA'      )),9 )=' OK' ;
 IF 0 LT INDEX(&TARCITY,' OREGON'        ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' OREGON'        )),7 )=' OR' ;
 IF 0 LT INDEX(&TARCITY,' PENNSYLVANIA'  ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' PENNSYLVANIA'  )),13)=' PA' ;
 IF 0 LT INDEX(&TARCITY,' PENN'          ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' PENN'          )),5 )=' PA' ;
 IF 0 LT INDEX(&TARCITY,' RHODE ISLAND'  ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' RHODE ISLAND'  )),13)=' RI' ;
 IF 0 LT INDEX(&TARCITY,' SOUTH CAROLINA') THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' SOUTH CAROLINA')),15)=' SC' ;
 IF 0 LT INDEX(&TARCITY,' S CAROLINA'    ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' S CAROLINA'    )),11)=' SC' ;
 IF 0 LT INDEX(&TARCITY,' SOUTH DAKOTA'  ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' SOUTH DAKOTA'  )),13)=' SD' ;
 IF 0 LT INDEX(&TARCITY,' S DAKOTA'      ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' S DAKOTA'      )),9 )=' SD' ;
 IF 0 LT INDEX(&TARCITY,' TENNESSEE'     ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' TENNESSEE'     )),10)=' TN' ;
 IF 0 LT INDEX(&TARCITY,' TENN'          ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' TENN'          )),5 )=' TN' ;
 IF 0 LT INDEX(&TARCITY,' TEXAS'         ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' TEXAS'         )),6 )=' TX' ;
 IF 0 LT INDEX(&TARCITY,' UTAH'          ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' UTAH'          )),5 )=' UT' ;
 IF 0 LT INDEX(&TARCITY,' VERMONT'       ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' VERMONT'       )),8 )=' VT' ;
 IF 0 LT INDEX(&TARCITY,' VIRGINIA'      ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' VIRGINIA'      )),9 )=' VA' ;
 IF 0 LT INDEX(&TARCITY,' WASHINGTON'    ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' WASHINGTON'    )),11)=' WA' ;
 IF 0 LT INDEX(&TARCITY,' WEST VIRGINIA' ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' WEST VIRGINIA' )),14)=' WV' ;
 IF 0 LT INDEX(&TARCITY,' WISCONSIN'     ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' WISCONSIN'     )),10)=' WI' ;
 IF 0 LT INDEX(&TARCITY,' WYOMING'       ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' WYOMING'       )),8 )=' WY' ;
 IF 0 LT INDEX(&TARCITY,' CANADA'        ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' CANADA'        )),7 )=' CN' ;
 IF 0 LT INDEX(&TARCITY,' PUERTO RICO'   ) THEN
      SUBSTR(&TARCITY,(INDEX(&TARCITY,' PUERTO RICO'   )),12)=' PR' ;

   &TARCITY = LEFT(&TARCITY);
   &TARCITY = TRANSLATE(&TARCITY,'|',' ');
   DO WHILE ( 0  LT  INDEX(&TARCITY,'||'));
      SUBSTR(&TARCITY,(INDEX(&TARCITY,'||')   )) =
      SUBSTR(&TARCITY,(INDEX(&TARCITY,'||') +1));
   END;
   &TARCITY = TRANSLATE(&TARCITY,' ','|');

 %MEND STDCITY;
/*** end of sas program - STDCITY ***/