package Ġactions . expected Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . Type Adapter Ċ import Ġcom . google . gson . reflect . Type Token Ċ import Ġcom . google . gson . stream . Json Reader Ċ import Ġcom . google . gson . stream . Json Writer ĊĊ Ċ actual Ġobject ĠSerializer Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmap Type Ġby Ġlazy Ġ{ Ġobject Ġ: ĠType Token < Mutable Map < String , ĠAny ? >>() Ġ{} . type Ġ} ĊĠĠĠ Ġlateinit Ġvar Ġa og Gson : ĠGson ĊĊĠĠĠ Ġactual Ġfun Ġstringify Con vers ationToken ( data : ĠAny ?): ĠCon vers ationToken Data Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġif Ġ( data Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCon vers ationToken Data ( data Ġ= ĠObject ()) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCon vers ationToken Data ( data ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtoken ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġactual Ġfun Ġserialize ( any : ĠAny ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( any Ġ== Ġnull ) Ġreturn Ġ"{} " ĊĠĠĠĠĠĠĠ Ġreturn Ġa og Gson . toJson ( any ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġactual Ġfun Ġdeserialize Map ( json : ĠString ): ĠMutable Map < String , ĠAny ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġa og Gson . fromJson ( json , Ġmap Type ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠMap Type Adapter ( val Ġgson : ĠGson ): ĠType Adapter < Map < String , ĠAny ? >>() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġwrite ( out : ĠJson Writer , Ġvalue : ĠMap < String , ĠAny ?> ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvalue . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout . begin Object () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout . name ( it . key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout . json Value ( gson . toJson ( it . value )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġread (` in `: ĠJson Reader ): ĠMap < String , ĠAny ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmap Of () ĊĠĠĠ Ġ} Ċ Ċ }