package Ġcom . gi ye ok . pass zero 2 . util Ċ Ċ import Ġjava . io . Data InputStream Ċ Ċ fun ĠData InputStream . read Bytes Fully ( length : ĠInt ): ĠByteArray Ġ{ ĊĠĠĠ Ġval Ġarray Ġ= ĠByteArray ( length ) ĊĠĠĠ Ġthis . read Fully ( array , Ġ 0 , Ġlength ) ĊĠĠĠ Ġreturn Ġarray Ċ } Ċ Ċ fun ĠData InputStream . read All (): ĠByteArray Ġ{ ĊĠĠĠ Ġreturn Ġthis . read Bytes () Ċ } Ċ Ċ fun ĠByteArray . to HexString (): ĠString Ġ{ ĊĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder () ĊĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġthis . size ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . append ( String . format ("% 0 2 x ", Ġthis [ i ])) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġbuilder . toString () Ċ } Ċ Ċ fun ĠString . hex StringTo ByteArray (): ĠByteArray Ġ{ ĊĠĠĠ Ġfun Ġhex ToInt ( c : ĠChar ): ĠInt Ġ= Ġwhen Ġ( c ) Ġ{ ĊĠĠĠĠĠĠĠ Ġin Ġ' 0 ' .. ' 9 ' Ġ-> Ġc Ġ- Ġ' 0 ' ĊĠĠĠĠĠĠĠ Ġin Ġ' a ' .. ' f ' Ġ-> Ġ( c Ġ- Ġ' a ' Ġ+ Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġin Ġ' A ' .. ' F ' Ġ-> Ġ( c Ġ- Ġ' A ' Ġ+ Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠException (" Invalid Ġhex ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġresult Ġ= ĠByteArray ( length Ġ/ Ġ 2 ) ĊĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength Ġstep Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Index Ġ= Ġhex ToInt ( this [ i ]); ĊĠĠĠĠĠĠĠ Ġval Ġsecond Index Ġ= Ġhex ToInt ( this [ i Ġ+ Ġ 1 ]); ĊĊĠĠĠĠĠĠĠ Ġval Ġoct et Ġ= Ġfirst Index . sh l ( 4 ). or ( second Index ) ĊĠĠĠĠĠĠĠ Ġresult . set ( i . shr ( 1 ), Ġoct et . to Byte ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġresult Ċ } Ċ