<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:zeebe="http://camunda.org/schema/zeebe/1.0" xmlns:nano="https://nanobpm.io/schema/shapes/1.0" id="Definitions_nano_workforce_readiness" targetNamespace="http://nanobpm.io/nano-workforce">
  <bpmn:message id="Message_readinessReady" name="readiness-ready">
    <bpmn:extensionElements>
      <zeebe:subscription correlationKey="=gateKey" />
      <zeebe:properties>
        <zeebe:property name="io.nanobpm.dataEnvelope.in" value="ReadinessReady" />
      </zeebe:properties>
    </bpmn:extensionElements>
  </bpmn:message>
  <bpmn:process id="readiness-gate" name="Artifact readiness wait-gate" isExecutable="true">
    <bpmn:extensionElements>
      <nano:shapes>
        <nano:shape id="ReadinessProbeMatch" name="Readiness probe — match predicate">
          <nano:extend name="status" type="integer" optional="true" />
          <nano:extend name="bodyIncludes" type="string" optional="true" />
          <nano:extend name="exitCode" type="integer" optional="true" />
          <nano:extend name="stdoutIncludes" type="string" optional="true" />
          <nano:extend name="version" type="string" optional="true" />
          <nano:extend name="conclusion" type="string" optional="true" />
          <nano:extend name="checkName" type="string" optional="true" />
          <nano:extend name="capabilityRef" type="string" optional="true" />
          <nano:extend name="package" type="string" optional="true" />
          <nano:extend name="verifyCommand" type="string" optional="true" />
          <nano:extend name="prState" type="string" optional="true" />
        </nano:shape>
        <nano:shape id="ReadinessProbePoll" name="Readiness probe — poll policy">
          <nano:extend name="everyMs" type="integer" optional="true" />
          <nano:extend name="timeoutMs" type="integer" optional="true" />
          <nano:extend name="backoff" type="string" optional="true" />
        </nano:shape>
        <nano:shape id="ReadinessProbe" name="Readiness probe descriptor">
          <nano:extend name="kind" type="string" />
          <nano:extend name="target" type="string" />
          <nano:reference name="match" ref="ReadinessProbeMatch" />
          <nano:reference name="poll" ref="ReadinessProbePoll" />
          <nano:extend name="onTimeout" type="string" optional="true" />
          <nano:extend name="credentialEnv" type="string" optional="true" />
        </nano:shape>
        <nano:shape id="ReadinessProbeIn" name="Readiness probe — input">
          <nano:extend name="gateKey" type="string" />
          <nano:extend name="probeTimeout" type="string" />
          <nano:extend name="probePollEvery" type="string" />
          <nano:extend name="lastAttempt" type="boolean" optional="true" />
          <nano:extend name="onTimeout" type="string" optional="true" />
          <nano:reference name="probe" ref="ReadinessProbe" />
        </nano:shape>
        <nano:shape id="ReadinessProbeOut" name="Readiness probe — result">
          <nano:extend name="ready" type="boolean" />
          <nano:extend name="detail" type="string" optional="true" />
          <nano:extend name="resolvedArtifact" type="string" optional="true" />
          <nano:extend name="mergedSha" type="string" optional="true" />
          <nano:extend name="observed" type="string" optional="true" />
        </nano:shape>
        <nano:shape id="ReadinessReady" name="readiness-ready message payload">
          <nano:extend name="ready" type="boolean" />
          <nano:extend name="detail" type="string" optional="true" />
          <nano:extend name="resolvedArtifact" type="string" optional="true" />
          <nano:extend name="mergedSha" type="string" optional="true" />
        </nano:shape>
      </nano:shapes>
    </bpmn:extensionElements>
    <bpmn:startEvent id="Start" name="Gate opened">
      <bpmn:outgoing>f_start</bpmn:outgoing>
    </bpmn:startEvent>
    <bpmn:parallelGateway id="fork" name="arm probe + gate">
      <bpmn:incoming>f_start</bpmn:incoming>
      <bpmn:outgoing>f_toProbe</bpmn:outgoing>
      <bpmn:outgoing>f_toGate</bpmn:outgoing>
    </bpmn:parallelGateway>
    <bpmn:subProcess id="probe-loop" name="Probe readiness loop">
      <bpmn:incoming>f_toProbe</bpmn:incoming>
      <bpmn:outgoing>f_probed</bpmn:outgoing>
      <bpmn:startEvent id="probe-loop-start" name="Start probe loop">
        <bpmn:outgoing>pl_toProbe</bpmn:outgoing>
      </bpmn:startEvent>
      <bpmn:serviceTask id="probe" name="Probe readiness">
        <bpmn:extensionElements>
          <zeebe:taskDefinition type="pr.readiness-probe" />
          <zeebe:properties>
            <zeebe:property name="io.nanobpm.dataEnvelope.in" value="ReadinessProbeIn" />
            <zeebe:property name="io.nanobpm.dataEnvelope.out" value="ReadinessProbeOut" />
          </zeebe:properties>
        </bpmn:extensionElements>
        <bpmn:incoming>pl_toProbe</bpmn:incoming>
        <bpmn:incoming>pl_pollBack</bpmn:incoming>
        <bpmn:outgoing>pl_probed</bpmn:outgoing>
      </bpmn:serviceTask>
      <bpmn:exclusiveGateway id="probe-ready-gw" name="ready?" default="pl_notReady">
        <bpmn:incoming>pl_probed</bpmn:incoming>
        <bpmn:outgoing>pl_ready</bpmn:outgoing>
        <bpmn:outgoing>pl_notReady</bpmn:outgoing>
      </bpmn:exclusiveGateway>
      <bpmn:intermediateCatchEvent id="wait-poll" name="Wait poll interval">
        <bpmn:incoming>pl_notReady</bpmn:incoming>
        <bpmn:outgoing>pl_pollBack</bpmn:outgoing>
        <bpmn:timerEventDefinition id="ted_probePollEvery">
          <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">=probePollEvery</bpmn:timeDuration>
        </bpmn:timerEventDefinition>
      </bpmn:intermediateCatchEvent>
      <bpmn:endEvent id="probe-loop-end" name="Probe ready">
        <bpmn:incoming>pl_ready</bpmn:incoming>
      </bpmn:endEvent>
      <bpmn:sequenceFlow id="pl_toProbe" sourceRef="probe-loop-start" targetRef="probe" />
      <bpmn:sequenceFlow id="pl_probed" sourceRef="probe" targetRef="probe-ready-gw" />
      <bpmn:sequenceFlow id="pl_ready" name="ready" sourceRef="probe-ready-gw" targetRef="probe-loop-end">
        <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=ready = true</bpmn:conditionExpression>
      </bpmn:sequenceFlow>
      <bpmn:sequenceFlow id="pl_notReady" name="not ready" sourceRef="probe-ready-gw" targetRef="wait-poll" />
      <bpmn:sequenceFlow id="pl_pollBack" sourceRef="wait-poll" targetRef="probe" />
    </bpmn:subProcess>
    <bpmn:boundaryEvent id="probe-timeout" name="Gate timed out" attachedToRef="probe-loop">
      <bpmn:outgoing>f_probeTimeout</bpmn:outgoing>
      <bpmn:timerEventDefinition id="ted_probeTimeout">
        <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">=probeTimeout</bpmn:timeDuration>
      </bpmn:timerEventDefinition>
    </bpmn:boundaryEvent>
    <bpmn:serviceTask id="probe-last-attempt" name="Probe readiness (last attempt)">
      <bpmn:extensionElements>
        <zeebe:taskDefinition type="pr.readiness-probe" />
        <zeebe:properties>
          <zeebe:property name="io.nanobpm.dataEnvelope.in" value="ReadinessProbeIn" />
          <zeebe:property name="io.nanobpm.dataEnvelope.out" value="ReadinessProbeOut" />
        </zeebe:properties>
        <zeebe:ioMapping>
          <zeebe:input source="=true" target="lastAttempt" />
        </zeebe:ioMapping>
      </bpmn:extensionElements>
      <bpmn:incoming>f_probeTimeout</bpmn:incoming>
      <bpmn:outgoing>f_lastAttemptDone</bpmn:outgoing>
    </bpmn:serviceTask>
    <bpmn:endEvent id="probe-done" name="Probe settled">
      <bpmn:incoming>f_probed</bpmn:incoming>
      <bpmn:incoming>f_lastAttemptDone</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:eventBasedGateway id="gw-gate" name="ready or timeout?">
      <bpmn:incoming>f_toGate</bpmn:incoming>
      <bpmn:outgoing>f_toReady</bpmn:outgoing>
      <bpmn:outgoing>f_toTimeout</bpmn:outgoing>
    </bpmn:eventBasedGateway>
    <bpmn:intermediateCatchEvent id="wait-ready" name="Wait: readiness signal">
      <bpmn:incoming>f_toReady</bpmn:incoming>
      <bpmn:outgoing>f_ready</bpmn:outgoing>
      <bpmn:messageEventDefinition id="med_readinessReady" messageRef="Message_readinessReady" />
    </bpmn:intermediateCatchEvent>
    <bpmn:intermediateCatchEvent id="wait-timeout" name="Wait: readiness timeout">
      <bpmn:incoming>f_toTimeout</bpmn:incoming>
      <bpmn:outgoing>f_timedOut</bpmn:outgoing>
      <bpmn:timerEventDefinition id="ted_readinessTimeout">
        <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">=probeTimeout</bpmn:timeDuration>
      </bpmn:timerEventDefinition>
    </bpmn:intermediateCatchEvent>
    <bpmn:endEvent id="gate-ready" name="Ready">
      <bpmn:extensionElements>
        <zeebe:ioMapping>
          <zeebe:input source="=&#34;ready&#34;" target="gateOutcome" />
        </zeebe:ioMapping>
      </bpmn:extensionElements>
      <bpmn:incoming>f_ready</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:exclusiveGateway id="gw-onTimeout" name="on timeout?" default="f_escalate">
      <bpmn:incoming>f_timedOut</bpmn:incoming>
      <bpmn:outgoing>f_escalate</bpmn:outgoing>
      <bpmn:outgoing>f_fail</bpmn:outgoing>
      <bpmn:outgoing>f_continue</bpmn:outgoing>
    </bpmn:exclusiveGateway>
    <bpmn:userTask id="readiness-escalation" name="Readiness escalation (human)">
      <bpmn:extensionElements>
        <zeebe:formDefinition formId="readiness-escalation" />
        <zeebe:userTask />
        <zeebe:assignmentDefinition candidateGroups="operators" />
      </bpmn:extensionElements>
      <bpmn:incoming>f_escalate</bpmn:incoming>
      <bpmn:outgoing>f_toResolution</bpmn:outgoing>
    </bpmn:userTask>
    <bpmn:exclusiveGateway id="gw-resolution" name="resolution?" default="f_ack">
      <bpmn:incoming>f_toResolution</bpmn:incoming>
      <bpmn:outgoing>f_ack</bpmn:outgoing>
      <bpmn:outgoing>f_abandon</bpmn:outgoing>
    </bpmn:exclusiveGateway>
    <bpmn:endEvent id="gate-escalated" name="Escalated">
      <bpmn:extensionElements>
        <zeebe:ioMapping>
          <zeebe:input source="=&#34;escalated&#34;" target="gateOutcome" />
        </zeebe:ioMapping>
      </bpmn:extensionElements>
      <bpmn:incoming>f_ack</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:endEvent id="gate-failed" name="Failed">
      <bpmn:extensionElements>
        <zeebe:ioMapping>
          <zeebe:input source="=&#34;failed&#34;" target="gateOutcome" />
        </zeebe:ioMapping>
      </bpmn:extensionElements>
      <bpmn:incoming>f_fail</bpmn:incoming>
      <bpmn:incoming>f_abandon</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:endEvent id="gate-continued" name="Continued">
      <bpmn:extensionElements>
        <zeebe:ioMapping>
          <zeebe:input source="=&#34;continued&#34;" target="gateOutcome" />
        </zeebe:ioMapping>
      </bpmn:extensionElements>
      <bpmn:incoming>f_continue</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:sequenceFlow id="f_start" sourceRef="Start" targetRef="fork" />
    <bpmn:sequenceFlow id="f_toProbe" sourceRef="fork" targetRef="probe-loop" />
    <bpmn:sequenceFlow id="f_toGate" sourceRef="fork" targetRef="gw-gate" />
    <bpmn:sequenceFlow id="f_probed" sourceRef="probe-loop" targetRef="probe-done" />
    <bpmn:sequenceFlow id="f_probeTimeout" sourceRef="probe-timeout" targetRef="probe-last-attempt" />
    <bpmn:sequenceFlow id="f_lastAttemptDone" sourceRef="probe-last-attempt" targetRef="probe-done" />
    <bpmn:sequenceFlow id="f_toReady" sourceRef="gw-gate" targetRef="wait-ready" />
    <bpmn:sequenceFlow id="f_toTimeout" sourceRef="gw-gate" targetRef="wait-timeout" />
    <bpmn:sequenceFlow id="f_ready" sourceRef="wait-ready" targetRef="gate-ready" />
    <bpmn:sequenceFlow id="f_timedOut" sourceRef="wait-timeout" targetRef="gw-onTimeout" />
    <bpmn:sequenceFlow id="f_escalate" name="escalate" sourceRef="gw-onTimeout" targetRef="readiness-escalation" />
    <bpmn:sequenceFlow id="f_fail" name="fail" sourceRef="gw-onTimeout" targetRef="gate-failed">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=(if probe != null and probe.onTimeout != null then probe.onTimeout else onTimeout) = "fail"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_continue" name="continue" sourceRef="gw-onTimeout" targetRef="gate-continued">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=(if probe != null and probe.onTimeout != null then probe.onTimeout else onTimeout) = "continue"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_toResolution" sourceRef="readiness-escalation" targetRef="gw-resolution" />
    <bpmn:sequenceFlow id="f_ack" name="acknowledge" sourceRef="gw-resolution" targetRef="gate-escalated" />
    <bpmn:sequenceFlow id="f_abandon" name="abandon" sourceRef="gw-resolution" targetRef="gate-failed">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=resolution = "abandon"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
  </bpmn:process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_readiness-gate">
    <bpmndi:BPMNPlane id="BPMNPlane_readiness-gate" bpmnElement="readiness-gate">
      <bpmndi:BPMNShape id="BPMNShape_Start" bpmnElement="Start">
        <dc:Bounds x="80" y="211" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="58" y="252" width="80" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_fork" bpmnElement="fork" isMarkerVisible="true">
        <dc:Bounds x="216" y="204" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="202" y="171" width="78" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_probe-loop" bpmnElement="probe-loop" isExpanded="true">
        <dc:Bounds x="1288" y="80" width="602" height="298" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_probe-last-attempt" bpmnElement="probe-last-attempt">
        <dc:Bounds x="1990" y="376" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_probe-done" bpmnElement="probe-done">
        <dc:Bounds x="2190" y="211" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="2182" y="178" width="53" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-gate" bpmnElement="gw-gate" isMarkerVisible="true">
        <dc:Bounds x="366" y="391" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="360" y="358" width="63" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_wait-ready" bpmnElement="wait-ready">
        <dc:Bounds x="516" y="398" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="501" y="439" width="67" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_wait-timeout" bpmnElement="wait-timeout">
        <dc:Bounds x="516" y="558" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="501" y="599" width="67" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gate-ready" bpmnElement="gate-ready">
        <dc:Bounds x="659" y="398" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="657" y="439" width="41" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-onTimeout" bpmnElement="gw-onTimeout" isMarkerVisible="true">
        <dc:Bounds x="652" y="551" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="637" y="532" width="81" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_readiness-escalation" bpmnElement="readiness-escalation">
        <dc:Bounds x="802" y="536" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-resolution" bpmnElement="gw-resolution" isMarkerVisible="true">
        <dc:Bounds x="1002" y="551" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="987" y="532" width="81" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gate-escalated" bpmnElement="gate-escalated">
        <dc:Bounds x="1152" y="558" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1136" y="539" width="69" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gate-failed" bpmnElement="gate-failed">
        <dc:Bounds x="1152" y="718" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1146" y="759" width="48" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gate-continued" bpmnElement="gate-continued">
        <dc:Bounds x="834" y="878" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="818" y="919" width="69" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_probe-timeout" bpmnElement="probe-timeout">
        <dc:Bounds x="1571" y="360" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1551" y="421" width="76" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="BPMNEdge_f_start" bpmnElement="f_start">
        <di:waypoint x="116" y="229" />
        <di:waypoint x="216" y="229" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_toProbe" bpmnElement="f_toProbe">
        <di:waypoint x="266" y="229" />
        <di:waypoint x="1288" y="229" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_probed" bpmnElement="f_probed">
        <di:waypoint x="1890" y="229" />
        <di:waypoint x="2190" y="229" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_toReady" bpmnElement="f_toReady">
        <di:waypoint x="416" y="416" />
        <di:waypoint x="516" y="416" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ready" bpmnElement="f_ready">
        <di:waypoint x="552" y="416" />
        <di:waypoint x="659" y="416" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_escalate" bpmnElement="f_escalate">
        <di:waypoint x="702" y="576" />
        <di:waypoint x="802" y="576" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="722" y="584" width="60" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_toResolution" bpmnElement="f_toResolution">
        <di:waypoint x="902" y="576" />
        <di:waypoint x="1002" y="576" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ack" bpmnElement="f_ack">
        <di:waypoint x="1052" y="576" />
        <di:waypoint x="1152" y="576" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1060" y="584" width="84" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_toGate" bpmnElement="f_toGate">
        <di:waypoint x="241" y="254" />
        <di:waypoint x="241" y="416" />
        <di:waypoint x="366" y="416" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_toTimeout" bpmnElement="f_toTimeout">
        <di:waypoint x="391" y="441" />
        <di:waypoint x="391" y="576" />
        <di:waypoint x="516" y="576" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_fail" bpmnElement="f_fail">
        <di:waypoint x="677" y="601" />
        <di:waypoint x="677" y="736" />
        <di:waypoint x="1152" y="736" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="836" y="714" width="32" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_continue" bpmnElement="f_continue">
        <di:waypoint x="677" y="601" />
        <di:waypoint x="677" y="896" />
        <di:waypoint x="834" y="896" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="682" y="809" width="60" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_abandon" bpmnElement="f_abandon">
        <di:waypoint x="1027" y="601" />
        <di:waypoint x="1027" y="736" />
        <di:waypoint x="1152" y="736" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1032" y="662" width="53" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_lastAttemptDone" bpmnElement="f_lastAttemptDone">
        <di:waypoint x="2090" y="416" />
        <di:waypoint x="2208" y="416" />
        <di:waypoint x="2208" y="247" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_timedOut" bpmnElement="f_timedOut">
        <di:waypoint x="552" y="576" />
        <di:waypoint x="652" y="576" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_probeTimeout" bpmnElement="f_probeTimeout">
        <di:waypoint x="1589" y="396" />
        <di:waypoint x="1589" y="416" />
        <di:waypoint x="1990" y="416" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="BPMNShape_probe-loop-start" bpmnElement="probe-loop-start">
        <dc:Bounds x="1328" y="142" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1306" y="183" width="80" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_probe" bpmnElement="probe">
        <dc:Bounds x="1464" y="120" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_probe-ready-gw" bpmnElement="probe-ready-gw" isMarkerVisible="true">
        <dc:Bounds x="1664" y="135" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1666" y="116" width="46" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_wait-poll" bpmnElement="wait-poll">
        <dc:Bounds x="1814" y="302" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1798" y="269" width="68" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_probe-loop-end" bpmnElement="probe-loop-end">
        <dc:Bounds x="1814" y="142" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1792" y="183" width="80" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="BPMNEdge_pl_toProbe" bpmnElement="pl_toProbe">
        <di:waypoint x="1364" y="160" />
        <di:waypoint x="1464" y="160" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_pl_probed" bpmnElement="pl_probed">
        <di:waypoint x="1564" y="160" />
        <di:waypoint x="1664" y="160" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_pl_ready" bpmnElement="pl_ready">
        <di:waypoint x="1714" y="160" />
        <di:waypoint x="1814" y="160" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1745" y="138" width="39" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_pl_notReady" bpmnElement="pl_notReady">
        <di:waypoint x="1689" y="185" />
        <di:waypoint x="1689" y="320" />
        <di:waypoint x="1814" y="320" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1694" y="246" width="64" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_pl_pollBack" bpmnElement="pl_pollBack">
        <di:waypoint x="1832" y="338" />
        <di:waypoint x="1832" y="358" />
        <di:waypoint x="1514" y="358" />
        <di:waypoint x="1514" y="200" />
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn:definitions>
