package Ġcom . l umi wallet . android . core . utils . btc _ based Ċ Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . io . IOException Ċ Ċ class ĠByteBuffer ( var arg Ġbytes : ĠByte ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġbuffer Ġ= ĠByteArrayOutputStream () ĊĊĠĠĠ Ġvar Ġsize : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġbuffer . size () ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġvar Ġbytes : ĠByteArray Ġ= Ġbyte ArrayOf () ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġbuffer . toByteArray () ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġbuffer Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġappend (* bytes ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġappend ( var arg Ġbytes : ĠByte ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . write ( bytes ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġput First ( var arg Ġbytes : ĠByte ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= Ġbuffer . toByteArray () ĊĠĠĠĠĠĠĠ Ġbuffer . reset () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . write ( bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . write ( current ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbytes (): ĠByteArray Ġ= Ġbuffer . toByteArray () ĊĊĠĠĠ Ġfun Ġbytes Re versed (): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= Ġbytes () ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠByteArray ( bytes . size ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġbytes . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult [ i ] Ġ= Ġbytes [ bytes . size Ġ- Ġ 1 Ġ- Ġi ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsize (): ĠInt Ġ= Ġbuffer . size () Ċ Ċ } Ċ