get "libhdr" let validcusip(c) = valof $( let sum = 0 unless c%0 = 9 resultis false for i = 1 to 8 do $( let v = ( 2 - (i & 1) ) * valof $( test '0' <= c%i <= '9' then resultis c%i - '0' or test 'A' <= c%i <= 'Z' then resultis 10 + c%i - 'A' or test c%i = '**' then resultis 36 or test c%i = '@' then resultis 37 or test c%i = '#' then resultis 38 else resultis -1 $) sum := sum + v/10 + v rem 10 $) resultis (10 - (sum rem 10)) rem 10 = c%9 - '0' $) let show(c) be writef("%S: %Svalid*N", c, validcusip(c) -> "", "in") let start() be $( show("037833100") show("17275R102") show("38259P508") show("594918104") show("68389X106") show("68389X105") $)