package Ġray . mint cat . guid en . data Ċ Ċ import Ġjava . io . Serializable ĊĊ Ċ class ĠGuid en Data ( ĊĠĠĠ Ġval Ġkey : ĠString , ĊĠĠĠ Ġval Ġsubs : ĠMutable List < Guid en Sub > Ġ= Ġmutable ListOf () Ċ ) Ġ: ĠSerializable Ġ{ ĊĊĠĠĠ Ġfun Ġget ( key : ĠString , Ġdefault : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsubs . first OrNull Ġ{ Ġit . key Ġ== Ġkey Ġ} ?. value Ġ?: Ġdefault ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Sub ( key : ĠString ): ĠGuid en Sub ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsubs . first OrNull Ġ{ Ġit . key Ġ== Ġkey Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset ( key : ĠString , Ġsetter : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsub Ġ= Ġget Sub ( key ) Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġsub . value Ġ= Ġsetter ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġedit ( key : ĠString , Ġeditor : ĠString , Ġvalue : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsub Ġ= Ġget Sub ( key ) Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġeditors Ġ= ĠGuid en API . get Editor ( editor ) Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( editor s . eval ( sub , Ġvalue ). remove ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubs . remove ( sub ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditors . eval ( sub , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠGuid en API . save () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊ Ċ }