/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 Ġped ro SG 9 4 . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . ped ro . rt mp . utils Ċ Ċ import Ġjava . io . InputStream Ċ import Ġjava . io . OutputStream Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġped ro Ġon Ġ 2 0 / 0 4 / 2 1 . Ċ Ġ*/ Ċ Ċ fun ĠInputStream . read Until ( byteArray : ĠByteArray ) Ġ{ ĊĠ Ġvar Ġbytes Read Ġ= Ġ 0 ĊĠ Ġwhile Ġ( bytes Read Ġ< ĠbyteArray . size ) Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġread ( byteArray , Ġbytes Read , ĠbyteArray . size Ġ- Ġbytes Read ) ĊĠĠĠ Ġif Ġ( result Ġ!= Ġ- 1 ) Ġbytes Read Ġ+= Ġresult ĊĠ Ġ} Ċ } Ċ Ċ fun ĠInputStream . read UInt 3 2 (): ĠInt Ġ{ ĊĠ Ġreturn Ġread () Ġand Ġ 0 xff Ġshl Ġ 2 4 Ġor Ġ( read () Ġand Ġ 0 xff Ġshl Ġ 1 6 ) Ġor Ġ( read () Ġand Ġ 0 xff Ġshl Ġ 8 ) Ġor Ġ( read () Ġand Ġ 0 xff ) Ċ } Ċ Ċ fun ĠInputStream . read UInt 2 4 (): ĠInt Ġ{ ĊĠ Ġreturn Ġread () Ġand Ġ 0 xff Ġshl Ġ 1 6 Ġor Ġ( read () Ġand Ġ 0 xff Ġshl Ġ 8 ) Ġor Ġ( read () Ġand Ġ 0 xff ) Ċ } Ċ Ċ fun ĠInputStream . read UInt 1 6 (): ĠInt Ġ{ ĊĠ Ġreturn Ġread () Ġand Ġ 0 xff Ġshl Ġ 8 Ġor Ġ( read () Ġand Ġ 0 xff ) Ċ } Ċ Ċ fun ĠInputStream . read UInt 3 2 LittleEndian (): ĠInt Ġ{ ĊĠ Ġreturn Ġto LittleEndian ( read UInt 3 2 ()) Ċ } Ċ Ċ fun ĠInputStream . read UInt 2 4 LittleEndian (): ĠInt Ġ{ ĊĠ Ġreturn Ġto LittleEndian ( read UInt 2 4 ()) Ċ } Ċ Ċ fun ĠInputStream . read UInt 1 6 LittleEndian (): ĠInt Ġ{ ĊĠ Ġreturn Ġto LittleEndian ( read UInt 1 6 ()) Ċ } Ċ Ċ fun ĠOutputStream . write UInt 3 2 ( value : ĠInt ) Ġ{ ĊĠ Ġwrite ( value Ġ ush r Ġ 2 4 ) ĊĠ Ġwrite ( value Ġ ush r Ġ 1 6 ) ĊĠ Ġwrite ( value Ġ ush r Ġ 8 ) ĊĠ Ġwrite ( value ) Ċ } Ċ Ċ fun ĠOutputStream . write UInt 2 4 ( value : ĠInt ) Ġ{ ĊĠ Ġwrite ( value Ġ ush r Ġ 1 6 ) ĊĠ Ġwrite ( value Ġ ush r Ġ 8 ) ĊĠ Ġwrite ( value ) Ċ } Ċ Ċ fun ĠOutputStream . write UInt 1 6 ( value : ĠInt ) Ġ{ ĊĠ Ġwrite ( value Ġ ush r Ġ 8 ) ĊĠ Ġwrite ( value ) Ċ } Ċ Ċ fun ĠOutputStream . write UInt 3 2 LittleEndian ( value : ĠInt ) Ġ{ ĊĠ Ġwrite ( value ) ĊĠ Ġwrite ( value Ġ ush r Ġ 8 ) ĊĠ Ġwrite ( value Ġ ush r Ġ 1 6 ) ĊĠ Ġwrite ( value Ġ ush r Ġ 2 4 ) Ċ } Ċ Ċ fun ĠOutputStream . write UInt 2 4 LittleEndian ( value : ĠInt ) Ġ{ ĊĠ Ġwrite ( value ) ĊĠ Ġwrite ( value Ġ ush r Ġ 8 ) ĊĠ Ġwrite ( value Ġ ush r Ġ 1 6 ) Ċ } Ċ Ċ fun ĠOutputStream . write UInt 1 6 LittleEndian ( value : ĠInt ) Ġ{ ĊĠ Ġwrite ( value ) ĊĠ Ġwrite ( value Ġ ush r Ġ 8 ) Ċ } Ċ Ċ private Ġfun Ġto LittleEndian ( value : ĠInt ): ĠInt Ġ{ ĊĠ Ġreturn ĠInteger . reverse Bytes ( value ) Ċ }