(&x    None+INDGiven a hostname and a port number, initialize the multicast system.Note: it is important that you never send messages larger than the maximum message size; if you do, all subsequent communication will probably fail.Returns a reader and a writer.ENOTE: By rights the two functions should be "locally" polymorphic in a), but this requires impredicative types.  Multicast IP Port numberMaximum message size  None+INMessages to slave nodesUThis datatype is not exposed; instead, we expose primitives for dealing with slaves. Local backendCreate a new local node findPeers t broadcasts a  who's there?& message on the local network, waits to microseconds, and then collects and returns the answers. You can use this to dynamically discover peer nodes.NMake sure that all log messages are printed by the logger on the current nodeInitialize the backendCreate a new local nodePeer discovery6Respond to peer discovery requests sent by other nodesFMake sure that all log messages are printed by the logger on this nodeCalling slaveW sets up a new local node and then waits. You start processes on the slave by calling spawn from other nodes.This function does not return. The only way to exit the slave is to CTRL-C the process or call terminateSlave from another node. The slave controller interprets s(Terminate the slave at the given node ID Find slave nodes Terminate all slaves   finds all slaves  currently available on the local network, redirects all log messages to itself, and then calls the specified process, passing the list of slaves nodes.Terminates when the specified process terminates. If you want to terminate the slaves when the master terminates, you should manually call  .oIf you start more slave nodes after having started the master node, you can discover them with later calls to  +, but be aware that you will need to call redirectLogHere+ to redirect their logs to the master node.'Note that you can use functionality of SimpleLocalnet directly (through ), instead of using 'startMaster'/'startSlave'B, if the master/slave distinction does not suit your application.kshut down the logger process. This ensures that any pending messages are flushed before the process exits.# !"#$%& '()*+    !"#$%& '()*+,      !"##$%&'()*+,distr_FzATHsxGK55BWYiRkB60RYEControl.Distributed.Process.Backend.SimpleLocalnet.Internal.Multicast2Control.Distributed.Process.Backend.SimpleLocalnet initMulticastBackend newLocalNode findPeersredirectLogsHereinitializeBackend startSlaveterminateSlave findSlavesterminateAllSlaves startMasterUDPState bufferFor bufferAppend recvBinaryrecvWithLengthrecvAll recvExact recvExactFromSlaveControllerMsgapiNewLocalNode apiFindPeerspeerDiscoveryDaemonapiRedirectLogsHereslaveControllershutdownLoggerRedirectLogsReplySlaveTerminateRedirectLogsToPeerDiscoveryMsgPeerDiscoveryRequestPeerDiscoveryReply BackendState _localNodes_peersdiscoveryDaemon localNodespeers$fBinaryRedirectLogsReply$fBinarySlaveControllerMsg$fBinaryPeerDiscoveryMsg