package Ġcom . gab ri elle eg 1 . bed rock void . protocol . types Ċ Ċ import Ġio . netty . buffer . Byte Buf Ċ import Ġkotlin . experimental . and Ċ Ċ type alias ĠVar Long Ġ= ĠLong Ċ Ċ fun ĠByte Buf . write Var Long ( var Long : ĠLong ): ĠByte Buf Ġ{ ĊĠ Ġvar Ġvalue Ġ= Ġvar Long ĊĊĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠ Ġif Ġ(( value Ġand Ġ 0 x FFFFFF 8 0 ) Ġ== Ġ 0 L ) Ġ{ ĊĠĠĠĠĠ Ġwrite Byte ( value . toInt ()) ĊĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġwrite Byte ((( value Ġand Ġ 0 x 7 FL ) Ġor Ġ 0 x 8 0 ). toInt ()) ĊĠĠĠ Ġvalue Ġ= Ġvalue Ġ ush r Ġ 7 ĊĠ Ġ} Ċ } Ċ Ċ fun ĠByte Buf . read Var Long (): ĠLong Ġ{ ĊĠ Ġvar Ġoffset Ġ= Ġ 0 ĊĠ Ġvar Ġvalue Ġ= Ġ 0 L ĊĠ Ġvar Ġbyte : ĠByte ĊĊĠ Ġdo Ġ{ ĊĠĠĠ Ġif Ġ( offset Ġ== Ġ 7 0 ) Ġerror (" Var Long Ġtoo Ġlong ") ĊĊĠĠĠ Ġbyte Ġ= Ġread Byte () ĊĠĠĠ Ġvalue Ġ= Ġvalue Ġor Ġ(( byte . to Long () Ġand Ġ 0 x 7 FL ) Ġshl Ġoffset ) ĊĊĠĠĠ Ġoffset Ġ+= Ġ 7 ĊĠ Ġ} Ġwhile Ġ(( byte Ġand Ġ 0 x 8 0 . to Byte ()) Ġ!= Ġ 0 . to Byte ()) ĊĊĠ Ġreturn Ġvalue Ċ } Ċ