Consider the following four fragments of code:
-- Fragment 1
select
T.Call; -- an entry call to task $T$
Flag : $=\mathrm{A}$;
or
delay 10.0;
Flag : $=$ B;
- code taking 2 seconds to execute
end select;
-- Fragment 2
select
T.Call; -- an entry call to task $T$
Flag : $=\mathrm{A}$;
else
delay 10.0;
Flag : $=\mathrm{B}$;
-- code taking 2 seconds to execute
end select;
-- Fragment 3
select
T.Call; -- an entry call to task $T$
Flag : $=\mathrm{A}$;
then abort
delay 10.0;
Flag : = B;
-- code taking 2 seconds to execute
end select;
-- Fragment 4
select
delay 10.0;
Flag : $=\mathrm{A}$;
then abort
T.Call; -- an entry call to task $T$
Flag : $=\mathrm{B}$;
-- code taking 2 seconds to execute
end select;
A rendezvous with T.Call takes 5 seconds to execute. What is the value of the Flag variable after the execution of each of the four fragments in each of the following cases? You may assume a Flag assignment statement takes zero execution time.
(1) T.Call is available when the select is executed.
(2) T.Call is NOT available when the select is executed and does not become available in the next 14 seconds.
(3) T.Call is NOT available when the select is executed, but does become available after 2 seconds.
(4) T.Call is NOT available when the select is executed but does become available after 8 seconds.