package Ġorg . elixir _ lang . beam . chunk Ċ Ċ import Ġorg . elixir _ lang . beam . chunk . Chunk . Companion . unsigned Byte Ċ import Ġorg . elixir _ lang . beam . chunk . Chunk . Companion . unsigned Int Ċ import Ġorg . elixir _ lang . beam . chunk . atoms . Atom Ċ import Ġjava . nio . charset . Charset Ċ import Ġjava . util .* Ċ Ċ class ĠAtom s Ġprivate Ġconstructor ( private Ġval Ġatom List : ĠList < Atom >) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġindex Ġ 1 - based Ġindex . ĠĠ 1 Ġis Ġreserved Ġfor Ġ{# link ĠmoduleName } ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoperator Ġfun Ġget ( index : ĠInt ): ĠAtom Ġ= Ġatom List [ index Ġ- Ġ 1 ] ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġindex Ġ 1 - based Ġindex . ĠĠ 1 Ġis Ġreserved Ġfor Ġ{# link ĠmoduleName } ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget OrNull ( index : ĠInt ): ĠAtom ? Ġ= Ġatom List . get OrNull ( index Ġ- Ġ 1 ) ĊĠĠĠ Ġfun ĠmoduleName (): ĠString ? Ġ= Ġatom List . get OrNull ( 0 )?. string ĊĠĠĠ Ġfun Ġsize (): ĠInt Ġ= Ġatom List . size ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom ( chunk : ĠChunk , Ġtype ID : ĠChunk . TypeID , Ġcharset : ĠCharset ): ĠAtom s ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġatoms : ĠAtom s ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( chunk . type ID Ġ== Ġtype ID . toString () Ġ&& Ġchunk . data . size Ġ>= Ġ 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġoffset Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġatom Count Byte Count Ġ= Ġunsigned Int ( chunk . data , Ġoffset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġatom Count Ġ= Ġatom Count Byte Count . first ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Ġ+= Ġatom Count Byte Count . second ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġatom List Ġ= ĠArrayList < Atom >() ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 .. atom Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġatom Length Byte Count Ġ= Ġunsigned Byte ( chunk . data [ offset ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġatom Length Ġ= Ġatom Length Byte Count . first ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Ġ+= Ġatom Length Byte Count . second ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstring Ġ= ĠString ( chunk . data , Ġoffset , Ġatom Length , Ġcharset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Ġ+= Ġatom Length ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġatom List . add ( Atom ( i . toInt (), Ġatom Length , Ġstring )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġatoms Ġ= ĠAtom s ( atom List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġatoms ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ