<scxml version="1.0" initial="1">
    
	<state id="1">
	        <transition performative="proxy" from="initiator" to="B" target="2"/>
	</state>
	<state id="2">
		<transition performative="refuse" from="B" to="initiator" target="3"/>
		<transition performative="agree" from="B" to="initiator" target="4"/>
	</state>
	
	<state id="3" final="yes">
	</state>
	
	<state id="4">
                <!-- This can either be failure-no-match or failure-proxy -->
		<transition performative="failure" from="B" to="initiator" target="5"/>
		<transition performative="inform" from="B" to="initiator" target="6"/>
	</state>
	
	<state id="5" final="yes">
	</state>
	
	<state id="6" final="yes">
                <!-- This is failure-brokering -->
                <transition performative="failure" from="B" to="initiator" target="7"/>
		
		<!-- This means: Any subprotocol (inform/query/...) can be started.
		     Actually it will be the proxied performative. Subprotocols are all started by 'B'. The response is 'proxied',
		     i.e. forwarded back to the initiator. That means, that either 0 (in case of inform)
		     or 1 (otherwise) messages are sent back, not more!
		     For propagate subprotocols, proxied_to should be omitted.
		-->
		<subprotocol name=".*" from="B" proxied_to="initiator"/> 
	</state>
	
	<state id="7" final="yes">
        </state>
</scxml>
