package Ġru . dim ag or 5 5 5 . mv ic omp ose . ab straction Ċ Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . flow . Mutable Shared Flow Ċ import Ġkotlinx . coroutines . flow . as Shared Flow Ċ Ċ abstract Ġclass ĠBootstrap per < Action Ġ: ĠAny , ĠMessage Ġ: ĠAny > Ġ{ ĊĠĠĠ Ġprivate Ġval Ġ_ actions Ġ= ĠMutable Shared Flow < Action >() ĊĠĠĠ Ġinternal Ġval Ġactions Ġ= Ġ_ actions . as Shared Flow () ĊĊĠĠĠ Ġprivate Ġval Ġ_ messages Ġ= ĠMutable Shared Flow < Message >() ĊĠĠĠ Ġinternal Ġval Ġmessages Ġ= Ġ_ messages . as Shared Flow () ĊĊĠĠĠ Ġabstract Ġfun Ġinit ( scope : ĠCor outine Scope ) ĊĊĠĠĠ Ġprotected Ġsuspend Ġfun Ġsend Act on ( action : ĠAction ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ actions . emit ( action ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġsuspend Ġfun ĠsendMessage ( msg : ĠMessage ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ messages . emit ( msg ) ĊĠĠĠ Ġ} Ċ }