package Ġno . nav . hel se . br reg Ċ Ċ class ĠOrg Nr ( val Ġvalue : ĠString ) Ġ{ ĊĠĠ Ġprivate Ġval Ġweights Ġ= ĠlistOf ( 3 , Ġ 2 , Ġ 7 , Ġ 6 , Ġ 5 , Ġ 4 , Ġ 3 , Ġ 2 ) ĊĊĠĠ Ġinit Ġ{ ĊĠĠĠĠĠ Ġif Ġ(! checksum Valid ()) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" S je kk sum Ġstem mer Ġik ke ") ĊĠĠĠĠĠ Ġ} ĊĠĠ Ġ} ĊĊĠĠ Ġprivate Ġfun Ġchecksum Valid (): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġif Ġ( value . length Ġ!= Ġ 9 ) Ġreturn Ġfalse ĊĠĠĠĠĠ Ġval Ġweighted Sum Ġ= Ġ( 0 .. 7 ) ĊĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġidx Ġ-> Ġ ĠCharacter . get Numeric Value ( value [ idx ]) Ġ* Ġweights [ idx ]} ĊĠĠĠĠĠĠĠĠ Ġ. sum () ĊĊĠĠĠĠĠ Ġval Ġcontrol Digit Ġ= Ġwhen Ġ( val Ġremainder Ġ= Ġweighted Sum . rem ( 1 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ- 1 0 ĊĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 1 1 Ġ- Ġremainder ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġreturn Ġcontrol Digit Ġ== ĠCharacter . get Numeric Value ( value [ 8 ]) ĊĠĠ Ġ} Ċ Ċ } Ċ